Close patch #6492
[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 AC_PATH_PROG([PG_CONFIG], [pg_config], [], [$PATH:/usr/local/pgsql/bin:/usr/pgsql/bin])
69 if test -n "$PG_CONFIG" ; then 
70    AC_SUBST(PG_CONFIG)
71    AC_DEFINE([PSQL_SUPPORT], 1,
72    [Define to 1 if building in support for reading from postgres databases.])
73    PG_CFLAGS=-I`$PG_CONFIG --includedir` 
74    AC_SUBST(PG_CFLAGS)
75    
76    if test "x$libpq_in_std_lib_path" != x"yes" ; then
77       PG_LDFLAGS="-L`$PG_CONFIG --libdir` -R`$PG_CONFIG --libdir`"
78    fi
79    AC_SUBST(PG_LDFLAGS)
80
81    PG_LIBS=-lpq
82    AC_SUBST(PG_LIBS)
83    PKG_CHECK_EXISTS(libssl,
84          AC_DEFINE([USE_SSL],1,
85                     [Define to 1 if the openssl library is present.])
86             ,)
87 fi
88 AM_CONDITIONAL(PSQL_SUPPORT, test -n "$PG_CONFIG")
89
90 dnl Checks needed for gnumeric reader
91 gnm_support=yes;
92 PKG_CHECK_MODULES(LIBXML2, libxml-2.0,,
93                            [PSPP_OPTIONAL_PREREQ([libxml2]); gnm_support=no;]);
94 AC_SEARCH_LIBS(gzopen,z,,[PSPP_OPTIONAL_PREREQ([zlib]); gnm_support=no;])
95 AC_CHECK_HEADERS(zlib.h,,[PSPP_OPTIONAL_PREREQ([zlib]); gnm_support=no;])
96
97 if test x"$gnm_support" = x"yes" ; then 
98    AC_DEFINE([GNM_SUPPORT], 1,
99    [Define to 1 if building in support for reading Gnumeric files.])
100 fi
101 AM_CONDITIONAL(GNM_SUPPORT, test x"$gnm_support" = x"yes")
102
103 AC_ARG_WITH(
104   gui_tools,
105   [AS_HELP_STRING([--with-gui-tools], [build the gui developer tools])])
106 if test x"$with_gui_tools" = x"yes" ; then 
107         PKG_CHECK_MODULES(GLADE_UI, gladeui-1.0)
108 fi
109 AM_CONDITIONAL(WITH_GUI_TOOLS, test x"$with_gui_tools" = x"yes")
110
111 AC_SEARCH_LIBS([cblas_dsdot], [gslcblas],,[PSPP_REQUIRED_PREREQ([libgslcblas])])
112 AC_SEARCH_LIBS([gsl_cdf_chisq_Q], [gsl],,[PSPP_REQUIRED_PREREQ([libgsl (version 1.4 or later)])])
113
114 dnl Recent versions of GNU ncurses install the curses header files into
115 dnl /usr/include/ncurses, and provide a 'ncurses5-config' program which
116 dnl enables us to discover where they are. Earlier versions don't have
117 dnl this, so we can't rely on it.  So if ncurses5-config is present,
118 dnl we'll trust it to find the right information.  Otherwise, we'll
119 dnl try to discover it ourselves.
120 dnl To confound things further, Cygwin has decided to rename ncurses5-config
121 dnl to ncurses8-config !!!
122 AC_CHECK_PROGS([NCURSES_CONFIG], [ncurses5-config ncurses8-config])
123 if test x"$NCURSES_CONFIG" = x ; then
124   AC_SEARCH_LIBS([tgetent], [ncurses],
125     [curses_available=yes; AC_CHECK_HEADERS([term.h curses.h],,[curses_available=no])])
126 else
127   curses_available=yes
128   NCURSES_CFLAGS=`$NCURSES_CONFIG --cflags`
129   NCURSES_LIBS=`$NCURSES_CONFIG --libs`
130   AC_SUBST(NCURSES_CFLAGS)
131   AC_SUBST(NCURSES_LIBS)
132 fi
133 if test x"$curses_available" = x"yes" ; then
134    AC_DEFINE([LIBNCURSES_USABLE], 1,
135      [Define to 1 if the libncurses is both present and usable.])
136 fi
137 AC_CHECK_HEADERS([termcap.h])
138
139 PSPP_READLINE
140
141 dnl Checks for header files.
142 AC_CHECK_HEADERS([sys/wait.h fpu_control.h ieeefp.h fenv.h])
143
144 # For gnulib.
145 gl_INIT
146
147 AC_C_INLINE
148
149 AC_CHECK_SIZEOF(double)
150
151 AC_C_BIGENDIAN
152
153 AC_CHECK_FUNCS([__setfpucw fork execl execlp isinf isnan finite getpid feholdexcept fpsetmask popen round])
154
155 AC_PROG_LN_S
156
157 AC_ARG_ENABLE(
158   debug, 
159   [AS_HELP_STRING([--enable-debug], 
160                   [Turn on diagnostic features in the program])])
161 if test x"$enable_debug" = x"yes"  ; then
162   AC_DEFINE(DEBUGGING, 1, [Define to 1 if debugging is enabled.])
163 fi
164
165 # iconv is required
166 if test "$am_cv_func_iconv" != "yes"; then
167    PSPP_REQUIRED_PREREQ([iconv (see http://www.gnu.org/software/libiconv/)])
168 fi
169
170 PSPP_CHECK_PREREQS
171
172 AC_CONFIG_FILES([Makefile gl/Makefile po/Makefile.in])
173
174 AC_OUTPUT
175 echo "PSPP configured successfully."
176
177 dnl configure.ac ends here