X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=configure.ac;h=b06392a58670395c1790406c14b311ab98f0821f;hb=ff8c03cab4995de8e261891b63d6a84eae1b880d;hp=d52b4ffb22c7e933baedddf8f90a27d6d7c0bf93;hpb=27cc40906c7b388fc0bec644b324ef6a4dec6dc3;p=pspp-builds.git diff --git a/configure.ac b/configure.ac index d52b4ffb..b06392a5 100644 --- a/configure.ac +++ b/configure.ac @@ -1,9 +1,11 @@ dnl Process this file with autoconf to produce a configure script. dnl Initialize. -AC_PREREQ(2.60) -AC_INIT([pspp],[0.7.3],[bug-gnu-pspp@gnu.org]) +AC_PREREQ(2.63) +AC_INIT([GNU PSPP], [0.7.6], [bug-gnu-pspp@gnu.org], [pspp]) +AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_HEADERS([config.h]) +AC_CONFIG_TESTDIR([tests]) AM_INIT_AUTOMAKE dnl Checks for programs. @@ -16,6 +18,7 @@ AC_LIBTOOL_DLOPEN AC_PROG_LIBTOOL PKG_PROG_PKG_CONFIG m4_pattern_forbid([PKG_CHECK_MODULES]) +PSPP_CHECK_CLICKSEQUENCE AC_ARG_ENABLE( anachronistic-dependencies, @@ -30,12 +33,14 @@ PSPP_CC_FOR_BUILD PSPP_PERL dnl Internationalization macros. +AC_PROVIDE([AM_PO_SUBDIRS]) # PSPP provides its own po/ support. AM_GNU_GETTEXT([external], [need-ngettext]) AM_GNU_GETTEXT_VERSION([0.17]) dnl Checks for libraries. AC_SYS_LARGEFILE AC_SEARCH_LIBS([sin], [m]) +AC_SEARCH_LIBS([dcgettext], [intl]) PSPP_LC_PAPER @@ -55,7 +60,9 @@ if test "$with_cairo" != no; then [CPPFLAGS="$CPPFLAGS $CAIRO_CFLAGS" AC_DEFINE([HAVE_CAIRO], 1, [Define to 1 if Cairo and Pango are available.])], - [PSPP_REQUIRED_PREREQ([cairo 1.5 or later and pango 1.22 or later (or use --without-cairo)])]) + [PSPP_REQUIRED_PREREQ([cairo 1.5 or later and pango 1.20 or later (or use --without-cairo)])]) + AC_PATH_PROG([XMLLINT], [xmllint], [echo], [$PATH]) + AC_SUBST(XMLLINT) fi # Support for GUI. @@ -66,8 +73,14 @@ AC_ARG_WITH([gui], AM_CONDITIONAL([HAVE_GUI], [test "$with_cairo" != no && test "$with_gui" != "no"]) if test "$with_cairo" != no && test "$with_gui" != "no"; then - PKG_CHECK_MODULES([GTK], [gtk+-2.0 >= 2.12], [], - [PSPP_REQUIRED_PREREQ([gtk+ 2.0 version 2.12 or later (or use --without-gui)])]) + PKG_CHECK_MODULES([GTK], [gtk+-2.0 >= 2.16], [], + [PSPP_REQUIRED_PREREQ([gtk+ 2.0 version 2.16 or later (or use --without-gui)])]) + + AC_ARG_VAR([GLIB_GENMARSHAL]) + AC_CHECK_PROGS([GLIB_GENMARSHAL], [glib-genmarshal]) + if test "x$GLIB_GENMARSHAL" = x; then + PSPP_REQUIRED_PREREQ([glib-genmarshal (or use --without-gui)]) + fi fi dnl Checks needed for psql reader @@ -88,48 +101,118 @@ dnl only set PG_LDFLAGS if it's not found. AC_ARG_WITH( libpq, [AS_HELP_STRING([--without-libpq], [don't compile in Postgres capability])]) - -if test x"$with_libpq" != x"no" ; then - AC_SEARCH_LIBS([PQexec], [pq], [libpq_in_std_lib_path=yes]) - - AC_ARG_VAR([PG_CONFIG], [Full pathname of the pg_config program shipped with Postgresql]) - if test x"$cross_compiling" != x"yes" ; then - AC_PATH_PROG([PG_CONFIG], [pg_config], [], [$PATH:/usr/local/pgsql/bin:/usr/pgsql/bin]) - fi - if test -n "$PG_CONFIG" ; then - AC_SUBST(PG_CONFIG) - AC_DEFINE([PSQL_SUPPORT], 1, - [Define to 1 if building in support for reading from postgres databases.]) - PG_CFLAGS=-I`$PG_CONFIG --includedir` - AC_SUBST(PG_CFLAGS) - - if test "x$libpq_in_std_lib_path" != x"yes" ; then - PG_LDFLAGS="-L`$PG_CONFIG --libdir` -R`$PG_CONFIG --libdir`" - fi - AC_SUBST(PG_LDFLAGS) - - PG_LIBS=-lpq - AC_SUBST(PG_LIBS) - PKG_CHECK_EXISTS(libssl, - AC_DEFINE([USE_SSL],1, - [Define to 1 if the openssl library is present.]) - ,) - fi +AC_ARG_VAR([PG_CONFIG], + [Full pathname of the pg_config program shipped with Postgresql]) +AC_PATH_PROG([PG_CONFIG], [pg_config], [], + [$PATH:/usr/local/pgsql/bin:/usr/pgsql/bin]) + +if test x"$with_libpq" != x"no" && test -n "$PG_CONFIG" ; then + AC_SUBST(PG_CONFIG) + PG_CFLAGS=-I`$PG_CONFIG --includedir` + AC_SUBST(PG_CFLAGS) + + AC_CHECK_LIB([pq], [PQexec], + [:], + [PG_LDFLAGS="-L`$PG_CONFIG --libdir` -R`$PG_CONFIG --libdir`"]) + AC_SUBST(PG_LDFLAGS) + + PG_LIBS=-lpq + AC_SUBST(PG_LIBS) + + PKG_CHECK_EXISTS(libssl, + AC_DEFINE([USE_SSL],1, + [Define to 1 if the openssl library is present.]) + ,) + + # Now verify that we can actually link against libpq. If we are + # cross-compiling and picked up a host libpq, or if libpq is just + # badly installed, this will fail. + AC_CACHE_CHECK( + [whether -lpq links successfully], + [pspp_cv_have_libpq], + [save_CPPFLAGS=$CPPFLAGS + save_LIBS=$LIBS + save_LDFLAGS=$LDFLAGS + CPPFLAGS="$PG_CFLAGS $CPPFLAGS" + LIBS="$PG_LIBS $LIBS" + LDFLAGS="$PG_LDFLAGS $LDFLAGS" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [#include + ], [PQfinish (0);])], + [pspp_cv_have_libpq=yes], + [pspp_cv_have_libpq=no]) + CPPFLAGS=$save_CPPFLAGS + LIBS=$save_LIBS + LDFLAGS=$save_LDFLAGS]) + + if test $pspp_cv_have_libpq = yes; then + PSQL_SUPPORT=yes + AC_DEFINE([PSQL_SUPPORT], [1], + [Define to 1 if building in support for reading from postgres + databases.]) + else + PSQL_SUPPORT=no + PG_CONFIG= + PG_CFLAGS= + PG_LDFLAGS= + PG_LIBS= + fi +else + PSQL_SUPPORT=no + pspp_cv_have_libpq=no fi -AM_CONDITIONAL(PSQL_SUPPORT, test -n "$PG_CONFIG") - -dnl Checks needed for gnumeric reader -gnm_support=yes; -PKG_CHECK_MODULES(LIBXML2, libxml-2.0,, - [PSPP_OPTIONAL_PREREQ([libxml2]); gnm_support=no;]); -AC_SEARCH_LIBS(gzopen,z,,[PSPP_OPTIONAL_PREREQ([zlib]); gnm_support=no;]) -AC_CHECK_HEADERS(zlib.h,,[PSPP_OPTIONAL_PREREQ([zlib]); gnm_support=no;]) - -if test x"$gnm_support" = x"yes" ; then - AC_DEFINE([GNM_SUPPORT], 1, - [Define to 1 if building in support for reading Gnumeric files.]) +AC_SUBST([PSQL_SUPPORT]) + +dnl Check for libxml2 +PKG_CHECK_MODULES( + [LIBXML2], [libxml-2.0], + [HAVE_LIBXML2=yes], + [HAVE_LIBXML2=no + PSPP_OPTIONAL_PREREQ([libxml2])]) + +dnl Check for zlib. +AC_SEARCH_LIBS( + [gzopen], [z], + [HAVE_ZLIB=yes], + [HAVE_ZLIB=no + PSPP_OPTIONAL_PREREQ([zlib])]) +AC_CHECK_HEADERS( + [zlib.h], + [], + [HAVE_ZLIB=no + PSPP_OPTIONAL_PREREQ([zlib])]) + +dnl Avoid interference between zlib's crc32() function and gnulib's +dnl crc32() function, which have different signatures. PSPP calls +dnl only gnulib's crc32() directly, but it calls zlib's crc32() +dnl indirectly through other zlib calls. If we don't rename gnulib's +dnl crc32(), then zlib will call gnulib's version instead of its own, +dnl causing failures. (This can happen even if zlib isn't detected +dnl directly, because other libraries that PSPP uses, e.g. libpng, +dnl sometimes use zlib themselves.) +AC_DEFINE( + [crc32], [gl_crc32], + [Avoid making zlib call gnulib's crc32() instead of its own.]) + +dnl Gnumeric support requires libxml2 and zlib. +if test $HAVE_LIBXML2 = yes && test $HAVE_ZLIB = yes; then + GNM_SUPPORT=yes + AC_DEFINE( + [GNM_SUPPORT], [1], + [Define to 1 if building in support for reading Gnumeric files.]) +else + GNM_SUPPORT=no fi -AM_CONDITIONAL(GNM_SUPPORT, test x"$gnm_support" = x"yes") +AC_SUBST([GNM_SUPPORT]) + +dnl ODT support requires libxml2. +if test $HAVE_LIBXML2 = yes; then + AC_DEFINE( + [ODT_SUPPORT], [1], + [Define to 1 if building in support for writing ODT files.]) +fi +AM_CONDITIONAL([ODT_SUPPORT], [test $HAVE_LIBXML2 = yes]) AC_ARG_WITH( gui_tools, @@ -139,10 +222,27 @@ if test x"$with_gui_tools" = x"yes" ; then fi AM_CONDITIONAL(WITH_GUI_TOOLS, test x"$with_gui_tools" = x"yes") -AM_CONDITIONAL(WITH_PERL_MODULE, test x"$cross_compiling" != x"yes") +AC_ARG_WITH( + [perl-module], + [AS_HELP_STRING([--without-perl-module], [do not build the Perl module])], + [case $with_perl_module in # ( + yes|no) ;; # ( + *) AC_MSG_FAILURE([--with-perl-module argument must be 'yes' or 'no']) ;; + esac + WITH_PERL_MODULE=$with_perl_module], + [if 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) AC_SEARCH_LIBS([cblas_dsdot], [gslcblas],,[PSPP_REQUIRED_PREREQ([libgslcblas])]) -AC_SEARCH_LIBS([gsl_cdf_binomial_P], [gsl],,[PSPP_REQUIRED_PREREQ([libgsl (version 1.8 or later)])]) +PKG_CHECK_MODULES([GSL], [gsl >= 1.12], [], + AC_SEARCH_LIBS([gsl_linalg_cholesky_invert], [gsl],,[PSPP_REQUIRED_PREREQ([gsl 2.0 version 1.12 or later])])) + + PSPP_GSL_NEEDS_FGNU89_INLINE dnl Recent versions of GNU ncurses install the curses header files into @@ -186,7 +286,7 @@ fi PSPP_READLINE dnl Checks for header files. -AC_CHECK_HEADERS([sys/wait.h fpu_control.h ieeefp.h fenv.h]) +AC_CHECK_HEADERS([sys/wait.h fpu_control.h ieeefp.h fenv.h pwd.h]) # For gnulib. gl_INIT @@ -214,9 +314,15 @@ if test "$am_cv_func_iconv" != "yes"; then PSPP_REQUIRED_PREREQ([iconv (see http://www.gnu.org/software/libiconv/)]) fi +dnl Required by the gnulib 'relocatable-prog' module. +dnl See doc/relocatable-maint.texi in the gnulib tree for details. +RELOCATABLE_LIBRARY_PATH='$(libdir)' +RELOCATABLE_STRIP=: + PSPP_CHECK_PREREQS -AC_CONFIG_FILES([Makefile gl/Makefile po/Makefile.in]) +AC_CONFIG_FILES( + [Makefile gl/Makefile po/Makefile tests/atlocal perl-module/lib/PSPP.pm]) AC_OUTPUT echo "PSPP configured successfully."