]> git.llucax.com Git - software/dgc/naive.git/blob - win32.mak
Align GC allocated memory to word boundaries
[software/dgc/naive.git] / win32.mak
1 # Makefile to build the garbage collector D library for Win32
2 # Designed to work with DigitalMars make
3 # Targets:
4 #       make
5 #               Same as make all
6 #       make lib
7 #               Build the garbage collector library
8 #   make doc
9 #       Generate documentation
10 #       make clean
11 #               Delete unneeded files created by build process
12
13 LIB_BASE=tango-gc-naive
14 LIB_BUILD=
15 LIB_TARGET=$(LIB_BASE)$(LIB_BUILD).lib
16 LIB_MASK=$(LIB_BASE)*.lib
17
18 CP=xcopy /y
19 RM=del /f
20 MD=mkdir
21
22 ADD_CFLAGS=
23 ADD_DFLAGS=
24
25 CFLAGS_RELEASE=-mn -6 -r $(ADD_CFLAGS)
26 CFLAGS_DEBUG=-g -mn -6 -r $(ADD_CFLAGS)
27 DFLAGS_RELEASE=-release -O -inline -w -nofloat -I. -I../shared -I../../.. $(ADD_DFLAGS)
28 DFLAGS_DEBUG=-g -w -nofloat  -I. -I../shared -I../../.. $(ADD_DFLAGS)
29 TFLAGS_RELEASE=-O -inline -w  -nofloat $(ADD_DFLAGS)
30 TFLAGS_DEBUG=-g -w -nofloat $(ADD_DFLAGS)
31
32 CFLAGS=$(CFLAGS_RELEASE)
33 DFLAGS=$(DFLAGS_RELEASE)
34 TFLAGS=$(TFLAGS_RELEASE)
35
36 DOCFLAGS=-version=DDoc
37
38 CC=dmc
39 LC=lib
40 DC=dmd
41
42 LIB_DEST=..
43
44 .DEFAULT: .asm .c .cpp .d .html .obj
45
46 .asm.obj:
47         $(CC) -c $<
48
49 .c.obj:
50         $(CC) -c $(CFLAGS) $< -o$@
51
52 .cpp.obj:
53         $(CC) -c $(CFLAGS) $< -o$@
54
55 .d.obj:
56         $(DC) -c $(DFLAGS) $< -of$@
57
58 .d.html:
59         $(DC) -c -o- $(DOCFLAGS) -Df$*.html $<
60 #       $(DC) -c -o- $(DOCFLAGS) -Df$*.html dmd.ddoc $<
61
62 targets : lib doc
63 all     : lib doc
64 lib     : naive.lib
65 doc     : naive.doc
66
67 ######################################################
68
69 ALL_OBJS= \
70     gc/iface.obj \
71     gc/gc.obj \
72     gc/arch.obj \
73     gc/list.obj \
74     gc/cell.obj \
75     gc/dynarray.obj
76
77 ######################################################
78
79 ALL_DOCS=
80
81 ######################################################
82
83 naive.lib : $(LIB_TARGET)
84
85 $(LIB_TARGET) : $(ALL_OBJS)
86         $(RM) $@
87         $(LC) -c -n $@ $(ALL_OBJS)
88
89 naive.doc : $(ALL_DOCS)
90         @echo No documentation available.
91
92 ######################################################
93
94 clean :
95         $(RM) /s *.di
96         $(RM) $(ALL_OBJS)
97         $(RM) $(ALL_DOCS)
98         $(RM) $(LIB_MASK)
99
100 install :
101         $(MD) $(LIB_DEST)
102         $(CP) $(LIB_MASK) $(LIB_DEST)\.