Home | History | Annotate | Download | only in valgrind
      1 # VEX/Makefile is generated from this file at configure-time.
      2 
      3 include $(top_srcdir)/Makefile.all.am
      4 
      5 #----------------------------------------------------------------------------
      6 # Headers, etc
      7 #----------------------------------------------------------------------------
      8 
      9 EXTRA_DIST = \
     10 	HACKING.README \
     11 	LICENSE.README \
     12 	LICENSE.GPL \
     13 	auxprogs/genoffsets.c
     14 
     15 pkginclude_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_guest_tilegx.h \
     30 	pub/libvex_s390x_common.h \
     31 	pub/libvex_ir.h \
     32 	pub/libvex_trc_values.h
     33 
     34 noinst_HEADERS = \
     35 	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 \
     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 \
     61 	priv/s390_disasm.h \
     62 	priv/s390_defs.h \
     63 	priv/host_mips_defs.h \
     64 	priv/tilegx_disasm.h
     65 
     66 BUILT_SOURCES = pub/libvex_guest_offsets.h
     67 CLEANFILES    = pub/libvex_guest_offsets.h
     68 
     69 if COMPILER_IS_CLANG
     70 CFLAGS_FOR_GENOFFSETS = $(CFLAGS) -no-integrated-as
     71 else
     72 CFLAGS_FOR_GENOFFSETS = $(CFLAGS)
     73 endif
     74 
     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) \
     94 	      $(LIBVEX_CFLAGS) \
     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" \
    102 	   | sed "s/xyzzy//g" \
    103 	   > pub/libvex_guest_offsets.h
    104 	rm -f auxprogs/genoffsets.s
    105 
    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 #----------------------------------------------------------------------------
    113 
    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
    119 endif
    120 
    121 LIBVEX_SOURCES_COMMON = \
    122 	priv/main_globals.c \
    123 	priv/main_main.c \
    124 	priv/main_util.c \
    125 	priv/ir_defs.c \
    126 	priv/ir_inject.c \
    127 	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 \
    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 \
    165 	priv/s390_disasm.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 \
    170 	priv/tilegx_disasm.c
    171 
    172 LIBVEXMULTIARCH_SOURCES = priv/multiarch_main_main.c
    173 
    174 LIBVEX_CFLAGS = \
    175 	-Wbad-function-cast \
    176 	-fstrict-aliasing
    177 
    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)
    189 endif
    190 
    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)
    204 endif
    205 
    206