From 38c3c7028df3c4da5675e65d768a77566f30040a Mon Sep 17 00:00:00 2001 From: Peter Kokot Date: Sat, 13 Apr 2019 15:53:20 +0200 Subject: [PATCH 1/4] Simplify generated_lists generation The generated_lists file is generated as a helper for build related makefile to include a list of *.m4 files prerequisites. When some *.m4 file changes the configure script is regenerated when buildconf is run. This can be simplified using dynamic expansion in the Makefile directly so it avoids another file from being generated in the project root directory and shipping it with the PHP release or creating a dedicated gitignore rule. --- .gitignore | 3 --- build/build.mk | 11 ++--------- build/build2.mk | 4 ++-- buildconf | 2 -- 4 files changed, 4 insertions(+), 16 deletions(-) diff --git a/.gitignore b/.gitignore index ca7179b7b0389..6647268b371da 100644 --- a/.gitignore +++ b/.gitignore @@ -66,9 +66,6 @@ configure confdefs.h conftest* -# Generated by `./buildconf` script as a helper for further build/build2.mk file -/generated_lists - # Generated by configure scripts on all systems /main/internal_functions.c /main/internal_functions_cli.c diff --git a/build/build.mk b/build/build.mk index b3fa3e2285089..bf7bbf4be5e27 100644 --- a/build/build.mk +++ b/build/build.mk @@ -22,16 +22,9 @@ SUBDIRS = Zend TSRM STAMP = buildmk.stamp -ALWAYS = generated_lists - - -all: $(STAMP) $(ALWAYS) +all: $(STAMP) @$(MAKE) -s -f build/build2.mk -generated_lists: - @echo config_m4_files = Zend/Zend.m4 TSRM/tsrm.m4 TSRM/threads.m4 \ - Zend/acinclude.m4 ext/*/config*.m4 sapi/*/config.m4 >> $@ - $(STAMP): build/buildcheck.sh @build/buildcheck.sh $(STAMP) @@ -64,4 +57,4 @@ gitclean-work: fi; \ git clean -X -f -d; -.PHONY: $(ALWAYS) snapshot +.PHONY: snapshot diff --git a/build/build2.mk b/build/build2.mk index 690166e887a4e..f7cec03f585e8 100644 --- a/build/build2.mk +++ b/build/build2.mk @@ -14,7 +14,7 @@ # | Author: Sascha Schumann | # +----------------------------------------------------------------------+ -include generated_lists +m4_files != echo TSRM/*.m4 Zend/*.m4 ext/*/config*.m4 sapi/*/config.m4 config_h_in = main/php_config.h.in @@ -40,7 +40,7 @@ aclocal.m4: configure.ac acinclude.m4 @echo rebuilding $@ cat acinclude.m4 ./build/libtool.m4 > $@ -configure: aclocal.m4 configure.ac $(config_m4_files) +configure: aclocal.m4 configure.ac $(m4_files) @echo rebuilding $@ @rm -f $@ $(PHP_AUTOCONF) -f $(SUPPRESS_WARNINGS) diff --git a/buildconf b/buildconf index ad9febfef50f2..ff4493717c1ae 100755 --- a/buildconf +++ b/buildconf @@ -91,8 +91,6 @@ fi echo "buildconf: Building configure files" -rm -f generated_lists - if test "$debug" = "1"; then $MAKE -s -f build/build.mk SUPPRESS_WARNINGS="" else From b056c533d82e3027a04d461eb9a2c514da7fde1a Mon Sep 17 00:00:00 2001 From: Peter Kokot Date: Sun, 14 Apr 2019 19:11:48 +0200 Subject: [PATCH 2/4] GNU Make 3.x something also now works --- build/build2.mk | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/build/build2.mk b/build/build2.mk index f7cec03f585e8..2e76c5a01abf7 100644 --- a/build/build2.mk +++ b/build/build2.mk @@ -14,8 +14,6 @@ # | Author: Sascha Schumann | # +----------------------------------------------------------------------+ -m4_files != echo TSRM/*.m4 Zend/*.m4 ext/*/config*.m4 sapi/*/config.m4 - config_h_in = main/php_config.h.in targets = configure $(config_h_in) @@ -40,7 +38,7 @@ aclocal.m4: configure.ac acinclude.m4 @echo rebuilding $@ cat acinclude.m4 ./build/libtool.m4 > $@ -configure: aclocal.m4 configure.ac $(m4_files) +configure: aclocal.m4 configure.ac TSRM/*.m4 Zend/*.m4 ext/*/config*.m4 sapi/*/config*.m4 @echo rebuilding $@ @rm -f $@ $(PHP_AUTOCONF) -f $(SUPPRESS_WARNINGS) From b9ea20ff8c0bcf51a03d975a84f2efd309967a6e Mon Sep 17 00:00:00 2001 From: Peter Kokot Date: Mon, 15 Apr 2019 02:40:44 +0200 Subject: [PATCH 3/4] Works in GNU Make and everybody else's make derivative --- build/build2.mk | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/build/build2.mk b/build/build2.mk index 2e76c5a01abf7..e039005aeda04 100644 --- a/build/build2.mk +++ b/build/build2.mk @@ -18,6 +18,9 @@ config_h_in = main/php_config.h.in targets = configure $(config_h_in) +m4_files.exec = echo TSRM/*.m4 Zend/*.m4 ext/*/config*.m4 sapi/*/config*.m4 +m4_files = $(shell $(m4_files.exec))$(m4_files.exec:sh) + PHP_AUTOCONF ?= 'autoconf' PHP_AUTOHEADER ?= 'autoheader' @@ -38,7 +41,7 @@ aclocal.m4: configure.ac acinclude.m4 @echo rebuilding $@ cat acinclude.m4 ./build/libtool.m4 > $@ -configure: aclocal.m4 configure.ac TSRM/*.m4 Zend/*.m4 ext/*/config*.m4 sapi/*/config*.m4 +configure: aclocal.m4 configure.ac $(m4_files) @echo rebuilding $@ @rm -f $@ $(PHP_AUTOCONF) -f $(SUPPRESS_WARNINGS) From 500f54bb2b70e7ffaaab11b87bf3284aca5443fb Mon Sep 17 00:00:00 2001 From: Peter Kokot Date: Mon, 15 Apr 2019 19:31:09 +0200 Subject: [PATCH 4/4] Generate list of M4 files in the buildconf script - most portable probably --- build/build2.mk | 5 +---- buildconf | 6 ++++-- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/build/build2.mk b/build/build2.mk index e039005aeda04..b6b0343abf965 100644 --- a/build/build2.mk +++ b/build/build2.mk @@ -18,9 +18,6 @@ config_h_in = main/php_config.h.in targets = configure $(config_h_in) -m4_files.exec = echo TSRM/*.m4 Zend/*.m4 ext/*/config*.m4 sapi/*/config*.m4 -m4_files = $(shell $(m4_files.exec))$(m4_files.exec:sh) - PHP_AUTOCONF ?= 'autoconf' PHP_AUTOHEADER ?= 'autoheader' @@ -41,7 +38,7 @@ aclocal.m4: configure.ac acinclude.m4 @echo rebuilding $@ cat acinclude.m4 ./build/libtool.m4 > $@ -configure: aclocal.m4 configure.ac $(m4_files) +configure: aclocal.m4 configure.ac $(M4_FILES) @echo rebuilding $@ @rm -f $@ $(PHP_AUTOCONF) -f $(SUPPRESS_WARNINGS) diff --git a/buildconf b/buildconf index ff4493717c1ae..1e439c310f97c 100755 --- a/buildconf +++ b/buildconf @@ -91,8 +91,10 @@ fi echo "buildconf: Building configure files" +M4_FILES=$(echo TSRM/*.m4 Zend/*.m4 ext/*/config*.m4 sapi/*/config*.m4) + if test "$debug" = "1"; then - $MAKE -s -f build/build.mk SUPPRESS_WARNINGS="" + $MAKE -s -f build/build.mk SUPPRESS_WARNINGS="" M4_FILES="$M4_FILES" else - $MAKE -s -f build/build.mk + $MAKE -s -f build/build.mk M4_FILES="$M4_FILES" fi