]> git.llucax.com Git - software/dgc/cdgc.git/blobdiff - Makefile
Cache B_FREE pages also when marking
[software/dgc/cdgc.git] / Makefile
index 1868ac9e482d05cb66f06d76abfd65c7c7d93423..736862e0b52204ff1b9833e4333e7fac1d02821c 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,7 @@
 
+# Build directory
+B := build
+
 # D compiler to use
 DC := ldc
 
@@ -28,30 +31,38 @@ LD_OUTPUT_OPTION = -o $@
 #LDFLAGS :=
 
 # GC sources
-sources := \
+sources := $(addprefix rt/gc/cdgc/,\
+       iface.d \
+       alloc.d \
+       bits.d \
+       stats.d \
+       libc.d \
        gc.d \
-       gcalloc.d \
-       gcbits.d \
-       gcstats.d \
-       gcx.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)
+