From b101826494f52daf8f6b1dc97220fb12e3eff80a Mon Sep 17 00:00:00 2001 From: Julian Seward Date: Tue, 26 Jul 2005 10:42:57 +0000 Subject: [PATCH] Makefile stuff, partly from Tom, which uses the SVN-externall'd VEX tree a bit better. Also, fixes to make 'make dist' include into the final tarball a minimal but workable subset of the stuff in the VEX directory. Note, you must do 'make' or 'make install' before 'make dist' since otherwise VEX/priv/main/vex_svnversion.h will not exist. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4266 --- Makefile.am | 66 +++++++++++++++++++++++++++++++- configure.in | 6 +-- coregrind/Makefile.am | 11 +++++- coregrind/m_dispatch/Makefile.am | 5 +++ coregrind/m_syswrap/Makefile.am | 6 +++ 5 files changed, 89 insertions(+), 5 deletions(-) diff --git a/Makefile.am b/Makefile.am index 8370e13e92..0898a37cac 100644 --- a/Makefile.am +++ b/Makefile.am @@ -46,7 +46,8 @@ EXTRA_DIST = \ README_MISSING_SYSCALL_OR_IOCTL \ valgrind.spec.in valgrind.pc.in \ Makefile.all.am Makefile.tool.am Makefile.core-AM_CPPFLAGS.am \ - Makefile.tool-inplace.am + Makefile.tool-inplace.am \ + $(VEX_PRIMARY_SOURCES) install-exec-hook: $(mkinstalldirs) $(DESTDIR)$(valdir) @@ -59,3 +60,66 @@ all-local: distclean-local: rm -rf $(inplacedir) + + +# This lists the bits of vex we need to copy into the tarball + +VEX_PRIMARY_SOURCES = \ + VEX/README \ + VEX/COPYING \ + VEX/Makefile \ + VEX/auxprogs/genoffsets.c \ + VEX/pub/libvex_guest_amd64.h \ + VEX/pub/libvex_ir.h \ + VEX/pub/libvex_guest_ppc32.h \ + VEX/pub/libvex_basictypes.h \ + VEX/pub/libvex_guest_offsets.h \ + VEX/pub/libvex_emwarn.h \ + VEX/pub/libvex.h \ + VEX/pub/libvex_trc_values.h \ + VEX/pub/libvex_guest_arm.h \ + VEX/pub/libvex_guest_x86.h \ + VEX/priv/ir/irmatch.c \ + VEX/priv/ir/irmatch.h \ + VEX/priv/ir/irdefs.c \ + VEX/priv/ir/iropt.c \ + VEX/priv/ir/iropt.h \ + VEX/priv/host-ppc32/isel.c \ + VEX/priv/host-ppc32/hdefs.c \ + VEX/priv/host-ppc32/hdefs.h \ + VEX/priv/main/vex_svnversion.h \ + VEX/priv/main/vex_globals.c \ + VEX/priv/main/vex_globals.h \ + VEX/priv/main/vex_main.c \ + VEX/priv/main/vex_util.c \ + VEX/priv/main/vex_util.h \ + VEX/priv/guest-arm/ghelpers.c \ + VEX/priv/guest-arm/gdefs.h \ + VEX/priv/guest-arm/toIR.c \ + VEX/priv/guest-x86/ghelpers.c \ + VEX/priv/guest-x86/gdefs.h \ + VEX/priv/guest-x86/toIR.c \ + VEX/priv/guest-generic/g_generic_x87.c \ + VEX/priv/guest-generic/g_generic_x87.h \ + VEX/priv/guest-generic/bb_to_IR.c \ + VEX/priv/guest-generic/bb_to_IR.h \ + VEX/priv/host-arm/isel.c \ + VEX/priv/host-arm/hdefs.c \ + VEX/priv/host-arm/hdefs.h \ + VEX/priv/host-x86/isel.c \ + VEX/priv/host-x86/hdefs.c \ + VEX/priv/host-x86/hdefs.h \ + VEX/priv/guest-amd64/ghelpers.c \ + VEX/priv/guest-amd64/gdefs.h \ + VEX/priv/guest-amd64/toIR.c \ + VEX/priv/guest-ppc32/ghelpers.c \ + VEX/priv/guest-ppc32/gdefs.h \ + VEX/priv/guest-ppc32/toIR.c \ + VEX/priv/host-generic/reg_alloc2.c \ + VEX/priv/host-generic/h_generic_regs.c \ + VEX/priv/host-generic/h_generic_regs.h \ + VEX/priv/host-generic/h_generic_simd64.c \ + VEX/priv/host-generic/h_generic_simd64.h \ + VEX/priv/host-amd64/isel.c \ + VEX/priv/host-amd64/hdefs.c \ + VEX/priv/host-amd64/hdefs.h diff --git a/configure.in b/configure.in index e2d4b1aee2..98807078df 100644 --- a/configure.in +++ b/configure.in @@ -10,17 +10,17 @@ AM_MAINTAINER_MODE # Nb: For the 2nd arg, the help string, AS_HELP_STRING is the proper way, but # older autoconfs don't support it... here's what it would say: # -# AS_HELP_STRING([--with-vex], [Vex directory (must be specified!)]), +# AS_HELP_STRING([--with-vex], [Vex directory]), # AC_ARG_WITH(vex, - [ --with-vex=/path/to/vex/dir Vex directory (must be specified!)], + [ --with-vex=/path/to/vex/dir Vex directory], [ AC_CHECK_FILE($withval/pub/libvex.h, [VEX_DIR=$withval], [AC_MSG_ERROR([Directory '$withval' does not exist, or does not contain Vex])]) ], [ - AC_MSG_ERROR([You must specify --with-vex=/path/to/vex/dir]) + VEX_DIR=`pwd`/VEX ]) AC_SUBST(VEX_DIR) diff --git a/coregrind/Makefile.am b/coregrind/Makefile.am index 978e8bb665..a84be3d7bc 100644 --- a/coregrind/Makefile.am +++ b/coregrind/Makefile.am @@ -82,7 +82,7 @@ noinst_HEADERS = \ BUILT_SOURCES = stage2.lds CLEANFILES = stage2.lds - + valgrind_SOURCES = \ stage1.c \ m_debuglog.c \ @@ -195,6 +195,15 @@ stage2.lds: Makefile -e '/\. = 0x[0-9A-Fa-f]\+ + SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/kickstart_base/g' > $@ \ || rm -f $@ +@VEX_DIR@/libvex.a: @VEX_DIR@/priv/main/vex_svnversion.h + $(MAKE) -C @VEX_DIR@ libvex.a EXTRA_CFLAGS="@PIE_AM_CFLAGS@" + +@VEX_DIR@/priv/main/vex_svnversion.h: + $(MAKE) -C @VEX_DIR@ version + +clean-local: + $(MAKE) -C @VEX_DIR@ clean + MANUAL_DEPS = $(noinst_HEADERS) $(include_HEADERS) all-local: diff --git a/coregrind/m_dispatch/Makefile.am b/coregrind/m_dispatch/Makefile.am index 3af6290e05..a6045dc691 100644 --- a/coregrind/m_dispatch/Makefile.am +++ b/coregrind/m_dispatch/Makefile.am @@ -9,3 +9,8 @@ EXTRA_DIST = \ libdispatch_a_SOURCES = \ dispatch-@VG_ARCH@.S + +dispatch-@VG_ARCH@.S: libvex_guest_offsets.h + +libvex_guest_offsets.h: + $(MAKE) -C @VEX_DIR@ pub/libvex_guest_offsets.h diff --git a/coregrind/m_syswrap/Makefile.am b/coregrind/m_syswrap/Makefile.am index a08df24c05..cddaa91d6a 100644 --- a/coregrind/m_syswrap/Makefile.am +++ b/coregrind/m_syswrap/Makefile.am @@ -21,3 +21,9 @@ libsyswrap_a_SOURCES = \ syswrap-@VG_OS@.c \ syswrap-@VG_PLATFORM@.c \ syswrap-main.c + +syscall-@VG_PLATFORM@.S: libvex_guest_offsets.h +syswrap-main.c: libvex_guest_offsets.h + +libvex_guest_offsets.h: + $(MAKE) -C @VEX_DIR@ pub/libvex_guest_offsets.h -- 2.47.3