changeset 795:68d4a70c1558

[xemacs-hg @ 2002-03-29 11:09:23 by jhar] Hopefully finally solve win32 dependency quoting fiasco
author jhar
date Fri, 29 Mar 2002 11:09:24 +0000
parents 3604075fb2a3
children 7a6013500383
files nt/.cvsignore nt/ChangeLog nt/config.inc.samp nt/xemacs.mak
diffstat 4 files changed, 28 insertions(+), 41 deletions(-) [+]
line wrap: on
line diff
--- a/nt/.cvsignore	Fri Mar 29 07:05:29 2002 +0000
+++ b/nt/.cvsignore	Fri Mar 29 11:09:24 2002 +0000
@@ -3,6 +3,3 @@
 xemacs.opt
 xemacs.plg
 obj
-make-docfile.out
-*.tmp
-
--- a/nt/ChangeLog	Fri Mar 29 07:05:29 2002 +0000
+++ b/nt/ChangeLog	Fri Mar 29 11:09:24 2002 +0000
@@ -1,3 +1,17 @@
+2002-03-29  Jonathan Harris  <jonathan@xemacs.org>
+
+	* make-nt-depend:
+	* xemacs.mak (DEPEND):
+	* xemacs.mak (PERL_NEEDS_MORE_QUOTING):
+	* config.inc.samp (PERL_NEEDS_MORE_QUOTING):
+	Moved perl dependency script out into new make-nt-depend file to
+	hopefully finally solve never-ending perl quoting problems.
+
+	* xemacs.mak (TEMACS):
+	* xemacs.mak (make-docargs):
+	* .cvsignore:
+	Generate intermediate files in obj subdirectory, not in nt dir.
+
 2002-03-29  Jonathan Harris  <jonathan@xemacs.org>
 
 	* xemacs.mak: Define STACK_TRACE_EYE_CATCHER.
--- a/nt/config.inc.samp	Fri Mar 29 07:05:29 2002 +0000
+++ b/nt/config.inc.samp	Fri Mar 29 11:09:24 2002 +0000
@@ -72,14 +72,10 @@
 # generally recommended).
 VERBOSECC=0
 
-# Set this to get nmake to use dependency info (requires Perl to be installed)
+# Set this to get nmake to use dependency info (recommended for development).
+# Requires cygwin or ActiveState versions of Perl to be installed.
 DEPEND=0
 
-# Sometimes perl needs more backslash quoting when it's being run to
-# compute dependency info, sometimes less.  Allah only knows why.  If you
-# get syntax errors in depend.tmp, try changing this.
-PERL_NEEDS_MORE_QUOTING=1
-
 ############################################################################
 
 # Some technical options.
--- a/nt/xemacs.mak	Fri Mar 29 07:05:29 2002 +0000
+++ b/nt/xemacs.mak	Fri Mar 29 11:09:24 2002 +0000
@@ -1,6 +1,8 @@
-#   Makefile for Microsoft NMAKE
+# Makefile for Microsoft NMAKE	-*- Makefile -*-
+#
 #   Copyright (C) 1995 Board of Trustees, University of Illinois.
 #   Copyright (C) 1995, 1996, 2000, 2001, 2002 Ben Wing.
+#   Copyright (C) 1997, 1998, 2000 Jonathan Harris.
 #   Copyright (C) 1995 Sun Microsystems, Inc.
 #   Copyright (C) 1998 Free Software Foundation, Inc.
 #
@@ -37,7 +39,7 @@
 LISP=$(XEMACS)\lisp
 LIB_SRC=$(XEMACS)\lib-src
 MODULES=$(XEMACS)\modules
-NT=$(XEMACS)\nt
+NT=$(MAKEDIR)
 OUTDIR=$(NT)\obj
 SRC=$(XEMACS)\src
 LWLIB_SRCDIR=$(XEMACS)\lwlib
@@ -328,33 +330,11 @@
 !if !defined(DEPEND)
 DEPEND=0
 !endif
-!if !defined(PERL_NEEDS_MORE_QUOTING)
-PERL_NEEDS_MORE_QUOTING=1
-!endif
 !if $(DEPEND) && exist("$(SRC)\depend")
 ! if [if not exist $(OUTDIR)\nul mkdir "$(OUTDIR)"]
 ! endif
