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