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