blob: 8e1ec3c61fafcc94f7b5b17f9116e9a76e90b856 [file] [log] [blame]
njn8b68b642009-06-24 00:37:09 +00001# VEX/Makefile is generated from this file at configure-time.
2
3include $(top_srcdir)/Makefile.all.am
4
5#----------------------------------------------------------------------------
6# Headers, etc
7#----------------------------------------------------------------------------
8
9EXTRA_DIST = \
10 HACKING.README \
11 LICENSE.README \
12 LICENSE.GPL \
njn8b68b642009-06-24 00:37:09 +000013 auxprogs/genoffsets.c
14
15pkginclude_HEADERS = \
16 pub/libvex.h \
17 pub/libvex_basictypes.h \
florian7452db82012-08-25 21:48:22 +000018 pub/libvex_emnote.h \
njn8b68b642009-06-24 00:37:09 +000019 pub/libvex_guest_offsets.h \
20 pub/libvex_guest_x86.h \
21 pub/libvex_guest_amd64.h \
22 pub/libvex_guest_ppc32.h \
23 pub/libvex_guest_ppc64.h \
24 pub/libvex_guest_arm.h \
sewardjf0c12502014-01-12 12:54:00 +000025 pub/libvex_guest_arm64.h \
sewardjb5b87402011-03-07 16:05:35 +000026 pub/libvex_guest_s390x.h \
sewardj5db15402012-06-07 09:13:21 +000027 pub/libvex_guest_mips32.h \
floriane42cca52013-08-29 17:59:27 +000028 pub/libvex_guest_mips64.h \
sewardj112711a2015-04-10 12:30:09 +000029 pub/libvex_guest_tilegx.h \
sewardj57300312011-03-07 16:42:02 +000030 pub/libvex_s390x_common.h \
njn8b68b642009-06-24 00:37:09 +000031 pub/libvex_ir.h \
32 pub/libvex_trc_values.h
33
34noinst_HEADERS = \
sewardj27824a72009-07-02 12:23:16 +000035 priv/main_globals.h \
36 priv/main_util.h \
37 priv/ir_match.h \
38 priv/ir_opt.h \
39 priv/guest_generic_bb_to_IR.h \
40 priv/guest_generic_x87.h \
41 priv/guest_x86_defs.h \
42 priv/guest_amd64_defs.h \
43 priv/guest_ppc_defs.h \
44 priv/guest_arm_defs.h \
sewardjf0c12502014-01-12 12:54:00 +000045 priv/guest_arm64_defs.h \
sewardjb5b87402011-03-07 16:05:35 +000046 priv/guest_s390_defs.h \
sewardj5db15402012-06-07 09:13:21 +000047 priv/guest_mips_defs.h \
sewardj112711a2015-04-10 12:30:09 +000048 priv/guest_tilegx_defs.h \
sewardj27824a72009-07-02 12:23:16 +000049 priv/host_generic_regs.h \
50 priv/host_generic_simd64.h \
sewardjb823b852010-06-18 08:18:38 +000051 priv/host_generic_simd128.h \
sewardjfda50af2013-03-27 11:43:20 +000052 priv/host_generic_simd256.h \
53 priv/host_generic_maddf.h \
sewardj27824a72009-07-02 12:23:16 +000054 priv/host_x86_defs.h \
55 priv/host_amd64_defs.h \
56 priv/host_ppc_defs.h \
sewardjb5b87402011-03-07 16:05:35 +000057 priv/host_arm_defs.h \
sewardjf0c12502014-01-12 12:54:00 +000058 priv/host_arm64_defs.h \
sewardjb5b87402011-03-07 16:05:35 +000059 priv/host_s390_defs.h \
florian6c1470a2015-04-18 09:15:47 +000060 priv/host_tilegx_defs.h \
florian4b2e2df2012-09-20 01:22:53 +000061 priv/s390_disasm.h \
florian142a4ba2012-12-24 00:16:23 +000062 priv/s390_defs.h \
sewardj112711a2015-04-10 12:30:09 +000063 priv/host_mips_defs.h \
64 priv/tilegx_disasm.h
njn8b68b642009-06-24 00:37:09 +000065
66BUILT_SOURCES = pub/libvex_guest_offsets.h
67CLEANFILES = pub/libvex_guest_offsets.h
68
floriana6b17282014-09-05 14:08:51 +000069if COMPILER_IS_CLANG
70CFLAGS_FOR_GENOFFSETS = $(CFLAGS) -no-integrated-as
71else
72CFLAGS_FOR_GENOFFSETS = $(CFLAGS)
73endif
74
njn8b68b642009-06-24 00:37:09 +000075# This is very uggerly. Need to sed out both "xyzzyN" and
76# "xyzzy$N" since gcc on different targets emits the constants
77# differently -- with a leading $ on x86/amd64 but none on ppc32/64.
florian4e94bda2014-10-29 13:57:49 +000078# ICC also emits the constants differently with a leading # #define
sewardjf3d5c6e2010-09-28 15:09:47 +000079pub/libvex_guest_offsets.h: auxprogs/genoffsets.c \
80 pub/libvex_basictypes.h \
81 pub/libvex_guest_x86.h \
82 pub/libvex_guest_amd64.h \
83 pub/libvex_guest_ppc32.h \
84 pub/libvex_guest_ppc64.h \
sewardjb5b87402011-03-07 16:05:35 +000085 pub/libvex_guest_arm.h \
sewardjf0c12502014-01-12 12:54:00 +000086 pub/libvex_guest_arm64.h \
sewardj5db15402012-06-07 09:13:21 +000087 pub/libvex_guest_s390x.h \
floriane42cca52013-08-29 17:59:27 +000088 pub/libvex_guest_mips32.h \
sewardj112711a2015-04-10 12:30:09 +000089 pub/libvex_guest_mips64.h \
90 pub/libvex_guest_tilegx.h
njn8b68b642009-06-24 00:37:09 +000091 rm -f auxprogs/genoffsets.s
mjwe2990202014-05-09 13:34:13 +000092 $(mkdir_p) auxprogs pub
floriana6b17282014-09-05 14:08:51 +000093 $(CC) $(CFLAGS_FOR_GENOFFSETS) \
sewardj51331e12011-07-07 14:05:39 +000094 $(LIBVEX_CFLAGS) \
sewardj76cd8d72010-08-22 11:51:26 +000095 $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) \
96 -O -S -o auxprogs/genoffsets.s \
mjwe2990202014-05-09 13:34:13 +000097 $(srcdir)/auxprogs/genoffsets.c
florian4e94bda2014-10-29 13:57:49 +000098 grep xyzzy auxprogs/genoffsets.s | grep "^[# ]*#define" \
99 | sed "s/# #define/#define/g" \
sewardj59570ff2010-01-01 11:59:33 +0000100 | sed "s/xyzzy\\$$//g" \
101 | sed "s/xyzzy#//g" \
102 | sed "s/xyzzy//g" \
njn8b68b642009-06-24 00:37:09 +0000103 > pub/libvex_guest_offsets.h
104 rm -f auxprogs/genoffsets.s
105
106#----------------------------------------------------------------------------
philipped7065d52015-04-01 20:06:26 +0000107# libvex-<platform>-<os>.a : containing all VEX objects, including
108# a main_main.o compiled in single arch (guest==host).
109# libvexmultiarch-<platform>-<os>.a, only containing multiarch_main_main.o,
110# which is main_main.c compiled so that any guest/host combination
111# can be done at runtime.
njn8b68b642009-06-24 00:37:09 +0000112#----------------------------------------------------------------------------
113
philipped7065d52015-04-01 20:06:26 +0000114pkglib_LIBRARIES = libvex-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a \
115 libvexmultiarch-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a
njn8b68b642009-06-24 00:37:09 +0000116if VGCONF_HAVE_PLATFORM_SEC
philipped7065d52015-04-01 20:06:26 +0000117pkglib_LIBRARIES += libvex-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a \
118 libvexmultiarch-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a
njn8b68b642009-06-24 00:37:09 +0000119endif
120
njn8b68b642009-06-24 00:37:09 +0000121LIBVEX_SOURCES_COMMON = \
sewardj27824a72009-07-02 12:23:16 +0000122 priv/main_globals.c \
123 priv/main_main.c \
124 priv/main_util.c \
125 priv/ir_defs.c \
florianbb913cd2012-08-28 16:50:39 +0000126 priv/ir_inject.c \
sewardj27824a72009-07-02 12:23:16 +0000127 priv/ir_match.c \
128 priv/ir_opt.c \
129 priv/guest_generic_bb_to_IR.c \
130 priv/guest_generic_x87.c \
131 priv/guest_x86_helpers.c \
132 priv/guest_x86_toIR.c \
133 priv/guest_amd64_helpers.c \
134 priv/guest_amd64_toIR.c \
135 priv/guest_ppc_helpers.c \
136 priv/guest_ppc_toIR.c \
137 priv/guest_arm_helpers.c \
138 priv/guest_arm_toIR.c \
sewardjf0c12502014-01-12 12:54:00 +0000139 priv/guest_arm64_helpers.c \
140 priv/guest_arm64_toIR.c \
sewardjb5b87402011-03-07 16:05:35 +0000141 priv/guest_s390_helpers.c \
142 priv/guest_s390_toIR.c \
sewardj5db15402012-06-07 09:13:21 +0000143 priv/guest_mips_helpers.c \
144 priv/guest_mips_toIR.c \
sewardj112711a2015-04-10 12:30:09 +0000145 priv/guest_tilegx_helpers.c \
146 priv/guest_tilegx_toIR.c \
sewardj27824a72009-07-02 12:23:16 +0000147 priv/host_generic_regs.c \
148 priv/host_generic_simd64.c \
sewardjb823b852010-06-18 08:18:38 +0000149 priv/host_generic_simd128.c \
sewardjfda50af2013-03-27 11:43:20 +0000150 priv/host_generic_simd256.c \
151 priv/host_generic_maddf.c \
sewardj27824a72009-07-02 12:23:16 +0000152 priv/host_generic_reg_alloc2.c \
153 priv/host_x86_defs.c \
154 priv/host_x86_isel.c \
155 priv/host_amd64_defs.c \
156 priv/host_amd64_isel.c \
157 priv/host_ppc_defs.c \
158 priv/host_ppc_isel.c \
159 priv/host_arm_defs.c \
sewardjb5b87402011-03-07 16:05:35 +0000160 priv/host_arm_isel.c \
sewardjf0c12502014-01-12 12:54:00 +0000161 priv/host_arm64_defs.c \
162 priv/host_arm64_isel.c \
sewardjb5b87402011-03-07 16:05:35 +0000163 priv/host_s390_defs.c \
164 priv/host_s390_isel.c \
florian4b2e2df2012-09-20 01:22:53 +0000165 priv/s390_disasm.c \
sewardj5db15402012-06-07 09:13:21 +0000166 priv/host_mips_defs.c \
sewardj112711a2015-04-10 12:30:09 +0000167 priv/host_mips_isel.c \
168 priv/host_tilegx_defs.c \
169 priv/host_tilegx_isel.c \
170 priv/tilegx_disasm.c
njn8b68b642009-06-24 00:37:09 +0000171
philipped7065d52015-04-01 20:06:26 +0000172LIBVEXMULTIARCH_SOURCES = priv/multiarch_main_main.c
173
njn8b68b642009-06-24 00:37:09 +0000174LIBVEX_CFLAGS = \
175 -Wbad-function-cast \
njn8b68b642009-06-24 00:37:09 +0000176 -fstrict-aliasing
177
178libvex_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_SOURCES = $(LIBVEX_SOURCES_COMMON)
179libvex_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CPPFLAGS = \
180 $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) -Ipriv
181libvex_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CFLAGS = \
182 $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) $(LIBVEX_CFLAGS)
183if VGCONF_HAVE_PLATFORM_SEC
184libvex_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES = $(LIBVEX_SOURCES_COMMON)
185libvex_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CPPFLAGS = \
186 $(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) -Ipriv
187libvex_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CFLAGS = \
188 $(AM_CFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) $(LIBVEX_CFLAGS)
189endif
190
philipped7065d52015-04-01 20:06:26 +0000191libvexmultiarch_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_SOURCES = \
192 $(LIBVEXMULTIARCH_SOURCES)
193libvexmultiarch_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CPPFLAGS = \
194 $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) -Ipriv
195libvexmultiarch_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CFLAGS = \
196 $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) $(LIBVEX_CFLAGS)
197if VGCONF_HAVE_PLATFORM_SEC
198libvexmultiarch_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES = \
199 $(LIBVEXMULTIARCH_SOURCES)
200libvexmultiarch_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CPPFLAGS = \
201 $(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) -Ipriv
202libvexmultiarch_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CFLAGS = \
203 $(AM_CFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) $(LIBVEX_CFLAGS)
204endif
205