1 # VEX/Makefile is generated from this file at configure-time.
3 include $(top_srcdir)/Makefile.all.am
5 #----------------------------------------------------------------------------
7 #----------------------------------------------------------------------------
15 pkginclude_HEADERS = \
17 pub/libvex_basictypes.h \
19 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 \
25 pub/libvex_guest_arm64.h \
26 pub/libvex_guest_s390x.h \
27 pub/libvex_guest_mips32.h \
28 pub/libvex_guest_mips64.h \
29 pub/libvex_guest_tilegx.h \
30 pub/libvex_s390x_common.h \
32 pub/libvex_trc_values.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 \
45 priv/guest_arm64_defs.h \
46 priv/guest_s390_defs.h \
47 priv/guest_mips_defs.h \
48 priv/guest_tilegx_defs.h \
49 priv/host_generic_regs.h \
50 priv/host_generic_simd64.h \
51 priv/host_generic_simd128.h \
52 priv/host_generic_simd256.h \
53 priv/host_generic_maddf.h \
54 priv/host_x86_defs.h \
55 priv/host_amd64_defs.h \
56 priv/host_ppc_defs.h \
57 priv/host_arm_defs.h \
58 priv/host_arm64_defs.h \
59 priv/host_s390_defs.h \
60 priv/host_tilegx_defs.h \
63 priv/host_mips_defs.h \
66 BUILT_SOURCES = pub/libvex_guest_offsets.h
67 CLEANFILES = pub/libvex_guest_offsets.h
70 CFLAGS_FOR_GENOFFSETS = $(CFLAGS) -no-integrated-as
72 CFLAGS_FOR_GENOFFSETS = $(CFLAGS)
75 # 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.
78 # ICC also emits the constants differently with a leading # #define
79 pub/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 \
85 pub/libvex_guest_arm.h \
86 pub/libvex_guest_arm64.h \
87 pub/libvex_guest_s390x.h \
88 pub/libvex_guest_mips32.h \
89 pub/libvex_guest_mips64.h \
90 pub/libvex_guest_tilegx.h
91 rm -f auxprogs/genoffsets.s
92 $(mkdir_p) auxprogs pub
93 $(CC) $(CFLAGS_FOR_GENOFFSETS) \
95 $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) \
96 -O -S -o auxprogs/genoffsets.s \
97 $(srcdir)/auxprogs/genoffsets.c
98 grep xyzzy auxprogs/genoffsets.s | grep "^[# ]*#define" \
99 | sed "s/# #define/#define/g" \
100 | sed "s/xyzzy\\$$//g" \
101 | sed "s/xyzzy#//g" \
103 > pub/libvex_guest_offsets.h
104 rm -f auxprogs/genoffsets.s
106 #----------------------------------------------------------------------------
107 # 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.
112 #----------------------------------------------------------------------------
114 pkglib_LIBRARIES = libvex-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a \
115 libvexmultiarch-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a
116 if VGCONF_HAVE_PLATFORM_SEC
117 pkglib_LIBRARIES += libvex-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a \
118 libvexmultiarch-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a
121 LIBVEX_SOURCES_COMMON = \
122 priv/main_globals.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 \
139 priv/guest_arm64_helpers.c \
140 priv/guest_arm64_toIR.c \
141 priv/guest_s390_helpers.c \
142 priv/guest_s390_toIR.c \
143 priv/guest_mips_helpers.c \
144 priv/guest_mips_toIR.c \
145 priv/guest_tilegx_helpers.c \
146 priv/guest_tilegx_toIR.c \
147 priv/host_generic_regs.c \
148 priv/host_generic_simd64.c \
149 priv/host_generic_simd128.c \
150 priv/host_generic_simd256.c \
151 priv/host_generic_maddf.c \
152 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 \
160 priv/host_arm_isel.c \
161 priv/host_arm64_defs.c \
162 priv/host_arm64_isel.c \
163 priv/host_s390_defs.c \
164 priv/host_s390_isel.c \
166 priv/host_mips_defs.c \
167 priv/host_mips_isel.c \
168 priv/host_tilegx_defs.c \
169 priv/host_tilegx_isel.c \
172 LIBVEXMULTIARCH_SOURCES = priv/multiarch_main_main.c
175 -Wbad-function-cast \
178 libvex_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_SOURCES = $(LIBVEX_SOURCES_COMMON)
179 libvex_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CPPFLAGS = \
180 $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) -Ipriv
181 libvex_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CFLAGS = \
182 $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) $(LIBVEX_CFLAGS)
183 if VGCONF_HAVE_PLATFORM_SEC
184 libvex_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES = $(LIBVEX_SOURCES_COMMON)
185 libvex_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CPPFLAGS = \
186 $(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) -Ipriv
187 libvex_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CFLAGS = \
188 $(AM_CFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) $(LIBVEX_CFLAGS)
191 libvexmultiarch_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_SOURCES = \
192 $(LIBVEXMULTIARCH_SOURCES)
193 libvexmultiarch_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CPPFLAGS = \
194 $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) -Ipriv
195 libvexmultiarch_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CFLAGS = \
196 $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) $(LIBVEX_CFLAGS)
197 if VGCONF_HAVE_PLATFORM_SEC
198 libvexmultiarch_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES = \
199 $(LIBVEXMULTIARCH_SOURCES)
200 libvexmultiarch_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CPPFLAGS = \
201 $(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) -Ipriv
202 libvexmultiarch_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CFLAGS = \
203 $(AM_CFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) $(LIBVEX_CFLAGS)