mirror of
https://github.com/php/php-src.git
synced 2024-11-23 18:04:36 +08:00
2fe9208ee3
configure.ac was introduced in 2001 with automake-1.15 and autoconf-2.50 to replace the file named configure.in. Autotools is preparing to remove configure.in in Automake 2.0. All new software should be using configure.ac. This also fixes Bug #69770 where extensions are creating configure.in Signed-off-by: Brian Evans <grknight@gentoo.org>
203 lines
4.6 KiB
Plaintext
203 lines
4.6 KiB
Plaintext
dnl This file becomes configure.ac for self-contained extensions.
|
|
|
|
AC_PREREQ(2.59)
|
|
AC_INIT(config.m4)
|
|
ifdef([AC_PRESERVE_HELP_ORDER], [AC_PRESERVE_HELP_ORDER], [])
|
|
|
|
PHP_CONFIG_NICE(config.nice)
|
|
|
|
dnl
|
|
AC_DEFUN([PHP_EXT_BUILDDIR],[.])dnl
|
|
AC_DEFUN([PHP_EXT_DIR],[""])dnl
|
|
AC_DEFUN([PHP_EXT_SRCDIR],[$abs_srcdir])dnl
|
|
AC_DEFUN([PHP_ALWAYS_SHARED],[
|
|
ext_output="yes, shared"
|
|
ext_shared=yes
|
|
test "[$]$1" = "no" && $1=yes
|
|
])dnl
|
|
dnl
|
|
|
|
test -z "$CFLAGS" && auto_cflags=1
|
|
|
|
abs_srcdir=`(cd $srcdir && pwd)`
|
|
abs_builddir=`pwd`
|
|
|
|
AC_PROG_CC([cc gcc])
|
|
PHP_DETECT_ICC
|
|
PHP_DETECT_SUNCC
|
|
AC_PROG_CC_C_O
|
|
|
|
dnl Support systems with system libraries in e.g. /usr/lib64
|
|
PHP_ARG_WITH(libdir, for system library directory,
|
|
[ --with-libdir=NAME Look for libraries in .../NAME rather than .../lib], lib, no)
|
|
|
|
PHP_RUNPATH_SWITCH
|
|
PHP_SHLIB_SUFFIX_NAMES
|
|
|
|
dnl Find php-config script
|
|
PHP_ARG_WITH(php-config,,
|
|
[ --with-php-config=PATH Path to php-config [php-config]], php-config, no)
|
|
|
|
dnl For BC
|
|
PHP_CONFIG=$PHP_PHP_CONFIG
|
|
prefix=`$PHP_CONFIG --prefix 2>/dev/null`
|
|
phpincludedir=`$PHP_CONFIG --include-dir 2>/dev/null`
|
|
INCLUDES=`$PHP_CONFIG --includes 2>/dev/null`
|
|
EXTENSION_DIR=`$PHP_CONFIG --extension-dir 2>/dev/null`
|
|
PHP_EXECUTABLE=`$PHP_CONFIG --php-binary 2>/dev/null`
|
|
|
|
if test -z "$prefix"; then
|
|
AC_MSG_ERROR([Cannot find php-config. Please use --with-php-config=PATH])
|
|
fi
|
|
|
|
php_shtool=$srcdir/build/shtool
|
|
PHP_INIT_BUILD_SYSTEM
|
|
|
|
AC_MSG_CHECKING([for PHP prefix])
|
|
AC_MSG_RESULT([$prefix])
|
|
AC_MSG_CHECKING([for PHP includes])
|
|
AC_MSG_RESULT([$INCLUDES])
|
|
AC_MSG_CHECKING([for PHP extension directory])
|
|
AC_MSG_RESULT([$EXTENSION_DIR])
|
|
AC_MSG_CHECKING([for PHP installed headers prefix])
|
|
AC_MSG_RESULT([$phpincludedir])
|
|
|
|
dnl Checks for PHP_DEBUG / ZEND_DEBUG / ZTS
|
|
AC_MSG_CHECKING([if debug is enabled])
|
|
old_CPPFLAGS=$CPPFLAGS
|
|
CPPFLAGS="-I$phpincludedir"
|
|
AC_EGREP_CPP(php_debug_is_enabled,[
|
|
#include <main/php_config.h>
|
|
#if ZEND_DEBUG
|
|
php_debug_is_enabled
|
|
#endif
|
|
],[
|
|
PHP_DEBUG=yes
|
|
],[
|
|
PHP_DEBUG=no
|
|
])
|
|
CPPFLAGS=$old_CPPFLAGS
|
|
AC_MSG_RESULT([$PHP_DEBUG])
|
|
|
|
AC_MSG_CHECKING([if zts is enabled])
|
|
old_CPPFLAGS=$CPPFLAGS
|
|
CPPFLAGS="-I$phpincludedir"
|
|
AC_EGREP_CPP(php_zts_is_enabled,[
|
|
#include <main/php_config.h>
|
|
#if ZTS
|
|
php_zts_is_enabled
|
|
#endif
|
|
],[
|
|
PHP_THREAD_SAFETY=yes
|
|
],[
|
|
PHP_THREAD_SAFETY=no
|
|
])
|
|
CPPFLAGS=$old_CPPFLAGS
|
|
AC_MSG_RESULT([$PHP_THREAD_SAFETY])
|
|
|
|
dnl Support for building and testing Zend extensions
|
|
ZEND_EXT_TYPE="zend_extension"
|
|
PHP_SUBST(ZEND_EXT_TYPE)
|
|
|
|
dnl Discard optimization flags when debugging is enabled
|
|
if test "$PHP_DEBUG" = "yes"; then
|
|
PHP_DEBUG=1
|
|
ZEND_DEBUG=yes
|
|
changequote({,})
|
|
CFLAGS=`echo "$CFLAGS" | $SED -e 's/-O[0-9s]*//g'`
|
|
CXXFLAGS=`echo "$CXXFLAGS" | $SED -e 's/-O[0-9s]*//g'`
|
|
changequote([,])
|
|
dnl add -O0 only if GCC or ICC is used
|
|
if test "$GCC" = "yes" || test "$ICC" = "yes"; then
|
|
CFLAGS="$CFLAGS -O0"
|
|
CXXFLAGS="$CXXFLAGS -g -O0"
|
|
fi
|
|
if test "$SUNCC" = "yes"; then
|
|
if test -n "$auto_cflags"; then
|
|
CFLAGS="-g"
|
|
CXXFLAGS="-g"
|
|
else
|
|
CFLAGS="$CFLAGS -g"
|
|
CXXFLAGS="$CFLAGS -g"
|
|
fi
|
|
fi
|
|
else
|
|
PHP_DEBUG=0
|
|
ZEND_DEBUG=no
|
|
fi
|
|
|
|
dnl Always shared
|
|
PHP_BUILD_SHARED
|
|
|
|
dnl Required programs
|
|
PHP_PROG_RE2C
|
|
PHP_PROG_AWK
|
|
|
|
sinclude(config.m4)
|
|
|
|
enable_static=no
|
|
enable_shared=yes
|
|
|
|
dnl Only allow AC_PROG_CXX and AC_PROG_CXXCPP if they are explicitly called (by PHP_REQUIRE_CXX).
|
|
dnl Otherwise AC_PROG_LIBTOOL fails if there is no working C++ compiler.
|
|
AC_PROVIDE_IFELSE([PHP_REQUIRE_CXX], [], [
|
|
undefine([AC_PROG_CXX])
|
|
AC_DEFUN([AC_PROG_CXX], [])
|
|
undefine([AC_PROG_CXXCPP])
|
|
AC_DEFUN([AC_PROG_CXXCPP], [php_prog_cxxcpp=disabled])
|
|
])
|
|
AC_PROG_LIBTOOL
|
|
|
|
all_targets='$(PHP_MODULES) $(PHP_ZEND_EX)'
|
|
install_targets="install-modules install-headers"
|
|
phplibdir="`pwd`/modules"
|
|
CPPFLAGS="$CPPFLAGS -DHAVE_CONFIG_H"
|
|
CFLAGS_CLEAN='$(CFLAGS)'
|
|
CXXFLAGS_CLEAN='$(CXXFLAGS)'
|
|
|
|
test "$prefix" = "NONE" && prefix="/usr/local"
|
|
test "$exec_prefix" = "NONE" && exec_prefix='$(prefix)'
|
|
|
|
PHP_SUBST(PHP_MODULES)
|
|
PHP_SUBST(PHP_ZEND_EX)
|
|
|
|
PHP_SUBST(all_targets)
|
|
PHP_SUBST(install_targets)
|
|
|
|
PHP_SUBST(prefix)
|
|
PHP_SUBST(exec_prefix)
|
|
PHP_SUBST(libdir)
|
|
PHP_SUBST(prefix)
|
|
PHP_SUBST(phplibdir)
|
|
PHP_SUBST(phpincludedir)
|
|
|
|
PHP_SUBST(CC)
|
|
PHP_SUBST(CFLAGS)
|
|
PHP_SUBST(CFLAGS_CLEAN)
|
|
PHP_SUBST(CPP)
|
|
PHP_SUBST(CPPFLAGS)
|
|
PHP_SUBST(CXX)
|
|
PHP_SUBST(CXXFLAGS)
|
|
PHP_SUBST(CXXFLAGS_CLEAN)
|
|
PHP_SUBST(EXTENSION_DIR)
|
|
PHP_SUBST(PHP_EXECUTABLE)
|
|
PHP_SUBST(EXTRA_LDFLAGS)
|
|
PHP_SUBST(EXTRA_LIBS)
|
|
PHP_SUBST(INCLUDES)
|
|
PHP_SUBST(LFLAGS)
|
|
PHP_SUBST(LDFLAGS)
|
|
PHP_SUBST(SHARED_LIBTOOL)
|
|
PHP_SUBST(LIBTOOL)
|
|
PHP_SUBST(SHELL)
|
|
PHP_SUBST(INSTALL_HEADERS)
|
|
|
|
PHP_GEN_BUILD_DIRS
|
|
PHP_GEN_GLOBAL_MAKEFILE
|
|
|
|
test -d modules || $php_shtool mkdir modules
|
|
touch .deps
|
|
|
|
AC_CONFIG_HEADER(config.h)
|
|
|
|
AC_OUTPUT()
|