diff: Mmakefile changes for Windows

Fergus Henderson fjh at cs.mu.oz.au
Fri Nov 21 23:01:17 AEDT 1997


Mmakefile:
README.MS-Windows:
	Move most of the stuff in the patch file at the end of
	README.MS-Windows into Mmakefile, because the patch file
	was a maintenence problem (people would change Mmakefile
	and not update the patch).

Index: Mmakefile
===================================================================
RCS file: /home/mercury1/repository/mercury/Mmakefile,v
retrieving revision 1.14
diff -u -u -r1.14 Mmakefile
--- Mmakefile	1997/11/20 01:58:31	1.14
+++ Mmakefile	1997/11/21 11:55:59
@@ -166,7 +166,9 @@
 	cd profiler && $(SUBDIR_MMAKE) depend
 	cd profiler && $(SUBDIR_MMAKE) ints cs tags
 	cd doc && $(SUBDIR_MMAKE) info html dvi
-	cd bindist && $(SUBDIR_MMAKE) bindist.configure bindist.build_vars
+	cd bindist && $(SUBDIR_MMAKE) bindist.configure
+	# the following command might fail on Windows?
+	-cd bindist && $(SUBDIR_MMAKE) bindist.build_vars
 	# clean up
 	cd scripts && mmake realclean
 	cd util && mmake realclean
@@ -206,10 +208,12 @@
 #-----------------------------------------------------------------------------#
 
 .PHONY: install
-install: all install_scripts install_util install_runtime install_boehm_gc \
-		install_library install_compiler install_profiler install_doc \
+install: all $(PREINSTALL_HACK) \
+		install_scripts install_util install_runtime install_boehm_gc \
+  		install_library install_compiler install_profiler install_doc \
+		$(POSTINSTALL_HACK) \
 		install_grades
-
+ 
 .PHONY: install_scripts
 install_scripts: scripts
 	cd scripts && $(SUBDIR_MMAKE) install
