]> git.llucax.com Git - software/druntime.git/blob - src/common/posix.mak
* Reclassified most runtime-generated errors as Errors rather than Exceptions. This...
[software/druntime.git] / src / common / 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 $(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=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     core/bitmanip.o \\r
73     core/exception.o \\r
74     core/memory_.o \\r
75     core/runtime.o \\r
76     core/thread.o\r
77 \r
78 OBJ_STDC= \\r
79     core/stdc/errno.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     core/bitmanip.html \\r
89     core/exception.html \\r
90     core/memory.html \\r
91     core/runtime.html \\r
92     core/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 core/bitmanip.o : core/bitmanip.d\r
113         $(DC) -c $(DFLAGS) core/bitmanip.d -of$@\r
114 \r
115 ### memory\r
116 \r
117 core/memory_.o : core/memory.d\r
118         $(DC) -c $(DFLAGS) -Hf$*.di $< -of$@\r
119 \r
120 ### thread\r
121 \r
122 core/thread.o : core/thread.d\r
123         $(DC) -c $(DFLAGS) -d -Hf$*.di core/thread.d -of$@\r
124 \r
125 ######################################################\r
126 \r
127 clean :\r
128         find . -name "*.di" | xargs $(RM)\r
129         $(RM) $(ALL_OBJS)\r
130         $(RM) $(ALL_DOCS)\r
131         find . -name "$(LIB_MASK)" | xargs $(RM)\r
132 \r
133 install :\r
134         $(MD) $(INC_DEST)\r
135         find . -name "*.di" -exec cp -f {} $(INC_DEST)/{} \;\r
136         $(MD) $(DOC_DEST)\r
137         find . -name "*.html" -exec cp -f {} $(DOC_DEST)/{} \;\r
138         $(MD) $(LIB_DEST)\r
139         find . -name "$(LIB_MASK)" -exec cp -f {} $(LIB_DEST)/{} \;\r