Skip to content

Commit 0d7c5b3

Browse files
author
TheodorDM
committed
fix: The Makefile's dependensies are made correct
1 parent 43f87b7 commit 0d7c5b3

1 file changed

Lines changed: 30 additions & 8 deletions

File tree

Makefile

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,59 @@
11
PROJECT = Gwint
22

3-
TESTPROJECT = test-$(PROJECT)
3+
TESTPROJECT = test$(PROJECT)
44

55
CXX = g++
66

77
CXXFLAGS = -I. -std=c++17 -Werror -Wall -Wpedantic -g -fPIC
88

99
TESTCXXFLAGS = $(CXXFLAGS) -lgtest -lgtest_main -lpthread
1010

11-
DEPS = $(wildcard *.h)
11+
DEPS = $(wildcard inlude/Gwint/*.h)
12+
13+
SRC = $(wildcard src/*.cpp)
14+
TEST_SRC = $(wildcard tests/*.cpp)
15+
16+
OBJDIR = src/obj
17+
TEST_OBJDIR = tests/obj
18+
19+
OBJ = $(SRC:src/%.cpp=$(OBJDIR)/%.o)
20+
TEST_OBJ = $(TEST_SRC:tests/%.cpp=$(TEST_OBJDIR)/%.o)
1221

13-
TEST-OBJ = test.o
1422

1523
.PHONY: default
1624

1725
default: all
1826

19-
%.o: %.cpp $(DEPS)
27+
$(OBJDIR)/%.o: $(SRC) $(DEPS) | $(OBJDIR)
2028
$(CXX) -c -o $@ $< $(CXXFLAGS)
29+
30+
$(TEST_OBJDIR)/%.o: $(TEST_SRC) | $(TEST_OBJDIR)
31+
$(CXX) -c -o $@ $< $(CXXFLAGS)
32+
2133

22-
$(PROJECT): main.o
23-
$(CXX) -o $@ main.o $(CXXFLAGS)
34+
$(PROJECT): $(OBJ)
35+
$(CXX) -o $@ $^ $(CXXFLAGS)
2436

25-
$(TESTPROJECT): $(TEST-OBJ)
37+
$(TESTPROJECT): $(TEST_OBJ)
2638
$(CXX) -o $@ $^ $(TESTCXXFLAGS)
2739

40+
41+
42+
$(OBJDIR):
43+
mkdir -p $(OBJDIR)
44+
$(TEST_OBJDIR):
45+
mkdir -p $(TEST_OBJDIR)
46+
47+
48+
2849
.PHONY: test
2950

3051
test: $(TESTPROJECT)
3152

3253
all: $(PROJECT)
3354

3455
clean:
35-
rm -f *.o
56+
rm -rf $(OBJDIR)
57+
rm -rf $(TEST_OBJDIR)
3658
rm -f $(PROJECT)
3759
rm -f $(TESTPROJECT)

0 commit comments

Comments
 (0)