@@ -23,6 +23,32 @@ m4_ifdef(
23
23
[ AC_MSG_ERROR ( [ Please install pkgconf's m4 macro package and re-run autoreconf] ) ]
24
24
) dnl
25
25
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
+
26
52
AC_SUBST ( BASECPPFLAGS )
27
53
if test "$srcdir" != . -a "$srcdir" != "$(pwd)"; then
28
54
# If we're building out-of-tree, we need to make sure the following
@@ -3174,37 +3200,29 @@ PKG_CHECK_MODULES(
3174
3200
)
3175
3201
AS_VAR_APPEND ( [ LIBSQLITE3_CFLAGS] , [ ' -I$(srcdir)/Modules/_sqlite'] )
3176
3202
3203
+ WITH_SAVE_ENV(
3177
3204
dnl 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
+ )
3208
3226
3209
3227
# Check for support for loadable sqlite extensions
3210
3228
AC_MSG_CHECKING ( for -- enable-loadable-sqlite-extensions )
0 commit comments