comparison Makefile.in.in @ 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 cfff883d4990
children 7edc33019aa4
comparison
equal deleted inserted replaced
2426:bb3f73fbbda8 2427:97dd9f867cef
53 53
54 #define NOT_C_CODE 54 #define NOT_C_CODE
55 #include "src/config.h" 55 #include "src/config.h"
56 56
57 #ifdef USE_GNU_MAKE 57 #ifdef USE_GNU_MAKE
58 RECURSIVE_MAKE=$(MAKE) 58 RECURSIVE_MAKE_ARGS=
59 #else 59 #else
60 @SET_MAKE@ 60 @SET_MAKE@
61 RECURSIVE_MAKE=@RECURSIVE_MAKE@ 61 RECURSIVE_MAKE_ARGS=@RECURSIVE_MAKE_ARGS@
62 #endif 62 #endif
63 63
64 SHELL = /bin/sh 64 SHELL = /bin/sh
65 LANG = C 65 LANG = C
66 LC_ALL = C 66 LC_ALL = C
273 273
274 ${srcdir}/lib-src/config.values.in : ${srcdir}/configure 274 ${srcdir}/lib-src/config.values.in : ${srcdir}/configure
275 cd ${srcdir} && $(SHELL) lib-src/config.values.sh 275 cd ${srcdir} && $(SHELL) lib-src/config.values.sh
276 276
277 depend ${srcdir}/src/depend: 277 depend ${srcdir}/src/depend:
278 +cd ./src && $(RECURSIVE_MAKE) depend 278 cd ./src && $(MAKE) $(RECURSIVE_MAKE_ARGS) depend
279 279
280 check: 280 check:
281 +cd ./src && $(RECURSIVE_MAKE) $@ 281 cd ./src && $(MAKE) $(RECURSIVE_MAKE_ARGS) $@
282 282
283 check-features: all 283 check-features: all
284 +cd ./src && $(RECURSIVE_MAKE) $@ 284 cd ./src && $(MAKE) $(RECURSIVE_MAKE_ARGS) $@
285 285
286 ## We have to force the building of Emacs.ad.h as well in order to get it 286 ## We have to force the building of Emacs.ad.h as well in order to get it
287 ## updated correctly when VPATH is being used. Since we use move-if-change, 287 ## updated correctly when VPATH is being used. Since we use move-if-change,
288 ## it will only actually change if the user modified ${etcdir}/Emacs.ad. 288 ## it will only actually change if the user modified ${etcdir}/Emacs.ad.
289 src/Emacs.ad.h: ${srcdir}/etc/Emacs.ad 289 src/Emacs.ad.h: ${srcdir}/etc/Emacs.ad
308 dynodump: FRC.dynodump 308 dynodump: FRC.dynodump
309 FRC.src FRC.lib-src FRC.lwlib FRC.dynodump pkg-src/FRC.tree-x: 309 FRC.src FRC.lib-src FRC.lwlib FRC.dynodump pkg-src/FRC.tree-x:
310 FRC.lisp.finder-inf.el: 310 FRC.lisp.finder-inf.el:
311 311
312 ${SUBDIR}: ${SUBDIR_MAKEFILES} ${GENERATED_HEADERS} FRC 312 ${SUBDIR}: ${SUBDIR_MAKEFILES} ${GENERATED_HEADERS} FRC
313 +cd ./$@ && $(RECURSIVE_MAKE) all 313 cd ./$@ && $(MAKE) $(RECURSIVE_MAKE_ARGS) all
314 314
315 ## Building modules depends on ellcc, found in lib-src. 315 ## Building modules depends on ellcc, found in lib-src.
316 modules/sample modules/ldap modules/zlib modules/base64 modules/postgresql: lib-src 316 modules/sample modules/ldap modules/zlib modules/base64 modules/postgresql: lib-src
317 317
318 Makefile: ${srcdir}/Makefile.in.in config.status 318 Makefile: ${srcdir}/Makefile.in.in config.status
319 ./config.status 319 ./config.status
320 $(RECURSIVE_MAKE) all 320 $(MAKE) $(RECURSIVE_MAKE_ARGS) all
321 321
322 src/Makefile: ${srcdir}/src/Makefile.in.in ${srcdir}/src/depend config.status 322 src/Makefile: ${srcdir}/src/Makefile.in.in ${srcdir}/src/depend config.status
323 ./config.status 323 ./config.status
324 324
325 lib-src/Makefile: ${srcdir}/lib-src/Makefile.in.in config.status 325 lib-src/Makefile: ${srcdir}/lib-src/Makefile.in.in config.status
373 373
374 install: all check-features install-arch-dep install-arch-indep 374 install: all check-features install-arch-dep install-arch-indep
375 375
376 install-arch-dep: mkdir 376 install-arch-dep: mkdir
377 for subdir in ${INSTALL_ARCH_DEP_SUBDIR}; do \ 377 for subdir in ${INSTALL_ARCH_DEP_SUBDIR}; do \
378 (cd ./$${subdir} && $(RECURSIVE_MAKE) install prefix=${prefix} \ 378 (cd ./$${subdir} && $(MAKE) $(RECURSIVE_MAKE_ARGS) install prefix=${prefix} \
379 exec_prefix=${exec_prefix} bindir=${bindir} libdir=${libdir} \ 379 exec_prefix=${exec_prefix} bindir=${bindir} libdir=${libdir} \
380 archlibdir=${archlibdir}) ; done 380 archlibdir=${archlibdir}) ; done
381 if test "`(cd ${archlibdir} && $(pwd))`" != \ 381 if test "`(cd ${archlibdir} && $(pwd))`" != \
382 "`(cd ./lib-src && $(pwd))`"; then \ 382 "`(cd ./lib-src && $(pwd))`"; then \
383 if test -f ../Installation; then \ 383 if test -f ../Installation; then \
490 #### Don't delete the lisp and etc directories if they're in the source tree. 490 #### Don't delete the lisp and etc directories if they're in the source tree.
491 #### This target has not been updated in sometime and until it is it 491 #### This target has not been updated in sometime and until it is it
492 #### would be extremely dangerous for anyone to use it. 492 #### would be extremely dangerous for anyone to use it.
493 ##uninstall: 493 ##uninstall:
494 ## (cd ./lib-src; \ 494 ## (cd ./lib-src; \
495 ## $(RECURSIVE_MAKE) uninstall \ 495 ## $(MAKE) $(RECURSIVE_MAKE_ARGS) uninstall \
496 ## prefix=${prefix} exec_prefix=${exec_prefix} \ 496 ## prefix=${prefix} exec_prefix=${exec_prefix} \
497 ## bindir=${bindir} libdir=${libdir} archlibdir=${archlibdir}) 497 ## bindir=${bindir} libdir=${libdir} archlibdir=${archlibdir})
498 ## for dir in ${lispdir} ${etcdir} ; do \ 498 ## for dir in ${lispdir} ${etcdir} ; do \
499 ## case `(cd $${dir} ; $(pwd))` in \ 499 ## case `(cd $${dir} ; $(pwd))` in \
500 ## `(cd ${srcdir} ; $(pwd))`* ) ;; \ 500 ## `(cd ${srcdir} ; $(pwd))`* ) ;; \
524 ## Like `clean', but may refrain from deleting a few files that people 524 ## Like `clean', but may refrain from deleting a few files that people
525 ## normally don't want to recompile. For example, the `mostlyclean' 525 ## normally don't want to recompile. For example, the `mostlyclean'
526 ## target for GCC does not delete `libgcc.a', because recompiling it 526 ## target for GCC does not delete `libgcc.a', because recompiling it
527 ## is rarely necessary and takes a lot of time. 527 ## is rarely necessary and takes a lot of time.
528 mostlyclean: FRC.mostlyclean 528 mostlyclean: FRC.mostlyclean
529 +for d in $(SUBDIR); do (cd ./$$d && $(RECURSIVE_MAKE) $@); done 529 for d in $(SUBDIR); do (cd ./$$d && $(MAKE) $(RECURSIVE_MAKE_ARGS) $@); done
530 $(RM) core 530 $(RM) core
531 531
532 ## `clean' 532 ## `clean'
533 ## Delete all files from the current directory that are normally 533 ## Delete all files from the current directory that are normally
534 ## created by building the program. Don't delete the files that 534 ## created by building the program. Don't delete the files that
540 540
541 ## Remove the generated load files here; they cause lots of problems 541 ## Remove the generated load files here; they cause lots of problems
542 ## when they don't work right. (beta can't depend on distclean, which 542 ## when they don't work right. (beta can't depend on distclean, which
543 ## removes necessary files generated by configure.) 543 ## removes necessary files generated by configure.)
544 clean: FRC.clean 544 clean: FRC.clean
545 +for d in $(SUBDIR); do (cd ./$$d && $(RECURSIVE_MAKE) $@); done 545 for d in $(SUBDIR); do (cd ./$$d && $(MAKE) $(RECURSIVE_MAKE_ARGS) $@); done
546 $(RM) core lisp/auto-autoloads.el* lisp/custom-load.el* 546 $(RM) core lisp/auto-autoloads.el* lisp/custom-load.el*
547 $(RM) lisp/mule/auto-autoloads.el* lisp/mule/custom-load.el* 547 $(RM) lisp/mule/auto-autoloads.el* lisp/mule/custom-load.el*
548 $(RM) modules/auto-autoloads.el* modules/custom-load.el* 548 $(RM) modules/auto-autoloads.el* modules/custom-load.el*
549 549
550 ## `distclean' 550 ## `distclean'
558 $(RM) TAGS .sbinit lock/* GNUmakefile Makefile Makefile.in ; \ 558 $(RM) TAGS .sbinit lock/* GNUmakefile Makefile Makefile.in ; \
559 $(RM) lisp/finder-inf.el* Installation.el Installation.elc ; \ 559 $(RM) lisp/finder-inf.el* Installation.el Installation.elc ; \
560 $(RM) -r site-packages xemacs-packages mule-packages site-lisp 560 $(RM) -r site-packages xemacs-packages mule-packages site-lisp
561 561
562 distclean: FRC.distclean 562 distclean: FRC.distclean
563 +for d in $(SUBDIR); do (cd ./$$d && $(RECURSIVE_MAKE) $@); done 563 for d in $(SUBDIR); do (cd ./$$d && $(MAKE) $(RECURSIVE_MAKE_ARGS) $@); done
564 -${top_distclean} 564 -${top_distclean}
565 565
566 ## `realclean' 566 ## `realclean'
567 ## Delete everything from the current directory that can be 567 ## Delete everything from the current directory that can be
568 ## reconstructed with this Makefile. This typically includes 568 ## reconstructed with this Makefile. This typically includes
573 ## `configure' even if `configure' can be remade using a rule in the 573 ## `configure' even if `configure' can be remade using a rule in the
574 ## Makefile. More generally, `make realclean' should not delete 574 ## Makefile. More generally, `make realclean' should not delete
575 ## anything that needs to exist in order to run `configure' and then 575 ## anything that needs to exist in order to run `configure' and then
576 ## begin to build the program. 576 ## begin to build the program.
577 realclean: FRC.realclean 577 realclean: FRC.realclean
578 +for d in $(SUBDIR); do (cd ./$$d && $(RECURSIVE_MAKE) $@); done 578 for d in $(SUBDIR); do (cd ./$$d && $(MAKE) $(RECURSIVE_MAKE_ARGS) $@); done
579 -${top_distclean} 579 -${top_distclean}
580 $(RM) TAGS 580 $(RM) TAGS
581 581
582 ## This doesn't actually appear in the coding standards, but Karl 582 ## This doesn't actually appear in the coding standards, but Karl
583 ## says GCC supports it, and that's where the configuration part of 583 ## says GCC supports it, and that's where the configuration part of
584 ## the coding standards seem to come from. It's like distclean, but 584 ## the coding standards seem to come from. It's like distclean, but
585 ## it deletes backup and autosave files too. 585 ## it deletes backup and autosave files too.
586 extraclean: 586 extraclean:
587 +for d in $(SUBDIR); do (cd ./$$d && $(RECURSIVE_MAKE) $@); done 587 for d in $(SUBDIR); do (cd ./$$d && $(MAKE) $(RECURSIVE_MAKE_ARGS) $@); done
588 $(RM) *~ \#* 588 $(RM) *~ \#*
589 -${top_distclean} 589 -${top_distclean}
590 590
591 ## Unlocking and relocking. The idea of these productions is to reduce 591 ## Unlocking and relocking. The idea of these productions is to reduce
592 ## hassles when installing an incremental tar of XEmacs. Do `make unlock' 592 ## hassles when installing an incremental tar of XEmacs. Do `make unlock'
604 .PHONY: unlock relock TAGS tags dist info dvi mcs 604 .PHONY: unlock relock TAGS tags dist info dvi mcs
605 605
606 unlock: 606 unlock:
607 chmod u+w $(SOURCES) cpp/* 607 chmod u+w $(SOURCES) cpp/*
608 -cd ./elisp && chmod u+w Makefile README *.texi 608 -cd ./elisp && chmod u+w Makefile README *.texi
609 for d in src etc lib-src lisp; do (cd ./$$d && $(RECURSIVE_MAKE) $@); done 609 for d in src etc lib-src lisp; do (cd ./$$d && $(MAKE) $(RECURSIVE_MAKE_ARGS) $@); done
610 cd ./lisp/term && chmod u+w README *.el 610 cd ./lisp/term && chmod u+w README *.el
611 cd ./man && chmod u+w *texi* ChangeLog split-man 611 cd ./man && chmod u+w *texi* ChangeLog split-man
612 cd ./lwlib && chmod u+w *.[ch] Makefile.in.in 612 cd ./lwlib && chmod u+w *.[ch] Makefile.in.in
613 613
614 relock: 614 relock:
615 chmod u-w $(SOURCES) cpp/* 615 chmod u-w $(SOURCES) cpp/*
616 -cd ./elisp && chmod u-w Makefile README *.texi 616 -cd ./elisp && chmod u-w Makefile README *.texi
617 for d in src etc lib-src lisp; do (cd ./$$d && $(RECURSIVE_MAKE) $@); done 617 for d in src etc lib-src lisp; do (cd ./$$d && $(MAKE) $(RECURSIVE_MAKE_ARGS) $@); done
618 cd ./lisp/term && chmod u+w README *.el 618 cd ./lisp/term && chmod u+w README *.el
619 cd ./man && chmod u+w *texi* ChangeLog split-man 619 cd ./man && chmod u+w *texi* ChangeLog split-man
620 cd ./lwlib && chmod u+w *.[ch] Makefile.in.in 620 cd ./lwlib && chmod u+w *.[ch] Makefile.in.in
621 621
622 PRUNE_VC = -name SCCS -prune -o -name RCS -prune -o -name CVS -prune -o 622 PRUNE_VC = -name SCCS -prune -o -name RCS -prune -o -name CVS -prune -o
633 -r '/^DEFUN[ ]*([ ]*"\([^"]+\)"[ ]*,[ ]*\([A-Za-z0-9_]+\)/\2/'; \ 633 -r '/^DEFUN[ ]*([ ]*"\([^"]+\)"[ ]*,[ ]*\([A-Za-z0-9_]+\)/\2/'; \
634 find ${tagslisp} ${PRUNE_VC} -name '*.el' ! -name 'auto-autoloads.el' -print | \ 634 find ${tagslisp} ${PRUNE_VC} -name '*.el' ! -name 'auto-autoloads.el' -print | \
635 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/" 635 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/"
636 636
637 info: FRC.info 637 info: FRC.info
638 +cd ${srcdir}/man && $(RECURSIVE_MAKE) $@ 638 cd ${srcdir}/man && $(MAKE) $(RECURSIVE_MAKE_ARGS) $@
639 639
640 dvi: 640 dvi:
641 +cd ${srcdir}/man && $(RECURSIVE_MAKE) $@ 641 cd ${srcdir}/man && $(MAKE) $(RECURSIVE_MAKE_ARGS) $@
642 642
643 ## Fix up version information in executables (Solaris-only) 643 ## Fix up version information in executables (Solaris-only)
644 mcs: 644 mcs:
645 date=`LANG=C LC_ALL=C date -u '+%e %b %Y'`; \ 645 date=`LANG=C LC_ALL=C date -u '+%e %b %Y'`; \
646 ident="@(#)RELEASE VERSION XEmacs ${version} $${date}"; \ 646 ident="@(#)RELEASE VERSION XEmacs ${version} $${date}"; \