AC_PATH_PROG([PERL], perl, no)
AC_SUBST([PERL])dnl
if test "$PERL" != no && $PERL -e 'require 5.005_03;'; then :; else
- PSPP_REQUIRED_PREREQ([Perl 5.005_03 (or later)])
+ PSPP_OPTIONAL_PREREQ([Perl 5.005_03 (or later)])
fi
# The PSPP autobuilder appends a build number to the PSPP version number,
AC_SUBST([VERSION_FOR_PERL])
])
+dnl CHECK_PERL_MODULE([MODULE], [RUN-IF-AVAILABLE], [RUN-IF-NOT-AVAILABLE])
+AC_DEFUN([CHECK_PERL_MODULE],
+ [echo "configure:__oline__: running $PERL -M$1 -e '' >&AS_MESSAGE_LOG_FD" >&AS_MESSAGE_LOG_FD
+ $PERL -M$1 -e '' >&AS_MESSAGE_LOG_FD 2>&1
+ retval=$?
+ echo "configure:__oline__: \$? = $retval" >&AS_MESSAGE_LOG_FD
+ AS_IF([test $retval = 0], [$2], [$3])])
+
+AC_DEFUN([PSPP_PERL_MODULE],
+ [AC_ARG_WITH(
+ [perl-module],
+ [AS_HELP_STRING([--without-perl-module], [do not build the Perl module])],
+ [AS_CASE([$with_perl_module],
+ [yes|no], [],
+ [AC_MSG_FAILURE([--with-perl-module argument must be 'yes' or 'no'])])
+ WITH_PERL_MODULE=$with_perl_module],
+ [if test "$PERL" != no && test x"$cross_compiling" != x"yes"; then
+ WITH_PERL_MODULE=yes
+ else
+ WITH_PERL_MODULE=no
+ fi])
+ AC_SUBST([WITH_PERL_MODULE])
+ AM_CONDITIONAL(WITH_PERL_MODULE, test $WITH_PERL_MODULE = yes)
+
+ if test $WITH_PERL_MODULE = yes; then
+ if test "$PERL" = no; then
+ PSPP_REQUIRED_PREREQ([Perl 5.005_03 or later (or use --without-perl-module)])
+ fi
+ CHECK_PERL_MODULE([Config::Perl::V], [],
+ [PSPP_REQUIRED_PREREQ([Config::Perl::V Perl module (or use --without-perl-module)])])
+ CHECK_PERL_MODULE([Text::Diff], [],
+ [PSPP_OPTIONAL_PREREQ([Text::Diff Perl module for running Perl tests])])
+ fi])
+
dnl Check that Python 3 is available.
AC_DEFUN([PSPP_PYTHON3],
[AC_ARG_VAR([PYTHON3], [Python 3 interpreter])
dnl If so, execute ACTION-IF-ACCEPTED, otherwise ACTION-IF-REJECTED.
AC_DEFUN([PSPP_CHECK_CC_OPTION],
[
- m4_define([pspp_cv_name], [pspp_cv_[]m4_translit([$1], [-], [_])])dnl
+ m4_define([pspp_cv_name], [pspp_cv_[]m4_translit([$1], [-=], [__])])dnl
AC_CACHE_CHECK([whether $CC accepts $1], [pspp_cv_name],
[pspp_save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $1"
AC_DEFUN([PSPP_ENABLE_WERROR],
[AC_ARG_ENABLE(
[Werror],
- [AC_HELP_STRING([--enable-Werror], [Add -Werror to CFLAGS])],
+ [AS_HELP_STRING([--enable-Werror], [Add -Werror to CFLAGS])],
[], [enable_Werror=no])
AC_CONFIG_COMMANDS_PRE(
[if test "X$enable_Werror" = Xyes; then
CFLAGS="$CFLAGS -Werror -Wno-error=deprecated-declarations"
# gnulib needs this, for now:
CFLAGS="$CFLAGS -Wno-error=attributes"
- fi])])
+ fi])
+
+ dnl Gnulib triggers the following error for me with GCC 12.x:
+ dnl
+ dnl In function 'convert_to_decimal',
+ dnl inlined from 'scale10_round_decimal_decoded' at ../gl/vasnprintf.c:1368:12:
+ dnl ../gl/vasnprintf.c:939:26: error: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Werror=alloc-size-larger-than=]
+ dnl 939 | char *c_ptr = (char *) malloc (xsum (xsum (extra_zeroes, c_len), 1));
+ dnl | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ dnl
+ dnl I prefer to just disable the error because I think the warning is wrong.
+ if test "X$enable_Werror" = Xyes; then
+ PSPP_ENABLE_OPTION([-Wno-error=alloc-size-larger-than=])
+ fi])
# The following comes from Open vSwitch:
# ----------------------------------------------------------------------