| # VEX/Makefile is generated from this file at configure-time. |
| |
| include $(top_srcdir)/Makefile.all.am |
| |
| #---------------------------------------------------------------------------- |
| # Headers, etc |
| #---------------------------------------------------------------------------- |
| |
| EXTRA_DIST = \ |
| HACKING.README \ |
| LICENSE.README \ |
| LICENSE.GPL \ |
| quote.txt \ |
| newline.txt \ |
| auxprogs/genoffsets.c |
| |
| pkginclude_HEADERS = \ |
| pub/libvex.h \ |
| pub/libvex_basictypes.h \ |
| pub/libvex_emwarn.h \ |
| pub/libvex_guest_offsets.h \ |
| pub/libvex_guest_x86.h \ |
| pub/libvex_guest_amd64.h \ |
| pub/libvex_guest_ppc32.h \ |
| pub/libvex_guest_ppc64.h \ |
| pub/libvex_guest_arm.h \ |
| pub/libvex_ir.h \ |
| pub/libvex_trc_values.h |
| |
| noinst_HEADERS = \ |
| priv/main_globals.h \ |
| priv/main_util.h \ |
| priv/ir_match.h \ |
| priv/ir_opt.h \ |
| priv/guest_generic_bb_to_IR.h \ |
| priv/guest_generic_x87.h \ |
| priv/guest_x86_defs.h \ |
| priv/guest_amd64_defs.h \ |
| priv/guest_ppc_defs.h \ |
| priv/guest_arm_defs.h \ |
| priv/host_generic_regs.h \ |
| priv/host_generic_simd64.h \ |
| priv/host_x86_defs.h \ |
| priv/host_amd64_defs.h \ |
| priv/host_ppc_defs.h \ |
| priv/host_arm_defs.h |
| |
| BUILT_SOURCES = pub/libvex_guest_offsets.h |
| CLEANFILES = pub/libvex_guest_offsets.h |
| |
| # This is very uggerly. Need to sed out both "xyzzyN" and |
| # "xyzzy$N" since gcc on different targets emits the constants |
| # differently -- with a leading $ on x86/amd64 but none on ppc32/64. |
| pub/libvex_guest_offsets.h: |
| rm -f auxprogs/genoffsets.s |
| $(CC) $(LIBVEX_CFLAGS) -O -S -o auxprogs/genoffsets.s \ |
| auxprogs/genoffsets.c |
| grep xyzzy auxprogs/genoffsets.s | grep define \ |
| | sed "s/xyzzy\\$$//g" | sed "s/xyzzy//g" \ |
| > pub/libvex_guest_offsets.h |
| rm -f auxprogs/genoffsets.s |
| |
| #---------------------------------------------------------------------------- |
| # vex_svnversion.h |
| #---------------------------------------------------------------------------- |
| |
| # The contents of vex_svnversion.h depends on the Vex revision number. The |
| # ideal way to deal with it would be if SVN had post-update hooks: we'd |
| # generate/regenerate it every time we did "svn co"/"svn up", and otherwise |
| # never delete it or regenerate it. |
| # |
| # But SVN lacks post-update hooks. So instead we generate it when building |
| # (it's in BUILT_SOURCES) if it's not present (we test for that in the |
| # generation rule), or if 'make version' is run. (Thus it can get |
| # out-of-date when developing; the 'make version' target lets that be |
| # remedied manually.) Otherwise, we never delete it or regenerate it (in |
| # particular, it is not present in CLEANFILES). Furthermore, at 'make dist' |
| # time, we regenerate it, and copy it into the dist tarball, thus ensuring |
| # the distributed version is up-to-date. Note that if a user manually |
| # deletes it and rebuilds, or does 'make dist' from a distributed version, |
| # it will be regenerated incorrectly, containing the string "exported" |
| # instead of the SVN revision number. |
| |
| BUILT_SOURCES += priv/main_vex_svnversion.h |
| |
| # Generate it at build time if not present. Nb: generating a file and |
| # putting it in $(srcdir) rather than $(builddir) seems like bad form. But |
| # because this file won't be regenerated post-distribution, then it's more |
| # like a non-generated file and so is reasonable to put in $(srcdir). |
| priv/main_vex_svnversion.h: version |
| if [ ! -f priv/main_vex_svnversion.h ] ; then \ |
| mv $(top_srcdir)/vex_svnversion.h \ |
| $(srcdir)/priv/main_vex_svnversion.h; \ |
| else \ |
| rm -f $(top_srcdir)/vex_svnversion.h; \ |
| fi |
| |
| # Regenerate it and copy it into the dist tarball at 'make dist' time. |
| dist-hook: version |
| mv $(top_srcdir)/vex_svnversion.h \ |
| $(distdir)/priv/main_vex_svnversion.h |
| |
| # Generate it. |
| version: |
| cat quote.txt > $(top_srcdir)/vex_svnversion.h |
| svnversion -n . >> $(top_srcdir)/vex_svnversion.h |
| cat quote.txt >> $(top_srcdir)/vex_svnversion.h |
| cat newline.txt >> $(top_srcdir)/vex_svnversion.h |
| |
| #---------------------------------------------------------------------------- |
| # libvex-<platform>.a |
| #---------------------------------------------------------------------------- |
| |
| pkglib_LIBRARIES = libvex-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a |
| if VGCONF_HAVE_PLATFORM_SEC |
| pkglib_LIBRARIES += libvex-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a |
| endif |
| |
| LIBVEX_SOURCES_COMMON = \ |
| priv/main_globals.c \ |
| priv/main_main.c \ |
| priv/main_util.c \ |
| priv/ir_defs.c \ |
| priv/ir_match.c \ |
| priv/ir_opt.c \ |
| priv/guest_generic_bb_to_IR.c \ |
| priv/guest_generic_x87.c \ |
| priv/guest_x86_helpers.c \ |
| priv/guest_x86_toIR.c \ |
| priv/guest_amd64_helpers.c \ |
| priv/guest_amd64_toIR.c \ |
| priv/guest_ppc_helpers.c \ |
| priv/guest_ppc_toIR.c \ |
| priv/guest_arm_helpers.c \ |
| priv/guest_arm_toIR.c \ |
| priv/host_generic_regs.c \ |
| priv/host_generic_simd64.c \ |
| priv/host_generic_reg_alloc2.c \ |
| priv/host_x86_defs.c \ |
| priv/host_x86_isel.c \ |
| priv/host_amd64_defs.c \ |
| priv/host_amd64_isel.c \ |
| priv/host_ppc_defs.c \ |
| priv/host_ppc_isel.c \ |
| priv/host_arm_defs.c \ |
| priv/host_arm_isel.c |
| |
| LIBVEX_CFLAGS = \ |
| -Wbad-function-cast \ |
| -Wcast-qual \ |
| -Wcast-align \ |
| -fstrict-aliasing |
| |
| libvex_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_SOURCES = $(LIBVEX_SOURCES_COMMON) |
| libvex_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CPPFLAGS = \ |
| $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) -Ipriv |
| libvex_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CFLAGS = \ |
| $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) $(LIBVEX_CFLAGS) |
| if VGCONF_HAVE_PLATFORM_SEC |
| libvex_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES = $(LIBVEX_SOURCES_COMMON) |
| libvex_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CPPFLAGS = \ |
| $(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) -Ipriv |
| libvex_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CFLAGS = \ |
| $(AM_CFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) $(LIBVEX_CFLAGS) |
| endif |
| |