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