xref: /aoo42x/main/configure.ac (revision 27b2fc91)
1dnl /******************************************************************
2dnl *     vi:set sw=3 ts=3 et:
3dnl *
4dnl * Name: configure.in
5dnl * Auth: Willem van Dorp, Ross Nicholson, Oisin Boydell - Sun Microsystems Ireland
6dnl * Date: $Date: 2008-09-08 07:38:40 $
7dnl *
8dnl * Desc: This file serves as input for the GNU autoconf package
9dnl *       in order to create a configure script.
10dnl *       In this stage configure just checks the pre-requisites
11dnl *       necessary to build OpenOffice.org
12dnl *
13dnl *
14dnl ******************************************************************/
15AC_REVISION( $Revision: 1.290 $ )
16AC_PREREQ(2.50)
17AC_INIT()
18echo "$@" >config.parms
19AC_ARG_WITH(dmake-path,
20[  --with-dmake-path=<PATH TO EXECUTABLE>   Specify the location of dmake ],
21[  DMAKE_PATH="$withval"
22])
23AC_ARG_WITH(dmake-url,
24[  --with-dmake-url=<URL>   Specify the location of downloadable dmake source code. For example:
25                          http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2
26                          Note that dmake is under GPL license.],
27[  DMAKE_URL="$withval"
28])
29AC_ARG_WITH(gnu-patch,
30[  --with-gnu-patch        Specify location of GNU patch on Solaris or FreeBSD
31],,)
32AC_ARG_WITH(gnu-cp,
33[  --with-gnu-cp           Specify location of GNU cp on Solaris or FreeBSD
34],,)
35AC_ARG_WITH(gperf,
36[  --with-gperf           Specify location of gperf on Solaris or FreeBSD
37],,)
38AC_ARG_ENABLE(graphite,
39[  --enable-graphite       Enables the compilation of Graphite smart font rendering
40],,)
41AC_ARG_WITH(system-graphite,
42[  --with-system-graphite    use graphite library already installed on system
43],,)
44AC_ARG_ENABLE(ldap,
45[  --disable-ldap          Disables the use of LDAP backend via Netscape/Mozilla
46                          or OpenLDAP LDAP SDK
47],,)
48AC_ARG_ENABLE(fetch-external,
49[  --disable-fetch-external Disables fetching external tarballs from web sources.
50],,)
51AC_ARG_WITH(external-tar,
52[  --with-external-tar=<TARFILE PATH>   Specify path to tarfiles manually ],
53[ TARFILE_LOCATION="$withval"
54])
55AC_ARG_WITH(openldap,
56[  --with-openldap         Enables the use of the OpenLDAP LDAP SDK instead
57                          of the Netscape/Mozilla one
58],,)
59AC_ARG_ENABLE(lockdown,
60[  --enable-lockdown       Enables the gconf integration work in OOo
61],,)
62AC_ARG_ENABLE(vba,
63[  --disable-vba           disables the vba compatibility feature
64],,)
65AC_ARG_WITH(vba-package-format,
66[  --with-vba-package-format   specify package format for vba compatibility api.
67                          Specifying  "builtin" means the api component and
68                          associated type library are  part of the installation set.
69                          Specifying "extn" creates an uno extension that is
70                          part of the installation set ( located in the program
71                          directory ) that MUST be optionly registered using
72                          either the unopkg executeable or the extension manager
73                          gui.
74
75                          Note: "builtin" is the default, "extn" can cause
76                          problems.
77                          Usage: --with-vba-package-format="builtin" or
78                                 --with-vba-package-format="extn"
79],,)
80AC_ARG_ENABLE(pch,
81[  --enable-pch            EXPERIMENTAL: Enables precompiled header support for C++.
82],,)
83AC_ARG_WITH(fonts,
84[  --without-fonts         OOo includes some third-party fonts to provide a reliable
85                          basis for help content, templates, samples, etc.
86                          When these fonts are already known to be available on the
87                          system then you should use this option.
88],,)
89AC_ARG_WITH(ppds,
90[  --without-ppds          Removes Postscript Printer definition files from
91                          openoffice.org installation set, for people building
92                          for specific distributions where PPDs are known to be
93                          already available (every recent distro with CUPS
94                          backend)
95],,)
96AC_ARG_WITH(afms,
97[  --without-afms          Removes bitmap font files from openoffice.org
98                          installation set, for people building for specific
99                          distributions where AFM files or TrueType Fonts
100                          are known to be available.
101],,)
102AC_ARG_ENABLE(epm,
103[  --disable-epm           OO.o includes self-packaging code, that requires
104                          epm, however epm is useless for large scale
105                          package building.
106],,enable_epm="yes")
107AC_ARG_WITH(epm,
108[  --with-epm		  Decides which epm to use. Default is to use
109			  the one from the system if one is built. When
110			  either this is not there or you say =internal
111			  epm will be built.
112],,)
113AC_ARG_WITH(epm-url,
114[  --with-epm-url=<URL>    Specify the location of downloadable epm 3.7 source code. For example:
115                          http://ftp.easysw.com/pub/epm/3.7/epm-3.7-source.tar.gz
116                          Note that epm is under GPL license.],
117[  EPM_URL="$withval"
118])
119AC_ARG_WITH(package-format,
120[  --with-package-format   specify package format(s) for OOo installsets.
121                          Default is "normal" one of the OS/Distribution.
122
123                          Usage: --with-package-format="foo bar"
124],,)
125AC_ARG_ENABLE(odk,
126[  --disable-odk           OO.o includes an ODK, office development kit
127                          which some packagers may with to build without
128],,enable_odk="yes")
129AC_ARG_ENABLE(mathmldtd,
130[  --disable-mathmldtd     disable mathmldtd
131                          (useful for distributions that want to avoid packaging
132                          it)
133],,enable_mathmldtd="yes")
134AC_ARG_ENABLE(evolution2,
135[  --enable-evolution2     Allows the built-in evolution 2 addressbook
136                          connectivity build to be enabled.
137],,)
138AC_ARG_WITH(system-stdlibs,
139[  --with-system-stdlibs   use libstdc++/libgcc_s already on system
140],,)
141AC_ARG_ENABLE(cups,
142[  --disable-cups          disable CUPS support (for printing on UNIX)
143],,enable_cups=yes)
144AC_ARG_ENABLE(fontconfig,
145[  --disable-fontconfig    disable support for the fontconfig library
146],,enable_fontconfig=yes)
147AC_ARG_ENABLE(directx,
148[  --disable-directx       Remove DirectX implementation for the new XCanvas
149                          interface. The DirectX support requires more stuff
150                          installed on Windows to compile.
151                          (DirectX SDK, GDI+ libs)
152],,enable_directx=yes)
153AC_ARG_ENABLE(activex,
154[  --disable-activex       Disable the use of ActiveX for windows build.
155                          This switch is mandatory when using VC++ 2005/2008 Express.
156],,)
157
158AC_ARG_ENABLE(atl,
159[  --disable-atl          Disable the use of ATL for windows build.
160                          This switch is mandatory when using VC++ 2005/2008 Express.
161],,)
162
163AC_ARG_ENABLE(symbols,
164[  --enable-symbols        Include debugging symbols in output.
165                          WARNING - a complete build needs 8 Gb of space and
166                          takes much longer. (enables -g compiler flag)
167
168                          --enable-symbols=SMALL sets the gcc -g1 setting
169                          which is smaller.
170
171                          Enabling symbols disables the stripping of the solver
172                          (--disable-strip-solver).
173],,)
174AC_ARG_ENABLE(strip-solver,
175[  --disable-strip-solver  Disable the stripping of the solver.
176                          By default the solver is stripped unless a build with
177                          debugging symbols (--enable-symbols) is requested.
178
179                          This switch allows to override this setting.
180],,)
181AC_ARG_ENABLE(werror,
182[  --enable-werror         Turn warnings to errors. (Has no effect in modules
183                          where the treating of warnings as errors is disabled
184                          explicitly)
185],,)
186AC_ARG_ENABLE(debug,
187[  --enable-debug          Include debugging symbols from --enable-symbols
188                          plus extra debugging code.  Extra large build!
189                          (enables -g compiler flag and dmake debug=true)
190],,)
191AC_ARG_ENABLE(dbgutil,
192[  --enable-dbgutil        Include additional debugging utilities, such as
193                          assertions, object counting, etc. Larger build.
194                          Independent from --enable-debug
195],,)
196AC_ARG_ENABLE(crashdump,
197[  --enable-crashdump      Enable the crashdump feature code.
198],,)
199AC_ARG_ENABLE(cl-standard,
200[  --enable-cl-standard    For Microsoft C/C++ compiler users, use non-optimizing
201                          standard compiler. ( This just disables optimization
202                          options and therefore removes a lot of warnings when
203                          using the cheaper standard compiler. )
204],,)
205AC_ARG_ENABLE(gtk,
206[  --disable-gtk           Determines whether to use Gtk+ vclplug on platforms
207                          where Gtk+ is available.
208],,enable_gtk=yes)
209AC_ARG_ENABLE(gstreamer,
210[  --enable-gstreamer      Determines whether to use the GStreamer media
211                          backend on platforms where GStreamer is available.
212],,enable_gstreamer=no)
213AC_ARG_ENABLE(systray,
214[  --disable-systray       Determines whether to build the systray quickstarter.
215],,enable_systray=yes)
216AC_ARG_ENABLE(cairo,
217[  --enable-cairo          Determines whether to use Cairo library on
218                          platforms where Cairo is available.
219],,enable_cairo=no)
220AC_ARG_WITH(system-cairo,
221[  --with-system-cairo      Use Cairo libraries already on system
222],,)
223AC_ARG_ENABLE(cairo-canvas,
224[  --disable-cairo-canvas  Determines whether to build the Cairo canvas on
225                          platforms where Cairo is available.
226],,enable_cairo_canvas=yes)
227AC_ARG_ENABLE(opengl,
228[  --enable-opengl         Determines whether to build the OpenGL 3D slide
229                          transitions component
230],,enable_opengl=no)
231AC_ARG_ENABLE(dbus,
232[  --enable-dbus           Determines whether to enable presentation mode
233                          screensaver control under GNOME via DBUS
234],,enable_dbus=no)
235AC_ARG_ENABLE(gconf,
236[  --disable-gconf         Determines whether to use the GConf support
237],,enable_gconf=yes)
238AC_ARG_ENABLE(gnome-vfs,
239[  --disable-gnome-vfs     Determines whether to use the Gnome Virtual Filing
240                          System on platforms where that VFS is available
241],,enable_gnome_vfs=yes)
242AC_ARG_ENABLE(gio,
243[  --enable-gio            Determines whether to use the GIO support
244],,enable_gio=no)
245AC_ARG_ENABLE(static-gtk,
246[  --enable-static-gtk     Modules that are linked against gtk libraries use
247                          the static libraries instead of the dynamic ones.
248                          (enables -Bstatic linker flag for gtk libraries)
249],,)
250AC_ARG_ENABLE(layout,
251[  --enable-layout         Enable the compilation and use of layout dialogs
252],,)
253AC_ARG_ENABLE(mozilla,
254[  --disable-mozilla       OO.o usually includes a strangely hacked up mozilla
255                          binary for your platform, to build without this
256                          version, use this option.
257],,enable_mozilla="yes")
258AC_ARG_ENABLE(build-mozilla,
259[  --disable-build-mozilla Use this option if you do not want to build the
260                          mozilla components from the mozilla source code but
261                          take precompiled zips
262],,)
263AC_ARG_WITH(mozilla-version,
264[  --with-mozilla-version  Choose which version of mozilla to use while building
265                          mozilla. Default: 1.7.5.
266                          Note that not all versions are supported.
267],,)
268AC_ARG_WITH(mozilla-toolkit,
269[  --with-mozilla-toolkit  Choose which GUI toolkit to use while building mozilla
270                          components. Default: gtk2
271],,)
272AC_ARG_WITH(system-mozilla,
273[  --with-system-mozilla   Use mozilla already on system. Note that some
274                          components cannot be built against a contemporary
275                          mozilla. The flavour used can be specified by
276                          --with-system-mozilla=<flavour>. Supported are:
277                          libxul (default), xulrunner, firefox, seamonkey,
278                          mozilla
279], WITH_SYSTEM_MOZILLA=$withval, WITH_SYSTEM_MOZILLA=no)
280AC_ARG_ENABLE(nss_module,
281[  --disable-nss-module    Whether to use provided NSS module
282],,enable_nss_module=yes)
283AC_ARG_ENABLE(kde,
284[  --enable-kde            Determines whether to use Qt/KDE vclplug on platforms
285                          where Qt and KDE are available.
286],,)
287AC_ARG_ENABLE(kdeab,
288[  --disable-kdeab         Disable the KDE address book support
289],,if test "$enable_kde" = "yes"; then enable_kdeab=yes; fi)
290AC_ARG_ENABLE(kde4,
291[  --enable-kde4            Determines whether to use Qt4/KDE4 vclplug on platforms
292                          where Qt4 and KDE4 are available. May be used with --enable-kde
293                          if you want to support both KDE3 and KDE4.
294],,)
295AC_ARG_ENABLE(binfilter,
296[  --disable-binfilter     Disable legacy binary file formats filters
297],,if ! test -d ./binfilter; then enable_binfilter=no; fi)
298AC_ARG_ENABLE(rpath,
299[  --disable-rpath         Disable the use of relative paths in shared libraries
300],,)
301AC_ARG_ENABLE(pam,
302[  --disable-pam           Disable pam support.
303],,)
304AC_ARG_ENABLE(pam-link,
305[  --enable-pam-link       link with libpam instead of dynamically open it
306],,)
307AC_ARG_ENABLE(crypt-link,
308[  --disable-crypt-link    disable linking with libcrypt instead of dynamically
309                          open it (needed for ancient GNU/Linux distributions
310                          without crypt()/libcrypt)
311],,enable_crypt_link=yes)
312AC_ARG_ENABLE(xrender-link,
313[  --enable-xrender-link   link with libXrender instead of dynamically open it
314],,)
315AC_ARG_ENABLE(randr,
316[  --disable-randr         disable RandR support in the vcl project
317],,enable_randr=yes)
318AC_ARG_ENABLE(randr-link,
319[  --disable-randr-link    disable linking with libXrandr, instead dynamically
320                           open it at runtime
321],,enable_randr_link=yes)
322AC_ARG_WITH(system-dicts,
323[  --with-system-dicts    Use dictionaries from system paths- Specify
324                         them via --with-{dict,hyph,thes}-path=/path
325                        if you want to override the default ones
326],,)
327AC_ARG_WITH(external-dict-dir,
328[  --with-external-dict-dir Specify external dictionary dir
329],,)
330AC_ARG_WITH(external-hyph-dir,
331[  --with-external-hyph-dir Specify external hyphenation pattern dir
332],,)
333AC_ARG_WITH(external-thes-dir,
334[  --with-external-thes-dir Specify external thesaurus dir
335],,)
336AC_ARG_WITH(system-libs,
337[  --with-system-libs      Use libs already on system -- enables all
338                          --with-system-* flags except mozilla and
339                          odbc/sane/xrender-header(s)
340],,)
341AC_ARG_WITH(system-headers,
342[  --with-system-headers   Use headers already on system -- enables all
343                          --with-system-* flags for external packages
344                          whose headers are the only entities used i.e.
345                          boost/vigra/odbc/sane/xrender-header(s)
346],,)
347AC_ARG_WITH(system-jars,
348[  --without-system-jars   When building with --with-system-libs, also the
349                          needed jars are expected on the system. Use this to
350                          disable that.
351                          (except for the db case where --with-system-db
352                          *has to* imply using the db.jar from there, too)
353],,)
354AC_ARG_WITH(system-zlib,
355[  --with-system-zlib      Use zlib already on system
356],,)
357AC_ARG_WITH(system-openssl,
358[  --with-system-openssl   Use OpenSSL already on system
359],,)
360AC_ARG_WITH(system-jpeg,
361[  --with-system-jpeg      Use jpeg already on system
362],,)
363AC_ARG_WITH(system-expat,
364[  --with-system-expat     Use expat already on system
365],,)
366AC_ARG_WITH(system-libwpd,
367[  --with-system-libwpd    Use libwpd already on system
368],,)
369AC_ARG_WITH(system-libxml,
370[  --with-system-libxml    Use libxml already on system
371],,)
372AC_ARG_WITH(system-python,
373[  --with-system-python    Use python already on system
374],,)
375AC_ARG_WITH(system-icu,
376[  --with-system-icu       Use icu already on system
377],,)
378AC_ARG_WITH(system-poppler,
379[  --with-system-poppler   Use poppler already on system
380],,)
381AC_ARG_WITH(system-lucene,
382[  --with-system-lucene    Use lucene already on system
383],,)
384AC_ARG_WITH(lucene-core-jar,
385[  --with-lucene-core-jar=JARFILE   Specify path to jarfile manually ],
386[ LUCENE_CORE_JAR="$withval"
387])
388AC_ARG_WITH(lucene-analyzers-jar,
389[  --with-lucene-analyzers-jar=JARFILE   Specify path to jarfile manually ],
390[ LUCENE_ANALYZERS_JAR="$withval"
391])
392AC_ARG_ENABLE(mysql-connector,
393[  --enable-mysql-connector     enables the build of the MySQL Connector/OOo extension.
394                                This requires access to the MySQL Connector/C (aka libmysql) to be given, too, with
395                                either the --with-system-mysql or --with-libmysql-path option.
396],,)
397AC_ARG_WITH(system-mysql,
398[  --with-system-mysql          Use MySQL libraries already on system, for building the MySQL Connector/OOo extension.
399                                Requires MYSQLCONFIG to point to the mysql_config executable.
400],,)
401AC_ARG_WITH(libmysql-path,
402[  --with-libmysql-path         Use Connector/C (libmysql) installation for building the MySQL Connector/OOo extension.
403
404                                Usage: --with-libmysql-path=<absolute path to your Connector/C installation>
405],,)
406AC_ARG_WITH(system-mysql-cppconn,
407[  --with-system-mysql-cppconn  Use MySQL C++ Connector libraries already on system
408],,)
409AC_ARG_WITH(system-hsqldb,
410[  --with-system-hsqldb    Use hsqldb already on system
411],,)
412AC_ARG_WITH(hsqldb-jar,
413[  --with-hsqldb-jar=JARFILE   Specify path to jarfile manually ],
414[ HSQLDB_JAR="$withval"
415])
416AC_ARG_WITH(system-beanshell,
417[  --with-system-beanshell Use beanshell already on system (default)
418],,)
419AC_ARG_ENABLE(beanshell,
420[  --disable-beanshell     Disable the use of beanshell.
421],,)
422AC_ARG_WITH(beanshell-jar,
423[  --with-beanshell-jar=JARFILE   Specify path to jarfile manually ],
424[ BSH_JAR="$withval"
425])
426AC_ARG_ENABLE(presenter-extra-ui,
427[  --enable-presenter-extra-ui   enables extra functionality during slideshow,
428                                 e.g. selecting pen color, erasing drawings etc.
429],,enable_presenter_extra_ui=no)
430AC_ARG_ENABLE(minimizer,
431[  --enable-minimizer          enables the build of the Presentation Minimizer extension
432],,)
433AC_ARG_ENABLE(presenter-console,
434[  --enable-presenter-console          enables the build of the Presenter Console extension
435],,)
436AC_ARG_ENABLE(pdfimport,
437[  --enable-pdfimport          enables the build of the PDF Import extension
438],,)
439AC_ARG_ENABLE(wiki-publisher,
440[  --enable-wiki-publisher      enables the build of the Wiki Publisher extension
441],,)
442AC_ARG_WITH(commons-codec-jar,
443[  --with-commons-codec-jar=JARFILE   Specify path to jarfile manually ],
444[ COMMONS_CODEC_JAR="$withval"
445])
446AC_ARG_WITH(commons-lang-jar,
447[  --with-commons-lang-jar=JARFILE   Specify path to jarfile manually ],
448[ COMMONS_LANG_JAR="$withval"
449])
450AC_ARG_WITH(commons-httpclient-jar,
451[  --with-commons-httpclient-jar=JARFILE   Specify path to jarfile manually ],
452[ COMMONS_HTTPCLIENT_JAR="$withval"
453])
454AC_ARG_WITH(commons-logging-jar,
455[  --with-commons-logging-jar=JARFILE   Specify path to jarfile manually ],
456[ COMMONS_LOGGING_JAR="$withval"
457])
458AC_ARG_WITH(servlet-api-jar,
459[  --servlet-api-jar=JARFILE   Specify path to jarfile manually ],
460[ SERVLETAPI_JAR="$withval"
461])
462AC_ARG_ENABLE(report-builder,
463[  --enable-report-builder  enables the build of the Report Builder extension
464],,)
465AC_ARG_WITH(sac-jar,
466[  --with-sac-jar=JARFILE   Specify path to jarfile manually (for Report Builder extension) ],
467[ SAC_JAR="$withval"
468])
469AC_ARG_WITH(libxml-jar,
470[  --with-libxml-jar=JARFILE   Specify path to jarfile manually (for Report Builder extension) ],
471[ LIBXML_JAR="$withval"
472])
473AC_ARG_WITH(flute-jar,
474[  --with-flute-jar=JARFILE   Specify path to jarfile manually (for Report Builder extension) ],
475[ FLUTE_JAR="$withval"
476])
477AC_ARG_WITH(jfreereport-jar,
478[  --with-jfreereport-jar=JARFILE   Specify path to jarfile manually (for Report Builder extension) ],
479[ JFREEREPORT_JAR="$withval"
480])
481AC_ARG_WITH(liblayout-jar,
482[  --with-liblayout-jar=JARFILE   Specify path to jarfile manually (for Report Builder extension) ],
483[ LIBLAYOUT_JAR="$withval"
484])
485AC_ARG_WITH(libloader-jar,
486[  --with-libloader-jar=JARFILE   Specify path to jarfile manually (for Report Builder extension) ],
487[ LIBLOADER_JAR="$withval"
488])
489AC_ARG_WITH(libloader-jar,
490[  --with-libloader-jar=JARFILE   Specify path to jarfile manually (for Report Builder extension) ],
491[ LIBLOADER_JAR="$withval"
492])
493AC_ARG_WITH(libformula-jar,
494[  --with-libformula-jar=JARFILE   Specify path to jarfile manually (for Report Builder extension) ],
495[ LIBFORMULA_JAR="$withval"
496])
497AC_ARG_WITH(librepository-jar,
498[  --with-librepository-jar=JARFILE   Specify path to jarfile manually (for Report Builder extension) ],
499[ LIBREPOSITORY_JAR="$withval"
500])
501AC_ARG_WITH(libfonts-jar,
502[  --with-libfonts-jar=JARFILE   Specify path to jarfile manually (for Report Builder extension) ],
503[ LIBFONTS_JAR="$withval"
504])
505AC_ARG_WITH(libserializer-jar,
506[  --with-libserializer-jar=JARFILE   Specify path to jarfile manually (for Report Builder extension) ],
507[ LIBSERIALIZER_JAR="$withval"
508])
509AC_ARG_WITH(libbase-jar,
510[  --with-libbase-jar=JARFILE   Specify path to jarfile manually (for Report Builder extension) ],
511[ LIBBASE_JAR="$withval"
512])
513AC_ARG_WITH(system-saxon,
514[  --with-system-saxon     Use saxon already on system (default)
515],,)
516AC_ARG_ENABLE(saxon,
517[  --disable-saxon         Disable use of saxon
518],,)
519AC_ARG_WITH(saxon-jar,
520[  --with-saxon-jar=JARFILE   Specify path to jarfile manually. This implies --with-system-saxon ],
521[ SAXON_JAR="$withval"
522])
523AC_ARG_WITH(system-libxslt,
524[  --with-system-libxslt   Use libxslt already on system
525],,)
526AC_ARG_WITH(system-odbc,
527[  --with-system-odbc-headers     Use the odbc headers already on system
528],,)
529AC_ARG_WITH(system-sane,
530[  --with-system-sane-header      Use sane.h already on system
531],,)
532AC_ARG_WITH(system-xrender,
533[  --with-system-xrender-headers  Use XRender headers already on system
534],,)
535AC_ARG_WITH(system-curl,
536[  --with-system-curl      Use curl already on system
537],,)
538AC_ARG_WITH(system-boost,
539[  --with-system-boost     Use boost already on system
540],,)
541AC_ARG_WITH(system-mdds,
542[  --with-system-mdds      Use mdds already on system
543],,)
544AC_ARG_WITH(system-vigra,
545[  --with-system-vigra     Use vigra already on system
546],,)
547AC_ARG_ENABLE(Xaw,
548[  --disable-Xaw           Disables the use of Xaw for the Netscape/Mozilla
549                           plugin
550],,)
551AC_ARG_WITH(system-neon,
552[  --with-system-neon      Use neon already on system
553],,)
554AC_ARG_ENABLE(hunspell,
555[  --enable-hunspell       Determines whether to enable the Hunspell library.
556                          If enabled, the library will be built unless you
557                          specify --with-system-hunspell to use the library
558                          already present on your system.
559                          If disabled, the Spell Checking component will also
560                          be disabled.
561                          (Default: hunspell disabled)
562],,enable_hunspell=no)
563AC_ARG_WITH(system-hunspell,
564[  --with-system-hunspell  Use libhunspell already on system
565],,)
566AC_ARG_WITH(system-mythes,
567[  --with-system-mythes    Use mythes already on system
568],,)
569AC_ARG_ENABLE(hyphen,
570[  --enable-hyphen         Determines whether to enable the Hyphen library.
571                          If enabled, the library will be built unless you
572                          specify --with-system-hyphen to use the library
573                          already present on your system.
574                          If disabled, the Hyphenator component will also
575                          be disabled.
576                          (Default: hyphen disabled)
577],,enable_hyphen=no)
578AC_ARG_WITH(system-hyphen,
579[  --with-system-hyphen    Use libhypeh already on system
580],,)
581AC_ARG_WITH(system-libtextcat,
582[  --with-system-libtextcat      Use libtextcat already on system
583],,)
584AC_ARG_WITH(external-libtextcat-data,
585[  --with-system-libtextcat-data Use libtextcat data already on system
586],,)
587AC_ARG_WITH(system-cppunit,
588[  --with-system-cppunit         Use cppunit already on system
589],,)
590AC_ARG_WITH(system-redland,
591[  --with-system-redland   Use redland library already on system
592],,)
593AC_ARG_WITH(stlport,
594[  --with-stlport         The location that STLport is installed in. The STL
595                          header files are assumed to be in
596                          stlport-home/stlport and the STLPort library in
597                          stlport-home/lib.
598
599                          Usage: --with-stlport=<absolute path to stlport home>
600
601                          Warning!!, disabling using --without-stlport or
602                          enabling using --with-stlport on a platform that
603                          defaults to the opposite will break ABI compatability
604], WITH_STLPORT=$withval , WITH_STLPORT=auto)
605AC_ARG_WITH(jdk-home,
606[  --with-jdk-home         if you have installed JDK 1.3 or later on your system
607                          please supply the path here.
608                          Note that this is not the location of the Java binary
609                          but the location of the entire distribution.
610
611                          Usage: --with-jdk-home=<absolute path to JDK home>
612],,)
613AC_ARG_WITH(gxx_include_path,
614[  --with-gxx-include-path if you want to override the autodetected g++ include
615                          path.
616
617                          Usage: --with-gxx-include-path=<absolute path to g++ include dir>
618],,)
619AC_ARG_WITH(java,
620[  --with-java             Build with[[out]] Java support.  If you use
621                          --without-java/--with-java=no then the build will have
622                          no support for Java components, applets, accessibility
623                          or XML filters.
624], if test "$withval" = "yes"; then WITH_JAVA=java; else WITH_JAVA=$withval; fi, WITH_JAVA=java)
625AC_ARG_ENABLE(gcjaot,
626[  --enable-gcjaot         Build with[[out]] using Ahead of Time java compilation
627                          support to speed up buildsi by compiling the jars also
628                          to native code..
629                          --enable-gcjaot is only known to work with bytecode
630                          created with gcj or ecj
631],,)
632AC_ARG_WITH(ant-home,
633[  --with-ant-home         If you have installed Jakarta Ant on your system,
634                          please supply the path here.
635                          Note that this is not the location of the Ant binary
636                          but the location of the entire distribution.
637
638                          Usage: --with-ant-home=<absolute path to Ant home>
639],,)
640AC_ARG_WITH(junit,
641[  --with-junit            Specifies the JUnit 4 jar file to use for JUnit-based
642                          tests.  --without-junit disables those tests.  Not
643                          relevant in the --without-java case.
644
645                          Usage: --with-junit=<absolute path to JUnit 4 jar>
646],,with_junit=yes)
647AC_ARG_WITH(perl-home,
648[  --with-perl-home        If you have installed the Perl 5 Distribution, on your
649                          system, please supply the path here.
650                          Note that this is not the location of the Perl binary
651                          but the location of the entire distribution.
652
653                          Usage: --with-perl-home=<absolute path to Perl 5 home>
654],,)
655AC_ARG_WITH(cl-home,
656[  --with-cl-home          For Windows NT users, please supply the path
657                          for the Microsoft C/C++ compiler.
658                          Note that this is not the location of the compiler
659                          binary but the location of the entire distribution.
660
661                          Usage: --with-cl-home=<absolute path to Microsoft C/C++ compiler home>
662],,)
663AC_ARG_WITH(mspdb-path,
664[  --with-mspdb-path       For Microsoft C/C++ compiler users, please supply the
665                          path pointing to the mspdb71.dll (.NET 2003).
666
667                          Usage: --with-mspdb-path=<absolute path to mspdb71.dll>
668],,)
669AC_ARG_WITH(midl-path,
670[  --with-midl-path        For Microsoft C/C++ .NET compiler users, please supply
671                          the path pointing to the midl.exe.
672
673                          Usage: --with-midl-path=<absolute path to midl.exe>
674],,)
675AC_ARG_WITH(csc-path,
676[  --with-csc-path         For Microsoft C/C++ .NET compiler users, please supply
677                          the path pointing to the csc.exe.
678
679                          Usage: --with-csc-path=<absolute path to csc.exe>
680],,)
681AC_ARG_WITH(nsis-path,
682[  --with-nsis-path        For Windows users, please supply the path to the
683                          "Nullsoft Scriptable Install System" (NSIS). If NSIS
684                          is found in the path or this option is supplied a self
685                          contained executable installer for OpenOffice.org will
686                          be created.
687
688                          Usage: --with-nsis-path=<absolute path to nsis.exe>
689],,)
690AC_ARG_WITH(frame-home,
691[  --with-frame-home       For Microsoft C/C++ .NET compiler users, please supply
692                          the path pointing to lib/mscoree.lib, usually
693                          something like:
694                          "/cygdrive/c/Program Files/Microsoft Visual Studio .NET/FrameworkSDK"
695
696                          MS Visual Toolkit compiler users, please supply the
697                          path pointing to lib/msvcrt.lib, usually something
698                          like:
699                          "/cygdrive/c/Program Files/Microsoft Visual Studio .NET 2003/Vc7"
700
701                          Usage: --with-frame-home=<absolute path to Framework SDK [[home]]>
702],,)
703AC_ARG_WITH(psdk-home,
704[  --with-psdk-home        For Windows users, please supply the path to the
705                          Microsoft Platform SDK.
706
707                          Usage: --with-psdk-home=<absolute path to Microsoft Platform SDK>
708],,)
709AC_ARG_WITH(directx-home,
710[  --with-directx-home     For Windows users, please supply the path to the
711                          Microsoft DirectX SDK.
712
713                          Usage: --with-directx-home=<absolute path to Microsoft DirectX SDK>
714],,)
715AC_ARG_WITH(mozilla-build,
716[  --with-mozilla-build    For Windows users, please supply the path to the
717                          mozilla build tools.
718
719                          Usage: --with-mozilla-build=<absolute path to mozilla build tools>
720
721						  At the moment of this writing, an installer for the mozilla build tools
722						  can be obtained from http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32.
723],[MOZILLABUILD=$withval],)
724AC_ARG_WITH(local-solenv,
725[  --with-local-solenv     If you have solenv in a location other than ./solenv,
726                          please supply the path here.
727
728                          Usage: --with-local-solenv=<absolute path to solenv>
729],,)
730AC_ARG_WITH(local-solver,
731[  --with-local-solver     if you have solver in a location other than ./solver,
732                          please supply the path here.
733
734                          Usage: --with-local-solver=<absolute path to solver>
735],,)
736AC_ARG_ENABLE(javascript,
737[  --disable-javascript    Disables support for JavaScript macros.
738],,)
739AC_ARG_ENABLE(coinmp,
740[  --disable-coinmp        Do not use CoinMP as the Calc solver.
741],,)
742AC_ARG_ENABLE(check-only,
743[  --enable-check-only     Use this option option if you just want to check your
744                          environment.  This option stops the generation of an
745                          ????env.set
746
747                          Usage: --enable-check-only=yes
748],,)
749AC_ARG_ENABLE(ccache-skip,
750[[  --enable-ccache-skip    [default=auto] allow the use of --ccache-skip to
751                          escape compiler flags that would otherwise prevent
752                          caching of the result (currently used on Mac only)
753                          NOTE: requires patched version because of a bug in
754                          ccache (see issue 104567 for details and patch)
755                          explicitly enable if your version of ccache does not
756                          identify as version 2.4_OOo
757]],,enable_ccache_skip=auto)
758AC_ARG_WITH(lang,
759[  --with-lang             Use this option to build OpenOffice.org with
760                          additional language support. English (US) is always
761                          included by default. Separate multiple languages with
762                          space. For all languages, use --with-lang=ALL.
763
764                          Usage: --with-lang="es sw tu cs sk"
765],,)
766AC_ARG_WITH(poor-help-localizations,
767[  --with-poor-help-localizations
768                           Use this option to specify which languages have
769                          unusable help localizations. Separate multiple
770                          languages with space.
771
772                          Usage: --with-poor-help-localizations="af ar be-BY ca"
773],,)
774AC_ARG_WITH(dict,
775[  --with-dict             Use this option to build OpenOffice.org with
776                          dictionary support. ALL dictionaries are always
777                          included by default unless overridden with
778                          this option. Separate multiple dictionaries with
779                          commas. For all dictionaries, use --with-dict=ALL.
780
781                          Usage: --with-dict=ENGB,ENUS,ITIT
782],,)
783AC_ARG_WITH(intro-bitmaps,
784[  --with-intro-bitmaps    Prefer the specified intro bitmaps over the
785                          the default one.  Can be more than one (separated by
786                          commas), the order means priority of fallback if the
787                          first does not exist (in the installed tree).
788
789                          Usage: --with-intro-bitmaps=/path/my_ooo_intro.bmp
790],,)
791AC_ARG_WITH(about-bitmaps,
792[  --with-about-bitmaps    Similarly to --with-intro-bitmaps, this allows
793                          specification of bitmaps for the About box.
794
795                          Usage: --with-about-bitmaps=/path/my_ooo_about.bmp
796],,)
797AC_ARG_WITH(vendor,
798[  --with-vendor           Set vendor of the build.
799
800                          Usage: --with-vendor="John the Builder"
801],,)
802AC_ARG_WITH(unix-wrapper,
803[  --with-unix-wrapper    Redefines the name of the UNIX wrapper that will be used
804                          in the desktop files and in the desktop-integration RPMs.
805
806                          Usage: --with-unix-wrapper=ooffice
807],,)
808AC_ARG_WITH(asm-home,
809[  --with-asm-home         For Windows users, please supply the path for the
810                          ml.exe assembler.
811
812                          Usage: --with-asm-home=<path to ml.exe directory>
813],,)
814AC_ARG_WITH(os-version,
815[  --with-os-version       For FreeBSD users, use this option option to override
816                          the detected OSVERSION.
817
818                          Usage: --with-os-version=<OSVERSION>
819],,)
820AC_ARG_WITH(unzip-home,
821[  --with-unzip-home       Deprecated: use --with-zip-home instead],,)
822AC_ARG_WITH(zip-home,
823[  --with-zip-home         If you use a non standard zip, for example windows
824                          please supply the path for zip
825
826                          Usage: --with-zip-home=<path to zip executable>
827],,)
828AC_ARG_WITH(mingwin,
829[  --with-mingwin          For Windows users, use the mingwin32 compiler within
830                          cygwin environment
831
832                          Usage: --with-mingwin=yes
833
834                          For !Windows use, use the mingw32 C++ compiler to
835                          (re-) build unowinreg.dll. Specify the MinGW C++
836                          Compilers name.
837
838                          Usage: --with-mingwin=i586-mingw32msvc-g++
839],WITH_MINGWIN=$withval,WITH_MINGWIN=0)
840AC_ARG_WITH(build-version,
841[  --with-build-version    Allows the builder to add a custom version tag
842                          that will appear in the Help/About box for QA
843                          purposes.
844
845                          Usage: --with-build-version="Built by Jim"
846],with_build_version=$withval)
847AC_ARG_WITH(alloc,
848[  --with-alloc            Define which allocator to build with
849                          (choices are oo, system, tcmalloc, jemalloc)
850
851                          Note that on FreeBSD/NetBSD system==jemalloc
852],,)
853AC_ARG_ENABLE(verbose,
854[  --enable-verbose        Increase build verbosity.
855  --disable-verbose       Decrease build verbosity.
856],,)
857AC_ARG_ENABLE(dependency-tracking,
858[  --disable-dependency-tracking  Disables generation of dependency information.
859],,)
860AC_ARG_ENABLE(category-b,
861[  --enable-category-b     Activate components under a category B license
862                          (see http://www.apache.org/legal/3party.html#category-b):
863                          MPL (seamonkey, hunspell, hyphen, nss, saxon, rhino),
864                          CPL (silgraphite), CPL/EPL (CoinMP), SPL (beanshell).
865                          Flags for individual libraries override this one.
866],,)
867AC_ARG_WITH(arm-target,
868[  --arm-target        The minimal targeted arm processor
869                          used for the build environment.
870                          Cases :
871                            arm-target < 6 : armv4t compatibility
872                            arm-target = 6 : exact armv6 compatibility
873                    	    arm-target > 6 : armv7-a compatibility
874
875                          Usage: --with-arm-target=7
876],with_arm_target=$withval,with_arm_target=4)
877
878BUILD_TYPE="OOo"
879ADDITIONAL_REPOSITORIES="../ext_libraries"
880
881dnl ===================================================================
882dnl Message.
883dnl ===================================================================
884echo "********************************************************************"
885echo "*                                                                  *"
886echo "*   OpenOffice.org build configuration.                            *"
887echo "*                                                                  *"
888echo "*   The configure process checks your platform to see whether      *"
889echo "*   you can build OpenOffice.org on it.                            *"
890echo "*   This process checks all pre-requisites and generates a file    *"
891echo "*   containing the necessary environment variables.                *"
892echo "*   Source this file after configure has ended successfully.       *"
893echo "*                                                                  *"
894echo "*   Any warning that is generated during the configure process     *"
895echo "*   must be taken into account since it can be a reason for        *"
896echo "*   an unsuccessful build of OpenOffice.org                        *"
897echo "*                                                                  *"
898echo "********************************************************************"
899echo ""
900echo "********************************************************************"
901echo "*                                                                  *"
902echo "*   Checking the platform pre-requisites.                          *"
903echo "*                                                                  *"
904echo "********************************************************************"
905echo ""
906dnl ===================================================================
907dnl Configure pre-requisites.
908dnl ===================================================================
909cat /dev/null > warn
910
911AC_MSG_CHECKING([whether configure is up-to-date])
912if test "configure" -ot "configure.in"; then
913   AC_MSG_RESULT([no])
914   AC_MSG_ERROR([configure is not up-to-date, run autoconf first!])
915else
916   AC_MSG_RESULT([yes])
917fi
918
919AC_PROG_EGREP
920AC_PROG_AWK
921AC_PATH_PROG( AWK, $AWK)
922if test -z "$AWK"; then
923   AC_MSG_ERROR([install awk to run this script])
924fi
925
926AC_PATH_PROGS(SED, sed )
927if test -z "$SED"; then
928   AC_MSG_ERROR([install sed to run this script])
929fi
930
931AC_MSG_CHECKING([for solenv environment])
932if test -z "$with_local_solenv"; then
933   LOCAL_SOLENV="DEFAULT"
934   AC_MSG_RESULT([default])
935else
936   LOCAL_SOLENV=$with_local_solenv
937   AC_MSG_RESULT([$with_local_solenv])
938fi
939AC_SUBST(LOCAL_SOLENV)
940
941if test "$LOCAL_SOLENV" = "DEFAULT"; then
942  _solenv="./solenv"
943else
944  _solenv="$LOCAL_SOLENV"
945fi
946AC_SUBST(_solenv)
947
948if test -e $_solenv/inc/minor.mk; then
949   # Get UPD number from ./solenv/inc/minor.mk
950   UPD="`grep RSCVERSION= $_solenv/inc/minor.mk | $AWK -F"=" '{ print $2 }'`"
951   AC_SUBST(UPD)
952   SOURCEVERSION="`grep SOURCEVERSION= $_solenv/inc/minor.mk | $AWK -F"=" '{ print $2 }'`"
953   AC_SUBST(SOURCEVERSION)
954else
955   AC_MSG_ERROR([$_solenv/inc/minor.mk missing but needed for architecture/os detecion and proper environment script generation...])
956fi
957
958dnl ===================================================================
959dnl Checks for the operating system and processor.
960dnl ===================================================================
961AC_CANONICAL_SYSTEM
962if test "$build" != "$host" -o "$build" != "$target" \
963  -o "$host" != "$target"; then
964	AC_MSG_WARN([cross-compiling by any means is not supported (yet)!])
965	echo "cross-compiling by any means is not supported (yet)!" >> warn
966fi
967
968if echo "$build_os" | grep cygwin; then
969   AC_MSG_CHECKING([Cygwin version])
970   CygwinVer=`uname -r`
971   AC_MSG_RESULT([$CygwinVer])
972   if test "`echo $CygwinVer | $AWK -F . '{ print $1$2 }'`" -lt "15"; then
973      AC_MSG_ERROR([You need at least Cygwin V1.5.x])
974   fi
975else
976   CygwinVer="false"
977fi
978
979dnl ===================================================================
980dnl The following is a list of supported systems.
981dnl Sequential to keep the logic very simple
982dnl These values may be checked and reset later.
983dnl ===================================================================
984case "$build_os" in
985	solaris*)
986		test_gtk=yes
987		test_cairo=yes
988		test_kde=yes
989		test_cups=yes
990        	test_randr=yes
991		test_freetype=yes
992        	test_gstreamer=yes
993		_os=SunOS
994		AC_PATH_PROG( GNUTAR, gtar,,$PATH:/usr/sfw/bin)
995		if test -z "$GNUTAR"; then
996			AC_MSG_ERROR([gtar (gnu tar) not found but needed. Install it (SUN Freeware package).])
997		fi
998		AC_SUBST(GNUTAR)
999
1000		dnl ===========================================================
1001		dnl check whether we're using solaris 6,7,8 - sparc or intel.
1002		dnl ===========================================================
1003   		AC_MSG_CHECKING([the Solaris operating system release])
1004   		_os_release=`echo $build_os | $SED -e s/solaris2\.//`
1005		if test "$_os_release" -lt "6"; then
1006      			AC_MSG_ERROR([use solaris >= 6 to build OpenOffice.org])
1007   		else
1008      			AC_MSG_RESULT([ok ($_os_release)])
1009   		fi
1010
1011   		dnl check whether we're using a sparc or i386 processor
1012   		AC_MSG_CHECKING([the processor type])
1013   		if test "$build_cpu" = "sparc" -o "$build_cpu" = "i386"; then
1014      			AC_MSG_RESULT([ok ($build_cpu)])
1015   		else
1016      			AC_MSG_ERROR([only sparc and i386 processors are supported])
1017   		fi
1018		;;
1019	linux-gnu*|k*bsd*-gnu*)
1020		test_gtk=yes
1021		test_cairo=yes
1022		test_kde=yes
1023		test_kde4=yes
1024		test_cups=yes
1025        	test_randr=yes
1026		test_freetype=yes
1027        	test_gstreamer=yes
1028        	_os=Linux
1029		;;
1030	gnu)
1031		test_cups=no
1032		_os=GNU
1033		;;
1034	cygwin*) # Windows
1035		test_cups=no
1036		test_cairo=yes
1037		test_freetype=no
1038        	test_gstreamer=no
1039		_os=WINNT
1040		;;
1041	darwin*) # Mac OS X
1042		test_cups=yes
1043		test_gtk=yes
1044		test_cairo=yes
1045        	test_randr=no
1046		test_freetype=no
1047        	test_gstreamer=no
1048		_os=Darwin
1049      		if test "$enable_systray" = "yes" && test "$enable_gtk" != "no"; then
1050         	   AC_MSG_WARN([Disabling gtk-quickstarter - not supported on Mac. Use --disable-systray])
1051         	   echo "Disabling gtk-quickstarter - not supported on Mac. Use --disable-systray" >>warn
1052         	   enable_systray=no
1053      		fi
1054		;;
1055	os2*)
1056		test_x=no
1057		test_cups=no
1058        	test_randr=no
1059		test_gtk=no
1060		test_freetype=no
1061        	test_gstreamer=no
1062		_os=OS2
1063		;;
1064	freebsd*)
1065		test_gtk=yes
1066		test_cairo=yes
1067		test_kde=yes
1068		test_kde4=yes
1069		test_cups=yes
1070        	test_randr=yes
1071		test_freetype=yes
1072        	test_gstreamer=yes
1073		AC_MSG_CHECKING([the FreeBSD operating system release])
1074		if test -n "$with_os_version"; then
1075			OSVERSION="$with_os_version"
1076		else
1077			OSVERSION=`/sbin/sysctl -n kern.osreldate`
1078		fi
1079		AC_MSG_RESULT([found OSVERSION=$OSVERSION])
1080		AC_MSG_CHECKING([which thread library to use])
1081		if test "$OSVERSION" -lt "500016"; then
1082			PTHREAD_CFLAGS="-D_THREAD_SAFE"
1083			PTHREAD_LIBS="-pthread"
1084		elif test "$OSVERSION" -lt "502102"; then
1085			PTHREAD_CFLAGS="-D_THREAD_SAFE"
1086			PTHREAD_LIBS="-lc_r"
1087		else
1088			PTHREAD_CFLAGS=""
1089			PTHREAD_LIBS="-pthread"
1090		fi
1091		AC_MSG_RESULT([$PTHREAD_LIBS])
1092		_os=FreeBSD
1093		;;
1094	osf)
1095		test_cups=no
1096        	test_randr=no
1097		_os=OSF1
1098		;;
1099	netbsd)
1100		test_gtk=yes
1101		test_cairo=yes
1102		test_kde=yes
1103		test_kde4=yes
1104		test_cups=no
1105        	test_randr=yes
1106		test_freetype=yes
1107        	test_gstreamer=yes
1108		PTHREAD_CFLAGS="-pthread"
1109		PTHREAD_LIBS="-pthread -lpthread"
1110		_os=NetBSD
1111		;;
1112	aix*)
1113		test_cups=no
1114        	test_randr=no
1115		test_freetype=yes
1116        	test_gstreamer=yes
1117	   	PTHREAD_LIBS=-pthread
1118		echo "AIX is an alpha port --- Use at own risk" >> warn
1119		_os=AIX
1120		;;
1121   *)
1122   AC_MSG_ERROR([$_os operating system is not suitable to build OpenOffice.org!])
1123   ;;
1124esac
1125
1126AC_SUBST(OSVERSION)
1127AC_SUBST(PTHREAD_CFLAGS)
1128AC_SUBST(PTHREAD_LIBS)
1129
1130
1131dnl Ensure pkg-config is initialized before any possible use
1132PKG_PROG_PKG_CONFIG
1133
1134
1135dnl ===================================================================
1136dnl Set the ENABLE_CRASHDUMP variable.
1137dnl ===================================================================
1138AC_MSG_CHECKING([whether to enable crashdump feature])
1139if test "$enable_crashdump" = "yes"; then
1140   ENABLE_CRASHDUMP="TRUE"
1141   BUILD_TYPE="$BUILD_TYPE CRASHREP"
1142   AC_MSG_RESULT([yes])
1143else
1144   ENABLE_CRASHDUMP=""
1145   AC_MSG_RESULT([no])
1146fi
1147AC_SUBST(ENABLE_CRASHDUMP)
1148
1149if test "$_os" = "WINNT"; then
1150   BUILD_TYPE="$BUILD_TYPE TWAIN"
1151fi
1152
1153if test "$_os" = "WINNT"; then
1154   dnl ===================================================================
1155   dnl Set the VC_STANDARD variable.
1156   dnl ===================================================================
1157   AC_MSG_CHECKING([whether to use the standard non-optimizing compiler])
1158   if test "$enable_cl_standard" = "" -o "$enable_cl_standard" = "no"; then
1159      VC_STANDARD=""
1160      AC_MSG_RESULT([no])
1161   else
1162      VC_STANDARD="TRUE"
1163      AC_MSG_RESULT([yes])
1164   fi
1165   AC_SUBST(VC_STANDARD)
1166fi
1167
1168dnl ===================================================================
1169dnl Set the ENABLE_WERROR variable. (Activate --enable-werror)
1170dnl ===================================================================
1171AC_MSG_CHECKING([whether to turn warnings to errors])
1172if test -n "$enable_werror" && test "$enable_werror" != "no"; then
1173   ENABLE_WERROR="TRUE"
1174   AC_MSG_RESULT([yes])
1175   AC_MSG_WARN([Turning warnings to errors has no effect in modules or])
1176   AC_MSG_WARN([on platforms where it has been disabled explicitely])
1177   echo "Turning warnings to errors has no effect in modules or on platforms where it has been disabled explicitely" >> warn
1178else
1179   ENABLE_WERROR="FALSE"
1180   AC_MSG_RESULT([no])
1181fi
1182AC_SUBST(ENABLE_WERROR)
1183
1184dnl ===================================================================
1185dnl Set the ENABLE_DEBUG variable. (Activate --enable-symbols)
1186dnl ===================================================================
1187AC_MSG_CHECKING([whether to do a debug build])
1188if test -n "$enable_debug" && test "$enable_debug" != "no"; then
1189   ENABLE_DEBUG="TRUE"
1190   if test -z "$enable_symbols"; then
1191      enable_symbols="yes"
1192   fi
1193   AC_MSG_RESULT([yes])
1194else
1195   ENABLE_DEBUG="FALSE"
1196   AC_MSG_RESULT([no])
1197fi
1198AC_SUBST(ENABLE_DEBUG)
1199
1200dnl ===================================================================
1201dnl Set the ENABLE_DBGUTIL variable
1202dnl ===================================================================
1203AC_MSG_CHECKING([whether to build with additional debug utilities])
1204if test -n "$enable_dbgutil" && test "$enable_dbgutil" != "no"; then
1205   PROEXT=""
1206   PRODUCT=""
1207   PROFULLSWITCH=""
1208   AC_MSG_RESULT([yes])
1209else
1210   PRODUCT="full"
1211   PROFULLSWITCH="product=full"
1212   PROEXT=".pro"
1213   AC_MSG_RESULT([no, full product build])
1214fi
1215AC_SUBST(PRODUCT)
1216AC_SUBST(PROFULLSWITCH)
1217AC_SUBST(PROEXT)
1218
1219dnl ===================================================================
1220dnl First setting is whether to include symbols into final build.
1221dnl ===================================================================
1222AC_MSG_CHECKING([whether to include symbols into final build])
1223if test -n "$enable_symbols" && test "$enable_symbols" != "no"; then
1224	if test "$enable_symbols" = "yes" -o "$enable_symbols" = "TRUE"; then
1225		ENABLE_SYMBOLS="TRUE"
1226		AC_MSG_RESULT([yes])
1227	else
1228		if test "$enable_symbols" = "SMALL" -o "$enable_symbols" = "small"; then
1229			ENABLE_SYMBOLS="SMALL"
1230			AC_MSG_RESULT([yes, small ones])
1231		else if test "$enable_symbols" != "no" ; then
1232			     echo enable symbols is: $enable_symbols
1233			     AC_MSG_ERROR([--enable-symbols only accepts yes, TRUE or SMALL as parameter.])
1234           	     else
1235              		     ENABLE_SYMBOLS=
1236		     fi
1237		fi
1238	fi
1239else
1240   ENABLE_SYMBOLS=
1241   AC_MSG_RESULT([no])
1242fi
1243AC_SUBST(ENABLE_SYMBOLS)
1244
1245dnl ===================================================================
1246dnl Determine if the solver is to be stripped or not.
1247dnl ===================================================================
1248AC_MSG_CHECKING([whether to strip the solver or not.])
1249if test -n "$enable_strip_solver"; then
1250   if test "$enable_strip_solver" = "yes"; then
1251      DISABLE_STRIP=
1252   else if test "$enable_strip_solver" = "no"; then
1253           DISABLE_STRIP="TRUE"
1254        else
1255           AC_MSG_ERROR([--disable-strip-solver only accepts yes or no as parameter.])
1256        fi
1257   fi
1258else
1259   if test -n "$ENABLE_SYMBOLS"; then
1260      DISABLE_STRIP="TRUE"
1261   else
1262      DISABLE_STRIP=
1263   fi
1264fi
1265if test -z "$DISABLE_STRIP"; then
1266   AC_MSG_RESULT([yes])
1267else
1268   AC_MSG_RESULT([no])
1269fi
1270AC_SUBST(DISABLE_STRIP)
1271
1272dnl ===================================================================
1273dnl Build options
1274dnl ===================================================================
1275
1276# Disable or enable libraries seamonkey, nss, hunspell, hyphen, saxon,
1277# rhino, silgraphite, beanshell.
1278
1279# Note that further below they may be enabled or disabled again by
1280# more specific options.
1281
1282AC_MSG_CHECKING([whether to enable category B components])
1283# Category B modules (libraries):
1284#   moz (seamonkey)
1285#   nss (nss)
1286#   hunspell (hunspell)
1287#   hyphen (hyphen)
1288#   saxon (saxon)
1289#   rhino (rhino)
1290#   beanshell (beanshell)
1291#   graphite (silgraphite)
1292if test "$enable_category_b" == "yes"; then
1293#   enable_mozilla="yes"
1294#   enable_nss_module="yes"
1295   enable_hunspell="yes"
1296   enable_hyphen="yes"
1297   enable_saxon="yes"
1298   enable_javascript="yes"
1299   enable_beanshell="yes"
1300   enable_graphite="yes"
1301   enable_coinmp="yes"
1302
1303   AC_MSG_RESULT([yes: allow modules moz, nss, hunspell, hyphen, saxon, rhino, beanshell, graphite, coinmp to be built])
1304else
1305   # Disable libaries.
1306   enable_mozilla="no"
1307   enable_nss_module="no"
1308   enable_hunspell="no"
1309   enable_hyphen="no"
1310   enable_saxon="no"
1311   enable_javascript="no"
1312   enable_beanshell="no"
1313   enable_graphite="no"
1314   enable_coinmp="no"
1315
1316   AC_MSG_RESULT([no: disabled modules moz, nss, hunspell, hyphen, saxon, rhino, beanshell, graphite, coinmp])
1317fi
1318
1319# gstreamer is used only via pre-installed libraries: not a problem
1320
1321
1322AC_MSG_CHECKING([whether to enable native CUPS support])
1323if test "$test_cups" = "yes" -a \( "$enable_cups" = "yes" -o "$enable_cups" = "TRUE" \) ; then
1324   ENABLE_CUPS="TRUE"
1325   AC_MSG_RESULT([yes])
1326else
1327   ENABLE_CUPS=""
1328   AC_MSG_RESULT([no])
1329fi
1330AC_SUBST(ENABLE_CUPS)
1331
1332AC_MSG_CHECKING([whether to enable fontconfig support])
1333if test "$_os" != "WINNT" -a "$_os" != "Darwin" -a \( "$enable_fontconfig" = "yes" -o "$enable_fontconfig" = "TRUE" \); then
1334   ENABLE_FONTCONFIG="TRUE"
1335   AC_MSG_RESULT([yes])
1336else
1337   ENABLE_FONTCONFIG=""
1338   AC_MSG_RESULT([no])
1339fi
1340AC_SUBST(ENABLE_FONTCONFIG)
1341
1342dnl ===================================================================
1343dnl find external tarballs.
1344dnl ===================================================================
1345if test -z $TARFILE_LOCATION; then
1346   TARFILE_LOCATION="DEFAULT"
1347fi
1348AC_SUBST(TARFILE_LOCATION)
1349
1350if test -z "$enable_fetch_external" || test "$enable_fetch_external" = "yes" \
1351   && test -z "$with_system_libs" -a "$with_system_jars" != "no"; then
1352   DO_FETCH_TARBALLS="yes"
1353fi
1354AC_SUBST(DO_FETCH_TARBALLS)
1355
1356dnl ===================================================================
1357dnl Disable legacy binary file formats filters
1358dnl ===================================================================
1359AC_MSG_CHECKING([whether to enable filters for legacy binary file formats (StarOffice 5.2)])
1360if test "$enable_binfilter" = "no"; then
1361   WITH_BINFILTER="NO"
1362   AC_MSG_RESULT([no])
1363else
1364   WITH_BINFILTER="YES"
1365   BUILD_TYPE="$BUILD_TYPE BINFILTER"
1366   AC_MSG_RESULT([yes])
1367fi
1368AC_SUBST(WITH_BINFILTER)
1369
1370if test "$_os" = "WINNT"; then
1371   AC_MSG_CHECKING([whether to use DirectX])
1372   ENABLE_DIRECT_DRAW=""
1373   if test "$enable_directx" = "yes" -o "$enable_directx" = "TRUE" -o "$enable_directx" = ""; then
1374      ENABLE_DIRECTX="TRUE"
1375      AC_MSG_RESULT([yes])
1376   else
1377      ENABLE_DIRECTX=""
1378      AC_MSG_RESULT([no])
1379   fi
1380   AC_SUBST(ENABLE_DIRECTX)
1381
1382   AC_MSG_CHECKING([whether to use ActiveX])
1383   if test "$enable_activex" = "yes" -o "$enable_activex" = "TRUE" -o "$enable_activex" = ""; then
1384      DISABLE_ACTIVEX=""
1385      AC_MSG_RESULT([yes])
1386   else
1387      DISABLE_ACTIVEX="TRUE"
1388      AC_MSG_RESULT([no])
1389   fi
1390   AC_SUBST(DISABLE_ACTIVEX)
1391
1392   AC_MSG_CHECKING([whether to use ATL])
1393   if test "$enable_atl" = "yes" -o "$enable_atl" = "TRUE" -o "$enable_atl" = ""; then
1394      DISABLE_ATL=""
1395      AC_MSG_RESULT([yes])
1396   else
1397      DISABLE_ATL="TRUE"
1398      AC_MSG_RESULT([no])
1399   fi
1400   AC_SUBST(DISABLE_ATL)
1401
1402fi
1403
1404dnl ===================================================================
1405dnl Disable rpath in shared libraries?
1406dnl ===================================================================
1407AC_MSG_CHECKING([whether to use RPATH in shared libraries])
1408if test "$enable_rpath" = "no"; then
1409   ENABLE_RPATH="no"
1410else
1411   ENABLE_RPATH="yes"
1412fi
1413AC_MSG_RESULT([$ENABLE_RPATH])
1414AC_SUBST(ENABLE_RPATH)
1415
1416dnl Test whether to include system dictionaries
1417dnl ===================================================================
1418AC_MSG_CHECKING([whether to use dicts from external paths])
1419if test -n "$with_system_dicts" -a "$with_system_dicts" = "yes"; then
1420  AC_MSG_RESULT([yes])
1421  SYSTEM_DICTS=YES
1422  AC_MSG_CHECKING([for spelling dictionary directory])
1423  if test -n "$with_external_dict_dir"; then
1424      DICT_SYSTEM_DIR=file://$with_external_dict_dir
1425  else
1426      DICT_SYSTEM_DIR=file:///usr/share/hunspell
1427  fi
1428  AC_MSG_RESULT([$DICT_SYSTEM_DIR])
1429  AC_MSG_CHECKING([for hyphenation patterns directory])
1430  if test -n "$with_external_hyph_dir"; then
1431      HYPH_SYSTEM_DIR=file://$with_external_hyph_dir
1432  else
1433      HYPH_SYSTEM_DIR=file:///usr/share/hyphen
1434  fi
1435  AC_MSG_RESULT([$HYPH_SYSTEM_DIR])
1436  AC_MSG_CHECKING([for thesaurus directory])
1437  if test -n "$with_external_thes_dir"; then
1438      THES_SYSTEM_DIR=file://$with_external_thes_dir
1439  else
1440      THES_SYSTEM_DIR=file:///usr/share/mythes
1441  fi
1442  AC_MSG_RESULT([$THES_SYSTEM_DIR])
1443else
1444  AC_MSG_RESULT([no])
1445  SYSTEM_DICTS=NO
1446fi
1447AC_SUBST(SYSTEM_DICTS)
1448AC_SUBST(DICT_SYSTEM_DIR)
1449AC_SUBST(HYPH_SYSTEM_DIR)
1450AC_SUBST(THES_SYSTEM_DIR)
1451
1452if test $_os = "WINNT"; then
1453   AC_MSG_CHECKING([Windows build environment sanity])
1454   dnl ===================================================================
1455   dnl Sanity check! Native windows programs cannot use cygwin symlinks!
1456   dnl ===================================================================
1457   dnl As long as awk instead of $AWK is used somewhere in the sources,
1458   dnl check for $AWK and awk. $AWK is pointing to gawk in cygwin.
1459      if test -L $AWK -o -L `which awk` -o -L `which tar` -o -L `which gunzip` ; then
1460         AC_MSG_ERROR([$AWK, awk, tar or gunzip is a cygwin symlink!
1461Native windows programs cannot use cygwin symlinks. Remove the symbolic
1462link, and copy the program to the name of the link.])
1463      fi
1464   dnl ===================================================================
1465   dnl Another sanity check! More a band-aid. winenv.* adds guw.exe to
1466   dnl CC and CXX but the configure checks here assume that guw.exe
1467   dnl (if needed at all) is not yet present.
1468   dnl ===================================================================
1469   CC=`echo $CC | $SED "s/^guw.exe //"`
1470   CXX=`echo $CXX | $SED "s/^guw.exe //"`
1471   dnl ===================================================================
1472   dnl If $CC is set to a MinGW compiler, e.g. "gcc -mno-cygwin" enable
1473   dnl $WITH_MINGWIN
1474   dnl ===================================================================
1475      if test -n "$CC";then
1476         if test "`$CC -dumpmachine 2>/dev/null | $SED -e 's/^.*-//'`" = "mingw32"; then
1477            WITH_MINGWIN="yes"
1478         fi
1479      fi
1480   dnl ===================================================================
1481   if test "$WITH_MINGWIN" = "yes" ; then
1482      if test -z "$CC"; then
1483         CC="gcc -mno-cygwin"
1484         CXX="g++ -mno-cygwin"
1485      fi
1486   fi
1487   AC_MSG_RESULT([ok])
1488fi
1489AC_SUBST(WITH_MINGWIN)
1490
1491dnl ===================================================================
1492dnl Extra check for Windows. cygwin builds need gcc to build dmake
1493dnl and g++ to build guw.exe although MS cl (or MinGW) is used to
1494dnl build OOo.
1495dnl ===================================================================
1496if test "$_os" = "WINNT" ; then
1497   AC_MSG_CHECKING([for cygwin gcc/g++])
1498   if which gcc > /dev/null && which g++ > /dev/null ; then
1499      AC_MSG_RESULT([found])
1500   else
1501      AC_MSG_ERROR([cygwin gcc and g++ are needed, please install them.])
1502   fi
1503fi
1504
1505
1506dnl ===================================================================
1507dnl Check whether the bash shell can be used.
1508dnl ===================================================================
1509AC_PATH_PROG(SHELLPATH, bash)
1510if test -z "$SHELLPATH"; then
1511   AC_MSG_ERROR([bash not found in \$PATH])
1512else
1513   SHELLPATH=`echo $SHELLPATH | $SED -n "s/\/bash$//p"`
1514fi
1515AC_SUBST(SHELLPATH)
1516
1517dnl ===================================================================
1518dnl  Checks for c compiler,
1519dnl  The check for the c++ compiler is later on.
1520dnl ===================================================================
1521AC_MSG_CHECKING([gcc home])
1522if test -z "$with_gcc_home"; then
1523	GCC_HOME=`which gcc | $SED -e s,/bin/gcc,,`
1524else
1525	GCC_HOME="$with_gcc_home"
1526fi
1527AC_MSG_RESULT($GCC_HOME)
1528AC_SUBST(GCC_HOME)
1529
1530save_CC=$CC
1531save_CXX=$CXX
1532
1533if test -n "$with_gcc_home"; then
1534   if test -z "$CC"; then
1535      CC="$with_gcc_home/bin/gcc"
1536   fi
1537fi
1538
1539dnl The following checks for gcc, cc and then cl (if it weren't guarded for win32)
1540if test "$_os" != "WINNT" -o "$WITH_MINGWIN" = "yes"; then
1541   AC_PROG_CC
1542fi
1543
1544COMPATH=`dirname "$CC"`
1545if test "$COMPATH" = "." ; then
1546    AC_PATH_PROGS(COMPATH, $CC)
1547    dnl double square bracket to get single because of M4 quote...
1548    COMPATH=`echo $COMPATH | $SED "s@/[[^/:]]*\\\$@@"`;
1549fi
1550COMPATH=`echo $COMPATH | $SED "s@/[[Bb]][[Ii]][[Nn]]\\\$@@"`;
1551
1552dnl ===================================================================
1553dnl  Test the gcc version,  3 is OK
1554dnl ===================================================================
1555GCCVER=20995
1556if test \( "$_os" != "WINNT" -o "$WITH_MINGWIN" = "yes" \) -a "$GCC" = "yes"; then
1557    AC_MSG_CHECKING([the GNU gcc compiler version])
1558   _gcc_version=`$CC -dumpversion`
1559   _gcc_major=`echo $_gcc_version | $AWK -F. '{ print \$1 }'`
1560   GCCVER=`echo $_gcc_version | $AWK -F. '{ print \$1*10000+\$2*100+\$3 }'`
1561
1562   if test "$_gcc_major" -lt "3"; then
1563      AC_MSG_ERROR([found version "$_gcc_version", use version 3+ of the gcc compiler])
1564   else
1565      if test "$GCCVER" -eq "030203"; then
1566	    if test "$ENABLE_SYMBOLS" = "SMALL"; then
1567           AC_MSG_ERROR([version "$_gcc_version" gives internal error with small.])
1568	    fi
1569      fi
1570   fi
1571   if test "$_os" = "Darwin" -a "$GCCVER" -ge "040100" ; then
1572      if test -z "$save_CC" -a -x "$GCC_HOME/bin/gcc-4.0" ; then
1573         export CC=$GCC_HOME/bin/gcc-4.0
1574          dnl  export CC to have it available in set_soenv -> config.guess
1575         GCCVER2=`"$CC" -dumpversion | $AWK -F. '{ print \$1*10000+\$2*100+\$3 }'`
1576         if test "$GCCVER2" -ge "040000" -a "$GCCVER2" -lt "040100" ; then
1577            GCCVER=$GCCVER2
1578         fi
1579      fi
1580      if test "$GCCVER" -ge "040100" ; then
1581         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])
1582      else
1583         AC_MSG_RESULT([implicitly using CC=$CC])
1584      fi
1585   else
1586      AC_MSG_RESULT([checked (gcc $_gcc_version)])
1587   fi
1588   if test "$_os" = "SunOS"; then
1589      AC_MSG_CHECKING([gcc linker])
1590      if $CC -Wl,--version 2>&1 |head -n 1| grep -v GNU > /dev/null;then
1591          AC_MSG_ERROR([failed (not GNU ld). Use GNU ld instead of Sun ld on Solaris])
1592      fi
1593      AC_MSG_RESULT([ok (GNU ld)])
1594   fi
1595fi
1596AC_SUBST(GCCVER)
1597
1598HAVE_LD_BSYMBOLIC_FUNCTIONS=
1599if test "$GCC" = "yes"; then
1600   AC_MSG_CHECKING( for -Bsymbolic-functions linker support )
1601   bsymbolic_functions_ldflags_save=$LDFLAGS
1602   LDFLAGS="$LDFLAGS -Wl,-Bsymbolic-functions -Wl,--dynamic-list-cpp-new -Wl,--dynamic-list-cpp-typeinfo"
1603   AC_LINK_IFELSE([AC_LANG_PROGRAM([
1604   #include <stdio.h>
1605   ],[
1606    printf ("hello world\n");
1607   ])], HAVE_LD_BSYMBOLIC_FUNCTIONS=TRUE, [])
1608   if test "z$HAVE_LD_BSYMBOLIC_FUNCTIONS" = "zTRUE"; then
1609     AC_MSG_RESULT( found )
1610   else
1611     AC_MSG_RESULT( not found )
1612   fi
1613   LDFLAGS=$bsymbolic_functions_ldflags_save
1614fi
1615AC_SUBST(HAVE_LD_BSYMBOLIC_FUNCTIONS)
1616
1617dnl ===================================================================
1618dnl Set the ENABLE_PCH variable. (Activate --enable-pch)
1619dnl ===================================================================
1620AC_MSG_CHECKING([whether to enable pch feature])
1621if test -n "$enable_pch" && test "$enable_pch" != "no"; then
1622   if test "$_os" = "WINNT" -a "$WITH_MINGWIN" != "yes"; then
1623	   ENABLE_PCH="TRUE"
1624	   AC_MSG_RESULT([yes])
1625dnl There is no PCH support in GCC versions prior to this
1626   elif test "$GCC" = "yes" -a "$GCCVER" -gt "030400"; then
1627	   ENABLE_PCH="TRUE"
1628	   AC_MSG_RESULT([yes])
1629   else
1630	   ENABLE_PCH=""
1631	   AC_MSG_WARN([Precompiled header not yet supported for your platform/compiler])
1632   fi
1633else
1634   ENABLE_PCH=""
1635   AC_MSG_RESULT([no])
1636fi
1637AC_SUBST(ENABLE_PCH)
1638
1639dnl ===================================================================
1640dnl Search all the common names for GNU make
1641dnl ===================================================================
1642AC_MSG_CHECKING([for GNU make])
1643for a in "$MAKE" $GNUMAKE make gmake gnumake; do
1644      $a --version 2> /dev/null | grep GNU  2>&1 > /dev/null
1645      if test $? -eq 0;  then
1646           GNUMAKE=$a
1647           break
1648      fi
1649done
1650AC_MSG_RESULT($GNUMAKE)
1651if test -z "$GNUMAKE"; then
1652    AC_MSG_ERROR([not found. install GNU make.])
1653fi
1654
1655AC_MSG_CHECKING([the GNU make version])
1656_make_version=`$GNUMAKE --version | grep GNU | $SED -e 's@^[[^0-9]]*@@' -e 's@ .*@@' -e 's@,.*@@'`;
1657_make_longver=`echo $_make_version | $AWK -F. '{ print \$1*10000+\$2*100+\$3 }'`
1658if test "$_make_longver" -ge "038100" ; then
1659   AC_MSG_RESULT([$GNUMAKE $_make_version])
1660else
1661   AC_MSG_ERROR([failed ($GNUMAKE version >= 3.81 needed])
1662fi
1663AC_SUBST(GNUMAKE)
1664
1665dnl ===================================================================
1666dnl Search for a pre-installed dmake
1667dnl ===================================================================
1668AC_MSG_CHECKING([for dmake])
1669AC_PATH_PROG(DMAKE, dmake, no)
1670IS_SYSTEM_DMAKE=NO
1671if test "$DMAKE" != "no"; then
1672   AC_MSG_RESULT([using system dmake])
1673   DMAKE_PATH="$DMAKE"
1674   IS_SYSTEM_DMAKE=YES
1675elif test -n "$with_dmake_path" ; then
1676   # Did not find pre-installed dmake.
1677   # Is it at a nonstandard location provided by --with-dmake-path ?
1678   AC_MSG_NOTICE([looking for dmake at $DMAKE_PATH])
1679   if test -x "$with_dmake_path" ; then
1680      AC_MSG_RESULT([using user provided dmake])
1681      DMAKE=$with_dmake_path
1682   fi
1683fi
1684
1685DMAKE_URL=
1686if test "$DMAKE" = "no"; then
1687    AC_MSG_NOTICE([no system or user-provided dmake found])
1688    # Check if a URL was supplied from which we can download the source and compile it.
1689    if test -n "$with_dmake_url" ; then
1690       # At this moment we can not verify the URL or the content that we want to download.
1691       # Neither can we apply the test below for ruling out that it is the SunStudio dmake.
1692       DMAKE_URL=$with_dmake_url
1693       AC_MSG_RESULT([dmake will be downloaded and compiled in bootstrap])
1694       DMAKE=
1695    else
1696       AC_MSG_ERROR([no URL for dmake source code specified, either.])
1697       BUILD_DMAKE=YES
1698    fi
1699else
1700    AC_MSG_CHECKING([whether the found dmake is the right dmake])
1701    # we need to find out whether that dmake we found is "our" dmake
1702    # or the dmake from Sun's SunStudio Compiler which is something
1703    # different
1704    # This test _should_ work because the one accepts -V (ours) and one
1705    # (the other) not...
1706    $DMAKE -V 2>/dev/null | grep 'dmake .* Version .*' >/dev/null
1707    if test $? -eq 0; then
1708       BUILD_DMAKE=NO
1709       AC_MSG_RESULT([yes])
1710       AC_MSG_CHECKING([the dmake version])
1711       DMAKE_VERSION=`$DMAKE -V | $AWK '$3 == "Version" {print $4}'`
1712       if test "`echo $DMAKE_VERSION | cut -d'.' -f1`" -gt "4"; then
1713          AC_MSG_RESULT([OK, >= 4.11])
1714       elif test "`echo $DMAKE_VERSION | cut -d'.' -f1`" = "4" && \
1715	        test "`echo $DMAKE_VERSION | cut -d'.' -f2`" -ge "11"; then
1716          AC_MSG_RESULT([OK, >= 4.11])
1717       else
1718          AC_MSG_ERROR([too old. >= 4.11 is needed])
1719          DMAKE=no
1720       fi
1721    else
1722       AC_MSG_WARN([no])
1723       DMAKE=no
1724    fi
1725fi
1726if test "$DMAKE" = "no"; then
1727   AC_MSG_ERROR([please use --with-dmake-path or --with-dmake-url to specify dmake executable or source])
1728fi
1729AC_SUBST(DMAKE_URL)
1730AC_SUBST(DMAKE_PATH)
1731AC_SUBST(IS_SYSTEM_DMAKE)
1732
1733
1734dnl ===================================================================
1735dnl Search all the common names for GNU or BSD tar
1736dnl ===================================================================
1737AC_MSG_CHECKING([for GNU or BSD compatible tar])
1738for a in $GNUTAR gtar gnutar bsdtar tar; do
1739      $a --version 2> /dev/null | egrep "GNU|libarchive"  2>&1 > /dev/null
1740      if test $? -eq 0;  then
1741           GNUTAR=$a
1742           break
1743      fi
1744done
1745AC_MSG_RESULT($GNUTAR)
1746if test -z "$GNUTAR"; then
1747    AC_MSG_ERROR([not found. install GNU tar.])
1748fi
1749
1750AC_SUBST(GNUTAR)
1751
1752dnl ===================================================================
1753dnl  Test the solaris compiler version
1754dnl ===================================================================
1755if test "$_os" = "SunOS"; then
1756   if test "$CC" = "cc"; then
1757      AC_PATH_PROGS(_cc, cc)
1758      COMPATH=`echo $_cc | $SED -n "s/\/bin\/cc//p"`
1759      AC_MSG_CHECKING([the SunStudio C/C++ compiler version])
1760      dnl cc -V outputs to standard error!!!!
1761      _sunstudio_string=`$CC -V 2>&1 | grep '^cc' | sed -e 's/.* C //'`
1762      _sunstudio_version=`echo $_sunstudio_string | $AWK '{ print $1 }'`
1763      _sunstudio_major=`echo $_sunstudio_version | $AWK -F. '{ print $1 }'`
1764      if test "$_sunstudio_major" != "5"; then
1765         AC_MSG_ERROR([found version "$_sunstudio_version", use version 5.5, 5.7, 5.8 or 5.9 of the SunStudio C/C++ compiler])
1766      else
1767         _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" }'`
1768         if test "$_sunstudio_minor" = "false"; then
1769            AC_MSG_ERROR([found version "$_sunstudio_version", use version 5.5, 5.7, 5.8 or 5.9 of the SunStudio C/C++ compiler])
1770         else
1771            dnl compiler will do
1772            AC_MSG_RESULT([checked])
1773         fi
1774      fi
1775   fi
1776fi
1777
1778if test "$GCC" = "yes"; then
1779   AC_MSG_CHECKING( for --hash-style=both linker support )
1780   hash_style_ldflags_save=$LDFLAGS
1781   LDFLAGS="$LDFLAGS -Wl,--hash-style=both"
1782   AC_LINK_IFELSE([AC_LANG_PROGRAM([
1783   #include <stdio.h>
1784   ],[
1785    printf ("hello world\n");
1786   ])], HAVE_LD_HASH_STYLE=TRUE, HAVE_LD_HASH_STYLE=FALSE)
1787   if test "z$HAVE_LD_HASH_STYLE" = "zTRUE"; then
1788     AC_MSG_RESULT( found )
1789   else
1790     AC_MSG_RESULT( not found )
1791   fi
1792   LDFLAGS=$hash_style_ldflags_save
1793fi
1794AC_SUBST(HAVE_LD_HASH_STYLE)
1795
1796dnl ===================================================================
1797dnl  Test the Compaq compiler for OSF1
1798dnl ===================================================================
1799if test "$_os" = "OSF1"; then
1800   if test "$CC" = "cc"; then
1801      AC_PATH_PROGS(_cc, cc)
1802      COMPATH=`echo $_cc | $SED -n "s/\/bin\/cc//p"`
1803      AC_MSG_WARN([******* $_cc , $COMPATH])
1804      AC_MSG_CHECKING([the Compaq C compiler version])
1805      dnl cc -V outputs to standard error!!!!
1806      _compaqc_version=`$CC -V 2>&1 | $AWK '{ print $3 }'`
1807      _compaqc_major=`echo $_compaqc_version | $AWK -F. '{ print $1 }'`
1808      if test "$_compaqc_major" != "T6"; then
1809         AC_MSG_ERROR([found version "$_compaqc_version", use version 6 of the Compaq C compiler])
1810      else
1811         dnl compiler will do
1812         AC_MSG_RESULT([checked])
1813      fi
1814   fi
1815fi
1816
1817dnl ===================================================================
1818dnl Check whether there's a Perl version available.
1819dnl ===================================================================
1820if test -z "$with_perl_home"; then
1821   AC_PATH_PROG(PERL, perl)
1822else
1823   if test "$_os" = "WINNT"; then
1824      with_perl_home=`cygpath -u "$with_perl_home"`
1825   fi
1826   _perl_path="$with_perl_home/bin/perl"
1827   if test -x "$_perl_path"; then
1828      PERL=$_perl_path
1829   else
1830      AC_MSG_ERROR([$_perl_path not found])
1831   fi
1832fi
1833
1834dnl ===================================================================
1835dnl Testing for Perl version 5 or greater.
1836dnl $] is the perl version variable, it is returned as an integer
1837dnl ===================================================================
1838if test "$PERL"; then
1839   AC_MSG_CHECKING([the Perl version])
1840   ${PERL} -e "exit($]);"
1841   _perl_version=$?
1842   if test "$_perl_version" -lt 5; then
1843      AC_MSG_ERROR([found Perl version "$_perl_version", use version 5 of Perl])
1844   fi
1845   AC_MSG_RESULT([checked (perl $_perl_version)])
1846else
1847   AC_MSG_ERROR([Perl not found, install version 5 of Perl])
1848fi
1849AC_SUBST(PERL)
1850
1851dnl ===================================================================
1852dnl Testing for required Perl modules
1853dnl ===================================================================
1854AC_MSG_CHECKING([for required Perl modules])
1855if `$PERL -e 'use Archive::Zip;'`; then
1856	AC_MSG_RESULT([all modules found])
1857else
1858	AC_MSG_ERROR([Failed to find some modules])
1859fi
1860
1861dnl ===================================================================
1862dnl  Check which Microsoft C/C++ or MinGW compiler is used for WINNT
1863dnl ===================================================================
1864if test "$_os" = "WINNT"; then
1865	if test "$WITH_MINGWIN" != "yes"; then
1866		AC_MSG_CHECKING([for friendly registry keys])
1867		# VS.Net 2003, VS.Net 2005
1868		if test -z "$with_cl_home"; then
1869			vctest=`./oowintool --msvc-productdir`;
1870			if test -x "$vctest/bin/cl.exe"; then
1871				with_cl_home=$vctest;
1872			fi
1873		else
1874			with_cl_home=`cygpath -u "$with_cl_home"`
1875		fi
1876		AC_MSG_RESULT([done])
1877
1878		dnl ===========================================================
1879		dnl  Check for mspdb71.dll/mspdb80.dll
1880		dnl ===========================================================
1881		dnl  .NET 2003/5/8 Compiler
1882		if test -n "$with_mspdb_path";then
1883			with_mspdb_path=`cygpath -u "$with_mspdb_path"`
1884		fi
1885		if test -e "$with_mspdb_path/mspdb71.dll" -o -e "$with_mspdb_path/mspdb80.dll"; then
1886			MSPDB_PATH="$with_mspdb_path"
1887		fi
1888		dnl .NET 2003 case
1889		if test -z "$MSPDB_PATH" -a -e "$with_cl_home/../Common7/IDE/mspdb71.dll"; then
1890			MSPDB_PATH="$with_cl_home/../Common7/IDE"
1891		fi
1892		dnl .NET 2005/2008 case
1893		if test -z "$MSPDB_PATH" -a -e "$with_cl_home/../Common7/IDE/mspdb80.dll"; then
1894			MSPDB_PATH="$with_cl_home/../Common7/IDE"
1895		fi
1896		dnl Windows SDK 6.0 case
1897		if test -z "$MSPDB_PATH" -a -e "$with_cl_home/bin/mspdb80.dll"; then
1898			MSPDB_PATH="$with_cl_home/bin"
1899		fi
1900
1901		if test -z "$MSPDB_PATH";then
1902			dnl AC_PATH_PROG only checks if MSPDB_PATH is still empty
1903			AC_PATH_PROG(MSPDB_PATH, mspdb80.dll)
1904			AC_PATH_PROG(MSPDB_PATH, mspdb71.dll)
1905			MSPDB_PATH=`dirname "$MSPDB_PATH"`
1906		fi
1907
1908		if test -z "$MSPDB_PATH"; then
1909			AC_MSG_ERROR([You need a mspdb71.dll/mspdb80.dll, make sure it's in the path or use --with-mspdb-path])
1910		fi
1911		MSPDB_PATH=`cygpath -d "$MSPDB_PATH"`
1912		MSPDB_PATH=`cygpath -u "$MSPDB_PATH"`
1913		dnl The path needs to be added before cl is called
1914		PATH="$MSPDB_PATH:$PATH"
1915
1916		AC_MSG_CHECKING([the Microsoft C/C++ Compiler])
1917   		if test -x "$with_cl_home/bin/cl.exe"; then
1918   			CC="$with_cl_home/bin/cl.exe"
1919   		else
1920   			AC_PATH_PROG(CC, cl.exe)
1921   		fi
1922  		if test -e "$CC"; then
1923			# This gives us a posix path with 8.3 filename restrictions
1924			CC=`cygpath -d "$CC"`
1925			CC=`cygpath -u "$CC"`
1926			# Remove /cl.exe from CC case insensitive
1927			AC_MSG_RESULT([found ($CC)])
1928			COMPATH=`echo $CC | $SED 's@\/[[Bb]][[Ii]][[Nn]]\/[[cC]][[lL]]\.[[eE]][[xX]][[eE]]@@'`
1929			export INCLUDE=`cygpath -d "$COMPATH/Include"`
1930			dnl  Check which Microsoft C/C++ compiler is found
1931			AC_MSG_CHECKING([the Version of Microsoft C/C++ Compiler])
1932dnl      The following find microsoft, matches nn.nn.nnnn then pulls numbers out.
1933			CCNUMVER=`$CC 2>&1 | $AWK "/Microsoft/ && /..\\...\\...../ {
1934							x = match( \\\$0, /..\\...\\...../ )
1935							CCversion = substr( \\\$0, RSTART, RLENGTH)
1936							tokencount = split (CCversion,vertoken,\".\")
1937							for ( i = 1 ; i <= tokencount ; i++ ) {
1938								printf (\"%04d\",vertoken[[i]] )
1939							}
1940							}"`
1941			AC_MSG_RESULT([found Compiler version $CCNUMVER.])
1942			if test "$CCNUMVER" -ge "001500000000"; then
1943				COMEX=12
1944				MSVSVER=2008
1945				AC_MSG_RESULT([found .NET 2008 / VS 9.0.])
1946			elif test "$CCNUMVER" -ge "001400000000"; then
1947				COMEX=11
1948				MSVSVER=2005
1949				AC_MSG_RESULT([found .NET 2005.])
1950			elif test "$CCNUMVER" -ge "001300102240"; then
1951				COMEX=10
1952				MSVSVER=2003
1953				AC_MSG_RESULT([found .NET 2003.])
1954			else
1955				AC_MSG_ERROR([Compiler too old. Use Microsoft C/C++ .NET 2003/2005 compiler.])
1956			fi
1957		else
1958			AC_MSG_ERROR([Microsoft C/C++ Compiler not found. Use --with-cl-home or set path to cl.exe.])
1959		fi
1960	else
1961		AC_MSG_CHECKING([the Mingwin32 C++ Compiler])
1962		if test `$CC -dumpmachine | $SED -e 's/^.*-//'` = "mingw32"; then
1963			AC_MSG_RESULT([found.])
1964			if $CC -dumpspecs | grep -q "mno-cygwin"; then
1965				USE_MINGW="cygwin"
1966			else
1967				USE_MINGW="pure-mingw"
1968			fi
1969		else
1970			AC_MSG_ERROR([Mingwin32 C++ Compiler not found.])
1971		fi
1972	fi
1973fi
1974AC_SUBST(COMEX)
1975AC_SUBST(MSPDB_PATH)
1976AC_SUBST(USE_MINGW)
1977
1978dnl ===================================================================
1979dnl  .NET needs special treatment
1980dnl ===================================================================
1981if test "$_os" = "WINNT"; then
1982if test "$WITH_MINGWIN" = "yes" || test "$COMEX" -ge "10"; then
1983	dnl Check midl.exe
1984	AC_PATH_PROG(MIDL_PATH, midl.exe)
1985	if test -n "$MIDL_PATH";then
1986		MIDL_PATH=`dirname "$MIDL_PATH"`
1987	fi
1988	if test -n "$with_midl_path";then
1989		with_midl_path=`cygpath -u "$with_midl_path"`
1990	fi
1991	if test -x "$with_midl_path/midl.exe"; then
1992		MIDL_PATH="$with_midl_path"
1993	fi
1994	if test -z "$MIDL_PATH" -a -e "$with_cl_home/../Common7/Tools/Bin/midl.exe"; then
1995		MIDL_PATH="$with_cl_home/../Common7/Tools/Bin"
1996	fi
1997	if test -z "$MIDL_PATH" ; then
1998      vstest=`./oowintool --msvs-productdir`;
1999      if test -x "$vstest/Common7/Tools/Bin/midl.exe" ; then
2000		  MIDL_PATH="$vstest/Common7/Tools/Bin"
2001      fi
2002	fi
2003	if test -z "$MIDL_PATH" ; then
2004		psdktest=`./oowintool --psdk-home`
2005		if test -x "$psdktest/Bin/midl.exe" ; then
2006			MIDL_PATH="$psdktest/Bin"
2007		fi
2008	fi
2009	if test ! -x "$MIDL_PATH/midl.exe"; then
2010		AC_MSG_ERROR([midl.exe not found. Make sure it's in the path or use --with-midl-path])
2011	fi
2012	# Convert to posix path with 8.3 filename restrictions ( No spaces )
2013	MIDL_PATH=`cygpath -d "$MIDL_PATH"`
2014	MIDL_PATH=`cygpath -u "$MIDL_PATH"`
2015
2016	dnl Check csc.exe
2017	AC_PATH_PROG(CSC_PATH, csc.exe)
2018	if test -n "$CSC_PATH";then
2019		CSC_PATH=`dirname "$CSC_PATH"`
2020	fi
2021	if test -n "$with_csc_path";then
2022		with_csc_path=`cygpath -u "$with_csc_path"`
2023	fi
2024	if test -x "$with_csc_path/csc.exe"; then
2025		CSC_PATH="$with_csc_path"
2026	else
2027	   csctest=`./oowintool --csc-compilerdir`;
2028	   if test -x "$csctest/csc.exe"; then
2029	      CSC_PATH="$csctest"
2030	   fi
2031	fi
2032	if test ! -x "$CSC_PATH/csc.exe"; then
2033		AC_MSG_ERROR([csc.exe not found. Make sure it's in the path or use --with-csc-path])
2034	fi
2035	# Convert to posix path with 8.3 filename restrictions ( No spaces )
2036	CSC_PATH=`cygpath -d "$CSC_PATH"`
2037	CSC_PATH=`cygpath -u "$CSC_PATH"`
2038
2039    dnl Check mscoree.lib / .NET Frameworks dir
2040    dnl For VS2003/2005 $with_frame_home has to point to the directory with lib/mscoree.lib.
2041       AC_MSG_CHECKING(.NET Framework)
2042	    if test -n "$with_frame_home"; then
2043		with_frame_home=`cygpath -u "$with_frame_home"`
2044	    fi
2045	    if test -f "$with_frame_home/lib/mscoree.lib"; then
2046		    FRAME_HOME="$with_frame_home"
2047	    fi
2048	    if test -z "$FRAME_HOME" -a -e "$with_cl_home/../SDK/v1.1/lib/mscoree.lib"; then
2049		    FRAME_HOME="$with_cl_home/../SDK/v1.1"
2050	    fi
2051	    if test -z "$FRAME_HOME" ; then
2052          frametest=`./oowintool --dotnetsdk-dir`
2053          if test -f "$frametest/lib/mscoree.lib"; then
2054             FRAME_HOME="$frametest"
2055          else
2056             frametest=`./oowintool --psdk-home`
2057             if test -f "$frametest/lib/mscoree.lib"; then
2058                FRAME_HOME="$frametest"
2059             fi
2060          fi
2061	    fi
2062	    if test ! -f "$FRAME_HOME/lib/mscoree.lib"; then
2063		AC_MSG_ERROR([mscoree.lib (.NET Framework) not found. Make sure you use --with-frame-home])
2064	    fi
2065	    AC_MSG_RESULT(found)
2066	# Convert to posix path with 8.3 filename restrictions ( No spaces )
2067	FRAME_HOME=`cygpath -d "$FRAME_HOME"`
2068	FRAME_HOME=`cygpath -u "$FRAME_HOME"`
2069fi
2070AC_SUBST(MIDL_PATH)
2071AC_SUBST(CSC_PATH)
2072AC_SUBST(FRAME_HOME)
2073fi
2074
2075dnl ===================================================================
2076dnl Check if stdc headers are available excluding windows.
2077dnl ===================================================================
2078if test "$_os" != "WINNT" -o "$WITH_MINGWIN" = "yes"; then
2079   AC_HEADER_STDC
2080fi
2081
2082dnl ===================================================================
2083dnl Find pre-processors.
2084dnl ===================================================================
2085if test "$_os" != "WINNT" -o "$WITH_MINGWIN" = "yes"; then
2086   AC_PROG_CXXCPP
2087
2088dnl Check whether there's a C pre-processor.
2089dnl ===================================================================
2090dnl When using SunStudio compiler, there is a bug with the cc
2091dnl preprocessor, so use CC preprocessor as the cc preprocessor
2092dnl See Issuezilla #445.
2093dnl ===================================================================
2094   if test "$_os" = "SunOS"; then
2095      CPP=$CXXCPP
2096   else
2097      AC_PROG_CPP
2098   fi
2099fi
2100
2101AC_CHECK_SIZEOF(long)
2102SIZEOF_LONG=$ac_cv_sizeof_long
2103AC_SUBST(SIZEOF_LONG)
2104AC_C_BIGENDIAN
2105WORDS_BIGENDIAN=$ac_cv_c_bigendian
2106AC_SUBST(WORDS_BIGENDIAN)
2107
2108dnl Check for large file support
2109AC_SYS_LARGEFILE
2110if test -n "$ac_cv_sys_file_offset_bits"; then
2111   LFS_CFLAGS="-D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits"
2112fi
2113if test -n "$ac_cv_sys_large_files" && test "$ac_cv_sys_large_files" != "no"; then
2114   LFS_CFLAGS="$LFS_CFLAGS -D_LARGE_FILES"
2115fi
2116AC_SUBST(LFS_CFLAGS)
2117
2118dnl ===================================================================
2119dnl Check if valgrind.h is available
2120dnl ===================================================================
2121if test -n "$enable_dbgutil" && test "$enable_dbgutil" != "no"; then
2122   dnl Test $prefix (currently only testing for /usr and /usr/local)
2123   dnl so that VALGRIND_CFLAGS = -I$prefix/include/valgrind
2124   VALGRIND_CFLAGS=""
2125   prev_cppflags=$CPPFLAGS
2126   if test -z "$VALGRIND_CFLAGS"; then
2127      CPPFLAGS="-I/usr/include/valgrind"
2128      AC_CHECK_HEADER([valgrind.h], [VALGRIND_CFLAGS=$CPPFLAGS], [unset ac_cv_header_valgrind_h])
2129   fi
2130   if test -z "$VALGRIND_CFLAGS"; then
2131      CPPFLAGS="-I/usr/local/include/valgrind"
2132      AC_CHECK_HEADER([valgrind.h], [VALGRIND_CFLAGS=$CPPFLAGS], [])
2133   fi
2134   if test -n "$VALGRIND_CFLAGS"; then
2135      CPPFLAGS=$VALGRIND_CFLAGS
2136      AC_CHECK_HEADER([memcheck.h], [], [VALGRIND_CFLAGS=""])
2137   fi
2138   CPPFLAGS=$prev_cppflags
2139fi
2140AC_SUBST([VALGRIND_CFLAGS])
2141
2142dnl ===================================================================
2143dnl Check if cups/cups.h is available
2144dnl ===================================================================
2145if test "$test_cups" = "yes" -a "$ENABLE_CUPS" = "TRUE" ; then
2146    AC_CHECK_HEADER(cups/cups.h, [],
2147                    [AC_MSG_ERROR([cups/cups.h could not be found. libcupsys2-dev or cups???-devel missing?])], [])
2148fi
2149
2150dnl ===================================================================
2151dnl Check if PAM/pam_appl.h is available on Linux or FreeBSD
2152dnl ===================================================================
2153if test "$_os" = "Linux" -o "$_os" = "FreeBSD" -o "$_os" = "GNU"; then
2154  AC_MSG_CHECKING([whether to enable pam support])
2155  if test -z "$enable_pam" || test "$enable_pam" != "no"; then
2156    AC_MSG_RESULT([yes])
2157    PAM=YES
2158    AC_CHECK_HEADER(security/pam_appl.h, [],
2159                    [AC_MSG_ERROR([pam_appl.h could not be found. libpam-dev or pam-devel missing?])], [])
2160    AC_MSG_CHECKING([whether to link to libpam])
2161    if test -n "$enable_pam_link" -a "$enable_pam_link" != "no"; then
2162      AC_MSG_RESULT([yes])
2163      PAM_LINK=YES
2164      AC_CHECK_LIB(pam, pam_start, [],
2165          [AC_MSG_ERROR(libpam not found or functional)], [])
2166    else
2167      AC_MSG_RESULT([no, dynamically open it])
2168      PAM_LINK=NO
2169    fi
2170  else
2171    AC_MSG_RESULT([no])
2172    PAM=NO
2173    PAM_LINK=NO
2174    dnl check getspnam_r for needed args (4 or 5)
2175    AX_FUNC_WHICH_GETSPNAM_R
2176  fi
2177fi
2178AC_SUBST(PAM)
2179AC_SUBST(NEW_SHADOW_API)
2180AC_SUBST(PAM_LINK)
2181
2182if test "$_os" = "Linux"; then
2183    AC_MSG_CHECKING([whether to link to libcrypt])
2184    if test -n "$enable_crypt_link" -a "$enable_crypt_link" != "no"; then
2185        AC_MSG_RESULT([yes])
2186        CRYPT_LINK=YES
2187        AC_CHECK_LIB(crypt, crypt, [],
2188            [AC_MSG_ERROR(libcrypt not found or functional)], [])
2189    else
2190        AC_MSG_RESULT([no, dynamically open it])
2191        CRYPT_LINK=NO
2192    fi
2193fi
2194AC_SUBST(CRYPT_LINK)
2195
2196dnl ===================================================================
2197dnl Testing for c++ compiler and version...
2198dnl ===================================================================
2199if test -n "$with_gcc_home"; then
2200   if test -z "$CXX"; then
2201      CXX="$with_gcc_home/bin/g++"
2202   fi
2203fi
2204
2205if test "$_os" = "WINNT" -a "$WITH_MINGWIN" != "yes"; then
2206   if test -e "$CC"; then
2207      CXX="$CC"
2208   fi
2209fi
2210
2211dnl Autoconf 2.53 can do this test for cl.exe, 2.13 can't!
2212if test "$_os" != "WINNT" -o "$WITH_MINGWIN" = "yes"; then
2213   AC_PROG_CXX
2214fi
2215
2216dnl check if we are using a buggy version of g++ (currently 3.4.0, 3.4.1 and trunk)
2217if test "$GXX" = "yes"; then
2218   AC_MSG_CHECKING([the GNU C++ compiler version])
2219
2220   _gpp_version=`$CXX -dumpversion`
2221   _gpp_majmin=`echo $_gpp_version | $AWK -F. '{ print \$1*100+\$2 }'`
2222
2223   if test "$_os" = "Darwin" -a "$_gpp_majmin" -ge "401" ; then
2224      if test -z "$save_CXX" -a -x "$GCC_HOME/bin/g++-4.0" ; then
2225         CXX=$GCC_HOME/bin/g++-4.0
2226         _gpp_majmin_2=`"$CXX" -dumpversion | $AWK -F. '{ print \$1*100+\$2 }'`
2227         if test "$_gpp_majmin_2" -ge "400" -a "$_gpp_majmin_2" -lt "401" ; then
2228            _gpp_majmin=$_gpp_majmin_2
2229         fi
2230      fi
2231      if test "$_gpp_majmin" -ge "401" ; then
2232         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])
2233      else
2234         AC_MSG_RESULT([implicitly using CXX=$CXX])
2235      fi
2236   else
2237      AC_MSG_RESULT([checked (g++ $_gpp_version)])
2238   fi
2239
2240   if test "$_gpp_majmin" = "304"; then
2241      AC_MSG_CHECKING([whether $CXX has the enum bug])
2242AC_TRY_RUN([
2243extern "C" void abort (void);
2244extern "C" void exit (int status);
2245
2246enum E { E0, E1, E2, E3, E4, E5 };
2247
2248void
2249test (enum E e)
2250{
2251  if (e == E2 || e == E3 || e == E1)
2252  exit (1);
2253}
2254
2255int
2256main (void)
2257{
2258  test (E4);
2259  test (E5);
2260  test (E0);
2261  return 0;
2262}
2263],[AC_MSG_ERROR([your version of the GNU C++ compile has a bug which prevents OpenOffice.org from being compiled correctly - please check http://gcc.gnu.org/ml/gcc-patches/2004-07/msg00968.html for details.])], [AC_MSG_RESULT([no])])
2264   fi
2265fi
2266
2267dnl ===================================================================
2268dnl Set the gcc/gxx include directories
2269dnl ===================================================================
2270# Removed the special FreeBSD treatment. The problem was that with_gxx_include_path
2271# often contains an i386 which is expanded as a macro. Solved in stlport.
2272if test "$GXX" = "yes"; then
2273   AC_MSG_CHECKING([for g++ include path])
2274   if test -z "$with_gxx_include_path"; then
2275      with_gxx_include_path=`echo "#include <cstring>" | $CXX -E -xc++ - | $SED -n '/.*1*"\(.*\)\/cstring".*/s//\1/p' | head -n 1`
2276      if test "$with_gxx_include_path" = "/usr/libexec/(null)/include"; then
2277          with_gxx_include_path="/usr/include"
2278      fi
2279      if test "$WITH_MINGWIN" = "yes"; then
2280         with_gxx_include_path=`cygpath -d "$with_gxx_include_path"`
2281         with_gxx_include_path=`cygpath -u "$with_gxx_include_path"`
2282      fi
2283      if echo $with_gxx_include_path | grep -q linux; then
2284         # workaround for Mandriva - issue 100049
2285         with_gxx_include_path=`cd $with_gxx_include_path && pwd`
2286      fi
2287   fi
2288fi
2289dnl This is the original code...
2290dnl with_gxx_include_path=`$CXX -print-search-dirs | grep instal |$AWK '{ print \$2 }'`/include
2291if test -z "$with_gxx_include_path"; then
2292   with_gxx_include_path="NO_GXX_INCLUDE"
2293   AC_MSG_RESULT([no g++ includes])
2294else
2295   AC_MSG_RESULT([$with_gxx_include_path])
2296fi
2297GXX_INCLUDE_PATH="$with_gxx_include_path"
2298AC_SUBST(GXX_INCLUDE_PATH)
2299
2300dnl ===================================================================
2301dnl Set the mingw runtime library include directories
2302dnl ===================================================================
2303if test "$WITH_MINGWIN" = "yes"; then
2304   AC_MSG_CHECKING([for mingwin runtime include path])
2305   cat >conftest.$ac_ext <<_ACEOF
2306#include <stddef.h>
2307#include <bits/c++config.h>
2308_ACEOF
2309   _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`
2310   rm conftest.$ac_ext
2311   if test -n "$_mingw_lib_include_path"; then
2312      _temp=""
2313      for a in $_mingw_lib_include_path
2314         do
2315            a=`cygpath -d "$a"`
2316            _temp="$_temp "`cygpath -u "$a"`
2317         done
2318      _mingw_lib_include_path=$_temp
2319   fi
2320   if test -z "$_mingw_lib_include_path"; then
2321      _mingw_lib_include_path="NO_LIB_INCLUDE"
2322      AC_MSG_RESULT([no mingwin runtime includes])
2323   else
2324      AC_MSG_RESULT([$_mingw_lib_include_path])
2325   fi
2326  MINGW_LIB_INCLUDE_PATH="$_mingw_lib_include_path"
2327  AC_SUBST(MINGW_LIB_INCLUDE_PATH)
2328dnl mingw gcc 4.4.0 needs backward in include path to use hash_set/hash_map
2329   AC_MSG_CHECKING([for mingwin c++ backward include path])
2330   cat >conftest.$ac_ext <<_ACEOF
2331#include <hash_set>
2332_ACEOF
2333   _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`
2334   rm conftest.$ac_ext
2335   if test -n "$_mingw_backward_include_path"; then
2336      _mingw_backward_include_path=`cygpath -d $_mingw_backward_include_path`
2337      _mingw_backward_include_path=`cygpath -u $_mingw_backward_include_path`
2338      AC_MSG_RESULT([$_mingw_backward_include_path])
2339   else
2340      _mingw_backward_include_path="NO_BACKWARD_INCLUDE"
2341      AC_MSG_RESULT([no mingwin c++ backward includes])
2342   fi
2343  MINGW_BACKWARD_INCLUDE_PATH="$_mingw_backward_include_path"
2344  AC_SUBST(MINGW_BACKWARD_INCLUDE_PATH)
2345  mingw_crtbegin=`$CC -print-file-name=crtbegin.o`
2346  MINGW_CLIB_DIR=`dirname $mingw_crtbegin`
2347  AC_MSG_CHECKING([whether to use dynamic libgcc])
2348  if test -e "$MINGW_CLIB_DIR/libgcc_s.a"; then
2349    AC_MSG_CHECKING([dynamic libgcc name])
2350    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'`
2351    MINGW_GCCDLL=`cd $COMPATH/bin && ls $MINGW_GCCDLL_pattern 2>/dev/null`
2352    if test -n "$MINGW_GCCDLL"; then
2353        MINGW_SHARED_GCCLIB=YES
2354        AC_MSG_RESULT([use $MINGW_GCCDLL])
2355    else
2356        AC_MSG_RESULT([no])
2357    fi
2358  else
2359    AC_MSG_RESULT([no])
2360  fi
2361  if test -e "$MINGW_CLIB_DIR/libgcc_eh.a"; then
2362      MINGW_GCCLIB_EH=YES
2363  fi
2364  AC_MSG_CHECKING([whether to use dynamic libstdc++])
2365  MINGW_SHARED_LIBSTDCPP=
2366  if test -e "$MINGW_CLIB_DIR/libstdc++_s.a" ; then
2367    MINGW_SHARED_LIBSTDCPP=stdc++_s
2368  fi
2369  if test -e "$MINGW_CLIB_DIR/libstdc++.dll.a" ; then
2370    MINGW_SHARED_LIBSTDCPP=stdc++.dll
2371  fi
2372  if test -n "$MINGW_SHARED_LIBSTDCPP" ; then
2373    AC_MSG_CHECKING([dynamic libstdc++ name])
2374    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'`
2375    MINGW_GXXDLL=`cd $COMPATH/bin && ls $MINGW_GXXDLL_pattern 2>/dev/null`
2376    if test -n "$MINGW_GXXDLL"; then
2377        MINGW_SHARED_LIBSTDCPP=-l$MINGW_SHARED_LIBSTDCPP
2378        MINGW_SHARED_GXXLIB=YES
2379        AC_MSG_RESULT([use $MINGW_GXXDLL])
2380    else
2381        MINGW_SHARED_LIBSTDCPP=
2382        AC_MSG_RESULT([no])
2383    fi
2384  else
2385    AC_MSG_RESULT([no])
2386  fi
2387  MINGW_CLIB_DIR=`cygpath $MINGW_CLIB_DIR`
2388  AC_SUBST(MINGW_CLIB_DIR)
2389  AC_SUBST(MINGW_SHARED_GCCLIB)
2390  AC_SUBST(MINGW_GCCLIB_EH)
2391  AC_SUBST(MINGW_SHARED_GXXLIB)
2392  AC_SUBST(MINGW_SHARED_LIBSTDCPP)
2393  AC_SUBST(MINGW_GCCDLL)
2394  AC_SUBST(MINGW_GXXDLL)
2395fi
2396
2397dnl ===================================================================
2398dnl Extra checking for the SUN OS compiler
2399dnl ===================================================================
2400if test "$_os" = "SunOS"; then
2401   dnl SunStudio C++ compiler packaged with SunStudio C compiler
2402   if test "$CC" = "cc"; then
2403   AC_MSG_CHECKING([SunStudio C++ Compiler])
2404      if test "$CXX" != "CC"; then
2405         AC_MSG_WARN([SunStudio C++ was not found])
2406         echo "SunStudio C++ was not found" >> warn
2407      else
2408         AC_MSG_RESULT([checked])
2409      fi
2410   fi
2411fi
2412dnl ===================================================================
2413dnl Extra checking for the OSF compiler
2414dnl ===================================================================
2415if test "$_os" = "OSF1"; then
2416   AC_MSG_CHECKING([Compaq C++ compiler version])
2417   dnl cxx -V outputs to standard error!!!!
2418   _compaqcxx_version=`$CXX -V 2>&1 | $AWK '{ print $3 }'`
2419   _compaqcxx_major=`echo $_compaqcxx_version | $AWK -F. '{ print $1 }'`
2420   if test "$_compaqcxx_major" != "V6"; then
2421      AC_MSG_WARN([found version "$_compaqc_version", use version 6 of the Compaq C++ compiler])
2422      echo "found version $_compaqc_version, use version 6 of the Compaq C++ compiler" >> warn
2423   else
2424      dnl compiler will do
2425      AC_MSG_RESULT([checked])
2426   fi
2427fi
2428
2429dnl *************************************************************
2430dnl Testing for exception handling - dwarf2 or sjlj exceptions...
2431dnl *************************************************************
2432AC_MSG_CHECKING([exception type])
2433AC_LANG_PUSH([C++])
2434if test "$WITH_MINGWIN" = "yes"; then
2435  AC_TRY_LINK(
2436	[#include <iostream>
2437
2438extern "C" void _Unwind_SjLj_RaiseException(void) __attribute__ ((__noreturn__));
2439
2440	],
2441	[_Unwind_SjLj_RaiseException() ],
2442	[exceptions_type="sjlj"],
2443	[exceptions_type="dwarf2"]
2444  )
2445fi
2446
2447AC_MSG_RESULT($exceptions_type)
2448AC_LANG_POP([C++])
2449EXCEPTIONS="$exceptions_type"
2450AC_SUBST(EXCEPTIONS)
2451
2452dnl **************************************************************
2453dnl Testing for required  Solaris and SunStudio compiler patches...
2454dnl **************************************************************
2455dnl Check whether the OS is SunOS.
2456if test "$_os" = "SunOS"; then
2457   _temp=`showrev -p | $AWK -F" " '{ print $2 }'`
2458   if test "$_os_release" = "7"; then
2459      dnl ***************
2460      dnl patch 106327-06
2461      dnl ***************
2462      AC_MSG_CHECKING([for patch 106327-06 or greater])
2463      _patch=`echo $_temp | $AWK '/106327-06/ { print "found" }'`
2464      _patch="false"
2465      for i in $_temp
2466      do
2467         _patch_major=`echo $i | $AWK -F"-" '{ print $1 }'`
2468         if test "$_patch_major" = "106327"; then
2469            _patch_rev=`echo $i | $AWK -F"-" '{ print $2 }'`
2470            if test "$_patch_rev" -ge "6"; then
2471               _patch="found"
2472            fi
2473        fi
2474      done
2475      if test "$_patch" = "found"; then
2476         AC_MSG_RESULT([found])
2477      else
2478         AC_MSG_WARN([patch 106327-06 not found, please install compiler patch 106327-06 or greater])
2479         echo "patch 106327-06 not found, please install compiler patch 106327-06 or greater" >> warn
2480      fi
2481      dnl ***************
2482      dnl patch 106950-11
2483      dnl ***************
2484      AC_MSG_CHECKING([for patch 106950-11 or greater])
2485      _patch=`echo $_temp | $AWK '/106950-11/ { print "found" }'`
2486      _patch="false"
2487      for i in $_temp
2488      do
2489         _patch_major=`echo $i | $AWK -F"-" '{ print $1 }'`
2490         if test "$_patch_major" = "106950"; then
2491            _patch_rev=`echo $i | $AWK -F"-" '{ print $2 }'`
2492            if test "$_patch_rev" -ge "11"; then
2493               _patch="found"
2494            fi
2495         fi
2496      done
2497      if test "$_patch" = "found"; then
2498         AC_MSG_RESULT([found])
2499      else
2500         AC_MSG_WARN([patch 106950-11 not found, please install linker patch 106950-11 or greater])
2501         echo "patch 106950-11 not found, please install linker patch 106950-11 or greater" >> warn
2502      fi
2503   else
2504      if test "$_os_release" = "6"; then
2505         dnl ***************
2506         dnl patch 105591-09
2507         dnl ***************
2508         AC_MSG_CHECKING([for patch 105591-09 or greater])
2509         _patch=`echo $_temp | $AWK '/105591-09/ { print "found" }'`
2510         _patch="false"
2511         for i in $_temp
2512         do
2513            _patch_major=`echo $i | $AWK -F"-" '{ print $1 }'`
2514            if test "$_patch_major" = "105591"; then
2515               _patch_rev=`echo $i | $AWK -F"-" '{ print $2 }'`
2516               if test "$_patch_rev" -ge "9"; then
2517                  _patch="found"
2518               fi
2519           fi
2520         done
2521         if test "$_patch" = "found"; then
2522            AC_MSG_RESULT([found])
2523         else
2524            AC_MSG_WARN([patch 105591-09 not found, please install compiler patch 105591-09 or greater])
2525            echo "patch 105591-09 not found, please install compiler patch 105591-09 or greater" >> warn
2526         fi
2527         dnl ***************
2528         dnl patch 107733-08
2529         dnl ***************
2530         AC_MSG_CHECKING([for patch 107733-08 or greater])
2531         _patch=`echo $_temp | $AWK '/107733-08/ { print "found" }'`
2532         _patch="false"
2533         for i in $_temp
2534         do
2535            _patch_major=`echo $i | $AWK -F"-" '{ print $1 }'`
2536            if test "$_patch_major" = "107733"; then
2537               _patch_rev=`echo $i | $AWK -F"-" '{ print $2 }'`
2538               if test "$_patch_rev" -ge "8"; then
2539                  _patch="found"
2540               fi
2541           fi
2542         done
2543         if test "$_patch" = "found"; then
2544            AC_MSG_RESULT([found])
2545         else
2546            AC_MSG_WARN([patch 107733-06 not found, please install linker patch 107733-08 or greater])
2547            echo "patch 107733-06 not found, please install linker patch 107733-08 or greater" >> warn
2548         fi
2549      fi
2550   fi
2551fi
2552
2553dnl ===================================================================
2554dnl Checks for what the default STL should be
2555dnl ===================================================================
2556   AC_MSG_CHECKING([what the default STL should be])
2557   DEFAULT_TO_STLPORT="no"
2558   if test "$_os" = "Linux"; then
2559     case "$build_cpu" in
2560       i?86)
2561	 case "$build_os" in k*bsd*-gnu*)
2562	 	DEFAULT_TO_STLPORT="no"
2563		;;
2564	 *)
2565         	DEFAULT_TO_STLPORT="yes"
2566		;;
2567	  esac
2568         ;;
2569       *)
2570         DEFAULT_TO_STLPORT="no"
2571         ;;
2572     esac
2573   elif test "$_os" = "SunOS"; then
2574      DEFAULT_TO_STLPORT="yes"
2575   elif test "$_os" = "WINNT" -a "$WITH_MINGWIN" != "yes"; then
2576      DEFAULT_TO_STLPORT="yes"
2577   elif test "$_os" = "OS2"; then
2578      DEFAULT_TO_STLPORT="yes"
2579   elif test "$_os" = "FreeBSD"; then
2580      DEFAULT_TO_STLPORT="yes"
2581   fi
2582   if test "$DEFAULT_TO_STLPORT" = "yes"; then
2583      AC_MSG_RESULT([stlport])
2584   else
2585      AC_MSG_RESULT([system])
2586   fi
2587   if test "$WITH_STLPORT" = "auto"; then
2588      WITH_STLPORT=$DEFAULT_TO_STLPORT
2589   fi
2590
2591dnl ===================================================================
2592dnl Checks for STLPORT
2593dnl ===================================================================
2594   AC_MSG_CHECKING([for STL providing headers])
2595   STLPORT4=""
2596   USE_SYSTEM_STL=""
2597   if test "$WITH_STLPORT" = "yes"; then
2598      AC_MSG_RESULT([using internal stlport.])
2599      if test "$DEFAULT_TO_STLPORT" != "yes"; then
2600         AC_MSG_WARN([using stlport. Warning, breaks your ABI compatability!])
2601         echo "using stlport. Warning, breaks your ABI compatability!" >>warn
2602      fi
2603   elif test "$WITH_STLPORT" = "no"; then
2604      AC_MSG_RESULT([using system STL])
2605      USE_SYSTEM_STL="YES"
2606      if test "$DEFAULT_TO_STLPORT" != "no"; then
2607         AC_MSG_WARN([using system STL. Warning, breaks your ABI compatability!])
2608         echo "using system STL. Warning, breaks your ABI compatability!" >>warn
2609      fi
2610   else
2611      STLPORT4=$WITH_STLPORT
2612      if test "$_os" != "WINNT" -o "$WITH_MINGWIN" = "yes"; then
2613         AC_TRY_CPP($STLPORT4/stlport/hash_map, AC_MSG_RESULT([checked.]), AC_MSG_ERROR([STLport headers not found.]))
2614      else
2615         dnl AC_TRY_CPP doesn't work for MSVC because C++ preprocessor is not found by autoconf.
2616         if test -f "$STLPORT4/stlport/hash_map"; then
2617            AC_MSG_RESULT([checked.])
2618         else
2619            AC_MSG_ERROR([STLport headers not found.])
2620         fi
2621      fi
2622      if test "$_os" != "WINNT" -o "$WITH_MINGWIN" = "yes"; then
2623         AC_MSG_CHECKING([for STLport libraries])
2624         if test "$_os" = "SunOS"; then
2625		      if test -f "$STLPORT4/lib/libstlport_sunpro.so"; then
2626			      AC_MSG_RESULT([checked])
2627		      elif test -f "$STLPORT4/lib/libstlport.so"; then
2628			      AC_MSG_RESULT([checked])
2629			      STLPORT_VER=500
2630		      else
2631			      AC_MSG_ERROR([STLport libraries not found])
2632		      fi
2633	      elif test "$_os" = "Darwin"; then
2634		      if test -f "$STLPORT4/lib/libstlport_gcc.dylib"; then
2635			      AC_MSG_RESULT([checked])
2636		      elif test -f "$STLPORT4/lib/libstlport.dylib"; then
2637			      AC_MSG_RESULT([checked])
2638			      STLPORT_VER=500
2639		      else
2640			      AC_MSG_ERROR([STLport libraries not found])
2641		      fi
2642		   else
2643			   if test -f "$STLPORT4/lib/libstlport_gcc.so"; then
2644				   AC_MSG_RESULT([checked])
2645			   elif test -f "$STLPORT4/lib/libstlport.so"; then
2646				   AC_MSG_RESULT([checked])
2647				   STLPORT_VER=500
2648			   else
2649				   AC_MSG_ERROR([STLport libraries not found])
2650			   fi
2651		   fi
2652	   fi
2653      if test "$DEFAULT_TO_STLPORT" != "yes"; then
2654         AC_MSG_WARN([using stlport. Warning, breaks your ABI compatability!])
2655         echo "using stlport. Warning, breaks your ABI compatability!" >>warn
2656      fi
2657   fi
2658
2659if test -z "$STLPORT4"; then
2660  STLPORT4="NO_STLPORT4"
2661fi
2662if test -z "$STLPORT_VER"; then
2663  STLPORT_VER=400
2664fi
2665AC_SUBST(STLPORT4)
2666AC_SUBST(STLPORT_VER)
2667AC_SUBST(USE_SYSTEM_STL)
2668
2669dnl ===================================================================
2670dnl visibility feature
2671dnl ===================================================================
2672if test "$GCC" = "yes"; then
2673   AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
2674   save_CFLAGS=$CFLAGS
2675   CFLAGS="$CFLAGS -fvisibility=hidden"
2676   AC_TRY_LINK([], [ return 0; ], [ HAVE_GCC_VISIBILITY_FEATURE=TRUE ], [])
2677   CFLAGS=$save_CFLAGS
2678   if test "$HAVE_GCC_VISIBILITY_FEATURE" = "TRUE"; then
2679      AC_MSG_RESULT([yes])
2680   else
2681      AC_MSG_RESULT([no])
2682   fi
2683fi
2684
2685# ===================================================================
2686# use --ccache-skip?
2687# ===================================================================
2688dnl used to escape compiler options for ccache that otherwise prevent
2689dnl caching of the results (like "-x objective-c++" for Mac)
2690AC_MSG_CHECKING([whether we are allowed and able to use --ccache-skip])
2691if test "$_os" != "Darwin" ; then
2692   AC_MSG_RESULT([only used on Mac currently, skipping])
2693elif test "$enable_ccache_skip" = "no" ; then
2694   AC_MSG_RESULT([no - diabled explicitly])
2695elif test "$enable_ccache_skip" = "yes" ; then
2696   AC_MSG_RESULT([yes - enabled explicitly, skipping checks])
2697   AC_SUBST([USE_CCACHE], [YES])
2698elif test "$enable_ccache_skip" = "auto" ; then
2699   # checking for ccache presence/version
2700   AC_MSG_RESULT([probing...])
2701   AC_PATH_PROG([CCACHE],[ccache],[not_found])
2702   if test "$CCACHE" = "not_found" ; then
2703      AC_MSG_NOTICE([not enabling --ccache-skip (ccache not found)])
2704   else
2705      # check ccache version
2706      AC_MSG_CHECKING([whether version of ccache is suitable])
2707      CCACHE_VERSION=`"$CCACHE" -V | "$AWK" '/^ccache version/{print $3}'`
2708      if test "$CCACHE_VERSION" = "2.4_OOo"; then
2709         AC_MSG_RESULT([yes])
2710         AC_MSG_CHECKING([whether ccache is actually used for the build])
2711         AC_LANG_PUSH([C++])
2712         save_CXXFLAGS=$CXXFLAGS
2713         CXXFLAGS="$CXXFLAGS --ccache-skip -O2"
2714         dnl an empty program will do, we're checking the compiler flags
2715         AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],
2716            [use_ccache=yes], [use_ccache=no])
2717         if test $use_ccache = yes ; then
2718            AC_MSG_RESULT([yes, will enable --ccache-skip])
2719            AC_SUBST([USE_CCACHE], [YES])
2720         else
2721            AC_MSG_RESULT([no, will not enable --ccache-skip])
2722         fi
2723         CXXFLAGS=$save_CXXFLAGS
2724         AC_LANG_POP([C++])
2725      else
2726         AC_MSG_RESULT([no])
2727         AC_MSG_NOTICE([ccache version $CCACHE_VERSION not accepted. See description for --enable-ccache-skip])
2728      fi
2729   fi
2730else
2731   AC_MSG_ERROR([invalid option to --enable-ccache-skip. Valid values are "auto", "yes" and "no"])
2732fi
2733
2734dnl ===================================================================
2735dnl system stl sanity tests
2736dnl ===================================================================
2737if test "$USE_SYSTEM_STL" = "YES"; then
2738   AC_MSG_CHECKING([if hash_map will be in __gnu_cxx namespace])
2739   AC_LANG_PUSH([C++])
2740
2741   AC_TRY_COMPILE([#include <ext/hash_map>
2742using namespace __gnu_cxx;
2743],[hash_map<int, int> t; return 0;],
2744  ac_cv_cxx_have_ext_hash_map=yes, ac_cv_cxx_have_ext_hash_map=no)
2745
2746   if test "$ac_cv_cxx_have_ext_hash_map" = "no"; then
2747      AC_MSG_ERROR([Can't find hash_map. Try with --with-stlport])
2748   else
2749      AC_MSG_RESULT([$ac_cv_cxx_have_ext_hash_map])
2750   fi
2751
2752   if test "$HAVE_GCC_VISIBILITY_FEATURE" = "TRUE"; then
2753      AC_MSG_CHECKING([if STL headers are visibility safe])
2754      AC_EGREP_HEADER(visibility push, string, stlvisok=yes, stlvisok=no)
2755      AC_MSG_RESULT([$stlvisok])
2756      if test "$stlvisok" = "no"; then
2757         AC_MSG_WARN([Your gcc STL headers are not visibility safe. Disabling visibility])
2758         echo "Your gcc STL headers are not visibility safe. Disabling visibility" >> warn
2759         unset HAVE_GCC_VISIBILITY_FEATURE
2760      fi
2761   fi
2762
2763   if test "$HAVE_GCC_VISIBILITY_FEATURE" = "TRUE"; then
2764      sharedlink_ldflags_save=$LDFLAGS
2765      LDFLAGS="$LDFLAGS -fvisibility-inlines-hidden -fpic -shared"
2766
2767      AC_MSG_CHECKING([if gcc is -fvisibility-inlines-hidden safe with STL headers])
2768      AC_TRY_LINK([#include <sstream>
2769using namespace std;
2770],[istringstream strm( "test" ); return 0;],
2771      $EGREP -q  unresolvable conftest.err;
2772      if test $? -eq 0; then gccvisok=no; else gccvisok=yes; fi,
2773      gccvisok=no)
2774      AC_MSG_RESULT([$gccvisok])
2775      if test "$gccvisok" = "no"; then
2776         AC_MSG_WARN([Your gcc is not -fvisibility-inlines-hidden safe. Disabling visibility])
2777         echo "Your gcc is not -fvisibility-inlines-hidden safe. Disabling visibility" >> warn
2778         unset HAVE_GCC_VISIBILITY_FEATURE
2779      fi
2780
2781      LDFLAGS=$sharedlink_ldflags_save
2782   fi
2783
2784   if test "$HAVE_GCC_VISIBILITY_FEATURE" = "TRUE"; then
2785      AC_MSG_CHECKING([if gcc has a visibility bug with class-level attributes (GCC bug 26905)])
2786      cat >visibility.cxx <<_ACEOF
2787#pragma GCC visibility push(hidden)
2788struct __attribute__ ((visibility ("default"))) TestStruct {
2789  static void Init();
2790};
2791__attribute__ ((visibility ("default"))) void TestFunc() {
2792  TestStruct::Init();
2793}
2794_ACEOF
2795      if ! $CXX $CXXFLAGS $CPPFLAGS -fpic -S visibility.cxx 2>/dev/null > /dev/null; then
2796         gccvisbroken=yes
2797      else
2798         case "$build_cpu" in
2799            i?86|x86_64)
2800               if $EGREP -q '@PLT' visibility.s; then
2801                  gccvisbroken=no
2802               else
2803                  gccvisbroken=yes
2804               fi
2805               ;;
2806            *)
2807               gccvisbroken=no
2808               ;;
2809         esac
2810      fi
2811      rm -f visibility.s visibility.cxx
2812
2813      AC_MSG_RESULT([$gccvisbroken])
2814      if test "$gccvisbroken" = "yes"; then
2815         AC_MSG_WARN([Your gcc is not -fvisibility=hidden safe. Disabling visibility])
2816         echo "Your gcc is not -fvisibility=hidden safe. Disabling visibility" >> warn
2817         unset HAVE_GCC_VISIBILITY_FEATURE
2818      fi
2819   fi
2820
2821   AC_LANG_POP([C++])
2822fi
2823
2824AC_SUBST(HAVE_GCC_VISIBILITY_FEATURE)
2825
2826dnl ===================================================================
2827dnl allocator
2828dnl ===================================================================
2829AC_MSG_CHECKING([which memory allocator to use])
2830if test "$with_alloc" = "system"; then
2831    AC_MSG_RESULT([system])
2832    ALLOC="SYS_ALLOC";
2833    AC_CHECK_FUNCS([malloc realloc calloc free])
2834fi
2835if test "$with_alloc" = "tcmalloc"; then
2836    AC_MSG_RESULT(tcmalloc)
2837    if ! echo $build_cpu | grep -E 'i[[3456]]86' 2>/dev/null >/dev/null; then
2838        AC_MSG_ERROR([tcmalloc only available/usable on ix86])
2839    fi
2840    AC_CHECK_LIB(tcmalloc, malloc, [],
2841        [AC_MSG_ERROR(tcmalloc not found or functional. Install the Google Profiling Tools)], [])
2842    ALLOC="TCMALLOC";
2843fi
2844if test "$with_alloc" = "jemalloc"; then
2845  if test "$_os" != "FreeBSD" -o "$_os" != "NetBSD"; then
2846    AC_MSG_RESULT(jemalloc)
2847    save_CFLAGS=$CFLAGS
2848    CFLAGS="$CFLAGS -pthread"
2849    AC_CHECK_LIB(jemalloc, malloc, [],
2850        [AC_MSG_ERROR(jemalloc not found or functional. Install the jemalloc allocator.)], [])
2851    ALLOC="JEMALLOC";
2852    CFLAGS=$save_CFLAGS
2853  else
2854    AC_MSG_RESULT([system])
2855    ALLOC="SYS_ALLOC";
2856    AC_CHECK_FUNCS([malloc realloc calloc free])
2857  fi
2858fi
2859if test "$with_alloc" = "internal" -o -z "$with_alloc"; then
2860   AC_MSG_RESULT([internal])
2861fi
2862AC_SUBST(ALLOC)
2863
2864dnl ===================================================================
2865dnl Custom build version
2866dnl ===================================================================
2867
2868AC_MSG_CHECKING([whether to add custom build version])
2869if test "z$with_build_version" != "z"; then
2870   BUILD_VER_STRING=$with_build_version
2871   AC_MSG_RESULT([yes, $BUILD_VER_STRING])
2872else
2873   BUILD_VER_STRING=
2874   AC_MSG_RESULT([no])
2875fi
2876AC_SUBST(BUILD_VER_STRING)
2877
2878dnl ===================================================================
2879dnl Java support enable
2880dnl ===================================================================
2881AC_MSG_CHECKING([whether to build with Java support])
2882if test "$WITH_JAVA" != "no"; then
2883   AC_MSG_RESULT([yes])
2884   SOLAR_JAVA="TRUE"
2885else
2886   AC_MSG_RESULT([no])
2887   SOLAR_JAVA=""
2888
2889   AC_MSG_WARN([building without java will mean some features will not be available])
2890   echo "building without java will mean some features will not be available" >>warn
2891fi
2892AC_SUBST(SOLAR_JAVA)
2893
2894if test "$_os" = "Linux" && test "$build_cpu" = "powerpc"; then
2895   # IBMs JDK needs this...
2896   JITC_PROCESSOR_TYPE=6
2897   export JITC_PROCESSOR_TYPE
2898fi
2899
2900if test "$_os" = "WINNT"; then
2901   if test -z "$with_jdk_home"; then
2902      _jdk_home=`./oowintool --jdk-home`
2903       if test -d "$_jdk_home"; then
2904          with_jdk_home="$_jdk_home"
2905       fi
2906   else
2907      with_jdk_home=`cygpath -u "$with_jdk_home"`
2908   fi
2909fi
2910
2911dnl ===================================================================
2912dnl Checks for java
2913dnl ===================================================================
2914if test "$SOLAR_JAVA" != ""; then
2915   JAVA_HOME=; export JAVA_HOME
2916   if test -z "$with_jdk_home"; then
2917      AC_PATH_PROG(JAVAINTERPRETER, $WITH_JAVA)
2918   else
2919      _java_path="$with_jdk_home/bin/$WITH_JAVA"
2920      dnl Check if there is a java interpreter at all.
2921      if test -x "$_java_path"; then
2922         JAVAINTERPRETER=$_java_path
2923      else
2924         AC_MSG_ERROR([$_java_path not found, please use --with-jdk-home])
2925      fi
2926   fi
2927   if test "$_os" = "WINNT"; then
2928      if test x`echo "$JAVAINTERPRETER" | grep -i '\.exe$'` = x; then
2929          JAVAINTERPRETER="${JAVAINTERPRETER}.exe"
2930      fi
2931      JAVAINTERPRETER=`cygpath -d "$JAVAINTERPRETER"`
2932      JAVAINTERPRETER=`cygpath -u "$JAVAINTERPRETER"`
2933   elif test "$_os" = "Darwin"; then
2934      dnl HACK:  There currently is only a 32 bit version of OOo for Mac OS X,
2935      dnl and Tiger java complains about -d32 while Snow Leopard java needs it
2936      dnl to run in 32 bit mode and be able to load OOo jnilibs:
2937      AC_MSG_CHECKING([whether to pass -d32 to Java interpreter])
2938      if "$JAVAINTERPRETER" -d32 >&5 2>&5; then
2939         AC_MSG_RESULT([yes])
2940         JAVAIFLAGS=-d32
2941      else
2942         AC_MSG_RESULT([no])
2943      fi
2944   fi
2945fi
2946
2947dnl ===================================================================
2948dnl Checks for JDK.
2949dnl ===================================================================
2950if test "$SOLAR_JAVA" != ""; then
2951   _gij_longver=0
2952   AC_MSG_CHECKING([the installed JDK])
2953   if test -n "$JAVAINTERPRETER"; then
2954      dnl java -version sends output to stderr!
2955      if test `$JAVAINTERPRETER -version 2>&1 | grep -c "Kaffe"` -gt 0; then
2956         AC_MSG_ERROR([No valid check available. Please check the block for your desired java in configure.in])
2957#        dnl Kaffe specific tests
2958#        KAFFE_VER=`$JAVAINTERPRETER -version 2>&1 | $EGREP "  Version:" | $SED -r "s/.*  Version: ([[0-9\.]]*).*/\1/"`
2959#        if test -z "$KAFFE_VER"; then
2960#          AC_MSG_ERROR([looks like Kaffe but version detection failed])
2961#        fi
2962#        _kaffe_ver=`echo "$KAFFE_VER" | $AWK -F. '{ print (($1 * 100) + $2) * 100 + $3;}'`
2963#        if test "$_kaffe_ver" -lt 10100; then
2964#           AC_MSG_ERROR([Kaffe is too old ($KAFFE_VER - $_kaffe_ver), you need at least 1.1.0])
2965#        fi
2966#        JDK=kaffe
2967#
2968#        dnl TODO: define some project exclusion variables
2969#
2970#        AC_MSG_RESULT([checked (Kaffe $KAFFE_VER)])
2971#        AC_MSG_WARN([EXPERIMENTAL: Kaffe is not a full JDK replacement - some projects will fail to compile])
2972#        echo "EXPERIMENTAL: Kaffe is not a full JDK replacement - some projects will fail to compile" >>warn
2973#        JAVA_HOME=`echo $JAVAINTERPRETER | $SED -n "s,//*bin//*java,,p"`
2974      elif test `$JAVAINTERPRETER --version 2>&1 | grep -c "GNU libgcj"` -gt 0; then
2975        JDK=gcj
2976        AC_MSG_RESULT([checked (gcj)])
2977        _gij_version=`$JAVAINTERPRETER --version | grep GNU | $SED -e 's@^[[^0-9]]*@@' -e 's@ .*@@' -e 's@,.*@@'`;
2978        _gij_longver=`echo $_gij_version | $AWK -F. '{ print \$1*10000+\$2*100+\$3 }'`
2979
2980      elif test `$JAVAINTERPRETER -version 2>&1 | awk '{ print }' | grep -c "BEA"` -gt 0; then
2981         AC_MSG_ERROR([No valid check available. Please check the block for your desired java in configure.in])
2982#        JDK=bea
2983#
2984#        dnl BEA JDK specific tests
2985#        _jdk=`$JAVAINTERPRETER -version 2>&1 | $AWK -F'"' '{ print \$2 }' | $SED s/[[-A-Za-z]]*//`
2986#        _jdk_ver=`echo "$_jdk" | $AWK -F. '{ print (($1 * 100) + $2) * 100 + $3;}'`
2987#
2988#        if test "$_jdk_ver" -lt 10500; then
2989#          AC_MSG_ERROR([JDK is too old, you need at least BEA JDK 1.5.0])
2990#        fi
2991#
2992#        AC_MSG_RESULT([checked (BEA JDK $_jdk)])
2993#
2994#        if test "$with_jdk_home" = ""; then
2995#             AC_MSG_ERROR([In order to successfully build OpenOffice.org using the BEA JDK,
2996#you must use the "--with-jdk-home" configure option explicitly])
2997#        fi
2998#
2999#        AC_MSG_WARN([A bug in certain BEA JREs can prevent you from successfully compiling some modules])
3000#        echo "A bug in certain BEA JREs can prevent you from successfully compiling some modules" >>warn
3001#
3002#        JAVA_HOME=$with_jdk_home
3003#
3004      elif test `$JAVAINTERPRETER -version 2>&1 | awk '{ print }' | grep -c "IBM"` -gt 0; then
3005        JDK=ibm
3006
3007        dnl IBM JDK specific tests
3008        _jdk=`$JAVAINTERPRETER -version 2>&1 | $AWK -F'"' '{ print \$2 }' | $SED s/[[-A-Za-z]]*//`
3009        _jdk_ver=`echo "$_jdk" | $AWK -F. '{ print (($1 * 100) + $2) * 100 + $3;}'`
3010
3011        if test "$_jdk_ver" -lt 10500; then
3012             AC_MSG_ERROR([IBM JDK is too old, you need at least 1.5])
3013        fi
3014
3015        AC_MSG_RESULT([checked (IBM JDK $_jdk)])
3016
3017        if test "$with_jdk_home" = ""; then
3018             AC_MSG_ERROR([In order to successfully build OpenOffice.org using the IBM JDK,
3019you must use the "--with-jdk-home" configure option explicitly])
3020        fi
3021
3022        JAVA_HOME=$with_jdk_home
3023
3024      else
3025        JDK=sun
3026
3027        dnl SUN JDK specific tests
3028        _jdk=`$JAVAINTERPRETER -version 2>&1 | $AWK -F'"' '{ print \$2 }' | $SED s/[[-A-Za-z]]*//`
3029        _jdk_ver=`echo "$_jdk" | $AWK -F. '{ print (($1 * 100) + $2) * 100 + $3;}'`
3030
3031        if test "$_jdk_ver" -lt 10500; then
3032             AC_MSG_ERROR([JDK is too old, you need at least 1.5])
3033        fi
3034        AC_MSG_RESULT([checked (JDK $_jdk)])
3035        JAVA_HOME=`echo $JAVAINTERPRETER | $SED -n "s,//*bin//*java,,p"`
3036        if test "$_os" = "WINNT"; then
3037          JAVA_HOME=`echo $JAVA_HOME | $SED "s,\.[[eE]][[xX]][[eE]]$,,"`
3038        fi
3039        if test "$_os" = "OS2"; then
3040          JAVA_HOME=`echo $JAVA_HOME | $SED "s,\.[[eE]][[xX]][[eE]]$,,"`
3041        fi
3042      fi
3043   else
3044      AC_MSG_ERROR([JAVA not found. You need at least jdk-1.5, or gcj-4])
3045   fi
3046else
3047   dnl Java disabled
3048   JAVA_HOME=NO_JAVA_HOME ; export JAVA_HOME
3049fi
3050
3051dnl ===================================================================
3052dnl Checks for javac
3053dnl ===================================================================
3054if test "$SOLAR_JAVA" != ""; then
3055    if test "$JDK" = "gcj"; then
3056        javacompiler=`echo $WITH_JAVA | $SED -e "s/gij/gcj/g" | $SED -e "s/java/javac/g"`
3057    else
3058        javacompiler="javac"
3059    fi
3060    if test "$_os" = "OS2"; then
3061      if test x`echo "$javacompiler" | grep -i '\.exe$'` = x; then
3062          javacompiler="${javacompiler}.exe"
3063      fi
3064    fi
3065    if test -z "$with_jdk_home"; then
3066        AC_PATH_PROG(JAVACOMPILER, $javacompiler)
3067    else
3068        _javac_path="$with_jdk_home/bin/$javacompiler"
3069        dnl Check if there is a java compiler at all.
3070        if test -x "$_javac_path"; then
3071            JAVACOMPILER=$_javac_path
3072        fi
3073    fi
3074    if test -z "$JAVACOMPILER"; then
3075      AC_MSG_ERROR([$javacompiler not found, please use --with-jdk-home])
3076    fi
3077    if test "$_os" = "WINNT"; then
3078       if test x`echo "$JAVACOMPILER" | grep -i '\.exe$'` = x; then
3079          JAVACOMPILER="${JAVACOMPILER}.exe"
3080       fi
3081       JAVACOMPILER=`cygpath -d "$JAVACOMPILER"`
3082       JAVACOMPILER=`cygpath -u "$JAVACOMPILER"`
3083    fi
3084    if test "$_os" = "OS2"; then
3085       if test x`echo "$JAVACOMPILER" | grep -i '\.exe$'` = x; then
3086          JAVACOMPILER="${JAVACOMPILER}.exe"
3087       fi
3088    fi
3089
3090    if test `$JAVACOMPILER -version 2>&1 | grep -c "Eclipse Java Compiler"` -gt 0; then
3091        AC_MSG_CHECKING([re-checking JDK])
3092        JDK=gcj
3093        AC_MSG_RESULT([checked (ecj)])
3094        #TODO: what's to do here? some switch to do 1.5 compiling?
3095        JAVAFLAGS="-source 1.5 -target 1.5"
3096        _gij_longver="40200"
3097    fi
3098fi
3099
3100JAVACISGCJ=""
3101dnl ===================================================================
3102dnl Checks that javac is gcj
3103dnl ===================================================================
3104if test "$SOLAR_JAVA" != ""; then
3105    if test `$JAVACOMPILER --version 2>&1 | grep -c "GCC"` -gt 0; then
3106        JAVACISGCJ="yes"
3107    fi
3108fi
3109AC_SUBST(JAVACISGCJ)
3110
3111dnl ===================================================================
3112dnl Checks for javadoc
3113dnl ===================================================================
3114if test "$SOLAR_JAVA" != ""; then
3115    if test -z "$with_jdk_home"; then
3116        AC_PATH_PROG(JAVADOC, javadoc)
3117    else
3118        _javadoc_path="$with_jdk_home/bin/javadoc"
3119        if test "$_os" = "OS2"; then
3120          if test x`echo "$_javadoc_path" | grep -i '\.exe$'` = x; then
3121              _javadoc_path="${_javadoc_path}.exe"
3122          fi
3123        fi
3124        dnl Check if there is a javadoc at all.
3125        if test -x "$_javadoc_path"; then
3126            JAVADOC=$_javadoc_path
3127        else
3128            AC_PATH_PROG(JAVADOC, javadoc)
3129        fi
3130    fi
3131    if test -z "$JAVADOC"; then
3132      AC_MSG_ERROR([$_javadoc_path not found, please use --with-jdk-home])
3133    fi
3134    if test "$_os" = "WINNT"; then
3135        if test x`echo "$JAVADOC" | grep -i '\.exe$'` = x; then
3136            JAVADOC="${JAVADOC}.exe"
3137        fi
3138        JAVADOC=`cygpath -d "$JAVADOC"`
3139        JAVADOC=`cygpath -u "$JAVADOC"`
3140    fi
3141    if test "$_os" = "OS2"; then
3142        if test x`echo "$JAVADOC" | grep -i '\.exe$'` = x; then
3143            JAVADOC="${JAVADOC}.exe"
3144        fi
3145    fi
3146fi
3147
3148if test "$SOLAR_JAVA" != ""; then
3149    dnl first check if we have been asked to autodetect JAVA_HOME with a recent gij
3150    if test "$JDK" = "gcj" -a -z "$JAVA_HOME"; then
3151      if test "x$with_jdk_home" = "x" -a "$_gij_longver" -ge "40200"; then
3152        cat > findhome.java <<_ACEOF
3153[import java.io.File;
3154
3155class findhome
3156{
3157    public static void main(String args[])
3158    {
3159        String jrelocation = System.getProperty("java.home");
3160        File jre = new File(jrelocation);
3161        System.out.println(jre.getParent());
3162    }
3163}]
3164_ACEOF
3165        AC_MSG_CHECKING([if javac works])
3166        javac_cmd="$JAVACOMPILER findhome.java 1>&2"
3167        AC_TRY_EVAL(javac_cmd)
3168        if test $? = 0 && test -f ./findhome.class ; then
3169          AC_MSG_RESULT([javac works])
3170        else
3171          echo "configure: javac test failed" >&5
3172          cat findhome.java >&5
3173          AC_MSG_ERROR([javac does not work - java projects will not build!])
3174        fi
3175
3176        AC_MSG_CHECKING([if gij knows its java.home])
3177        JAVA_HOME=`$JAVAINTERPRETER findhome`
3178        if test $? = 0 && test "$JAVA_HOME" != "" ; then
3179          AC_MSG_RESULT([$JAVA_HOME])
3180        else
3181          echo "configure: java test failed" >&5
3182          cat findhome.java >&5
3183          AC_MSG_ERROR([gij does not know its java.home - use --with-jdk-home])
3184        fi
3185      else
3186        JAVA_HOME=`echo $JAVAINTERPRETER | $SED -n "s,//*bin//*$WITH_JAVA,,p"`
3187      fi
3188    fi
3189
3190    dnl second sanity check JAVA_HOME if possible
3191    if test "$JDK" != "gcj" -o "$_gij_longver" -ge "40200"; then
3192      # check if JAVA_HOME was (maybe incorrectly?) set automatically to /usr
3193      if test "$JAVA_HOME" = "/usr" -a "x$with_jdk_home" = "x"; then
3194         javac_link_f=`readlink -f "$JAVACOMPILER" 2>/dev/null`
3195         if test $? == 0 && test "$JAVACOMPILER" != "$javac_link_f"; then
3196          # try to recover first by looking whether we have a alternatives
3197          # system as in Debian or newer SuSEs where following /usr/bin/javac
3198          # over /etc/alternatives/javac leads to the right bindir where we
3199          # just need to strip a bit away to get a valid JAVA_HOME
3200          # Solaris 11 is even worse, because target is relative, so use -f
3201            JAVA_HOME="$javac_link_f"
3202         elif readlink $JAVACOMPILER >/dev/null 2>/dev/null; then
3203          # Darwin readlink(1) is so primitive it doesn't even support -f
3204          # maybe only one level of symlink (e.g. on Mac)
3205            JAVA_HOME=`readlink $JAVACOMPILER`
3206         else
3207          # else warn
3208          AC_MSG_WARN([JAVA_HOME is set to /usr - this is very likely to be incorrect])
3209          AC_MSG_WARN([if this is the case, please inform the correct JAVA_HOME with --with-jdk-home])
3210          echo "JAVA_HOME is set to /usr - this is very likely to be incorrect" >> warn
3211          echo "if this is the case, please inform the correct JAVA_HOME with --with-jdk-home" >> warn
3212          fi
3213         dnl now that we have the path to the real javac, make a JAVA_HOME out of it..
3214         if test "$JAVA_HOME" != "/usr"; then
3215            if test "$_os" = "Darwin"; then
3216               dnl Leopard returns a non-suitable path with readlink - points to "Current" only
3217               JAVA_HOME=$(echo $JAVA_HOME | $SED -e s,/Current/Commands/javac$,/CurrentJDK/Home,)
3218               dnl Tiger already returns a JDK path..
3219               JAVA_HOME=$(echo $JAVA_HOME | $SED -e s,/CurrentJDK/Commands/javac$,/CurrentJDK/Home,)
3220            else
3221               JAVA_HOME=$(echo $JAVA_HOME | $SED -e s,/bin/javac$,,)
3222            fi
3223         fi
3224      fi
3225      # now check if $JAVA_HOME is really valid
3226      if test "$_os" = "Darwin"; then
3227         if test ! -f "$JAVA_HOME/lib/jvm.cfg" -a "x$with_jdk_home" = "x"; then
3228            JAVA_HOME_OK="NO"
3229         fi
3230      elif test ! -d "$JAVA_HOME/jre" -a "x$with_jdk_home" = "x"; then
3231         JAVA_HOME_OK="NO"
3232      fi
3233      if test "$JAVA_HOME_OK" = "NO"; then
3234         AC_MSG_WARN([JAVA_HOME was not explicitly informed with --with-jdk-home. the configure script])
3235         AC_MSG_WARN([attempted to find JAVA_HOME automatically, but apparently it failed])
3236         AC_MSG_WARN([in case JAVA_HOME is incorrectly set, some projects with not be built correctly])
3237         echo "JAVA_HOME was not explicitly informed with --with-jdk-home. the configure script" >> warn
3238         echo "attempted to find JAVA_HOME automatically, but apparently it failed" >> warn
3239         echo "in case JAVA_HOME is incorrectly set, some projects with not be built correctly" >> warn
3240#         if test "$JDK" = "gcj"; then
3241#             echo "e.g. install java-1.4.2-gcj-compat-devel and use --with-jdk-home=/usr/lib/jvm/java-1.4.2-gcj" >> warn
3242#         fi
3243      fi
3244    fi
3245fi
3246
3247AWTLIB=
3248if test "$SOLAR_JAVA" != ""; then
3249   AC_MSG_CHECKING([for jawt lib name])
3250   if test "$JDK" = "gcj"; then
3251      save_CFLAGS=$CFLAGS
3252      save_LDFLAGS=$LDFLAGS
3253      CFLAGS="$CFLAGS -I$JAVA_HOME/include"
3254      LDFLAGS="$LDFLAGS -L$JAVA_HOME/lib -lgcj"
3255      exec 6>/dev/null # no output
3256      AC_CHECK_HEADER(jni.h, [],
3257                    [AC_MSG_ERROR([jni.h could not be found. Mismatch between gcc and libgcj or libgcj-devel missing?])], [])
3258      AC_CHECK_LIB(gcjawt, JAWT_GetAWT, [ AWTLIB="-lgcjawt -lgcj"] )
3259      exec 6>&1 # output on again
3260      CFLAGS=$save_CFLAGS
3261      LDFLAGS=$save_LDFLAGS
3262   fi
3263   # IBM SDK 1.5.0-sr5 includes libjawt.so with unresolved symbols.
3264   # A workaround is to link also against libpmawt.so
3265   if test "$JDK" = "ibm" ; then
3266      save_CFLAGS=$CFLAGS
3267      save_LDFLAGS=$LDFLAGS
3268      save_LD_LIBRARY_PATH=$LD_LIBRARY_PATH
3269      CFLAGS="$CFLAGS -I$JAVA_HOME/include"
3270      LDFLAGS="$LDFLAGS -L$JAVA_HOME/jre/bin"
3271      LD_LIBRARY_PATH=$JAVA_HOME/jre/bin:$JAVA_HOME/jre/bin/classic:$JAVA_HOME/jre/bin/xawt:$LD_LIBRARY_PATH
3272      export LD_LIBRARY_PATH
3273      exec 6>/dev/null # no output
3274      AC_CHECK_HEADER(jni.h, [],
3275                    [AC_MSG_ERROR([jni.h could not be found.])], [])
3276      AC_CHECK_LIB(jawt, JAWT_GetAWT, [ AWTLIB="-ljawt"] )
3277      if test -z "$AWTLIB"; then
3278         LDFLAGS="$LDFLAGS -L$JAVA_HOME/jre/bin/xawt -ljawt"
3279         AC_CHECK_LIB(mawt, JAWT_GetAWT, [ AWTLIB="-L$JAVA_HOME/jre/bin/xawt -ljawt -lmawt"])
3280      fi
3281      exec 6>&1 # output on again
3282      CFLAGS=$save_CFLAGS
3283      LDFLAGS=$save_LDFLAGS
3284      LD_LIBRARY_PATH=$save_LD_LIBRARY_PATH
3285   fi
3286   if test -z "$AWTLIB"; then
3287      AWTLIB=-ljawt
3288   fi
3289   AC_MSG_RESULT([$AWTLIB])
3290   AC_SUBST(AWTLIB)
3291fi
3292
3293dnl ===================================================================
3294dnl Check for optional gcj for AOT
3295dnl ===================================================================
3296if test "$SOLAR_JAVA" != ""; then
3297  AC_MSG_CHECKING([whether to enable gcj aot compilation])
3298  if test -n "$enable_gcjaot" && test "$enable_gcjaot" != "no"; then
3299     AC_MSG_RESULT([yes])
3300     if test `echo $WITH_JAVA | grep -c "gij"` -eq 0; then
3301        gcjaot="gcj"
3302     else
3303        gcjaot=`echo $WITH_JAVA | $SED -e "s/gij/gcj/g"`
3304     fi
3305     AC_MSG_RESULT([$gcjaot])
3306     if test -n "$with_jdk_home"; then
3307        _javac_path="$with_jdk_home/bin/$gcjaot"
3308        dnl Check if there is a gcj at all.
3309        if test -x "$_javac_path"; then
3310           JAVAAOTCOMPILER=$_javac_path
3311        fi
3312     fi
3313     if test -z "$JAVAAOTCOMPILER"; then
3314        AC_PATH_PROG(JAVAAOTCOMPILER, $gcjaot)
3315     fi
3316     if test -z "$JAVAAOTCOMPILER"; then
3317        AC_MSG_WARN([$gcjaot not found, please use --with-jdk-home])
3318     fi
3319  else
3320     AC_MSG_RESULT([no])
3321  fi
3322fi
3323
3324AC_SUBST(JAVA_HOME)
3325AC_SUBST(JDK)
3326AC_SUBST(JAVAFLAGS)
3327AC_SUBST(JAVAINTERPRETER)
3328AC_SUBST(JAVAIFLAGS)
3329AC_SUBST(JAVACOMPILER)
3330AC_SUBST(JAVAAOTCOMPILER)
3331AC_SUBST(JAVADOC)
3332
3333dnl ===================================================================
3334dnl Checks for specific files.
3335dnl ===================================================================
3336
3337dnl ===================================================================
3338dnl Checks for programs.
3339dnl ===================================================================
3340
3341AC_MSG_CHECKING([whether to enable EPM for packing])
3342if test "$enable_epm" = "yes"; then
3343   AC_MSG_RESULT([yes])
3344   dnl ===================================================================
3345   dnl Check for epm - not needed for windows
3346   dnl ===================================================================
3347   if test "$_os" != "WINNT"; then
3348      if test -n "$with_epm"; then
3349	      EPM=$with_epm
3350      else
3351         AC_PATH_PROG(EPM, epm, no)
3352      fi
3353
3354      if test "$EPM" = "no" && test -n "$with_epm_url" ; then
3355         # At this moment we can not verify the URL or the content that we want to download.
3356      	 # Neither can we apply the test below for ruling out that it is the SunStudio dmake.
3357       	 EPM_URL=$with_epm_url
3358       	 AC_MSG_RESULT([epm will be downloaded and compiled in bootstrap])
3359       	 EPM=
3360         echo "EPM will be built."
3361         BUILD_EPM=YES
3362         BUILD_TYPE="$BUILD_TYPE EPM"
3363      else
3364         if test "$EPM" = "no" ; then
3365	    AC_MSG_ERROR([no. Install ESP Package Manager (www.easysw.com/epm) and/or specify the path to the right epm (--with-epm). Or specify an Url to an epm-3.7 source package (--with-epm-url)])
3366	 else
3367	    # Gentoo has some epm which is something different...
3368            AC_MSG_CHECKING([whether the found epm is the right epm])
3369            if $EPM | grep "ESP Package Manager" >/dev/null 2>/dev/null; then
3370               AC_MSG_RESULT([yes])
3371            else
3372	       AC_MSG_ERROR([no. Install ESP Package Manager (www.easysw.com/epm) and/or specify the path to the right epm])
3373            fi
3374            AC_MSG_CHECKING([epm version])
3375            EPM_VERSION=`$EPM | grep 'ESP Package Manager' | cut -d' ' -f4 | $SED -e s/v//`
3376	    if test "`echo $EPM_VERSION | cut -d'.' -f1`" -gt "3" || \
3377	       	    test "`echo $EPM_VERSION | cut -d'.' -f1`" -eq "3" -a "`echo $EPM_VERSION | cut -d'.' -f2`" -ge "7"; then
3378               AC_MSG_RESULT([OK, >= 3.7])
3379               BUILD_EPM=NO
3380	       if test "$_os" = "Darwin"; then
3381                  AC_MSG_CHECKING([which PackageMaker EPM thinks to use])
3382        	  _pm=`strings $EPM | grep PackageMaker | cut -d" " -f1`
3383        	  if test "$_pm" = "/Developer/Applications/PackageMaker.app/Contents/MacOS/PackageMaker"; then
3384          	     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)])
3385        	  elif test "$_pm" = "/Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker"; then
3386          	     AC_MSG_RESULT([$_pm, ok])
3387        	  else # we never should get here, but go safe
3388		     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)])
3389		  fi
3390	       fi
3391	    else
3392               AC_MSG_ERROR([too old. epm >= 3.7 is required.])
3393	    fi
3394      	 fi
3395      fi
3396   fi
3397
3398   # test which package format to use
3399   AC_MSG_CHECKING([which package format to use])
3400
3401   # defaults
3402   case "$_os" in
3403	OS2)
3404		PKGFORMAT=native
3405		;;
3406	Darwin)
3407		PKGFORMAT=dmg
3408		;;
3409	SunOS)
3410		PKGFORMAT=pkg
3411		;;
3412	Linux)
3413      # if building on Debian, default should be deb...
3414      if test -e /etc/debian_version; then
3415         PKGFORMAT=deb
3416      else
3417         PKGFORMAT=rpm
3418      fi
3419		;;
3420	AIX)
3421		PKGFORMAT=aix
3422		;;
3423	*BSD)
3424		PKGFORMAT=bsd
3425		;;
3426	OSF1)
3427		PKGFORMAT=setld
3428		;;
3429    WINNT)
3430        PKGFORMAT=msi
3431        ;;
3432	# we never should get here since we check the arciecture/os at the beginning,
3433	# but go sure...
3434	*)
3435		AC_MSG_ERROR([unknown system])
3436   esac
3437   if test -n "$with_package_format"; then
3438	for i in $with_package_format; do
3439		case "$i" in
3440			aix | bsd | deb | inst | tardist | osx | pkg | rpm | setld | native | portable | archive | dmg | installed | msi)
3441			;;
3442		*)
3443			AC_MSG_ERROR([unsupported format $i. Supported by EPM are:
3444aix - AIX software distribution
3445bsd - FreeBSD, NetBSD, or OpenBSD software distribution
3446depot or swinstall - HP-UX software distribution
3447deb - Debian software distribution
3448inst or tardist - IRIX software distribution
3449osx - MacOS X software distribution
3450pkg - Solaris software distribution
3451rpm - RedHat software distribution
3452setld - Tru64 (setld) software distribution
3453native - "Native" software distribution for the platform
3454portable - Portable software distribution
3455OOo additionally supports:
3456archive - .tar.gz or .zip
3457dmg - Mac OS X .dmg
3458installed - installation tree
3459msi - Windows .msi
3460			])
3461			;;
3462		esac
3463	done
3464	PKGFORMAT="$with_package_format"
3465   fi
3466   AC_MSG_RESULT([$PKGFORMAT])
3467   if echo "$PKGFORMAT" | $EGREP rpm 2>&1 >/dev/null; then
3468      AC_MSG_CHECKING([for rpm])
3469      for a in "$RPM" rpmbuild rpm; do
3470         $a --usage >/dev/null 2> /dev/null
3471         if test $? -eq 0; then
3472            RPM=$a
3473            break
3474         else
3475            $a --version >/dev/null 2> /dev/null
3476            if test $? -eq 0; then
3477               RPM=$a
3478               break
3479            fi
3480         fi
3481       done
3482       if test -z "$RPM" ; then
3483          AC_MSG_ERROR([not found])
3484       elif "$RPM" --usage 2>&1 | $EGREP -- -bb >/dev/null; then
3485          RPM_PATH=`which $RPM`
3486          AC_MSG_RESULT([$RPM_PATH])
3487       else
3488          AC_MSG_ERROR([cannot build packages. Try installing rpmbuild.])
3489       fi
3490   fi
3491   if echo "$PKGFORMAT" | $EGREP deb 2>&1 >/dev/null; then
3492      AC_PATH_PROG(DPKG, dpkg, no)
3493      if test "$DPKG" = "no"; then
3494         AC_MSG_ERROR([dpkg needed for deb creation. Install dpkg.])
3495      fi
3496   fi
3497   if echo "PKGFORMAT" | $EGREP osx 2>&1 >/dev/null; then
3498      if test "$_os" = "Darwin"; then
3499         AC_MSG_CHECKING([for PackageMaker availability])
3500         if ! test -x /Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker; then
3501            AC_MSG_ERROR([not installed. Please install Apples Dev Tools])
3502         else
3503            AC_MSG_RESULT([ok])
3504         fi
3505      else
3506         AC_MSG_ERROR([PackageMaker needed to build OSX packages and you are not on OSX...])
3507       fi
3508   fi
3509   if echo "$PKGFORMAT" | $EGREP rpm 2>&1 >/dev/null || \
3510      echo "$PKGFORMAT" | $EGREP pkg 2>&1 >/dev/null; then
3511      	if test "$EPM" != "no" && test "$EPM" != "internal"; then
3512           if test "`echo $EPM_VERSION | cut -d'.' -f1`" -lt "4"; then
3513               AC_MSG_CHECKING([whether epm is patched for OOos needs])
3514               if grep "Patched for OpenOffice.org" $EPM >/dev/null 2>/dev/null; then
3515                  AC_MSG_RESULT([yes])
3516               else
3517                  AC_MSG_RESULT([no])
3518                  if echo "$PKGFORMAT" | grep -q rpm; then
3519                      _pt="rpm"
3520                      AC_MSG_WARN([the rpms will need to be installed with --nodeps])
3521                      echo "the rpms will need to be installed with --nodeps" >> warn
3522                  else
3523                      _pt="pkg"
3524                  fi
3525                  AC_MSG_WARN([the ${_pt}s will not be relocateable])
3526                  echo "the ${_pt}s will not be relocateable" >> warn
3527                  AC_MSG_WARN([if you want to make sure installation without --nodeps and
3528                  relocation will work, you need to patch your epm with the
3529                  patch in epm/epm-3.7.patch or build with
3530                  --with-epm=internal which will build a suitable epm])
3531               fi
3532           fi
3533        fi
3534   fi
3535   if echo "$PKGFORMAT" | $EGREP pkg 2>&1 >/dev/null; then
3536      AC_PATH_PROG(PKGMK, pkgmk, no)
3537      if test "$PKGMK" = "no"; then
3538         AC_MSG_ERROR([pkgmk needed for Solaris pkg creation. Install it.])
3539      fi
3540   fi
3541   AC_SUBST(RPM)
3542   AC_SUBST(DPKG)
3543   AC_SUBST(PKGMK)
3544else
3545   AC_MSG_RESULT([no])
3546   BUILD_EPM=NO
3547   EPM=NO
3548   PKGFORMAT=native
3549fi
3550AC_SUBST(BUILD_EPM)
3551AC_SUBST(EPM_URL)
3552AC_SUBST(EPM)
3553AC_SUBST(PKGFORMAT)
3554
3555dnl ===================================================================
3556dnl Check for gperf
3557dnl ===================================================================
3558AC_PATH_PROG(GPERF, gperf)
3559if test -z "$with_gperf"; then
3560    AC_PATH_PROG(GPERF, gperf)
3561    if test -z "$GPERF"; then
3562       AC_MSG_ERROR([gperf not found but needed. Install it and/or specify --with-gperf=/path/to/it.])
3563    fi
3564else
3565  if test -x "$with_gperf"; then
3566    GPERF=$with_gperf
3567  else
3568    AC_MSG_ERROR([--with-gperf did not point to an executable])
3569  fi
3570fi
3571AC_MSG_CHECKING([gperf version])
3572if test "`$GPERF --version | $EGREP ^GNU\ gperf | $AWK '{ print $3 }' | cut -d. -f1`" -ge "3"; then
3573	AC_MSG_RESULT([OK])
3574   GPERF=$GPERF
3575else
3576	AC_MSG_ERROR([too old, you need at least 3.0.0])
3577fi
3578AC_SUBST(GPERF)
3579
3580dnl ===================================================================
3581dnl Check for building stax
3582dnl ===================================================================
3583AC_MSG_CHECKING([whether to build the stax])
3584if test -f "./stax/download/jsr173_1.0_api.jar"; then
3585   BUILD_STAX=NO
3586   AC_MSG_RESULT([no, will use the prebuilt stax/download/jsr173_1.0_api.jar])
3587else
3588   BUILD_STAX=YES
3589   AC_MSG_RESULT([yes])
3590fi
3591AC_SUBST(BUILD_STAX)
3592
3593dnl ===================================================================
3594dnl Check for building ODK
3595dnl ===================================================================
3596AC_MSG_CHECKING([whether to build the ODK])
3597if test "z$enable_odk" = "z" -o "$enable_odk" != "no"; then
3598   AC_MSG_RESULT([yes])
3599   if test "$WITH_JAVA" != "no"; then
3600   AC_MSG_CHECKING([for external/unowinreg/unowinreg.dll])
3601   if ! test -f "./external/unowinreg/unowinreg.dll"; then
3602      HAVE_UNOWINREG_DLL=no
3603   else
3604      HAVE_UNOWINREG_DLL=yes
3605   fi
3606   if test "$HAVE_UNOWINREG_DLL" = "yes"; then
3607      AC_MSG_RESULT([found])
3608      BUILD_UNOWINREG=NO
3609   else
3610      if test "$_os" = "WINNT"; then
3611         AC_MSG_RESULT([not found, will be built])
3612      else
3613         AC_MSG_WARN([not found, will be cross-built using mingw32])
3614      fi
3615      BUILD_UNOWINREG=YES
3616   fi
3617   if test "$_os" != "WINNT" && test "$BUILD_UNOWINREG" = "YES"; then
3618      if test -z "$WITH_MINGWIN" || test "$WITH_MINGWIN" = "0"; then
3619         AC_MSG_ERROR([for rebuilding unowinreg.dll you need the mingw32 C++ compiler.
3620         Specify mingw32 g++ executable name with --with-mingwin.
3621         Or use prebuilt one from http://tools.openoffice.org/unowinreg_prebuild/680/ and
3622         put it into external/unowinreg])
3623      fi
3624      if echo "$WITH_MINGWIN" | $EGREP -q "/"; then
3625         if ! test -x "$WITH_MINGWIN"; then MINGWCXX=false; else MINGWCXX=`basename $WITH_MINGWIN`; fi
3626      else
3627         AC_CHECK_TOOL(MINGWCXX, $WITH_MINGWIN, false)
3628      fi
3629      if test "$MINGWCXX" = "false"; then
3630         AC_MSG_ERROR(specified MinGW32 C++ cross-compiler not found. Install it or correct name.)
3631      fi
3632      AC_MSG_CHECKING(whether we are using the MinGW32 cross C++ compiler)
3633      if ! echo "`$MINGWCXX -dumpmachine`" | grep -q mingw32; then
3634         AC_MSG_ERROR(no)
3635      else
3636         AC_MSG_RESULT(yes)
3637      fi
3638      if echo "$WITH_MINGWIN" | $EGREP -q "/"; then
3639         if ! test -x "`echo $WITH_MINGWIN | $SED -e s/g++/strip/ | $SED -e s/c++/strip/`"; then MINGSTRIP=false; else MINGWSTRIP=$(basename $(echo $WITH_MINGWIN | $SED -e s/g++/strip/ | $SED -e s/c++/strip/)); fi
3640      else
3641         AC_CHECK_TOOL(MINGWSTRIP, `echo $WITH_MINGWIN | $SED -e s/g++/strip/ | $SED -e s/c++/strip/`, false)
3642      fi
3643      if test "$MINGWSTRIP" = "false"; then
3644         AC_MSG_ERROR(MinGW32 binutils needed. Install them.)
3645      fi
3646      AC_LANG_PUSH([C++])
3647      save_CXX=$CXX
3648      save_CXXCPP=$CXXCPP
3649      CXX=$MINGWCXX
3650      CXXCPP="$MINGWCXX -E"
3651      save_CXXFLAGS=$CXXFLAGS
3652      save_CPPFLAGS=$CPPFLAGS
3653      CXXFLAGS="$CXXFLAGS -I$JAVA_HOME/include"
3654      CPPFLAGS="$CPPFLAGS -I$JAVA_HOME/include"
3655      # LIBS contains -lcrypt etc due to teh AC_CHECK_LIBS which obviously
3656      # do not make sense here (and 'd make the check fail)
3657      save_LIBS=$LIBS
3658      LIBS=""
3659      AC_HAVE_LIBRARY(kernel32)
3660      AC_HAVE_LIBRARY(advapi32)
3661      AC_CHECK_HEADER(windows.h, [], [AC_MSG_ERROR([windows.h missing])])
3662      CXXFLAGS=$save_CXXFLAGS
3663      CPPFLAGS=$save_CPPFLAGS
3664      CXX=$save_CXX
3665      CXXCPP=$save_CXXCPP
3666      LIBS=$save_LIBS
3667      AC_LANG_POP([C++])
3668      fi
3669   fi
3670   BUILD_TYPE="$BUILD_TYPE ODK"
3671else
3672   AC_MSG_RESULT([no])
3673   BUILD_UNOWINREG=NO
3674fi
3675AC_SUBST(BUILD_UNOWINREG)
3676AC_SUBST(MINGWCXX)
3677AC_SUBST(MINGWSTRIP)
3678
3679dnl ===================================================================
3680dnl Check for system stdlibs
3681dnl ===================================================================
3682AC_MSG_CHECKING([whether to provide libstdc++/libgcc_s in the installset])
3683if test -n "$with_system_stdlibs" -o -n "$with_system_libs" && \
3684   test "$with_system_stdlibs" != "no"; then
3685   AC_MSG_RESULT([no])
3686   SYSTEM_STDLIBS=YES
3687else
3688   AC_MSG_RESULT([yes])
3689   SYSTEM_STDLIBS=NO
3690fi
3691AC_SUBST(SYSTEM_STDLIBS)
3692
3693dnl ===================================================================
3694dnl Check for system zlib
3695dnl ===================================================================
3696if test "$_os" = "Darwin" && test "$with_system_zlib" != "no"; then
3697   with_system_zlib=yes
3698fi
3699AC_MSG_CHECKING([which zlib to use])
3700if test -n "$with_system_zlib" -o -n "$with_system_libs" && \
3701	test "$with_system_zlib" != "no"; then
3702    AC_MSG_RESULT([external])
3703    SYSTEM_ZLIB=YES
3704    AC_CHECK_HEADER(zlib.h, [],
3705        [AC_MSG_ERROR(zlib.h not found. install zlib)], [])
3706    AC_CHECK_LIB(z, deflate, [ ZLIB=-lz ],
3707        [AC_MSG_ERROR(zlib not found or functional)], [])
3708else
3709    AC_MSG_RESULT([internal])
3710    SYSTEM_ZLIB=NO
3711    BUILD_TYPE="$BUILD_TYPE ZLIB"
3712fi
3713AC_SUBST(SYSTEM_ZLIB)
3714
3715dnl ===================================================================
3716dnl Check for system jpeg
3717dnl ===================================================================
3718AC_MSG_CHECKING([which jpeg to use])
3719if test -n "$with_system_jpeg" -o -n "$with_system_libs" && \
3720	test "$with_system_jpeg" != "no"; then
3721    AC_MSG_RESULT([external])
3722    SYSTEM_JPEG=YES
3723    AC_CHECK_HEADER(jpeglib.h, [],
3724        [AC_MSG_ERROR(jpeg.h not found. install libjpeg)], [])
3725    AC_CHECK_LIB(jpeg, jpeg_resync_to_restart, [ JPEG3RDLIB=-ljpeg ],
3726	[AC_MSG_CHECKING(jpeg library not found or fuctional)], [])
3727else
3728    AC_MSG_RESULT([internal])
3729    SYSTEM_JPEG=NO
3730    BUILD_TYPE="$BUILD_TYPE JPEG"
3731fi
3732AC_SUBST(SYSTEM_JPEG)
3733
3734dnl ===================================================================
3735dnl Check for system expat
3736dnl ===================================================================
3737AC_MSG_CHECKING([which expat to use])
3738if test -n "$with_system_expat" -o -n "$with_system_libs" && \
3739	test "$with_system_expat" != "no"; then
3740    AC_MSG_RESULT([external])
3741    SYSTEM_EXPAT=YES
3742    AC_CHECK_HEADER(expat.h, [],
3743        [AC_MSG_ERROR(expat.h not found. install expat)], [])
3744    AC_CHECK_LIB(expat, XML_ParserCreate, [],
3745	[AC_MSG_RESULT(expat library not found or functional.)], [])
3746else
3747    AC_MSG_RESULT([internal])
3748    SYSTEM_EXPAT=NO
3749    BUILD_TYPE="$BUILD_TYPE EXPAT"
3750fi
3751AC_SUBST(SYSTEM_EXPAT)
3752
3753dnl ===================================================================
3754dnl Check for system libwpd
3755dnl ===================================================================
3756AC_MSG_CHECKING([which libwpd to use])
3757if test -n "$with_system_libwpd" -o -n "$with_system_libs" && \
3758        test "$with_system_libwpd" != "no"; then
3759    AC_MSG_RESULT([external])
3760    SYSTEM_LIBWPD=YES
3761    PKG_CHECK_MODULES( LIBWPD, libwpd-0.8 )
3762else
3763    AC_MSG_RESULT([no])
3764    SYSTEM_LIBWPD=
3765fi
3766AC_SUBST(SYSTEM_LIBWPD)
3767AC_SUBST(LIBWPD_CFLAGS)
3768AC_SUBST(LIBWPD_LIBS)
3769
3770dnl ===================================================================
3771dnl Check for system cppunit
3772dnl ===================================================================
3773WITH_CPPUNIT=
3774AC_MSG_CHECKING([which cppunit to use])
3775if test -n "$with_system_cppunit" -o -n "$with_system_libs" && \
3776        test "$with_system_cppunit" != "no"; then
3777    SYSTEM_CPPUNIT=YES
3778    # might work for earlier, too but go sure:
3779    PKG_CHECK_MODULES( CPPUNIT,
3780                       cppunit >= 1.12.0,
3781                       WITH_CPPUNIT="YES",
3782                       WITH_CPPUNIT=")
3783    if test -n "$WITH_CPPUNIT"; then
3784       AC_MSG_RESULT([found system cppunit $CPPUNIT])
3785    else
3786       AC_MSG_WARN([dit not find system cppunit version 1.12.0 or later])
3787    fi
3788
3789else
3790    AC_MSG_WARN([not using cppunit])
3791    SYSTEM_CPPUNIT=NO
3792fi
3793AC_SUBST(SYSTEM_CPPUNIT)
3794AC_SUBST(CPPUNIT_CFLAGS)
3795AC_SUBST(CPPUNIT_LIBS)
3796AC_SUBST(WITH_CPPUNIT)
3797
3798dnl ===================================================================
3799dnl Check whether freetype is available
3800dnl ===================================================================
3801if test  "$test_freetype" = "yes"; then
3802   AC_MSG_CHECKING([whether freetype is available])
3803	PKG_CHECK_MODULES( FREETYPE, freetype2 >= 2.0 )
3804fi
3805AC_SUBST(FREETYPE_CFLAGS)
3806AC_SUBST(FREETYPE_LIBS)
3807
3808dnl ===================================================================
3809dnl Check whether freetype2 supports emboldening
3810dnl ===================================================================
3811if test  "$test_freetype" = "yes"; then
3812    save_CPPFLAGS="$CPPFLAGS"
3813    save_LDFLAGS="$LDFLAGS"
3814    save_LIBS="$LIBS"
3815    CPPFLAGS="$CPPFLAGS $FREETYPE_CFLAGS"
3816    LDFLAGS="$LDFLAGS $FREETYPE_LIBS"
3817    AC_CHECK_LIB(freetype, FT_GlyphSlot_Embolden,
3818                 [USE_FT_EMBOLDEN="YES"], [USE_FT_EMBOLDEN="NO"], [])
3819    LDFLAGS="$save_LDFLAGS"
3820    CPPFLAGS="$save_CPPFLAGS"
3821    LIBS="$save_LIBS"
3822fi
3823AC_SUBST(USE_FT_EMBOLDEN)
3824
3825if test -n "$with_system_libxslt" -o -n "$with_system_libs" && \
3826   test "$with_system_libxslt" != "no"; then
3827    if test -z "$with_system_libxml" -a -z "$with_system_libs" || \
3828      test "$with_system_libxml" = "no"; then
3829      # somehow AC_MSG_WARN won't work...
3830       echo "to prevent incompatibilities between internal libxml2 and libxslt, the office will be build with system-libxml"
3831       echo "to prevent incompatibilities between internal libxml2 and libxslt, the office will be build with system-libxml" >> warn
3832       with_system_libxml=yes
3833    fi
3834fi
3835if test -n "$with_system_libxml" -o -n "$with_system_libs" && \
3836   test "$with_system_libxml" != "no"; then
3837    if test -z "$with_system_libxslt" -a -z "$with_system_libs" || \
3838      test "$with_system_libxslt" = "no"; then
3839      # somehow AC_MSG_WARN won't work...
3840       echo "to prevent incompatibilities between internal libxslt and libxml2, the office will be build with system-libxslt"
3841       echo "to prevent incompatibilities between internal libxslt and libxml2, the office will be build with system-libxslt" >> warn
3842       with_system_libxslt=yes
3843    fi
3844fi
3845
3846dnl ===================================================================
3847dnl Check for system libxslt
3848dnl ===================================================================
3849AC_MSG_CHECKING([which libxslt to use])
3850if test -n "$with_system_libxslt" -o -n "$with_system_libs" -o \
3851       "$_os" = "Darwin" && \
3852   test "$with_system_libxslt" != "no"; then
3853   AC_MSG_RESULT([external])
3854   SYSTEM_LIBXSLT=YES
3855
3856   PKG_CHECK_MODULES_MACHACK(LIBXSLT, xslt-config, libxslt)
3857
3858   dnl Check for xsltproc
3859   AC_PATH_PROG(XSLTPROC, xsltproc, no)
3860   if test "$XSLTPROC" = "no"; then
3861      AC_MSG_ERROR([xsltproc is required])
3862   fi
3863else
3864   AC_MSG_RESULT([internal])
3865   SYSTEM_LIBXSLT=NO
3866   BUILD_TYPE="$BUILD_TYPE LIBXSLT"
3867fi
3868AC_SUBST(SYSTEM_LIBXSLT)
3869AC_SUBST(LIBXSLT_CFLAGS)
3870AC_SUBST(LIBXSLT_LIBS)
3871
3872
3873dnl ===================================================================
3874dnl Check for system libxml
3875dnl ===================================================================
3876AC_MSG_CHECKING([which libxml to use])
3877if test -n "$with_system_libxml" -o -n "$with_system_libs" -o \
3878            "$_os" = "Darwin" && \
3879	test "$with_system_libxml" != "no"; then
3880    AC_MSG_RESULT([external])
3881    SYSTEM_LIBXML=YES
3882    PKG_CHECK_MODULES_MACHACK(LIBXML, xml2-config, libxml-2.0 >= 2.0)
3883    BUILD_TYPE="$BUILD_TYPE LIBXMLSEC"
3884else
3885    AC_MSG_RESULT([internal])
3886    SYSTEM_LIBXML=NO
3887    BUILD_TYPE="$BUILD_TYPE LIBXML2 LIBXMLSEC"
3888fi
3889AC_SUBST(SYSTEM_LIBXML)
3890AC_SUBST(LIBXML_CFLAGS)
3891AC_SUBST(LIBXML_LIBS)
3892
3893dnl ===================================================================
3894dnl Check for system python
3895dnl ===================================================================
3896AC_MSG_CHECKING([which python to use])
3897if test "$_os" = "Darwin" && test "$with_system_python" != "no"; then
3898   with_system_python=yes
3899   AC_MSG_RESULT([compiling against MacOSX10.4u.sdk (python version 2.3)])
3900   PYTHON_CFLAGS="-I/Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/Python.framework/Versions/2.3/include/python2.3"
3901   PYTHON_LIBS="-framework Python"
3902elif test -n "$with_system_python" -o -n "$with_system_libs" && \
3903	test "$with_system_python" != "no"; then
3904   with_system_python=yes
3905   AC_MSG_RESULT([external])
3906   AM_PATH_PYTHON([2.2])
3907
3908   python_include=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_config_var('INCLUDEPY');"`
3909   python_version=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_config_var('VERSION');"`
3910   PYTHON_CFLAGS="-I$python_include"
3911   PYTHON_LIBS="-lpython$python_version"
3912fi
3913if test "$with_system_python" = "yes" ; then
3914   SYSTEM_PYTHON=YES
3915   dnl check if the headers really work:
3916   save_CPPFLAGS="$CPPFLAGS"
3917   CPPFLAGS="$CPPFLAGS $PYTHON_CFLAGS"
3918   AC_CHECK_HEADER(Python.h, [],
3919       [AC_MSG_ERROR(Python headers not found)], [])
3920   CPPFLAGS="$save_CPPFLAGS"
3921else
3922   SYSTEM_PYTHON=NO
3923   BUILD_TYPE="$BUILD_TYPE PYTHON"
3924   AC_MSG_RESULT([internal])
3925   # Embedded python dies without Home set
3926   if test "z$HOME" = "z"; then
3927      export HOME="";
3928   fi
3929   # bz2 tarball and bzip2 is not standard
3930   if test -z "$BZIP2"; then
3931	AC_PATH_PROG( BZIP2, bzip2)
3932	if test -z "$BZIP2"; then
3933   		AC_MSG_ERROR([the internal Python module has a .tar.bz2. You need bzip2])
3934   	fi
3935   fi
3936fi
3937AC_SUBST(SYSTEM_PYTHON)
3938AC_SUBST(PYTHON_CFLAGS)
3939AC_SUBST(PYTHON_LIBS)
3940HOME=`echo $HOME | sed 's:\\\\:/:g'`
3941AC_SUBST(HOME)
3942
3943dnl ===================================================================
3944dnl Check for system lucene
3945dnl ===================================================================
3946AC_MSG_CHECKING([which lucene to use])
3947if test -n "$with_system_lucene" -o -n "$with_system_libs" && \
3948       test "$with_system_lucene" != "no" && test "$with_system_jars" != "no"; then
3949        AC_MSG_RESULT([external])
3950        SYSTEM_LUCENE=YES
3951        if test -z $LUCENE_CORE_JAR; then
3952          AC_CHECK_FILE(/usr/share/java/lucene-core-2.3.jar,
3953            [ LUCENE_CORE_JAR=/usr/share/java/lucene-core-2.3.jar ],
3954            [
3955              AC_CHECK_FILE(/usr/share/java/lucene-core.jar,
3956                [ LUCENE_CORE_JAR=/usr/share/java/lucene-core.jar ],
3957                [ AC_CHECK_FILE(/usr/share/java/lucene.jar,
3958                   [ LUCENE_CORE_JAR=/usr/share/java/lucene.jar ],
3959                   [ AC_MSG_ERROR(lucene-core.jar replacement not found)]
3960                  )
3961                ]
3962              )
3963            ]
3964          )
3965        else
3966          AC_CHECK_FILE($LUCENE_CORE_JAR, [],
3967               [AC_MSG_ERROR(lucene-core.jar not found.)], [])
3968        fi
3969
3970        if test -z $LUCENE_ANALYZERS_JAR; then
3971          AC_CHECK_FILE(/usr/share/java/lucene-analyzers-2.3.jar,
3972            [ LUCENE_ANALYZERS_JAR=/usr/share/java/lucene-analyzers-2.3.jar ],
3973            [
3974              AC_CHECK_FILE(/usr/share/java/lucene-contrib/lucene-analyzers.jar,
3975                [ LUCENE_ANALYZERS_JAR=/usr/share/java/lucene-contrib/lucene-analyzers.jar ],
3976                [ AC_MSG_ERROR(lucene-analyzers.jar replacement not found.)]
3977              )
3978            ]
3979          )
3980        else
3981          AC_CHECK_FILE($LUCENE_CORE_JAR, [],
3982               [ AC_MSG_ERROR(lucene-analyzers.jar not found.)], [])
3983        fi
3984        AC_MSG_CHECKING([whether lucene is version 2.x])
3985        export LUCENE_CORE_JAR
3986        if $PERL -e 'use Archive::Zip;
3987            my $file = "$ENV{'LUCENE_CORE_JAR'}";
3988            my $zip = Archive::Zip->new( $file );
3989            my $mf = $zip->contents ( "META-INF/MANIFEST.MF" );
3990            if ( $mf =~ m/Specification-Version: 2.*/ ) {
3991                exit 0;
3992            } else {
3993                exit 1;
3994            }'; then
3995            AC_MSG_RESULT([yes])
3996         else
3997            AC_MSG_ERROR([no, you need lucene 2])
3998         fi
3999
4000else
4001    AC_MSG_RESULT([internal])
4002    SYSTEM_LUCENE=NO
4003    BUILD_TYPE="$BUILD_TYPE LUCENE"
4004fi
4005AC_SUBST(SYSTEM_LUCENE)
4006AC_SUBST(LUCENE_CORE_JAR)
4007AC_SUBST(LUCENE_ANALYZERS_JAR)
4008
4009AC_MSG_CHECKING([whether to build the MySQL Connector extension])
4010if test -n "$enable_mysql_connector" -a "$enable_mysql_connector" != "no"; then
4011  AC_MSG_RESULT([yes])
4012  ENABLE_MYSQLC=YES
4013  AC_MSG_CHECKING([for mysqlc module])
4014  if test -d mysqlc; then
4015   AC_MSG_RESULT([OK])
4016  else
4017   AC_MSG_ERROR([not existing. get it (did you get the -extensions tarball?)])
4018  fi
4019  BUILD_TYPE="$BUILD_TYPE MYSQLC"
4020else
4021  AC_MSG_RESULT([no])
4022  ENABLE_MYSQLC=NO
4023fi
4024AC_SUBST(ENABLE_MYSQLC)
4025
4026if test "$ENABLE_MYSQLC" = "YES"; then
4027dnl ===================================================================
4028dnl Check for system MySQL
4029dnl ===================================================================
4030AC_MSG_CHECKING([for mysql pre-requisites])
4031if test -n "$with_system_mysql" -o -n "$with_system_libs" && \
4032       test "$with_system_mysql" != "no" && test "$with_system_libs" != "no"; then
4033	AC_MSG_RESULT([external MySQL])
4034	SYSTEM_MYSQL=YES
4035	AC_PATH_PROG( MYSQLCONFIG, mysql_config)
4036	AC_MSG_CHECKING([MySQL version])
4037	if test -z "$MYSQLCONFIG" -o ! -x "$MYSQLCONFIG" ; then
4038		AC_MSG_ERROR([can not find/execute mysql_config]);
4039	fi
4040	MYSQL_VERSION=`$MYSQLCONFIG --version`
4041	MYSQL_MAJOR=`$MYSQLCONFIG --version | cut -d"." -f1`
4042	if test "$MYSQL_MAJOR" -ge "5"; then
4043		AC_MSG_RESULT([OK])
4044	else
4045		AC_MSG_ERROR([too old, use 5.0.x or 5.1.x])
4046	fi
4047	AC_MSG_CHECKING([for MySQL Client library])
4048	MYSQL_INC=`$MYSQLCONFIG --include`
4049	MYSQL_LIB=`$MYSQLCONFIG --libs`
4050	MYSQL_DEFINES=`$MYSQLCONFIG --cflags | sed -e s,$MYSQL_INC,,`
4051	AC_MSG_RESULT([includes $MYSQL_INC, libraries $MYSQL_LIB])
4052else
4053    SYSTEM_MYSQL=NO
4054    if test -n "$with_libmysql_path"; then
4055        AC_MSG_RESULT([external Connector/C (libmysql)])
4056        LIBMYSQL=libmysql.so
4057        if test "$_os" = "Darwin"; then
4058            LIBMYSQL=libmysql.dylib
4059        elif test "$_os" = "WINNT"; then
4060            LIBMYSQL=libmysql.dll
4061        fi
4062        AC_MSG_CHECKING([for $LIBMYSQL])
4063        if test -e "$with_libmysql_path/lib/$LIBMYSQL"; then
4064            AC_MSG_RESULT([found.])
4065            LIBMYSQL_PATH=$with_libmysql_path
4066        else
4067            AC_MSG_ERROR([not found. Please specify proper path in --with-libmysql-path.])
4068        fi
4069    else
4070        AC_MSG_ERROR([not given. Please specify either --with-system-mysql or --with-libmysql-path])
4071    fi
4072fi
4073AC_SUBST(SYSTEM_MYSQL)
4074AC_SUBST(MYSQL_INC)
4075AC_SUBST(MYSQL_LIB)
4076AC_SUBST(MYSQL_DEFINES)
4077AC_SUBST(LIBMYSQL_PATH)
4078
4079AC_LANG_PUSH([C++])
4080dnl ===================================================================
4081dnl Check for system MySQL C++ Connector
4082dnl ===================================================================
4083# FIXME!
4084# who thought this too-generic cppconn dir was a good idea?
4085AC_MSG_CHECKING([MySQL Connector/C++])
4086if test -n "$with_system_mysql_cppconn" -o -n "$with_system_libs" && \
4087		test "$with_system_mysql_cppconn" != "no" && test "$with_system_libs" != "no"; then
4088	AC_MSG_RESULT([external])
4089	SYSTEM_MYSQL_CPPCONN=YES
4090        AC_LANG_PUSH([C++])
4091	AC_CHECK_HEADER(mysql_driver.h, [],
4092					[AC_MSG_ERROR(mysql_driver.h not found. install MySQL C++ Connectivity)], [])
4093	AC_CHECK_LIB(mysqlcppconn, main, [],
4094					[AC_MSG_ERROR(MySQL C++ Connectivity lib not found or functional)], [])
4095   AC_MSG_CHECKING([version])
4096      AC_TRY_RUN([
4097#include <mysql_driver.h>
4098
4099int main(int argc, char **argv) {
4100	sql::Driver *driver;
4101	driver = get_driver_instance();
4102	if (driver->getMajorVersion() > 1 || \
4103	   (driver->getMajorVersion() == 1 && driver->getMinorVersion() > 0) || \
4104	   (driver->getMajorVersion() == 1 && driver->getMinorVersion() == 0 && driver->getPatchVersion() >= 6))
4105        return 0;
4106      else
4107        return 1;
4108}
4109      ], [AC_MSG_RESULT(OK)], [AC_MSG_ERROR([not suitable, we need >= 1.0.6])])
4110        AC_LANG_POP([C++])
4111
4112else
4113	AC_MSG_RESULT([no])
4114	SYSTEM_MYSQL_CPPCONN=
4115fi
4116AC_LANG_POP([C++])
4117AC_SUBST(SYSTEM_MYSQL_CPPCONN)
4118fi
4119
4120dnl ===================================================================
4121dnl Check for system hsqldb
4122dnl ===================================================================
4123AC_MSG_CHECKING([which hsqldb to use])
4124if test -n "$with_system_hsqldb" -o -n "$with_system_libs" && \
4125       test "$with_system_hsqldb" != "no" && test "$with_system_jars" != "no"; then
4126        AC_MSG_RESULT([external])
4127        SYSTEM_HSQLDB=YES
4128        if test -z $HSQLDB_JAR; then
4129               HSQLDB_JAR=/usr/share/java/hsqldb.jar
4130        fi
4131        AC_CHECK_FILE($HSQLDB_JAR, [],
4132               [AC_MSG_ERROR(hsqldb.jar not found.)], [])
4133        AC_MSG_CHECKING([whether hsqldb is 1.8.0.x])
4134        export HSQLDB_JAR
4135        if $PERL -e 'use Archive::Zip;
4136            my $file = "$ENV{'HSQLDB_JAR'}";
4137            my $zip = Archive::Zip->new( $file );
4138            my $mf = $zip->contents ( "META-INF/MANIFEST.MF" );
4139            if ( $mf =~ m/Specification-Version: 1.8.*/ ) {
4140               push @l, split(/\n/, $mf);
4141               foreach my $line (@l) {
4142                  if ($line =~ m/Specification-Version:/) {
4143                      ($t, $version) = split (/:/,$line);
4144                      $version =~ s/^\s//;
4145                      ($a, $b, $c, $d) = split (/\./,$version);
4146                      if ($c == "0" && $d > "8")  {
4147                          exit 0;
4148                      } else {
4149                          exit 1;
4150                      }
4151                  }
4152               }
4153            } else {
4154                exit 1;
4155            }'; then
4156            AC_MSG_RESULT([yes])
4157         else
4158            AC_MSG_ERROR([no, you need hsqldb >= 1.8.0.9 but < 1.8.1])
4159         fi
4160else
4161    AC_MSG_RESULT([internal])
4162    SYSTEM_HSQLDB=NO
4163    BUILD_TYPE="$BUILD_TYPE HSQLDB"
4164fi
4165AC_SUBST(SYSTEM_HSQLDB)
4166AC_SUBST(HSQLDB_JAR)
4167
4168dnl ===================================================================
4169dnl Check for system beanshell
4170dnl ===================================================================
4171ENABLE_BEANSHELL=YES
4172AC_MSG_CHECKING([which beanshell to use])
4173if test -n "$with_system_beanshell" -o -n "$with_system_libs" && \
4174       test "$with_system_beanshell" != "no" && test "$with_system_jars" != "no"; then
4175        AC_MSG_RESULT([external])
4176        SYSTEM_BSH=YES
4177        if test -z $BSH_JAR; then
4178               BSH_JAR=/usr/share/java/bsh.jar
4179        fi
4180        AC_CHECK_FILE($BSH_JAR, [],
4181               [AC_MSG_ERROR(bsh.jar not found.)], [])
4182elif test "x$enable_beanshell" = "xyes"; then
4183    AC_MSG_RESULT([internal])
4184    SYSTEM_BSH=NO
4185    BUILD_TYPE="$BUILD_TYPE BSH"
4186else
4187    AC_MSG_RESULT([none (disabled)])
4188    SYSTEM_BSH=NO
4189    ENABLE_BEANSHELL=NO
4190fi
4191AC_SUBST(SYSTEM_BSH)
4192AC_SUBST(BSH_JAR)
4193AC_SUBST(ENABLE_BEANSHELL)
4194
4195
4196dnl ===================================================================
4197dnl Check for saxon.  It can come from two different places:
4198dnl - pre-installed on the system.  This is checked when the --with-system-saxon
4199dnl   option is given to configure.
4200dnl   The exact place can be specified with the --with-saxon-jar=<path> option.
4201dnl - From the saxon tar ball in ext_sources/.  This is used when --enable-saxon
4202dnl   is given to configure but not any of --with-system-saxon or --with-saxon-jar.
4203dnl ===================================================================
4204DISABLE_SAXON=
4205AC_MSG_CHECKING([which saxon to use])
4206if test -n "$with_system_saxon" -o -n "$with_system_libs" && \
4207       test "$with_system_saxon" != "no" && test "$with_system_jars" != "no"; then
4208        AC_MSG_RESULT([external])
4209        SYSTEM_SAXON=YES
4210        if test -z $SAXON_JAR; then
4211          AC_CHECK_FILE(/usr/share/java/saxon9.jar,
4212            [ SAXON_JAR=/usr/share/java/saxon9.jar ],
4213            [
4214              AC_CHECK_FILE(/usr/share/java/saxon.jar,
4215                [ SAXON_JAR=/usr/share/java/saxon.jar ],
4216                [ AC_CHECK_FILE(/usr/share/java/saxon9.jar,
4217                    [ SAXON_JAR=/usr/share/java/saxon9.jar ],
4218                    [ AC_MSG_ERROR(saxon.jar replacement not found)]
4219                  )
4220                ]
4221              )
4222            ]
4223          )
4224        else
4225          AC_CHECK_FILE($SAXON_JAR, [],
4226               [AC_MSG_ERROR(saxon.jar replacement not found.)], [])
4227        fi
4228        if test -n "$SERIALIZER_JAR"; then
4229          AC_CHECK_FILE($SERIALIZER_JAR, [],
4230               [AC_MSG_ERROR(serializer.jar not found.)], [])
4231          AC_SUBST(SERIALIZER_JAR)
4232        fi
4233
4234dnl Saxon comes in two practically available versions, the out-of-date saxonb which
4235dnl supports the java extensions that OOo uses, and the up-to-date saxon he
4236dnl "home edition" version, which is crippled to not support those java extensions.
4237dnl And as an aside the he one also needs to be tweaked to include
4238dnl a META-INF/services to broadcast that it supports the jaxp transform factory
4239
4240        AC_MSG_CHECKING([if saxon works])
4241        cat > saxontest.java <<_ACEOF
4242[import javax.xml.transform.TransformerFactory;
4243import javax.xml.transform.Transformer;
4244import javax.xml.transform.stream.StreamSource;
4245import java.io.*;
4246
4247import net.sf.saxon.FeatureKeys;
4248
4249class saxontest {
4250    public static void main(String[] args) {
4251      System.setProperty("javax.xml.transform.TransformerFactory",
4252        "net.sf.saxon.TransformerFactoryImpl");
4253      try {
4254        TransformerFactory tfactory = TransformerFactory.newInstance();
4255	// some external saxons (Debian, Ubuntu, ...) have this disabled
4256	// per default
4257	tfactory.setAttribute(FeatureKeys.ALLOW_EXTERNAL_FUNCTIONS, new Boolean(true));
4258        System.out.println("TransformerFactory is" +
4259          tfactory.getClass().getName());
4260        Transformer transformer = tfactory.newTransformer(
4261          new StreamSource(new File(args[0])));
4262      } catch(Exception e){
4263        e.printStackTrace(System.err);
4264        System.exit(-1);
4265      }
4266      System.exit(0);
4267    }
4268}
4269]
4270_ACEOF
4271        cat > saxontest.xsl<<_ACEOF
4272[<?xml version="1.0" encoding="UTF-8"?>
4273<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
4274 <xsl:template match="/">
4275  <xsl:value-of select="math:sqrt(1)" xmlns:math="java:java.lang.Math"/>
4276 </xsl:template>
4277</xsl:stylesheet>
4278]
4279_ACEOF
4280        javac_cmd="$JAVACOMPILER -cp $SAXON_JAR saxontest.java 1>&2"
4281        AC_TRY_EVAL(javac_cmd)
4282        if test $? = 0 && test -f ./saxontest.class ; then
4283            java_cmd="$JAVAINTERPRETER -cp $SAXON_JAR:. saxontest saxontest.xsl 1>&2"
4284            AC_TRY_EVAL(java_cmd)
4285            if test $? = 0; then
4286              AC_MSG_RESULT([yes])
4287            else
4288              cat saxontest.java >&5
4289              AC_MSG_RESULT([no])
4290              AC_MSG_ERROR([Non-functional saxon jar, e.g. crippled saxon-he instead of saxonb])
4291            fi
4292        else
4293          AC_MSG_RESULT([no])
4294          cat saxontest.java >&5
4295          AC_MSG_ERROR([saxontest could not be compiled, non-functional saxon jar])
4296        fi
4297elif test "x$enable_saxon" = "xyes"; then
4298    AC_MSG_RESULT([internal])
4299    SYSTEM_SAXON=NO
4300    BUILD_TYPE="$BUILD_TYPE SAXON"
4301else
4302    AC_MSG_RESULT([none (disabled)])
4303    SYSTEM_SAXON=NO
4304    DISABLE_SAXON=YES
4305fi
4306AC_SUBST(SYSTEM_SAXON)
4307AC_SUBST(SAXON_JAR)
4308AC_SUBST(DISABLE_SAXON)
4309
4310
4311dnl ===================================================================
4312dnl Check for rhino
4313dnl ===================================================================
4314ENABLE_JAVASCRIPT=
4315AC_MSG_CHECKING([whether to enable support for JavaScript])
4316if test "x$enable_javascript" = "xyes"; then
4317   BUILD_TYPE="$BUILD_TYPE RHINO"
4318   AC_MSG_RESULT([yes])
4319   ENABLE_JAVASCRIPT=YES
4320else
4321   AC_MSG_RESULT([no])
4322   ENABLE_JAVASCRIPT=NO
4323fi
4324AC_SUBST(ENABLE_JAVASCRIPT)
4325
4326
4327dnl ===================================================================
4328dnl Check for CoinMP
4329dnl ===================================================================
4330ENABLE_COINMP=
4331AC_MSG_CHECKING([whether to enable support for CoinMP])
4332if test "x$enable_coinmp" = "xyes"; then
4333   BUILD_TYPE="$BUILD_TYPE COINMP"
4334   AC_MSG_RESULT([yes])
4335   ENABLE_COINMP=YES
4336else
4337   AC_MSG_RESULT([no])
4338   ENABLE_COINMP=NO
4339fi
4340AC_SUBST(ENABLE_COINMP)
4341
4342
4343dnl ===================================================================
4344dnl Check for system curl
4345dnl ===================================================================
4346if test "$_os" = "Darwin" && test "$with_system_curl" != "no"; then
4347   with_system_curl=yes
4348fi
4349AC_MSG_CHECKING([which curl to use])
4350if test -n "$with_system_curl" -o -n "$with_system_libs" && \
4351	test "$with_system_curl" != "no"; then
4352   AC_MSG_RESULT([external])
4353   SYSTEM_CURL=YES
4354
4355   AC_PATH_PROG( CURLCONFIG, curl-config)
4356   if test -z "$CURLCONFIG"; then
4357      AC_MSG_ERROR([install curl to run this script])
4358   fi
4359
4360   # check curl version
4361   AC_MSG_CHECKING([whether curl is >= 7.13.1])
4362   if test "`$CURLCONFIG --version | $AWK -F' ' '{print $2}' | $AWK -F. '{ print $1 }'`" -gt "7" -a \
4363	"`$CURLCONFIG --version | $AWK -F' ' '{print $2}' | $AWK -F. '{ print $2 }'`" -gt "13" -a \
4364	"`$CURLCONFIG --version | $AWK -F' ' '{print $2}' | $AWK -F. '{ print $3 }'`" -gt "1"; then
4365      AC_MSG_ERROR([no, you need at least curl 7.13,1])
4366   else
4367      AC_MSG_RESULT([yes])
4368   fi
4369   CURL_LIBS=`$CURLCONFIG --libs`
4370   CURL_CFLAGS=`$CURLCONFIG --cflags`
4371else
4372   AC_MSG_RESULT([internal])
4373   SYSTEM_CURL=NO
4374   BUILD_TYPE="$BUILD_TYPE CURL"
4375fi
4376AC_SUBST(SYSTEM_CURL)
4377AC_SUBST(CURL_CFLAGS)
4378AC_SUBST(CURL_LIBS)
4379
4380dnl ===================================================================
4381dnl Check for system mdds
4382dnl ===================================================================
4383AC_MSG_CHECKING([which mdds to use])
4384if test -n "$with_system_mdds" -o -n "$with_system_headers" && \
4385	test "$with_system_mdds" != "no"; then
4386    AC_MSG_RESULT([external])
4387    SYSTEM_MDDS=YES
4388    AC_LANG_PUSH([C++])
4389    AC_CHECK_HEADER(mdds/flat_segment_tree.hpp, [],
4390        [AC_MSG_ERROR(mdds/flat_segment_tree.hpp not found. install mdds)], [])
4391    AC_LANG_POP([C++])
4392else
4393   AC_MSG_RESULT([internal])
4394   BUILD_TYPE="$BUILD_TYPE MDDS"
4395   SYSTEM_MDDS=NO
4396fi
4397AC_SUBST(SYSTEM_MDDS)
4398
4399dnl ===================================================================
4400dnl Check for system boost
4401dnl ===================================================================
4402AC_MSG_CHECKING([which boost to use])
4403if test -n "$with_system_boost" -o -n "$with_system_headers" && \
4404	test "$with_system_boost" != "no"; then
4405   AC_MSG_RESULT([external])
4406   SYSTEM_BOOST=YES
4407   AC_LANG_PUSH([C++])
4408   AC_CHECK_HEADER(boost/shared_ptr.hpp, [],
4409       [AC_MSG_ERROR(boost/shared_ptr.hpp not found. install boost)], [])
4410   AC_CHECK_HEADER(boost/spirit/include/classic_core.hpp, [],
4411       [AC_MSG_ERROR(boost/spirit/include/classic_core.hpp not found. install boost >= 1.36)], [])
4412   AC_CHECK_HEADER(boost/function.hpp, [],
4413       [AC_MSG_ERROR(boost/function.hpp not found. install boost)], [])
4414
4415   save_CXXFLAGS=$CXXFLAGS
4416   CXXFLAGS="$CXXFLAGS -fno-exceptions"
4417   AC_MSG_CHECKING([whether boost/function.hpp compiles with -fno-exceptions])
4418   AC_TRY_COMPILE([#include <boost/function.hpp>
4419], [],
4420   ac_cv_cxx_boost_no_exceptons_broken=no, ac_cv_cxx_boost_no_exceptons_broken=yes)
4421
4422   if test "$ac_cv_cxx_boost_no_exceptons_broken" = "yes"; then
4423	AC_MSG_ERROR([no, see https://bugzilla.redhat.com/show_bug.cgi?id=477131])
4424   else
4425  	AC_MSG_RESULT([yes])
4426   fi
4427   CXXFLAGS=$save_CXXFLAGS
4428   AC_LANG_POP([C++])
4429else
4430   AC_MSG_RESULT([internal])
4431   BUILD_TYPE="$BUILD_TYPE BOOST"
4432   SYSTEM_BOOST=NO
4433fi
4434AC_SUBST(SYSTEM_BOOST)
4435
4436dnl ===================================================================
4437dnl Check for system vigra
4438dnl ===================================================================
4439AC_MSG_CHECKING([which vigra to use])
4440if test -n "$with_system_vigra" -o -n "$with_system_headers" && \
4441	test "$with_system_vigra" != "no"; then
4442   AC_MSG_RESULT([external])
4443   SYSTEM_VIGRA=YES
4444   AC_LANG_PUSH([C++])
4445   AC_CHECK_HEADER(vigra/copyimage.hxx, [],
4446       [AC_MSG_ERROR(vigra/copyimage.hxx not found. install vigra)], [])
4447   AC_LANG_POP([C++])
4448else
4449   AC_MSG_RESULT([internal])
4450   BUILD_TYPE="$BUILD_TYPE VIGRA"
4451   SYSTEM_VIGRA=NO
4452fi
4453AC_SUBST(SYSTEM_VIGRA)
4454
4455dnl ===================================================================
4456dnl Check for system odbc
4457dnl ===================================================================
4458AC_MSG_CHECKING([which odbc headers to use])
4459if test -n "$with_system_odbc_headers" -o -n "$with_system_headers" && \
4460	test "$with_system_odbc_headers" != "no"; then
4461   AC_MSG_RESULT([external])
4462   SYSTEM_ODBC_HEADERS=YES
4463
4464   AC_CHECK_HEADER(sqlext.h, [],
4465      [AC_MSG_ERROR(odbc not found. install odbc)], [])
4466else
4467   AC_MSG_RESULT([internal])
4468   SYSTEM_ODBC_HEADERS=NO
4469   BUILD_TYPE="$BUILD_TYPE UNIXODBC"
4470fi
4471AC_SUBST(SYSTEM_ODBC_HEADERS)
4472
4473WITH_MOZILLA=NO
4474AC_MSG_CHECKING([whether to enable build of Mozilla/Mozilla NSS-using components])
4475if test "$enable_mozilla" = "no"; then
4476   AC_MSG_RESULT([no])
4477   WITH_MOZILLA=NO
4478   ENABLE_NSS_MODULE=NO
4479else
4480   AC_MSG_RESULT([yes])
4481   WITH_MOZILLA=YES
4482fi
4483
4484AC_MSG_CHECKING([whether to build Mozilla addressbook connectivity])
4485if test "$enable_mozilla" = "no"; then
4486   AC_MSG_RESULT([no])
4487elif test "$with_system_mozilla" = "yes"; then
4488   AC_MSG_RESULT([no, not possible with system-mozilla])
4489else
4490   AC_MSG_RESULT([yes])
4491fi
4492
4493AC_MSG_CHECKING([whether to build XML Security support])
4494if test "$enable_mozilla" = "no"; then
4495   AC_MSG_RESULT([no, since Mozilla (NSS) disabled but needed])
4496else
4497   AC_MSG_RESULT([yes])
4498fi
4499
4500AC_MSG_CHECKING([whether to build LDAP configuration backend])
4501if test -z "$enable_ldap" || test "$enable_ldap" = "yes"; then
4502   if test "$enable_mozilla" = "yes" || test "$with_openldap" = "yes"; then
4503      AC_MSG_RESULT([yes])
4504      WITH_LDAP=YES
4505   else
4506      AC_MSG_RESULT([no. Either Mozilla or OpenLDAP needed])
4507      WITH_LDAP=NO
4508   fi
4509else
4510   AC_MSG_RESULT([no])
4511   WITH_LDAP=NO
4512fi
4513
4514if test "$WITH_LDAP" = "YES"; then
4515   dnl ===================================================================
4516   dnl Test whether we want to use the Mozilla or the OpenLDAP LDAP SDK
4517   dnl ===================================================================
4518   AC_MSG_CHECKING([which LDAP SDK to use])
4519   if test -n "$with_openldap" && test "$with_openldap" != "no"; then
4520  	   AC_MSG_RESULT([OpenLDAP])
4521	   WITH_OPENLDAP=YES
4522	   AC_CHECK_HEADERS(ldap.h, [],
4523		   [AC_MSG_ERROR(ldap.h not found. install openldap libs)], [])
4524	   AC_CHECK_LIB(ldap, ldap_simple_bind_s, [],
4525		   [AC_MSG_ERROR(openldap lib not found or functional)], [])
4526	   # rumours say that OpenLDAP doesn't have that function. I looked and
4527	   # it has it. Test for it to be sure
4528         AC_CHECK_LIB(ldap, ldap_set_option, [],
4529                [AC_MSG_ERROR(openldap lib not found or functional)], [])
4530   else
4531	   AC_MSG_RESULT([Netscape/Mozilla])
4532	   # TODO. Actually do a sanity check and check for
4533	   # LDAP_OPT_SIZELIMIT and LDAP_X_OPT_CONNECT_TIMEOUT
4534	   WITH_OPENLDAP=NO
4535   fi
4536fi
4537AC_SUBST(WITH_LDAP)
4538AC_SUBST(WITH_OPENLDAP)
4539
4540dnl ===================================================================
4541dnl Check for system mozilla
4542dnl ===================================================================
4543AC_MSG_CHECKING([which mozilla to use])
4544if test -n "$with_system_mozilla" && test "$with_system_mozilla" != "no"; then
4545    AC_MSG_RESULT([external])
4546    SYSTEM_MOZILLA=YES
4547    ENABLE_NSS_MODULE=NO
4548    enable_nss_module=no
4549    AC_MSG_CHECKING([which Mozilla flavour to use])
4550    if test -n "$with_system_mozilla" && test "$with_system_mozilla" = "libxul"; then
4551      MOZ_FLAVOUR=libxul
4552    elif test -n "$with_system_mozilla" && test "$with_system_mozilla" = "xulrunner"; then
4553      MOZ_FLAVOUR=xulrunner
4554    elif test -n "$with_system_mozilla" && test "$with_system_mozilla" = "seamonkey"; then
4555      MOZ_FLAVOUR=seamonkey
4556    elif test -n "$with_system_mozilla" && test "$with_system_mozilla" = "firefox"; then
4557      MOZ_FLAVOUR=firefox
4558    elif test -n "$with_system_mozilla" && test "$with_system_mozilla" = "mozilla"; then
4559      MOZ_FLAVOUR=mozilla
4560    else
4561      MOZ_FLAVOUR=libxul
4562    fi
4563    tmp=`echo $MOZ_FLAVOUR | $PERL -e 'print ucfirst(<STDIN>);'`
4564    AC_MSG_RESULT($tmp)
4565
4566    PKG_CHECK_MODULES( MOZ_NSS, nss, STANDALONENSS="TRUE", STANDALONENSS="" )
4567    if test -z "$STANDALONENSS"; then
4568        PKG_CHECK_MODULES( MOZ_NSS, $MOZ_FLAVOUR-nss )
4569    else
4570        NSS_LIB="-L`$PKG_CONFIG --variable=libdir nss`"
4571        AC_SUBST(NSS_LIB)
4572    fi
4573
4574    if $PKG_CONFIG --exists nspr ; then
4575      PKG_CHECK_MODULES( MOZ_NSPR, nspr )
4576      NSPR_LIB="-L`$PKG_CONFIG --variable=libdir nspr`"
4577      AC_SUBST(NSPR_LIB)
4578    else
4579      PKG_CHECK_MODULES( MOZ_NSPR, $MOZ_FLAVOUR-nspr )
4580    fi
4581
4582    if test "$MOZ_FLAVOUR" != "libxul"; then
4583      PKG_CHECK_MODULES( MOZILLAXPCOM, $MOZ_FLAVOUR-xpcom, HASXPCOM="TRUE", HASXPCOM="" )
4584      MOZ_INC=`$PKG_CONFIG --variable=includedir $MOZ_FLAVOUR-xpcom`
4585      MOZ_LIB=`$PKG_CONFIG --variable=libdir $MOZ_FLAVOUR-xpcom`
4586    fi
4587
4588    if test -z "$HASXPCOM"; then
4589      PKG_CHECK_MODULES( MOZILLAXPCOM, libxul )
4590      MOZ_INC=`$PKG_CONFIG --variable=includedir libxul`
4591      MOZ_LIB=`$PKG_CONFIG --variable=libdir libxul`
4592      if ! test -e "$MOZ_LIB/libxul.so"; then
4593         MOZ_LIB=`$PKG_CONFIG --variable=sdkdir libxul`
4594         if test -e "$MOZ_LIB/sdk/lib/libxul.so"; then
4595            MOZ_LIB="$MOZ_LIB/sdk/lib"
4596         fi
4597      fi
4598    fi
4599
4600    save_CPPFLAGS="$CPPFLAGS"
4601    save_LDFLAGS="$LDFLAGS"
4602    save_LIBS="$LIBS"
4603    CPPFLAGS="$CPPFLAGS $MOZ_NSS_CFLAGS"
4604    LDFLAGS="$LDFLAGS $MOZ_NSS_LIBS"
4605    AC_CHECK_LIB(nss3, PK11_GetCertFromPrivateKey, [],
4606      [AC_MSG_ERROR(PK11_GetCertFromPrivateKey missing but needed.
4607See https://bugzilla.mozilla.org/show_bug.cgi?id=262274.
4608Fixed since nss 3.9.3 (contained by e.g. mozilla >= 1.7.5))], [])
4609    LDFLAGS="$save_LDFLAGS"
4610    CPPFLAGS="$save_CPPFLAGS"
4611    LIBS="$save_LIBS"
4612
4613    MOZ_LIB_XPCOM=$MOZILLAXPCOM_LIBS
4614    if test "$WITH_LDAP" != "NO" && test "$WITH_OPENLDAP" != "YES"; then
4615      AC_MSG_CHECKING([whether $tmp was compiled with --enable-ldap])
4616      if test -d "$MOZ_INC/ldap"; then
4617         AC_MSG_RESULT([yes])
4618         MOZ_LDAP_CFLAGS="-I$MOZ_INC"
4619      else
4620        AC_MSG_ERROR([no.
4621Could not find LDAP header include files in $MOZ_INC/ldap.
4622Please recompile $tmp with --enable-ldap or use --with-openldap.])
4623      fi
4624    fi
4625
4626    #e.g. http://fedoraproject.org/wiki/Releases/FeatureXULRunnerAPIChanges
4627    #the plugin pkg-config etc. reverts to "mozilla-plugin" with libxul
4628    if test "$MOZ_FLAVOUR" = "libxul"; then
4629        MOZ_FLAVOUR="mozilla"
4630    fi
4631
4632elif test "$enable_mozilla" = "no"; then
4633    AC_MSG_RESULT([none])
4634    WITH_MOZILLA=NO
4635    ENABLE_NSS_MODULE=NO
4636    enable_nss_module=no
4637else
4638    AC_MSG_RESULT([internal])
4639    SYSTEM_MOZILLA=NO
4640    BUILD_TYPE="$BUILD_TYPE MOZ"
4641    WITH_MOZILLA=YES
4642if test -z "$with_mozilla_version"; then
4643   MOZILLA_VERSION=
4644else
4645   AC_MSG_CHECKING([which mozilla version to build])
4646   MOZILLA_VERSION=$with_mozilla_version
4647   enable_build_mozilla=1
4648   AC_MSG_RESULT([$MOZILLA_VERSION])
4649fi
4650
4651AC_SUBST(MOZILLA_VERSION)
4652AC_SUBST(WITH_MOZILLA)
4653
4654AC_MSG_CHECKING([for toolkit mozilla should use])
4655if test -z "$with_mozilla_toolkit"; then
4656   if test "$_os" != "WINNT" ; then
4657      if test "$_os" = "Darwin" ; then
4658         MOZILLA_TOOLKIT=mac
4659         AC_MSG_RESULT([mac])
4660      else
4661         MOZILLA_TOOLKIT=gtk2
4662         AC_MSG_RESULT([gtk2])
4663      fi
4664   fi
4665else
4666   MOZILLA_TOOLKIT=$with_mozilla_toolkit
4667   enable_build_mozilla=1
4668   AC_MSG_RESULT([$MOZILLA_TOOLKIT])
4669fi
4670#if test "$_os" = "Darwin" && test "$MOZILLA_TOOLKIT" != "gtk2"; then
4671#   #only gtk2 toolkit supported - xlib or cocoa nees glib1 and libIDL1 - the latter is not
4672#   #available using fink, mac (carbon) doesn't work because xcode installs conflicting headers
4673#   AC_MSG_ERROR([Only gtk2 toolkit supported on Mac, sorry.])
4674#fi
4675
4676AC_SUBST(MOZILLA_TOOLKIT)
4677
4678# default to enabling build mozilla
4679if test "$enable_build_mozilla" != "no"; then
4680      enable_build_mozilla=yes
4681else
4682      enable_build_mozilla=
4683fi
4684
4685AC_MSG_CHECKING([whether to build Mozilla/SeaMonkey])
4686if test -n "$enable_build_mozilla"; then
4687   BUILD_MOZAB="TRUE"
4688   AC_MSG_RESULT([yes])
4689else
4690   BUILD_MOZAB=""
4691   AC_MSG_RESULT([no])
4692fi
4693
4694AC_MSG_CHECKING([whether to build provided NSS module])
4695if test "$enable_nss_module" != "no"; then
4696   ENABLE_NSS_MODULE="YES"
4697   BUILD_TYPE="$BUILD_TYPE NSS"
4698   AC_MSG_RESULT([yes])
4699   if test "$_os" = "WINNT"; then
4700      AC_MSG_CHECKING([for Mozilla build tooling])
4701      if test -z "$MOZILLABUILD" ; then
4702AC_MSG_ERROR([Mozilla build tooling not found.
4703Use the --with-mozilla-build option after installling the tools obtained
4704from http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32])
4705      else
4706         if test \( "$WITH_MINGWIN" = "yes" \) ; then
4707            if test ! -d "$MOZILLABUILD" ; then
4708AC_MSG_ERROR([Mozilla build tooling incomplete!])
4709            else
4710               AC_MSG_RESULT([ok])
4711            fi
4712         else
4713            if test ! -d "$MOZILLABUILD/moztools" \
4714               -o ! -d "$MOZILLABUILD/msys" ; then
4715AC_MSG_ERROR([Mozilla build tooling incomplete!])
4716            else
4717               AC_MSG_RESULT([ok])
4718            fi
4719         fi
4720      fi
4721   fi
4722else
4723   ENABLE_NSS_MODULE="NO"
4724   AC_MSG_RESULT([no])
4725fi
4726
4727if test "$BUILD_MOZAB" = "TRUE"; then
4728  if test "$_os" = "WINNT"; then
4729    if test "$WITH_MINGWIN" != "yes"; then
4730      # compiling with MSVC. Only supported platform here is MSVS2005 at the moment.
4731      if test "$MSVSVER" != "2005"; then
4732        AC_MSG_ERROR([Building SeaMonkey is supported with Microsoft Visual Studio .NET 2005 only.])
4733      fi
4734    else
4735      AC_MSG_WARN([Building SeaMonkey with mingwin is not tested, and likely to break.])
4736      echo "Building SeaMonkey with mingwin is not tested, and likely to break." >> warn
4737    fi
4738  fi
4739
4740   if test -z "$MOZILLA_VERSION"; then
4741      MOZILLA_VERSION=1.1.14
4742   fi
4743   MOZILLA_SOURCE_VERSION="seamonkey-${MOZILLA_VERSION}.source"
4744   MOZILLA_FETCH_FILE=`grep $MOZILLA_SOURCE_VERSION ooo.lst`
4745   AC_MSG_CHECKING([for mozilla sources])
4746   if test -z "$MOZILLA_FETCH_FILE"; then
4747      AC_MSG_RESULT([not found])
4748      HAVE_MOZILLA_TARBALL=n
4749   else
4750      AC_MSG_CHECKING([for $MOZILLA_FETCH_FILE])
4751      if test ! -e "$TARFILE_LOCATION/$MOZILLA_FETCH_FILE"; then
4752         if test -z "$DO_FETCH"; then
4753            AC_MSG_RESULT([will be fetched])
4754            HAVE_MOZILLA_TARBALL=y
4755         else
4756            AC_MSG_RESULT([not found])
4757            HAVE_MOZILLA_TARBALL=n
4758         fi
4759      else
4760         AC_MSG_RESULT([found])
4761         HAVE_MOZILLA_TARBALL=y
4762      fi
4763   fi
4764   if test "$HAVE_MOZILLA_TARBALL" != "y"; then
4765      AC_MSG_ERROR([Mozilla/SeaMonkey source archive not found.
4766Use "./fetch_tarballs.sh ooo.lst" to download.])
4767   fi
4768   if test "$_os" = "WINNT"; then
4769      AC_MSG_CHECKING([for moztools binaries])
4770      if test ! -e "$TARFILE_LOCATION/vc8-moztools.zip" ; then
4771        AC_MSG_ERROR([The following file is missing in $TARFILE_LOCATION: vc8-moztools.zip
4772(from ftp://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/historic/vc8/)])
4773      else
4774         AC_MSG_RESULT([ok])
4775      fi
4776   elif test "$_os" = "Darwin"; then
4777      if test "$MOZILLA_TOOLKIT" = "gtk2"; then
4778         AC_MSG_NOTICE([checking whether mozilla can be built...])
4779         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]))
4780      else
4781         PKG_CHECK_MODULES(MOZLIBREQ, libIDL-2.0 >= 0.6.3,  MOZIDL="TRUE", MOZIDL="")
4782         if test -z "$MOZIDL"; then
4783            AC_MSG_ERROR([libIDL 0.6.3 or newer is needed to build mozilla with mac toolkit.])
4784         fi
4785      fi
4786   else
4787      # Generic Unix/Linux section
4788      if test "$MOZILLA_TOOLKIT" = "gtk2"; then
4789         PKG_CHECK_MODULES(MOZLIBREQ, gtk+-2.0, MOZGTK="TRUE", MOZGTK="")
4790         if test -z "$MOZGTK"; then
4791            AC_MSG_ERROR([GTK2 is needed to build mozilla.])
4792         fi
4793         PKG_CHECK_MODULES(MOZLIBREQ, libIDL-2.0 >= 0.8.0, MOZIDL="TRUE", MOZIDL="")
4794         if test -z "$MOZIDL"; then
4795            AC_MSG_ERROR([libIDL >= 0.8.0 is needed when using GTK2 to build mozilla.])
4796         fi
4797      else
4798         PKG_CHECK_MODULES(MOZLIBREQ, gtk+ >= 1.2.3, MOZGTK="TRUE", MOZGTK="")
4799         if test -z "$MOZGTK"; then
4800            AC_MSG_ERROR([gtk 1.2 is needed when not using GTK2 to build mozilla.])
4801         fi
4802         PKG_CHECK_MODULES(MOZLIBREQ, libidl >= 0.6.3 libidl <= 0.6.8, MOZIDL="TRUE", MOZIDL="")
4803         if test -z "$MOZIDL"; then
4804            AC_MSG_ERROR([libIDL 0.6.3 - 0.6.8 is needed when not using GTK2 to build mozilla.])
4805         fi
4806      fi
4807   fi
4808fi
4809
4810AC_SUBST(BUILD_MOZAB)
4811
4812fi
4813AC_SUBST(ENABLE_NSS_MODULE)
4814AC_SUBST(MOZILLABUILD)
4815AC_SUBST(SYSTEM_MOZILLA)
4816AC_SUBST(MOZ_FLAVOUR)
4817AC_SUBST(MOZ_INC)
4818AC_SUBST(MOZ_LIB)
4819AC_SUBST(MOZ_LIB_XPCOM)
4820AC_SUBST(MOZ_NSPR_CFLAGS)
4821AC_SUBST(MOZ_NSS_CFLAGS)
4822AC_SUBST(MOZ_LDAP_CFLAGS)
4823
4824dnl ===================================================================
4825dnl Check for system sane
4826dnl ===================================================================
4827AC_MSG_CHECKING([which sane header to use])
4828if test -n "$with_system_sane_header" -o -n "$with_system_headers" && \
4829	test "$with_system_sane_header" != "no"; then
4830   AC_MSG_RESULT([external])
4831   SYSTEM_SANE_HEADER=YES
4832   AC_CHECK_HEADER(sane/sane.h, [],
4833      [AC_MSG_ERROR(sane not found. install sane)], [])
4834else
4835   AC_MSG_RESULT([internal])
4836   SYSTEM_SANE_HEADER=NO
4837   BUILD_TYPE="$BUILD_TYPE SANE"
4838fi
4839AC_SUBST(SYSTEM_SANE_HEADER)
4840
4841dnl ===================================================================
4842dnl Check for system icu
4843dnl ===================================================================
4844AC_MSG_CHECKING([which icu to use])
4845if test -n "$with_system_icu" -o -n "$with_system_libs" && \
4846	test "$with_system_icu" != "no"; then
4847   AC_MSG_RESULT([external])
4848   SYSTEM_ICU=YES
4849   AC_LANG_PUSH([C++])
4850   AC_MSG_CHECKING([for unicode/rbbi.h])
4851   AC_TRY_CPP(unicode/rbbi.h, AC_MSG_RESULT([checked.]), AC_MSG_ERROR([icu headers not found.]))
4852   AC_LANG_POP([C++])
4853   AC_PATH_PROG(SYSTEM_GENBRK, genbrk, [], [$PATH:/usr/sbin:/sbin])
4854   if test -z "$SYSTEM_GENBRK"; then
4855      AC_MSG_ERROR([\"genbrk\" not found in \$PATH, install the icu development tool \"genbrk"\])
4856   fi
4857   AC_PATH_PROG(SYSTEM_GENCCODE, genccode, [], [$PATH:/usr/sbin:/sbin])
4858   if test -z "$SYSTEM_GENCCODE"; then
4859      AC_MSG_ERROR([\"genccode\" not found in \$PATH, install the icu development tool \"genccode"\])
4860   fi
4861   AC_PATH_PROG(SYSTEM_GENCMN, gencmn, [], [$PATH:/usr/sbin:/sbin])
4862   if test -z "$SYSTEM_GENCMN"; then
4863      AC_MSG_ERROR([\"gencmn\" not found in \$PATH, install the icu development tool \"gencmn"\])
4864   fi
4865
4866   AC_PATH_PROG( ICUCONFIG, icu-config)
4867   AC_MSG_CHECKING([ICU version])
4868   ICU_VERSION=`$ICUCONFIG --version`
4869   ICU_MAJOR=`$ICUCONFIG --version | cut -d"." -f1`
4870   ICU_MINOR=`$ICUCONFIG --version | cut -d"." -f2`
4871   ICU_MICRO=`$ICUCONFIG --version | cut -d"." -f3`
4872
4873   if test "$ICU_MAJOR" -ge "4"; then
4874      AC_MSG_RESULT([OK])
4875   else
4876      AC_MSG_ERROR([not suitable, only >= 4.0 supported currently])
4877   fi
4878
4879else
4880    AC_MSG_RESULT([internal])
4881    SYSTEM_ICU=NO
4882    BUILD_TYPE="$BUILD_TYPE ICU"
4883fi
4884AC_SUBST(SYSTEM_ICU)
4885AC_SUBST(SYSTEM_GENBRK)
4886AC_SUBST(SYSTEM_GENCCODE)
4887AC_SUBST(SYSTEM_GENCMN)
4888AC_SUBST(ICU_MAJOR)
4889AC_SUBST(ICU_MINOR)
4890AC_SUBST(ICU_MICRO)
4891
4892dnl ===================================================================
4893dnl Graphite
4894dnl ===================================================================
4895
4896ENABLE_GRAPHITE="FALSE"
4897AC_MSG_CHECKING([whether to enable graphite support])
4898if test "x$enable_graphite" = "xyes" -a \( "$_os" = "WINNT" -o "$_os" = "Linux" \) ; then
4899    AC_MSG_RESULT([yes])
4900    ENABLE_GRAPHITE="TRUE"
4901    AC_MSG_CHECKING([which graphite to use])
4902    if test -n "$with_system_graphite" -o -n "$with_system_libs" && \
4903        test "$with_system_graphite" != "no"; then
4904        AC_MSG_RESULT([external])
4905        SYSTEM_GRAPHITE=YES
4906        PKG_CHECK_MODULES( GRAPHITE, silgraphite )
4907    else
4908        AC_MSG_RESULT([internal])
4909        SYSTEM_GRAPHITE=NO
4910        BUILD_TYPE="$BUILD_TYPE GRAPHITE"
4911    fi
4912else
4913   AC_MSG_RESULT([no])
4914   ENABLE_GRAPHITE="FALSE"
4915fi
4916AC_SUBST(ENABLE_GRAPHITE)
4917AC_SUBST(SYSTEM_GRAPHITE)
4918AC_SUBST(GRAPHITE_LIBS)
4919AC_SUBST(GRAPHITE_CFLAGS)
4920
4921dnl ===================================================================
4922dnl Checks for libraries.
4923dnl ===================================================================
4924dnl Check for Mac OS X native GUI, which may is now required; the X11 build is no longer supported
4925dnl See if we have the AppKit framework for building with Quartz graphics.
4926
4927if test  "$_os" = "Darwin"; then
4928   if test "x$with_x" = "xyes"; then
4929      AC_MSG_ERROR([X11 build is no longer supported on MacOSX, please use the native aqua build])
4930   else
4931      AC_MSG_CHECKING([for /System/Library/Frameworks/AppKit.framework])
4932      if test -d "/System/Library/Frameworks/AppKit.framework/"; then
4933         AC_MSG_RESULT([yes])
4934         x_includes="no_x_includes"
4935         x_libraries="no_x_libraries"
4936         dnl disable some things used on other Unix versions but not on the aqua build
4937         enable_gtk=no
4938         enable_cups=no
4939         ENABLE_CUPS=""
4940         AC_SUBST(ENABLE_CUPS)
4941      else
4942         AC_MSG_ERROR([No AppKit.framewrok found])
4943      fi
4944   fi
4945fi
4946
4947dnl ***************************************
4948dnl testing for X libraries and includes...
4949dnl ***************************************
4950if test "$_os" = "Darwin" -a "x$x_includes" = "xno_x_includes"; then
4951   echo "Do Nothing for _os = Darwin"
4952   dnl Mac OS X using Aqua graphics. Don't check for X11.
4953   :
4954elif test "$_os" = "OS2" ; then
4955   echo "Do Nothing for _os = OS2. Don't check for X11."
4956   dnl OS/2 uses native graphics. Don't check for X11.
4957   :
4958elif test "$_os" != "WINNT" ; then
4959   AC_PATH_X
4960   AC_PATH_XTRA
4961   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
4962
4963   if test "x$x_includes" = "x"; then
4964     x_includes="default_x_includes"
4965   fi
4966   if test "x$x_libraries" = "x"; then
4967     x_libraries="default_x_libraries"
4968   fi
4969   dnl The variables $x_libraries and $x_includes are set.
4970   if test -z "$x_libraries"; then
4971      AC_MSG_ERROR([No X libraries found]) # Exit
4972   fi
4973   if test -z "$x_includes"; then
4974      AC_MSG_ERROR([No X includes found]) # Exit
4975   fi
4976   CFLAGS=$X_CFLAGS
4977   LDFLAGS="$X_LDFLAGS $X_LIBS"
4978   AC_CHECK_LIB(X11, XOpenDisplay, x_libs="-lX11 $X_EXTRA_LIBS", [AC_MSG_ERROR([X Development libraries not found])])
4979   dnl Check if the XauDisposeAuth symbol is provided by libXau.
4980   AC_CHECK_LIB(Xau, XauDisposeAuth, XAU_LIBS="-lXau", [])
4981else
4982   x_includes="no_x_includes"
4983   x_libraries="no_x_libraries"
4984fi
4985if test -z "$x_includes"; then
4986   x_includes="no_x_includes"
4987fi
4988if test -z "$x_libraries"; then
4989   x_libraries="no_x_libraries"
4990fi
4991if test "$x_includes" = "default_x_includes"; then
4992   XINC="/usr/include"
4993else
4994   XINC="$x_includes"
4995fi
4996AC_SUBST(XINC)
4997if test "$x_libraries" = "default_x_libraries"; then
4998   XLIB=`$PKG_CONFIG --variable=libdir x11`
4999   if test "x$XLIB" = x; then
5000         XLIB="/usr/lib"
5001   fi
5002else
5003   XLIB="$x_libraries"
5004fi
5005AC_SUBST(XLIB)
5006AC_SUBST(XAU_LIBS)
5007
5008if test "$_os" != "WINNT" -a "$_os" != "OS2" -a "$_os" != "Darwin"; then
5009   dnl ===================================================================
5010   dnl Check for using Xaw
5011   dnl ===================================================================
5012   AC_MSG_CHECKING([whether to use Xaw])
5013   if test "$enable_Xaw" = "no"; then
5014       DISABLE_XAW=TRUE
5015       AC_MSG_RESULT([no])
5016       AC_CHECK_HEADERS(X11/Composite.h,[],[AC_MSG_ERROR([Xt include headers not found])],
5017         [#include <X11/Intrinsic.h>])
5018   else
5019       AC_MSG_RESULT([yes])
5020       AC_CHECK_HEADERS(X11/Xaw/Label.h,[],[AC_MSG_ERROR([Xaw include headers not found])],
5021         [#include <X11/Intrinsic.h>])
5022       AC_CHECK_LIB(Xaw, main, [],
5023           [AC_MSG_ERROR(Xaw library not found or functional)], [])
5024   fi
5025fi
5026AC_SUBST(DISABLE_XAW)
5027
5028
5029
5030dnl ===================================================================
5031dnl Check if fontconfig/fontconfig.h is available
5032dnl ===================================================================
5033if test "$ENABLE_FONTCONFIG" = "TRUE" ; then
5034    AC_CHECK_HEADER(fontconfig/fontconfig.h, [],
5035                    [AC_MSG_ERROR([fontconfig/fontconfig.h could not be found. libfontconfig1-dev or fontconfig???-devel missing?])], [])
5036    AC_MSG_CHECKING([whether fontconfig is >= 2.2.0])
5037    AC_TRY_RUN([
5038#include <fontconfig/fontconfig.h>
5039
5040int main(int argc, char **argv) {
5041	if(FC_MAJOR > 2 || (FC_MAJOR == 2 && FC_MINOR >= 2)) return 0;
5042	else return 1;
5043}
5044], [AC_MSG_RESULT([yes])], [AC_MSG_ERROR([no, fontconfig >= 2.2.0 needed])])
5045fi
5046
5047dnl ===================================================================
5048dnl Check for system Xrender
5049dnl ===================================================================
5050AC_MSG_CHECKING([whether to link to Xrender])
5051if test -n "$enable_xrender_link" -a "$enable_xrender_link" != "no"; then
5052   AC_MSG_RESULT([yes])
5053   XRENDER_LINK=YES
5054   with_system_xrender_headers=yes
5055else
5056   AC_MSG_RESULT([no, dynamically open it])
5057   XRENDER_LINK=NO
5058fi
5059AC_MSG_CHECKING([which Xrender headers to use])
5060if test -n "$with_system_xrender_headers" -o -n "$with_system_headers" && \
5061	test "$with_system_xrender_headers" != "no"; then
5062   AC_MSG_RESULT([external])
5063   SYSTEM_XRENDER_HEADERS=YES
5064   AC_CHECK_HEADER(X11/extensions/Xrender.h, [],
5065      [AC_MSG_ERROR(Xrender not found. install X)], [])
5066else
5067   AC_MSG_RESULT([internal])
5068   SYSTEM_XRENDER_HEADERS=NO
5069   BUILD_TYPE="$BUILD_TYPE X11_EXTENSIONS"
5070fi
5071if test "$XRENDER_LINK" = "YES"; then
5072   AC_CHECK_LIB(Xrender, XRenderQueryVersion, [],
5073      [AC_MSG_ERROR(libXrender not found or functional)], [])
5074fi
5075AC_SUBST(SYSTEM_XRENDER_HEADERS)
5076AC_SUBST(XRENDER_LINK)
5077
5078dnl ===================================================================
5079dnl Check for XRandr
5080dnl ===================================================================
5081AC_MSG_CHECKING([whether to enable RandR support])
5082if test "$test_randr" = "yes" -a \( "$enable_randr" = "yes" -o "$enable_randr" = "TRUE" \) ; then
5083   if test -z "$enable_randr_link" -o "$enable_randr_link" = "no"; then
5084	  XRANDR_DLOPEN="TRUE"
5085	  AC_MSG_RESULT([resorting to dlopen libXrandr at runtime])
5086   else
5087	  XRANDR_DLOPEN="FALSE"
5088      PKG_CHECK_MODULES(XRANDR, xrandr >= 1.2, ENABLE_RANDR="TRUE", ENABLE_RANDR="")
5089      if test "$ENABLE_RANDR" != "TRUE"; then
5090         AC_CHECK_HEADER(X11/extensions/Xrandr.h, [],
5091                        [AC_MSG_ERROR([X11/extensions/Xrandr.h could not be found. X11 dev missing?])], [])
5092         XRANDR_CFLAGS=" "
5093         AC_CHECK_LIB(Xrandr, XRRQueryExtension, [],
5094              [ AC_MSG_ERROR(libXrandr not found or functional) ], [])
5095         XRANDR_LIBS="-lXrandr "
5096         ENABLE_RANDR="TRUE"
5097	     AC_MSG_RESULT([enabling RandR support])
5098      fi
5099   fi
5100else
5101   ENABLE_RANDR=""
5102   AC_MSG_RESULT([no])
5103fi
5104AC_SUBST(XRANDR_DLOPEN)
5105AC_SUBST(XRANDR_CFLAGS)
5106AC_SUBST(XRANDR_LIBS)
5107AC_SUBST(ENABLE_RANDR)
5108
5109dnl ===================================================================
5110dnl Check for system neon
5111dnl ===================================================================
5112AC_MSG_CHECKING([which neon is used])
5113if test -n "$with_system_neon" -o -n "$with_system_libs" && \
5114	test "$with_system_neon" != "no"; then
5115        AC_MSG_RESULT([external])
5116        PKG_CHECK_MODULES(NEON, neon >= 0.26.0, , AC_MSG_ERROR([you need neon >= 0.26.x for system-neon]))
5117        NEON_VERSION="`$PKG_CONFIG --modversion neon | $SED 's/\.//g'`"
5118        NEON_CFLAGS="$NEON_CFLAGS -DSYSTEM_NEON -DUSE_DAV_LOCKS=1"
5119        SYSTEM_NEON=YES
5120fi
5121AC_SUBST(SYSTEM_NEON)
5122AC_SUBST(NEON_VERSION)
5123AC_SUBST(NEON_LIBS)
5124AC_SUBST(NEON_CFLAGS)
5125
5126dnl ===================================================================
5127dnl Check for system openssl
5128dnl ===================================================================
5129if test "$_os" = "Darwin" && test "$with_system_openssl" != "no"; then
5130   with_system_openssl=yes
5131fi
5132AC_MSG_CHECKING([which libssl to use])
5133if test -n "$with_system_openssl" -o -n "$with_system_libs" && \
5134        test "$with_system_openssl" != "no"; then
5135    AC_MSG_RESULT([external])
5136    # Mac OS builds should get out without extra stuff is the Mac porters'
5137    # wish. And pkg-config is although Xcode ships a .pc for openssl
5138    if test "$_os" = "Darwin" -o "$_os" = "FreeBSD"; then
5139        OPENSSL_CFLAGS=
5140        OPENSSL_LIBS="-lssl -lcrypto"
5141    else
5142    	PKG_CHECK_MODULES( OPENSSL, openssl )
5143    fi
5144    SYSTEM_OPENSSL=YES
5145else
5146    AC_MSG_RESULT([internal])
5147    SYSTEM_OPENSSL=NO
5148    BUILD_TYPE="$BUILD_TYPE OPENSSL"
5149fi
5150AC_SUBST(SYSTEM_OPENSSL)
5151AC_SUBST(OPENSSL_CFLAGS)
5152AC_SUBST(OPENSSL_LIBS)
5153
5154dnl ===================================================================
5155dnl Check for system redland
5156dnl ===================================================================
5157AC_MSG_CHECKING([which redland library to use])
5158if test -n "$with_system_redland" -o -n "$with_system_libs" && \
5159	test "$with_system_redland" != "no"; then
5160	AC_MSG_RESULT([external])
5161	SYSTEM_REDLAND=YES
5162   dnl versions before 1.0.8 write RDF/XML that is useless for ODF (@xml:base)
5163   PKG_CHECK_MODULES(REDLAND, redland >= 1.0.8)
5164else
5165	AC_MSG_RESULT([internal])
5166	BUILD_TYPE="$BUILD_TYPE REDLAND"
5167	SYSTEM_REDLAND=NO
5168fi
5169AC_SUBST(SYSTEM_REDLAND)
5170AC_SUBST(REDLAND_CFLAGS)
5171AC_SUBST(REDLAND_LIBS)
5172
5173dnl ===================================================================
5174dnl Check for hunspell
5175dnl ===================================================================
5176AC_MSG_CHECKING([whether to build the Spell Checking component])
5177ENABLE_HUNSPELL=
5178
5179if test "x$enable_hunspell" != "xno" ; then
5180    AC_MSG_CHECKING([which libhunspell to use])
5181    if test -n "$with_system_hunspell" -o -n "$with_system_libs" && \
5182        test "$with_system_hunspell" != "no"; then
5183        AC_MSG_RESULT([external])
5184        SYSTEM_HUNSPELL=YES
5185        AC_LANG_PUSH([C++])
5186        PKG_CHECK_MODULES(HUNSPELL, hunspell, HUNSPELL_PC="TRUE", HUNSPELL_PC="" )
5187        if test "$HUNSPELL_PC" != "TRUE"; then
5188            AC_CHECK_HEADER(hunspell.hxx, [],
5189            [AC_CHECK_HEADER(hunspell/hunspell.hxx, [ HUNSPELL_CFLAGS=-I/usr/include/hunspell ],
5190                [AC_MSG_ERROR(hunspell headers not found.)], [])
5191             ], [])
5192            AC_CHECK_LIB(hunspell, main, [],
5193            [ AC_MSG_ERROR(hunspell library not found.) ], [])
5194            HUNSPELL_LIBS=-lhunspell
5195        fi
5196        AC_LANG_POP([C++])
5197    else
5198        AC_MSG_RESULT([internal])
5199        SYSTEM_HUNSPELL=NO
5200        BUILD_TYPE="$BUILD_TYPE HUNSPELL"
5201    fi
5202    ENABLE_HUNSPELL=YES
5203    AC_SUBST(SYSTEM_HUNSPELL)
5204    AC_SUBST(HUNSPELL_CFLAGS)
5205    AC_SUBST(HUNSPELL_LIBS)
5206else
5207    AC_MSG_RESULT([no])
5208fi
5209AC_SUBST(ENABLE_HUNSPELL)
5210
5211dnl ===================================================================
5212dnl Checking for libhyphen
5213dnl ===================================================================
5214AC_MSG_CHECKING([whether to build the Hyphenator component])
5215ENABLE_HYPHEN=
5216
5217if test "x$enable_hyphen" != "xno" ; then
5218    AC_MSG_CHECKING([which libhyphen to use])
5219    if test -n "$with_system_hyphen" -o -n "$with_system_libs" && \
5220        test "$with_system_hyphen" != "no"; then
5221        AC_MSG_RESULT([external])
5222        SYSTEM_HYPH=YES
5223        AC_CHECK_HEADER(hyphen.h, [],
5224        [ AC_MSG_ERROR(libhyphen headers not found.)], [])
5225        AC_CHECK_MEMBER(struct _HyphenDict.cset, [],
5226        [ AC_MSG_ERROR(no. You are sure you have libhyphen headers?)],
5227        [#include <hyphen.h>])
5228        AC_CHECK_LIB(hyphen, hnj_hyphen_hyphenate2, [HYPHEN_LIB=-lhyphen],
5229            [ AC_MSG_ERROR(libhyphen not found or too old.)], [])
5230        if test -z "$HYPHEN_LIB"; then
5231        AC_CHECK_LIB(hyph, hnj_hyphen_hyphenate2, [HYPHEN_LIB=-lhyph],
5232            [ AC_MSG_ERROR(libhyphen not found or too old.)], [])
5233        fi
5234        if test -z "$HYPHEN_LIB"; then
5235        AC_CHECK_LIB(hnj, hnj_hyphen_hyphenate2, [HYPHEN_LIB=-lhnj],
5236            [ AC_MSG_ERROR(libhyphen not found or too old.)], [])
5237        fi
5238    else
5239        AC_MSG_RESULT([internal])
5240        SYSTEM_HYPH=NO
5241        BUILD_TYPE="$BUILD_TYPE HYPHEN"
5242    fi
5243    ENABLE_HYPHEN=YES
5244    AC_SUBST(SYSTEM_HYPH)
5245    AC_SUBST(HYPHEN_LIB)
5246else
5247    AC_MSG_RESULT([no])
5248fi
5249AC_SUBST(ENABLE_HYPHEN)
5250
5251dnl ===================================================================
5252dnl Checking for mythes
5253dnl ===================================================================
5254AC_MSG_CHECKING([which mythes to use])
5255if test -n "$with_system_mythes" -o -n "$with_system_libs" && \
5256   test "$with_system_mythes" != "no"; then
5257    AC_MSG_RESULT([external])
5258    SYSTEM_MYTHES=YES
5259    AC_LANG_PUSH([C++])
5260    PKG_CHECK_MODULES(MYTHES, mythes, MYTHES_PKGCONFIG=yes, MYTHES_PKGCONFIG=no)
5261    if test "$MYTHES_PKGCONFIG" = "no"; then
5262        AC_CHECK_HEADER(mythes.hxx, [],
5263            [ AC_MSG_ERROR(mythes.hxx headers not found.)], [])
5264        AC_CHECK_LIB(mythes-1.2, main, [],
5265            [ MYTHES_FOUND=no], [])
5266 	if test "$MYTHES_FOUND" = "no"; then
5267            AC_CHECK_LIB(mythes, main, [MYTHES_FOUND=yes],
5268                [ MYTHES_FOUND=no], [])
5269	fi
5270	if test "$MYTHES_FOUND" = "no"; then
5271		AC_MSG_ERROR([mythes library not found!.])
5272	fi
5273    fi
5274    AC_LANG_POP([C++])
5275else
5276    AC_MSG_RESULT([internal])
5277    SYSTEM_MYTHES=NO
5278    BUILD_TYPE="$BUILD_TYPE MYTHES"
5279fi
5280AC_SUBST(SYSTEM_MYTHES)
5281AC_SUBST(MYTHES_CFLAGS)
5282AC_SUBST(MYTHES_LIBS)
5283
5284
5285dnl ===================================================================
5286dnl Checking for libtextcat
5287dnl ===================================================================
5288AC_MSG_CHECKING([which libtextcat to use])
5289if test -n "$with_system_libtextcat" && test "$with_system_libtextcat" != "no"; then
5290    AC_MSG_RESULT([external])
5291    SYSTEM_LIBTEXTCAT=YES
5292    AC_CHECK_HEADER(libtextcat/textcat.h, [],
5293       [ AC_MSG_ERROR(libtextcat headers not found.)], [])
5294    AC_CHECK_LIB(textcat, special_textcat_Init, ,
5295        [ AC_MSG_ERROR(libtextcat library not found or not suitable. libtextcat typically needs to be patched)], [])
5296else
5297    AC_MSG_RESULT([internal])
5298    SYSTEM_LIBTEXTCAT=NO
5299    BUILD_TYPE="$BUILD_TYPE LIBTEXTCAT"
5300fi
5301AC_SUBST(SYSTEM_LIBTEXTCAT)
5302
5303AC_MSG_CHECKING([which libtextcat data directory to use])
5304if test -n "$with_system_libtextcat_data" && test "$with_system_libtextcat_data" != "no"; then
5305    if test "$with_system_libtextcat_data" = "yes"; then
5306        SYSTEM_LIBTEXTCAT_DATA=file:///usr/share/libtextcat
5307    else
5308        SYSTEM_LIBTEXTCAT_DATA=file://$with_system_libtextcat_data
5309    fi
5310    AC_MSG_RESULT([$SYSTEM_LIBTEXTCAT_DATA])
5311else
5312    AC_MSG_RESULT([internal])
5313    BUILD_TYPE="$BUILD_TYPE LIBTEXTCATDATA"
5314fi
5315AC_SUBST(SYSTEM_LIBTEXTCAT_DATA)
5316
5317dnl ***************************************
5318dnl testing libc version for Linux...
5319dnl ***************************************
5320if test "$_os" = "Linux"; then
5321   AC_MSG_CHECKING([whether libc is >= 2.1.1])
5322   exec 6>/dev/null # no output
5323   AC_CHECK_LIB(c, gnu_get_libc_version, HAVE_LIBC=yes; export HAVE_LIBC)
5324   exec 6>&1 # output on again
5325   if test "$HAVE_LIBC"; then
5326      AC_MSG_RESULT([yes])
5327   else
5328      AC_MSG_ERROR([no, upgrade libc])
5329   fi
5330fi
5331
5332if test "$_os" != "WNT"; then
5333  AC_CHECK_FUNCS(getopt, HAVE_GETOPT=YES, [HAVE_GETOPT=NO])
5334  AC_CHECK_FUNCS(readdir_r, HAVE_READDIR_R=YES, [HAVE_READDIR_R=NO])
5335  if test "$HAVE_GETOPT" = "YES" -a "$HAVE_READDIR_R" = "YES"; then
5336	SYSTEM_LIBC=YES
5337  fi
5338else
5339  HAVE_GETOPT=NO
5340  HAVE_READDIR_R=NO
5341  SYSTEM_LIBC=YES
5342fi
5343AC_SUBST(HAVE_GETOPT)
5344AC_SUBST(HAVE_READDIR_R)
5345AC_SUBST(SYSTEM_LIBC)
5346
5347dnl =========================================
5348dnl Check for the Microsoft Platform SDK.
5349dnl =========================================
5350dnl FIXME: I don't know yet if PSDK works with MinGW, keep it until I know better,
5351dnl and add "-a \( "$WITH_MINGWIN" != "yes" \)" then
5352if test \( "$_os" = "WINNT" \) ; then
5353	AC_MSG_CHECKING([for PSDK files])
5354	if test -z "$with_psdk_home"; then
5355		# This first line will detect a February 2003 Microsoft Platform SDK
5356		PSDK_HOME=`./oowintool --psdk-home`
5357        # But there might be also an April 2005 PSDK, unfortunately MS changed
5358        # the registry entry. (we prefer the old version!?)
5359        if test -z "$PSDK_HOME"; then
5360          PSDK_HOME=`cat /proc/registry/HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MicrosoftSDK/InstalledSDKs/*/Install\ Dir 2> /dev/null | tr '\000' '\n' | head -n 1`
5361        fi
5362            # normalize if found
5363            if test -n "$PSDK_HOME"; then
5364              PSDK_HOME=`cygpath -d "$PSDK_HOME"`
5365              PSDK_HOME=`cygpath -u "$PSDK_HOME"`
5366           fi
5367	else
5368           PSDK_HOME=`cygpath -u "$with_psdk_home"`
5369	fi
5370        # Remove a possible trailing backslash
5371        PSDK_HOME=`echo $PSDK_HOME | $SED 's/\/$//'`
5372    # Problem with current PSDK (iz 49865)
5373    if test -f "$PSDK_HOME/Lib/libcp.lib"; then
5374        AC_MSG_ERROR([
5375
5376Some modules do not build correctly with MS Platform SDK - April 2005
5377Edition if the library ($PSDK_HOME/Lib/libcp.lib) is found.
5378Remove/rename/backup that file and restart configure. Details about this
5379problem can be found in issue 49856.])
5380    fi
5381# WIndows SDK has different headers
5382	if test \( -f "$PSDK_HOME/Include/adoint.h" \) \
5383		 -a \( -f "$PSDK_HOME/Include/SqlUcode.h" \) \
5384		 -a \( -f "$PSDK_HOME/Include/usp10.h" \); then
5385		HAVE_PSDK_H="yes"
5386	else
5387		HAVE_PSDK_H="no"
5388	fi
5389	if test -f "$PSDK_HOME/lib/unicows.lib"; then
5390		HAVE_PSDK_LIB="yes"
5391	else
5392		HAVE_PSDK_LIB="no"
5393	fi
5394    if test "$HAVE_PSDK_H" = "no" -o "$HAVE_PSDK_LIB" = "no"; then
5395        AC_MSG_ERROR([Some (all?) PSDK files not found, please check if all needed Platform SDKs
5396are installed or use --with-psdk-home .])
5397    fi
5398    if test ! -x "$PSDK_HOME/bin/msiinfo.exe" \
5399         -o ! -x "$PSDK_HOME/bin/msidb.exe" \
5400         -o ! -x "$PSDK_HOME/bin/uuidgen.exe" \
5401         -o ! -x "$PSDK_HOME/bin/msitran.exe" ; then
5402        AC_MSG_ERROR([Some (all) files of the Windows Installer SDK are missing, please install.])
5403    fi
5404    AC_MSG_RESULT([SDK files found ...)])
5405dnl Check if this is the right SDK.
5406    if echo $PSDK_HOME | grep "v6.1" >/dev/null 2>/dev/null; then
5407        AC_MSG_RESULT([Found Windows SDK 6.1 ($PSDK_HOME)])
5408        WINDOWS_VISTA_PSDK=TRUE
5409    elif echo $PSDK_HOME | grep "v6.0" >/dev/null 2>/dev/null; then
5410        AC_MSG_RESULT([Found Windows SDK 6.0 ($PSDK_HOME)])
5411        WINDOWS_VISTA_PSDK=TRUE
5412    else
5413        AC_MSG_RESULT([Found Legacy Windows Platform SDK ($PSDK_HOME)])
5414    fi
5415fi
5416AC_SUBST(PSDK_HOME)
5417AC_SUBST(WINDOWS_VISTA_PSDK)
5418
5419dnl =========================================
5420dnl Check for the Microsoft DirectX SDK.
5421dnl =========================================
5422if test \( "$_os" = "WINNT" \) ; then
5423    AC_MSG_CHECKING([for DirectX SDK files])
5424    if test -z "$with_directx_home"; then
5425        dnl A standard installation of the DirectX SDK sets $DXSDK_DIR
5426        if test -n "$DXSDK_DIR"; then
5427            DIRECTXSDK_HOME=`cygpath -d "$DXSDK_DIR"`
5428            DIRECTXSDK_HOME=`cygpath -u "$DIRECTXSDK_HOME"`
5429        fi
5430        # At this point $DIRECTXSDK_HOME might still be undefined. This will lead to
5431        # the "DirectX SDK files not found" error later
5432    else
5433	DIRECTXSDK_HOME=`cygpath -u "$with_directx_home"`
5434    fi
5435    # Remove a possible trailing backslash
5436    DIRECTXSDK_HOME=`echo $DIRECTXSDK_HOME | $SED 's/\/$//'`
5437
5438    if test -f "$DIRECTXSDK_HOME/Include/ddraw.h" ; then
5439        HAVE_DIRECTDRAW_H="yes"
5440    else
5441        HAVE_DIRECTDRAW_H="no"
5442    fi
5443    if test -f "$DIRECTXSDK_HOME/Include/d3d9.h" ; then
5444        HAVE_DIRECTXSDK_H="yes"
5445    else
5446        HAVE_DIRECTXSDK_H="no"
5447    fi
5448
5449    # MS changed the location of the libraries with dec 2004 directx sdk
5450    if test -d "$DIRECTXSDK_HOME/lib/x86" ; then
5451        DIRECTXSDK_LIB="$DIRECTXSDK_HOME/lib/x86"
5452    else
5453        DIRECTXSDK_LIB="$DIRECTXSDK_HOME/lib"
5454    fi
5455    if test -f "$DIRECTXSDK_LIB/ddraw.lib" ; then
5456        HAVE_DIRECTDRAW_LIB="yes"
5457    else
5458        HAVE_DIRECTDRAW_LIB="no"
5459    fi
5460    if test -f "$DIRECTXSDK_LIB/d3d9.lib" ; then
5461        HAVE_DIRECTXSDK_LIB="yes"
5462    else
5463        HAVE_DIRECTXSDK_LIB="no"
5464    fi
5465
5466    if test "$HAVE_DIRECTDRAW_H" = "yes" -a "$HAVE_DIRECTDRAW_LIB" = "yes" ; then
5467       ENABLE_DIRECT_DRAW="TRUE"
5468    fi
5469    if test "$HAVE_DIRECTXSDK_H" = "yes" -a "$HAVE_DIRECTXSDK_LIB" = "yes" ; then
5470       HAVE_DIRECTXSDK="yes"
5471    else
5472       HAVE_DIRECTXSDK="no"
5473    fi
5474
5475    if test -n "$ENABLE_DIRECTX"; then
5476	    if test "$HAVE_DIRECTDRAW" = "yes" -o "$HAVE_DIRECTXSDK" = "yes" ; then
5477		    AC_MSG_RESULT([found])
5478	    else
5479		    AC_MSG_ERROR([DirectX SDK files not found, please use --with-directx-home or --disable-directx.])
5480	    fi
5481    else
5482		DIRECTXSDK_HOME=""
5483		AC_MSG_RESULT([disabled])
5484    fi
5485fi
5486AC_SUBST(ENABLE_DIRECT_DRAW)
5487AC_SUBST(DIRECTXSDK_HOME)
5488AC_SUBST(DIRECTXSDK_LIB)
5489
5490dnl ============================================
5491dnl Check for Nullsoft Scriptable Install System
5492dnl ============================================
5493NSIS_PATH=""
5494if test "$_os" = "WINNT" ; then
5495    AC_MSG_CHECKING([for NSIS])
5496    AC_PATH_PROG(NSIS_PATH, nsis.exe)
5497    if test -n "$NSIS_PATH"; then
5498        NSIS_PATH=`dirname "$NSIS_PATH"`
5499    fi
5500    if test -n "$with_nsis_path"; then
5501        with_nsis_path=`cygpath -u "$with_nsis_path"`
5502    fi
5503    if test -e "$with_nsis_path/nsis.exe"; then
5504        NSIS_PATH="$with_nsis_path"
5505    fi
5506    nsistest=`./oowintool --nsis-dir`;
5507    if test -x "$nsistest/nsis.exe"; then
5508        NSIS_PATH="$nsistest"
5509    fi
5510    if test -z "$NSIS_PATH"; then
5511        AC_MSG_WARN([NSIS not found, no self contained installer will be build.])
5512        echo "NSIS not found, no self contained installer will be build." >> warn
5513    else
5514        NSIS_PATH=`cygpath -d "$NSIS_PATH"`
5515        NSIS_PATH=`cygpath -u "$NSIS_PATH"`
5516        AC_MSG_RESULT([found ($NSIS_PATH)])
5517    fi
5518fi
5519AC_SUBST(NSIS_PATH)
5520
5521dnl ***************************************
5522dnl testing bison and flex exist
5523dnl ***************************************
5524AC_PATH_PROG(BISON, bison)
5525if test -z "$BISON"; then
5526   AC_MSG_ERROR([no bison found in \$PATH, install bison])
5527else
5528   AC_MSG_CHECKING([the bison version])
5529   _bison_version=`$BISON --version | grep GNU | $SED -e 's@^[[^0-9]]*@@' -e 's@ .*@@' -e 's@,.*@@'`;
5530    _bison_longver=`echo $_bison_version | $AWK -F. '{ print \$1*1000+\$2}'`
5531    # Accept newer than 1.875 or older(equal) than 1.75
5532    if test "$_bison_longver" -ge 1875 -o "$_bison_longver" -le 1075; then
5533       if test "$_bison_version" = "1.875" ; then
5534          AC_MSG_WARN([suspect ($BISON $_bison_version)])
5535          echo "Suspect ($BISON $_bison_version) suggest upgrade" >> warn
5536       else
5537          AC_MSG_RESULT([checked ($BISON $_bison_version)])
5538       fi
5539    else
5540       AC_MSG_ERROR([failed ($BISON $_bison_version need 1.875+ (or 1.75 and older))])
5541    fi
5542fi
5543AC_PATH_PROG(FLEX, flex)
5544if test -z "$FLEX"; then
5545   AC_MSG_ERROR([no flex found in \$PATH, install flex])
5546fi
5547dnl ***************************************
5548dnl testing that patch exists
5549dnl ***************************************
5550AC_PATH_PROG(PATCH, patch)
5551if test -z "$PATCH"; then
5552   AC_MSG_ERROR([\"patch\" not found in \$PATH, install the development tool named\"patch"\])
5553fi
5554
5555dnl On Solaris, FreeBSD or MacOS X, check if --with-gnu-patch was used
5556if test "$_os" = "SunOS" -o "$_os" = "FreeBSD" -o "$_os" = "Darwin"; then
5557   if test -z "$with_gnu_patch"; then
5558      GNUPATCH=$PATCH
5559   else
5560      if test -x "$with_gnu_patch"; then
5561	      GNUPATCH=$with_gnu_patch
5562      else
5563         AC_MSG_ERROR([--with-gnu-patch did not point to an executable])
5564      fi
5565   fi
5566
5567   AC_MSG_CHECKING([whether $GNUPATCH is GNU patch])
5568   if $GNUPATCH --version | grep "Free Software Foundation" >/dev/null 2>/dev/null; then
5569	   AC_MSG_RESULT([yes])
5570   else
5571      AC_MSG_ERROR([no, GNU patch needed. install or specify with --with-gnu-patch=/path/to/it])
5572   fi
5573fi
5574
5575dnl We also need to check for --with-gnu-cp
5576
5577if test -z "$with_gnu_cp"; then
5578   # check the place where the good stuff is hidden on Solaris...
5579   if test -x /usr/gnu/bin/cp; then
5580      GNUCP=/usr/gnu/bin/cp
5581   else
5582      AC_PATH_PROGS(GNUCP, gnucp cp)
5583   fi
5584   if test -z $GNUCP; then
5585      AC_MSG_ERROR([Neither gnucp nor cp found. Install GNU cp and/or specify --with-gnu-cp=/path/to/it])
5586   fi
5587else
5588   if test -x "$with_gnu_cp"; then
5589      GNUCP=$with_gnu_cp
5590   else
5591      AC_MSG_ERROR([--with-gnu-cp did not point to an executable])
5592   fi
5593fi
5594
5595AC_MSG_CHECKING([whether $GNUCP is GNU cp from coreutils with preserve= support])
5596if $GNUCP --version 2>/dev/null | grep "coreutils" >/dev/null 2>/dev/null; then
5597   AC_MSG_RESULT([yes])
5598else
5599   AC_MSG_RESULT([no])
5600   GNUCP=''
5601fi
5602
5603if test -z "$GNUCP"; then
5604   if test "$_os" = "SunOS" -o "$_os" = "FreeBSD"; then
5605      AC_MSG_ERROR([no, GNU cp from coreutils is needed. install or specify with --with-gnu-cp=/path/to/it])
5606   else
5607      AC_MSG_RESULT([no GNU cp from coreutils found - using the system's cp command])
5608   fi
5609fi
5610
5611AC_SUBST(GNUPATCH)
5612AC_SUBST(GNUCP)
5613
5614dnl ***************************************
5615dnl testing bash tools path on Windows
5616dnl ***************************************
5617if test "$_os" = "WINNT"; then
5618    CYGWIN_PATH=""
5619    AC_PATH_PROG(CYGWIN_PATH, bash)
5620    CYGWIN_PATH=`dirname "$CYGWIN_PATH"`
5621fi
5622if test -z "$CYGWIN_PATH"; then
5623   CYGWIN_PATH="NO_CYGWIN"
5624fi
5625AC_SUBST(CYGWIN_PATH)
5626
5627dnl ***************************************
5628dnl testing ml.exe assembler path
5629dnl ***************************************
5630if test "$_os" = "WINNT" -a "$WITH_MINGWIN" != "yes"; then
5631  AC_MSG_CHECKING([ml.exe assembler path])
5632  if test -n "$with_asm_home"; then
5633    with_asm_home=`cygpath -u "$with_asm_home"`
5634  fi
5635  if test ! -x "$with_asm_home/ml.exe"; then
5636    AC_PATH_PROG(ML_EXE, ml.exe)
5637    if test -z "$ML_EXE"; then
5638      if test -x "$with_cl_home/bin/ml.exe"; then
5639        with_asm_home=$with_cl_home/bin
5640        AC_MSG_RESULT([found ($with_asm_home)])
5641      else
5642        AC_MSG_ERROR([Configure did not find ml.exe assembler.])
5643      fi
5644    else
5645       with_asm_home="ASM_IN_PATH"
5646    fi
5647  fi
5648  AC_MSG_RESULT([$ASM_HOME])
5649else
5650  with_asm_home="NO_ASM_HOME"
5651fi
5652ASM_HOME="$with_asm_home"
5653AC_SUBST(ASM_HOME)
5654
5655dnl ===================================================================
5656dnl testing handle deprecated unzip switch
5657dnl ===================================================================
5658if test -z "$with_zip_home"; then
5659	with_zip_home="$with_unzip_home"
5660fi
5661dnl ===================================================================
5662dnl Zip will be found where you tell me to find it
5663dnl ===================================================================
5664if test -n "$with_zip_home" ; then
5665    if test "$_os" = "WINNT"; then
5666        with_zip_home=`cygpath -u "$with_zip_home"`
5667    fi
5668    ZIP="$with_zip_home/zip"
5669    UNZIP="$with_zip_home/unzip"
5670    ZIP_HOME="$with_zip_home"
5671else
5672    AC_PATH_PROG(ZIP, zip)
5673    AC_PATH_PROG(UNZIP, unzip)
5674    ZIP_HOME=`dirname "$ZIP"`
5675fi
5676dnl ===================================================================
5677dnl Zip must be available or else it is an error, all platforms
5678dnl ===================================================================
5679if test -z "$ZIP" -o -z "$UNZIP"; then
5680    AC_MSG_ERROR([Zip/Unzip are required to build, please install or use --with-zip-home],,)
5681fi
5682
5683dnl ===================================================================
5684dnl Zip must be a specific type for different build types.
5685dnl ===================================================================
5686if test "$_os" = "WINNT"; then
5687    if test -n "`$ZIP -h | grep -i WinNT`" ; then
5688AC_MSG_ERROR([$ZIP found in the path is not the required cygwin version of Info-ZIPs zip.exe.])
5689    fi
5690fi
5691AC_SUBST(ZIP_HOME)
5692
5693dnl ===================================================================
5694dnl Windows builds need dbghelp.dll in external/dbghelp/
5695dnl ===================================================================
5696if test "$_os" = "WINNT"; then
5697   AC_MSG_CHECKING([for dbghelp.dll])
5698   if test -x ./external/dbghelp/dbghelp.dll; then
5699      AC_MSG_RESULT([found and executable])
5700   else
5701      AC_MSG_ERROR([dbghelp.dll is missing in external/dbghelp/.
5702Get it from the Microsoft site and put it into external/dbghelp.
5703(Note: Microsoft seems to enjoy changing the exact location of this file. You
5704may have to search Microsoft's website.) Last time it was seen at:
5705<http://www.microsoft.com/downloads/release.asp?releaseid=30682>.])
5706   fi
5707fi
5708
5709dnl ===================================================================
5710dnl Windows builds - use oowintool to copy CRT dlls and manifest
5711dnl ===================================================================
5712if test "$_os" = "WINNT" -a "$WITH_MINGWIN" != "yes"; then
5713       if ./oowintool --msvc-copy-dlls ./external/msvcp ; then
5714          :
5715       else
5716          AC_MSG_ERROR([oowintool failed to copy CRT])
5717       fi
5718fi
5719
5720dnl ===================================================================
5721dnl Windows builds need gdiplus.dll in external/gdiplus/
5722dnl ===================================================================
5723if test "$_os" = "WINNT"; then
5724   AC_MSG_CHECKING([for gdiplus.dll])
5725   if test -x ./external/gdiplus/gdiplus.dll; then
5726      AC_MSG_RESULT([found and executable])
5727   else
5728      AC_MSG_ERROR([gdiplus.dll is missing in external/gdiplus/.
5729Get it from the Microsoft site and put it into external/gdiplus.
5730You may have to search Microsoft's website. Last time it was seen at:
5731<http://www.microsoft.com/downloads/details.aspx?familyid=6A63AB9C-DF12-4D41-933C-BE590FEAA05A&displaylang=en>.])
5732   fi
5733fi
5734
5735dnl ===================================================================
5736dnl Test which vclplugs have to be built.
5737dnl ===================================================================
5738AC_MSG_CHECKING([which VCLplugs shall be built])
5739ENABLE_GTK=""
5740if test "x$enable_gtk" = "xyes"; then
5741    ENABLE_GTK="TRUE"
5742    R="gtk"
5743fi
5744AC_SUBST(ENABLE_GTK)
5745
5746ENABLE_KDE=""
5747if test "x$enable_kde" = "xyes"; then
5748    ENABLE_KDE="TRUE"
5749    R="$R kde"
5750fi
5751AC_SUBST(ENABLE_KDE)
5752
5753ENABLE_KDE4=""
5754if test "x$enable_kde4" = "xyes"; then
5755    ENABLE_KDE4="TRUE"
5756    R="$R kde4"
5757fi
5758AC_SUBST(ENABLE_KDE4)
5759
5760if test -z "$R"; then
5761	AC_MSG_RESULT([none])
5762else
5763	AC_MSG_RESULT([$R])
5764fi
5765
5766dnl ===================================================================
5767dnl GCONF check
5768dnl ===================================================================
5769
5770ENABLE_GCONF=""
5771AC_MSG_CHECKING([whether to enable GConf support])
5772if test "$_os" != "WINNT" -a "$_os" != "Darwin" -a "$_os" != "OS2" -a "$enable_gconf" = "yes"; then
5773    ENABLE_GCONF="TRUE"
5774    AC_MSG_RESULT([yes])
5775    PKG_CHECK_MODULES( GCONF, gconf-2.0 )
5776else
5777    AC_MSG_RESULT([no])
5778fi
5779AC_SUBST(ENABLE_GCONF)
5780
5781dnl ===================================================================
5782dnl Gnome VFS check
5783dnl ===================================================================
5784
5785ENABLE_GNOMEVFS=""
5786AC_MSG_CHECKING([whether to enable GNOME VFS support])
5787if test "$_os" != "WINNT" -a "$_os" != "Darwin" -a "$enable_gnome_vfs" = "yes"; then
5788    ENABLE_GNOMEVFS="TRUE"
5789    AC_MSG_RESULT([yes])
5790    PKG_CHECK_MODULES( GNOMEVFS, gnome-vfs-2.0 >= 2.6.0 )
5791    if test "$ENABLE_GCONF" != "TRUE"; then
5792        PKG_CHECK_MODULES( GCONF, gconf-2.0 )
5793    fi
5794else
5795    AC_MSG_RESULT([no])
5796fi
5797AC_SUBST(ENABLE_GNOMEVFS)
5798
5799dnl ===================================================================
5800dnl Check whether the gtk 2.0 libraries are available.
5801dnl ===================================================================
5802
5803GTK_CFLAGS=""
5804GTK_LIBS=""
5805ENABLE_SYSTRAY_GTK=""
5806ENABLE_DBUS=""
5807if test  "$test_gtk" = "yes"; then
5808
5809   if test "$ENABLE_GTK" = "TRUE" ; then
5810      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]))
5811      PKG_CHECK_MODULES(GTHREAD, gthread-2.0,,AC_MSG_ERROR([requirements to build the gtk-plugin not met. Use --disable-gtk or install the missing packages]))
5812      BUILD_TYPE="$BUILD_TYPE GTK"
5813
5814      if test "x$enable_systray" = "xyes"; then
5815         PKG_CHECK_MODULES(GTK_2_16,gtk+-2.0 >= 2.16.0,
5816                           [ENABLE_SYSTRAY_GTK="TRUE"
5817                            BUILD_TYPE="$BUILD_TYPE SYSTRAY_GTK"],
5818                           [ENABLE_SYSTRAY_GTK=""])
5819      fi
5820
5821      AC_MSG_CHECKING([whether to enable DBUS support])
5822      if test "$_os" != "WINNT" -a "$_os" != "Darwin" -a "$enable_dbus" = "yes"; then
5823          ENABLE_DBUS="TRUE"
5824          AC_MSG_RESULT([yes])
5825          PKG_CHECK_MODULES( DBUS, dbus-glib-1 >= 0.70 )
5826      else
5827          AC_MSG_RESULT([no])
5828      fi
5829
5830      AC_MSG_CHECKING([whether to enable GIO support])
5831      if test "$_os" != "WINNT" -a "$_os" != "Darwin" -a "$enable_gio" = "yes"; then
5832          if test "$ENABLE_GNOMEVFS" = "TRUE" ; then
5833             AC_MSG_ERROR([please use --enable-gio only together with --disable-gnome-vfs.])
5834          fi
5835          ENABLE_GIO="TRUE"
5836          AC_MSG_RESULT([yes])
5837          PKG_CHECK_MODULES( GIO, gio-2.0 )
5838      else
5839          AC_MSG_RESULT([no])
5840      fi
5841
5842   fi
5843
5844fi
5845AC_SUBST(ENABLE_GIO)
5846AC_SUBST(ENABLE_DBUS)
5847AC_SUBST(ENABLE_SYSTRAY_GTK)
5848AC_SUBST(GTK_CFLAGS)
5849AC_SUBST(GTK_LIBS)
5850AC_SUBST(GTHREAD_CFLAGS)
5851AC_SUBST(GTHREAD_LIBS)
5852
5853dnl ===================================================================
5854dnl Check whether the GStreamer libraries are available.
5855dnl ===================================================================
5856
5857GSTREAMER_CFLAGS=""
5858GSTREAMER_LIBS=""
5859ENABLE_GSTREAMER=""
5860
5861if test "$test_gstreamer" = "yes"; then
5862    AC_MSG_CHECKING([whether to build the GStreamer media backend])
5863    if test "x$enable_gstreamer" != "xno" ; then
5864        PKG_CHECK_MODULES( GSTREAMER, gtk+-2.0 >= 2.4 gthread-2.0 gstreamer-0.10 gstreamer-interfaces-0.10 ,,AC_MSG_ERROR([requirements to build the GStreamer media backend not met. Do not use --enable-gstreamer or install the missing packages]))
5865        ENABLE_GSTREAMER="TRUE"
5866        AC_MSG_RESULT([yes])
5867    else
5868        AC_MSG_RESULT([no])
5869    fi
5870fi
5871AC_SUBST(ENABLE_GSTREAMER)
5872AC_SUBST(GSTREAMER_CFLAGS)
5873AC_SUBST(GSTREAMER_LIBS)
5874
5875dnl ===================================================================
5876dnl Check the ARM target
5877dnl ===================================================================
5878
5879if test "$_os" = "Linux" && echo "$build_cpu" | $GREP -q arm; then
5880    # default value
5881    ARM_TARGET=ARMV4T
5882    AC_MSG_CHECKING([which ARM processor optimization to use])
5883    if test "$with_arm_target" -lt "6"; then
5884	ARM_TARGET=ARMV4T
5885    elif test "$with_arm_target" = "6"; then
5886	ARM_TARGET=ARMV6
5887    elif test "$with_arm_target" -gt "6"; then
5888	ARM_TARGET=ARMV7
5889    fi
5890    AC_MSG_RESULT([$ARM_TARGET])
5891    AC_SUBST(ARM_TARGET)
5892fi
5893
5894dnl ===================================================================
5895dnl Check whether the Cairo libraries are available.
5896dnl ===================================================================
5897
5898ENABLE_CAIRO=""
5899BUILD_PIXMAN=""
5900SYSTEM_CAIRO=""
5901
5902if test  "$test_cairo" = "yes"; then
5903
5904    AC_MSG_CHECKING([whether to use cairo])
5905    if test "x$enable_cairo" != "xno" ; then
5906        ENABLE_CAIRO="TRUE"
5907	AC_MSG_RESULT([yes])
5908        AC_MSG_CHECKING([which cairo to use])
5909        if test -n "$with_system_cairo" -o -n "$with_system_libs" && \
5910           test "$with_system_cairo" != "no"; then
5911           AC_MSG_RESULT([external])
5912           SYSTEM_CAIRO=YES
5913
5914           PKG_CHECK_MODULES( CAIRO, cairo >= 1.0.2 )
5915	   if test "$_os" != "WINNT" -a "$_os" != "Darwin" -a "$ENABLE_FONTCONFIG" != "TRUE" ; then
5916	      AC_MSG_ERROR([Cairo library requires fontconfig.])
5917	   fi
5918           if test "$with_system_xrender_headers" = "yes"; then
5919              AC_MSG_CHECKING([whether Xrender.h defines PictStandardA8])
5920              AC_TRY_RUN([
5921#include <X11/extensions/Xrender.h>
5922
5923int main(int argc, char **argv) {
5924#ifdef PictStandardA8
5925      return 0;
5926#else
5927      return 1;
5928#endif
5929}
5930               ], [AC_MSG_RESULT([yes])], [AC_MSG_ERROR([no, X headers too old.])])
5931           fi
5932        else
5933           BUILD_TYPE="$BUILD_TYPE CAIRO"
5934	   dnl === compiler fails on pixman with 64bit architectures...===
5935	   if test "$build_cpu" != "x86_64"; then
5936	      BUILD_PIXMAN=YES
5937	   fi
5938           AC_MSG_RESULT([internal])
5939        fi
5940    else
5941	   AC_MSG_RESULT([no])
5942    fi
5943fi
5944
5945AC_SUBST(ENABLE_CAIRO)
5946AC_SUBST(BUILD_PIXMAN)
5947AC_SUBST(SYSTEM_CAIRO)
5948AC_SUBST(CAIRO_CFLAGS)
5949AC_SUBST(CAIRO_LIBS)
5950
5951ENABLE_CAIRO_CANVAS="FALSE"
5952if test "$enable_cairo_canvas" = "yes" -a "$ENABLE_CAIRO" = "TRUE" ; then
5953   ENABLE_CAIRO_CANVAS="TRUE"
5954fi
5955AC_SUBST(ENABLE_CAIRO_CANVAS)
5956
5957dnl ===================================================================
5958dnl Check whether the OpenGL libraries are available
5959dnl ===================================================================
5960
5961AC_MSG_CHECKING([whether to build the OpenGL Transitions component])
5962ENABLE_OPENGL=
5963
5964if test "x$enable_opengl" != "xno" ; then
5965   AC_MSG_RESULT([yes])
5966   AC_CHECK_HEADER(GL/gl.h, [],
5967                   [AC_MSG_ERROR([OpenGL headers not found])], [])
5968   AC_CHECK_LIB(GL, main, [],
5969     [AC_MSG_ERROR(libGL not installed or functional)], [])
5970   AC_CHECK_LIB(GLU, main, [],
5971     [AC_MSG_ERROR(libGLU not installed or functional)], [])
5972   ENABLE_OPENGL=TRUE
5973else
5974   AC_MSG_RESULT([no])
5975fi
5976
5977AC_SUBST(ENABLE_OPENGL)
5978
5979AC_MSG_CHECKING([whether to build extra presenter ui])
5980if test -n "$enable_presenter_extra_ui" -a "$enable_presenter_extra_ui" != "no"; then
5981   AC_MSG_RESULT([yes])
5982   ENABLE_PRESENTER_EXTRA_UI=YES
5983else
5984   AC_MSG_RESULT([no])
5985   ENABLE_PRESENTER_EXTRA_UI=NO
5986fi
5987AC_SUBST(ENABLE_PRESENTER_EXTRA_UI)
5988
5989AC_MSG_CHECKING([whether to build the Presentation Minimizer extension])
5990if test -n "$enable_minimizer" -a "$enable_minimizer" != "no"; then
5991   AC_MSG_RESULT([yes])
5992   ENABLE_MINIMIZER=YES
5993else
5994   AC_MSG_RESULT([no])
5995   ENABLE_MINIMIZER=NO
5996fi
5997AC_SUBST(ENABLE_MINIMIZER)
5998
5999AC_MSG_CHECKING([whether to build the Presenter Screen extension])
6000if test -n "$enable_presenter_console" -a "$enable_presenter_screen" != "no"; then
6001   AC_MSG_RESULT([yes])
6002   ENABLE_PRESENTER_SCREEN=YES
6003else
6004   AC_MSG_RESULT([no])
6005   ENABLE_PRESENTER_SCREEN=NO
6006fi
6007AC_SUBST(ENABLE_PRESENTER_SCREEN)
6008
6009AC_MSG_CHECKING([whether to build the PDF Import extension])
6010if test -n "$enable_pdfimport" -a "$enable_pdfimport" != "no"; then
6011  AC_MSG_RESULT([yes])
6012  ENABLE_PDFIMPORT=YES
6013
6014  dnl ===================================================================
6015  dnl Check for system poppler
6016  dnl ===================================================================
6017  AC_MSG_CHECKING([whether to use system pdf backend])
6018  if test -n "$with_system_poppler" -o -n "$with_system_libs" && \
6019       test "$with_system_poppler" != "no"; then
6020      AC_MSG_RESULT([external])
6021      SYSTEM_POPPLER=YES
6022      PKG_CHECK_MODULES( POPPLER, poppler >= 0.8.0 )
6023  else
6024      AC_MSG_RESULT([no])
6025      SYSTEM_POPPLER=NO
6026      ENABLE_PDFIMPORT=NO
6027  fi
6028else
6029   AC_MSG_RESULT([no])
6030   ENABLE_PDFIMPORT=NO
6031fi
6032AC_SUBST(ENABLE_PDFIMPORT)
6033AC_SUBST(SYSTEM_POPPLER)
6034AC_SUBST(POPPLER_CFLAGS)
6035AC_SUBST(POPPLER_LIBS)
6036
6037if test "$ENABLE_PRESENTER_SCREEN" = "YES" -o "$ENABLE_MINIMIZER" = "YES" -o "$ENABLE_PDFIMPORT" = "YES"; then
6038  AC_MSG_CHECKING([for sdext module])
6039  if test -d ./sdext; then
6040   AC_MSG_RESULT([OK])
6041  else
6042   AC_MSG_ERROR([not existing. get it (did you get the -extensions tarball?)])
6043  fi
6044  BUILD_TYPE="$BUILD_TYPE SDEXT"
6045fi
6046
6047AC_MSG_CHECKING([whether to build the Wiki Publisher extension])
6048if test -n "$enable_wiki_publisher" -a "$enable_wiki_publisher" != "no" && test  "$WITH_JAVA" != "no"; then
6049  AC_MSG_RESULT([yes])
6050  AC_MSG_CHECKING([for swext module])
6051  if test -d ./swext; then
6052   AC_MSG_RESULT([OK])
6053  else
6054   AC_MSG_ERROR([not existing. get it (did you get the -extensions tarball?)])
6055  fi
6056  ENABLE_MEDIAWIKI=YES
6057  BUILD_TYPE="$BUILD_TYPE SWEXT"
6058else
6059  AC_MSG_RESULT([no])
6060  ENABLE_MEDIAWIKI=NO
6061fi
6062AC_SUBST(ENABLE_MEDIAWIKI)
6063
6064if test "$ENABLE_MEDIAWIKI" = "YES"; then
6065  AC_MSG_CHECKING([which Servlet API Jar to use])
6066  if test -n "$with_system_servlet_api"; then
6067    AC_MSG_RESULT([external])
6068    SYSTEM_SERVLETAPI=YES
6069      if test -z "$SERVLETAPI_JAR"; then
6070	SERVLETAPI_JAR=/usr/share/java/servlet-api.jar
6071      fi
6072      AC_CHECK_FILE($SERVLETAPI_JAR, [],
6073             [AC_MSG_ERROR(servlet-api.jar not found.)], [])
6074  else
6075    AC_MSG_RESULT([internal])
6076    SYSTEM_SERVLETAPI=NO
6077    BUILD_TYPE="$BUILD_TYPE TOMCAT"
6078  fi
6079fi
6080AC_SUBST(SYSTEM_SERVLETAPI)
6081AC_SUBST(SERVLETAPI_JAR)
6082
6083AC_MSG_CHECKING([whether to build the Report Builder extension])
6084if test -n "$enable_report_builder" -a "$enable_report_builder" != "no" && test "$WITH_JAVA" != "no"; then
6085  AC_MSG_RESULT([yes])
6086  ENABLE_REPORTBUILDER=YES
6087  SYSTEM_JFREEREPORT=YES
6088  AC_MSG_CHECKING([for reportbuilder module])
6089  if test -d ./reportbuilder; then
6090    AC_MSG_RESULT([OK])
6091  else
6092    AC_MSG_ERROR([not existing. get it (did you get the -extensions tarball?)])
6093  fi
6094  AC_MSG_CHECKING([which jfreereport libs to use (for Report Builder extension)])
6095  AC_MSG_RESULT([external])
6096  if test -z $SAC_JAR; then
6097         SAC_JAR=/usr/share/java/sac.jar
6098  fi
6099  AC_CHECK_FILE($SAC_JAR, [],
6100         [AC_MSG_ERROR(sac.jar not found.)], [])
6101
6102  if test -z $LIBXML_JAR; then
6103    AC_CHECK_FILE(/usr/share/java/libxml-1.0.0.jar,
6104      [ LIBXML_JAR=/usr/share/java/libxml-1.0.0.jar ],
6105      [
6106        AC_CHECK_FILE(/usr/share/java/libxml.jar,
6107          [ LIBXML_JAR=/usr/share/java/libxml.jar ],
6108          [AC_MSG_ERROR(libxml.jar replacement not found.)]
6109        )
6110      ]
6111    )
6112  else
6113    AC_CHECK_FILE($LIBXML_JAR, [],
6114         [AC_MSG_ERROR(libxml.jar not found.)], [])
6115  fi
6116
6117  if test -z $FLUTE_JAR; then
6118    AC_CHECK_FILE(/usr/share/java/flute-1.3.0.jar,
6119      [ FLUTE_JAR=/usr/share/java/flute-1.3.0.jar ],
6120      [
6121        AC_CHECK_FILE(/usr/share/java/flute.jar,
6122          [ FLUTE_JAR=/usr/share/java/flute.jar ],
6123          [ AC_MSG_ERROR(flute-1.3.0.jar replacement not found.)]
6124        )
6125      ]
6126    )
6127  else
6128    AC_CHECK_FILE($FLUTE_JAR, [],
6129         [AC_MSG_ERROR(flute-1.3.0.jar not found.)], [])
6130  fi
6131
6132  if test -z $JFREEREPORT_JAR; then
6133    AC_CHECK_FILE(/usr/share/java/flow-engine-0.9.2.jar,
6134      [ JFREEREPORT_JAR=/usr/share/java/flow-engine-0.9.2.jar ],
6135      [
6136        AC_CHECK_FILE(/usr/share/java/flow-engine.jar,
6137          [ JFREEREPORT_JAR=/usr/share/java/flow-engine.jar ],
6138          [AC_MSG_ERROR(jfreereport.jar replacement not found.)]
6139        )
6140      ]
6141    )
6142  else
6143    AC_CHECK_FILE($JFREEREPORT_JAR, [],
6144         [AC_MSG_ERROR(jfreereport.jar not found.)], [])
6145  fi
6146
6147  if test -z $LIBLAYOUT_JAR; then
6148    AC_CHECK_FILE(/usr/share/java/liblayout-0.2.9.jar,
6149      [ LIBLAYOUT_JAR=/usr/share/java/liblayout-0.2.9.jar ],
6150      [
6151        AC_CHECK_FILE(/usr/share/java/liblayout.jar,
6152          [ LIBLAYOUT_JAR=/usr/share/java/liblayout.jar ],
6153          [AC_MSG_ERROR(liblayout.jar replacement not found.)]
6154        )
6155      ]
6156    )
6157  else
6158    AC_CHECK_FILE($LIBLAYOUT_JAR, [],
6159         [AC_MSG_ERROR(liblayout.jar not found.)], [])
6160  fi
6161
6162  if test -z $LIBLOADER_JAR; then
6163    AC_CHECK_FILE(/usr/share/java/libloader-1.0.0.jar,
6164      [ LIBLOADER_JAR=/usr/share/java/libloader-1.0.0.jar ],
6165      [
6166        AC_CHECK_FILE(/usr/share/java/libloader.jar,
6167          [ LIBLOADER_JAR=/usr/share/java/libloader.jar ],
6168          [AC_MSG_ERROR(libloader.jar replacement not found.)]
6169        )
6170      ]
6171    )
6172  else
6173    AC_CHECK_FILE($LIBLOADER_JAR, [],
6174         [AC_MSG_ERROR(libloader.jar not found.)], [])
6175  fi
6176
6177  if test -z $LIBFORMULA_JAR; then
6178    AC_CHECK_FILE(/usr/share/java/libformula-0.2.0.jar,
6179      [ LIBFORMULA_JAR=/usr/share/java/libformula-0.2.0.jar ],
6180      [
6181        AC_CHECK_FILE(/usr/share/java/libformula.jar,
6182          [ LIBFORMULA_JAR=/usr/share/java/libformula.jar ],
6183          [AC_MSG_ERROR(libformula.jar replacement not found.)]
6184        )
6185      ]
6186    )
6187  else
6188    AC_CHECK_FILE($LIBFORMULA_JAR, [],
6189         [AC_MSG_ERROR(libformula.jar not found.)], [])
6190  fi
6191
6192  if test -z $LIBREPOSITORY_JAR; then
6193    AC_CHECK_FILE(/usr/share/java/librepository-1.0.0.jar,
6194      [ LIBREPOSITORY_JAR=/usr/share/java/librepository-1.0.0.jar ],
6195      [
6196        AC_CHECK_FILE(/usr/share/java/librepository.jar,
6197          [ LIBREPOSITORY_JAR=/usr/share/java/librepository.jar ],
6198          [AC_MSG_ERROR(librepository.jar replacement not found.)]
6199        )
6200      ]
6201    )
6202  else
6203    AC_CHECK_FILE($LIBREPOSITORY_JAR, [],
6204         [AC_MSG_ERROR(librepository.jar not found.)], [])
6205  fi
6206
6207  if test -z $LIBFONTS_JAR; then
6208    AC_CHECK_FILE(/usr/share/java/libfonts-1.0.0.jar,
6209      [ LIBFONTS_JAR=/usr/share/java/libfonts-1.0.0.jar ],
6210      [
6211        AC_CHECK_FILE(/usr/share/java/libfonts.jar,
6212          [ LIBFONTS_JAR=/usr/share/java/libfonts.jar ],
6213          [AC_MSG_ERROR(libfonts.jar replacement not found.)]
6214        )
6215      ]
6216    )
6217  else
6218    AC_CHECK_FILE($LIBFONTS_JAR, [],
6219         [AC_MSG_ERROR(libfonts.jar not found.)], [])
6220  fi
6221
6222  if test -z $LIBSERIALIZER_JAR; then
6223    AC_CHECK_FILE(/usr/share/java/libserializer-1.0.0.jar,
6224      [ LIBSERIALIZER_JAR=/usr/share/java/libserializer-1.0.0.jar ],
6225      [
6226        AC_CHECK_FILE(/usr/share/java/libserializer.jar,
6227          [ LIBSERIALIZER_JAR=/usr/share/java/libserializer.jar ],
6228          [AC_MSG_ERROR(libserializer.jar replacement not found.)]
6229        )
6230      ]
6231    )
6232  else
6233    AC_CHECK_FILE($LIBSERIALIZER_JAR, [],
6234         [AC_MSG_ERROR(libserializer.jar not found.)], [])
6235  fi
6236
6237
6238  if test -z $LIBBASE_JAR; then
6239    AC_CHECK_FILE(/usr/share/java/libbase-1.0.0.jar,
6240      [ LIBBASE_JAR=/usr/share/java/libbase-1.0.0.jar ],
6241      [
6242        AC_CHECK_FILE(/usr/share/java/libbase.jar,
6243          [ LIBBASE_JAR=/usr/share/java/libbase.jar ],
6244          [AC_MSG_ERROR(libbase.jar replacement not found.)]
6245        )
6246      ]
6247    )
6248  else
6249    AC_CHECK_FILE($LIBBASE_JAR, [],
6250         [AC_MSG_ERROR(libbase.jar not found.)], [])
6251  fi
6252  BUILD_TYPE="$BUILD_TYPE REPORTBUILDER"
6253else
6254  AC_MSG_RESULT([no])
6255  ENABLE_REPORTBUILDER=NO
6256fi
6257AC_SUBST(ENABLE_REPORTBUILDER)
6258AC_SUBST(SYSTEM_JFREEREPORT)
6259AC_SUBST(SAC_JAR)
6260AC_SUBST(LIBXML_JAR)
6261AC_SUBST(FLUTE_JAR)
6262AC_SUBST(JFREEREPORT_JAR)
6263AC_SUBST(LIBBASE_JAR)
6264AC_SUBST(LIBLAYOUT_JAR)
6265AC_SUBST(LIBLOADER_JAR)
6266AC_SUBST(LIBFORMULA_JAR)
6267AC_SUBST(LIBREPOSITORY_JAR)
6268AC_SUBST(LIBFONTS_JAR)
6269AC_SUBST(LIBSERIALIZER_JAR)
6270
6271# this has to be here because both the wiki publisher and the SRB use
6272# commons-logging
6273if test "$ENABLE_MEDIAWIKI" = "YES" -o "$ENABLE_REPORTBUILDER" = "YES"; then
6274  AC_MSG_CHECKING([which Apache commons-* libs to use])
6275  if test "$with_system_apache_commons" = "yes"; then
6276    SYSTEM_APACHE_COMMONS=YES
6277    AC_MSG_RESULT([external])
6278    if test "$ENABLE_MEDIAWIKI" = "YES"; then
6279      if test -z $COMMONS_CODEC_JAR; then
6280        AC_CHECK_FILE(/usr/share/java/commons-codec-1.3.jar,
6281          [ COMMONS_CODEC_JAR=/usr/share/java/commons-codec-1.3.jar ],
6282          [
6283            AC_CHECK_FILE(/usr/share/java/commons-codec.jar,
6284              [ COMMONS_CODEC_JAR=/usr/share/java/commons-codec.jar ],
6285              [AC_MSG_ERROR(commons-codec.jar replacement not found.)]
6286            )
6287          ]
6288        )
6289      else
6290        AC_CHECK_FILE($COMMONS_CODEC_JAR, [],
6291             [AC_MSG_ERROR(commons-codec.jar not found.)], [])
6292      fi
6293
6294      if test -z $COMMONS_LANG_JAR; then
6295        AC_CHECK_FILE(/usr/share/java/commons-lang-2.3.jar,
6296          [ COMMONS_LANG_JAR=/usr/share/java/commons-lang-2.3.jar ],
6297          [
6298            AC_CHECK_FILE(/usr/share/java/commons-lang.jar,
6299              [ COMMONS_LANG_JAR=/usr/share/java/commons-lang.jar ],
6300              [AC_MSG_ERROR(commons-lang.jar replacement not found.)]
6301            )
6302          ]
6303        )
6304      else
6305        AC_CHECK_FILE($COMMONS_LANG_JAR, [],
6306             [AC_MSG_ERROR(commons-lang.jar not found.)], [])
6307      fi
6308
6309      if test -z $COMMONS_HTTPCLIENT_JAR; then
6310        AC_CHECK_FILE(/usr/share/java/commons-httpclient-3.1.jar,
6311          [ COMMONS_HTTPCLIENT_JAR=/usr/share/java/commons-httpclient-3.1.jar ],
6312          [
6313            AC_CHECK_FILE(/usr/share/java/commons-httpclient.jar,
6314              [ COMMONS_HTTPCLIENT_JAR=/usr/share/java/commons-httpclient.jar ],
6315              [AC_MSG_ERROR(commons-httpclient.jar replacement not found.)]
6316            )
6317          ]
6318        )
6319      else
6320        AC_CHECK_FILE($COMMONS_HTTPCLIENT_JAR, [],
6321             [AC_MSG_ERROR(commons-httpclient.jar not found.)], [])
6322      fi
6323    fi
6324    if test "$ENABLE_MEDIAWIKI" = "YES" -o "$ENABLE_REPORTBUILDER" = "YES"; then
6325      if test -z $COMMONS_LOGGING_JAR; then
6326        AC_CHECK_FILE(/usr/share/java/commons-logging-1.1.1.jar,
6327          [ COMMONS_LOGGING_JAR=/usr/share/java/commons-logging-1.1.1.jar ],
6328          [
6329            AC_CHECK_FILE(/usr/share/java/commons-logging.jar,
6330              [ COMMONS_LOGGING_JAR=/usr/share/java/commons-logging.jar ],
6331              [AC_MSG_ERROR(commons-logging.jar replacement not found.)]
6332            )
6333          ]
6334        )
6335      else
6336        AC_CHECK_FILE($COMMONS_LOGGING_JAR, [],
6337             [AC_MSG_ERROR(commons-logging.jar not found.)], [])
6338      fi
6339    fi
6340  else
6341    AC_MSG_RESULT([internal])
6342    SYSTEM_APACHE_COMMONS=NO
6343    BUILD_TYPE="$BUILD_TYPE APACHE_COMMONS TOMCAT"
6344  fi
6345fi
6346AC_SUBST(SYSTEM_APACHE_COMMONS)
6347AC_SUBST(COMMONS_CODEC_JAR)
6348AC_SUBST(COMMONS_LANG_JAR)
6349AC_SUBST(COMMONS_HTTPCLIENT_JAR)
6350AC_SUBST(COMMONS_LOGGING_JAR)
6351
6352dnl ===================================================================
6353dnl Check whether the Qt and KDE libraries are available.
6354dnl ===================================================================
6355
6356KDE_CFLAGS=""
6357KDE_LIBS=""
6358MOC="moc"
6359if test "$test_kde" = "yes" -a "$ENABLE_KDE" = "TRUE" ; then
6360    dnl Search paths for Qt and KDE
6361    if test "$build_cpu" != "x86_64" ; then
6362        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 $x_includes"
6363        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 $x_libraries"
6364    else
6365        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 $x_includes"
6366        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 $x_libraries"
6367    fi
6368    if test -n "$QTDIR" ; then
6369        qt_incdirs="$QTDIR/include $qt_incdirs"
6370        if test "$build_cpu" != "x86_64" ; then
6371            qt_libdirs="$QTDIR/lib $qt_libdirs"
6372        else
6373            qt_libdirs="$QTDIR/lib64 $QTDIR/lib $qt_libdirs"
6374        fi
6375    fi
6376    if test "$build_cpu" != "x86_64" ; then
6377        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"
6378        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"
6379    else
6380        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"
6381        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"
6382    fi
6383    if test -n "$KDEDIR" ; then
6384        kde_incdirs="$KDEDIR/include $kde_incdirs"
6385        if test "$build_cpu" != "x86_64" ; then
6386            kde_libdirs="$KDEDIR/lib $kde_libdirs"
6387        else
6388            kde_libdirs="$KDEDIR/lib64 $KDEDIR/lib $kde_libdirs"
6389        fi
6390    fi
6391
6392    dnl What to test
6393    qt_test_include="qstyle.h"
6394    qt_test_library="libqt-mt.so"
6395    kde_test_include="ksharedptr.h"
6396    kde_test_library="libkdeui.so"
6397
6398    dnl Check for Qt headers
6399    AC_MSG_CHECKING([for Qt headers])
6400    qt_incdir="no"
6401    for kde_check in $qt_incdirs ; do
6402        if test -r "$kde_check/$qt_test_include" ; then
6403            qt_incdir="$kde_check"
6404            break
6405        fi
6406    done
6407    AC_MSG_RESULT([$qt_incdir])
6408    if test "x$qt_incdir" = "xno" ; then
6409        AC_MSG_ERROR([Qt headers not found.  Please specify the root of
6410your Qt installation by exporting QTDIR before running "configure".])
6411    fi
6412
6413    dnl Check for Qt libraries
6414    AC_MSG_CHECKING([for Qt libraries])
6415    qt_libdir="no"
6416    for qt_check in $qt_libdirs ; do
6417        if test -r "$qt_check/$qt_test_library" ; then
6418            qt_libdir="$qt_check"
6419            break
6420        fi
6421    done
6422    AC_MSG_RESULT([$qt_libdir])
6423    if test "x$qt_libdir" = "xno" ; then
6424        AC_MSG_ERROR([Qt libraries not found.  Please specify the root of
6425your Qt installation by exporting QTDIR before running "configure".])
6426    fi
6427
6428    dnl Check for Meta Object Compiler
6429    AC_PATH_PROG( MOC, moc, no, [$QTDIR/bin:$PATH] )
6430    if test "$MOC" = "no" ; then
6431        AC_MSG_ERROR([Qt Meta Object Compiler not found.  Please specify
6432the root of your Qt installation by exporting QTDIR before running "configure".])
6433    fi
6434
6435    dnl Check for KDE headers
6436    AC_MSG_CHECKING([for KDE headers])
6437    kde_incdir="no"
6438    for kde_check in $kde_incdirs ; do
6439        if test -r "$kde_check/$kde_test_include" ; then
6440            kde_incdir="$kde_check"
6441            break
6442        fi
6443    done
6444    AC_MSG_RESULT([$kde_incdir])
6445    if test "x$kde_incdir" = "xno" ; then
6446        AC_MSG_ERROR([KDE headers not found.  Please specify the root of
6447your KDE installation by exporting KDEDIR before running "configure".])
6448    fi
6449
6450    dnl Check for KDE libraries
6451    AC_MSG_CHECKING([for KDE libraries])
6452    kde_libdir="no"
6453    for kde_check in $kde_libdirs ; do
6454        if test -r "$kde_check/$kde_test_library" ; then
6455            kde_libdir="$kde_check"
6456            break
6457        fi
6458    done
6459    AC_MSG_RESULT([$kde_libdir])
6460    if test "x$kde_libdir" = "xno" ; then
6461        AC_MSG_ERROR([KDE libraries not found.  Please specify the root of
6462your KDE installation by exporting KDEDIR before running "configure".])
6463    fi
6464
6465    dnl Set the variables
6466    KDE_CFLAGS="-I$qt_incdir -I$kde_incdir -DQT_CLEAN_NAMESPACE -DQT_THREAD_SUPPORT"
6467    KDE_LIBS="-L$kde_libdir -L$qt_libdir -lkdeui -lkdecore -lqt-mt"
6468fi
6469AC_SUBST(KDE_CFLAGS)
6470AC_SUBST(KDE_LIBS)
6471AC_SUBST(MOC)
6472
6473dnl ===================================================================
6474dnl KDE4 Integration
6475dnl ===================================================================
6476
6477KDE4_CFLAGS=""
6478KDE4_LIBS=""
6479MOC4="moc"
6480if test "$test_kde4" = "yes" -a "$ENABLE_KDE4" = "TRUE" ; then
6481   qt_incdirs="$QT4INC $QT4DIR /usr/include/qt4 /usr/include $x_includes"
6482   qt_libdirs="$QT4LIB /usr/lib $x_libraries"
6483
6484   kde_incdirs="/usr/include /usr/include/kde4 $x_includes"
6485   kde_libdirs="/usr/lib /usr/lib/kde4 /usr/lib/kde4/devel $x_libraries"
6486
6487   if test "$build_cpu" = "x86_64" ; then
6488      qt_libdirs="$qt_libdirs /usr/lib64/qt4 /usr/lib64/qt /usr/lib64"
6489      kde_libdirs="$kde_libdirs /usr/lib64 /usr/lib64/kde4 /usr/lib64/kde4/devel"
6490   fi
6491
6492   if test -n "$KDE4DIR" ; then
6493      kde_incdirs="$KDE4DIR/include $kde_incdirs"
6494      if test "$build_cpu" != "x86_64" ; then
6495         kde_libdirs="$KDE4DIR/lib $kde_libdirs"
6496      else
6497         kde_libdirs="$KDE4DIR/lib64 $KDE4DIR/lib $kde_libdirs"
6498      fi
6499   fi
6500
6501   qt_test_include="Qt/qobject.h"
6502   qt_test_library="libQtCore.so"
6503   kde_test_include="ksharedptr.h"
6504   kde_test_library="libkdeui.so"
6505
6506   AC_MSG_CHECKING([for Qt4 headers])
6507   qt_header_dir="no"
6508   for inc_dir in $qt_incdirs ; do
6509      if test -r "$inc_dir/$qt_test_include" ; then
6510         qt_header_dir="$inc_dir"
6511         break
6512      fi
6513   done
6514
6515   AC_MSG_RESULT([$qt_header_dir])
6516   if test "x$qt_header_dir" = "xno" ; then
6517      AC_MSG_ERROR([Qt4 headers not found.  Please specify the root of your Qt4 installation by exporting QT4DIR before running "configure".])
6518   fi
6519
6520   AC_MSG_CHECKING([for Qt4 libraries])
6521   qt_lib_dir="no"
6522   for lib_dir in $qt_libdirs ; do
6523      if test -r "$lib_dir/$qt_test_library" ; then
6524         qt_lib_dir="$lib_dir"
6525         break
6526      fi
6527   done
6528
6529   AC_MSG_RESULT([$qt_lib_dir])
6530
6531   if test "x$qt_lib_dir" = "xno" ; then
6532      AC_MSG_ERROR([Qt4 libraries not found.  Please specify the root of your Qt4 installation by exporting QT4DIR before running "configure".])
6533   fi
6534
6535   dnl Check for Meta Object Compiler
6536   AC_PATH_PROG( MOCQT4, moc-qt4, no, [$QT4DIR/bin:$PATH] )
6537   MOC4="$MOCQT4"
6538   if test "$MOC4" = "no" ; then
6539      AC_PATH_PROG( MOC4, moc, no, [$PATH:$QT4DIR/bin] )
6540      if test "$MOC4" = "no" ; then
6541         AC_MSG_ERROR([Qt Meta Object Compiler not found.  Please specify the root of your Qt installation by exporting QT4DIR before running "configure".])
6542      fi
6543   fi
6544
6545   dnl Check for KDE4 headers
6546   AC_MSG_CHECKING([for KDE4 headers])
6547   kde_incdir="no"
6548   for kde_check in $kde_incdirs ; do
6549      if test -r "$kde_check/$kde_test_include" ; then
6550         kde_incdir="$kde_check"
6551         break
6552      fi
6553   done
6554   AC_MSG_RESULT([$kde_incdir])
6555   if test "x$kde_incdir" = "xno" ; then
6556      AC_MSG_ERROR([KDE4 headers not found.  Please specify the root of your KDE4 installation by exporting KDE4DIR before running "configure".])
6557   fi
6558
6559   dnl Check for KDE4 libraries
6560   AC_MSG_CHECKING([for KDE4 libraries])
6561   kde_libdir="no"
6562   for kde_check in $kde_libdirs ; do
6563      if test -r "$kde_check/$kde_test_library" ; then
6564         kde_libdir="$kde_check"
6565         break
6566      fi
6567   done
6568
6569   AC_MSG_RESULT([$kde_libdir])
6570   if test "x$kde_libdir" = "xno" ; then
6571      AC_MSG_ERROR([KDE4 libraries not found.  Please specify the root of your KDE4 installation by exporting KDE4DIR before running "configure".])
6572   fi
6573
6574   KDE4_CFLAGS="`pkg-config --cflags QtCore` `pkg-config --cflags QtGui` -I$kde_incdir -DQT_CLEAN_NAMESPACE -DQT_THREAD_SUPPORT"
6575   KDE4_LIBS="-L$kde_libdir -L$qt_lib_dir -lkdeui -lkdecore -lQtCore -lQtGui"
6576fi
6577AC_SUBST(KDE4_CFLAGS)
6578AC_SUBST(KDE4_LIBS)
6579AC_SUBST(MOC4)
6580
6581dnl ===================================================================
6582dnl Test for the enabling the lockdown pieces
6583dnl ===================================================================
6584AC_MSG_CHECKING([whether to enable the lockdown pieces])
6585ENABLE_LOCKDOWN=""
6586if test -n "$enable_lockdown" && test "$enable_lockdown" != "no"; then
6587  ENABLE_LOCKDOWN=YES
6588  AC_MSG_RESULT([yes])
6589else
6590  AC_MSG_RESULT([no])
6591fi
6592AC_SUBST(ENABLE_LOCKDOWN)
6593
6594dnl ===================================================================
6595dnl Test whether to include Evolution 2 support
6596dnl ===================================================================
6597AC_MSG_CHECKING([whether to enable evolution 2 support])
6598if test "$enable_evolution2" = "yes" -o "$enable_evolution2" = "TRUE"; then
6599   AC_MSG_RESULT([yes])
6600   PKG_CHECK_MODULES(GOBJECT, gobject-2.0)
6601   ENABLE_EVOAB2="TRUE"
6602else
6603   ENABLE_EVOAB2=""
6604   AC_MSG_RESULT([no])
6605fi
6606AC_SUBST(ENABLE_EVOAB2)
6607AC_SUBST(GOBJECT_CFLAGS)
6608AC_SUBST(GOBJECT_LIBS)
6609
6610dnl ===================================================================
6611dnl Test whether to include KDE AB support
6612dnl ===================================================================
6613AC_MSG_CHECKING([whether to enable KDE address book support])
6614if test "$enable_kdeab" = "yes" && test "$enable_kde" = "yes"; then
6615   AC_MSG_RESULT([yes])
6616   AC_LANG_PUSH([C++])
6617   save_CXXFLAGS=$CXXFLAGS
6618   CXXFLAGS="$CXXFLAGS $KDE_CFLAGS"
6619   AC_MSG_CHECKING([whether KDE is between 3.2 and 3.6])
6620       AC_TRY_RUN([
6621#include <kdeversion.h>
6622
6623int main(int argc, char **argv) {
6624       if (KDE_VERSION_MAJOR == 3 && 2 <= KDE_VERSION_MINOR && KDE_VERSION_MINOR <= 6) return 0;
6625       else return 1;
6626}
6627       ], [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])])
6628   CXXFLAGS=$save_CXXFLAGS
6629   AC_LANG_POP([C++])
6630   ENABLE_KAB=TRUE
6631else
6632   AC_MSG_RESULT([no])
6633   ENABLE_KAB=
6634fi
6635AC_SUBST(ENABLE_KAB)
6636
6637dnl ===================================================================
6638dnl Test whether to include MathMLDTD
6639dnl ===================================================================
6640AC_MSG_CHECKING([whether to include MathMLDTD])
6641if test -n "$enable_mathmldtd"; then
6642  if test "$enable_mathmldtd" = "no"; then
6643    AC_MSG_RESULT([no])
6644    SCPDEFS="$SCPDEFS -DWITHOUT_MATHMLDTD"
6645  else
6646    AC_MSG_RESULT([yes])
6647    BUILD_TYPE="$BUILD_TYPE MATHMLDTD"
6648  fi
6649else
6650  AC_MSG_RESULT([no])
6651  SCPDEFS="$SCPDEFS -DWITHOUT_MATHMLDTD"
6652fi
6653
6654dnl ===================================================================
6655dnl Test whether to include fonts
6656dnl ===================================================================
6657AC_MSG_CHECKING([whether to include third-party fonts])
6658if test "$with_fonts" != "no" ; then
6659  AC_MSG_RESULT([yes])
6660  WITH_FONTS=YES
6661  BUILD_TYPE="$BUILD_TYPE MORE_FONTS"
6662else
6663  AC_MSG_RESULT([no])
6664  WITH_FONTS=NO
6665  SCPDEFS="$SCPDEFS -DWITHOUT_FONTS"
6666fi
6667AC_SUBST(WITH_FONTS)
6668
6669dnl ===================================================================
6670dnl Test whether to include ppds
6671dnl ===================================================================
6672AC_MSG_CHECKING([whether to include PPDs])
6673if test "$with_ppds" != "no"; then
6674  AC_MSG_RESULT([yes])
6675else
6676  AC_MSG_RESULT([no])
6677  WITHOUT_PPDS=YES
6678  SCPDEFS="$SCPDEFS -DWITHOUT_PPDS"
6679fi
6680AC_SUBST(WITHOUT_PPDS)
6681
6682dnl ===================================================================
6683dnl Test whether to include afms
6684dnl ===================================================================
6685AC_MSG_CHECKING([whether to include AFMs])
6686if test "$with_afms" != "no"; then
6687  AC_MSG_RESULT([yes])
6688  BUILD_TYPE="$BUILD_TYPE AFMS"
6689else
6690  AC_MSG_RESULT([no])
6691  WITHOUT_AFMS=YES
6692  SCPDEFS="$SCPDEFS -DWITHOUT_AFMS"
6693fi
6694AC_SUBST(WITHOUT_AFMS)
6695
6696AC_SUBST(SCPDEFS)
6697
6698AC_MSG_CHECKING([whether and how to use Xinerama])
6699if test "$_os" = "Darwin"; then
6700   USE_XINERAMA=YES
6701   XINERAMA_LINK=dynamic
6702   AC_MSG_RESULT([yes])
6703elif test "$_os" = "Linux" -o "$_os" = "FreeBSD"; then
6704   if test -e "$XLIB/libXinerama.so" -a -e "$XLIB/libXinerama.a"; then
6705      # we have both versions, let the user decide but use the dynamic one
6706      # per default
6707      USE_XINERAMA=YES
6708      if test -z "$with_static_xinerama" -o -n "$with_system_libs"; then
6709         XINERAMA_LINK=dynamic
6710      else
6711         XINERAMA_LINK=static
6712      fi
6713   elif test -e "$XLIB/libXinerama.so" -a ! -e "$XLIB/libXinerama.a"; then
6714      # we have only the dynamic version
6715      USE_XINERAMA=YES
6716      XINERAMA_LINK=dynamic
6717   elif test -e "$XLIB/libXinerama.a"; then
6718      # static version
6719      if echo $build_cpu | grep -E 'i[[3456]]86' 2>/dev/null >/dev/null; then
6720         USE_XINERAMA=YES
6721         XINERAMA_LINK=static
6722      else
6723         USE_XINERAMA=NO
6724         XINERAMA_LINK=none
6725      fi
6726   else
6727      # no Xinerama
6728      USE_XINERAMA=NO
6729      XINERAMA_LINK=none
6730   fi
6731   if test "$USE_XINERAMA" = "YES"; then
6732      AC_MSG_RESULT([yes, with $XINERAMA_LINK linking])
6733      AC_CHECK_HEADER(X11/extensions/Xinerama.h, [],
6734          [AC_MSG_ERROR(Xinerama header not found.)], [])
6735      XINERAMA_EXTRA_LIBS="-L$XLIB -lXext"
6736      if test "$_os" = "FreeBSD"; then
6737          XINERAMA_EXTRA_LIBS="$XINERAMA_EXTRA_LIBS -lXt"
6738      fi
6739      if test "$_os" = "Linux"; then
6740          XINERAMA_EXTRA_LIBS="$XINERAMA_EXTRA_LIBS -ldl"
6741      fi
6742      AC_CHECK_LIB(Xinerama, XineramaIsActive, [],
6743          [AC_MSG_ERROR(Xinerama not functional?)], [$XINERAMA_EXTRA_LIBS])
6744   else
6745      AC_MSG_RESULT([no, libXinerama not found or wrong architecture.])
6746   fi
6747else
6748   AC_MSG_RESULT([no])
6749fi
6750AC_SUBST(USE_XINERAMA)
6751AC_SUBST(XINERAMA_LINK)
6752
6753dnl ===================================================================
6754dnl always rely on the system version of gdk-pixbuf
6755dnl ===================================================================
6756
6757SYSTEM_GDKPIXBUF=YES
6758AC_SUBST(SYSTEM_GDKPIXBUF)
6759
6760dnl ===================================================================
6761dnl always rely on the system version of glib
6762dnl ===================================================================
6763
6764SYSTEM_GLIB=YES
6765AC_SUBST(SYSTEM_GLIB)
6766
6767dnl ===================================================================
6768dnl always rely on the system version of gettext
6769dnl ===================================================================
6770
6771SYSTEM_GETTEXT=YES
6772AC_SUBST(SYSTEM_GETTEXT)
6773
6774dnl ===================================================================
6775dnl always rely on the system version of pango
6776dnl ===================================================================
6777
6778SYSTEM_PANGO=YES
6779AC_SUBST(SYSTEM_PANGO)
6780
6781dnl ===================================================================
6782dnl Test whether to build libpng or rely on the system version
6783dnl ===================================================================
6784AC_MSG_CHECKING([whether to build own version of libpng])
6785
6786case "$_os" in
6787	WINNT*) # Windows
6788	    SYSTEM_LIBPNG=NO
6789	    AC_MSG_RESULT([yes])
6790		;;
6791	Darwin*)
6792	    SYSTEM_LIBPNG=NO
6793	    AC_MSG_RESULT([yes])
6794	    ;;
6795   *)
6796   SYSTEM_LIBPNG=YES
6797   AC_MSG_RESULT([no])
6798   ;;
6799esac
6800AC_SUBST(SYSTEM_LIBPNG)
6801
6802dnl ===================================================================
6803dnl Test whether to build libjpeg or rely on the system version
6804dnl ===================================================================
6805dnl FIXME: this is currently because we have jpeg-6b for our filters
6806dnl        and jpeg-8 as dependency for librsvg
6807dnl        this should be unified into using only one version for both
6808
6809AC_MSG_CHECKING([whether to build own version of libjpeg])
6810
6811if test "$SYSTEM_JPEG" = "YES"; then
6812SYSTEM_LIBJPEG=YES
6813else
6814case "$_os" in
6815	WINNT*) # Windows
6816	    SYSTEM_LIBJPEG=NO
6817		;;
6818	Darwin*)
6819	    SYSTEM_LIBJPEG=NO
6820	    ;;
6821   *)
6822        SYSTEM_LIBJPEG=YES
6823        ;;
6824esac
6825fi
6826
6827if test "$SYSTEM_LIBJPEG" = "YES"; then
6828   AC_MSG_RESULT([no])
6829else
6830   AC_MSG_RESULT([yes])
6831fi
6832AC_SUBST(SYSTEM_LIBJPEG)
6833
6834
6835dnl ===================================================================
6836dnl Test for the presence of Ant and that it works
6837dnl ===================================================================
6838
6839if test "$SOLAR_JAVA" != ""; then
6840ANT_HOME=; export ANT_HOME
6841WITH_ANT_HOME=; export WITH_ANT_HOME
6842if test -z "$with_ant_home"; then
6843   AC_PATH_PROGS(ANT, [jakarta-ant ant ant.sh ant.bat ant.cmd])
6844else
6845   if test "$_os" = "WINNT"; then
6846      with_ant_home=`cygpath -u "$with_ant_home"`
6847   fi
6848   AC_PATH_PROGS(ANT, [jakarta-ant ant ant.sh ant.bat ant.cmd],,$with_ant_home/bin:$PATH)
6849   WITH_ANT_HOME=$with_ant_home
6850   ANT_HOME=$with_ant_home
6851fi
6852
6853if test -z "$ANT"; then
6854  AC_MSG_ERROR([Ant not found - Make sure it's in the path or use --with-ant-home])
6855else
6856  # resolve relative or absolute symlink
6857  while test -h "$ANT"; do
6858     a_cwd=`pwd`
6859     a_basename=`basename "$ANT"`
6860     a_script=`ls -l "$ANT" | sed "s/.*${a_basename} -> //g"`
6861     cd "`dirname "$ANT"`"
6862     cd "`dirname "$a_script"`"
6863     ANT="`pwd`"/"`basename "$a_script"`"
6864     cd "$a_cwd"
6865  done
6866
6867  if test "$_os" = "OS2"; then
6868    ANT_HOME=`echo $ANT | $SED -n "s/\/bin\/ant.*\$//p"`
6869    export ANT_HOME
6870  fi
6871
6872  AC_MSG_CHECKING([if $ANT works])
6873cat > conftest.java << EOF
6874    public class conftest {
6875	int testmethod(int a, int b) {
6876            return a + b;
6877	}
6878    }
6879EOF
6880
6881cat > conftest.xml << EOF
6882    <project name="conftest" default="conftest">
6883	<target name="conftest">
6884            <javac srcdir="." includes="conftest.java">
6885	    </javac>
6886	</target>
6887    </project>
6888EOF
6889  oldJAVA_HOME=$JAVA_HOME
6890  if test "$JAVACISGCJ" = "yes"; then
6891    JAVA_HOME=; export JAVA_HOME
6892    ant_cmd="$ANT -Dbuild.compiler=gcj -buildfile conftest.xml 1>&2"
6893  else
6894    ant_cmd="$ANT -buildfile conftest.xml 1>&2"
6895  fi
6896  AC_TRY_EVAL(ant_cmd)
6897  if test $? = 0 && test -f ./conftest.class ; then
6898    AC_MSG_RESULT([Ant works])
6899    if test -z "$WITH_ANT_HOME"; then
6900        ANT_HOME=`$ANT -diagnostics | $EGREP "ant.home :" | $SED -e "s#ant.home : ##g"`
6901        if test -z "$ANT_HOME"; then
6902            ANT_HOME=`echo $ANT | $SED -n "s/\/bin\/ant.*\$//p"`
6903        fi
6904    else
6905        ANT_HOME="$WITH_ANT_HOME"
6906    fi
6907  else
6908    echo "configure: Ant test failed" >&5
6909    cat conftest.java >&5
6910    cat conftest.xml >&5
6911    AC_MSG_WARN([Ant does not work - Some Java projects will not build!])
6912    ANT_HOME=""
6913    echo "Ant does not work - Some Java projects will not build!" >>warn
6914  fi
6915  JAVA_HOME=$oldJAVA_HOME
6916  rm -f conftest* core core.* *.core
6917fi
6918if test -z "$ANT_HOME"; then
6919   ANT_HOME="NO_ANT_HOME"
6920fi
6921AC_SUBST(ANT_HOME)
6922
6923dnl Checking for ant.jar
6924if test "$ANT_HOME" != "NO_ANT_HOME"; then
6925   AC_MSG_CHECKING([Ant lib directory])
6926   if test -f $ANT_HOME/lib/ant.jar; then
6927	  ANT_LIB="$ANT_HOME/lib"
6928   else
6929      if test -f $ANT_HOME/ant.jar; then
6930	     ANT_LIB="$ANT_HOME"
6931      else
6932          if test -f /usr/share/java/ant.jar; then
6933              ANT_LIB=/usr/share/java
6934          else
6935             if test -f /usr/share/ant-core/lib/ant.jar; then
6936                 ANT_LIB=/usr/share/ant-core/lib
6937             else
6938                if test -f $ANT_HOME/lib/ant/ant.jar; then
6939                    ANT_LIB="$ANT_HOME/lib/ant"
6940                else
6941                   if test -f /usr/share/lib/ant/ant.jar; then
6942                       ANT_LIB=/usr/share/lib/ant
6943                   else
6944                       AC_MSG_ERROR([Ant libraries not found!])
6945                   fi
6946                fi
6947             fi
6948          fi
6949      fi
6950   fi
6951   AC_MSG_RESULT([Ant lib directory found.])
6952fi
6953AC_SUBST(ANT_LIB)
6954fi
6955
6956ant_minver=1.6.0
6957# update for more extensions...
6958if test "$ENABLE_MEDIAWIKI" = "YES"; then
6959  ant_minver=1.7.0
6960fi
6961ant_minminor1=`echo $ant_minver | cut -d"." -f2`
6962
6963AC_MSG_CHECKING([whether ant is >= $ant_minver])
6964ant_version=`$ANT -version | $AWK '{ print $4; }'`
6965ant_version_major=`echo $ant_version | cut -d. -f1`
6966ant_version_minor=`echo $ant_version | cut -d. -f2`
6967echo "configure: ant_version $ant_version " >&5
6968echo "configure: ant_version_major $ant_version_major " >&5
6969echo "configure: ant_version_minor $ant_version_minor " >&5
6970if test "$ant_version_major" -ge "2"; then
6971   AC_MSG_RESULT([yes, $ant_version])
6972elif test "$ant_version_major" = "1" && test "$ant_version_minor" -ge "$ant_minminor1"; then
6973   AC_MSG_RESULT([yes, $ant_version])
6974else
6975   AC_MSG_ERROR([no, you need at least ant >= $ant_minver])
6976fi
6977
6978if test "$ENABLE_MEDIAWIKI" = "YES"; then
6979AC_MSG_CHECKING([whether ant supports mapper type="regexp"])
6980rm -rf confdir
6981mkdir confdir
6982cat > conftest.java << EOF
6983    public class conftest {
6984        int testmethod(int a, int b) {
6985            return a + b;
6986        }
6987    }
6988EOF
6989
6990cat > conftest.xml << EOF
6991    <project name="conftest" default="conftest">
6992        <target name="conftest" depends="copytest">
6993            <javac srcdir="." includes="conftest.java">
6994            </javac>
6995        </target>
6996        <target name="copytest">
6997             <copy todir="confdir">
6998                 <fileset dir="confdir" includes="**/*.abc" casesensitive="yes"/>
6999                 <filterset/>
7000                 <mapper type="regexp" from="^(.*[/\\])foo([/\\].*)" to="\1baa\2"/>
7001             </copy>
7002        </target>
7003    </project>
7004EOF
7005  if test "$JAVACISGCJ" = "yes"; then
7006    JAVA_HOME=; export JAVA_HOME
7007    ant_cmd="$ANT -Dbuild.compiler=gcj -buildfile conftest.xml 1>&2"
7008  else
7009    ant_cmd="$ANT -buildfile conftest.xml 1>&2"
7010  fi
7011  AC_TRY_EVAL(ant_cmd)
7012  if test $? = 0 && test -f ./conftest.class ; then
7013    AC_MSG_RESULT([yes])
7014    rm -rf confdir
7015  else
7016    echo "configure: Ant test failed" >&5
7017    cat conftest.java >&5
7018    cat conftest.xml >&5
7019    rm -rf confdir
7020    AC_MSG_ERROR([no. Did you install ant-apache-regexp?])
7021  fi
7022fi
7023rm -f conftest* core core.* *.core
7024
7025OOO_JUNIT_JAR=
7026if test "$SOLAR_JAVA" != "" && test "$with_junit" != "no"; then
7027    AC_MSG_CHECKING([for JUnit 4])
7028    if test "$with_junit" = "yes"; then
7029        if test -e /usr/share/java/junit4.jar; then
7030            OOO_JUNIT_JAR=/usr/share/java/junit4.jar
7031        else
7032           if test -e /usr/share/lib/java/junit.jar; then
7033              OOO_JUNIT_JAR=/usr/share/lib/java/junit.jar
7034           else
7035              OOO_JUNIT_JAR=/usr/share/java/junit.jar
7036           fi
7037        fi
7038    else
7039        OOO_JUNIT_JAR=$with_junit
7040    fi
7041    if test "$_os" = "WINNT"; then
7042        OOO_JUNIT_JAR=`cygpath -m "$OOO_JUNIT_JAR"`
7043    fi
7044    "$JAVA_HOME/bin/jar" tf "$OOO_JUNIT_JAR" 2>&5 | \
7045        grep org/junit/Before.class > /dev/null 2>&5
7046    if test $? -eq 0; then
7047        AC_MSG_RESULT([$OOO_JUNIT_JAR])
7048    else
7049        AC_MSG_RESULT([no])
7050        AC_MSG_ERROR([cannot find JUnit 4 jar; please install one in the default
7051location (/usr/share/java), specify its pathname via
7052--with-junit=..., or disable it via --without-junit])
7053    fi
7054fi
7055AC_SUBST(OOO_JUNIT_JAR)
7056
7057AC_MSG_CHECKING([which languages to be built])
7058WITH_LANG="$with_lang"
7059if test -z "$WITH_LANG"; then
7060   AC_MSG_RESULT([en-US])
7061else
7062   AC_MSG_RESULT([$WITH_LANG])
7063   ADDITIONAL_REPOSITORIES="$ADDITIONAL_REPOSITORIES;../extras"
7064fi
7065AC_SUBST(WITH_LANG)
7066
7067AC_MSG_CHECKING([which languages have poor help localizations])
7068WITH_POOR_HELP_LOCALIZATIONS="$with_poor_help_localizations"
7069if test -z "$WITH_POOR_HELP_LOCALIZATIONS"; then
7070   AC_MSG_RESULT([none])
7071else
7072   AC_MSG_RESULT([$WITH_POOR_HELP_LOCALIZATIONS])
7073fi
7074AC_SUBST(WITH_POOR_HELP_LOCALIZATIONS)
7075
7076AC_MSG_CHECKING([which dictionaries to include])
7077if test -z "$with_dict"; then
7078   WITH_DICT=,ALL,
7079   AC_MSG_RESULT([ALL])
7080else
7081   WITH_DICT=","$with_dict","
7082   AC_MSG_RESULT([$with_dict])
7083fi
7084AC_SUBST(WITH_DICT)
7085
7086AC_MSG_CHECKING([for additional 'intro' bitmaps])
7087INTRO_BITMAPS=
7088if test -z "$with_intro_bitmaps" -o "$with_intro_bitmaps" = "no" ; then
7089   INTRO_BITMAPS=
7090   AC_MSG_RESULT([none])
7091else
7092   for bitmap in `echo $with_intro_bitmaps | tr ',' ' '` ; do
7093      case "$bitmap" in
7094         *.bmp) ;;
7095         *)     bitmap= ; AC_MSG_WARN([Intro bitmaps should be .bmp files!]) ;;
7096      esac
7097      if test -n "$bitmap" ; then
7098         INTRO_BITMAPS="$INTRO_BITMAPS $bitmap"
7099      fi
7100   done
7101   AC_MSG_RESULT([$INTRO_BITMAPS])
7102fi
7103AC_SUBST(INTRO_BITMAPS)
7104
7105AC_MSG_CHECKING([for additional 'about' bitmaps])
7106ABOUT_BITMAPS=
7107if test -z "$with_about_bitmaps" -o "$with_about_bitmaps" = "no" ; then
7108   ABOUT_BITMAPS=
7109   AC_MSG_RESULT([none])
7110else
7111   for bitmap in `echo $with_about_bitmaps | tr ',' ' '` ; do
7112      case "$bitmap" in
7113         *.bmp) ;;
7114         *)     bitmap= ; AC_MSG_WARN([About bitmaps should be .bmp files!]) ;;
7115      esac
7116      if test -n "$bitmap" ; then
7117         ABOUT_BITMAPS="$ABOUT_BITMAPS $bitmap"
7118      fi
7119   done
7120   AC_MSG_RESULT([$ABOUT_BITMAPS])
7121fi
7122AC_SUBST(ABOUT_BITMAPS)
7123
7124OOO_VENDOR=
7125AC_MSG_CHECKING([for vendor])
7126if test -z "$with_vendor" -o "$with_vendor" = "no" ; then
7127   AC_MSG_RESULT([not set])
7128else
7129   OOO_VENDOR="$with_vendor"
7130   AC_MSG_RESULT([$OOO_VENDOR])
7131fi
7132AC_SUBST(OOO_VENDOR)
7133
7134UNIXWRAPPERNAME=
7135AC_MSG_CHECKING([for UNIX wrapper name])
7136if test -z "$with_unix_wrapper" -o "$with_unix_wrapper" = "no"  -o "$with_unix_wrapper" = "yes" ; then
7137   AC_MSG_RESULT([not set])
7138else
7139   UNIXWRAPPERNAME="$with_unix_wrapper"
7140   AC_MSG_RESULT([$UNIXWRAPPERNAME])
7141fi
7142AC_SUBST(UNIXWRAPPERNAME)
7143
7144AC_MSG_CHECKING([whether to statically link to Gtk])
7145if test -n "$enable_static_gtk" && test "$enable_static_gtk" != "no"; then
7146   ENABLE_STATIC_GTK="TRUE"
7147   AC_MSG_RESULT([yes])
7148else
7149   ENABLE_STATIC_GTK="FALSE"
7150   AC_MSG_RESULT([no])
7151fi
7152AC_SUBST(ENABLE_STATIC_GTK)
7153
7154AC_MSG_CHECKING([whether to use layout dialogs])
7155if test -n "$enable_layout" && test "$enable_layout" != "no"; then
7156   ENABLE_LAYOUT="TRUE"
7157   AC_MSG_RESULT([yes])
7158else
7159   ENABLE_LAYOUT="FALSE"
7160   AC_MSG_RESULT([no])
7161fi
7162AC_SUBST(ENABLE_LAYOUT)
7163
7164# ===================================================================
7165# De- or increase default verbosity of build process
7166# ===================================================================
7167AC_MSG_CHECKING([build verbosity])
7168if test -n "$enable_verbose"; then
7169   if test "$enable_verbose" = "yes"; then
7170      VERBOSE="TRUE"
7171      AC_MSG_RESULT([high])
7172   fi
7173   if test "$enable_verbose" = "no"; then
7174      VERBOSE="FALSE"
7175      AC_MSG_RESULT([low])
7176   fi
7177else
7178   AC_MSG_RESULT([not set])
7179fi
7180AC_SUBST(VERBOSE)
7181
7182dnl ===================================================================
7183dnl Hook up OOos nodep environmental variable to automake's equivalent
7184dnl --enable-dependency-tracking configure option
7185dnl ===================================================================
7186AC_MSG_CHECKING([whether to enable dependency tracking])
7187if test "$enable_dependency_tracking" = "no"; then
7188    nodep=TRUE
7189    AC_MSG_RESULT([no])
7190else
7191    AC_MSG_RESULT([yes])
7192fi
7193AC_SUBST(nodep)
7194
7195dnl ===================================================================
7196dnl Setting up the environment.
7197dnl ===================================================================
7198echo "********************************************************************"
7199echo "*                                                                  *"
7200echo "*   Setting up the build environment variables.                    *"
7201echo "*                                                                  *"
7202echo "********************************************************************"
7203
7204if test -z "$COMPATH"; then
7205   AC_MSG_ERROR([No compiler found.])
7206fi
7207AC_SUBST(COMPATH)
7208
7209AC_MSG_CHECKING([solver path])
7210if test -z "$with_local_solver"; then
7211   LOCAL_SOLVER="DEFAULT"
7212   AC_MSG_RESULT([default])
7213else
7214   LOCAL_SOLVER=$with_local_solver
7215   AC_MSG_RESULT([$with_local_solver])
7216fi
7217AC_SUBST(LOCAL_SOLVER)
7218
7219AC_SUBST(BUILD_TYPE)
7220AC_SUBST(ADDITIONAL_REPOSITORIES)
7221
7222# make sure config.guess is +x; we execute config.guess, so it has to be so;
7223chmod +x ./config.guess
7224
7225# Create files from their *.in templates.
7226AC_CONFIG_FILES([set_soenv Makefile])
7227
7228AC_MSG_NOTICE([writing config.status])
7229AC_OUTPUT
7230
7231dnl Executing the set_soenv script to setup the environment variables.
7232chmod a+x set_soenv
7233if test -z "$enable_check_only"; then
7234   './set_soenv'
7235else
7236   echo
7237   echo Test Complete
7238   echo No environment file will be generated
7239   echo
7240   num_warnings=`wc -l warn`
7241   _num=`echo $num_warnings | $AWK '{ print $1 }'`
7242   if test $_num -gt 0; then
7243      echo The following warning\(s\) were generated by configure
7244      echo ----------------------------------------------------
7245      echo
7246      cat warn
7247      echo
7248   else
7249      echo There were no warnings
7250   fi
7251   echo
7252fi
7253