]> git.llucax.com Git - software/druntime.git/blob - src/dmd-win32.mak
* Auto type determination was broken in some unit tests. This has been fixed.
[software/druntime.git] / src / dmd-win32.mak
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 targets : lib doc
44 all     : lib doc
45
46 ######################################################
47
48 ALL_OBJS=
49
50 ######################################################
51
52 ALL_DOCS=
53
54 ######################################################
55
56 unittest :
57         make -fdmd-win32.mak lib MAKE_LIB="unittest"
58         dmd -unittest main ..\import\core\stdc\stdarg -defaultlib="$(DUP_TARGET)" -debuglib="$(DUP_TARGET)"
59         $(RM) stdarg.obj
60         main
61
62 release :
63         make -fdmd-win32.mak lib MAKE_LIB="release"
64
65 debug :
66         make -fdmd-win32.mak lib MAKE_LIB="debug" LIB_BUILD="-d"
67
68 ######################################################
69
70 lib : $(ALL_OBJS)
71         cd $(DIR_CC)
72         make -fwin32.mak $(MAKE_LIB) DC=$(DC) ADD_DFLAGS="$(ADD_DFLAGS)" ADD_CFLAGS="$(ADD_CFLAGS)"
73         cd ..
74         cd $(DIR_RT)
75         make -fwin32.mak $(MAKE_LIB) DC=$(DC) ADD_DFLAGS="$(ADD_DFLAGS)" ADD_CFLAGS="$(ADD_CFLAGS)"
76         cd ..\..
77         cd $(DIR_GC)
78         make -fwin32.mak $(MAKE_LIB) DC=$(DC) ADD_DFLAGS="$(ADD_DFLAGS)" ADD_CFLAGS="$(ADD_CFLAGS)"
79         cd ..\..
80         cd $(DIR_GC_STUB)
81         make -fwin32.mak $(MAKE_LIB) DC=$(DC) ADD_DFLAGS="$(ADD_DFLAGS)" ADD_CFLAGS="$(ADD_CFLAGS)"
82         cd ..\..
83         $(RM) $(LIB_TARGET)
84         $(LC) -c -n $(LIB_TARGET) $(LIB_CC) $(LIB_RT) $(LIB_GC)
85         $(RM) $(DUP_TARGET)
86         copy $(LIB_TARGET) $(DUP_TARGET)
87
88
89 doc : $(ALL_DOCS)
90         cd $(DIR_CC)
91         make -fwin32.mak doc DC=$(DC)
92         cd ..
93         cd $(DIR_RT)
94         make -fwin32.mak doc DC=$(DC)
95         cd ..\..
96         cd $(DIR_GC)
97         make -fwin32.mak doc DC=$(DC)
98         cd ..\..
99         cd $(DIR_GC_STUB)
100         make -fwin32.mak doc DC=$(DC)
101         cd ..\..
102
103 ######################################################
104
105 clean :
106         $(RM) /s *.di
107         $(RM) $(ALL_OBJS)
108         $(RM) $(ALL_DOCS)
109         cd $(DIR_CC)
110         make -fwin32.mak clean
111         cd ..
112         cd $(DIR_RT)
113         make -fwin32.mak clean
114         cd ..\..
115         cd $(DIR_GC)
116         make -fwin32.mak clean
117         cd ..\..
118         cd $(DIR_GC_STUB)
119         make -fwin32.mak clean
120         cd ..\..
121         $(RM) $(LIB_MASK)
122         $(RM) $(DUP_MASK)
123         $(RM) main.exe main.obj main.map
124
125 install :
126         cd $(DIR_CC)
127         make -fwin32.mak install
128         cd ..
129         cd $(DIR_RT)
130         make -fwin32.mak install
131         cd ..\..
132         cd $(DIR_GC)
133         make -fwin32.mak install
134         cd ..\..
135         cd $(DIR_GC_STUB)
136         make -fwin32.mak install
137         cd ..\..
138         $(CP) $(LIB_MASK) $(LIB_DEST)\.
139         $(CP) $(DUP_MASK) $(LIB_DEST)\.