diff options
author | Peter Kokot <peterkokot@gmail.com> | 2019-02-16 20:29:42 +0100 |
---|---|---|
committer | Peter Kokot <peterkokot@gmail.com> | 2019-03-16 23:43:25 +0100 |
commit | 78ab79b9164420679da7aba1f7195335d656afda (patch) | |
tree | 082f963b8a4226479531811fb46f4bdc9e11d53b /buildconf | |
parent | 2619b138c0f3fe501f2b5b3924244237f02b7042 (diff) | |
download | php-git-78ab79b9164420679da7aba1f7195335d656afda.tar.gz |
Enhance the buildconf script
Changes:
- Added a short introduction what this script does
- Added usually the expected -h and --help options with explanation
for a reason for this script and its usage.
- Messages changed a bit so the PHP installation procedure becomes
simpler without needing to constantly remind the reader what to run
and what not in the documentations and installation instructions.
- cd into current working directory of the buildconf (this enables
running the script from other locations and inside other scripts).
- check if make exists
Diffstat (limited to 'buildconf')
-rwxr-xr-x | buildconf | 84 |
1 files changed, 69 insertions, 15 deletions
@@ -1,6 +1,15 @@ #!/bin/sh +# +# A wrapper around Autoconf that generates files to build PHP on *nix systems. -eval `grep '^PHP_EXTRA_VERSION=' configure.ac` +MAKE=${MAKE:-make} +force=0 +debug=0 + +# Go to project root. +cd $(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P) + +eval $(grep '^PHP_EXTRA_VERSION=' configure.ac) case "$PHP_EXTRA_VERSION" in *-dev) dev=1 @@ -10,37 +19,82 @@ case "$PHP_EXTRA_VERSION" in ;; esac -devok=0 -debug=no - 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 - devok=1 - echo "Forcing buildconf" + force=1 fi if test "$1" = "--debug"; then - debug=yes + debug=1 fi shift done -if test "$dev" = "0" -a "$devok" = "0"; then - echo "You should not run buildconf in a release package." >&2 - echo "use buildconf --force to override this check." >&2 +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 "$devok" = "1"; then - echo "Removing configure caches" +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" + rm -f generated_lists -if test "$debug" = "yes"; then - ${MAKE:-make} -s -f build/build.mk SUPPRESS_WARNINGS="" +if test "$debug" = "1"; then + $MAKE -s -f build/build.mk SUPPRESS_WARNINGS="" else - ${MAKE:-make} -s -f build/build.mk + $MAKE -s -f build/build.mk fi |