[m-dev.] diff: bindist fixes -- missing vars and double maintenance.

Tyson Dowd trd at cs.mu.OZ.AU
Tue Sep 5 14:37:22 AEDT 2000


Hi,

Some fixes for the bindist.

===================================================================


Estimated hours taken: 1

bindist/Mmakefile:
bindist/bindist.README.Linux:
bindist/bindist.README.MS-Windows:
	Remove bindist.README.Linux and bindist.README.MS-Windows.
	These were causing double maintenance problems.
	All they did was substitute the VERSION into the appropriate
	places in the document, which isn't very important for these
	documents.

bindist/bindist.build_vars.in:
bindist/bindist.configure.in:
	Add the new configuration variables that Peter Ross has been
	adding recently.  If these are not propogated into the
	build_vars for the bindist, the scripts in the bindist won't
	work properly (for instance, they won't know the correct suffix
	for executables when linking).


Index: bindist/Mmakefile
===================================================================
RCS file: /home/mercury1/repository/mercury/bindist/Mmakefile,v
retrieving revision 1.26
diff -u -r1.26 Mmakefile
--- bindist/Mmakefile	2000/09/05 03:23:42	1.26
+++ bindist/Mmakefile	2000/09/05 03:33:57
@@ -26,8 +26,11 @@
 
 README_ETC	= ../COPYING ../COPYING.LIB ../HISTORY ../LIMITATIONS \
 		  ../NEWS ../RELEASE_NOTES ../BUGS ../WORK_IN_PROGRESS \
