2 dnl We require Automake 1.7.2, which requires Autoconf 2.54.
3 dnl (It needs _AC_AM_CONFIG_HEADER_HOOK, for example.)
6 m4_define([gnumeric_version_epoch], [1])
7 m4_define([gnumeric_version_major], [11])
8 m4_define([gnumeric_version_minor], [7])
9 m4_define([gnumeric_version_extra], [])
10 m4_define([gnumeric_version_full],
11 [gnumeric_version_epoch.gnumeric_version_major.gnumeric_version_minor[]gnumeric_version_extra])
13 dnl Emphasize some of the checks.
14 m4_define([BIG_CHECKING], [AC_MSG_CHECKING([
17 AC_INIT([gnumeric], [gnumeric_version_full],
18 [http://bugzilla.gnome.org/enter_bug.cgi?product=gnumeric])
20 AC_CONFIG_SRCDIR(src/sheet.h)
21 AM_INIT_AUTOMAKE([dist-bzip2])
23 dnl Version info for libraries = CURRENT:REVISION:AGE
25 dnl Within each x.y.*, ABI is maintained backward and _forward_ compatible.
26 dnl (As a consequence, no exported function may be added.)
27 dnl So it's enough to have one interface number per each x.y.* branch.
29 dnl OTOH, we are not able to keep ABI strictly backward compatible throughout
31 dnl The easiest way is to declare no ABI compatibility, ie. AGE is always 0.
33 m4_define([version_iface],
34 m4_eval(100 * gnumeric_version_epoch + gnumeric_version_major))
36 AC_SUBST([VERSION_INFO], [version_iface:gnumeric_version_minor:0])
37 AC_SUBST([VERSION_IFACE], [version_iface])
39 dnl Almost like epoch.major but development versions look forward to the next
41 AC_SUBST([GNUMERIC_API_VER], [1.12])
42 AC_SUBST([GNUMERIC_API_VER_], [1_12])
44 dnl This one is created by autoheader, ...
45 AC_CONFIG_HEADERS(gnumeric-config.h)
47 dnl ... and this one is a small subset, maintained manually,
48 dnl which will be installed.
49 AC_CONFIG_HEADERS(gnumeric-features.h)
51 dnl Make sure these two won't clash. Put the following to gnumeric-config.h:
52 AH_BOTTOM([/* Don't include gnumeric-features.h, it's a subset of gnumeric-config.h. */
53 #define GNUMERIC_FEATURES_H])
55 AM_MAINTAINER_MODE([enable])
57 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
59 # Make --disable-static the default
62 dnl We use a LINGUAS file, so we need intltool >= 0.35:
63 IT_PROG_INTLTOOL([0.35.0])
64 IT_PO_SUBDIR(po-functions)
66 if test `expr gnumeric_version_major % 2` -eq 1; then
67 AC_MSG_NOTICE([NOTE: This is a development release])
73 dnl We use $host and $host_os:
84 dnl Propagate Gnome-specific variable ACLOCAL_FLAGS to Makefile.
85 AC_SUBST(ACLOCAL_AMFLAGS, $ACLOCAL_FLAGS)
87 dnl *****************************
90 dnl zlib is needed for the excel plugin; see plugins/excel/Makefile.am
92 _cppflags="${CPPFLAGS}"
96 AS_HELP_STRING([--with-zlib=DIR], [use libz in DIR]),
100 CPPFLAGS="${CPPFLAGS} -I$withval/include"
101 LDFLAGS="${LDFLAGS} -L$withval/lib"
105 if test "x$with_zlib" != xno; then
107 AC_CHECK_HEADER(zlib.h, [AC_CHECK_LIB(z, gzread, [with_zlib=yes])])
110 if test "$with_zlib" = no; then
111 AC_MSG_ERROR([*** zlib is required])
114 if test "x${Z_DIR}" != "x"; then
115 Z_CPPFLAGS="-I${Z_DIR}/include"
117 *-*-solaris*) Z_LIBS="-L${Z_DIR}/lib -R${Z_DIR}/lib -lz" ;;
118 *) Z_LIBS="-L${Z_DIR}/lib -lz" ;;
126 CPPFLAGS=${_cppflags}
132 # Goffice releases are parallel installable, which do we depend on
133 GOFFICE_API_VER="0.10"
134 AC_SUBST(GOFFICE_API_VER)
136 GOFFICE_PLUGINS_DIR=`pkg-config --variable=PluginDir libgoffice-${GOFFICE_API_VER}`
137 AC_SUBST(GOFFICE_PLUGINS_DIR)
138 GOFFICE_VERSION=`pkg-config --modversion libgoffice-${GOFFICE_API_VER}`
139 AC_SUBST(GOFFICE_VERSION)
142 dnl PKG_PROG_PKG_CONFIG is expanded just before the first occurrence of
143 dnl PKG_CHECK_MODULES. Since this is inside an `if,' it can escape
144 dnl execution. Thus we need an explicit call:
145 PKG_PROG_PKG_CONFIG(0.18)
147 dnl *****************************
148 libspreadsheet_reqs="
149 libgoffice-${GOFFICE_API_VER} >= 0.9.6
153 gnumeric_reqs="$libspreadsheet_reqs
155 gobject-2.0 >= 2.28.0
156 gmodule-2.0 >= 2.28.0
157 gthread-2.0 >= 2.28.0
161 libspreadsheet_gtk_reqs="
165 gnumeric_gtk_reqs="$libspreadsheet_gtk_reqs"
171 mingw* | pw32* | cygwin*)
176 dnl *******************
177 dnl Should we use gtk ?
178 dnl *******************
179 gnumeric_with_gtk=true
180 AC_ARG_WITH(gtk, AS_HELP_STRING([--without-gtk], [Build without UI]))
181 if test "x$with_gtk" = xno; then
182 ui_msg="None (Gtk disabled by request)"
183 gnumeric_with_gtk=false
185 dnl We shouldn't silently default to --without-gtk.
186 dnl If the requirements are not met, fail.
188 PKG_CHECK_MODULES(GTK, [$libspreadsheet_gtk_reqs])
189 PKG_CHECK_MODULES(GTK, [$gnumeric_gtk_reqs])
192 if test "x$gnumeric_with_gtk" = xtrue ; then
193 AC_DEFINE(GNM_WITH_GTK, 1, [Define if UI is built])
194 libspreadsheet_reqs="$libspreadsheet_reqs $libspreadsheet_gtk_reqs"
195 gnumeric_reqs="$gnumeric_reqs $gnumeric_gtk_reqs"
198 AM_CONDITIONAL(WITH_GTK, $gnumeric_with_gtk)
200 dnl ****************************
201 dnl now that we have selected out libraries the whole collection in one
202 dnl shot so that we can have a nice neat compile/link line
203 dnl ****************************
205 PKG_CHECK_MODULES(LIBSPREADSHEET, $libspreadsheet_reqs)
206 AC_SUBST(LIBSPREADSHEET_LIBS)
207 AC_SUBST(LIBSPREADSHEET_CFLAGS)
209 PKG_CHECK_MODULES(GNUMERIC, $gnumeric_reqs)
210 AC_SUBST(GNUMERIC_LIBS)
211 AC_SUBST(GNUMERIC_CFLAGS)
216 with_native_win32=yes
217 AC_ARG_VAR(WINDRES, [The windres executable (used by win32 builds only).])
218 AC_CHECK_TOOL(WINDRES, windres, :)
221 AM_CONDITIONAL(WITH_WIN32, test $with_win32 = yes)
222 AM_CONDITIONAL(WITH_NATIVE_WIN32, test $with_native_win32 = yes)
223 AM_CONDITIONAL(CROSS_COMPILING, test x"$cross_compiling" != xno)
225 if test "x$with_win32" = "xyes"; then
226 GNUMERIC_PLUGIN_LDFLAGS="-avoid-version -no-undefined $GNUMERIC_LIBS -Wl,--enable-runtime-pseudo-reloc,--export-all-symbols \$(top_builddir)/src/libspreadsheet.la -s"
228 GNUMERIC_PLUGIN_LDFLAGS="-avoid-version"
230 AC_SUBST(GNUMERIC_PLUGIN_LDFLAGS)
232 dnl disable for in stable release, enable for development series
233 if test $gnumeric_devel = yes; then
234 CFLAGS="$CFLAGS -DG_DISABLE_DEPRECATED"
235 CFLAGS="$CFLAGS -DPANGO_DISABLE_DEPRECATED"
236 if test "x$gnumeric_with_gtk" = xtrue; then
237 CFLAGS="$CFLAGS -DGDK_PIXBUF_DISABLE_DEPRECATED"
238 CFLAGS="$CFLAGS -DGDK_DISABLE_DEPRECATED"
239 CFLAGS="$CFLAGS -DGDK_MULTIHEAD_SAFE"
240 CFLAGS="$CFLAGS -DGTK_DISABLE_DEPRECATED"
241 # CFLAGS="$CFLAGS -DGSEAL_ENABLE"
246 AM_CONDITIONAL(WITH_CORBA, $with_corba)
249 dnl ****************************
250 dnl prep the pixmap generator
251 dnl ****************************
253 AC_ARG_VAR(GLIB_GENMARSHAL, [The glib-genmarshal executable.])
254 AC_CHECK_PROG(GLIB_GENMARSHAL, glib-genmarshal$ac_exeext, glib-genmarshal$ac_exeext)
256 AC_ARG_VAR(GDK_PIXBUF_CSOURCE, [The gdk-pixbuf-csource executable.])
257 AC_CHECK_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource$ac_exeext, gdk-pixbuf-csource$ac_exeext)
259 ## this should come after `AC_PROG_CC'
260 ifdef([GNOME_COMPILE_WARNINGS],
261 [GNOME_COMPILE_WARNINGS] CFLAGS="$CFLAGS $WARN_CFLAGS",
264 set_more_warnings=yes
265 if test "$GCC" = yes -a "x$set_more_warnings" != xno; then
266 warning_options="-Wsign-compare -Wpointer-arith -Wnested-externs \
267 -Wchar-subscripts -Wwrite-strings \
268 -Wdeclaration-after-statement -Wnested-externs \
269 -Wmissing-noreturn -Wmissing-prototypes \
270 -Wmissing-declarations -Wno-pointer-sign \
271 -Werror=format-security -Wbitwise -Wcast-to-as \
272 -Wdefault-bitfield-sign -Wdo-while -Wparen-string \
273 -Wptr-subtraction-blows -Wreturn-void -Wtypesign"
274 if test $gnumeric_devel = yes; then
275 dnl Avoid triggering a warning in gtk+ headers for stable.
276 warning_options="$warning_options -Wstrict-prototypes"
278 for option in $warning_options ; do
279 SAVE_CFLAGS="$CFLAGS"
280 CFLAGS="$CFLAGS $option"
281 AC_MSG_CHECKING([whether gcc understands $option])
282 AC_TRY_COMPILE([], [],
285 if test $has_option = no; then
286 CFLAGS="$SAVE_CFLAGS"
288 AC_MSG_RESULT($has_option)
294 AC_SUBST(WARN_CFLAGS)
296 AC_ARG_ENABLE(ssconvert,
297 AS_HELP_STRING([--disable-ssconvert], [Do not build ssconvert (command line spreadsheet conversion tool)]),
298 [], [enable_ssconvert=yes])
299 AM_CONDITIONAL(ENABLE_SSCONVERT, test x"$enable_ssconvert" = xyes)
301 AC_ARG_ENABLE(ssindex,
302 AS_HELP_STRING([--disable-ssindex], [Do not build ssindex (spreadsheet indexer for beagle)]),
303 [], [enable_ssindex=yes])
304 AM_CONDITIONAL(ENABLE_SSINDEX, test x"$enable_ssindex" = xyes)
306 AC_ARG_ENABLE(ssgrep,
307 AS_HELP_STRING([--disable-ssgrep], [Do not build ssgrep (search for supplied strings in spreadsheet)]),
308 [], [enable_ssgrep=yes])
309 AM_CONDITIONAL(ENABLE_SSGREP, test x"$enable_ssgrep" = xyes)
311 AC_ARG_ENABLE(component,
312 AS_HELP_STRING([--disable-component], [Do not build the goffice component]),
313 [], [enable_component=yes])
315 if test x"$enable_component" = xyes; then
316 component_dir="component"
320 AC_SUBST(COMPONENT_DIR, $component_dir)
322 dnl ****************************
324 dnl ****************************
329 AS_HELP_STRING([--with-gda], [Compile the Gnome Database Access plugin]),
330 if test "x$withval" != xyes; then
332 gda_msg="Disabled by request"
335 if test "$try_gda" = true; then
336 PKG_CHECK_MODULES(GDA, [libgda-4.0 >= 4.1.1],
338 [gda_msg="NO. libgda problem"])
339 AC_CHECK_HEADER(libgda/control-center/gdaui-login-dialog.h,
341 [gda_msg="NO. libgda problem"])
342 if test "$gda_msg" = yes; then
343 PKG_CHECK_MODULES(GNOMEDB, [libgnomedb-4.0 >= 3.99.6],
345 [gnomedb_msg="NO. libgnomedb problem"])
346 if test "$gnomedb_msg" = yes; then
347 AC_DEFINE(HAVE_LIBGNOMEDB, 1, [ Define if libgnomedb support is compiled in])
351 AM_CONDITIONAL(WITH_GDA, test x"$gda_msg" = xyes)
355 AM_CONDITIONAL(WITH_GNOMEDB, test x"$gnomedb_msg" = xyes)
356 AC_SUBST(GNOMEDB_CFLAGS)
357 AC_SUBST(GNOMEDB_LIBS)
359 dnl ****************************
361 AC_CHECK_DECL(fdopen, fdopen_works=yes, fdopen_works=no)
363 if test $fdopen_works = no ; then
364 unset ac_cv_have_decl_fdopen
365 CFLAGS="$CFLAGS -D_POSIX_SOURCE"
366 AC_MSG_NOTICE([adding -D_POSIX_SOURCE to CFLAGS])
367 AC_CHECK_DECL(fdopen, fdopen_works=yes, fdopen_works=no)
368 if test $fdopen_works = no ; then
369 AC_MSG_ERROR([fdopen is not available])
373 # Unfortunately, -D_POSIX_SOURCE turns off struct timeval on Solaris
374 AC_MSG_CHECKING([whether struct timeval is available])
375 AC_TRY_COMPILE([#include <sys/time.h>], [struct timeval tv;], struct_timeval_works=yes, struct_timeval_works=no)
376 AC_MSG_RESULT($struct_timeval_works)
378 if test $struct_timeval_works = no ; then
379 CFLAGS="$CFLAGS -D__EXTENSIONS__"
380 AC_MSG_CHECKING([whether struct timeval is available with -D__EXTENSIONS__])
381 AC_TRY_COMPILE([#include <sys/time.h>], [struct timeval tv;], struct_timeval_works=yes, struct_timeval_works=no)
382 AC_MSG_RESULT($struct_timeval_works)
383 if test $struct_timeval_works = no ; then
384 AC_MSG_ERROR([struct timeval is not available])
388 AC_CHECK_FUNC(gettimeofday,
389 [AC_DEFINE(HAVE_GETTIMEOFDAY, 1,
390 [Define if the gettimeofday function is available]
393 dnl src/functions/fn-math.c uses M_PI
395 AC_MSG_CHECKING([whether M_PI is available])
396 AC_TRY_COMPILE([#include <math.h>], [double f = M_PI], works_without_bsd_source=yes, works_without_bsd_source=no)
397 AC_MSG_RESULT($works_without_bsd_source)
399 if test $works_without_bsd_source = no ; then
400 CFLAGS="$CFLAGS -D_BSD_SOURCE"
401 AC_MSG_CHECKING([whether M_PI is available with -D_BSD_SOURCE])
402 AC_TRY_COMPILE([#include <math.h>], [double f = M_PI], m_pi_works=yes, m_pi_works=no)
403 AC_MSG_RESULT($m_pi_works)
404 if test $m_pi_works = no ; then
405 AC_MSG_ERROR([M_PI is not available])
412 dnl Comment out the guile block:
414 dnl check for guile 1.5
416 guile_msg="disabled pending some guile developer interest"
419 AS_HELP_STRING([--with-guile], [Compile with Guile support or without it]),
420 if test "x$withval" = xyes; then
425 AC_MSG_CHECKING(for guile >= 1.5)
426 if test "`guile -c '(display (string>=? (version) "1.4.1"))'`" != "#t"; then
427 AC_MSG_RESULT([Your Guile is too old. You need Guile 1.5 or later.])
434 if $enable_guile; then
437 AM_CONDITIONAL(WITH_GUILE, $enable_guile)
440 dnl **************************************************
441 dnl * psiconv support
442 dnl **************************************************
445 AS_HELP_STRING([--without-psiconv], [Compile without Psiconv support]))
446 AC_ARG_VAR(PSICONV_CONFIG, [The psiconv-config executable.])
447 if test "x$with_psiconv" != xno; then
448 AC_CHECK_PROG(PSICONV_CONFIG,psiconv-config,psiconv-config)
449 if test x"$PSICONV_CONFIG" = x; then
450 psiconv_msg="missing dependencies"
452 AC_MSG_CHECKING(for psiconv >= 0.9.3)
453 if $PSICONV_CONFIG --version | awk -F. \
454 '{exit !($1 > 0 || $2 > 9 || ($2 == 9 && $3 >= 3))}'
456 PSICONV_CFLAGS=`$PSICONV_CONFIG --cflags`
457 PSICONV_LIBS=`$PSICONV_CONFIG --libs`
462 AC_MSG_RESULT($psiconv_msg)
467 AM_CONDITIONAL(WITH_PSICONV, test "x$psiconv_msg" = xyes)
468 AC_SUBST(PSICONV_LIBS)
469 AC_SUBST(PSICONV_CFLAGS)
474 AS_HELP_STRING([--without-paradox], [Compile without Paradox support]),
475 if test "x$withval" = xno; then
480 if $try_paradox; then
481 PKG_CHECK_MODULES(PARADOX,
484 [paradox_msg="missing dependencies"])
487 if test "x$paradox_msg" = xyes; then
490 AM_CONDITIONAL(WITH_PARADOX, $enable_paradox)
491 AC_SUBST(PARADOX_LIBS)
492 AC_SUBST(PARADOX_CFLAGS)
494 AC_ARG_ENABLE(solver, AS_HELP_STRING([--disable-solver], [Don't compile the solver]))
495 if test "x$enable_solver" = xno; then
499 AC_DEFINE(GNM_ENABLE_SOLVER, 1, [Define if SOLVER is compiled])
501 AM_CONDITIONAL(ENABLE_SOLVER, $enable_solver)
503 plugin_list_given=false
505 AC_ARG_ENABLE(plugins,
506 AS_HELP_STRING([--enable-plugins="text html"], [Compile only the listed plugins]),
507 [plugin_list_given=true
508 test "x$enableval" != xno && PLUGIN_LIST=$enableval
510 AM_CONDITIONAL(PLUGIN_LIST_GIVEN, $plugin_list_given)
511 AC_SUBST(PLUGIN_LIST)
514 for lang in $ALL_LINGUAS; do
515 POFILES_FULL="$POFILES_FULL \$(top_srcdir)/po/$lang.po"
517 AC_SUBST(POFILES_FULL)
519 AC_SUBST(GETTEXT_PACKAGE, gnumeric)
520 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
521 [The package name, for gettext])
524 dnl Code to handle po-functions/Makefile* and po-functions/POTFILES*
526 dnl First, let me document how the po/ directory is dealt with.
527 dnl Dark mysteries here, so skip the next paragraph if you don't have enough
528 dnl holy water at your hand. You have been warned.
530 dnl AM_GLIB_GNU_GETTEXT creates an incorrect incarnation of po/POTFILES, as
531 dnl glib-gettext.m4 doesn't know about intltool tags. Later on, just before
532 dnl config.status is created, a code originating from intltool.m4 creates
533 dnl POTFILES again, this time correctly removing the intltool tags.
534 dnl config.status then creates po/Makefile, again in two steps. First,
535 dnl po/Makefile.in is created from po/Makefile.in.in the usual way, and then
536 dnl a code registered via the obsolete macro AC_OUTPUT_COMMANDS insterts the
537 dnl contents of file POTFILES to po/Makefile.
539 dnl But both glib-gettext and intltool have the dirname "po/" hardwired, so
540 dnl we are on our own with po-functions.
542 dnl We use a more straightforward approach for po-functions:
543 dnl 1) We create POTFILES immediately here.
544 dnl 2) We let config.status to create Makefile.in.
545 dnl 3) We use AC_CONFIG_COMMANDS to create Makefile.
547 [# Create po-functions/POTFILES:
548 if test -d po-functions; then
549 rm -f po-functions/POTFILES
555 [\\/]* | ?:[\\/]* ) # Absolute name.
556 top_srcdir="$srcdir" ;;
557 *) top_srcdir="../$srcdir" ;;
559 sed <$srcdir/po-functions/POTFILES.in -e '/^#/d' -e 's/^[[].*[]] *//' \
560 -e '/^[ ]*$/d' -e "s,^, $top_srcdir/," | \
561 sed -e '$!s/$/ \\/' >po-functions/POTFILES
563 dnl Finally, register for creation of po-functions/Makefile:
564 dnl We do not currently do anything here.
565 AC_CONFIG_COMMANDS(po-functions/Makefile,
566 [cp po-functions/Makefile.in po-functions/Makefile])
569 LIBS="$LIBS $GNUMERIC_LIBS"
570 AC_CHECK_FUNCS(mkfifo)
574 dnl Either of these seem to signal IEEE754 math, see mathfunc.c
575 AC_CHECK_HEADERS(ieeefp.h ieee754.h)
579 dnl Check for some functions
580 AC_CHECK_FUNCS(memmove mkdtemp uname times sysconf)
582 dnl FIXME: Does this really belong here?
583 AC_CHECK_FUNC(bind_textdomain_codeset,,[AC_CHECK_LIB(intl,bind_textdomain_codeset)])
585 dnl check for complete locale implementation
586 AC_CHECK_HEADERS(langinfo.h)
589 AC_CHECK_HEADERS(sys/resource.h)
593 CFLAGS="$CFLAGS $GNUMERIC_CFLAGS"
594 LIBS="$GNUMERIC_LIBS $LIBS"
596 AC_CHECK_FUNCS(gtk_cell_renderer_text_get_background_set gtk_cell_renderer_text_get_foreground_set gtk_cell_renderer_text_get_editable)
597 AC_CHECK_FUNCS(gtk_entry_set_editing_cancelled)
598 AC_CHECK_FUNCS(gsf_infile_msvba_steal_modules gsf_open_pkg_foreach_rel gsf_odf_out_get_version)
600 AC_MSG_CHECKING([for PANGO_WEIGHT_THIN etc.])
601 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pango/pango.h>]],
602 [[(void)(PANGO_WEIGHT_THIN == 42);
603 (void)(PANGO_WEIGHT_MEDIUM == 42);
604 (void)(PANGO_WEIGHT_ULTRAHEAVY == 42);]])],
605 [AC_DEFINE(HAVE_PANGO_WEIGHT_THIN_ETC, 1, [Define if PANGO_WEIGHT_THIN etc are available])
609 AC_MSG_CHECKING([for OO_NS_CHART_OOO])
610 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <gsf/gsf-opendoc-utils.h>]],
611 [[(void)((int)OO_NS_CHART_OOO == 42);]])],
612 [AC_DEFINE(HAVE_OO_NS_CHART_OOO, 1, [Define if OO_NS_CHART_OOO is available])
619 dnl We supply our own lgamma and lgamma_r when missing.
620 AC_CHECK_FUNCS(lgamma_r)
621 if test $ac_cv_func_lgamma_r = no; then
622 AC_CHECK_LIB(m, lgamma_r,
623 [AC_DEFINE(HAVE_LGAMMA_R, 1,
624 [Define if the lgamma_r function is available]
628 AC_CHECK_FUNCS(lgamma)
632 AC_ARG_WITH(long_double,
633 AS_HELP_STRING([--with-long-double], [Use long double for floating point]),
634 [if test "x$withval" = xyes; then
635 SAVE_CFLAGS="$CFLAGS"
637 CFLAGS="$GNUMERIC_CFLAGS"
638 LIBS="$GNUMERIC_LIBS"
640 AC_CHECK_HEADERS(sunmath.h)
642 AC_CHECK_FUNCS(go_render_generall,
644 AC_MSG_ERROR([libgoffice needs to be compiled with long double support.]))
646 AC_CHECK_FUNCS(fabsl sqrtl expl expm1l logl log10l log1pl ceill floorl powl hypotl \
647 sinl cosl tanl asinl acosl atanl atan2l fmodl lgammal lgammal_r \
648 sinhl coshl tanhl asinhl acoshl atanhl \
651 AC_MSG_ERROR([Long doubles require the $ldfunc function.]))
653 AC_MSG_CHECKING([checking for working ynl])
656 #ifdef HAVE_SUNMATH_H
661 long double l = ynl (2, 4.0L);
662 return !(l >= 0.21 && l <= 0.22);
667 [AC_CHECK_FUNCS(ynl)])
669 AC_MSG_CHECKING([checking for working erfl and erfcl])
672 #ifdef HAVE_SUNMATH_H
677 long double l1 = erfl (1.2L);
678 long double l2 = erfcl (1.2L);
679 return !(l1 >= 0.91 && l1 <= 0.92 &&
680 l2 >= 0.08 && l2 <= 0.09);
682 [AC_DEFINE(HAVE_ERFL)
683 AC_DEFINE(HAVE_ERFCL)
686 [AC_CHECK_FUNCS(erfl erfcl)])
688 CFLAGS="$SAVE_CFLAGS"
691 float_msg="long double (EXPERIMENTAL)"
692 AC_MSG_WARN([Long double support is experimental -- expect problems])
693 AC_DEFINE(GNM_WITH_LONG_DOUBLE, 1,
694 [Define if the long double type is to be used]
699 dnl **************************************************
700 dnl * Check for GSettings
701 dnl **************************************************
703 AC_CHECK_LIB(gio-2.0,[g_settings_new],
704 [AC_DEFINE(HAVE_G_SETTINGS_NEW, 1,
705 [Define if the g_settings_new function is available])
709 AC_SUBST(GSETTINGS_RULES)])
710 AM_CONDITIONAL(HAVE_GSETTINGS, test $have_gsettings=yes)
712 dnl **************************************************
714 dnl **************************************************
716 AC_ARG_VAR(PERL, [The Perl executable.])
717 AC_CHECK_PROG(PERL, perl, perl)
722 AC_ARG_WITH(perl, AS_HELP_STRING([--without-perl], [Do not build the Perl plugin loader]),
727 if test "x$want_perl" = xno ; then
728 perl_reason="disabled by request"
730 if test "x$PERL" != x; then
731 BIG_CHECKING([for perl ExtUtils::Embed module])
732 if $PERL -e 'eval { require ExtUtils::Embed }; if ($@) { exit(1); } else { exit(0); }'
736 dnl Use ExtUtils::Embed to figure out the other options.
737 PERL_CCCDLFLAGS=`$PERL -MConfig -e 'print $Config{cccdlflags},"\n";'`
738 PERL_LDDLFLAGS=`$PERL -MConfig -e 'print $Config{lddlflags},"\n";'`
739 PERL_CC=`$PERL -MConfig -e 'print $Config{cc},"\n";'`
740 PERL_LD=`$PERL -MConfig -e 'print $Config{ld},"\n";'`
741 PERL_CCOPTS=`$PERL -MExtUtils::Embed -e ccopts`
742 PERL_LDOPTS=`$PERL -MExtUtils::Embed -e ldopts`
744 AC_MSG_CHECKING([Checking for perl compiler, linker, libraries and headers])
745 rm -f testperl$ac_exeext testperl.$ac_objext testperl.c testperl.err
746 cat > testperl.c <<EOF
750 int main () { (void)&perl_construct; return 0; }
752 $PERL_CC $PERL_CCOPTS -c testperl.c >testperl.err 2>&1 &&
753 $PERL_LD -o testperl testperl.o $PERL_LDOPTS >testperl.err 2>&1 &&
756 AC_MSG_RESULT($have_perl)
758 if test "x$have_perl" != xyes; then
759 perl_reason="failed to compile test program"
760 cat testperl.err testperl.c >&AS_MESSAGE_LOG_FD
763 rm -f testperl$ac_exeext testperl.$ac_objext testperl.c testperl.err
767 perl_reason="missing parts of perl"
770 perl_reason="missing perl"
774 if test "$want_perl" = xyes -a "x$have_perl" != xyes; then
775 AC_MSG_ERROR([Perl requested, but not available: $perl_reason])
778 AM_CONDITIONAL(WITH_PERL, test "x$have_perl" = xyes)
779 if test "x$have_perl" = xyes ; then
780 perl_msg="yes (using $PERL)"
782 perl_msg="no ($perl_reason)"
784 AC_SUBST(PERL_CCCDLFLAGS)
785 AC_SUBST(PERL_LDDLFLAGS)
788 AC_SUBST(PERL_CCOPTS)
789 AC_SUBST(PERL_LDOPTS)
791 dnl **************************************************
792 dnl * Check for Python
793 dnl **************************************************
799 AC_ARG_WITH(python, AS_HELP_STRING([--without-python], [Do not build the Python plugin loader]))
800 AC_ARG_VAR(PYTHON, [The Python executable.])
803 ?*) AC_MSG_ERROR([You cannot use --with-python with an argument.
804 If you want to specify a path to your Python executable, use:
805 $srcdir/configure PYTHON=/path/to/your/python ...]);;
807 if test "x$with_python" != xno; then
808 AC_CHECK_PROGS(PYTHON, python python2 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0)
809 if test "x$PYTHON" = x; then
810 python_msg="could not find python"
813 python_msg="Disabled by request"
816 if test "x$python_msg" = xyes; then
817 BIG_CHECKING([for python = 2.x])
818 [PY_VERSION=`$PYTHON -c 'import sys ; sys.stdout.write(sys.version[0:3])'`
819 major_ver=`$PYTHON -c 'import sys ; sys.stdout.write(sys.version[0:1])'`]
820 if test "x$major_ver" = "x2"; then
822 if test "x$with_native_win32" = xyes ; then
823 # 2.x on linux, 2x on win32
824 PY_VERSION=`echo $PY_VERSION | sed -e 's/\\.//'`
828 python_msg="NO. Python version \"${PY_VERSION}\" is too old."
832 if test "x$python_msg" = xyes; then
833 if test "x$PY_PREFIX" = x; then
834 PY_PREFIX=`$PYTHON -c 'import sys ; sys.stdout.write(sys.prefix)'`
836 if test "x$PY_INCLUDE_DIR" = x; then
837 if test "x$with_native_win32" = xyes ; then
838 PY_INCLUDE_DIR="$PY_PREFIX/include"
840 PY_INCLUDE_DIR=`$PYTHON -c 'import sys ; import distutils.sysconfig ; sys.stdout.write(distutils.sysconfig.get_python_inc())'`
844 BIG_CHECKING(Look for $PY_INCLUDE_DIR/Python.h)
845 if test -f $PY_INCLUDE_DIR/Python.h; then
849 python_msg="unable to find Python.h"
853 if test "x$python_msg" = xyes; then
854 m4_define([pygobject_required_version], [3.0.0])
855 PKG_CHECK_MODULES(PYGOBJECT, pygobject-3.0 >= pygobject_required_version,,
856 [python_msg="Missing pygobject"])
859 AM_CONDITIONAL(WITH_PYTHON, test "x$python_msg" = xyes)
860 if test "x$python_msg" = xyes; then
861 if test "x$PY_LIB_DIR" = x; then
862 if test "x$with_native_win32" = xyes ; then
863 PY_LIB_DIR="$PY_PREFIX/libs"
865 PY_LIB_DIR=`$PYTHON -c 'import sys ; import distutils.sysconfig ; sys.stdout.write(distutils.sysconfig.get_config_var("LIBPL"))'`
869 GNM_PY_CFLAGS="-I$PY_INCLUDE_DIR $PYGOBJECT_CFLAGS"
870 GNM_PY_LDFLAGS="-L$PY_LIB_DIR -lpython$PY_VERSION $PYGOBJECT_LIBS"
871 python_msg="yes (using $PYTHON)"
873 AC_SUBST(GNM_PY_CFLAGS)
874 AC_SUBST(GNM_PY_LDFLAGS)
875 AC_SUBST(GNM_PY_LIBADD)
877 # Support for PDF docs
878 AC_ARG_ENABLE(pdfdocs,
879 AS_HELP_STRING([--enable-pdfdocs],[Generate documentation in Portable Document Format]),
880 [enable_pdfdocs=$enableval],
882 pdf_msg="No, not requested.";
883 if test x"$enable_pdfdocs" = xyes; then
885 AC_CHECK_PROG(DBCONTEXT, [dbcontext], [dbcontext], [])
886 AC_CHECK_PROG(DBLATEX, [dblatex], [dblatex], [])
887 if test x"$DBCONTEXT" = x"dbcontext"; then
890 if test x"$DBLATEX" = x"dblatex"; then
894 if test x"$pdfroute" != x""; then
895 pdf_msg="Yes, through $pdfroute."
898 Did not find a suitable tool for generating Portable Document Format from
899 DocBook XML - aborting.
901 Both the DocBook to ConTeXt and the DocBook to LaTeX conversion tool can be
903 http://dblatex.sourceforge.net/
908 AM_CONDITIONAL(ENABLE_PDFDOCS, test x"$enable_pdfdocs" = xyes)
909 AM_CONDITIONAL(ENABLE_PDF_VIA_DBCONTEXT, test x"$pdfroute" = x"dbcontext")
910 AM_CONDITIONAL(ENABLE_PDF_VIA_DBLATEX, test x"$pdfroute" = x"dblatex")
913 dnl A tricky way to comment out in m4:
915 dnl **************************************************
917 dnl **************************************************
919 mono_msg="disabled, still experimental"
921 AC_ARG_WITH(mono, AS_HELP_STRING([--with-mono], [Compile the mono scripting engine]))
923 no) mono_msg="Disabled by request";;
925 PKG_CHECK_MODULES(MONO, mono,
927 AC_DEFINE(WITH_MONO, 1, [Define if mono .NET engine is available])],
932 AM_CONDITIONAL(WITH_MONO, test "x$with_mono" = xyes)
933 AC_SUBST(MONO_CFLAGS)
937 # GObject Introspection
939 AC_ARG_ENABLE(introspection,
940 AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]],
941 [Enable introspection for this build]),,
942 [enable_introspection=no])
944 AC_MSG_CHECKING([for gobject-introspection])
946 dnl presence/version checking
947 AS_CASE([$enable_introspection],
949 found_introspection="no (disabled, use --enable-introspection to enable)"
952 PKG_CHECK_EXISTS([gobject-introspection-1.0],,
953 AC_MSG_ERROR([gobject-introspection-1.0 is not installed]))
954 PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $GIR_REQ],
955 found_introspection=yes,
956 AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME]))
959 PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $GIR_REQ], found_introspection=yes, found_introspection=no)
960 dnl Canonicalize enable_introspection
961 enable_introspection=$found_introspection
964 AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@])
967 AC_MSG_RESULT([$found_introspection])
969 INTROSPECTION_SCANNER=
970 INTROSPECTION_COMPILER=
971 INTROSPECTION_GENERATE=
972 INTROSPECTION_GIRDIR=
973 INTROSPECTION_TYPELIBDIR=
974 if test "x$found_introspection" = "xyes"; then
975 INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
976 INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
977 INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
978 INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
979 INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
980 INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
981 INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
982 INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
984 AC_SUBST(INTROSPECTION_SCANNER)
985 AC_SUBST(INTROSPECTION_COMPILER)
986 AC_SUBST(INTROSPECTION_GENERATE)
987 AC_SUBST(INTROSPECTION_GIRDIR)
988 AC_SUBST(INTROSPECTION_TYPELIBDIR)
989 AC_SUBST(INTROSPECTION_CFLAGS)
990 AC_SUBST(INTROSPECTION_LIBS)
991 AC_SUBST(INTROSPECTION_MAKEFILE)
993 AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes")
994 dnl we need to change the install directories for distcheck
995 AC_ARG_WITH([gir-dir],
999 path to gir repository
1000 (automatically detected via pkg-config)
1004 [GIRDIR=$INTROSPECTION_GIRDIR]
1007 AC_ARG_WITH([typelib-dir],
1009 [--with-typelib-dir],
1011 path to typelibs repository
1012 (automatically detected via pkg-config)
1015 [TYPELIBDIR=$withval],
1016 [TYPELIBDIR=$INTROSPECTION_TYPELIBDIR]
1018 AC_SUBST(TYPELIBDIR)
1020 dnl **************************************************
1021 dnl * Config defaults
1022 dnl **************************************************
1024 dnl These are changed in gutils.c for WIN32 packages
1025 AC_SUBST(gnumeric_datadir, '${datadir}/gnumeric/${VERSION}')
1026 AC_SUBST(gnumeric_libdir, '${libdir}/gnumeric/${VERSION}')
1027 AC_SUBST(gnumeric_icondir, '${datadir}/pixmaps/gnumeric')
1028 AC_SUBST(gnumeric_localedir, '${prefix}/${DATADIRNAME}/locale')
1030 AC_SUBST(gnumeric_plugindir, '${gnumeric_libdir}/plugins')
1031 AC_SUBST(gnumeric_externplugindir, '${libdir}/gnumeric/${GNUMERIC_API_VER}/plugins')
1033 AC_SUBST(YYYYMMDD, `date +%Y%m%d`)
1035 dnl Export to gnumeric-config.h
1036 AC_DEFINE(GNM_VERSION_FULL, "gnumeric_version_full",
1037 [The version number of this release, with optional extra suffix])
1038 AC_DEFINE(GNM_VERSION_EPOCH, gnumeric_version_epoch,
1039 [The Epoch of this release])
1040 AC_DEFINE(GNM_VERSION_MAJOR, gnumeric_version_major,
1041 [The Major version number of this release])
1042 AC_DEFINE(GNM_VERSION_MINOR, gnumeric_version_minor,
1043 [The Minor version number of this release])
1044 AC_DEFINE(GNM_VERSION_EXTRA, "gnumeric_version_extra",
1045 [Extra, possibly empty tag for this release])
1046 AC_DEFINE(GNM_API_VERSION, "GNUMERIC_API_VER",
1047 [The API version number of this release])
1054 icons/16x16/Makefile
1055 icons/22x22/Makefile
1056 icons/24x24/Makefile
1057 icons/32x32/Makefile
1058 icons/48x48/Makefile
1059 icons/scalable/Makefile
1061 src/dialogs/Makefile
1062 src/pixmaps/Makefile
1063 src/widgets/Makefile
1065 src/cut-n-paste-code/Makefile
1068 doc/C/figures/Makefile
1069 doc/C/figures/icons/Makefile
1070 doc/developer/Makefile
1072 plugins/fn-christian-date/Makefile
1073 plugins/fn-complex/Makefile
1074 plugins/fn-database/Makefile
1075 plugins/fn-date/Makefile
1076 plugins/fn-derivatives/Makefile
1077 plugins/fn-eng/Makefile
1078 plugins/fn-erlang/Makefile
1079 plugins/fn-financial/Makefile
1080 plugins/fn-hebrew-date/Makefile
1081 plugins/fn-info/Makefile
1082 plugins/fn-logical/Makefile
1083 plugins/fn-lookup/Makefile
1084 plugins/fn-math/Makefile
1085 plugins/fn-numtheory/Makefile
1086 plugins/fn-r/Makefile
1087 plugins/fn-stat/Makefile
1088 plugins/fn-string/Makefile
1089 plugins/fn-random/Makefile
1090 plugins/fn-tsa/Makefile
1091 plugins/applix/Makefile
1092 plugins/corba/Makefile
1093 plugins/dif/Makefile
1094 plugins/excel/Makefile
1095 plugins/excelplugins/Makefile
1096 plugins/gda/Makefile
1097 plugins/gnome-db/Makefile
1098 plugins/gnome-glossary/Makefile
1099 plugins/html/Makefile
1100 plugins/lotus-123/Makefile
1101 plugins/lpsolve/Makefile
1102 plugins/nlsolve/Makefile
1103 plugins/glpk/Makefile
1104 plugins/mps/Makefile
1105 plugins/oleo/Makefile
1106 plugins/openoffice/Makefile
1107 plugins/paradox/Makefile
1108 plugins/perl-func/Makefile
1109 plugins/perl-loader/Makefile
1110 plugins/plan-perfect/Makefile
1111 plugins/psiconv/Makefile
1112 plugins/py-func/Makefile
1113 plugins/python-loader/Makefile
1114 plugins/qpro/Makefile
1115 plugins/sample_datasource/Makefile
1117 plugins/sylk/Makefile
1118 plugins/uihello/Makefile
1119 plugins/xbase/Makefile
1121 po-functions/Makefile.in
1123 schemas/org.gnome.gnumeric.gschema.xml.in
1124 schemas/org.gnome.gnumeric.dialogs.gschema.xml.in
1125 schemas/org.gnome.gnumeric.plugin.gschema.xml.in
1127 templates/english/Makefile
1128 templates/autoformat/Makefile
1131 tools/win32/Makefile
1132 tools/win32/moduleset
1133 tools/win32/gnumeric.nsi
1141 Source code location: ${srcdir}
1143 Compiler flags: ${CFLAGS}
1144 Floating point type: ${float_msg}
1148 Perl Support: ${perl_msg}
1149 Python Support: ${python_msg}
1151 GDA support: ${gda_msg}
1152 GNOME-DB support: ${gnomedb_msg}
1153 Psiconv support: ${psiconv_msg}
1155 PDF documentation: ${pdf_msg}
1157 # Mono support: ${mono_msg}
1158 # Guile Support: ${guile_msg}