]> git.llucax.com Git - software/druntime.git/blob - src/gc/stub/win32.mak
e55472e28413e870a4ffca44d739bdc104101b30
[software/druntime.git] / src / gc / stub / 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=druntime-gc-stub
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=-D -g -mn -6 -r $(ADD_CFLAGS)
27 CFLAGS=$(CFLAGS_RELEASE)
28
29 DFLAGS_RELEASE=-release -O -inline -w -nofloat $(ADD_DFLAGS)
30 DFLAGS_DEBUG=-debug -g -w -nofloat $(ADD_DFLAGS)
31 DFLAGS=$(DFLAGS_RELEASE)
32
33 TFLAGS_RELEASE=-O -inline -w  -nofloat $(ADD_DFLAGS)
34 TFLAGS_DEBUG=-debug -g -w -nofloat $(ADD_DFLAGS)
35 TFLAGS=$(TFLAGS_RELEASE)
36
37 DOCFLAGS=-version=DDoc
38
39 CC=dmc
40 LC=lib
41 DC=dmd
42
43 LIB_DEST=..\..\..\lib
44
45 .DEFAULT: .asm .c .cpp .d .html .obj
46
47 .asm.obj:
48         $(CC) -c $<
49
50 .c.obj:
51         $(CC) -c $(CFLAGS) $< -o$@
52
53 .cpp.obj:
54         $(CC) -c $(CFLAGS) $< -o$@
55
56 .d.obj:
57         $(DC) -c $(DFLAGS) $< -of$@
58
59 .d.html:
60         $(DC) -c -o- $(DOCFLAGS) -Df$*.html $<
61 #       $(DC) -c -o- $(DOCFLAGS) -Df$*.html dmd.ddoc $<
62
63 targets : lib doc
64 all     : lib doc
65 lib     : stub.lib
66 doc     : stub.doc
67
68 ######################################################
69
70 ALL_OBJS= \
71     gc.obj
72
73 ######################################################
74
75 ALL_DOCS=
76
77 ######################################################
78
79 unittest :
80         make -fwin32.mak DC="$(DC)" LIB_BUILD="" DFLAGS="$(DFLAGS_RELEASE) -unittest"
81
82 release :
83         make -fwin32.mak DC="$(DC)" LIB_BUILD="" DFLAGS="$(DFLAGS_RELEASE)"
84
85 debug :
86         make -fwin32.mak DC="$(DC)" LIB_BUILD="-d" DFLAGS="$(DFLAGS_DEBUG)"
87
88 ######################################################
89
90 stub.lib : $(LIB_TARGET)
91
92 $(LIB_TARGET) : $(ALL_OBJS)
93         $(RM) $@
94         $(LC) -c -n $@ $(ALL_OBJS)
95
96 stub.doc : $(ALL_DOCS)
97         @echo No documentation available.
98
99 ######################################################
100
101 clean :
102         $(RM) /s *.di
103         $(RM) $(ALL_OBJS)
104         $(RM) $(ALL_DOCS)
105         $(RM) $(LIB_MASK)
106
107 install :
108         $(MD) $(LIB_DEST)
109         $(CP) $(LIB_MASK) $(LIB_DEST)\.
110         copy gc.obj $(LIB_DEST)\gcstub.obj