]> git.llucax.com Git - software/druntime.git/blob - src/compiler/dmd/win32.mak
* Removed "-debug" from the list of debug build flags. The purpose of debug builds...
[software/druntime.git] / src / compiler / dmd / win32.mak
1 # Makefile to build the compiler runtime 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 compiler runtime library
8 #   make doc
9 #       Generate documentation
10 #       make clean
11 #               Delete unneeded files created by build process
12
13 LIB_BASE=druntime-rt-dmd
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 CFLAGS=$(CFLAGS_RELEASE)
28
29 DFLAGS_RELEASE=-release -O -inline -w -nofloat $(ADD_DFLAGS)
30 DFLAGS_DEBUG=-g -w -nofloat $(ADD_DFLAGS)
31 DFLAGS=$(DFLAGS_RELEASE)
32
33 TFLAGS_RELEASE=-O -inline -w  -nofloat $(ADD_DFLAGS)
34 TFLAGS_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 dmd.ddoc $<
61
62 targets : lib doc
63 all     : lib doc
64 lib     : dmd.lib
65 doc     : dmd.doc
66
67 ######################################################
68
69 OBJ_BASE= \
70     aaA.obj \
71     aApply.obj \
72     aApplyR.obj \
73     adi.obj \
74     arrayassign.obj \
75     arraybyte.obj \
76     arraycast.obj \
77     arraycat.obj \
78     arraydouble.obj \
79     arrayfloat.obj \
80     arrayint.obj \
81     arrayreal.obj \
82     arrayshort.obj \
83     cast_.obj \
84     complex.obj \
85     cover.obj \
86     critical.obj \
87     deh.obj \
88     dmain2.obj \
89     invariant.obj \
90     invariant_.obj \
91     lifetime.obj \
92     memory.obj \
93     memset.obj \
94     monitor.obj \
95     obj.obj \
96     object_.obj \
97     qsort.obj \
98     switch_.obj \
99     trace.obj
100 # NOTE: trace.obj and cover.obj are not necessary for a successful build
101 #       as both are used for debugging features (profiling and coverage)
102 # NOTE: a pre-compiled minit.obj has been provided in dmd for Win32 and
103 #       minit.asm is not used by dmd for linux
104
105 OBJ_UTIL= \
106     util\console.obj \
107     util\cpuid.obj \
108     util\ctype.obj \
109     util\string.obj \
110     util\utf.obj
111
112 OBJ_TI= \
113     typeinfo\ti_AC.obj \
114     typeinfo\ti_Acdouble.obj \
115     typeinfo\ti_Acfloat.obj \
116     typeinfo\ti_Acreal.obj \
117     typeinfo\ti_Adouble.obj \
118     typeinfo\ti_Afloat.obj \
119     typeinfo\ti_Ag.obj \
120     typeinfo\ti_Aint.obj \
121     typeinfo\ti_Along.obj \
122     typeinfo\ti_Areal.obj \
123     typeinfo\ti_Ashort.obj \
124     typeinfo\ti_byte.obj \
125     typeinfo\ti_C.obj \
126     typeinfo\ti_cdouble.obj \
127     typeinfo\ti_cfloat.obj \
128     typeinfo\ti_char.obj \
129     typeinfo\ti_creal.obj \
130     typeinfo\ti_dchar.obj \
131     typeinfo\ti_delegate.obj \
132     typeinfo\ti_double.obj \
133     typeinfo\ti_float.obj \
134     typeinfo\ti_idouble.obj \
135     typeinfo\ti_ifloat.obj \
136     typeinfo\ti_int.obj \
137     typeinfo\ti_ireal.obj \
138     typeinfo\ti_long.obj \
139     typeinfo\ti_ptr.obj \
140     typeinfo\ti_real.obj \
141     typeinfo\ti_short.obj \
142     typeinfo\ti_ubyte.obj \
143     typeinfo\ti_uint.obj \
144     typeinfo\ti_ulong.obj \
145     typeinfo\ti_ushort.obj \
146     typeinfo\ti_void.obj \
147     typeinfo\ti_wchar.obj
148
149 ALL_OBJS= \
150     $(OBJ_BASE) \
151     $(OBJ_UTIL) \
152     $(OBJ_TI)
153
154 ######################################################
155
156 ALL_DOCS=
157
158 ######################################################
159
160 unittest :
161         make -fwin32.mak DC="$(DC)" LIB_BUILD="" DFLAGS="$(DFLAGS_RELEASE) -unittest"
162
163 release :
164         make -fwin32.mak DC="$(DC)" LIB_BUILD="" DFLAGS="$(DFLAGS_RELEASE)"
165
166 debug :
167         make -fwin32.mak DC="$(DC)" LIB_BUILD="-d" DFLAGS="$(DFLAGS_DEBUG)"
168
169 ######################################################
170
171 dmd.lib : $(LIB_TARGET)
172
173 $(LIB_TARGET) : $(ALL_OBJS)
174         $(RM) $@
175         $(LC) -c -n $@ $(ALL_OBJS) minit.obj
176
177 dmd.doc : $(ALL_DOCS)
178         @echo No documentation available.
179
180 ######################################################
181
182 clean :
183         $(RM) /s *.di
184         $(RM) $(ALL_OBJS)
185         $(RM) $(ALL_DOCS)
186         $(RM) $(LIB_MASK)
187
188 install :
189         $(MD) $(LIB_DEST)
190         $(CP) $(LIB_MASK) $(LIB_DEST)\.