]> git.llucax.com Git - software/dgc/cdgc.git/blobdiff - Makefile
Remove (un)committed pages distinction
[software/dgc/cdgc.git] / Makefile
index 1868ac9e482d05cb66f06d76abfd65c7c7d93423..32232ef218aca16d062661c683ce6d2ad97bebd0 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,7 @@
 
+# Build directory
+B := build
+
 # D compiler to use
 DC := ldc
 
@@ -29,29 +32,36 @@ LD_OUTPUT_OPTION = -o $@
 
 # GC sources
 sources := \
-       gc.d \
-       gcalloc.d \
-       gcbits.d \
-       gcstats.d \
-       gcx.d
+       gc/iface.d \
+       gc/alloc.d \
+       gc/bits.d \
+       gc/stats.d \
+       gc/libc.d \
+       gc/gc.d
 
 # Default target
-all: cdgc.so
+all: $B/cdgc.so
 
 # Make the GC shared object
-cdgc.so: $(sources:.d=.o)
+$B/cdgc.so: $(patsubst %.d,$B/%.o,$(sources))
 
 
 # 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) $^
 
-%.o: %.d
+$B/%.o: %.d
        $(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)
+