]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/valgrind/src/valgrind-3.6.0-svn/VEX/Makefile-gcc
update
[l4.git] / l4 / pkg / valgrind / src / valgrind-3.6.0-svn / VEX / Makefile-gcc
1
2 PUB_HEADERS =   pub/libvex_basictypes.h                 \
3                 pub/libvex_ir.h                         \
4                 pub/libvex.h                            \
5                 pub/libvex_trc_values.h                 \
6                 pub/libvex_emwarn.h                     \
7                 pub/libvex_guest_x86.h                  \
8                 pub/libvex_guest_amd64.h                \
9                 pub/libvex_guest_arm.h                  \
10                 pub/libvex_guest_ppc32.h                \
11                 pub/libvex_guest_ppc64.h                \
12                 pub/libvex_guest_s390x.h                \
13                 pub/libvex_s390x_common.h               \
14                 pub/libvex_guest_offsets.h
15
16 PRIV_HEADERS =  priv/host_x86_defs.h                    \
17                 priv/host_amd64_defs.h                  \
18                 priv/host_arm_defs.h                    \
19                 priv/host_ppc_defs.h                    \
20                 priv/host_s390_defs.h                   \
21                 priv/host_s390_disasm.h                 \
22                 priv/host_generic_regs.h                \
23                 priv/host_generic_simd64.h              \
24                 priv/host_generic_simd128.h             \
25                 priv/main_globals.h                     \
26                 priv/main_util.h                        \
27                 priv/guest_generic_x87.h                \
28                 priv/guest_generic_bb_to_IR.h           \
29                 priv/guest_x86_defs.h                   \
30                 priv/guest_amd64_defs.h                 \
31                 priv/guest_arm_defs.h                   \
32                 priv/guest_ppc_defs.h                   \
33                 priv/ir_match.h                         \
34                 priv/ir_opt.h
35
36 LIB_OBJS =      priv/ir_defs.o                          \
37                 priv/ir_match.o                         \
38                 priv/ir_opt.o                           \
39                 priv/main_main.o                        \
40                 priv/main_globals.o                     \
41                 priv/main_util.o                        \
42                 priv/host_x86_defs.o                    \
43                 priv/host_amd64_defs.o                  \
44                 priv/host_arm_defs.o                    \
45                 priv/host_ppc_defs.o                    \
46                 priv/host_s390_defs.o                   \
47                 priv/host_x86_isel.o                    \
48                 priv/host_amd64_isel.o                  \
49                 priv/host_arm_isel.o                    \
50                 priv/host_ppc_isel.o                    \
51                 priv/host_s390_isel.o                   \
52                 priv/host_s390_disasm.o                 \
53                 priv/host_generic_regs.o                \
54                 priv/host_generic_simd64.o              \
55                 priv/host_generic_simd128.o             \
56                 priv/host_generic_reg_alloc2.o          \
57                 priv/guest_generic_x87.o                \
58                 priv/guest_generic_bb_to_IR.o           \
59                 priv/guest_x86_helpers.o                \
60                 priv/guest_amd64_helpers.o              \
61                 priv/guest_arm_helpers.o                \
62                 priv/guest_ppc_helpers.o                \
63                 priv/guest_s390_helpers.o               \
64                 priv/guest_x86_toIR.o                   \
65                 priv/guest_amd64_toIR.o                 \
66                 priv/guest_arm_toIR.o                   \
67                 priv/guest_ppc_toIR.o                   \
68                 priv/guest_s390_toIR.o
69
70 PUB_INCLUDES = -Ipub
71
72 # Do not add any priv/host-ARCH or priv/guest-ARCH directories to this
73 # list, as they contain duplicate file names (each host has a hdefs.h,
74 # for example).
75 PRIV_INCLUDES = -Ipriv
76
77
78 ifndef CC
79    CC = gcc 
80 endif 
81 ifndef AR
82    AR = ar 
83 endif
84
85 # Put -g -O2 after any flags we inherit from V.  -O2 vs -O
86 # makes a significant difference, at least with gcc4.
87 CCFLAGS = -Wall -Wmissing-prototypes -Wshadow \
88                 -Wpointer-arith -Wbad-function-cast -Wcast-qual \
89                 -Wcast-align -Wmissing-declarations \
90                 $(EXTRA_CFLAGS) -g -O2 -fstrict-aliasing
91
92 #CC = icc
93 #CCFLAGS = -g -Wall -wd981 -wd279 -wd1287 -wd869 -wd111 -wd188 -wd186
94 # 981: operands are evaluated in unspecified order
95 # 279: controlling expression is constant
96 # 1287: invalid attribute for parameter
97 # 869: parameter "..." was never referenced
98 # 111: statement is unreachable
99 # 188: enumerated type mixed with another type
100 # (the above are for icc 8.0 -- 8.0.0.55 I think)
101 # 186: pointless comparison of unsigned integer with zero
102
103 # kludge: stops V biarch builds screwing up at -j 2 or above
104 # The Right fix is to autoconf/automake-ise vex.
105 .NOTPARALLEL:
106
107 all: vex
108
109 # Empty, needed for Valgrind
110 install:
111
112 scratch: clean all
113
114 vex: libvex.a test_main.o
115         $(CC) $(CCFLAGS) -o vex test_main.o libvex.a
116
117 libvex.a: $(LIB_OBJS)
118         rm -f libvex.a
119         $(AR) crus libvex.a $(LIB_OBJS)
120
121
122 # The idea with these TAG-s is to mark the flavour of libvex.a 
123 # most recently built, so if the same target is re-requested, we
124 # don't rebuild everything, but if a different one is requested
125 # then we scrub everything and start over.
126
127 libvex-x86-linux.a: TAG-x86-linux libvex.a
128         mv -f libvex.a libvex-x86-linux.a
129 TAG-x86-linux:
130         if [ ! -f TAG-x86-linux ] ; then rm -f $(LIB_OBJS) TAG-* libvex.a ; fi
131         touch TAG-x86-linux
132
133 libvex-amd64-linux.a: TAG-amd64-linux libvex.a
134         mv -f libvex.a libvex-amd64-linux.a
135 TAG-amd64-linux:
136         if [ ! -f TAG-amd64-linux ] ; then rm -f $(LIB_OBJS) TAG-* libvex.a ; fi
137         touch TAG-amd64-linux
138
139 libvex-ppc32-linux.a: TAG-ppc32-linux libvex.a
140         mv -f libvex.a libvex-ppc32-linux.a
141 TAG-ppc32-linux:
142         if [ ! -f TAG-ppc32-linux ] ; then rm -f $(LIB_OBJS) TAG-* libvex.a ; fi
143         touch TAG-ppc32-linux
144
145 libvex-ppc64-linux.a: TAG-ppc64-linux libvex.a
146         mv -f libvex.a libvex-ppc64-linux.a
147 TAG-ppc64-linux:
148         if [ ! -f TAG-ppc64-linux ] ; then rm -f $(LIB_OBJS) TAG-* libvex.a ; fi
149         touch TAG-ppc64-linux
150
151 libvex-ppc32-aix5.a: TAG-ppc32-aix5 libvex.a
152         mv -f libvex.a libvex-ppc32-aix5.a
153 TAG-ppc32-aix5:
154         if [ ! -f TAG-ppc32-aix5 ] ; then rm -f $(LIB_OBJS) TAG-* libvex.a ; fi
155         touch TAG-ppc32-aix5
156
157 libvex-ppc64-aix5.a: TAG-ppc64-aix5 libvex.a
158         mv -f libvex.a libvex-ppc64-aix5.a
159 TAG-ppc64-aix5:
160         if [ ! -f TAG-ppc64-aix5 ] ; then rm -f $(LIB_OBJS) TAG-* libvex.a ; fi
161         touch TAG-ppc64-aix5
162
163 libvex-x86-darwin.a: TAG-x86-darwin libvex.a
164         mv -f libvex.a libvex-x86-darwin.a
165 TAG-x86-darwin:
166         if [ ! -f TAG-x86-darwin ] ; then rm -f $(LIB_OBJS) TAG-* libvex.a ; fi
167         touch TAG-x86-darwin
168
169 libvex-amd64-darwin.a: TAG-amd64-darwin libvex.a
170         mv -f libvex.a libvex-amd64-darwin.a
171 TAG-amd64-darwin:
172         if [ ! -f TAG-amd64-darwin ] ; then rm -f $(LIB_OBJS) TAG-* libvex.a ; fi
173         touch TAG-amd64-darwin
174
175 libvex-x86-l4re.a: TAG-x86-l4re libvex.a
176         mv -f libvex.a libvex-x86-l4re.a
177 TAG-x86-l4re:
178         if [ ! -f TAG_x86_l4re ] ; then rm -f $(LIB_OBJS) TAG_* libvex.a ; fi
179         touch TAG_x86_l4re
180
181
182 clean:
183         rm -f $(LIB_OBJS) *.a vex test_main.o TAG-* \
184                 pub/libvex_guest_offsets.h \
185                 auxprogs/genoffsets.s
186
187 minidist:
188         rm -f vex--minidist-2005MMDD.tar
189         tar cf vex--minidist-2005MMDD.tar $(PUB_HEADERS) $(PRIV_HEADERS) \
190                 test_main.c test_main.h                         \
191                 Makefile                                        \
192                 `echo $(LIB_OBJS) | sed "s/\.o/\.c/g"`
193         @echo 
194         @echo minidist done, size follows:
195         @ls -l vex--minidist-2005MMDD.tar
196         @echo
197
198 # This is very uggerly.  Need to sed out both "xyzzyN" and
199 # "xyzzy$N" since gcc on different targets emits the constants
200 # differently -- with a leading $ on x86/amd64 but none on ppc32/64.
201 pub/libvex_guest_offsets.h:
202         rm -f auxprogs/genoffsets.s
203         $(CC) $(CCFLAGS) -O -S -o auxprogs/genoffsets.s \
204                                 auxprogs/genoffsets.c
205         grep xyzzy auxprogs/genoffsets.s | grep define \
206            | sed "s/xyzzy\\$$//g" \
207            | sed "s/xyzzy#//g" \
208            | sed "s/xyzzy//g" \
209            > pub/libvex_guest_offsets.h
210         rm -f auxprogs/genoffsets.s
211
212
213 ALL_HEADERS  = $(PUB_HEADERS) $(PRIV_HEADERS)
214 ALL_INCLUDES = $(PUB_INCLUDES) $(PRIV_INCLUDES)
215
216 test_main.o: $(PUB_HEADERS) test_main.c test_main.h
217         $(CC) $(CCFLAGS) $(PUB_INCLUDES) -o test_main.o \
218                                          -c test_main.c
219
220 priv/ir_defs.o: $(ALL_HEADERS) priv/ir_defs.c
221         $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/ir_defs.o \
222                                          -c priv/ir_defs.c
223
224 priv/ir_match.o: $(ALL_HEADERS) priv/ir_match.c
225         $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/ir_match.o \
226                                          -c priv/ir_match.c
227
228 priv/ir_opt.o: $(ALL_HEADERS) priv/ir_opt.c
229         $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/ir_opt.o \
230                                          -c priv/ir_opt.c
231
232 priv/main_main.o: $(ALL_HEADERS) priv/main_main.c
233         $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/main_main.o \
234                                          -c priv/main_main.c
235
236 priv/main_globals.o: $(ALL_HEADERS) priv/main_globals.c
237         $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/main_globals.o \
238                                          -c priv/main_globals.c
239
240 priv/main_util.o: $(ALL_HEADERS) priv/main_util.c
241         $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/main_util.o \
242                                          -c priv/main_util.c
243
244 priv/host_x86_defs.o: $(ALL_HEADERS) priv/host_x86_defs.c
245         $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host_x86_defs.o \
246                                          -c priv/host_x86_defs.c
247
248 priv/host_amd64_defs.o: $(ALL_HEADERS) priv/host_amd64_defs.c
249         $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host_amd64_defs.o \
250                                          -c priv/host_amd64_defs.c
251
252 priv/host_arm_defs.o: $(ALL_HEADERS) priv/host_arm_defs.c
253         $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host_arm_defs.o \
254                                          -c priv/host_arm_defs.c
255
256 priv/host_ppc_defs.o: $(ALL_HEADERS) priv/host_ppc_defs.c
257         $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host_ppc_defs.o \
258                                          -c priv/host_ppc_defs.c
259
260 priv/host_s390_defs.o: $(ALL_HEADERS) priv/host_s390_defs.c
261         $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host_s390_defs.o \
262                                          -c priv/host_s390_defs.c
263
264 priv/host_x86_isel.o: $(ALL_HEADERS) priv/host_x86_isel.c
265         $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host_x86_isel.o \
266                                          -c priv/host_x86_isel.c
267
268 priv/host_amd64_isel.o: $(ALL_HEADERS) priv/host_amd64_isel.c
269         $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host_amd64_isel.o \
270                                          -c priv/host_amd64_isel.c
271
272 priv/host_arm_isel.o: $(ALL_HEADERS) priv/host_arm_isel.c
273         $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host_arm_isel.o \
274                                          -c priv/host_arm_isel.c
275
276 priv/host_ppc_isel.o: $(ALL_HEADERS) priv/host_ppc_isel.c
277         $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host_ppc_isel.o \
278                                          -c priv/host_ppc_isel.c
279
280 priv/host_s390_isel.o: $(ALL_HEADERS) priv/host_s390_isel.c
281         $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host_s390_isel.o \
282                                          -c priv/host_s390_isel.c
283
284 priv/host_generic_regs.o: $(ALL_HEADERS) priv/host_generic_regs.c
285         $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host_generic_regs.o \
286                                          -c priv/host_generic_regs.c
287
288 priv/host_generic_simd64.o: $(ALL_HEADERS) priv/host_generic_simd64.c
289         $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host_generic_simd64.o \
290                                          -c priv/host_generic_simd64.c
291
292 priv/host_generic_simd128.o: $(ALL_HEADERS) priv/host_generic_simd128.c
293         $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host_generic_simd128.o \
294                                          -c priv/host_generic_simd128.c
295
296 priv/host_generic_reg_alloc2.o: $(ALL_HEADERS) priv/host_generic_reg_alloc2.c
297         $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host_generic_reg_alloc2.o \
298                                          -c priv/host_generic_reg_alloc2.c
299
300 priv/guest_x86_toIR.o: $(ALL_HEADERS) priv/guest_x86_toIR.c
301         $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest_x86_toIR.o \
302                                          -c priv/guest_x86_toIR.c
303
304 priv/guest_generic_x87.o: $(ALL_HEADERS) priv/guest_generic_x87.c
305         $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest_generic_x87.o \
306                                          -c priv/guest_generic_x87.c
307
308 priv/guest_generic_bb_to_IR.o: $(ALL_HEADERS) priv/guest_generic_bb_to_IR.c
309         $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest_generic_bb_to_IR.o \
310                                          -c priv/guest_generic_bb_to_IR.c
311
312 priv/guest_x86_helpers.o: $(ALL_HEADERS) priv/guest_x86_helpers.c
313         $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest_x86_helpers.o \
314                                          -c priv/guest_x86_helpers.c
315
316 priv/guest_amd64_helpers.o: $(ALL_HEADERS) priv/guest_amd64_helpers.c
317         $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest_amd64_helpers.o \
318                                          -c priv/guest_amd64_helpers.c
319
320 priv/guest_amd64_toIR.o: $(ALL_HEADERS) priv/guest_amd64_toIR.c
321         $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest_amd64_toIR.o \
322                                          -c priv/guest_amd64_toIR.c
323
324 priv/guest_arm_helpers.o: $(ALL_HEADERS) priv/guest_arm_helpers.c
325         $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest_arm_helpers.o \
326                                          -c priv/guest_arm_helpers.c
327
328 priv/guest_arm_toIR.o: $(ALL_HEADERS) priv/guest_arm_toIR.c
329         $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest_arm_toIR.o \
330                                          -c priv/guest_arm_toIR.c
331
332 priv/guest_ppc_helpers.o: $(ALL_HEADERS) priv/guest_ppc_helpers.c
333         $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest_ppc_helpers.o \
334                                          -c priv/guest_ppc_helpers.c
335
336 priv/guest_s390_helpers.o: $(ALL_HEADERS) priv/guest_s390_helpers.c
337         $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest_s390_helpers.o \
338                                          -c priv/guest_s390_helpers.c
339
340 priv/guest_ppc_toIR.o: $(ALL_HEADERS) priv/guest_ppc_toIR.c
341         $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest_ppc_toIR.o \
342                                          -c priv/guest_ppc_toIR.c
343
344 priv/guest_s390_toIR.o: $(ALL_HEADERS) priv/guest_s390_toIR.c
345         $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest_s390_toIR.o \
346                                          -c priv/guest_s390_toIR.c
347
348 priv/host_s390_disasm.o: $(ALL_HEADERS) priv/host_s390_disasm.c
349         $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host_s390_disasm.o \
350                                          -c priv/host_s390_disasm.c