blob: 3e1516e1329f3b183cf1897cb5497e1e511be6c0 [file] [log] [blame]
sewardj20e56c12004-03-31 22:08:37 +00001
sewardj887a11a2004-07-05 17:26:47 +00002PUB_HEADERS = pub/libvex_basictypes.h \
3 pub/libvex_ir.h \
sewardj7d0960d2004-09-06 23:22:55 +00004 pub/libvex.h \
sewardjc4278f42004-11-26 13:18:19 +00005 pub/libvex_trc_values.h \
sewardj893aada2004-11-29 19:57:54 +00006 pub/libvex_emwarn.h \
sewardjd584f8f2004-11-22 16:02:34 +00007 pub/libvex_guest_x86.h \
sewardj33dba642004-11-25 13:07:51 +00008 pub/libvex_guest_amd64.h \
sewardjd584f8f2004-11-22 16:02:34 +00009 pub/libvex_guest_arm.h
sewardj5cf515f2004-06-26 20:10:35 +000010
sewardjc0ee2ed2004-07-27 10:29:41 +000011PRIV_HEADERS = priv/host-x86/hdefs.h \
cerion82edbb32004-12-16 14:06:34 +000012 priv/host-arm/hdefs.h \
sewardjc0ee2ed2004-07-27 10:29:41 +000013 priv/host-generic/h_generic_regs.h \
sewardj887a11a2004-07-05 17:26:47 +000014 priv/main/vex_globals.h \
sewardjc9a65702004-07-07 16:32:57 +000015 priv/main/vex_util.h \
sewardj00ec7072004-08-18 13:58:59 +000016 priv/guest-x86/gdefs.h \
sewardj33dba642004-11-25 13:07:51 +000017 priv/guest-arm/gdefs.h \
sewardj69933ac2004-12-20 04:12:14 +000018 priv/ir/irmatch.h \
sewardj00ec7072004-08-18 13:58:59 +000019 priv/ir/iropt.h
sewardj5cf515f2004-06-26 20:10:35 +000020
sewardjc0ee2ed2004-07-27 10:29:41 +000021LIB_OBJS = priv/ir/irdefs.o \
sewardj69933ac2004-12-20 04:12:14 +000022 priv/ir/irmatch.o \
sewardja1a370f2004-08-17 13:31:55 +000023 priv/ir/iropt.o \
sewardj887a11a2004-07-05 17:26:47 +000024 priv/main/vex_main.o \
25 priv/main/vex_globals.o \
sewardj35421a32004-07-05 13:12:34 +000026 priv/main/vex_util.o \
sewardjc0ee2ed2004-07-27 10:29:41 +000027 priv/host-x86/hdefs.o \
cerion82edbb32004-12-16 14:06:34 +000028 priv/host-arm/hdefs.o \
sewardjc0ee2ed2004-07-27 10:29:41 +000029 priv/host-x86/isel.o \
cerioncee30312004-12-17 20:30:21 +000030 priv/host-arm/isel.o \
sewardjc0ee2ed2004-07-27 10:29:41 +000031 priv/host-generic/h_generic_regs.o \
sewardj432b1c92004-10-30 13:00:55 +000032 priv/host-generic/reg_alloc2.o \
sewardjc0ee2ed2004-07-27 10:29:41 +000033 priv/guest-x86/ghelpers.o \
njn9c6acb02004-11-30 15:56:47 +000034 priv/guest-amd64/ghelpers.o \
sewardj33dba642004-11-25 13:07:51 +000035 priv/guest-arm/ghelpers.o \
36 priv/guest-x86/toIR.o \
37 priv/guest-arm/toIR.o
sewardj5cf515f2004-06-26 20:10:35 +000038
sewardjac9af022004-07-05 01:15:34 +000039PUB_INCLUDES = -Ipub
40
sewardjc0ee2ed2004-07-27 10:29:41 +000041# Do not add any priv/host-ARCH or priv/guest-ARCH directories to this
42# list, as they contain duplicate file names (each host has a hdefs.h,
43# for example).
44PRIV_INCLUDES = -Ipriv
sewardjac9af022004-07-05 01:15:34 +000045
46
sewardjc5841702004-10-27 09:15:47 +000047CC = gcc
sewardj70dff0c2004-11-30 13:37:21 +000048CCFLAGS = -g -O -Wall -Wmissing-prototypes -Wshadow -Winline $(EXTRA_CFLAGS)
sewardj41f43bc2004-07-08 14:23:22 +000049
sewardje05c42c2004-07-08 20:25:10 +000050#CC = icc
51#CCFLAGS = -g -Wbrief -Wall -wd981 -wd279 -wd1287 -wd869 \
52# -wd810 -wd1419 -wd181 -wd111 -wd167
sewardj41f43bc2004-07-08 14:23:22 +000053# 981: operands are evaluated in unspecified order
54# 279: controlling expression is constant
55# 1287: invalid attribute for parameter
56# 869: parameter "..." was never referenced
57# 810: conversion from "int" to "Char={char}" may lose significant bits
58# 181: argument is incompatible with corresponding format string conversion
59# 111: statement is unreachable
60# 167: argument of type unsigned char incompatible with formal of type char
sewardje05c42c2004-07-08 20:25:10 +000061# (the above are for icc 8.0 -- 8.0.0.55 I think)
sewardjac9af022004-07-05 01:15:34 +000062
sewardjb5d0f3d2004-12-31 17:21:28 +000063all: vex
sewardjbf31abd2004-07-25 00:07:35 +000064
sewardjc0ee2ed2004-07-27 10:29:41 +000065vex: libvex.a test_main.o
sewardj80424fe2004-07-27 10:43:34 +000066 $(CC) $(CCFLAGS) -o vex test_main.o libvex.a
sewardjac9af022004-07-05 01:15:34 +000067
sewardj887a11a2004-07-05 17:26:47 +000068libvex.a: $(LIB_OBJS)
69 rm -f libvex.a
70 ar clq libvex.a $(LIB_OBJS)
sewardjac9af022004-07-05 01:15:34 +000071
sewardj5cf515f2004-06-26 20:10:35 +000072clean:
sewardj80f5fce2004-12-20 04:37:50 +000073 rm -f $(LIB_OBJS) libvex.a vex test_main.o priv/main/vex_svnversion.h
sewardjce605f92004-07-05 14:39:15 +000074
sewardj80f5fce2004-12-20 04:37:50 +000075version:
76 rm -f priv/main/vex_svnversion.h
77 echo -n "\"" > priv/main/vex_svnversion.h
78 svnversion -n . >> priv/main/vex_svnversion.h
79 echo "\"" >> priv/main/vex_svnversion.h
80
sewardjeecde932005-01-05 19:11:09 +000081minidist: version
82 rm -f vex--minidist-2005MMDD.tar
83 tar cf vex--minidist-2005MMDD.tar $(PUB_HEADERS) $(PRIV_HEADERS) \
84 priv/main/vex_svnversion.h \
85 test_main.c test_main.h \
86 Makefile \
87 `echo $(LIB_OBJS) | sed "s/\.o/\.c/g"`
88 @echo
89 @echo minidist done, size and svnversion follow:
90 @ls -l vex--minidist-2005MMDD.tar
91 @cat priv/main/vex_svnversion.h
92 @echo
93
sewardjce605f92004-07-05 14:39:15 +000094
sewardj35421a32004-07-05 13:12:34 +000095ALL_HEADERS = $(PUB_HEADERS) $(PRIV_HEADERS)
96ALL_INCLUDES = $(PUB_INCLUDES) $(PRIV_INCLUDES)
97
sewardjabe017e2004-10-29 23:42:36 +000098test_main.o: $(PUB_HEADERS) test_main.c test_main.h
sewardjce605f92004-07-05 14:39:15 +000099 $(CC) $(CCFLAGS) $(PUB_INCLUDES) -o test_main.o \
100 -c test_main.c
101
sewardjc0ee2ed2004-07-27 10:29:41 +0000102priv/ir/irdefs.o: $(ALL_HEADERS) priv/ir/irdefs.c
103 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/ir/irdefs.o \
104 -c priv/ir/irdefs.c
sewardj35421a32004-07-05 13:12:34 +0000105
sewardj69933ac2004-12-20 04:12:14 +0000106priv/ir/irmatch.o: $(ALL_HEADERS) priv/ir/irmatch.c
107 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/ir/irmatch.o \
108 -c priv/ir/irmatch.c
109
sewardja1a370f2004-08-17 13:31:55 +0000110priv/ir/iropt.o: $(ALL_HEADERS) priv/ir/iropt.c
111 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/ir/iropt.o \
112 -c priv/ir/iropt.c
113
sewardj1fec1642004-12-20 04:42:49 +0000114priv/main/vex_main.o: $(ALL_HEADERS) priv/main/vex_main.c \
115 priv/main/vex_svnversion.h
sewardj887a11a2004-07-05 17:26:47 +0000116 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/main/vex_main.o \
117 -c priv/main/vex_main.c
sewardj35421a32004-07-05 13:12:34 +0000118
sewardj887a11a2004-07-05 17:26:47 +0000119priv/main/vex_globals.o: $(ALL_HEADERS) priv/main/vex_globals.c
120 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/main/vex_globals.o \
121 -c priv/main/vex_globals.c
sewardj35421a32004-07-05 13:12:34 +0000122
123priv/main/vex_util.o: $(ALL_HEADERS) priv/main/vex_util.c
124 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/main/vex_util.o \
125 -c priv/main/vex_util.c
126
sewardj5a820d92004-07-27 09:50:39 +0000127priv/host-x86/hdefs.o: $(ALL_HEADERS) priv/host-x86/hdefs.c
128 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-x86/hdefs.o \
129 -c priv/host-x86/hdefs.c
sewardj35421a32004-07-05 13:12:34 +0000130
cerion82edbb32004-12-16 14:06:34 +0000131priv/host-arm/hdefs.o: $(ALL_HEADERS) priv/host-arm/hdefs.c
132 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-arm/hdefs.o \
133 -c priv/host-arm/hdefs.c
134
sewardj5a820d92004-07-27 09:50:39 +0000135priv/host-x86/isel.o: $(ALL_HEADERS) priv/host-x86/isel.c
136 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-x86/isel.o \
137 -c priv/host-x86/isel.c
sewardj35421a32004-07-05 13:12:34 +0000138
cerioncee30312004-12-17 20:30:21 +0000139priv/host-arm/isel.o: $(ALL_HEADERS) priv/host-arm/isel.c
140 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-arm/isel.o \
141 -c priv/host-arm/isel.c
142
sewardjc0ee2ed2004-07-27 10:29:41 +0000143priv/host-generic/h_generic_regs.o: $(ALL_HEADERS) priv/host-generic/h_generic_regs.c
144 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-generic/h_generic_regs.o \
145 -c priv/host-generic/h_generic_regs.c
sewardj35421a32004-07-05 13:12:34 +0000146
sewardj432b1c92004-10-30 13:00:55 +0000147priv/host-generic/reg_alloc2.o: $(ALL_HEADERS) priv/host-generic/reg_alloc2.c
148 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host-generic/reg_alloc2.o \
149 -c priv/host-generic/reg_alloc2.c
150
sewardjc0ee2ed2004-07-27 10:29:41 +0000151priv/guest-x86/toIR.o: $(ALL_HEADERS) priv/guest-x86/toIR.c
152 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-x86/toIR.o \
153 -c priv/guest-x86/toIR.c
sewardj36ca5132004-07-24 13:12:23 +0000154
sewardjc0ee2ed2004-07-27 10:29:41 +0000155priv/guest-x86/ghelpers.o: $(ALL_HEADERS) priv/guest-x86/ghelpers.c
156 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-x86/ghelpers.o \
157 -c priv/guest-x86/ghelpers.c
sewardj33dba642004-11-25 13:07:51 +0000158
njn9c6acb02004-11-30 15:56:47 +0000159priv/guest-amd64/ghelpers.o: $(ALL_HEADERS) priv/guest-amd64/ghelpers.c
160 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-amd64/ghelpers.o \
161 -c priv/guest-amd64/ghelpers.c
162
sewardj33dba642004-11-25 13:07:51 +0000163priv/guest-arm/ghelpers.o: $(ALL_HEADERS) priv/guest-arm/ghelpers.c
164 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-arm/ghelpers.o \
165 -c priv/guest-arm/ghelpers.c
166
167priv/guest-arm/toIR.o: $(ALL_HEADERS) priv/guest-arm/toIR.c
168 $(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/guest-arm/toIR.o \
169 -c priv/guest-arm/toIR.c