>>>> "Vin" == Vin Shelton <acs(a)xemacs.org>
writes:
Vin> APPROVE COMMIT 21.4.
AARRGGHH! NO! WAIT! STOP!
A while ago Norbert reported a bug on *BSD with the 21.5 version of this
patch. I fixed it there but didn't produce a new 21.4 version. Oops.
The patch below moves 21.4-HEAD to the fixed version.
Sorry for the double work.
2004-11-21 Malcolm Purvis <malcolmp(a)xemacs.org>
* INSTALL: A POSIX compatible Make is no longer required for builds.
* Makefile.in.in (RECURSIVE_MAKE): Removed.
* Makefile.in.in (RECURSIVE_MAKE_ARGS): New.
* configure.in (RECURSIVE_MAKE): Removed.
* configure.in (RECURSIVE_MAKE_ARGS): New.
Always refer to make as $(MAKE) and use $(RECURSIVE_MAKE_ARGS) for
other parameters. This allows -j to work in GNU Make while
removing need for POSIX compatible make on all systems.
man/ChangeLog addition:
2004-11-21 Malcolm Purvis <malcolmp(a)xemacs.org>
* Makefile (RECURSIVE_MAKE): Removed.
* Makefile (RECURSIVE_MAKE_ARGS): New. The new method for
handling parallel builds.
src/ChangeLog addition:
2004-11-21 Malcolm Purvis <malcolmp(a)xemacs.org>
* Makefile.in.in: Always refer to make as $(MAKE) and use
$(RECURSIVE_MAKE_ARGS) for other parameters. This allows -j to
work in GNU Make while removing need for POSIX compatible make on
all systems.
xemacs-parallel-21.4 source patch:
Diff command: cvs -q diff -u
Files affected: src/Makefile.in.in man/Makefile configure.in Makefile.in.in INSTALL
Index: INSTALL
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/INSTALL,v
retrieving revision 1.31.2.6
diff -u -r1.31.2.6 INSTALL
--- INSTALL 2005/01/09 18:45:22 1.31.2.6
+++ INSTALL 2005/01/10 10:37:08
@@ -42,11 +42,10 @@
exact amount depends greatly on the number of extra lisp packages that are
installed
-XEmacs requires an ANSI C compiler, such as GCC, and a POSIX compatible
-make, such as GNU Make. If you wish to build the documentation
-yourself, you will need at least version 1.68 of makeinfo (GNU
-texinfo-3.11). GNU Texinfo 4.2 is recommended; it is necessary for
-building Lisp packages, and we may move to it for the core.
+XEmacs requires an ANSI C compiler, such as GCC. If you wish to build the
+documentation yourself, you will need at least version 1.68 of makeinfo (GNU
+texinfo-3.11). GNU Texinfo 4.2 is recommended; it is necessary for building
+Lisp packages, and we may move to it for the core.
ADD-ON LIBRARIES
================
Index: Makefile.in.in
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/Makefile.in.in,v
retrieving revision 1.2.2.4
diff -u -r1.2.2.4 Makefile.in.in
--- Makefile.in.in 2005/01/09 18:45:22 1.2.2.4
+++ Makefile.in.in 2005/01/10 10:37:10
@@ -53,10 +53,10 @@
#include "src/config.h"
#ifdef USE_GNU_MAKE
-RECURSIVE_MAKE=$(MAKE)
+RECURSIVE_MAKE_ARGS=
#else
@SET_MAKE@
-RECURSIVE_MAKE=@RECURSIVE_MAKE@
+RECURSIVE_MAKE_ARGS=@RECURSIVE_MAKE_ARGS@
#endif
SHELL = /bin/sh
@@ -279,7 +279,7 @@
cd ${srcdir} && $(SHELL) lib-src/config.values.sh
depend ${srcdir}/src/depend:
- +cd ./src && $(RECURSIVE_MAKE) depend
+ cd ./src && $(MAKE) $(RECURSIVE_MAKE_ARGS) depend
## Build XEmacs and recompile out-of-date and missing .elc files along
## the way.
@@ -289,7 +289,7 @@
## Sub-target for all-elc.
dump-elc dump-elcs: ${GENERATED_HEADERS} FRC.dump-elcs
- +cd ./src && $(RECURSIVE_MAKE) dump-elcs
+ cd ./src && $(MAKE) $(RECURSIVE_MAKE_ARGS) dump-elcs
autoloads: lib-src lwlib src lisp/auto-autoloads.el lisp/custom-load.el
@@ -315,7 +315,7 @@
-l finder -f finder-compile-keywords )
@echo "Building finder database ...(done)"
-lisp/finder-inf.el:
+lisp/finder-inf.el: src
@echo "Building finder database ..."
@(cd ./lisp; \
${blddir}/src/${PROGNAME} -batch -vanilla \
@@ -350,7 +350,7 @@
FRC.lisp.finder-inf.el:
${SUBDIR}: ${SUBDIR_MAKEFILES} ${GENERATED_HEADERS} FRC
- +cd ./$@ && $(RECURSIVE_MAKE) all
+ cd ./$@ && $(MAKE) $(RECURSIVE_MAKE_ARGS) all
## Building modules depends on ellcc, found in lib-src.
modules/sample modules/ldap modules/zlib modules/base64: lib-src
@@ -557,7 +557,7 @@
## target for GCC does not delete `libgcc.a', because recompiling it
## is rarely necessary and takes a lot of time.
mostlyclean: FRC.mostlyclean
- +for d in $(SUBDIR); do (cd ./$$d && $(RECURSIVE_MAKE) $@); done
+ for d in $(SUBDIR); do (cd ./$$d && $(MAKE) $(RECURSIVE_MAKE_ARGS) $@); done
## `clean'
## Delete all files from the current directory that are normally
@@ -568,7 +568,7 @@
## Delete `.dvi' files here if they are not part of the distribution.
clean: FRC.clean
- +for d in $(SUBDIR); do (cd ./$$d && $(RECURSIVE_MAKE) $@); done
+ for d in $(SUBDIR); do (cd ./$$d && $(MAKE) $(RECURSIVE_MAKE_ARGS) $@); done
$(RM) core
## `distclean'
@@ -584,7 +584,7 @@
$(RM) -r site-packages xemacs-packages mule-packages site-lisp
distclean: FRC.distclean
- +for d in $(SUBDIR_DISTCLEAN); do (cd ./$$d && $(RECURSIVE_MAKE) $@); done
+ for d in $(SUBDIR_DISTCLEAN); do (cd ./$$d && $(MAKE) $(RECURSIVE_MAKE_ARGS)
$@); done
-${top_distclean}
## `realclean'
@@ -599,7 +599,7 @@
## anything that needs to exist in order to run `configure' and then
## begin to build the program.
realclean: FRC.realclean
- +for d in $(SUBDIR); do (cd ./$$d && $(RECURSIVE_MAKE) $@); done
+ for d in $(SUBDIR); do (cd ./$$d && $(MAKE) $(RECURSIVE_MAKE_ARGS) $@); done
-${top_distclean}
$(RM) TAGS
@@ -608,7 +608,7 @@
## the coding standards seem to come from. It's like distclean, but
## it deletes backup and autosave files too.
extraclean:
- +for d in $(SUBDIR); do (cd ./$$d && $(RECURSIVE_MAKE) $@); done
+ for d in $(SUBDIR); do (cd ./$$d && $(MAKE) $(RECURSIVE_MAKE_ARGS) $@); done
$(RM) *~ \#*
-${top_distclean}
@@ -657,13 +657,13 @@
xargs etags -a -l none -r
"/^(def\\(var\\|un\\|alias\\|const\\|macro\\|subst\\|struct\\|face\\|group\\|custom\\|ine-\\(function\\|compiler-macro\\|[a-z-]+alias\\)\\)[
]+'?\\([^ ]+\\)/\\3/"
check:
- +cd ./src && $(RECURSIVE_MAKE) $@
+ cd ./src && $(MAKE) $(RECURSIVE_MAKE_ARGS) $@
info: FRC.info
- +cd ${srcdir}/man && $(RECURSIVE_MAKE) $@
+ cd ${srcdir}/man && $(MAKE) $(RECURSIVE_MAKE_ARGS) $@
dvi:
- +cd ${srcdir}/man && $(RECURSIVE_MAKE) $@
+ cd ${srcdir}/man && $(MAKE) $(RECURSIVE_MAKE_ARGS) $@
## Fix up version information in executables (Solaris-only)
mcs:
Index: configure.in
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/configure.in,v
retrieving revision 1.151.2.28
diff -u -r1.151.2.28 configure.in
--- configure.in 2004/03/25 21:07:57 1.151.2.28
+++ configure.in 2005/01/10 10:37:55
@@ -4893,8 +4893,8 @@
AC_SUBST(CFLAGS)
AC_SUBST(CPPFLAGS)
AC_SUBST(LDFLAGS)
-RECURSIVE_MAKE="\$(MAKE) \$(MFLAGS) CC='\$(CC)' CFLAGS='\$(CFLAGS)'
LDFLAGS='\$(LDFLAGS)' CPPFLAGS='\$(CPPFLAGS)'"
-AC_SUBST(RECURSIVE_MAKE)
+RECURSIVE_MAKE_ARGS="\$(MFLAGS) CC='\$(CC)' CFLAGS='\$(CFLAGS)'
LDFLAGS='\$(LDFLAGS)' CPPFLAGS='\$(CPPFLAGS)'"
+AC_SUBST(RECURSIVE_MAKE_ARGS)
AC_SUBST(native_sound_lib)
AC_SUBST(sound_cflags)
Index: man/Makefile
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/man/Makefile,v
retrieving revision 1.26.2.1
diff -u -r1.26.2.1 Makefile
--- man/Makefile 2001/12/17 05:49:13 1.26.2.1
+++ man/Makefile 2005/01/10 10:38:28
@@ -27,7 +27,7 @@
.SUFFIXES:
.SUFFIXES: .info .texi .dvi
-RECURSIVE_MAKE = $(MAKE) $(MFLAGS) MAKEINFO='$(MAKEINFO)'
TEXI2DVI='$(TEXI2DVI)'
+RECURSIVE_MAKE_ARGS = $(MAKE) $(MFLAGS) MAKEINFO='$(MAKEINFO)'
TEXI2DVI='$(TEXI2DVI)'
all : info
@@ -266,9 +266,9 @@
info : $(info_files)
# tm: FRC.tm
-# cd ./tm && $(RECURSIVE_MAKE)
+# cd ./tm && $(MAKE) $(RECURSIVE_MAKE_ARGS)
# gnats: FRC.gnats
-# cd ./gnats && $(RECURSIVE_MAKE)
+# cd ./gnats && $(MAKE) $(RECURSIVE_MAKE_ARGS)
# FRC.xemacs FRC.lispref FRC.new-users-guide FRC.internals FRC.tm FRC.gnats:
.PHONY: info dvi
Index: src/Makefile.in.in
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/src/Makefile.in.in,v
retrieving revision 1.84.2.4
diff -u -r1.84.2.4 Makefile.in.in
--- src/Makefile.in.in 2005/01/09 18:45:42 1.84.2.4
+++ src/Makefile.in.in 2005/01/10 10:38:31
@@ -45,10 +45,10 @@
.SUFFIXES: .c .h .o .i .s .dep
#ifdef USE_GNU_MAKE
-RECURSIVE_MAKE=$(MAKE)
+RECURSIVE_MAKE_ARGS=
#else
@SET_MAKE@
-RECURSIVE_MAKE=@RECURSIVE_MAKE@
+RECURSIVE_MAKE_ARGS=@RECURSIVE_MAKE_ARGS@
#endif
SHELL=/bin/sh
@@ -122,7 +122,7 @@
lwlib_libs = ../lwlib/liblw.a
lwlib_deps = $(lwlib_libs)
$(lwlib_libs) :
- +cd ../lwlib && $(RECURSIVE_MAKE)
+ cd ../lwlib && $(MAKE) $(RECURSIVE_MAKE_ARGS)
x_objs=console-x.o device-x.o event-Xt.o frame-x.o\
glyphs-x.o objects-x.o redisplay-x.o select-x.o xgccache.o
@@ -391,7 +391,7 @@
#ifdef DYNODUMP
dynodump_deps = ../dynodump/dynodump.so
../dynodump/dynodump.so:
- +cd ../dynodump && $(RECURSIVE_MAKE)
+ cd ../dynodump && $(MAKE) $(RECURSIVE_MAKE_ARGS)
#endif /* DYNODUMP */
${libsrc}DOC: ${EXE_TARGET} update-elc.stamp
@@ -406,7 +406,7 @@
-${DUMPENV} ./${EXE_TARGET} -nd -batch -l ${srcdir}/../lisp/update-elc.el
all-elc all-elcs:
- +cd .. && $(RECURSIVE_MAKE) all-elc
+ cd .. && $(MAKE) $(RECURSIVE_MAKE_ARGS) all-elc
#ifdef I18N3
@@ -430,18 +430,18 @@
cd ${mo_dir} && ${msgfmt} -o emacs.mo emacs.po
${libsrc}make-msgfile:
- +cd ${libsrc} && $(RECURSIVE_MAKE) make-msgfile
+ cd ${libsrc} && $(MAKE) $(RECURSIVE_MAKE_ARGS) make-msgfile
${libsrc}make-po:
- +cd ${libsrc} && $(RECURSIVE_MAKE) make-po
+ cd ${libsrc} && $(MAKE) $(RECURSIVE_MAKE_ARGS) make-po
#endif /* I18N3 */
${libsrc}make-dump-id:
- +cd ${libsrc} && $(RECURSIVE_MAKE) make-dump-id
+ cd ${libsrc} && $(MAKE) $(RECURSIVE_MAKE_ARGS) make-dump-id
${libsrc}make-docfile:
- +cd ${libsrc} && $(RECURSIVE_MAKE) make-docfile
+ cd ${libsrc} && $(MAKE) $(RECURSIVE_MAKE_ARGS) make-docfile
## Lint Section
LINT.c=$(LINT) $(LINTFLAGS) $(LINTINCLUDES)
--
Malcolm Purvis <malcolmp(a)xemacs.org>