blob: 561ea02d27b23ba8731be6431d1e92ecb9956f26 [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 \
10 pub/libvex_guest_ppc32.h
sewardjc5bfaee2004-07-22 17:25:03 +000011
sewardjd7383ba2004-07-27 10:54:21 +000012PRIV_HEADERS = priv/host-x86/hdefs.h \
sewardj37a47aa2005-01-21 20:54:33 +000013 priv/host-arm/hdefs.h \
sewardjd7383ba2004-07-27 10:54:21 +000014 priv/host-generic/h_generic_regs.h \
sewardj37a47aa2005-01-21 20:54:33 +000015 priv/host-generic/h_generic_simd64.h \
sewardjc5bfaee2004-07-22 17:25:03 +000016 priv/main/vex_globals.h \
17 priv/main/vex_util.h \
sewardj37a47aa2005-01-21 20:54:33 +000018 priv/guest-x86/gdefs.h \
19 priv/guest-amd64/gdefs.h \
20 priv/guest-arm/gdefs.h \
sewardj42065842005-01-27 16:04:08 +000021 priv/guest-ppc32/gdefs.h \
sewardj37a47aa2005-01-21 20:54:33 +000022 priv/ir/irmatch.h \
23 priv/ir/iropt.h
sewardjc5bfaee2004-07-22 17:25:03 +000024
sewardjd7383ba2004-07-27 10:54:21 +000025LIB_OBJS = priv/ir/irdefs.o \
sewardj37a47aa2005-01-21 20:54:33 +000026 priv/ir/irmatch.o \
27 priv/ir/iropt.o \
sewardjc5bfaee2004-07-22 17:25:03 +000028 priv/main/vex_main.o \
29 priv/main/vex_globals.o \
30 priv/main/vex_util.o \
sewardjd7383ba2004-07-27 10:54:21 +000031 priv/host-x86/hdefs.o \
sewardj37a47aa2005-01-21 20:54:33 +000032 priv/host-arm/hdefs.o \
sewardjd7383ba2004-07-27 10:54:21 +000033 priv/host-x86/isel.o \
sewardj37a47aa2005-01-21 20:54:33 +000034 priv/host-arm/isel.o \
sewardjd7383ba2004-07-27 10:54:21 +000035 priv/host-generic/h_generic_regs.o \
sewardj37a47aa2005-01-21 20:54:33 +000036 priv/host-generic/h_generic_simd64.o \
37 priv/host-generic/reg_alloc2.o \
sewardjd7383ba2004-07-27 10:54:21 +000038 priv/guest-x86/ghelpers.o \
sewardj37a47aa2005-01-21 20:54:33 +000039 priv/guest-amd64/ghelpers.o \
40 priv/guest-arm/ghelpers.o \
sewardj42065842005-01-27 16:04:08 +000041 priv/guest-ppc32/ghelpers.o \
sewardj37a47aa2005-01-21 20:54:33 +000042 priv/guest-x86/toIR.o \
43 priv/guest-amd64/toIR.o \
sewardj42065842005-01-27 16:04:08 +000044 priv/guest-arm/toIR.o \
45 priv/guest-ppc32/toIR.o
sewardjc5bfaee2004-07-22 17:25:03 +000046
47PUB_INCLUDES = -Ipub
48
sewardjd7383ba2004-07-27 10:54:21 +000049# Do not add any priv/host-ARCH or priv/guest-ARCH directories to this
50# list, as they contain duplicate file names (each host has a hdefs.h,
51# for example).
52PRIV_INCLUDES = -Ipriv
sewardjc5bfaee2004-07-22 17:25:03 +000053
54
sewardj37a47aa2005-01-21 20:54:33 +000055#CC = gcc
sewardj42065842005-01-27 16:04:08 +000056#CCFLAGS = -g -O -Wall -Wmissing-prototypes -Wshadow -Winline \
57# -Wpointer-arith -Wbad-function-cast -Wcast-qual \
58# -Wcast-align -Wmissing-declarations -Wmissing-format-attribute \
59# $(EXTRA_CFLAGS)
sewardjc5bfaee2004-07-22 17:25:03 +000060
61CC = icc
sewardj42065842005-01-27 16:04:08 +000062CCFLAGS = -g -Wbrief -Wall -wd981 -wd279 -wd1287 -wd869 \
63 -wd810 -wd1419 -wd181 -wd111 -wd167
sewardjc5bfaee2004-07-22 17:25:03 +000064# 981: operands are evaluated in unspecified order
65# 279: controlling expression is constant
66# 1287: invalid attribute for parameter
67# 869: parameter "..." was never referenced
68# 810: conversion from "int" to "Char={char}" may lose significant bits
69# 181: argument is incompatible with corresponding format string conversion
70# 111: statement is unreachable
71# 167: argument of type unsigned char incompatible with formal of type char
72# (the above are for icc 8.0 -- 8.0.0.55 I think)
73
sewardj37a47aa2005-01-21 20:54:33 +000074all: vex
sewardjd7383ba2004-07-27 10:54:21 +000075
76vex: libvex.a test_main.o
77 $(CC) $(CCFLAGS) -o vex test_main.o libvex.a
sewardjc5bfaee2004-07-22 17:25:03 +000078
79libvex.a: $(LIB_OBJS)
80 rm -f libvex.a
81 ar clq libvex.a $(LIB_OBJS)
82
83clean:
sewardj37a47aa2005-01-21 20:54:33 +000084 rm -f $(LIB_OBJS) libvex.a vex test_main.o priv/main/vex_svnversion.h
sewardjc5bfaee2004-07-22 17:25:03 +000085
sewardj37a47aa2005-01-21 20:54:33 +000086version:
87 rm -f priv/main/vex_svnversion.h
88 echo -n "\"" > priv/main/vex_svnversion.h
89 svnversion -n . >> priv/main/vex_svnversion.h
90 echo "\"" >> priv/main/vex_svnversion.h
91
92minidist: version
93 rm -f vex--minidist-2005MMDD.tar
94 tar cf vex--minidist-2005MMDD.tar $(PUB_HEADERS) $(PRIV_HEADERS) \
95 priv/main/vex_svnversion.h \
96 test_main.c test_main.h \
97 Makefile \
98 `echo $(LIB_OBJS) | sed "s/\.o/\.c/g"`
99 @echo
100 @echo minidist done, size and svnversion follow:
101 @ls -l vex--minidist-2005MMDD.tar
102 @cat priv/main/vex_svnversion.h
103 @echo
sewardjc5bfaee2004-07-22 17:25:03 +0000104
105
106ALL_HEADERS = $(PUB_HEADERS) $(PRIV_HEADERS)
107ALL_INCLUDES = $(PUB_INCLUDES) $(PRIV_INCLUDES)
108
sewardj37a47aa2005-01-21 20:54:33 +0000109test_main.o: $(PUB_HEADERS) test_main.c test_main.h
sewardjc5bfaee2004-07-22 17:25:03 +0000110 $(CC) $(CCFLAGS) $(PUB_INCLUDES) -o test_main.o \
111 -c test_main.c
112
sewardjd7383ba2004-07-27 10:54:21 +0000113priv/ir/irdefs.o: $(ALL_HEADERS) priv/ir/irdefs.c
114 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/ir/irdefs.o \
115 -c priv/ir/irdefs.c
sewardjc5bfaee2004-07-22 17:25:03 +0000116
sewardj37a47aa2005-01-21 20:54:33 +0000117priv/ir/irmatch.o: $(ALL_HEADERS) priv/ir/irmatch.c
118 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/ir/irmatch.o \
119 -c priv/ir/irmatch.c
120
121priv/ir/iropt.o: $(ALL_HEADERS) priv/ir/iropt.c
122 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/ir/iropt.o \
123 -c priv/ir/iropt.c
124
125priv/main/vex_main.o: $(ALL_HEADERS) priv/main/vex_main.c \
126 priv/main/vex_svnversion.h
sewardjc5bfaee2004-07-22 17:25:03 +0000127 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/main/vex_main.o \
128 -c priv/main/vex_main.c
129
130priv/main/vex_globals.o: $(ALL_HEADERS) priv/main/vex_globals.c
131 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/main/vex_globals.o \
132 -c priv/main/vex_globals.c
133
134priv/main/vex_util.o: $(ALL_HEADERS) priv/main/vex_util.c
135 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/main/vex_util.o \
136 -c priv/main/vex_util.c
137
sewardjd7383ba2004-07-27 10:54:21 +0000138priv/host-x86/hdefs.o: $(ALL_HEADERS) priv/host-x86/hdefs.c
139 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-x86/hdefs.o \
140 -c priv/host-x86/hdefs.c
sewardjc5bfaee2004-07-22 17:25:03 +0000141
sewardj37a47aa2005-01-21 20:54:33 +0000142priv/host-arm/hdefs.o: $(ALL_HEADERS) priv/host-arm/hdefs.c
143 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-arm/hdefs.o \
144 -c priv/host-arm/hdefs.c
145
sewardjd7383ba2004-07-27 10:54:21 +0000146priv/host-x86/isel.o: $(ALL_HEADERS) priv/host-x86/isel.c
147 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-x86/isel.o \
148 -c priv/host-x86/isel.c
sewardjc5bfaee2004-07-22 17:25:03 +0000149
sewardj37a47aa2005-01-21 20:54:33 +0000150priv/host-arm/isel.o: $(ALL_HEADERS) priv/host-arm/isel.c
151 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-arm/isel.o \
152 -c priv/host-arm/isel.c
153
sewardjd7383ba2004-07-27 10:54:21 +0000154priv/host-generic/h_generic_regs.o: $(ALL_HEADERS) priv/host-generic/h_generic_regs.c
155 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-generic/h_generic_regs.o \
156 -c priv/host-generic/h_generic_regs.c
sewardjc5bfaee2004-07-22 17:25:03 +0000157
sewardj37a47aa2005-01-21 20:54:33 +0000158priv/host-generic/h_generic_simd64.o: $(ALL_HEADERS) priv/host-generic/h_generic_simd64.c
159 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-generic/h_generic_simd64.o \
160 -c priv/host-generic/h_generic_simd64.c
161
162priv/host-generic/reg_alloc2.o: $(ALL_HEADERS) priv/host-generic/reg_alloc2.c
163 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-generic/reg_alloc2.o \
164 -c priv/host-generic/reg_alloc2.c
sewardjc5bfaee2004-07-22 17:25:03 +0000165
sewardjd7383ba2004-07-27 10:54:21 +0000166priv/guest-x86/toIR.o: $(ALL_HEADERS) priv/guest-x86/toIR.c
167 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-x86/toIR.o \
168 -c priv/guest-x86/toIR.c
sewardj36ca5132004-07-24 13:12:23 +0000169
sewardjd7383ba2004-07-27 10:54:21 +0000170priv/guest-x86/ghelpers.o: $(ALL_HEADERS) priv/guest-x86/ghelpers.c
171 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-x86/ghelpers.o \
172 -c priv/guest-x86/ghelpers.c
sewardj37a47aa2005-01-21 20:54:33 +0000173
174priv/guest-amd64/ghelpers.o: $(ALL_HEADERS) priv/guest-amd64/ghelpers.c
175 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-amd64/ghelpers.o \
176 -c priv/guest-amd64/ghelpers.c
177
178priv/guest-amd64/toIR.o: $(ALL_HEADERS) priv/guest-amd64/toIR.c
179 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-amd64/toIR.o \
180 -c priv/guest-amd64/toIR.c
181
182priv/guest-arm/ghelpers.o: $(ALL_HEADERS) priv/guest-arm/ghelpers.c
183 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-arm/ghelpers.o \
184 -c priv/guest-arm/ghelpers.c
185
186priv/guest-arm/toIR.o: $(ALL_HEADERS) priv/guest-arm/toIR.c
187 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-arm/toIR.o \
188 -c priv/guest-arm/toIR.c
sewardj42065842005-01-27 16:04:08 +0000189
190priv/guest-ppc32/ghelpers.o: $(ALL_HEADERS) priv/guest-ppc32/ghelpers.c
191 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-ppc32/ghelpers.o \
192 -c priv/guest-ppc32/ghelpers.c
193
194priv/guest-ppc32/toIR.o: $(ALL_HEADERS) priv/guest-ppc32/toIR.c
195 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-ppc32/toIR.o \
196 -c priv/guest-ppc32/toIR.c