Protected some tests which don't work when cross-compiling.
[pspp-builds.git] / configure.ac
1 dnl Process this file with autoconf to produce a configure script.
2
3 dnl Initialize.
4 AX_PREREQ(2.60)
5 AC_INIT([pspp],[0.4.3],[bug-gnu-pspp@gnu.org])
6 AC_CONFIG_HEADERS([config.h])
7 AM_INIT_AUTOMAKE
8
9 dnl Checks for programs.
10 AC_GNU_SOURCE
11 AC_PROG_CC
12 gl_EARLY
13 AM_PROG_CC_C_O
14 AC_LIBTOOL_DLOPEN
15 AC_PROG_LIBTOOL
16 PKG_PROG_PKG_CONFIG
17
18 PSPP_ENABLE_OPTION(-Wdeclaration-after-statement)
19
20 AM_CONDITIONAL(cc_is_gcc, test x"$GCC" = x"yes" )
21
22 PSPP_CC_FOR_BUILD
23 PSPP_PERL
24
25 dnl Internationalization macros.
26 AM_GNU_GETTEXT([external], [need-ngettext])
27 AM_GNU_GETTEXT_VERSION([0.16.1])
28
29 dnl Checks for libraries.
30 AC_SYS_LARGEFILE
31 AC_SEARCH_LIBS([sin], [m])
32 PSPP_LIBPLOT
33 PSPP_LC_PAPER
34 AM_CONDITIONAL(WITHCHARTS, test x"$with_libplot" != x"no")
35
36
37 AC_ARG_WITH(
38   gui, 
39   [AS_HELP_STRING([--without-gui], [don't build the PSPPIRE gui])])
40
41 if test x"$with_gui" != x"no" ; then 
42   PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.12.0,,
43     [PSPP_REQUIRED_PREREQ([gtk+ 2.0 v2.12.0 or later (or use --without-gui)])])
44   PKG_CHECK_MODULES(GLADE, libglade-2.0 >= 2.6.0,,
45     [PSPP_REQUIRED_PREREQ([libglade 2.0 v2.6.0 or later (or use --without-gui)])])
46 fi
47 AM_CONDITIONAL(WITHGUI, test x"$with_gui" != x"no")
48
49
50 dnl Checks needed for psql reader
51
52 dnl The 8.x series postgres tarballs installs with a default prefix of
53 dnl /usr/local/pgsql whereas, OSes (such as debian)  install into /usr .
54
55 dnl If the libpq.so file is in a non standard path, (one which the linker
56 dnl doesn't search) then we must set the PG_LDFLAGS to -R/usr/wherever/
57 dnl However, if the system happens to have more than one version of other
58 dnl dependent libraries (eg. libgtk) in different standard paths. (eg:
59 dnl /usr and /usr/local) then the wrong one may get linked. 
60
61 dnl To overcome this, we first check for libpq in the standard places, and
62 dnl only set PG_LDFLAGS if it's not found.
63
64
65 AC_SEARCH_LIBS([PQexec], [pq], [libpq_in_std_lib_path=yes])
66
67 AC_ARG_VAR([PG_CONFIG], [Full pathname of the pg_config program shipped with Postgresql])
68 if test x"$cross_compiling" != x"yes" ; then
69    AC_PATH_PROG([PG_CONFIG], [pg_config], [], [$PATH:/usr/local/pgsql/bin:/usr/pgsql/bin])
70 fi 
71 if test -n "$PG_CONFIG" ; then 
72    AC_SUBST(PG_CONFIG)
73    AC_DEFINE([PSQL_SUPPORT], 1,
74    [Define to 1 if building in support for reading from postgres databases.])
75    PG_CFLAGS=-I`$PG_CONFIG --includedir` 
76    AC_SUBST(PG_CFLAGS)
77    
78    if test "x$libpq_in_std_lib_path" != x"yes" ; then
79       PG_LDFLAGS="-L`$PG_CONFIG --libdir` -R`$PG_CONFIG --libdir`"
80    fi
81    AC_SUBST(PG_LDFLAGS)
82
83    PG_LIBS=-lpq
84    AC_SUBST(PG_LIBS)
85    PKG_CHECK_EXISTS(libssl,
86          AC_DEFINE([USE_SSL],1,
87                     [Define to 1 if the openssl library is present.])
88             ,)
89 fi
90 AM_CONDITIONAL(PSQL_SUPPORT, test -n "$PG_CONFIG")
91
92 dnl Checks needed for gnumeric reader
93 gnm_support=yes;
94 PKG_CHECK_MODULES(LIBXML2, libxml-2.0,,
95                            [PSPP_OPTIONAL_PREREQ([libxml2]); gnm_support=no;]);
96 AC_SEARCH_LIBS(gzopen,z,,[PSPP_OPTIONAL_PREREQ([zlib]); gnm_support=no;])
97 AC_CHECK_HEADERS(zlib.h,,[PSPP_OPTIONAL_PREREQ([zlib]); gnm_support=no;])
98
99 if test x"$gnm_support" = x"yes" ; then 
100    AC_DEFINE([GNM_SUPPORT], 1,
101    [Define to 1 if building in support for reading Gnumeric files.])
102 fi
103 AM_CONDITIONAL(GNM_SUPPORT, test x"$gnm_support" = x"yes")
104
105 AC_ARG_WITH(
106   gui_tools,
107   [AS_HELP_STRING([--with-gui-tools], [build the gui developer tools])])
108 if test x"$with_gui_tools" = x"yes" ; then 
109         PKG_CHECK_MODULES(GLADE_UI, gladeui-1.0)
110 fi
111 AM_CONDITIONAL(WITH_GUI_TOOLS, test x"$with_gui_tools" = x"yes")
112
113 AC_SEARCH_LIBS([cblas_dsdot], [gslcblas],,[PSPP_REQUIRED_PREREQ([libgslcblas])])
114 AC_SEARCH_LIBS([gsl_cdf_chisq_Q], [gsl],,[PSPP_REQUIRED_PREREQ([libgsl (version 1.4 or later)])])
115
116 dnl Recent versions of GNU ncurses install the curses header files into
117 dnl /usr/include/ncurses, and provide a 'ncurses5-config' program which
118 dnl enables us to discover where they are. Earlier versions don't have
119 dnl this, so we can't rely on it.  So if ncurses5-config is present,
120 dnl we'll trust it to find the right information.  Otherwise, we'll
121 dnl try to discover it ourselves.
122 dnl To confound things further, Cygwin has decided to rename ncurses5-config
123 dnl to ncurses8-config !!!
124 if test x"$cross_compiling" != x"yes" ; then
125   AC_CHECK_PROGS([NCURSES_CONFIG], [ncurses5-config ncurses8-config])
126 fi
127 if test x"$NCURSES_CONFIG" = x ; then
128   AC_SEARCH_LIBS([tgetent], [ncurses],
129     [curses_available=yes; AC_CHECK_HEADERS([term.h curses.h],,[curses_available=no])])
130 else
131   curses_available=yes
132   NCURSES_CFLAGS=`$NCURSES_CONFIG --cflags`
133   NCURSES_LIBS=`$NCURSES_CONFIG --libs`
134   AC_SUBST(NCURSES_CFLAGS)
135   AC_SUBST(NCURSES_LIBS)
136 fi
137 if test x"$curses_available" = x"yes" ; then
138    AC_DEFINE([LIBNCURSES_USABLE], 1,
139      [Define to 1 if the libncurses is both present and usable.])
140 fi
141 AC_CHECK_HEADERS([termcap.h])
142
143 PSPP_READLINE
144
145 dnl Checks for header files.
146 AC_CHECK_HEADERS([sys/wait.h fpu_control.h ieeefp.h fenv.h])
147
148 # For gnulib.
149 gl_INIT
150
151 AC_C_INLINE
152
153 AC_CHECK_SIZEOF(double)
154
155 AC_C_BIGENDIAN
156
157 AC_CHECK_FUNCS([__setfpucw fork execl execlp isinf isnan finite getpid feholdexcept fpsetmask popen round])
158
159 AC_PROG_LN_S
160
161 AC_ARG_ENABLE(
162   debug, 
163   [AS_HELP_STRING([--enable-debug], 
164                   [Turn on diagnostic features in the program])])
165 if test x"$enable_debug" = x"yes"  ; then
166   AC_DEFINE(DEBUGGING, 1, [Define to 1 if debugging is enabled.])
167 fi
168
169 # iconv is required
170 if test "$am_cv_func_iconv" != "yes"; then
171    PSPP_REQUIRED_PREREQ([iconv (see http://www.gnu.org/software/libiconv/)])
172 fi
173
174 PSPP_CHECK_PREREQS
175
176 AC_CONFIG_FILES([Makefile gl/Makefile po/Makefile.in])
177
178 AC_OUTPUT
179 echo "PSPP configured successfully."
180
181 dnl configure.ac ends here