diff --git a/Makefile b/Makefile index b546e879f8904dca05fff1ee3632f11bb9c251c2..92e4cee14f268ba876c4a956b6898ed41906f6ff 100644 --- a/Makefile +++ b/Makefile @@ -1,15 +1,22 @@ # -# $Id: Makefile,v 1.108 2002/12/12 21:21:03 nilsson Exp $ +# $Id: Makefile,v 1.109 2002/12/15 19:17:36 grubba Exp $ # # Meta Makefile # VPATH=. -MAKE=make OS=`uname -s -r -m|sed \"s/ /-/g\"|tr \"[A-Z]\" \"[a-z]\"|tr \"/()\" \"___\"` BUILDDIR=build/$(OS) METATARGET= +# This evaluates to a proper make command. +# Regardless of whether the make sets $(MAKE) or not. +# Priority is $(MAKE) before ${MAKE} before make. +MAKE_CMD=`if [ "x$(MAKE)" = "x" ]; then echo "$${MAKE-make}"; else echo "$(MAKE)"; fi` + +# Evaluates to $(MAKE_CMD) and sets ${MAKE} and $(MAKE) +DO_MAKE=MAKE="$(MAKE_CMD)" export MAKE && "$${MAKE}" "MAKE=$${MAKE}" + # Use this to pass arguments to configure. Leave empty to keep previous args. CONFIGUREARGS= @@ -20,7 +27,7 @@ MAKE_PARALLEL= # Used to avoid make compatibility problems. BIN_TRUE=":" -MAKE_FLAGS="MAKE=$(MAKE)" "CONFIGUREARGS=$(CONFIGUREARGS)" "BUILDDIR=$(BUILDDIR)" +MAKE_FLAGS="CONFIGUREARGS=$(CONFIGUREARGS)" "BUILDDIR=$(BUILDDIR)" all: bin/pike compile -@$(BIN_TRUE) @@ -36,7 +43,7 @@ force_autoconfig: force_configure: -rm -f "$(BUILDDIR)/Makefile" - @$(MAKE) $(MAKE_FLAGS) configure + @$(DO_MAKE) $(MAKE_FLAGS) configure configure_help: src/configure cd src && ./configure --help @@ -70,7 +77,8 @@ configure: src/configure builddir if test "x$(CONFIGUREARGS)" = x; then \ configureargs="$$oldconfigureargs"; \ else :; fi; \ - MAKE=$(MAKE) ; export MAKE ;\ + MAKE="$(MAKE_CMD)"; \ + export MAKE; \ echo; \ echo Configure arguments: $$configureargs; \ echo 'Use `make CONFIGUREARGS="..."' "...'" 'to change them.'; \ @@ -87,12 +95,12 @@ configure: src/configure builddir if test "x$$oldconfigureargs" = "x$$configureargs"; then :; \ else \ echo Configure arguments have changed - doing make clean; \ - $(MAKE) "MAKE=$(MAKE)" clean || exit $$?; \ + $${MAKE} "MAKE=$${MAKE}" clean || exit $$?; \ if test "x$(METATARGET)" = "xsource"; then :; \ elif test "x$(METATARGET)" = "xexport"; then :; \ else \ echo Configure arguments have changed - doing make depend; \ - $(MAKE) "MAKE=$(MAKE)" depend || exit $$?; \ + $${MAKE} "MAKE=$${MAKE}" depend || exit $$?; \ fi; \ fi; \ fi; \ @@ -108,13 +116,15 @@ compile: configure else metatarget="all $$metatarget"; fi; \ if test "x$$metatarget" = x; then metatarget=all; else :; fi; \ else :; fi; \ + MAKE="$(MAKE_CMD)"; \ + export MAKE; \ for target in $$metatarget; do \ echo Making $$target in "$$builddir"; \ rm -f remake; \ - $(MAKE) "MAKE=$(MAKE)" "MAKE_PARALLEL=$(MAKE_PARALLEL)" "EXPORT_NAME=$(EXPORT_NAME)" $$target || { \ + $${MAKE} "MAKE=$${MAKE}" "MAKE_PARALLEL=$(MAKE_PARALLEL)" "EXPORT_NAME=$(EXPORT_NAME)" $$target || { \ res=$$?; \ if test -f remake; then \ - $(MAKE) "MAKE=$(MAKE)" "MAKE_PARALLEL=$(MAKE_PARALLEL)" "EXPORT_NAME=$(EXPORT_NAME)" $$target || \ + $${MAKE} "MAKE=$${MAKE}" "MAKE_PARALLEL=$(MAKE_PARALLEL)" "EXPORT_NAME=$(EXPORT_NAME)" $$target || \ exit $$?; \ else \ exit $$res; \ @@ -142,7 +152,7 @@ lobotomize_crypto: # FIXME: The refdoc stuff ought to use $(BUILDDIR) too. documentation: - @$(MAKE) $(MAKE_FLAGS) "METATARGET=documentation" + @$(DO_MAKE) $(MAKE_FLAGS) "METATARGET=documentation" doc: documentation @@ -167,29 +177,29 @@ bin/pike: force # This skips the modules. pike: bin/pike - @$(MAKE) $(MAKE_FLAGS) "METATARGET=pike" + @$(DO_MAKE) $(MAKE_FLAGS) "METATARGET=pike" install: bin/pike - @$(MAKE) $(MAKE_FLAGS) "METATARGET=install" + @$(DO_MAKE) $(MAKE_FLAGS) "METATARGET=install" install_interactive: bin/pike - @$(MAKE) $(MAKE_FLAGS) "METATARGET=install_interactive" + @$(DO_MAKE) $(MAKE_FLAGS) "METATARGET=install_interactive" tinstall: bin/pike - @$(MAKE) $(MAKE_FLAGS) "METATARGET=tinstall" + @$(DO_MAKE) $(MAKE_FLAGS) "METATARGET=tinstall" testsuites: - @$(MAKE) $(MAKE_FLAGS) "METATARGET=testsuites" - @$(MAKE) $(MAKE_FLAGS) "METATARGET=testsuite" + @$(DO_MAKE) $(MAKE_FLAGS) "METATARGET=testsuites" + @$(DO_MAKE) $(MAKE_FLAGS) "METATARGET=testsuite" just_verify: - @$(MAKE) $(MAKE_FLAGS) "METATARGET=just_verify" + @$(DO_MAKE) $(MAKE_FLAGS) "METATARGET=just_verify" verify: - @$(MAKE) $(MAKE_FLAGS) "METATARGET=verify" + @$(DO_MAKE) $(MAKE_FLAGS) "METATARGET=verify" verify_installed: - @$(MAKE) $(MAKE_FLAGS) "METATARGET=verify_installed" + @$(DO_MAKE) $(MAKE_FLAGS) "METATARGET=verify_installed" check: verify -@$(BIN_TRUE) @@ -198,36 +208,36 @@ sure: verify -@$(BIN_TRUE) verbose_verify: - @$(MAKE) $(MAKE_FLAGS) "METATARGET=verbose_verify" + @$(DO_MAKE) $(MAKE_FLAGS) "METATARGET=verbose_verify" gdb_verify: - @$(MAKE) $(MAKE_FLAGS) "METATARGET=gdb_verify" + @$(DO_MAKE) $(MAKE_FLAGS) "METATARGET=gdb_verify" dump_modules: - @$(MAKE) $(MAKE_FLAGS) "METATARGET=dump_modules" + @$(DO_MAKE) $(MAKE_FLAGS) "METATARGET=dump_modules" force_dump_modules: - @$(MAKE) $(MAKE_FLAGS) "METATARGET=force_dump_modules" + @$(DO_MAKE) $(MAKE_FLAGS) "METATARGET=force_dump_modules" delete_dumped_modules: - @$(MAKE) $(MAKE_FLAGS) "METATARGET=delete_dumped_modules" + @$(DO_MAKE) $(MAKE_FLAGS) "METATARGET=delete_dumped_modules" undump_modules: - @$(MAKE) $(MAKE_FLAGS) "METATARGET=undump_modules" + @$(DO_MAKE) $(MAKE_FLAGS) "METATARGET=undump_modules" run_hilfe: - @$(MAKE) $(MAKE_FLAGS) "METATARGET=run_hilfe" + @$(DO_MAKE) $(MAKE_FLAGS) "METATARGET=run_hilfe" source: - @$(MAKE) "MAKE=$(MAKE)" "CONFIGUREARGS=--disable-binary $(CONFIGUREARGS)" \ + @$(DO_MAKE) "CONFIGUREARGS=--disable-binary $(CONFIGUREARGS)" \ "OS=source" "LIMITED_TARGETS=yes" "METATARGET=source" compile export: - @$(MAKE) "MAKE=$(MAKE)" "CONFIGUREARGS=--disable-binary $(CONFIGUREARGS)" \ + @$(DO_MAKE) "CONFIGUREARGS=--disable-binary $(CONFIGUREARGS)" \ "OS=source" "LIMITED_TARGETS=yes" "METATARGET=export" compile snapshot_export: - @$(MAKE) "MAKE=$(MAKE)" "CONFIGUREARGS=--disable-binary $(CONFIGUREARGS)" \ + @$(DO_MAKE) "CONFIGUREARGS=--disable-binary $(CONFIGUREARGS)" \ "OS=source" "LIMITED_TARGETS=yes" "METATARGET=snapshot_export" \ "EXPORT_NAME=Pike-v%maj.%min-snapshot-%Y%M%D" compile @@ -235,25 +245,25 @@ snapshot: snapshot_export xenofarm_export: @echo Begin export - @$(MAKE) "MAKE=$(MAKE)" "CONFIGUREARGS=--disable-binary $(CONFIGUREARGS)" \ + @$(DO_MAKE) "CONFIGUREARGS=--disable-binary $(CONFIGUREARGS)" \ "OS=source" "LIMITED_TARGETS=yes" "METATARGET=snapshot_export" \ "EXPORT_NAME=Pike%maj.%min-%Y%M%D-%h%m%s" \ "EXPORTARGS=$(EXPORTARGS)" compile > export_result.txt 2>&1 @echo Export done bin_export: - @$(MAKE) $(MAKE_FLAGS) "METATARGET=bin_export" + @$(DO_MAKE) $(MAKE_FLAGS) "METATARGET=bin_export" feature_list: - @$(MAKE) $(MAKE_FLAGS) "METATARGET=feature_list" + @$(DO_MAKE) $(MAKE_FLAGS) "METATARGET=feature_list" solaris_pkg_configure: - @$(MAKE) "MAKE=$(MAKE)" "CONFIGUREARGS=--prefix=/opt $(CONFIGUREARGS)" \ + @$(DO_MAKE) "CONFIGUREARGS=--prefix=/opt $(CONFIGUREARGS)" \ "METATARGET=configure" solaris_pkg: solaris_pkg_configure bin/pike @test -d "${BUILDDIR}/solaris_pkg_build" || mkdir "${BUILDDIR}/solaris_pkg_build" - @cd "${BUILDDIR}" && $(MAKE) \ + @cd "${BUILDDIR}" && $(DO_MAKE) \ "buildroot=solaris_pkg_build/" \ install @bin/pike bin/make_solaris_pkg.pike --prefix="/opt" --installroot="`pwd`/${BUILDDIR}/solaris_pkg_build" --pkgdest="`pwd`" @@ -261,7 +271,7 @@ solaris_pkg: solaris_pkg_configure bin/pike @ls -l *pkg xenofarm_feature: - $(MAKE) MAKE="$(MAKE)" BUILDDIR="$(BUILDDIR)" \ + $(DO_MAKE) BUILDDIR="$(BUILDDIR)" \ CONFIGUREARGS="$(CONFIGUREARGS) --with-cdebug --with-security --with-double-precision --with-profiling --with-keypair-loop --with-new-multisets" \ xenofarm @@ -270,36 +280,36 @@ xenofarm: -rm -rf build/xenofarm mkdir build/xenofarm -CCACHE_LOGFILE="`pwd`/build/xenofarm/ccache.log.txt" \ - MAKE="$(MAKE)" CONFIGUREARGS="$(CONFIGUREARGS)" \ + MAKE="$(MAKE_CMD)" CONFIGUREARGS="$(CONFIGUREARGS)" \ BUILDDIR="$(BUILDDIR)" /bin/sh bin/xenofarm.sh cd build/xenofarm && tar cf - . > ../../xenofarm_result.tar gzip -f9 xenofarm_result.tar clean: - -cd "$(BUILDDIR)" && test -f Makefile && $(MAKE) "MAKE=$(MAKE)" clean || { \ + -cd "$(BUILDDIR)" && test -f Makefile && $(DO_MAKE) clean || { \ res=$$?; \ - if test -f remake; then $(MAKE) "MAKE=$(MAKE)" clean; \ + if test -f remake; then $(DO_MAKE) clean; \ else exit $$res; fi; \ } || exit $$? if test -f "refdoc/Makefile"; then \ - cd refdoc; $(MAKE) "MAKE=$(MAKE)" clean; \ + cd refdoc; $(DO_MAKE) clean; \ else :; fi spotless: - -cd "$(BUILDDIR)" && test -f Makefile && $(MAKE) "MAKE=$(MAKE)" spotless || { \ + -cd "$(BUILDDIR)" && test -f Makefile && $(DO_MAKE) spotless || { \ res=$$?; \ - if test -f remake; then $(MAKE) "MAKE=$(MAKE)" spotless; \ + if test -f remake; then $(DO_MAKE) spotless; \ else exit $$res; fi; \ } || exit $$? if test -f "refdoc/Makefile"; then \ - cd refdoc; $(MAKE) "MAKE=$(MAKE)" spotless; \ + cd refdoc; $(DO_MAKE) spotless; \ else :; fi delete_builddir: -rm -rf "$(BUILDDIR)" distclean: delete_builddir - $(MAKE) "OS=source" delete_builddir + $(DO_MAKE) "OS=source" delete_builddir -rm -f bin/pike srcclean: @@ -316,9 +326,9 @@ cvsclean: srcclean distclean depend: configure -@cd "$(BUILDDIR)" && \ - $(MAKE) "MAKE=$(MAKE)" "MAKE_PARALLEL=$(MAKE_PARALLEL)" depend || { \ + $(DO_MAKE) "MAKE_PARALLEL=$(MAKE_PARALLEL)" depend || { \ res=$$?; \ - if test -f remake; then $(MAKE) "MAKE=$(MAKE)" "MAKE_PARALLEL=$(MAKE_PARALLEL)" depend; \ + if test -f remake; then $(DO_MAKE) "MAKE_PARALLEL=$(MAKE_PARALLEL)" depend; \ else exit $$res; fi; \ } || exit $$?