work on pivot table and FREQUENCIES usage
[pspp] / configure.ac
index 8f4ca63ba084f9c4e6341bf409caa1a4be5d8f94..40626e809c03740b40168614ea002365df710ff6 100644 (file)
@@ -32,12 +32,14 @@ PSPP_CC_FOR_BUILD
 PSPP_PERL
 
 dnl Internationalization macros.
-AC_ARG_ENABLE(nls, [AS_HELP_STRING([--disable-nls], [do not use Native Language Support])])
-if  test x"$enable_nls" != x"no"  ; then
- AC_DEFINE(ENABLE_NLS, 1, [Define to 1 if translation of program messages to the user's native language is requested.])
+AC_PROVIDE([AM_PO_SUBDIRS])    # PSPP provides its own po/ support.
+AM_GNU_GETTEXT([external], [need-ngettext])
+AM_GNU_GETTEXT_VERSION([0.17])
+if test -n "$LIBINTL"; then
+  AC_DEFINE([DEPENDS_ON_LIBINTL], [1], 
+    [Define to 1 if libintl is a separate library, not integrated into libc])
 fi
 
-
 dnl Checks for libraries.
 AC_SYS_LARGEFILE
 AC_SEARCH_LIBS([sin], [m])
@@ -76,6 +78,12 @@ AM_CONDITIONAL([HAVE_GUI],
 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)])])
+
+  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
@@ -96,35 +104,65 @@ 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 <libpq-fe.h>
+        ], [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
+    AC_DEFINE([PSQL_SUPPORT], [1],
+      [Define to 1 if building in support for reading from postgres
+       databases.])
+  else
+    PG_CONFIG=
+    PG_CFLAGS=
+    PG_LDFLAGS=
+    PG_LIBS=
+  fi
+else
+  pspp_cv_have_libpq=no
 fi
-AM_CONDITIONAL(PSQL_SUPPORT, test -n "$PG_CONFIG")
+AM_CONDITIONAL(PSQL_SUPPORT, test $pspp_cv_have_libpq = yes)
 
 dnl Check for libxml2
 PKG_CHECK_MODULES(
@@ -184,7 +222,21 @@ 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)])])
@@ -266,7 +318,8 @@ RELOCATABLE_STRIP=:
 
 PSPP_CHECK_PREREQS
 
-AC_CONFIG_FILES([Makefile gl/Makefile tests/atlocal perl-module/lib/PSPP.pm])
+AC_CONFIG_FILES(
+  [Makefile gl/Makefile po/Makefile tests/atlocal perl-module/lib/PSPP.pm])
 
 AC_OUTPUT
 echo "PSPP configured successfully."