root/branches/D1.0/src/dmd-win32.mak

Revision 71, 3.4 kB (checked in by sean, 3 years ago)

The "test-dmd" build script now works in a similar manner as Phobos and only tests user-visible modules. Testing implementation-level runtime code isn't terribly easy to do, given how the -unittest flag works in D.

  • Property svn:eol-style set to native
Line 
1 # Makefile to build the composite D runtime 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 runtime library
8 #   make doc
9 #       Generate documentation
10 #   make clean
11 #       Delete unneeded files created by build process
12
13 LIB_BASE=druntime-dmd
14 LIB_BUILD=
15 LIB_TARGET=$(LIB_BASE)$(LIB_BUILD).lib
16 LIB_MASK=$(LIB_BASE)*.lib
17 DUP_TARGET=druntime$(LIB_BUILD).lib
18 DUP_MASK=druntime*.lib
19 MAKE_LIB=lib
20
21 DIR_CC=common
22 DIR_RT=compiler\dmd
23 DIR_GC=gc\basic
24 DIR_GC_STUB=gc\stub
25
26 LIB_CC=$(DIR_CC)\druntime-core$(LIB_BUILD).lib
27 LIB_RT=$(DIR_RT)\druntime-rt-dmd$(LIB_BUILD).lib
28 LIB_GC=$(DIR_GC)\druntime-gc-basic$(LIB_BUILD).lib
29
30 CP=xcopy /y
31 RM=del /f
32 MD=mkdir
33
34 CC=dmc
35 LC=lib
36 DC=dmd
37
38 LIB_DEST=..\lib
39
40 ADD_CFLAGS=
41 ADD_DFLAGS=
42
43 CFLAGS_RELEASE=-mn -6 -r $(ADD_CFLAGS)
44 CFLAGS_DEBUG=-g -mn -6 -r $(ADD_CFLAGS)
45 CFLAGS=$(CFLAGS_RELEASE)
46 DFLAGS_RELEASE=-release -O -inline -w -nofloat $(ADD_DFLAGS)
47 DFLAGS_DEBUG=-g -w -nofloat $(ADD_DFLAGS)
48 DFLAGS=$(DFLAGS_RELEASE)
49 TFLAGS_RELEASE=-O -inline -w  -nofloat $(ADD_DFLAGS)
50 TFLAGS_DEBUG=-g -w -nofloat $(ADD_DFLAGS)
51 TFLAGS=$(TFLAGS_RELEASE)
52 targets : lib doc
53 all     : lib doc
54
55 ######################################################
56
57 OBJ_CORE= \
58     common\core\bitmanip.obj \
59     common\core\exception.obj \
60     common\core\memory.obj \
61     common\core\runtime.obj \
62     common\core\thread.obj \
63     common\core\vararg.obj
64 ALL_OBJS=
65
66 ######################################################
67
68 ALL_DOCS=
69
70 ######################################################
71
72 unittest : release $(OBJ_CORE)
73     $(DC) $(DFLAGS_RELEASE) -L/co -unittest unittest.d $(OBJ_CORE) -defaultlib=$(DUP_TARGET) -debuglib=$(DUP_TARGET)
74     unittest
75
76 release :
77     make -fdmd-win32.mak lib MAKE_LIB="release"
78
79 debug :
80     make -fdmd-win32.mak lib MAKE_LIB="debug" LIB_BUILD="-d"
81
82 ######################################################
83
84 lib : $(ALL_OBJS)
85     cd $(DIR_CC)
86     make -fwin32.mak $(MAKE_LIB) DC=$(DC) ADD_DFLAGS="$(ADD_DFLAGS)" ADD_CFLAGS="$(ADD_CFLAGS)"
87     cd ..
88     cd $(DIR_RT)
89     make -fwin32.mak $(MAKE_LIB) DC=$(DC) ADD_DFLAGS="$(ADD_DFLAGS)" ADD_CFLAGS="$(ADD_CFLAGS)"
90     cd ..\..
91     cd $(DIR_GC)
92     make -fwin32.mak $(MAKE_LIB) DC=$(DC) ADD_DFLAGS="$(ADD_DFLAGS)" ADD_CFLAGS="$(ADD_CFLAGS)"
93     cd ..\..
94     cd $(DIR_GC_STUB)
95     make -fwin32.mak $(MAKE_LIB) DC=$(DC) ADD_DFLAGS="$(ADD_DFLAGS)" ADD_CFLAGS="$(ADD_CFLAGS)"
96     cd ..\..
97     $(RM) $(LIB_TARGET)
98     $(LC) -c -n $(LIB_TARGET) $(LIB_CC) $(LIB_RT) $(LIB_GC)
99     $(RM) $(DUP_TARGET)
100     copy $(LIB_TARGET) $(DUP_TARGET)
101
102
103 doc : $(ALL_DOCS)
104     cd $(DIR_CC)
105     make -fwin32.mak doc DC=$(DC)
106     cd ..
107     cd $(DIR_RT)
108     make -fwin32.mak doc DC=$(DC)
109     cd ..\..
110     cd $(DIR_GC)
111     make -fwin32.mak doc DC=$(DC)
112     cd ..\..
113     cd $(DIR_GC_STUB)
114     make -fwin32.mak doc DC=$(DC)
115     cd ..\..
116
117 ######################################################
118
119 clean :
120     $(RM) /s *.di
121     $(RM) $(ALL_OBJS)
122     $(RM) $(ALL_DOCS)
123     cd $(DIR_CC)
124     make -fwin32.mak clean
125     cd ..
126     cd $(DIR_RT)
127     make -fwin32.mak clean
128     cd ..\..
129     cd $(DIR_GC)
130     make -fwin32.mak clean
131     cd ..\..
132     cd $(DIR_GC_STUB)
133     make -fwin32.mak clean
134     cd ..\..
135     $(RM) $(LIB_MASK)
136     $(RM) $(DUP_MASK)
137     $(RM) unittest.exe unittest.obj unittest.map
138
139 install :
140     cd $(DIR_CC)
141     make -fwin32.mak install
142     cd ..
143     cd $(DIR_RT)
144     make -fwin32.mak install
145     cd ..\..
146     cd $(DIR_GC)
147     make -fwin32.mak install
148     cd ..\..
149     cd $(DIR_GC_STUB)
150     make -fwin32.mak install
151     cd ..\..
152     $(CP) $(LIB_MASK) $(LIB_DEST)\.
153     $(CP) $(DUP_MASK) $(LIB_DEST)\.
Note: See TracBrowser for help on using the browser.