Refactor undefining PACKAGE_* symbols

Instead of patching configuration headers template generated by
the given tools - autoheader, this moves patching these symbols to
the configure step before creating and invoking the config.status
and before the configuration header file is generated from the
patched template.

Closes GH-4374
This commit is contained in:
Peter Kokot committed 2019-07-11 02:00:51 +02:00
1 parent d63fdced2e
commit a6daded1a4
5 files changed
+23 -7

No files matched your search

+1 -3
View File
@@ -34,9 +34,7 @@ configure: configure.ac $(PHP_M4_FILES)
$(config_h_in): configure
# Explicitly remove target since autoheader does not seem to work correctly
# otherwise (timestamps are not updated). Also disable PACKAGE_* symbols in the
# generated php_config.h.in template.
# otherwise (timestamps are not updated).
@echo rebuilding $@
@rm -f $@
@$(PHP_AUTOHEADER) $(PHP_AUTOCONF_FLAGS)
@sed -e 's/^#undef PACKAGE_[^ ]*/\/\* & \*\//g' < $@ > $@.tmp && mv $@.tmp $@
+16
View File
@@ -2715,3 +2715,19 @@ int main() {
AC_DEFINE_UNQUOTED(AS_TR_CPP([PHP_HAVE_$1_INSTRUCTIONS]),
[$have_ext_instructions], [Whether the compiler supports $1 instructions])
])
dnl
dnl PHP_PATCH_CONFIG_HEADERS([FILE])
dnl
dnl PACKAGE_* symbols are automatically defined by Autoconf. When including
dnl configuration header, warnings about redefined symbols are emitted for such
dnl symbols if they are defined by multiple libraries. This disables all
dnl PACKAGE_* symbols in the generated configuration header template FILE. For
dnl example, main/php_config.h.in for PHP or config.h.in for PHP extensions.
dnl
AC_DEFUN([PHP_PATCH_CONFIG_HEADERS], [
AC_MSG_NOTICE([patching $1])
$SED -e 's/^#undef PACKAGE_[^ ]*/\/\* & \*\//g' < $srcdir/$1 \
> $srcdir/$1.tmp && mv $srcdir/$1.tmp $srcdir/$1
])
+4
View File
@@ -27,6 +27,7 @@ PHP_CONFIG_NICE(config.nice)
PHP_CANONICAL_HOST_TARGET
AC_CONFIG_HEADERS([main/php_config.h])
AH_TOP([
#ifndef PHP_CONFIG_H
#define PHP_CONFIG_H
@@ -1585,6 +1586,9 @@ $PHP_OUTPUT_FILES"
dnl Generate build files.
AC_CONFIG_FILES([$ALL_OUTPUT_FILES])
AC_CONFIG_COMMANDS_PRE([PHP_PATCH_CONFIG_HEADERS([main/php_config.h.in])])
AC_CONFIG_COMMANDS([default],[
cat <<X
-4
View File
@@ -163,10 +163,6 @@ phpize_autotools()
$PHP_AUTOCONF || exit 1
$PHP_AUTOHEADER || exit 1
# Disable PACKAGE_* symbols in config.h.in
$SED -e 's/^#undef PACKAGE_[^ ]*/\/\* & \*\//g' < config.h.in > config.h.in.tmp
mv config.h.in.tmp config.h.in
}
# Main script
+2
View File
@@ -210,4 +210,6 @@ test -d modules || $php_shtool mkdir modules
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_COMMANDS_PRE([PHP_PATCH_CONFIG_HEADERS([config.h.in])])
AC_OUTPUT