]> git.llucax.com Git - software/druntime.git/blob - src/compiler/dmd/posix.mak
First commit of the D Runtime Project. This includes a fully functional runtime...
[software/druntime.git] / src / compiler / dmd / posix.mak
1 # Makefile to build the compiler runtime D library for Linux\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 compiler runtime 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-rt-dmd.a\r
14 LIB_MASK=libdruntime-rt-dmd*.a\r
15 \r
16 CP=cp -f\r
17 RM=rm -f\r
18 MD=mkdir -p\r
19 \r
20 CFLAGS=-O $(ADD_CFLAGS)\r
21 #CFLAGS=-g $(ADD_CFLAGS)\r
22 \r
23 DFLAGS=-release -O -inline -w -nofloat -version=Posix $(ADD_DFLAGS)\r
24 #DFLAGS=-g -w -nofloat -version=Posix $(ADD_DFLAGS)\r
25 \r
26 TFLAGS=-O -inline -w -nofloat -version=Posix $(ADD_DFLAGS)\r
27 #TFLAGS=-g -w -nofloat -version=Posix $(ADD_DFLAGS)\r
28 \r
29 DOCFLAGS=-version=DDoc -version=Posix\r
30 \r
31 CC=gcc\r
32 LC=$(AR) -qsv\r
33 DC=dmd\r
34 \r
35 LIB_DEST=../../../lib\r
36 \r
37 .SUFFIXES: .s .S .c .cpp .d .html .o\r
38 \r
39 .s.o:\r
40         $(CC) -c $(CFLAGS) $< -o$@\r
41 \r
42 .S.o:\r
43         $(CC) -c $(CFLAGS) $< -o$@\r
44 \r
45 .c.o:\r
46         $(CC) -c $(CFLAGS) $< -o$@\r
47 \r
48 .cpp.o:\r
49         g++ -c $(CFLAGS) $< -o$@\r
50 \r
51 .d.o:\r
52         $(DC) -c $(DFLAGS) $< -of$@\r
53 \r
54 .d.html:\r
55         $(DC) -c -o- $(DOCFLAGS) -Df$*.html dmd.ddoc $<\r
56 \r
57 targets : lib doc\r
58 all     : lib doc\r
59 lib     : dmd.lib\r
60 doc     : dmd.doc\r
61 \r
62 ######################################################\r
63 \r
64 OBJ_BASE= \\r
65     aaA.o \\r
66     aApply.o \\r
67     aApplyR.o \\r
68     adi.o \\r
69     alloca.o \\r
70     arraybyte.o \\r
71     arraycast.o \\r
72     arraycat.o \\r
73     arraydouble.o \\r
74     arrayfloat.o \\r
75     arrayint.o \\r
76     arrayreal.o \\r
77     arrayshort.o \\r
78     cast_.o \\r
79     cmath2.o \\r
80     complex.o \\r
81     cover.o \\r
82     critical.o \\r
83     deh2.o \\r
84     dmain2.o \\r
85     invariant_.o \\r
86     lifetime.o \\r
87     llmath.o \\r
88     memory.o \\r
89     memset.o \\r
90     monitor.o \\r
91     obj.o \\r
92     object_.o \\r
93     qsort.o \\r
94     switch_.o \\r
95     trace.o\r
96 # NOTE: trace.obj and cover.obj are not necessary for a successful build\r
97 #       as both are used for debugging features (profiling and coverage)\r
98 # NOTE: a pre-compiled minit.obj has been provided in dmd for Win32 and\r
99 #       minit.asm is not used by dmd for linux\r
100 # NOTE: deh.o is only needed for Win32, linux uses deh2.o\r
101 \r
102 OBJ_UTIL= \\r
103     util/console.o \\r
104     util/cpuid.o \\r
105     util/ctype.o \\r
106     util/string.o \\r
107     util/utf.o\r
108 \r
109 OBJ_TI= \\r
110     typeinfo/ti_AC.o \\r
111     typeinfo/ti_Acdouble.o \\r
112     typeinfo/ti_Acfloat.o \\r
113     typeinfo/ti_Acreal.o \\r
114     typeinfo/ti_Adouble.o \\r
115     typeinfo/ti_Afloat.o \\r
116     typeinfo/ti_Ag.o \\r
117     typeinfo/ti_Aint.o \\r
118     typeinfo/ti_Along.o \\r
119     typeinfo/ti_Areal.o \\r
120     typeinfo/ti_Ashort.o \\r
121     typeinfo/ti_byte.o \\r
122     typeinfo/ti_C.o \\r
123     typeinfo/ti_cdouble.o \\r
124     typeinfo/ti_cfloat.o \\r
125     typeinfo/ti_char.o \\r
126     typeinfo/ti_creal.o \\r
127     typeinfo/ti_dchar.o \\r
128     typeinfo/ti_delegate.o \\r
129     typeinfo/ti_double.o \\r
130     typeinfo/ti_float.o \\r
131     typeinfo/ti_idouble.o \\r
132     typeinfo/ti_ifloat.o \\r
133     typeinfo/ti_int.o \\r
134     typeinfo/ti_ireal.o \\r
135     typeinfo/ti_long.o \\r
136     typeinfo/ti_ptr.o \\r
137     typeinfo/ti_real.o \\r
138     typeinfo/ti_short.o \\r
139     typeinfo/ti_ubyte.o \\r
140     typeinfo/ti_uint.o \\r
141     typeinfo/ti_ulong.o \\r
142     typeinfo/ti_ushort.o \\r
143     typeinfo/ti_void.o \\r
144     typeinfo/ti_wchar.o\r
145 \r
146 ALL_OBJS= \\r
147     $(OBJ_BASE) \\r
148     $(OBJ_UTIL) \\r
149     $(OBJ_TI)\r
150 \r
151 ######################################################\r
152 \r
153 ALL_DOCS=\r
154 \r
155 ######################################################\r
156 \r
157 dmd.lib : $(LIB_TARGET)\r
158 \r
159 $(LIB_TARGET) : $(ALL_OBJS)\r
160         $(RM) $@\r
161         $(LC) $@ $(ALL_OBJS)\r
162 \r
163 dmd.doc : $(ALL_DOCS)\r
164         echo No documentation available.\r
165 \r
166 ######################################################\r
167 \r
168 clean :\r
169         find . -name "*.di" | xargs $(RM)\r
170         $(RM) $(ALL_OBJS)\r
171         $(RM) $(ALL_DOCS)\r
172         $(RM) $(LIB_MASK)\r
173 \r
174 install :\r
175         $(MD) $(LIB_DEST)\r
176         $(CP) $(LIB_MASK) $(LIB_DEST)/.\r