1# 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 \ 13 auxprogs/genoffsets.c 14 15pkginclude_HEADERS = \ 16 pub/libvex.h \ 17 pub/libvex_basictypes.h \ 18 pub/libvex_emnote.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_s390x_common.h \ 30 pub/libvex_ir.h \ 31 pub/libvex_trc_values.h 32 33noinst_HEADERS = \ 34 priv/main_globals.h \ 35 priv/main_util.h \ 36 priv/ir_match.h \ 37 priv/ir_opt.h \ 38 priv/guest_generic_bb_to_IR.h \ 39 priv/guest_generic_x87.h \ 40 priv/guest_x86_defs.h \ 41 priv/guest_amd64_defs.h \ 42 priv/guest_ppc_defs.h \ 43 priv/guest_arm_defs.h \ 44 priv/guest_arm64_defs.h \ 45 priv/guest_s390_defs.h \ 46 priv/guest_mips_defs.h \ 47 priv/host_generic_regs.h \ 48 priv/host_generic_simd64.h \ 49 priv/host_generic_simd128.h \ 50 priv/host_generic_simd256.h \ 51 priv/host_generic_maddf.h \ 52 priv/host_x86_defs.h \ 53 priv/host_amd64_defs.h \ 54 priv/host_ppc_defs.h \ 55 priv/host_arm_defs.h \ 56 priv/host_arm64_defs.h \ 57 priv/host_s390_defs.h \ 58 priv/s390_disasm.h \ 59 priv/s390_defs.h \ 60 priv/host_mips_defs.h 61 62BUILT_SOURCES = pub/libvex_guest_offsets.h 63CLEANFILES = pub/libvex_guest_offsets.h 64 65if COMPILER_IS_CLANG 66CFLAGS_FOR_GENOFFSETS = $(CFLAGS) -no-integrated-as 67else 68CFLAGS_FOR_GENOFFSETS = $(CFLAGS) 69endif 70 71# This is very uggerly. Need to sed out both "xyzzyN" and 72# "xyzzy$N" since gcc on different targets emits the constants 73# differently -- with a leading $ on x86/amd64 but none on ppc32/64. 74# ICC also emits the constants differently with a leading # #define 75pub/libvex_guest_offsets.h: auxprogs/genoffsets.c \ 76 pub/libvex_basictypes.h \ 77 pub/libvex_guest_x86.h \ 78 pub/libvex_guest_amd64.h \ 79 pub/libvex_guest_ppc32.h \ 80 pub/libvex_guest_ppc64.h \ 81 pub/libvex_guest_arm.h \ 82 pub/libvex_guest_arm64.h \ 83 pub/libvex_guest_s390x.h \ 84 pub/libvex_guest_mips32.h \ 85 pub/libvex_guest_mips64.h 86 rm -f auxprogs/genoffsets.s 87 $(mkdir_p) auxprogs pub 88 $(CC) $(CFLAGS_FOR_GENOFFSETS) \ 89 $(LIBVEX_CFLAGS) \ 90 $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) \ 91 -O -S -o auxprogs/genoffsets.s \ 92 $(srcdir)/auxprogs/genoffsets.c 93 grep xyzzy auxprogs/genoffsets.s | grep "^[# ]*#define" \ 94 | sed "s/# #define/#define/g" \ 95 | sed "s/xyzzy\\$$//g" \ 96 | sed "s/xyzzy#//g" \ 97 | sed "s/xyzzy//g" \ 98 > pub/libvex_guest_offsets.h 99 rm -f auxprogs/genoffsets.s 100 101#---------------------------------------------------------------------------- 102# libvex-<platform>-<os>.a : containing all VEX objects, including 103# a main_main.o compiled in single arch (guest==host). 104# libvexmultiarch-<platform>-<os>.a, only containing multiarch_main_main.o, 105# which is main_main.c compiled so that any guest/host combination 106# can be done at runtime. 107#---------------------------------------------------------------------------- 108 109pkglib_LIBRARIES = libvex-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a \ 110 libvexmultiarch-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a 111if VGCONF_HAVE_PLATFORM_SEC 112pkglib_LIBRARIES += libvex-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a \ 113 libvexmultiarch-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a 114endif 115 116LIBVEX_SOURCES_COMMON = \ 117 priv/main_globals.c \ 118 priv/main_main.c \ 119 priv/main_util.c \ 120 priv/ir_defs.c \ 121 priv/ir_inject.c \ 122 priv/ir_match.c \ 123 priv/ir_opt.c \ 124 priv/guest_generic_bb_to_IR.c \ 125 priv/guest_generic_x87.c \ 126 priv/guest_x86_helpers.c \ 127 priv/guest_x86_toIR.c \ 128 priv/guest_amd64_helpers.c \ 129 priv/guest_amd64_toIR.c \ 130 priv/guest_ppc_helpers.c \ 131 priv/guest_ppc_toIR.c \ 132 priv/guest_arm_helpers.c \ 133 priv/guest_arm_toIR.c \ 134 priv/guest_arm64_helpers.c \ 135 priv/guest_arm64_toIR.c \ 136 priv/guest_s390_helpers.c \ 137 priv/guest_s390_toIR.c \ 138 priv/guest_mips_helpers.c \ 139 priv/guest_mips_toIR.c \ 140 priv/host_generic_regs.c \ 141 priv/host_generic_simd64.c \ 142 priv/host_generic_simd128.c \ 143 priv/host_generic_simd256.c \ 144 priv/host_generic_maddf.c \ 145 priv/host_generic_reg_alloc2.c \ 146 priv/host_x86_defs.c \ 147 priv/host_x86_isel.c \ 148 priv/host_amd64_defs.c \ 149 priv/host_amd64_isel.c \ 150 priv/host_ppc_defs.c \ 151 priv/host_ppc_isel.c \ 152 priv/host_arm_defs.c \ 153 priv/host_arm_isel.c \ 154 priv/host_arm64_defs.c \ 155 priv/host_arm64_isel.c \ 156 priv/host_s390_defs.c \ 157 priv/host_s390_isel.c \ 158 priv/s390_disasm.c \ 159 priv/host_mips_defs.c \ 160 priv/host_mips_isel.c 161 162LIBVEXMULTIARCH_SOURCES = priv/multiarch_main_main.c 163 164LIBVEX_CFLAGS = \ 165 -Wbad-function-cast \ 166 -fstrict-aliasing 167 168libvex_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_SOURCES = $(LIBVEX_SOURCES_COMMON) 169libvex_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CPPFLAGS = \ 170 $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) -Ipriv 171libvex_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CFLAGS = \ 172 $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) $(LIBVEX_CFLAGS) 173if VGCONF_HAVE_PLATFORM_SEC 174libvex_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES = $(LIBVEX_SOURCES_COMMON) 175libvex_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CPPFLAGS = \ 176 $(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) -Ipriv 177libvex_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CFLAGS = \ 178 $(AM_CFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) $(LIBVEX_CFLAGS) 179endif 180 181libvexmultiarch_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_SOURCES = \ 182 $(LIBVEXMULTIARCH_SOURCES) 183libvexmultiarch_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CPPFLAGS = \ 184 $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) -Ipriv 185libvexmultiarch_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CFLAGS = \ 186 $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) $(LIBVEX_CFLAGS) 187if VGCONF_HAVE_PLATFORM_SEC 188libvexmultiarch_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES = \ 189 $(LIBVEXMULTIARCH_SOURCES) 190libvexmultiarch_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CPPFLAGS = \ 191 $(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) -Ipriv 192libvexmultiarch_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CFLAGS = \ 193 $(AM_CFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) $(LIBVEX_CFLAGS) 194endif 195 196