]> git.llucax.com Git - software/dgc/cdgc.git/blob - Makefile
Add a wrapper script to run programs using CDGC
[software/dgc/cdgc.git] / Makefile
1
2 # D compiler to use
3 DC := ldc
4
5 # DC compilation options to produce unlinked objects
6 DC_OBJ_OPT := -c
7
8 # DC compilation options to produce PIC objects
9 DC_SO_OPT := -relocation-model=pic
10
11 # DC option to tell where to store the output
12 DC_OUTPUT_OPTION = -of=$@
13
14 # Extra flags for the compiler
15 DCFLAGS := -O5 -release
16 #DCFLAGS := -debug
17
18 # Linker to use
19 LD := gcc
20
21 # Link options to produce a shared library
22 LD_SO_OPT = -fPIC -shared -Wl,-soname,$@
23
24 # DC option to tell where to store the output
25 LD_OUTPUT_OPTION = -o $@
26
27 # Extra flags for the linker
28 #LDFLAGS :=
29
30 # GC sources
31 sources := \
32         gc.d \
33         gcalloc.d \
34         gcbits.d \
35         gcstats.d \
36         gcx.d
37
38 # Default target
39 all: cdgc.so
40
41 # Make the GC shared object
42 cdgc.so: $(sources:.d=.o)
43
44
45 # General pattern rules
46 #######################
47
48 %.so: DCFLAGS += $(DC_SO_OPT)
49
50 %.so:
51         $(if $V,,@echo '  $(LD) $@')
52         $(if $V,,@) $(LD) $(LDFLAGS) $(LD_SO_OPT) $(LD_OUTPUT_OPTION) $^
53
54 %.o: %.d
55         $(if $V,,@echo '  $(DC) $@')
56         $(if $V,,@) $(DC) $(DCFLAGS) $(DC_OBJ_OPT) $(DC_OUTPUT_OPTION) $<
57