]> git.llucax.com Git - software/dgc/cdgc.git/blobdiff - Makefile
Add a "clean" target to the Makefile
[software/dgc/cdgc.git] / Makefile
index 1868ac9e482d05cb66f06d76abfd65c7c7d93423..bdd709bbf60a4b1ca428155cc545aca4b64f5a16 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,7 @@
 
 
+# Build directory
+B := build
+
 # D compiler to use
 DC := ldc
 
 # D compiler to use
 DC := ldc
 
@@ -36,22 +39,28 @@ sources := \
        gcx.d
 
 # Default target
        gcx.d
 
 # Default target
-all: cdgc.so
+all: $B/cdgc.so
 
 # Make the GC shared object
 
 # Make the GC shared object
-cdgc.so: $(sources:.d=.o)
+$B/cdgc.so: $(patsubst %.d,$B/%.o,$(sources))
 
 
 # General pattern rules
 #######################
 
 
 
 # General pattern rules
 #######################
 
-%.so: DCFLAGS += $(DC_SO_OPT)
+$B/%.so: DCFLAGS += $(DC_SO_OPT)
 
 
-%.so:
+$B/%.so:
        $(if $V,,@echo '  $(LD) $@')
        $(if $V,,@) $(LD) $(LDFLAGS) $(LD_SO_OPT) $(LD_OUTPUT_OPTION) $^
 
        $(if $V,,@echo '  $(LD) $@')
        $(if $V,,@) $(LD) $(LDFLAGS) $(LD_SO_OPT) $(LD_OUTPUT_OPTION) $^
 
-%.o: %.d
+$B/%.o: %.d
        $(if $V,,@echo '  $(DC) $@')
        $(if $V,,@) $(DC) $(DCFLAGS) $(DC_OBJ_OPT) $(DC_OUTPUT_OPTION) $<
 
        $(if $V,,@echo '  $(DC) $@')
        $(if $V,,@) $(DC) $(DCFLAGS) $(DC_OBJ_OPT) $(DC_OUTPUT_OPTION) $<
 
+clean:
+       $(if $V,,@echo '  $(RM) $B')
+       $(if $V,,@) $(RM) -r $B
+
+__dummy := $(shell mkdir -p $B)
+