mirror of
https://github.com/bdnugget/php-src.git
synced 2026-11-07 09:17:29 +00:00
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:
1 parent
d63fdced2e
commit
a6daded1a4
5 files changed
+23
-7
No files matched your search
+1
-3
@@ -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 $@
|
||||
@@ -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
|
||||
])
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
Reference in new issue
Block a user