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