@@ -296,6 +300,60 @@
 	        rm -rf *.dir *.c *.o *.pic_o *.a *.so; \
 	done && \
 	{ mv tmp_dir/* . ; rmdir tmp_dir; true; }
+
+#-----------------------------------------------------------------------------#
+#
+# Various horrible hacks for gnu-win32 on Windows.
+#
+
+
+# For Windows 95 or Windows NT, uncomment the following two lines:
+# PREINSTALL_HACK = preinstall_hack_for_windows
+# POSTINSTALL_HACK = postinstall_hack_for_windows
+
+
+# `make touch_files' is a work-around for the broken gnu-win32 `tar'
+# that loses all the file dates.
+.PHONY: touch_files
+touch_files:
+	-find . | xargs touch
+	sleep 1
+	touch library/*.date*
+	touch library/*.optdate
+	chmod +w library/*.dep
+	touch library/*.dep
+	touch compiler/*.date*
+	chmod +w compiler/*.dep
+	touch compiler/*.dep
+	touch profiler/*.date*
+	chmod +w profiler/*.dep
+	touch profiler/*.dep
+	touch doc/*.texi configure
+	sleep 1
+	touch boehm_gc/*.c
+	touch runtime/*.c
+	touch library/*.c
+	touch compiler/*.c
+	touch profiler/*.c
+	touch doc/*.info doc/*.dvi doc/*.html config.status
+
+# Another work-around for Windows:
+# the executable files need `.exe' filenames, otherwise they won't work.
+# But the Mmake files expect them to not have `.exe' filenames.
+
+.PHONY: preinstall_hack_for_windows
+preinstall_hack_for_windows:
+	cd compiler && mv mercury_compile.exe xyzzy && mv xyzzy mercury_compile
+	cd profiler && mv mercury_profile.exe xyzzy && mv xyzzy mercury_profile
+	cd util && mv mkinit.exe xyzzy && mv xyzzy mkinit
+	cd util && mv mdemangle.exe xyzzy && mv xyzzy mdemangle
+
+.PHONY: postinstall_hack_for_windows
+postinstall_hack_for_windows:
+	cd $(INSTALL_MERC_BIN_DIR) && mv mercury_compile mercury_compile.exe
+	cd $(INSTALL_MERC_BIN_DIR) && mv mercury_profile mercury_profile.exe
+	cd $(INSTALL_BINDIR) && mv mkinit mkinit.exe
+	cd $(INSTALL_BINDIR) && mv mdemangle mdemangle.exe
 
 #-----------------------------------------------------------------------------#
 
Index: README.MS-Windows
===================================================================
RCS file: /home/mercury1/repository/mercury/README.MS-Windows,v
retrieving revision 1.7
diff -u -u -r1.7 README.MS-Windows
--- README.MS-Windows	1997/10/21 15:03:12	1.7
+++ README.MS-Windows	1997/11/21 11:58:25
@@ -112,94 +112,16 @@
 -----------------------------------------------------------------------------
 -----------------------------------------------------------------------------
 
-Index: Mmakefile
-===================================================================
-RCS file: /home/staff/zs/imp/mercury/Mmakefile,v
-retrieving revision 1.11
-diff -u -u -r1.11 Mmakefile
---- Mmakefile	1997/10/11 15:26:54	1.11
-+++ Mmakefile	1997/10/15 15:41:26
-@@ -15,7 +15,9 @@
+--- Mmakefile.windows	Fri Nov 21 22:55:53 1997
++++ Mmakefile	Fri Nov 21 22:55:59 1997
+@@ -308,8 +308,8 @@
  
- SUBDIRS = scripts util boehm_gc runtime library compiler doc profiler lp_solve
  
--SUBDIR_MMAKE =	PATH=../scripts:../util:$$PATH \
-+# The `/bin:' below is a work-around for a bug in gnu-win32 version b16,
-+# which *requires* `/bin' to be first in the PATH.
-+SUBDIR_MMAKE =	PATH=/bin:../scripts:../util:$$PATH \
- 		MMAKE_VPATH=. \
- 		MMAKE_DIR=../scripts \
- 		../scripts/mmake $(MMAKEFLAGS)
-@@ -170,7 +172,7 @@
- 	cd profiler && $(SUBDIR_MMAKE) depend
- 	cd profiler && $(SUBDIR_MMAKE) ints cs tags
- 	cd doc && $(SUBDIR_MMAKE) info html dvi
--	cd bindist && $(SUBDIR_MMAKE) bindist.configure bindist.build_vars
-+	cd bindist && $(SUBDIR_MMAKE) bindist.configure
- 	# clean up
- 	cd scripts && mmake realclean
- 	cd util && mmake realclean
-@@ -209,10 +211,60 @@
- #-----------------------------------------------------------------------------#
+ # For Windows 95 or Windows NT, uncomment the following two lines:
+-PREINSTALL_HACK = preinstall_hack_for_windows
+-POSTINSTALL_HACK = postinstall_hack_for_windows
++# PREINSTALL_HACK = preinstall_hack_for_windows
++# POSTINSTALL_HACK = postinstall_hack_for_windows
  
- .PHONY: install
--install: all install_scripts install_util install_runtime install_boehm_gc \
-+install: all preinstall_hack_for_win95 \
-+		install_scripts install_util install_runtime install_boehm_gc \
- 		install_library install_compiler install_profiler install_doc \
--		install_grades install_lp_solve
--
-+		postinstall_hack_for_win95 \
-+		install_grades install_lp_solve \
-+		postinstall_lp_solve_hack_for_win95
-+ 
-+# `make touch_files' is a work-around for the broken gnu-win32 `tar'
-+# that loses all the file dates.
-+.PHONY: touch_files
-+touch_files:
-+	-find . | xargs touch
-+	sleep 1
-+	touch library/*.date*
-+	touch library/*.optdate
-+	chmod +w library/*.dep
-+	touch library/*.dep
-+	touch compiler/*.date*
-+	chmod +w compiler/*.dep
-+	touch compiler/*.dep
-+	touch profiler/*.date*
-+	chmod +w profiler/*.dep
-+	touch profiler/*.dep
-+	touch doc/*.texi configure
-+	sleep 1
-+	touch boehm_gc/*.c
-+	touch runtime/*.c
-+	touch library/*.c
-+	touch compiler/*.c
-+	touch profiler/*.c
-+	touch doc/*.info doc/*.dvi doc/*.html config.status
-+
-+# another work-around for gnu-win32 on Windows 95:
-+# the executable files need `.exe' filenames, otherwise they won't work.
-+# But the Mmake files expect them to not have `.exe' filenames.
-+
-+.PHONY: preinstall_hack_for_win95
-+preinstall_hack_for_win95:
-+	cd compiler && mv mercury_compile.exe xyzzy && mv xyzzy mercury_compile
-+	cd profiler && mv mercury_profile.exe xyzzy && mv xyzzy mercury_profile
-+	cd util && mv mkinit.exe xyzzy && mv xyzzy mkinit
-+	cd util && mv mdemangle.exe xyzzy && mv xyzzy mdemangle
-+
-+.PHONY: postinstall_hack_for_win95
-+postinstall_hack_for_win95:
-+	cd $(INSTALL_MERC_BIN_DIR) && mv mercury_compile mercury_compile.exe
-+	cd $(INSTALL_MERC_BIN_DIR) && mv mercury_profile mercury_profile.exe
-+	cd $(INSTALL_BINDIR) && mv mkinit mkinit.exe
-+	cd $(INSTALL_BINDIR) && mv mdemangle mdemangle.exe
-+
-+.PHONY: postinstall_lp_solve_hack_for_win95
-+postinstall_lp_solve_hack_for_win95:
-+	-cd $(INSTALL_BINDIR) && mv lp_solve lp_solve.exe
-+ 
- .PHONY: install_scripts
- install_scripts: scripts
- 	cd scripts && $(SUBDIR_MMAKE) install
+ 
+ # `make touch_files' is a work-around for the broken gnu-win32 `tar'

-- 
Fergus Henderson <fjh at cs.mu.oz.au>   |  "I have always known that the pursuit
WWW: <http://www.cs.mu.oz.au/~fjh>   |  of excellence is a lethal habit"
PGP: finger fjh at 128.250.37.3         |     -- the last words of T. S. Garp.



More information about the developers mailing list