improve build system
Stefan Schuermans

Stefan Schuermans commited on 2017-09-24 09:33:21
Showing 4 changed files, with 16 additions and 16 deletions.

... ...
@@ -1,2 +1,4 @@
1
-Blinker
2
-config.mk
1
+.*.swp
2
+/Blinker
3
+/config.mk
4
+/obj
... ...
@@ -1,5 +1,3 @@
1
-CFGS := $(wildcard config/*.cfg.sh)
2
-SRCS := $(wildcard common/*.cpp) $(wildcard linux/*.cpp)
3 1
 TARGET := Blinker
4 2
 
5 3
 CXX := g++
... ...
@@ -10,11 +8,14 @@ CFLAGS := -Wall -Wextra -Werror -O2
10 8
 LDFLAGS :=
11 9
 LIBS := -lBlinkenLib
12 10
 
11
+CFGS := $(wildcard config/*.cfg.sh)
13 12
 CFGS_BASE := $(patsubst %.cfg.sh,%,$(CFGS))
14 13
 CFGS_MK := $(addsuffix .cfg.mk,$(CFGS_BASE))
14
+
15
+SRCS := $(wildcard common/*.cpp) $(wildcard linux/*.cpp)
15 16
 SRCS_BASE := $(patsubst %.cpp,%,$(SRCS))
16
-DEPS := $(addsuffix .d,$(SRCS_BASE))
17
-OBJS := $(addsuffix .o,$(SRCS_BASE))
17
+DEPS := $(addprefix obj/,$(addsuffix .d,$(SRCS_BASE)))
18
+OBJS := $(addprefix obj/,$(addsuffix .o,$(SRCS_BASE)))
18 19
 
19 20
 .PHONY: all clean distclean
20 21
 .SUFFIXES:
... ...
@@ -37,17 +38,20 @@ config.mk: $(CFGS_MK)
37 38
 %.cfg.mk: %.cfg.sh
38 39
 	sh $< >$@
39 40
 
40
-%.d: %.cpp Makefile config.mk
41
-	$(CXX) $(DEFINE) $(INCLUDE) $(CFLAGS) -MM -MF $@ -MT $(@:.d=.o) $<
41
+obj:
42
+	mkdir $@ $@/common $@/linux
43
+
44
+obj/%.d: %.cpp Makefile config.mk | obj
45
+	$(CXX) $(DEFINE) $(INCLUDE) $(CFLAGS) -MM -MT $(@:.d=.o) -o $@ $<
42 46
 
43
-%.o: %.cpp Makefile
47
+obj/%.o: %.cpp Makefile | obj
44 48
 	$(CXX) $(DEFINE) $(INCLUDE) $(CFLAGS) -c -o $@ $<
45 49
 
46 50
 $(TARGET): $(OBJS)
47 51
 	$(CXX) $(LDFLAGS) -o $@ $+ $(LIBS)
48 52
 
49 53
 clean:
50
-	rm -f $(DEPS) $(OBJS) $(TARGET)
54
+	rm -f obj $(TARGET)
51 55
 
52 56
 distclean: clean
53 57
 	rm -f config.mk $(CFGS_MK)
... ...
@@ -1,3 +0,0 @@
1
-*.d
2
-*.o
3
-.*.swp
... ...
@@ -1,3 +0,0 @@
1
-*.d
2
-*.o
3
-.*.swp
4 0