]> git.llucax.com Git - software/druntime.git/blob - src/common/win32.mak
First attempt at support for dynamic library loading and unloading. Currently, only...
[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_TARGET=druntime-core.lib\r
14 LIB_MASK=druntime-core*.lib\r
15 \r
16 CP=xcopy /y\r
17 RM=del /f\r
18 MD=mkdir\r
19 \r
20 ADD_CFLAGS=\r
21 ADD_DFLAGS=\r
22 \r
23 CFLAGS=-mn -6 -r $(ADD_CFLAGS)\r
24 #CFLAGS=-g -mn -6 -r $(ADD_CFLAGS)\r
25 \r
26 DFLAGS=-release -O -inline -w -nofloat $(ADD_DFLAGS)\r
27 #DFLAGS=-g -w -nofloat $(ADD_DFLAGS)\r
28 \r
29 TFLAGS=-O -inline -w  -nofloat $(ADD_DFLAGS)\r
30 #TFLAGS=-g -w -nofloat $(ADD_DFLAGS)\r
31 \r
32 DOCFLAGS=-version=DDoc\r
33 \r
34 CC=dmc\r
35 LC=lib\r
36 DC=dmd\r
37 \r
38 INC_DEST=..\..\import\r
39 LIB_DEST=..\..\lib\r
40 DOC_DEST=..\..\doc\r
41 \r
42 .DEFAULT: .asm .c .cpp .d .html .obj\r
43 \r
44 .asm.obj:\r
45         $(CC) -c $<\r
46 \r
47 .c.obj:\r
48         $(CC) -c $(CFLAGS) $< -o$@\r
49 \r
50 .cpp.obj:\r
51         $(CC) -c $(CFLAGS) $< -o$@\r
52 \r
53 .d.obj:\r
54         $(DC) -c $(DFLAGS) -Hf$*.di $< -of$@\r
55 #       $(DC) -c $(DFLAGS) $< -of$@\r
56 \r
57 .d.html:\r
58         $(DC) -c -o- $(DOCFLAGS) -Df$*.html $<\r
59 \r
60 targets : lib doc\r
61 all     : lib doc\r
62 core    : lib\r
63 lib     : core.lib\r
64 doc     : core.doc\r
65 \r
66 ######################################################\r
67 \r
68 OBJ_CORE= \\r
69     core\bitmanip.obj \\r
70     core\exception.obj \\r
71     core\memory.obj \\r
72     core\runtime.obj \\r
73     core\thread.obj\r
74 \r
75 OBJ_STDC= \\r
76     core\stdc\errno.obj\r
77 \r
78 ALL_OBJS= \\r
79     $(OBJ_CORE) \\r
80     $(OBJ_STDC)\r
81 \r
82 ######################################################\r
83 \r
84 DOC_CORE= \\r
85     core\bitmanip.html \\r
86     core\exception.html \\r
87     core\memory.html \\r
88     core\runtime.html \\r
89     core\thread.html\r
90 \r
91 ALL_DOCS=\r
92 \r
93 ######################################################\r
94 \r
95 core.lib : $(LIB_TARGET)\r
96 \r
97 $(LIB_TARGET) : $(ALL_OBJS)\r
98         $(RM) $@\r
99         $(LC) -c -n $@ $(ALL_OBJS)\r
100 \r
101 core.doc : $(ALL_DOCS)\r
102         @echo Documentation generated.\r
103 \r
104 ######################################################\r
105 \r
106 ### bitmanip\r
107 \r
108 core\bitmanip.obj : core\bitmanip.d\r
109         $(DC) -c $(DFLAGS) core\bitmanip.d -of$@\r
110 \r
111 ### thread\r
112 \r
113 core\thread.obj : core\thread.d\r
114         $(DC) -c $(DFLAGS) -d -Hf$*.di core\thread.d -of$@\r
115 \r
116 ######################################################\r
117 \r
118 clean :\r
119         $(RM) /s .\*.di\r
120         $(RM) $(ALL_OBJS)\r
121         $(RM) $(ALL_DOCS)\r
122         $(RM) $(LIB_MASK)\r
123 \r
124 install :\r
125         $(MD) $(INC_DEST)\.\r
126         $(CP) /s *.di $(INC_DEST)\.\r
127         $(MD) $(DOC_DEST)\r
128         $(CP) /s *.html $(DOC_DEST)\.\r
129         $(MD) $(LIB_DEST)\r
130         $(CP) $(LIB_MASK) $(LIB_DEST)\.\r