diff --git a/aclocal.m4 b/aclocal.m4 index bee01f409b..bae4eb7b8f 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -288,9 +288,13 @@ AS_VAR_COPY([$1], [pkg_cv_][$1]) AS_VAR_IF([$1], [""], [$5], [$4])dnl ])dnl PKG_CHECK_VAR +m4_include([m4/ax_check_compile_flag.m4]) +m4_include([m4/ax_check_link_flag.m4]) m4_include([m4/ax_check_openssl.m4]) m4_include([m4/ax_posix_shell.m4]) m4_include([m4/ax_pthread.m4]) +m4_include([m4/ax_restore_flags.m4]) +m4_include([m4/ax_save_flags.m4]) m4_include([m4/libtool.m4]) m4_include([m4/ltoptions.m4]) m4_include([m4/ltsugar.m4]) diff --git a/configure b/configure index b097723ece..9c2a3db5ed 100755 --- a/configure +++ b/configure @@ -12195,21 +12195,21 @@ if test "${enable_developer+set}" = set; then : enableval=$enable_developer; fi + XTARGETS= -case "$enable_developer" in -yes) - STD_CDEFINES="$STD_CDEFINES -DISC_MEM_DEFAULTFILL=1 -DISC_LIST_CHECKINIT=1" - test "${enable_fixed_rrset+set}" = set || enable_fixed_rrset=yes - test "${enable_querytrace+set}" = set || enable_querytrace=yes - test "${with_cmocka+set}" = set || with_cmocka=yes - test "${with_dlz_filesystem+set}" = set || with_dlz_filesystem=yes - test "${enable_symtable+set}" = set || enable_symtable=all - test "${enable_warn_error+set}" = set || enable_warn_error=yes - test "${enable_warn_shadow+set}" = set || enable_warn_shadow=yes - test "${with_zlib+set}" = set || with_zlib=yes - XTARGETS='${XTARGETS}' - ;; -esac +if test "$enable_developer" = "yes"; then : + STD_CDEFINES="$STD_CDEFINES -DISC_MEM_DEFAULTFILL=1 -DISC_LIST_CHECKINIT=1" + test "${enable_fixed_rrset+set}" = set || enable_fixed_rrset=yes + test "${enable_querytrace+set}" = set || enable_querytrace=yes + test "${with_cmocka+set}" = set || with_cmocka=yes + test "${with_dlz_filesystem+set}" = set || with_dlz_filesystem=yes + test "${enable_symtable+set}" = set || enable_symtable=all + test "${enable_warn_error+set}" = set || enable_warn_error=yes + test "${enable_warn_shadow+set}" = set || enable_warn_shadow=yes + test "${with_zlib+set}" = set || with_zlib=yes + XTARGETS='${XTARGETS}' + +fi # Check whether --enable-fuzzing was given. @@ -15841,9 +15841,77 @@ rm -f core conftest.err conftest.$ac_objext \ -save_CFLAGS="$CFLAGS" -save_LIBS="$LIBS" -save_LDFLAGS="$LDFLAGS" + + + CCASFLAGS_openssl_ax_save_flags=$CCASFLAGS + + + + CFLAGS_openssl_ax_save_flags=$CFLAGS + + + + CPPFLAGS_openssl_ax_save_flags=$CPPFLAGS + + + + CXXFLAGS_openssl_ax_save_flags=$CXXFLAGS + + + + ERLCFLAGS_openssl_ax_save_flags=$ERLCFLAGS + + + + FCFLAGS_openssl_ax_save_flags=$FCFLAGS + + + + FCLIBS_openssl_ax_save_flags=$FCLIBS + + + + FFLAGS_openssl_ax_save_flags=$FFLAGS + + + + FLIBS_openssl_ax_save_flags=$FLIBS + + + + GCJFLAGS_openssl_ax_save_flags=$GCJFLAGS + + + + JAVACFLAGS_openssl_ax_save_flags=$JAVACFLAGS + + + + LDFLAGS_openssl_ax_save_flags=$LDFLAGS + + + + LIBS_openssl_ax_save_flags=$LIBS + + + + OBJCFLAGS_openssl_ax_save_flags=$OBJCFLAGS + + + + OBJCXXFLAGS_openssl_ax_save_flags=$OBJCXXFLAGS + + + + UPCFLAGS_openssl_ax_save_flags=$UPCFLAGS + + + + VALAFLAGS_openssl_ax_save_flags=$VALAFLAGS + + + + CFLAGS="$CFLAGS $OPENSSL_INCLUDES" LIBS="$LIBS $OPENSSL_LIBS" LDFLAGS="$LDFLAGS $OPENSSL_LDFLAGS" @@ -16169,9 +16237,59 @@ $as_echo "no" >&6; } ;; #( ;; esac -CFLAGS="$save_CFLAGS" -LIBS="$save_LIBS" -LDFLAGS="$save_LDFLAGS" + + CCASFLAGS=$CCASFLAGS_openssl_ax_save_flags + + + CFLAGS=$CFLAGS_openssl_ax_save_flags + + + CPPFLAGS=$CPPFLAGS_openssl_ax_save_flags + + + CXXFLAGS=$CXXFLAGS_openssl_ax_save_flags + + + ERLCFLAGS=$ERLCFLAGS_openssl_ax_save_flags + + + FCFLAGS=$FCFLAGS_openssl_ax_save_flags + + + FCLIBS=$FCLIBS_openssl_ax_save_flags + + + FFLAGS=$FFLAGS_openssl_ax_save_flags + + + FLIBS=$FLIBS_openssl_ax_save_flags + + + GCJFLAGS=$GCJFLAGS_openssl_ax_save_flags + + + JAVACFLAGS=$JAVACFLAGS_openssl_ax_save_flags + + + LDFLAGS=$LDFLAGS_openssl_ax_save_flags + + + LIBS=$LIBS_openssl_ax_save_flags + + + OBJCFLAGS=$OBJCFLAGS_openssl_ax_save_flags + + + OBJCXXFLAGS=$OBJCXXFLAGS_openssl_ax_save_flags + + + UPCFLAGS=$UPCFLAGS_openssl_ax_save_flags + + + VALAFLAGS=$VALAFLAGS_openssl_ax_save_flags + + + @@ -17386,15 +17504,32 @@ fi # Additional compiler settings. # MKDEPCC="$CC" + MKDEPCFLAGS="-M" +case $host in #( + *-solaris*) : -if test "X$GCC" = "Xyes"; then - STD_CWARNINGS="$STD_CWARNINGS -W -Wall -Wmissing-prototypes -Wcast-qual -Wwrite-strings -Wformat -Wpointer-arith" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if \"$CC\" supports -fno-strict-aliasing" >&5 -$as_echo_n "checking if \"$CC\" supports -fno-strict-aliasing... " >&6; } - SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -Werror -fno-strict-aliasing" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + if test "$GCC" != "yes"; then : + MKDEPCFLAGS="-xM" +fi ;; #( + *) : + ;; +esac + +if test "$GCC" = "yes"; then : + STD_CWARNINGS="$STD_CWARNINGS -W -Wall -Wmissing-prototypes -Wcast-qual -Wwrite-strings -Wformat -Wpointer-arith" + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fno-strict-aliasing" >&5 +$as_echo_n "checking whether C compiler accepts -fno-strict-aliasing... " >&6; } +if ${ax_cv_check_cflags___fno_strict_aliasing+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -fno-strict-aliasing" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -17406,28 +17541,30 @@ main () } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - FNOSTRICTALIASING=yes + ax_cv_check_cflags___fno_strict_aliasing=yes else - FNOSTRICTALIASING=no + ax_cv_check_cflags___fno_strict_aliasing=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS="$SAVE_CFLAGS" - if test "yes" = "$FNOSTRICTALIASING"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - STD_CWARNINGS="$STD_CWARNINGS -fno-strict-aliasing" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - # - # turn off delete null pointer checks - # - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if \"$CC\" supports -fno-delete-null-pointer-checks" >&5 -$as_echo_n "checking if \"$CC\" supports -fno-delete-null-pointer-checks... " >&6; } - SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -Werror -fno-delete-null-pointer-checks" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fno_strict_aliasing" >&5 +$as_echo "$ax_cv_check_cflags___fno_strict_aliasing" >&6; } +if test "x$ax_cv_check_cflags___fno_strict_aliasing" = xyes; then : + STD_CWARNINGS="$STD_CWARNINGS -fno-strict-aliasing" +else + : +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fno-delete-null-pointer-checks" >&5 +$as_echo_n "checking whether C compiler accepts -fno-delete-null-pointer-checks... " >&6; } +if ${ax_cv_check_cflags___fno_delete_null_pointer_checks+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -fno-delete-null-pointer-checks" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -17439,32 +17576,94 @@ main () } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - FNODELETENULLPOINTERCHECKS=yes + ax_cv_check_cflags___fno_delete_null_pointer_checks=yes else - FNODELETENULLPOINTERCHECKS=no + ax_cv_check_cflags___fno_delete_null_pointer_checks=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS="$SAVE_CFLAGS" - if test "yes" = "$FNODELETENULLPOINTERCHECKS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - STD_CWARNINGS="$STD_CWARNINGS -fno-delete-null-pointer-checks" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - if test "X$enable_warn_shadow" = Xyes; then - STD_CWARNINGS="$STD_CWARNINGS -Wshadow" - fi - if test "X$enable_warn_error" = Xyes; then - STD_CWARNINGS="$STD_CWARNINGS -Werror" - fi + CFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fno_delete_null_pointer_checks" >&5 +$as_echo "$ax_cv_check_cflags___fno_delete_null_pointer_checks" >&6; } +if test "x$ax_cv_check_cflags___fno_delete_null_pointer_checks" = xyes; then : + STC_CWARNINGS="$STD_CWARNINGS -fno-delete-null-pointer-checks" else - case $host in - *-solaris*) - MKDEPCFLAGS="-xM" - ;; - esac + : +fi + +if test "$enable_warn_shadow" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Wshadow" >&5 +$as_echo_n "checking whether C compiler accepts -Wshadow... " >&6; } +if ${ax_cv_check_cflags___Wshadow+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -Wshadow" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ax_cv_check_cflags___Wshadow=yes +else + ax_cv_check_cflags___Wshadow=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___Wshadow" >&5 +$as_echo "$ax_cv_check_cflags___Wshadow" >&6; } +if test "x$ax_cv_check_cflags___Wshadow" = xyes; then : + STD_CWARNINGS="$STD_CWARNINGS -Wshadow" +else + : +fi + +fi +if test "$enable_warn_error" = "yes"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Werror" >&5 +$as_echo_n "checking whether C compiler accepts -Werror... " >&6; } +if ${ax_cv_check_cflags___Werror+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -Werror" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ax_cv_check_cflags___Werror=yes +else + ax_cv_check_cflags___Werror=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___Werror" >&5 +$as_echo "$ax_cv_check_cflags___Werror" >&6; } +if test "x$ax_cv_check_cflags___Werror" = xyes; then : + STD_CWARNINGS="$STD_CWARNINGS -Werror" +else + : +fi + fi @@ -18123,7 +18322,76 @@ fi done - save_LIBS="$LIBS" + + + CCASFLAGS_cap_ax_save_flags=$CCASFLAGS + + + + CFLAGS_cap_ax_save_flags=$CFLAGS + + + + CPPFLAGS_cap_ax_save_flags=$CPPFLAGS + + + + CXXFLAGS_cap_ax_save_flags=$CXXFLAGS + + + + ERLCFLAGS_cap_ax_save_flags=$ERLCFLAGS + + + + FCFLAGS_cap_ax_save_flags=$FCFLAGS + + + + FCLIBS_cap_ax_save_flags=$FCLIBS + + + + FFLAGS_cap_ax_save_flags=$FFLAGS + + + + FLIBS_cap_ax_save_flags=$FLIBS + + + + GCJFLAGS_cap_ax_save_flags=$GCJFLAGS + + + + JAVACFLAGS_cap_ax_save_flags=$JAVACFLAGS + + + + LDFLAGS_cap_ax_save_flags=$LDFLAGS + + + + LIBS_cap_ax_save_flags=$LIBS + + + + OBJCFLAGS_cap_ax_save_flags=$OBJCFLAGS + + + + OBJCXXFLAGS_cap_ax_save_flags=$OBJCXXFLAGS + + + + UPCFLAGS_cap_ax_save_flags=$UPCFLAGS + + + + VALAFLAGS_cap_ax_save_flags=$VALAFLAGS + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing cap_set_proc" >&5 $as_echo_n "checking for library containing cap_set_proc... " >&6; } if ${ac_cv_search_cap_set_proc+:} false; then : @@ -18182,7 +18450,59 @@ else as_fn_error $? "libcap is required for Linux capabilities support. Either install libcap or use --disable-linux-caps." "$LINENO" 5 fi - LIBS="$save_LIBS" + + CCASFLAGS=$CCASFLAGS_cap_ax_save_flags + + + CFLAGS=$CFLAGS_cap_ax_save_flags + + + CPPFLAGS=$CPPFLAGS_cap_ax_save_flags + + + CXXFLAGS=$CXXFLAGS_cap_ax_save_flags + + + ERLCFLAGS=$ERLCFLAGS_cap_ax_save_flags + + + FCFLAGS=$FCFLAGS_cap_ax_save_flags + + + FCLIBS=$FCLIBS_cap_ax_save_flags + + + FFLAGS=$FFLAGS_cap_ax_save_flags + + + FLIBS=$FLIBS_cap_ax_save_flags + + + GCJFLAGS=$GCJFLAGS_cap_ax_save_flags + + + JAVACFLAGS=$JAVACFLAGS_cap_ax_save_flags + + + LDFLAGS=$LDFLAGS_cap_ax_save_flags + + + LIBS=$LIBS_cap_ax_save_flags + + + OBJCFLAGS=$OBJCFLAGS_cap_ax_save_flags + + + OBJCXXFLAGS=$OBJCXXFLAGS_cap_ax_save_flags + + + UPCFLAGS=$UPCFLAGS_cap_ax_save_flags + + + VALAFLAGS=$VALAFLAGS_cap_ax_save_flags + + + else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -18355,7 +18675,76 @@ if ac_fn_c_try_link "$LINENO"; then : $as_echo "no" >&6; } else ISC_ATOMIC_LIBS="-latomic" - save_LIBS="$LIBS" + + + CCASFLAGS_atomic_ax_save_flags=$CCASFLAGS + + + + CFLAGS_atomic_ax_save_flags=$CFLAGS + + + + CPPFLAGS_atomic_ax_save_flags=$CPPFLAGS + + + + CXXFLAGS_atomic_ax_save_flags=$CXXFLAGS + + + + ERLCFLAGS_atomic_ax_save_flags=$ERLCFLAGS + + + + FCFLAGS_atomic_ax_save_flags=$FCFLAGS + + + + FCLIBS_atomic_ax_save_flags=$FCLIBS + + + + FFLAGS_atomic_ax_save_flags=$FFLAGS + + + + FLIBS_atomic_ax_save_flags=$FLIBS + + + + GCJFLAGS_atomic_ax_save_flags=$GCJFLAGS + + + + JAVACFLAGS_atomic_ax_save_flags=$JAVACFLAGS + + + + LDFLAGS_atomic_ax_save_flags=$LDFLAGS + + + + LIBS_atomic_ax_save_flags=$LIBS + + + + OBJCFLAGS_atomic_ax_save_flags=$OBJCFLAGS + + + + OBJCXXFLAGS_atomic_ax_save_flags=$OBJCXXFLAGS + + + + UPCFLAGS_atomic_ax_save_flags=$UPCFLAGS + + + + VALAFLAGS_atomic_ax_save_flags=$VALAFLAGS + + + LIBS="$LIBS $ISC_ATOMIC_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -18380,7 +18769,59 @@ See \`config.log' for more details" "$LINENO" 5; } fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - LIBS="$save_LIBS" + + CCASFLAGS=$CCASFLAGS_atomic_ax_save_flags + + + CFLAGS=$CFLAGS_atomic_ax_save_flags + + + CPPFLAGS=$CPPFLAGS_atomic_ax_save_flags + + + CXXFLAGS=$CXXFLAGS_atomic_ax_save_flags + + + ERLCFLAGS=$ERLCFLAGS_atomic_ax_save_flags + + + FCFLAGS=$FCFLAGS_atomic_ax_save_flags + + + FCLIBS=$FCLIBS_atomic_ax_save_flags + + + FFLAGS=$FFLAGS_atomic_ax_save_flags + + + FLIBS=$FLIBS_atomic_ax_save_flags + + + GCJFLAGS=$GCJFLAGS_atomic_ax_save_flags + + + JAVACFLAGS=$JAVACFLAGS_atomic_ax_save_flags + + + LDFLAGS=$LDFLAGS_atomic_ax_save_flags + + + LIBS=$LIBS_atomic_ax_save_flags + + + OBJCFLAGS=$OBJCFLAGS_atomic_ax_save_flags + + + OBJCXXFLAGS=$OBJCXXFLAGS_atomic_ax_save_flags + + + UPCFLAGS=$UPCFLAGS_atomic_ax_save_flags + + + VALAFLAGS=$VALAFLAGS_atomic_ax_save_flags + + + fi rm -f core conftest.err conftest.$ac_objext \ @@ -18434,7 +18875,76 @@ if ac_fn_c_try_link "$LINENO"; then : $as_echo "no" >&6; } else ISC_ATOMIC_LIBS="-latomic" - save_LIBS="$LIBS" + + + CCASFLAGS_atomic_ax_save_flags=$CCASFLAGS + + + + CFLAGS_atomic_ax_save_flags=$CFLAGS + + + + CPPFLAGS_atomic_ax_save_flags=$CPPFLAGS + + + + CXXFLAGS_atomic_ax_save_flags=$CXXFLAGS + + + + ERLCFLAGS_atomic_ax_save_flags=$ERLCFLAGS + + + + FCFLAGS_atomic_ax_save_flags=$FCFLAGS + + + + FCLIBS_atomic_ax_save_flags=$FCLIBS + + + + FFLAGS_atomic_ax_save_flags=$FFLAGS + + + + FLIBS_atomic_ax_save_flags=$FLIBS + + + + GCJFLAGS_atomic_ax_save_flags=$GCJFLAGS + + + + JAVACFLAGS_atomic_ax_save_flags=$JAVACFLAGS + + + + LDFLAGS_atomic_ax_save_flags=$LDFLAGS + + + + LIBS_atomic_ax_save_flags=$LIBS + + + + OBJCFLAGS_atomic_ax_save_flags=$OBJCFLAGS + + + + OBJCXXFLAGS_atomic_ax_save_flags=$OBJCXXFLAGS + + + + UPCFLAGS_atomic_ax_save_flags=$UPCFLAGS + + + + VALAFLAGS_atomic_ax_save_flags=$VALAFLAGS + + + LIBS="$LIBS $ISC_ATOMIC_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -18459,7 +18969,59 @@ See \`config.log' for more details" "$LINENO" 5; } fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - LIBS="$save_LIBS" + + CCASFLAGS=$CCASFLAGS_atomic_ax_save_flags + + + CFLAGS=$CFLAGS_atomic_ax_save_flags + + + CPPFLAGS=$CPPFLAGS_atomic_ax_save_flags + + + CXXFLAGS=$CXXFLAGS_atomic_ax_save_flags + + + ERLCFLAGS=$ERLCFLAGS_atomic_ax_save_flags + + + FCFLAGS=$FCFLAGS_atomic_ax_save_flags + + + FCLIBS=$FCLIBS_atomic_ax_save_flags + + + FFLAGS=$FFLAGS_atomic_ax_save_flags + + + FLIBS=$FLIBS_atomic_ax_save_flags + + + GCJFLAGS=$GCJFLAGS_atomic_ax_save_flags + + + JAVACFLAGS=$JAVACFLAGS_atomic_ax_save_flags + + + LDFLAGS=$LDFLAGS_atomic_ax_save_flags + + + LIBS=$LIBS_atomic_ax_save_flags + + + OBJCFLAGS=$OBJCFLAGS_atomic_ax_save_flags + + + OBJCXXFLAGS=$OBJCXXFLAGS_atomic_ax_save_flags + + + UPCFLAGS=$UPCFLAGS_atomic_ax_save_flags + + + VALAFLAGS=$VALAFLAGS_atomic_ax_save_flags + + + fi rm -f core conftest.err conftest.$ac_objext \ @@ -19867,10 +20429,76 @@ fi ;; #( no) : ;; #( *) : - save_CFLAGS="$CFLAGS" - save_CPPFLAGS="$CPPFLAGS" - save_LDFLAGS="$LDFLAGS" - save_LIBS="$LIBS" + + + CCASFLAGS_libidn2_ax_save_flags=$CCASFLAGS + + + + CFLAGS_libidn2_ax_save_flags=$CFLAGS + + + + CPPFLAGS_libidn2_ax_save_flags=$CPPFLAGS + + + + CXXFLAGS_libidn2_ax_save_flags=$CXXFLAGS + + + + ERLCFLAGS_libidn2_ax_save_flags=$ERLCFLAGS + + + + FCFLAGS_libidn2_ax_save_flags=$FCFLAGS + + + + FCLIBS_libidn2_ax_save_flags=$FCLIBS + + + + FFLAGS_libidn2_ax_save_flags=$FFLAGS + + + + FLIBS_libidn2_ax_save_flags=$FLIBS + + + + GCJFLAGS_libidn2_ax_save_flags=$GCJFLAGS + + + + JAVACFLAGS_libidn2_ax_save_flags=$JAVACFLAGS + + + + LDFLAGS_libidn2_ax_save_flags=$LDFLAGS + + + + LIBS_libidn2_ax_save_flags=$LIBS + + + + OBJCFLAGS_libidn2_ax_save_flags=$OBJCFLAGS + + + + OBJCXXFLAGS_libidn2_ax_save_flags=$OBJCXXFLAGS + + + + UPCFLAGS_libidn2_ax_save_flags=$UPCFLAGS + + + + VALAFLAGS_libidn2_ax_save_flags=$VALAFLAGS + + + LIBIDN2_CFLAGS="-I$with_libidn2/include" LIBIDN2_LDFLAGS="-L$with_libidn2/lib" CFLAGS="$LIBIDN2_CFLAGS $CFLAGS" @@ -19951,10 +20579,59 @@ else as_fn_error $? "libidn2 requested, but not found" "$LINENO" 5 fi - CFLAGS="$save_CFLAGS" - CPPFLAGS="$save_CPPFLAGS" - LDFLAGS="$save_LDFLAGS" - LIBS="$save_LIBS" ;; #( + + CCASFLAGS=$CCASFLAGS_libidn2_ax_save_flags + + + CFLAGS=$CFLAGS_libidn2_ax_save_flags + + + CPPFLAGS=$CPPFLAGS_libidn2_ax_save_flags + + + CXXFLAGS=$CXXFLAGS_libidn2_ax_save_flags + + + ERLCFLAGS=$ERLCFLAGS_libidn2_ax_save_flags + + + FCFLAGS=$FCFLAGS_libidn2_ax_save_flags + + + FCLIBS=$FCLIBS_libidn2_ax_save_flags + + + FFLAGS=$FFLAGS_libidn2_ax_save_flags + + + FLIBS=$FLIBS_libidn2_ax_save_flags + + + GCJFLAGS=$GCJFLAGS_libidn2_ax_save_flags + + + JAVACFLAGS=$JAVACFLAGS_libidn2_ax_save_flags + + + LDFLAGS=$LDFLAGS_libidn2_ax_save_flags + + + LIBS=$LIBS_libidn2_ax_save_flags + + + OBJCFLAGS=$OBJCFLAGS_libidn2_ax_save_flags + + + OBJCXXFLAGS=$OBJCXXFLAGS_libidn2_ax_save_flags + + + UPCFLAGS=$UPCFLAGS_libidn2_ax_save_flags + + + VALAFLAGS=$VALAFLAGS_libidn2_ax_save_flags + + + ;; #( *) : ;; esac @@ -20219,43 +20896,52 @@ fi # Check for -Wl,--wrap= support # -save_LDFLAGS=$LDFLAGS -LDFLAGS="--wrap=printf" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts --wrap" >&5 +$as_echo_n "checking whether the linker accepts --wrap... " >&6; } +if ${ax_cv_check_ldflags____wrap+:} false; then : + $as_echo_n "(cached) " >&6 +else -LD_WRAP_TESTS=false -enable_ld_wrap=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for linker support for --wrap option" >&5 -$as_echo_n "checking for linker support for --wrap option... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS --wrap" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include + int main () { -__wrap_printf("success"); return (0); + ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : + ax_cv_check_ldflags____wrap=yes +else + ax_cv_check_ldflags____wrap=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags____wrap" >&5 +$as_echo "$ax_cv_check_ldflags____wrap" >&6; } +if test "x$ax_cv_check_ldflags____wrap" = xyes; then : enable_ld_wrap=yes - LD_WRAP_TESTS=true + LD_WRAP_TESTS=true $as_echo "#define LD_WRAP 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + # AM_CONDITIONAL([LD_WRAP], [test $enable_ld_wrap = yes]) -LDFLAGS=$save_LDFLAGS - # # Check for i18n # diff --git a/configure.ac b/configure.ac index db2c524ea3..bb62f5d533 100644 --- a/configure.ac +++ b/configure.ac @@ -80,33 +80,32 @@ AC_ARG_ENABLE(buffer_useinline, fi, AC_DEFINE([ISC_BUFFER_USEINLINE], [1])) -AC_ARG_ENABLE(warn_shadow, - AS_HELP_STRING([--enable-warn-shadow], - [turn on -Wshadow when compiling])) +AC_ARG_ENABLE([warn_shadow], + [AS_HELP_STRING([--enable-warn-shadow], + [turn on -Wshadow when compiling])]) -AC_ARG_ENABLE(warn_error, - AS_HELP_STRING([--enable-warn-error], - [turn on -Werror when compiling])) +AC_ARG_ENABLE([warn_error], + [AS_HELP_STRING([--enable-warn-error], + [turn on -Werror when compiling])]) + +AC_ARG_ENABLE([developer], + [AS_HELP_STRING([--enable-developer], + [enable developer build settings])]) -AC_ARG_ENABLE(developer, - AS_HELP_STRING([--enable-developer], - [enable developer build settings])) XTARGETS= -case "$enable_developer" in -yes) - STD_CDEFINES="$STD_CDEFINES -DISC_MEM_DEFAULTFILL=1 -DISC_LIST_CHECKINIT=1" - test "${enable_fixed_rrset+set}" = set || enable_fixed_rrset=yes - test "${enable_querytrace+set}" = set || enable_querytrace=yes - test "${with_cmocka+set}" = set || with_cmocka=yes - test "${with_dlz_filesystem+set}" = set || with_dlz_filesystem=yes - test "${enable_symtable+set}" = set || enable_symtable=all - test "${enable_warn_error+set}" = set || enable_warn_error=yes - test "${enable_warn_shadow+set}" = set || enable_warn_shadow=yes - test "${with_zlib+set}" = set || with_zlib=yes - XTARGETS='${XTARGETS}' - ;; -esac -AC_SUBST(XTARGETS) +AS_IF([test "$enable_developer" = "yes"], + [STD_CDEFINES="$STD_CDEFINES -DISC_MEM_DEFAULTFILL=1 -DISC_LIST_CHECKINIT=1" + test "${enable_fixed_rrset+set}" = set || enable_fixed_rrset=yes + test "${enable_querytrace+set}" = set || enable_querytrace=yes + test "${with_cmocka+set}" = set || with_cmocka=yes + test "${with_dlz_filesystem+set}" = set || with_dlz_filesystem=yes + test "${enable_symtable+set}" = set || enable_symtable=all + test "${enable_warn_error+set}" = set || enable_warn_error=yes + test "${enable_warn_shadow+set}" = set || enable_warn_shadow=yes + test "${with_zlib+set}" = set || with_zlib=yes + XTARGETS='${XTARGETS}' + ]) +AC_SUBST([XTARGETS]) AC_ARG_ENABLE([fuzzing], [AS_HELP_STRING([--enable-fuzzing=], @@ -757,9 +756,8 @@ CRYPTO=OpenSSL # AX_CHECK_OPENSSL([:],[AC_MSG_FAILURE([OpenSSL/LibreSSL not found])]) -save_CFLAGS="$CFLAGS" -save_LIBS="$LIBS" -save_LDFLAGS="$LDFLAGS" +AX_SAVE_FLAGS([openssl]) + CFLAGS="$CFLAGS $OPENSSL_INCLUDES" LIBS="$LIBS $OPENSSL_LIBS" LDFLAGS="$LDFLAGS $OPENSSL_LDFLAGS" @@ -862,9 +860,7 @@ AS_CASE([$enable_fips_mode], [], [AC_MSG_FAILURE([OpenSSL FIPS mode requested but not available.])])], [no], [AC_MSG_RESULT([no])]) -CFLAGS="$save_CFLAGS" -LIBS="$save_LIBS" -LDFLAGS="$save_LDFLAGS" +AX_RESTORE_FLAGS([openssl]) AC_SUBST([OPENSSL_INCLUDES]) AC_SUBST([OPENSSL_LIBS]) @@ -1458,53 +1454,31 @@ AC_CHECK_LIB(scf, smf_enable_instance) # Additional compiler settings. # MKDEPCC="$CC" + MKDEPCFLAGS="-M" +AS_CASE([$host], + [*-solaris*],[ + AS_IF([test "$GCC" != "yes"], + [MKDEPCFLAGS="-xM"])]) -if test "X$GCC" = "Xyes"; then - STD_CWARNINGS="$STD_CWARNINGS -W -Wall -Wmissing-prototypes -Wcast-qual -Wwrite-strings -Wformat -Wpointer-arith" - AC_MSG_CHECKING(if "$CC" supports -fno-strict-aliasing) - SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -Werror -fno-strict-aliasing" - AC_TRY_COMPILE(,, [FNOSTRICTALIASING=yes],[FNOSTRICTALIASING=no]) - CFLAGS="$SAVE_CFLAGS" - if test "yes" = "$FNOSTRICTALIASING"; then - AC_MSG_RESULT(yes) - STD_CWARNINGS="$STD_CWARNINGS -fno-strict-aliasing" - else - AC_MSG_RESULT(no) - fi - # - # turn off delete null pointer checks - # - AC_MSG_CHECKING(if "$CC" supports -fno-delete-null-pointer-checks) - SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -Werror -fno-delete-null-pointer-checks" - AC_TRY_COMPILE(,, [FNODELETENULLPOINTERCHECKS=yes], - [FNODELETENULLPOINTERCHECKS=no]) - CFLAGS="$SAVE_CFLAGS" - if test "yes" = "$FNODELETENULLPOINTERCHECKS"; then - AC_MSG_RESULT(yes) - STD_CWARNINGS="$STD_CWARNINGS -fno-delete-null-pointer-checks" - else - AC_MSG_RESULT(no) - fi - if test "X$enable_warn_shadow" = Xyes; then - STD_CWARNINGS="$STD_CWARNINGS -Wshadow" - fi - if test "X$enable_warn_error" = Xyes; then - STD_CWARNINGS="$STD_CWARNINGS -Werror" - fi -else - case $host in - *-solaris*) - MKDEPCFLAGS="-xM" - ;; - esac -fi +AS_IF([test "$GCC" = "yes"], + [STD_CWARNINGS="$STD_CWARNINGS -W -Wall -Wmissing-prototypes -Wcast-qual -Wwrite-strings -Wformat -Wpointer-arith"] + ) -AC_SUBST(MKDEPCC) -AC_SUBST(MKDEPCFLAGS) -AC_SUBST(MKDEPPROG) +AX_CHECK_COMPILE_FLAG([-fno-strict-aliasing], + [STD_CWARNINGS="$STD_CWARNINGS -fno-strict-aliasing"]) +AX_CHECK_COMPILE_FLAG([-fno-delete-null-pointer-checks], + [STC_CWARNINGS="$STD_CWARNINGS -fno-delete-null-pointer-checks"]) +AS_IF([test "$enable_warn_shadow" = "yes"], + [AX_CHECK_COMPILE_FLAG([-Wshadow], + [STD_CWARNINGS="$STD_CWARNINGS -Wshadow"])]) +AS_IF([test "$enable_warn_error" = "yes"], + [AX_CHECK_COMPILE_FLAG([-Werror], + [STD_CWARNINGS="$STD_CWARNINGS -Werror"])]) + +AC_SUBST([MKDEPCC]) +AC_SUBST([MKDEPCFLAGS]) +AC_SUBST([MKDEPPROG]) # # -lxnet buys us one big porting headache... standards, gotta love 'em. @@ -1841,12 +1815,12 @@ AS_IF([test "$enable_linux_caps" = "yes"], [], [AC_MSG_ERROR(m4_normalize([sys/capability.h header is required for Linux capabilities support. Either install libcap or use --disable-linux-caps.]))]) - save_LIBS="$LIBS" + AX_SAVE_FLAGS([cap]) AC_SEARCH_LIBS([cap_set_proc], [cap], [LIBCAP_LIBS="$ac_cv_search_cap_set_proc"], [AC_MSG_ERROR(m4_normalize([libcap is required for Linux capabilities support. Either install libcap or use --disable-linux-caps.]))]) - LIBS="$save_LIBS"], + AX_RESTORE_FLAGS([cap])], [AC_MSG_RESULT([no])]) AC_SUBST([LIBCAP_LIBS]) @@ -1916,7 +1890,7 @@ AC_CHECK_HEADERS( )], [AC_MSG_RESULT([no])], [ISC_ATOMIC_LIBS="-latomic" - save_LIBS="$LIBS" + AX_SAVE_FLAGS([atomic]) LIBS="$LIBS $ISC_ATOMIC_LIBS" AC_LINK_IFELSE( [AC_LANG_PROGRAM( @@ -1925,7 +1899,7 @@ AC_CHECK_HEADERS( )], [AC_MSG_RESULT([yes])], [AC_MSG_FAILURE([libatomic needed, but linking with -latomic failed, please fix your toolchain.])]) - LIBS="$save_LIBS" + AX_RESTORE_FLAGS([atomic]) ]) ], [AC_MSG_FAILURE([stdatomic.h header found, but compilation failed, please fix your toolchain.])] @@ -1946,7 +1920,7 @@ AC_CHECK_HEADERS( )], [AC_MSG_RESULT([no])], [ISC_ATOMIC_LIBS="-latomic" - save_LIBS="$LIBS" + AX_SAVE_FLAGS([atomic]) LIBS="$LIBS $ISC_ATOMIC_LIBS" AC_LINK_IFELSE( [AC_LANG_PROGRAM( @@ -1955,7 +1929,7 @@ AC_CHECK_HEADERS( )], [AC_MSG_RESULT([yes])], [AC_MSG_FAILURE([libatomic needed, but linking with -latomic failed, please fix your toolchain.])]) - LIBS="$save_LIBS" + AX_RESTORE_FLAGS([atomic]) ]) ], [AC_MSG_RESULT([__sync builtins]) @@ -2280,10 +2254,7 @@ AS_CASE([$with_libidn2], [yes], [PKG_CHECK_MODULES([LIBIDN2], [libidn2], [AC_DEFINE([HAVE_LIBIDN2], [1], [Define if libidn2 was found])])], [no], [], - [*], [save_CFLAGS="$CFLAGS" - save_CPPFLAGS="$CPPFLAGS" - save_LDFLAGS="$LDFLAGS" - save_LIBS="$LIBS" + [*], [AX_SAVE_FLAGS([libidn2]) LIBIDN2_CFLAGS="-I$with_libidn2/include" LIBIDN2_LDFLAGS="-L$with_libidn2/lib" CFLAGS="$LIBIDN2_CFLAGS $CFLAGS" @@ -2296,10 +2267,7 @@ AS_CASE([$with_libidn2], [LIBIDN2_LIBS="$ac_cv_search_idn2_to_ascii_lz" AC_DEFINE([HAVE_LIBIDN2], [1], [Define if libidn2 was found])], [AC_MSG_ERROR([libidn2 requested, but not found])]) - CFLAGS="$save_CFLAGS" - CPPFLAGS="$save_CPPFLAGS" - LDFLAGS="$save_LDFLAGS" - LIBS="$save_LIBS"]) + AX_RESTORE_FLAGS([libidn2])]) AC_SUBST([LIBIDN2_CFLAGS]) AC_SUBST([LIBIDN2_LDFLAGS]) AC_SUBST([LIBIDN2_LIBS]) @@ -2342,24 +2310,15 @@ AC_SUBST([KYUA]) # Check for -Wl,--wrap= support # -save_LDFLAGS=$LDFLAGS -LDFLAGS="--wrap=printf" - -LD_WRAP_TESTS=false -enable_ld_wrap=no -AC_MSG_CHECKING([for linker support for --wrap option]) -AC_LINK_IFELSE( - [AC_LANG_PROGRAM([#include ], [__wrap_printf("success"); return (0);])], - [enable_ld_wrap=yes - LD_WRAP_TESTS=true - AC_DEFINE([LD_WRAP], [1], [define if the linker supports --wrap option]) - AC_MSG_RESULT([yes])], - [AC_MSG_RESULT([no])]) +AX_CHECK_LINK_FLAG([--wrap], + [enable_ld_wrap=yes + LD_WRAP_TESTS=true + AC_DEFINE([LD_WRAP], [1], [define if the linker supports --wrap option]) + AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no])]) # AM_CONDITIONAL([LD_WRAP], [test $enable_ld_wrap = yes]) AC_SUBST([LD_WRAP_TESTS]) -LDFLAGS=$save_LDFLAGS - # # Check for i18n # diff --git a/m4/ax_check_compile_flag.m4 b/m4/ax_check_compile_flag.m4 new file mode 100644 index 0000000000..bd753b34d7 --- /dev/null +++ b/m4/ax_check_compile_flag.m4 @@ -0,0 +1,53 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT]) +# +# DESCRIPTION +# +# Check whether the given FLAG works with the current language's compiler +# or gives an error. (Warnings, however, are ignored) +# +# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on +# success/failure. +# +# If EXTRA-FLAGS is defined, it is added to the current language's default +# flags (e.g. CFLAGS) when the check is done. The check is thus made with +# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to +# force the compiler to issue an error when a bad flag is given. +# +# INPUT gives an alternative input source to AC_COMPILE_IFELSE. +# +# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this +# macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG. +# +# LICENSE +# +# Copyright (c) 2008 Guido U. Draheim +# Copyright (c) 2011 Maarten Bosmans +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 6 + +AC_DEFUN([AX_CHECK_COMPILE_FLAG], +[AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF +AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl +AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [ + ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS + _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1" + AC_COMPILE_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])], + [AS_VAR_SET(CACHEVAR,[yes])], + [AS_VAR_SET(CACHEVAR,[no])]) + _AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags]) +AS_VAR_IF(CACHEVAR,yes, + [m4_default([$2], :)], + [m4_default([$3], :)]) +AS_VAR_POPDEF([CACHEVAR])dnl +])dnl AX_CHECK_COMPILE_FLAGS diff --git a/m4/ax_check_link_flag.m4 b/m4/ax_check_link_flag.m4 new file mode 100644 index 0000000000..03a30ce4c7 --- /dev/null +++ b/m4/ax_check_link_flag.m4 @@ -0,0 +1,53 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_check_link_flag.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_CHECK_LINK_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT]) +# +# DESCRIPTION +# +# Check whether the given FLAG works with the linker or gives an error. +# (Warnings, however, are ignored) +# +# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on +# success/failure. +# +# If EXTRA-FLAGS is defined, it is added to the linker's default flags +# when the check is done. The check is thus made with the flags: "LDFLAGS +# EXTRA-FLAGS FLAG". This can for example be used to force the linker to +# issue an error when a bad flag is given. +# +# INPUT gives an alternative input source to AC_LINK_IFELSE. +# +# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this +# macro in sync with AX_CHECK_{PREPROC,COMPILE}_FLAG. +# +# LICENSE +# +# Copyright (c) 2008 Guido U. Draheim +# Copyright (c) 2011 Maarten Bosmans +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 6 + +AC_DEFUN([AX_CHECK_LINK_FLAG], +[AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF +AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_ldflags_$4_$1])dnl +AC_CACHE_CHECK([whether the linker accepts $1], CACHEVAR, [ + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS $4 $1" + AC_LINK_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])], + [AS_VAR_SET(CACHEVAR,[yes])], + [AS_VAR_SET(CACHEVAR,[no])]) + LDFLAGS=$ax_check_save_flags]) +AS_VAR_IF(CACHEVAR,yes, + [m4_default([$2], :)], + [m4_default([$3], :)]) +AS_VAR_POPDEF([CACHEVAR])dnl +])dnl AX_CHECK_LINK_FLAGS diff --git a/m4/ax_check_preproc_flag.m4 b/m4/ax_check_preproc_flag.m4 new file mode 100644 index 0000000000..e43560fbd3 --- /dev/null +++ b/m4/ax_check_preproc_flag.m4 @@ -0,0 +1,53 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_check_preproc_flag.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_CHECK_PREPROC_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT]) +# +# DESCRIPTION +# +# Check whether the given FLAG works with the current language's +# preprocessor or gives an error. (Warnings, however, are ignored) +# +# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on +# success/failure. +# +# If EXTRA-FLAGS is defined, it is added to the preprocessor's default +# flags when the check is done. The check is thus made with the flags: +# "CPPFLAGS EXTRA-FLAGS FLAG". This can for example be used to force the +# preprocessor to issue an error when a bad flag is given. +# +# INPUT gives an alternative input source to AC_PREPROC_IFELSE. +# +# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this +# macro in sync with AX_CHECK_{COMPILE,LINK}_FLAG. +# +# LICENSE +# +# Copyright (c) 2008 Guido U. Draheim +# Copyright (c) 2011 Maarten Bosmans +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 6 + +AC_DEFUN([AX_CHECK_PREPROC_FLAG], +[AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF +AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]cppflags_$4_$1])dnl +AC_CACHE_CHECK([whether _AC_LANG preprocessor accepts $1], CACHEVAR, [ + ax_check_save_flags=$CPPFLAGS + CPPFLAGS="$CPPFLAGS $4 $1" + AC_PREPROC_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])], + [AS_VAR_SET(CACHEVAR,[yes])], + [AS_VAR_SET(CACHEVAR,[no])]) + CPPFLAGS=$ax_check_save_flags]) +AS_VAR_IF(CACHEVAR,yes, + [m4_default([$2], :)], + [m4_default([$3], :)]) +AS_VAR_POPDEF([CACHEVAR])dnl +])dnl AX_CHECK_PREPROC_FLAGS diff --git a/m4/ax_restore_flags.m4 b/m4/ax_restore_flags.m4 new file mode 100644 index 0000000000..8f2adf27c2 --- /dev/null +++ b/m4/ax_restore_flags.m4 @@ -0,0 +1,52 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_restore_flags.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_RESTORE_FLAGS([namespace]) +# +# DESCRIPTION +# +# Restore common compilation flags from temporary variables. +# +# Compilation flags includes: CPPFLAGS, CFLAGS, CXXFLAGS, LDFLAGS, LIBS, +# OBJCFLAGS. +# +# By default these flags are restored to a global (empty) namespace, but +# user could restore from specific NAMESPACE by using +# AX_RESTORE_FLAGS(NAMESPACE) macro. +# +# Typical usage is like: +# +# AX_SAVE_FLAGS(mypackage) +# CPPFLAGS="-Imypackagespath ${CPPFLAGS}" +# dnl ... do some detection ... +# AX_RESTORE_FLAGS(mypackage) +# +# LICENSE +# +# Copyright (c) 2009 Filippo Giunchedi +# Copyright (c) 2011 The Board of Trustees of the Leland Stanford Junior University +# Copyright (c) 2011 Russ Allbery +# Copyright (c) 2013 Bastien ROUCARIES +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 7 + +# save one flag in name space +AC_DEFUN([_AX_RESTORE_ONE_FLAG],[dnl + AS_VAR_PUSHDEF([_ax_restore_flag_var], [$2[]_$1[]_ax_save_flags]) + AS_VAR_COPY($2[],_ax_restore_flag_var) + AS_VAR_POPDEF([_ax_restore_flag_var]) +]) + +AC_DEFUN([AX_RESTORE_FLAGS], [dnl + m4_foreach([FLAG], dnl + [_AX_SAVE_FLAGS_LIST()], dnl + [_AX_RESTORE_ONE_FLAG([$1],FLAG)]) +]) diff --git a/m4/ax_save_flags.m4 b/m4/ax_save_flags.m4 new file mode 100644 index 0000000000..5bc7c6c7a8 --- /dev/null +++ b/m4/ax_save_flags.m4 @@ -0,0 +1,71 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_save_flags.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_SAVE_FLAGS([NAMESPACE]) +# +# DESCRIPTION +# +# Save common compilation flags into temporary variables. +# +# Compilation flags includes: CPPFLAGS, CFLAGS, CXXFLAGS, LDFLAGS, LIBS, +# OBJCFLAGS. +# +# By default these flags are saved to a global (empty) namespace, but user +# could specify a specific NAMESPACE to AX_SAVE_FLAGS macro and latter +# restore it by using AX_RESTORE_FLAGS(NAMESPACE). +# +# AX_SAVE_FLAGS(mypackage) +# CPPFLAGS="-Imypackagespath ${CPPFLAGS}" +# dnl .. do some detection ... +# AX_RESTORE_FLAGS(mypackage) +# +# LICENSE +# +# Copyright (c) 2009 Filippo Giunchedi +# Copyright (c) 2011 The Board of Trustees of the Leland Stanford Junior University +# Copyright (c) 2011 Russ Allbery +# Copyright (c) 2013 Bastien ROUCARIES +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 8 + +# list of flag to save +AC_DEFUN([_AX_SAVE_FLAGS_LIST],[dnl +[CCASFLAGS],dnl +[CFLAGS],dnl +[CPPFLAGS],dnl +[CXXFLAGS],dnl +[ERLCFLAGS],dnl +[FCFLAGS],dnl +[FCLIBS],dnl +[FFLAGS],dnl +[FLIBS],dnl +[GCJFLAGS],dnl +[JAVACFLAGS],dnl +[LDFLAGS],dnl +[LIBS],dnl +[OBJCFLAGS],dnl +[OBJCXXFLAGS],dnl +[UPCFLAGS],dnl +[VALAFLAGS]dnl +]) + +# save one flag in name space +AC_DEFUN([_AX_SAVE_ONE_FLAG],[ + AS_VAR_PUSHDEF([_ax_save_flag_var], [$2[]_$1[]_ax_save_flags]) + AS_VAR_COPY(_ax_save_flag_var, $2[]) + AS_VAR_POPDEF([_ax_save_flag_var]) +]) + +AC_DEFUN([AX_SAVE_FLAGS],[dnl + m4_foreach([FLAG], dnl + [_AX_SAVE_FLAGS_LIST()], dnl + [_AX_SAVE_ONE_FLAG([$1],FLAG)]) +])