-		  ../VERSION ../README.OSF1 ../README.Linux-PPC \
-		  ../README.Linux-Alpha ../README.Solaris
+		  ../VERSION ../README.AIX ../README.BSDI ../README.FreeBSD \
+		  ../README.HPUX ../README.IRIX-5 ../README.Linux \
+		  ../README.Linux-Alpha ../README.Linux-PPC \
+		  ../README.Linux-m68k ../README.MS-VisualC \
+		  ../README.MS-Windows ../README.OSF1 ../README.Solaris
 
 SCRIPT_FILES	= ../scripts/*.in ../scripts/*.sh-subr \
 		  ../scripts/Mmake.rules \
@@ -35,7 +38,9 @@
 
 CONFIG_FILES	= ../config.sub ../config.guess ../install-sh
 
-MISC_FILES	= INSTALL README README.Linux README.MS-Windows \
+# These files have a local version bindist.$filename which will be
+# preprocessed to create the final version.
+MISC_FILES	= INSTALL README \
 		  build_vars Makefile.in configure configure.in
 
 #-----------------------------------------------------------------------------#
Index: bindist/bindist.README.Linux
===================================================================
RCS file: bindist.README.Linux
diff -N bindist.README.Linux
--- /tmp/cvs067jry	Tue Sep  5 14:34:24 2000
+++ /dev/null	Tue May 16 14:50:59 2000
@@ -1,38 +0,0 @@
-This file documents just the Linux/x86 port. 
-For the Linux/PowerPC port, see README.Linux-PPC. 
-For the Linux/Alpha port, see README.Linux-Alpha. 
-(Ports to Linux on other architectures have not yet
-been attempted, but should not be difficult.)
-
-On Linux with ELF, shared libraries are supported.  However, ELF shared
-libraries require position-independent code, and (partly due to
-limitations in our current compilation technology, but partly due to
-limitations in the x86 architecture) this is quite costly for Mercury --
-probably considerably more costly than it is for C.
-
-Nevertheless, since shared libraries reduces disk usage, improve link
-times, and allow run-time sharing of the Mercury libraries between
-different applications, using them is a good idea.
-
-Currently the default is that programs do *not* use the Mercury shared
-libraries.  (Probably it ought to be the other way around, but that
-happened to be a little bit harder to implement.  We may change this in
-a future release.)
-
-To use the shared libraries, you must compile your program with
-`mmc --pic-reg' and link with `ml --shared' or add 
-`MGNUCFLAGS=--pic-reg' and `MLFLAGS=--shared' to your Mmake file.
-
-Mercury code compiled with `--pic-reg' or with gcc's `-fpic' option has
-what we shall call "PIC linkage", whereas Mercury code compiled without
-these options has "non-PIC linkage".  The static version of the Mercury
-libraries has non-PIC linkage, while the shared version has PIC linkage.
-Be careful that you do not try to link Mercury code with PIC linkage and
-Mercury code with non-PIC linkage into the same executable, otherwise you
-will probably get an obscure link error about `MR_grade_...' undefined
-or `MR_runtime_grade' multiply defined.
-(The reason for this is that standard non-PIC Mercury code uses the
-`ebx' register in ways that are incompatible with its uses as the global
-offset table pointer register in PIC code.  If only the Intel
-architecture wasn't so register-starved, we wouldn't need to use `ebx',
-and then PIC and non-PIC code could be mixed without any problems.)
Index: bindist/bindist.README.MS-Windows
===================================================================
RCS file: bindist.README.MS-Windows
diff -N bindist.README.MS-Windows
--- /tmp/cvsG9I6LK	Tue Sep  5 14:34:24 2000
+++ /dev/null	Tue May 16 14:50:59 2000
@@ -1,76 +0,0 @@
------------------------------------------------------------------------------
-
-INTRODUCTION
-
-Mercury has been ported to Windows using the "Cygwin"
-(formerly also known as "Cygwin32" and "gnu-win32") Unix emulation
-package from Cygnus.  We've tested the port on Windows 2000,
-but it should work on Windows 95, Windows 98, and Windows NT too.
-
-This file documents how to install the binary distribution
-of Mercury on Windows using Cygwin.
-
-(Note: we don't have any plans for a port to Windows 3.1.)
-
------------------------------------------------------------------------------
-
-PREPARATION
-
-To use or install Mercury on Windows, you need to first get Cygwin
-from Cygnus, and install it. 
-
-If you're going to use a binary distribution of Mercury for Windows,
-you need to make sure that you get a version of Cygwin that is
-compatible with the one that the binary distribution was compiled
-with.  This will normally be specified in the filename of the
-Mercury binary distribution.  For example, if the file name is
-mercury-0.8.1.pc-windows-cygwin-b20.1.tar.gz then it was compiled
-with version b20.1 of Cygwin, so you will need version b20.1
-(or any later version which preserves binary compatibility with b20.1).
-
-You can download Cygwin from <http://sourceware.cygnus.com/cygwin/>.
-Follow the installation instructions that come with Cygwin.
-Make sure that the Cygwin binaries are in your PATH, that you have
-a /tmp directory, that you have a copy of sh.exe in /bin.
-Before continuing, check that `sh' and `gcc' work. 
-
-For more information on Cygwin, see the Cygwin web site mentioned above.
-
------------------------------------------------------------------------------
-
-RUNNING CONFIGURE
-
-Just type
-
-	sh configure
-
------------------------------------------------------------------------------
-
-RUNNING MAKE INSTALL
-
-Just type
-
-	make install
-
------------------------------------------------------------------------------
-
-USING MERCURY
-
-Once you've finished installing, you need to add the appropriate
-directory, normally /usr/local/mercury-<VERSION>/bin, to your PATH. 
-On Windows 2000, you need to make sure that this directory precedes
-the Windows system directory in the PATH, otherwise `mmc' will invoke the
-Microsoft Management Console rather than the Melbourne Mercury Compiler.
-
-You should be able to read the HTML version of the Mercury
-documentation, which by default gets installed in the directory
-/usr/local/mercury-<VERSION>/lib/mercury/html,
-using Netscape or MS Internet Explorer.  Or you can get a copy
-of GNU Emacs for NT and use it to browse the INFO version in
-/usr/local/mercury-<VERSION>/lib/mercury/info.
-
-There may still be some problems with case-insensitive filenames
-and the name clash between `mmake' and `Mmake'.  If you run into any
-such problems, rename the `Mmake' file in each subdirectory to `Mmakefile'.
-
------------------------------------------------------------------------------
Index: bindist/bindist.build_vars.in
===================================================================
RCS file: /home/mercury1/repository/mercury/bindist/bindist.build_vars.in,v
retrieving revision 1.12
diff -u -r1.12 bindist.build_vars.in
--- bindist/bindist.build_vars.in	1999/12/24 04:25:00	1.12
+++ bindist/bindist.build_vars.in	2000/09/05 03:25:02
@@ -37,3 +37,16 @@
 DL_LIBRARY="@DL_LIBRARY@"
 SOCKET_LIBRARY="@SOCKET_LIBRARY@"
 NSL_LIBRARY="@NSL_LIBRARY@"
+OBJFILE_OPT="@OBJFILE_OPT@"
+AR="@AR@"
+ARFLAGS="@ARFLAGS@"
+AR_LIBFILE_OPT="@AR_LIBFILE_OPT@"
+BOEHMGC_MAKEFILE="@BOEHMGC_MAKEFILE@"
+EXE_SUFFIX="@EXE_SUFFIX@"
+OBJ_SUFFIX="@OBJ_SUFFIX@"
+LIB_SUFFIX="@LIB_SUFFIX@"
+LIB_PREFIX="@LIB_PREFIX@"
+LIB_LIBPATH="@LIB_LIBPATH@"
+LINK_LIB="@LINK_LIB@"
+LINK_OPT_SEP="@LINK_OPT_SEP@"
+CYGPATH="@CYGPATH@"
Index: bindist/bindist.configure.in
===================================================================
RCS file: /home/mercury1/repository/mercury/bindist/bindist.configure.in,v
retrieving revision 1.27
diff -u -r1.27 bindist.configure.in
--- bindist/bindist.configure.in	1999/12/24 04:25:00	1.27
+++ bindist/bindist.configure.in	2000/09/05 03:25:35
@@ -68,6 +68,20 @@
 AC_SUBST(SOCKET_LIBRARY)
 AC_SUBST(NSL_LIBRARY)
 
+AC_SUBST(OBJFILE_OPT)
+AC_SUBST(AR)
+AC_SUBST(ARFLAGS)
+AC_SUBST(AR_LIBFILE_OPT)
+AC_SUBST(BOEHMGC_MAKEFILE)
+AC_SUBST(EXE_SUFFIX)
+AC_SUBST(OBJ_SUFFIX)
+AC_SUBST(LIB_SUFFIX)
+AC_SUBST(LIB_PREFIX)
+AC_SUBST(LIB_LIBPATH)
+AC_SUBST(LINK_LIB)
+AC_SUBST(LINK_OPT_SEP)
+AC_SUBST(CYGPATH)
+
 #-----------------------------------------------------------------------------#
 AC_PROG_RANLIB
 #-----------------------------------------------------------------------------#


-- 
       Tyson Dowd           # 
                            #  Surreal humour isn't everyone's cup of fur.
     trd at cs.mu.oz.au        # 
http://www.cs.mu.oz.au/~trd #
--------------------------------------------------------------------------
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