[m-rev.] for review: install each grade from separate directory

Zoltan Somogyi zs at csse.unimelb.edu.au
Mon Feb 25 15:46:16 AEDT 2008


Currently we prepare all grades for installation inside one directory, tmp_dir,
so that once we are finished installing one grade, we have to delete it
to make room for the next. This diff prepares each grade in its own install
directory, so that we can *leave* all the install directories to be included
in a source distribution. (This diff does not do that last step.)

Mmakefile:
	Make the above change.

scripts/prepare_tmp_dir_fixed_part.in:
scripts/prepare_tmp_dir_grade_part:
	Delete these scripts, since there is no longer a "fixed part" of files
	in the shared tmp dir that is used for all grades.

scripts/prepare_install_dir.in:
	Replace them both with this script, which does both their jobs.

configure.log:
	Do substitutions in prepare_tmp_dir, not prepare_tmp_dir_fixed_part.

scripts/mercury_cleanup_install:
	This script has long been obsolete, so remove it.

Zoltan.

cvs diff: Diffing .
Index: Mmakefile
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/Mmakefile,v
retrieving revision 1.132
diff -u -b -r1.132 Mmakefile
--- Mmakefile	20 Feb 2008 03:09:58 -0000	1.132
+++ Mmakefile	23 Feb 2008 04:11:21 -0000
@@ -23,7 +23,7 @@
 #-----------------------------------------------------------------------------#
 
 # NOTE: if you add another subdirectory here then you may need to also update
-# scripts/prepare_tmp_dir_grade_part and the `tar' target below.
+# scripts/prepare_tmp_dir.in and the `tar' target below.
 # If the directory you are adding will contain C files generated by the
 # Mercury compiler when included in the source distribution then you will
 # also need to update the code in configure.in that deletes those C files
@@ -77,8 +77,14 @@
 # `mmake depend' forces them to be remade to ensure that they are up-to-date.
 
 .PHONY: dep
-dep: dep_library dep_ssdb dep_mdbcomp dep_browser dep_compiler \
-		dep_slice dep_profiler dep_deep_profiler
+dep:	dep_library \
+	dep_ssdb \
+	dep_mdbcomp \
+	dep_browser \
+	dep_compiler \
+	dep_slice \
+	dep_profiler \
+	dep_deep_profiler
 
 .PHONY: dep_library
 dep_library: library/$(deps_subdir)$(STD_LIB_NAME).dep
@@ -164,9 +170,14 @@
 # depend_library MUST be done before depend_compiler and depend_profiler
 
 .PHONY: depend
-depend: depend_library depend_mdbcomp depend_browser depend_ssdb \
+depend: depend_library \
+	depend_mdbcomp \
+	depend_browser \
+	depend_ssdb \
 		depend_compiler \
-		depend_slice depend_profiler depend_deep_profiler
+	depend_slice \
+	depend_profiler \
+	depend_deep_profiler
 
 .PHONY: depend_library
 depend_library:
@@ -278,8 +289,14 @@
 #-----------------------------------------------------------------------------#
 
 .PHONY: tags
-tags: tags_compiler tags_library tags_mdbcomp tags_browser tags_ssdb \
-    		tags_slice tags_profiler tags_deep_profiler
+tags: 	tags_library \
+	tags_mdbcomp \
+	tags_browser \
+	tags_ssdb \
+	tags_compiler \
+	tags_slice \
+	tags_profiler \
+	tags_deep_profiler
 
 .PHONY: tags_compiler
 tags_compiler:
@@ -498,10 +515,21 @@
 
 .PHONY: install_main
 install_main: all \
-		install_scripts install_util install_runtime install_boehm_gc \
-		install_library install_mdbcomp install_browser install_ssdb \
-		install_trace install_compiler install_slice install_profiler \
-		install_deep_profiler install_doc install_config
+	install_scripts \
+	install_util \
+	install_runtime \
+	install_boehm_gc \
+	install_library \
+	install_mdbcomp \
+	install_browser \
+	install_ssdb \
+	install_trace \
+	install_compiler \
+	install_slice \
+	install_profiler \
+	install_deep_profiler \
+	install_doc \
+	install_config
 
 .PHONY: install_scripts
 install_scripts: scripts
