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