@@ -23,6 +23,32 @@ m4_ifdef(
2323 [ AC_MSG_ERROR ( [ Please install pkgconf's m4 macro package and re-run autoreconf] ) ]
2424) dnl
2525
26+ dnl Helpers for saving and restoring environment variables:
27+ dnl - _SAVE_VAR([VAR]) Helper for SAVE_ENV; stores VAR as save_VAR
28+ dnl - _RESTORE_VAR([VAR]) Helper for RESTORE_ENV; restores VAR from save_VAR
29+ dnl - SAVE_ENV Saves CFLAGS, LDFLAGS, LIBS, and CPPFLAGS
30+ dnl - RESTORE_ENV Restores CFLAGS, LDFLAGS, LIBS, and CPPFLAGS
31+ dnl - WITH_SAVE_ENV([SCRIPT]) Runs SCRIPT wrapped with SAVE_ENV/RESTORE_ENV
32+ AC_DEFUN ( [ _SAVE_VAR] , [ AS_VAR_COPY ( [ save_] [ $1 ] , [ $1 ] ) ] ) dnl
33+ AC_DEFUN ( [ _RESTORE_VAR] , [ AS_VAR_COPY ( [ $1 ] , [ save_] [ $1 ] ) ] ) dnl
34+ AC_DEFUN ( [ SAVE_ENV] ,
35+ [ _SAVE_VAR([ CFLAGS] )]
36+ [ _SAVE_VAR([ CPPFLAGS] )]
37+ [ _SAVE_VAR([ LDFLAGS] )]
38+ [ _SAVE_VAR([ LIBS] )]
39+ ) dnl
40+ AC_DEFUN ( [ RESTORE_ENV] ,
41+ [ _RESTORE_VAR([ CFLAGS] )]
42+ [ _RESTORE_VAR([ CPPFLAGS] )]
43+ [ _RESTORE_VAR([ LDFLAGS] )]
44+ [ _RESTORE_VAR([ LIBS] )]
45+ ) dnl
46+ AC_DEFUN ( [ WITH_SAVE_ENV] ,
47+ [ SAVE_ENV]
48+ [ $1 ]
49+ [ RESTORE_ENV]
50+ ) dnl
51+
2652AC_SUBST ( BASECPPFLAGS )
2753if test "$srcdir" != . -a "$srcdir" != "$(pwd)"; then
2854 # If we're building out-of-tree, we need to make sure the following
@@ -3174,37 +3200,29 @@ PKG_CHECK_MODULES(
31743200)
31753201AS_VAR_APPEND ( [ LIBSQLITE3_CFLAGS] , [ ' -I$(srcdir)/Modules/_sqlite'] )
31763202
3203+ WITH_SAVE_ENV(
31773204dnl bpo-45774/GH-29507: The CPP check in AC_CHECK_HEADER can fail on FreeBSD,
3178- dnl hence CPPFLAGS instead of CFLAGS. We still need to save CFLAGS, because it
3179- dnl is touched by AC_CHECK_HEADER.
3180- AS_VAR_COPY ( [ save_CFLAGS] , [ CFLAGS] )
3181- AS_VAR_COPY ( [ save_CPPFLAGS] , [ CPPFLAGS] )
3182- AS_VAR_COPY ( [ save_LDFLAGS] , [ LDFLAGS] )
3183- AS_VAR_COPY ( [ save_LIBS] , [ LIBS] )
3184- CPPFLAGS="$LIBSQLITE3_CFLAGS $CFLAGS"
3185- LDFLAGS="$LIBSQLITE3_LIBS $LDFLAGS"
3186-
3187- AC_CHECK_HEADER ( [ sqlite3.h] , [
3188- AC_CHECK_LIB ( [ sqlite3] , [ sqlite3_open_v2] , [
3189- have_sqlite3=yes
3190- AC_COMPILE_IFELSE ( [
3191- AC_LANG_PROGRAM ( [
3192- #include <sqlite3.h>
3193- #if SQLITE_VERSION_NUMBER < 3007015
3194- # error "SQLite 3.7.15 or higher required"
3195- #endif
3196- ] , [ ] )
3197- ] , [ have_supported_sqlite3=yes] , [ have_supported_sqlite3=no] )
3198- ] , [ have_sqlite3=no] )
3199- AC_CHECK_LIB ( [ sqlite3] , [ sqlite3_load_extension] ,
3200- [ have_sqlite3_load_extension=yes] ,
3201- [ have_sqlite3_load_extension=no] )
3202- ] )
3203-
3204- AS_VAR_COPY ( [ CFLAGS] , [ save_CFLAGS] )
3205- AS_VAR_COPY ( [ CPPFLAGS] , [ save_CPPFLAGS] )
3206- AS_VAR_COPY ( [ LDFLAGS] , [ save_LDFLAGS] )
3207- AS_VAR_COPY ( [ LIBS] , [ save_LIBS] )
3205+ dnl hence CPPFLAGS instead of CFLAGS.
3206+ CPPFLAGS="$LIBSQLITE3_CFLAGS $CFLAGS"
3207+ LDFLAGS="$LIBSQLITE3_LIBS $LDFLAGS"
3208+
3209+ AC_CHECK_HEADER ( [ sqlite3.h] , [
3210+ AC_CHECK_LIB ( [ sqlite3] , [ sqlite3_open_v2] , [
3211+ have_sqlite3=yes
3212+ AC_COMPILE_IFELSE ( [
3213+ AC_LANG_PROGRAM ( [
3214+ #include <sqlite3.h>
3215+ #if SQLITE_VERSION_NUMBER < 3007015
3216+ # error "SQLite 3.7.15 or higher required"
3217+ #endif
3218+ ] , [ ] )
3219+ ] , [ have_supported_sqlite3=yes] , [ have_supported_sqlite3=no] )
3220+ ] , [ have_sqlite3=no] )
3221+ AC_CHECK_LIB ( [ sqlite3] , [ sqlite3_load_extension] ,
3222+ [ have_sqlite3_load_extension=yes] ,
3223+ [ have_sqlite3_load_extension=no] )
3224+ ] )
3225+ )
32083226
32093227# Check for support for loadable sqlite extensions
32103228AC_MSG_CHECKING ( for -- enable-loadable-sqlite-extensions )
0 commit comments