[m-dev.] For review: Simplified installation of user libraries

Warwick Harvey wharvey at cs.monash.edu.au
Wed Oct 20 23:14:20 AEST 1999


Fergus wrote:
> > Anyway, here's a diff of the bindist changes.
> 
> A log message would be nice.

bindist/Mmakefile:
bindist/bindist.Makefile:
	Added `mercury_cleanup_install' and `vpath_find' to the list of
	utilities included in and installed by a binary distribution.  These
	are used by some of the install targets.


I include below the full log message, in case (like me :-) you're struggling
to remember what this was all about originally.


Estimated hours taken: 30

Added built-in mmake support for installing user libraries.

Mmake.common.in:
	Moved the definitions of many of the generic install directories
	(plus FULLARCH and LIBGRADES) to scripts/Mmake.vars.in, so they
	can be used for things other than just the Mercury compiler.

compiler/modules.m:
	Added code to generate appropriate lib<module>.install* targets.
	Improved the dependency list generated for the lib<module> target to
	include intermodule optimisation files if and only if the
	appropriate flags have been set (previously it always depended on
	the `.opt' files, but never on the `.trans_opt' files).

scripts/Mmake.rules:
	Added some rules for use when installing libraries.

scripts/Mmake.vars.in:
	Added the definitions of many of the generic install directories 
	(plus FULLARCH and LIBGRADES) from Mmake.common.in.
	Added support for overriding and/or adding to the definition of
	LIBGRADES on a per-library basis.

scripts/mercury_cleanup_install:
	New script, for cleaning up after failed installs.

bindist/Mmakefile:
bindist/bindist.Makefile:
	Added `mercury_cleanup_install' and `vpath_find' to the list of
	utilities included in and installed by a binary distribution.  These
	are used by some of the install targets.

doc/user_guide.texi:
	Documented the new features.

extras/references/Mmakefile:
extras/references/samples/Mmakefile:
	Changed to exploit/test new features.



> Hmm, do info_do_mdb and vpath_find need to be installed?
> They are only used during the source installation, I believe.

The user library install stuff uses vpath_find for installing the `.init',
`.a' and `.so' files.  It does this because the standard library install
stuff uses it for the same thing, and I just copied the code.  At this point
I can't see why it's needed in either context, but I'm probably missing
something.

I've removed the info_to_mdb stuff.  A revised diff is below.

(Another bindist bug: @DL_LIBRARY@ is not being substituted by bindists's
configure script, so building shared libraries --- at least on my Linux box
--- barfs.)

Warwick

cvs server: Diffing bindist
Index: bindist/Mmakefile
===================================================================
RCS file: /home/mercury1/repository/mercury/bindist/Mmakefile,v
retrieving revision 1.22
diff -u -r1.22 Mmakefile
--- Mmakefile	1999/09/16 04:46:23	1.22
+++ Mmakefile	1999/10/20 12:59:02
@@ -16,10 +16,13 @@
 
 LIB_FILES	= bin doc html inc ints lib mdb/mdb_doc modules
 
+# Miscellaneous scripts and utilities not processed by configure
 UTILS		= $(INSTALL_PREFIX)/bin/mkinit$(EXT_FOR_EXE) \
 		  $(INSTALL_PREFIX)/bin/mdemangle$(EXT_FOR_EXE) \
 		  $(INSTALL_PREFIX)/bin/mtags \
-		  $(INSTALL_PREFIX)/bin/mprof_merge_runs
+		  $(INSTALL_PREFIX)/bin/mprof_merge_runs \
+		  $(INSTALL_PREFIX)/bin/vpath_find \
+		  $(INSTALL_PREFIX)/bin/mercury_cleanup_install
 
 README_ETC	= ../COPYING ../COPYING.LIB ../HISTORY ../LIMITATIONS \
 		  ../NEWS ../RELEASE_NOTES ../BUGS ../WORK_IN_PROGRESS \
Index: bindist/bindist.Makefile.in
===================================================================
RCS file: /home/mercury1/repository/mercury/bindist/bindist.Makefile.in,v
retrieving revision 1.20
diff -u -r1.20 bindist.Makefile.in
--- bindist.Makefile.in	1999/10/04 09:15:26	1.20
+++ bindist.Makefile.in	1999/10/20 12:59:02
@@ -16,6 +16,7 @@
 INSTALL_MAN_DIR = $(INSTALL_PREFIX)/man
 INSTALL_ELISP_DIR = $(INSTALL_PREFIX)/lib/mercury/elisp
 
+# These scripts are generated by configure from the corresponding `.in' file
 INSTALL_SCRIPTS		= scripts/c2init scripts/mmc \
 			scripts/mercury_update_interface scripts/mgnuc \
 			scripts/ml scripts/mmake scripts/mprof \
@@ -29,8 +30,10 @@
 
 LIB_PARTS		= bin doc html inc ints lib mdb/mdb_doc modules
 
+# Any miscellaneous scripts and utilities not processed by configure
 UTILS			= util/mdemangle util/mkinit util/mtags \
-			  util/mprof_merge_runs
+			  util/mprof_merge_runs util/vpath_find \
+			  util/mercury_cleanup_install
 
 #-----------------------------------------------------------------------------#
 
--------------------------------------------------------------------------
mercury-developers mailing list
Post messages to:       mercury-developers at cs.mu.oz.au
Administrative Queries: owner-mercury-developers at cs.mu.oz.au
Subscriptions:          mercury-developers-request at cs.mu.oz.au
--------------------------------------------------------------------------



More information about the developers mailing list