]> git.llucax.com Git - software/druntime.git/blob - src/core/posix.mak
Finished flattening D1/D2 differences. Except for one or two lines, all differences...
[software/druntime.git] / src / core / posix.mak
1 # Makefile to build the D runtime library core components for Posix\r
2 # Designed to work with GNU 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=libdruntime-core.a\r
14 LIB_MASK=libdruntime-core*.a\r
15 \r
16 CP=cp -f\r
17 RM=rm -f\r
18 MD=mkdir -p\r
19 \r
20 ADD_CFLAGS=\r
21 ADD_DFLAGS=\r
22 \r
23 CFLAGS=-O $(ADD_CFLAGS)\r
24 #CFLAGS=-g $(ADD_CFLAGS)\r
25 \r
26 DFLAGS=-release -O -inline -w -nofloat -version=Posix $(ADD_DFLAGS)\r
27 #DFLAGS=-g -w -nofloat -version=Posix $(ADD_DFLAGS)\r
28 \r
29 TFLAGS=-O -inline -w -nofloat -version=Posix $(ADD_DFLAGS)\r
30 #TFLAGS=-g -w -nofloat -version=Posix $(ADD_DFLAGS)\r
31 \r
32 DOCFLAGS=-version=DDoc -version=Posix\r
33 \r
34 CC=gcc\r
35 LC=$(AR) -qsv\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 .SUFFIXES: .s .S .c .cpp .d .html .o\r
43 \r
44 .s.o:\r
45         $(CC) -c $(CFLAGS) $< -o$@\r
46 \r
47 .S.o:\r
48         $(CC) -c $(CFLAGS) $< -o$@\r
49 \r
50 .c.o:\r
51         $(CC) -c $(CFLAGS) $< -o$@\r
52 \r
53 .cpp.o:\r
54         g++ -c $(CFLAGS) $< -o$@\r
55 \r
56 .d.o:\r
57         $(DC) -c $(DFLAGS) -Hf$*.di $< -of$@\r
58 #       $(DC) -c $(DFLAGS) $< -of$@\r
59 \r
60 .d.html:\r
61         $(DC) -c -o- $(DOCFLAGS) -Df$*.html $<\r
62 \r
63 targets : lib doc\r
64 all     : lib doc\r
65 core    : lib\r
66 lib     : core.lib\r
67 doc     : core.doc\r
68 \r
69 ######################################################\r
70 \r
71 OBJ_CORE= \\r
72     bitmanip.o \\r
73     exception.o \\r
74     memory.o \\r
75     runtime.o \\r
76     thread.o\r
77 \r
78 OBJ_STDC= \\r
79     stdc.o\r
80 \r
81 ALL_OBJS= \\r
82     $(OBJ_CORE) \\r
83     $(OBJ_STDC)\r
84 \r
85 ######################################################\r
86 \r
87 DOC_CORE= \\r
88     bitmanip.html \\r
89     exception.html \\r
90     memory.html \\r
91     runtime.html \\r
92     thread.html\r
93 \r
94 \r
95 ALL_DOCS=\r
96 \r
97 ######################################################\r
98 \r
99 core.lib : $(LIB_TARGET)\r
100 \r
101 $(LIB_TARGET) : $(ALL_OBJS)\r
102         $(RM) $@\r
103         $(LC) $@ $(ALL_OBJS)\r
104 \r
105 core.doc : $(ALL_DOCS)\r
106         echo Documentation generated.\r
107 \r
108 ######################################################\r
109 \r
110 ### bitmanip\r
111 \r
112 bitmanip.o : bitmanip.d\r
113         $(DC) -c $(DFLAGS) bitmanip.d -of$@\r
114 \r
115 ### thread\r
116 \r
117 thread.o : thread.d\r
118         $(DC) -c $(DFLAGS) -d -Hf$*.di thread.d -of$@\r
119 \r
120 ######################################################\r
121 \r
122 clean :\r
123         find . -name "*.di" | xargs $(RM)\r
124         $(RM) $(ALL_OBJS)\r
125         $(RM) $(ALL_DOCS)\r
126         find . -name "$(LIB_MASK)" | xargs $(RM)\r
127 \r
128 install :\r
129         $(MD) $(INC_DEST)\r
130         find . -name "*.di" -exec cp -f {} $(INC_DEST)/{} \;\r
131         $(MD) $(DOC_DEST)\r
132         find . -name "*.html" -exec cp -f {} $(DOC_DEST)/{} \;\r
133         $(MD) $(LIB_DEST)\r
134         find . -name "$(LIB_MASK)" -exec cp -f {} $(LIB_DEST)/{} \;\r