diff options
Diffstat (limited to 'configure.in')
-rwxr-xr-x | configure.in | 8197 |
1 files changed, 8197 insertions, 0 deletions
diff --git a/configure.in b/configure.in new file mode 100755 index 000000000000..65813cb18f42 --- /dev/null +++ b/configure.in @@ -0,0 +1,8197 @@ +dnl configure.in serves as input for the GNU autoconf package +dnl in order to create a configure script. + +AC_INIT([LibreOffice], [3.4],,, [http://documentfoundation.org/]) +AC_PREREQ(2.50) +echo "$@" >config.parms + +dnl =================================================================== +dnl Optional Features (--enable/disable-) +dnl =================================================================== + +dnl ---------- Extensions ---------- + +AC_ARG_ENABLE(ext-barcode, + AS_HELP_STRING([--enable-ext-barcode], + [Enables the Barcode extension.]), +,) + +AC_ARG_ENABLE(ext-diagram, + AS_HELP_STRING([--enable-ext-diagram], + [Enables the Diagram extension.]), +,) + +AC_ARG_ENABLE(ext-google-docs, + AS_HELP_STRING([--enable-ext-google-docs], + [Download and enables the Google Documents extension.]), +,) + +AC_ARG_ENABLE(ext-hunart, + AS_HELP_STRING([--enable-ext-hunart], + [Enables the Hungarian Cross-reference Toolbar extension.]), +,) + +AC_ARG_ENABLE(ext-lightproof, + AS_HELP_STRING([--enable-ext-lightproof], + [Enables the Lightproof extension.]), +,) + +AC_ARG_ENABLE(ext-mysql-connector, + AS_HELP_STRING([--enable-ext-mysql-connector], + [Enables the build of the MySQL Connector/LibO extension. This requires + access to the MySQL Connector/C (aka libmysql) to be given, too, with + either the --with-system-mysql or --with-libmysql-path option.]), +,) + +AC_ARG_ENABLE(ext-nlpsolver, + AS_HELP_STRING([--enable-ext-nlpsolver], + [Download and enables the NLPSolver extension.]), +,) + +AC_ARG_ENABLE(ext-ct2n, + AS_HELP_STRING([--enable-ext-ct2n], + [Enables the ConvertTextToNumber extension.]), +,) + +AC_ARG_ENABLE(ext-numbertext, + AS_HELP_STRING([--enable-ext-numbertext], + [Enables the Numbertext extension.]), +,) + +AC_ARG_ENABLE(ext-oooblogger, + AS_HELP_STRING([--enable-ext-oooblogger], + [Download and enables the OOo Blogger extension.]), +,) + +AC_ARG_ENABLE(ext-pdfimport, + AS_HELP_STRING([--enable-ext-pdfimport], + [Enables the PDF Import extension and xpdf.]), +,) + +AC_ARG_ENABLE(ext-presenter-console, + AS_HELP_STRING([--enable-ext-presenter-console], + [Enables the Presenter Console extension.]), +,) + +AC_ARG_ENABLE(ext-presenter-minimizer, + AS_HELP_STRING([--enable-ext-presenter-minimizer], + [Enables the Presentation Minimizer extension.]), +,) + +AC_ARG_ENABLE(ext-report-builder, + AS_HELP_STRING([--enable-ext-report-builder], + [Enables the build of the Report Builder extension.]), +,) + +AC_ARG_ENABLE(ext-scripting-beanshell, + AS_HELP_STRING([--enable-ext-scripting-beanshell], + [Enables support for scripts in BeanShell.]), +,) + +AC_ARG_ENABLE(ext-scripting-javascript, + AS_HELP_STRING([--enable-ext-scripting-javascript], + [Enables support for scripts in JavaScript.]), +,) + +AC_ARG_ENABLE(ext-scripting-python, + AS_HELP_STRING([--enable-ext-scripting-python], + [Enables support for scripts in Python.]), +,) + +AC_ARG_ENABLE(ext-typo, + AS_HELP_STRING([--enable-ext-typo], + [Enables the Typography Toolbar extension.]), +,) + +AC_ARG_ENABLE(ext-validator, + AS_HELP_STRING([--enable-ext-validator], + [Enables the Validator extension.]), +,) + +AC_ARG_ENABLE(ext-watch-window, + AS_HELP_STRING([--enable-ext-watch-window], + [Enables the Watch Window extension to Calc.]), +,) + +AC_ARG_ENABLE(ext-wiki-publisher, + AS_HELP_STRING([--enable-ext-wiki-publisher], + [Enables the Wiki Publisher extension.]), +,) + +dnl ---------- *** ---------- + +AC_ARG_ENABLE(graphite, + AS_HELP_STRING([--enable-graphite], + [Enables the compilation of Graphite smart font rendering.]), +,) + +AC_ARG_ENABLE(ldap, + AS_HELP_STRING([--disable-ldap], + [Disables the use of LDAP backend via Netscape/Mozilla or OpenLDAP LDAP SDK]), +,) + +AC_ARG_ENABLE(fetch-external, + AS_HELP_STRING([--disable-fetch-external], + [Disables fetching external tarballs from web sources.]), +,) + +AC_ARG_ENABLE(lockdown, + AS_HELP_STRING([--disable-lockdown], + [Disables the gconf integration work in LibO.]), +,enable_lockdown=yes) + +AC_ARG_ENABLE(vba, + AS_HELP_STRING([--disable-vba], + [Disables the vba compatibility feature.]), +,) + +AC_ARG_ENABLE(pch, + AS_HELP_STRING([--enable-pch], + [EXPERIMENTAL: Enables precompiled header support for C++.]), +,) + +AC_ARG_ENABLE(mozilla, + AS_HELP_STRING([--disable-mozilla], + [LibO usually includes a strangely hacked up mozilla binary for your + platform, to build without this version, use this option.]), +,enable_mozilla=yes) + +AC_ARG_ENABLE(epm, + AS_HELP_STRING([--enable-epm], + [LibO includes self-packaging code, that requires epm, however epm is + useless for large scale package building.]), +,enable_epm=no) + +AC_ARG_ENABLE(activex_component, + AS_HELP_STRING([--disable-activex-component], + [Remove support for ActiveX embedding of LibO.]), +,enable_activex_component=yes) + +AC_ARG_ENABLE(odk, + AS_HELP_STRING([--disable-odk], + [LibO includes an ODK, office development kit which some packagers may + with to build without.]), +,enable_odk=yes) + +AC_ARG_ENABLE(mathmldtd, + AS_HELP_STRING([--disable-mathmldtd], + [Disable mathmldtd (useful for distributions that want to avoid + packaging it).]), +,enable_mathmldtd=yes) + +AC_ARG_ENABLE(evolution2, + AS_HELP_STRING([--enable-evolution2], + [Allows the built-in evolution 2 addressbook connectivity build to be + enabled.])) + +AC_ARG_ENABLE(cups, + AS_HELP_STRING([--disable-cups], + [Disable cups support in the psprint project.])) + +AC_ARG_ENABLE(fontconfig, + AS_HELP_STRING([--disable-fontconfig], + [Disable support for the fontconfig library.]), +,enable_fontconfig=yes) + +AC_ARG_ENABLE(directx, + AS_HELP_STRING([--disable-directx], + [Remove DirectX implementation for the new XCanvas interface. + The DirectX support requires more stuff installed on Windows to + compile. (DirectX SDK, GDI+ libs)]), +,enable_directx=yes) + +AC_ARG_ENABLE(activex, + AS_HELP_STRING([--disable-activex], + [Disable the use of ActiveX for windows build.]) + [ + This switch is mandatory when using VC++ 2008 Express. + ], +,) + +AC_ARG_ENABLE(atl, + AS_HELP_STRING([--disable-atl], + [Disable the use of ATL for windows build.]) + [ + This switch is mandatory when using VC++ 2008 Express. + ], +,) + +AC_ARG_ENABLE(symbols, + AS_HELP_STRING([--enable-symbols], + [Include debugging symbols in output. WARNING - a complete build needs + 8 Gb of space and takes much longer (enables -g compiler flag).]) + [ + Enabling symbols disables the stripping of the solver + (--disable-strip-solver). + ], +,) + +AC_ARG_ENABLE(strip-solver, + AS_HELP_STRING([--disable-strip-solver], + [Disable the stripping of the solver. By default the solver is stripped + unless a build with debugging symbols (--enable-symbols) is requested.]) + [ + This switch allows to override this setting. + ], +,) + +AC_ARG_ENABLE(werror, + AS_HELP_STRING([--enable-werror], + [Turn warnings to errors. (Has no effect in modules where the treating + of warnings as errors is disabled explicitly.)]), +,) + +AC_ARG_ENABLE(debug, + AS_HELP_STRING([--enable-debug], + [Include debugging symbols from --enable-symbols plus extra debugging + code. Extra large build! (enables -g compiler flag and dmake debug=true) + If you need even more verbose output, build a module with + "build -- debug=true dbglevel=2".])) + +AC_ARG_ENABLE(dbgutil, + AS_HELP_STRING([--enable-dbgutil], + [Include additional debugging utilities, such as assertions, object + counting, etc. Larger build. Independent from --enable-debug])) + +AC_ARG_ENABLE(crashdump, + AS_HELP_STRING([--enable-crashdump], + [Enable the crashdump feature.])) + +AC_ARG_ENABLE(python, + AS_HELP_STRING([--disable-python], + [Disable build of Python 2.x UNO API.])) +AC_ARG_ENABLE(gtk, + AS_HELP_STRING([--disable-gtk], + [Determines whether to use Gtk+ vclplug on platforms where Gtk+ is available.]), +,enable_gtk=yes) + +AC_ARG_ENABLE(systray, + AS_HELP_STRING([--disable-systray], + [Determines whether to build the systray quickstarter.]), +,enable_systray=yes) + +AC_ARG_ENABLE(broffice, + AS_HELP_STRING([--disable-broffice], + [When disabled, broffice specific branding artwork for use in the pt_BR + locale is removed, giving uniform branding.]), +,enable_broffice=no) + +AC_ARG_ENABLE(split-app-modules, + AS_HELP_STRING([--enable-split-app-modules], + [Split file lists for app modules, e.g. base, calc. + Has effect only with make distro-pack-install]), +,) + +AC_ARG_ENABLE(split-opt-features, + AS_HELP_STRING([--enable-split-opt-features], + [Split file lists for some optional features, .e.g. pyuno, testtool. + Has effect only with make distro-pack-install]), +,) + +AC_ARG_ENABLE(cairo, + AS_HELP_STRING([--disable-cairo], + [Determines whether to use Cairo library on platforms where Cairo is + available.]), +,enable_cairo=yes) + +AC_ARG_ENABLE(opengl, + AS_HELP_STRING([--disable-opengl], + [Determines whether to build the OpenGL 3D slide transitions component.]), +,enable_opengl=yes) + +AC_ARG_ENABLE(dbus, + AS_HELP_STRING([--enable-dbus], + [Determines whether to enable presentation mode screensaver control + under GNOME via DBUS.]), +,enable_dbus=no) + +AC_ARG_ENABLE(gconf, + AS_HELP_STRING([--disable-gconf], + [Determines whether to use the GConf support.]), +,enable_gconf=yes) + +AC_ARG_ENABLE(gnome-vfs, + AS_HELP_STRING([--disable-gnome-vfs], + [Determines whether to use the Gnome Virtual Filing System on platforms + where that VFS is available.]), +,enable_gnome_vfs=yes) + +AC_ARG_ENABLE(gio, + AS_HELP_STRING([--enable-gio], + [Determines whether to use the GIO support.]), +,enable_gio=no) + +AC_ARG_ENABLE(static-gtk, + AS_HELP_STRING([--enable-static-gtk], + [Modules that are linked against gtk libraries use the static libraries + instead of the dynamic ones. (Enables -Bstatic linker flag for gtk libraries.)]), +,) + +AC_ARG_ENABLE(layout, + AS_HELP_STRING([--enable-layout], + [Enable the compilation and use of layout dialogs.]), +,) + +AC_ARG_ENABLE(build-mozilla, + AS_HELP_STRING([--disable-build-mozilla], + [Use this option if you do not want to build the mozilla components from + the mozilla source code but take precompiled zips.]), +,) + +AC_ARG_ENABLE(nss_module, + AS_HELP_STRING([--disable-nss-module], + [Whether to use provided NSS module.]), +,enable_nss_module=yes) + +AC_ARG_ENABLE(kde, + AS_HELP_STRING([--enable-kde], + [Determines whether to use Qt3/KDE3 vclplug on platforms where Qt3 and + KDE3 are available.]), +,) + +AC_ARG_ENABLE(kdeab, + AS_HELP_STRING([--disable-kdeab], + [Disable the KDE3 address book support.]), +, + if test "$enable_kde" = "yes"; then + enable_kdeab=yes; + fi +) + +AC_ARG_ENABLE(kde4, + AS_HELP_STRING([--enable-kde4], + [Determines whether to use Qt4/KDE4 vclplug on platforms where Qt4 and + KDE4 are available. May be used with --enable-kde if you want to support + both KDE3 and KDE4.]), +,) + +AC_ARG_ENABLE(unix-qstart-libpng, + AS_HELP_STRING([--disable-unix-qstart-libpng], + [On UNIX systems, we have a faster splash app, that can use libpng to + render its splash, if we can safely link to the system libpng then + enabling this is a good idea (ie. for Linux Distro packaging).]), +,enable_unix_libpng=yes) + +AC_ARG_ENABLE(binfilter, + AS_HELP_STRING([--enable-binfilter], + [Enable legacy binary file formats filters build.]), +,enable_binfilter=no +) + +AC_ARG_ENABLE(rpath, + AS_HELP_STRING([--disable-rpath], + [Disable the use of relative paths in shared libraries.]), +,) + +AC_ARG_ENABLE(xrender-link, + AS_HELP_STRING([--enable-xrender-link], + [Link with libXrender instead of dynamically open it.]), +,) + +AC_ARG_ENABLE(randr, + AS_HELP_STRING([--disable-randr], + [Disable RandR support in the vcl project.]), +,enable_randr=yes) + +AC_ARG_ENABLE(randr-link, + AS_HELP_STRING([--disable-randr-link], + [Disable linking with libXrandr, instead dynamically open it at runtime.]), +,enable_randr_link=yes) + +AC_ARG_ENABLE(gstreamer, + AS_HELP_STRING([--disable-gstreamer], + [Disable building the gstreamer avmedia backend.]), +,enable_gstreamer=yes) + +AC_ARG_ENABLE(neon, + AS_HELP_STRING([--disable-neon], + [Disable neon and the compilation of webdav binding.]), +,) + +AC_ARG_ENABLE(Xaw, + AS_HELP_STRING([--disable-Xaw], + [Disables the use of Xaw for the Netscape/Mozilla plugin.]), +,) + +AC_ARG_ENABLE(check-only, + AS_HELP_STRING([--enable-check-only], + [Use this option option if you just want to check your environment. + This option stops the generation of an ????env.set.]) + [ + Usage: --enable-check-only=yes + ], +,) + +AC_ARG_ENABLE(build-unowinreg, + AS_HELP_STRING([--enable-build-unowinreg], + [Do not use the prebuilt unowinreg.dll. Build it instead. The MinGW C++ + compiler is needed on Linux.]) + [ + Usage: --enable-build-unowinreg + ], +,) + +AC_ARG_ENABLE(verbose, + AS_HELP_STRING([--enable-verbose], + [Increase build verbosity.])[ + --disable-verbose Decrease build verbosity.], +,) + +AC_ARG_ENABLE(dependency-tracking, + AS_HELP_STRING([--enable-dependency-tracking], + [Do not reject slow dependency extractors.])[ + --disable-dependency-tracking + Disables generation of dependency information. + Speed up one-time builds.], +,) + +AC_ARG_ENABLE(icecream, + AS_HELP_STRING([--enable-icecream], + [Use the 'icecream' distributed compiling tool to speedup the compilation. + It defaults to /opt/icecream for the location of the icecream gcc/g++ + wrappers, you can override that using --with-gcc-home=/the/path switch.]), +,) + +AC_ARG_ENABLE(zenity, + AS_HELP_STRING([--disable-zenity], + [Do not display a build icon in the notification area (on unix) during build.]), +,enable_zenity=yes) + +AC_ARG_ENABLE(cl-x64, + AS_HELP_STRING([--enable-cl-x64], + [Use the Microsoft C/C++ x64 compiler instead of the default x86 one.]), +,) + +AC_ARG_ENABLE(extra-gallery, + AS_HELP_STRING([--enable-extra-gallery], + [Add extra gallery content.]), +,) + +AC_ARG_ENABLE(extra-template, + AS_HELP_STRING([--enable-extra-template], + [Add extra temaplte content.]), +,) + +AC_ARG_ENABLE(extra-sample, + AS_HELP_STRING([--enable-extra-sample], + [Add extra sample content.]), +,) + +AC_ARG_ENABLE(extra-font, + AS_HELP_STRING([--enable-extra-font], + [Add extra font content.]), +,) + +AC_ARG_ENABLE(lomenubar, + AS_HELP_STRING([--enable-lomenubar], + [Enable global menu support.]), +,) + +AC_ARG_ENABLE(online-update, + AS_HELP_STRING([--enable-online-update], + [Enable the online update service that will check for new versions of + LibreOffice. By default, it is on on Windows and Mac, and off on Linux.]), +,) + +dnl =================================================================== +dnl Optional Packages (--with/without-) +dnl =================================================================== +AC_ARG_WITH(gnu-patch, + AS_HELP_STRING([--with-gnu-patch], + [Specify location of GNU patch on Solaris or FreeBSD.]), +,) + +AC_ARG_WITH(gnu-cp, + AS_HELP_STRING([--with-gnu-cp], + [Specify location of GNU cp on Solaris or FreeBSD.]), +,) + +AC_ARG_WITH(system-graphite, + AS_HELP_STRING([--with-system-graphite], + [Use graphite library already installed on system.]), +,) + +AC_ARG_WITH(external-tar, + AS_HELP_STRING([--with-external-tar=<TARFILE PATH>], + [Specify path to tarfiles manually.]), + TARFILE_LOCATION=$withval , +) + +AC_ARG_WITH(linked-git, + AS_HELP_STRING([--with-linked-git=<OTHER_CLONE_DIR>], + [Specify another checkout's clonedir to re-use. This makes use of + git-new-workdir, and saves a lot of diskspace when having multiple + trees side-by-side.]), + GIT_LINK_SRC=$withval , +) + +AC_ARG_WITH(openldap, + AS_HELP_STRING([--with-openldap], + [Enables the use of the OpenLDAP LDAP SDK instead of the Netscape/Mozilla one.]), +,) + +AC_ARG_WITH(vba-package-format, + AS_HELP_STRING([--with-vba-package-format], + [Specify package format for vba compatibility api. Specifying "builtin" + means the api component and associated type library are part of the + installation set. Specifying "extn" creates an uno extension that is + part of the installation set (located in the program directory) that + MUST be optionly registered using either the unopkg executeable or the + extension manager gui.]) + [ + Note: "builtin" is the default, "extn" can cause + problems. + + Usage: --with-vba-package-format="builtin" or + --with-vba-package-format="extn" + ], +,) + +AC_ARG_WITH(theme, + AS_HELP_STRING([--with-theme="theme1 theme2..."], + [Choose which themes to include. By default those themes with an '*' are included. + Possible choices: *default, *crystal, *hicontrast, *oxygen, *tango, classic, industrial.]), +,) + +AC_ARG_WITH(theme, + AS_HELP_STRING([--with-theme="theme1 theme2..."], + [Choose which themes to include. By default those themes with an '*' are included. + Possible choices: *default, *crystal, *hicontrast, *oxygen, *tango, classic, industrial.]), +,) + +AC_ARG_WITH(extension-integration, + AS_HELP_STRING([--with-extension-integration], + [It will integrate the builded extensions to the installer of the product. + Please use this switch to include any extension.]), +,) + +AC_ARG_WITH(helppack-integration, +[ + --without-helppack-integration It will not integrate the helppacks to the installer + of the product. + Please use this switch to use the online help or separate help packages.], +,) + +AC_ARG_WITH(fonts, + AS_HELP_STRING([--without-fonts], + [LibO includes some third-party fonts to provide a reliable basis for + help content, templates, samples, etc. When these fonts are already + known to be available on the system then you should use this option.]), +,) + +AC_ARG_WITH(ppds, + AS_HELP_STRING([--without-ppds], + [Removes Postscript Printer definition files from LibreOffice + installation set, for people building for specific distributions where + PPDs are known to be already available (every recent distro with CUPS backend).]), +,) + +AC_ARG_WITH(afms, + AS_HELP_STRING([--without-afms], + [Removes bitmap font files from LibreOffice installation set, for people + building for specific distributions where AFM files or TrueType Fonts + are known to be available.]), +,) + +AC_ARG_WITH(agfa-monotype-fonts, + AS_HELP_STRING([--with-agfa-monotype-fonts], + [Do not include the proprietary Agfa Monotype fonts + (even if present) in the LibreOffice installation + set.]) +,) + +AC_ARG_WITH(epm, + AS_HELP_STRING([--with-epm], + [Decides which epm to use. Default is to use the one from the system if + one is built. When either this is not there or you say =internal epm + will be built.]), +,) + +AC_ARG_WITH(package-format, + AS_HELP_STRING([--with-package-format], + [Specify package format(s) for LibO installsets. Default is the + "normal" one of the OS/Distribution. Possible values: aix, bsd, deb, + inst, tardist, osx, pkg, rpm, setld, native, portable, archive, dmg, + installed, msi. Example: --with-package-format="deb dmg"]), +,) + +AC_ARG_WITH(system-stdlibs, + AS_HELP_STRING([--with-system-stdlibs], + [Use libstdc++/libgcc_s already on system.]), +,) + +AC_ARG_WITH(system-cairo, + AS_HELP_STRING([--with-system-cairo], + [Use Cairo libraries already on system.]), +,) + +AC_ARG_WITH(mozilla-version, + AS_HELP_STRING([--with-mozilla-version], + [Choose which version of mozilla to use while building mozilla. + (default=1.7.5) Note that not all versions are supported.]), +,) + +AC_ARG_WITH(mozilla-toolkit, + AS_HELP_STRING([--with-mozilla-toolkit], + [Choose which GUI toolkit to use while building mozilla components. (default=gtk2)]), +,) + +AC_ARG_WITH(myspell-dicts, + AS_HELP_STRING([--without-myspell-dicts], + [Removes myspell dictionaries from LibreOffice installation set, for + people building for specific distributions where the myspell dictionaries + are installed from other sources.]), +,) + +AC_ARG_WITH(system-dicts, + AS_HELP_STRING([--with-system-dicts], + [Use dictionaries from system paths- Specify them via + --with-{dict,hyph,thes}-path=/path if you want to override the default ones.]), +,) + +AC_ARG_WITH(external-dict-dir, + AS_HELP_STRING([--with-external-dict-dir], + [Specify external dictionary dir.]), +,) + +AC_ARG_WITH(external-hyph-dir, + AS_HELP_STRING([--with-external-hyph-dir], + [Specify external hyphenation pattern dir.]), +,) + +AC_ARG_WITH(external-thes-dir, + AS_HELP_STRING([--with-external-thes-dir], + [Specify external thesaurus dir.]), +,) + +AC_ARG_WITH(system-libs, + AS_HELP_STRING([--with-system-libs], + [Use libs already on system -- enables all --with-system-* flags except + mozilla and odbc/sane/xrender-header(s).]), +,) + +AC_ARG_WITH(system-headers, + AS_HELP_STRING([--with-system-headers], + [Use headers already on system -- enables all --with-system-* flags for + external packages whose headers are the only entities used i.e. + boost/vigra/odbc/sane/xrender-header(s).]), +,) + +AC_ARG_WITH(system-jars, + AS_HELP_STRING([--without-system-jars], + [When building with --with-system-libs, also the needed jars are expected + on the system. Use this to disable that (except for the db case where + --with-system-db *has to* imply using the db.jar from there, too).]), +,) + +AC_ARG_WITH(system-zlib, + AS_HELP_STRING([--with-system-zlib], + [Use zlib already on system.]), +,) + +AC_ARG_WITH(system-openssl, + AS_HELP_STRING([--with-system-openssl], + [Use OpenSSL already on system.]), +,) + +AC_ARG_WITH(system-jpeg, + AS_HELP_STRING([--with-system-jpeg], + [Use jpeg already on system.]), +,) + +AC_ARG_WITH(system-expat, + AS_HELP_STRING([--with-system-expat], + [Use expat already on system.]), +,) + +AC_ARG_WITH(system-libwpd, + AS_HELP_STRING([--with-system-libwpd], + [Use libwpd already on system.]), +,) + +AC_ARG_WITH(system-libwps, + AS_HELP_STRING([--with-system-libwps], + [Use libwps already on system.]), +,) + +AC_ARG_WITH(system-libwpg, + AS_HELP_STRING([--with-system-libwpg], + [Use libwpg already on system.]), +,) + +AC_ARG_WITH(system-libxml, + AS_HELP_STRING([--with-system-libxml], + [Use libxml already on system.]), +,) + +AC_ARG_WITH(system-python, + AS_HELP_STRING([--with-system-python], + [Use python already on system.]), +,with_system_python=yes) + +AC_ARG_WITH(system-translate-toolkit, + AS_HELP_STRING([--with-system-translate-toolkit], + [Use translate-toolkit already on system.])) + +AC_ARG_WITH(system-icu, + AS_HELP_STRING([--with-system-icu], + [Use icu already on system.])) + +AC_ARG_WITH(system-poppler, + AS_HELP_STRING([--with-system-poppler], + [Use system poppler. (only needed for pdfimport extension)])) + +AC_ARG_WITH(system-db, + AS_HELP_STRING([--with-system-db], + [Use berkeley db already on system.])) + +AC_ARG_WITH(system-lucene, + AS_HELP_STRING([--with-system-lucene], + [Use lucene already on system.])) + +AC_ARG_WITH(system-apache-commons, + AS_HELP_STRING([--with-system-apache-commons], + [Use apache commons libraries already on system.])) + +AC_ARG_WITH(lucene-core-jar, + AS_HELP_STRING([--with-lucene-core-jar=JARFILE], + [Specify path to jarfile manually.]), + LUCENE_CORE_JAR=$withval) + +AC_ARG_WITH(lucene-analyzers-jar, + AS_HELP_STRING([--with-lucene-analyzers-jar=JARFILE], + [Specify path to jarfile manually.]), + LUCENE_ANALYZERS_JAR=$withval ,) + +AC_ARG_WITH(system-mysql, + AS_HELP_STRING([--with-system-mysql], + [Use MySQL libraries already on system, for building the MySQL Connector/LibO + extension. Requires MYSQLCONFIG to point to the mysql_config executable.])) + +AC_ARG_WITH(libmysql-path, + AS_HELP_STRING([--with-libmysql-path], + [Use Connector/C (libmysql) installation for building the MySQL + Connector/LibO extension.]) + [ + Usage: --with-libmysql-path=<absolute path to + your Connector/C installation> + ], +,) + +AC_ARG_WITH(system-mysql-cppconn, + AS_HELP_STRING([--with-system-mysql-cppconn], + [Use MySQL C++ Connector libraries already on system.])) + +AC_ARG_WITH(system-hsqldb, + AS_HELP_STRING([--with-system-hsqldb], + [Use hsqldb already on system.])) + +AC_ARG_WITH(hsqldb-jar, + AS_HELP_STRING([--with-hsqldb-jar=JARFILE], + [Specify path to jarfile manually.]), + HSQLDB_JAR=$withval) + +AC_ARG_WITH(system-beanshell, + AS_HELP_STRING([--with-system-beanshell], + [Use beanshell already on system.])) + +AC_ARG_WITH(beanshell-jar, + AS_HELP_STRING([--with-beanshell-jar=JARFILE], + [Specify path to jarfile manually.]), + BSH_JAR=$withval) + +AC_ARG_WITH(commons-codec-jar, + AS_HELP_STRING([--with-commons-codec-jar=JARFILE], + [Specify path to jarfile manually.]), + COMMONS_CODEC_JAR=$withval) + +AC_ARG_WITH(commons-lang-jar, + AS_HELP_STRING([--with-commons-lang-jar=JARFILE], + [Specify path to jarfile manually.]), + COMMONS_LANG_JAR=$withval) + +AC_ARG_WITH(commons-httpclient-jar, + AS_HELP_STRING([--with-commons-httpclient-jar=JARFILE], + [Specify path to jarfile manually.]), + COMMONS_HTTPCLIENT_JAR=$withval) + +AC_ARG_WITH(commons-logging-jar, + AS_HELP_STRING([--with-commons-logging-jar=JARFILE], + [Specify path to jarfile manually.]), + COMMONS_LOGGING_JAR=$withval) + +AC_ARG_WITH(servlet-api-jar, + AS_HELP_STRING([--with-servlet-api-jar=JARFILE], + [Specify path to jarfile manually.]), + SERVLETAPI_JAR=$withval) + +AC_ARG_WITH(system-jfreereport, + AS_HELP_STRING([--with-system-jfreereport], + [Use JFreeReport already on system.])) + +AC_ARG_WITH(sac-jar, + AS_HELP_STRING([--with-sac-jar=JARFILE], + [Specify path to jarfile manually.]), + SAC_JAR=$withval) + +AC_ARG_WITH(libxml-jar, + AS_HELP_STRING([--with-libxml-jar=JARFILE], + [Specify path to jarfile manually.]), + LIBXML_JAR=$withval) + +AC_ARG_WITH(flute-jar, + AS_HELP_STRING([--with-flute-jar=JARFILE], + [Specify path to jarfile manually.]), + FLUTE_JAR=$withval) + +AC_ARG_WITH(jfreereport-jar, + AS_HELP_STRING([--with-jfreereport-jar=JARFILE], + [Specify path to jarfile manually.]), + JFREEREPORT_JAR=$withval) + +AC_ARG_WITH(liblayout-jar, + AS_HELP_STRING([--with-liblayout-jar=JARFILE], + [Specify path to jarfile manually.]), + LIBLAYOUT_JAR=$withval) + +AC_ARG_WITH(libloader-jar, + AS_HELP_STRING([--with-libloader-jar=JARFILE], + [Specify path to jarfile manually.]), + LIBLOADER_JAR=$withval) + +AC_ARG_WITH(libloader-jar, + AS_HELP_STRING([--with-libloader-jar=JARFILE], + [Specify path to jarfile manually.]), + LIBLOADER_JAR=$withval) + +AC_ARG_WITH(libformula-jar, + AS_HELP_STRING([--with-libformula-jar=JARFILE], + [Specify path to jarfile manually.]), + LIBFORMULA_JAR=$withval) + +AC_ARG_WITH(librepository-jar, + AS_HELP_STRING([--with-librepository-jar=JARFILE], + [Specify path to jarfile manually.]), + LIBREPOSITORY_JAR=$withval) + +AC_ARG_WITH(libfonts-jar, + AS_HELP_STRING([--with-libfonts-jar=JARFILE], + [Specify path to jarfile manually.]), + LIBFONTS_JAR=$withval) + +AC_ARG_WITH(libserializer-jar, + AS_HELP_STRING([--with-libserializer-jar=JARFILE], + [Specify path to jarfile manually.]), + LIBSERIALIZER_JAR=$withval) + +AC_ARG_WITH(libbase-jar, + AS_HELP_STRING([--with-libbase-jar=JARFILE], + [Specify path to jarfile manually.]), + LIBBASE_JAR=$withval) + +AC_ARG_WITH(system-saxon, + AS_HELP_STRING([--with-system-saxon], + [Use saxon already on system.])) + +AC_ARG_WITH(saxon-jar, + AS_HELP_STRING([--with-saxon-jar=JARFILE], + [Specify path to jarfile manually.]), + SAXON_JAR=$withval) + +AC_ARG_WITH(system-libxslt, + AS_HELP_STRING([--with-system-libxslt], + [Use libxslt already on system.])) + +AC_ARG_WITH(system-odbc, + AS_HELP_STRING([--with-system-odbc], + [Use the odbc headers already on system.])) + +AC_ARG_WITH(system-sane, + AS_HELP_STRING([--with-system-sane-header], + [Use sane.h already on system.])) + +AC_ARG_WITH(system-xrender-headers, + AS_HELP_STRING([--with-system-xrender-headers], + [Use XRender headers already on system.])) + +AC_ARG_WITH(system-mesa-headers, + AS_HELP_STRING([--with-system-mesa-headers], + [Use Mesa headers already on system.])) + +AC_ARG_WITH(system-curl, + AS_HELP_STRING([--with-system-curl], + [Use curl already on system.])) + +AC_ARG_WITH(system-boost, + AS_HELP_STRING([--with-system-boost], + [Use boost already on system.])) + +AC_ARG_WITH(system-mdds, + AS_HELP_STRING([--with-system-mdds], + [Use mdds already on system.])) + +AC_ARG_WITH(system-vigra, + AS_HELP_STRING([--with-system-vigra], + [Use vigra already on system.])) + +AC_ARG_WITH(system-neon, + AS_HELP_STRING([--with-system-neon], + [Use neon already on system.])) + +AC_ARG_WITH(system-hunspell, + AS_HELP_STRING([--with-system-hunspell], + [Use libhunspell already on system.])) + +AC_ARG_WITH(system-mythes, + AS_HELP_STRING([--with-system-mythes], + [Use mythes already on system.])) + +AC_ARG_WITH(system-altlinuxhyph, + AS_HELP_STRING([--with-system-altlinuxhyph], + [Use ALTLinuxhyph already on system.])) + +AC_ARG_WITH(system-lpsolve, + AS_HELP_STRING([--with-system-lpsolve], + [Use lpsolve already on system.])) + +AC_ARG_WITH(system-libtextcat, + AS_HELP_STRING([--with-system-libtextcat], + [Use libtextcat already on system.])) + +AC_ARG_WITH(external-libtextcat-data, + AS_HELP_STRING([--with-external-libtextcat-data], + [Use libtextcat data already on system.])) + +AC_ARG_WITH(system-cppunit, + AS_HELP_STRING([--with-system-cppunit], + [Use cppunit already on system.])) + +AC_ARG_WITH(system-redland, + AS_HELP_STRING([--with-system-redland], + [Use redland library already on system.])) + +AC_ARG_WITH(system-mozilla, + AS_HELP_STRING([--with-system-mozilla], + [Use mozilla already on system. Note that some components cannot be built + against a contemporary mozilla. The flavour used can be specified by + --with-system-mozilla=<flavour>. Supported are: libxul (default), + xulrunner, firefox, seamonkey, mozilla.]), + WITH_SYSTEM_MOZILLA=$withval , +WITH_SYSTEM_MOZILLA=no) + +AC_ARG_WITH(linker-hash-style, + AS_HELP_STRING([--with-linker-hash-style], + [Use linker with --hash-style=<style> when linking shared objects. + Possible values: "sysv", "gnu", "both". The default value is "gnu" + if supported on the build system, and "sysv" otherwise.])) + +AC_ARG_WITH(stlport, + AS_HELP_STRING([--with-stlport], + [Build the STLPort library for compatibility with old extensions for + architectures where STLPort used to be used.]), + with_stlport=$withval , +with_stlport=auto) + +AC_ARG_WITH(jdk-home, + AS_HELP_STRING([--with-jdk-home], + [If you have installed JDK 1.3 or later on your system please supply the + path here. Note that this is not the location of the Java binary but the + location of the entire distribution.]) + [ + Usage: --with-jdk-home=<absolute path to JDK home> + ], +,) + +AC_ARG_WITH(gxx_include_path, + AS_HELP_STRING([--with-gxx-include-path], + [If you want to override the autodetected g++ include path.]) + [ + Usage: --with-gxx-include-path=<absolute path to + g++ include dir> + ], +,) + +AC_ARG_WITH(java, + AS_HELP_STRING([--with-java], + [Build with(out) Java support. If you use --without-java/--with-java=no + then the build will have no support for Java components, applets, + accessibility or XML filters.]), + if test "$withval" = "yes"; then + WITH_JAVA=java; + else + WITH_JAVA=$withval; + fi , +WITH_JAVA=java) + +AC_ARG_WITH(java_target_version, + AS_HELP_STRING([--with-java-target-version], + [Generate class files that will work on JVMs with the specified version. + For example, use --with-java-target-version=1.4 to make sure that the + application will work with JVM 1.4 even when compiled with JDK 1.5.]) + [ + This option is ignored when you compile with gcj/gij. + + Usage: --with-java-target-version=<jvm version> + ], +,) + +AC_ARG_WITH(jvm-path, + AS_HELP_STRING([--with-jvm-path], + [Use a specific JVM search path at runtime.]) + [ + Usage: --with-jvm-path=<absolute path to parent of jvm home> + + e. g.: --with-jvm-path=/usr/lib/ + to find JRE/JDK in /usr/lib/jvm/ + ], +,) +AC_ARG_WITH(ant-home, + AS_HELP_STRING([--with-ant-home], + [If you have installed Jakarta Ant on your system, please supply the path here. + Note that this is not the location of the Ant binary but the location + of the entire distribution.]) + [ + Usage: --with-ant-home=<absolute path to Ant home> + ], +,) + +AC_ARG_WITH(junit, + AS_HELP_STRING([--with-junit], + [Specifies the JUnit 4 jar file to use for JUnit-based tests. + --without-junit disables those tests. Not relevant in the --without-java case.]) + [ + Usage: --with-junit=<absolute path to JUnit 4 jar> + ], +,with_junit=yes) + +AC_ARG_WITH(perl-home, + AS_HELP_STRING([--with-perl-home], + [If you have installed the Perl 5 Distribution, on your system, please + supply the path here. Note that this is not the location of the Perl + binary but the location of the entire distribution.]) + [ + Usage: --with-perl-home=<abs. path to Perl 5 home> + ], +,) + +AC_ARG_WITH(cl-home, + AS_HELP_STRING([--with-cl-home], + [For Windows NT users, please supply the path for the Microsoft C/C++ + compiler. Note that this is not the location of the compiler binary but + the location of the entire distribution.]) + [ + Usage: --with-cl-home=<absolute path to Microsoft + C/C++ compiler home> + ], +,) + +AC_ARG_WITH(mspdb-path, + AS_HELP_STRING([--with-mspdb-path], + [For Microsoft C/C++ compiler users, please supply the path pointing to + the mspdb80.dll (if using Visual Studio 2008) or mspdb100.dl (if using + Visual Studio 2010).]) + [ + Usage: --with-mspdb-path=<path to + mspdb80.dll/mspdb100.dll> + ], +,) + +AC_ARG_WITH(midl-path, + AS_HELP_STRING([--with-midl-path], + [For Microsoft compiler users, please supply the path pointing to the midl.exe.]) + [ + Usage: --with-midl-path=<abs. path to midl.exe> + ], +,) + +AC_ARG_WITH(csc-path, + AS_HELP_STRING([--with-csc-path], + [For Windows builds, please supply the path pointing to the csc.exe. + Usually found automatically.]) + [ + Usage: --with-csc-path=<abs. path to csc.exe> + ], +,) + +AC_ARG_WITH(nsis-path, + AS_HELP_STRING([--with-nsis-path], + [For Windows users, please supply the path to the "Nullsoft Scriptable + Install System" (NSIS). If NSIS is found in the path or this option is + supplied a self contained executable installer for LibreOffice will + be created.]) + [ + Usage: --with-nsis-path=<abs. path to nsis.exe> + ], +,) + +AC_ARG_WITH(frame-home, + AS_HELP_STRING([--with-frame-home], + [For Microsoft compiler users, please supply the path pointing to + lib/mscoree.lib, usually something like: + "/cygdrive/c/Program Files/Windows SDKs/Windows/v7.0"]) + [ + Note that in most cases it will be automatically + found, though. + + Usage: --with-frame-home=<absolute path to .NET + Framework> + ], +,) + +AC_ARG_WITH(psdk-home, + AS_HELP_STRING([--with-psdk-home], + [For Windows users, please supply the path to the Windnows SDK. + Usually found automatically.]) + [ + Usage: --with-psdk-home=<abs. path to Windows SDK> + ], +,) + +AC_ARG_WITH(directx-home, + AS_HELP_STRING([--with-directx-home], + [For Windows users, please supply the path to the Microsoft DirectX SDK.]) + [ + Usage: --with-directx-home=<absolute path to + Microsoft DirectX SDK> + ], +,) + +AC_ARG_WITH(mozilla-build, + AS_HELP_STRING([--with-mozilla-build], + [For Windows users, please supply the path to the mozilla build tools.]) + [ + Usage: --with-mozilla-build=<absolute path to + mozilla build tools> + + At the moment of this writing, an installer for the + mozilla build tools can be obtained from http://ftp. + mozilla.org/pub/mozilla.org/mozilla/libraries/win32. + ], + MOZILLABUILD=$withval , +) + +AC_ARG_WITH(local-solenv, + AS_HELP_STRING([--with-local-solenv], + [If you have solenv in a location other than ./solenv, please supply the path here.]) + [ + Usage: --with-local-solenv=<abs. path to solenv> + ], +,) + +AC_ARG_WITH(local-solver, + AS_HELP_STRING([--with-local-solver], + [If you have solver in a location other than ./solver, please supply the path here.]) + [ + Usage: --with-local-solver=<abs. path to solver> + ], +,) + +AC_ARG_WITH(lang, + AS_HELP_STRING([--with-lang], + [Use this option to build LibreOffice with additional language support. + English (US) is always included by default. + Separate multiple languages with space. + For all languages, use --with-lang=ALL.]) + [ + Usage: --with-lang="es sw tu cs sk" + ], +,) + +AC_ARG_WITH(intro-bitmap, +[ --with-intro-bitmap Prefer the specified intro bitmap over the + the default one. + + Usage: --with-intro-bitmap=/path/my_ooo_intro.png +],,) + +AC_ARG_WITH(about-bitmap, +[ --with-about-bitmap Similarly to --with-intro-bitmap, this allows + specification of bitmap for the About box. + + Usage: --with-about-bitmap=/path/my_ooo_about.png +],,) + +AC_ARG_WITH(vendor, + AS_HELP_STRING([--with-vendor], + [Set vendor of the build.]) + [ + Usage: --with-vendor="John the Builder" + ], +,) + +AC_ARG_WITH(install-dirname, + AS_HELP_STRING([--with-install-dirname], + [Specify the directory name of the core LibO install dir. The final + installation path is defined by <libdir>/<install-dirname>. + The default value is "libreoffice" and the default installation + path is /usr/lib/libreoffice. + + FIXME: It affects only the installation by "make install" and not the + generated installation sets.]) + [ + Usage: --with-install-dirname=lo-3.4.2 + ], +,) + +AC_ARG_WITH(unix-wrapper, + AS_HELP_STRING([--with-unix-wrapper], + [Redefines the name of the UNIX wrapper that will be used in the desktop + files and in the desktop-integration RPMs.]) + [ + Usage: --with-unix-wrapper=ooffice + ], +,) + +AC_ARG_WITH(compat-oowrappers, + AS_HELP_STRING([--with-compat-oowrappers], + [Install oo* wrappers in parallel with + lo* ones to keep backward compatibility. + Has effect only with make distro-pack-install]), +,) + +AC_ARG_WITH(asm-home, + AS_HELP_STRING([--with-asm-home], + [For Windows, please supply the path for the ml.exe or ml64.exe assembler.]) + [ + Usage: --with-asm-home=<path to assembler directory> + ], +,) + +AC_ARG_WITH(os-version, + AS_HELP_STRING([--with-os-version], + [For FreeBSD users, use this option option to override the detected OSVERSION.]) + [ + Usage: --with-os-version=<OSVERSION> + ], +,) + +AC_ARG_WITH(zip-home, + AS_HELP_STRING([--with-zip-home], + [If you use a non standard zip, for example windows please supply the path for zip.]) + [ + Usage: --with-zip-home=<path to zip executable> + ], +,) + +AC_ARG_WITH(mingw, + AS_HELP_STRING([--with-mingw], + [For Windows users, use the MinGW compiler within a Cygwin environment.]) + [ + Usage: --with-mingw=yes + + For non-Windows use, use the MinGW C++ compiler to + (re-)build unowinreg.dll. Specify the MinGW C++ + Compilers name. + + Usage: --with-mingw=i586-mingw32msvc-g++ + ], + WITH_MINGW=$withval , +WITH_MINGW=0) + +AC_ARG_WITH(build-version, + AS_HELP_STRING([--with-build-version], + [Allows the builder to add a custom version tag that will appear in the + Help/About box for QA purposes.]) + [ + Usage: --with-build-version="Built by Jim" + ], + with_build_version=$withval , +) + +AC_ARG_WITH(alloc, + AS_HELP_STRING([--with-alloc], + [Define which allocator to build with (choices are oo, system, tcmalloc, jemalloc). + Note that on FreeBSD/NetBSD system==jemalloc]), +,) + +AC_ARG_WITH(sun-templates, + AS_HELP_STRING([--with-sun-templates], + [Integrate Sun template packages.]), +,) + +AC_ARG_WITH(num-cpus, + AS_HELP_STRING([--with-num-cpus], + [Number of build processes/cpus to use (number of projects that will build at the same time). + Multi-process/multi-cpu builds can save a lot of time on multi-cpu machines. + Defaults to the number of CPUs on the machine.]), +,) + +AC_ARG_WITH(max-jobs, + AS_HELP_STRING([--with-max-jobs], + [Maximum number of jobs per one CPU that will be issued at the same time my dmake. + The real number of the jobs is affected by the --with-num-cpus too, it can get up to CPUS*max_jobs. + Defaults to 1, unless you configure --enable-icecream - then to 10.]), +,) + +BUILD_TYPE="LibO" +SCPDEFS="" + +echo "********************************************************************" +echo "*" +echo "* Running ${PACKAGE_NAME} build configuration." +echo "*" +echo "********************************************************************" +echo "" + +dnl =================================================================== +dnl check for required programs (grep, awk, sed, bash) +dnl =================================================================== +cat /dev/null > warn + +if test "$EUID" -eq "0" -a "z`uname -o 2>/dev/null`" = "zCygwin" ; then + AC_MSG_ERROR([You must build LibreOffice as a normal user - not using an administrative account]) +fi + +save_CC=$CC +save_CXX=$CXX + +AC_PROG_EGREP +AC_PROG_AWK +AC_PATH_PROG( AWK, $AWK) +if test -z "$AWK"; then + AC_MSG_ERROR([install awk to run this script]) +fi + +AC_PATH_PROGS(SED, sed ) +if test -z "$SED"; then + AC_MSG_ERROR([install sed to run this script]) +fi + +AC_PATH_PROG(BASH, bash) +if test -z "$BASH"; then + AC_MSG_ERROR([bash not found in \$PATH]) +fi +AC_SUBST(BASH) + +AC_MSG_CHECKING([for GNU or BSD tar]) +for a in $GNUTAR gtar gnutar tar; do + $a --version 2> /dev/null | egrep "GNU|bsdtar" 2>&1 > /dev/null + if test $? -eq 0; then + GNUTAR=$a + break + fi +done +AC_MSG_RESULT($GNUTAR) +if test -z "$GNUTAR"; then + AC_MSG_ERROR([not found. install GNU or BSD tar.]) +fi +AC_SUBST(GNUTAR) + +dnl =================================================================== +dnl Checks for --with-local-solenv invocation +dnl TODO: Is this still required? +dnl =================================================================== +AC_MSG_CHECKING([for solenv environment]) +if test -z "$with_local_solenv"; then + LOCAL_SOLENV="DEFAULT" + AC_MSG_RESULT([default]) +else + LOCAL_SOLENV=$with_local_solenv + AC_MSG_RESULT([$with_local_solenv]) +fi +AC_SUBST(LOCAL_SOLENV) + +if test "$LOCAL_SOLENV" = "DEFAULT"; then + _solenv="./solenv" +else + _solenv="$LOCAL_SOLENV" +fi +AC_SUBST(_solenv) + +if test -e $_solenv/inc/minor.mk; then + # Get UPD number from ./solenv/inc/minor.mk + UPD="`grep RSCVERSION= $_solenv/inc/minor.mk | $AWK -F"=" '{ print $2 }'`" + AC_SUBST(UPD) + SOURCEVERSION="`grep SOURCEVERSION= $_solenv/inc/minor.mk | $AWK -F"=" '{ print $2 }'`" + AC_SUBST(SOURCEVERSION) +else + AC_MSG_ERROR([$_solenv/inc/minor.mk missing but needed for architecture/os detecion and proper environment script generation...]) +fi + +dnl =================================================================== +dnl Checks for the operating system and processor. +dnl =================================================================== +AC_CANONICAL_HOST + +dnl =================================================================== +dnl The following is a list of supported systems. +dnl Sequential to keep the logic very simple +dnl These values may be checked and reset later. +dnl =================================================================== +#defaults unless the os test overrides this: +test_cairo=yes +test_randr=yes +test_cups=yes +test_fontconfig=yes + +case "$host_os" in + solaris*) + test_gtk=yes + build_gstreamer=yes + test_kde=yes + test_freetype=yes + test_gstreamer=yes + _os=SunOS + AC_PATH_PROG( GNUTAR, gtar,,$PATH:/usr/sfw/bin) + if test -z "$GNUTAR"; then + AC_MSG_ERROR([gtar (gnu tar) not found but needed. Install it (SUN Freeware package).]) + fi + AC_SUBST(GNUTAR) + + dnl =========================================================== + dnl check whether we're using solaris 6,7,8 - sparc or intel. + dnl =========================================================== + AC_MSG_CHECKING([the Solaris operating system release]) + _os_release=`echo $host_os | $SED -e s/solaris2\.//` + if test "$_os_release" -lt "6"; then + AC_MSG_ERROR([use solaris >= 6 to build LibreOffice]) + else + AC_MSG_RESULT([ok ($_os_release)]) + fi + + dnl check whether we're using a sparc or i386 processor + AC_MSG_CHECKING([the processor type]) + if test "$host_cpu" = "sparc" -o "$host_cpu" = "i386"; then + AC_MSG_RESULT([ok ($host_cpu)]) + else + AC_MSG_ERROR([only sparc and i386 processors are supported]) + fi + ;; + linux-gnu*|k*bsd*-gnu*) + test_gtk=yes + build_gstreamer=yes + test_kde=yes + test_kde4=yes + test_freetype=yes + test_unix_quickstarter=yes + _os=Linux + ;; + gnu) + test_randr=no + test_cairo=no + test_cups=no + _os=GNU + ;; + cygwin*|interix*) # Windows + test_cups=no + test_randr=no + test_freetype=no + test_cairo=no + test_fontconfig=no + _os=WINNT + ;; + darwin*) # Mac OS X + test_gtk=yes + test_randr=no + test_freetype=no + test_fontconfig=no + test_cairo=no + _os=Darwin + if test "$enable_systray" = "yes" && test "$enable_gtk" != "no"; then + AC_MSG_WARN([Disabling gtk-quickstarter - not supported on Mac. Use --disable-systray]) + echo "Disabling gtk-quickstarter - not supported on Mac. Use --disable-systray" >>warn + enable_systray=no + fi + ;; + os2*) + test_cups=no + test_randr=no + test_gtk=no + test_cairo=no + test_freetype=no + _os=OS2 + ;; + freebsd*) + test_gtk=yes + build_gstreamer=yes + test_kde=yes + test_kde4=yes + test_freetype=yes + AC_MSG_CHECKING([the FreeBSD operating system release]) + if test -n "$with_os_version"; then + OSVERSION="$with_os_version" + else + OSVERSION=`/sbin/sysctl -n kern.osreldate` + fi + AC_MSG_RESULT([found OSVERSION=$OSVERSION]) + AC_MSG_CHECKING([which thread library to use]) + if test "$OSVERSION" -lt "500016"; then + PTHREAD_CFLAGS="-D_THREAD_SAFE" + PTHREAD_LIBS="-pthread" + elif test "$OSVERSION" -lt "502102"; then + PTHREAD_CFLAGS="-D_THREAD_SAFE" + PTHREAD_LIBS="-lc_r" + else + PTHREAD_CFLAGS="" + PTHREAD_LIBS="-pthread" + fi + AC_MSG_RESULT([$PTHREAD_LIBS]) + _os=FreeBSD + ;; + *netbsd*) + test_gtk=yes + build_gstreamer=yes + test_kde=no + test_kde4=yes + test_freetype=yes + PTHREAD_CFLAGS="-pthread" + PTHREAD_LIBS="-pthread -lpthread" + _os=NetBSD + ;; + aix*) + test_cups=no + test_randr=no + test_cairo=no + test_freetype=yes + PTHREAD_LIBS=-pthread + _os=AIX + ;; + openbsd*) + test_gtk=yes + test_kde=yes + test_freetype=yes + PTHREAD_CFLAGS="-D_THREAD_SAFE" + PTHREAD_LIBS="-pthread" + _os=OpenBSD + ;; + dragonfly*) + test_gtk=yes + build_gstreamer=yes + test_kde=yes + test_kde4=yes + test_freetype=yes + PTHREAD_LIBS="-pthread" + _os=DragonFly + ;; + *) + AC_MSG_ERROR([$_os operating system is not suitable to build LibreOffice!]) + ;; +esac + +AC_SUBST(OSVERSION) +AC_SUBST(PTHREAD_CFLAGS) +AC_SUBST(PTHREAD_LIBS) + +dnl =================================================================== +dnl Set the ENABLE_CRASHDUMP variable. +dnl =================================================================== +AC_MSG_CHECKING([whether to enable crashdump feature]) +if test "$enable_crashdump" = "yes"; then + ENABLE_CRASHDUMP="TRUE" + BUILD_TYPE="$BUILD_TYPE CRASHREP" + AC_MSG_RESULT([yes]) +else + ENABLE_CRASHDUMP="" + AC_MSG_RESULT([no]) +fi +AC_SUBST(ENABLE_CRASHDUMP) + + +dnl =================================================================== +dnl Windows specific tests and stuff +dnl =================================================================== +if test "$_os" = "WINNT"; then + + dnl Include twain scanners + BUILD_TYPE="$BUILD_TYPE TWAIN" + + dnl Set the CL_X64 variable. + AC_MSG_CHECKING([whether to use the Microsoft C/C++ x64 compiler]) + if test "z$enable_cl_x64" = "z" -o "$enable_cl_x64" = "no"; then + CL_X64="" + AC_MSG_RESULT([no]) + else + CL_X64="TRUE" + AC_MSG_RESULT([yes]) + fi + AC_SUBST(CL_X64) + + AC_MSG_CHECKING([whether to use DirectX]) + if test "$enable_directx" = "yes" -o "$enable_directx" = "TRUE" -o "$enable_directx" = ""; then + ENABLE_DIRECTX="TRUE" + AC_MSG_RESULT([yes]) + else + ENABLE_DIRECTX="" + AC_MSG_RESULT([no]) + fi + AC_SUBST(ENABLE_DIRECTX) + + AC_MSG_CHECKING([whether to use ActiveX]) + if test "$enable_activex" = "yes" -o "$enable_activex" = "TRUE" -o "$enable_activex" = ""; then + DISABLE_ACTIVEX="" + AC_MSG_RESULT([yes]) + else + DISABLE_ACTIVEX="TRUE" + AC_MSG_RESULT([no]) + fi + AC_SUBST(DISABLE_ACTIVEX) + + AC_MSG_CHECKING([whether to use ATL]) + if test "$enable_atl" = "yes" -o "$enable_atl" = "TRUE" -o "$enable_atl" = ""; then + DISABLE_ATL="" + AC_MSG_RESULT([yes]) + else + DISABLE_ATL="TRUE" + AC_MSG_RESULT([no]) + fi + AC_SUBST(DISABLE_ATL) + +fi + +dnl Set the ENABLE_WERROR variable. (Activate --enable-werror) +dnl =================================================================== +AC_MSG_CHECKING([whether to turn warnings to errors]) +if test -n "$enable_werror" && test "$enable_werror" != "no"; then + ENABLE_WERROR="TRUE" + AC_MSG_RESULT([yes]) + AC_MSG_WARN([Turning warnings to errors has no effect in modules or]) + AC_MSG_WARN([on platforms where it has been disabled explicitly]) + echo "Turning warnings to errors has no effect in modules or on platforms where it has been disabled explicitly" >> warn +else + ENABLE_WERROR="FALSE" + AC_MSG_RESULT([no]) +fi +AC_SUBST(ENABLE_WERROR) + +dnl Set the ENABLE_DEBUG variable. (Activate --enable-symbols) +dnl =================================================================== +AC_MSG_CHECKING([whether to do a debug build]) +if test -n "$enable_debug" && test "$enable_debug" != "no"; then + ENABLE_DEBUG="TRUE" + enable_symbols="yes" + AC_MSG_RESULT([yes]) +else + ENABLE_DEBUG="FALSE" + AC_MSG_RESULT([no]) +fi +AC_SUBST(ENABLE_DEBUG) + +dnl Set the ENABLE_DBGUTIL variable +dnl =================================================================== +AC_MSG_CHECKING([whether to build with additional debug utilities]) +if test -n "$enable_dbgutil" && test "$enable_dbgutil" != "no"; then + PROEXT="" + PRODUCT="" + PROFULLSWITCH="" + AC_MSG_RESULT([yes]) +else + PRODUCT="full" + PROFULLSWITCH="product=full" + PROEXT=".pro" + AC_MSG_RESULT([no, full product build]) +fi +AC_SUBST(PRODUCT) +AC_SUBST(PROFULLSWITCH) +AC_SUBST(PROEXT) + +dnl whether to include symbols into final build. +dnl =================================================================== +AC_MSG_CHECKING([whether to include symbols]) +if test -n "$enable_symbols" -a "$enable_symbols" != "no"; then + ENABLE_SYMBOLS="TRUE" + AC_MSG_RESULT([yes]) +else + ENABLE_SYMBOLS= + AC_MSG_RESULT([no]) +fi +AC_SUBST(ENABLE_SYMBOLS) + +dnl Determine if the solver is to be stripped or not. +dnl =================================================================== +AC_MSG_CHECKING([whether to strip the solver or not.]) +if test "z$enable_strip_solver" = "zno"; then + DISABLE_STRIP="TRUE" + AC_MSG_RESULT([no]) +else + if test -n "$ENABLE_SYMBOLS"; then + DISABLE_STRIP="TRUE" + AC_MSG_RESULT([no]) + else + DISABLE_STRIP= + AC_MSG_RESULT([yes]) + fi +fi +AC_SUBST(DISABLE_STRIP) + +dnl check for cups support +dnl =================================================================== +AC_MSG_CHECKING([whether to enable native cups support]) +if test "$test_cups" = "yes" -a "z$enable_cups" != "zno"; then + ENABLE_CUPS="TRUE" + AC_MSG_RESULT([yes]) + AC_CHECK_LIB(cups, cupsPrintFiles) + AC_CHECK_HEADER(cups/cups.h, AC_DEFINE(HAVE_CUPS_H)) + if test "$ac_cv_lib_cups_cupsPrintFiles" != "yes" -a "$ac_cv_header_cups_cups_h" != "yes"; then + AC_MSG_ERROR([Could not find CUPS. Install libcupsys2-dev or cups???-devel.]) + fi +else + ENABLE_CUPS="" + AC_MSG_RESULT([no]) +fi +AC_SUBST(ENABLE_CUPS) + + +# check for fontconfig support +AC_MSG_CHECKING([whether to enable fontconfig support]) +if test "z$test_fontconfig" = "zyes" -a "z$enable_fontconfig" != "no"; then + ENABLE_FONTCONFIG="TRUE" + AC_MSG_RESULT([yes]) + PKG_CHECK_MODULES([FONTCONFIG], [fontconfig >= 2.2.0]) +else + ENABLE_FONTCONFIG="" + AC_MSG_RESULT([no]) +fi +AC_SUBST(ENABLE_FONTCONFIG) +AC_SUBST(FONTCONFIG_CFLAGS) +AC_SUBST(FONTCONFIG_LIBS) + +dnl whether to find & fetch external tarballs? +dnl =================================================================== +if test -z "$TARFILE_LOCATION"; then + TARFILE_LOCATION="DEFAULT" +fi +AC_SUBST(TARFILE_LOCATION) + +if test "z$enable_fetch_external" != "zno" \ + && test -z "$with_system_libs" -a "$with_system_jars" != "no"; then + DO_FETCH_TARBALLS="YES" +fi +AC_SUBST(DO_FETCH_TARBALLS) + + +dnl git-new-workdir +dnl =================================================================== +AC_SUBST(GIT_LINK_SRC) + +dnl Disable legacy binary file formats filters +dnl =================================================================== +AC_MSG_CHECKING([whether to enable filters for legacy binary file formats (StarOffice 5.2)]) +if test "$enable_binfilter" = "no"; then + WITH_BINFILTER="NO" + AC_MSG_RESULT([no]) +else + WITH_BINFILTER="YES" + BUILD_TYPE="$BUILD_TYPE BINFILTER" + AC_MSG_RESULT([yes]) +fi +AC_SUBST(WITH_BINFILTER) + +dnl =================================================================== +dnl Disable rpath in shared libraries? +dnl =================================================================== +AC_MSG_CHECKING([whether to use RPATH in shared libraries]) +if test "$enable_rpath" = "no"; then + ENABLE_RPATH="no" +else + ENABLE_RPATH="yes" +fi +AC_MSG_RESULT([$ENABLE_RPATH]) +AC_SUBST(ENABLE_RPATH) + +dnl Test whether to include MySpell dictionaries +dnl =================================================================== +AC_MSG_CHECKING([whether to include MySpell dictionaries]) +if test -z "$with_myspell_dicts" || test "$with_myspell_dicts" = "yes"; then + AC_MSG_RESULT([yes]) + WITH_MYSPELL_DICTS=YES + BUILD_TYPE="$BUILD_TYPE DICTIONARIES" +else + AC_MSG_RESULT([no]) + WITH_MYSPELL_DICTS=NO +fi +AC_SUBST(WITH_MYSPELL_DICTS) + +AC_MSG_CHECKING([whether to use dicts from external paths]) +if test -n "$with_system_dicts" -a "$with_system_dicts" = "yes"; then + AC_MSG_RESULT([yes]) + SYSTEM_DICTS=YES + AC_MSG_CHECKING([for spelling dictionary directory]) + if test -n "$with_external_dict_dir"; then + DICT_SYSTEM_DIR=file://$with_external_dict_dir + else + DICT_SYSTEM_DIR=file:///usr/share/hunspell + fi + AC_MSG_RESULT([$DICT_SYSTEM_DIR]) + AC_MSG_CHECKING([for hyphenation patterns directory]) + if test -n "$with_external_hyph_dir"; then + HYPH_SYSTEM_DIR=file://$with_external_hyph_dir + else + HYPH_SYSTEM_DIR=file:///usr/share/hyphen + fi + AC_MSG_RESULT([$HYPH_SYSTEM_DIR]) + AC_MSG_CHECKING([for thesaurus directory]) + if test -n "$with_external_thes_dir"; then + THES_SYSTEM_DIR=file://$with_external_thes_dir + else + THES_SYSTEM_DIR=file:///usr/share/mythes + fi + AC_MSG_RESULT([$THES_SYSTEM_DIR]) +else + AC_MSG_RESULT([no]) + SYSTEM_DICTS=NO +fi +AC_SUBST(SYSTEM_DICTS) +AC_SUBST(DICT_SYSTEM_DIR) +AC_SUBST(HYPH_SYSTEM_DIR) +AC_SUBST(THES_SYSTEM_DIR) + +if test $_os = "WINNT"; then + AC_MSG_CHECKING([Windows build environment sanity]) + dnl =================================================================== + dnl Sanity check! Native windows programs cannot use cygwin symlinks! + dnl =================================================================== + dnl As long as awk instead of $AWK is used somewhere in the sources, + dnl check for $AWK and awk. $AWK is pointing to gawk in cygwin. + if test -L $AWK -o -L `which awk` -o -L `which tar` -o -L `which gunzip` ; then + AC_MSG_ERROR([$AWK, awk, tar or gunzip is a cygwin symlink! +Native windows programs cannot use cygwin symlinks. Remove the symbolic +link, and copy the program to the name of the link.]) + fi + dnl =================================================================== + dnl Another sanity check! More a band-aid. winenv.* adds guw.exe to + dnl CC and CXX but the configure checks here assume that guw.exe + dnl (if needed at all) is not yet present. + dnl =================================================================== + CC=`echo $CC | $SED "s/^guw.exe //"` + CXX=`echo $CXX | $SED "s/^guw.exe //"` + dnl =================================================================== + dnl If $CC is set to a MinGW compiler, e.g. "gcc -mno-cygwin" enable + dnl $WITH_MINGW + dnl =================================================================== + if test -n "$CC";then + if test "`$CC -dumpmachine 2>/dev/null | $SED -e 's/^.*-//'`" = "mingw32"; then + WITH_MINGW="yes" + fi + fi + dnl =================================================================== + if test "$WITH_MINGW" = "yes" ; then + if test -z "$CC"; then + CC="gcc -mno-cygwin" + CXX="g++ -mno-cygwin" + fi + fi + AC_MSG_RESULT([ok]) +fi +AC_SUBST(WITH_MINGW) + +dnl =================================================================== +dnl Extra check for Windows. cygwin builds need gcc to build dmake +dnl and g++ to build guw.exe although MS cl (or MinGW) is used to +dnl build LibO. +dnl =================================================================== +if test "$_os" = "WINNT" ; then + AC_MSG_CHECKING([for cygwin gcc/g++]) + if which gcc > /dev/null && which g++ > /dev/null ; then + AC_MSG_RESULT([found]) + else + AC_MSG_ERROR([cygwin gcc and g++ are needed, please install them.]) + fi +fi + + +dnl =================================================================== +dnl Checks for c compiler, +dnl The check for the c++ compiler is later on. +dnl =================================================================== +GCC_HOME_SET="true" +AC_MSG_CHECKING([gcc home]) +if test -z "$with_gcc_home"; then + if test -n "$enable_icecream" && test "$enable_icecream" != "no" ; then + GCC_HOME="/opt/icecream" + else + GCC_HOME=`which gcc | $SED -e s,/bin/gcc,,` + GCC_HOME_SET="false" + fi +else + GCC_HOME="$with_gcc_home" +fi +AC_MSG_RESULT($GCC_HOME) +AC_SUBST(GCC_HOME) + +if test "$GCC_HOME_SET" = "true" ; then + if test -z "$CC"; then + CC="$GCC_HOME/bin/gcc" + fi + if test -z "$CXX"; then + CXX="$GCC_HOME/bin/g++" + fi +fi + +dnl The following checks for gcc, cc and then cl (if it weren't guarded for win32) +if test "$_os" != "WINNT" -o "$WITH_MINGW" = "yes"; then + AC_PROG_CC +fi + +COMPATH=`dirname "$CC"` +if test "$COMPATH" = "." ; then + AC_PATH_PROGS(COMPATH, $CC) + dnl double square bracket to get single because of M4 quote... + COMPATH=`echo $COMPATH | $SED "s@/[[^/:]]*\\\$@@"`; +fi +COMPATH=`echo $COMPATH | $SED "s@/[[Bb]][[Ii]][[Nn]]\\\$@@"`; + +dnl =================================================================== +dnl Test the gcc version, 3 is OK +dnl =================================================================== +if test \( "$_os" != "WINNT" -o "$WITH_MINGW" = "yes" \) -a "$GCC" = "yes"; then + AC_MSG_CHECKING([the GNU gcc compiler version]) + _gcc_version=`$CC -dumpversion` + _gcc_major=`echo $_gcc_version | $AWK -F. '{ print \$1 }'` + GCCVER=`echo $_gcc_version | $AWK -F. '{ print \$1*10000+\$2*100+\$3 }'` + + if test "$_os" = "Darwin" -a "$GCCVER" -ge "040100" ; then + if test -z "$save_CC" -a -x "$GCC_HOME/bin/gcc-4.0" ; then + export CC=$GCC_HOME/bin/gcc-4.0 + dnl export CC to have it available in set_soenv -> config.guess + GCCVER2=`"$CC" -dumpversion | $AWK -F. '{ print \$1*10000+\$2*100+\$3 }'` + if test "$GCCVER2" -ge "040000" -a "$GCCVER2" -lt "040100" ; then + GCCVER=$GCCVER2 + fi + fi + if test "$GCCVER" -ge "040100" ; then + AC_MSG_ERROR([You need to use the gcc-4.0 compiler (gcc $_gcc_version won't work with the MacOSX10.4u.sdk) - set CC accordingly]) + else + AC_MSG_RESULT([implicitly using CC=$CC]) + fi + else + AC_MSG_RESULT([checked (gcc $_gcc_version)]) + fi + if test "$_os" = "SunOS"; then + AC_MSG_CHECKING([gcc linker]) + if $CC -Wl,--version 2>&1 |head -n 1| grep -v GNU > /dev/null;then + AC_MSG_ERROR([failed (not GNU ld). Use GNU ld instead of Sun ld on Solaris]) + fi + AC_MSG_RESULT([ok (GNU ld)]) + fi +fi + +HAVE_LD_BSYMBOLIC_FUNCTIONS= +if test "$GCC" = "yes"; then + AC_MSG_CHECKING( for -Bsymbolic-functions linker support ) + bsymbolic_functions_ldflags_save=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,-Bsymbolic-functions -Wl,--dynamic-list-cpp-new -Wl,--dynamic-list-cpp-typeinfo" + AC_LINK_IFELSE([AC_LANG_PROGRAM([ + #include <stdio.h> + ],[ + printf ("hello world\n"); + ])], HAVE_LD_BSYMBOLIC_FUNCTIONS=TRUE, []) + if test "z$HAVE_LD_BSYMBOLIC_FUNCTIONS" = "zTRUE"; then + AC_MSG_RESULT( found ) + else + AC_MSG_RESULT( not found ) + fi + LDFLAGS=$bsymbolic_functions_ldflags_save +fi +AC_SUBST(HAVE_LD_BSYMBOLIC_FUNCTIONS) + +dnl =================================================================== +dnl Set the ENABLE_PCH variable. (Activate --enable-pch) +dnl =================================================================== +AC_MSG_CHECKING([whether to enable pch feature]) +if test -n "$enable_pch" && test "$enable_pch" != "no"; then + if test "$_os" = "WINNT" -a "$WITH_MINGW" != "yes"; then + ENABLE_PCH="TRUE" + AC_MSG_RESULT([yes]) +dnl There is no PCH support in GCC versions prior to this + elif test "$GCC" = "yes"; then + ENABLE_PCH="TRUE" + AC_MSG_RESULT([yes]) + else + ENABLE_PCH="" + AC_MSG_WARN([Precompiled header not yet supported for your platform/compiler]) + fi +else + ENABLE_PCH="" + AC_MSG_RESULT([no]) +fi +AC_SUBST(ENABLE_PCH) + +dnl =================================================================== +dnl Search all the common names for GNU make +dnl =================================================================== +AC_MSG_CHECKING([for GNU make]) +for a in "$MAKE" $GNUMAKE make gmake gnumake; do + $a --version 2> /dev/null | grep GNU 2>&1 > /dev/null + if test $? -eq 0; then + GNUMAKE=$a + break + fi +done +AC_MSG_RESULT($GNUMAKE) +if test -z "$GNUMAKE"; then + AC_MSG_ERROR([not found. install GNU make.]) +fi + +AC_MSG_CHECKING([the GNU make version]) +_make_version=`$GNUMAKE --version | grep GNU | $SED -e 's@^[[^0-9]]*@@' -e 's@ .*@@' -e 's@,.*@@'`; +_make_longver=`echo $_make_version | $AWK -F. '{ print \$1*10000+\$2*100+\$3 }'` +if test "$_make_longver" -ge "038100" ; then + AC_MSG_RESULT([$GNUMAKE $_make_version]) +else + AC_MSG_ERROR([failed ($GNUMAKE version >= 3.81 needed]) +fi +AC_SUBST(GNUMAKE) + +dnl =================================================================== +dnl Test the solaris compiler version +dnl =================================================================== +if test "$_os" = "SunOS"; then + if test "$CC" = "cc"; then + AC_PATH_PROGS(_cc, cc) + COMPATH=`echo $_cc | $SED -n "s/\/bin\/cc//p"` + AC_MSG_CHECKING([the SunStudio C/C++ compiler version]) + dnl cc -V outputs to standard error!!!! + _sunstudio_string=`$CC -V 2>&1 | grep '^cc' | $SED -e 's/.* C //'` + _sunstudio_version=`echo $_sunstudio_string | $AWK '{ print $1 }'` + _sunstudio_major=`echo $_sunstudio_version | $AWK -F. '{ print $1 }'` + if test "$_sunstudio_major" != "5"; then + AC_MSG_ERROR([found version "$_sunstudio_version", use version 5.5, 5.7, 5.8 or 5.9 of the SunStudio C/C++ compiler]) + else + _sunstudio_minor=`echo $_sunstudio_version | $AWK -F. '{ if ($2 == 5) print "true"; else if ($2 == 7) print "true"; else if ($2 == 8) print "true"; else if ($2 == 9) print "true"; else print "false" }'` + if test "$_sunstudio_minor" = "false"; then + AC_MSG_ERROR([found version "$_sunstudio_version", use version 5.5, 5.7, 5.8 or 5.9 of the SunStudio C/C++ compiler]) + else + dnl compiler will do + AC_MSG_RESULT([checked]) + fi + fi + fi +fi + +HAVE_LD_HASH_STYLE=FALSE +WITH_LINKER_HASH_STYLE= +AC_MSG_CHECKING( for --hash-style gcc linker support ) +if test "$GCC" = "yes" ; then + if test -z "$with_linker_hash_style" -o "$with_linker_hash_style" = "yes" ; then + hash_styles="gnu sysv" + elif test "$with_linker_hash_style" = "no" ; then + hash_styles= + else + hash_styles="$with_linker_hash_style" + fi + + for hash_style in $hash_styles ; do + test "$HAVE_LD_HASH_STYLE" = "TRUE" && continue + hash_style_ldflags_save=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,--hash-style=$hash_style" + + AC_TRY_RUN([ +#include <stdio.h> + +int main(char argc, char** argv) { + printf ("hello world\n"); + return 0; +} + ], HAVE_LD_HASH_STYLE=TRUE; WITH_LINKER_HASH_STYLE=$hash_style, HAVE_LD_HASH_STYLE=FALSE) + + LDFLAGS=$hash_style_ldflags_save + done + + if test "$HAVE_LD_HASH_STYLE" = "TRUE"; then + AC_MSG_RESULT( $WITH_LINKER_HASH_STYLE ) + else + AC_MSG_RESULT( no ) + fi + LDFLAGS=$hash_style_ldflags_save +else + AC_MSG_RESULT( no ) +fi +AC_SUBST(HAVE_LD_HASH_STYLE) +AC_SUBST(WITH_LINKER_HASH_STYLE) + +dnl =================================================================== +dnl Check whether there's a Perl version available. +dnl =================================================================== +if test -z "$with_perl_home"; then + AC_PATH_PROG(PERL, perl) +else + if test "$_os" = "WINNT"; then + with_perl_home=`cygpath -u "$with_perl_home"` + fi + _perl_path="$with_perl_home/bin/perl" + if test -x "$_perl_path"; then + PERL=$_perl_path + else + AC_MSG_ERROR([$_perl_path not found]) + fi +fi + +dnl =================================================================== +dnl Testing for Perl version 5 or greater. +dnl $] is the perl version variable, it is returned as an integer +dnl =================================================================== +if test "$PERL"; then + AC_MSG_CHECKING([the Perl version]) + ${PERL} -e "exit($]);" + _perl_version=$? + if test "$_perl_version" -lt 5; then + AC_MSG_ERROR([found Perl version "$_perl_version", use version 5 of Perl]) + fi + AC_MSG_RESULT([checked (perl $_perl_version)]) +else + AC_MSG_ERROR([Perl not found, install version 5 of Perl]) +fi +AC_SUBST(PERL) + +dnl =================================================================== +dnl Testing for required Perl modules +dnl =================================================================== +AC_MSG_CHECKING([for required Perl modules]) +if `$PERL -e 'use Archive::Zip;'`; then + AC_MSG_RESULT([all modules found]) +else + AC_MSG_ERROR([Failed to find some modules]) +fi + +dnl =================================================================== +dnl Check which Microsoft C/C++ or MinGW compiler is used for WINNT +dnl =================================================================== +SHOWINCLUDES_PREFIX= +if test "$_os" = "WINNT"; then + if test "$WITH_MINGW" != "yes"; then + AC_MSG_CHECKING([for a friendly Microsoft C/C++ compiler installation path]) + if test -z "$with_cl_home"; then + vctest=`./oowintool --msvc-productdir`; + if test "$CL_X64" = ""; then + if test -x "$vctest/bin/cl.exe"; then + with_cl_home=$vctest; + fi + else + if test -x "$vctest/bin/amd64/cl.exe"; then + with_cl_home=$vctest; + fi + fi + else + with_cl_home=`cygpath -u "$with_cl_home"` + fi + AC_MSG_RESULT([$with_cl_home]) + + dnl =========================================================== + dnl Check for mspdb80.dll/mspdb100.dll + dnl =========================================================== + dnl MSVS 2008/10 Compiler + if test -n "$with_mspdb_path";then + with_mspdb_path=`cygpath -u "$with_mspdb_path"` + fi + if test -e "$with_mspdb_path/mspdb80.dll" -o -e "$with_mspdb_path/mspdb100.dll"; then + MSPDB_PATH="$with_mspdb_path" + fi + dnl MSVS 2008 case + if test -z "$MSPDB_PATH" -a -e "$with_cl_home/../Common7/IDE/mspdb80.dll"; then + MSPDB_PATH="$with_cl_home/../Common7/IDE" + fi + dnl Windows SDK 6.0 case + if test -z "$MSPDB_PATH" -a -e "$with_cl_home/bin/mspdb80.dll"; then + MSPDB_PATH="$with_cl_home/bin" + fi + dnl MSVS 2010 case + if test -z "$MSPDB_PATH" -a -e "$with_cl_home/../Common7/IDE/mspdb100.dll"; then + MSPDB_PATH="$with_cl_home/../Common7/IDE" + fi + + if test -z "$MSPDB_PATH";then + dnl AC_PATH_PROG only checks if MSPDB_PATH is still empty + AC_PATH_PROG(MSPDB_PATH, mspdb80.dll) + AC_PATH_PROG(MSPDB_PATH, mspdb100.dll) + MSPDB_PATH=`dirname "$MSPDB_PATH"` + fi + + if test -z "$MSPDB_PATH"; then + AC_MSG_ERROR([You need a mspdb80.dllor mspdb100.dll, make sure it is in the path or use --with-mspdb-path]) + fi + MSPDB_PATH=`cygpath -d "$MSPDB_PATH"` + MSPDB_PATH=`cygpath -u "$MSPDB_PATH"` + dnl The path needs to be added before cl is called + PATH="$MSPDB_PATH:$PATH" + + AC_MSG_CHECKING([the Microsoft C/C++ Compiler]) + if test -z "$CC"; then + if test "$CL_X64" = ""; then + if test -x "$with_cl_home/bin/cl.exe"; then + CC="$with_cl_home/bin/cl.exe" + fi + else + if test -x "$with_cl_home/bin/amd64/cl.exe"; then + CC="$with_cl_home/bin/amd64/cl.exe" + fi + fi + if test -z "$CC"; then + AC_PATH_PROG(CC, cl.exe) + fi + # This gives us a posix path with 8.3 filename restrictions + CC=`cygpath -d "$CC"` + CC=`cygpath -u "$CC"` + fi + + if test -n "$CC"; then + # Remove /cl.exe from CC case insensitive + AC_MSG_RESULT([found ($CC)]) + if test "$CL_X64" = ""; then + COMPATH=`echo $CC | $SED -e 's@\/[[Bb]][[Ii]][[Nn]]\/[[cC]][[lL]]\.[[eE]][[xX]][[eE]].*@@' -e 's@^.* @@'` + else + if test -n "$with_cl_home"; then + COMPATH=`echo $with_cl_home` + fi + fi + export INCLUDE=`cygpath -d "$COMPATH/Include"` + dnl Check which Microsoft C/C++ compiler is found + AC_MSG_CHECKING([the Version of Microsoft C/C++ Compiler]) +dnl The following find microsoft, matches nn.nn.nnnn then pulls numbers out. + CCNUMVER=`$CC 2>&1 | $AWK "/Microsoft/ && /..\\...\\...../ { + x = match( \\\$0, /..\\...\\...../ ) + CCversion = substr( \\\$0, RSTART, RLENGTH) + tokencount = split (CCversion,vertoken,\".\") + for ( i = 1 ; i <= tokencount ; i++ ) { + printf (\"%04d\",vertoken[[i]] ) + } + }"` + if test "$CCNUMVER" -ge "001600000000"; then + COMEX=13 + MSVSVER=2010 + elif test "$CCNUMVER" -ge "001500000000"; then + COMEX=12 + MSVSVER=2008 + else + AC_MSG_ERROR([Compiler too old. Use Microsoft Visual Studio 2008 or 2010.]) + fi + AC_MSG_RESULT([found compiler version $CCNUMVER (MSVS $MSVSVER).]) + else + AC_MSG_ERROR([Microsoft C/C++ Compiler not found. Use --with-cl-home or set path to cl.exe.]) + fi + + dnl We need to guess the prefix of the -showIncludes output, it can be + dnl localized + AC_MSG_CHECKING([the dependency generation prefix (cl.exe -showIncludes)]) + echo "#include <stdlib.h>" > conftest.c + SHOWINCLUDES_PREFIX=`$CC -c -showIncludes conftest.c 2>/dev/null | \ + grep 'stdlib\.h' | head -n1 | sed 's/ [[[:alpha:]]]:.*//'` + rm -f conftest.c conftest.obj + if test -z "$SHOWINCLUDES_PREFIX" ; then + AC_MSG_ERROR([cannot determine the -showIncludes prefix]) + else + AC_MSG_RESULT(["$SHOWINCLUDES_PREFIX"]) + fi + else + AC_MSG_CHECKING([the MinGW C++ Compiler]) + if test `$CC -dumpmachine | $SED -e 's/^.*-//'` = "mingw32"; then + AC_MSG_RESULT([found.]) + if $CC -dumpspecs | grep -q "mno-cygwin"; then + USE_MINGW="cygwin" + else + USE_MINGW="pure-mingw" + fi + else + AC_MSG_ERROR([MinGW C++ Compiler not found.]) + fi + fi +fi +AC_SUBST(COMEX) +AC_SUBST(MSPDB_PATH) +AC_SUBST(USE_MINGW) +AC_SUBST(SHOWINCLUDES_PREFIX) + +dnl =================================================================== +dnl .NET needs special treatment +dnl (does the above comment really mean .NET, or is it misusing +dnl that to mean Visual Studio .NET 2003 ? And does this also +dnl in fact apply equally to what we actually support, i.e. +dnl Visual Studio 2008 and 2010?) +dnl =================================================================== +if test "$_os" = "WINNT"; then +if test "$WITH_MINGW" = "yes" || test "$COMEX" -ge "10"; then + dnl Check midl.exe + AC_PATH_PROG(MIDL_PATH, midl.exe) + if test -n "$MIDL_PATH";then + MIDL_PATH=`dirname "$MIDL_PATH"` + fi + if test -n "$with_midl_path";then + with_midl_path=`cygpath -u "$with_midl_path"` + fi + if test -x "$with_midl_path/midl.exe"; then + MIDL_PATH="$with_midl_path" + fi + if test -z "$MIDL_PATH" -a -e "$with_cl_home/../Common7/Tools/Bin/midl.exe"; then + MIDL_PATH="$with_cl_home/../Common7/Tools/Bin" + fi + if test -z "$MIDL_PATH" ; then + vstest=`./oowintool --msvs-productdir`; + if test -x "$vstest/Common7/Tools/Bin/midl.exe" ; then + MIDL_PATH="$vstest/Common7/Tools/Bin" + fi + fi + if test -z "$MIDL_PATH" ; then + psdktest=`./oowintool --psdk-home` + if test -x "$psdktest/Bin/midl.exe" ; then + MIDL_PATH="$psdktest/Bin" + fi + fi + if test ! -x "$MIDL_PATH/midl.exe"; then + AC_MSG_ERROR([midl.exe not found. Make sure it's in the path or use --with-midl-path]) + fi + # Convert to posix path with 8.3 filename restrictions ( No spaces ) + MIDL_PATH=`cygpath -d "$MIDL_PATH"` + MIDL_PATH=`cygpath -u "$MIDL_PATH"` + + dnl Check csc.exe + AC_PATH_PROG(CSC_PATH, csc.exe) + if test -n "$CSC_PATH";then + CSC_PATH=`dirname "$CSC_PATH"` + fi + if test -n "$with_csc_path";then + with_csc_path=`cygpath -u "$with_csc_path"` + fi + if test -x "$with_csc_path/csc.exe"; then + CSC_PATH="$with_csc_path" + else + csctest=`./oowintool --csc-compilerdir`; + if test -x "$csctest/csc.exe"; then + CSC_PATH="$csctest" + fi + fi + if test ! -x "$CSC_PATH/csc.exe"; then + AC_MSG_ERROR([csc.exe not found. Make sure it's in the path or use --with-csc-path]) + fi + # Convert to posix path with 8.3 filename restrictions ( No spaces ) + CSC_PATH=`cygpath -d "$CSC_PATH"` + CSC_PATH=`cygpath -u "$CSC_PATH"` + + dnl Check mscoree.lib / .NET Framework dir + AC_MSG_CHECKING(.NET Framework) + if test -n "$with_frame_home"; then + with_frame_home=`cygpath -u "$with_frame_home"` + fi + if test -f "$with_frame_home/lib/mscoree.lib"; then + FRAME_HOME="$with_frame_home" + fi + if test -z "$FRAME_HOME" ; then + frametest=`./oowintool --dotnetsdk-dir` + if test -f "$frametest/lib/mscoree.lib"; then + FRAME_HOME="$frametest" + else + frametest=`./oowintool --psdk-home` + if test -f "$frametest/lib/mscoree.lib"; then + FRAME_HOME="$frametest" + fi + fi + fi + if test ! -f "$FRAME_HOME/lib/mscoree.lib"; then + AC_MSG_ERROR([mscoree.lib (.NET Framework) not found. Make sure you use --with-frame-home]) + fi + AC_MSG_RESULT(found) + # Convert to posix path with 8.3 filename restrictions ( No spaces ) + FRAME_HOME=`cygpath -d "$FRAME_HOME"` + FRAME_HOME=`cygpath -u "$FRAME_HOME"` +fi +AC_SUBST(MIDL_PATH) +AC_SUBST(CSC_PATH) +AC_SUBST(FRAME_HOME) +fi + +dnl =================================================================== +dnl Check if stdc headers are available excluding windows. +dnl =================================================================== +if test "$_os" != "WINNT" -o "$WITH_MINGW" = "yes"; then + AC_HEADER_STDC +fi + +dnl =================================================================== +dnl Find pre-processors. +dnl =================================================================== +if test "$_os" != "WINNT" -o "$WITH_MINGW" = "yes"; then + AC_PROG_CXXCPP + +dnl Check whether there's a C pre-processor. +dnl =================================================================== +dnl When using SunStudio compiler, there is a bug with the cc +dnl preprocessor, so use CC preprocessor as the cc preprocessor +dnl See Issuezilla #445. +dnl =================================================================== + if test "$_os" = "SunOS"; then + CPP=$CXXCPP + else + AC_PROG_CPP + fi + + AC_CHECK_SIZEOF(long) + SIZEOF_LONG=$ac_cv_sizeof_long + AC_C_BIGENDIAN + WORDS_BIGENDIAN=$ac_cv_c_bigendian + + dnl Check for large file support + AC_SYS_LARGEFILE + if test -n "$ac_cv_sys_file_offset_bits"; then + LFS_CFLAGS="-D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits" + fi + if test -n "$ac_cv_sys_large_files" && test "$ac_cv_sys_large_files" != "no"; then + LFS_CFLAGS="$LFS_CFLAGS -D_LARGE_FILES" + fi +else + SIZEOF_LONG=4 + WORDS_BIGENDIAN=no + LFS_CFLAGS='' +fi +AC_SUBST(SIZEOF_LONG) +AC_SUBST(WORDS_BIGENDIAN) +AC_SUBST(LFS_CFLAGS) + +dnl =================================================================== +dnl Check if valgrind.h is available +dnl =================================================================== +if test -n "$enable_dbgutil" && test "$enable_dbgutil" != "no"; then + dnl Test $prefix (currently only testing for /usr and /usr/local) + dnl so that VALGRIND_CFLAGS = -I$prefix/include/valgrind + VALGRIND_CFLAGS="" + prev_cppflags=$CPPFLAGS + if test -z "$VALGRIND_CFLAGS"; then + CPPFLAGS="-I/usr/include/valgrind" + AC_CHECK_HEADER([valgrind.h], [VALGRIND_CFLAGS=$CPPFLAGS], [unset ac_cv_header_valgrind_h]) + fi + if test -z "$VALGRIND_CFLAGS"; then + CPPFLAGS="-I/usr/local/include/valgrind" + AC_CHECK_HEADER([valgrind.h], [VALGRIND_CFLAGS=$CPPFLAGS], []) + fi + if test -n "$VALGRIND_CFLAGS"; then + CPPFLAGS=$VALGRIND_CFLAGS + AC_CHECK_HEADER([memcheck.h], [], [VALGRIND_CFLAGS=""]) + fi + CPPFLAGS=$prev_cppflags +fi +AC_SUBST([VALGRIND_CFLAGS]) + +dnl =================================================================== +dnl Testing for c++ compiler and version... +dnl =================================================================== +if test "$_os" = "WINNT" -a "$WITH_MINGW" != "yes"; then + if test -n "$CC" -a -z "$CXX"; then + CXX="$CC" + fi +fi + +dnl Autoconf 2.53 can do this test for cl.exe, 2.13 can't! +if test "$_os" != "WINNT" -o "$WITH_MINGW" = "yes"; then + AC_PROG_CXX +fi + +dnl check if we are using a buggy version of g++ (currently 3.4.0, 3.4.1 and trunk) +if test "$GXX" = "yes"; then + AC_MSG_CHECKING([the GNU C++ compiler version]) + + _gpp_version=`$CXX -dumpversion` + _gpp_majmin=`echo $_gpp_version | $AWK -F. '{ print \$1*100+\$2 }'` + + if test "$_os" = "Darwin" -a "$_gpp_majmin" -ge "401" ; then + if test -z "$save_CXX" -a -x "$GCC_HOME/bin/g++-4.0" ; then + CXX=$GCC_HOME/bin/g++-4.0 + _gpp_majmin_2=`"$CXX" -dumpversion | $AWK -F. '{ print \$1*100+\$2 }'` + if test "$_gpp_majmin_2" -ge "400" -a "$_gpp_majmin_2" -lt "401" ; then + _gpp_majmin=$_gpp_majmin_2 + fi + fi + if test "$_gpp_majmin" -ge "401" ; then + AC_MSG_ERROR([You need to use the g++-4.0 compiler (g++ $_gpp_version won't work with the MacOSX10.4u.sdk) - set CXX accordingly]) + else + AC_MSG_RESULT([implicitly using CXX=$CXX]) + fi + else + AC_MSG_RESULT([checked (g++ $_gpp_version)]) + fi + + if test "$_gpp_majmin" = "304"; then + AC_MSG_CHECKING([whether $CXX has the enum bug]) +AC_TRY_RUN([ +extern "C" void abort (void); +extern "C" void exit (int status); + +enum E { E0, E1, E2, E3, E4, E5 }; + +void +test (enum E e) +{ + if (e == E2 || e == E3 || e == E1) + exit (1); +} + +int +main (void) +{ + test (E4); + test (E5); + test (E0); + return 0; +} +],[AC_MSG_ERROR([your version of the GNU C++ compile has a bug which prevents LibreOffice from being compiled correctly - please check http://gcc.gnu.org/ml/gcc-patches/2004-07/msg00968.html for details.])], [AC_MSG_RESULT([no])]) + fi +fi + +dnl =================================================================== +dnl Set the gcc/gxx include directories +dnl =================================================================== +# Removed the special FreeBSD treatment. The problem was that with_gxx_include_path +# often contains an i386 which is expanded as a macro. +if test "$GXX" = "yes"; then + AC_MSG_CHECKING([for g++ include path]) + if test -z "$with_gxx_include_path"; then + with_gxx_include_path=`echo "#include <cstring>" | $CXX -E -xc++ - | $SED -n '/.*1*"\(.*\)\/cstring".*/s//\1/p' | head -n 1` + if test "$with_gxx_include_path" = "/usr/libexec/(null)/include"; then + with_gxx_include_path="/usr/include" + fi + if test "$WITH_MINGW" = "yes"; then + with_gxx_include_path=`cygpath -d "$with_gxx_include_path"` + with_gxx_include_path=`cygpath -u "$with_gxx_include_path"` + fi + if echo $with_gxx_include_path | grep -q linux; then + # workaround for Mandriva - issue 100049 + with_gxx_include_path=`cd $with_gxx_include_path && pwd` + fi + fi +fi +dnl This is the original code... +dnl with_gxx_include_path=`$CXX -print-search-dirs | grep instal |$AWK '{ print \$2 }'`/include +if test -z "$with_gxx_include_path"; then + with_gxx_include_path="NO_GXX_INCLUDE" + AC_MSG_RESULT([no g++ includes]) +else + AC_MSG_RESULT([$with_gxx_include_path]) +fi +GXX_INCLUDE_PATH="$with_gxx_include_path" +AC_SUBST(GXX_INCLUDE_PATH) + +dnl =================================================================== +dnl Set the mingw runtime library include directories +dnl =================================================================== +if test "$WITH_MINGW" = "yes"; then + AC_MSG_CHECKING([for MinGW runtime include path]) + cat >conftest.$ac_ext <<_ACEOF +#include <stddef.h> +#include <bits/c++config.h> +_ACEOF + _mingw_lib_include_path=`$CXX -E -xc++ conftest.$ac_ext | $SED -n -e '/.*1*"\(.*\)\/stddef.h".*/s//\1/p' -e '/.*1*"\(.*\)\/bits\/c++config.h".*/s//\1/p' | sort -u | xargs echo` + rm conftest.$ac_ext + if test -n "$_mingw_lib_include_path"; then + _temp="" + for a in $_mingw_lib_include_path + do + a=`cygpath -d "$a"` + _temp="$_temp "`cygpath -u "$a"` + done + _mingw_lib_include_path=$_temp + fi + if test -z "$_mingw_lib_include_path"; then + _mingw_lib_include_path="NO_LIB_INCLUDE" + AC_MSG_RESULT([no MinGW runtime includes]) + else + AC_MSG_RESULT([$_mingw_lib_include_path]) + fi + MINGW_LIB_INCLUDE_PATH="$_mingw_lib_include_path" + AC_SUBST(MINGW_LIB_INCLUDE_PATH) +dnl mingw gcc 4.4.0 needs backward in include path to use hash_set/hash_map + AC_MSG_CHECKING([for MinGW C++ backward include path]) + cat >conftest.$ac_ext <<_ACEOF +#include <hash_set> +_ACEOF + _mingw_backward_include_path=`$CXX -E -xc++ -Wno-deprecated conftest.$ac_ext 2>&5| $SED -n -e '/.*1*"\(.*\)\/hash_set".*/s//\1/p' | sort -u | xargs echo` + rm conftest.$ac_ext + if test -n "$_mingw_backward_include_path"; then + _mingw_backward_include_path=`cygpath -d $_mingw_backward_include_path` + _mingw_backward_include_path=`cygpath -u $_mingw_backward_include_path` + AC_MSG_RESULT([$_mingw_backward_include_path]) + else + _mingw_backward_include_path="NO_BACKWARD_INCLUDE" + AC_MSG_RESULT([no MinGW C++ backward includes]) + fi + MINGW_BACKWARD_INCLUDE_PATH="$_mingw_backward_include_path" + AC_SUBST(MINGW_BACKWARD_INCLUDE_PATH) + mingw_crtbegin=`$CC -print-file-name=crtbegin.o` + MINGW_CLIB_DIR=`dirname $mingw_crtbegin` + AC_MSG_CHECKING([whether to use dynamic libgcc]) + if test -e "$MINGW_CLIB_DIR/libgcc_s.a"; then + AC_MSG_CHECKING([dynamic libgcc name]) + MINGW_GCCDLL_pattern=`nm $MINGW_CLIB_DIR/libgcc_s.a | $SED -ne 's@.* _libgcc\(.*\)_dll_iname@libgcc\1.dll@p' | uniq | $SED -e 's@_@?@g'` + MINGW_GCCDLL=`cd $COMPATH/bin && ls $MINGW_GCCDLL_pattern 2>/dev/null` + if test -n "$MINGW_GCCDLL"; then + MINGW_SHARED_GCCLIB=YES + AC_MSG_RESULT([use $MINGW_GCCDLL]) + else + AC_MSG_RESULT([no]) + fi + else + AC_MSG_RESULT([no]) + fi + if test -e "$MINGW_CLIB_DIR/libgcc_eh.a"; then + MINGW_GCCLIB_EH=YES + fi + AC_MSG_CHECKING([whether to use dynamic libstdc++]) + MINGW_SHARED_LIBSTDCPP= + if test -e "$MINGW_CLIB_DIR/libstdc++_s.a" ; then + MINGW_SHARED_LIBSTDCPP=stdc++_s + fi + if test -e "$MINGW_CLIB_DIR/libstdc++.dll.a" ; then + MINGW_SHARED_LIBSTDCPP=stdc++.dll + fi + if test -n "$MINGW_SHARED_LIBSTDCPP" ; then + AC_MSG_CHECKING([dynamic libstdc++ name]) + MINGW_GXXDLL_pattern=`nm $MINGW_CLIB_DIR/lib$MINGW_SHARED_LIBSTDCPP.a | sed -ne 's@.* _libstdc__\(.*\)_dll_iname@libstdc++\1.dll@p' | uniq | sed -e 's@_@?@g'` + MINGW_GXXDLL=`cd $COMPATH/bin && ls $MINGW_GXXDLL_pattern 2>/dev/null` + if test -n "$MINGW_GXXDLL"; then + MINGW_SHARED_LIBSTDCPP=-l$MINGW_SHARED_LIBSTDCPP + MINGW_SHARED_GXXLIB=YES + AC_MSG_RESULT([use $MINGW_GXXDLL]) + else + MINGW_SHARED_LIBSTDCPP= + AC_MSG_RESULT([no]) + fi + else + AC_MSG_RESULT([no]) + fi + MINGW_CLIB_DIR=`cygpath $MINGW_CLIB_DIR` + AC_SUBST(MINGW_CLIB_DIR) + AC_SUBST(MINGW_SHARED_GCCLIB) + AC_SUBST(MINGW_GCCLIB_EH) + AC_SUBST(MINGW_SHARED_GXXLIB) + AC_SUBST(MINGW_SHARED_LIBSTDCPP) + AC_SUBST(MINGW_GCCDLL) + AC_SUBST(MINGW_GXXDLL) +fi + +dnl =================================================================== +dnl Extra checking for the SUN OS compiler +dnl =================================================================== +if test "$_os" = "SunOS"; then + dnl SunStudio C++ compiler packaged with SunStudio C compiler + if test "$CC" = "cc"; then + AC_MSG_CHECKING([SunStudio C++ Compiler]) + if test "$CXX" != "CC"; then + AC_MSG_WARN([SunStudio C++ was not found]) + echo "SunStudio C++ was not found" >> warn + else + AC_MSG_RESULT([checked]) + fi + fi +fi + +dnl ************************************************************* +dnl Testing for exception handling - dwarf2 or sjlj exceptions... +dnl ************************************************************* +if test "$WITH_MINGW" = "yes"; then + AC_MSG_CHECKING([exception type]) + AC_LANG_PUSH([C++]) + AC_TRY_LINK( + [#include <iostream> + +extern "C" void _Unwind_SjLj_RaiseException(void) __attribute__ ((__noreturn__)); + + ], + [_Unwind_SjLj_RaiseException() ], + [exceptions_type="sjlj"], + [exceptions_type="dwarf2"] + ) + AC_MSG_RESULT($exceptions_type) + AC_LANG_POP([C++]) +fi + +EXCEPTIONS="$exceptions_type" +AC_SUBST(EXCEPTIONS) + +dnl ************************************************************** +dnl Testing for required Solaris and SunStudio compiler patches... +dnl ************************************************************** +dnl Check whether the OS is SunOS. +if test "$_os" = "SunOS"; then + _temp=`showrev -p | $AWK -F" " '{ print $2 }'` + if test "$_os_release" = "7"; then + dnl *************** + dnl patch 106327-06 + dnl *************** + AC_MSG_CHECKING([for patch 106327-06 or greater]) + _patch=`echo $_temp | $AWK '/106327-06/ { print "found" }'` + _patch="false" + for i in $_temp + do + _patch_major=`echo $i | $AWK -F"-" '{ print $1 }'` + if test "$_patch_major" = "106327"; then + _patch_rev=`echo $i | $AWK -F"-" '{ print $2 }'` + if test "$_patch_rev" -ge "6"; then + _patch="found" + fi + fi + done + if test "$_patch" = "found"; then + AC_MSG_RESULT([found]) + else + AC_MSG_WARN([patch 106327-06 not found, please install compiler patch 106327-06 or greater]) + echo "patch 106327-06 not found, please install compiler patch 106327-06 or greater" >> warn + fi + dnl *************** + dnl patch 106950-11 + dnl *************** + AC_MSG_CHECKING([for patch 106950-11 or greater]) + _patch=`echo $_temp | $AWK '/106950-11/ { print "found" }'` + _patch="false" + for i in $_temp + do + _patch_major=`echo $i | $AWK -F"-" '{ print $1 }'` + if test "$_patch_major" = "106950"; then + _patch_rev=`echo $i | $AWK -F"-" '{ print $2 }'` + if test "$_patch_rev" -ge "11"; then + _patch="found" + fi + fi + done + if test "$_patch" = "found"; then + AC_MSG_RESULT([found]) + else + AC_MSG_WARN([patch 106950-11 not found, please install linker patch 106950-11 or greater]) + echo "patch 106950-11 not found, please install linker patch 106950-11 or greater" >> warn + fi + else + if test "$_os_release" = "6"; then + dnl *************** + dnl patch 105591-09 + dnl *************** + AC_MSG_CHECKING([for patch 105591-09 or greater]) + _patch=`echo $_temp | $AWK '/105591-09/ { print "found" }'` + _patch="false" + for i in $_temp + do + _patch_major=`echo $i | $AWK -F"-" '{ print $1 }'` + if test "$_patch_major" = "105591"; then + _patch_rev=`echo $i | $AWK -F"-" '{ print $2 }'` + if test "$_patch_rev" -ge "9"; then + _patch="found" + fi + fi + done + if test "$_patch" = "found"; then + AC_MSG_RESULT([found]) + else + AC_MSG_WARN([patch 105591-09 not found, please install compiler patch 105591-09 or greater]) + echo "patch 105591-09 not found, please install compiler patch 105591-09 or greater" >> warn + fi + dnl *************** + dnl patch 107733-08 + dnl *************** + AC_MSG_CHECKING([for patch 107733-08 or greater]) + _patch=`echo $_temp | $AWK '/107733-08/ { print "found" }'` + _patch="false" + for i in $_temp + do + _patch_major=`echo $i | $AWK -F"-" '{ print $1 }'` + if test "$_patch_major" = "107733"; then + _patch_rev=`echo $i | $AWK -F"-" '{ print $2 }'` + if test "$_patch_rev" -ge "8"; then + _patch="found" + fi + fi + done + if test "$_patch" = "found"; then + AC_MSG_RESULT([found]) + else + AC_MSG_WARN([patch 107733-06 not found, please install linker patch 107733-08 or greater]) + echo "patch 107733-06 not found, please install linker patch 107733-08 or greater" >> warn + fi + fi + fi +fi + +dnl =================================================================== +dnl Checks for what the default STL should be +dnl =================================================================== + AC_MSG_CHECKING([Whether building STLPort library makes sense]) + BUILD_STLPORT="no" + if test "$_os" = "Linux"; then + case "$host_cpu" in + i?86) + case "$host_os" in k*bsd*-gnu*) + BUILD_STLPORT="no" + ;; + *) + BUILD_STLPORT="yes" + ;; + esac + ;; + *) + BUILD_STLPORT="no" + ;; + esac + elif test "$_os" = "SunOS"; then + BUILD_STLPORT="yes" + elif test "$_os" = "WINNT" -a "$WITH_MINGW" != "yes"; then + BUILD_STLPORT="yes" + elif test "$_os" = "OS2"; then + BUILD_STLPORT="yes" + elif test "$_os" = "FreeBSD"; then + BUILD_STLPORT="yes" + fi + if test "$BUILD_STLPORT" = "yes" ; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + + AC_MSG_CHECKING([Whether STLPort library will be actually built]) + if test "$with_stlport" = "auto" -o "$BUILD_STLPORT" = "no"; then + with_stlport=$BUILD_STLPORT + fi + if test "$with_stlport" = "yes" ; then + AC_MSG_RESULT([yes]) + WITH_STLPORT=YES + SCPDEFS="$SCPDEFS -DWITH_STLPORT" + BUILD_TYPE="$BUILD_TYPE STLPORT" + else + WITH_STLPORT=NO + AC_MSG_RESULT([no]) + fi + +AC_SUBST(WITH_STLPORT) + +dnl =================================================================== +dnl visibility and c++0x features +dnl =================================================================== +if test "$GCC" = "yes"; then + AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden]) + save_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -Werror -fvisibility=hidden" + AC_TRY_LINK([], [ return 0; ], [ HAVE_GCC_VISIBILITY_FEATURE=TRUE ], []) + CFLAGS=$save_CFLAGS + if test "$HAVE_GCC_VISIBILITY_FEATURE" = "TRUE"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + + AC_MSG_CHECKING([whether $CC supports -std=c++0x without Language Defect 757]) + save_CXXFLAGS=$CFLAGS + CXXFLAGS="$CXXFLAGS -std=c++0x" + AC_LANG_PUSH([C++]) + + AC_TRY_COMPILE([ +#include <stddef.h> + +template <typename T, size_t S> char (&sal_n_array_size( T(&)[S] ))[S]; + +namespace +{ + struct b + { + int i; + int j; + }; +} +],[ +struct a +{ + int i; + int j; +}; +a thinga[]={{0,0}, {1,1}}; +b thingb[]={{0,0}, {1,1}}; +size_t i = sizeof(sal_n_array_size(thinga)); +size_t j = sizeof(sal_n_array_size(thingb)); +return !(i != 0 && j != 0); +], HAVE_CXX0X=TRUE,) + + AC_LANG_POP([C++]) + CXXFLAGS=$save_CXXFLAGS + if test "$HAVE_CXX0X" = "TRUE"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi +fi + +AC_SUBST(HAVE_CXX0X) + +# =================================================================== +# use ccache? +# =================================================================== +dnl need to check for ccache version: otherwise prevents +dnl caching of the results (like "-x objective-c++" for Mac) +AC_MSG_CHECKING([whether we are able to use --ccache-skip]) +if test "$_os" != "Darwin" ; then + AC_MSG_RESULT([only used on Mac currently, skipping]) +else + # checking for ccache presence/version + AC_MSG_RESULT([probing...]) + AC_PATH_PROG([CCACHE],[ccache],[not_found]) + if test "$CCACHE" = "not_found" ; then + AC_MSG_NOTICE([not enabling --ccache-skip (ccache not found)]) + else + # check ccache version + AC_MSG_CHECKING([whether version of ccache is suitable]) + CCACHE_VERSION=`"$CCACHE" -V | "$AWK" '/^ccache version/{print $3}'` + CCACHE_NUMVER=`echo $CCACHE_VERSION | $AWK -F. '{ print \$1*10000+\$2*100+\$3 }'` + if test "$CCACHE_VERSION" = "2.4_OOo" -o "$CCACHE_NUMVER" -ge "030100"; then + AC_MSG_RESULT([yes]) + AC_MSG_CHECKING([whether ccache is actually used for the build]) + AC_LANG_PUSH([C++]) + save_CXXFLAGS=$CXXFLAGS + CXXFLAGS="$CXXFLAGS --ccache-skip -O2" + dnl an empty program will do, we're checking the compiler flags + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])], + [use_ccache=yes], [use_ccache=no]) + if test $use_ccache = yes ; then + AC_MSG_RESULT([yes, will enable --ccache-skip]) + AC_SUBST([USE_CCACHE], [YES]) + else + AC_MSG_RESULT([no, will not enable --ccache-skip]) + fi + CXXFLAGS=$save_CXXFLAGS + AC_LANG_POP([C++]) + else + AC_MSG_RESULT([no]) + AC_MSG_NOTICE([ccache version $CCACHE_VERSION not accepted. ccache will not be used.]) + fi + fi +fi + +dnl =================================================================== +dnl system stl sanity tests +dnl =================================================================== +HAVE_GCC_VISIBILITY_BROKEN= +if test \( "$_os" != "WINNT" -o "$WITH_MINGW" = "yes" \) ; then + + AC_LANG_PUSH([C++]) + + if test "$HAVE_GCC_VISIBILITY_FEATURE" = "TRUE"; then + AC_MSG_CHECKING([if STL headers are visibility safe]) + AC_EGREP_HEADER(visibility push, string, stlvisok=yes, stlvisok=no) + AC_MSG_RESULT([$stlvisok]) + if test "$stlvisok" = "no"; then + AC_MSG_WARN([Your gcc STL headers are not visibility safe. Disabling visibility]) + echo "Your gcc STL headers are not visibility safe. Disabling visibility" >> warn + unset HAVE_GCC_VISIBILITY_FEATURE + fi + fi + + if test "$HAVE_GCC_VISIBILITY_FEATURE" = "TRUE"; then + sharedlink_ldflags_save=$LDFLAGS + LDFLAGS="$LDFLAGS -fvisibility-inlines-hidden -fpic -shared" + + AC_MSG_CHECKING([if gcc is -fvisibility-inlines-hidden safe with STL headers]) + AC_TRY_LINK([#include <sstream> +using namespace std; +],[istringstream strm( "test" ); return 0;], + $EGREP -q unresolvable conftest.err; + if test $? -eq 0; then gccvisok=no; else gccvisok=yes; fi, + gccvisok=no) + AC_MSG_RESULT([$gccvisok]) + if test "$gccvisok" = "no"; then + AC_MSG_WARN([Your gcc is not -fvisibility-inlines-hidden safe, disabling that.]) + echo "Your gcc is not -fvisibility-inlines-hidden safe, disabling that." >> warn + HAVE_GCC_VISIBILITY_BROKEN="TRUE" + fi + + LDFLAGS=$sharedlink_ldflags_save + fi + + if test "$HAVE_GCC_VISIBILITY_FEATURE" = "TRUE"; then + AC_MSG_CHECKING([if gcc has a visibility bug with class-level attributes (GCC bug 26905)]) + cat >visibility.cxx <<_ACEOF +#pragma GCC visibility push(hidden) +struct __attribute__ ((visibility ("default"))) TestStruct { + static void Init(); +}; +__attribute__ ((visibility ("default"))) void TestFunc() { + TestStruct::Init(); +} +_ACEOF + if ! $CXX $CXXFLAGS $CPPFLAGS -fpic -S visibility.cxx 2>/dev/null > /dev/null; then + gccvisbroken=yes + else + case "$host_cpu" in + i?86|x86_64) + if test "$_os" = "Darwin"; then + gccvisbroken=no + else + if $EGREP -q '@PLT' visibility.s; then + gccvisbroken=no + else + gccvisbroken=yes + fi + fi + ;; + *) + gccvisbroken=no + ;; + esac + fi + rm -f visibility.s + + AC_MSG_RESULT([$gccvisbroken]) + if test "$gccvisbroken" = "yes"; then + AC_MSG_WARN([Your gcc is not -fvisibility=hidden safe. Disabling visibility]) + echo "Your gcc is not -fvisibility=hidden safe. Disabling visibility" >> warn + unset HAVE_GCC_VISIBILITY_FEATURE + fi + fi + + AC_LANG_POP([C++]) +fi + +AC_SUBST(HAVE_GCC_VISIBILITY_FEATURE) +AC_SUBST(HAVE_GCC_VISIBILITY_BROKEN) + +dnl =================================================================== +dnl allocator +dnl =================================================================== +AC_MSG_CHECKING([which memory allocator to use]) +if test "$with_alloc" = "system"; then + AC_MSG_RESULT([system]) + ALLOC="SYS_ALLOC"; + AC_CHECK_FUNCS([malloc realloc calloc free]) +fi +if test "$with_alloc" = "tcmalloc"; then + AC_MSG_RESULT(tcmalloc) + if ! echo $host_cpu | grep -E 'i[[3456]]86' 2>/dev/null >/dev/null; then + AC_MSG_ERROR([tcmalloc only available/usable on ix86]) + fi + AC_CHECK_LIB(tcmalloc, malloc, [], + [AC_MSG_ERROR(tcmalloc not found or functional. Install the Google Profiling Tools)], []) + ALLOC="TCMALLOC"; +fi +if test "$with_alloc" = "jemalloc"; then + if test "$_os" != "FreeBSD" -o "$_os" != "NetBSD"; then + AC_MSG_RESULT(jemalloc) + save_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -pthread" + AC_CHECK_LIB(jemalloc, malloc, [], + [AC_MSG_ERROR(jemalloc not found or functional. Install the jemalloc allocator.)], []) + ALLOC="JEMALLOC"; + CFLAGS=$save_CFLAGS + else + AC_MSG_RESULT([system]) + ALLOC="SYS_ALLOC"; + AC_CHECK_FUNCS([malloc realloc calloc free]) + fi +fi +if test "$with_alloc" = "internal" -o -z "$with_alloc"; then + AC_MSG_RESULT([internal]) +fi +AC_SUBST(ALLOC) + +dnl =================================================================== +dnl Custom build version +dnl =================================================================== + +AC_MSG_CHECKING([whether to add custom build version]) +if test "z$with_build_version" != "z"; then + BUILD_VER_STRING=$with_build_version + AC_MSG_RESULT([yes, $BUILD_VER_STRING]) +else + BUILD_VER_STRING= + AC_MSG_RESULT([no]) +fi +AC_SUBST(BUILD_VER_STRING) + +dnl =================================================================== +dnl Java support enable +dnl =================================================================== +AC_MSG_CHECKING([whether to build with Java support]) +if test "$WITH_JAVA" != "no"; then + AC_MSG_RESULT([yes]) + SOLAR_JAVA="TRUE" +else + AC_MSG_RESULT([no]) + SOLAR_JAVA="" + + AC_MSG_WARN([building without java will mean some features will not be available]) + echo "building without java will mean some features will not be available" >>warn +fi +AC_SUBST(SOLAR_JAVA) + +if test "$_os" = "Linux" && test "$host_cpu" = "powerpc"; then + # IBMs JDK needs this... + JITC_PROCESSOR_TYPE=6 + export JITC_PROCESSOR_TYPE +fi + +if test $_os = "WINNT"; then + WITH_VC_REDIST="TRUE" +fi +AC_SUBST(WITH_VC_REDIST) + +dnl =================================================================== +dnl Checks for Java +dnl =================================================================== +if test "$SOLAR_JAVA" != ""; then + + # Windows-specific tests + if test "$_os" = "WINNT"; then + if test "$CL_X64" != ""; then + bitness="64-bit" + otherbitness="32-bit" + else + bitness="32-bit" + otherbitness="64-bit" + fi + if test -z "$with_jdk_home"; then + + # Unfortunately apparently no way to find, if needed, the 64-bit + # JDK in the Registry from the 32-bit Perl oowintool + + _jdk_home=`./oowintool --jdk-home` + if test -f "$_jdk_home/lib/jvm.lib" -a -f "$_jdk_home/bin/java.exe"; then + with_jdk_home="$_jdk_home" + howfound="found by oowintool" + else + AC_MSG_ERROR([No JDK found by oowintool, pass the --with-jdk-home option pointing to a $bitness JDK]) + fi + else + with_jdk_home=`cygpath -u "$with_jdk_home"` + howfound="you passed" + fi + fi + + JAVA_HOME=; export JAVA_HOME + if test -z "$with_jdk_home"; then + AC_PATH_PROG(JAVAINTERPRETER, $WITH_JAVA) + else + _java_path="$with_jdk_home/bin/$WITH_JAVA" + dnl Check if there is a java interpreter at all. + if test -x "$_java_path"; then + JAVAINTERPRETER=$_java_path + else + AC_MSG_ERROR([$_java_path not found, pass --with-jdk-home]) + fi + fi + + if test "$_os" = "WINNT"; then + # Check that the JDK found is correct architecture + shortjdkhome=`cygpath -d "$with_jdk_home"` + if test "$CL_X64" != "" -a -f "$with_jdk_home/bin/java.exe" -a "`$shortjdkhome/bin/java.exe -version 2>&1 | grep -i 64-bit`" == "" >/dev/null; then + AC_MSG_WARN([You are building 64-bit binaries but the JDK $howfound is 32-bit]) + AC_MSG_ERROR([You should pass the --with-jdk-home option pointing to a 64-bit JDK]) + elif test "$CL_X64" == "" -a -f "$_jdk_home/bin/java.exe" -a "`$shortjdkhome/bin/java.exe -version 2>&1 | grep -i 64-bit`" != "" >/dev/null; then + AC_MSG_WARN([You are building 32-bit binaries but the JDK $howfound is 64-bit]) + AC_MSG_ERROR([You should pass the --with-jdk-home option pointing to a (32-bit) JDK]) + fi + + if test x`echo "$JAVAINTERPRETER" | grep -i '\.exe$'` = x; then + JAVAINTERPRETER="${JAVAINTERPRETER}.exe" + fi + JAVAINTERPRETER=`cygpath -d "$JAVAINTERPRETER"` + JAVAINTERPRETER=`cygpath -u "$JAVAINTERPRETER"` + elif test "$_os" = "Darwin"; then + dnl HACK: There currently is only a 32 bit version of LibO for Mac OS X, + dnl and Tiger java complains about -d32 while Snow Leopard java needs it + dnl to run in 32 bit mode and be able to load LibO jnilibs: + AC_MSG_CHECKING([whether to pass -d32 to Java interpreter]) + if "$JAVAINTERPRETER" -d32 >&5 2>&5; then + AC_MSG_RESULT([yes]) + JAVAIFLAGS=-d32 + else + AC_MSG_RESULT([no]) + fi + fi +fi + +dnl =================================================================== +dnl Checks for JDK. +dnl =================================================================== +if test "$SOLAR_JAVA" != ""; then + _gij_longver=0 + AC_MSG_CHECKING([the installed JDK]) + if test -n "$JAVAINTERPRETER"; then + dnl java -version sends output to stderr! + if test `$JAVAINTERPRETER -version 2>&1 | grep -c "Kaffe"` -gt 0; then + AC_MSG_ERROR([No valid check available. Please check the block for your desired java in configure.in]) + elif test `$JAVAINTERPRETER --version 2>&1 | grep -c "GNU libgcj"` -gt 0; then + JDK=gcj + AC_MSG_RESULT([checked (gcj)]) + _gij_version=`$JAVAINTERPRETER --version | grep GNU | $SED -e 's@^[[^0-9]]*@@' -e 's@ .*@@' -e 's@,.*@@'`; + _gij_longver=`echo $_gij_version | $AWK -F. '{ print \$1*10000+\$2*100+\$3 }'` + + elif test `$JAVAINTERPRETER -version 2>&1 | $AWK '{ print }' | grep -c "BEA"` -gt 0; then + AC_MSG_ERROR([No valid check available. Please check the block for your desired java in configure.in]) + elif test `$JAVAINTERPRETER -version 2>&1 | $AWK '{ print }' | grep -c "IBM"` -gt 0; then + JDK=ibm + + dnl IBM JDK specific tests + _jdk=`$JAVAINTERPRETER -version 2>&1 | $AWK -F'"' '{ print \$2 }' | $SED s/[[-A-Za-z]]*//` + _jdk_ver=`echo "$_jdk" | $AWK -F. '{ print (($1 * 100) + $2) * 100 + $3;}'` + + if test "$_jdk_ver" -lt 10500; then + AC_MSG_ERROR([IBM JDK is too old, you need at least 1.5]) + fi + + AC_MSG_RESULT([checked (IBM JDK $_jdk)]) + + if test "$with_jdk_home" = ""; then + AC_MSG_ERROR([In order to successfully build LibreOffice using the IBM JDK, +you must use the "--with-jdk-home" configure option explicitly]) + fi + + JAVA_HOME=$with_jdk_home + + else + JDK=sun + + dnl SUN JDK specific tests + _jdk=`$JAVAINTERPRETER -version 2>&1 | $AWK -F'"' '{ print \$2 }' | $SED s/[[-A-Za-z]]*//` + _jdk_ver=`echo "$_jdk" | $AWK -F. '{ print (($1 * 100) + $2) * 100 + $3;}'` + + if test "$_jdk_ver" -lt 10500; then + AC_MSG_ERROR([JDK is too old, you need at least 1.5]) + fi + AC_MSG_RESULT([checked (JDK $_jdk)]) + JAVA_HOME=`echo $JAVAINTERPRETER | $SED -n "s,//*bin//*java,,p"` + if test "$_os" = "WINNT"; then + JAVA_HOME=`echo $JAVA_HOME | $SED "s,\.[[eE]][[xX]][[eE]]$,,"` + fi + if test "$_os" = "OS2"; then + JAVA_HOME=`echo $JAVA_HOME | $SED "s,\.[[eE]][[xX]][[eE]]$,,"` + fi + fi + else + AC_MSG_ERROR([JAVA not found. You need at least jdk-1.5, or gcj-4]) + fi +else + dnl Java disabled + JAVA_HOME=NO_JAVA_HOME ; export JAVA_HOME +fi + +_java_target_ver="1.5" +dnl =================================================================== +dnl Check for target java bytecode version +dnl =================================================================== +if test "$SOLAR_JAVA" != ""; then + AC_MSG_CHECKING([for target java bytecode version]) + if test "$JDK" = "gcj" -o "$JDK" = "kaffe"; then + AC_MSG_RESULT([default by $JDK]) + if test -n "$with_java_target_version" -a "$with_java_target_version" != "no" ; then + AC_MSG_WARN([Value defined by --with-java-target-version is ignored!]) + fi + else + if test -n "$with_java_target_version" -a "$with_java_target_version" != "no" ; then + _java_target_ver="$with_java_target_version" + AC_MSG_RESULT([$_java_target_ver]) + elif test $_jdk_ver -gt 10000 ; then + _java_target_ver=`echo "$_jdk_ver" | $AWK '{ maj=substr($0,1,1); min=substr($0,2,2); print int(maj)"."int(min) }'` + AC_MSG_RESULT([$_java_target_ver]) + else + AC_MSG_ERROR([Unable to guess java bytecode version from java version!]) + fi + fi + + if ! test -z "$_java_target_ver" -o \ + "$_java_target_ver" = "1.1" -o \ + "$_java_target_ver" = "1.2" -o \ + "$_java_target_ver" = "1.3" -o \ + "$_java_target_ver" = "1.4" -o \ + "$_java_target_ver" = "1.5" -o \ + "$_java_target_ver" = "1.6" -o \ + "$_java_target_ver" = "5" ; then + AC_MSG_ERROR([$_java_target_ver is not supported java bytecode version!]) + fi + + JAVA_SOURCE_VER="$_java_target_ver" + JAVA_TARGET_VER="$_java_target_ver" +fi + +dnl =================================================================== +dnl Checks for javac +dnl =================================================================== +if test "$SOLAR_JAVA" != ""; then + if test "$JDK" = "gcj"; then + javacompiler=`echo $WITH_JAVA | $SED -e "s/gij/gcj/g" | $SED -e "s/java/javac/g"` + else + javacompiler="javac" + fi + if test "$_os" = "OS2"; then + if test x`echo "$javacompiler" | grep -i '\.exe$'` = x; then + javacompiler="${javacompiler}.exe" + fi + fi + if test -z "$with_jdk_home"; then + AC_PATH_PROG(JAVACOMPILER, $javacompiler) + else + _javac_path="$with_jdk_home/bin/$javacompiler" + dnl Check if there is a java compiler at all. + if test -x "$_javac_path"; then + JAVACOMPILER=$_javac_path + fi + fi + if test -z "$JAVACOMPILER"; then + AC_MSG_ERROR([$javacompiler not found set with_jdk_home]) + fi + if test "$_os" = "WINNT"; then + if test x`echo "$JAVACOMPILER" | grep -i '\.exe$'` = x; then + JAVACOMPILER="${JAVACOMPILER}.exe" + fi + JAVACOMPILER=`cygpath -d "$JAVACOMPILER"` + JAVACOMPILER=`cygpath -u "$JAVACOMPILER"` + fi + if test "$_os" = "OS2"; then + if test x`echo "$JAVACOMPILER" | grep -i '\.exe$'` = x; then + JAVACOMPILER="${JAVACOMPILER}.exe" + fi + fi + + if test `$JAVACOMPILER -version 2>&1 | grep -c "Eclipse Java Compiler"` -gt 0; then + AC_MSG_CHECKING([re-checking JDK]) + JDK=gcj + AC_MSG_RESULT([checked (ecj)]) + #TODO: what's to do here? some switch to do 1.5 compiling? + JAVAFLAGS="-source 1.5 -target 1.5" + _gij_longver="40200" + fi +fi + +JAVACISGCJ="" +dnl =================================================================== +dnl Checks that javac is gcj +dnl =================================================================== +if test "$SOLAR_JAVA" != ""; then + if test `$JAVACOMPILER --version 2>&1 | grep -c "GCC"` -gt 0; then + JAVACISGCJ="yes" + fi +fi +AC_SUBST(JAVACISGCJ) + +JAVACISKAFFE="" +dnl =================================================================== +dnl Checks that javac is kaffe +dnl =================================================================== +if test "$SOLAR_JAVA" != ""; then + if test `$JAVACOMPILER -version 2>&1 | grep -c "Kaffe"` -gt 0; then + JAVACISKAFFE="yes" + fi +fi +AC_SUBST(JAVACISKAFFE) + +dnl =================================================================== +dnl Checks for javadoc +dnl =================================================================== +if test "$SOLAR_JAVA" != ""; then + if test -z "$with_jdk_home"; then + AC_PATH_PROG(JAVADOC, javadoc) + else + _javadoc_path="$with_jdk_home/bin/javadoc" + if test "$_os" = "OS2"; then + if test x`echo "$_javadoc_path" | grep -i '\.exe$'` = x; then + _javadoc_path="${_javadoc_path}.exe" + fi + fi + dnl Check if there is a javadoc at all. + if test -x "$_javadoc_path"; then + JAVADOC=$_javadoc_path + else + AC_PATH_PROG(JAVADOC, javadoc) + fi + fi + if test -z "$JAVADOC"; then + AC_MSG_ERROR([$_javadoc_path not found set with_jdk_home]) + fi + if test "$_os" = "WINNT"; then + if test x`echo "$JAVADOC" | grep -i '\.exe$'` = x; then + JAVADOC="${JAVADOC}.exe" + fi + JAVADOC=`cygpath -d "$JAVADOC"` + JAVADOC=`cygpath -u "$JAVADOC"` + fi + if test "$_os" = "OS2"; then + if test x`echo "$JAVADOC" | grep -i '\.exe$'` = x; then + JAVADOC="${JAVADOC}.exe" + fi + fi +fi + +if test "$SOLAR_JAVA" != ""; then + # check if JAVA_HOME was (maybe incorrectly?) set automatically to /usr + if test "$JAVA_HOME" = "/usr" -a "x$with_jdk_home" = "x"; then + + if basename $(readlink $(readlink $JAVACOMPILER)) >/dev/null 2>/dev/null; then + # try to recover first by looking whether we have a alternatives + # system as in Debian or newer SuSEs where following /usr/bin/javac + # over /etc/alternatives/javac leads to the right bindir where we + # just need to strip a bit away to get a valid JAVA_HOME + JAVA_HOME=$(readlink $(readlink $JAVACOMPILER)) + elif readlink $JAVACOMPILER >/dev/null 2>/dev/null; then + # maybe only one level of symlink (e.g. on Mac) + JAVA_HOME=$(readlink $JAVACOMPILER) + if test "$(dirname $JAVA_HOME)" = "."; then + # we've got no path to trim back + JAVA_HOME="" + fi + else + # else warn + AC_MSG_WARN([JAVA_HOME is set to /usr - this is very likely to be incorrect]) + AC_MSG_WARN([if this is the case, please inform the correct JAVA_HOME with --with-jdk-home]) + echo "JAVA_HOME is set to /usr - this is very likely to be incorrect" >> warn + echo "if this is the case, please inform the correct JAVA_HOME with --with-jdk-home" >> warn + fi + dnl now that we have the path to the real javac, make a JAVA_HOME out of it.. + if test "$JAVA_HOME" != "/usr"; then + if test "$_os" = "Darwin"; then + dnl Leopard returns a non-suitable path with readlink - points to "Current" only + JAVA_HOME=$(echo $JAVA_HOME | $SED -e s,/Current/Commands/javac$,/CurrentJDK/Home,) + dnl Tiger already returns a JDK path.. + JAVA_HOME=$(echo $JAVA_HOME | $SED -e s,/CurrentJDK/Commands/javac$,/CurrentJDK/Home,) + else + JAVA_HOME=$(echo $JAVA_HOME | $SED -e s,/bin/javac$,,) + fi + fi +fi +# as we drop out of this, JAVA_HOME may have been set to the empty string by readlink + +dnl now if JAVA_HOME has been set to empty, then call findhome to find it + if test -z "$JAVA_HOME"; then + if test "x$with_jdk_home" = "x"; then + cat > findhome.java <<_ACEOF +[import java.io.File; + +class findhome +{ + public static void main(String args[]) + { + String jrelocation = System.getProperty("java.home"); + File jre = new File(jrelocation); + System.out.println(jre.getParent()); + } +}] +_ACEOF + AC_MSG_CHECKING([if javac works]) + javac_cmd="$JAVACOMPILER findhome.java 1>&2" + AC_TRY_EVAL(javac_cmd) + if test $? = 0 && test -f ./findhome.class ; then + AC_MSG_RESULT([javac works]) + else + echo "configure: javac test failed" >&5 + cat findhome.java >&5 + AC_MSG_ERROR([javac does not work - java projects will not build!]) + fi + + AC_MSG_CHECKING([if gij knows its java.home]) + JAVA_HOME=`$JAVAINTERPRETER findhome` + if test $? = 0 && test "$JAVA_HOME" != "" ; then + AC_MSG_RESULT([$JAVA_HOME]) + else + echo "configure: java test failed" >&5 + cat findhome.java >&5 + AC_MSG_ERROR([gij does not know its java.home - use --with-jdk-home]) + fi + else + JAVA_HOME=`echo $JAVAINTERPRETER | $SED -n "s,//*bin//*$WITH_JAVA,,p"` + fi + fi + + dnl second sanity check JAVA_HOME if possible + if test "$JDK" != "gcj" -o "$_gij_longver" -ge "40200"; then + # now check if $JAVA_HOME is really valid + if test "$_os" = "Darwin"; then + if test ! -f "$JAVA_HOME/lib/jvm.cfg" -a "x$with_jdk_home" = "x"; then + JAVA_HOME_OK="NO" + fi + elif test ! -d "$JAVA_HOME/jre" -a "x$with_jdk_home" = "x"; then + JAVA_HOME_OK="NO" + fi + if test "$JAVA_HOME_OK" = "NO"; then + AC_MSG_WARN([JAVA_HOME was not explicitly informed with --with-jdk-home. the configure script]) + AC_MSG_WARN([attempted to find JAVA_HOME automatically, but apparently it failed]) + AC_MSG_WARN([in case JAVA_HOME is incorrectly set, some projects with not be built correctly]) + echo "JAVA_HOME was not explicitly informed with --with-jdk-home. the configure script" >> warn + echo "attempted to find JAVA_HOME automatically, but apparently it failed" >> warn + echo "in case JAVA_HOME is incorrectly set, some projects with not be built correctly" >> warn + fi + fi + AC_MSG_NOTICE([JAVA_HOME=$JAVA_HOME]) +fi +AWTLIB= +if test "$SOLAR_JAVA" != ""; then + AC_MSG_CHECKING([for jawt lib name]) + if test "$JDK" = "gcj"; then + save_CFLAGS=$CFLAGS + save_LDFLAGS=$LDFLAGS + CFLAGS="$CFLAGS -I$JAVA_HOME/include" + LDFLAGS="$LDFLAGS -L$JAVA_HOME/lib -lgcj" + exec 6>/dev/null # no output + AC_CHECK_HEADER(jni.h, [], + [AC_MSG_ERROR([jni.h could not be found. Mismatch between gcc and libgcj or libgcj-devel missing?])], []) + AC_CHECK_LIB(gcjawt, JAWT_GetAWT, [ AWTLIB="-lgcjawt -lgcj"] ) + exec 6>&1 # output on again + CFLAGS=$save_CFLAGS + LDFLAGS=$save_LDFLAGS + fi + # IBM SDK 1.5.0-sr5 includes libjawt.so with unresolved symbols. + # A workaround is to link also against libpmawt.so + if test "$JDK" = "ibm" ; then + save_CFLAGS=$CFLAGS + save_LDFLAGS=$LDFLAGS + save_LD_LIBRARY_PATH=$LD_LIBRARY_PATH + CFLAGS="$CFLAGS -I$JAVA_HOME/include" + LDFLAGS="$LDFLAGS -L$JAVA_HOME/jre/bin" + LD_LIBRARY_PATH=$JAVA_HOME/jre/bin:$JAVA_HOME/jre/bin/classic:$JAVA_HOME/jre/bin/xawt:$LD_LIBRARY_PATH + export LD_LIBRARY_PATH + exec 6>/dev/null # no output + AC_CHECK_HEADER(jni.h, [], + [AC_MSG_ERROR([jni.h could not be found.])], []) + AC_CHECK_LIB(jawt, JAWT_GetAWT, [ AWTLIB="-ljawt"] ) + if test -z "$AWTLIB"; then + LDFLAGS="$LDFLAGS -L$JAVA_HOME/jre/bin/xawt -ljawt" + AC_CHECK_LIB(mawt, JAWT_GetAWT, [ AWTLIB="-L$JAVA_HOME/jre/bin/xawt -ljawt -lmawt"]) + fi + exec 6>&1 # output on again + CFLAGS=$save_CFLAGS + LDFLAGS=$save_LDFLAGS + LD_LIBRARY_PATH=$save_LD_LIBRARY_PATH + fi + if test -z "$AWTLIB"; then + AWTLIB=-ljawt + fi + AC_MSG_RESULT([$AWTLIB]) + AC_SUBST(AWTLIB) +fi + +AC_SUBST(JAVA_HOME) +AC_SUBST(JDK) +AC_SUBST(JAVAFLAGS) +AC_SUBST(JAVA_SOURCE_VER) +AC_SUBST(JAVA_TARGET_VER) +AC_SUBST(JAVAINTERPRETER) +AC_SUBST(JAVAIFLAGS) +AC_SUBST(JAVACOMPILER) +AC_SUBST(JAVADOC) + +dnl =================================================================== +dnl Checks for specific files. +dnl =================================================================== + +dnl =================================================================== +dnl Checks for programs. +dnl =================================================================== + +dnl =================================================================== +dnl Check whether we already have dmake +dnl =================================================================== +AC_PATH_PROG(DMAKE, dmake, no) +if test "$DMAKE" = "no"; then + BUILD_DMAKE=YES + echo "dmake will be built on ./bootstrap" +else + AC_MSG_CHECKING([whether the found dmake is the right dmake]) + # we need to find out whether that dmake we found is "our" dmake + # or the dmake from Sun's SunStudio Compiler which is something + # different + # This test _should_ work because the one accepts -V (ours) and one + # (the other) not... + $DMAKE -V 2>/dev/null | grep 'dmake .* Version .*' >/dev/null + if test $? -eq 0; then + BUILD_DMAKE=NO + AC_MSG_RESULT([yes]) + AC_MSG_CHECKING([the dmake version]) + DMAKE_VERSION=`$DMAKE -V | $AWK '$3 == "Version" {print $4}'` + if test "`echo $DMAKE_VERSION | cut -d'.' -f1`" -gt "4"; then + AC_MSG_RESULT([OK, >= 4.11]) + elif test "`echo $DMAKE_VERSION | cut -d'.' -f1`" = "4" && \ + test "`echo $DMAKE_VERSION | cut -d'.' -f2`" -ge "11"; then + AC_MSG_RESULT([OK, >= 4.11]) + else + AC_MSG_RESULT([too old. >= 4.11 is needed]) + echo "A newer dmake will be built on ./bootstrap" + BUILD_DMAKE=YES + fi + else + AC_MSG_RESULT([no]) + echo "dmake will be built on ./bootstrap" + BUILD_DMAKE=YES + fi +fi +AC_SUBST(BUILD_DMAKE) + +AC_MSG_CHECKING([whether to enable EPM for packing]) +BUILD_EPM=NO +if test "$enable_epm" = "yes"; then + AC_MSG_RESULT([yes]) + dnl =================================================================== + dnl Check for epm - not needed for windows + dnl =================================================================== + if test "$_os" != "WINNT"; then + if test -n "$with_epm"; then + EPM=$with_epm + else + AC_PATH_PROG(EPM, epm, no) + fi + if test "$EPM" = "no" || test "$EPM" = "internal"; then + echo "EPM will be built." + BUILD_EPM=YES + BUILD_TYPE="$BUILD_TYPE EPM" + else + # Gentoo has some epm which is something different... + AC_MSG_CHECKING([whether the found epm is the right epm]) + if $EPM | grep "ESP Package Manager" >/dev/null 2>/dev/null; then + AC_MSG_RESULT([yes]) + else + AC_MSG_ERROR([no. Install ESP Package Manager (www.easysw.com/epm) and/or specify the path to the right epm]) + fi + AC_MSG_CHECKING([epm version]) + EPM_VERSION=`$EPM | grep 'ESP Package Manager' | cut -d' ' -f4 | $SED -e s/v//` + if test "`echo $EPM_VERSION | cut -d'.' -f1`" -gt "3" || \ + test "`echo $EPM_VERSION | cut -d'.' -f1`" -eq "3" -a "`echo $EPM_VERSION | cut -d'.' -f2`" -ge "7"; then + AC_MSG_RESULT([OK, >= 3.7]) + BUILD_EPM=NO + if test "$_os" = "Darwin"; then + AC_MSG_CHECKING([which PackageMaker EPM thinks to use]) + _pm=`strings $EPM | grep PackageMaker | cut -d" " -f1` + if test "$_pm" = "/Developer/Applications/PackageMaker.app/Contents/MacOS/PackageMaker"; then + AC_MSG_ERROR([$_pm; PackageMaker expected in wrong path. Either patch your epm with the right path (/Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker) or use internal patched epm (--with-epm=internal)]) + elif test "$_pm" = "/Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker"; then + AC_MSG_RESULT([$_pm, ok]) + else # we never should get here, but go safe + AC_MSG_ERROR([$_pm; PackageMaker expected in unknown path. Either patch your epm with the right path (/Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker) or use internal patched epm (--with-epm=internal)]) + fi + fi + else + AC_MSG_RESULT([too old. epm >= 3.7 is required.]) + echo "EPM will be built." + BUILD_EPM=YES + BUILD_TYPE="$BUILD_TYPE EPM" + fi + fi + fi + + # test which package format to use + AC_MSG_CHECKING([which package format to use]) + + # defaults + case "$_os" in + OS2) + PKGFORMAT=native + ;; + Darwin) + PKGFORMAT=dmg + ;; + SunOS) + PKGFORMAT=pkg + ;; + Linux) + # if building on Debian, default should be deb... + if test -e /etc/debian_version; then + PKGFORMAT=deb + else + PKGFORMAT=rpm + fi + ;; + AIX) + PKGFORMAT=rpm + ;; + OpenBSD|DragonFly) + PKGFORMAT=portable + ;; + *BSD) + PKGFORMAT=bsd + ;; + WINNT) + PKGFORMAT=msi + ;; + # we never should get here since we check the arciecture/os at the beginning, + # but go sure... + *) + AC_MSG_ERROR([unknown system]) + esac + if test -n "$with_package_format"; then + for i in $with_package_format; do + case "$i" in + aix | bsd | deb | inst | tardist | osx | pkg | rpm | setld | native | portable | archive | dmg | installed | msi) + ;; + *) + AC_MSG_ERROR([unsupported format $i. Supported by EPM are: +aix - AIX software distribution +bsd - FreeBSD, NetBSD, or OpenBSD software distribution +depot or swinstall - HP-UX software distribution +deb - Debian software distribution +inst or tardist - IRIX software distribution +osx - MacOS X software distribution +pkg - Solaris software distribution +rpm - RedHat software distribution +setld - Tru64 (setld) software distribution +native - "Native" software distribution for the platform +portable - Portable software distribution +LibO additionally supports: +archive - .tar.gz or .zip +dmg - Mac OS X .dmg +installed - installation tree +msi - Windows .msi + ]) + ;; + esac + done + PKGFORMAT="$with_package_format" + fi + AC_MSG_RESULT([$PKGFORMAT]) + if echo "$PKGFORMAT" | $EGREP rpm 2>&1 >/dev/null; then + AC_MSG_CHECKING([for rpm]) + for a in "$RPM" rpmbuild rpm; do + $a --usage >/dev/null 2> /dev/null + if test $? -eq 0; then + RPM=$a + break + else + $a --version >/dev/null 2> /dev/null + if test $? -eq 0; then + RPM=$a + break + fi + fi + done + if test -z "$RPM" ; then + AC_MSG_ERROR([not found]) + elif "$RPM" --help 2>&1 | $EGREP buildroot >/dev/null; then + RPM_PATH=`which $RPM` + AC_MSG_RESULT([$RPM_PATH]) + else + AC_MSG_ERROR([cannot build packages. Try installing rpmbuild.]) + fi + fi + if echo "$PKGFORMAT" | $EGREP deb 2>&1 >/dev/null; then + AC_PATH_PROG(DPKG, dpkg, no) + if test "$DPKG" = "no"; then + AC_MSG_ERROR([dpkg needed for deb creation. Install dpkg.]) + fi + fi + if echo "PKGFORMAT" | $EGREP osx 2>&1 >/dev/null; then + if test "$_os" = "Darwin"; then + AC_MSG_CHECKING([for PackageMaker availability]) + if ! test -x /Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker; then + AC_MSG_ERROR([not installed. Please install Apples Dev Tools]) + else + AC_MSG_RESULT([ok]) + fi + else + AC_MSG_ERROR([PackageMaker needed to build OSX packages and you are not on OSX...]) + fi + fi + if echo "$PKGFORMAT" | $EGREP rpm 2>&1 >/dev/null || \ + echo "$PKGFORMAT" | $EGREP pkg 2>&1 >/dev/null; then + if test "$EPM" != "no" && test "$EPM" != "internal"; then + if test "`echo $EPM_VERSION | cut -d'.' -f1`" -lt "4"; then + AC_MSG_CHECKING([whether epm is patched for LibOs needs]) + if grep "Patched for LibreOffice" $EPM >/dev/null 2>/dev/null; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + if echo "$PKGFORMAT" | grep -q rpm; then + _pt="rpm" + AC_MSG_WARN([the rpms will need to be installed with --nodeps]) + echo "the rpms will need to be installed with --nodeps" >> warn + else + _pt="pkg" + fi + AC_MSG_WARN([the ${_pt}s will not be relocateable]) + echo "the ${_pt}s will not be relocateable" >> warn + AC_MSG_WARN([if you want to make sure installation without --nodeps and + relocation will work, you need to patch your epm with the + patch in epm/epm-3.7.patch or build with + --with-epm=internal which will build a suitable epm]) + fi + fi + fi + fi + if echo "$PKGFORMAT" | $EGREP pkg 2>&1 >/dev/null; then + AC_PATH_PROG(PKGMK, pkgmk, no) + if test "$PKGMK" = "no"; then + AC_MSG_ERROR([pkgmk needed for Solaris pkg creation. Install it.]) + fi + fi + AC_SUBST(RPM) + AC_SUBST(DPKG) + AC_SUBST(PKGMK) +else + AC_MSG_RESULT([no]) + EPM=NO + PKGFORMAT=native +fi +AC_SUBST(EPM) +AC_SUBST(BUILD_EPM) +AC_SUBST(PKGFORMAT) + +dnl =================================================================== +dnl Check for gperf +dnl =================================================================== +AC_PATH_PROG(GPERF, gperf) +if test -z "$GPERF"; then + AC_MSG_ERROR([gperf not found but needed. Install it.]) +fi +AC_MSG_CHECKING([gperf version]) +if test "`$GPERF --version | $EGREP ^GNU\ gperf | $AWK '{ print $3 }' | cut -d. -f1`" -ge "3"; then + AC_MSG_RESULT([OK]) +else + AC_MSG_ERROR([too old, you need at least 3.0.0]) +fi +AC_SUBST(GPERF) + +dnl =================================================================== +dnl Check for pkg-config +dnl # Note that if there is a possibility the first call to +dnl # PKG_CHECK_MODULES might not happen, you should be sure to include an +dnl # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac +dnl =================================================================== +if test "$_os" != "WNT"; then + PKG_PROG_PKG_CONFIG +fi + +dnl =================================================================== +dnl Check for building stax +dnl =================================================================== +AC_MSG_CHECKING([whether to build the stax]) +if test -f "./stax/download/jsr173_1.0_api.jar"; then + BUILD_STAX=NO + AC_MSG_RESULT([no, will use the prebuilt stax/download/jsr173_1.0_api.jar]) +else + BUILD_STAX=YES + AC_MSG_RESULT([yes]) +fi +AC_SUBST(BUILD_STAX) + +dnl =================================================================== +dnl Check for building ODK +dnl =================================================================== +AC_MSG_CHECKING([whether to build the ODK]) +if test "z$enable_odk" = "z" -o "$enable_odk" != "no"; then + AC_MSG_RESULT([yes]) + if test "$WITH_JAVA" != "no"; then + AC_MSG_CHECKING([whether to build unowinreg.dll]) + if test "$_os" = "WINNT" -a "z$enable_build_unowinreg" = "z" ; then + # build on Win by default + enable_build_unowinreg=yes + fi + if test "z$enable_build_unowinreg" = "z" -o "$enable_build_unowinreg" = "no"; then + AC_MSG_RESULT([no]) + BUILD_UNOWINREG=NO + else + AC_MSG_RESULT([yes]) + BUILD_UNOWINREG=YES + fi + if test "$_os" != "WINNT" && test "$BUILD_UNOWINREG" = "YES"; then + if test -z "$WITH_MINGW" || test "$WITH_MINGW" = "0"; then + AC_MSG_ERROR([for rebuilding unowinreg.dll you need the MinGW C++ compiler. + Specify mingw32 g++ executable name with --with-mingw. + Or use prebuilt one from http://tools.openoffice.org/unowinreg_prebuild/680/ and + put it into external/unowinreg]) + fi + if echo "$WITH_MINGW" | $EGREP -q "/"; then + if ! test -x "$WITH_MINGW"; then MINGWCXX=false; else MINGWCXX=`basename $WITH_MINGW`; fi + else + AC_CHECK_TOOL(MINGWCXX, $WITH_MINGW, false) + fi + if test "$MINGWCXX" = "false"; then + AC_MSG_ERROR(specified MinGW32 C++ cross-compiler not found. Install it or correct name.) + fi + AC_MSG_CHECKING(whether we are using the MinGW32 cross C++ compiler) + if ! echo "`$MINGWCXX -dumpmachine`" | grep -q mingw32; then + AC_MSG_ERROR(no) + else + AC_MSG_RESULT(yes) + fi + if echo "$WITH_MINGW" | $EGREP -q "/"; then + if ! test -x "`echo $WITH_MINGW | $SED -e s/[cg]++/strip/`"; then MINGWSTRIP=false; else MINGWSTRIP=$(basename $(echo $WITH_MINGW | $SED -e s/[cg]++/strip/)); fi + else + AC_CHECK_TOOL(MINGWSTRIP, `echo $WITH_MINGW | $SED -e s/[[[cg]]]++/strip/`, false) + fi + if test "$MINGWSTRIP" = "false"; then + AC_MSG_ERROR(MinGW32 binutils needed. Install them.) + fi + AC_LANG_PUSH([C++]) + save_CXX=$CXX + save_CXXCPP=$CXXCPP + CXX=$MINGWCXX + CXXCPP="$MINGWCXX -E" + save_CXXFLAGS=$CXXFLAGS + save_CPPFLAGS=$CPPFLAGS + CXXFLAGS="$CXXFLAGS -I$JAVA_HOME/include" + CPPFLAGS="$CPPFLAGS -I$JAVA_HOME/include" + # LIBS contains -lcrypt etc due to teh AC_CHECK_LIBS which obviously + # do not make sense here (and 'd make the check fail) + save_LIBS=$LIBS + LIBS="" + AC_HAVE_LIBRARY(kernel32) + AC_HAVE_LIBRARY(advapi32) + AC_CHECK_HEADER(windows.h, [], [AC_MSG_ERROR([windows.h missing])]) + CXXFLAGS=$save_CXXFLAGS + CPPFLAGS=$save_CPPFLAGS + CXX=$save_CXX + CXXCPP=$save_CXXCPP + LIBS=$save_LIBS + AC_LANG_POP([C++]) + fi + fi + BUILD_TYPE="$BUILD_TYPE ODK" +else + AC_MSG_RESULT([no]) + BUILD_UNOWINREG=NO +fi +AC_SUBST(BUILD_UNOWINREG) +AC_SUBST(MINGWCXX) +AC_SUBST(MINGWSTRIP) + +dnl =================================================================== +dnl Check for system stdlibs +dnl =================================================================== +AC_MSG_CHECKING([whether to provide libstdc++/libgcc_s in the installset]) +if test -n "$with_system_stdlibs" -o -n "$with_system_libs" && \ + test "$with_system_stdlibs" != "no"; then + AC_MSG_RESULT([no]) + SYSTEM_STDLIBS=YES +else + AC_MSG_RESULT([yes]) + SYSTEM_STDLIBS=NO +fi +AC_SUBST(SYSTEM_STDLIBS) + +dnl =================================================================== +dnl Check for system zlib +dnl =================================================================== +AC_MSG_CHECKING([which zlib to use]) +if test -n "$with_system_zlib" -o -n "$with_system_libs" -o \ + "$_os" != "WINNT" && \ + test "$with_system_zlib" != "no"; then + AC_MSG_RESULT([external]) + SYSTEM_ZLIB=YES + AC_CHECK_HEADER(zlib.h, [], + [AC_MSG_ERROR(zlib.h not found. install zlib)], []) + AC_CHECK_LIB(z, deflate, [ ZLIB=-lz ], + [AC_MSG_ERROR(zlib not found or functional)], []) +else + AC_MSG_RESULT([internal]) + SYSTEM_ZLIB=NO + BUILD_TYPE="$BUILD_TYPE ZLIB" +fi +AC_SUBST(SYSTEM_ZLIB) + +dnl =================================================================== +dnl Check for system jpeg +dnl =================================================================== +AC_MSG_CHECKING([which jpeg to use]) +if test -n "$with_system_jpeg" -o -n "$with_system_libs" -o \ + "$_os" = "Linux" && \ + test "$with_system_jpeg" != "no"; then + AC_MSG_RESULT([external]) + SYSTEM_JPEG=YES + AC_CHECK_HEADER(jpeglib.h, [], + [AC_MSG_ERROR(jpeg.h not found. install libjpeg)], []) + AC_CHECK_LIB(jpeg, jpeg_resync_to_restart, [ JPEG3RDLIB=-ljpeg ], + [AC_MSG_CHECKING(jpeg library not found or fuctional)], []) +else + AC_MSG_RESULT([internal]) + SYSTEM_JPEG=NO + BUILD_TYPE="$BUILD_TYPE JPEG" +fi +AC_SUBST(SYSTEM_JPEG) + +dnl =================================================================== +dnl Check for system expat +dnl =================================================================== +AC_MSG_CHECKING([which expat to use]) +if test -n "$with_system_expat" -o -n "$with_system_libs" && \ + test "$with_system_expat" != "no"; then + AC_MSG_RESULT([external]) + SYSTEM_EXPAT=YES + AC_CHECK_HEADER(expat.h, [], + [AC_MSG_ERROR(expat.h not found. install expat)], []) + AC_CHECK_LIB(expat, XML_ParserCreate, [], + [AC_MSG_RESULT(expat library not found or functional.)], []) +else + AC_MSG_RESULT([internal]) + SYSTEM_EXPAT=NO + BUILD_TYPE="$BUILD_TYPE EXPAT" +fi +AC_SUBST(SYSTEM_EXPAT) + +dnl =================================================================== +dnl Check for system libwpd +dnl =================================================================== +AC_MSG_CHECKING([which libwpd to use]) +if test -n "$with_system_libwpd" -o -n "$with_system_libs" && \ + test "$with_system_libwpd" != "no"; then + AC_MSG_RESULT([external]) + SYSTEM_LIBWPD=YES + PKG_CHECK_MODULES( LIBWPD, libwpd-0.9 libwpd-stream-0.9 ) +else + AC_MSG_RESULT([internal]) + SYSTEM_LIBWPD=NO + BUILD_TYPE="$BUILD_TYPE LIBWPD" +fi +AC_SUBST(SYSTEM_LIBWPD) +AC_SUBST(LIBWPD_CFLAGS) +AC_SUBST(LIBWPD_LIBS) + +dnl =================================================================== +dnl Check for system cppunit +dnl =================================================================== +AC_MSG_CHECKING([which cppunit to use]) +if test -n "$with_system_cppunit" -o -n "$with_system_libs" && \ + test "$with_system_cppunit" != "no"; then + AC_MSG_RESULT([external]) + SYSTEM_CPPUNIT=YES + # might work for earlier, too but go sure: + PKG_CHECK_MODULES( CPPUNIT, cppunit >= 1.12.0 ) +else + AC_MSG_RESULT([internal]) + SYSTEM_CPPUNIT=NO + BUILD_TYPE="$BUILD_TYPE CPPUNIT" +fi +AC_SUBST(SYSTEM_CPPUNIT) +AC_SUBST(CPPUNIT_CFLAGS) +AC_SUBST(CPPUNIT_LIBS) + +dnl =================================================================== +dnl Check whether freetype is available +dnl =================================================================== +if test "$test_freetype" = "yes"; then + AC_MSG_CHECKING([whether freetype is available]) + PKG_CHECK_MODULES( FREETYPE, freetype2 >= 2.0 ) +fi +AC_SUBST(FREETYPE_CFLAGS) +AC_SUBST(FREETYPE_LIBS) + +dnl =================================================================== +dnl Check for system libwps +dnl =================================================================== +AC_MSG_CHECKING([which libwps to use]) +if test -n "$with_system_libwps" -o -n "$with_system_libs" && \ + test "$with_system_libwps" != "no"; then + AC_MSG_RESULT([external]) + SYSTEM_LIBWPS=YES + PKG_CHECK_MODULES( LIBWPS, libwps-0.2 ) +else + AC_MSG_RESULT([internal]) + SYSTEM_LIBWPS=NO + BUILD_TYPE="$BUILD_TYPE LIBWPS" +fi +AC_SUBST(SYSTEM_LIBWPS) +AC_SUBST(LIBWPS_CFLAGS) +AC_SUBST(LIBWPS_LIBS) + +dnl =================================================================== +dnl Check for system libwpg +dnl =================================================================== +AC_MSG_CHECKING([which libwpg to use]) +if test -n "$with_system_libwpg" -o -n "$with_system_libs" && \ + test "$with_system_libwpg" != "no"; then + AC_MSG_RESULT([external]) + SYSTEM_LIBWPG=YES + PKG_CHECK_MODULES( LIBWPG, libwpg-0.2 ) +else + AC_MSG_RESULT([internal]) + SYSTEM_LIBWPG=NO + BUILD_TYPE="$BUILD_TYPE LIBWPG" +fi +AC_SUBST(SYSTEM_LIBWPG) +AC_SUBST(LIBWPG_CFLAGS) +AC_SUBST(LIBWPG_LIBS) + +dnl =================================================================== +dnl Check whether freetype2 supports emboldening +dnl =================================================================== +if test "$test_freetype" = "yes"; then + save_CPPFLAGS="$CPPFLAGS" + save_LDFLAGS="$LDFLAGS" + save_LIBS="$LIBS" + CPPFLAGS="$CPPFLAGS $FREETYPE_CFLAGS" + LDFLAGS="$LDFLAGS $FREETYPE_LIBS" + AC_CHECK_LIB(freetype, FT_GlyphSlot_Embolden, + [USE_FT_EMBOLDEN="YES"], [USE_FT_EMBOLDEN="NO"], []) + LDFLAGS="$save_LDFLAGS" + CPPFLAGS="$save_CPPFLAGS" + LIBS="$save_LIBS" +fi +AC_SUBST(USE_FT_EMBOLDEN) + +if test -n "$with_system_libxslt" -o -n "$with_system_libs" && \ + test "$with_system_libxslt" != "no"; then + if test -z "$with_system_libxml" -a -z "$with_system_libs" || \ + test "$with_system_libxml" = "no"; then + # somehow AC_MSG_WARN won't work... + echo "to prevent incompatibilities between internal libxml2 and libxslt, the office will be build with system-libxml" + echo "to prevent incompatibilities between internal libxml2 and libxslt, the office will be build with system-libxml" >> warn + with_system_libxml=yes + fi +fi +if test -n "$with_system_libxml" -o -n "$with_system_libs" && \ + test "$with_system_libxml" != "no"; then + if test -z "$with_system_libxslt" -a -z "$with_system_libs" || \ + test "$with_system_libxslt" = "no"; then + # somehow AC_MSG_WARN won't work... + echo "to prevent incompatibilities between internal libxslt and libxml2, the office will be build with system-libxslt" + echo "to prevent incompatibilities between internal libxslt and libxml2, the office will be build with system-libxslt" >> warn + with_system_libxslt=yes + fi +fi + +dnl =================================================================== +dnl Check for system libxslt +dnl =================================================================== +AC_MSG_CHECKING([which libxslt to use]) +if test -n "$with_system_libxslt" -o -n "$with_system_libs" -o \ + "$_os" = "Darwin" && \ + test "$with_system_libxslt" != "no"; then + AC_MSG_RESULT([external]) + SYSTEM_LIBXSLT=YES + + PKG_CHECK_MODULES_MACHACK(LIBXSLT, xslt-config, libxslt) + + dnl Check for xsltproc + AC_PATH_PROG(XSLTPROC, xsltproc, no) + if test "$XSLTPROC" = "no"; then + AC_MSG_ERROR([xsltproc is required]) + fi +else + AC_MSG_RESULT([internal]) + SYSTEM_LIBXSLT=NO + BUILD_TYPE="$BUILD_TYPE LIBXSLT" +fi +AC_SUBST(SYSTEM_LIBXSLT) +AC_SUBST(LIBXSLT_CFLAGS) +AC_SUBST(LIBXSLT_LIBS) + + +dnl =================================================================== +dnl Check for system libxml +dnl =================================================================== +AC_MSG_CHECKING([which libxml to use]) +if test -n "$with_system_libxml" -o -n "$with_system_libs" -o \ + "$_os" = "Darwin" && \ + test "$with_system_libxml" != "no"; then + AC_MSG_RESULT([external]) + SYSTEM_LIBXML=YES + PKG_CHECK_MODULES_MACHACK(LIBXML, xml2-config, libxml-2.0 >= 2.0) + BUILD_TYPE="$BUILD_TYPE LIBXMLSEC" +else + AC_MSG_RESULT([internal]) + SYSTEM_LIBXML=NO + BUILD_TYPE="$BUILD_TYPE LIBXML2 LIBXMLSEC" +fi +AC_SUBST(SYSTEM_LIBXML) +AC_SUBST(LIBXML_CFLAGS) +AC_SUBST(LIBXML_LIBS) + +dnl =================================================================== +dnl Check for python +dnl =================================================================== +AC_MSG_CHECKING([whether to enable Python 2.x UNO API]) +if test "$enable_python" != "no"; then + AC_MSG_RESULT([yes]) + BUILD_TYPE="$BUILD_TYPE PYUNO" +else + AC_MSG_RESULT([no]) + DISABLE_PYTHON=TRUE + AC_SUBST(DISABLE_PYTHON) +fi + +AC_MSG_CHECKING([which python to use]) +if test "$_os" = "WINNT"; then + with_system_python=no +fi +if test "$_os" = "Darwin" && test "$with_system_python" != "no"; then + with_system_python=yes + AC_MSG_RESULT([compiling against MacOSX10.4u.sdk (python version 2.3)]) + PYTHON_CFLAGS="-I/Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/Python.framework/Versions/2.3/include/python2.3" + PYTHON_LIBS="-framework Python" +elif test -n "$with_system_python" -o -n "$with_system_libs" && \ + test "$with_system_python" != "no"; then + with_system_python=yes + AC_MSG_RESULT([external]) + AM_PATH_PYTHON([2.2]) + + python_include=`$PYTHON -c "import distutils.sysconfig; print(distutils.sysconfig.get_config_var('INCLUDEPY'));"` + python_version=`$PYTHON -c "import distutils.sysconfig; print(distutils.sysconfig.get_config_var('VERSION'));"` + python_libs=`$PYTHON -c "import distutils.sysconfig; print(distutils.sysconfig.get_config_var('LIBS'));"` + python_libdir=`$PYTHON -c "import distutils.sysconfig; print(distutils.sysconfig.get_config_var('LIBDIR'));"` + PYTHON_CFLAGS="-I$python_include" + PYTHON_LIBS="-L$python_libdir -lpython$python_version $python_libs" +fi +if test "$with_system_python" = "yes" ; then + SYSTEM_PYTHON=YES + dnl check if the headers really work: + save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $PYTHON_CFLAGS" + AC_CHECK_HEADER(Python.h, [], + [AC_MSG_ERROR(Python headers not found)], []) + CPPFLAGS="$save_CPPFLAGS" +else + SYSTEM_PYTHON=NO + BUILD_TYPE="$BUILD_TYPE PYTHON" + AC_MSG_RESULT([internal]) + # Embedded python dies without Home set + if test "z$HOME" = "z"; then + export HOME=""; + fi + # bz2 tarball and bzip2 is not standard + if test -z "$BZIP2"; then + AC_PATH_PROG( BZIP2, bzip2) + if test -z "$BZIP2"; then + AC_MSG_ERROR([the internal Python module has a .tar.bz2. You need bzip2]) + fi + fi +fi +AC_SUBST(SYSTEM_PYTHON) +AC_SUBST(PYTHON_CFLAGS) +AC_SUBST(PYTHON_LIBS) +HOME=`echo $HOME | $SED 's:\\\\:/:g'` +AC_SUBST(HOME) + +dnl =================================================================== +dnl Check for system translate-toolkit +dnl =================================================================== +AC_MSG_CHECKING([which translate-toolkit to use]) +if test "$with_system_translate_toolkit" = "yes" ; then + AC_MSG_RESULT([system]) + SYSTEM_TRANSLATE_TOOLKIT=YES + + AC_PATH_PROGS(OO2PO, oo2po) + if test -z "$OO2PO"; then + AC_MSG_ERROR([install translate-toolkit or use --without-system-translate-toolkit]) + fi + + AC_PATH_PROGS(PO2OO, po2oo) + if test -z "$PO2OO"; then + AC_MSG_ERROR([install translate-toolkit or use --without-system-translate-toolkit]) + fi + + $PO2OO --help | grep -q '\-\-skipsource' + if test $? -ne 0 ; then + AC_MSG_ERROR([$PO2OO does not support --skipsource; use translate-toolkit >= 1.9 or use --without-system-translate-toolkit]) + fi +else + AC_MSG_RESULT([internal]) + SYSTEM_TRANSLATE_TOOLKIT=NO + BUILD_TYPE="$BUILD_TYPE TRANSLATE_TOOLKIT" +fi +AC_SUBST(SYSTEM_TRANSLATE_TOOLKIT) + +dnl =================================================================== +dnl Check for system berkley db +dnl =================================================================== +AC_MSG_CHECKING([which db to use]) +if test -n "$with_system_db" -o -n "$with_system_libs" && \ + test "$with_system_db" != "no"; then + SYSTEM_DB=YES + AC_MSG_RESULT([external]) + for dbver in -5.1 5.1 -5.0 5.0 -5 5 -4.8 4.8 -4.7 4.7 -4 4 ''; do + AC_MSG_CHECKING([for db$dbver/db.h]) + for inc_dir in /usr/include /usr/local/include /usr/pkg/include; do + if test -r "$inc_dir/db$dbver/db.h"; then + DB_INCLUDES="$inc_dir/db$dbver" + db_header="db$dbver/db.h" + AC_MSG_RESULT([yes]) + break 2 + fi + done + AC_MSG_RESULT([no]) + done + + if test "$db_header" = ""; then + AC_CHECK_HEADER(db.h, [ DB_INCLUDES=/usr/include; db_header="db.h" ], + [ AC_MSG_ERROR(no. install the db4-dev package) ]) + fi + AC_MSG_CHECKING([whether db is at least 4.1]) + AC_TRY_RUN([ +#include <$db_header> + +int main(int argc, char **argv) { + if(DB_VERSION_MAJOR > 4 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1)) return 0; + else return 1; +} + ], [AC_MSG_RESULT([yes])], [AC_MSG_ERROR([no. you need at least db 4.1])]) + DB_LIB= + for dbver in '' -5.1 5.1 -5.0 5.0 -5 5 -4.8 4.8 -4.7 4.7 -4 4; do + AC_CHECK_LIB(db$dbver, dbopen, [ DB_LIB="db$dbver"; DB_CPPLIB="db_cxx$dbver"; break; ] , + AC_CHECK_LIB(db$dbver, __db185_open, [ DB_LIB="db$dbver"; DB_CPPLIB="db_cxx$dbver"; break; ] + ) + ) + done + if test -z "$DB_LIB" ; then + AC_MSG_ERROR([db not installed or functional]) + fi + SCPDEFS="$SCPDEFS -DSYSTEM_DB" +else + AC_MSG_RESULT([internal]) + SYSTEM_DB=NO + BUILD_TYPE="$BUILD_TYPE BERKELEYDB" +fi +AC_SUBST(SYSTEM_DB) +AC_SUBST(DB_VERSION) +AC_SUBST(DB_LIB) +AC_SUBST(DB_CPPLIB) +AC_SUBST(DB_INCLUDES) +AC_SUBST(DB_JAR) + +dnl =================================================================== +dnl Check for system lucene +dnl =================================================================== +AC_MSG_CHECKING([which lucene to use]) +if test -n "$with_system_lucene" -o -n "$with_system_libs" && \ + test "$with_system_lucene" != "no" && test "$with_system_jars" != "no"; then + AC_MSG_RESULT([external]) + SYSTEM_LUCENE=YES + if test -z $LUCENE_CORE_JAR; then + AC_CHECK_FILE(/usr/share/java/lucene-core-2.3.jar, + [ LUCENE_CORE_JAR=/usr/share/java/lucene-core-2.3.jar ], + [ + AC_CHECK_FILE(/usr/share/java/lucene-core.jar, + [ LUCENE_CORE_JAR=/usr/share/java/lucene-core.jar ], + [ AC_CHECK_FILE(/usr/share/java/lucene.jar, + [ LUCENE_CORE_JAR=/usr/share/java/lucene.jar ], + [ AC_MSG_ERROR(lucene-core.jar replacement not found)] + ) + ] + ) + ] + ) + else + AC_CHECK_FILE($LUCENE_CORE_JAR, [], + [AC_MSG_ERROR(lucene-core.jar not found.)], []) + fi + + if test -z $LUCENE_ANALYZERS_JAR; then + AC_CHECK_FILE(/usr/share/java/lucene-analyzers-2.3.jar, + [ LUCENE_ANALYZERS_JAR=/usr/share/java/lucene-analyzers-2.3.jar ], + [ + AC_CHECK_FILE(/usr/share/java/lucene-contrib/lucene-analyzers.jar, + [ LUCENE_ANALYZERS_JAR=/usr/share/java/lucene-contrib/lucene-analyzers.jar ], + [ AC_MSG_ERROR(lucene-analyzers.jar replacement not found.)] + ) + ] + ) + else + AC_CHECK_FILE($LUCENE_CORE_JAR, [], + [ AC_MSG_ERROR(lucene-analyzers.jar not found.)], []) + fi + AC_MSG_CHECKING([whether lucene is version 2.x]) + export LUCENE_CORE_JAR + if $PERL -e 'use Archive::Zip; + my $file = "$ENV{'LUCENE_CORE_JAR'}"; + my $zip = Archive::Zip->new( $file ); + my $mf = $zip->contents ( "META-INF/MANIFEST.MF" ); + if ( $mf =~ m/Specification-Version: 2.*/ ) { + exit 0; + } else { + exit 1; + }'; then + AC_MSG_RESULT([yes]) + else + AC_MSG_ERROR([no, you need lucene 2]) + fi + +else + AC_MSG_RESULT([internal]) + SYSTEM_LUCENE=NO + BUILD_TYPE="$BUILD_TYPE LUCENE" +fi +AC_SUBST(SYSTEM_LUCENE) +AC_SUBST(LUCENE_CORE_JAR) +AC_SUBST(LUCENE_ANALYZERS_JAR) + +AC_MSG_CHECKING([whether to build the MySQL Connector extension]) +if test -n "$enable_ext_mysql_connector" -a "$enable_ext_mysql_connector" != "no"; then + AC_MSG_RESULT([yes]) + ENABLE_MYSQLC=YES + AC_MSG_CHECKING([for mysqlc module]) + if test -d mysqlc; then + AC_MSG_RESULT([OK]) + else + AC_MSG_ERROR([not existing. get it (did you get the -extensions tarball?)]) + fi + BUILD_TYPE="$BUILD_TYPE MYSQLC" +else + AC_MSG_RESULT([no]) + ENABLE_MYSQLC=NO +fi +AC_SUBST(ENABLE_MYSQLC) + +if test "$ENABLE_MYSQLC" = "YES"; then + +SCPDEFS="$SCPDEFS -DWITH_EXTENSION_MYSQLC" + +dnl =================================================================== +dnl Check for system MySQL +dnl =================================================================== +AC_MSG_CHECKING([for mysql pre-requisites]) +if test -n "$with_system_mysql" -o -n "$with_system_libs" && \ + test "$with_system_mysql" != "no" && test "$with_system_libs" != "no"; then + AC_MSG_RESULT([external MySQL]) + SYSTEM_MYSQL=YES + AC_PATH_PROG( MYSQLCONFIG, mysql_config) + AC_MSG_CHECKING([MySQL version]) + MYSQL_VERSION=`$MYSQLCONFIG --version` + MYSQL_MAJOR=`$MYSQLCONFIG --version | cut -d"." -f1` + if test "$MYSQL_MAJOR" -ge "5"; then + AC_MSG_RESULT([OK]) + else + AC_MSG_ERROR([too old, use 5.0.x or 5.1.x]) + fi + AC_MSG_CHECKING([for MySQL Client library]) + MYSQL_INC=`$MYSQLCONFIG --include` + MYSQL_LIB=`$MYSQLCONFIG --libs` + MYSQL_DEFINES=`$MYSQLCONFIG --cflags | $SED -e s,$MYSQL_INC,,` + AC_MSG_RESULT([includes $MYSQL_INC, libraries $MYSQL_LIB]) +else + SYSTEM_MYSQL=NO + if test -n "$with_libmysql_path"; then + AC_MSG_RESULT([external Connector/C (libmysql)]) + LIBMYSQL=libmysql.so + if test "$_os" = "Darwin"; then + LIBMYSQL=libmysql.dylib + elif test "$_os" = "WINNT"; then + LIBMYSQL=libmysql.dll + fi + AC_MSG_CHECKING([for $LIBMYSQL]) + if test -e "$with_libmysql_path/lib/$LIBMYSQL"; then + AC_MSG_RESULT([found.]) + LIBMYSQL_PATH=$with_libmysql_path + else + AC_MSG_ERROR([not found. Please specify proper path in --with-libmysql-path.]) + fi + else + AC_MSG_ERROR([not given. Please specify either --with-system-mysql or --with-libmysql-path]) + fi +fi +AC_SUBST(SYSTEM_MYSQL) +AC_SUBST(MYSQL_INC) +AC_SUBST(MYSQL_LIB) +AC_SUBST(MYSQL_DEFINES) +AC_SUBST(LIBMYSQL_PATH) + +AC_LANG_PUSH([C++]) +dnl =================================================================== +dnl Check for system MySQL C++ Connector +dnl =================================================================== +# FIXME! +# who thought this too-generic cppconn dir was a good idea? +AC_MSG_CHECKING([MySQL Connector/C++]) +if test -n "$with_system_mysql_cppconn" -o -n "$with_system_libs" && \ + test "$with_system_mysql_cppconn" != "no" && test "$with_system_libs" != "no"; then + AC_MSG_RESULT([external]) + SYSTEM_MYSQL_CPPCONN=YES + AC_LANG_PUSH([C++]) + AC_CHECK_HEADER(mysql_driver.h, [], + [AC_MSG_ERROR(mysql_driver.h not found. install MySQL C++ Connectivity)], []) + AC_CHECK_LIB(mysqlcppconn, main, [], + [AC_MSG_ERROR(MySQL C++ Connectivity lib not found or functional)], []) + AC_MSG_CHECKING([version]) + AC_TRY_RUN([ +#include <mysql_driver.h> + +int main(int argc, char **argv) { + sql::Driver *driver; + driver = get_driver_instance(); + if (driver->getMajorVersion() > 1 || \ + (driver->getMajorVersion() == 1 && driver->getMinorVersion() > 0) || \ + (driver->getMajorVersion() == 1 && driver->getMinorVersion() == 0 && driver->getPatchVersion() >= 6)) + return 0; + else + return 1; +} + ], [AC_MSG_RESULT(OK)], [AC_MSG_ERROR([not suitable, we need >= 1.0.6])]) + AC_LANG_POP([C++]) + +else + AC_MSG_RESULT([internal]) + AC_MSG_CHECKING([for mysqlcppconn module]) + if test -d mysqlcppconn; then + AC_MSG_RESULT([OK]) + else + AC_MSG_ERROR([not existing. get it (did you get the -extensions tarball?)]) + fi + BUILD_TYPE="$BUILD_TYPE MYSQLCPPCONN" + SYSTEM_MYSQL_CPPCONN=NO +fi +AC_LANG_POP([C++]) +AC_SUBST(SYSTEM_MYSQL_CPPCONN) +fi + +dnl =================================================================== +dnl Check for system hsqldb +dnl =================================================================== +AC_MSG_CHECKING([which hsqldb to use]) +if test -n "$with_system_hsqldb" -o -n "$with_system_libs" && \ + test "$with_system_hsqldb" != "no" && test "$with_system_jars" != "no"; then + AC_MSG_RESULT([external]) + SYSTEM_HSQLDB=YES + if test -z $HSQLDB_JAR; then + HSQLDB_JAR=/usr/share/java/hsqldb.jar + fi + AC_CHECK_FILE($HSQLDB_JAR, [], + [AC_MSG_ERROR(hsqldb.jar not found.)], []) + AC_MSG_CHECKING([whether hsqldb is 1.8.0.x]) + export HSQLDB_JAR + if $PERL -e 'use Archive::Zip; + my $file = "$ENV{'HSQLDB_JAR'}"; + my $zip = Archive::Zip->new( $file ); + my $mf = $zip->contents ( "META-INF/MANIFEST.MF" ); + if ( $mf =~ m/Specification-Version: 1.8.*/ ) { + push @l, split(/\n/, $mf); + foreach my $line (@l) { + if ($line =~ m/Specification-Version:/) { + ($t, $version) = split (/:/,$line); + $version =~ s/^\s//; + ($a, $b, $c, $d) = split (/\./,$version); + if ($c == "0" && $d > "8") { + exit 0; + } else { + exit 1; + } + } + } + } else { + exit 1; + }'; then + AC_MSG_RESULT([yes]) + else + AC_MSG_ERROR([no, you need hsqldb >= 1.8.0.9 but < 1.8.1]) + fi +else + AC_MSG_RESULT([internal]) + SYSTEM_HSQLDB=NO + BUILD_TYPE="$BUILD_TYPE HSQLDB" +fi +AC_SUBST(SYSTEM_HSQLDB) +AC_SUBST(HSQLDB_JAR) + +dnl =================================================================== +dnl Check for system beanshell +dnl =================================================================== +AC_MSG_CHECKING([which beanshell to use]) +if test -n "$with_system_beanshell" -o -n "$with_system_libs" && \ + test "$with_system_beanshell" != "no" && test "$with_system_jars" != "no"; then + AC_MSG_RESULT([external]) + SYSTEM_BSH=YES + if test -z $BSH_JAR; then + BSH_JAR=/usr/share/java/bsh.jar + fi + AC_CHECK_FILE($BSH_JAR, [], + [AC_MSG_ERROR(bsh.jar not found.)], []) +else + AC_MSG_RESULT([internal]) + SYSTEM_BSH=NO + BUILD_TYPE="$BUILD_TYPE BSH" +fi +AC_SUBST(SYSTEM_BSH) +AC_SUBST(BSH_JAR) + + +dnl =================================================================== +dnl Check for system saxon +dnl =================================================================== +AC_MSG_CHECKING([which saxon to use]) +if test -n "$with_system_saxon" -o -n "$with_system_libs" && \ + test "$with_system_saxon" != "no" && test "$with_system_jars" != "no"; then + AC_MSG_RESULT([external]) + SYSTEM_SAXON=YES + if test -z $SAXON_JAR; then + AC_CHECK_FILE(/usr/share/java/saxon9.jar, + [ SAXON_JAR=/usr/share/java/saxon9.jar ], + [ + AC_CHECK_FILE(/usr/share/java/saxon.jar, + [ SAXON_JAR=/usr/share/java/saxon.jar ], + [ AC_CHECK_FILE(/usr/share/java/saxon9.jar, + [ SAXON_JAR=/usr/share/java/saxon9.jar ], + [ AC_MSG_ERROR(saxon.jar replacement not found)] + ) + ] + ) + ] + ) + else + AC_CHECK_FILE($SAXON_JAR, [], + [AC_MSG_ERROR(saxon.jar replacement not found.)], []) + fi + if test -n "$SERIALIZER_JAR"; then + AC_CHECK_FILE($SERIALIZER_JAR, [], + [AC_MSG_ERROR(serializer.jar not found.)], []) + AC_SUBST(SERIALIZER_JAR) + fi + +dnl Saxon comes in two practically available versions, the out-of-date saxonb which +dnl supports the java extensions that LibO uses, and the up-to-date saxon he +dnl "home edition" version, which is crippled to not support those java extensions. +dnl And as an aside the he one also needs to be tweaked to include +dnl a META-INF/services to broadcast that it supports the jaxp transform factory + + AC_MSG_CHECKING([if saxon works]) + cat > saxontest.java <<_ACEOF +[import javax.xml.transform.TransformerFactory; +import javax.xml.transform.Transformer; +import javax.xml.transform.stream.StreamSource; +import java.io.*; + +import net.sf.saxon.FeatureKeys; + +class saxontest { + public static void main(String[] args) { + System.setProperty("javax.xml.transform.TransformerFactory", + "net.sf.saxon.TransformerFactoryImpl"); + try { + TransformerFactory tfactory = TransformerFactory.newInstance(); + // some external saxons (Debian, Ubuntu, ...) have this disabled + // per default + tfactory.setAttribute(FeatureKeys.ALLOW_EXTERNAL_FUNCTIONS, new Boolean(true)); + System.out.println("TransformerFactory is" + + tfactory.getClass().getName()); + Transformer transformer = tfactory.newTransformer( + new StreamSource(new File(args[0]))); + } catch(Exception e){ + e.printStackTrace(System.err); + System.exit(-1); + } + System.exit(0); + } +} +] +_ACEOF + cat > saxontest.xsl<<_ACEOF +[<?xml version="1.0" encoding="UTF-8"?> +<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> + <xsl:template match="/"> + <xsl:value-of select="math:sqrt(1)" xmlns:math="java:java.lang.Math"/> + </xsl:template> +</xsl:stylesheet> +] +_ACEOF + javac_cmd="$JAVACOMPILER -cp $SAXON_JAR saxontest.java 1>&2" + AC_TRY_EVAL(javac_cmd) + if test $? = 0 && test -f ./saxontest.class ; then + java_cmd="$JAVAINTERPRETER -cp $SAXON_JAR:. saxontest saxontest.xsl 1>&2" + AC_TRY_EVAL(java_cmd) + if test $? = 0; then + AC_MSG_RESULT([yes]) + else + cat saxontest.java >&5 + AC_MSG_RESULT([no]) + AC_MSG_ERROR([Non-functional saxon jar, e.g. crippled saxon-he instead of saxonb]) + fi + else + AC_MSG_RESULT([no]) + cat saxontest.java >&5 + AC_MSG_ERROR([saxontest could not be compiled, non-functional saxon jar]) + fi +else + AC_MSG_RESULT([internal]) + SYSTEM_SAXON=NO + NEED_SAXON=TRUE +fi +AC_SUBST(SYSTEM_SAXON) +AC_SUBST(SAXON_JAR) + +if test -n "$NEED_SAXON"; then + BUILD_TYPE="$BUILD_TYPE SAXON" +fi + +dnl =================================================================== +dnl Check for system curl +dnl =================================================================== +if test "$_os" = "Darwin" && test "$with_system_curl" != "no"; then + with_system_curl=yes +fi +AC_MSG_CHECKING([which curl to use]) +if test -n "$with_system_curl" -o -n "$with_system_libs" && \ + test "$with_system_curl" != "no"; then + AC_MSG_RESULT([external]) + SYSTEM_CURL=YES + + AC_PATH_PROG( CURLCONFIG, curl-config) + if test -z "$CURLCONFIG"; then + AC_MSG_ERROR([install curl to run this script]) + fi + + # check curl version + AC_MSG_CHECKING([whether curl is >= 7.13.1]) + if test "`$CURLCONFIG --version | $AWK -F' ' '{print $2}' | $AWK -F. '{ print $1 }'`" -gt "7" -a \ + "`$CURLCONFIG --version | $AWK -F' ' '{print $2}' | $AWK -F. '{ print $2 }'`" -gt "13" -a \ + "`$CURLCONFIG --version | $AWK -F' ' '{print $2}' | $AWK -F. '{ print $3 }'`" -gt "1"; then + AC_MSG_ERROR([no, you need at least curl 7.13,1]) + else + AC_MSG_RESULT([yes]) + fi + CURL_LIBS=`$CURLCONFIG --libs` + CURL_CFLAGS=`$CURLCONFIG --cflags` +else + AC_MSG_RESULT([internal]) + SYSTEM_CURL=NO + BUILD_TYPE="$BUILD_TYPE CURL" +fi +AC_SUBST(SYSTEM_CURL) +AC_SUBST(CURL_CFLAGS) +AC_SUBST(CURL_LIBS) + +dnl =================================================================== +dnl Check for system boost +dnl =================================================================== +AC_MSG_CHECKING([which boost to use]) +if test -n "$with_system_boost" -o -n "$with_system_headers" && \ + test "$with_system_boost" != "no"; then + AC_MSG_RESULT([external]) + SYSTEM_BOOST=YES + AC_LANG_PUSH([C++]) + AC_CHECK_HEADER(boost/shared_ptr.hpp, [], + [AC_MSG_ERROR(boost/shared_ptr.hpp not found. install boost)], []) + AC_CHECK_HEADER(boost/spirit/include/classic_core.hpp, [], + [AC_MSG_ERROR(boost/spirit/include/classic_core.hpp not found. install boost >= 1.36)], []) + AC_CHECK_HEADER(boost/function.hpp, [], + [AC_MSG_ERROR(boost/function.hpp not found. install boost)], []) + AC_CHECK_HEADER([boost/unordered_map.hpp], [HAVE_BOOST_UNORDERED_MAP=TRUE], + [AC_MSG_WARN([boost/unordered_map.hpp not found])], []) + + save_CXXFLAGS=$CXXFLAGS + CXXFLAGS="$CXXFLAGS -fno-exceptions" + AC_MSG_CHECKING([whether boost/function.hpp compiles with -fno-exceptions]) + AC_TRY_COMPILE([#include <boost/function.hpp> +], [], + ac_cv_cxx_boost_no_exceptions_broken=no, ac_cv_cxx_boost_no_exceptions_broken=yes) + + if test "$ac_cv_cxx_boost_no_exceptions_broken" = "yes"; then + AC_MSG_ERROR([no, see https://bugzilla.redhat.com/show_bug.cgi?id=477131]) + else + AC_MSG_RESULT([yes]) + fi + CXXFLAGS=$save_CXXFLAGS + AC_LANG_POP([C++]) +else + AC_MSG_RESULT([internal]) + BUILD_TYPE="$BUILD_TYPE BOOST" + SYSTEM_BOOST=NO + HAVE_BOOST_UNORDERED_MAP=TRUE +fi +AC_SUBST([HAVE_BOOST_UNORDERED_MAP]) +AC_SUBST(SYSTEM_BOOST) + +dnl =================================================================== +dnl Check for system mdds +dnl =================================================================== +AC_MSG_CHECKING([which mdds to use]) +if test -n "$with_system_mdds" -o -n "$with_system_headers" && \ + test "$with_system_mdds" != "no"; then + AC_MSG_RESULT([external]) + SYSTEM_MDDS=YES + + dnl =================================================================== + dnl Determine which hash container mdds shall use + dnl =================================================================== + AC_MSG_CHECKING([which hash container mdds shall use]) + if test "x$HAVE_CXX0X" = "xTRUE"; then + MDDS_CPPFLAGS="-std=c++0x" + AC_MSG_RESULT([std::unordered_map]) + else + MDDS_CPPFLAGS="-DMDDS_HASH_CONTAINER_BOOST" + AC_MSG_RESULT([boost::unordered_map]) + fi + + AC_LANG_PUSH([C++]) + save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $MDDS_CPPFLAGS" + AC_CHECK_HEADER(mdds/flat_segment_tree.hpp, [], + [AC_MSG_ERROR(mdds/flat_segment_tree.hpp not found. install mdds)], []) + AC_CHECK_HEADER(mdds/mixed_type_matrix.hpp, [], + [AC_MSG_ERROR(mdds/mixed_type_matrix.hpp not found. install mdds >= 0.4.0)], []) + CPPFLAGS="$save_CPPFLAGS" + save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS $MDDS_CPPFLAGS" + AC_MSG_CHECKING([for correct signature of ::mdds::flat_segment_tree]) + AC_TRY_RUN([#include <mdds/flat_segment_tree.hpp> + + int main(int argc, char **argv) { + ::mdds::flat_segment_tree<long, short> db(0, 100, 0); + short val; + if (!db.search(5, val).second) + return 1; + return 0; + } +], ac_cv_cxx_mdds_flat_segment_tree_correct=yes, ac_cv_cxx_mdds_flat_segment_tree_correct=no) + + if test "$ac_cv_cxx_mdds_flat_segment_tree_correct" = "yes"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_ERROR([no, install mdds >= 0.5.0]) + fi + CXXFLAGS=$save_CXXFLAGS + AC_LANG_POP([C++]) +else + AC_MSG_RESULT([internal]) + BUILD_TYPE="$BUILD_TYPE MDDS" + SYSTEM_MDDS=NO + + dnl =================================================================== + dnl Determine which hash container mdds shall use + dnl =================================================================== + AC_MSG_CHECKING([which hash container mdds shall use]) + MDDS_CPPFLAGS="-DMDDS_HASH_CONTAINER_BOOST" + AC_MSG_RESULT([boost::unordered_map]) +fi +AC_SUBST(SYSTEM_MDDS) +AC_SUBST([MDDS_CPPFLAGS]) + +dnl =================================================================== +dnl Check for system vigra +dnl =================================================================== +AC_MSG_CHECKING([which vigra to use]) +if test -n "$with_system_vigra" -o -n "$with_system_headers" && \ + test "$with_system_vigra" != "no"; then + AC_MSG_RESULT([external]) + SYSTEM_VIGRA=YES + AC_LANG_PUSH([C++]) + AC_CHECK_HEADER(vigra/copyimage.hxx, [], + [AC_MSG_ERROR(vigra/copyimage.hxx not found. install vigra)], []) + AC_LANG_POP([C++]) +else + AC_MSG_RESULT([internal]) + BUILD_TYPE="$BUILD_TYPE VIGRA" + SYSTEM_VIGRA=NO +fi +AC_SUBST(SYSTEM_VIGRA) + +dnl =================================================================== +dnl Check for system odbc +dnl =================================================================== +AC_MSG_CHECKING([which odbc headers to use]) +if test -n "$with_system_odbc" -o -n "$with_system_headers" && \ + test "$with_system_odbc" != "no"; then + AC_MSG_RESULT([external]) + SYSTEM_ODBC_HEADERS=YES + + AC_CHECK_HEADER(sqlext.h, [], + [AC_MSG_ERROR(odbc not found. install odbc)], []) +else + AC_MSG_RESULT([internal]) + SYSTEM_ODBC_HEADERS=NO + BUILD_TYPE="$BUILD_TYPE UNIXODBC" +fi +AC_SUBST(SYSTEM_ODBC_HEADERS) + +AC_MSG_CHECKING([whether to enable build of Mozilla/Mozilla NSS-using components]) +if test "$enable_mozilla" = "no"; then + AC_MSG_RESULT([no]) + WITH_MOZILLA=NO + ENABLE_NSS_MODULE=NO +else + AC_MSG_RESULT([yes]) + WITH_MOZILLA=YES +fi +AC_SUBST(WITH_MOZILLA) + +AC_MSG_CHECKING([whether to build Mozilla addressbook connectivity]) +if test "$enable_mozilla" = "no"; then + AC_MSG_RESULT([no]) +elif test "$with_system_mozilla" = "yes"; then + AC_MSG_RESULT([no, not possible with system-mozilla]) +else + AC_MSG_RESULT([yes]) +fi + +AC_MSG_CHECKING([whether to build XML Security support]) +if test "$enable_mozilla" = "no"; then + AC_MSG_RESULT([no, since Mozilla (NSS) disabled but needed]) +else + AC_MSG_RESULT([yes]) +fi + +AC_MSG_CHECKING([whether to build LDAP configuration backend]) +if test -z "$enable_ldap" || test "$enable_ldap" = "yes"; then + if test "$enable_mozilla" = "yes" || test "$with_openldap" = "yes"; then + AC_MSG_RESULT([yes]) + WITH_LDAP=YES + else + AC_MSG_RESULT([no. Either Mozilla or OpenLDAP needed]) + WITH_LDAP=NO + fi +else + AC_MSG_RESULT([no]) + WITH_LDAP=NO +fi + +if test "$WITH_LDAP" = "YES"; then + dnl =================================================================== + dnl Test whether we want to use the Mozilla or the OpenLDAP LDAP SDK + dnl =================================================================== + AC_MSG_CHECKING([which LDAP SDK to use]) + if test -n "$with_openldap" && test "$with_openldap" != "no"; then + AC_MSG_RESULT([OpenLDAP]) + WITH_OPENLDAP=YES + AC_CHECK_HEADERS(ldap.h, [], + [AC_MSG_ERROR(ldap.h not found. install openldap libs)], []) + AC_CHECK_LIB(ldap, ldap_simple_bind_s, [], + [AC_MSG_ERROR(openldap lib not found or functional)], []) + # rumours say that OpenLDAP doesn't have that function. I looked and + # it has it. Test for it to be sure + AC_CHECK_LIB(ldap, ldap_set_option, [], + [AC_MSG_ERROR(openldap lib not found or functional)], []) + else + AC_MSG_RESULT([Netscape/Mozilla]) + # TODO. Actually do a sanity check and check for + # LDAP_OPT_SIZELIMIT and LDAP_X_OPT_CONNECT_TIMEOUT + WITH_OPENLDAP=NO + fi +fi +AC_SUBST(WITH_LDAP) +AC_SUBST(WITH_OPENLDAP) + +AC_OUTPUT([ooo.lst]) + +dnl =================================================================== +dnl Check for system mozilla +dnl =================================================================== +AC_MSG_CHECKING([which mozilla to use]) +if test -n "$with_system_mozilla" && test "$with_system_mozilla" != "no"; then + AC_MSG_RESULT([external]) + SYSTEM_MOZILLA=YES + ENABLE_NSS_MODULE=NO + enable_nss_module=no + AC_MSG_CHECKING([which Mozilla flavour to use]) + if test -n "$with_system_mozilla" && test "$with_system_mozilla" = "libxul"; then + MOZ_FLAVOUR=libxul + elif test -n "$with_system_mozilla" && test "$with_system_mozilla" = "xulrunner"; then + MOZ_FLAVOUR=xulrunner + elif test -n "$with_system_mozilla" && test "$with_system_mozilla" = "seamonkey"; then + MOZ_FLAVOUR=seamonkey + elif test -n "$with_system_mozilla" && test "$with_system_mozilla" = "firefox"; then + MOZ_FLAVOUR=firefox + elif test -n "$with_system_mozilla" && test "$with_system_mozilla" = "mozilla"; then + MOZ_FLAVOUR=mozilla + else + MOZ_FLAVOUR=libxul + fi + tmp=`echo $MOZ_FLAVOUR | $PERL -e 'print ucfirst(<STDIN>);'` + AC_MSG_RESULT($tmp) + + PKG_CHECK_MODULES( MOZ_NSS, nss, STANDALONENSS="TRUE", STANDALONENSS="" ) + if test -z "$STANDALONENSS"; then + PKG_CHECK_MODULES( MOZ_NSS, $MOZ_FLAVOUR-nss ) + else + NSS_LIB="-L`$PKG_CONFIG --variable=libdir nss`" + AC_SUBST(NSS_LIB) + fi + + if $PKG_CONFIG --exists nspr ; then + PKG_CHECK_MODULES( MOZ_NSPR, nspr ) + NSPR_LIB="-L`$PKG_CONFIG --variable=libdir nspr`" + AC_SUBST(NSPR_LIB) + else + PKG_CHECK_MODULES( MOZ_NSPR, $MOZ_FLAVOUR-nspr ) + fi + + if test "$MOZ_FLAVOUR" != "libxul"; then + PKG_CHECK_MODULES( MOZILLAXPCOM, $MOZ_FLAVOUR-xpcom, HASXPCOM="TRUE", HASXPCOM="" ) + MOZ_INC=`$PKG_CONFIG --variable=includedir $MOZ_FLAVOUR-xpcom` + MOZ_LIB=`$PKG_CONFIG --variable=libdir $MOZ_FLAVOUR-xpcom` + fi + + if test -z "$HASXPCOM"; then + PKG_CHECK_MODULES( MOZILLAXPCOM, libxul ) + MOZ_INC=`$PKG_CONFIG --variable=includedir libxul` + MOZ_LIB=`$PKG_CONFIG --variable=libdir libxul` + if ! test -e "$MOZ_LIB/libxul.so"; then + MOZ_LIB=`$PKG_CONFIG --variable=sdkdir libxul` + if test -e "$MOZ_LIB/sdk/lib/libxul.so"; then + MOZ_LIB="$MOZ_LIB/sdk/lib" + fi + fi + fi + + save_CPPFLAGS="$CPPFLAGS" + save_LDFLAGS="$LDFLAGS" + save_LIBS="$LIBS" + CPPFLAGS="$CPPFLAGS $MOZ_NSS_CFLAGS" + LDFLAGS="$LDFLAGS $MOZ_NSS_LIBS" + AC_CHECK_LIB(nss3, PK11_GetCertFromPrivateKey, [], + [AC_MSG_ERROR(PK11_GetCertFromPrivateKey missing but needed. +See https://bugzilla.mozilla.org/show_bug.cgi?id=262274. +Fixed since nss 3.9.3 (contained by e.g. mozilla >= 1.7.5))], []) + LDFLAGS="$save_LDFLAGS" + CPPFLAGS="$save_CPPFLAGS" + LIBS="$save_LIBS" + + MOZ_LIB_XPCOM=$MOZILLAXPCOM_LIBS + if test "$WITH_LDAP" != "NO" && test "$WITH_OPENLDAP" != "YES"; then + AC_MSG_CHECKING([whether $tmp was compiled with --enable-ldap]) + if test -d "$MOZ_INC/ldap"; then + AC_MSG_RESULT([yes]) + MOZ_LDAP_CFLAGS="-I$MOZ_INC" + else + AC_MSG_ERROR([no. +Could not find LDAP header include files in $MOZ_INC/ldap. +Please recompile $tmp with --enable-ldap or use --with-openldap.]) + fi + fi + + #e.g. http://fedoraproject.org/wiki/Releases/FeatureXULRunnerAPIChanges + #the plugin pkg-config etc. reverts to "mozilla-plugin" with libxul + if test "$MOZ_FLAVOUR" = "libxul"; then + MOZ_FLAVOUR="mozilla" + fi + +elif test "$enable_mozilla" = "no"; then + AC_MSG_RESULT([none]) + WITH_MOZILLA=NO + ENABLE_NSS_MODULE=NO + enable_nss_module=no +else + AC_MSG_RESULT([internal]) + SYSTEM_MOZILLA=NO + BUILD_TYPE="$BUILD_TYPE MOZ" +if test -z "$with_mozilla_version"; then + MOZILLA_VERSION= +else + AC_MSG_CHECKING([which mozilla version to build]) + MOZILLA_VERSION=$with_mozilla_version + enable_build_mozilla=1 + AC_MSG_RESULT([$MOZILLA_VERSION]) +fi + +AC_SUBST(MOZILLA_VERSION) + +AC_MSG_CHECKING([for toolkit mozilla should use]) +if test -z "$with_mozilla_toolkit"; then + if test "$_os" != "WINNT" ; then + if test "$_os" = "Darwin" ; then + MOZILLA_TOOLKIT=mac + AC_MSG_RESULT([mac]) + else + MOZILLA_TOOLKIT=gtk2 + AC_MSG_RESULT([gtk2]) + fi + fi +else + MOZILLA_TOOLKIT=$with_mozilla_toolkit + enable_build_mozilla=1 + AC_MSG_RESULT([$MOZILLA_TOOLKIT]) +fi +#if test "$_os" = "Darwin" && test "$MOZILLA_TOOLKIT" != "gtk2"; then +# #only gtk2 toolkit supported - xlib or cocoa nees glib1 and libIDL1 - the latter is not +# #available using fink, mac (carbon) doesn't work because xcode installs conflicting headers +# AC_MSG_ERROR([Only gtk2 toolkit supported on Mac, sorry.]) +#fi + +AC_SUBST(MOZILLA_TOOLKIT) + +# default to enabling build mozilla +if test "$enable_build_mozilla" != "no"; then + enable_build_mozilla=yes +else + enable_build_mozilla= +fi + +AC_MSG_CHECKING([whether to build Mozilla/SeaMonkey]) +if test -n "$enable_build_mozilla"; then + BUILD_MOZAB="TRUE" + AC_MSG_RESULT([yes]) +else + BUILD_MOZAB="" + AC_MSG_RESULT([no]) +fi + +AC_MSG_CHECKING([whether to build provided NSS module]) +if test "$enable_nss_module" != "no"; then + ENABLE_NSS_MODULE="YES" + BUILD_TYPE="$BUILD_TYPE NSS" + AC_MSG_RESULT([yes]) + if test "$_os" = "WINNT"; then + AC_MSG_CHECKING([for Mozilla build tooling]) + if test -z "$MOZILLABUILD" ; then +AC_MSG_ERROR([Mozilla build tooling not found. +Use the --with-mozilla-build option after installing the tools obtained +from http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32]) + else + if test \( "$WITH_MINGW" = "yes" \) ; then + if test ! -d "$MOZILLABUILD" ; then +AC_MSG_ERROR([Mozilla build tooling incomplete!]) + else + AC_MSG_RESULT([ok]) + fi + else + if test ! -d "$MOZILLABUILD/moztools" \ + -o ! -d "$MOZILLABUILD/msys" ; then +AC_MSG_ERROR([Mozilla build tooling incomplete!]) + else + AC_MSG_RESULT([ok]) + fi + fi + fi + fi +else + ENABLE_NSS_MODULE="NO" + AC_MSG_RESULT([no]) +fi + + +if test "$BUILD_MOZAB" = "TRUE"; then + if test "$_os" = "WINNT"; then + if test "$WITH_MINGW" != "yes"; then + # compiling with MSVC. Only supported platform here is MSVS2005 at the moment. + if test "$MSVSVER" != "2005"; then + AC_MSG_ERROR([Building SeaMonkey is supported with Microsoft Visual Studio 2005 only.]) + fi + else + AC_MSG_WARN([Building SeaMonkey with MinGW is not tested, and likely to break.]) + echo "Building SeaMonkey with MinGW is not tested, and likely to break." >> warn + fi + fi + + if test -z "$MOZILLA_VERSION"; then + MOZILLA_VERSION=1.1.14 + fi + MOZILLA_SOURCE_VERSION="seamonkey-${MOZILLA_VERSION}.source" + MOZILLA_FETCH_FILE=`grep $MOZILLA_SOURCE_VERSION ooo.lst` + AC_MSG_CHECKING([for mozilla sources]) + if test -z "$MOZILLA_FETCH_FILE"; then + AC_MSG_RESULT([not found]) + HAVE_MOZILLA_TARBALL=n + else + AC_MSG_CHECKING([for $MOZILLA_FETCH_FILE]) + if test ! -e "$TARFILE_LOCATION/$MOZILLA_FETCH_FILE"; then + if test -z "$DO_FETCH"; then + AC_MSG_RESULT([will be fetched]) + HAVE_MOZILLA_TARBALL=y + else + AC_MSG_RESULT([not found]) + HAVE_MOZILLA_TARBALL=n + fi + else + AC_MSG_RESULT([found]) + HAVE_MOZILLA_TARBALL=y + fi + fi + if test "$HAVE_MOZILLA_TARBALL" != "y"; then + AC_MSG_ERROR([Mozilla/SeaMonkey source archive not found. +Use "./fetch_tarballs.sh ooo.lst" to download.]) + fi + if test "$_os" = "WINNT"; then + AC_MSG_CHECKING([for moztools binaries]) + if test ! -e "$TARFILE_LOCATION/vc8-moztools.zip" ; then + AC_MSG_ERROR([The following file is missing in $TARFILE_LOCATION: vc8-moztools.zip +(from ftp://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/historic/vc8/)]) + else + AC_MSG_RESULT([ok]) + fi + elif test "$_os" = "Darwin"; then + if test "$MOZILLA_TOOLKIT" = "gtk2"; then + AC_MSG_NOTICE([checking whether mozilla can be built...]) + PKG_CHECK_MODULES(MOZGTK2, gtk+-2.0 >= 2.4 libIDL-2.0 >= 0.8, AC_MSG_NOTICE([OK - can build mozilla]), AC_MSG_ERROR([Prerequisites to build mozilla not met. Either use the precompiled mozilla binaries or install the missing packages])) + else + PKG_CHECK_MODULES(MOZLIBREQ, libIDL-2.0 >= 0.6.3, MOZIDL="TRUE", MOZIDL="") + if test -z "$MOZIDL"; then + AC_MSG_ERROR([libIDL 0.6.3 or newer is needed to build mozilla with mac toolkit.]) + fi + fi + else + # Generic Unix/Linux section + if test "$MOZILLA_TOOLKIT" = "gtk2"; then + PKG_CHECK_MODULES(MOZLIBREQ, gtk+-2.0, MOZGTK="TRUE", MOZGTK="") + if test -z "$MOZGTK"; then + AC_MSG_ERROR([GTK2 is needed to build mozilla.]) + fi + PKG_CHECK_MODULES(MOZLIBREQ, libIDL-2.0 >= 0.8.0, MOZIDL="TRUE", MOZIDL="") + if test -z "$MOZIDL"; then + AC_MSG_ERROR([libIDL >= 0.8.0 is needed when using GTK2 to build mozilla.]) + fi + else + PKG_CHECK_MODULES(MOZLIBREQ, gtk+ >= 1.2.3, MOZGTK="TRUE", MOZGTK="") + if test -z "$MOZGTK"; then + AC_MSG_ERROR([gtk 1.2 is needed when not using GTK2 to build mozilla.]) + fi + PKG_CHECK_MODULES(MOZLIBREQ, libidl >= 0.6.3 libidl <= 0.6.8, MOZIDL="TRUE", MOZIDL="") + if test -z "$MOZIDL"; then + AC_MSG_ERROR([libIDL 0.6.3 - 0.6.8 is needed when not using GTK2 to build mozilla.]) + fi + fi + fi +fi + +AC_SUBST(BUILD_MOZAB) + +fi +AC_SUBST(ENABLE_NSS_MODULE) +AC_SUBST(MOZILLABUILD) +AC_SUBST(SYSTEM_MOZILLA) +AC_SUBST(MOZ_FLAVOUR) +AC_SUBST(MOZ_INC) +AC_SUBST(MOZ_LIB) +AC_SUBST(MOZ_LIB_XPCOM) +AC_SUBST(MOZ_NSPR_CFLAGS) +AC_SUBST(MOZ_NSS_CFLAGS) +AC_SUBST(MOZ_LDAP_CFLAGS) + +dnl =================================================================== +dnl Check for system sane +dnl =================================================================== +AC_MSG_CHECKING([which sane header to use]) +if test -n "$with_system_sane_header" -o -n "$with_system_headers" && \ + test "$with_system_sane_header" != "no"; then + AC_MSG_RESULT([external]) + SYSTEM_SANE_HEADER=YES + AC_CHECK_HEADER(sane/sane.h, [], + [AC_MSG_ERROR(sane not found. install sane)], []) +else + AC_MSG_RESULT([internal]) + SYSTEM_SANE_HEADER=NO + BUILD_TYPE="$BUILD_TYPE SANE" +fi +AC_SUBST(SYSTEM_SANE_HEADER) + +dnl =================================================================== +dnl Check for system icu +dnl =================================================================== +AC_MSG_CHECKING([which icu to use]) +if test -n "$with_system_icu" -o -n "$with_system_libs" && \ + test "$with_system_icu" != "no"; then + AC_MSG_RESULT([external]) + SYSTEM_ICU=YES + AC_LANG_PUSH([C++]) + AC_MSG_CHECKING([for unicode/rbbi.h]) + AC_TRY_CPP(unicode/rbbi.h, AC_MSG_RESULT([checked.]), AC_MSG_ERROR([icu headers not found.])) + AC_LANG_POP([C++]) + AC_PATH_PROG(SYSTEM_GENBRK, genbrk, [], [$PATH:/usr/sbin:/sbin]) + if test -z "$SYSTEM_GENBRK"; then + AC_MSG_ERROR([\"genbrk\" not found in \$PATH, install the icu development tool \"genbrk"\]) + fi + AC_PATH_PROG(SYSTEM_GENCCODE, genccode, [], [$PATH:/usr/sbin:/sbin:/usr/local/sbin]) + if test -z "$SYSTEM_GENCCODE"; then + AC_MSG_ERROR([\"genccode\" not found in \$PATH, install the icu development tool \"genccode"\]) + fi + AC_PATH_PROG(SYSTEM_GENCMN, gencmn, [], [$PATH:/usr/sbin:/sbin:/usr/local/sbin]) + if test -z "$SYSTEM_GENCMN"; then + AC_MSG_ERROR([\"gencmn\" not found in \$PATH, install the icu development tool \"gencmn"\]) + fi + + AC_PATH_PROG( ICUCONFIG, icu-config) + AC_MSG_CHECKING([ICU version]) + ICU_VERSION=`$ICUCONFIG --version` + ICU_MAJOR=`$ICUCONFIG --version | cut -d"." -f1` + ICU_MINOR=`$ICUCONFIG --version | cut -d"." -f2` + ICU_MICRO=`$ICUCONFIG --version | cut -d"." -f3` + + if test "$ICU_MAJOR" -ge "4"; then + AC_MSG_RESULT([OK]) + else + AC_MSG_ERROR([not suitable, only >= 4.0 supported currently]) + fi + +else + AC_MSG_RESULT([internal]) + SYSTEM_ICU=NO + BUILD_TYPE="$BUILD_TYPE ICU" +fi +AC_SUBST(SYSTEM_ICU) +AC_SUBST(SYSTEM_GENBRK) +AC_SUBST(SYSTEM_GENCCODE) +AC_SUBST(SYSTEM_GENCMN) +AC_SUBST(ICU_MAJOR) +AC_SUBST(ICU_MINOR) +AC_SUBST(ICU_MICRO) + +dnl =================================================================== +dnl Graphite +dnl =================================================================== + +AC_MSG_CHECKING([whether to enable graphite support]) +if test "$_os" = "WINNT" -o "$_os" = "Linux" && test "z$enable_graphite" = "z" -o "$enable_graphite" != "no" ; then + AC_MSG_RESULT([yes]) + ENABLE_GRAPHITE="TRUE" + AC_MSG_CHECKING([which graphite to use]) + if test -n "$with_system_graphite" -o -n "$with_system_libs" && \ + test "$with_system_graphite" != "no"; then + AC_MSG_RESULT([external]) + SYSTEM_GRAPHITE=YES + PKG_CHECK_MODULES( GRAPHITE, graphite2 >= 0.9.3 ) + else + AC_MSG_RESULT([internal]) + SYSTEM_GRAPHITE=NO + BUILD_TYPE="$BUILD_TYPE GRAPHITE" + fi +else + AC_MSG_RESULT([no]) +fi +AC_SUBST(ENABLE_GRAPHITE) +AC_SUBST(SYSTEM_GRAPHITE) +AC_SUBST(GRAPHITE_LIBS) +AC_SUBST(GRAPHITE_CFLAGS) + +dnl =================================================================== +dnl Checks for libraries. +dnl =================================================================== +dnl Check for Mac OS X native GUI, which may is now required; the X11 build is no longer supported +dnl See if we have the AppKit framework for building with Quartz graphics. + +if test "$_os" = "Darwin"; then + if test "x$with_x" = "xyes"; then + AC_MSG_ERROR([X11 build is no longer supported on MacOSX, please use the native aqua build]) + else + AC_MSG_CHECKING([for /System/Library/Frameworks/AppKit.framework]) + if test -d "/System/Library/Frameworks/AppKit.framework/"; then + AC_MSG_RESULT([yes]) + x_includes="no_x_includes" + x_libraries="no_x_libraries" + dnl disable some things used on other Unix versions but not on the aqua build + enable_gtk=no + enable_cups=no + ENABLE_CUPS="" + AC_SUBST(ENABLE_CUPS) + else + AC_MSG_ERROR([No AppKit.framewrok found]) + fi + fi +fi + +dnl *************************************** +dnl testing for X libraries and includes... +dnl *************************************** +if test "$_os" = "Darwin" -a "x$x_includes" = "xno_x_includes"; then + echo "Do Nothing for _os = Darwin" + dnl Mac OS X using Aqua graphics. Don't check for X11. + : +elif test "$_os" = "OS2" ; then + echo "Do Nothing for _os = OS2. Don't check for X11." + dnl OS/2 uses native graphics. Don't check for X11. + : +elif test "$_os" != "WINNT" ; then + AC_PATH_X + AC_PATH_XTRA + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + + if test "x$x_includes" = "x"; then + x_includes="default_x_includes" + fi + if test "x$x_libraries" = "x"; then + x_libraries="default_x_libraries" + fi + dnl The variables $x_libraries and $x_includes are set. + if test -z "$x_libraries"; then + AC_MSG_ERROR([No X libraries found]) # Exit + fi + if test -z "$x_includes"; then + AC_MSG_ERROR([No X includes found]) # Exit + fi + CFLAGS="$CFLAGS $X_CFLAGS" + LDFLAGS="$LDFLAGS $X_LDFLAGS $X_LIBS" + AC_CHECK_LIB(X11, XOpenDisplay, x_libs="-lX11 $X_EXTRA_LIBS", [AC_MSG_ERROR([X Development libraries not found])]) + dnl Check if the XauDisposeAuth symbol is provided by libXau. + AC_CHECK_LIB(Xau, XauDisposeAuth, XAU_LIBS="-lXau", []) +else + x_includes="no_x_includes" + x_libraries="no_x_libraries" +fi +if test -z "$x_includes"; then + x_includes="no_x_includes" +fi +if test -z "$x_libraries"; then + x_libraries="no_x_libraries" +fi +if test "$x_includes" = "default_x_includes"; then + XINC="/usr/include" +else + XINC="$x_includes" +fi +AC_SUBST(XINC) +if test "$x_libraries" = "default_x_libraries"; then + XLIB=`$PKG_CONFIG --variable=libdir x11` + if test "x$XLIB" = x; then + XLIB="/usr/lib" + fi +else + XLIB="$x_libraries" +fi +AC_SUBST(XLIB) +AC_SUBST(XAU_LIBS) + +if test "$_os" != "WINNT" -a "$_os" != "OS2" -a "$_os" != "Darwin"; then + dnl =================================================================== + dnl Check for using Xaw + dnl =================================================================== + AC_MSG_CHECKING([whether to use Xaw]) + if test "$enable_Xaw" = "no"; then + DISABLE_XAW=TRUE + AC_MSG_RESULT([no]) + AC_CHECK_HEADERS(X11/Composite.h,[],[AC_MSG_ERROR([Xt include headers not found])], + [#include <X11/Intrinsic.h>]) + else + AC_MSG_RESULT([yes]) + AC_CHECK_HEADERS(X11/Xaw/Label.h,[],[AC_MSG_ERROR([Xaw include headers not found])], + [#include <X11/Intrinsic.h>]) + AC_CHECK_LIB(Xaw, main, [], + [AC_MSG_ERROR(Xaw library not found or functional)], []) + fi +fi +AC_SUBST(DISABLE_XAW) + + +dnl =================================================================== +dnl Check for system Xrender +dnl =================================================================== +AC_MSG_CHECKING([whether to link to Xrender]) +if test -n "$enable_xrender_link" -a "$enable_xrender_link" != "no"; then + AC_MSG_RESULT([yes]) + XRENDER_LINK=YES + with_system_xrender_headers=yes +else + AC_MSG_RESULT([no, dynamically open it]) + XRENDER_LINK=NO +fi +AC_MSG_CHECKING([which Xrender headers to use]) +if test -n "$with_system_xrender_headers" -o -n "$with_system_headers" && \ + test "$with_system_xrender_headers" != "no"; then + AC_MSG_RESULT([external]) + SYSTEM_XRENDER_HEADERS=YES + AC_CHECK_HEADER(X11/extensions/Xrender.h, [], + [AC_MSG_ERROR(Xrender not found. install X)], []) +else + AC_MSG_RESULT([internal]) + SYSTEM_XRENDER_HEADERS=NO + BUILD_TYPE="$BUILD_TYPE X11_EXTENSIONS" +fi +if test "$XRENDER_LINK" = "YES"; then + AC_CHECK_LIB(Xrender, XRenderQueryVersion, [], + [AC_MSG_ERROR(libXrender not found or functional)], []) +fi +AC_SUBST(SYSTEM_XRENDER_HEADERS) +AC_SUBST(XRENDER_LINK) + +dnl =================================================================== +dnl Check for XRandr +dnl =================================================================== +AC_MSG_CHECKING([whether to enable RandR support]) +if test "$test_randr" = "yes" -a \( "$enable_randr" = "yes" -o "$enable_randr" = "TRUE" \) ; then + if test -z "$enable_randr_link" -o "$enable_randr_link" = "no"; then + XRANDR_DLOPEN="TRUE" + AC_MSG_RESULT([configured to dlopen libXrandr at runtime]) + else + AC_MSG_RESULT([yes]) + XRANDR_DLOPEN="FALSE" + PKG_CHECK_MODULES(XRANDR, xrandr >= 1.2, ENABLE_RANDR="TRUE", ENABLE_RANDR="") + if test "$ENABLE_RANDR" != "TRUE"; then + AC_CHECK_HEADER(X11/extensions/Xrandr.h, [], + [AC_MSG_ERROR([X11/extensions/Xrandr.h could not be found. X11 dev missing?])], []) + XRANDR_CFLAGS=" " + AC_CHECK_LIB(Xrandr, XRRQueryExtension, [], + [ AC_MSG_ERROR(libXrandr not found or functional) ], []) + XRANDR_LIBS="-lXrandr " + ENABLE_RANDR="TRUE" + fi + fi +else + ENABLE_RANDR="" + AC_MSG_RESULT([no]) +fi +AC_SUBST(XRANDR_DLOPEN) +AC_SUBST(XRANDR_CFLAGS) +AC_SUBST(XRANDR_LIBS) +AC_SUBST(ENABLE_RANDR) + +dnl =================================================================== +dnl Check for building neon +dnl =================================================================== +AC_MSG_CHECKING([whether to use neon]) +if test "$enable_neon" = "no"; then + AC_MSG_RESULT([no]) + DISABLE_NEON=TRUE + AC_SUBST(DISABLE_NEON) +else + AC_MSG_RESULT([yes]) +dnl =================================================================== +dnl Check for system neon +dnl =================================================================== +AC_MSG_CHECKING([which neon to use]) +if test -n "$with_system_neon" -o -n "$with_system_libs" && \ + test "$with_system_neon" != "no"; then + AC_MSG_RESULT([external]) + PKG_CHECK_MODULES(NEON, neon >= 0.26.0, , AC_MSG_ERROR([you need neon >= 0.26.x for system-neon])) + NEON_VERSION="`$PKG_CONFIG --modversion neon | $SED 's/\.//g'`" + NEON_CFLAGS="$NEON_CFLAGS -DSYSTEM_NEON -DUSE_DAV_LOCKS=1" + SYSTEM_NEON=YES +else + AC_MSG_RESULT([internal]) + SYSTEM_NEON=NO + NEON_LIBS=-lneon + NEON_CFLAGS= + BUILD_TYPE="$BUILD_TYPE NEON" +fi +AC_SUBST(SYSTEM_NEON) +AC_SUBST(NEON_VERSION) +AC_SUBST(NEON_LIBS) +AC_SUBST(NEON_CFLAGS) +fi + +dnl =================================================================== +dnl Check for system openssl +dnl =================================================================== +if test "$_os" = "Darwin" -o "$_os" = "NetBSD" -o "$_os" = "OpenBSD" -o \ + "$_os" = "DragonFly" && test "$with_system_openssl" != "no"; then + with_system_openssl=yes +fi +AC_MSG_CHECKING([which libssl to use]) +if test -n "$with_system_openssl" -o -n "$with_system_libs" && \ + test "$with_system_openssl" != "no"; then + AC_MSG_RESULT([external]) + # Mac OS builds should get out without extra stuff is the Mac porters' + # wish. And pkg-config is although Xcode ships a .pc for openssl + if test "$_os" = "Darwin" -o "$_os" = "NetBSD" -o "$_os" = "OpenBSD" -o \ + "$_os" = "DragonFly"; then + OPENSSL_CFLAGS= + OPENSSL_LIBS="-lssl -lcrypto" + else + PKG_CHECK_MODULES( OPENSSL, openssl ) + fi + SYSTEM_OPENSSL=YES +else + AC_MSG_RESULT([internal]) + SYSTEM_OPENSSL=NO + BUILD_TYPE="$BUILD_TYPE OPENSSL" +fi +AC_SUBST(SYSTEM_OPENSSL) +AC_SUBST(OPENSSL_CFLAGS) +AC_SUBST(OPENSSL_LIBS) + +dnl =================================================================== +dnl Check for system redland +dnl =================================================================== +AC_MSG_CHECKING([which redland library to use]) +if test -n "$with_system_redland" -o -n "$with_system_libs" && \ + test "$with_system_redland" != "no"; then + AC_MSG_RESULT([external]) + SYSTEM_REDLAND=YES + dnl versions before 1.0.8 write RDF/XML that is useless for ODF (@xml:base) + PKG_CHECK_MODULES(REDLAND, redland >= 1.0.8) +else + AC_MSG_RESULT([internal]) + BUILD_TYPE="$BUILD_TYPE REDLAND" + SYSTEM_REDLAND=NO +fi +AC_SUBST(SYSTEM_REDLAND) +AC_SUBST(REDLAND_CFLAGS) +AC_SUBST(REDLAND_LIBS) + +dnl =================================================================== +dnl Check for system hunspell +dnl =================================================================== +AC_MSG_CHECKING([which libhunspell to use]) +if test -n "$with_system_hunspell" -o -n "$with_system_libs" && \ + test "$with_system_hunspell" != "no"; then + AC_MSG_RESULT([external]) + SYSTEM_HUNSPELL=YES + AC_LANG_PUSH([C++]) + PKG_CHECK_MODULES(HUNSPELL, hunspell, HUNSPELL_PC="TRUE", HUNSPELL_PC="" ) + if test "$HUNSPELL_PC" != "TRUE"; then + AC_CHECK_HEADER(hunspell.hxx, [], + [ + AC_CHECK_HEADER(hunspell/hunspell.hxx, [ HUNSPELL_CFLAGS=-I/usr/include/hunspell ], + [AC_MSG_ERROR(hunspell headers not found.)], []) + ], []) + AC_CHECK_LIB(hunspell, main, [], + [ AC_MSG_ERROR(hunspell library not found.) ], []) + HUNSPELL_LIBS=-lhunspell + fi + AC_LANG_POP([C++]) +else + AC_MSG_RESULT([internal]) + SYSTEM_HUNSPELL=NO + BUILD_TYPE="$BUILD_TYPE HUNSPELL" +fi +AC_SUBST(SYSTEM_HUNSPELL) +AC_SUBST(HUNSPELL_CFLAGS) +AC_SUBST(HUNSPELL_LIBS) + +dnl =================================================================== +dnl Checking for altlinuxhyph +dnl =================================================================== +AC_MSG_CHECKING([which altlinuxhyph to use]) +if test -n "$with_system_altlinuxhyph" -o -n "$with_system_libs" && \ + test "$with_system_altlinuxhyph" != "no"; then + AC_MSG_RESULT([external]) + SYSTEM_HYPH=YES + AC_CHECK_HEADER(hyphen.h, [], + [ AC_MSG_ERROR(altlinuxhyph headers not found.)], []) + AC_CHECK_MEMBER(struct _HyphenDict.cset, [], + [ AC_MSG_ERROR(no. You are sure you have altlinuyhyph headers?)], + [#include <hyphen.h>]) + AC_CHECK_LIB(hyphen, hnj_hyphen_hyphenate2, [HYPHEN_LIB=-lhyphen], + [ AC_MSG_ERROR(altlinuxhyph library not found or too old.)], []) + if test -z "$HYPHEN_LIB"; then + AC_CHECK_LIB(hyph, hnj_hyphen_hyphenate2, [HYPHEN_LIB=-lhyph], + [ AC_MSG_ERROR(altlinuxhyph library not found or too old.)], []) + fi + if test -z "$HYPHEN_LIB"; then + AC_CHECK_LIB(hnj, hnj_hyphen_hyphenate2, [HYPHEN_LIB=-lhnj], + [ AC_MSG_ERROR(altlinuxhyph library not found or too old.)], []) + fi +else + AC_MSG_RESULT([internal]) + SYSTEM_HYPH=NO + BUILD_TYPE="$BUILD_TYPE HYPHEN" +fi +AC_SUBST(SYSTEM_HYPH) +AC_SUBST(HYPHEN_LIB) + +dnl =================================================================== +dnl Checking for mythes +dnl =================================================================== +AC_MSG_CHECKING([which mythes to use]) +if test -n "$with_system_mythes" -o -n "$with_system_libs" && \ + test "$with_system_mythes" != "no"; then + AC_MSG_RESULT([external]) + SYSTEM_MYTHES=YES + AC_LANG_PUSH([C++]) + PKG_CHECK_MODULES(MYTHES, mythes, MYTHES_PKGCONFIG=yes, MYTHES_PKGCONFIG=no) + if test "$MYTHES_PKGCONFIG" = "no"; then + AC_CHECK_HEADER(mythes.hxx, [], + [ AC_MSG_ERROR(mythes.hxx headers not found.)], []) + AC_CHECK_LIB(mythes-1.2, main, [], + [ MYTHES_FOUND=no], []) + if test "$MYTHES_FOUND" = "no"; then + AC_CHECK_LIB(mythes, main, [MYTHES_FOUND=yes], + [ MYTHES_FOUND=no], []) + fi + if test "$MYTHES_FOUND" = "no"; then + AC_MSG_ERROR([mythes library not found!.]) + fi + fi + AC_LANG_POP([C++]) +else + AC_MSG_RESULT([internal]) + SYSTEM_MYTHES=NO + BUILD_TYPE="$BUILD_TYPE MYTHES" +fi +AC_SUBST(SYSTEM_MYTHES) +AC_SUBST(MYTHES_CFLAGS) +AC_SUBST(MYTHES_LIBS) + +dnl =================================================================== +dnl Checking for lpsolve +dnl =================================================================== +AC_MSG_CHECKING([which lpsolve to use]) +if test -n "$with_system_lpsolve" -o -n "$with_system_libs" && \ + test "$with_system_lpsolve" != "no"; then + AC_MSG_RESULT([external]) + SYSTEM_LPSOLVE=YES + AC_CHECK_HEADER(lpsolve/lp_lib.h, [], + [ AC_MSG_ERROR(lpsolve headers not found.)], []) + # some systems need this. Like Ubuntu.... + AC_CHECK_LIB(m, floor) + AC_CHECK_LIB(dl, dlopen) + AC_CHECK_LIB(lpsolve55, make_lp, , + [ AC_MSG_ERROR(lpsolve library not found or too old.)], []) +else + AC_MSG_RESULT([internal]) + SYSTEM_LPSOLVE=NO + BUILD_TYPE="$BUILD_TYPE LPSOLVE" +fi +AC_SUBST(SYSTEM_LPSOLVE) + +dnl =================================================================== +dnl Checking for libtextcat +dnl =================================================================== +AC_MSG_CHECKING([which libtextcat to use]) +if test -n "$with_system_libtextcat" && test "$with_system_libtextcat" != "no"; then + AC_MSG_RESULT([external]) + SYSTEM_LIBTEXTCAT=YES + AC_CHECK_HEADER(libtextcat/textcat.h, [], + [ AC_MSG_ERROR(libtextcat headers not found.)], []) + AC_CHECK_LIB(textcat, special_textcat_Init, , + [ AC_MSG_ERROR(libtextcat library not found or not suitable. libtextcat typically needs to be patched)], []) +else + AC_MSG_RESULT([internal]) + SYSTEM_LIBTEXTCAT=NO + BUILD_TYPE="$BUILD_TYPE LIBTEXTCAT" +fi +AC_SUBST(SYSTEM_LIBTEXTCAT) + +AC_MSG_CHECKING([which libtextcat data directory to use]) +if test -n "$with_external_libtextcat_data" && test "$with_external_libtextcat_data" != "no"; then + if test "$with_external_libtextcat_data" = "yes"; then + SYSTEM_LIBTEXTCAT_DATA=file:///usr/share/libtextcat + else + SYSTEM_LIBTEXTCAT_DATA=file://$with_external_libtextcat_data + fi + AC_MSG_RESULT([$SYSTEM_LIBTEXTCAT_DATA]) +else + AC_MSG_RESULT([internal]) + BUILD_TYPE="$BUILD_TYPE LIBTEXTCATDATA" +fi +AC_SUBST(SYSTEM_LIBTEXTCAT_DATA) + +dnl *************************************** +dnl testing libc version for Linux... +dnl *************************************** +if test "$_os" = "Linux"; then + AC_MSG_CHECKING([whether libc is >= 2.1.1]) + exec 6>/dev/null # no output + AC_CHECK_LIB(c, gnu_get_libc_version, HAVE_LIBC=yes; export HAVE_LIBC) + exec 6>&1 # output on again + if test "$HAVE_LIBC"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_ERROR([no, upgrade libc]) + fi +fi + +if test "$_os" != "WINNT"; then + AC_CHECK_FUNCS(getopt, HAVE_GETOPT=YES, [HAVE_GETOPT=NO]) + AC_CHECK_FUNCS(readdir_r, HAVE_READDIR_R=YES, [HAVE_READDIR_R=NO]) + if test "$HAVE_GETOPT" = "YES" -a "$HAVE_READDIR_R" = "YES"; then + SYSTEM_LIBC=YES + fi +else + HAVE_GETOPT=NO + HAVE_READDIR_R=NO + SYSTEM_LIBC=YES +fi +AC_SUBST(HAVE_GETOPT) +AC_SUBST(HAVE_READDIR_R) +AC_SUBST(SYSTEM_LIBC) + +dnl ========================================= +dnl Check for the Microsoft Platform SDK. +dnl ========================================= +dnl FIXME: I don't know yet if PSDK works with MinGW, keep it until I know better, +dnl and add "-a \( "$WITH_MINGW" != "yes" \)" then +if test \( "$_os" = "WINNT" \) ; then + AC_MSG_CHECKING([for PSDK files]) + if test -z "$with_psdk_home"; then + # This first line will detect a February 2003 Microsoft Platform SDK + PSDK_HOME=`./oowintool --psdk-home` + # But there might be also an April 2005 PSDK, unfortunately MS changed + # the registry entry. (we prefer the old version!?) + if test -z "$PSDK_HOME"; then + PSDK_HOME=`cat /proc/registry/HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MicrosoftSDK/InstalledSDKs/*/Install\ Dir 2> /dev/null | tr '\000' '\n' | head -n 1` + fi + # normalize if found + if test -n "$PSDK_HOME"; then + PSDK_HOME=`cygpath -d "$PSDK_HOME"` + PSDK_HOME=`cygpath -u "$PSDK_HOME"` + fi + else + PSDK_HOME=`cygpath -u "$with_psdk_home"` + fi + # Remove a possible trailing backslash + PSDK_HOME=`echo $PSDK_HOME | $SED 's/\/$//'` + # Problem with current PSDK (iz 49865) + if test -f "$PSDK_HOME/Lib/libcp.lib"; then + AC_MSG_ERROR([ + +Some modules do not build correctly with MS Platform SDK - April 2005 +Edition if the library ($PSDK_HOME/Lib/libcp.lib) is found. +Remove/rename/backup that file and restart configure. Details about this +problem can be found in issue 49856.]) + fi +# WIndows SDK has different headers + if test \( -f "$PSDK_HOME/Include/adoint.h" \) \ + -a \( -f "$PSDK_HOME/Include/SqlUcode.h" \) \ + -a \( -f "$PSDK_HOME/Include/usp10.h" \); then + HAVE_PSDK_H="yes" + else + HAVE_PSDK_H="no" + fi + if test -f "$PSDK_HOME/lib/user32.lib"; then + HAVE_PSDK_LIB="yes" + else + HAVE_PSDK_LIB="no" + fi + if test "$HAVE_PSDK_H" = "no" -o "$HAVE_PSDK_LIB" = "no"; then + AC_MSG_ERROR([Some (all?) PSDK files not found, please check if all needed Platform SDKs +are installed or use --with-psdk-home .]) + fi + if test ! -x "$PSDK_HOME/bin/msiinfo.exe" \ + -o ! -x "$PSDK_HOME/bin/msidb.exe" \ + -o ! -x "$PSDK_HOME/bin/uuidgen.exe" \ + -o ! -x "$PSDK_HOME/bin/msitran.exe" ; then + AC_MSG_ERROR([Some (all) files of the Windows Installer SDK are missing, please install.]) + fi + AC_MSG_RESULT([SDK files found ...)]) +dnl Check if this is the right SDK. + if echo $PSDK_HOME | grep "v6.1" >/dev/null 2>/dev/null; then + AC_MSG_RESULT([Found Windows SDK 6.1 ($PSDK_HOME)]) + WINDOWS_VISTA_PSDK=TRUE + elif echo $PSDK_HOME | grep "v6.0" >/dev/null 2>/dev/null; then + AC_MSG_RESULT([Found Windows SDK 6.0 ($PSDK_HOME)]) + WINDOWS_VISTA_PSDK=TRUE + elif echo $PSDK_HOME | grep "v7" >/dev/null 2>/dev/null; then + AC_MSG_RESULT([Found Windows SDK 7 ($PSDK_HOME)]) + WINDOWS_VISTA_PSDK=TRUE + else + AC_MSG_RESULT([Found Legacy Windows Platform SDK ($PSDK_HOME)]) + fi +fi +AC_SUBST(PSDK_HOME) +AC_SUBST(WINDOWS_VISTA_PSDK) + +dnl ========================================= +dnl Check for the Microsoft DirectX SDK. +dnl ========================================= +if test \( "$_os" = "WINNT" \) ; then + AC_MSG_CHECKING([for DirectX SDK files]) + if test -z "$with_directx_home"; then + dnl A standard installation of the DirectX SDK sets $DXSDK_DIR + if test -n "$DXSDK_DIR"; then + DIRECTXSDK_HOME=`cygpath -d "$DXSDK_DIR"` + DIRECTXSDK_HOME=`cygpath -u "$DIRECTXSDK_HOME"` + fi + # At this point $DIRECTXSDK_HOME might still be undefined. This will lead to + # the "DirectX SDK files not found" error later + else + DIRECTXSDK_HOME=`cygpath -u "$with_directx_home"` + fi + # Remove a possible trailing backslash + DIRECTXSDK_HOME=`echo $DIRECTXSDK_HOME | $SED 's/\/$//'` + + if test -f "$DIRECTXSDK_HOME/Include/ddraw.h" -o -f "$DIRECTXSDK_HOME/Include/d3d9.h" ; then + HAVE_DIRECTXSDK_H="yes" + else + HAVE_DIRECTXSDK_H="no" + fi + # MS changed the location of the libraries with dec 2004 directx sdk + if test -d "$DIRECTXSDK_HOME/lib/x86" ; then + DIRECTXSDK_LIB="$DIRECTXSDK_HOME/lib/x86" + else + DIRECTXSDK_LIB="$DIRECTXSDK_HOME/lib" + fi + if test -f "$DIRECTXSDK_LIB/ddraw.lib" -o -f "$DIRECTXSDK_LIB/d3d9.lib" ; then + HAVE_DIRECTXSDK_LIB="yes" + else + HAVE_DIRECTXSDK_LIB="no" + fi + if test -n "$ENABLE_DIRECTX"; then + if test "$HAVE_DIRECTXSDK_H" = "yes" -a "$HAVE_DIRECTXSDK_LIB" = "yes"; then + AC_MSG_RESULT([found]) + else + AC_MSG_ERROR([DirectX SDK files not found, please use --with-directx-home or -disable-directx.]) + fi + else + DIRECTXSDK_HOME="" + AC_MSG_RESULT([disabled]) + fi +fi +AC_SUBST(DIRECTXSDK_HOME) +AC_SUBST(DIRECTXSDK_LIB) + +dnl ============================================ +dnl Check for Nullsoft Scriptable Install System +dnl ============================================ +NSIS_PATH="" +if test "$_os" = "WINNT" ; then + AC_MSG_CHECKING([for NSIS]) + AC_PATH_PROG(NSIS_PATH, nsis.exe) + if test -n "$NSIS_PATH"; then + NSIS_PATH=`dirname "$NSIS_PATH"` + fi + if test -n "$with_nsis_path"; then + with_nsis_path=`cygpath -u "$with_nsis_path"` + fi + if test -e "$with_nsis_path/nsis.exe"; then + NSIS_PATH="$with_nsis_path" + fi + nsistest=`./oowintool --nsis-dir`; + if test -x "$nsistest/nsis.exe"; then + NSIS_PATH="$nsistest" + fi + if test -z "$NSIS_PATH"; then + AC_MSG_RESULT([NSIS not found, no self contained installer will be build.]) + else + NSIS_PATH=`cygpath -d "$NSIS_PATH"` + NSIS_PATH=`cygpath -u "$NSIS_PATH"` + AC_MSG_RESULT([found ($NSIS_PATH)]) + fi +fi +AC_SUBST(NSIS_PATH) + +dnl *************************************** +dnl testing bison and flex exist +dnl *************************************** +AC_PATH_PROG(BISON, bison) +if test -z "$BISON"; then + AC_MSG_ERROR([no bison found in \$PATH, install bison]) +else + AC_MSG_CHECKING([the bison version]) + _bison_version=`$BISON --version | grep GNU | $SED -e 's@^[[^0-9]]*@@' -e 's@ .*@@' -e 's@,.*@@'`; + _bison_longver=`echo $_bison_version | $AWK -F. '{ print \$1*1000+\$2}'` + # Accept newer than 1.875 or older(equal) than 1.75 + if test "$_bison_longver" -ge 1875 -o "$_bison_longver" -le 1075; then + if test "$_bison_version" = "1.875" ; then + AC_MSG_WARN([suspect ($BISON $_bison_version)]) + echo "Suspect ($BISON $_bison_version) suggest upgrade" >> warn + else + AC_MSG_RESULT([checked ($BISON $_bison_version)]) + fi + else + AC_MSG_ERROR([failed ($BISON $_bison_version need 1.875+ (or 1.75 and older))]) + fi +fi +AC_PATH_PROG(FLEX, flex) +if test -z "$FLEX"; then + AC_MSG_ERROR([no flex found in \$PATH, install flex]) +fi +dnl *************************************** +dnl testing that patch exists +dnl *************************************** +AC_PATH_PROG(PATCH, patch) +if test -z "$PATCH"; then + AC_MSG_ERROR([\"patch\" not found in \$PATH, install the development tool named\"patch"\]) +fi + +dnl On Solaris, FreeBSD or MacOS X, check if --with-gnu-patch was used +if test "$_os" = "SunOS" -o "$_os" = "FreeBSD" -o "$_os" = "Darwin"; then + if test -z "$with_gnu_patch"; then + GNUPATCH=$PATCH + else + if test -x "$with_gnu_patch"; then + GNUPATCH=$with_gnu_patch + else + AC_MSG_ERROR([--with-gnu-patch did not point to an executable]) + fi + fi + + AC_MSG_CHECKING([whether $GNUPATCH is GNU patch]) + if $GNUPATCH --version | grep "Free Software Foundation" >/dev/null 2>/dev/null; then + AC_MSG_RESULT([yes]) + else + AC_MSG_ERROR([no, GNU patch needed. install or specify with --with-gnu-patch=/path/to/it]) + fi +fi + +dnl We also need to check for --with-gnu-cp + +if test -z "$with_gnu_cp"; then + AC_PATH_PROGS(GNUCP, gnucp cp) + if test -z $GNUCP; then + AC_MSG_ERROR([Neither gnucp nor cp found. Install GNU cp and/or specify --with-gnu-cp=/path/to/it]) + fi +else + if test -x "$with_gnu_cp"; then + GNUCP=$with_gnu_cp + else + AC_MSG_ERROR([--with-gnu-cp did not point to an executable]) + fi +fi + +AC_MSG_CHECKING([whether $GNUCP is GNU cp from coreutils with preserve= support]) +if $GNUCP --version 2>/dev/null | grep "coreutils" >/dev/null 2>/dev/null; then + AC_MSG_RESULT([yes]) +elif $GNUCP --version 2>/dev/null | grep "GNU fileutils" >/dev/null 2>/dev/null; then + AC_MSG_RESULT([yes]) +else + if test "$_os" = "Darwin" -o "$_os" = "NetBSD" -o "$_os" = "OpenBSD" -o "$_os" = "FreeBSD"; then + GNUCP='' + AC_MSG_RESULT([no gnucp found - using the system's cp command]) + else + AC_MSG_ERROR([no, GNU cp needed. install or specify with --with-gnu-cp=/path/to/it]) + fi +fi + +AC_SUBST(GNUPATCH) +AC_SUBST(GNUCP) + +dnl *************************************** +dnl testing bash tools path on Windows +dnl *************************************** +if test "$_os" = "WINNT"; then + CYGWIN_PATH="" + AC_PATH_PROG(CYGWIN_PATH, bash) + CYGWIN_PATH=`dirname "$CYGWIN_PATH"` +fi +if test -z "$CYGWIN_PATH"; then + CYGWIN_PATH="NO_CYGWIN" +fi +AC_SUBST(CYGWIN_PATH) + +dnl *************************************** +dnl testing assembler path +dnl *************************************** +if test "$CL_X64" = ""; then + assembler=ml.exe + assembler_bin=bin +else + assembler=ml64.exe + assembler_bin=bin/amd64 +fi +if test "$_os" = "WINNT" -a "$WITH_MINGW" != "yes"; then + if test -n "$with_asm_home"; then + with_asm_home=`cygpath -u "$with_asm_home"` + fi + if test -x "$with_asm_home/$assembler"; then + AC_MSG_CHECKING([$assembler assembler path]) + AC_MSG_RESULT([$with_asm_home/$assembler]) + else + AC_PATH_PROG(ML_EXE, $assembler) + if test -z "$ML_EXE"; then + AC_MSG_CHECKING([$with_cl_home/$assembler_bin/$assembler]) + if test -x "$with_cl_home/$assembler_bin/$assembler"; then + with_asm_home=$with_cl_home/$assembler_bin + AC_MSG_RESULT([found]) + else + AC_MSG_ERROR([Configure did not find $assembler assembler.]) + fi + else + with_asm_home="ASM_IN_PATH" + fi + fi +else + with_asm_home="NO_ASM_HOME" +fi +ASM_HOME="$with_asm_home" +AC_SUBST(ASM_HOME) + +dnl =================================================================== +dnl Zip will be found where you tell me to find it +dnl =================================================================== +if test -n "$with_zip_home" ; then + if test "$_os" = "WINNT"; then + with_zip_home=`cygpath -u "$with_zip_home"` + fi + ZIP="$with_zip_home/zip" + UNZIP="$with_zip_home/unzip" + ZIP_HOME="$with_zip_home" +else + AC_PATH_PROG(ZIP, zip) + AC_PATH_PROG(UNZIP, unzip) + ZIP_HOME=`dirname "$ZIP"` +fi +dnl =================================================================== +dnl Zip must be available or else it is an error, all platforms +dnl =================================================================== +if test -z "$ZIP" -o -z "$UNZIP"; then + AC_MSG_ERROR([Zip/Unzip are required to build, please install or use --with-zip-home],,) +fi + +dnl =================================================================== +dnl Zip must be a specific type for different build types. +dnl =================================================================== +if test "$_os" = "WINNT"; then + if test -n "`$ZIP -h | grep -i WinNT`" ; then +AC_MSG_ERROR([$ZIP found in the path is not the required cygwin version of Info-ZIPs zip.exe.]) + fi +fi +AC_SUBST(ZIP_HOME) + +dnl =================================================================== +dnl Test which vclplugs have to be built. +dnl =================================================================== +AC_MSG_CHECKING([which VCLplugs shall be built]) +ENABLE_GTK="" +if test "x$enable_gtk" = "xyes"; then + ENABLE_GTK="TRUE" + R="gtk" +fi +AC_SUBST(ENABLE_GTK) + +ENABLE_KDE="" +if test "x$enable_kde" = "xyes"; then + ENABLE_KDE="TRUE" + R="$R kde" +fi +AC_SUBST(ENABLE_KDE) + +ENABLE_KDE4="" +if test "x$enable_kde4" = "xyes"; then + ENABLE_KDE4="TRUE" + R="$R kde4" +fi +AC_SUBST(ENABLE_KDE4) + +if test -z "$R"; then + AC_MSG_RESULT([none]) +else + AC_MSG_RESULT([$R]) +fi + +dnl =================================================================== +dnl GCONF check +dnl =================================================================== + +ENABLE_GCONF="" +AC_MSG_CHECKING([whether to enable GConf support]) +if test "$_os" != "WINNT" -a "$_os" != "Darwin" -a "$_os" != "OS2" -a "$enable_gconf" = "yes"; then + ENABLE_GCONF="TRUE" + AC_MSG_RESULT([yes]) + PKG_CHECK_MODULES( GCONF, gconf-2.0 ) +else + AC_MSG_RESULT([no]) +fi +AC_SUBST(ENABLE_GCONF) + +dnl =================================================================== +dnl Gnome VFS check +dnl =================================================================== + +ENABLE_GNOMEVFS="" +AC_MSG_CHECKING([whether to enable GNOME VFS support]) +if test "$_os" != "WINNT" -a "$_os" != "Darwin" -a "$enable_gnome_vfs" = "yes"; then + ENABLE_GNOMEVFS="TRUE" + AC_MSG_RESULT([yes]) + PKG_CHECK_MODULES( GNOMEVFS, gnome-vfs-2.0 >= 2.6.0 ) + if test "$ENABLE_GCONF" != "TRUE"; then + PKG_CHECK_MODULES( GCONF, gconf-2.0 ) + fi +else + AC_MSG_RESULT([no]) +fi +AC_SUBST(ENABLE_GNOMEVFS) + +dnl =================================================================== +dnl Check whether the gtk 2.0 libraries are available. +dnl =================================================================== + +GTK_CFLAGS="" +GTK_LIBS="" +ENABLE_SYSTRAY_GTK="" +ENABLE_DBUS="" +if test "$test_gtk" = "yes"; then + + if test "$ENABLE_GTK" = "TRUE" ; then + PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.4 gdk-pixbuf-xlib-2.0 >= 2.2 ,,AC_MSG_ERROR([requirements to build the gtk-plugin not met. Use --disable-gtk or install the missing packages])) + BUILD_TYPE="$BUILD_TYPE GTK" + + if test "x$enable_systray" = "xyes"; then + PKG_CHECK_MODULES( GTK210, gtk+-2.0 >= 2.10.0, + [ ENABLE_SYSTRAY_GTK="TRUE" ], + [ ENABLE_SYSTRAY_GTK="" ]) + fi + + AC_MSG_CHECKING([whether to enable DBUS support]) + if test "$_os" != "WINNT" -a "$_os" != "Darwin" -a "$enable_dbus" = "yes"; then + ENABLE_DBUS="TRUE" + AC_MSG_RESULT([yes]) + PKG_CHECK_MODULES( DBUS, dbus-glib-1 >= 0.70 ) + else + AC_MSG_RESULT([no]) + fi + + AC_MSG_CHECKING([whether to enable GIO support]) + if test "$_os" != "WINNT" -a "$_os" != "Darwin" -a "$enable_gio" = "yes"; then + if test "$ENABLE_GNOMEVFS" = "TRUE" ; then + AC_MSG_ERROR([please use --enable-gio only together with --disable-gnome-vfs.]) + fi + ENABLE_GIO="TRUE" + AC_MSG_RESULT([yes]) + PKG_CHECK_MODULES( GIO, gio-2.0 ) + else + AC_MSG_RESULT([no]) + fi + fi +fi +AC_SUBST(ENABLE_GIO) +AC_SUBST(ENABLE_DBUS) +AC_SUBST(ENABLE_SYSTRAY_GTK) +AC_SUBST(GTK_CFLAGS) +AC_SUBST(GTK_LIBS) + +PKG_CHECK_MODULES( LIBPNG, libpng, ENABLE_QUICKSTART_LIBPNG="TRUE", ENABLE_QUICKSTART_LIBPNG="" ) +AC_SUBST(LIBPNG_LIBS) +AC_SUBST(LIBPNG_CFLAGS) + +AC_MSG_CHECKING([whether to enable libpng linking in quickstarter]) +if test "x$enable_unix_libpng" = "xyes"; then + AC_MSG_RESULT([yes]) +else + AC_MSG_RESULT([no]) + ENABLE_QUICKSTART_LIBPNG="" +fi +AC_SUBST(ENABLE_QUICKSTART_LIBPNG) + +ENABLE_BROFFICE="" +AC_MSG_CHECKING([whether to enable BrOffice branding]) +if test "$enable_broffice" = "yes"; then + ENABLE_BROFFICE="TRUE" + AC_MSG_RESULT([yes]) +else + AC_MSG_RESULT([no]) +fi +AC_SUBST(ENABLE_BROFFICE) + +SPLIT_APP_MODULES="" +if test "$enable_split_app_modules" = "yes"; then + SPLIT_APP_MODULES="YES" +fi +AC_SUBST(SPLIT_APP_MODULES) + +SPLIT_OPT_FEATURES="" +if test "$enable_split_opt_features" = "yes"; then + SPLIT_OPT_FEATURES="YES" +fi +AC_SUBST(SPLIT_OPT_FEATURES) + +dnl =================================================================== +dnl Check whether the Cairo libraries are available. +dnl =================================================================== + +ENABLE_CAIRO="" +BUILD_PIXMAN="" +SYSTEM_CAIRO="" + +if test "$test_cairo" = "yes"; then + + AC_MSG_CHECKING([whether to use cairo]) + if test "x$enable_cairo" != "xno" ; then + ENABLE_CAIRO="TRUE" + AC_MSG_RESULT([yes]) + AC_MSG_CHECKING([which cairo to use]) + if test -n "$with_system_cairo" -o -n "$with_system_libs" && \ + test "$with_system_cairo" != "no"; then + AC_MSG_RESULT([external]) + SYSTEM_CAIRO=YES + + PKG_CHECK_MODULES( CAIRO, cairo >= 1.0.2 ) + if test "$_os" != "WINNT" -a "$_os" != "Darwin" -a "$ENABLE_FONTCONFIG" != "TRUE" ; then + AC_MSG_ERROR([Cairo library requires fontconfig.]) + fi + if test "$with_system_xrender_headers" = "yes"; then + AC_MSG_CHECKING([whether Xrender.h defines PictStandardA8]) + AC_TRY_RUN([ +#include <X11/extensions/Xrender.h> + +int main(int argc, char **argv) { +#ifdef PictStandardA8 + return 0; +#else + return 1; +#endif +} + ], [AC_MSG_RESULT([yes])], [AC_MSG_ERROR([no, X headers too old.])]) + fi + else + BUILD_TYPE="$BUILD_TYPE CAIRO" + BUILD_PIXMAN=YES + AC_MSG_RESULT([internal]) + fi + else + AC_MSG_RESULT([no]) + fi +fi + +AC_SUBST(ENABLE_CAIRO) +AC_SUBST(BUILD_PIXMAN) +AC_SUBST(SYSTEM_CAIRO) +AC_SUBST(CAIRO_CFLAGS) +AC_SUBST(CAIRO_LIBS) + +dnl =================================================================== +dnl Check whether the GStreamer libraries are available. +dnl =================================================================== + +ENABLE_GSTREAMER="" + +if test "$build_gstreamer" = "yes"; then + + AC_MSG_CHECKING([whether to enable the GStreamer avmedia backend]) + if test "x$enable_gstreamer" != "xno" ; then + ENABLE_GSTREAMER="TRUE" + AC_MSG_RESULT([yes]) + PKG_CHECK_MODULES( GSTREAMER, gstreamer-0.10 gstreamer-plugins-base-0.10 ) + else + AC_MSG_RESULT([no]) + fi +fi + +AC_SUBST(ENABLE_GSTREAMER) + +dnl =================================================================== +dnl Check whether the OpenGL libraries are available +dnl =================================================================== + +AC_MSG_CHECKING([whether to build the OpenGL Transitions component]) +ENABLE_OPENGL= + +if test "$_os" = "Darwin" ; then + # We use frameworks on Mac OS X, no need for detail checks + ENABLE_OPENGL=TRUE + AC_MSG_RESULT([yes]) +else + if test "x$enable_opengl" != "xno" ; then + if test "$_os" != "WINNT"; then + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -lm" + AC_MSG_RESULT([yes]) + AC_CHECK_LIB(GL, main, [], + [AC_MSG_ERROR(libGL not installed or functional)], []) + AC_CHECK_LIB(GLU, main, [], + [AC_MSG_ERROR(libGLU not installed or functional)], []) + ENABLE_OPENGL=TRUE + LDFLAGS=$save_LDFLAGS + + dnl =================================================================== + dnl Check for system Mesa + dnl =================================================================== + AC_MSG_CHECKING([which Mesa headers to use]) + if test -n "$with_system_mesa_headers" -o -n "$with_system_headers" && \ + test "$with_system_mesa_headers" != "no"; then + AC_MSG_RESULT([external]) + SYSTEM_MESA_HEADERS=YES + AC_LANG_PUSH(C) + AC_CHECK_HEADER(GL/glxext.h, [], + [ AC_MSG_ERROR(mesa headers not found.)], [#include <GL/glx.h>]) + AC_MSG_CHECKING([whether GL/glxext.h defines PFNGLXBINDTEXIMAGEEXTPROC]) + AC_EGREP_HEADER(PFNGLXBINDTEXIMAGEEXTPROC, GL/glxext.h, [AC_MSG_RESULT([yes])], AC_MSG_ERROR(no)) + AC_LANG_POP(C) + else + AC_MSG_RESULT([internal]) + SYSTEM_MESA_HEADERS=NO + BUILD_TYPE="$BUILD_TYPE MESA" + fi + + else + AC_MSG_RESULT([not on windows]) + fi + else + AC_MSG_RESULT([no]) + fi +fi + +AC_SUBST(SYSTEM_MESA_HEADERS) +AC_SUBST(ENABLE_OPENGL) + +# presenter minimizer extension? +AC_MSG_CHECKING([whether to build the Presentation Minimizer extension]) +AS_IF([test "x$enable_ext_presenter_minimizer" = "xyes"], [ + AC_MSG_RESULT([yes]) + ENABLE_MINIMIZER=YES +],[ + AC_MSG_RESULT([no]) + ENABLE_MINIMIZER=NO + SCPDEFS="$SCPDEFS -DWITHOUT_EXTENSION_MINIMIZER" +]) +AC_SUBST(ENABLE_MINIMIZER) + +# presenter console extension? +AC_MSG_CHECKING([whether to build the Presenter Console extension]) +AS_IF([test "x$enable_ext_presenter_console" = "xyes"], [ + AC_MSG_RESULT([yes]) + ENABLE_PRESENTER_SCREEN=YES +],[ + AC_MSG_RESULT([no]) + ENABLE_PRESENTER_SCREEN=NO + SCPDEFS="$SCPDEFS -DWITHOUT_EXTENSION_PRESENTER_SCREEN" +]) +AC_SUBST(ENABLE_PRESENTER_SCREEN) + +# pdf import extension? +AC_MSG_CHECKING([whether to build the PDF Import extension]) +AS_IF([test "x$enable_ext_pdfimport" = "xyes"], [ + AC_MSG_RESULT([yes]) + ENABLE_PDFIMPORT=YES + + dnl =================================================================== + dnl Check for system poppler + dnl =================================================================== + AC_MSG_CHECKING([which pdf backend to use]) + if test -n "$with_system_poppler" -o -n "$with_system_libs" && \ + test "$with_system_poppler" != "no"; then + AC_MSG_RESULT([external]) + SYSTEM_POPPLER=YES + PKG_CHECK_MODULES( POPPLER, poppler >= 0.8.0 ) + else + AC_MSG_RESULT([internal]) + SYSTEM_POPPLER=NO + BUILD_TYPE="$BUILD_TYPE XPDF" + fi +],[ + AC_MSG_RESULT([no]) + ENABLE_PDFIMPORT=NO + SCPDEFS="$SCPDEFS -DWITHOUT_EXTENSION_PDFIMPORT" +]) +AC_SUBST(ENABLE_PDFIMPORT) +AC_SUBST(SYSTEM_POPPLER) +AC_SUBST(POPPLER_CFLAGS) +AC_SUBST(POPPLER_LIBS) + + +if test "$ENABLE_PRESENTER_SCREEN" = "YES" -o "$ENABLE_MINIMIZER" = "YES" -o "$ENABLE_PDFIMPORT" = "YES"; then + AC_MSG_CHECKING([for sdext module]) + BUILD_TYPE="$BUILD_TYPE SDEXT" +fi + +AC_MSG_CHECKING([whether to build the Wiki Publisher extension]) +AS_IF([test "x$enable_ext_wiki_publisher" = "xyes"], [ + AC_MSG_RESULT([yes]) + AC_MSG_CHECKING([for swext module]) + ENABLE_MEDIAWIKI=YES + BUILD_TYPE="$BUILD_TYPE SWEXT" + if test "x$WITH_JAVA" = "xno"; then + AC_MSG_ERROR([wiki publisher requires Java! Enable java if you want to build it.]) + fi +],[ + AC_MSG_RESULT([no]) + ENABLE_MEDIAWIKI=NO + SCPDEFS="$SCPDEFS -DWITHOUT_EXTENSION_MEDIAWIKI" +]) +AC_SUBST(ENABLE_MEDIAWIKI) + +if test "$ENABLE_MEDIAWIKI" = "YES"; then + AC_MSG_CHECKING([which Servlet API Jar to use]) + if test -n "$with_system_servlet_api"; then + AC_MSG_RESULT([external]) + SYSTEM_SERVLETAPI=YES + if test -z "$SERVLETAPI_JAR"; then + SERVLETAPI_JAR=/usr/share/java/servlet-api.jar + fi + AC_CHECK_FILE($SERVLETAPI_JAR, [], + [AC_MSG_ERROR(servlet-api.jar not found.)], []) + else + AC_MSG_RESULT([internal]) + SYSTEM_SERVLETAPI=NO + BUILD_TYPE="$BUILD_TYPE TOMCAT" + fi +fi +AC_SUBST(SYSTEM_SERVLETAPI) +AC_SUBST(SERVLETAPI_JAR) + +AC_MSG_CHECKING([whether to build the Report Builder extension]) +if test -n "$enable_ext_report_builder" -a "$enable_ext_report_builder" != "no" && test "$WITH_JAVA" != "no"; then + AC_MSG_RESULT([yes]) + ENABLE_REPORTBUILDER=YES + AC_MSG_CHECKING([for reportbuilder module]) + AC_MSG_CHECKING([which jfreereport libs to use]) + if test "$with_system_jfreereport" = "yes"; then + SYSTEM_JFREEREPORT=YES + AC_MSG_RESULT([external]) + if test -z $SAC_JAR; then + SAC_JAR=/usr/share/java/sac.jar + fi + AC_CHECK_FILE($SAC_JAR, [], + [AC_MSG_ERROR(sac.jar not found.)], []) + + if test -z $LIBXML_JAR; then + AC_CHECK_FILE(/usr/share/java/libxml-1.0.0.jar, + [ LIBXML_JAR=/usr/share/java/libxml-1.0.0.jar ], + [ + AC_CHECK_FILE(/usr/share/java/libxml.jar, + [ LIBXML_JAR=/usr/share/java/libxml.jar ], + [AC_MSG_ERROR(libxml.jar replacement not found.)] + ) + ] + ) + else + AC_CHECK_FILE($LIBXML_JAR, [], + [AC_MSG_ERROR(libxml.jar not found.)], []) + fi + + if test -z $FLUTE_JAR; then + AC_CHECK_FILE(/usr/share/java/flute-1.3.0.jar, + [ FLUTE_JAR=/usr/share/java/flute-1.3.0.jar ], + [ + AC_CHECK_FILE(/usr/share/java/flute.jar, + [ FLUTE_JAR=/usr/share/java/flute.jar ], + [ AC_MSG_ERROR(flute-1.3.0.jar replacement not found.)] + ) + ] + ) + else + AC_CHECK_FILE($FLUTE_JAR, [], + [AC_MSG_ERROR(flute-1.3.0.jar not found.)], []) + fi + + if test -z $JFREEREPORT_JAR; then + AC_CHECK_FILE(/usr/share/java/flow-engine-0.9.2.jar, + [ JFREEREPORT_JAR=/usr/share/java/flow-engine-0.9.2.jar ], + [ + AC_CHECK_FILE(/usr/share/java/flow-engine.jar, + [ JFREEREPORT_JAR=/usr/share/java/flow-engine.jar ], + [AC_MSG_ERROR(jfreereport.jar replacement not found.)] + ) + ] + ) + else + AC_CHECK_FILE($JFREEREPORT_JAR, [], + [AC_MSG_ERROR(jfreereport.jar not found.)], []) + fi + + if test -z $LIBLAYOUT_JAR; then + AC_CHECK_FILE(/usr/share/java/liblayout-0.2.9.jar, + [ LIBLAYOUT_JAR=/usr/share/java/liblayout-0.2.9.jar ], + [ + AC_CHECK_FILE(/usr/share/java/liblayout.jar, + [ LIBLAYOUT_JAR=/usr/share/java/liblayout.jar ], + [AC_MSG_ERROR(liblayout.jar replacement not found.)] + ) + ] + ) + else + AC_CHECK_FILE($LIBLAYOUT_JAR, [], + [AC_MSG_ERROR(liblayout.jar not found.)], []) + fi + + if test -z $LIBLOADER_JAR; then + AC_CHECK_FILE(/usr/share/java/libloader-1.0.0.jar, + [ LIBLOADER_JAR=/usr/share/java/libloader-1.0.0.jar ], + [ + AC_CHECK_FILE(/usr/share/java/libloader.jar, + [ LIBLOADER_JAR=/usr/share/java/libloader.jar ], + [AC_MSG_ERROR(libloader.jar replacement not found.)] + ) + ] + ) + else + AC_CHECK_FILE($LIBLOADER_JAR, [], + [AC_MSG_ERROR(libloader.jar not found.)], []) + fi + + if test -z $LIBFORMULA_JAR; then + AC_CHECK_FILE(/usr/share/java/libformula-0.2.0.jar, + [ LIBFORMULA_JAR=/usr/share/java/libformula-0.2.0.jar ], + [ + AC_CHECK_FILE(/usr/share/java/libformula.jar, + [ LIBFORMULA_JAR=/usr/share/java/libformula.jar ], + [AC_MSG_ERROR(libformula.jar replacement not found.)] + ) + ] + ) + else + AC_CHECK_FILE($LIBFORMULA_JAR, [], + [AC_MSG_ERROR(libformula.jar not found.)], []) + fi + + if test -z $LIBREPOSITORY_JAR; then + AC_CHECK_FILE(/usr/share/java/librepository-1.0.0.jar, + [ LIBREPOSITORY_JAR=/usr/share/java/librepository-1.0.0.jar ], + [ + AC_CHECK_FILE(/usr/share/java/librepository.jar, + [ LIBREPOSITORY_JAR=/usr/share/java/librepository.jar ], + [AC_MSG_ERROR(librepository.jar replacement not found.)] + ) + ] + ) + else + AC_CHECK_FILE($LIBREPOSITORY_JAR, [], + [AC_MSG_ERROR(librepository.jar not found.)], []) + fi + + if test -z $LIBFONTS_JAR; then + AC_CHECK_FILE(/usr/share/java/libfonts-1.0.0.jar, + [ LIBFONTS_JAR=/usr/share/java/libfonts-1.0.0.jar ], + [ + AC_CHECK_FILE(/usr/share/java/libfonts.jar, + [ LIBFONTS_JAR=/usr/share/java/libfonts.jar ], + [AC_MSG_ERROR(libfonts.jar replacement not found.)] + ) + ] + ) + else + AC_CHECK_FILE($LIBFONTS_JAR, [], + [AC_MSG_ERROR(libfonts.jar not found.)], []) + fi + + if test -z $LIBSERIALIZER_JAR; then + AC_CHECK_FILE(/usr/share/java/libserializer-1.0.0.jar, + [ LIBSERIALIZER_JAR=/usr/share/java/libserializer-1.0.0.jar ], + [ + AC_CHECK_FILE(/usr/share/java/libserializer.jar, + [ LIBSERIALIZER_JAR=/usr/share/java/libserializer.jar ], + [AC_MSG_ERROR(libserializer.jar replacement not found.)] + ) + ] + ) + else + AC_CHECK_FILE($LIBSERIALIZER_JAR, [], + [AC_MSG_ERROR(libserializer.jar not found.)], []) + fi + + + if test -z $LIBBASE_JAR; then + AC_CHECK_FILE(/usr/share/java/libbase-1.0.0.jar, + [ LIBBASE_JAR=/usr/share/java/libbase-1.0.0.jar ], + [ + AC_CHECK_FILE(/usr/share/java/libbase.jar, + [ LIBBASE_JAR=/usr/share/java/libbase.jar ], + [AC_MSG_ERROR(libbase.jar replacement not found.)] + ) + ] + ) + else + AC_CHECK_FILE($LIBBASE_JAR, [], + [AC_MSG_ERROR(libbase.jar not found.)], []) + fi + + else + AC_MSG_RESULT([internal]) + AC_MSG_CHECKING([for jfreereport module]) + SYSTEM_JFREEREPORT=NO + BUILD_TYPE="$BUILD_TYPE JFREEREPORT" + fi + BUILD_TYPE="$BUILD_TYPE REPORTBUILDER" +else + AC_MSG_RESULT([no]) + ENABLE_REPORTBUILDER=NO + SCPDEFS="$SCPDEFS -DWITHOUT_EXTENSION_REPORTDESIGN" + SYSTEM_JFREEREPORT=NO +fi +AC_SUBST(ENABLE_REPORTBUILDER) +AC_SUBST(SYSTEM_JFREEREPORT) +AC_SUBST(SAC_JAR) +AC_SUBST(LIBXML_JAR) +AC_SUBST(FLUTE_JAR) +AC_SUBST(JFREEREPORT_JAR) +AC_SUBST(LIBBASE_JAR) +AC_SUBST(LIBLAYOUT_JAR) +AC_SUBST(LIBLOADER_JAR) +AC_SUBST(LIBFORMULA_JAR) +AC_SUBST(LIBREPOSITORY_JAR) +AC_SUBST(LIBFONTS_JAR) +AC_SUBST(LIBSERIALIZER_JAR) + +# this has to be here because both the wiki publisher and the SRB use +# commons-logging +if test "$ENABLE_MEDIAWIKI" = "YES" -o "$ENABLE_REPORTBUILDER" = "YES"; then + AC_MSG_CHECKING([which Apache commons-* libs to use]) + if test "$with_system_apache_commons" = "yes"; then + SYSTEM_APACHE_COMMONS=YES + AC_MSG_RESULT([external]) + if test "$ENABLE_MEDIAWIKI" = "YES"; then + if test -z $COMMONS_CODEC_JAR; then + AC_CHECK_FILE(/usr/share/java/commons-codec-1.3.jar, + [ COMMONS_CODEC_JAR=/usr/share/java/commons-codec-1.3.jar ], + [ + AC_CHECK_FILE(/usr/share/java/commons-codec.jar, + [ COMMONS_CODEC_JAR=/usr/share/java/commons-codec.jar ], + [AC_MSG_ERROR(commons-codec.jar replacement not found.)] + ) + ] + ) + else + AC_CHECK_FILE($COMMONS_CODEC_JAR, [], + [AC_MSG_ERROR(commons-codec.jar not found.)], []) + fi + + if test -z $COMMONS_LANG_JAR; then + AC_CHECK_FILE(/usr/share/java/commons-lang-2.3.jar, + [ COMMONS_LANG_JAR=/usr/share/java/commons-lang-2.3.jar ], + [ + AC_CHECK_FILE(/usr/share/java/commons-lang.jar, + [ COMMONS_LANG_JAR=/usr/share/java/commons-lang.jar ], + [AC_MSG_ERROR(commons-lang.jar replacement not found.)] + ) + ] + ) + else + AC_CHECK_FILE($COMMONS_LANG_JAR, [], + [AC_MSG_ERROR(commons-lang.jar not found.)], []) + fi + + if test -z $COMMONS_HTTPCLIENT_JAR; then + AC_CHECK_FILE(/usr/share/java/commons-httpclient-3.1.jar, + [ COMMONS_HTTPCLIENT_JAR=/usr/share/java/commons-httpclient-3.1.jar ], + [ + AC_CHECK_FILE(/usr/share/java/commons-httpclient.jar, + [ COMMONS_HTTPCLIENT_JAR=/usr/share/java/commons-httpclient.jar ], + [AC_MSG_ERROR(commons-httpclient.jar replacement not found.)] + ) + ] + ) + else + AC_CHECK_FILE($COMMONS_HTTPCLIENT_JAR, [], + [AC_MSG_ERROR(commons-httpclient.jar not found.)], []) + fi + fi + if test "$ENABLE_MEDIAWIKI" = "YES" -o "$ENABLE_REPORTBUILDER" = "YES"; then + if test -z $COMMONS_LOGGING_JAR; then + AC_CHECK_FILE(/usr/share/java/commons-logging-1.1.1.jar, + [ COMMONS_LOGGING_JAR=/usr/share/java/commons-logging-1.1.1.jar ], + [ + AC_CHECK_FILE(/usr/share/java/commons-logging.jar, + [ COMMONS_LOGGING_JAR=/usr/share/java/commons-logging.jar ], + [AC_MSG_ERROR(commons-logging.jar replacement not found.)] + ) + ] + ) + else + AC_CHECK_FILE($COMMONS_LOGGING_JAR, [], + [AC_MSG_ERROR(commons-logging.jar not found.)], []) + fi + fi + else + AC_MSG_RESULT([internal]) + SYSTEM_APACHE_COMMONS=NO + BUILD_TYPE="$BUILD_TYPE APACHE_COMMONS TOMCAT" + fi +fi +AC_SUBST(SYSTEM_APACHE_COMMONS) +AC_SUBST(COMMONS_CODEC_JAR) +AC_SUBST(COMMONS_LANG_JAR) +AC_SUBST(COMMONS_HTTPCLIENT_JAR) +AC_SUBST(COMMONS_LOGGING_JAR) + +# scripting provider for BeanShell extension? +AC_MSG_CHECKING([whether to build extension for support of scripts in BeanShell]) +AS_IF([test "x$enable_ext_scripting_beanshell" = "xyes"], [ + AC_MSG_RESULT([yes]) + ENABLE_SCRIPTING_BEANSHELL=YES +],[ + AC_MSG_RESULT([no]) + ENABLE_SCRIPTING_BEANSHELL=NO + SCPDEFS="$SCPDEFS -DWITHOUT_EXTENSION_SCRIPTING_BEANSHELL" +]) +AC_SUBST(ENABLE_SCRIPTING_BEANSHELL) + +# scripting provider for JavaScript extension? +AC_MSG_CHECKING([whether to build extension for support of scripts in JavaScript]) +AS_IF([test "x$enable_ext_scripting_javascript" = "xyes"], [ + AC_MSG_RESULT([yes]) + ENABLE_SCRIPTING_JAVASCRIPT=YES +],[ + AC_MSG_RESULT([no]) + ENABLE_SCRIPTING_JAVASCRIPT=NO + SCPDEFS="$SCPDEFS -DWITHOUT_EXTENSION_SCRIPTING_JAVASCRIPT" +]) +AC_SUBST(ENABLE_SCRIPTING_JAVASCRIPT) + +# scripting provider for Python extension? +AC_MSG_CHECKING([whether to build extension for support of scripts in Python]) +AS_IF([test "x$enable_ext_scripting_python" = "xyes"], [ + AC_MSG_RESULT([yes]) + ENABLE_SCRIPTING_PYTHON=YES +],[ + AC_MSG_RESULT([no]) + ENABLE_SCRIPTING_PYTHON=NO + SCPDEFS="$SCPDEFS -DWITHOUT_EXTENSION_SCRIPTING_PYTHON" +]) +AC_SUBST(ENABLE_SCRIPTING_PYTHON) + +dnl =================================================================== +dnl Check whether the Qt3 and KDE3 libraries are available. +dnl =================================================================== + +KDE_CFLAGS="" +KDE_LIBS="" +if test "$_os" != "OpenBSD"; then + MOC="moc" +fi +if test "$test_kde" = "yes" -a "$ENABLE_KDE" = "TRUE" ; then + dnl Search paths for Qt3 and KDE3 + if test "$host_cpu" != "x86_64" ; then + qt_incdirs="$QTINC /usr/local/qt/include /usr/include/qt /usr/include /usr/X11R6/include/X11/qt /usr/X11R6/include/qt /usr/lib/qt3/include /usr/lib/qt/include /usr/share/qt3/include /usr/local/include/X11/qt3 $x_includes" + qt_libdirs="$QTLIB /usr/local/qt/lib /usr/lib/qt /usr/lib /usr/X11R6/lib/X11/qt /usr/X11R6/lib/qt /usr/lib/qt3/lib /usr/lib/qt/lib /usr/share/qt3/lib /usr/local/lib/qt3 $x_libraries" + else + qt_incdirs="$QTINC /usr/local/qt/include /usr/include/qt /usr/include /usr/X11R6/include/X11/qt /usr/X11R6/include/qt /usr/lib64/qt3/include /usr/lib64/qt/include /usr/share/qt3/include /usr/lib/qt3/include /usr/lib/qt/include /usr/local/include/X11/qt3 $x_includes" + qt_libdirs="$QTLIB /usr/local/qt/lib64 /usr/lib64/qt /usr/lib64 /usr/X11R6/lib64/X11/qt /usr/X11R6/lib64/qt /usr/lib64/qt3/lib64 /usr/lib64/qt/lib64 /usr/share/qt3/lib64 /usr/local/qt/lib /usr/lib/qt /usr/lib /usr/X11R6/lib/X11/qt /usr/X11R6/lib/qt /usr/lib/qt3/lib /usr/lib/qt/lib /usr/share/qt3/lib /usr/local/lib/qt3 $x_libraries" + fi + if test -n "$QTDIR" ; then + qt_incdirs="$QTDIR/include $qt_incdirs" + if test "$host_cpu" != "x86_64" ; then + qt_libdirs="$QTDIR/lib $qt_libdirs" + else + qt_libdirs="$QTDIR/lib64 $QTDIR/lib $qt_libdirs" + fi + fi + if test "$host_cpu" != "x86_64" ; then + kde_incdirs="/usr/lib/kde/include /usr/local/kde/include /usr/local/include /usr/kde/include /usr/include/kde /opt/kde3/include /opt/kde/include $x_includes" + kde_libdirs="/usr/lib/kde/lib /usr/local/kde/lib /usr/kde/lib /usr/lib/kde /usr/lib/kde3 /usr/X11R6/lib /usr/local/lib /opt/kde3/lib /opt/kde/lib /usr/X11R6/kde/lib /usr/lib $x_libraries" + else + kde_incdirs="/usr/lib64/kde/include /usr/lib/kde/include /usr/local/kde/include /usr/local/include /usr/kde/include /usr/include/kde /opt/kde3/include /opt/kde/include $x_includes" + kde_libdirs="/usr/lib64/kde/lib64 /usr/local/kde/lib64 /usr/kde/lib64 /usr/lib64/kde /usr/lib64/kde3 /usr/X11R6/lib64 /usr/local/lib64 /opt/kde3/lib64 /opt/kde/lib64 /usr/X11R6/kde/lib64 /usr/lib/kde/lib /usr/local/kde/lib /usr/kde/lib /usr/lib/kde /usr/lib/kde3 /usr/lib /usr/X11R6/lib /usr/local/lib /opt/kde3/lib /opt/kde/lib /usr/X11R6/kde/lib /usr/lib64 $x_libraries" + fi + if test -n "$KDEDIR" ; then + kde_incdirs="$KDEDIR/include $kde_incdirs" + if test "$host_cpu" != "x86_64" ; then + kde_libdirs="$KDEDIR/lib $kde_libdirs" + else + kde_libdirs="$KDEDIR/lib64 $KDEDIR/lib $kde_libdirs" + fi + fi + + dnl What to test + qt_test_include="qstyle.h" + kde_test_include="kapp.h" + + if test "$_os" != "OpenBSD"; then + qt_test_library="libqt-mt.so" + kde_test_library="libDCOP.so" + else + qt_test_library="libqt-mt.so*" + kde_test_library="libDCOP.so*" + fi + + dnl Check for Qt3 headers + AC_MSG_CHECKING([for Qt3 headers]) + qt_incdir="no" + for kde_check in $qt_incdirs ; do + if test -r "$kde_check/$qt_test_include" ; then + qt_incdir="$kde_check" + break + fi + done + AC_MSG_RESULT([$qt_incdir]) + if test "x$qt_incdir" = "xno" ; then + AC_MSG_ERROR([Qt3 headers not found. Please specify the root of +your Qt3 installation by exporting QTDIR before running "configure".]) + fi + + dnl Check for Qt3 libraries + AC_MSG_CHECKING([for Qt3 libraries]) + qt_libdir="no" + for qt_check in $qt_libdirs ; do + if test -r "`ls $qt_check/$qt_test_library 2>/dev/null | head -1`" ; then + qt_libdir="$qt_check" + break + fi + done + AC_MSG_RESULT([$qt_libdir]) + if test "x$qt_libdir" = "xno" ; then + AC_MSG_ERROR([Qt3 libraries not found. Please specify the root of +your Qt3 installation by exporting QTDIR before running "configure".]) + fi + + dnl Check for Meta Object Compiler + AC_PATH_PROG( MOC, moc, no, [`dirname $qt_libdir`/bin:$QTDIR/bin:$PATH] ) + if test "$MOC" = "no" ; then + AC_MSG_ERROR([Qt3 Meta Object Compiler not found. Please specify +the root of your Qt3 installation by exporting QTDIR before running "configure".]) + fi + + dnl Check for KDE3 headers + AC_MSG_CHECKING([for KDE3 headers]) + kde_incdir="no" + for kde_check in $kde_incdirs ; do + if test -r "$kde_check/$kde_test_include" ; then + kde_incdir="$kde_check" + break + fi + done + AC_MSG_RESULT([$kde_incdir]) + if test "x$kde_incdir" = "xno" ; then + AC_MSG_ERROR([KDE3 headers not found. Please specify the root of +your KDE3 installation by exporting KDEDIR before running "configure".]) + fi + + dnl Check for KDE3 libraries + AC_MSG_CHECKING([for KDE3 libraries]) + kde_libdir="no" + for kde_check in $kde_libdirs ; do + if test -r "`ls $kde_check/$kde_test_library 2>/dev/null | head -1`" ; then + kde_libdir="$kde_check" + break + fi + done + AC_MSG_RESULT([$kde_libdir]) + if test "x$kde_libdir" = "xno" ; then + AC_MSG_ERROR([KDE3 libraries not found. Please specify the root of +your KDE3 installation by exporting KDEDIR before running "configure".]) + fi + + dnl Set the variables + KDE_CFLAGS="-I$qt_incdir -I$kde_incdir -DQT_CLEAN_NAMESPACE -DQT_THREAD_SUPPORT" + KDE_LIBS="-L$kde_libdir -L$qt_libdir -lkdeui -lkdecore -lqt-mt" +fi +AC_SUBST(KDE_CFLAGS) +AC_SUBST(KDE_LIBS) +AC_SUBST(MOC) + +dnl =================================================================== +dnl KDE4 Integration +dnl =================================================================== + +KDE4_CFLAGS="" +KDE4_LIBS="" +MOC4="moc" +KDE_GLIB_CFLAGS="" +KDE_GLIB_LIBS="" +KDE_HAVE_GLIB="" +if test "$test_kde4" = "yes" -a "$ENABLE_KDE4" = "TRUE" ; then + qt_incdirs="$QT4INC /usr/include/qt4 /usr/include $x_includes" + qt_libdirs="$QT4LIB /usr/lib $x_libraries" + + kde_incdirs="/usr/include $x_includes" + kde_libdirs="/usr/lib $x_libraries" + + if test "$host_cpu" = "x86_64" ; then + qt_libdirs="$qt_libdirs /usr/lib64/qt4 /usr/lib64/qt /usr/lib64" + kde_libdirs="$kde_libdirs /usr/lib64 /usr/lib64/kde4" + fi + + if test -n "$QTDIR" ; then + qt_incdirs="$QTDIR/include $qt_incdirs" + if test "$host_cpu" != "x86_64" ; then + qt_libdirs="$QTDIR/lib $qt_libdirs" + else + qt_libdirs="$QTDIR/lib64 $QTDIR/lib $qt_libdirs" + fi + fi + if test -n "$QT4DIR" ; then + qt_incdirs="$QT4DIR/include $qt_incdirs" + if test "$host_cpu" != "x86_64" ; then + qt_libdirs="$QT4DIR/lib $qt_libdirs" + else + qt_libdirs="$QT4DIR/lib64 $QT4DIR/lib $qt_libdirs" + fi + fi + + if test -n "$KDEDIR" ; then + kde_incdirs="$KDEDIR/include $kde_incdirs" + if test "$host_cpu" != "x86_64" ; then + kde_libdirs="$KDEDIR/lib $kde_libdirs" + else + kde_libdirs="$KDEDIR/lib64 $KDEDIR/lib $kde_libdirs" + fi + fi + if test -n "$KDE4DIR" ; then + kde_incdirs="$KDE4DIR/include $kde_incdirs" + if test "$host_cpu" != "x86_64" ; then + kde_libdirs="$KDE4DIR/lib $kde_libdirs" + else + kde_libdirs="$KDE4DIR/lib64 $KDE4DIR/lib $kde_libdirs" + fi + fi + + qt_test_include="Qt/qobject.h" + qt_test_library="libQtCore.so" + kde_test_include="kwindowsystem.h" + kde_test_library="libsolid.so" + + AC_MSG_CHECKING([for Qt4 headers]) + qt_header_dir="no" + for inc_dir in $qt_incdirs ; do + if test -r "$inc_dir/$qt_test_include" ; then + qt_header_dir="$inc_dir" + break + fi + done + + AC_MSG_RESULT([$qt_header_dir]) + if test "x$qt_header_dir" = "xno" ; then + AC_MSG_ERROR([Qt4 headers not found. Please specify the root of your Qt4 installation by exporting QT4DIR before running "configure".]) + fi + + AC_MSG_CHECKING([for Qt4 libraries]) + qt_lib_dir="no" + for lib_dir in $qt_libdirs ; do + if test -r "$lib_dir/$qt_test_library" ; then + qt_lib_dir="$lib_dir" + PKG_CONFIG_PATH="$qt_lib_dir"/pkgconfig:$PKG_CONFIG_PATH + break + fi + done + + AC_MSG_RESULT([$qt_lib_dir]) + + if test "x$qt_lib_dir" = "xno" ; then + AC_MSG_ERROR([Qt4 libraries not found. Please specify the root of your Qt4 installation by exporting QT4DIR before running "configure".]) + fi + + dnl Check for Meta Object Compiler + AC_PATH_PROG( MOC4, moc, no, [`dirname $qt_lib_dir`/bin:$QT4DIR/bin:$PATH] ) + if test "$MOC4" = "no" ; then + AC_MSG_ERROR([Qt Meta Object Compiler not found. Please specify +the root of your Qt installation by exporting QT4DIR before running "configure".]) + fi + + dnl Check for KDE4 headers + AC_MSG_CHECKING([for KDE4 headers]) + kde_incdir="no" + for kde_check in $kde_incdirs ; do + if test -r "$kde_check/$kde_test_include" ; then + kde_incdir="$kde_check" + break + fi + done + AC_MSG_RESULT([$kde_incdir]) + if test "x$kde_incdir" = "xno" ; then + AC_MSG_ERROR([KDE4 headers not found. Please specify the root of your KDE4 installation by exporting KDE4DIR before running "configure".]) + fi + + dnl Check for KDE4 libraries + AC_MSG_CHECKING([for KDE4 libraries]) + kde_libdir="no" + for kde_check in $kde_libdirs ; do + if test -r "$kde_check/$kde_test_library" ; then + kde_libdir="$kde_check" + break + fi + done + + AC_MSG_RESULT([$kde_libdir]) + if test "x$kde_libdir" = "xno" ; then + AC_MSG_ERROR([KDE4 libraries not found. Please specify the root of your KDE4 installation by exporting KDE4DIR before running "configure".]) + fi + + KDE4_CFLAGS="`pkg-config --cflags QtCore` `pkg-config --cflags QtGui` -I$kde_incdir -DQT_CLEAN_NAMESPACE -DQT_THREAD_SUPPORT" + KDE4_LIBS="-L$kde_libdir -L$qt_lib_dir -lkdeui -lkdecore -lQtCore -lQtGui" + + AC_LANG_PUSH([C++]) + save_CXXFLAGS=$CXXFLAGS + CXXFLAGS="$CXXFLAGS $KDE4_CFLAGS" + AC_MSG_CHECKING([whether KDE is >= 4.2]) + AC_TRY_RUN([ +#include <kdeversion.h> + +int main(int argc, char **argv) { + if (KDE_VERSION_MAJOR == 4 && KDE_VERSION_MINOR >= 2) return 0; + else return 1; +} + ], [AC_MSG_RESULT([yes])], [AC_MSG_ERROR([KDE version too old])]) + CXXFLAGS=$save_CXXFLAGS + AC_LANG_POP([C++]) + + # Glib is needed for properly handling Qt event loop with Qt's Glib integration enabled + PKG_CHECK_MODULES(KDE_GLIB,[glib-2.0 >= 2.4], + [KDE_HAVE_GLIB=1], + AC_MSG_WARN([[No Glib found, KDE4 support will not integrate with Qt's Glib event loop support]])) +fi +AC_SUBST(KDE4_CFLAGS) +AC_SUBST(KDE4_LIBS) +AC_SUBST(MOC4) +AC_SUBST(KDE_GLIB_CFLAGS) +AC_SUBST(KDE_GLIB_LIBS) +AC_SUBST(KDE_HAVE_GLIB) + +dnl =================================================================== +dnl Test for the enabling the lockdown pieces +dnl =================================================================== +AC_MSG_CHECKING([whether to enable the lockdown pieces]) +ENABLE_LOCKDOWN="" +if test -n "$enable_lockdown" && test "$enable_lockdown" != "no"; then + ENABLE_LOCKDOWN=YES + AC_MSG_RESULT([yes]) +else + AC_MSG_RESULT([no]) +fi +AC_SUBST(ENABLE_LOCKDOWN) + +dnl =================================================================== +dnl Test whether to include Evolution 2 support +dnl =================================================================== +AC_MSG_CHECKING([whether to enable evolution 2 support]) +if test "$enable_evolution2" = "yes" -o "$enable_evolution2" = "TRUE"; then + AC_MSG_RESULT([yes]) + PKG_CHECK_MODULES(GOBJECT, gobject-2.0) + ENABLE_EVOAB2="TRUE" +else + ENABLE_EVOAB2="" + AC_MSG_RESULT([no]) +fi +AC_SUBST(ENABLE_EVOAB2) +AC_SUBST(GOBJECT_CFLAGS) +AC_SUBST(GOBJECT_LIBS) + +dnl =================================================================== +dnl Test whether to include KDE AB support +dnl =================================================================== +AC_MSG_CHECKING([whether to enable KDE address book support]) +if test "$enable_kdeab" = "yes" && test "$enable_kde" = "yes"; then + AC_MSG_RESULT([yes]) + AC_LANG_PUSH([C++]) + save_CXXFLAGS=$CXXFLAGS + CXXFLAGS="$CXXFLAGS $KDE_CFLAGS" + AC_MSG_CHECKING([whether KDE is between 3.2 and 3.6]) + AC_TRY_RUN([ +#include <kdeversion.h> + +int main(int argc, char **argv) { + if (KDE_VERSION_MAJOR == 3 && 2 <= KDE_VERSION_MINOR && KDE_VERSION_MINOR <= 6) return 0; + else return 1; +} + ], [AC_MSG_RESULT([yes])], [AC_MSG_ERROR([KDE version too old or too recent, please use another version of KDE or disable KDE address book support])]) + CXXFLAGS=$save_CXXFLAGS + AC_LANG_POP([C++]) + ENABLE_KAB=TRUE +else + AC_MSG_RESULT([no]) + ENABLE_KAB= +fi +AC_SUBST(ENABLE_KAB) + +dnl =================================================================== +dnl Test whether to include MathMLDTD +dnl =================================================================== +AC_MSG_CHECKING([whether to include MathMLDTD]) +if test -n "$enable_mathmldtd"; then + if test "$enable_mathmldtd" = "no"; then + AC_MSG_RESULT([no]) + SCPDEFS="$SCPDEFS -DWITHOUT_MATHMLDTD" + else + AC_MSG_RESULT([yes]) + BUILD_TYPE="$BUILD_TYPE MATHMLDTD" + fi +else + AC_MSG_RESULT([no]) + SCPDEFS="$SCPDEFS -DWITHOUT_MATHMLDTD" +fi + +dnl =================================================================== +dnl Test which themes to include +dnl =================================================================== +AC_MSG_CHECKING([which themes to include]) +# if none given, use all available themes +if test "z$enable_theme" = "z" -o "z$enable_theme" = "zyes"; then + enable_theme="default crystal hicontrast oxygen tango" +fi + + WITH_THEMES="" + for theme in $enable_theme + do + WITH_THEMES="$WITH_THEMES $theme" + SCPDEFS="$SCPDEFS -DTHEME_`echo $theme|tr '[a-z]' '[A-Z]'`" + done + AC_MSG_RESULT([$WITH_THEMES]) +AC_SUBST(WITH_THEMES) + +dnl =================================================================== +dnl Test whether to integrate helppacks into the product's installer +dnl =================================================================== +AC_MSG_CHECKING([for helppack integration]) +if test "z$with_helppack_integration" = "zno" ; then + WITH_HELPPACK_INTEGRATION=NO + AC_MSG_RESULT([no integration]) +else + WITH_HELPPACK_INTEGRATION=YES + SCPDEFS="$SCPDEFS -DWITH_HELPPACK_INTEGRATION" + AC_MSG_RESULT([integration]) +fi +AC_SUBST(WITH_HELPPACK_INTEGRATION) + +dnl =================================================================== +dnl Test whether to integrate extensions into the product's installer +dnl =================================================================== +AC_MSG_CHECKING([for extensions integration]) +if test "z$with_extension_integration" = "z" -o "z$with_extension_integration" = "zno" ; then + WITH_EXTENSION_INTEGRATION=NO + AC_MSG_RESULT([no integration]) +else + WITH_EXTENSION_INTEGRATION=YES + SCPDEFS="$SCPDEFS -DWITH_EXTENSION_INTEGRATION" + AC_MSG_RESULT([integration]) +fi +AC_SUBST(WITH_EXTENSION_INTEGRATION) + +dnl =================================================================== +dnl Test whether to include Lightproof extensions +dnl =================================================================== +AC_MSG_CHECKING([for Lightproof extensions integration (only supported languages displayed)]) +if test "z$enable_ext_lightproof" = "z" -o "z$enable_ext_lightproof" = "zno" ; then + LIGHTPROOF_LANG="" + AC_MSG_RESULT([no integration]) +else + SCPDEFS="$SCPDEFS -DWITH_EXTENSION_LIGHTPROOF" + lightproof_supported_langs="en-US hu" + if test "z$enable_ext_lightproof" = "zyes" ; then + wanted_lightproof="$lightproof_supported_langs" + else + # check whether the langs are supported by Lightproof + wanted_lightproof= + for lang in $enable_ext_lightproof ; do + if test -n "`echo $lightproof_supported_langs | grep "$lang"`" ; then + wanted_lightproof="$wanted_lightproof $lang" + fi + done + fi + LIGHTPROOF_LANG= + LIGHTPROOF_HU_PACK= + LIGHTPROOF_EN_US_PACK= + # check whether the langs are requested at all + for lang in $wanted_lightproof ; do + if test "$with_lang" = "ALL" -o -n "`echo $with_lang | grep "$lang"`" ; then + LIGHTPROOF_LANG="$LIGHTPROOF_LANG $lang" + case $lang in + "hu") LIGHTPROOF_HU_PACK="324ddcb9ef45c3bc055fcc002bc4e556-lightproof-hu_1.2.oxt";; + "en-US") LIGHTPROOF_EN_US_PACK="942541da5f5498214518c8b459ae4524-lightproof-en-US_0.1.oxt";; + esac + fi + done + AC_MSG_RESULT([$LIGHTPROOF_LANG]) +fi +AC_SUBST(LIGHTPROOF_LANG) +AC_SUBST(LIGHTPROOF_HU_PACK) +AC_SUBST(LIGHTPROOF_EN_US_PACK) + +dnl =================================================================== +dnl Test whether to include Watch Window extension +dnl =================================================================== +AC_MSG_CHECKING([for Watch Window extension integration]) +if test "z$enable_ext_watch_window" = "z" -o "z$enable_ext_watch_window" = "zno" ; then + AC_MSG_RESULT([no]) + WATCH_WINDOW_EXTENSION_PACK="" +else + AC_MSG_RESULT([yes]) + SCPDEFS="$SCPDEFS -DWITH_EXTENSION_WATCH_WINDOW" + WATCH_WINDOW_EXTENSION_PACK="23bd75552206dfcd8fd4e29137dcac84-WatchWindow_1.2.0.0.oxt" +fi +AC_SUBST(WATCH_WINDOW_EXTENSION_PACK) + +dnl =================================================================== +dnl Test whether to include Diagram extension +dnl =================================================================== +AC_MSG_CHECKING([for Diagram extension integration]) +if test "z$enable_ext_diagram" = "z" -o "z$enable_ext_diagram" = "zno" ; then + AC_MSG_RESULT([no]) + DIAGRAM_EXTENSION_PACK="" +else + AC_MSG_RESULT([yes]) + SCPDEFS="$SCPDEFS -DWITH_EXTENSION_DIAGRAM" + DIAGRAM_EXTENSION_PACK="41c9b65ad60af4b3255bbecdfef11736-Diagram_1.1.0.0.oxt" +fi +AC_SUBST(DIAGRAM_EXTENSION_PACK) + +dnl =================================================================== +dnl Test whether to include Validator extension +dnl =================================================================== +AC_MSG_CHECKING([for Validator extension integration]) +if test "z$enable_ext_validator" = "z" -o "z$enable_ext_validator" = "zno" ; then + AC_MSG_RESULT([no]) + VALIDATOR_EXTENSION_PACK="" +else + AC_MSG_RESULT([yes]) + SCPDEFS="$SCPDEFS -DWITH_EXTENSION_VALIDATOR" + VALIDATOR_EXTENSION_PACK="bbdd5639ada63e3130761daaecae1a10-Validator_1.1.0.0.oxt" +fi +AC_SUBST(VALIDATOR_EXTENSION_PACK) + +dnl =================================================================== +dnl Test whether to include Barcode extension +dnl =================================================================== +AC_MSG_CHECKING([for Barcode extension integration]) +if test "z$enable_ext_barcode" = "z" -o "z$enable_ext_barcode" = "zno" ; then + AC_MSG_RESULT([no]) + BARCODE_EXTENSION_PACK="" +else + AC_MSG_RESULT([yes]) + SCPDEFS="$SCPDEFS -DWITH_EXTENSION_BARCODE" + BARCODE_EXTENSION_PACK="7e7efc5d4a03126bb9ae3ae9aa2c4e87-Barcode_1.3.1.0.oxt" +fi +AC_SUBST(BARCODE_EXTENSION_PACK) + +dnl =================================================================== +dnl Test whether to include ConvertTextToNumber extension +dnl =================================================================== +AC_MSG_CHECKING([for ConvertTextToNumber extension integration]) +if test "z$enable_ext_ct2n" = "z" -o "z$enable_ext_ct2n" = "zno" ; then + AC_MSG_RESULT([no]) + CT2N_EXTENSION_PACK="" +else + AC_MSG_RESULT([yes]) + BUILD_TYPE="$BUILD_TYPE CT2N" + SCPDEFS="$SCPDEFS -DWITH_EXTENSION_CT2N" + CT2N_EXTENSION_PACK="451ccf439a36a568653b024534669971-ConvertTextToNumber_1.3.2.oxt" +fi +AC_SUBST(CT2N_EXTENSION_PACK) + +dnl =================================================================== +dnl Test whether to include Numbertext extension +dnl =================================================================== +AC_MSG_CHECKING([for Numbertext extension integration]) +if test "z$enable_ext_numbertext" = "z" -o "z$enable_ext_numbertext" = "zno" ; then + AC_MSG_RESULT([no]) + NUMBERTEXT_EXTENSION_PACK="" +else + AC_MSG_RESULT([yes]) + SCPDEFS="$SCPDEFS -DWITH_EXTENSION_NUMBERTEXT" + NUMBERTEXT_EXTENSION_PACK="b8cbca7b3363e6ca2d02bc0ba2b63904-numbertext_0.9.4.oxt" +fi +AC_SUBST(NUMBERTEXT_EXTENSION_PACK) + +dnl =================================================================== +dnl Test whether to include Hungarian Cross-reference Toolbar extension +dnl =================================================================== +AC_MSG_CHECKING([for Hungarian Cross-reference Toolbar extension integration]) +if test "z$enable_ext_hunart" = "z" -o "z$enable_ext_hunart" = "zno" ; then + AC_MSG_RESULT([no]) + HUNART_EXTENSION_PACK="" +else + AC_MSG_RESULT([yes]) + SCPDEFS="$SCPDEFS -DWITH_EXTENSION_HUNART" + HUNART_EXTENSION_PACK="b632bdd25649cc4067bcb410bae23d2b-hunart_0.3.oxt" +fi +AC_SUBST(HUNART_EXTENSION_PACK) + +dnl =================================================================== +dnl Test whether to include Typography Toolbar extension +dnl =================================================================== +AC_MSG_CHECKING([for Typography Toolbar extension integration]) +if test "z$enable_ext_typo" = "z" -o "z$enable_ext_typo" = "zno" ; then + AC_MSG_RESULT([no]) + TYPO_EXTENSION_PACK="" +else + AC_MSG_RESULT([yes]) + SCPDEFS="$SCPDEFS -DWITH_EXTENSION_TYPO" + TYPO_EXTENSION_PACK="9d60b6cfa3ef1926848710bbcd11115b-typo_0.4.2.oxt" +fi +AC_SUBST(TYPO_EXTENSION_PACK) + +dnl =================================================================== +dnl Test whether to include Google Docs extension +dnl =================================================================== +AC_MSG_CHECKING([for Google Docs extension integration]) +if test "z$enable_ext_google_docs" = "z" -o "z$enable_ext_google_docs" = "zno" ; then + AC_MSG_RESULT([no]) + GOOGLE_DOCS_EXTENSION_PACK="" +else + AC_MSG_RESULT([yes]) + SCPDEFS="$SCPDEFS -DWITH_EXTENSION_GOOGLE_DOCS" + GOOGLE_DOCS_EXTENSION_PACK="dbaafd21de055e582d92d7d32fe9da13-gdocs_2.3.1.oxt" +fi +AC_SUBST(GOOGLE_DOCS_EXTENSION_PACK) + +dnl =================================================================== +dnl Test whether to include NLPSolver extension +dnl =================================================================== +AC_MSG_CHECKING([for NLPSolver extension integration]) +if test "z$enable_ext_nlpsolver" = "z" -o "z$enable_ext_nlpsolver" = "zno" ; then + AC_MSG_RESULT([no]) +else + AC_MSG_RESULT([yes]) + BUILD_TYPE="$BUILD_TYPE NLPSOLVER" + SCPDEFS="$SCPDEFS -DWITH_EXTENSION_NLPSOLVER" +fi + +dnl =================================================================== +dnl Test whether to include LanguageTool extension +dnl =================================================================== +AC_MSG_CHECKING([for LanguageTool extension integration]) +if test "z$with_languagetool" = "z" -o "z$with_languagetool" = "zno" ; then + AC_MSG_RESULT([no]) +else + AC_MSG_RESULT([yes]) + BUILD_TYPE="$BUILD_TYPE LANGUAGETOOL" + SCPDEFS="$SCPDEFS -DWITH_EXTENSION_LANGUAGETOOL" +fi + +dnl =================================================================== +dnl Test whether to include oooblogger extension +dnl =================================================================== +AC_MSG_CHECKING([for oooblogger extension integration]) +if test "z$enable_ext_oooblogger" = "z" -o "z$enable_ext_oooblogger" = "zno" ; then + AC_MSG_RESULT([no]) + OOOBLOGGER_EXTENSION_PACK="" +else + AC_MSG_RESULT([yes]) + SCPDEFS="$SCPDEFS -DWITH_EXTENSION_OOOBLOGGER" + OOOBLOGGER_EXTENSION_PACK="b7b2d0e04e142f26dd96119c80757d1f-oooblogger_0.1.oxt" +fi +AC_SUBST(OOOBLOGGER_EXTENSION_PACK) + +dnl =================================================================== +dnl Test whether to include Sun Professional Template Pack +dnl =================================================================== +AC_MSG_CHECKING([for Sun Professional Template Pack integration (only supported languages displayed)]) +if test "z$with_sun_templates" = "z" -o "z$with_sun_templates" = "zno" ; then + SUNTEMPLATES_LANG="" + AC_MSG_RESULT([no integration]) +else + SCPDEFS="$SCPDEFS -DWITH_EXTENSION_SUN_TEMPLATE_PACK" + sun_supported_langs="en-US de it fr es hu" + if test "z$with_sun_templates" = "zyes" ; then + wanted_sun_templates="$sun_supported_langs" + else + # check whether the langs are supported by Sun + wanted_sun_templates= + for lang in $with_sun_templates ; do + if test -n "`echo $sun_supported_langs | grep "$lang"`" ; then + wanted_sun_templates="$wanted_sun_templates $lang" + fi + done + fi + SUNTEMPLATES_LANG= + SUNTEMPLATES_DE_PACK= + SUNTEMPLATES_EN_US_PACK= + SUNTEMPLATES_ES_PACK= + SUNTEMPLATES_FR_PACK= + SUNTEMPLATES_HU_PACK= + SUNTEMPLATES_IT_PACK= + # check whether the langs are requested at all + for lang in $wanted_sun_templates ; do + if test "$with_lang" = "ALL" -o -n "`echo $with_lang | grep "$lang"`" ; then + SUNTEMPLATES_LANG="$SUNTEMPLATES_LANG $lang" + case $lang in + "de") SUNTEMPLATES_DE_PACK="53ca5e56ccd4cab3693ad32c6bd13343-Sun-ODF-Template-Pack-de_1.0.0.oxt";; + "en-US") SUNTEMPLATES_EN_US_PACK="472ffb92d82cf502be039203c606643d-Sun-ODF-Template-Pack-en-US_1.0.0.oxt";; + "es") SUNTEMPLATES_ES_PACK="4ad003e7bbda5715f5f38fde1f707af2-Sun-ODF-Template-Pack-es_1.0.0.oxt";; + "fr") SUNTEMPLATES_FR_PACK="a53080dc876edcddb26eb4c3c7537469-Sun-ODF-Template-Pack-fr_1.0.0.oxt";; + "hu") SUNTEMPLATES_HU_PACK="09ec2dac030e1dcd5ef7fa1692691dc0-Sun-ODF-Template-Pack-hu_1.0.0.oxt";; + "it") SUNTEMPLATES_IT_PACK="b33775feda3bcf823cad7ac361fd49a6-Sun-ODF-Template-Pack-it_1.0.0.oxt";; + esac + fi + done + AC_MSG_RESULT([$SUNTEMPLATES_LANG]) +fi +AC_SUBST(SUNTEMPLATES_LANG) +AC_SUBST(SUNTEMPLATES_DE_PACK) +AC_SUBST(SUNTEMPLATES_EN_US_PACK) +AC_SUBST(SUNTEMPLATES_ES_PACK) +AC_SUBST(SUNTEMPLATES_FR_PACK) +AC_SUBST(SUNTEMPLATES_HU_PACK) +AC_SUBST(SUNTEMPLATES_IT_PACK) + +dnl =================================================================== +dnl Test whether to include fonts +dnl =================================================================== +AC_MSG_CHECKING([whether to include third-party fonts]) +if test "$with_fonts" != "no" ; then + AC_MSG_RESULT([yes]) + WITH_FONTS=YES + BUILD_TYPE="$BUILD_TYPE MORE_FONTS" +else + AC_MSG_RESULT([no]) + WITH_FONTS=NO + SCPDEFS="$SCPDEFS -DWITHOUT_FONTS" +fi +AC_SUBST(WITH_FONTS) + +AC_MSG_CHECKING([whether to include Agfa Monotype fonts]) +if test "$with_agfa_monotype_fonts" = "yes" ; then + AC_MSG_RESULT([yes]) + WITH_AGFA_MONOTYPE_FONTS=YES + SCPDEFS="$SCPDEFS -DWITH_AGFA_MONOTYPE_FONTS" + BUILD_TYPE="$BUILD_TYPE AGFA_MONOTYPE_FONTS" +else + AC_MSG_RESULT([no]) + WITH_AGFA_MONOTYPE_FONTS=NO +fi +AC_SUBST(WITH_AGFA_MONOTYPE_FONTS) + +dnl =================================================================== +dnl Test whether to include ppds +dnl =================================================================== +AC_MSG_CHECKING([whether to include PPDs]) +if test "$with_ppds" != "no"; then + AC_MSG_RESULT([yes]) +else + AC_MSG_RESULT([no]) + WITHOUT_PPDS=YES + SCPDEFS="$SCPDEFS -DWITHOUT_PPDS" +fi +AC_SUBST(WITHOUT_PPDS) + +dnl =================================================================== +dnl Test whether to include afms +dnl =================================================================== +AC_MSG_CHECKING([whether to include AFMs]) +if test "$with_afms" != "no"; then + AC_MSG_RESULT([yes]) + BUILD_TYPE="$BUILD_TYPE AFMS" +else + AC_MSG_RESULT([no]) + WITHOUT_AFMS=YES + SCPDEFS="$SCPDEFS -DWITHOUT_AFMS" +fi +AC_SUBST(WITHOUT_AFMS) + +dnl =================================================================== +dnl Test whether to include extra galleries +dnl =================================================================== +AC_MSG_CHECKING([whether to include extra galleries]) +if test "z$enable_extra_gallery" = "z" -o "z$enable_extra_gallery" = "zno" ; then + AC_MSG_RESULT([no]) + WITH_EXTRA_GALLERY=NO + OOOP_GALLERY_PACK="" +else + AC_MSG_RESULT([yes]) + WITH_EXTRA_GALLERY=YES + BUILD_TYPE="$BUILD_TYPE EXTRA_GALLERY" + SCPDEFS="$SCPDEFS -DWITH_EXTRA_GALLERY" + OOOP_GALLERY_PACK="af9314c5972d95a5d6da23ffad818f68-OOOP-gallery-pack-2.8.0.0.zip" +fi +AC_SUBST(WITH_EXTRA_GALLERY) +AC_SUBST(OOOP_GALLERY_PACK) + +dnl =================================================================== +dnl Test whether to include extra templates +dnl =================================================================== +AC_MSG_CHECKING([whether to include extra templates]) +if test "z$enable_extra_template" = "z" -o "z$enable_extra_template" = "zno" ; then + AC_MSG_RESULT([no]) + WITH_EXTRA_TEMPLATE=NO + OOOP_TEMPLATES_PACK="" +else + AC_MSG_RESULT([yes]) + WITH_EXTRA_TEMPLATE=YES + BUILD_TYPE="$BUILD_TYPE EXTRA_TEMPLATE" + SCPDEFS="$SCPDEFS -DWITH_EXTRA_TEMPLATE" + OOOP_TEMPLATES_PACK="1be202fbbbc13f10592a98f70a4a87fb-OOOP-templates-pack-2.9.0.0.zip" +fi +AC_SUBST(WITH_EXTRA_TEMPLATE) +AC_SUBST(OOOP_TEMPLATES_PACK) + +dnl =================================================================== +dnl Test whether to include extra samples +dnl =================================================================== +AC_MSG_CHECKING([whether to include extra samples]) +if test "z$enable_extra_sample" = "z" -o "z$enable_extra_sample" = "zno" ; then + AC_MSG_RESULT([no]) + WITH_EXTRA_SAMPLE=NO + OOOP_SAMPLES_PACK="" +else + AC_MSG_RESULT([yes]) + WITH_EXTRA_SAMPLE=YES + BUILD_TYPE="$BUILD_TYPE EXTRA_SAMPLE" + SCPDEFS="$SCPDEFS -DWITH_EXTRA_SAMPLE" + OOOP_SAMPLES_PACK="a6bccacf44914969e6e7b2f8faf4132c-OOOP-samples-pack-2.7.0.0.zip" +fi +AC_SUBST(WITH_EXTRA_SAMPLE) +AC_SUBST(OOOP_SAMPLES_PACK) + +dnl =================================================================== +dnl Test whether to include extra fonts +dnl =================================================================== +AC_MSG_CHECKING([whether to include extra fonts]) +if test "z$enable_extra_font" = "z" -o "z$enable_extra_font" = "zno" ; then + AC_MSG_RESULT([no]) + WITH_EXTRA_FONT=NO + OOOP_FONTS_PACK="" +else + AC_MSG_RESULT([yes]) + WITH_EXTRA_FONT=YES + BUILD_TYPE="$BUILD_TYPE EXTRA_FONT" + SCPDEFS="$SCPDEFS -DWITH_EXTRA_FONT" + OOOP_FONTS_PACK="a10aa597411643326e27d7fc128af12d-OOOP-fonts-pack-2.9.0.0.zip" +fi +AC_SUBST(WITH_EXTRA_FONT) +AC_SUBST(OOOP_FONTS_PACK) + +dnl =================================================================== +dnl Test whether to build global menu support +dnl =================================================================== +AC_MSG_CHECKING([whether to build global menu support]) +if test "z$enable_lomenubar" = "z" -o "z$enable_lomenubar" = "zno" ; then + AC_MSG_RESULT([no]) + ENABLE_LOMENUBAR="FALSE" +else + AC_MSG_RESULT([yes]) + ENABLE_LOMENUBAR="TRUE" +fi +AC_SUBST(ENABLE_LOMENUBAR) + +dnl =================================================================== +dnl Test whether to enable online update service +dnl =================================================================== +AC_MSG_CHECKING([whether to enable online update]) +ENABLE_ONLINE_UPDATE= +if test "z$enable_online_update" = "z" ; then + if test "$_os" = "WINNT" -o "$_os" = "Darwin" ; then + AC_MSG_RESULT([yes]) + ENABLE_ONLINE_UPDATE="TRUE" + else + AC_MSG_RESULT([no]) + fi +else + if test "z$enable_online_update" = "zyes" ; then + AC_MSG_RESULT([yes]) + ENABLE_ONLINE_UPDATE="TRUE" + else + AC_MSG_RESULT([no]) + fi +fi +AC_SUBST(ENABLE_ONLINE_UPDATE) + +dnl =================================================================== +dnl Test whether to enable ActiveX embedding +dnl =================================================================== +if test "$_os" = "WINNT"; then + AC_MSG_CHECKING([whether to enable ActiveX embedding of LibO components]) + if test "$enable_activex_component" = "yes" -o "$enable_activex_component" = "TRUE" -o "$enable_activex_component" = ""; then + ENABLE_ACTIVEX_COMPONENT="TRUE" + AC_MSG_RESULT([yes]) + SCPDEFS="$SCPDEFS -DWITH_ACTIVEX_COMPONENT" + else + ENABLE_ACTIVEX_COMPONENT="" + AC_MSG_RESULT([no]) + fi + AC_SUBST(ENABLE_ACTIVEX_COMPONENT) + AC_SUBST(SCPDEFS) +fi + +AC_MSG_CHECKING([whether and how to use Xinerama]) +if test "$_os" = "Darwin"; then + USE_XINERAMA=YES + XINERAMA_LINK=dynamic + AC_MSG_RESULT([yes]) +elif test "$_os" = "Linux" -o "$_os" = "FreeBSD"; then + if test -e "$XLIB/libXinerama.so" -a -e "$XLIB/libXinerama.a"; then + # we have both versions, let the user decide but use the dynamic one + # per default + USE_XINERAMA=YES + if test -z "$with_static_xinerama" -o -n "$with_system_libs"; then + XINERAMA_LINK=dynamic + else + XINERAMA_LINK=static + fi + elif test -e "$XLIB/libXinerama.so" -a ! -e "$XLIB/libXinerama.a"; then + # we have only the dynamic version + USE_XINERAMA=YES + XINERAMA_LINK=dynamic + elif test -e "$XLIB/libXinerama.a"; then + # static version + if echo $host_cpu | grep -E 'i[[3456]]86' 2>/dev/null >/dev/null; then + USE_XINERAMA=YES + XINERAMA_LINK=static + else + USE_XINERAMA=NO + XINERAMA_LINK=none + fi + else + # no Xinerama + USE_XINERAMA=NO + XINERAMA_LINK=none + fi + if test "$USE_XINERAMA" = "YES"; then + AC_MSG_RESULT([yes, with $XINERAMA_LINK linking]) + AC_CHECK_HEADER(X11/extensions/Xinerama.h, [], + [AC_MSG_ERROR(Xinerama header not found.)], []) + XINERAMA_EXTRA_LIBS="-L$XLIB -lXext" + if test "$_os" = "FreeBSD"; then + XINERAMA_EXTRA_LIBS="$XINERAMA_EXTRA_LIBS -lXt" + fi + if test "$_os" = "Linux"; then + XINERAMA_EXTRA_LIBS="$XINERAMA_EXTRA_LIBS -ldl" + fi + AC_CHECK_LIB(Xinerama, XineramaIsActive, [], + [AC_MSG_ERROR(Xinerama not functional?)], [$XINERAMA_EXTRA_LIBS]) + else + AC_MSG_RESULT([no, libXinerama not found or wrong architecture.]) + fi +else + USE_XINERAMA=NO + XINERAMA_LINK=none + AC_MSG_RESULT([no]) +fi +AC_SUBST(USE_XINERAMA) +AC_SUBST(XINERAMA_LINK) + +dnl =================================================================== +dnl Check for runtime JVM search path +dnl =================================================================== +if test "$SOLAR_JAVA" != ""; then + AC_MSG_CHECKING([whether to use specific JVM search path at runtime]) + if test -n "$with_jvm_path" && test "$with_jvm_path" != "no"; then + AC_MSG_RESULT([yes]) + if ! test -d "$with_jvm_path"; then + AC_MSG_ERROR(["$with_jvm_path" not a directory]) + fi + if ! test -d "$with_jvm_path"jvm; then + AC_MSG_ERROR(["$with_jvm_path"jvm not found, point with_jvm_path to \[/path/to/\]jvm]) + fi + JVM_ONE_PATH_CHECK="$with_jvm_path" + AC_SUBST(JVM_ONE_PATH_CHECK) + else + AC_MSG_RESULT([no]) + fi +fi + +dnl =================================================================== +dnl Test for the presence of Ant and that it works +dnl =================================================================== + +if test "$SOLAR_JAVA" != ""; then +ANT_HOME=; export ANT_HOME +WITH_ANT_HOME=; export WITH_ANT_HOME +if test -z "$with_ant_home"; then + AC_PATH_PROGS(ANT, [jakarta-ant ant ant.sh ant.bat ant.cmd]) +else + if test "$_os" = "WINNT"; then + with_ant_home=`cygpath -u "$with_ant_home"` + fi + AC_PATH_PROGS(ANT, [jakarta-ant ant ant.sh ant.bat ant.cmd],,$with_ant_home/bin:$PATH) + WITH_ANT_HOME=$with_ant_home + ANT_HOME=$with_ant_home +fi + +if test -z "$ANT"; then + AC_MSG_ERROR([Ant not found - Make sure it's in the path or use --with-ant-home]) +else + # resolve relative or absolute symlink + while test -h "$ANT"; do + a_cwd=`pwd` + a_basename=`basename "$ANT"` + a_script=`ls -l "$ANT" | $SED "s/.*${a_basename} -> //g"` + cd "`dirname "$ANT"`" + cd "`dirname "$a_script"`" + ANT="`pwd`"/"`basename "$a_script"`" + cd "$a_cwd" + done + + if test "$_os" = "OS2"; then + ANT_HOME=`echo $ANT | $SED -n "s/\/bin\/ant.*\$//p"` + export ANT_HOME + fi + + AC_MSG_CHECKING([if $ANT works]) +cat > conftest.java << EOF + public class conftest { + int testmethod(int a, int b) { + return a + b; + } + } +EOF + +cat > conftest.xml << EOF + <project name="conftest" default="conftest"> + <target name="conftest"> + <javac srcdir="." includes="conftest.java"> + </javac> + </target> + </project> +EOF + oldJAVA_HOME=$JAVA_HOME + if test "$JAVACISGCJ" = "yes"; then + JAVA_HOME=; export JAVA_HOME + ant_cmd="$ANT -Dbuild.compiler=gcj -buildfile conftest.xml 1>&2" + else + ant_cmd="$ANT -buildfile conftest.xml 1>&2" + fi + AC_TRY_EVAL(ant_cmd) + if test $? = 0 && test -f ./conftest.class ; then + AC_MSG_RESULT([Ant works]) + if test -z "$WITH_ANT_HOME"; then + ANT_HOME=`$ANT -diagnostics | $EGREP "ant.home :" | $SED -e "s#ant.home : ##g"` + if test -z "$ANT_HOME"; then + ANT_HOME=`echo $ANT | $SED -n "s/\/bin\/ant.*\$//p"` + fi + else + ANT_HOME="$WITH_ANT_HOME" + fi + else + echo "configure: Ant test failed" >&5 + cat conftest.java >&5 + cat conftest.xml >&5 + AC_MSG_WARN([Ant does not work - Some Java projects will not build!]) + ANT_HOME="" + echo "Ant does not work - Some Java projects will not build!" >>warn + fi + JAVA_HOME=$oldJAVA_HOME + rm -f conftest* core core.* *.core +fi +if test -z "$ANT_HOME"; then + ANT_HOME="NO_ANT_HOME" +fi +AC_SUBST(ANT_HOME) + +dnl Checking for ant.jar +if test "$ANT_HOME" != "NO_ANT_HOME"; then + AC_MSG_CHECKING([Ant lib directory]) + if test -f $ANT_HOME/lib/ant.jar; then + ANT_LIB="$ANT_HOME/lib" + else + if test -f $ANT_HOME/ant.jar; then + ANT_LIB="$ANT_HOME" + else + if test -f /usr/share/java/ant.jar; then + ANT_LIB=/usr/share/java + else + if test -f /usr/share/ant-core/lib/ant.jar; then + ANT_LIB=/usr/share/ant-core/lib + else + if test -f $ANT_HOME/lib/ant/ant.jar; then + ANT_LIB="$ANT_HOME/lib/ant" + else + AC_MSG_ERROR([Ant libraries not found!]) + fi + fi + fi + fi + fi + AC_MSG_RESULT([Ant lib directory found.]) +fi +AC_SUBST(ANT_LIB) + +ant_minver=1.6.0 +ant_minminor1=`echo $ant_minver | cut -d"." -f2` + +AC_MSG_CHECKING([whether ant is >= $ant_minver]) +ant_version=`$ANT -version | $AWK '{ print $4; }'` +ant_version_major=`echo $ant_version | cut -d. -f1` +ant_version_minor=`echo $ant_version | cut -d. -f2` +echo "configure: ant_version $ant_version " >&5 +echo "configure: ant_version_major $ant_version_major " >&5 +echo "configure: ant_version_minor $ant_version_minor " >&5 +if test "$ant_version_major" -ge "2"; then + AC_MSG_RESULT([yes, $ant_version]) +elif test "$ant_version_major" = "1" && test "$ant_version_minor" -ge "$ant_minminor1"; then + AC_MSG_RESULT([yes, $ant_version]) +else + AC_MSG_ERROR([no, you need at least ant >= $ant_minver]) +fi + +if test "$ENABLE_MEDIAWIKI" = "YES"; then +AC_MSG_CHECKING([whether ant supports mapper type="regexp"]) +rm -rf confdir +mkdir confdir +cat > conftest.java << EOF + public class conftest { + int testmethod(int a, int b) { + return a + b; + } + } +EOF + +cat > conftest.xml << EOF + <project name="conftest" default="conftest"> + <target name="conftest" depends="copytest"> + <javac srcdir="." includes="conftest.java"> + </javac> + </target> + <target name="copytest"> + <copy todir="confdir"> + <fileset dir="confdir" includes="**/*.abc" casesensitive="yes"/> + <filterset/> + <mapper type="regexp" from="^(.*[/\\])foo([/\\].*)" to="\1baa\2"/> + </copy> + </target> + </project> +EOF + if test "$JAVACISGCJ" = "yes"; then + JAVA_HOME=; export JAVA_HOME + ant_cmd="$ANT -Dbuild.compiler=gcj -buildfile conftest.xml 1>&2" + else + ant_cmd="$ANT -buildfile conftest.xml 1>&2" + fi + AC_TRY_EVAL(ant_cmd) + if test $? = 0 && test -f ./conftest.class ; then + AC_MSG_RESULT([yes]) + rm -rf confdir + else + echo "configure: Ant test failed" >&5 + cat conftest.java >&5 + cat conftest.xml >&5 + rm -rf confdir + AC_MSG_ERROR([no. Did you install ant-apache-regexp?]) + fi +fi +rm -f conftest* core core.* *.core +fi + +OOO_JUNIT_JAR= +if test "$SOLAR_JAVA" != "" && test "$with_junit" != "no"; then + AC_MSG_CHECKING([for JUnit 4]) + if test "$with_junit" = "yes"; then + if test -e /usr/share/java/junit4.jar; then + OOO_JUNIT_JAR=/usr/share/java/junit4.jar + else + OOO_JUNIT_JAR=/usr/share/java/junit.jar + fi + else + OOO_JUNIT_JAR=$with_junit + fi + if test "$_os" = "WINNT"; then + OOO_JUNIT_JAR=`cygpath -m "$OOO_JUNIT_JAR"` + fi + "$JAVA_HOME/bin/jar" tf "$OOO_JUNIT_JAR" 2>&5 | \ + grep org/junit/Before.class > /dev/null 2>&5 + if test $? -eq 0; then + AC_MSG_RESULT([$OOO_JUNIT_JAR]) + else + AC_MSG_RESULT([no]) + AC_MSG_ERROR([cannot find JUnit 4 jar; please install one in the default +location (/usr/share/java), specify its pathname via +--with-junit=..., or disable it via --without-junit]) + fi +fi +AC_SUBST(OOO_JUNIT_JAR) + +dnl =================================================================== +dnl Product version +dnl =================================================================== +AC_MSG_CHECKING([for product version]) +[eval $(sed -n -e 's/ //g' -e '/PRODUCTVERSION=/p' solenv/inc/productversion.mk)] +AC_MSG_RESULT([$PRODUCTVERSION]) +AC_SUBST(PRODUCTVERSION) + +dnl =================================================================== +dnl Dealing with l10n options +dnl =================================================================== +GIT_REPO_NAMES="artwork base calc components extensions extras filters help impress libs-core libs-extern libs-extern-sys libs-gui postprocess sdk testing ure writer" +AC_MSG_CHECKING([which languages to be built]) +# get list of all languages +# generate shell variable from completelangiso= from solenv/inc/langlist.mk +# the sed command does the following: +# + if a line ends with a backslash, append the next line to it +# + adds " on the beginning of the value (after =) +# + adds " at the end of the value +# + removes en-US; we want to put it on the beginning +# + prints just the section starting with 'completelangiso=' and ending with the " at the end of line +[eval $(sed -e :a -e '/\\$/N; s/\\\n//; ta' -n -e 's/=/="/;s/\([^\\]\)$/\1"/;s/en-US//;/^completelangiso/p' solenv/inc/langlist.mk)] +ALL_LANGS="en-US $completelangiso" +# check the configured localizations +WITH_LANG="$with_lang" +if test -z "$WITH_LANG"; then + AC_MSG_RESULT([en-US]) +else + AC_MSG_RESULT([$WITH_LANG]) + GIT_REPO_NAMES="$GIT_REPO_NAMES translations" +fi +# check that the list is valid +for lang in $WITH_LANG ; do + test "$lang" = "ALL" && continue; + test "$lang" = "kid" && continue; + # need to check for the exact string, so add space before and after the list of all languages + all_langs=" $ALL_LANGS " + test `echo "$all_langs" | sed "s|.* $lang .*|found|"` = "found" && continue; + AC_MSG_ERROR([invalid language: $lang; supported languages are: $ALL_LANGS]) +done +# list with substituted ALL +WITH_LANG_LIST=`echo $WITH_LANG | sed "s/ALL/$ALL_LANGS/"` +# this variable is used only by bin/distro-install-* helper scripts +# they need a real list of languages +test -z "$WITH_LANG_LIST" && WITH_LANG_LIST="en-US" +AC_SUBST(ALL_LANGS) +AC_SUBST(WITH_LANG) +AC_SUBST(WITH_LANG_LIST) +AC_SUBST(GIT_REPO_NAMES) + +AC_MSG_CHECKING([for another 'intro' bitmap]) +INTRO_BITMAP= +if test -z "$with_intro_bitmap" -o "$with_intro_bitmap" = "no" ; then + INTRO_BITMAP= + AC_MSG_RESULT([none]) +else + case "$with_intro_bitmap" in + *.png) INTRO_BITMAP="$with_intro_bitmap" ;; + *) AC_MSG_WARN([Intro bitmap should be a .png file!]) ;; + esac + AC_MSG_RESULT([$INTRO_BITMAP]) +fi +AC_SUBST(INTRO_BITMAP) + +AC_MSG_CHECKING([for another 'about' bitmap]) +ABOUT_BITMAP= +if test -z "$with_about_bitmap" -o "$with_about_bitmap" = "no" ; then + ABOUT_BITMAP= + AC_MSG_RESULT([none]) +else + case "$with_about_bitmap" in + *.png) ABOUT_BITMAP="$with_about_bitmap" ;; + *) AC_MSG_WARN([About bitmap should be a .png file!]) ;; + esac + AC_MSG_RESULT([$ABOUT_BITMAP]) +fi +AC_SUBST(ABOUT_BITMAP) + +OOO_VENDOR= +AC_MSG_CHECKING([for vendor]) +if test -z "$with_vendor" -o "$with_vendor" = "no" ; then + AC_MSG_RESULT([not set]) +else + OOO_VENDOR="$with_vendor" + AC_MSG_RESULT([$OOO_VENDOR]) +fi +AC_SUBST(OOO_VENDOR) + +UNIXWRAPPERNAME= +AC_MSG_CHECKING([for UNIX wrapper name]) +if test -z "$with_unix_wrapper" -o "$with_unix_wrapper" = "no" -o "$with_unix_wrapper" = "yes" ; then + AC_MSG_RESULT([not set]) +else + UNIXWRAPPERNAME="$with_unix_wrapper" + AC_MSG_RESULT([$UNIXWRAPPERNAME]) +fi +AC_SUBST(UNIXWRAPPERNAME) + +AC_MSG_CHECKING([whether to install the compat oo* wrappers]) +if test "$with_compat_oowrappers" = "yes" ; then + WITH_COMPAT_OOWRAPPERS=YES + AC_MSG_RESULT(yes) +else + WITH_COMPAT_OOWRAPPERS= + AC_MSG_RESULT(no) +fi +AC_SUBST(WITH_COMPAT_OOWRAPPERS) + +AC_MSG_CHECKING([for product name]) +PRODUCTNAME=AC_PACKAGE_NAME +AC_MSG_RESULT([$PRODUCTNAME]) +AC_SUBST(PRODUCTNAME) + +INSTALLDIRNAME=`echo AC_PACKAGE_NAME | tr [[:upper:]] [[:lower:]]` +AC_MSG_CHECKING([for install dirname]) +if test -n "$with_install_dirname" -a "$with_install_dirname" != "no" -a "$with_install_dirname" != "yes" ; then + INSTALLDIRNAME="$with_install_dirname" +fi +AC_MSG_RESULT([$INSTALLDIRNAME]) +AC_SUBST(INSTALLDIRNAME) + +AC_MSG_CHECKING([for prefix]) +PREFIXDIR="$prefix" +AC_MSG_RESULT([$PREFIXDIR]) +AC_SUBST(PREFIXDIR) + +AC_MSG_CHECKING([for libdir]) +LIBDIR=[$(eval echo $(eval echo $libdir))] +AC_MSG_RESULT([$LIBDIR]) +AC_SUBST(LIBDIR) + +AC_MSG_CHECKING([for data dir]) +DATADIR=[$(eval echo $(eval echo $datadir))] +AC_MSG_RESULT([$DATADIR]) +AC_SUBST(DATADIR) + +AC_MSG_CHECKING([for man dir]) +MANDIR=[$(eval echo $(eval echo $mandir))] +AC_MSG_RESULT([$MANDIR]) +AC_SUBST(MANDIR) + +AC_MSG_CHECKING([for doc dir]) +DOCDIR=[$(eval echo $(eval echo $docdir))] +AC_MSG_RESULT([$DOCDIR]) +AC_SUBST(DOCDIR) + +AC_MSG_CHECKING([for install dir]) +INSTALLDIR="$LIBDIR/$INSTALLDIRNAME" +AC_MSG_RESULT([$INSTALLDIR]) +AC_SUBST(INSTALLDIR) + +AC_MSG_CHECKING([whether to statically link to Gtk]) +if test -n "$enable_static_gtk" && test "$enable_static_gtk" != "no"; then + ENABLE_STATIC_GTK="TRUE" + AC_MSG_RESULT([yes]) +else + ENABLE_STATIC_GTK="FALSE" + AC_MSG_RESULT([no]) +fi +AC_SUBST(ENABLE_STATIC_GTK) + +AC_MSG_CHECKING([whether to use layout dialogs]) +if test -n "$enable_layout" && test "$enable_layout" != "no"; then + ENABLE_LAYOUT="TRUE" + AC_MSG_RESULT([yes]) +else + ENABLE_LAYOUT="FALSE" + AC_MSG_RESULT([no]) +fi +AC_SUBST(ENABLE_LAYOUT) + +# =================================================================== +# De- or increase default verbosity of build process +# =================================================================== +AC_MSG_CHECKING([build verbosity]) +if test -n "$enable_verbose"; then + if test "$enable_verbose" = "yes"; then + VERBOSE="TRUE" + AC_MSG_RESULT([high]) + fi + if test "$enable_verbose" = "no"; then + VERBOSE="FALSE" + AC_MSG_RESULT([low]) + fi +else + AC_MSG_RESULT([not set]) +fi +AC_SUBST(VERBOSE) + +dnl =================================================================== +dnl Use zenity during build +dnl =================================================================== +AC_MSG_CHECKING([whether to use zenity during build]) +if test "$enable_zenity" = "yes"; then + AC_MSG_RESULT([yes]) + AC_PATH_PROGS( ZNTY, zenity ) + if test -z "$ZNTY"; then + ENABLE_ZENITY=FALSE + else + ENABLE_ZENITY=TRUE + fi +else + ENABLE_ZENITY=FALSE + AC_MSG_RESULT([no]) +fi +AC_SUBST(ENABLE_ZENITY) + + +dnl =================================================================== +dnl Hook up LibOs nodep environmental variable to automake's equivalent +dnl --enable-dependency-tracking configure option +dnl =================================================================== +AC_MSG_CHECKING([whether to enable dependency tracking]) +if test "$enable_dependency_tracking" = "no"; then + nodep=TRUE + AC_MSG_RESULT([no]) +else + AC_MSG_RESULT([yes]) +fi +AC_SUBST(nodep) + +dnl =================================================================== +dnl Number of CPUs to use during the build +dnl =================================================================== +AC_MSG_CHECKING([for number of processors to use]) +if test "z`uname -s`" = "zDarwin" -o "z`uname -s`" = "zNetBSD" -o "z`uname -s`" = "zOpenBSD"; then + BUILD_NCPUS=`sysctl -n hw.ncpu` +else + BUILD_NCPUS=`grep $'^processor\t*:' /proc/cpuinfo | wc -l` +fi +if test "z$with_num_cpus" != "z"; then + BUILD_NCPUS=$with_num_cpus +fi +if echo "$BUILD_NCPUS" | $EGREP -q '^[[[:space:]]]*0[[[:space:]]]*$' ; then + BUILD_NCPUS=1 +fi +AC_MSG_RESULT([$BUILD_NCPUS]) +AC_SUBST(BUILD_NCPUS) + +dnl =================================================================== +dnl Number of parallel jobs to be executed by dmake +dnl =================================================================== +AC_MSG_CHECKING([for maximum of jobs per processor]) +BUILD_MAX_JOBS="1" +if test "z$with_max_jobs" != "z"; then + if test "$with_max_jobs" -gt "10"; then + AC_MSG_WARN([dmake is limited to 10 jobs, using --with-max-jobs=10 (instead of $with_max_jobs).]) + with_max_jobs="10" + fi + BUILD_MAX_JOBS="$with_max_jobs" +else + if test -n "$enable_icecream" && test "$enable_icecream" != "no" ; then + BUILD_MAX_JOBS="10" + fi +fi +AC_MSG_RESULT([$BUILD_MAX_JOBS]) +AC_SUBST(BUILD_MAX_JOBS) + +dnl =================================================================== +dnl Setting up the environment. +dnl =================================================================== +echo "setting up the build environment variables..." + +if test -z "$COMPATH"; then + AC_MSG_ERROR([No compiler found.]) +fi +AC_SUBST(COMPATH) + +AC_MSG_CHECKING([solver path]) +if test -z "$with_local_solver"; then + LOCAL_SOLVER="DEFAULT" + AC_MSG_RESULT([default]) +else + LOCAL_SOLVER=$with_local_solver + AC_MSG_RESULT([$with_local_solver]) +fi +AC_SUBST(LOCAL_SOLVER) + +AC_SUBST(BUILD_TYPE) + +# make sure config.guess is +x; we execute config.guess, so it has to be so; +chmod +x ./config.guess + +dnl Setting up the post_download check script +dnl Using autoconf here, so that the migration from the previous state +dnl (checks for the additional Windows downloads were directly in +dnl configure.in) is as easy as possible +echo "setting up the post_download check script" +autoconf post_download.in > post_download +chmod +x post_download + +# Generate a configuration timestamp we can use for deps +if test -f set_soenv; then + mv -f set_soenv set_soenv.last +else + echo > set_soenv.last +fi + +AC_OUTPUT([set_soenv Makefile bin/repo-list]) + +# touch the config timestamp file set_soenv.stamp +if test ! -f set_soenv.stamp; then + echo > set_soenv.stamp +elif diff set_soenv set_soenv.last >/dev/null 2>&1; then + echo "Configuration unchanged - avoiding scp2 stamp update" +else + echo > set_soenv.stamp +fi + +dnl Executing the set_soenv script to setup the environment variables. +chmod a+x set_soenv +if test -z "$enable_check_only"; then + './set_soenv' +else + echo + echo Test Complete + echo No environment file will be generated + echo + num_warnings=`wc -l warn` + _num=`echo $num_warnings | $AWK '{ print $1 }'` + if test $_num -gt 0; then + echo The following warning\(s\) were generated by configure + echo ---------------------------------------------------- + echo + cat warn + echo + else + echo There were no warnings + fi + echo +fi |