]> git.llucax.com Git - software/druntime.git/blob - src/compiler/dmd/win32.mak
First commit of the D Runtime Project. This includes a fully functional runtime...
[software/druntime.git] / src / compiler / dmd / win32.mak
1 # Makefile to build the compiler runtime D library for Win32\r
2 # Designed to work with DigitalMars make\r
3 # Targets:\r
4 #       make\r
5 #               Same as make all\r
6 #       make lib\r
7 #               Build the compiler runtime library\r
8 #   make doc\r
9 #       Generate documentation\r
10 #       make clean\r
11 #               Delete unneeded files created by build process\r
12 \r
13 LIB_TARGET=druntime-rt-dmd.lib\r
14 LIB_MASK=druntime-rt-dmd*.lib\r
15 \r
16 CP=xcopy /y\r
17 RM=del /f\r
18 MD=mkdir\r
19 \r
20 CFLAGS=-mn -6 -r $(ADD_CFLAGS)\r
21 #CFLAGS=-g -mn -6 -r $(ADD_CFLAGS)\r
22 \r
23 DFLAGS=-release -O -inline -w -nofloat $(ADD_DFLAGS)\r
24 #DFLAGS=-g -w -nofloat $(ADD_DFLAGS)\r
25 \r
26 TFLAGS=-O -inline -w  -nofloat $(ADD_DFLAGS)\r
27 #TFLAGS=-g -w -nofloat $(ADD_DFLAGS)\r
28 \r
29 DOCFLAGS=-version=DDoc\r
30 \r
31 CC=dmc\r
32 LC=lib\r
33 DC=dmd\r
34 \r
35 LIB_DEST=..\..\..\lib\r
36 \r
37 .DEFAULT: .asm .c .cpp .d .html .obj\r
38 \r
39 .asm.obj:\r
40         $(CC) -c $<\r
41 \r
42 .c.obj:\r
43         $(CC) -c $(CFLAGS) $< -o$@\r
44 \r
45 .cpp.obj:\r
46         $(CC) -c $(CFLAGS) $< -o$@\r
47 \r
48 .d.obj:\r
49         $(DC) -c $(DFLAGS) $< -of$@\r
50 \r
51 .d.html:\r
52         $(DC) -c -o- $(DOCFLAGS) -Df$*.html dmd.ddoc $<\r
53 \r
54 targets : lib doc\r
55 all     : lib doc\r
56 lib     : dmd.lib\r
57 doc     : dmd.doc\r
58 \r
59 ######################################################\r
60 \r
61 OBJ_BASE= \\r
62     aaA.obj \\r
63     aApply.obj \\r
64     aApplyR.obj \\r
65     adi.obj \\r
66     arraybyte.obj \\r
67     arraycast.obj \\r
68     arraycat.obj \\r
69     arraydouble.obj \\r
70     arrayfloat.obj \\r
71     arrayint.obj \\r
72     arrayreal.obj \\r
73     arrayshort.obj \\r
74     cast_.obj \\r
75     complex.obj \\r
76     cover.obj \\r
77     critical.obj \\r
78     deh.obj \\r
79     dmain2.obj \\r
80     invariant_.obj \\r
81     lifetime.obj \\r
82     memory.obj \\r
83     memset.obj \\r
84     monitor.obj \\r
85     obj.obj \\r
86     object_.obj \\r
87     qsort.obj \\r
88     switch_.obj \\r
89     trace.obj\r
90 # NOTE: trace.obj and cover.obj are not necessary for a successful build\r
91 #       as both are used for debugging features (profiling and coverage)\r
92 # NOTE: a pre-compiled minit.obj has been provided in dmd for Win32 and\r
93 #       minit.asm is not used by dmd for linux\r
94 \r
95 OBJ_UTIL= \\r
96     util\console.obj \\r
97     util\cpuid.obj \\r
98     util\ctype.obj \\r
99     util\string.obj \\r
100     util\utf.obj\r
101 \r
102 OBJ_TI= \\r
103     typeinfo\ti_AC.obj \\r
104     typeinfo\ti_Acdouble.obj \\r
105     typeinfo\ti_Acfloat.obj \\r
106     typeinfo\ti_Acreal.obj \\r
107     typeinfo\ti_Adouble.obj \\r
108     typeinfo\ti_Afloat.obj \\r
109     typeinfo\ti_Ag.obj \\r
110     typeinfo\ti_Aint.obj \\r
111     typeinfo\ti_Along.obj \\r
112     typeinfo\ti_Areal.obj \\r
113     typeinfo\ti_Ashort.obj \\r
114     typeinfo\ti_byte.obj \\r
115     typeinfo\ti_C.obj \\r
116     typeinfo\ti_cdouble.obj \\r
117     typeinfo\ti_cfloat.obj \\r
118     typeinfo\ti_char.obj \\r
119     typeinfo\ti_creal.obj \\r
120     typeinfo\ti_dchar.obj \\r
121     typeinfo\ti_delegate.obj \\r
122     typeinfo\ti_double.obj \\r
123     typeinfo\ti_float.obj \\r
124     typeinfo\ti_idouble.obj \\r
125     typeinfo\ti_ifloat.obj \\r
126     typeinfo\ti_int.obj \\r
127     typeinfo\ti_ireal.obj \\r
128     typeinfo\ti_long.obj \\r
129     typeinfo\ti_ptr.obj \\r
130     typeinfo\ti_real.obj \\r
131     typeinfo\ti_short.obj \\r
132     typeinfo\ti_ubyte.obj \\r
133     typeinfo\ti_uint.obj \\r
134     typeinfo\ti_ulong.obj \\r
135     typeinfo\ti_ushort.obj \\r
136     typeinfo\ti_void.obj \\r
137     typeinfo\ti_wchar.obj\r
138 \r
139 ALL_OBJS= \\r
140     $(OBJ_BASE) \\r
141     $(OBJ_UTIL) \\r
142     $(OBJ_TI)\r
143 \r
144 ######################################################\r
145 \r
146 ALL_DOCS=\r
147 \r
148 ######################################################\r
149 \r
150 dmd.lib : $(LIB_TARGET)\r
151 \r
152 $(LIB_TARGET) : $(ALL_OBJS)\r
153         $(RM) $@\r
154         $(LC) -c -n $@ $(ALL_OBJS) minit.obj\r
155 \r
156 dmd.doc : $(ALL_DOCS)\r
157         @echo No documentation available.\r
158 \r
159 ######################################################\r
160 \r
161 clean :\r
162         $(RM) /s *.di\r
163         $(RM) $(ALL_OBJS)\r
164         $(RM) $(ALL_DOCS)\r
165         $(RM) $(LIB_MASK)\r
166 \r
167 install :\r
168         $(MD) $(LIB_DEST)\r
169         $(CP) $(LIB_MASK) $(LIB_DEST)\.\r