• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1
2PUB_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_offsets.h
13
14PRIV_HEADERS = 	priv/host-x86/hdefs.h			\
15		priv/host-amd64/hdefs.h			\
16		priv/host-arm/hdefs.h			\
17		priv/host-ppc/hdefs.h			\
18		priv/host-generic/h_generic_regs.h	\
19		priv/host-generic/h_generic_simd64.h	\
20		priv/main/vex_globals.h			\
21		priv/main/vex_util.h			\
22		priv/guest-generic/g_generic_x87.h	\
23                priv/guest-generic/bb_to_IR.h           \
24		priv/guest-x86/gdefs.h			\
25		priv/guest-amd64/gdefs.h		\
26		priv/guest-arm/gdefs.h			\
27		priv/guest-ppc/gdefs.h			\
28		priv/ir/irmatch.h			\
29		priv/ir/iropt.h
30
31LIB_OBJS = 	priv/ir/irdefs.o			\
32		priv/ir/irmatch.o			\
33		priv/ir/iropt.o				\
34		priv/main/vex_main.o			\
35		priv/main/vex_globals.o			\
36		priv/main/vex_util.o			\
37		priv/host-x86/hdefs.o			\
38		priv/host-amd64/hdefs.o			\
39		priv/host-arm/hdefs.o			\
40		priv/host-ppc/hdefs.o			\
41		priv/host-x86/isel.o			\
42		priv/host-amd64/isel.o			\
43		priv/host-arm/isel.o			\
44		priv/host-ppc/isel.o			\
45		priv/host-generic/h_generic_regs.o	\
46		priv/host-generic/h_generic_simd64.o	\
47		priv/host-generic/reg_alloc2.o		\
48		priv/guest-generic/g_generic_x87.o	\
49                priv/guest-generic/bb_to_IR.o           \
50		priv/guest-x86/ghelpers.o		\
51		priv/guest-amd64/ghelpers.o		\
52		priv/guest-arm/ghelpers.o		\
53		priv/guest-ppc/ghelpers.o		\
54		priv/guest-x86/toIR.o			\
55		priv/guest-amd64/toIR.o			\
56		priv/guest-arm/toIR.o			\
57		priv/guest-ppc/toIR.o
58
59PUB_INCLUDES = -Ipub
60
61# Do not add any priv/host-ARCH or priv/guest-ARCH directories to this
62# list, as they contain duplicate file names (each host has a hdefs.h,
63# for example).
64PRIV_INCLUDES = -Ipriv
65
66
67#CC = gcc
68#CCFLAGS = -g -O -Wall -Wmissing-prototypes -Wshadow -Winline \
69#		-Wpointer-arith -Wbad-function-cast -Wcast-qual \
70#		-Wcast-align -Wmissing-declarations \
71#		$(EXTRA_CFLAGS)
72
73CC = icc
74CCFLAGS = -g -Wall -wd981 -wd279 -wd1287 -wd869 -wd111 -wd188 -wd186 -wd810
75# 981: operands are evaluated in unspecified order
76# 279: controlling expression is constant
77# 1287: invalid attribute for parameter
78# 869: parameter "..." was never referenced
79# 111: statement is unreachable
80# 188: enumerated type mixed with another type
81# (the above are for icc 8.0 -- 8.0.0.55 I think)
82# 186: pointless comparison of unsigned integer with zero
83# 810: conversion from ... to ... may lose significant bits
84
85all: vex
86
87scratch: clean version all
88
89vex: libvex.a test_main.o
90	$(CC) $(CCFLAGS) -o vex test_main.o libvex.a
91
92libvex.a: $(LIB_OBJS)
93	rm -f libvex.a
94	ar clq libvex.a $(LIB_OBJS)
95
96clean:
97	rm -f $(LIB_OBJS) libvex.a vex test_main.o \
98		priv/main/vex_svnversion.h \
99		pub/libvex_guest_offsets.h
100
101version:
102	rm -f priv/main/vex_svnversion.h
103	echo -n "\""  > priv/main/vex_svnversion.h
104	svnversion -n . >> priv/main/vex_svnversion.h
105	echo "\""  >> priv/main/vex_svnversion.h
106
107minidist: version
108	rm -f vex--minidist-2005MMDD.tar
109	tar cf vex--minidist-2005MMDD.tar $(PUB_HEADERS) $(PRIV_HEADERS) \
110		priv/main/vex_svnversion.h			\
111		test_main.c test_main.h				\
112		Makefile					\
113		`echo $(LIB_OBJS) | sed "s/\.o/\.c/g"`
114	@echo
115	@echo minidist done, size and svnversion follow:
116	@ls -l vex--minidist-2005MMDD.tar
117	@cat priv/main/vex_svnversion.h
118	@echo
119
120pub/libvex_guest_offsets.h:
121	gcc -Wall -g -o auxprogs/genoffsets auxprogs/genoffsets.c
122	./auxprogs/genoffsets > pub/libvex_guest_offsets.h
123
124
125ALL_HEADERS  = $(PUB_HEADERS) $(PRIV_HEADERS)
126ALL_INCLUDES = $(PUB_INCLUDES) $(PRIV_INCLUDES)
127
128test_main.o: $(PUB_HEADERS) test_main.c test_main.h
129	$(CC) $(CCFLAGS) $(PUB_INCLUDES) -o test_main.o \
130					 -c test_main.c
131
132priv/ir/irdefs.o: $(ALL_HEADERS) priv/ir/irdefs.c
133	$(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/ir/irdefs.o \
134					 -c priv/ir/irdefs.c
135
136priv/ir/irmatch.o: $(ALL_HEADERS) priv/ir/irmatch.c
137	$(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/ir/irmatch.o \
138					 -c priv/ir/irmatch.c
139
140priv/ir/iropt.o: $(ALL_HEADERS) priv/ir/iropt.c
141	$(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/ir/iropt.o \
142					 -c priv/ir/iropt.c
143
144priv/main/vex_main.o: $(ALL_HEADERS) priv/main/vex_main.c \
145					priv/main/vex_svnversion.h
146	$(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/main/vex_main.o \
147					 -c priv/main/vex_main.c
148
149priv/main/vex_globals.o: $(ALL_HEADERS) priv/main/vex_globals.c
150	$(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/main/vex_globals.o \
151					 -c priv/main/vex_globals.c
152
153priv/main/vex_util.o: $(ALL_HEADERS) priv/main/vex_util.c
154	$(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/main/vex_util.o \
155					 -c priv/main/vex_util.c
156
157priv/host-x86/hdefs.o: $(ALL_HEADERS) priv/host-x86/hdefs.c
158	$(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-x86/hdefs.o \
159					 -c priv/host-x86/hdefs.c
160
161priv/host-amd64/hdefs.o: $(ALL_HEADERS) priv/host-amd64/hdefs.c
162	$(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-amd64/hdefs.o \
163					 -c priv/host-amd64/hdefs.c
164
165priv/host-arm/hdefs.o: $(ALL_HEADERS) priv/host-arm/hdefs.c
166	$(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-arm/hdefs.o \
167					 -c priv/host-arm/hdefs.c
168
169priv/host-ppc/hdefs.o: $(ALL_HEADERS) priv/host-ppc/hdefs.c
170	$(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-ppc/hdefs.o \
171					 -c priv/host-ppc/hdefs.c
172
173priv/host-x86/isel.o: $(ALL_HEADERS) priv/host-x86/isel.c
174	$(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-x86/isel.o \
175					 -c priv/host-x86/isel.c
176
177priv/host-amd64/isel.o: $(ALL_HEADERS) priv/host-amd64/isel.c
178	$(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-amd64/isel.o \
179					 -c priv/host-amd64/isel.c
180
181priv/host-arm/isel.o: $(ALL_HEADERS) priv/host-arm/isel.c
182	$(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-arm/isel.o \
183					 -c priv/host-arm/isel.c
184
185priv/host-ppc/isel.o: $(ALL_HEADERS) priv/host-ppc/isel.c
186	$(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-ppc/isel.o \
187					 -c priv/host-ppc/isel.c
188
189priv/host-generic/h_generic_regs.o: $(ALL_HEADERS) priv/host-generic/h_generic_regs.c
190	$(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-generic/h_generic_regs.o \
191					 -c priv/host-generic/h_generic_regs.c
192
193priv/host-generic/h_generic_simd64.o: $(ALL_HEADERS) priv/host-generic/h_generic_simd64.c
194	$(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-generic/h_generic_simd64.o \
195					 -c priv/host-generic/h_generic_simd64.c
196
197priv/host-generic/reg_alloc2.o: $(ALL_HEADERS) priv/host-generic/reg_alloc2.c
198	$(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-generic/reg_alloc2.o \
199					 -c priv/host-generic/reg_alloc2.c
200
201priv/guest-x86/toIR.o: $(ALL_HEADERS) priv/guest-x86/toIR.c
202	$(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-x86/toIR.o \
203					 -c priv/guest-x86/toIR.c
204
205priv/guest-generic/g_generic_x87.o: $(ALL_HEADERS) priv/guest-generic/g_generic_x87.c
206	$(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-generic/g_generic_x87.o \
207					 -c priv/guest-generic/g_generic_x87.c
208
209priv/guest-generic/bb_to_IR.o: $(ALL_HEADERS) priv/guest-generic/bb_to_IR.c
210	$(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-generic/bb_to_IR.o \
211					 -c priv/guest-generic/bb_to_IR.c
212
213priv/guest-x86/ghelpers.o: $(ALL_HEADERS) priv/guest-x86/ghelpers.c
214	$(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-x86/ghelpers.o \
215					 -c priv/guest-x86/ghelpers.c
216
217priv/guest-amd64/ghelpers.o: $(ALL_HEADERS) priv/guest-amd64/ghelpers.c
218	$(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-amd64/ghelpers.o \
219					 -c priv/guest-amd64/ghelpers.c
220
221priv/guest-amd64/toIR.o: $(ALL_HEADERS) priv/guest-amd64/toIR.c
222	$(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-amd64/toIR.o \
223					 -c priv/guest-amd64/toIR.c
224
225priv/guest-arm/ghelpers.o: $(ALL_HEADERS) priv/guest-arm/ghelpers.c
226	$(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-arm/ghelpers.o \
227					 -c priv/guest-arm/ghelpers.c
228
229priv/guest-arm/toIR.o: $(ALL_HEADERS) priv/guest-arm/toIR.c
230	$(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-arm/toIR.o \
231					 -c priv/guest-arm/toIR.c
232
233priv/guest-ppc/ghelpers.o: $(ALL_HEADERS) priv/guest-ppc/ghelpers.c
234	$(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-ppc/ghelpers.o \
235					 -c priv/guest-ppc/ghelpers.c
236
237priv/guest-ppc/toIR.o: $(ALL_HEADERS) priv/guest-ppc/toIR.c
238	$(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-ppc/toIR.o \
239					 -c priv/guest-ppc/toIR.c
240