From 2a0d3a5eff0d07768ad6839b7a0ca1d4783db05e Mon Sep 17 00:00:00 2001 From: Paul Bone Date: Mon, 28 Sep 2015 10:21:06 +1000 Subject: [PATCH] Fix the source distribution tools/build_srcdist: De-initialise the git submodules prior to building the source distribution. They are then setup again, with clean working directories, by the call to ./prepare.sh. Mmakefile: Handle the the new location of libatomic_opss in the "tar" target. scripts/prepare_install_dir.in: Handle both usage in the source distribution where boehm_gc/libatomic_ops is a directory, and usage in a development workspace where boehm_gc/libatomic_ops is a symlink. --- Mmakefile | 5 +++++ scripts/prepare_install_dir.in | 18 ++++++++++++++---- tools/build_srcdist | 1 + 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/Mmakefile b/Mmakefile index dd4ebd133..20ab8baa5 100644 --- a/Mmakefile +++ b/Mmakefile @@ -489,10 +489,15 @@ tar: $(GENERATED_DOCS) test -d $$ROOTNAME/bytecode && \ mv $$ROOTNAME/bytecode stuff-to-exclude; \ mv $$ROOTNAME/extras/quickcheck stuff-to-exclude; \ + rm $$ROOTNAME/boehm_gc/libatomic_ops; \ + mv $$ROOTNAME/libatomic_ops \ + $$ROOTNAME/boehm_gc/libatomic_ops; \ mv $$ROOTNAME mercury-srcdist-$(VERSION); \ tar --exclude ".git" -cf - mercury-srcdist-$(VERSION) | \ gzip -9 > mercury-srcdist-$(VERSION).tar.gz; \ mv mercury-srcdist-$(VERSION) $$ROOTNAME; \ + mv $$ROOTNAME/boehm_gc/libatomic_ops \ + $$ROOTNAME/libatomic_ops; \ mv stuff-to-exclude/quickcheck $$ROOTNAME/extras/quickcheck; \ mv stuff-to-exclude/* $$ROOTNAME; \ rmdir stuff-to-exclude; \ diff --git a/scripts/prepare_install_dir.in b/scripts/prepare_install_dir.in index 7a4ff8650..65dfcf3cb 100644 --- a/scripts/prepare_install_dir.in +++ b/scripts/prepare_install_dir.in @@ -57,11 +57,21 @@ cp boehm_gc/*.[chsS] ${installdir}/boehm_gc/ cp boehm_gc/tools/*.[ch] ${installdir}/boehm_gc/tools cp boehm_gc/tools/*.sh ${installdir}/boehm_gc/tools cp boehm_gc/build_atomic_ops.sh* ${installdir}/boehm_gc -cp -Rp libatomic_ops ${installdir} -ln -s ${installdir}/libatomic_ops ${installdir}/boehm_gc +if [ -d libatomic_ops ]; then + # If the libatomic_ops directory is present then boehm_gc/libatomic_ops + # is a symlink. This doesn't work on platforms without symlinks, but + # does anyone run this script on Windows? + cp -Rp libatomic_ops ${installdir} + ln -s ${installdir}/libatomic_ops ${installdir}/boehm_gc + rm -fr ${installdir}/libatomic_ops/src/*.o + rm -fr ${installdir}/libatomic_ops/src/*.a +else + # Otherwise boehmgc_libatomic_ops is a directory. + cp -Rp boehm_gc/libatomic_ops ${installdir}/boehm_gc + rm -fr ${installdir}/boehm_gc/libatomic_ops/src/*.o + rm -fr ${installdir}/boehm_gc/libatomic_ops/src/*.a +fi cp -Rp boehm_gc/extra ${installdir}/boehm_gc -rm -fr ${installdir}/libatomic_ops/src/*.o -rm -fr ${installdir}/libatomic_ops/src/*.a mkdir ${installdir}/runtime mkdir ${installdir}/runtime/machdeps cp runtime/Mmake* ${installdir}/runtime diff --git a/tools/build_srcdist b/tools/build_srcdist index c1fcd2400..b4ce4cf49 100755 --- a/tools/build_srcdist +++ b/tools/build_srcdist @@ -88,6 +88,7 @@ BYTES_PER_WORD=4 UNBOXED_FLOATS=no # git checkout -- VERSION +git submodule deinit -f . git clean -d -f -x if [ -n "$RELEASE_VERSION" ]; then sed "s/VERSION=.*/VERSION=$RELEASE_VERSION/" VERSION > VERSION.new