[m-rev.] for review: port Mercury to MSYS (MinGW)
Ian MacLarty
maclarty at cs.mu.OZ.AU
Tue Oct 4 16:36:33 AEST 2005
For review by anyone.
Estimated hours taken: 7
Branches: main and 0.12
README.Cygwin:
README.MS-Windows:
README.MinGW:
Move most of README.MS-Windows to README.Cygwin and make
README.MS-Windows refer the user to README.Cygwin, README.MinGW or
README.MS-VisualC.
README.MinGW describes how to install the source distribution under
MSYS.
configure.in:
Configure Mercury for MinGW. Most of the options are the same as
Cygwin.
boehm_gc/Makefile:
Add a workaround to a problem with cp not working properly just
after a file is created on MinGW.
If cygpath is not present (which it isn't on MSYS), then use
/bin/sh to invoke the C compiler.
scripts/mmc.in:
Do not use exec to invoke mercury_compile under MinGW. exec
doesn't seem to understand Windows like paths with a drive
letter in front.
Index: README.Cygwin
===================================================================
RCS file: README.Cygwin
diff -N README.Cygwin
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ README.Cygwin 4 Oct 2005 05:55:50 -0000
@@ -0,0 +1,156 @@
+-----------------------------------------------------------------------------
+
+INTRODUCTION
+
+Mercury has been ported to Windows using the "Cygwin"
+(formerly also known as "Cygwin32" and "gnu-win32") Unix emulation
+package. We've tested the port on Windows XP SP2,
+but it should work on Windows 95, 98, ME, 2000 and NT.
+
+This file documents how to install the binary distribution of
+Mercury on Windows and how to build the source distribution
+of Mercury on Windows using Cygwin. This installation will use the GNU
+C compiler by default. If you want to use the Microsoft Visual C
+compiler, please see the file README.MS-VisualC.
+
+-----------------------------------------------------------------------------
+
+PREPARATION
+
+To use or build Mercury on Windows, you need to first get Cygwin and
+install it. Cygwin version 1.3.1 is buggy and should not be used, but
+Cygwin 1.1.* or Cygwin 1.3.2 or later should be OK. Recent versions of
+Cygwin can be installed directly from:
+
+ http://sources.redhat.com/cygwin/setup.exe
+
+This program will download and install the required components.
+
+If you want more information on Cygwin, see the site:
+
+ http://sources.redhat.com/cygwin/
+
+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.9.1.pc-windows-cygwin-1.1.4.tar.gz then you need version
+1.1.4 of Cygwin. Later versions may work also, however it is always
+possible that compatibility might break at some point. Cygwin will
+create a file C:\cygwin\setup.txt that lists the versions of every
+package installed.
+
+Before continuing, check that you can run Cygwin and get a command line
+shell, and that `gcc' (the GNU C compiler) works.
+
+For more information on Cygwin, see the Cygwin web site mentioned above.
+
+-----------------------------------------------------------------------------
+
+UNPACKING THE SOURCES
+
+After installing Cygwin, you should download the Mercury source or
+binary distribution, and unpack it.
+
+You should use Cygwin's tar program to unpack the Mercury distribution.
+From a cygwin command shell, use the `cd' command to change directory
+to the directory where you saved the source or binary distribution that
+you downloaded, and then use `tar zxf <filename>' to unpack it,
+where <filename> is the filename that you downloaded, e.g.
+mercury-compiler-<version>.tar.gz (for the source distribution), or
+mercury-<version>.i686-pc-cygwin-windows.tar.gz (for the binary distribution).
+
+Note that other programs which understand tar.gz files (e.g. WinZip)
+may not be able to unpack them in the correct manner for use with Cygwin.
+
+-----------------------------------------------------------------------------
+
+RUNNING CONFIGURE
+
+Use the `cd' command to change directory to the directory that you just
+unpacked, and then configure with
+
+ sh configure
+
+as described in the INSTALL file.
+On Windows 2000 or XP, it may start up the "Microsoft Management Console"
+program (the autoconfiguration process looks for a program named "mmc").
+If so, just close that application, e.g. by selecting "Exit" from
+the "Console" menu.
+
+-----------------------------------------------------------------------------
+
+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.
+If you are familiar with how to set the PATH for command-line programs
+in Windows you can add
+
+ C:\cygwin\usr\local\mercury-<VERSION>\bin
+
+to that path.
+
+Otherwise you can just set the path in Cygwin by creating a file called
+`.bashrc' in your Cygwin home directory that contains the line:
+
+ PATH=/usr/local/mercury-<VERSION>/bin:$PATH
+
+You Cygwin home directory can be found in C:\cygwin\home\username\
+if using Windows Explorer (Cygwin will call your home directory
+`/home/username' or simply `~').
+
+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.
+In this case it might be a good idea to modify your path in your
+.bashrc rather than in the Windows PATH environment variable, so as to
+not confuse any other programs that might be looking for the Microsoft
+Management Console.
+
+You should be able to read the HTML version of the Mercury
+documentation, which by default gets installed in
+C:\cygwin\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.
+
+If you use mmake files named `Mmake' rather than `Mmakefile',
+there can be some problems with case-insensitive filenames
+and the name clash between `mmake' and `Mmake'. If you run into any
+such problems, rename your `Mmake' file to `Mmakefile'.
+
+To write Mercury programs, simply create a new .m file in your favourite
+editor. Run `mmc <filename>.m' on the Cygwin command line to compile
+small programs, or use `mmake' to handle larger systems. See the
+Mercury Users Guide for more information about the command line tools.
+There is currently no GUI for editing and compiling Mercury programs,
+although it is quite likely you can hook up a sophisticated editor to
+run `mmc' and/or `mmake' for you.
+
+-----------------------------------------------------------------------------
+
+OTHER PACKAGES YOU MIGHT NEED
+
+If you want to use the mtags tool from the Mercury distribution, you'll
+need to install perl. A binary distribution of Perl is available at the
+Cygwin porting project:
+ http://www.student.uni-koeln.de/cygwin/
+
+If you want to build your own Mercury releases from the CVS sources, you
+will need a previously installed Mercury compiler (for example, one of
+the recent releases of the day). You will also need GNU autoconf, which
+can be downloaded from
+ ftp://ftp.gnu.org/pub/gnu/autoconf/
+Autoconf should configure, build and install directly from the source
+package.
+
+-----------------------------------------------------------------------------
Index: README.MS-Windows
===================================================================
RCS file: /home/mercury1/repository/mercury/README.MS-Windows,v
retrieving revision 1.19
diff -u -r1.19 README.MS-Windows
--- README.MS-Windows 30 May 2004 22:59:33 -0000 1.19
+++ README.MS-Windows 4 Oct 2005 05:55:15 -0000
@@ -1,178 +1,27 @@
-----------------------------------------------------------------------------
-INTRODUCTION
+MERCURY ON WINDOWS
-Mercury has been ported to Windows using the "Cygwin"
-(formerly also known as "Cygwin32" and "gnu-win32") Unix emulation
-package. We've tested the port on Windows 2000,
-but it should work on Windows 95/98/ME and Windows NT too.
+Mercury has been ported to MS Windows.
+We've tested the port on Windows XP SP2,
+but it should work on Windows 95, 98, ME 2000 and NT.
+We don't have any plans for a port to Windows 3.1.
-This file documents how to install the binary distribution of
-Mercury on Windows and how to build the source distribution
-of Mercury on Windows using Cygwin. This installation will use the GNU
-C compiler by default. If you want to use the Microsoft Visual C
-compiler, please see the file README.MS-VisualC.
+The Mercury build process makes use of a number of Unix tools such as
+sh and make. This means that a Unix emulation environment is required
+to build Mercury on Windows.
-(Note: we don't have any plans for a port to Windows 3.1.)
+Two such environments are supported:
------------------------------------------------------------------------------
+1. Cygwin (www.cygwin.com). For instructions on how to install Mercury
+ under Cygwin see README.Cygwin.
-PREPARATION
+2. MSYS (www.mingw.org). For instructions on how to install Mercury
+ under MSYS see README.MinGW.
-To use or build Mercury on Windows, you need to first get Cygwin and
-install it. Cygwin version 1.3.1 is buggy and should not be used, but
-Cygwin 1.1.* or Cygwin 1.3.2 or later should be OK. Recent versions of
-Cygwin can be installed directly from:
-
- http://sources.redhat.com/cygwin/setup.exe
-
-This program will download and install the required components.
-
-If you want more information on Cygwin, see the site:
-
- http://sources.redhat.com/cygwin/
-
-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.9.1.pc-windows-cygwin-1.1.4.tar.gz then you need version
-1.1.4 of Cygwin. Later versions may work also, however it is always
-possible that compatibility might break at some point. Cygwin will
-create a file C:\cygwin\setup.txt that lists the versions of every
-package installed.
-
-Before continuing, check that you can run Cygwin and get a command line
-shell, and that `gcc' (the GNU C compiler) works.
-
-For more information on Cygwin, see the Cygwin web site mentioned above.
-
------------------------------------------------------------------------------
-
-UNPACKING THE SOURCES
-
-After installing Cygwin, you should download the Mercury source or
-binary distribution, and unpack it.
-
-You should use Cygwin's tar program to unpack the Mercury distribution.
-From a cygwin command shell, use the `cd' command to change directory
-to the directory where you saved the source or binary distribution that
-you downloaded, and then use `tar zxf <filename>' to unpack it,
-where <filename> is the filename that you downloaded, e.g.
-mercury-compiler-<version>.tar.gz (for the source distribution), or
-mercury-<version>.i686-pc-cygwin-windows.tar.gz (for the binary distribution).
-
-Note that other programs which understand tar.gz files (e.g. WinZip)
-may not be able to unpack them in the correct manner for use with Cygwin.
-
------------------------------------------------------------------------------
-
-RUNNING CONFIGURE
-
-Use the `cd' command to change directory to the directory that you just
-unpacked, and then configure with
-
- sh configure
-
-as described in the INSTALL file.
-On Windows 2000, it may start up the "Microsoft Management Console"
-program (the autoconfiguration process looks for a program named "mmc").
-If so, just close that application, e.g. by selecting "Exit" from
-the "Console" menu.
-
------------------------------------------------------------------------------
-
-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.
-If you are familiar with how to set the PATH for command-line programs
-in Windows you can add
-
- C:\cygwin\usr\local\mercury-<VERSION>\bin
-
-to that path.
-
-Otherwise you can just set the path in Cygwin by creating a file called
-`.bashrc' in your Cygwin home directory that contains the line:
-
- PATH=/usr/local/mercury-<VERSION>/bin:$PATH
-
-You Cygwin home directory can be found in C:\cygwin\home\username\
-if using Windows Explorer (Cygwin will call your home directory
-`/home/username' or simply `~').
-
-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.
-In this case it might be a good idea to modify your path in your
-.bashrc rather than in the Windows PATH environment variable, so as to
-not confuse any other programs that might be looking for the Microsoft
-Management Console.
-
-You should be able to read the HTML version of the Mercury
-documentation, which by default gets installed in
-C:\cygwin\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.
-
-If you use mmake files named `Mmake' rather than `Mmakefile',
-there can be some problems with case-insensitive filenames
-and the name clash between `mmake' and `Mmake'. If you run into any
-such problems, rename your `Mmake' file to `Mmakefile'.
-
-To write Mercury programs, simply create a new .m file in your favourite
-editor. Run `mmc <filename>.m' on the Cygwin command line to compile
-small programs, or use `mmake' to handle larger systems. See the
-Mercury Users Guide for more information about the command line tools.
-There is currently no GUI for editing and compiling Mercury programs,
-although it is quite likely you can hook up a sophisticated editor to
-run `mmc' and/or `mmake' for you.
-
------------------------------------------------------------------------------
-
-OTHER PACKAGES YOU MIGHT NEED
-
-If you want to use the mtags tool from the Mercury distribution, you'll
-need to install perl. A binary distribution of Perl is available at the
-Cygwin porting project:
- http://www.student.uni-koeln.de/cygwin/
-
-If you want to build your own Mercury releases from the CVS sources, you
-will need a previously installed Mercury compiler (for example, one of
-the recent releases of the day). You will also need GNU autoconf, which
-can be downloaded from
- ftp://ftp.gnu.org/pub/gnu/autoconf/
-Autoconf should configure, build and install directly from the source
-package.
-
------------------------------------------------------------------------------
-
-BUILDING WITH MINGW
-
-The above instructions describe how to build/install a version of
-the system that targets Cygwin. It is also possible to build a version that
-targets Mingw, i.e. where the generated executables do not rely on Cygwin.
-
-- First, install the Cygwin version of Mercury, and put it in your PATH.
-- Second, configure the source distribution of Mercury using
- --with-cc="gcc -mno-cygwin".
-- Third, run "make" and "make install".
-- Fourth, replace the following files in the installed Mingw Mercury
- directories with copies of the corresponding file from the installed
- Cygwin Mercury directories:
- mercury_compile.exe (in <prefix>/lib/mercury/bin/<config>)
- mercury_profile.exe (in <prefix>/lib/mercury/bin/<config>)
- mdemangle.exe (in <prefix>/bin)
- mkinit.exe (in <prefix>/bin)
+Mercury can also be built using the MS Visual C compiler, although one of
+the above environments is still required for the build process. See
+README.MS-VisualC for instructions on how to build Mercury with the
+MS Visual C compiler.
-----------------------------------------------------------------------------
Index: README.MinGW
===================================================================
RCS file: README.MinGW
diff -N README.MinGW
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ README.MinGW 4 Oct 2005 06:12:03 -0000
@@ -0,0 +1,72 @@
+-----------------------------------------------------------------------------
+
+BUILDING WITH MINGW
+
+It is possible to build the Mercury compiler using the MinGW version of GCC.
+The advantage of using MinGW is that the generated executables will run
+natively on Windows without the need for any support environments like Cygwin.
+
+A Unix like environment is however still require to build the Mercury compiler.
+MSYS or Cygwin can be used for this purpose.
+
+-----------------------------------------------------------------------------
+
+BUILDING A MINGW COMPILER UNDER MSYS
+
+To build the source distribution under MSYS follow these steps:
+
+1. Download and install MinGW and MSYS (available from www.mingw.org).
+ For MinGW install "the minimal set of packages required to build C/C++" and
+ "the full set of utility packages".
+
+2. Open an MSYS session and unpack the source distribution with a command
+ like:
+ tar -xvzf mercury-compiler-rotd-2005-09-29-unstable.tar.gz
+
+3. cd into the new directory and run configure:
+
+ ./configure --prefix=c:/mercury
+
+ It is important to specify the installation prefix as a full windows
+ path with a drive letter (except use `/' instead of `\').
+ Do not use a path like `/mercury', because that
+ will be interpretted differently by the MSYS shell than by the generated
+ executables, resulting in a broken installation.
+ On Windows 2000 or XP, you may get a dialog from the
+ "Micrsoft Management Console" with the message "The selected file cannot
+ be found.". This is because configure looks for a program called "mmc".
+ Simply dismiss the dialog by clicking OK.
+
+4. run: `make' and then `make install'.
+
+Add /c/mercury/bin (or whatever path you installed Mercury to) to the MSYS
+PATH (you cannot add `c:/mercury/bin' to the MSYS PATH because `:' is used to
+separate directories in the MSYS PATH).
+
+NOTE TO DEVELOPERS: The tools/bootcheck script does not work properly
+on MSYS at the moment -- it will build stage 3, but will not run the tests
+correctly. To run the tests you should first install the compiler and add
+it to the PATH. Next set the DIFF_OPTS environment variable to "-c -b". This
+will cause the test scripts to ignore the extra carriage return character that
+gets added to the end of each line under MinGW. Then run mmake from the tests
+directory.
+
+-----------------------------------------------------------------------------
+
+BUILDING A CYGWIN COMPILER WHICH TARGETS MINGW
+
+To build a compiler which targets MinGW from Cygwin do the following:
+
+- First, install the Cygwin version of Mercury, and put it in your PATH.
+- Second, configure the source distribution of Mercury using
+ --with-cc="gcc -mno-cygwin".
+- Third, run "make" and "make install".
+- Fourth, replace the following files in the installed Mingw Mercury
+ directories with copies of the corresponding file from the installed
+ Cygwin Mercury directories:
+ mercury_compile.exe (in <prefix>/lib/mercury/bin/<config>)
+ mercury_profile.exe (in <prefix>/lib/mercury/bin/<config>)
+ mdemangle.exe (in <prefix>/bin)
+ mkinit.exe (in <prefix>/bin)
+
+-----------------------------------------------------------------------------
Index: configure.in
===================================================================
RCS file: /home/mercury1/repository/mercury/configure.in,v
retrieving revision 1.434
diff -u -r1.434 configure.in
--- configure.in 23 Sep 2005 06:39:46 -0000 1.434
+++ configure.in 3 Oct 2005 11:11:11 -0000
@@ -141,6 +141,22 @@
;;
esac
#-----------------------------------------------------------------------------#
+# MMC_INVOKE_CMD is the the command used to invoke mercury_compile in
+# scripts/mmc.
+# On MSYS (MinGW) we cannot use exec, since exec will not find the file because
+# it will expect a path relative to the MSYS home directory and will not work
+# with a full Windows path. A full Windows path, however must be used for the
+# prefix so that mercury_compile will find the standard library.
+#
+case "$host" in
+ *mingw*)
+ MMC_INVOKE_CMD=
+ ;;
+ *) MMC_INVOKE_CMD=exec
+ ;;
+esac
+AC_SUBST(MMC_INVOKE_CMD)
+#-----------------------------------------------------------------------------#
# Don't document this -- it's only used by the mercury_config script
# to generate a new configuration for an already installed system.
@@ -503,10 +519,12 @@
AC_PATH_PROG(INSTALL_INFO,install-info)
AC_SUBST(INSTALL_INFO)
#-----------------------------------------------------------------------------#
-# texi2dvi is currently broken on cygwin
+# texi2dvi is currently broken on cygwin and mingw
case "$host" in
*-cygwin*)
TEXI2DVI="" ;;
+ *mingw*)
+ TEXI2DVI="" ;;
*)
AC_PATH_PROG(TEXI2DVI,texi2dvi) ;;
esac
@@ -622,9 +640,9 @@
AC_MSG_CHECKING(whether we need to use -fno-strict-aliasing)
$CC -O2 -Wall -fno-strict-aliasing -c conftest.c \
- </dev/null >&conftest1.out
+ </dev/null > conftest1.out 2>&1
$CC -O2 -Wall -c conftest.c \
- </dev/null >&conftest2.out
+ </dev/null > conftest2.out 2>&1
# get the lines that exist only in conftest2.out
comm -13 conftest1.out conftest2.out > conftest.2only
@@ -814,6 +832,13 @@
LN_S=false
fi
;;
+ *mingw*)
+ MATH_LIB=
+ if test "$enable_symlinks_opt" != "yes"; then
+ MMC_USE_SYMLINKS_OPT=--no-use-symlinks
+ LN_S=false
+ fi
+ ;;
esac
AC_SUBST(LN_S)
@@ -848,6 +873,8 @@
case "$host" in
*-cygwin*)
ac_cv_func_mprotect=no ;;
+ *mingw*)
+ ac_cv_func_mprotect=no ;;
esac
mercury_check_for_functions \
@@ -2438,6 +2465,19 @@
esac
;;
+ *mingw*)
+ THREAD_LIBS=""
+ case "$CC" in
+ *cl* | *CL*) # cl is the Microsoft C compiler
+ CFLAGS_FOR_THREADS="-DMR_THREAD_SAFE -DWIN32_THREADS /MD"
+ LDFLAGS_FOR_THREADS="/MD"
+ LD_LIBFLAGS_FOR_THREADS="/MD"
+ ;;
+ *)
+ CFLAGS_FOR_THREADS="-DGC_WIN32_THREADS -DMR_THREAD_SAFE" ;;
+ esac
+ ;;
+
# Theoretically we should change this check to *apple*darwin*)
# as darwin should be the same whether or not we are on a powerpc or
# an i386, but since we don't have access to an i386 with darwin
@@ -3358,6 +3398,18 @@
EXT_FOR_LINK_WITH_PIC_OBJECTS=o
DEFAULT_LINKAGE=static
;;
+ *mingw*)
+ # disabled for now, since it hasn't been tested
+ # xxx_MSG_RESULT(yes)
+ # EXT_FOR_SHARED_LIB=dll
+ # USE_DLLS=yes
+ AC_MSG_RESULT(disabled for now because it is untested)
+
+ CFLAGS_FOR_PIC=
+ EXT_FOR_PIC_OBJECTS=o
+ EXT_FOR_LINK_WITH_PIC_OBJECTS=o
+ DEFAULT_LINKAGE=static
+ ;;
*powerpc*apple*darwin*)
# If the compiler is gcc then use darwin style dynamic linking.
# Otherwise use static linking.
@@ -3569,6 +3621,9 @@
case "$host" in
*-cygwin*)
+ EXT_FOR_EXE=".exe"
+ ;;
+ *mingw*)
EXT_FOR_EXE=".exe"
;;
*)
Index: boehm_gc/Makefile
===================================================================
RCS file: /home/mercury1/repository/mercury/boehm_gc/Makefile,v
retrieving revision 1.59
diff -u -r1.59 Makefile
--- boehm_gc/Makefile 5 Sep 2005 06:48:49 -0000 1.59
+++ boehm_gc/Makefile 4 Oct 2005 06:02:49 -0000
@@ -474,6 +474,10 @@
lib$(GC_GRADE)$(DLL_DEF_LIB).a: gc.a
rm -f lib$(GC_GRADE)$(DLL_DEF_LIB).a
# `ln -s' here doesn't work with gnu-win32, so we use `cp' instead
+ # The sleep is necessary on MinGW, otherwise cp sometimes reports
+ # that it cannot stat gc.a, even though it is there. Waiting for
+ # a second first seems to help.
+ sleep 1
cp gc.a lib$(GC_GRADE)$(DLL_DEF_LIB).a
base_lib gc.a: $(OBJS) dyn_load.o $(UTILS)
@@ -597,13 +601,15 @@
./if_mach IA64 "" $(CC) -c -o mach_dep1.o $(SPECIALCFLAGS) $(srcdir)/mach_dep.c
./if_mach IA64 "" ld -r -o mach_dep.o mach_dep1.o ia64_save_regs_in_stack.o
-./if_not_there mach_dep.o $(CC) -c $(SPECIALCFLAGS) $(srcdir)/mach_dep.c
- ./if_not_there mach_dep.o `cygpath -w /bin/sh` $(CC) -c $(SPECIALCFLAGS) $(srcdir)/mach_dep.c
+ -./if_not_there mach_dep.o `cygpath -w /bin/sh` $(CC) -c $(SPECIALCFLAGS) $(srcdir)/mach_dep.c
+ ./if_not_there mach_dep.o /bin/sh $(CC) -c $(SPECIALCFLAGS) $(srcdir)/mach_dep.c
mark_rts.o: $(srcdir)/mark_rts.c $(UTILS)
rm -f mark_rts.o
-./if_mach ALPHA OSF1 $(CC) -c $(CFLAGS) -Wo,-notail $(srcdir)/mark_rts.c
-./if_not_there mark_rts.o $(CC) -c $(CFLAGS) $(srcdir)/mark_rts.c
- ./if_not_there mark_rts.o `cygpath -w /bin/sh` $(CC) -c $(CFLAGS) $(srcdir)/mark_rts.c
+ -./if_not_there mark_rts.o `cygpath -w /bin/sh` $(CC) -c $(CFLAGS) $(srcdir)/mark_rts.c
+ ./if_not_there mark_rts.o /bin/sh $(CC) -c $(CFLAGS) $(srcdir)/mark_rts.c
# Work-around for DEC optimizer tail recursion elimination bug.
# The ALPHA-specific line should be removed if gcc is used.
Index: scripts/mmc.in
===================================================================
RCS file: /home/mercury1/repository/mercury/scripts/mmc.in,v
retrieving revision 1.37
diff -u -r1.37 mmc.in
--- scripts/mmc.in 23 Dec 2004 04:19:36 -0000 1.37
+++ scripts/mmc.in 3 Oct 2005 09:51:19 -0000
@@ -22,6 +22,6 @@
@SET_MACOSX_DEPLOYMENT_TARGET@
case $# in
- 0) exec $MERCURY_COMPILER ;;
- *) exec $MERCURY_COMPILER "$@" ;;
+ 0) @MMC_INVOKE_CMD@ $MERCURY_COMPILER ;;
+ *) @MMC_INVOKE_CMD@ $MERCURY_COMPILER "$@" ;;
esac
--------------------------------------------------------------------------
mercury-reviews mailing list
post: mercury-reviews at cs.mu.oz.au
administrative address: owner-mercury-reviews at cs.mu.oz.au
unsubscribe: Address: mercury-reviews-request at cs.mu.oz.au Message: unsubscribe
subscribe: Address: mercury-reviews-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------
More information about the reviews
mailing list