comparison druntime/src/compiler/dmd/win32.mak @ 1458:e0b2d67cfe7c

Added druntime (this should be removed once it works).
author Robert Clipsham <robert@octarineparrot.com>
date Tue, 02 Jun 2009 17:43:06 +0100
parents
children
comparison
equal deleted inserted replaced
1456:7b218ec1044f 1458:e0b2d67cfe7c
1 # Makefile to build the D runtime library core components for Posix
2 # Designed to work with GNU make
3 # Targets:
4 # make
5 # Same as make all
6 # make debug
7 # Build the debug version of the library
8 # make release
9 # Build the release version of the library
10 # make doc
11 # Generate documentation
12 # make clean
13 # Delete all files created by build process
14
15 # Essentials
16
17 LIBDIR=..\..\..\lib
18 DOCDIR=..\..\..\doc
19 IMPDIR=..\..\..\import
20 LIBBASENAME=druntime_rt_dmd.lib
21 #MODULES=bitop exception memory runtime thread vararg \
22 # $(addprefix sync/,barrier condition config exception mutex rwmutex semaphore)
23 BUILDS=debug release unittest
24
25 MODULES_BASE= \
26 aaA.d \
27 aApply.d \
28 aApplyR.d \
29 adi.d \
30 arrayassign.d \
31 arraybyte.d \
32 arraycast.d \
33 arraycat.d \
34 arraydouble.d \
35 arrayfloat.d \
36 arrayint.d \
37 arrayreal.d \
38 arrayshort.d \
39 cast_.d \
40 cover.d \
41 dmain2.d \
42 invariant.d \
43 invariant_.d \
44 lifetime.d \
45 memory.d \
46 memset.d \
47 obj.d \
48 object_.d \
49 qsort.d \
50 switch_.d \
51 trace.d
52 # NOTE: trace.d and cover.d are not necessary for a successful build
53 # as both are used for debugging features (profiling and coverage)
54 # NOTE: a pre-compiled minit.obj has been provided in dmd for Win32 and
55 # minit.asm is not used by dmd for Linux
56
57 MODULES_UTIL= \
58 util\console.d \
59 util\cpuid.d \
60 util\ctype.d \
61 util\string.d \
62 util\utf.d
63
64 MODULES_TI= \
65 typeinfo\ti_AC.d \
66 typeinfo\ti_Acdouble.d \
67 typeinfo\ti_Acfloat.d \
68 typeinfo\ti_Acreal.d \
69 typeinfo\ti_Adouble.d \
70 typeinfo\ti_Afloat.d \
71 typeinfo\ti_Ag.d \
72 typeinfo\ti_Aint.d \
73 typeinfo\ti_Along.d \
74 typeinfo\ti_Areal.d \
75 typeinfo\ti_Ashort.d \
76 typeinfo\ti_byte.d \
77 typeinfo\ti_C.d \
78 typeinfo\ti_cdouble.d \
79 typeinfo\ti_cfloat.d \
80 typeinfo\ti_char.d \
81 typeinfo\ti_creal.d \
82 typeinfo\ti_dchar.d \
83 typeinfo\ti_delegate.d \
84 typeinfo\ti_double.d \
85 typeinfo\ti_float.d \
86 typeinfo\ti_idouble.d \
87 typeinfo\ti_ifloat.d \
88 typeinfo\ti_int.d \
89 typeinfo\ti_ireal.d \
90 typeinfo\ti_long.d \
91 typeinfo\ti_ptr.d \
92 typeinfo\ti_real.d \
93 typeinfo\ti_short.d \
94 typeinfo\ti_ubyte.d \
95 typeinfo\ti_uint.d \
96 typeinfo\ti_ulong.d \
97 typeinfo\ti_ushort.d \
98 typeinfo\ti_void.d \
99 typeinfo\ti_wchar.d
100
101 C_SRCS=complex.c critical.c deh.c monitor.c
102
103 # Symbols
104
105 CC=dmc
106 DMD=dmd
107 DOCFLAGS=-version=DDoc
108 DFLAGS_release=-d -release -O -inline -w -nofloat
109 DFLAGS_debug=-d -g -w -nofloat
110 DFLAGS_unittest=$(DFLAGS_release) -unittest
111 CFLAGS_release=-mn -6 -r
112 CFLAGS_debug=-g -mn -6 -r
113 CFLAGS_unittest=$(CFLAGS_release)
114
115 # Derived symbols
116
117 C_OBJS=complex.obj critical.obj deh.obj monitor.obj
118 AS_OBJS=minit.obj
119 ALL_MODULES=$(MODULES_BASE) $(MODULES_UTIL) $(MODULES_TI)
120 D_SRCS=$(ALL_MODULES)
121 ALLLIBS=\
122 $(LIBDIR)\debug\$(LIBBASENAME) \
123 $(LIBDIR)\release\$(LIBBASENAME) \
124 $(LIBDIR)\unittest\$(LIBBASENAME)
125
126 # Patterns
127
128 #$(LIBDIR)\%\$(LIBBASENAME) : $(D_SRCS) $(C_SRCS) $(AS_OBJS)
129 # $(CC) -c $(CFLAGS_$*) $(C_SRCS)
130 # $(DMD) $(DFLAGS_$*) -lib -of$@ $(D_SRCS) $(C_OBJS) $(AS_OBJS)
131 # del $(C_OBJS)
132
133 #$(DOCDIR)\%.html : %.d
134 # $(DMD) -c -d -o- -Df$@ $<
135
136 #$(IMPDIR)\%.di : %.d
137 # $(DMD) -c -d -o- -Hf$@ $<
138
139 # Patterns - debug
140
141 $(LIBDIR)\debug\$(LIBBASENAME) : $(D_SRCS) $(C_SRCS) $(AS_OBJS)
142 $(CC) -c $(CFLAGS_debug) $(C_SRCS)
143 $(DMD) $(DFLAGS_debug) -lib -of$@ $(D_SRCS) $(C_OBJS) $(AS_OBJS)
144 del $(C_OBJS)
145
146 # Patterns - release
147
148 $(LIBDIR)\release\$(LIBBASENAME) : $(D_SRCS) $(C_SRCS) $(AS_OBJS)
149 $(CC) -c $(CFLAGS_release) $(C_SRCS)
150 $(DMD) $(DFLAGS_release) -lib -of$@ $(D_SRCS) $(C_OBJS) $(AS_OBJS)
151 del $(C_OBJS)
152
153 # Patterns - unittest
154
155 $(LIBDIR)\unittest\$(LIBBASENAME) : $(D_SRCS) $(C_SRCS) $(AS_OBJS)
156 $(CC) -c $(CFLAGS_unittest) $(C_SRCS)
157 $(DMD) $(DFLAGS_unittest) -lib -of$@ $(D_SRCS) $(C_OBJS) $(AS_OBJS)
158 del $(C_OBJS)
159
160 # Patterns - asm
161
162 minit.obj : minit.asm
163 $(CC) -c $**
164
165 # Rulez
166
167 all : $(BUILDS) doc
168
169 debug : $(LIBDIR)\debug\$(LIBBASENAME) $(IMPORTS)
170 release : $(LIBDIR)\release\$(LIBBASENAME) $(IMPORTS)
171 unittest : $(LIBDIR)\unittest\$(LIBBASENAME) $(IMPORTS)
172 #doc : $(DOCS)
173
174 clean :
175 del $(IMPORTS) $(DOCS) $(ALLLIBS)