mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
The `generated_lists` file is generated as a helper for build related Makefile to include a list of *.m4 files prerequisites. When some of these *.m4 files change, the configure script is regenerated when buildconf is run. This can be simplified using dynamic environment variable passed to 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. This is portable across all POSIX compatible makes So this patch includes GNU Make, and everybody elses' make derivative support.
102 lines
2.7 KiB
Bash
Executable File
102 lines
2.7 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# A wrapper around Autoconf that generates files to build PHP on *nix systems.
|
|
|
|
MAKE=${MAKE:-make}
|
|
force=0
|
|
debug=0
|
|
|
|
# Go to project root.
|
|
cd $(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)
|
|
|
|
php_extra_version=$(grep '^AC_INIT(' configure.ac)
|
|
case "$php_extra_version" in
|
|
*-dev*)
|
|
dev=1
|
|
;;
|
|
*)
|
|
dev=0
|
|
;;
|
|
esac
|
|
|
|
while test $# -gt 0; do
|
|
if test "$1" = "-h" || test "$1" = "--help"; then
|
|
cat << HELP
|
|
PHP buildconf
|
|
|
|
A wrapper around the autoconf and autoheader that generate files for building
|
|
PHP on *nix systems (configure, main/php_config.h.in, aclocal.m4...). The
|
|
configure script is used to customize the PHP build based on the provided
|
|
options and system. PHP releases downloaded from PHP.net already include the
|
|
configure script so installing Autoconf and running buildconf is not needed. For
|
|
the PHP sources from the Git repository, buildconf is used for generating a new
|
|
configure script and required files.
|
|
|
|
SYNOPSIS:
|
|
buildconf [<options>]
|
|
|
|
OPTIONS:
|
|
--force Clean cache and overwrite configure files.
|
|
--debug Display warnings emitted by Autoconf.
|
|
-h, --help Display this help.
|
|
|
|
ENVIRONMENT:
|
|
The following optional variables are supported:
|
|
|
|
MAKE Overrides the path to make tool.
|
|
MAKE=/path/to/make ./buildconf
|
|
PHP_AUTOCONF Overrides the path to autoconf tool.
|
|
PHP_AUTOCONF=/path/to/autoconf ./buildconf
|
|
PHP_AUTOHEADER Overrides the path to autoheader tool.
|
|
PHP_AUTOHEADER=/path/to/autoheader ./buildconf
|
|
HELP
|
|
exit 0
|
|
fi
|
|
|
|
if test "$1" = "--force"; then
|
|
force=1
|
|
fi
|
|
|
|
if test "$1" = "--debug"; then
|
|
debug=1
|
|
fi
|
|
|
|
shift
|
|
done
|
|
|
|
if test "$dev" = "0" -a "$force" = "0"; then
|
|
if test -f "configure"; then
|
|
echo "The configure script has already been built for you. All done."
|
|
echo "Run ./configure to proceed with customizing the PHP build."
|
|
exit 0
|
|
else
|
|
echo "Configure script is missing." >&2
|
|
echo "Run ./buildconf --force to create a configure script." >&2
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
# Check if make exists.
|
|
if ! test -x "$(command -v $MAKE)"; then
|
|
echo "buildconf: make not found." >&2
|
|
echo " You need to have make installed to build PHP." >&2
|
|
exit 1
|
|
fi
|
|
|
|
if test "$force" = "1"; then
|
|
echo "buildconf: Forcing buildconf"
|
|
echo "buildconf: Removing configure caches"
|
|
rm -rf autom4te.cache config.cache
|
|
fi
|
|
|
|
echo "buildconf: Building configure files"
|
|
|
|
# List of *.m4 prerequisites files for the make configure target.
|
|
M4_FILES=$(echo TSRM/*.m4 Zend/*.m4 ext/*/config*.m4 sapi/*/config*.m4)
|
|
|
|
if test "$debug" = "1"; then
|
|
$MAKE -s -f build/build.mk M4_FILES="$M4_FILES" SUPPRESS_WARNINGS=""
|
|
else
|
|
$MAKE -s -f build/build.mk M4_FILES="$M4_FILES"
|
|
fi
|