blob: 77ee730d298639f3c7d739d5ab5cce80052466aa [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 \
11 pub/libvex_guest_offsets.h
sewardjc5bfaee2004-07-22 17:25:03 +000012
sewardjd7383ba2004-07-27 10:54:21 +000013PRIV_HEADERS = priv/host-x86/hdefs.h \
sewardjb7a0a112005-02-01 16:06:14 +000014 priv/host-amd64/hdefs.h \
sewardj37a47aa2005-01-21 20:54:33 +000015 priv/host-arm/hdefs.h \
cerionbcf8c3e2005-02-04 16:17:07 +000016 priv/host-ppc32/hdefs.h \
sewardjd7383ba2004-07-27 10:54:21 +000017 priv/host-generic/h_generic_regs.h \
sewardj37a47aa2005-01-21 20:54:33 +000018 priv/host-generic/h_generic_simd64.h \
sewardjc5bfaee2004-07-22 17:25:03 +000019 priv/main/vex_globals.h \
20 priv/main/vex_util.h \
sewardj52ff4cc2005-03-26 20:33:38 +000021 priv/guest-generic/g_generic_x87.h \
sewardjdb36c0f2005-07-03 00:05:31 +000022 priv/guest-generic/bb_to_IR.h \
sewardj37a47aa2005-01-21 20:54:33 +000023 priv/guest-x86/gdefs.h \
24 priv/guest-amd64/gdefs.h \
25 priv/guest-arm/gdefs.h \
sewardj42065842005-01-27 16:04:08 +000026 priv/guest-ppc32/gdefs.h \
sewardj37a47aa2005-01-21 20:54:33 +000027 priv/ir/irmatch.h \
28 priv/ir/iropt.h
sewardjc5bfaee2004-07-22 17:25:03 +000029
sewardjd7383ba2004-07-27 10:54:21 +000030LIB_OBJS = priv/ir/irdefs.o \
sewardj37a47aa2005-01-21 20:54:33 +000031 priv/ir/irmatch.o \
32 priv/ir/iropt.o \
sewardjc5bfaee2004-07-22 17:25:03 +000033 priv/main/vex_main.o \
34 priv/main/vex_globals.o \
35 priv/main/vex_util.o \
sewardjd7383ba2004-07-27 10:54:21 +000036 priv/host-x86/hdefs.o \
sewardjb7a0a112005-02-01 16:06:14 +000037 priv/host-amd64/hdefs.o \
sewardj37a47aa2005-01-21 20:54:33 +000038 priv/host-arm/hdefs.o \
cerionbcf8c3e2005-02-04 16:17:07 +000039 priv/host-ppc32/hdefs.o \
sewardjd7383ba2004-07-27 10:54:21 +000040 priv/host-x86/isel.o \
sewardjb7a0a112005-02-01 16:06:14 +000041 priv/host-amd64/isel.o \
sewardj37a47aa2005-01-21 20:54:33 +000042 priv/host-arm/isel.o \
cerionbcf8c3e2005-02-04 16:17:07 +000043 priv/host-ppc32/isel.o \
sewardjd7383ba2004-07-27 10:54:21 +000044 priv/host-generic/h_generic_regs.o \
sewardj37a47aa2005-01-21 20:54:33 +000045 priv/host-generic/h_generic_simd64.o \
46 priv/host-generic/reg_alloc2.o \
sewardj52ff4cc2005-03-26 20:33:38 +000047 priv/guest-generic/g_generic_x87.o \
sewardjdb36c0f2005-07-03 00:05:31 +000048 priv/guest-generic/bb_to_IR.o \
sewardjd7383ba2004-07-27 10:54:21 +000049 priv/guest-x86/ghelpers.o \
sewardj37a47aa2005-01-21 20:54:33 +000050 priv/guest-amd64/ghelpers.o \
51 priv/guest-arm/ghelpers.o \
sewardj42065842005-01-27 16:04:08 +000052 priv/guest-ppc32/ghelpers.o \
sewardj37a47aa2005-01-21 20:54:33 +000053 priv/guest-x86/toIR.o \
54 priv/guest-amd64/toIR.o \
sewardj42065842005-01-27 16:04:08 +000055 priv/guest-arm/toIR.o \
56 priv/guest-ppc32/toIR.o
sewardjc5bfaee2004-07-22 17:25:03 +000057
58PUB_INCLUDES = -Ipub
59
sewardjd7383ba2004-07-27 10:54:21 +000060# Do not add any priv/host-ARCH or priv/guest-ARCH directories to this
61# list, as they contain duplicate file names (each host has a hdefs.h,
62# for example).
63PRIV_INCLUDES = -Ipriv
sewardjc5bfaee2004-07-22 17:25:03 +000064
65
sewardj37a47aa2005-01-21 20:54:33 +000066#CC = gcc
sewardj42065842005-01-27 16:04:08 +000067#CCFLAGS = -g -O -Wall -Wmissing-prototypes -Wshadow -Winline \
68# -Wpointer-arith -Wbad-function-cast -Wcast-qual \
sewardj600deec2005-03-21 01:03:49 +000069# -Wcast-align -Wmissing-declarations \
sewardj42065842005-01-27 16:04:08 +000070# $(EXTRA_CFLAGS)
sewardjc5bfaee2004-07-22 17:25:03 +000071
72CC = icc
sewardj62d05432005-10-29 22:30:47 +000073CCFLAGS = -g -Wall -wd981 -wd279 -wd1287 -wd869 -wd111 -wd188 -wd186 -wd810
sewardjc5bfaee2004-07-22 17:25:03 +000074# 981: operands are evaluated in unspecified order
75# 279: controlling expression is constant
76# 1287: invalid attribute for parameter
77# 869: parameter "..." was never referenced
sewardjc5bfaee2004-07-22 17:25:03 +000078# 111: statement is unreachable
sewardj43e336c2005-01-28 01:53:38 +000079# 188: enumerated type mixed with another type
sewardjc5bfaee2004-07-22 17:25:03 +000080# (the above are for icc 8.0 -- 8.0.0.55 I think)
sewardj52ff4cc2005-03-26 20:33:38 +000081# 186: pointless comparison of unsigned integer with zero
sewardj62d05432005-10-29 22:30:47 +000082# 810: conversion from ... to ... may lose significant bits
sewardjb7a0a112005-02-01 16:06:14 +000083
sewardj37a47aa2005-01-21 20:54:33 +000084all: vex
sewardjd7383ba2004-07-27 10:54:21 +000085
cerione1106f72005-02-16 09:09:46 +000086scratch: clean version all
87
sewardjd7383ba2004-07-27 10:54:21 +000088vex: libvex.a test_main.o
89 $(CC) $(CCFLAGS) -o vex test_main.o libvex.a
sewardjc5bfaee2004-07-22 17:25:03 +000090
91libvex.a: $(LIB_OBJS)
92 rm -f libvex.a
93 ar clq libvex.a $(LIB_OBJS)
94
95clean:
sewardj600deec2005-03-21 01:03:49 +000096 rm -f $(LIB_OBJS) libvex.a vex test_main.o \
97 priv/main/vex_svnversion.h \
98 pub/libvex_guest_offsets.h
sewardjc5bfaee2004-07-22 17:25:03 +000099
sewardj37a47aa2005-01-21 20:54:33 +0000100version:
101 rm -f priv/main/vex_svnversion.h
102 echo -n "\"" > priv/main/vex_svnversion.h
103 svnversion -n . >> priv/main/vex_svnversion.h
104 echo "\"" >> priv/main/vex_svnversion.h
105
106minidist: version
107 rm -f vex--minidist-2005MMDD.tar
108 tar cf vex--minidist-2005MMDD.tar $(PUB_HEADERS) $(PRIV_HEADERS) \
109 priv/main/vex_svnversion.h \
110 test_main.c test_main.h \
111 Makefile \
112 `echo $(LIB_OBJS) | sed "s/\.o/\.c/g"`
113 @echo
114 @echo minidist done, size and svnversion follow:
115 @ls -l vex--minidist-2005MMDD.tar
116 @cat priv/main/vex_svnversion.h
117 @echo
sewardjc5bfaee2004-07-22 17:25:03 +0000118
sewardj600deec2005-03-21 01:03:49 +0000119pub/libvex_guest_offsets.h:
120 gcc -Wall -g -o auxprogs/genoffsets auxprogs/genoffsets.c
121 ./auxprogs/genoffsets > pub/libvex_guest_offsets.h
122
sewardjc5bfaee2004-07-22 17:25:03 +0000123
124ALL_HEADERS = $(PUB_HEADERS) $(PRIV_HEADERS)
125ALL_INCLUDES = $(PUB_INCLUDES) $(PRIV_INCLUDES)
126
sewardj37a47aa2005-01-21 20:54:33 +0000127test_main.o: $(PUB_HEADERS) test_main.c test_main.h
sewardjc5bfaee2004-07-22 17:25:03 +0000128 $(CC) $(CCFLAGS) $(PUB_INCLUDES) -o test_main.o \
129 -c test_main.c
130
sewardjd7383ba2004-07-27 10:54:21 +0000131priv/ir/irdefs.o: $(ALL_HEADERS) priv/ir/irdefs.c
132 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/ir/irdefs.o \
133 -c priv/ir/irdefs.c
sewardjc5bfaee2004-07-22 17:25:03 +0000134
sewardj37a47aa2005-01-21 20:54:33 +0000135priv/ir/irmatch.o: $(ALL_HEADERS) priv/ir/irmatch.c
136 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/ir/irmatch.o \
137 -c priv/ir/irmatch.c
138
139priv/ir/iropt.o: $(ALL_HEADERS) priv/ir/iropt.c
140 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/ir/iropt.o \
141 -c priv/ir/iropt.c
142
143priv/main/vex_main.o: $(ALL_HEADERS) priv/main/vex_main.c \
144 priv/main/vex_svnversion.h
sewardjc5bfaee2004-07-22 17:25:03 +0000145 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/main/vex_main.o \
146 -c priv/main/vex_main.c
147
148priv/main/vex_globals.o: $(ALL_HEADERS) priv/main/vex_globals.c
149 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/main/vex_globals.o \
150 -c priv/main/vex_globals.c
151
152priv/main/vex_util.o: $(ALL_HEADERS) priv/main/vex_util.c
153 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/main/vex_util.o \
154 -c priv/main/vex_util.c
155
sewardjd7383ba2004-07-27 10:54:21 +0000156priv/host-x86/hdefs.o: $(ALL_HEADERS) priv/host-x86/hdefs.c
157 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-x86/hdefs.o \
158 -c priv/host-x86/hdefs.c
sewardjc5bfaee2004-07-22 17:25:03 +0000159
sewardjb7a0a112005-02-01 16:06:14 +0000160priv/host-amd64/hdefs.o: $(ALL_HEADERS) priv/host-amd64/hdefs.c
161 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-amd64/hdefs.o \
162 -c priv/host-amd64/hdefs.c
163
sewardj37a47aa2005-01-21 20:54:33 +0000164priv/host-arm/hdefs.o: $(ALL_HEADERS) priv/host-arm/hdefs.c
165 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-arm/hdefs.o \
166 -c priv/host-arm/hdefs.c
167
cerionbcf8c3e2005-02-04 16:17:07 +0000168priv/host-ppc32/hdefs.o: $(ALL_HEADERS) priv/host-ppc32/hdefs.c
169 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-ppc32/hdefs.o \
170 -c priv/host-ppc32/hdefs.c
171
sewardjd7383ba2004-07-27 10:54:21 +0000172priv/host-x86/isel.o: $(ALL_HEADERS) priv/host-x86/isel.c
173 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-x86/isel.o \
174 -c priv/host-x86/isel.c
sewardjc5bfaee2004-07-22 17:25:03 +0000175
sewardjb7a0a112005-02-01 16:06:14 +0000176priv/host-amd64/isel.o: $(ALL_HEADERS) priv/host-amd64/isel.c
177 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-amd64/isel.o \
178 -c priv/host-amd64/isel.c
179
sewardj37a47aa2005-01-21 20:54:33 +0000180priv/host-arm/isel.o: $(ALL_HEADERS) priv/host-arm/isel.c
181 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-arm/isel.o \
182 -c priv/host-arm/isel.c
183
cerionbcf8c3e2005-02-04 16:17:07 +0000184priv/host-ppc32/isel.o: $(ALL_HEADERS) priv/host-ppc32/isel.c
185 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-ppc32/isel.o \
186 -c priv/host-ppc32/isel.c
187
sewardjd7383ba2004-07-27 10:54:21 +0000188priv/host-generic/h_generic_regs.o: $(ALL_HEADERS) priv/host-generic/h_generic_regs.c
189 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-generic/h_generic_regs.o \
190 -c priv/host-generic/h_generic_regs.c
sewardjc5bfaee2004-07-22 17:25:03 +0000191
sewardj37a47aa2005-01-21 20:54:33 +0000192priv/host-generic/h_generic_simd64.o: $(ALL_HEADERS) priv/host-generic/h_generic_simd64.c
193 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-generic/h_generic_simd64.o \
194 -c priv/host-generic/h_generic_simd64.c
195
196priv/host-generic/reg_alloc2.o: $(ALL_HEADERS) priv/host-generic/reg_alloc2.c
197 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-generic/reg_alloc2.o \
198 -c priv/host-generic/reg_alloc2.c
sewardjc5bfaee2004-07-22 17:25:03 +0000199
sewardjd7383ba2004-07-27 10:54:21 +0000200priv/guest-x86/toIR.o: $(ALL_HEADERS) priv/guest-x86/toIR.c
201 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-x86/toIR.o \
202 -c priv/guest-x86/toIR.c
sewardj36ca5132004-07-24 13:12:23 +0000203
sewardj52ff4cc2005-03-26 20:33:38 +0000204priv/guest-generic/g_generic_x87.o: $(ALL_HEADERS) priv/guest-generic/g_generic_x87.c
205 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-generic/g_generic_x87.o \
206 -c priv/guest-generic/g_generic_x87.c
207
sewardjdb36c0f2005-07-03 00:05:31 +0000208priv/guest-generic/bb_to_IR.o: $(ALL_HEADERS) priv/guest-generic/bb_to_IR.c
209 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-generic/bb_to_IR.o \
210 -c priv/guest-generic/bb_to_IR.c
211
sewardjd7383ba2004-07-27 10:54:21 +0000212priv/guest-x86/ghelpers.o: $(ALL_HEADERS) priv/guest-x86/ghelpers.c
213 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-x86/ghelpers.o \
214 -c priv/guest-x86/ghelpers.c
sewardj37a47aa2005-01-21 20:54:33 +0000215
216priv/guest-amd64/ghelpers.o: $(ALL_HEADERS) priv/guest-amd64/ghelpers.c
217 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-amd64/ghelpers.o \
218 -c priv/guest-amd64/ghelpers.c
219
220priv/guest-amd64/toIR.o: $(ALL_HEADERS) priv/guest-amd64/toIR.c
221 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-amd64/toIR.o \
222 -c priv/guest-amd64/toIR.c
223
224priv/guest-arm/ghelpers.o: $(ALL_HEADERS) priv/guest-arm/ghelpers.c
225 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-arm/ghelpers.o \
226 -c priv/guest-arm/ghelpers.c
227
228priv/guest-arm/toIR.o: $(ALL_HEADERS) priv/guest-arm/toIR.c
229 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-arm/toIR.o \
230 -c priv/guest-arm/toIR.c
sewardj42065842005-01-27 16:04:08 +0000231
232priv/guest-ppc32/ghelpers.o: $(ALL_HEADERS) priv/guest-ppc32/ghelpers.c
233 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-ppc32/ghelpers.o \
234 -c priv/guest-ppc32/ghelpers.c
235
236priv/guest-ppc32/toIR.o: $(ALL_HEADERS) priv/guest-ppc32/toIR.c
237 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-ppc32/toIR.o \
238 -c priv/guest-ppc32/toIR.c