blob: 8a09482d46c03c94456500024586da025d05c085 [file] [log] [blame]
sewardjc5bfaee2004-07-22 17:25:03 +00001
2PUB_HEADERS = pub/libvex_basictypes.h \
3 pub/libvex_ir.h \
sewardj37a47aa2005-01-21 20:54:33 +00004 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 \
sewardj42065842005-01-27 16:04:08 +00009 pub/libvex_guest_arm.h \
sewardj600deec2005-03-21 01:03:49 +000010 pub/libvex_guest_ppc32.h \
ceriond0eae2d2005-12-23 11:43:01 +000011 pub/libvex_guest_ppc64.h \
sewardjd0e5fe72012-06-07 08:51:02 +000012 pub/libvex_guest_mips.h \
sewardj600deec2005-03-21 01:03:49 +000013 pub/libvex_guest_offsets.h
sewardjc5bfaee2004-07-22 17:25:03 +000014
sewardjd7383ba2004-07-27 10:54:21 +000015PRIV_HEADERS = priv/host-x86/hdefs.h \
sewardjb7a0a112005-02-01 16:06:14 +000016 priv/host-amd64/hdefs.h \
sewardj37a47aa2005-01-21 20:54:33 +000017 priv/host-arm/hdefs.h \
ceriond0eae2d2005-12-23 11:43:01 +000018 priv/host-ppc/hdefs.h \
sewardjd0e5fe72012-06-07 08:51:02 +000019 priv/host-mips/hdefs.h \
sewardjd7383ba2004-07-27 10:54:21 +000020 priv/host-generic/h_generic_regs.h \
sewardj37a47aa2005-01-21 20:54:33 +000021 priv/host-generic/h_generic_simd64.h \
sewardjc5bfaee2004-07-22 17:25:03 +000022 priv/main/vex_globals.h \
23 priv/main/vex_util.h \
sewardj52ff4cc2005-03-26 20:33:38 +000024 priv/guest-generic/g_generic_x87.h \
sewardjdb36c0f2005-07-03 00:05:31 +000025 priv/guest-generic/bb_to_IR.h \
sewardj37a47aa2005-01-21 20:54:33 +000026 priv/guest-x86/gdefs.h \
27 priv/guest-amd64/gdefs.h \
28 priv/guest-arm/gdefs.h \
ceriond0eae2d2005-12-23 11:43:01 +000029 priv/guest-ppc/gdefs.h \
sewardjd0e5fe72012-06-07 08:51:02 +000030 priv/guest-mips/gdefs.h \
sewardj37a47aa2005-01-21 20:54:33 +000031 priv/ir/irmatch.h \
32 priv/ir/iropt.h
sewardjc5bfaee2004-07-22 17:25:03 +000033
sewardjd7383ba2004-07-27 10:54:21 +000034LIB_OBJS = priv/ir/irdefs.o \
sewardj37a47aa2005-01-21 20:54:33 +000035 priv/ir/irmatch.o \
36 priv/ir/iropt.o \
sewardjc5bfaee2004-07-22 17:25:03 +000037 priv/main/vex_main.o \
38 priv/main/vex_globals.o \
39 priv/main/vex_util.o \
sewardjd7383ba2004-07-27 10:54:21 +000040 priv/host-x86/hdefs.o \
sewardjb7a0a112005-02-01 16:06:14 +000041 priv/host-amd64/hdefs.o \
sewardj37a47aa2005-01-21 20:54:33 +000042 priv/host-arm/hdefs.o \
ceriond0eae2d2005-12-23 11:43:01 +000043 priv/host-ppc/hdefs.o \
sewardjd7383ba2004-07-27 10:54:21 +000044 priv/host-x86/isel.o \
sewardjb7a0a112005-02-01 16:06:14 +000045 priv/host-amd64/isel.o \
sewardj37a47aa2005-01-21 20:54:33 +000046 priv/host-arm/isel.o \
ceriond0eae2d2005-12-23 11:43:01 +000047 priv/host-ppc/isel.o \
sewardjd0e5fe72012-06-07 08:51:02 +000048 priv/host-mips/isel.o \
sewardjd7383ba2004-07-27 10:54:21 +000049 priv/host-generic/h_generic_regs.o \
sewardj37a47aa2005-01-21 20:54:33 +000050 priv/host-generic/h_generic_simd64.o \
51 priv/host-generic/reg_alloc2.o \
sewardj52ff4cc2005-03-26 20:33:38 +000052 priv/guest-generic/g_generic_x87.o \
sewardjdb36c0f2005-07-03 00:05:31 +000053 priv/guest-generic/bb_to_IR.o \
sewardjd7383ba2004-07-27 10:54:21 +000054 priv/guest-x86/ghelpers.o \
sewardj37a47aa2005-01-21 20:54:33 +000055 priv/guest-amd64/ghelpers.o \
56 priv/guest-arm/ghelpers.o \
ceriond0eae2d2005-12-23 11:43:01 +000057 priv/guest-ppc/ghelpers.o \
sewardjd0e5fe72012-06-07 08:51:02 +000058 priv/guest-mips/ghelpers.o \
sewardj37a47aa2005-01-21 20:54:33 +000059 priv/guest-x86/toIR.o \
60 priv/guest-amd64/toIR.o \
sewardj42065842005-01-27 16:04:08 +000061 priv/guest-arm/toIR.o \
sewardjd0e5fe72012-06-07 08:51:02 +000062 priv/guest-ppc/toIR.o \
63 priv/guest-mips/toIR.o
sewardjc5bfaee2004-07-22 17:25:03 +000064
65PUB_INCLUDES = -Ipub
66
sewardjd7383ba2004-07-27 10:54:21 +000067# Do not add any priv/host-ARCH or priv/guest-ARCH directories to this
68# list, as they contain duplicate file names (each host has a hdefs.h,
69# for example).
70PRIV_INCLUDES = -Ipriv
sewardjc5bfaee2004-07-22 17:25:03 +000071
72
sewardj37a47aa2005-01-21 20:54:33 +000073#CC = gcc
sewardj42065842005-01-27 16:04:08 +000074#CCFLAGS = -g -O -Wall -Wmissing-prototypes -Wshadow -Winline \
75# -Wpointer-arith -Wbad-function-cast -Wcast-qual \
sewardj600deec2005-03-21 01:03:49 +000076# -Wcast-align -Wmissing-declarations \
sewardj42065842005-01-27 16:04:08 +000077# $(EXTRA_CFLAGS)
sewardjc5bfaee2004-07-22 17:25:03 +000078
79CC = icc
sewardj62d05432005-10-29 22:30:47 +000080CCFLAGS = -g -Wall -wd981 -wd279 -wd1287 -wd869 -wd111 -wd188 -wd186 -wd810
sewardjc5bfaee2004-07-22 17:25:03 +000081# 981: operands are evaluated in unspecified order
82# 279: controlling expression is constant
83# 1287: invalid attribute for parameter
84# 869: parameter "..." was never referenced
sewardjc5bfaee2004-07-22 17:25:03 +000085# 111: statement is unreachable
sewardj43e336c2005-01-28 01:53:38 +000086# 188: enumerated type mixed with another type
sewardjc5bfaee2004-07-22 17:25:03 +000087# (the above are for icc 8.0 -- 8.0.0.55 I think)
sewardj52ff4cc2005-03-26 20:33:38 +000088# 186: pointless comparison of unsigned integer with zero
sewardj62d05432005-10-29 22:30:47 +000089# 810: conversion from ... to ... may lose significant bits
sewardjb7a0a112005-02-01 16:06:14 +000090
sewardj37a47aa2005-01-21 20:54:33 +000091all: vex
sewardjd7383ba2004-07-27 10:54:21 +000092
cerione1106f72005-02-16 09:09:46 +000093scratch: clean version all
94
sewardjd7383ba2004-07-27 10:54:21 +000095vex: libvex.a test_main.o
96 $(CC) $(CCFLAGS) -o vex test_main.o libvex.a
sewardjc5bfaee2004-07-22 17:25:03 +000097
98libvex.a: $(LIB_OBJS)
99 rm -f libvex.a
100 ar clq libvex.a $(LIB_OBJS)
101
102clean:
sewardj600deec2005-03-21 01:03:49 +0000103 rm -f $(LIB_OBJS) libvex.a vex test_main.o \
104 priv/main/vex_svnversion.h \
105 pub/libvex_guest_offsets.h
sewardjc5bfaee2004-07-22 17:25:03 +0000106
sewardj37a47aa2005-01-21 20:54:33 +0000107version:
108 rm -f priv/main/vex_svnversion.h
109 echo -n "\"" > priv/main/vex_svnversion.h
110 svnversion -n . >> priv/main/vex_svnversion.h
111 echo "\"" >> priv/main/vex_svnversion.h
112
113minidist: version
114 rm -f vex--minidist-2005MMDD.tar
115 tar cf vex--minidist-2005MMDD.tar $(PUB_HEADERS) $(PRIV_HEADERS) \
116 priv/main/vex_svnversion.h \
117 test_main.c test_main.h \
118 Makefile \
119 `echo $(LIB_OBJS) | sed "s/\.o/\.c/g"`
120 @echo
121 @echo minidist done, size and svnversion follow:
122 @ls -l vex--minidist-2005MMDD.tar
123 @cat priv/main/vex_svnversion.h
124 @echo
sewardjc5bfaee2004-07-22 17:25:03 +0000125
sewardj600deec2005-03-21 01:03:49 +0000126pub/libvex_guest_offsets.h:
127 gcc -Wall -g -o auxprogs/genoffsets auxprogs/genoffsets.c
128 ./auxprogs/genoffsets > pub/libvex_guest_offsets.h
129
sewardjc5bfaee2004-07-22 17:25:03 +0000130
131ALL_HEADERS = $(PUB_HEADERS) $(PRIV_HEADERS)
132ALL_INCLUDES = $(PUB_INCLUDES) $(PRIV_INCLUDES)
133
sewardj37a47aa2005-01-21 20:54:33 +0000134test_main.o: $(PUB_HEADERS) test_main.c test_main.h
sewardjc5bfaee2004-07-22 17:25:03 +0000135 $(CC) $(CCFLAGS) $(PUB_INCLUDES) -o test_main.o \
136 -c test_main.c
137
sewardjd7383ba2004-07-27 10:54:21 +0000138priv/ir/irdefs.o: $(ALL_HEADERS) priv/ir/irdefs.c
139 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/ir/irdefs.o \
140 -c priv/ir/irdefs.c
sewardjc5bfaee2004-07-22 17:25:03 +0000141
sewardj37a47aa2005-01-21 20:54:33 +0000142priv/ir/irmatch.o: $(ALL_HEADERS) priv/ir/irmatch.c
143 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/ir/irmatch.o \
144 -c priv/ir/irmatch.c
145
146priv/ir/iropt.o: $(ALL_HEADERS) priv/ir/iropt.c
147 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/ir/iropt.o \
148 -c priv/ir/iropt.c
149
150priv/main/vex_main.o: $(ALL_HEADERS) priv/main/vex_main.c \
151 priv/main/vex_svnversion.h
sewardjc5bfaee2004-07-22 17:25:03 +0000152 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/main/vex_main.o \
153 -c priv/main/vex_main.c
154
155priv/main/vex_globals.o: $(ALL_HEADERS) priv/main/vex_globals.c
156 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/main/vex_globals.o \
157 -c priv/main/vex_globals.c
158
159priv/main/vex_util.o: $(ALL_HEADERS) priv/main/vex_util.c
160 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/main/vex_util.o \
161 -c priv/main/vex_util.c
162
sewardjd7383ba2004-07-27 10:54:21 +0000163priv/host-x86/hdefs.o: $(ALL_HEADERS) priv/host-x86/hdefs.c
164 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-x86/hdefs.o \
165 -c priv/host-x86/hdefs.c
sewardjc5bfaee2004-07-22 17:25:03 +0000166
sewardjb7a0a112005-02-01 16:06:14 +0000167priv/host-amd64/hdefs.o: $(ALL_HEADERS) priv/host-amd64/hdefs.c
168 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-amd64/hdefs.o \
169 -c priv/host-amd64/hdefs.c
170
sewardj37a47aa2005-01-21 20:54:33 +0000171priv/host-arm/hdefs.o: $(ALL_HEADERS) priv/host-arm/hdefs.c
172 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-arm/hdefs.o \
173 -c priv/host-arm/hdefs.c
174
ceriond0eae2d2005-12-23 11:43:01 +0000175priv/host-ppc/hdefs.o: $(ALL_HEADERS) priv/host-ppc/hdefs.c
176 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-ppc/hdefs.o \
177 -c priv/host-ppc/hdefs.c
cerionbcf8c3e2005-02-04 16:17:07 +0000178
sewardjd0e5fe72012-06-07 08:51:02 +0000179priv/host-mips/hdefs.o: $(ALL_HEADERS) priv/host-mips/hdefs.c
180 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-mips/hdefs.o \
181 -c priv/host-mips/hdefs.c
182
sewardjd7383ba2004-07-27 10:54:21 +0000183priv/host-x86/isel.o: $(ALL_HEADERS) priv/host-x86/isel.c
184 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-x86/isel.o \
185 -c priv/host-x86/isel.c
sewardjc5bfaee2004-07-22 17:25:03 +0000186
sewardjb7a0a112005-02-01 16:06:14 +0000187priv/host-amd64/isel.o: $(ALL_HEADERS) priv/host-amd64/isel.c
188 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-amd64/isel.o \
189 -c priv/host-amd64/isel.c
190
sewardj37a47aa2005-01-21 20:54:33 +0000191priv/host-arm/isel.o: $(ALL_HEADERS) priv/host-arm/isel.c
192 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-arm/isel.o \
193 -c priv/host-arm/isel.c
194
ceriond0eae2d2005-12-23 11:43:01 +0000195priv/host-ppc/isel.o: $(ALL_HEADERS) priv/host-ppc/isel.c
196 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-ppc/isel.o \
197 -c priv/host-ppc/isel.c
cerionbcf8c3e2005-02-04 16:17:07 +0000198
sewardjd0e5fe72012-06-07 08:51:02 +0000199priv/host-mips/isel.o: $(ALL_HEADERS) priv/host-mips/isel.c
200 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-mips/isel.o \
201 -c priv/host-mips/isel.c
202
sewardjd7383ba2004-07-27 10:54:21 +0000203priv/host-generic/h_generic_regs.o: $(ALL_HEADERS) priv/host-generic/h_generic_regs.c
204 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-generic/h_generic_regs.o \
205 -c priv/host-generic/h_generic_regs.c
sewardjc5bfaee2004-07-22 17:25:03 +0000206
sewardj37a47aa2005-01-21 20:54:33 +0000207priv/host-generic/h_generic_simd64.o: $(ALL_HEADERS) priv/host-generic/h_generic_simd64.c
208 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-generic/h_generic_simd64.o \
209 -c priv/host-generic/h_generic_simd64.c
210
211priv/host-generic/reg_alloc2.o: $(ALL_HEADERS) priv/host-generic/reg_alloc2.c
212 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-generic/reg_alloc2.o \
213 -c priv/host-generic/reg_alloc2.c
sewardjc5bfaee2004-07-22 17:25:03 +0000214
sewardjd7383ba2004-07-27 10:54:21 +0000215priv/guest-x86/toIR.o: $(ALL_HEADERS) priv/guest-x86/toIR.c
216 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-x86/toIR.o \
217 -c priv/guest-x86/toIR.c
sewardj36ca5132004-07-24 13:12:23 +0000218
sewardj52ff4cc2005-03-26 20:33:38 +0000219priv/guest-generic/g_generic_x87.o: $(ALL_HEADERS) priv/guest-generic/g_generic_x87.c
220 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-generic/g_generic_x87.o \
221 -c priv/guest-generic/g_generic_x87.c
222
sewardjdb36c0f2005-07-03 00:05:31 +0000223priv/guest-generic/bb_to_IR.o: $(ALL_HEADERS) priv/guest-generic/bb_to_IR.c
224 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-generic/bb_to_IR.o \
225 -c priv/guest-generic/bb_to_IR.c
226
sewardjd7383ba2004-07-27 10:54:21 +0000227priv/guest-x86/ghelpers.o: $(ALL_HEADERS) priv/guest-x86/ghelpers.c
228 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-x86/ghelpers.o \
229 -c priv/guest-x86/ghelpers.c
sewardj37a47aa2005-01-21 20:54:33 +0000230
231priv/guest-amd64/ghelpers.o: $(ALL_HEADERS) priv/guest-amd64/ghelpers.c
232 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-amd64/ghelpers.o \
233 -c priv/guest-amd64/ghelpers.c
234
235priv/guest-amd64/toIR.o: $(ALL_HEADERS) priv/guest-amd64/toIR.c
236 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-amd64/toIR.o \
237 -c priv/guest-amd64/toIR.c
238
239priv/guest-arm/ghelpers.o: $(ALL_HEADERS) priv/guest-arm/ghelpers.c
240 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-arm/ghelpers.o \
241 -c priv/guest-arm/ghelpers.c
242
243priv/guest-arm/toIR.o: $(ALL_HEADERS) priv/guest-arm/toIR.c
244 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-arm/toIR.o \
245 -c priv/guest-arm/toIR.c
sewardj42065842005-01-27 16:04:08 +0000246
ceriond0eae2d2005-12-23 11:43:01 +0000247priv/guest-ppc/ghelpers.o: $(ALL_HEADERS) priv/guest-ppc/ghelpers.c
248 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-ppc/ghelpers.o \
249 -c priv/guest-ppc/ghelpers.c
sewardj42065842005-01-27 16:04:08 +0000250
ceriond0eae2d2005-12-23 11:43:01 +0000251priv/guest-ppc/toIR.o: $(ALL_HEADERS) priv/guest-ppc/toIR.c
252 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-ppc/toIR.o \
253 -c priv/guest-ppc/toIR.c
sewardjd0e5fe72012-06-07 08:51:02 +0000254
255priv/guest-mips/ghelpers.o: $(ALL_HEADERS) priv/guest-mips/ghelpers.c
256 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-mips/ghelpers.o \
257 -c priv/guest-mips/ghelpers.c
258
259priv/guest-mips/toIR.o: $(ALL_HEADERS) priv/guest-mips/toIR.c
260 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-mips/toIR.o \
261 -c priv/guest-mips/toIR.c