-# #### Yuuuuuuuuuuck!!!  Cygwin is too smart for its own good.  If we are
-# being run from within Cygwin, a Cygwin Perl seems to require twice as
-# much backslash quoting.  This does not happen, of course, with a non-
-# Cygwin Perl, so in that circumstance, you'd be screwed and would have
-# to fix this Makefile to not have a special Cygwin case.
-# ! if defined(_)
-# #### 3-17-02 Double yuck!  Suddenly, perl is wanting more quoting always.
-# #### I have no idea what changed.  So I'm just making a variable for
-# #### this. --ben
-! if $(PERL_NEEDS_MORE_QUOTING)
-!  if [perl -p -e "s/^\\x23if defined(.+)/!if defined$$1/; s/^\\x23e/!e/;" \
-	-e "s/([\\s=^])([\\w\\d\\.\\-^]+\\.[ch^])/$$1$(SRC:\=\\\\)\\\\$$2/g;" \
-	-e "s/^(.+)\\.o:(.+)/$(OUTDIR:\=\\\\)\\\\$$1.obj:$$2 $(NT:\=\\\\)\\\\config.inc/;" \
-	< $(SRC)\depend > $(OUTDIR)\depend.tmp]
-!  endif
-! else
-!  if [perl -p -e "s/^\x23if defined(.+)/!if defined$$1/; s/^\x23e/!e/;" \
-	-e "s/([\s=^])([\w\d\.\-^]+\.[ch^])/$$1$(SRC:\=\\)\\$$2/g;" \
-	-e "s/^(.+)\.o:(.+)/$(OUTDIR:\=\\)\\$$1.obj:$$2 $(NT:\=\\)\\config.inc/;" \
-	< $(SRC)\depend > $(OUTDIR)\depend.tmp]
-!  endif
+# This perl script used to be inline but that caused too many quoting problems
+! if [perl .\make-nt-depend -s=$(SRC) -c=$(NT) -o=$(OUTDIR) < $(SRC)\depend > $(OUTDIR)\depend.tmp]
 ! endif
 ! include "$(OUTDIR)\depend.tmp"
 !else
@@ -930,9 +910,9 @@
 
 $(TEMACS): $(TEMACS_INCLUDES) $(TEMACS_OBJS) $(OUTDIR)\xemacs.res
 !if $(DEBUG_XEMACS)
-	@dir /b/s $(OUTDIR)\*.sbr > bscmake.tmp
-	bscmake -nologo -o$(TEMACS_BROWSE) @bscmake.tmp
-	-$(DEL) bscmake.tmp
+	@dir /b/s $(OUTDIR)\*.sbr > $(OUTDIR)\bscmake.tmp
+	bscmake -nologo -o$(TEMACS_BROWSE) @$(OUTDIR)\bscmake.tmp
+	-$(DEL) $(OUTDIR)\bscmake.tmp
 !endif
 !if $(USE_PORTABLE_DUMPER)
 	@if exist $(SRC)\dump-id.c $(DEL) $(SRC)\dump-id.c
@@ -1221,8 +1201,8 @@
 # to contain special code to frob $(OUTDIR)\foo.obj into the right file.
 make-docargs: $(TEMACS_OBJS)
 	@echo Creating make-docfile argument file ...
-	-$(DEL) make-docfile.out
-	@!echo $(SRC)\$(**B).c >> make-docfile.out
+	-$(DEL) $(OUTDIR)\make-docfile.tmp
+	@!echo $(SRC)\$(**B).c >> $(OUTDIR)\make-docfile.tmp
 	@echo Done.
 
 $(DOC): $(LIB_SRC)\make-docfile.exe make-docargs
@@ -1230,7 +1210,7 @@
 	set EMACSBOOTSTRAPLOADPATH=$(LISP);$(PACKAGE_PATH)
 	set EMACSBOOTSTRAPMODULEPATH=$(MODULES)
 	$(TEMACS_BATCH) -l $(TEMACS_DIR)\..\lisp\make-docfile.el -- -o $(DOC) -i $(XEMACS)\site-packages
-	$(LIB_SRC)\make-docfile.exe -a $(DOC) @make-docfile.out
+	$(LIB_SRC)\make-docfile.exe -a $(DOC) @$(OUTDIR)\make-docfile.tmp
 
 update-elc:
 	set EMACSBOOTSTRAPLOADPATH=$(LISP);$(PACKAGE_PATH)