]> git.llucax.com Git - software/druntime.git/blob - src/common/win32.mak
* Removed "-debug" from the list of debug build flags. The purpose of debug builds...
[software/druntime.git] / src / common / win32.mak
1 # Makefile to build the D runtime library core components 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 common 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_BASE=druntime-core\r
14 LIB_BUILD=\r
15 LIB_TARGET=$(LIB_BASE)$(LIB_BUILD).lib\r
16 LIB_MASK=$(LIB_BASE)*.lib\r
17 \r
18 CP=xcopy /y\r
19 RM=del /f\r
20 MD=mkdir\r
21 \r
22 ADD_CFLAGS=\r
23 ADD_DFLAGS=\r
24 \r
25 CFLAGS_RELEASE=-mn -6 -r $(ADD_CFLAGS)\r
26 CFLAGS_DEBUG=-g -mn -6 -r $(ADD_CFLAGS)\r
27 CFLAGS=$(CFLAGS_RELEASE)\r
28 \r
29 DFLAGS_RELEASE=-release -O -inline -w -nofloat $(ADD_DFLAGS)\r
30 DFLAGS_DEBUG=-g -w -nofloat $(ADD_DFLAGS)\r
31 DFLAGS=$(DFLAGS_RELEASE)\r
32 \r
33 TFLAGS_RELEASE=-O -inline -w  -nofloat $(ADD_DFLAGS)\r
34 TFLAGS_DEBUG=-g -w -nofloat $(ADD_DFLAGS)\r
35 TFLAGS=$(TFLAGS_RELEASE)\r
36 \r
37 DOCFLAGS=-version=DDoc\r
38 \r
39 CC=dmc\r
40 LC=lib\r
41 DC=dmd\r
42 \r
43 INC_DEST=..\..\import\r
44 LIB_DEST=..\..\lib\r
45 DOC_DEST=..\..\doc\r
46 \r
47 .DEFAULT: .asm .c .cpp .d .html .obj\r
48 \r
49 .asm.obj:\r
50         $(CC) -c $<\r
51 \r
52 .c.obj:\r
53         $(CC) -c $(CFLAGS) $< -o$@\r
54 \r
55 .cpp.obj:\r
56         $(CC) -c $(CFLAGS) $< -o$@\r
57 \r
58 .d.obj:\r
59         $(DC) -c $(DFLAGS) -Hf$*.di $< -of$@\r
60 #       $(DC) -c $(DFLAGS) $< -of$@\r
61 \r
62 .d.html:\r
63         $(DC) -c -o- $(DOCFLAGS) -Df$*.html $<\r
64 \r
65 targets : lib doc\r
66 all     : lib doc\r
67 core    : lib\r
68 lib     : core.lib\r
69 doc     : core.doc\r
70 \r
71 ######################################################\r
72 \r
73 OBJ_CORE= \\r
74     core\bitmanip.obj \\r
75     core\exception.obj \\r
76     core\memory.obj \\r
77     core\runtime.obj \\r
78     core\thread.obj\r
79 \r
80 OBJ_STDC= \\r
81     core\stdc\errno.obj\r
82 \r
83 ALL_OBJS= \\r
84     $(OBJ_CORE) \\r
85     $(OBJ_STDC)\r
86 \r
87 ######################################################\r
88 \r
89 DOC_CORE= \\r
90     core\bitmanip.html \\r
91     core\exception.html \\r
92     core\memory.html \\r
93     core\runtime.html \\r
94     core\thread.html\r
95 \r
96 ######################################################\r
97 \r
98 ALL_DOCS=\r
99 \r
100 ######################################################\r
101 \r
102 unittest :\r
103         make -fwin32.mak DC="$(DC)" LIB_BUILD="" DFLAGS="$(DFLAGS_RELEASE) -unittest"\r
104 \r
105 release :\r
106         make -fwin32.mak DC="$(DC)" LIB_BUILD="" DFLAGS="$(DFLAGS_RELEASE)"\r
107 \r
108 debug :\r
109         make -fwin32.mak DC="$(DC)" LIB_BUILD="-d" DFLAGS="$(DFLAGS_DEBUG)"\r
110 \r
111 ######################################################\r
112 \r
113 core.lib : $(LIB_TARGET)\r
114 \r
115 $(LIB_TARGET) : $(ALL_OBJS)\r
116         $(RM) $@\r
117         $(LC) -c -n $@ $(ALL_OBJS)\r
118 \r
119 core.doc : $(ALL_DOCS)\r
120         @echo Documentation generated.\r
121 \r
122 ######################################################\r
123 \r
124 ### bitmanip\r
125 \r
126 core\bitmanip.obj : core\bitmanip.d\r
127         $(DC) -c $(DFLAGS) core\bitmanip.d -of$@\r
128 \r
129 ### thread\r
130 \r
131 core\thread.obj : core\thread.d\r
132         $(DC) -c $(DFLAGS) -d -Hf$*.di core\thread.d -of$@\r
133 \r
134 ######################################################\r
135 \r
136 clean :\r
137         $(RM) /s .\*.di\r
138         $(RM) $(ALL_OBJS)\r
139         $(RM) $(ALL_DOCS)\r
140         $(RM) $(LIB_MASK)\r
141 \r
142 install :\r
143         $(MD) $(INC_DEST)\.\r
144         $(CP) /s *.di $(INC_DEST)\.\r
145         $(MD) $(DOC_DEST)\r
146         $(CP) /s *.html $(DOC_DEST)\.\r
147         $(MD) $(LIB_DEST)\r
148         $(CP) $(LIB_MASK) $(LIB_DEST)\.\r