@@ -571,56 +599,55 @@
 
 .PHONY: install_grades
 install_grades: all
+	# Use the newly installed compiler to build the libraries in various
+	# different grades. We need to override MC=mmc so that we use the mmc
+	# from the scripts directory, which runs the newly installed compiler,
+	# rather than using the bootstrap compiler.
 	#
-	# Use the newly installed compiler to build the libraries
-	# in various different grades.  We need to override MC=mmc
-	# so that we use the mmc from the scripts directory, which
-	# runs the newly installed compiler, rather than using the
-	# bootstrap compiler.
-	#
-	/bin/rm -fr tmp_dir
-	scripts/prepare_tmp_dir_fixed_part
+	# Compile different grades in different directories, so that we can
+	# optionally preserve all the directories, and include them in
+	# a distribution.
 	+for grade in x $(LIBGRADES); do				\
-	    if [ "$$grade" != "x" -a "$$grade" != "$(GRADE)" ]; then	\
-		gc_grade=`scripts/ml --grade $$grade --print-gc-grade`;	\
-		TWS=`/bin/pwd`/tmp_dir;					\
-		scripts/prepare_tmp_dir_grade_part;			\
-	        ( cd tmp_dir/boehm_gc &&				\
-		  $(SUBDIR_MMAKE) MC=mmc GRADE=$$grade			\
-			WORKSPACE=$$TWS GC_GRADE=$$gc_grade		\
-			install_lib ) &&				\
-		( cd tmp_dir/runtime &&					\
-		  $(SUBDIR_MMAKE) MC=mmc GRADE=$$grade WORKSPACE=$$TWS	\
+	    if [ "$${grade}" != "x" -a "$${grade}" != "$(GRADE)" ]; then \
+		gc_grade=`scripts/ml --grade $${grade} --print-gc-grade`; \
+		IWS=`/bin/pwd`/install_grade_dir.$${grade};		\
+		tmpdirs="$$t{mpdirs} $${IWS}";				\
+		scripts/prepare_install_dir $${IWS} &&			\
+	        ( cd $${IWS}/boehm_gc &&				\
+		  $(SUBDIR_MMAKE) MC=mmc GRADE=$${grade} WORKSPACE=$${IWS} \
+		  	GC_GRADE=$${gc_grade} install_lib ) &&		\
+		( cd $${IWS}/runtime &&					\
+		  $(SUBDIR_MMAKE) MC=mmc GRADE=$${grade} WORKSPACE=$${IWS} \
 			install_lib ) &&				\
-		( cd tmp_dir/library &&					\
-		  $(SUBDIR_MMAKE) MC=mmc GRADE=$$grade WORKSPACE=$$TWS	\
+		( cd $${IWS}/library &&					\
+		  $(SUBDIR_MMAKE) MC=mmc GRADE=$${grade} WORKSPACE=$${IWS} \
 			depend &&					\
-		  $(SUBDIR_MMAKE) MC=mmc GRADE=$$grade WORKSPACE=$$TWS	\
+		  $(SUBDIR_MMAKE) MC=mmc GRADE=$${grade} WORKSPACE=$${IWS} \
 			install_library ) &&				\
-		( cd tmp_dir/mdbcomp &&					\
-		  $(SUBDIR_MMAKE) MC=mmc GRADE=$$grade WORKSPACE=$$TWS	\
+		( cd $${IWS}/mdbcomp &&					\
+		  $(SUBDIR_MMAKE) MC=mmc GRADE=$${grade} WORKSPACE=$${IWS} \
 			depend &&					\
-		  $(SUBDIR_MMAKE) MC=mmc GRADE=$$grade WORKSPACE=$$TWS	\
+		  $(SUBDIR_MMAKE) MC=mmc GRADE=$${grade} WORKSPACE=$${IWS} \
 			install_library ) &&				\
-		( cd tmp_dir/browser &&					\
-		  $(SUBDIR_MMAKE) MC=mmc GRADE=$$grade WORKSPACE=$$TWS	\
+		( cd $${IWS}/browser &&					\
+		  $(SUBDIR_MMAKE) MC=mmc GRADE=$${grade} WORKSPACE=$${IWS} \
 			depend &&					\
-		  $(SUBDIR_MMAKE) MC=mmc GRADE=$$grade WORKSPACE=$$TWS	\
+		  $(SUBDIR_MMAKE) MC=mmc GRADE=$${grade} WORKSPACE=$${IWS} \
 			install_library ) &&				\
-		( cd tmp_dir/ssdb &&					\
-		  $(SUBDIR_MMAKE) MC=mmc GRADE=$$grade WORKSPACE=$$TWS	\
+		( cd $${IWS}/ssdb &&					\
+		  $(SUBDIR_MMAKE) MC=mmc GRADE=$${grade} WORKSPACE=$${IWS} \
 			depend &&					\
-		  $(SUBDIR_MMAKE) MC=mmc GRADE=$$grade WORKSPACE=$$TWS	\
+		  $(SUBDIR_MMAKE) MC=mmc GRADE=$${grade} WORKSPACE=$${IWS} \
 			install_library ) &&				\
-		( cd tmp_dir/trace &&					\
-		  $(SUBDIR_MMAKE) MC=mmc GRADE=$$grade WORKSPACE=$$TWS	\
+		( cd $${IWS}/trace &&					\
+		  $(SUBDIR_MMAKE) MC=mmc GRADE=$${grade} WORKSPACE=$${IWS} \
 			install_lib ) &&				\
 		true ||							\
-		{ echo "To clean up from failed install, remove tmp_dir"; \
+		{ echo "To clean up from failed install, remove $${IWS}"; \
 		  exit 1; };						\
+		if test ! -f .leave_tmp_dir; then rm -fr $${IWS}; fi; 	\
 	    fi;								\
-	done
-	if test ! -f .leave_tmp_dir; then rm -fr tmp_dir; fi
+	done;
 
 #-----------------------------------------------------------------------------#
 #
@@ -701,8 +728,6 @@
 
 .PHONY: clean_subdirs
 clean_subdirs:
-	rm -rf runtime/tmp_dir library/tmp_dir mdbcomp/tmp_dir \
-		browser/tmp_dir ssdb/tmp_dir trace/tmp_dir
 	+for dir in $(SUBDIRS); do \
 		if [ "$$dir" = scripts ]; then continue; fi; \
 		(cd $$dir; $(SUBDIR_MMAKE) clean) \
Index: configure.in
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/configure.in,v
retrieving revision 1.519
diff -u -b -r1.519 configure.in
--- configure.in	20 Feb 2008 03:09:58 -0000	1.519
+++ configure.in	25 Feb 2008 04:42:58 -0000
@@ -4757,7 +4757,7 @@
 scripts/canonical_grade
 scripts/mkfifo_using_mknod
 scripts/mercury_config
-scripts/prepare_tmp_dir_fixed_part
+scripts/prepare_install_dir
 tools/lmc
 tools/dotime
 '
cvs diff: Diffing analysis
cvs diff: Diffing bindist
cvs diff: Diffing boehm_gc
cvs diff: Diffing boehm_gc/Mac_files
cvs diff: Diffing boehm_gc/cord
cvs diff: Diffing boehm_gc/cord/private
cvs diff: Diffing boehm_gc/doc
cvs diff: Diffing boehm_gc/include
cvs diff: Diffing boehm_gc/include/private
cvs diff: Diffing boehm_gc/libatomic_ops-1.2
cvs diff: Diffing boehm_gc/libatomic_ops-1.2/doc
cvs diff: Diffing boehm_gc/libatomic_ops-1.2/src
cvs diff: Diffing boehm_gc/libatomic_ops-1.2/src/atomic_ops
cvs diff: Diffing boehm_gc/libatomic_ops-1.2/src/atomic_ops/sysdeps
cvs diff: Diffing boehm_gc/libatomic_ops-1.2/src/atomic_ops/sysdeps/gcc
cvs diff: Diffing boehm_gc/libatomic_ops-1.2/src/atomic_ops/sysdeps/hpc
cvs diff: Diffing boehm_gc/libatomic_ops-1.2/src/atomic_ops/sysdeps/ibmc
cvs diff: Diffing boehm_gc/libatomic_ops-1.2/src/atomic_ops/sysdeps/icc
cvs diff: Diffing boehm_gc/libatomic_ops-1.2/src/atomic_ops/sysdeps/msftc
cvs diff: Diffing boehm_gc/libatomic_ops-1.2/src/atomic_ops/sysdeps/sunc
cvs diff: Diffing boehm_gc/libatomic_ops-1.2/tests
cvs diff: Diffing boehm_gc/tests
cvs diff: Diffing boehm_gc/windows-untested
cvs diff: Diffing boehm_gc/windows-untested/vc60
cvs diff: Diffing boehm_gc/windows-untested/vc70
cvs diff: Diffing boehm_gc/windows-untested/vc71
cvs diff: Diffing browser
cvs diff: Diffing bytecode
cvs diff: Diffing compiler
cvs diff: Diffing compiler/notes
cvs diff: Diffing debian
cvs diff: Diffing debian/patches
cvs diff: Diffing deep_profiler
cvs diff: Diffing deep_profiler/notes
cvs diff: Diffing doc
cvs diff: Diffing extras
cvs diff: Diffing extras/base64
cvs diff: Diffing extras/cgi
cvs diff: Diffing extras/complex_numbers
cvs diff: Diffing extras/complex_numbers/samples
cvs diff: Diffing extras/complex_numbers/tests
cvs diff: Diffing extras/concurrency
cvs diff: Diffing extras/curs
cvs diff: Diffing extras/curs/samples
cvs diff: Diffing extras/curses
cvs diff: Diffing extras/curses/sample
cvs diff: Diffing extras/dynamic_linking
cvs diff: Diffing extras/error
cvs diff: Diffing extras/fixed
cvs diff: Diffing extras/gator
cvs diff: Diffing extras/gator/generations
cvs diff: Diffing extras/gator/generations/1
cvs diff: Diffing extras/graphics
cvs diff: Diffing extras/graphics/easyx
cvs diff: Diffing extras/graphics/easyx/samples
cvs diff: Diffing extras/graphics/mercury_allegro
cvs diff: Diffing extras/graphics/mercury_allegro/examples
cvs diff: Diffing extras/graphics/mercury_allegro/samples
cvs diff: Diffing extras/graphics/mercury_allegro/samples/demo
cvs diff: Diffing extras/graphics/mercury_allegro/samples/mandel
cvs diff: Diffing extras/graphics/mercury_allegro/samples/pendulum2
cvs diff: Diffing extras/graphics/mercury_allegro/samples/speed
cvs diff: Diffing extras/graphics/mercury_glut
cvs diff: Diffing extras/graphics/mercury_opengl
cvs diff: Diffing extras/graphics/mercury_tcltk
cvs diff: Diffing extras/graphics/samples
cvs diff: Diffing extras/graphics/samples/calc
cvs diff: Diffing extras/graphics/samples/gears
cvs diff: Diffing extras/graphics/samples/maze
cvs diff: Diffing extras/graphics/samples/pent
cvs diff: Diffing extras/lazy_evaluation
cvs diff: Diffing extras/lex
cvs diff: Diffing extras/lex/samples
cvs diff: Diffing extras/lex/tests
cvs diff: Diffing extras/log4m
cvs diff: Diffing extras/logged_output
cvs diff: Diffing extras/moose
cvs diff: Diffing extras/moose/samples
cvs diff: Diffing extras/moose/tests
cvs diff: Diffing extras/mopenssl
cvs diff: Diffing extras/morphine
cvs diff: Diffing extras/morphine/non-regression-tests
cvs diff: Diffing extras/morphine/scripts
cvs diff: Diffing extras/morphine/source
cvs diff: Diffing extras/net
cvs diff: Diffing extras/odbc
cvs diff: Diffing extras/posix
cvs diff: Diffing extras/posix/samples
cvs diff: Diffing extras/quickcheck
cvs diff: Diffing extras/quickcheck/tutes
cvs diff: Diffing extras/references
cvs diff: Diffing extras/references/samples
cvs diff: Diffing extras/references/tests
cvs diff: Diffing extras/solver_types
cvs diff: Diffing extras/solver_types/library
cvs diff: Diffing extras/trailed_update
cvs diff: Diffing extras/trailed_update/samples
cvs diff: Diffing extras/trailed_update/tests
cvs diff: Diffing extras/windows_installer_generator
cvs diff: Diffing extras/windows_installer_generator/sample
cvs diff: Diffing extras/windows_installer_generator/sample/images
cvs diff: Diffing extras/xml
cvs diff: Diffing extras/xml/samples
cvs diff: Diffing extras/xml_stylesheets
cvs diff: Diffing java
cvs diff: Diffing java/runtime
cvs diff: Diffing library
cvs diff: Diffing mdbcomp
cvs diff: Diffing profiler
cvs diff: Diffing robdd
cvs diff: Diffing runtime
cvs diff: Diffing runtime/GETOPT
cvs diff: Diffing runtime/machdeps
cvs diff: Diffing samples
cvs diff: Diffing samples/c_interface
cvs diff: Diffing samples/c_interface/c_calls_mercury
cvs diff: Diffing samples/c_interface/cplusplus_calls_mercury
cvs diff: Diffing samples/c_interface/mercury_calls_c
cvs diff: Diffing samples/c_interface/mercury_calls_cplusplus
cvs diff: Diffing samples/c_interface/mercury_calls_fortran
cvs diff: Diffing samples/c_interface/simpler_c_calls_mercury
cvs diff: Diffing samples/c_interface/simpler_cplusplus_calls_mercury
cvs diff: Diffing samples/c_interface/standalone_c
cvs diff: Diffing samples/diff
cvs diff: Diffing samples/muz
cvs diff: Diffing samples/rot13
cvs diff: Diffing samples/solutions
cvs diff: Diffing samples/solver_types
cvs diff: Diffing samples/tests
cvs diff: Diffing samples/tests/c_interface
cvs diff: Diffing samples/tests/c_interface/c_calls_mercury
cvs diff: Diffing samples/tests/c_interface/cplusplus_calls_mercury
cvs diff: Diffing samples/tests/c_interface/mercury_calls_c
cvs diff: Diffing samples/tests/c_interface/mercury_calls_cplusplus
cvs diff: Diffing samples/tests/c_interface/mercury_calls_fortran
cvs diff: Diffing samples/tests/c_interface/simpler_c_calls_mercury
cvs diff: Diffing samples/tests/c_interface/simpler_cplusplus_calls_mercury
cvs diff: Diffing samples/tests/diff
cvs diff: Diffing samples/tests/muz
cvs diff: Diffing samples/tests/rot13
cvs diff: Diffing samples/tests/solutions
cvs diff: Diffing samples/tests/toplevel
cvs diff: Diffing scripts
Index: scripts/Mmakefile
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/scripts/Mmakefile,v
retrieving revision 1.42
diff -u -b -r1.42 Mmakefile
--- scripts/Mmakefile	29 May 2007 08:18:26 -0000	1.42
+++ scripts/Mmakefile	23 Feb 2008 03:20:09 -0000
@@ -35,7 +35,7 @@
 	mmake \
 	mmc \
 	mprof \
-	prepare_tmp_dir_fixed_part
+	prepare_install_dir
 
 SCRIPTS = $(NONCONF_SCRIPTS) $(CONF_SCRIPTS)
 
Index: scripts/mercury_cleanup_install
===================================================================
RCS file: scripts/mercury_cleanup_install
diff -N scripts/mercury_cleanup_install
--- scripts/mercury_cleanup_install	28 Jan 2005 07:11:59 -0000	1.5
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,103 +0,0 @@
-#! /bin/sh
-#---------------------------------------------------------------------------#
-# Copyright (C) 1999 Monash University.
-# Copyright (C) 2000-2002, 2005 The University of Melbourne.
-# This file may only be copied under the terms of the GNU General
-# Public License - see the file COPYING in the Mercury distribution.
-#---------------------------------------------------------------------------#
-#
-# mercury_cleanup_install
-#
-# Author: Warwick Harvey <wharvey at cs.monash.edu.au>
-#
-# Checks for failed/aborted installation attempts, and tries to clean up
-# after them, since simply re-starting the install may do the wrong thing.
-#
-# The main problem with restarting an install is when the install is
-# interrupted during the building of alternative grades of the library,
-# runtime, etc.  When the alternative grades are being built, the versions
-# of the compiled files needed for the compiler itself (as opposed to
-# installed libraries) are moved into a `tmp_dir' subdirectory, with the
-# alternative versions being built in the old location.  This means that if
-# the process is interrupted and then re-started, the build process will
-# attempt to re-build the compiler using some files with the wrong grade.
-#
-# This script checks for the presence of subdirectories named `tmp_dir',
-# and if it finds them, assumes that an install process has failed and
-# needs to be cleaned up.  Cleaning up the failed install consists simply
-# of moving all the files in each `tmp_dir' back to where they came
-# from, overwriting any alternative grade versions that may be there,
-# and deleting the temporary directories.
-#
-# If there is an error while doing the clean-up, a more aggressive approach
-# is used.  An "mmake clean" is run on the directory in question, and then
-# the `tmp_dir' is deleted completely.  Note that for some directories (e.g.
-# `library', `browser'), this deletes some C files, which require a
-# working version of Mercury to rebuild.  However, if the installation got
-# as far as building the different grades of the library, then the compiler
-# (plus its default grade) has already been installed.  The build scripts
-# are smart enough to find and use this installed version even if it's not
-# in the user's path, so the "mmake clean" is safe even if there is no
-# existing Mercury installation (e.g. if the user is building it from
-# release sources).
-
-cleanup_failed_dirs=
-
-for tmp in `find . -name tmp_dir -print` ; do
-    dir=`dirname $tmp`
-    echo "Cleaning up from apparent failed install in \`$dir'..."
-    if (
-	cd $dir && (
-	    if [ -d Mercury/dirs ] ; then
-	    	dirs_subdir=Mercury/dirs/
-	    else
-	    	dirs_subdir=
-	    fi
-	    # For every saved `.dir' directory, delete any existing one so
-	    # it can be moved back (one can't just clobber directories).
-	    (
-		cd tmp_dir &&
-		for dir in *.dir ; do
-		    if [ "$dir" != "*.dir" ] ; then
-			rm -rf ../$dirs_subdir$dir
-		    fi
-		done
-	    )
-	    [ -d Mercury/dirs ] && mv tmp_dir/*.dir $dirs_subdir
-	    [ -d Mercury/cs ] && mv -f tmp_dir/*.c Mercury/cs
-	    [ -d Mercury/os ] && mv -f tmp_dir/*.o tmp_dir/*.pic_o Mercury/os
-	    [ -d Mercury/deps ] && mv -f tmp_dir/*.dep Mercury/deps
-	    [ -d Mercury/c_dates ] && mv -f tmp_dir/*.c_date Mercury/c_dates
-	    [ -d Mercury/mihs ] && mv -f tmp_dir/*.mih Mercury/mihs
-	    [ -d Mercury/useds ] && mv -f tmp_dir/*.used Mercury/useds
-	    mv -f tmp_dir/* .
-	    rmdir tmp_dir
-	)
-    ) ; then
-	echo "Done."
-    else
-	echo "Failed.  Trying a more aggressive approach..."
-	if ( cd $dir && mmake clean && rm -rf tmp_dir ) ; then
-	    echo "Succeeded."
-	else
-	    echo "Failed again.  :-("
-	    cleanup_failed_dirs="$cleanup_failed_dirs $dir"
-	fi
-    fi
-done
-
-if [ -n "$cleanup_failed_dirs" ] ; then
-	cat <<END
-
-Clean-up failed in the following directories:
-
-$cleanup_failed_dirs
-
-Either fix these directories by hand, or start over from scratch.
-
-END
-	exit 1
-fi
-
-exit 0
-
Index: scripts/prepare_install_dir.in
===================================================================
RCS file: scripts/prepare_install_dir.in
diff -N scripts/prepare_install_dir.in
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ scripts/prepare_install_dir.in	23 Feb 2008 03:25:39 -0000
@@ -0,0 +1,99 @@
+#!/bin/sh
+#---------------------------------------------------------------------------#
+# Copyright (C) 2008 The University of Melbourne.
+# This file may only be copied under the terms of the GNU General
+# Public License - see the file COPYING in the Mercury distribution.
+#---------------------------------------------------------------------------#
+
+if test "$#" != 1
+then
+	echo "Usage: prepare_install_dir <installdirname>"
+	exit 1
+fi
+
+installdir=$1;
+
+ln_s="@LN_S@"
+if test "$ln_s" = "false"
+then
+	ln_s="cp -r"
+fi
+wd=`/bin/pwd`
+
+rm -fr ${installdir}
+
+mkdir ${installdir}
+cp Mmake* ${installdir}
+cp Mercury.* ${installdir}
+cp VERSION ${installdir}
+cp config* ${installdir}
+cp aclocal.m4 ${installdir}
+mkdir ${installdir}/scripts
+cp scripts/* ${installdir}/scripts
+mkdir ${installdir}/tools
+cp tools/* ${installdir}/tools
+$ln_s $wd/compiler ${installdir}
+$ln_s $wd/robdd ${installdir}
+$ln_s $wd/util ${installdir}
+
+mkdir ${installdir}/boehm_gc
+mkdir ${installdir}/boehm_gc/Mac_files
+mkdir ${installdir}/boehm_gc/cord
+mkdir ${installdir}/boehm_gc/include
+mkdir ${installdir}/boehm_gc/include/private
+cp boehm_gc/NT_MAKEFILE ${installdir}/boehm_gc
+cp boehm_gc/gc.mak ${installdir}/boehm_gc
+cp boehm_gc/Makefile* ${installdir}/boehm_gc
+cp boehm_gc/Mmake* ${installdir}/boehm_gc
+cp boehm_gc/ac* ${installdir}/boehm_gc
+cp boehm_gc/*.cc ${installdir}/boehm_gc
+cp boehm_gc/*.cpp ${installdir}/boehm_gc
+cp boehm_gc/*.[chsS] ${installdir}/boehm_gc
+cp boehm_gc/Mac_files/*.[ch] ${installdir}/boehm_gc/Mac_files
+cp boehm_gc/cord/*.[ch] ${installdir}/boehm_gc/cord
+cp boehm_gc/include/*.[ch] ${installdir}/boehm_gc/include
+cp boehm_gc/include/private/*.[ch] ${installdir}/boehm_gc/include/private
+cp boehm_gc/configure_atomic_ops.sh ${installdir}/boehm_gc
+cp -r boehm_gc/libatomic_ops-*[0-9] ${installdir}/boehm_gc
+rm -fr ${installdir}/boehm_gc/libatomic_ops-*[0-9]/src/*.o
+rm -fr ${installdir}/boehm_gc/libatomic_ops-*[0-9]/src/*.a
+mkdir ${installdir}/runtime
+mkdir ${installdir}/runtime/machdeps
+cp runtime/Mmake* ${installdir}/runtime
+cp runtime/.mgnuc* ${installdir}/runtime
+cp runtime/*.in ${installdir}/runtime
+cp runtime/*.[ch] ${installdir}/runtime
+cp runtime/*.il ${installdir}/runtime
+cp runtime/machdeps/*.h ${installdir}/runtime/machdeps
+mkdir ${installdir}/trace
+cp trace/Mmake* ${installdir}/trace
+cp trace/.mgnuc* ${installdir}/trace
+cp trace/*.[chyl] ${installdir}/trace
+mkdir ${installdir}/library
+cp library/Mmake* ${installdir}/library
+cp library/Mercury.* ${installdir}/library
+cp library/.mgnuc* ${installdir}/library
+cp library/*FLAGS* ${installdir}/library
+cp library/print_extra_inits ${installdir}/library
+cp library/library_strong_name.sn ${installdir}/library
+cp library/*.m ${installdir}/library
+cp library/*.hrl ${installdir}/library
+mkdir ${installdir}/mdbcomp
+cp mdbcomp/Mmake* ${installdir}/mdbcomp
+cp mdbcomp/Mercury.* ${installdir}/mdbcomp
+cp mdbcomp/.mgnuc* ${installdir}/mdbcomp
+cp mdbcomp/*FLAGS* ${installdir}/mdbcomp
+cp mdbcomp/*.m ${installdir}/mdbcomp
+mkdir ${installdir}/browser
+cp browser/Mmake* ${installdir}/browser
+cp browser/Mercury.* ${installdir}/browser
+cp browser/.mgnuc* ${installdir}/browser
+cp browser/*FLAGS* ${installdir}/browser
+cp browser/*.m ${installdir}/browser
+mkdir ${installdir}/ssdb
+cp ssdb/Mmake* ${installdir}/ssdb
+cp ssdb/Mercury.* ${installdir}/ssdb
+cp ssdb/.mgnuc* ${installdir}/ssdb
+cp ssdb/*FLAGS* ${installdir}/ssdb
+cp ssdb/*.m ${installdir}/ssdb
+exit 0
cvs diff: Diffing slice
cvs diff: Diffing ssdb
cvs diff: Diffing tests
cvs diff: Diffing tests/benchmarks
cvs diff: Diffing tests/debugger
cvs diff: Diffing tests/debugger/declarative
cvs diff: Diffing tests/dppd
cvs diff: Diffing tests/general
cvs diff: Diffing tests/general/accumulator
cvs diff: Diffing tests/general/string_format
cvs diff: Diffing tests/general/structure_reuse
cvs diff: Diffing tests/grade_subdirs
cvs diff: Diffing tests/hard_coded
cvs diff: Diffing tests/hard_coded/exceptions
cvs diff: Diffing tests/hard_coded/purity
cvs diff: Diffing tests/hard_coded/sub-modules
cvs diff: Diffing tests/hard_coded/typeclasses
cvs diff: Diffing tests/invalid
cvs diff: Diffing tests/invalid/purity
cvs diff: Diffing tests/misc_tests
cvs diff: Diffing tests/mmc_make
cvs diff: Diffing tests/mmc_make/lib
cvs diff: Diffing tests/par_conj
cvs diff: Diffing tests/recompilation
cvs diff: Diffing tests/tabling
cvs diff: Diffing tests/term
cvs diff: Diffing tests/trailing
cvs diff: Diffing tests/valid
cvs diff: Diffing tests/warnings
cvs diff: Diffing tools
cvs diff: Diffing trace
cvs diff: Diffing util
cvs diff: Diffing vim
cvs diff: Diffing vim/after
cvs diff: Diffing vim/ftplugin
cvs diff: Diffing vim/syntax
--------------------------------------------------------------------------
mercury-reviews mailing list
Post messages to:       mercury-reviews at csse.unimelb.edu.au
Administrative Queries: owner-mercury-reviews at csse.unimelb.edu.au
Subscriptions:          mercury-reviews-request at csse.unimelb.edu.au
--------------------------------------------------------------------------



More information about the reviews mailing list