From: Sascha Schumann Date: Sat, 18 Dec 1999 22:20:05 +0000 (+0000) Subject: Get rid of all GNUisms in build.mk. Verified to work with BSD make, X-Git-Tag: PRE_LIBZEND_TO_ZEND~23 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=47b49c8a681f1e56284e675cb120198955e48a5c;p=php Get rid of all GNUisms in build.mk. Verified to work with BSD make, SysV make, and GNU make (tested on FreeBSD-current, Solaris 7, Linux with GNU make 3.78). --- diff --git a/build.mk b/build.mk index 4716b38408..d710c46ddc 100644 --- a/build.mk +++ b/build.mk @@ -11,45 +11,29 @@ # # $Id$ -LT_TARGETS = ltconfig ltmain.sh config.guess config.sub SUBDIRS = libzend TSRM STAMP = buildmk.stamp -makefile_am_files = Makefile.am libzend/Makefile.am TSRM/Makefile.am \ - $(shell find ext sapi regex pear -name Makefile.am) -makefile_in_files = $(makefile_am_files:.am=.in) -makefile_files = $(makefile_am_files:e.am=e) +ALWAYS = generated_lists -config_h_in = php_config.h.in +.PHONY: $(ALWAYS) -config_h_files = libzend/acconfig.h TSRM/acconfig.h \ - $(shell echo ext/*/config.h.stub sapi/*/config.h.stub) +all: $(STAMP) $(ALWAYS) + @$(MAKE) -s -f build2.mk -config_m4_files = libzend/libzend.m4 TSRM/tsrm.m4 libzend/acinclude.m4 \ - $(shell echo ext/*/config.m4 sapi/*/config.m4) - -acconfig_h_SOURCES = acconfig.h.in $(config_h_files) - -targets = $(makefile_in_files) configure $(config_h_in) - -all: $(targets) - @for i in $(SUBDIRS); do \ - test -d $$i || (test -d ../$$i && ln -s ../$$i $$i); \ - done - -all: $(STAMP) +generated_lists: + @echo makefile_am_files = Makefile.am libzend/Makefile.am \ + TSRM/Makefile.am `find ext sapi regex pear -name Makefile.am` > $@ + @echo config_h_files = libzend/acconfig.h TSRM/acconfig.h \ + ext/*/config.h.stub sapi/*/config.h.stub >> $@ + @echo config_m4_files = libzend/libzend.m4 TSRM/tsrm.m4 \ + libzend/acinclude.m4 ext/*/config.m4 sapi/*/config.m4 >> $@ $(STAMP): buildcheck.sh @./buildcheck.sh && touch $(STAMP) -libzend/Makefile.am: - test -d libzend || (test -d ../libzend && ln -s ../libzend libzend) - -TSRM/Makefile.am: - test -d TSRM || (test -d ../TSRM && ln -s ../TSRM TSRM) - dist: @rm -f $(SUBDIRS) 2>/dev/null || true @for i in $(SUBDIRS); do \ @@ -58,42 +42,8 @@ dist: @find . -type l -exec rm {} \; $(MAKE) AMFLAGS=--copy -f build.mk -clean: - rm -f $(targets) - @for i in $(SUBDIRS); do \ - (cd $$i && $(MAKE) -f build.mk clean); \ - done - cvsclean: - @for i in $(shell find . -follow -name .cvsignore); do \ + @for i in `find . -follow -name .cvsignore`; do \ (cd `dirname $$i` && rm -rf `cat .cvsignore`); \ done @rm -f $(SUBDIRS) 2>/dev/null || true - -acconfig.h: $(acconfig_h_SOURCES) - @echo rebuilding $@ - @cat $(acconfig_h_SOURCES) > $@ - -$(makefile_in_files): $(makefile_am_files) aclocal.m4 - @echo rebuilding Makefile.in\'s - @for i in $(LT_TARGETS); do \ - if test -f "$$i"; then \ - mv $$i $$i.bak; \ - cp $$i.bak $$i; \ - fi; \ - done - @automake -a -i $(AMFLAGS) $(makefile_files) 2>&1 \ - | grep -v PHP_OUTPUT_FILES || true >&2 - @for i in $(LT_TARGETS); do mv $$i.bak $$i; done - -aclocal.m4: configure.in acinclude.m4 - aclocal - -$(config_h_in): configure.in acconfig.h -# explicitly remove target since autoheader does not seem to work -# correctly otherwise (timestamps are not updated) - @rm -f $@ - autoheader - -configure: aclocal.m4 configure.in $(config_m4_files) - autoconf diff --git a/build2.mk b/build2.mk new file mode 100644 index 0000000000..eeeb9ef3e9 --- /dev/null +++ b/build2.mk @@ -0,0 +1,53 @@ +# Workhorse for build.mk +# +# $Id$ + +include generated_lists + +LT_TARGETS = ltconfig ltmain.sh config.guess config.sub + +makefile_in_files = $(makefile_am_files:.am=.in) +makefile_files = $(makefile_am_files:e.am=e) + +config_h_in = php_config.h.in + +acconfig_h_SOURCES = acconfig.h.in $(config_h_files) + +targets = $(makefile_in_files) configure $(config_h_in) + + +all: libzend/Makefile.am TSRM/Makefile.am $(targets) + +libzend/Makefile.am: + test -d libzend || (test -d ../libzend && ln -s ../libzend libzend) + +TSRM/Makefile.am: + test -d TSRM || (test -d ../TSRM && ln -s ../TSRM TSRM) + +acconfig.h: $(acconfig_h_SOURCES) + @echo rebuilding $@ + @cat $(acconfig_h_SOURCES) > $@ + +$(makefile_in_files): $(makefile_am_files) aclocal.m4 configure.in $(config_m4_files) + @echo rebuilding Makefile.in\'s + @for i in $(LT_TARGETS); do \ + if test -f "$$i"; then \ + mv $$i $$i.bak; \ + cp $$i.bak $$i; \ + fi; \ + done + @automake -a -i $(AMFLAGS) $(makefile_files) 2>&1 \ + | grep -v PHP_OUTPUT_FILES || true >&2 + @for i in $(LT_TARGETS); do mv $$i.bak $$i; done + +aclocal.m4: configure.in acinclude.m4 + aclocal + +$(config_h_in): configure.in acconfig.h +# explicitly remove target since autoheader does not seem to work +# correctly otherwise (timestamps are not updated) + @rm -f $@ + autoheader + +configure: aclocal.m4 configure.in $(config_m4_files) + autoconf