Mercurial > hg > xemacs-beta
changeset 2427:97dd9f867cef
[xemacs-hg @ 2004-12-07 12:52:30 by malcolmp]
Parallel build support without the need for a POSIX-compatible make.
author | malcolmp |
---|---|
date | Tue, 07 Dec 2004 12:52:51 +0000 |
parents | bb3f73fbbda8 |
children | 24adc05310bc |
files | ChangeLog INSTALL Makefile.in.in configure configure.in man/ChangeLog man/Makefile src/ChangeLog src/Makefile.in.in |
diffstat | 9 files changed, 64 insertions(+), 40 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Tue Dec 07 00:20:51 2004 +0000 +++ b/ChangeLog Tue Dec 07 12:52:51 2004 +0000 @@ -1,3 +1,14 @@ +2004-12-07 Malcolm Purvis <malcolmp@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. + 2004-12-05 Ben Wing <ben@xemacs.org> * README.packages:
--- a/INSTALL Tue Dec 07 00:20:51 2004 +0000 +++ b/INSTALL Tue Dec 07 12:52:51 2004 +0000 @@ -45,11 +45,10 @@ on-line documentation. The 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. A note on terminology: unfortunately the terms "library" and "package" are heavily overloaded. In the following, "library" refers to an
--- a/Makefile.in.in Tue Dec 07 00:20:51 2004 +0000 +++ b/Makefile.in.in Tue Dec 07 12:52:51 2004 +0000 @@ -55,10 +55,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 @@ -275,13 +275,13 @@ cd ${srcdir} && $(SHELL) lib-src/config.values.sh depend ${srcdir}/src/depend: - +cd ./src && $(RECURSIVE_MAKE) depend + cd ./src && $(MAKE) $(RECURSIVE_MAKE_ARGS) depend check: - +cd ./src && $(RECURSIVE_MAKE) $@ + cd ./src && $(MAKE) $(RECURSIVE_MAKE_ARGS) $@ check-features: all - +cd ./src && $(RECURSIVE_MAKE) $@ + cd ./src && $(MAKE) $(RECURSIVE_MAKE_ARGS) $@ ## We have to force the building of Emacs.ad.h as well in order to get it ## updated correctly when VPATH is being used. Since we use move-if-change, @@ -310,14 +310,14 @@ 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 modules/postgresql: lib-src Makefile: ${srcdir}/Makefile.in.in config.status ./config.status - $(RECURSIVE_MAKE) all + $(MAKE) $(RECURSIVE_MAKE_ARGS) all src/Makefile: ${srcdir}/src/Makefile.in.in ${srcdir}/src/depend config.status ./config.status @@ -375,7 +375,7 @@ install-arch-dep: mkdir for subdir in ${INSTALL_ARCH_DEP_SUBDIR}; do \ - (cd ./$${subdir} && $(RECURSIVE_MAKE) install prefix=${prefix} \ + (cd ./$${subdir} && $(MAKE) $(RECURSIVE_MAKE_ARGS) install prefix=${prefix} \ exec_prefix=${exec_prefix} bindir=${bindir} libdir=${libdir} \ archlibdir=${archlibdir}) ; done if test "`(cd ${archlibdir} && $(pwd))`" != \ @@ -492,7 +492,7 @@ #### would be extremely dangerous for anyone to use it. ##uninstall: ## (cd ./lib-src; \ -## $(RECURSIVE_MAKE) uninstall \ +## $(MAKE) $(RECURSIVE_MAKE_ARGS) uninstall \ ## prefix=${prefix} exec_prefix=${exec_prefix} \ ## bindir=${bindir} libdir=${libdir} archlibdir=${archlibdir}) ## for dir in ${lispdir} ${etcdir} ; do \ @@ -526,7 +526,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 $(RM) core ## `clean' @@ -542,7 +542,7 @@ ## when they don't work right. (beta can't depend on distclean, which ## removes necessary files generated by configure.) 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 lisp/auto-autoloads.el* lisp/custom-load.el* $(RM) lisp/mule/auto-autoloads.el* lisp/mule/custom-load.el* $(RM) modules/auto-autoloads.el* modules/custom-load.el* @@ -560,7 +560,7 @@ $(RM) -r site-packages xemacs-packages mule-packages site-lisp distclean: FRC.distclean - +for d in $(SUBDIR); do (cd ./$$d && $(RECURSIVE_MAKE) $@); done + for d in $(SUBDIR); do (cd ./$$d && $(MAKE) $(RECURSIVE_MAKE_ARGS) $@); done -${top_distclean} ## `realclean' @@ -575,7 +575,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 @@ -584,7 +584,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} @@ -606,7 +606,7 @@ unlock: chmod u+w $(SOURCES) cpp/* -cd ./elisp && chmod u+w Makefile README *.texi - for d in src etc lib-src lisp; do (cd ./$$d && $(RECURSIVE_MAKE) $@); done + for d in src etc lib-src lisp; do (cd ./$$d && $(MAKE) $(RECURSIVE_MAKE_ARGS) $@); done cd ./lisp/term && chmod u+w README *.el cd ./man && chmod u+w *texi* ChangeLog split-man cd ./lwlib && chmod u+w *.[ch] Makefile.in.in @@ -614,7 +614,7 @@ relock: chmod u-w $(SOURCES) cpp/* -cd ./elisp && chmod u-w Makefile README *.texi - for d in src etc lib-src lisp; do (cd ./$$d && $(RECURSIVE_MAKE) $@); done + for d in src etc lib-src lisp; do (cd ./$$d && $(MAKE) $(RECURSIVE_MAKE_ARGS) $@); done cd ./lisp/term && chmod u+w README *.el cd ./man && chmod u+w *texi* ChangeLog split-man cd ./lwlib && chmod u+w *.[ch] Makefile.in.in @@ -635,10 +635,10 @@ 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/" 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:
--- a/configure Tue Dec 07 00:20:51 2004 +0000 +++ b/configure Tue Dec 07 12:52:51 2004 +0000 @@ -16541,7 +16541,7 @@ -RECURSIVE_MAKE="\$(MAKE) \$(MFLAGS) CC='\$(CC)' CFLAGS='\$(CFLAGS)' LDFLAGS='\$(LDFLAGS)' CPPFLAGS='\$(CPPFLAGS)'" +RECURSIVE_MAKE_ARGS="\$(MFLAGS) CC='\$(CC)' CFLAGS='\$(CFLAGS)' LDFLAGS='\$(LDFLAGS)' CPPFLAGS='\$(CPPFLAGS)'" @@ -17235,7 +17235,7 @@ s%@ld_libs_general@%$ld_libs_general%g s%@ld_libs_window_system@%$ld_libs_window_system%g s%@ld_libs_all@%$ld_libs_all%g -s%@RECURSIVE_MAKE@%$RECURSIVE_MAKE%g +s%@RECURSIVE_MAKE_ARGS@%$RECURSIVE_MAKE_ARGS%g s%@native_sound_lib@%$native_sound_lib%g s%@sound_cflags@%$sound_cflags%g s%@dynodump_arch@%$dynodump_arch%g
--- a/configure.in Tue Dec 07 00:20:51 2004 +0000 +++ b/configure.in Tue Dec 07 12:52:51 2004 +0000 @@ -5328,8 +5328,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)
--- a/man/ChangeLog Tue Dec 07 00:20:51 2004 +0000 +++ b/man/ChangeLog Tue Dec 07 12:52:51 2004 +0000 @@ -1,3 +1,9 @@ +2004-12-07 Malcolm Purvis <malcolmp@xemacs.org> + + * Makefile (RECURSIVE_MAKE): Removed. + * Makefile (RECURSIVE_MAKE_ARGS): New. The new method for + handling parallel builds. + 2004-12-05 Ben Wing <ben@xemacs.org> * xemacs/packages.texi (Packages): @@ -351,6 +357,7 @@ (Future Work -- Lisp Engine Replacement): Add pointers to new node. +>>>>>>> 1.271 2004-11-16 Ben Wing <ben@xemacs.org> * internals/internals.texi (Top):
--- a/man/Makefile Tue Dec 07 00:20:51 2004 +0000 +++ b/man/Makefile Tue Dec 07 12:52:51 2004 +0000 @@ -31,7 +31,7 @@ .SUFFIXES: .SUFFIXES: .html .info .texi .dvi .pdf -RECURSIVE_MAKE = $(MAKE) $(MFLAGS) MAKEINFO='$(MAKEINFO)' TEXI2DVI='$(TEXI2DVI)' +RECURSIVE_MAKE_ARGS = $(MFLAGS) MAKEINFO='$(MAKEINFO)' TEXI2DVI='$(TEXI2DVI)' all : info
--- a/src/ChangeLog Tue Dec 07 00:20:51 2004 +0000 +++ b/src/ChangeLog Tue Dec 07 12:52:51 2004 +0000 @@ -1,3 +1,10 @@ +2004-12-07 Malcolm Purvis <malcolmp@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. + 2004-12-06 Ben Wing <ben@xemacs.org> * rangetab.c (rangetab_instantiate):
--- a/src/Makefile.in.in Tue Dec 07 00:20:51 2004 +0000 +++ b/src/Makefile.in.in Tue Dec 07 12:52:51 2004 +0000 @@ -33,10 +33,10 @@ ## Here are the things that we expect ../configure to edit. #ifdef USE_GNU_MAKE -RECURSIVE_MAKE=$(MAKE) +RECURSIVE_MAKE_ARGS= #else @SET_MAKE@ -RECURSIVE_MAKE=@RECURSIVE_MAKE@ +RECURSIVE_MAKE_ARGS=@RECURSIVE_MAKE_ARGS@ #endif PROGNAME=@PROGNAME@ @@ -525,19 +525,19 @@ #ifdef HAVE_X_WINDOWS lwlib_deps = $(lwlib_lib) $(lwlib_lib): - +cd ../lwlib && $(RECURSIVE_MAKE) + cd ../lwlib && $(MAKE) $(RECURSIVE_MAKE_ARGS) #endif /* HAVE_X_WINDOWS */ #ifdef DYNODUMP dynodump_deps = ../dynodump/dynodump.so ../dynodump/dynodump.so: - +cd ../dynodump && $(RECURSIVE_MAKE) + cd ../dynodump && $(MAKE) $(RECURSIVE_MAKE_ARGS) #endif /* DYNODUMP */ link_deps = $(start_files) $(objs) $(otherobjs) $(lwlib_deps) $(dynodump_deps) $(LIB_SRC)/make-dump-id: - +cd $(LIB_SRC) && $(RECURSIVE_MAKE) make-dump-id + cd $(LIB_SRC) && $(MAKE) $(RECURSIVE_MAKE_ARGS) make-dump-id dump-id.c: $(LIB_SRC)/make-dump-id $(link_deps) $(LIB_SRC)/make-dump-id @@ -573,7 +573,7 @@ obj_src = $(objs:.o=.c) $(LIB_SRC)/make-docfile: - +cd $(LIB_SRC) && $(RECURSIVE_MAKE) make-docfile + cd $(LIB_SRC) && $(MAKE) $(RECURSIVE_MAKE_ARGS) make-docfile $(LIB_SRC)/DOC: $(LIB_SRC)/make-docfile $(BLDSRC)/NEEDTODUMP $(temacs_deps) #ifdef QUICK_BUILD @@ -593,7 +593,7 @@ @$(RM) $@ && touch SATISFIED $(dump_temacs) @if test -f SATISFIED; then $(RM) SATISFIED; else $(RM) $@; \ - $(RECURSIVE_MAKE) $@; fi + $(MAKE) $(RECURSIVE_MAKE_ARGS) $@; fi #else @$(RM) $@ $(dump_temacs) @@ -615,7 +615,7 @@ if ! test -f dump-size; then \ $(LIB_SRC)/insert-data-in-exec -s $(DUMP_TARGET).dmp > dump-size ; \ $(RM) dump-data.o $(DUMP_TARGET) $(DUMP_TARGET).dmp $(RAW_EXE);\ - $(RECURSIVE_MAKE) $@; \ + $(MAKE) $(RECURSIVE_MAKE_ARGS) $@; \ fi #endif @@ -658,7 +658,7 @@ .PHONY: all-elc all-elc: - +cd .. && $(RECURSIVE_MAKE) + cd .. && $(MAKE) $(RECURSIVE_MAKE_ARGS) ######################################################################### ## Subsidiary dependency rules ## @@ -686,10 +686,10 @@ cd $(LIB_SRC)/ && $(msgfmt) -o emacs.mo emacs.po $(LIB_SRC)/make-msgfile: - +cd $(LIB_SRC) && $(RECURSIVE_MAKE) make-msgfile + cd $(LIB_SRC) && $(MAKE) $(RECURSIVE_MAKE_ARGS) make-msgfile $(LIB_SRC)/make-po: - +cd $(LIB_SRC) && $(RECURSIVE_MAKE) make-po + cd $(LIB_SRC) && $(MAKE) $(RECURSIVE_MAKE_ARGS) make-po #endif /* I18N3 */ @@ -945,7 +945,7 @@ rtc_patch_area -o $@ rtcmacs: $(temacs_deps) rtc_patch.o - $(RM) $(RAW_EXE); $(RECURSIVE_MAKE) $(RAW_EXE) RTC_patch_objs=rtc_patch.o + $(RM) $(RAW_EXE); $(MAKE) $(RECURSIVE_MAKE_ARGS) $(RAW_EXE) RTC_patch_objs=rtc_patch.o mv $(RAW_EXE) rtcmacs .PHONY: run-rtcmacs