xref: /trunk/main/configure.ac (revision 6a118d53)
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`"
1151		fi
1152		if test ! -n "$CXX"; then
1153		   CXX="`xcrun -f clang++` -std=c++11"
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` ; then
1648         AC_MSG_ERROR([$AWK / awk 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      if test -L `which tar` ; then
1653         AC_MSG_ERROR([tar is a cygwin symlink!
1654Native Windows programs cannot use cygwin symlinks. Remove the symbolic
1655link, and copy the program to the name of the link.])
1656      fi
1657      if test -L `which gunzip` ; then
1658         AC_MSG_ERROR([gunzip is a cygwin symlink!
1659Native Windows programs cannot use cygwin symlinks. Remove the symbolic
1660link, and copy the program to the name of the link.])
1661      fi
1662   dnl ===================================================================
1663   dnl Another sanity check! More a band-aid. winenv.* adds guw.exe to
1664   dnl CC and CXX but the configure checks here assume that guw.exe
1665   dnl (if needed at all) is not yet present.
1666   dnl ===================================================================
1667   CC=`echo $CC | $SED "s/^guw.exe //"`
1668   CXX=`echo $CXX | $SED "s/^guw.exe //"`
1669   dnl ===================================================================
1670   dnl If $CC is set to a MinGW compiler, e.g. "gcc -mno-cygwin" enable
1671   dnl $WITH_MINGWIN
1672   dnl ===================================================================
1673      if test -n "$CC";then
1674         if test "`$CC -dumpmachine 2>/dev/null | $SED -e 's/^.*-//'`" = "mingw32"; then
1675            WITH_MINGWIN="yes"
1676         fi
1677      fi
1678   dnl ===================================================================
1679   if test "$WITH_MINGWIN" = "yes" ; then
1680      if test -z "$CC"; then
1681         CC="gcc -mno-cygwin"
1682         CXX="g++ -mno-cygwin"
1683      fi
1684   fi
1685   AC_MSG_RESULT([ok])
1686fi
1687AC_SUBST(WITH_MINGWIN)
1688
1689dnl ===================================================================
1690dnl Extra check for Windows. cygwin builds need gcc to build dmake
1691dnl and g++ to build guw.exe although MS cl (or MinGW) is used to
1692dnl build AOO.
1693dnl ===================================================================
1694if test "$_os" = "WINNT" ; then
1695   AC_MSG_CHECKING([for cygwin gcc/g++])
1696   if which gcc > /dev/null && which g++ > /dev/null ; then
1697      AC_MSG_RESULT([found])
1698   else
1699      AC_MSG_ERROR([cygwin gcc and g++ are needed, please install them.])
1700   fi
1701fi
1702
1703
1704dnl ===================================================================
1705dnl Check whether the bash shell can be used.
1706dnl ===================================================================
1707AC_PATH_PROG(SHELLPATH, bash)
1708if test -z "$SHELLPATH"; then
1709   AC_MSG_ERROR([bash not found in \$PATH])
1710else
1711   SHELLPATH=`echo $SHELLPATH | $SED -n "s/\/bash$//p"`
1712fi
1713AC_SUBST(SHELLPATH)
1714
1715dnl ===================================================================
1716dnl  Checks for c compiler,
1717dnl  The check for the c++ compiler is later on.
1718dnl ===================================================================
1719AC_MSG_CHECKING([gcc home])
1720if test -z "$with_gcc_home"; then
1721	GCC_HOME=`which gcc | $SED -e s,/bin/gcc,,`
1722else
1723	GCC_HOME="$with_gcc_home"
1724fi
1725AC_MSG_RESULT($GCC_HOME)
1726AC_SUBST(GCC_HOME)
1727
1728save_CC=$CC
1729save_CXX=$CXX
1730
1731if test -n "$with_gcc_home"; then
1732   if test -z "$CC"; then
1733      CC="$with_gcc_home/bin/gcc"
1734   fi
1735fi
1736
1737dnl The following checks for gcc, cc and then cl (if it weren't guarded for win32)
1738if test "$_os" != "WINNT" -o "$WITH_MINGWIN" = "yes"; then
1739   AC_PROG_CC
1740fi
1741
1742COMPATH=`dirname "$CC"`
1743if test "$COMPATH" = "." ; then
1744    AC_PATH_PROGS(COMPATH, $CC)
1745    dnl double square bracket to get single because of M4 quote...
1746    COMPATH=`echo $COMPATH | $SED "s@/[[^/:]]*\\\$@@"`;
1747fi
1748CC_PATH="$COMPATH/"
1749COMPATH=`echo $COMPATH | $SED "s@/[[Bb]][[Ii]][[Nn]]\\\$@@"`;
1750
1751dnl ===================================================================
1752dnl Test the gcc version, 3 is OK
1753dnl ===================================================================
1754GCCVER=20995
1755if test \( "$_os" != "WINNT" -o "$WITH_MINGWIN" = "yes" \) -a "$GCC" = "yes"; then
1756    AC_MSG_CHECKING([the GNU gcc compiler version])
1757   _gcc_version=`$CC -dumpversion`
1758   _gcc_major=`echo $_gcc_version | $AWK -F. '{ print \$1 }'`
1759   GCCVER=`echo $_gcc_version | $AWK -F. '{ print \$1*10000+\$2*100+\$3 }'`
1760
1761   if test "$_gcc_major" -lt "3"; then
1762      AC_MSG_ERROR([found version "$_gcc_version", use version 3+ of the gcc compiler])
1763   else
1764      if test "$GCCVER" -eq "030203"; then
1765	    if test "$ENABLE_SYMBOLS" = "SMALL"; then
1766           AC_MSG_ERROR([version "$_gcc_version" gives internal error with small.])
1767	    fi
1768      fi
1769   fi
1770   if test "$_os" = "Darwin" ; then
1771         AC_MSG_RESULT([implicitly using CC=$CC])
1772   else
1773      AC_MSG_RESULT([checked (gcc $_gcc_version)])
1774   fi
1775   if test "$_os" = "SunOS"; then
1776      AC_MSG_CHECKING([gcc linker])
1777      if $CC -Wl,--version 2>&1 |head -n 1| $GREP -v GNU > /dev/null;then
1778          AC_MSG_ERROR([failed (not GNU ld). Use GNU ld instead of Sun ld on Solaris])
1779      fi
1780      AC_MSG_RESULT([ok (GNU ld)])
1781   fi
1782fi
1783AC_SUBST(GCCVER)
1784
1785HAVE_LD_BSYMBOLIC_FUNCTIONS=
1786if test "$GCC" = "yes"; then
1787   AC_MSG_CHECKING( for -Bsymbolic-functions linker support )
1788   bsymbolic_functions_ldflags_save=$LDFLAGS
1789   LDFLAGS="$LDFLAGS -Wl,-Bsymbolic-functions -Wl,--dynamic-list-cpp-new -Wl,--dynamic-list-cpp-typeinfo"
1790   AC_LINK_IFELSE([AC_LANG_PROGRAM([
1791   #include <stdio.h>
1792   ],[
1793    printf ("hello world\n");
1794   ])], HAVE_LD_BSYMBOLIC_FUNCTIONS=TRUE, [])
1795   if test "z$HAVE_LD_BSYMBOLIC_FUNCTIONS" = "zTRUE"; then
1796     AC_MSG_RESULT( found )
1797   else
1798     AC_MSG_RESULT( not found )
1799   fi
1800   LDFLAGS=$bsymbolic_functions_ldflags_save
1801fi
1802AC_SUBST(HAVE_LD_BSYMBOLIC_FUNCTIONS)
1803
1804dnl ===================================================================
1805dnl Set the ENABLE_PCH variable. (Activate --enable-pch)
1806dnl ===================================================================
1807AC_MSG_CHECKING([whether to enable pch feature])
1808if test -n "$enable_pch" && test "$enable_pch" != "no"; then
1809   if test "$_os" = "WINNT" -a "$WITH_MINGWIN" != "yes"; then
1810	   ENABLE_PCH="TRUE"
1811	   AC_MSG_RESULT([yes])
1812dnl There is no PCH support in GCC versions prior to this
1813   elif test "$GCC" = "yes" -a "$GCCVER" -gt "030400"; then
1814	   ENABLE_PCH="TRUE"
1815	   AC_MSG_RESULT([yes])
1816   else
1817	   ENABLE_PCH=""
1818	   AC_MSG_WARN([Precompiled header not yet supported for your platform/compiler])
1819   fi
1820else
1821   ENABLE_PCH=""
1822   AC_MSG_RESULT([no])
1823fi
1824AC_SUBST(ENABLE_PCH)
1825
1826dnl ===================================================================
1827dnl Search all the common names for GNU make
1828dnl ===================================================================
1829AC_MSG_CHECKING([for GNU make])
1830for a in "$MAKE" "$GNUMAKE" make gmake gnumake; do
1831      $a --version 2> /dev/null | $GREP GNU 2>&1 > /dev/null
1832      if test $? -eq 0; then
1833           GNUMAKE=$a
1834           break
1835      fi
1836done
1837AC_MSG_RESULT($GNUMAKE)
1838if test -z "$GNUMAKE"; then
1839    AC_MSG_ERROR([not found. install GNU make.])
1840fi
1841
1842AC_MSG_CHECKING([the GNU make version])
1843_make_version=`$GNUMAKE --version | $GREP GNU | $SED -e 's@^[[^0-9]]*@@' -e 's@ .*@@' -e 's@,.*@@'`;
1844_make_longver=`echo $_make_version | $AWK -F. '{ print \$1*10000+\$2*100+\$3 }'`
1845if test "$_make_longver" -ge "038100" ; then
1846   AC_MSG_RESULT([$GNUMAKE $_make_version])
1847else
1848   AC_MSG_ERROR([failed ($GNUMAKE version >= 3.81 needed])
1849fi
1850AC_SUBST(GNUMAKE)
1851
1852dnl ===================================================================
1853dnl Search for a pre-installed dmake
1854dnl ===================================================================
1855AC_MSG_CHECKING([for dmake])
1856DMAKE="no"
1857# Override system dmake if --with-dmake-path or --with-dmake-url is used.
1858if test -z "$with_dmake_path" && test -z "$with_dmake_url"; then
1859   AC_PATH_PROG(DMAKE, dmake, no)
1860   IS_SYSTEM_DMAKE=NO
1861   if test "$DMAKE" != "no"; then
1862      AC_MSG_RESULT([using system dmake])
1863      DMAKE_PATH="$DMAKE"
1864      IS_SYSTEM_DMAKE=YES
1865   fi
1866elif test -n "$with_dmake_path" ; then
1867   # Did not find pre-installed dmake.
1868   # Is it at a nonstandard location provided by --with-dmake-path ?
1869   AC_MSG_NOTICE([looking for dmake at $DMAKE_PATH])
1870   if test -x "$with_dmake_path" ; then
1871      AC_MSG_RESULT([using user provided dmake])
1872      DMAKE=$with_dmake_path
1873   fi
1874fi
1875
1876DMAKE_URL=
1877if test "$DMAKE" = "no"; then
1878    AC_MSG_NOTICE([no system or user-provided dmake found])
1879    # Check if a URL was supplied from which we can download the source and compile it.
1880    if test -n "$with_dmake_url" ; then
1881       # At this moment we can not verify the URL or the content that we want to download.
1882       # Neither can we apply the test below for ruling out that it is the SunStudio dmake.
1883       DMAKE_URL=$with_dmake_url
1884       AC_MSG_RESULT([dmake will be downloaded and compiled in bootstrap])
1885       DMAKE=
1886    else
1887       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.])
1888       BUILD_DMAKE=YES
1889    fi
1890else
1891    AC_MSG_CHECKING([whether the found dmake is the right dmake])
1892    # we need to find out whether that dmake we found is "our" dmake
1893    # or the dmake from Sun's SunStudio Compiler which is something
1894    # different
1895    # This test _should_ work because the one accepts -V (ours) and one
1896    # (the other) not...
1897    $DMAKE -V 2>/dev/null | $GREP -E 'dmake(.exe)? .* Version .*' >/dev/null
1898    if test $? -eq 0; then
1899       BUILD_DMAKE=NO
1900       AC_MSG_RESULT([yes])
1901       AC_MSG_CHECKING([the dmake version])
1902       DMAKE_VERSION=`$DMAKE -V | $AWK '$3 == "Version" {print $4}'`
1903       if test "`echo $DMAKE_VERSION | cut -d'.' -f1`" -gt "4"; then
1904          AC_MSG_RESULT([OK, >= 4.11])
1905       elif test "`echo $DMAKE_VERSION | cut -d'.' -f1`" = "4" && \
1906	        test "`echo $DMAKE_VERSION | cut -d'.' -f2`" -ge "11"; then
1907          AC_MSG_RESULT([OK, >= 4.11])
1908       else
1909          AC_MSG_ERROR([too old. >= 4.11 is needed])
1910          DMAKE=no
1911       fi
1912    else
1913       AC_MSG_WARN([no])
1914       DMAKE=no
1915    fi
1916fi
1917if test "$DMAKE" = "no"; then
1918   AC_MSG_ERROR([please use --with-dmake-path or --with-dmake-url to specify dmake executable or source])
1919fi
1920AC_SUBST(DMAKE_URL)
1921AC_SUBST(DMAKE_PATH)
1922AC_SUBST(IS_SYSTEM_DMAKE)
1923
1924
1925dnl ===================================================================
1926dnl Search all the common names for GNU or BSD tar
1927dnl ===================================================================
1928AC_MSG_CHECKING([for GNU or compatible BSD tar])
1929for a in $GNUTAR gtar gnutar bsdtar tar; do
1930      $a --version 2> /dev/null | $EGREP "GNU|libarchive" 2>&1 > /dev/null
1931      if test $? -eq 0; then
1932           GNUTAR=$a
1933           break
1934      fi
1935done
1936AC_MSG_RESULT($GNUTAR)
1937if test -z "$GNUTAR"; then
1938    AC_MSG_ERROR([not found. install GNU tar.])
1939fi
1940
1941AC_SUBST(GNUTAR)
1942
1943dnl ===================================================================
1944dnl  Test the solaris compiler version
1945dnl ===================================================================
1946if test "$_os" = "SunOS"; then
1947   if test "$CC" = "cc"; then
1948      AC_PATH_PROGS(_cc, cc)
1949      COMPATH=`echo $_cc | $SED -n "s/\/bin\/cc//p"`
1950      AC_MSG_CHECKING([the SunStudio C/C++ compiler version])
1951      dnl cc -V outputs to standard error!!!!
1952      _sunstudio_string=`$CC -V 2>&1 | $GREP '^cc' | sed -e 's/.* C //'`
1953      _sunstudio_version=`echo $_sunstudio_string | $AWK '{ print $1 }'`
1954      _sunstudio_major=`echo $_sunstudio_version | $AWK -F. '{ print $1 }'`
1955      if test "$_sunstudio_major" != "5"; then
1956         AC_MSG_ERROR([found version "$_sunstudio_version", use version 5.5, 5.7, 5.8 or 5.9 of the SunStudio C/C++ compiler])
1957      else
1958         _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" }'`
1959         if test "$_sunstudio_minor" = "false"; then
1960            AC_MSG_ERROR([found version "$_sunstudio_version", use version 5.5, 5.7, 5.8 or 5.9 of the SunStudio C/C++ compiler])
1961         else
1962            dnl compiler will do
1963            AC_MSG_RESULT([checked])
1964         fi
1965      fi
1966   fi
1967fi
1968
1969if test "$GCC" = "yes"; then
1970   AC_MSG_CHECKING( for --hash-style=both linker support )
1971   hash_style_ldflags_save=$LDFLAGS
1972   LDFLAGS="$LDFLAGS -Wl,--hash-style=both"
1973   AC_LINK_IFELSE([AC_LANG_PROGRAM([
1974   #include <stdio.h>
1975   ],[
1976    printf ("hello world\n");
1977   ])], HAVE_LD_HASH_STYLE=TRUE, HAVE_LD_HASH_STYLE=FALSE)
1978   if test "z$HAVE_LD_HASH_STYLE" = "zTRUE"; then
1979     AC_MSG_RESULT( found )
1980   else
1981     AC_MSG_RESULT( not found )
1982   fi
1983   LDFLAGS=$hash_style_ldflags_save
1984fi
1985AC_SUBST(HAVE_LD_HASH_STYLE)
1986
1987dnl ===================================================================
1988dnl  Test the Compaq compiler for OSF1
1989dnl ===================================================================
1990if test "$_os" = "OSF1"; then
1991   if test "$CC" = "cc"; then
1992      AC_PATH_PROGS(_cc, cc)
1993      COMPATH=`echo $_cc | $SED -n "s/\/bin\/cc//p"`
1994      AC_MSG_WARN([******* $_cc , $COMPATH])
1995      AC_MSG_CHECKING([the Compaq C compiler version])
1996      dnl cc -V outputs to standard error!!!!
1997      _compaqc_version=`$CC -V 2>&1 | $AWK '{ print $3 }'`
1998      _compaqc_major=`echo $_compaqc_version | $AWK -F. '{ print $1 }'`
1999      if test "$_compaqc_major" != "T6"; then
2000         AC_MSG_ERROR([found version "$_compaqc_version", use version 6 of the Compaq C compiler])
2001      else
2002         dnl compiler will do
2003         AC_MSG_RESULT([checked])
2004      fi
2005   fi
2006fi
2007
2008dnl ===================================================================
2009dnl Check whether there's a Perl version available.
2010dnl ===================================================================
2011if test -z "$with_perl_home"; then
2012   AC_PATH_PROG(PERL, perl)
2013else
2014   if test "$_os" = "WINNT"; then
2015      with_perl_home=`cygpath -u "$with_perl_home"`
2016   fi
2017   _perl_path="$with_perl_home/bin/perl"
2018   if test -x "$_perl_path"; then
2019      PERL=$_perl_path
2020   else
2021      AC_MSG_ERROR([$_perl_path not found])
2022   fi
2023fi
2024
2025dnl ===================================================================
2026dnl Testing for Perl version 5 or greater.
2027dnl $] is the perl version variable, it is returned as an integer
2028dnl ===================================================================
2029if test "$PERL"; then
2030   AC_MSG_CHECKING([the Perl version])
2031   ${PERL} -e "exit($]);"
2032   _perl_version=$?
2033   if test "$_perl_version" -lt 5; then
2034      AC_MSG_ERROR([found Perl version "$_perl_version", use version 5 of Perl])
2035   fi
2036   AC_MSG_RESULT([checked (perl $_perl_version)])
2037else
2038   AC_MSG_ERROR([Perl not found, install version 5 of Perl])
2039fi
2040AC_SUBST(PERL)
2041
2042dnl ===================================================================
2043dnl Testing for required Perl modules
2044dnl The list of required Perl modules is documented here:
2045dnl     https://wiki.openoffice.org/wiki/Documentation/Building_Guide_AOO#General_Build_Requirements
2046dnl ===================================================================
2047AC_MSG_CHECKING([for required Perl modules])
2048if `$PERL -e 'use Archive::Zip;
2049              use LWP::UserAgent;
2050              use XML::Parser;
2051              use Digest::SHA;
2052              use Digest::MD5;
2053              use LWP::Protocol::https;'>/dev/null 2>&1`; then
2054	AC_MSG_RESULT([all modules found])
2055else
2056    # Find out which modules are missing.
2057    missing_perl_modules=
2058    if ! `$PERL -e 'use Archive::Zip;'>/dev/null 2>&1`; then
2059       missing_perl_modules=Archive::Zip
2060    fi
2061    if ! `$PERL -e 'use LWP::UserAgent;'>/dev/null 2>&1`; then
2062       missing_perl_modules="$missing_perl_modules LWP::UserAgent"
2063    fi
2064    if ! `$PERL -e 'use XML::Parser;'>/dev/null 2>&1`; then
2065       missing_perl_modules="$missing_perl_modules XML::Parser"
2066    fi
2067    if ! `$PERL -e 'use Digest::SHA;'>/dev/null 2>&1`; then
2068       missing_perl_modules="$missing_perl_modules Digest::SHA"
2069    fi
2070    if ! `$PERL -e 'use Digest::MD5;'>/dev/null 2>&1`; then
2071       missing_perl_modules="$missing_perl_modules Digest::MD5"
2072    fi
2073    if ! `$PERL -e 'use LWP::Protocol::https;'>/dev/null 2>&1`; then
2074       missing_perl_modules="$missing_perl_modules LWP::Protocol::https"
2075    fi
2076	AC_MSG_ERROR([
2077    The missing Perl modules are: $missing_perl_modules
2078    Install them as superuser/administrator with "cpan -i $missing_perl_modules"])
2079fi
2080
2081dnl ===================================================================
2082dnl  Check which Microsoft C/C++ or MinGW compiler is used for WINNT
2083dnl ===================================================================
2084if test "$_os" = "WINNT"; then
2085	if test "$WITH_MINGWIN" != "yes"; then
2086		AC_MSG_CHECKING([for friendly registry keys])
2087		# VS.Net 2003, VS.Net 2005
2088		if test -z "$with_cl_home"; then
2089			vctest=`$OOWINTOOL --msvc-productdir`;
2090			if test -x "$vctest/bin/cl.exe"; then
2091				with_cl_home=$vctest;
2092			fi
2093		else
2094			with_cl_home=`cygpath -u "$with_cl_home"`
2095		fi
2096		AC_MSG_RESULT([done])
2097
2098		dnl ===========================================================
2099		dnl  Check for mspdb71.dll/mspdb80.dll
2100		dnl ===========================================================
2101		dnl  .NET 2003/5/8 Compiler
2102		if test -n "$with_mspdb_path";then
2103			with_mspdb_path=`cygpath -u "$with_mspdb_path"`
2104		fi
2105		if test -e "$with_mspdb_path/mspdb71.dll" -o -e "$with_mspdb_path/mspdb80.dll"; then
2106			MSPDB_PATH="$with_mspdb_path"
2107		fi
2108		dnl .NET 2003 case
2109		if test -z "$MSPDB_PATH" -a -e "$with_cl_home/../Common7/IDE/mspdb71.dll"; then
2110			MSPDB_PATH="$with_cl_home/../Common7/IDE"
2111		fi
2112		dnl .NET 2005/2008 case
2113		if test -z "$MSPDB_PATH" -a -e "$with_cl_home/../Common7/IDE/mspdb80.dll"; then
2114			MSPDB_PATH="$with_cl_home/../Common7/IDE"
2115		fi
2116		dnl Windows SDK 6.0 case
2117		if test -z "$MSPDB_PATH" -a -e "$with_cl_home/bin/mspdb80.dll"; then
2118			MSPDB_PATH="$with_cl_home/bin"
2119		fi
2120
2121		if test -z "$MSPDB_PATH";then
2122			dnl AC_PATH_PROG only checks if MSPDB_PATH is still empty
2123			AC_PATH_PROG(MSPDB_PATH, mspdb80.dll)
2124			AC_PATH_PROG(MSPDB_PATH, mspdb71.dll)
2125			MSPDB_PATH=`dirname "$MSPDB_PATH"`
2126		fi
2127
2128		if test -z "$MSPDB_PATH"; then
2129			AC_MSG_ERROR([You need a mspdb71.dll/mspdb80.dll, make sure it's in the path or use --with-mspdb-path])
2130		fi
2131		MSPDB_PATH=`cygpath -d "$MSPDB_PATH"`
2132		MSPDB_PATH=`cygpath -u "$MSPDB_PATH"`
2133		dnl The path needs to be added before cl is called
2134		PATH="$MSPDB_PATH:$PATH"
2135
2136		AC_MSG_CHECKING([the Microsoft C/C++ Compiler])
2137		case "$build_cpu" in
2138		  i?86)
2139		    cl_subdirectory="bin"
2140		    ;;
2141		  x86_64)
2142		    if test "$BUILD_WIN64" = "TRUE" ; then
2143		      cl_subdirectory="bin/amd64"
2144		    else
2145		      cl_subdirectory="bin"
2146		    fi
2147		    ;;
2148		  *)
2149		    AC_MSG_ERROR([Unknown/unsupported Windows CPU $build_cpu.])
2150		    ;;
2151		esac
2152   		if test -x "$with_cl_home/$cl_subdirectory/cl.exe"; then
2153   			CC="$with_cl_home/$cl_subdirectory/cl.exe"
2154			COMPATH="$with_cl_home"
2155			# This gives us a posix path with 8.3 filename restrictions
2156			CC=`cygpath -d "$CC"`
2157			CC=`cygpath -u "$CC"`
2158			COMPATH=`cygpath -d "$COMPATH"`
2159			COMPATH=`cygpath -u "$COMPATH"`
2160			# Remove /cl.exe from CC case insensitive
2161			AC_MSG_RESULT([found ($CC)])
2162			export INCLUDE=`cygpath -d "$COMPATH/Include"`
2163			dnl  Check which Microsoft C/C++ compiler is found
2164			AC_MSG_CHECKING([the Version of Microsoft C/C++ Compiler])
2165dnl      The following find microsoft, matches nn.nn.nnnn then pulls numbers out.
2166			CCTXTVER=`$CC 2>&1 | head -n1`
2167			CCNUMVER=`echo $CCTXTVER | $AWK "/Microsoft/ && /..\\...\\...../ {
2168							x = match( \\\$0, /..\\...\\...../ )
2169							CCversion = substr( \\\$0, RSTART, RLENGTH)
2170							tokencount = split (CCversion,vertoken,\".\")
2171							for ( i = 1 ; i <= tokencount ; i++ ) {
2172								printf (\"%04d\",vertoken[[i]] )
2173							}
2174							}"`
2175			AC_MSG_RESULT([found Compiler version $CCNUMVER in \"$CCTXTVER\"])
2176			if test "$CCNUMVER" -ge "001500000000"; then
2177				COMEX=12
2178				MSVSVER=2008
2179				AC_MSG_RESULT([found .NET 2008 / VS 9.0.])
2180			else
2181				AC_MSG_ERROR([Compiler too old. Use Microsoft C/C++ .NET 2008.])
2182			fi
2183		else
2184			AC_MSG_ERROR([Microsoft C/C++ Compiler not found. Use --with-cl-home.])
2185		fi
2186	else
2187		AC_MSG_CHECKING([the Mingwin32 C++ Compiler])
2188		if test `$CC -dumpmachine | $SED -e 's/^.*-//'` = "mingw32"; then
2189			AC_MSG_RESULT([found.])
2190			if $CC -dumpspecs | $GREP -q "mno-cygwin"; then
2191				USE_MINGW="cygwin"
2192			else
2193				USE_MINGW="pure-mingw"
2194			fi
2195		else
2196			AC_MSG_ERROR([Mingwin32 C++ Compiler not found.])
2197		fi
2198	fi
2199fi
2200AC_SUBST(COMEX)
2201AC_SUBST(MSPDB_PATH)
2202AC_SUBST(USE_MINGW)
2203
2204dnl Compiler detection, logic from setsoenv.in
2205case "$build_os" in
2206	*cygwin*)
2207		if test "$WITH_MINGWIN" = "yes"; then
2208			COM="GCC";
2209		else
2210			COM="MSC";
2211		fi;;
2212	os2*)
2213		COM="GCC";;
2214	netbsd | kfreebsd* | freebsd* | linux* | darwin* )
2215		if $CC --version 2>&1 | $GREP clang > /dev/null ; then
2216			COM="CLANG";
2217		else
2218			COM="GCC";
2219		fi;;
2220	solaris*)
2221		case "$CC" in
2222			*gcc*)	COM="GCC";;
2223			*)	COM="C52";;
2224		esac;;
2225	osf | aix*)
2226		COM="CXX";;
2227	*) AC_MSG_ERROR([Unable to decipher compiler for $build_os]);;
2228esac
2229AC_SUBST(COM)
2230
2231dnl  Decode the compiler version. Logic from main/solenv/inc/tg_compv.mk.
2232case $COM in
2233	GCC)
2234		CCVER=`${CC} -dumpfullversion -dumpversion 2>&1`;
2235		CCNUMVER=`echo ${CCVER} | $AWK -v num=true -f ${_solenv}/bin/getcompver.awk`;
2236		if test "${CCNUMVER}" -ge 000300000001; then
2237			COMID="gcc3";
2238			COMNAME="gcc3";
2239		elif test "${CCNUMVER}" -ge 000300000001; then
2240			COMID="GCC";
2241			COMNAME="gcc2";
2242		else
2243			AC_MSG_ERROR([gcc too old]);
2244		fi
2245		;;
2246	CLANG)
2247		CCVER=`${CC} --version 2>&1 | head -n1 | sed -e"s/.*version //" -e"s/ .*//"`;
2248		CCNUMVER=`echo ${CCVER} | $AWK -v num=true -f ${_solenv}/bin/getcompver.awk`;
2249		# The version in tg_compv.mk for darwin does not look correct
2250		# CCNUMVER = `echo ${CCVER} | sed -e"s/\.//";
2251		case "$build_os" in
2252 			darwin*) # Mac OS X
2253 				COMID="s5abi";
2254 				COMNAME="s5abi";
2255 				;;
2256 			*)
2257 				COMID="gcc3";
2258 				COMNAME="gcc3";
2259 				;;
2260 		esac
2261		;;
2262	MSC)
2263		CCVER=`${CC} 2>&1 | $AWK -f ${_solenv}/bin/getcompver.awk`;
2264		CCNUMVER=`${CC} 2>&1 | $AWK -v num=true -f ${_solenv}/bin/getcompver.awk`;
2265		if test "${CCNUMVER}" -ge 001200000000; then
2266			COMID="MSC";
2267			case "$build_cpu" in
2268			  i?86)
2269			    COMNAME="msci";
2270			    ;;
2271			  x86_64)
2272			    if test "$BUILD_WIN64" = "TRUE" ; then
2273			      COMNAME="mscx";
2274			    else
2275			      COMNAME="msci";
2276			    fi
2277			    ;;
2278			  *)
2279			    AC_MSG_ERROR([Unknown/unsupported Windows CPU $build_cpu.])
2280			    ;;
2281			esac
2282		else
2283			AC_MSG_ERROR([MSC compiler too old]);
2284		fi
2285		;;
2286	C55 | C54 | C52 | C40 | sunpro)
2287		CCVER=`${CC} -V 2>&1 | $AWK -f ${_solenv}/bin/getcompver.awk`;
2288		CCNUMVER=`${CC} -V 2>&1 | $AWK -v num=true -f ${_solenv}/bin/getcompver.awk`;
2289		if test "${CCNUMVER}" -ge 00050002; then
2290			COMID="C52";
2291			COMNAME="sunpro5";
2292		else
2293			AC_MSG_ERROR([Sun compiler too old]);
2294		fi
2295		;;
2296	*)
2297		AC_MSG_ERROR([Unable to detect compiler version]);;
2298esac
2299AC_SUBST(CCVER)
2300AC_SUBST(CCNUMVER)
2301AC_SUBST(COMID)
2302AC_SUBST(COMNAME)
2303
2304if test "$_os" = "FreeBSD"; then
2305    FBSD_GCC_RPATH=
2306    if test "$COM" = "GCC"; then
2307        rpath=`$CC --print-file-name libstdc++.so`
2308        rpath=`realpath $rpath`
2309        rpath=`dirname $rpath`
2310	if test "$rpath" != "/usr/lib" ; then
2311            FBSD_GCC_RPATH="-Wl,-rpath=$rpath"
2312	fi
2313    fi
2314    AC_SUBST(FBSD_GCC_RPATH)
2315fi
2316
2317dnl ===================================================================
2318dnl  .NET needs special treatment
2319dnl ===================================================================
2320if test "$_os" = "WINNT"; then
2321if test "$WITH_MINGWIN" = "yes" || test "$COMEX" -ge "10"; then
2322	dnl Check midl.exe
2323	AC_PATH_PROG(MIDL_PATH, midl.exe)
2324	if test -n "$MIDL_PATH";then
2325		MIDL_PATH=`dirname "$MIDL_PATH"`
2326	fi
2327	if test -n "$with_midl_path";then
2328		with_midl_path=`cygpath -u "$with_midl_path"`
2329	fi
2330	if test -x "$with_midl_path/midl.exe"; then
2331		MIDL_PATH="$with_midl_path"
2332	fi
2333	if test -z "$MIDL_PATH" -a -e "$with_cl_home/../Common7/Tools/Bin/midl.exe"; then
2334		MIDL_PATH="$with_cl_home/../Common7/Tools/Bin"
2335	fi
2336	if test -z "$MIDL_PATH" ; then
2337      vstest=`$OOWINTOOL --msvs-productdir`;
2338      if test -x "$vstest/Common7/Tools/Bin/midl.exe" ; then
2339		  MIDL_PATH="$vstest/Common7/Tools/Bin"
2340      fi
2341	fi
2342	if test -z "$MIDL_PATH" ; then
2343		psdktest=`$OOWINTOOL --psdk-home`
2344		if test -x "$psdktest/Bin/midl.exe" ; then
2345			MIDL_PATH="$psdktest/Bin"
2346		fi
2347	fi
2348	if test ! -x "$MIDL_PATH/midl.exe"; then
2349		AC_MSG_ERROR([midl.exe not found. Make sure it's in the path or use --with-midl-path])
2350	fi
2351	# Convert to posix path with 8.3 filename restrictions ( No spaces )
2352	MIDL_PATH=`cygpath -d "$MIDL_PATH"`
2353	MIDL_PATH=`cygpath -u "$MIDL_PATH"`
2354
2355	dnl Check csc.exe
2356	AC_PATH_PROG(CSC_PATH, csc.exe)
2357	if test -n "$CSC_PATH";then
2358		CSC_PATH=`dirname "$CSC_PATH"`
2359	fi
2360	if test -n "$with_csc_path";then
2361		with_csc_path=`cygpath -u "$with_csc_path"`
2362	fi
2363	if test -x "$with_csc_path/csc.exe"; then
2364		CSC_PATH="$with_csc_path"
2365	else
2366	   csctest=`$OOWINTOOL --csc-compilerdir`;
2367	   if test -x "$csctest/csc.exe"; then
2368	      CSC_PATH="$csctest"
2369	   fi
2370	fi
2371	if test ! -x "$CSC_PATH/csc.exe"; then
2372		AC_MSG_ERROR([csc.exe not found. Make sure it's in the path or use --with-csc-path])
2373	fi
2374	# Convert to posix path with 8.3 filename restrictions ( No spaces )
2375	CSC_PATH=`cygpath -d "$CSC_PATH"`
2376	CSC_PATH=`cygpath -u "$CSC_PATH"`
2377
2378    dnl Check mscoree.lib / .NET Frameworks dir
2379    dnl For VS2003/2005 $with_frame_home has to point to the directory with lib/mscoree.lib.
2380       AC_MSG_CHECKING(.NET Framework)
2381	    if test -n "$with_frame_home"; then
2382		with_frame_home=`cygpath -u "$with_frame_home"`
2383	    fi
2384	    if test -f "$with_frame_home/lib/mscoree.lib"; then
2385		    FRAME_HOME="$with_frame_home"
2386	    fi
2387	    if test -z "$FRAME_HOME" -a -e "$with_cl_home/../SDK/v1.1/lib/mscoree.lib"; then
2388		    FRAME_HOME="$with_cl_home/../SDK/v1.1"
2389	    fi
2390	    if test -z "$FRAME_HOME" ; then
2391          frametest=`$OOWINTOOL --dotnetsdk-dir`
2392          if test -f "$frametest/lib/mscoree.lib"; then
2393             FRAME_HOME="$frametest"
2394          else
2395             frametest=`$OOWINTOOL --psdk-home`
2396             if test -f "$frametest/lib/mscoree.lib"; then
2397                FRAME_HOME="$frametest"
2398             fi
2399          fi
2400	    fi
2401	    if test ! -f "$FRAME_HOME/lib/mscoree.lib"; then
2402		AC_MSG_ERROR([mscoree.lib (.NET Framework) not found. Make sure you use --with-frame-home])
2403	    fi
2404	    AC_MSG_RESULT(found)
2405	# Convert to posix path with 8.3 filename restrictions ( No spaces )
2406	FRAME_HOME=`cygpath -d "$FRAME_HOME"`
2407	FRAME_HOME=`cygpath -u "$FRAME_HOME"`
2408fi
2409AC_SUBST(MIDL_PATH)
2410AC_SUBST(CSC_PATH)
2411AC_SUBST(FRAME_HOME)
2412fi
2413
2414dnl ===================================================================
2415dnl Check if stdc headers are available excluding Windows.
2416dnl ===================================================================
2417if test "$_os" != "WINNT" -o "$WITH_MINGWIN" = "yes"; then
2418   AC_HEADER_STDC
2419fi
2420
2421dnl ===================================================================
2422dnl Find pre-processors.
2423dnl ===================================================================
2424if test "$_os" != "WINNT" -o "$WITH_MINGWIN" = "yes"; then
2425   AC_PROG_CXXCPP
2426
2427dnl Check whether there's a C pre-processor.
2428dnl ===================================================================
2429dnl When using SunStudio compiler, there is a bug with the cc
2430dnl preprocessor, so use CC preprocessor as the cc preprocessor
2431dnl See Issuezilla #445.
2432dnl ===================================================================
2433   if test "$_os" = "SunOS"; then
2434      CPP=$CXXCPP
2435   else
2436      AC_PROG_CPP
2437   fi
2438fi
2439
2440AC_CHECK_SIZEOF(long)
2441SIZEOF_LONG=$ac_cv_sizeof_long
2442AC_SUBST(SIZEOF_LONG)
2443AC_C_BIGENDIAN
2444WORDS_BIGENDIAN=$ac_cv_c_bigendian
2445AC_SUBST(WORDS_BIGENDIAN)
2446
2447dnl Check for large file support
2448AC_SYS_LARGEFILE
2449if test -n "$ac_cv_sys_file_offset_bits"; then
2450   LFS_CFLAGS="-D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits"
2451fi
2452if test -n "$ac_cv_sys_large_files" && test "$ac_cv_sys_large_files" != "no"; then
2453   LFS_CFLAGS="$LFS_CFLAGS -D_LARGE_FILES"
2454fi
2455AC_SUBST(LFS_CFLAGS)
2456
2457dnl ===================================================================
2458dnl Check if valgrind.h is available
2459dnl ===================================================================
2460if test -n "$enable_dbgutil" && test "$enable_dbgutil" != "no"; then
2461   dnl Test $prefix (currently only testing for /usr and /usr/local)
2462   dnl so that VALGRIND_CFLAGS = -I$prefix/include/valgrind
2463   VALGRIND_CFLAGS=""
2464   prev_cppflags=$CPPFLAGS
2465   if test -z "$VALGRIND_CFLAGS"; then
2466      CPPFLAGS="-I/usr/include/valgrind"
2467      AC_CHECK_HEADER([valgrind.h], [VALGRIND_CFLAGS=$CPPFLAGS], [unset ac_cv_header_valgrind_h])
2468   fi
2469   if test -z "$VALGRIND_CFLAGS"; then
2470      CPPFLAGS="-I/usr/local/include/valgrind"
2471      AC_CHECK_HEADER([valgrind.h], [VALGRIND_CFLAGS=$CPPFLAGS], [])
2472   fi
2473   if test -n "$VALGRIND_CFLAGS"; then
2474      CPPFLAGS=$VALGRIND_CFLAGS
2475      AC_CHECK_HEADER([memcheck.h], [], [VALGRIND_CFLAGS=""])
2476   fi
2477   CPPFLAGS=$prev_cppflags
2478fi
2479AC_SUBST([VALGRIND_CFLAGS])
2480
2481dnl ===================================================================
2482dnl Check if cups/cups.h is available
2483dnl ===================================================================
2484if test "$test_cups" = "yes" -a "$ENABLE_CUPS" = "TRUE" ; then
2485    AC_CHECK_HEADER(cups/cups.h, [],
2486                    [AC_MSG_ERROR([cups/cups.h could not be found. libcupsys2-dev or cups???-devel missing?])], [])
2487fi
2488
2489dnl ===================================================================
2490dnl Check if PAM/pam_appl.h is available on Linux or FreeBSD
2491dnl ===================================================================
2492if test "$_os" = "Linux" -o "$_os" = "FreeBSD" -o "$_os" = "GNU"; then
2493  AC_MSG_CHECKING([whether to enable pam support])
2494  if test -z "$enable_pam" || test "$enable_pam" != "no"; then
2495    AC_MSG_RESULT([yes])
2496    PAM=YES
2497    AC_CHECK_HEADER(security/pam_appl.h, [],
2498                    [AC_MSG_ERROR([pam_appl.h could not be found. libpam-dev or pam-devel missing?])], [])
2499    AC_MSG_CHECKING([whether to link to libpam])
2500    if test -n "$enable_pam_link" -a "$enable_pam_link" != "no"; then
2501      AC_MSG_RESULT([yes])
2502      PAM_LINK=YES
2503      AC_CHECK_LIB(pam, pam_start, [],
2504          [AC_MSG_ERROR(libpam not found or functional)], [])
2505    else
2506      AC_MSG_RESULT([no, dynamically open it])
2507      PAM_LINK=NO
2508    fi
2509  else
2510    AC_MSG_RESULT([no])
2511    PAM=NO
2512    PAM_LINK=NO
2513    dnl check getspnam_r for needed args (4 or 5)
2514    AX_FUNC_WHICH_GETSPNAM_R
2515  fi
2516fi
2517AC_SUBST(PAM)
2518AC_SUBST(NEW_SHADOW_API)
2519AC_SUBST(PAM_LINK)
2520
2521if test "$_os" = "Linux"; then
2522    AC_MSG_CHECKING([whether to link to libcrypt])
2523    if test -n "$enable_crypt_link" -a "$enable_crypt_link" != "no"; then
2524        AC_MSG_RESULT([yes])
2525        CRYPT_LINK=YES
2526        AC_CHECK_LIB(crypt, crypt, [],
2527            [AC_MSG_ERROR(libcrypt not found or functional)], [])
2528    else
2529        AC_MSG_RESULT([no, dynamically open it])
2530        CRYPT_LINK=NO
2531    fi
2532fi
2533AC_SUBST(CRYPT_LINK)
2534
2535dnl ===================================================================
2536dnl Testing for c++ compiler and version...
2537dnl ===================================================================
2538if test -n "$with_gcc_home"; then
2539   if test -z "$CXX"; then
2540      CXX="$with_gcc_home/bin/g++"
2541   fi
2542fi
2543
2544if test "$_os" = "WINNT" -a "$WITH_MINGWIN" != "yes"; then
2545   if test -e "$CC"; then
2546      CXX="$CC"
2547   fi
2548fi
2549
2550dnl Autoconf 2.53 can do this test for cl.exe, 2.13 can't!
2551if test "$_os" != "WINNT" -o "$WITH_MINGWIN" = "yes"; then
2552   AC_PROG_CXX
2553fi
2554
2555dnl check if we are using a buggy version of g++ (currently 3.4.0, 3.4.1 and trunk)
2556if test "$GXX" = "yes"; then
2557   AC_MSG_CHECKING([the GNU C++ compiler version])
2558
2559   _gpp_version=`$CXX -dumpversion`
2560   _gpp_majmin=`echo $_gpp_version | $AWK -F. '{ print \$1*100+\$2 }'`
2561
2562   AC_MSG_RESULT([checked (g++ $_gpp_version)])
2563
2564   if test "$_gpp_majmin" = "304"; then
2565      AC_MSG_CHECKING([whether $CXX has the enum bug])
2566AC_TRY_RUN([
2567extern "C" void abort (void);
2568extern "C" void exit (int status);
2569
2570enum E { E0, E1, E2, E3, E4, E5 };
2571
2572void
2573test (enum E e)
2574{
2575  if (e == E2 || e == E3 || e == E1)
2576  exit (1);
2577}
2578
2579int
2580main (void)
2581{
2582  test (E4);
2583  test (E5);
2584  test (E0);
2585  return 0;
2586}
2587],[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])])
2588   fi
2589fi
2590
2591dnl ===================================================================
2592dnl Set the mingw runtime library include directories
2593dnl ===================================================================
2594if test "$WITH_MINGWIN" = "yes"; then
2595   AC_MSG_CHECKING([for mingwin runtime include path])
2596   cat >conftest.$ac_ext <<_ACEOF
2597#include <stddef.h>
2598#include <bits/c++config.h>
2599_ACEOF
2600   _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`
2601   rm conftest.$ac_ext
2602   if test -n "$_mingw_lib_include_path"; then
2603      _temp=""
2604      for a in $_mingw_lib_include_path
2605         do
2606            a=`cygpath -d "$a"`
2607            _temp="$_temp "`cygpath -u "$a"`
2608         done
2609      _mingw_lib_include_path=$_temp
2610   fi
2611   if test -z "$_mingw_lib_include_path"; then
2612      _mingw_lib_include_path="NO_LIB_INCLUDE"
2613      AC_MSG_RESULT([no mingwin runtime includes])
2614   else
2615      AC_MSG_RESULT([$_mingw_lib_include_path])
2616   fi
2617  MINGW_LIB_INCLUDE_PATH="$_mingw_lib_include_path"
2618  AC_SUBST(MINGW_LIB_INCLUDE_PATH)
2619dnl mingw gcc 4.4.0 needs backward in include path to use hash_set/hash_map
2620   AC_MSG_CHECKING([for mingwin c++ backward include path])
2621   cat >conftest.$ac_ext <<_ACEOF
2622#include <hash_set>
2623_ACEOF
2624   _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`
2625   rm conftest.$ac_ext
2626   if test -n "$_mingw_backward_include_path"; then
2627      _mingw_backward_include_path=`cygpath -d $_mingw_backward_include_path`
2628      _mingw_backward_include_path=`cygpath -u $_mingw_backward_include_path`
2629      AC_MSG_RESULT([$_mingw_backward_include_path])
2630   else
2631      _mingw_backward_include_path="NO_BACKWARD_INCLUDE"
2632      AC_MSG_RESULT([no mingwin c++ backward includes])
2633   fi
2634  MINGW_BACKWARD_INCLUDE_PATH="$_mingw_backward_include_path"
2635  AC_SUBST(MINGW_BACKWARD_INCLUDE_PATH)
2636  mingw_crtbegin=`$CC -print-file-name=crtbegin.o`
2637  MINGW_CLIB_DIR=`dirname $mingw_crtbegin`
2638  AC_MSG_CHECKING([whether to use dynamic libgcc])
2639  if test -e "$MINGW_CLIB_DIR/libgcc_s.a"; then
2640    AC_MSG_CHECKING([dynamic libgcc name])
2641    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'`
2642    MINGW_GCCDLL=`cd $COMPATH/bin && ls $MINGW_GCCDLL_pattern 2>/dev/null`
2643    if test -n "$MINGW_GCCDLL"; then
2644        MINGW_SHARED_GCCLIB=YES
2645        AC_MSG_RESULT([use $MINGW_GCCDLL])
2646    else
2647        AC_MSG_RESULT([no])
2648    fi
2649  else
2650    AC_MSG_RESULT([no])
2651  fi
2652  if test -e "$MINGW_CLIB_DIR/libgcc_eh.a"; then
2653      MINGW_GCCLIB_EH=YES
2654  fi
2655  AC_MSG_CHECKING([whether to use dynamic libstdc++])
2656  MINGW_SHARED_LIBSTDCPP=
2657  if test -e "$MINGW_CLIB_DIR/libstdc++_s.a" ; then
2658    MINGW_SHARED_LIBSTDCPP=stdc++_s
2659  fi
2660  if test -e "$MINGW_CLIB_DIR/libstdc++.dll.a" ; then
2661    MINGW_SHARED_LIBSTDCPP=stdc++.dll
2662  fi
2663  if test -n "$MINGW_SHARED_LIBSTDCPP" ; then
2664    AC_MSG_CHECKING([dynamic libstdc++ name])
2665    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'`
2666    MINGW_GXXDLL=`cd $COMPATH/bin && ls $MINGW_GXXDLL_pattern 2>/dev/null`
2667    if test -n "$MINGW_GXXDLL"; then
2668        MINGW_SHARED_LIBSTDCPP=-l$MINGW_SHARED_LIBSTDCPP
2669        MINGW_SHARED_GXXLIB=YES
2670        AC_MSG_RESULT([use $MINGW_GXXDLL])
2671    else
2672        MINGW_SHARED_LIBSTDCPP=
2673        AC_MSG_RESULT([no])
2674    fi
2675  else
2676    AC_MSG_RESULT([no])
2677  fi
2678  MINGW_CLIB_DIR=`cygpath $MINGW_CLIB_DIR`
2679  AC_SUBST(MINGW_CLIB_DIR)
2680  AC_SUBST(MINGW_SHARED_GCCLIB)
2681  AC_SUBST(MINGW_GCCLIB_EH)
2682  AC_SUBST(MINGW_SHARED_GXXLIB)
2683  AC_SUBST(MINGW_SHARED_LIBSTDCPP)
2684  AC_SUBST(MINGW_GCCDLL)
2685  AC_SUBST(MINGW_GXXDLL)
2686fi
2687
2688dnl ===================================================================
2689dnl Extra checking for the SUN OS compiler
2690dnl ===================================================================
2691if test "$_os" = "SunOS"; then
2692   dnl SunStudio C++ compiler packaged with SunStudio C compiler
2693   if test "$CC" = "cc"; then
2694   AC_MSG_CHECKING([SunStudio C++ Compiler])
2695      if test "$CXX" != "CC"; then
2696         AC_MSG_WARN([SunStudio C++ was not found])
2697         echo "SunStudio C++ was not found" >> warn
2698      else
2699         AC_MSG_RESULT([checked])
2700      fi
2701   fi
2702fi
2703dnl ===================================================================
2704dnl Extra checking for the OSF compiler
2705dnl ===================================================================
2706if test "$_os" = "OSF1"; then
2707   AC_MSG_CHECKING([Compaq C++ compiler version])
2708   dnl cxx -V outputs to standard error!!!!
2709   _compaqcxx_version=`$CXX -V 2>&1 | $AWK '{ print $3 }'`
2710   _compaqcxx_major=`echo $_compaqcxx_version | $AWK -F. '{ print $1 }'`
2711   if test "$_compaqcxx_major" != "V6"; then
2712      AC_MSG_WARN([found version "$_compaqc_version", use version 6 of the Compaq C++ compiler])
2713      echo "found version $_compaqc_version, use version 6 of the Compaq C++ compiler" >> warn
2714   else
2715      dnl compiler will do
2716      AC_MSG_RESULT([checked])
2717   fi
2718fi
2719
2720dnl *************************************************************
2721dnl Testing for exception handling - dwarf2 or sjlj exceptions...
2722dnl *************************************************************
2723AC_MSG_CHECKING([exception type])
2724AC_LANG_PUSH([C++])
2725if test "$WITH_MINGWIN" = "yes"; then
2726  AC_TRY_LINK(
2727	[#include <iostream>
2728
2729extern "C" void _Unwind_SjLj_RaiseException(void) __attribute__ ((__noreturn__));
2730
2731	],
2732	[_Unwind_SjLj_RaiseException() ],
2733	[exceptions_type="sjlj"],
2734	[exceptions_type="dwarf2"]
2735  )
2736fi
2737
2738AC_MSG_RESULT($exceptions_type)
2739AC_LANG_POP([C++])
2740EXCEPTIONS="$exceptions_type"
2741AC_SUBST(EXCEPTIONS)
2742
2743dnl ===================================================================
2744dnl Checks for what the default STL should be
2745dnl ===================================================================
2746   AC_MSG_CHECKING([what the default STL should be])
2747   DEFAULT_TO_STLPORT="no"
2748if test "$WITH_STLPORT" != "no"; then
2749   AC_MSG_ERROR([Option --with-stlport is no longer available.])
2750else
2751   USE_SYSTEM_STL="YES"
2752fi
2753
2754AC_SUBST(USE_SYSTEM_STL)
2755
2756dnl ===================================================================
2757dnl visibility feature
2758dnl ===================================================================
2759if test "$GCC" = "yes"; then
2760   AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
2761   save_CFLAGS=$CFLAGS
2762   CFLAGS="$CFLAGS -fvisibility=hidden"
2763   AC_TRY_LINK([], [ return 0; ], [ HAVE_GCC_VISIBILITY_FEATURE=TRUE ], [])
2764   CFLAGS=$save_CFLAGS
2765   if test "$HAVE_GCC_VISIBILITY_FEATURE" = "TRUE"; then
2766      AC_MSG_RESULT([yes])
2767   else
2768      AC_MSG_RESULT([no])
2769   fi
2770fi
2771
2772# ===================================================================
2773# use --ccache-skip?
2774# ===================================================================
2775dnl used to escape compiler options for ccache that otherwise prevent
2776dnl caching of the results (like "-x objective-c++" for Mac)
2777AC_MSG_CHECKING([whether we are allowed and able to use --ccache-skip])
2778if test "$_os" != "Darwin" ; then
2779   AC_MSG_RESULT([only used on Mac currently, skipping])
2780elif test "$enable_ccache_skip" = "no" ; then
2781   AC_MSG_RESULT([no - diabled explicitly])
2782elif test "$enable_ccache_skip" = "yes" ; then
2783   AC_MSG_RESULT([yes - enabled explicitly, skipping checks])
2784   AC_SUBST([USE_CCACHE], [YES])
2785elif test "$enable_ccache_skip" = "auto" ; then
2786   # checking for ccache presence/version
2787   AC_MSG_RESULT([probing...])
2788   AC_PATH_PROG([CCACHE],[ccache],[not_found])
2789   if test "$CCACHE" = "not_found" ; then
2790      AC_MSG_NOTICE([not enabling --ccache-skip (ccache not found)])
2791   else
2792      # check ccache version
2793      AC_MSG_CHECKING([whether version of ccache is suitable])
2794      CCACHE_VERSION=`"$CCACHE" -V | "$AWK" '/^ccache version/{print $3}'`
2795      if test "$CCACHE_VERSION" = "2.4_OOo"; then
2796         AC_MSG_RESULT([yes])
2797         AC_MSG_CHECKING([whether ccache is actually used for the build])
2798         AC_LANG_PUSH([C++])
2799         save_CXXFLAGS=$CXXFLAGS
2800         CXXFLAGS="$CXXFLAGS --ccache-skip -O2"
2801         dnl an empty program will do, we're checking the compiler flags
2802         AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],
2803            [use_ccache=yes], [use_ccache=no])
2804         if test $use_ccache = yes ; then
2805            AC_MSG_RESULT([yes, will enable --ccache-skip])
2806            AC_SUBST([USE_CCACHE], [YES])
2807         else
2808            AC_MSG_RESULT([no, will not enable --ccache-skip])
2809         fi
2810         CXXFLAGS=$save_CXXFLAGS
2811         AC_LANG_POP([C++])
2812      else
2813         AC_MSG_RESULT([no])
2814         AC_MSG_NOTICE([ccache version $CCACHE_VERSION not accepted. See description for --enable-ccache-skip])
2815      fi
2816   fi
2817else
2818   AC_MSG_ERROR([invalid option to --enable-ccache-skip. Valid values are "auto", "yes" and "no"])
2819fi
2820
2821dnl ===================================================================
2822dnl system stl sanity tests
2823dnl ===================================================================
2824if false ; then # TODO: update TR1 compliant STLs
2825if test "$USE_SYSTEM_STL" = "YES"; then
2826   AC_MSG_CHECKING([system stl sanity])
2827   AC_LANG_PUSH([C++])
2828
2829   if test "$HAVE_GCC_VISIBILITY_FEATURE" = "TRUE"; then
2830      AC_MSG_CHECKING([if STL headers are visibility safe])
2831      AC_EGREP_HEADER(visibility push, string, stlvisok=yes, stlvisok=no)
2832      AC_MSG_RESULT([$stlvisok])
2833      if test "$stlvisok" = "no"; then
2834         AC_MSG_WARN([Your gcc STL headers are not visibility safe. Disabling visibility])
2835         echo "Your gcc STL headers are not visibility safe. Disabling visibility" >> warn
2836         unset HAVE_GCC_VISIBILITY_FEATURE
2837      fi
2838   fi
2839
2840   if test "$HAVE_GCC_VISIBILITY_FEATURE" = "TRUE"; then
2841      sharedlink_ldflags_save=$LDFLAGS
2842      LDFLAGS="$LDFLAGS -fvisibility-inlines-hidden -fpic -shared"
2843
2844      AC_MSG_CHECKING([if gcc is -fvisibility-inlines-hidden safe with STL headers])
2845      AC_TRY_LINK([#include <sstream>
2846using namespace std;
2847],[istringstream strm( "test" ); return 0;],
2848      $EGREP -q  unresolvable conftest.err;
2849      if test $? -eq 0; then gccvisok=no; else gccvisok=yes; fi,
2850      gccvisok=no)
2851      AC_MSG_RESULT([$gccvisok])
2852      if test "$gccvisok" = "no"; then
2853         AC_MSG_WARN([Your gcc is not -fvisibility-inlines-hidden safe. Disabling visibility])
2854         echo "Your gcc is not -fvisibility-inlines-hidden safe. Disabling visibility" >> warn
2855         unset HAVE_GCC_VISIBILITY_FEATURE
2856      fi
2857
2858      LDFLAGS=$sharedlink_ldflags_save
2859   fi
2860
2861   if test "$HAVE_GCC_VISIBILITY_FEATURE" = "TRUE"; then
2862      AC_MSG_CHECKING([if gcc has a visibility bug with class-level attributes (GCC bug 26905)])
2863      cat >visibility.cxx <<_ACEOF
2864#pragma GCC visibility push(hidden)
2865struct __attribute__ ((visibility ("default"))) TestStruct {
2866  static void Init();
2867};
2868__attribute__ ((visibility ("default"))) void TestFunc() {
2869  TestStruct::Init();
2870}
2871_ACEOF
2872      if ! $CXX $CXXFLAGS $CPPFLAGS -fpic -S visibility.cxx 2>/dev/null > /dev/null; then
2873         gccvisbroken=yes
2874      else
2875         case "$build_cpu" in
2876            i?86|x86_64)
2877               if $EGREP -q '@PLT' visibility.s; then
2878                  gccvisbroken=no
2879               else
2880                  gccvisbroken=yes
2881               fi
2882               ;;
2883            *)
2884               gccvisbroken=no
2885               ;;
2886         esac
2887      fi
2888      rm -f visibility.s visibility.cxx
2889
2890      AC_MSG_RESULT([$gccvisbroken])
2891      if test "$gccvisbroken" = "yes"; then
2892         AC_MSG_WARN([Your gcc is not -fvisibility=hidden safe. Disabling visibility])
2893         echo "Your gcc is not -fvisibility=hidden safe. Disabling visibility" >> warn
2894         unset HAVE_GCC_VISIBILITY_FEATURE
2895      fi
2896   fi
2897
2898   AC_LANG_POP([C++])
2899fi
2900fi # endof TODO: update TR1 compliant STLs
2901
2902AC_SUBST(HAVE_GCC_VISIBILITY_FEATURE)
2903
2904dnl ===================================================================
2905dnl allocator
2906dnl ===================================================================
2907AC_MSG_CHECKING([which memory allocator to use])
2908if test "$with_alloc" = "system"; then
2909    AC_MSG_RESULT([system])
2910    ALLOC="SYS_ALLOC";
2911    AC_CHECK_FUNCS([malloc realloc calloc free])
2912fi
2913if test "$with_alloc" = "tcmalloc"; then
2914    AC_MSG_RESULT(tcmalloc)
2915    if ! echo $build_cpu | $GREP -E 'i[[3456]]86' 2>/dev/null >/dev/null; then
2916        AC_MSG_ERROR([tcmalloc only available/usable on ix86])
2917    fi
2918    AC_CHECK_LIB(tcmalloc, malloc, [],
2919        [AC_MSG_ERROR(tcmalloc not found or functional. Install the Google Profiling Tools)], [])
2920    ALLOC="TCMALLOC";
2921fi
2922if test "$with_alloc" = "jemalloc"; then
2923  if test "$_os" != "FreeBSD" -o "$_os" != "NetBSD"; then
2924    AC_MSG_RESULT(jemalloc)
2925    save_CFLAGS=$CFLAGS
2926    CFLAGS="$CFLAGS -pthread"
2927    AC_CHECK_LIB(jemalloc, malloc, [],
2928        [AC_MSG_ERROR(jemalloc not found or functional. Install the jemalloc allocator.)], [])
2929    ALLOC="JEMALLOC";
2930    CFLAGS=$save_CFLAGS
2931  else
2932    AC_MSG_RESULT([system])
2933    ALLOC="SYS_ALLOC";
2934    AC_CHECK_FUNCS([malloc realloc calloc free])
2935  fi
2936fi
2937if test "$with_alloc" = "internal" -o -z "$with_alloc"; then
2938   AC_MSG_RESULT([internal])
2939fi
2940AC_SUBST(ALLOC)
2941
2942dnl ===================================================================
2943dnl Custom build version
2944dnl ===================================================================
2945
2946AC_MSG_CHECKING([whether to add custom build version])
2947if test "z$with_build_version" != "z"; then
2948   BUILD_VER_STRING=$with_build_version
2949   AC_MSG_RESULT([yes, $BUILD_VER_STRING])
2950else
2951   BUILD_VER_STRING=
2952   AC_MSG_RESULT([no])
2953fi
2954AC_SUBST(BUILD_VER_STRING)
2955
2956dnl ===================================================================
2957dnl Java support enable
2958dnl ===================================================================
2959AC_MSG_CHECKING([whether to build with Java support])
2960if test "$WITH_JAVA" != "no"; then
2961   AC_MSG_RESULT([yes])
2962   SOLAR_JAVA="TRUE"
2963else
2964   AC_MSG_RESULT([no])
2965   SOLAR_JAVA=""
2966
2967   AC_MSG_WARN([building without java will mean some features will not be available])
2968   echo "building without java will mean some features will not be available" >>warn
2969fi
2970AC_SUBST(SOLAR_JAVA)
2971
2972if test "$_os" = "Linux" && test "$build_cpu" = "powerpc"; then
2973   # IBMs JDK needs this...
2974   JITC_PROCESSOR_TYPE=6
2975   export JITC_PROCESSOR_TYPE
2976fi
2977
2978if test "$_os" = "WINNT"; then
2979   if test -z "$with_jdk_home"; then
2980      _jdk_home=`$OOWINTOOL --jdk-home`
2981       if test -d "$_jdk_home"; then
2982          with_jdk_home="$_jdk_home"
2983       fi
2984   else
2985      with_jdk_home=`cygpath -u "$with_jdk_home"`
2986   fi
2987fi
2988
2989dnl ===================================================================
2990dnl Checks for java
2991dnl ===================================================================
2992if test "$SOLAR_JAVA" != ""; then
2993   JAVA_HOME=; export JAVA_HOME
2994   if test -z "$with_jdk_home"; then
2995      AC_PATH_PROG(JAVAINTERPRETER, $WITH_JAVA)
2996   else
2997      _java_path="$with_jdk_home/bin/$WITH_JAVA"
2998      dnl Check if there is a java interpreter at all.
2999      if test -x "$_java_path"; then
3000         JAVAINTERPRETER=$_java_path
3001      else
3002         AC_MSG_ERROR([$_java_path not found, please use --with-jdk-home])
3003      fi
3004   fi
3005   if test "$_os" = "WINNT"; then
3006      if test x`echo "$JAVAINTERPRETER" | $GREP -i '\.exe$'` = x; then
3007          JAVAINTERPRETER="${JAVAINTERPRETER}.exe"
3008      fi
3009      JAVAINTERPRETER=`cygpath -d "$JAVAINTERPRETER"`
3010      JAVAINTERPRETER=`cygpath -u "$JAVAINTERPRETER"`
3011   elif test "$_os" = "Darwin"; then
3012         JAVAIFLAGS=""
3013   fi
3014fi
3015
3016dnl ===================================================================
3017dnl Checks for JDK.
3018dnl ===================================================================
3019if test "$SOLAR_JAVA" != ""; then
3020   _gij_longver=0
3021   AC_MSG_CHECKING([the installed JDK])
3022   if test -n "$JAVAINTERPRETER"; then
3023      dnl java -version sends output to stderr!
3024      if test `$JAVAINTERPRETER -version 2>&1 | $GREP -c "Kaffe"` -gt 0; then
3025         AC_MSG_ERROR([No valid check available. Please check the block for your desired java in configure.in])
3026#        dnl Kaffe specific tests
3027#        KAFFE_VER=`$JAVAINTERPRETER -version 2>&1 | $EGREP "  Version:" | $SED -r "s/.*  Version: ([[0-9\.]]*).*/\1/"`
3028#        if test -z "$KAFFE_VER"; then
3029#          AC_MSG_ERROR([looks like Kaffe but version detection failed])
3030#        fi
3031#        _kaffe_ver=`echo "$KAFFE_VER" | $AWK -F. '{ print (($1 * 100) + $2) * 100 + $3;}'`
3032#        if test "$_kaffe_ver" -lt 10100; then
3033#           AC_MSG_ERROR([Kaffe is too old ($KAFFE_VER - $_kaffe_ver), you need at least 1.1.0])
3034#        fi
3035#        JDK=kaffe
3036#
3037#        dnl TODO: define some project exclusion variables
3038#
3039#        AC_MSG_RESULT([checked (Kaffe $KAFFE_VER)])
3040#        AC_MSG_WARN([EXPERIMENTAL: Kaffe is not a full JDK replacement - some projects will fail to compile])
3041#        echo "EXPERIMENTAL: Kaffe is not a full JDK replacement - some projects will fail to compile" >>warn
3042#        JAVA_HOME=`echo $JAVAINTERPRETER | $SED -n "s,//*bin//*java,,p"`
3043      elif test `$JAVAINTERPRETER --version 2>&1 | $GREP -c "GNU libgcj"` -gt 0; then
3044        JDK=gcj
3045        AC_MSG_RESULT([checked (gcj)])
3046        _gij_version=`$JAVAINTERPRETER --version | $GREP GNU | $SED -e 's@^[[^0-9]]*@@' -e 's@ .*@@' -e 's@,.*@@'`;
3047        _gij_longver=`echo $_gij_version | $AWK -F. '{ print \$1*10000+\$2*100+\$3 }'`
3048
3049      elif test `$JAVAINTERPRETER -version 2>&1 | awk '{ print }' | $GREP -c "BEA"` -gt 0; then
3050         AC_MSG_ERROR([No valid check available. Please check the block for your desired java in configure.in])
3051#        JDK=bea
3052#
3053#        dnl BEA JDK specific tests
3054#        _jdk=`$JAVAINTERPRETER -version 2>&1 | $AWK -F'"' '{ print \$2 }' | $SED s/[[-A-Za-z]]*//`
3055#        _jdk_ver=`echo "$_jdk" | $AWK -F. '{ print (($1 * 100) + $2) * 100 + $3;}'`
3056#
3057#        if test "$_jdk_ver" -lt 10500; then
3058#          AC_MSG_ERROR([JDK is too old, you need at least BEA JDK 1.5.0])
3059#        fi
3060#
3061#        AC_MSG_RESULT([checked (BEA JDK $_jdk)])
3062#
3063#        if test "$with_jdk_home" = ""; then
3064#             AC_MSG_ERROR([In order to successfully build Apache OpenOffice using the BEA JDK,
3065#you must use the "--with-jdk-home" configure option explicitly])
3066#        fi
3067#
3068#        AC_MSG_WARN([A bug in certain BEA JREs can prevent you from successfully compiling some modules])
3069#        echo "A bug in certain BEA JREs can prevent you from successfully compiling some modules" >>warn
3070#
3071#        JAVA_HOME=$with_jdk_home
3072#
3073      elif test `$JAVAINTERPRETER -version 2>&1 | awk '{ print }' | $GREP -c "IBM"` -gt 0; then
3074        JDK=ibm
3075
3076        dnl IBM JDK specific tests
3077        _jdk=`$JAVAINTERPRETER -version 2>&1 | $AWK -F'"' '{ print \$2 }' | $SED s/[[-A-Za-z]]*//`
3078        _jdk_ver=`echo "$_jdk" | $AWK -F. '{ print (($1 * 100) + $2) * 100 + $3;}'`
3079
3080        if test "$_jdk_ver" -lt 10500; then
3081             AC_MSG_ERROR([IBM JDK is too old, you need at least 1.5])
3082        fi
3083
3084        AC_MSG_RESULT([checked (IBM JDK $_jdk)])
3085
3086        if test "$with_jdk_home" = ""; then
3087             AC_MSG_ERROR([In order to successfully build Apache OpenOffice using the IBM JDK,
3088you must use the "--with-jdk-home" configure option explicitly])
3089        fi
3090
3091        JAVA_HOME=$with_jdk_home
3092
3093      else
3094        JDK=sun
3095
3096        dnl SUN JDK specific tests
3097        _jdk=`$JAVAINTERPRETER -version 2>&1 | $AWK -F'"' '{ print \$2 }' | $SED s/[[-A-Za-z]]*//`
3098        _jdk_ver=`echo "$_jdk" | $AWK -F. '{ print (($1 * 100) + $2) * 100 + $3;}'`
3099
3100        if test "$_jdk_ver" -lt 10500; then
3101             AC_MSG_ERROR([JDK is too old, you need at least 1.5])
3102        fi
3103        AC_MSG_RESULT([checked (JDK $_jdk)])
3104        JAVA_HOME=`echo $JAVAINTERPRETER | $SED -n "s,//*bin//*java,,p"`
3105        if test "$_os" = "WINNT"; then
3106          JAVA_HOME=`echo $JAVA_HOME | $SED "s,\.[[eE]][[xX]][[eE]]$,,"`
3107        fi
3108        if test "$_os" = "OS2"; then
3109          JAVA_HOME=`echo $JAVA_HOME | $SED "s,\.[[eE]][[xX]][[eE]]$,,"`
3110        fi
3111      fi
3112   else
3113      AC_MSG_ERROR([JAVA not found. You need at least jdk-1.5, or gcj-4])
3114   fi
3115else
3116   dnl Java disabled
3117   JAVA_HOME=NO_JAVA_HOME ; export JAVA_HOME
3118fi
3119
3120dnl ===================================================================
3121dnl Checks for javac
3122dnl ===================================================================
3123if test "$SOLAR_JAVA" != ""; then
3124    if test "$JDK" = "gcj"; then
3125        javacompiler=`echo $WITH_JAVA | $SED -e "s/gij/gcj/g" | $SED -e "s/java/javac/g"`
3126    else
3127        javacompiler="javac"
3128    fi
3129    if test "$_os" = "OS2"; then
3130      if test x`echo "$javacompiler" | $GREP -i '\.exe$'` = x; then
3131          javacompiler="${javacompiler}.exe"
3132      fi
3133    fi
3134    if test -z "$with_jdk_home"; then
3135        AC_PATH_PROG(JAVACOMPILER, $javacompiler)
3136    else
3137        _javac_path="$with_jdk_home/bin/$javacompiler"
3138        dnl Check if there is a java compiler at all.
3139        if test -x "$_javac_path"; then
3140            JAVACOMPILER=$_javac_path
3141        fi
3142    fi
3143    if test -z "$JAVACOMPILER"; then
3144      AC_MSG_ERROR([$javacompiler not found, please use --with-jdk-home])
3145    fi
3146    if test "$_os" = "WINNT"; then
3147       if test x`echo "$JAVACOMPILER" | $GREP -i '\.exe$'` = x; then
3148          JAVACOMPILER="${JAVACOMPILER}.exe"
3149       fi
3150       JAVACOMPILER=`cygpath -d "$JAVACOMPILER"`
3151       JAVACOMPILER=`cygpath -u "$JAVACOMPILER"`
3152    fi
3153    if test "$_os" = "OS2"; then
3154       if test x`echo "$JAVACOMPILER" | $GREP -i '\.exe$'` = x; then
3155          JAVACOMPILER="${JAVACOMPILER}.exe"
3156       fi
3157    fi
3158
3159    if test `$JAVACOMPILER -version 2>&1 | $GREP -c "Eclipse Java Compiler"` -gt 0; then
3160        AC_MSG_CHECKING([re-checking JDK])
3161        JDK=gcj
3162        AC_MSG_RESULT([checked (ecj)])
3163        #TODO: what's to do here? some switch to do 1.5 compiling?
3164        JAVAFLAGS="-source 1.5 -target 1.5"
3165        _gij_longver="40200"
3166    fi
3167fi
3168
3169JAVACISGCJ=""
3170dnl ===================================================================
3171dnl Checks that javac is gcj
3172dnl ===================================================================
3173if test "$SOLAR_JAVA" != ""; then
3174    if test `$JAVACOMPILER --version 2>&1 | $GREP -c "GCC"` -gt 0; then
3175        JAVACISGCJ="yes"
3176    fi
3177fi
3178AC_SUBST(JAVACISGCJ)
3179
3180dnl ===================================================================
3181dnl Checks for javadoc
3182dnl ===================================================================
3183if test "$SOLAR_JAVA" != ""; then
3184    if test -z "$with_jdk_home"; then
3185        AC_PATH_PROG(JAVADOC, javadoc)
3186    else
3187        _javadoc_path="$with_jdk_home/bin/javadoc"
3188        if test "$_os" = "OS2"; then
3189          if test x`echo "$_javadoc_path" | $GREP -i '\.exe$'` = x; then
3190              _javadoc_path="${_javadoc_path}.exe"
3191          fi
3192        fi
3193        dnl Check if there is a javadoc at all.
3194        if test -x "$_javadoc_path"; then
3195            JAVADOC=$_javadoc_path
3196        else
3197            AC_PATH_PROG(JAVADOC, javadoc)
3198        fi
3199    fi
3200    if test -z "$JAVADOC"; then
3201      AC_MSG_ERROR([$_javadoc_path not found, please use --with-jdk-home])
3202    fi
3203    if test "$_os" = "WINNT"; then
3204        if test x`echo "$JAVADOC" | $GREP -i '\.exe$'` = x; then
3205            JAVADOC="${JAVADOC}.exe"
3206        fi
3207        JAVADOC=`cygpath -d "$JAVADOC"`
3208        JAVADOC=`cygpath -u "$JAVADOC"`
3209    fi
3210    if test "$_os" = "OS2"; then
3211        if test x`echo "$JAVADOC" | $GREP -i '\.exe$'` = x; then
3212            JAVADOC="${JAVADOC}.exe"
3213        fi
3214    fi
3215fi
3216
3217if test "$SOLAR_JAVA" != ""; then
3218    dnl first check if we have been asked to autodetect JAVA_HOME with a recent gij
3219    if test "$JDK" = "gcj" -a -z "$JAVA_HOME"; then
3220      if test "x$with_jdk_home" = "x" -a "$_gij_longver" -ge "40200"; then
3221        cat > findhome.java <<_ACEOF
3222[import java.io.File;
3223
3224class findhome
3225{
3226    public static void main(String args[])
3227    {
3228        String jrelocation = System.getProperty("java.home");
3229        File jre = new File(jrelocation);
3230        System.out.println(jre.getParent());
3231    }
3232}]
3233_ACEOF
3234        AC_MSG_CHECKING([if javac works])
3235        javac_cmd="$JAVACOMPILER findhome.java 1>&2"
3236        AC_TRY_EVAL(javac_cmd)
3237        if test $? = 0 && test -f ./findhome.class ; then
3238          AC_MSG_RESULT([javac works])
3239        else
3240          echo "configure: javac test failed" >&5
3241          cat findhome.java >&5
3242          AC_MSG_ERROR([javac does not work - java projects will not build!])
3243        fi
3244
3245        AC_MSG_CHECKING([if gij knows its java.home])
3246        JAVA_HOME=`$JAVAINTERPRETER findhome`
3247        if test $? = 0 && test "$JAVA_HOME" != "" ; then
3248          AC_MSG_RESULT([$JAVA_HOME])
3249        else
3250          echo "configure: java test failed" >&5
3251          cat findhome.java >&5
3252          AC_MSG_ERROR([gij does not know its java.home - use --with-jdk-home])
3253        fi
3254      else
3255        JAVA_HOME=`echo $JAVAINTERPRETER | $SED -n "s,//*bin//*$WITH_JAVA,,p"`
3256      fi
3257    fi
3258
3259    dnl second sanity check JAVA_HOME if possible
3260    if test "$JDK" != "gcj" -o "$_gij_longver" -ge "40200"; then
3261      # check if JAVA_HOME was (maybe incorrectly?) set automatically to /usr
3262      if test "$JAVA_HOME" = "/usr" -a "x$with_jdk_home" = "x"; then
3263         javac_link_f=`readlink -f "$JAVACOMPILER" 2>/dev/null`
3264         if test $? == 0 && test "$JAVACOMPILER" != "$javac_link_f"; then
3265          # try to recover first by looking whether we have a alternatives
3266          # system as in Debian or newer SuSEs where following /usr/bin/javac
3267          # over /etc/alternatives/javac leads to the right bindir where we
3268          # just need to strip a bit away to get a valid JAVA_HOME
3269          # Solaris 11 is even worse, because target is relative, so use -f
3270            JAVA_HOME="$javac_link_f"
3271         elif readlink $JAVACOMPILER >/dev/null 2>/dev/null; then
3272          # Darwin readlink(1) is so primitive it doesn't even support -f
3273          # maybe only one level of symlink (e.g. on Mac)
3274            JAVA_HOME=`readlink $JAVACOMPILER`
3275         else
3276          # else warn
3277          AC_MSG_WARN([JAVA_HOME is set to /usr - this is very likely to be incorrect])
3278          AC_MSG_WARN([if this is the case, please inform the correct JAVA_HOME with --with-jdk-home])
3279          echo "JAVA_HOME is set to /usr - this is very likely to be incorrect" >> warn
3280          echo "if this is the case, please inform the correct JAVA_HOME with --with-jdk-home" >> warn
3281          fi
3282         dnl now that we have the path to the real javac, make a JAVA_HOME out of it..
3283         if test "$JAVA_HOME" != "/usr"; then
3284            if test "$_os" = "Darwin"; then
3285               dnl Leopard returns a non-suitable path with readlink - points to "Current" only
3286               JAVA_HOME=$(echo $JAVA_HOME | $SED -e s,/Current/Commands/javac$,/CurrentJDK/Home,)
3287               dnl Tiger already returns a JDK path..
3288               JAVA_HOME=$(echo $JAVA_HOME | $SED -e s,/CurrentJDK/Commands/javac$,/CurrentJDK/Home,)
3289            else
3290               JAVA_HOME=$(echo $JAVA_HOME | $SED -e s,/bin/javac$,,)
3291            fi
3292         fi
3293      fi
3294      # now check if $JAVA_HOME is really valid
3295      if test "$_os" = "Darwin"; then
3296         if test ! -f "$JAVA_HOME/lib/jvm.cfg" -a "x$with_jdk_home" = "x"; then
3297            JAVA_HOME_OK="NO"
3298         fi
3299      elif test ! -d "$JAVA_HOME/jre" -a "x$with_jdk_home" = "x"; then
3300         JAVA_HOME_OK="NO"
3301      fi
3302      if test "$JAVA_HOME_OK" = "NO"; then
3303         AC_MSG_WARN([JAVA_HOME was not explicitly informed with --with-jdk-home. the configure script])
3304         AC_MSG_WARN([attempted to find JAVA_HOME automatically, but apparently it failed])
3305         AC_MSG_WARN([in case JAVA_HOME is incorrectly set, some projects with not be built correctly])
3306         echo "JAVA_HOME was not explicitly informed with --with-jdk-home. the configure script" >> warn
3307         echo "attempted to find JAVA_HOME automatically, but apparently it failed" >> warn
3308         echo "in case JAVA_HOME is incorrectly set, some projects with not be built correctly" >> warn
3309#         if test "$JDK" = "gcj"; then
3310#             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
3311#         fi
3312      fi
3313    fi
3314fi
3315
3316AWTLIB=
3317if test "$SOLAR_JAVA" != ""; then
3318   AC_MSG_CHECKING([for jawt lib name])
3319   if test "$JDK" = "gcj"; then
3320      save_CFLAGS=$CFLAGS
3321      save_LDFLAGS=$LDFLAGS
3322      CFLAGS="$CFLAGS -I$JAVA_HOME/include"
3323      LDFLAGS="$LDFLAGS -L$JAVA_HOME/lib -lgcj"
3324      exec 6>/dev/null # no output
3325      AC_CHECK_HEADER(jni.h, [],
3326                    [AC_MSG_ERROR([jni.h could not be found. Mismatch between gcc and libgcj or libgcj-devel missing?])], [])
3327      AC_CHECK_LIB(gcjawt, JAWT_GetAWT, [ AWTLIB="-lgcjawt -lgcj"] )
3328      exec 6>&1 # output on again
3329      CFLAGS=$save_CFLAGS
3330      LDFLAGS=$save_LDFLAGS
3331   fi
3332   # IBM SDK 1.5.0-sr5 includes libjawt.so with unresolved symbols.
3333   # A workaround is to link also against libpmawt.so
3334   if test "$JDK" = "ibm" ; then
3335      save_CFLAGS=$CFLAGS
3336      save_LDFLAGS=$LDFLAGS
3337      save_LD_LIBRARY_PATH=$LD_LIBRARY_PATH
3338      CFLAGS="$CFLAGS -I$JAVA_HOME/include"
3339      LDFLAGS="$LDFLAGS -L$JAVA_HOME/jre/bin"
3340      LD_LIBRARY_PATH=$JAVA_HOME/jre/bin:$JAVA_HOME/jre/bin/classic:$JAVA_HOME/jre/bin/xawt:$LD_LIBRARY_PATH
3341      export LD_LIBRARY_PATH
3342      exec 6>/dev/null # no output
3343      AC_CHECK_HEADER(jni.h, [],
3344                    [AC_MSG_ERROR([jni.h could not be found.])], [])
3345      AC_CHECK_LIB(jawt, JAWT_GetAWT, [ AWTLIB="-ljawt"] )
3346      if test -z "$AWTLIB"; then
3347         LDFLAGS="$LDFLAGS -L$JAVA_HOME/jre/bin/xawt -ljawt"
3348         AC_CHECK_LIB(mawt, JAWT_GetAWT, [ AWTLIB="-L$JAVA_HOME/jre/bin/xawt -ljawt -lmawt"])
3349      fi
3350      exec 6>&1 # output on again
3351      CFLAGS=$save_CFLAGS
3352      LDFLAGS=$save_LDFLAGS
3353      LD_LIBRARY_PATH=$save_LD_LIBRARY_PATH
3354   fi
3355   if test -z "$AWTLIB"; then
3356      AWTLIB=-ljawt
3357   fi
3358   AC_MSG_RESULT([$AWTLIB])
3359   AC_SUBST(AWTLIB)
3360fi
3361
3362dnl ===================================================================
3363dnl Check for optional gcj for AOT
3364dnl ===================================================================
3365if test "$SOLAR_JAVA" != ""; then
3366  AC_MSG_CHECKING([whether to enable gcj aot compilation])
3367  if test -n "$enable_gcjaot" && test "$enable_gcjaot" != "no"; then
3368     AC_MSG_RESULT([yes])
3369     if test `echo $WITH_JAVA | $GREP -c "gij"` -eq 0; then
3370        gcjaot="gcj"
3371     else
3372        gcjaot=`echo $WITH_JAVA | $SED -e "s/gij/gcj/g"`
3373     fi
3374     AC_MSG_RESULT([$gcjaot])
3375     if test -n "$with_jdk_home"; then
3376        _javac_path="$with_jdk_home/bin/$gcjaot"
3377        dnl Check if there is a gcj at all.
3378        if test -x "$_javac_path"; then
3379           JAVAAOTCOMPILER=$_javac_path
3380        fi
3381     fi
3382     if test -z "$JAVAAOTCOMPILER"; then
3383        AC_PATH_PROG(JAVAAOTCOMPILER, $gcjaot)
3384     fi
3385     if test -z "$JAVAAOTCOMPILER"; then
3386        AC_MSG_WARN([$gcjaot not found, please use --with-jdk-home])
3387     fi
3388  else
3389     AC_MSG_RESULT([no])
3390  fi
3391fi
3392
3393AC_SUBST(JAVA_HOME)
3394AC_SUBST(JDK)
3395AC_SUBST(JAVAFLAGS)
3396AC_SUBST(JAVAINTERPRETER)
3397AC_SUBST(JAVAIFLAGS)
3398AC_SUBST(JAVACOMPILER)
3399AC_SUBST(JAVAAOTCOMPILER)
3400AC_SUBST(JAVADOC)
3401
3402dnl ===================================================================
3403dnl Checks for specific files.
3404dnl ===================================================================
3405
3406dnl ===================================================================
3407dnl Checks for programs.
3408dnl ===================================================================
3409
3410AC_MSG_CHECKING([whether to enable EPM for packing])
3411if test "$enable_epm" = "yes"; then
3412   AC_MSG_RESULT([yes])
3413   dnl ===================================================================
3414   dnl Check for epm - not needed for Windows
3415   dnl ===================================================================
3416   if test "$_os" != "WINNT"; then
3417      if test -n "$with_epm"; then
3418	      EPM=$with_epm
3419      else
3420         AC_PATH_PROG(EPM, epm, no)
3421      fi
3422
3423      # Override system epm and --with-epm if --with-epm-url is used.
3424      if test -n "$with_epm_url" ; then
3425         # At this moment we can not verify the URL or the content that we want to download.
3426       	 EPM_URL=$with_epm_url
3427       	 AC_MSG_RESULT([epm will be downloaded and compiled in bootstrap])
3428       	 EPM=
3429         echo "EPM will be built."
3430         BUILD_EPM=YES
3431         BUILD_TYPE="$BUILD_TYPE EPM"
3432      else
3433         if test "$EPM" = "no" ; then
3434	         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.])
3435	      else
3436	         # Gentoo has some epm which is something different...
3437            AC_MSG_CHECKING([whether the found EPM is the right EPM])
3438            if $EPM --version | $GREP "ESP Package Manager" >/dev/null 2>/dev/null; then
3439               AC_MSG_RESULT([yes])
3440            else
3441	            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.])
3442            fi
3443            AC_MSG_CHECKING([EPM version])
3444            EPM_VERSION=`$EPM --version | $GREP 'ESP Package Manager' | cut -d' ' -f5 | $SED -e s/v//`
3445	         if test "`echo $EPM_VERSION | cut -d'.' -f1`" -ge "5"; then
3446               AC_MSG_RESULT([OK, >= 5.0])
3447               BUILD_EPM=NO
3448	         else
3449               AC_MSG_ERROR([too old. EPM >= 5.0.0 is required.])
3450	         fi
3451      	fi
3452      fi
3453   fi
3454
3455   # test which package format to use
3456   AC_MSG_CHECKING([which package format to use])
3457
3458   # defaults
3459   case "$_os" in
3460	OS2)
3461		PKGFORMAT=native
3462		;;
3463	Darwin)
3464		PKGFORMAT=dmg
3465		;;
3466	SunOS)
3467		PKGFORMAT=pkg
3468		;;
3469	Linux)
3470      # if building on Debian, default should be deb...
3471      if test -e /etc/debian_version; then
3472         PKGFORMAT=deb
3473      else
3474         PKGFORMAT=rpm
3475      fi
3476		;;
3477	AIX)
3478		PKGFORMAT=aix
3479		;;
3480	*BSD)
3481		PKGFORMAT=bsd
3482		;;
3483	OSF1)
3484		PKGFORMAT=setld
3485		;;
3486    WINNT)
3487        PKGFORMAT=msi
3488        ;;
3489	# we never should get here since we check the architecture/os at the beginning,
3490	# but go sure...
3491	*)
3492		AC_MSG_ERROR([unknown system])
3493   esac
3494   if test -n "$with_package_format"; then
3495	for i in $with_package_format; do
3496		case "$i" in
3497			aix | bsd | deb | inst | tardist | osx | pkg | rpm | setld | native | portable | archive | dmg | installed | msi)
3498			;;
3499		*)
3500			AC_MSG_ERROR([unsupported format $i. Supported by EPM are:
3501aix - AIX software distribution
3502bsd - FreeBSD, NetBSD, or OpenBSD software distribution
3503depot or swinstall - HP-UX software distribution
3504deb - Debian software distribution
3505inst or tardist - IRIX software distribution
3506osx - MacOS X software distribution
3507pkg - Solaris software distribution
3508rpm - RedHat software distribution
3509setld - Tru64 (setld) software distribution
3510native - "Native" software distribution for the platform
3511portable - Portable software distribution
3512AOO additionally supports:
3513archive - .tar.gz or .zip
3514dmg - Mac OS X .dmg
3515installed - installation tree
3516msi - Windows .msi
3517			])
3518			;;
3519		esac
3520	done
3521	PKGFORMAT="$with_package_format"
3522   fi
3523   AC_MSG_RESULT([$PKGFORMAT])
3524   if echo "$PKGFORMAT" | $EGREP rpm 2>&1 >/dev/null; then
3525      AC_MSG_CHECKING([for rpm])
3526      for a in "$RPM" rpmbuild rpm; do
3527         $a --usage >/dev/null 2> /dev/null
3528         if test $? -eq 0; then
3529            RPM=$a
3530            break
3531         else
3532            $a --version >/dev/null 2> /dev/null
3533            if test $? -eq 0; then
3534               RPM=$a
3535               break
3536            fi
3537         fi
3538       done
3539       if test -z "$RPM" ; then
3540          AC_MSG_ERROR([not found])
3541       elif "$RPM" --usage 2>&1 | $EGREP -- -bb >/dev/null; then
3542          RPM_PATH=`which $RPM`
3543          AC_MSG_RESULT([$RPM_PATH])
3544       else
3545          AC_MSG_ERROR([cannot build packages. Try installing rpmbuild.])
3546       fi
3547   fi
3548   if echo "$PKGFORMAT" | $EGREP deb 2>&1 >/dev/null; then
3549      AC_PATH_PROG(DPKG, dpkg, no)
3550      if test "$DPKG" = "no"; then
3551         AC_MSG_ERROR([dpkg needed for deb creation. Install dpkg.])
3552      fi
3553      AC_PATH_PROG(FAKEROOT, fakeroot, no)
3554      if test "$FAKEROOT" = "no"; then
3555         AC_MSG_ERROR([fakeroot needed for deb creation. Install fakeroot.])
3556      fi
3557   fi
3558   if echo "$PKGFORMAT" | $EGREP osx 2>&1 >/dev/null; then
3559      if test "$_os" = "Darwin"; then
3560         if test "$_osxpkgbuild" = "no"; then
3561            AC_MSG_CHECKING([for PackageMaker availability])
3562            if ! test -x /Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker; then
3563               AC_MSG_ERROR([not installed. Please install Apples Dev Tools])
3564            else
3565               AC_MSG_RESULT([ok])
3566            fi
3567         fi
3568      else
3569         AC_MSG_ERROR([PackageMaker needed to build OSX packages and you are not on OSX...])
3570       fi
3571   fi
3572   if echo "$PKGFORMAT" | $EGREP pkg 2>&1 >/dev/null; then
3573      AC_PATH_PROG(PKGMK, pkgmk, no)
3574      if test "$PKGMK" = "no"; then
3575         AC_MSG_ERROR([pkgmk needed for Solaris pkg creation. Install it.])
3576      fi
3577   fi
3578   AC_SUBST(RPM)
3579   AC_SUBST(DPKG)
3580   AC_SUBST(FAKEROOT)
3581   AC_SUBST(PKGMK)
3582else
3583   AC_MSG_RESULT([no])
3584   BUILD_EPM=NO
3585   EPM=NO
3586   PKGFORMAT=native
3587fi
3588AC_SUBST(BUILD_EPM)
3589AC_SUBST(EPM_URL)
3590AC_SUBST(EPM)
3591AC_SUBST(PKGFORMAT)
3592
3593dnl ===================================================================
3594dnl Check for gperf
3595dnl ===================================================================
3596AC_PATH_PROG(GPERF, gperf)
3597if test -z "$with_gperf"; then
3598    AC_PATH_PROG(GPERF, gperf)
3599    if test -z "$GPERF"; then
3600       AC_MSG_ERROR([gperf not found but needed. Install it and/or specify --with-gperf=/path/to/it.])
3601    fi
3602else
3603  if test -x "$with_gperf"; then
3604    GPERF=$with_gperf
3605  else
3606    AC_MSG_ERROR([--with-gperf did not point to an executable])
3607  fi
3608fi
3609AC_MSG_CHECKING([gperf version])
3610if test "`$GPERF --version | $EGREP ^GNU\ gperf | $AWK '{ print $3 }' | cut -d. -f1`" -ge "3"; then
3611	AC_MSG_RESULT([OK])
3612   GPERF=$GPERF
3613else
3614	AC_MSG_ERROR([too old, you need at least 3.0.0])
3615fi
3616AC_SUBST(GPERF)
3617
3618dnl ===================================================================
3619dnl Check for building stax
3620dnl ===================================================================
3621AC_MSG_CHECKING([whether to build the stax])
3622if test -f "./stax/download/stax-1.2.0.jar"; then
3623   BUILD_STAX=NO
3624   AC_MSG_RESULT([no, will use the prebuilt stax/download/stax-1.2.0.jar])
3625else
3626   BUILD_STAX=YES
3627   AC_MSG_RESULT([yes])
3628fi
3629AC_SUBST(BUILD_STAX)
3630
3631dnl ===================================================================
3632dnl Check for building ODK
3633dnl ===================================================================
3634AC_MSG_CHECKING([whether to build the ODK])
3635if test "z$enable_odk" = "z" -o "$enable_odk" != "no"; then
3636   AC_MSG_RESULT([yes])
3637   if test "$WITH_JAVA" != "no"; then
3638   AC_MSG_CHECKING([for external/unowinreg/unowinreg.dll])
3639   if ! test -f "./external/unowinreg/unowinreg.dll"; then
3640      HAVE_UNOWINREG_DLL=no
3641   else
3642      HAVE_UNOWINREG_DLL=yes
3643   fi
3644   if test "$HAVE_UNOWINREG_DLL" = "yes"; then
3645      AC_MSG_RESULT([found])
3646      BUILD_UNOWINREG=NO
3647   else
3648      if test "$_os" = "WINNT"; then
3649         AC_MSG_RESULT([not found, will be built])
3650      else
3651         AC_MSG_WARN([not found, will be cross-built using mingw32])
3652      fi
3653      BUILD_UNOWINREG=YES
3654   fi
3655   if test "$_os" != "WINNT" && test "$BUILD_UNOWINREG" = "YES"; then
3656      if test -z "$WITH_MINGWIN" || test "$WITH_MINGWIN" = "0"; then
3657         AC_MSG_ERROR([for rebuilding unowinreg.dll you need the mingw32 C++ compiler.
3658         Specify mingw32 g++ executable name with --with-mingwin.
3659         Or use prebuilt one from https://tools.openoffice.org/unowinreg_prebuild/680/ and
3660         put it into external/unowinreg using your browser or a command equivalent to:
3661         wget -O external/unowinreg/unowinreg.dll https://www.openoffice.org/tools/unowinreg_prebuild/680/unowinreg.dll])
3662      fi
3663      if echo "$WITH_MINGWIN" | $EGREP -q "/"; then
3664         if ! test -x "$WITH_MINGWIN"; then MINGWCXX=false; else MINGWCXX=`basename $WITH_MINGWIN`; fi
3665      else
3666         AC_CHECK_TOOL(MINGWCXX, $WITH_MINGWIN, false)
3667      fi
3668      if test "$MINGWCXX" = "false"; then
3669         AC_MSG_ERROR(specified MinGW32 C++ cross-compiler not found. Install it or correct name.)
3670      fi
3671      AC_MSG_CHECKING(whether we are using the MinGW32 cross C++ compiler)
3672      if ! echo "`$MINGWCXX -dumpmachine`" | $GREP -q mingw32; then
3673         AC_MSG_ERROR(no)
3674      else
3675         AC_MSG_RESULT(yes)
3676      fi
3677      if echo "$WITH_MINGWIN" | $EGREP -q "/"; then
3678         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
3679      else
3680         AC_CHECK_TOOL(MINGWSTRIP, `echo $WITH_MINGWIN | $SED -e s/g++/strip/ | $SED -e s/c++/strip/`, false)
3681      fi
3682      if test "$MINGWSTRIP" = "false"; then
3683         AC_MSG_ERROR(MinGW32 binutils needed. Install them.)
3684      fi
3685      AC_LANG_PUSH([C++])
3686      save_CXX=$CXX
3687      save_CXXCPP=$CXXCPP
3688      CXX=$MINGWCXX
3689      CXXCPP="$MINGWCXX -E"
3690      save_CXXFLAGS=$CXXFLAGS
3691      save_CPPFLAGS=$CPPFLAGS
3692      CXXFLAGS="$CXXFLAGS -I$JAVA_HOME/include"
3693      CPPFLAGS="$CPPFLAGS -I$JAVA_HOME/include"
3694      # LIBS contains -lcrypt etc due to the AC_CHECK_LIBS which obviously
3695      # do not make sense here (and 'd make the check fail)
3696      save_LIBS=$LIBS
3697      LIBS=""
3698      AC_HAVE_LIBRARY(kernel32)
3699      AC_HAVE_LIBRARY(advapi32)
3700      AC_CHECK_HEADER(windows.h, [], [AC_MSG_ERROR([windows.h missing])])
3701      CXXFLAGS=$save_CXXFLAGS
3702      CPPFLAGS=$save_CPPFLAGS
3703      CXX=$save_CXX
3704      CXXCPP=$save_CXXCPP
3705      LIBS=$save_LIBS
3706      AC_LANG_POP([C++])
3707      fi
3708   fi
3709   BUILD_TYPE="$BUILD_TYPE ODK"
3710else
3711   AC_MSG_RESULT([no])
3712   BUILD_UNOWINREG=NO
3713fi
3714AC_SUBST(BUILD_UNOWINREG)
3715AC_SUBST(MINGWCXX)
3716AC_SUBST(MINGWSTRIP)
3717
3718dnl ===================================================================
3719dnl Check for system stdlibs
3720dnl ===================================================================
3721AC_MSG_CHECKING([whether to provide libstdc++/libgcc_s in the installset])
3722if test -n "$with_system_stdlibs" -o -n "$with_system_libs" && \
3723   test "$with_system_stdlibs" != "no"; then
3724   AC_MSG_RESULT([no])
3725   SYSTEM_STDLIBS=YES
3726else
3727   AC_MSG_RESULT([yes])
3728   SYSTEM_STDLIBS=NO
3729fi
3730AC_SUBST(SYSTEM_STDLIBS)
3731
3732dnl ===================================================================
3733dnl Check for system zlib
3734dnl ===================================================================
3735if test "$_os" = "Darwin" && test "$with_system_zlib" != "no"; then
3736   with_system_zlib=yes
3737fi
3738AC_MSG_CHECKING([which zlib to use])
3739if test -n "$with_system_zlib" -o -n "$with_system_libs" && \
3740	test "$with_system_zlib" != "no"; then
3741    AC_MSG_RESULT([external])
3742    SYSTEM_ZLIB=YES
3743    AC_CHECK_HEADER(zlib.h, [],
3744        [AC_MSG_ERROR(zlib.h not found. install zlib)], [])
3745    AC_CHECK_LIB(z, deflate, [ ZLIB=-lz ],
3746        [AC_MSG_ERROR(zlib not found or functional)], [])
3747else
3748    AC_MSG_RESULT([internal])
3749    SYSTEM_ZLIB=NO
3750    BUILD_TYPE="$BUILD_TYPE ZLIB"
3751fi
3752AC_SUBST(SYSTEM_ZLIB)
3753
3754dnl ===================================================================
3755dnl Check for system jpeg
3756dnl ===================================================================
3757AC_MSG_CHECKING([which jpeg to use])
3758if test -n "$with_system_jpeg" -o -n "$with_system_libs" && \
3759	test "$with_system_jpeg" != "no"; then
3760    AC_MSG_RESULT([external])
3761    SYSTEM_JPEG=YES
3762    AC_CHECK_HEADER(jpeglib.h, [],
3763        [AC_MSG_ERROR(jpeg.h not found. install libjpeg)], [])
3764    AC_CHECK_LIB(jpeg, jpeg_resync_to_restart, [ JPEG3RDLIB=-ljpeg ],
3765	[AC_MSG_CHECKING(jpeg library not found or fuctional)], [])
3766else
3767    AC_MSG_RESULT([internal])
3768    SYSTEM_JPEG=NO
3769    BUILD_TYPE="$BUILD_TYPE JPEG"
3770fi
3771AC_SUBST(SYSTEM_JPEG)
3772
3773dnl ===================================================================
3774dnl Check for system expat
3775dnl ===================================================================
3776AC_MSG_CHECKING([which expat to use])
3777if test -n "$with_system_expat" -o -n "$with_system_libs" && \
3778	test "$with_system_expat" != "no"; then
3779    AC_MSG_RESULT([external])
3780    SYSTEM_EXPAT=YES
3781    AC_CHECK_HEADER(expat.h, [],
3782        [AC_MSG_ERROR(expat.h not found. install expat)], [])
3783    AC_CHECK_LIB(expat, XML_ParserCreate, [],
3784	[AC_MSG_RESULT(expat library not found or functional.)], [])
3785else
3786    AC_MSG_RESULT([internal])
3787    SYSTEM_EXPAT=NO
3788    BUILD_TYPE="$BUILD_TYPE EXPAT"
3789fi
3790AC_SUBST(SYSTEM_EXPAT)
3791
3792dnl ===================================================================
3793dnl Check whether freetype is available
3794dnl ===================================================================
3795if test  "$test_freetype" = "yes"; then
3796   AC_MSG_CHECKING([whether freetype is available])
3797	PKG_CHECK_MODULES( FREETYPE, freetype2 >= 2.0 )
3798fi
3799AC_SUBST(FREETYPE_CFLAGS)
3800AC_SUBST(FREETYPE_LIBS)
3801
3802dnl ===================================================================
3803dnl Check whether freetype2 supports emboldening
3804dnl ===================================================================
3805if test  "$test_freetype" = "yes"; then
3806    save_CPPFLAGS="$CPPFLAGS"
3807    save_LDFLAGS="$LDFLAGS"
3808    save_LIBS="$LIBS"
3809    CPPFLAGS="$CPPFLAGS $FREETYPE_CFLAGS"
3810    LDFLAGS="$LDFLAGS $FREETYPE_LIBS"
3811    AC_CHECK_LIB(freetype, FT_GlyphSlot_Embolden,
3812                 [USE_FT_EMBOLDEN="YES"], [USE_FT_EMBOLDEN="NO"], [])
3813    LDFLAGS="$save_LDFLAGS"
3814    CPPFLAGS="$save_CPPFLAGS"
3815    LIBS="$save_LIBS"
3816fi
3817AC_SUBST(USE_FT_EMBOLDEN)
3818
3819if test -n "$with_system_libxslt" -o -n "$with_system_libs" && \
3820   test "$with_system_libxslt" != "no"; then
3821    if test -z "$with_system_libxml" -a -z "$with_system_libs" || \
3822      test "$with_system_libxml" = "no"; then
3823      # somehow AC_MSG_WARN won't work...
3824       echo "to prevent incompatibilities between internal libxml2 and libxslt, the office will be build with system-libxml"
3825       echo "to prevent incompatibilities between internal libxml2 and libxslt, the office will be build with system-libxml" >> warn
3826       with_system_libxml=yes
3827    fi
3828fi
3829if test -n "$with_system_libxml" -o -n "$with_system_libs" && \
3830   test "$with_system_libxml" != "no"; then
3831    if test -z "$with_system_libxslt" -a -z "$with_system_libs" || \
3832      test "$with_system_libxslt" = "no"; then
3833      # somehow AC_MSG_WARN won't work...
3834       echo "to prevent incompatibilities between internal libxslt and libxml2, the office will be build with system-libxslt"
3835       echo "to prevent incompatibilities between internal libxslt and libxml2, the office will be build with system-libxslt" >> warn
3836       with_system_libxslt=yes
3837    fi
3838fi
3839
3840dnl ===================================================================
3841dnl Check for system libxslt
3842dnl ===================================================================
3843AC_MSG_CHECKING([which libxslt to use])
3844if test -n "$with_system_libxslt" -o -n "$with_system_libs" -o \
3845       "$_os" = "Darwin" && \
3846   test "$with_system_libxslt" != "no"; then
3847   AC_MSG_RESULT([external])
3848   SYSTEM_LIBXSLT=YES
3849
3850	if test "$_os" != "Darwin"; then
3851		PKG_CHECK_MODULES(LIBXSLT, libxslt)
3852	else
3853		LIBXSLT_CFLAGS=`xslt-config --cflags`
3854		LIBXSLT_LIBS=`xslt-config --libs`
3855	fi
3856
3857   dnl Check for xsltproc
3858   AC_PATH_PROG(XSLTPROC, xsltproc, no)
3859   if test "$XSLTPROC" = "no"; then
3860      AC_MSG_ERROR([xsltproc is required])
3861   fi
3862else
3863   AC_MSG_RESULT([internal])
3864   SYSTEM_LIBXSLT=NO
3865   BUILD_TYPE="$BUILD_TYPE LIBXSLT"
3866fi
3867AC_SUBST(SYSTEM_LIBXSLT)
3868AC_SUBST(LIBXSLT_CFLAGS)
3869AC_SUBST(LIBXSLT_LIBS)
3870
3871
3872dnl ===================================================================
3873dnl Check for system libxml
3874dnl ===================================================================
3875AC_MSG_CHECKING([which libxml to use])
3876if test -n "$with_system_libxml" -o -n "$with_system_libs" -o \
3877            "$_os" = "Darwin" && \
3878	test "$with_system_libxml" != "no"; then
3879    AC_MSG_RESULT([external])
3880    SYSTEM_LIBXML=YES
3881    BUILD_TYPE="$BUILD_TYPE LIBXMLSEC"
3882
3883	if test "$_os" != "Darwin"; then
3884		PKG_CHECK_MODULES(LIBXML, libxml-2.0 >= 2.0)
3885	else
3886		LIBXML_CFLAGS=`xml2-config --cflags`
3887		LIBXML_LIBS=`xml2-config --libs`
3888	fi
3889else
3890    AC_MSG_RESULT([internal])
3891    SYSTEM_LIBXML=NO
3892    BUILD_TYPE="$BUILD_TYPE LIBXML2 LIBXMLSEC"
3893fi
3894AC_SUBST(SYSTEM_LIBXML)
3895AC_SUBST(LIBXML_CFLAGS)
3896AC_SUBST(LIBXML_LIBS)
3897
3898
3899dnl ===================================================================
3900dnl Checks for a MacOS platform SDK compatible with deployment target
3901dnl ===================================================================
3902if test  "$_os" = "Darwin"; then
3903   sdk_target=$with_macosx_target
3904   AC_MSG_CHECKING([checking SDK compatibility with OSX $sdk_target])
3905
3906   sdk_minor=`echo $sdk_target | cut -d"." -f2`
3907
3908   if test "$sdk_minor" -lt "9"; then
3909      AC_MSG_ERROR([SDK version < 10.9 is not longer supported])
3910   else
3911      MACOSX_DEPLOYMENT_TARGET=$sdk_target
3912      sdk_path=$with_macosx_sdk
3913      if test -z "$sdk_path"; then
3914          dnl --macosx-sdk not used (or blank): We look for the SDK
3915          dnl Why not MacOSX10.9.sdk? It lacks Python.h (!?)
3916          dnl First look for macOS10.x SDKs (Up thru Xcode 12.1)
3917          sdk_found=`xcodebuild -showsdks | $EGREP "sdk macosx10.(10|11|12|13|14|15)" | sed -e "s/.*sdk //" | tail -n1`
3918          dnl If not found, look for macOS11.x SDKs (Xcode 12.2 and later)
3919          if test -z "$sdk_found"; then
3920             sdk_found=`xcodebuild -showsdks | $EGREP "sdk macosx11.(0|1|2|3)" | sed -e "s/.*sdk //" | tail -n1`
3921          fi
3922          dnl If not found, look for macOS12.x SDKs (Xcode 13.0 and later)
3923          if test -z "$sdk_found"; then
3924             sdk_found=`xcodebuild -showsdks | $EGREP "sdk macosx12.(0|1|2)" | sed -e "s/.*sdk //" | tail -n1`
3925          fi
3926          if test -z "$sdk_found"; then
3927             AC_MSG_ERROR([No SDK with OSX $sdk_target compatibility found])
3928          else
3929             AC_MSG_RESULT([yes, by using SDK $sdk_found])
3930          fi
3931          sdk_path=`xcodebuild -version -sdk ${sdk_found} Path`
3932      elif test ! -d "$sdk_path"; then
3933          sdk_found=`xcodebuild -showsdks | $EGREP "sdk macosx${sdk_path}" | sed -e "s/.*sdk //" | tail -n1`
3934          if test -z "$sdk_found"; then
3935             AC_MSG_ERROR([SDK macosx${sdk_path} not found by xcodebuild])
3936          else
3937             AC_MSG_RESULT([SDK $sdk_found])
3938          fi
3939          sdk_path=`xcodebuild -version -sdk ${sdk_found} Path`
3940      fi
3941      AC_MSG_CHECKING([for $sdk_path])
3942      if test -d "$sdk_path"; then
3943         AC_MSG_RESULT([yes])
3944      else
3945         AC_MSG_ERROR([not found!])
3946      fi
3947
3948      MACOSX_SDK_PATH=$sdk_path
3949      SDKROOT=$sdk_path
3950   fi
3951
3952fi
3953AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
3954AC_SUBST(MACOSX_SDK_PATH)
3955AC_SUBST(SDKROOT)
3956
3957
3958dnl ===================================================================
3959dnl Check for system python
3960dnl ===================================================================
3961AC_MSG_CHECKING([which python to use])
3962if test "$_os" = "Darwin" && test "$with_system_python" != "no"; then
3963   with_system_python=yes
3964
3965   _python="/Library/Frameworks/Python.framework/Versions/Current/bin/python"
3966   if test ! -f $_python; then
3967   	  _python="/usr/bin/python"
3968   fi
3969   AC_MSG_RESULT([compiling against system python ($_python)])
3970
3971   _python_hexversion=`$_python -c "import sys; print(sys.hexversion);"`
3972
3973   dnl hex version of Python 2.7.1 = 34013680
3974   if test $_python_hexversion -ge 34013680 ; then
3975   	  _python_version=`$_python -c "import sys; print sys.version;" | head -c 3`
3976      AC_MSG_RESULT([compiling against system python (version $_python_version)])
3977
3978	  _python_ver=`$_python -c "import distutils.sysconfig; print(distutils.sysconfig.get_config_var('VERSION'));"`
3979
3980	  if test -d "/Library/Frameworks/Python.framework/Versions/$_python_ver/include/python$_python_ver"; then
3981	  	 PYTHON_CFLAGS="-I/Library/Frameworks/Python.framework/Versions/$_python_ver/include/python$_python_ver"
3982         elif test -d "$MACOSX_SDK_PATH/usr/include/python$_python_ver"; then
3983             PYTHON_CFLAGS="-I$MACOSX_SDK_PATH/usr/include/python$_python_ver"
3984	  else
3985             PYTHON_CFLAGS="-I$MACOSX_SDK_PATH/System/Library/Frameworks/Python.framework/Versions/$_python_ver/include/python$_python_ver"
3986	  fi
3987   else
3988		AC_MSG_ERROR([Python 2.7.1 or higher is required])
3989   fi
3990
3991   PYTHON_LIBS="-framework Python"
3992elif test -n "$with_system_python" -o -n "$with_system_libs" && \
3993	test "$with_system_python" != "no"; then
3994   with_system_python=yes
3995   AC_MSG_RESULT([external])
3996   AM_PATH_PYTHON([2.7])
3997
3998   python_include=`$PYTHON -c "import distutils.sysconfig; print(distutils.sysconfig.get_config_var('INCLUDEPY'));"`
3999   python_version=`$PYTHON -c "import distutils.sysconfig; print(distutils.sysconfig.get_config_var('VERSION'));"`
4000   # Python 3.8 and later distinguish building Python modules from linking to the libpython:
4001   # (https://bugs.python.org/issue36721)
4002   if test "$python_version" -lt "3.8"; then
4003       PKG_CHECK_MODULES(PYTHON, python-$python_version, PYTHON_PC="TRUE", PYTHON_PC="" )
4004   else
4005       PKG_CHECK_MODULES(PYTHON, python-$python_version-embed, PYTHON_PC="TRUE", PYTHON_PC="" )
4006   fi
4007   if test "$PYTHON_PC" != "TRUE"; then
4008       PYTHON_CFLAGS="-I$python_include"
4009       PYTHON_LIBS="-lpython$python_version"
4010   fi
4011fi
4012if test "$with_system_python" = "yes" ; then
4013   SYSTEM_PYTHON=YES
4014   dnl check if the headers really work:
4015   save_CPPFLAGS="$CPPFLAGS"
4016   CPPFLAGS="$CPPFLAGS $PYTHON_CFLAGS"
4017   AC_CHECK_HEADER(Python.h, [],
4018       [AC_MSG_ERROR(Python headers not found)], [])
4019   CPPFLAGS="$save_CPPFLAGS"
4020else
4021   SYSTEM_PYTHON=NO
4022   BUILD_TYPE="$BUILD_TYPE PYTHON"
4023   AC_MSG_RESULT([internal])
4024   # Embedded python dies without Home set
4025   if test "z$HOME" = "z"; then
4026      export HOME="";
4027   fi
4028   # bz2 tarball and bzip2 is not standard
4029   if test -z "$BZIP2"; then
4030	AC_PATH_PROG( BZIP2, bzip2)
4031	if test -z "$BZIP2"; then
4032   		AC_MSG_ERROR([the internal Python module has a .tar.bz2. You need bzip2])
4033   	fi
4034   fi
4035fi
4036AC_SUBST(SYSTEM_PYTHON)
4037AC_SUBST(PYTHON_CFLAGS)
4038AC_SUBST(PYTHON_LIBS)
4039HOME=`echo $HOME | sed 's:\\\\:/:g'`
4040AC_SUBST(HOME)
4041
4042dnl ===================================================================
4043dnl Check for system lucene
4044dnl ===================================================================
4045AC_MSG_CHECKING([which lucene to use])
4046if test -n "$with_system_lucene" -o -n "$with_system_libs" && \
4047       test "$with_system_lucene" != "no" && test "$with_system_jars" != "no"; then
4048        AC_MSG_RESULT([external])
4049        SYSTEM_LUCENE=YES
4050        if test -z $LUCENE_CORE_JAR; then
4051          AC_CHECK_FILE(/usr/share/java/lucene-core-2.9.4.jar,
4052            [ LUCENE_CORE_JAR=/usr/share/java/lucene-core-2.9.4.jar ],
4053            [
4054              AC_CHECK_FILE(/usr/share/java/lucene-core.jar,
4055                [ LUCENE_CORE_JAR=/usr/share/java/lucene-core.jar ],
4056                [ AC_CHECK_FILE(/usr/share/java/lucene.jar,
4057                   [ LUCENE_CORE_JAR=/usr/share/java/lucene.jar ],
4058                   [ AC_MSG_ERROR(lucene-core.jar replacement not found)]
4059                  )
4060                ]
4061              )
4062            ]
4063          )
4064        else
4065          AC_CHECK_FILE($LUCENE_CORE_JAR, [],
4066               [AC_MSG_ERROR(lucene-core.jar not found.)], [])
4067        fi
4068
4069        if test -z $LUCENE_ANALYZERS_JAR; then
4070          AC_CHECK_FILE(/usr/share/java/lucene-analyzers-2.3.jar,
4071            [ LUCENE_ANALYZERS_JAR=/usr/share/java/lucene-analyzers-2.3.jar ],
4072            [
4073              AC_CHECK_FILE(/usr/share/java/lucene-contrib/lucene-analyzers.jar,
4074                [ LUCENE_ANALYZERS_JAR=/usr/share/java/lucene-contrib/lucene-analyzers.jar ],
4075                [ AC_MSG_ERROR(lucene-analyzers.jar replacement not found.)]
4076              )
4077            ]
4078          )
4079        else
4080          AC_CHECK_FILE($LUCENE_CORE_JAR, [],
4081               [ AC_MSG_ERROR(lucene-analyzers.jar not found.)], [])
4082        fi
4083        AC_MSG_CHECKING([whether lucene is version 2.x])
4084        export LUCENE_CORE_JAR
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: 2.*/ ) {
4090                exit 0;
4091            } else {
4092                exit 1;
4093            }'; then
4094            AC_MSG_RESULT([yes])
4095         else
4096            AC_MSG_RESULT([no])
4097            AC_MSG_CHECKING([whether lucene is version 3.x])
4098
4099            if $PERL -e 'use Archive::Zip;
4100                my $file = "$ENV{'LUCENE_CORE_JAR'}";
4101                my $zip = Archive::Zip->new( $file );
4102                my $mf = $zip->contents ( "META-INF/MANIFEST.MF" );
4103                if ( $mf =~ m/Specification-Version: 3.*/ ) {
4104                    exit 0;
4105                } else {
4106                    exit 1;
4107                }'; then
4108                AC_MSG_RESULT([yes])
4109             else
4110                AC_MSG_ERROR([no, you need lucene 2 or 3])
4111             fi
4112         fi
4113
4114else
4115    AC_MSG_RESULT([internal])
4116    SYSTEM_LUCENE=NO
4117    BUILD_TYPE="$BUILD_TYPE LUCENE"
4118fi
4119AC_SUBST(SYSTEM_LUCENE)
4120AC_SUBST(LUCENE_CORE_JAR)
4121AC_SUBST(LUCENE_ANALYZERS_JAR)
4122
4123AC_MSG_CHECKING([whether to build the MySQL Connector extension])
4124if test -n "$enable_mysql_connector" -a "$enable_mysql_connector" != "no"; then
4125  AC_MSG_RESULT([yes])
4126  ENABLE_MYSQLC=YES
4127  AC_MSG_CHECKING([for mysqlc module])
4128  if test -d mysqlc; then
4129   AC_MSG_RESULT([OK])
4130  else
4131   AC_MSG_ERROR([not existing. get it (did you get the -extensions tarball?)])
4132  fi
4133  BUILD_TYPE="$BUILD_TYPE MYSQLC"
4134else
4135  AC_MSG_RESULT([no])
4136  ENABLE_MYSQLC=NO
4137fi
4138AC_SUBST(ENABLE_MYSQLC)
4139
4140if test "$ENABLE_MYSQLC" = "YES"; then
4141dnl ===================================================================
4142dnl Check for system MySQL
4143dnl ===================================================================
4144AC_MSG_CHECKING([for mysql pre-requisites])
4145if test -n "$with_system_mysql" -o -n "$with_system_libs" && \
4146       test "$with_system_mysql" != "no" && test "$with_system_libs" != "no"; then
4147	AC_MSG_RESULT([external MySQL])
4148	SYSTEM_MYSQL=YES
4149	AC_PATH_PROG( MYSQLCONFIG, mysql_config)
4150	AC_MSG_CHECKING([MySQL version])
4151	if test -z "$MYSQLCONFIG" -o ! -x "$MYSQLCONFIG" ; then
4152		AC_MSG_ERROR([can not find/execute mysql_config]);
4153	fi
4154	MYSQL_VERSION=`$MYSQLCONFIG --version`
4155	MYSQL_MAJOR=`$MYSQLCONFIG --version | cut -d"." -f1`
4156	if test "$MYSQL_MAJOR" -ge "5"; then
4157		AC_MSG_RESULT([OK])
4158	else
4159		AC_MSG_ERROR([too old, use 5.0.x or 5.1.x])
4160	fi
4161	AC_MSG_CHECKING([for MySQL Client library])
4162	MYSQL_INC=`$MYSQLCONFIG --include`
4163	MYSQL_LIB=`$MYSQLCONFIG --libs`
4164	MYSQL_DEFINES=`$MYSQLCONFIG --cflags | sed -e s,$MYSQL_INC,,`
4165	AC_MSG_RESULT([includes $MYSQL_INC, libraries $MYSQL_LIB])
4166else
4167    SYSTEM_MYSQL=NO
4168    if test -n "$with_libmysql_path"; then
4169        AC_MSG_RESULT([external Connector/C (libmysql)])
4170        LIBMYSQL=libmysql.so
4171        if test "$_os" = "Darwin"; then
4172            LIBMYSQL=libmysql.dylib
4173        elif test "$_os" = "WINNT"; then
4174            LIBMYSQL=libmysql.dll
4175        fi
4176        AC_MSG_CHECKING([for $LIBMYSQL])
4177        if test -e "$with_libmysql_path/lib/$LIBMYSQL"; then
4178            AC_MSG_RESULT([found.])
4179            LIBMYSQL_PATH=$with_libmysql_path
4180        else
4181            AC_MSG_ERROR([not found. Please specify proper path in --with-libmysql-path.])
4182        fi
4183    else
4184        AC_MSG_ERROR([not given. Please specify either --with-system-mysql or --with-libmysql-path])
4185    fi
4186fi
4187AC_SUBST(SYSTEM_MYSQL)
4188AC_SUBST(MYSQL_INC)
4189AC_SUBST(MYSQL_LIB)
4190AC_SUBST(MYSQL_DEFINES)
4191AC_SUBST(LIBMYSQL_PATH)
4192
4193AC_LANG_PUSH([C++])
4194dnl ===================================================================
4195dnl Check for system MySQL C++ Connector
4196dnl ===================================================================
4197# FIXME!
4198# who thought this too-generic cppconn dir was a good idea?
4199AC_MSG_CHECKING([MySQL Connector/C++])
4200if test -n "$with_system_mysql_cppconn" -o -n "$with_system_libs" && \
4201		test "$with_system_mysql_cppconn" != "no" && test "$with_system_libs" != "no"; then
4202	AC_MSG_RESULT([external])
4203	SYSTEM_MYSQL_CPPCONN=YES
4204        AC_LANG_PUSH([C++])
4205	AC_CHECK_HEADER(mysql_driver.h, [],
4206					[AC_MSG_ERROR(mysql_driver.h not found. install MySQL C++ Connectivity)], [])
4207	AC_CHECK_LIB(mysqlcppconn, main, [],
4208					[AC_MSG_ERROR(MySQL C++ Connectivity lib not found or functional)], [])
4209   AC_MSG_CHECKING([version])
4210      AC_TRY_RUN([
4211#include <mysql_driver.h>
4212
4213int main(int argc, char **argv) {
4214	sql::Driver *driver;
4215	driver = get_driver_instance();
4216	if (driver->getMajorVersion() > 1 || \
4217	   (driver->getMajorVersion() == 1 && driver->getMinorVersion() > 0) || \
4218	   (driver->getMajorVersion() == 1 && driver->getMinorVersion() == 0 && driver->getPatchVersion() >= 6))
4219        return 0;
4220      else
4221        return 1;
4222}
4223      ], [AC_MSG_RESULT(OK)], [AC_MSG_ERROR([not suitable, we need >= 1.0.6])])
4224        AC_LANG_POP([C++])
4225
4226else
4227	AC_MSG_RESULT([no])
4228	SYSTEM_MYSQL_CPPCONN=
4229fi
4230AC_LANG_POP([C++])
4231AC_SUBST(SYSTEM_MYSQL_CPPCONN)
4232fi
4233
4234dnl ===================================================================
4235dnl Check for system hsqldb
4236dnl ===================================================================
4237AC_MSG_CHECKING([which hsqldb to use])
4238if test -n "$with_system_hsqldb" -o -n "$with_system_libs" && \
4239       test "$with_system_hsqldb" != "no" && test "$with_system_jars" != "no"; then
4240        AC_MSG_RESULT([external])
4241        SYSTEM_HSQLDB=YES
4242        if test -z $HSQLDB_JAR; then
4243               HSQLDB_JAR=/usr/share/java/hsqldb.jar
4244        fi
4245        AC_CHECK_FILE($HSQLDB_JAR, [],
4246               [AC_MSG_ERROR(hsqldb.jar not found.)], [])
4247        AC_MSG_CHECKING([whether hsqldb is 1.8.0.x])
4248        export HSQLDB_JAR
4249        if $PERL -e 'use Archive::Zip;
4250            my $file = "$ENV{'HSQLDB_JAR'}";
4251            my $zip = Archive::Zip->new( $file );
4252            my $mf = $zip->contents ( "META-INF/MANIFEST.MF" );
4253            if ( $mf =~ m/Specification-Version: 1.8.*/ ) {
4254               push @l, split(/\n/, $mf);
4255               foreach my $line (@l) {
4256                  if ($line =~ m/Specification-Version:/) {
4257                      ($t, $version) = split (/:/,$line);
4258                      $version =~ s/^\s//;
4259                      ($a, $b, $c, $d) = split (/\./,$version);
4260                      if ($c == "0" && $d > "8")  {
4261                          exit 0;
4262                      } else {
4263                          exit 1;
4264                      }
4265                  }
4266               }
4267            } else {
4268                exit 1;
4269            }'; then
4270            AC_MSG_RESULT([yes])
4271         else
4272            AC_MSG_ERROR([no, you need hsqldb >= 1.8.0.9 but < 1.8.1])
4273         fi
4274else
4275    AC_MSG_RESULT([internal])
4276    SYSTEM_HSQLDB=NO
4277    BUILD_TYPE="$BUILD_TYPE HSQLDB"
4278fi
4279AC_SUBST(SYSTEM_HSQLDB)
4280AC_SUBST(HSQLDB_JAR)
4281
4282dnl ===================================================================
4283dnl Check for system beanshell
4284dnl ===================================================================
4285ENABLE_BEANSHELL=YES
4286AC_MSG_CHECKING([which beanshell to use])
4287if test -n "$with_system_beanshell" -o -n "$with_system_libs" && \
4288       test "$with_system_beanshell" != "no" && test "$with_system_jars" != "no"; then
4289        AC_MSG_RESULT([external])
4290        SYSTEM_BSH=YES
4291        if test -z $BSH_JAR; then
4292               BSH_JAR=/usr/share/java/bsh.jar
4293        fi
4294        AC_CHECK_FILE($BSH_JAR, [],
4295               [AC_MSG_ERROR(bsh.jar not found.)], [])
4296elif test "x$enable_beanshell" = "xyes"; then
4297    AC_MSG_RESULT([internal])
4298    SYSTEM_BSH=NO
4299    BUILD_TYPE="$BUILD_TYPE BSH"
4300else
4301    AC_MSG_RESULT([none (disabled)])
4302    SYSTEM_BSH=NO
4303    ENABLE_BEANSHELL=NO
4304fi
4305AC_SUBST(SYSTEM_BSH)
4306AC_SUBST(BSH_JAR)
4307AC_SUBST(ENABLE_BEANSHELL)
4308
4309
4310dnl ===================================================================
4311dnl Check for saxon. It can come from two different places:
4312dnl - pre-installed on the system. This is checked when the --with-system-saxon
4313dnl   option is given to configure.
4314dnl   The exact place can be specified with the --with-saxon-jar=<path> option.
4315dnl - From the saxon tar ball in ext_sources/. This is used when --enable-saxon
4316dnl   is given to configure but not any of --with-system-saxon or --with-saxon-jar.
4317dnl ===================================================================
4318DISABLE_SAXON=
4319AC_MSG_CHECKING([which saxon to use])
4320if test -n "$with_system_saxon" -o -n "$with_system_libs" && \
4321       test "$with_system_saxon" != "no" && test "$with_system_jars" != "no"; then
4322        AC_MSG_RESULT([external])
4323        SYSTEM_SAXON=YES
4324        if test -z $SAXON_JAR; then
4325          AC_CHECK_FILE(/usr/share/java/saxon9.jar,
4326            [ SAXON_JAR=/usr/share/java/saxon9.jar ],
4327            [
4328              AC_CHECK_FILE(/usr/share/java/saxon.jar,
4329                [ SAXON_JAR=/usr/share/java/saxon.jar ],
4330                [ AC_CHECK_FILE(/usr/share/java/saxon9.jar,
4331                    [ SAXON_JAR=/usr/share/java/saxon9.jar ],
4332                    [ AC_MSG_ERROR(saxon.jar replacement not found)]
4333                  )
4334                ]
4335              )
4336            ]
4337          )
4338        else
4339          AC_CHECK_FILE($SAXON_JAR, [],
4340               [AC_MSG_ERROR(saxon.jar replacement not found.)], [])
4341        fi
4342        if test -n "$SERIALIZER_JAR"; then
4343          AC_CHECK_FILE($SERIALIZER_JAR, [],
4344               [AC_MSG_ERROR(serializer.jar not found.)], [])
4345          AC_SUBST(SERIALIZER_JAR)
4346        fi
4347
4348dnl Saxon comes in two practically available versions, the out-of-date saxonb which
4349dnl supports the java extensions that AOO uses, and the up-to-date saxon he
4350dnl "home edition" version, which is crippled to not support those java extensions.
4351dnl And as an aside the he one also needs to be tweaked to include
4352dnl a META-INF/services to broadcast that it supports the jaxp transform factory
4353
4354        AC_MSG_CHECKING([if saxon works])
4355        cat > saxontest.java <<_ACEOF
4356[import javax.xml.transform.TransformerFactory;
4357import javax.xml.transform.Transformer;
4358import javax.xml.transform.stream.StreamSource;
4359import java.io.*;
4360
4361import net.sf.saxon.FeatureKeys;
4362
4363class saxontest {
4364    public static void main(String[] args) {
4365      System.setProperty("javax.xml.transform.TransformerFactory",
4366        "net.sf.saxon.TransformerFactoryImpl");
4367      try {
4368        TransformerFactory tfactory = TransformerFactory.newInstance();
4369	// some external saxons (Debian, Ubuntu, ...) have this disabled
4370	// per default
4371	tfactory.setAttribute(FeatureKeys.ALLOW_EXTERNAL_FUNCTIONS, new Boolean(true));
4372        System.out.println("TransformerFactory is" +
4373          tfactory.getClass().getName());
4374        Transformer transformer = tfactory.newTransformer(
4375          new StreamSource(new File(args[0])));
4376      } catch(Exception e){
4377        e.printStackTrace(System.err);
4378        System.exit(-1);
4379      }
4380      System.exit(0);
4381    }
4382}
4383]
4384_ACEOF
4385        cat > saxontest.xsl<<_ACEOF
4386[<?xml version="1.0" encoding="UTF-8"?>
4387<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
4388 <xsl:template match="/">
4389  <xsl:value-of select="math:sqrt(1)" xmlns:math="java:java.lang.Math"/>
4390 </xsl:template>
4391</xsl:stylesheet>
4392]
4393_ACEOF
4394        javac_cmd="$JAVACOMPILER -cp $SAXON_JAR saxontest.java 1>&2"
4395        AC_TRY_EVAL(javac_cmd)
4396        if test $? = 0 && test -f ./saxontest.class ; then
4397            java_cmd="$JAVAINTERPRETER -cp $SAXON_JAR:. saxontest saxontest.xsl 1>&2"
4398            AC_TRY_EVAL(java_cmd)
4399            if test $? = 0; then
4400              AC_MSG_RESULT([yes])
4401            else
4402              cat saxontest.java >&5
4403              AC_MSG_RESULT([no])
4404              AC_MSG_ERROR([Non-functional saxon jar, e.g. crippled saxon-he instead of saxonb])
4405            fi
4406        else
4407          AC_MSG_RESULT([no])
4408          cat saxontest.java >&5
4409          AC_MSG_ERROR([saxontest could not be compiled, non-functional saxon jar])
4410        fi
4411elif test "x$enable_saxon" = "xyes"; then
4412    AC_MSG_RESULT([internal])
4413    SYSTEM_SAXON=NO
4414    BUILD_TYPE="$BUILD_TYPE SAXON"
4415else
4416    AC_MSG_RESULT([none (disabled)])
4417    SYSTEM_SAXON=NO
4418    DISABLE_SAXON=YES
4419fi
4420AC_SUBST(SYSTEM_SAXON)
4421AC_SUBST(SAXON_JAR)
4422AC_SUBST(DISABLE_SAXON)
4423
4424
4425dnl ===================================================================
4426dnl Check for rhino
4427dnl ===================================================================
4428ENABLE_JAVASCRIPT=
4429AC_MSG_CHECKING([whether to enable support for JavaScript])
4430if test "x$enable_javascript" = "xyes"; then
4431   BUILD_TYPE="$BUILD_TYPE RHINO"
4432   AC_MSG_RESULT([yes])
4433   ENABLE_JAVASCRIPT=YES
4434else
4435   AC_MSG_RESULT([no])
4436   ENABLE_JAVASCRIPT=NO
4437fi
4438AC_SUBST(ENABLE_JAVASCRIPT)
4439
4440
4441dnl ===================================================================
4442dnl Check for CoinMP
4443dnl ===================================================================
4444ENABLE_COINMP=
4445SYSTEM_COINMP=NO
4446COINMP_CFLAGS=
4447COINMP_LIBS=
4448AC_MSG_CHECKING([whether to enable support for CoinMP])
4449if test "x$enable_coinmp" = "xyes"; then
4450    BUILD_TYPE="$BUILD_TYPE COINMP"
4451    AC_MSG_RESULT([yes])
4452    ENABLE_COINMP=YES
4453
4454    dnl Check whether to use system or internal CoinMP
4455    AC_MSG_CHECKING([which coinmp to use])
4456    if test "x$with_system_coinmp" = "xyes" -o -n "$with_system_libs"; then
4457        AC_MSG_RESULT([system])
4458	PKG_CHECK_MODULES([COINMP], [coinmp])
4459        SYSTEM_COINMP=YES
4460        # some systems need this. Like Ubuntu....
4461        AC_CHECK_LIB(m, floor)
4462        AC_CHECK_LIB(dl, dlopen)
4463    else
4464        AC_MSG_RESULT([internal])
4465        SYSTEM_COINMP=NO
4466        BUILD_TYPE="$BUILD_TYPE COINMP"
4467    fi
4468else
4469    AC_MSG_RESULT([no])
4470    ENABLE_COINMP=NO
4471fi
4472AC_SUBST(ENABLE_COINMP)
4473AC_SUBST(SYSTEM_COINMP)
4474AC_SUBST(COINMP_CFLAGS)
4475AC_SUBST(COINMP_LIBS)
4476
4477
4478dnl ===================================================================
4479dnl Check for system curl
4480dnl ===================================================================
4481if test "$_os" = "Darwin" && test "$with_system_curl" != "no"; then
4482   with_system_curl=yes
4483fi
4484AC_MSG_CHECKING([which curl to use])
4485if test -n "$with_system_curl" -o -n "$with_system_libs" && \
4486	test "$with_system_curl" != "no"; then
4487   AC_MSG_RESULT([external])
4488   SYSTEM_CURL=YES
4489
4490   AC_PATH_PROG( CURLCONFIG, curl-config)
4491   if test -z "$CURLCONFIG"; then
4492      AC_MSG_ERROR([install curl to run this script])
4493   fi
4494
4495   # check curl version
4496   AC_MSG_CHECKING([whether curl is >= 7.13.1])
4497   if test "`$CURLCONFIG --version | $AWK -F' ' '{print $2}' | $AWK -F. '{ print $1 }'`" -gt "7" -a \
4498	"`$CURLCONFIG --version | $AWK -F' ' '{print $2}' | $AWK -F. '{ print $2 }'`" -gt "13" -a \
4499	"`$CURLCONFIG --version | $AWK -F' ' '{print $2}' | $AWK -F. '{ print $3 }'`" -gt "1"; then
4500      AC_MSG_ERROR([no, you need at least curl 7.13,1])
4501   else
4502      AC_MSG_RESULT([yes])
4503   fi
4504
4505   # Does curl use OpenSSL as its SSL implementation? Needed for ucb/source/ucp/webdav.
4506   AC_MSG_CHECKING([whether curl uses OpenSSL as its SSL backend])
4507   if $CURLCONFIG --ssl-backends | $GREP -q 'OpenSSL'; then
4508      AC_MSG_RESULT([yes])
4509   else
4510      AC_MSG_ERROR([no, cannot use system curl whose SSL backend isn't OpenSSL])
4511   fi
4512
4513   CURL_LIBS=`$CURLCONFIG --libs`
4514   CURL_CFLAGS=`$CURLCONFIG --cflags`
4515else
4516   AC_MSG_RESULT([internal])
4517   SYSTEM_CURL=NO
4518   BUILD_TYPE="$BUILD_TYPE CURL"
4519fi
4520AC_SUBST(SYSTEM_CURL)
4521AC_SUBST(CURL_CFLAGS)
4522AC_SUBST(CURL_LIBS)
4523
4524dnl ===================================================================
4525dnl Check for system mdds
4526dnl ===================================================================
4527AC_MSG_CHECKING([which mdds to use])
4528if test -n "$with_system_mdds" -o -n "$with_system_headers" && \
4529	test "$with_system_mdds" != "no"; then
4530    AC_MSG_RESULT([external])
4531    SYSTEM_MDDS=YES
4532    AC_LANG_PUSH([C++])
4533    AC_CHECK_HEADER(mdds/flat_segment_tree.hpp, [],
4534        [AC_MSG_ERROR(mdds/flat_segment_tree.hpp not found. install mdds)], [])
4535    AC_LANG_POP([C++])
4536else
4537   AC_MSG_RESULT([internal])
4538   BUILD_TYPE="$BUILD_TYPE MDDS"
4539   SYSTEM_MDDS=NO
4540fi
4541AC_SUBST(SYSTEM_MDDS)
4542
4543dnl ===================================================================
4544dnl Check for system boost
4545dnl ===================================================================
4546AC_MSG_CHECKING([which boost to use])
4547if test -n "$with_system_boost" -o -n "$with_system_headers" && \
4548	test "$with_system_boost" != "no"; then
4549   AC_MSG_RESULT([external])
4550   SYSTEM_BOOST=YES
4551   AC_LANG_PUSH([C++])
4552   AC_CHECK_HEADER(boost/shared_ptr.hpp, [],
4553       [AC_MSG_ERROR(boost/shared_ptr.hpp not found. install boost)], [])
4554   AC_CHECK_HEADER(boost/spirit/include/classic_core.hpp, [],
4555       [AC_MSG_ERROR(boost/spirit/include/classic_core.hpp not found. install boost >= 1.36)], [])
4556   AC_CHECK_HEADER(boost/function.hpp, [],
4557       [AC_MSG_ERROR(boost/function.hpp not found. install boost)], [])
4558
4559   save_CXXFLAGS=$CXXFLAGS
4560   CXXFLAGS="$CXXFLAGS -fno-exceptions"
4561   AC_MSG_CHECKING([whether boost/function.hpp compiles with -fno-exceptions])
4562   AC_TRY_COMPILE([#include <boost/function.hpp>
4563], [],
4564   ac_cv_cxx_boost_no_exceptons_broken=no, ac_cv_cxx_boost_no_exceptons_broken=yes)
4565
4566   if test "$ac_cv_cxx_boost_no_exceptons_broken" = "yes"; then
4567	AC_MSG_ERROR([no, see https://bugzilla.redhat.com/show_bug.cgi?id=477131])
4568   else
4569  	AC_MSG_RESULT([yes])
4570   fi
4571   CXXFLAGS=$save_CXXFLAGS
4572   AC_LANG_POP([C++])
4573else
4574   AC_MSG_RESULT([internal])
4575   BUILD_TYPE="$BUILD_TYPE BOOST"
4576   SYSTEM_BOOST=NO
4577fi
4578AC_SUBST(SYSTEM_BOOST)
4579
4580dnl ===================================================================
4581dnl Check for system vigra
4582dnl ===================================================================
4583AC_MSG_CHECKING([which vigra to use])
4584if test -n "$with_system_vigra" -o -n "$with_system_headers" && \
4585	test "$with_system_vigra" != "no"; then
4586   AC_MSG_RESULT([external])
4587   SYSTEM_VIGRA=YES
4588   AC_LANG_PUSH([C++])
4589   AC_CHECK_HEADER(vigra/copyimage.hxx, [],
4590       [AC_MSG_ERROR(vigra/copyimage.hxx not found. install vigra)], [])
4591   AC_LANG_POP([C++])
4592else
4593   AC_MSG_RESULT([internal])
4594   BUILD_TYPE="$BUILD_TYPE VIGRA"
4595   SYSTEM_VIGRA=NO
4596fi
4597AC_SUBST(SYSTEM_VIGRA)
4598
4599dnl ===================================================================
4600dnl Check for system odbc
4601dnl ===================================================================
4602AC_MSG_CHECKING([which odbc headers to use])
4603if test -n "$with_system_odbc_headers" -o -n "$with_system_headers" && \
4604	test "$with_system_odbc_headers" != "no"; then
4605   AC_MSG_RESULT([external])
4606   SYSTEM_ODBC_HEADERS=YES
4607
4608   AC_CHECK_HEADER(sqlext.h, [],
4609      [AC_MSG_ERROR(odbc not found. install odbc)], [])
4610else
4611   AC_MSG_RESULT([internal])
4612   SYSTEM_ODBC_HEADERS=NO
4613   BUILD_TYPE="$BUILD_TYPE UNIXODBC"
4614fi
4615AC_SUBST(SYSTEM_ODBC_HEADERS)
4616
4617AC_MSG_CHECKING([whether to build XML Security support])
4618if test "$enable_nss_module" = "no"; then
4619   AC_MSG_RESULT([no, since NSS disabled but needed])
4620else
4621   AC_MSG_RESULT([yes])
4622fi
4623
4624AC_MSG_CHECKING([whether to build LDAP configuration backend])
4625if test -z "$enable_ldap" || test "$enable_ldap" = "yes"; then
4626   if test "$with_openldap" = "yes"; then
4627      AC_MSG_RESULT([yes])
4628      WITH_LDAP=YES
4629   else
4630      WITH_LDAP=NO
4631   fi
4632else
4633   AC_MSG_RESULT([no])
4634   WITH_LDAP=NO
4635fi
4636
4637if test "$WITH_LDAP" = "YES"; then
4638   dnl ===================================================================
4639   dnl Test whether we want to use the OpenLDAP LDAP SDK
4640   dnl ===================================================================
4641   AC_MSG_CHECKING([which LDAP SDK to use])
4642   if test -n "$with_openldap" && test "$with_openldap" != "no"; then
4643  	   AC_MSG_RESULT([OpenLDAP])
4644	   WITH_OPENLDAP=YES
4645	   AC_CHECK_HEADERS(ldap.h, [],
4646		   [AC_MSG_ERROR(ldap.h not found. install openldap libs)], [])
4647	   AC_CHECK_LIB(ldap, ldap_simple_bind_s, [],
4648		   [AC_MSG_ERROR(openldap lib not found or functional)], [])
4649	   # rumours say that OpenLDAP doesn't have that function. I looked and
4650	   # it has it. Test for it to be sure
4651         AC_CHECK_LIB(ldap, ldap_set_option, [],
4652                [AC_MSG_ERROR(openldap lib not found or functional)], [])
4653   fi
4654fi
4655AC_SUBST(WITH_LDAP)
4656AC_SUBST(WITH_OPENLDAP)
4657
4658AC_MSG_CHECKING([whether to build the internal NSS module])
4659if test "$enable_nss_module" != "no"; then
4660   ENABLE_NSS_MODULE="YES"
4661   BUILD_TYPE="$BUILD_TYPE NSS"
4662   AC_MSG_RESULT([yes])
4663   if test "$_os" = "WINNT"; then
4664      AC_MSG_CHECKING([for Mozilla build tooling])
4665      if test -z "$MOZILLABUILD" ; then
4666AC_MSG_ERROR([
4667Mozilla build tooling not found!
4668  It is required for NSS that is needed for AOO's security facilities.
4669  Either disable NSS using the option --disable-nss-module
4670  or use the --with-mozilla-build option after installing the tool obtained
4671  from https://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/])
4672      else
4673         if test \( "$WITH_MINGWIN" = "yes" \) ; then
4674            if test ! -d "$MOZILLABUILD" ; then
4675AC_MSG_ERROR([Mozilla build tooling incomplete!])
4676            else
4677               AC_MSG_RESULT([ok])
4678            fi
4679         else
4680            if test ! -d "$MOZILLABUILD/msys" ; then
4681AC_MSG_ERROR([Mozilla build tooling incomplete!])
4682            else
4683               AC_MSG_RESULT([ok])
4684            fi
4685         fi
4686      fi
4687   fi
4688else
4689   ENABLE_NSS_MODULE="NO"
4690   AC_MSG_RESULT([no])
4691fi
4692
4693AC_SUBST(ENABLE_NSS_MODULE)
4694AC_SUBST(MOZILLABUILD)
4695AC_SUBST(MOZ_INC)
4696
4697dnl ===================================================================
4698dnl Check for system sane
4699dnl ===================================================================
4700AC_MSG_CHECKING([which sane header to use])
4701if test -n "$with_system_sane_header" -o -n "$with_system_headers" && \
4702	test "$with_system_sane_header" != "no"; then
4703   AC_MSG_RESULT([external])
4704   SYSTEM_SANE_HEADER=YES
4705   AC_CHECK_HEADER(sane/sane.h, [],
4706      [AC_MSG_ERROR(sane not found. install sane)], [])
4707else
4708   AC_MSG_RESULT([internal])
4709   SYSTEM_SANE_HEADER=NO
4710   BUILD_TYPE="$BUILD_TYPE SANE"
4711fi
4712AC_SUBST(SYSTEM_SANE_HEADER)
4713
4714dnl ===================================================================
4715dnl Check for system icu
4716dnl ===================================================================
4717AC_MSG_CHECKING([which icu to use])
4718if test -n "$with_system_icu" -o -n "$with_system_libs" && \
4719	test "$with_system_icu" != "no"; then
4720   AC_MSG_RESULT([external])
4721   SYSTEM_ICU=YES
4722   AC_LANG_PUSH([C++])
4723   AC_MSG_CHECKING([for unicode/rbbi.h])
4724   AC_TRY_CPP(unicode/rbbi.h, AC_MSG_RESULT([checked.]), AC_MSG_ERROR([icu headers not found.]))
4725   AC_LANG_POP([C++])
4726   AC_PATH_PROG(SYSTEM_GENBRK, genbrk, [], [$PATH:/usr/sbin:/sbin])
4727   if test -z "$SYSTEM_GENBRK"; then
4728      AC_MSG_ERROR([\"genbrk\" not found in \$PATH, install the icu development tool \"genbrk"\])
4729   fi
4730   AC_PATH_PROG(SYSTEM_GENCCODE, genccode, [], [$PATH:/usr/sbin:/sbin])
4731   if test -z "$SYSTEM_GENCCODE"; then
4732      AC_MSG_ERROR([\"genccode\" not found in \$PATH, install the icu development tool \"genccode"\])
4733   fi
4734   AC_PATH_PROG(SYSTEM_GENCMN, gencmn, [], [$PATH:/usr/sbin:/sbin])
4735   if test -z "$SYSTEM_GENCMN"; then
4736      AC_MSG_ERROR([\"gencmn\" not found in \$PATH, install the icu development tool \"gencmn"\])
4737   fi
4738
4739   AC_PATH_PROG( ICUCONFIG, icu-config)
4740   AC_MSG_CHECKING([ICU version])
4741   if test "$_os" = "OS2"; then
4742      ICU_MAJOR=4
4743   else
4744      ICU_VERSION=`$ICUCONFIG --version`
4745      ICU_MAJOR=`$ICUCONFIG --version | cut -d"." -f1`
4746      ICU_MINOR=`$ICUCONFIG --version | cut -d"." -f2`
4747      ICU_MICRO=`$ICUCONFIG --version | cut -d"." -f3`
4748   fi
4749
4750   if test "$ICU_MAJOR" -ge "4"; then
4751      AC_MSG_RESULT([OK])
4752   else
4753      AC_MSG_ERROR([not suitable, only >= 4.0 supported currently])
4754   fi
4755
4756else
4757    AC_MSG_RESULT([internal])
4758    SYSTEM_ICU=NO
4759    BUILD_TYPE="$BUILD_TYPE ICU"
4760fi
4761AC_SUBST(SYSTEM_ICU)
4762AC_SUBST(SYSTEM_GENBRK)
4763AC_SUBST(SYSTEM_GENCCODE)
4764AC_SUBST(SYSTEM_GENCMN)
4765AC_SUBST(ICU_MAJOR)
4766AC_SUBST(ICU_MINOR)
4767AC_SUBST(ICU_MICRO)
4768
4769dnl ===================================================================
4770dnl Graphite
4771dnl ===================================================================
4772
4773ENABLE_GRAPHITE="FALSE"
4774AC_MSG_CHECKING([whether to enable graphite support])
4775if test "x$enable_graphite" = "xyes" -a \( "$_os" = "WINNT" -o "$_os" = "Linux" -o "$_os" = "FreeBSD" \) ; then
4776    AC_MSG_RESULT([yes])
4777    ENABLE_GRAPHITE="TRUE"
4778    AC_MSG_CHECKING([which graphite to use])
4779    if test -n "$with_system_graphite" -o -n "$with_system_libs" && \
4780        test "$with_system_graphite" != "no"; then
4781        AC_MSG_RESULT([external])
4782        SYSTEM_GRAPHITE=YES
4783        PKG_CHECK_MODULES( GRAPHITE, silgraphite )
4784    else
4785        AC_MSG_RESULT([internal])
4786        SYSTEM_GRAPHITE=NO
4787        BUILD_TYPE="$BUILD_TYPE GRAPHITE"
4788    fi
4789else
4790   AC_MSG_RESULT([no])
4791   ENABLE_GRAPHITE="FALSE"
4792fi
4793AC_SUBST(ENABLE_GRAPHITE)
4794AC_SUBST(SYSTEM_GRAPHITE)
4795AC_SUBST(GRAPHITE_LIBS)
4796AC_SUBST(GRAPHITE_CFLAGS)
4797
4798
4799dnl ===================================================================
4800dnl Checks for libraries.
4801dnl ===================================================================
4802dnl Check for Mac OS X native GUI, which may is now required; the X11 build is no longer supported
4803dnl See if we have the AppKit framework for building with Quartz graphics.
4804
4805if test  "$_os" = "Darwin"; then
4806   if test "x$with_x" = "xyes"; then
4807      AC_MSG_ERROR([X11 build is no longer supported on MacOSX, please use the native aqua build])
4808   else
4809      AC_MSG_CHECKING([for /System/Library/Frameworks/AppKit.framework])
4810      if test -d "/System/Library/Frameworks/AppKit.framework/"; then
4811         AC_MSG_RESULT([yes])
4812         x_includes="no_x_includes"
4813         x_libraries="no_x_libraries"
4814         dnl disable some things used on other Unix versions but not on the aqua build
4815         enable_gtk=no
4816         enable_cups=no
4817         ENABLE_CUPS=""
4818         AC_SUBST(ENABLE_CUPS)
4819      else
4820         AC_MSG_ERROR([No AppKit.framewrok found])
4821      fi
4822   fi
4823fi
4824
4825dnl ***************************************
4826dnl testing for X libraries and includes...
4827dnl ***************************************
4828if test "$_os" = "Darwin" -a "x$x_includes" = "xno_x_includes"; then
4829   echo "Do Nothing for _os = Darwin"
4830   dnl Mac OS X using Aqua graphics. Don't check for X11.
4831   :
4832elif test "$_os" = "OS2" ; then
4833   echo "Do Nothing for _os = OS2. Don't check for X11."
4834   dnl OS/2 uses native graphics. Don't check for X11.
4835   :
4836elif test "$_os" != "WINNT" ; then
4837   AC_PATH_X
4838   AC_PATH_XTRA
4839   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
4840
4841   if test "x$x_includes" = "x"; then
4842     x_includes="default_x_includes"
4843   fi
4844   if test "x$x_libraries" = "x"; then
4845     x_libraries="default_x_libraries"
4846   fi
4847   dnl The variables $x_libraries and $x_includes are set.
4848   if test -z "$x_libraries"; then
4849      AC_MSG_ERROR([No X libraries found]) # Exit
4850   fi
4851   if test -z "$x_includes"; then
4852      AC_MSG_ERROR([No X includes found]) # Exit
4853   fi
4854   CFLAGS=$X_CFLAGS
4855   LDFLAGS="$X_LDFLAGS $X_LIBS"
4856   AC_CHECK_LIB(X11, XOpenDisplay, x_libs="-lX11 $X_EXTRA_LIBS", [AC_MSG_ERROR([X Development libraries not found])])
4857   dnl Check if the XauDisposeAuth symbol is provided by libXau.
4858   AC_CHECK_LIB(Xau, XauDisposeAuth, XAU_LIBS="-lXau", [])
4859else
4860   x_includes="no_x_includes"
4861   x_libraries="no_x_libraries"
4862fi
4863if test -z "$x_includes"; then
4864   x_includes="no_x_includes"
4865fi
4866if test -z "$x_libraries"; then
4867   x_libraries="no_x_libraries"
4868fi
4869if test "$x_includes" = "default_x_includes"; then
4870   XINC="/usr/include"
4871else
4872   XINC="$x_includes"
4873fi
4874AC_SUBST(XINC)
4875if test "$x_libraries" = "default_x_libraries"; then
4876   XLIB=`$PKG_CONFIG --variable=libdir x11`
4877   if test "x$XLIB" = x; then
4878         XLIB="/usr/lib"
4879   fi
4880else
4881   XLIB="$x_libraries"
4882fi
4883AC_SUBST(XLIB)
4884AC_SUBST(XAU_LIBS)
4885
4886dnl ===================================================================
4887dnl Check if fontconfig/fontconfig.h is available
4888dnl ===================================================================
4889if test "$ENABLE_FONTCONFIG" = "TRUE" ; then
4890    AC_CHECK_HEADER(fontconfig/fontconfig.h, [],
4891                    [AC_MSG_ERROR([fontconfig/fontconfig.h could not be found. libfontconfig1-dev or fontconfig???-devel missing?])], [])
4892    AC_MSG_CHECKING([whether fontconfig is >= 2.2.0])
4893    AC_TRY_RUN([
4894#include <fontconfig/fontconfig.h>
4895
4896int main(int argc, char **argv) {
4897	if(FC_MAJOR > 2 || (FC_MAJOR == 2 && FC_MINOR >= 2)) return 0;
4898	else return 1;
4899}
4900], [AC_MSG_RESULT([yes])], [AC_MSG_ERROR([no, fontconfig >= 2.2.0 needed])])
4901fi
4902
4903dnl ===================================================================
4904dnl Check for system Xrender
4905dnl ===================================================================
4906AC_MSG_CHECKING([whether to link to Xrender])
4907if test -n "$enable_xrender_link" -a "$enable_xrender_link" != "no"; then
4908   AC_MSG_RESULT([yes])
4909   XRENDER_LINK=YES
4910   with_system_xrender_headers=yes
4911else
4912   AC_MSG_RESULT([no, dynamically open it])
4913   XRENDER_LINK=NO
4914fi
4915AC_MSG_CHECKING([which Xrender headers to use])
4916if test -n "$with_system_xrender_headers" -o -n "$with_system_headers" && \
4917	test "$with_system_xrender_headers" != "no"; then
4918   AC_MSG_RESULT([external])
4919   SYSTEM_XRENDER_HEADERS=YES
4920   AC_CHECK_HEADER(X11/extensions/Xrender.h, [],
4921      [AC_MSG_ERROR(Xrender not found. install X)], [])
4922else
4923   AC_MSG_RESULT([internal])
4924   SYSTEM_XRENDER_HEADERS=NO
4925   BUILD_TYPE="$BUILD_TYPE X11_EXTENSIONS"
4926fi
4927if test "$XRENDER_LINK" = "YES"; then
4928   AC_CHECK_LIB(Xrender, XRenderQueryVersion, [],
4929      [AC_MSG_ERROR(libXrender not found or functional)], [])
4930fi
4931AC_SUBST(SYSTEM_XRENDER_HEADERS)
4932AC_SUBST(XRENDER_LINK)
4933
4934dnl ===================================================================
4935dnl Check for XRandr
4936dnl ===================================================================
4937AC_MSG_CHECKING([whether to enable RandR support])
4938if test "$test_randr" = "yes" -a \( "$enable_randr" = "yes" -o "$enable_randr" = "TRUE" \) ; then
4939   if test -z "$enable_randr_link" -o "$enable_randr_link" = "no"; then
4940	  XRANDR_DLOPEN="TRUE"
4941	  AC_MSG_RESULT([resorting to dlopen libXrandr at runtime])
4942   else
4943	  XRANDR_DLOPEN="FALSE"
4944      PKG_CHECK_MODULES(XRANDR, xrandr >= 1.2, ENABLE_RANDR="TRUE", ENABLE_RANDR="")
4945      if test "$ENABLE_RANDR" != "TRUE"; then
4946         AC_CHECK_HEADER(X11/extensions/Xrandr.h, [],
4947                        [AC_MSG_ERROR([X11/extensions/Xrandr.h could not be found. X11 dev missing?])], [])
4948         XRANDR_CFLAGS=" "
4949         AC_CHECK_LIB(Xrandr, XRRQueryExtension, [],
4950              [ AC_MSG_ERROR(libXrandr not found or functional) ], [])
4951         XRANDR_LIBS="-lXrandr "
4952         ENABLE_RANDR="TRUE"
4953	     AC_MSG_RESULT([enabling RandR support])
4954      fi
4955   fi
4956else
4957   ENABLE_RANDR=""
4958   AC_MSG_RESULT([no])
4959fi
4960AC_SUBST(XRANDR_DLOPEN)
4961AC_SUBST(XRANDR_CFLAGS)
4962AC_SUBST(XRANDR_LIBS)
4963AC_SUBST(ENABLE_RANDR)
4964
4965dnl ===================================================================
4966dnl Check for system nss
4967dnl ===================================================================
4968AC_MSG_CHECKING([which libnss to use])
4969if test -n "$with_system_nss" -o -n "$with_system_libs" && test "$with_system_nss" != "no"; then
4970    AC_MSG_RESULT([external])
4971    PKG_CHECK_MODULES( NSS, nss )
4972    SYSTEM_NSS=YES
4973else
4974    AC_MSG_RESULT([internal])
4975    SYSTEM_NSS=NO
4976    BUILD_TYPE="$BUILD_TYPE NSS"
4977fi
4978AC_SUBST(SYSTEM_NSS)
4979AC_SUBST(NSS_CFLAGS)
4980AC_SUBST(NSS_LIBS)
4981
4982dnl ===================================================================
4983dnl Check for system openssl
4984dnl ===================================================================
4985AC_MSG_CHECKING([which libssl to use])
4986if test -n "$with_system_openssl" -o -n "$with_system_libs" && \
4987        test "$with_system_openssl" != "no"; then
4988    AC_MSG_RESULT([external])
4989    if test "$_os" = "FreeBSD"; then
4990        OPENSSL_CFLAGS=
4991        OPENSSL_LIBS="-lssl -lcrypto"
4992    else
4993    	PKG_CHECK_MODULES( OPENSSL, openssl )
4994    fi
4995    SYSTEM_OPENSSL=YES
4996else
4997    AC_MSG_RESULT([internal])
4998    SYSTEM_OPENSSL=NO
4999    BUILD_TYPE="$BUILD_TYPE OPENSSL"
5000fi
5001AC_SUBST(SYSTEM_OPENSSL)
5002AC_SUBST(OPENSSL_CFLAGS)
5003AC_SUBST(OPENSSL_LIBS)
5004
5005dnl ===================================================================
5006dnl Check for system redland
5007dnl ===================================================================
5008AC_MSG_CHECKING([which redland library to use])
5009if test -n "$with_system_redland" -o -n "$with_system_libs" && \
5010	test "$with_system_redland" != "no"; then
5011	AC_MSG_RESULT([external])
5012	SYSTEM_REDLAND=YES
5013   dnl versions before 1.0.8 write RDF/XML that is useless for ODF (@xml:base)
5014   PKG_CHECK_MODULES(REDLAND, redland >= 1.0.8)
5015else
5016	AC_MSG_RESULT([internal])
5017	BUILD_TYPE="$BUILD_TYPE REDLAND"
5018	SYSTEM_REDLAND=NO
5019fi
5020AC_SUBST(SYSTEM_REDLAND)
5021AC_SUBST(REDLAND_CFLAGS)
5022AC_SUBST(REDLAND_LIBS)
5023
5024dnl ===================================================================
5025dnl Check for hunspell
5026dnl ===================================================================
5027AC_MSG_CHECKING([whether to build the Spell Checking component])
5028ENABLE_HUNSPELL=
5029
5030if test "x$enable_hunspell" != "xno" ; then
5031    AC_MSG_CHECKING([which libhunspell to use])
5032    if test -n "$with_system_hunspell" -o -n "$with_system_libs" && \
5033        test "$with_system_hunspell" != "no"; then
5034        AC_MSG_RESULT([external])
5035        SYSTEM_HUNSPELL=YES
5036        AC_LANG_PUSH([C++])
5037        PKG_CHECK_MODULES(HUNSPELL, hunspell, HUNSPELL_PC="TRUE", HUNSPELL_PC="" )
5038        if test "$HUNSPELL_PC" != "TRUE"; then
5039            AC_CHECK_HEADER(hunspell.hxx, [],
5040            [AC_CHECK_HEADER(hunspell/hunspell.hxx, [ HUNSPELL_CFLAGS=-I/usr/include/hunspell ],
5041                [AC_MSG_ERROR(hunspell headers not found.)], [])
5042             ], [])
5043            AC_CHECK_LIB(hunspell, main, [],
5044            [ AC_MSG_ERROR(hunspell library not found.) ], [])
5045            HUNSPELL_LIBS=-lhunspell
5046        fi
5047        AC_LANG_POP([C++])
5048    else
5049        AC_MSG_RESULT([internal])
5050        SYSTEM_HUNSPELL=NO
5051        BUILD_TYPE="$BUILD_TYPE HUNSPELL"
5052    fi
5053    ENABLE_HUNSPELL=YES
5054    AC_SUBST(SYSTEM_HUNSPELL)
5055    AC_SUBST(HUNSPELL_CFLAGS)
5056    AC_SUBST(HUNSPELL_LIBS)
5057else
5058    AC_MSG_RESULT([no])
5059fi
5060AC_SUBST(ENABLE_HUNSPELL)
5061
5062dnl ===================================================================
5063dnl Checking for libhyphen
5064dnl ===================================================================
5065AC_MSG_CHECKING([whether to build the Hyphenator component])
5066ENABLE_HYPHEN=
5067
5068if test "x$enable_hyphen" != "xno" ; then
5069    AC_MSG_CHECKING([which libhyphen to use])
5070    if test -n "$with_system_hyphen" -o -n "$with_system_libs" && \
5071        test "$with_system_hyphen" != "no"; then
5072        AC_MSG_RESULT([external])
5073        SYSTEM_HYPH=YES
5074        AC_CHECK_HEADER(hyphen.h, [],
5075        [ AC_MSG_ERROR(libhyphen headers not found.)], [])
5076        AC_CHECK_MEMBER(struct _HyphenDict.cset, [],
5077        [ AC_MSG_ERROR(no. You are sure you have libhyphen headers?)],
5078        [#include <hyphen.h>])
5079        AC_CHECK_LIB(hyphen, hnj_hyphen_hyphenate2, [HYPHEN_LIB=-lhyphen],
5080            [ AC_MSG_ERROR(libhyphen not found or too old.)], [])
5081        if test -z "$HYPHEN_LIB"; then
5082        AC_CHECK_LIB(hyph, hnj_hyphen_hyphenate2, [HYPHEN_LIB=-lhyph],
5083            [ AC_MSG_ERROR(libhyphen not found or too old.)], [])
5084        fi
5085        if test -z "$HYPHEN_LIB"; then
5086        AC_CHECK_LIB(hnj, hnj_hyphen_hyphenate2, [HYPHEN_LIB=-lhnj],
5087            [ AC_MSG_ERROR(libhyphen not found or too old.)], [])
5088        fi
5089    else
5090        AC_MSG_RESULT([internal])
5091        SYSTEM_HYPH=NO
5092        BUILD_TYPE="$BUILD_TYPE HYPHEN"
5093    fi
5094    ENABLE_HYPHEN=YES
5095    AC_SUBST(SYSTEM_HYPH)
5096    AC_SUBST(HYPHEN_LIB)
5097else
5098    AC_MSG_RESULT([no])
5099fi
5100AC_SUBST(ENABLE_HYPHEN)
5101
5102
5103#dnl ===================================================================
5104#dnl Check whether we are allowed to bundle dictionaries and whether
5105#dnl hunspell is available.
5106#dnl ===================================================================
5107ENABLE_BUNDLED_DICTIONARIES=
5108if test "x$enable_bundled_dictionaries" != "xno" -a "x$ENABLE_HUNSPELL" = "xYES"; then
5109   ENABLE_BUNDLED_DICTIONARIES=YES
5110fi
5111AC_SUBST(ENABLE_BUNDLED_DICTIONARIES)
5112
5113
5114
5115dnl ===================================================================
5116dnl Checking for mythes
5117dnl ===================================================================
5118AC_MSG_CHECKING([which mythes to use])
5119if test -n "$with_system_mythes" -o -n "$with_system_libs" && \
5120   test "$with_system_mythes" != "no"; then
5121    AC_MSG_RESULT([external])
5122    SYSTEM_MYTHES=YES
5123    AC_LANG_PUSH([C++])
5124    PKG_CHECK_MODULES(MYTHES, mythes, MYTHES_PKGCONFIG=yes, MYTHES_PKGCONFIG=no)
5125    if test "$MYTHES_PKGCONFIG" = "no"; then
5126        AC_CHECK_HEADER(mythes.hxx, [],
5127            [ AC_MSG_ERROR(mythes.hxx headers not found.)], [])
5128        AC_CHECK_LIB(mythes-1.2, main, [],
5129            [ MYTHES_FOUND=no], [])
5130 	if test "$MYTHES_FOUND" = "no"; then
5131            AC_CHECK_LIB(mythes, main, [MYTHES_FOUND=yes],
5132                [ MYTHES_FOUND=no], [])
5133	fi
5134	if test "$MYTHES_FOUND" = "no"; then
5135		AC_MSG_ERROR([mythes library not found!.])
5136	fi
5137    fi
5138    AC_LANG_POP([C++])
5139else
5140    AC_MSG_RESULT([internal])
5141    SYSTEM_MYTHES=NO
5142    BUILD_TYPE="$BUILD_TYPE MYTHES"
5143fi
5144AC_SUBST(SYSTEM_MYTHES)
5145AC_SUBST(MYTHES_CFLAGS)
5146AC_SUBST(MYTHES_LIBS)
5147
5148
5149dnl ===================================================================
5150dnl Checking for libtextcat
5151dnl ===================================================================
5152AC_MSG_CHECKING([which libtextcat to use])
5153if test -n "$with_system_libtextcat" && test "$with_system_libtextcat" != "no"; then
5154    AC_MSG_RESULT([external])
5155    SYSTEM_LIBTEXTCAT=YES
5156    AC_CHECK_HEADER(libtextcat/textcat.h, [],
5157       [ AC_MSG_ERROR(libtextcat headers not found.)], [])
5158    AC_CHECK_LIB(textcat, special_textcat_Init, ,
5159        [ AC_MSG_ERROR(libtextcat library not found or not suitable. libtextcat typically needs to be patched)], [])
5160else
5161    AC_MSG_RESULT([internal])
5162    SYSTEM_LIBTEXTCAT=NO
5163    BUILD_TYPE="$BUILD_TYPE LIBTEXTCAT"
5164fi
5165AC_SUBST(SYSTEM_LIBTEXTCAT)
5166
5167AC_MSG_CHECKING([which libtextcat data directory to use])
5168if test -n "$with_system_libtextcat_data" && test "$with_system_libtextcat_data" != "no"; then
5169    if test "$with_system_libtextcat_data" = "yes"; then
5170        SYSTEM_LIBTEXTCAT_DATA=file:///usr/share/libtextcat
5171    else
5172        SYSTEM_LIBTEXTCAT_DATA=file://$with_system_libtextcat_data
5173    fi
5174    AC_MSG_RESULT([$SYSTEM_LIBTEXTCAT_DATA])
5175else
5176    AC_MSG_RESULT([internal])
5177    BUILD_TYPE="$BUILD_TYPE LIBTEXTCATDATA"
5178fi
5179AC_SUBST(SYSTEM_LIBTEXTCAT_DATA)
5180
5181dnl ***************************************
5182dnl testing libc version for Linux...
5183dnl ***************************************
5184if test "$_os" = "Linux"; then
5185   AC_MSG_CHECKING([whether libc is >= 2.1.1])
5186   exec 6>/dev/null # no output
5187   AC_CHECK_LIB(c, gnu_get_libc_version, HAVE_LIBC=yes; export HAVE_LIBC)
5188   exec 6>&1 # output on again
5189   if test "$HAVE_LIBC"; then
5190      AC_MSG_RESULT([yes])
5191   else
5192      AC_MSG_ERROR([no, upgrade libc])
5193   fi
5194fi
5195
5196if test "$_os" != "WNT"; then
5197  AC_CHECK_FUNCS(getopt, HAVE_GETOPT=YES, [HAVE_GETOPT=NO])
5198  AC_CHECK_FUNCS(readdir_r, HAVE_READDIR_R=YES, [HAVE_READDIR_R=NO])
5199  if test "$HAVE_GETOPT" = "YES" -a "$HAVE_READDIR_R" = "YES"; then
5200	SYSTEM_LIBC=YES
5201  fi
5202else
5203  HAVE_GETOPT=NO
5204  HAVE_READDIR_R=NO
5205  SYSTEM_LIBC=YES
5206fi
5207AC_SUBST(HAVE_GETOPT)
5208AC_SUBST(HAVE_READDIR_R)
5209AC_SUBST(SYSTEM_LIBC)
5210
5211dnl =========================================
5212dnl Check for the Microsoft Platform SDK.
5213dnl =========================================
5214dnl FIXME: I don't know yet if PSDK works with MinGW, keep it until I know better,
5215dnl and add "-a \( "$WITH_MINGWIN" != "yes" \)" then
5216if test \( "$_os" = "WINNT" \) ; then
5217	AC_MSG_CHECKING([for PSDK files])
5218	if test -z "$with_psdk_home"; then
5219		# This first line will detect a February 2003 Microsoft Platform SDK
5220		PSDK_HOME=`$OOWINTOOL --psdk-home`
5221        # But there might be also an April 2005 PSDK, unfortunately MS changed
5222        # the registry entry. (we prefer the old version!?)
5223        if test -z "$PSDK_HOME"; then
5224          PSDK_HOME=`cat /proc/registry/HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MicrosoftSDK/InstalledSDKs/*/Install\ Dir 2> /dev/null | tr '\000' '\n' | head -n 1`
5225        fi
5226            # normalize if found
5227            if test -n "$PSDK_HOME"; then
5228              PSDK_HOME=`cygpath -d "$PSDK_HOME"`
5229              PSDK_HOME=`cygpath -u "$PSDK_HOME"`
5230           fi
5231	else
5232           PSDK_HOME=`cygpath -u "$with_psdk_home"`
5233	fi
5234        # Remove a possible trailing backslash
5235        PSDK_HOME=`echo $PSDK_HOME | $SED 's/\/$//'`
5236    # Problem with current PSDK (iz 49865)
5237    if test -f "$PSDK_HOME/Lib/libcp.lib"; then
5238        AC_MSG_ERROR([
5239
5240Some modules do not build correctly with MS Platform SDK - April 2005
5241Edition if the library ($PSDK_HOME/Lib/libcp.lib) is found.
5242Remove/rename/backup that file and restart configure. Details about this
5243problem can be found in issue 49856.])
5244    fi
5245# Windows SDK has different headers
5246	if test \( -f "$PSDK_HOME/Include/adoint.h" \) \
5247		 -a \( -f "$PSDK_HOME/Include/SqlUcode.h" \) \
5248		 -a \( -f "$PSDK_HOME/Include/usp10.h" \); then
5249		HAVE_PSDK_H="yes"
5250	else
5251		HAVE_PSDK_H="no"
5252	fi
5253	if test -f "$PSDK_HOME/lib/unicows.lib"; then
5254		HAVE_PSDK_LIB="yes"
5255	else
5256		HAVE_PSDK_LIB="no"
5257	fi
5258    if test "$HAVE_PSDK_H" = "no" -o "$HAVE_PSDK_LIB" = "no"; then
5259        AC_MSG_ERROR([Some (all?) PSDK files not found, please check if all needed Platform SDKs
5260are installed or use --with-psdk-home .])
5261    fi
5262    if test ! -x "$PSDK_HOME/bin/msiinfo.exe" \
5263         -o ! -x "$PSDK_HOME/bin/msidb.exe" \
5264         -o ! -x "$PSDK_HOME/bin/uuidgen.exe" \
5265         -o ! -x "$PSDK_HOME/bin/msitran.exe" ; then
5266        AC_MSG_ERROR([Some (all) files of the Windows Installer SDK are missing, please install.])
5267    fi
5268    AC_MSG_RESULT([SDK files found ...)])
5269dnl Check if this is the right SDK.
5270    if echo $PSDK_HOME | $GREP "v6.1" >/dev/null 2>/dev/null; then
5271        AC_MSG_RESULT([Found Windows SDK 6.1 ($PSDK_HOME)])
5272        WINDOWS_VISTA_PSDK=TRUE
5273    elif echo $PSDK_HOME | $GREP "v6.0" >/dev/null 2>/dev/null; then
5274        AC_MSG_RESULT([Found Windows SDK 6.0 ($PSDK_HOME)])
5275        WINDOWS_VISTA_PSDK=TRUE
5276    elif echo $PSDK_HOME | $GREP "v7.0" >/dev/null 2>/dev/null; then
5277        AC_MSG_RESULT([Found Windows SDK 7.0 ($PSDK_HOME)])
5278        WINDOWS_VISTA_PSDK=TRUE
5279    else
5280        AC_MSG_RESULT([Found Legacy Windows Platform SDK ($PSDK_HOME)])
5281    fi
5282fi
5283AC_SUBST(PSDK_HOME)
5284AC_SUBST(WINDOWS_VISTA_PSDK)
5285
5286dnl =========================================
5287dnl Check for the Microsoft DirectX SDK.
5288dnl =========================================
5289if test \( "$_os" = "WINNT" \) ; then
5290    AC_MSG_CHECKING([for DirectX SDK files])
5291    if test -z "$with_directx_home"; then
5292        dnl A standard installation of the DirectX SDK sets $DXSDK_DIR
5293        if test -n "$DXSDK_DIR"; then
5294            DIRECTXSDK_HOME=`cygpath -d "$DXSDK_DIR"`
5295            DIRECTXSDK_HOME=`cygpath -u "$DIRECTXSDK_HOME"`
5296        fi
5297        # At this point $DIRECTXSDK_HOME might still be undefined. This will lead to
5298        # the "DirectX SDK files not found" error later
5299    else
5300	DIRECTXSDK_HOME=`cygpath -u "$with_directx_home"`
5301    fi
5302    # Remove a possible trailing backslash
5303    DIRECTXSDK_HOME=`echo $DIRECTXSDK_HOME | $SED 's/\/$//'`
5304
5305    if test -f "$DIRECTXSDK_HOME/Include/ddraw.h" ; then
5306        HAVE_DIRECTDRAW_H="yes"
5307    else
5308        HAVE_DIRECTDRAW_H="no"
5309    fi
5310    if test -f "$DIRECTXSDK_HOME/Include/d3d9.h" ; then
5311        HAVE_DIRECTXSDK_H="yes"
5312    else
5313        HAVE_DIRECTXSDK_H="no"
5314    fi
5315
5316    # MS changed the location of the libraries with dec 2004 directx sdk
5317    if test -d "$DIRECTXSDK_HOME/lib/x86" ; then
5318        DIRECTXSDK_LIB="$DIRECTXSDK_HOME/lib/x86"
5319    else
5320        DIRECTXSDK_LIB="$DIRECTXSDK_HOME/lib"
5321    fi
5322    if test -f "$DIRECTXSDK_LIB/ddraw.lib" ; then
5323        HAVE_DIRECTDRAW_LIB="yes"
5324    else
5325        HAVE_DIRECTDRAW_LIB="no"
5326    fi
5327    if test -f "$DIRECTXSDK_LIB/d3d9.lib" ; then
5328        HAVE_DIRECTXSDK_LIB="yes"
5329    else
5330        HAVE_DIRECTXSDK_LIB="no"
5331    fi
5332
5333    if test "$HAVE_DIRECTDRAW_H" = "yes" -a "$HAVE_DIRECTDRAW_LIB" = "yes" ; then
5334       ENABLE_DIRECT_DRAW="TRUE"
5335    fi
5336    if test "$HAVE_DIRECTXSDK_H" = "yes" -a "$HAVE_DIRECTXSDK_LIB" = "yes" ; then
5337       HAVE_DIRECTXSDK="yes"
5338    else
5339       HAVE_DIRECTXSDK="no"
5340    fi
5341
5342    if test -n "$ENABLE_DIRECTX"; then
5343	    if test "$HAVE_DIRECTDRAW" = "yes" -o "$HAVE_DIRECTXSDK" = "yes" ; then
5344		    AC_MSG_RESULT([found])
5345	    else
5346		    AC_MSG_ERROR([DirectX SDK files not found, please use --with-directx-home or --disable-directx.])
5347	    fi
5348    else
5349		DIRECTXSDK_HOME=""
5350		AC_MSG_RESULT([disabled])
5351    fi
5352fi
5353AC_SUBST(ENABLE_DIRECT_DRAW)
5354AC_SUBST(DIRECTXSDK_HOME)
5355AC_SUBST(DIRECTXSDK_LIB)
5356
5357
5358dnl ============================================
5359dnl Check for ATL and MFC
5360dnl ============================================
5361if test \( "$_os" = "WINNT" \) ; then
5362    AC_MSG_CHECKING([for ATL and MFC])
5363    if test "$DISABLE_ATL" = "TRUE"; then
5364        AC_MSG_RESULT([ATL is disabled, nothing to check])
5365    else
5366        AC_MSG_NOTICE([testing ATL/MFC libs and includes])
5367        if test -z "$with_atl_include_dir"; then
5368            ATL_INCLUDE=$COMPATH/atlmfc/include
5369        else
5370            ATL_INCLUDE=`cygpath -u "$with_atl_include_dir"`
5371        fi
5372        if test -z "$with_atl_lib_dir"; then
5373            ATL_LIB=$COMPATH/atlmfc/lib
5374        ATL_LIB_X64=$COMPATH/atlmfc/lib/amd64
5375        else
5376            ATL_LIB=`cygpath -u "$with_atl_lib_dir"`
5377            ATL_LIB_X64=$ATL_LIB/../amd64
5378        fi
5379        if test -z "$with_mfc_include_dir"; then
5380            MFC_INCLUDE=$COMPATH/atlmfc/include
5381        else
5382            MFC_INCLUDE=`cygpath -u "$with_mfc_include_dir"`
5383        fi
5384        if test -z "$with_mfc_lib_dir"; then
5385            MFC_LIB=$COMPATH/atlmfc/lib
5386        else
5387            MFC_LIB=`cygpath -u "$with_mfc_lib_dir"`
5388        fi
5389
5390        ATL_INCLUDE=`echo $ATL_INCLUDE | $SED 's/\/$//'`
5391        ATL_LIB=`echo $ATL_LIB | $SED 's/\/$//'`
5392        ATL_LIB_X64=`echo $ATL_LIB_X64 | $SED 's/\/$//'`
5393        MFC_INCLUDE=`echo $MFC_INCLUDE | $SED 's/\/$//'`
5394        MFC_LIB=`echo $MFC_LIB | $SED 's/\/$//'`
5395
5396        AC_MSG_NOTICE([looking for atlbase.h in "$ATL_INCLUDE"])
5397        if test -f "$ATL_INCLUDE/atlbase.h"; then
5398            HAVE_ATL_H="yes"
5399        else
5400            HAVE_ATL_H="no"
5401        fi
5402        AC_MSG_NOTICE([found atlbase.h in "$ATL_INCLUDE"? "$HAVE_ATL_H"])
5403
5404        AC_MSG_NOTICE([looking for afx.h in "$MFC_INCLUDE"])
5405        if test -f "$MFC_INCLUDE/afx.h"; then
5406            HAVE_MFC_H="yes"
5407        else
5408            HAVE_MFC_H="no"
5409        fi
5410        AC_MSG_NOTICE([found afx.h in "$MFC_INCLUDE"? "$HAVE_MFC_H"])
5411
5412        AC_MSG_NOTICE([looking for atls.lib in "$ATL_LIB"])
5413        if test -f "$ATL_LIB/atls.lib"; then
5414            HAVE_ATL_LIB="yes"
5415            AC_MSG_NOTICE([looking for atlthunk.lib in "$ATL_LIB"])
5416            if test -f "$ATL_LIB/atlthunk.lib"; then
5417                HAVE_ATLTHUNK="YES"
5418            else
5419                HAVE_ATLTHUNK="NO"
5420            fi
5421            AC_MSG_NOTICE([found atlthunk.lib in "$ATL_LIB"? "$HAVE_ATLTHUNK"])
5422        else
5423            HAVE_ATL_LIB="no"
5424        fi
5425        AC_MSG_NOTICE([found atls.lib in "$ATL_LIB"? "$HAVE_ATL_LIB"])
5426
5427        dnl TODO check also MFC libraries, they seem to have different names
5428        dnl mfc42.lib mfc90.lib
5429        if test -d "$MFC_LIB"; then
5430            HAVE_MFC_LIB="yes"
5431        else
5432            HAVE_MFC_LIB="no"
5433        fi
5434
5435        if test "$HAVE_ATL_H" = "no" -o "$HAVE_MFC_H" = "no" -o "$HAVE_ATL_LIB" = "no" -o "$HAVE_MFC_LIB" = "no"; then
5436            ATL_INCLUDE=
5437            ATL_LIB=
5438            ATL_LIB_X64=
5439            MFC_INCLUDE=
5440            MFC_LIB=
5441            HAVE_ATL_LIB=
5442            dnl TODO shouldn't this be an error?
5443            DISABLE_ACTIVEX="TRUE"
5444            DISABLE_ATL="TRUE"
5445            AC_MSG_RESULT([ATL/MFC disabled])
5446        else
5447            ATL_INCLUDE=`cygpath -dm "$ATL_INCLUDE"`
5448            ATL_LIB=`cygpath -dm "$ATL_LIB"`
5449            ATL_LIB_X64=`cygpath -dm "$ATL_LIB_X64"`
5450            MFC_INCLUDE=`cygpath -dm "$MFC_INCLUDE"`
5451            MFC_LIB=`cygpath -dm "$MFC_LIB"`
5452            AC_MSG_RESULT([ATL/MFC enabled])
5453        fi
5454    fi
5455fi
5456AC_SUBST(ATL_INCLUDE)
5457AC_SUBST(ATL_LIB)
5458AC_SUBST(ATL_LIB_X64)
5459AC_SUBST(HAVE_ATLTHUNK)
5460AC_SUBST(MFC_INCLUDE)
5461AC_SUBST(MFC_LIB)
5462
5463
5464dnl ============================================
5465dnl Check for Nullsoft Scriptable Install System
5466dnl ============================================
5467NSIS_PATH=""
5468if test "$_os" = "WINNT" ; then
5469    AC_MSG_CHECKING([for NSIS])
5470    AC_PATH_PROG(NSIS_PATH, nsis.exe)
5471    if test -n "$NSIS_PATH"; then
5472        NSIS_PATH=`dirname "$NSIS_PATH"`
5473    fi
5474    if test -n "$with_nsis_path"; then
5475        with_nsis_path=`cygpath -u "$with_nsis_path"`
5476    fi
5477    if test -e "$with_nsis_path/nsis.exe"; then
5478        NSIS_PATH="$with_nsis_path"
5479    fi
5480    nsistest=`$OOWINTOOL --nsis-dir`;
5481    if test -x "$nsistest/nsis.exe"; then
5482        NSIS_PATH="$nsistest"
5483    fi
5484    if test -z "$NSIS_PATH"; then
5485        AC_MSG_WARN([NSIS not found, no self contained installer will be build.])
5486        echo "NSIS not found, no self contained installer will be build." >> warn
5487    else
5488        NSIS_PATH=`cygpath -d "$NSIS_PATH"`
5489        NSIS_PATH=`cygpath -u "$NSIS_PATH"`
5490        AC_MSG_RESULT([found ($NSIS_PATH)])
5491		AC_MSG_CHECKING([whether NSIS version is >= 3.*])
5492		nsis_version_string=`"$NSIS_PATH/makensis.exe" /VERSION | $SED -e s/^v//i`
5493        nsis_version_major=`echo $nsis_version_string | cut -d. -f1`
5494		nsis_version_minor=`echo $nsis_version_string | cut -d. -f2`
5495		if test "$nsis_version_major" -ge "3"; then
5496			AC_MSG_RESULT([found NSIS $nsis_version_major.$nsis_version_minor >= 3.*])
5497			AC_MSG_CHECKING([whether NSIS was compiled with Unicode support])
5498			if echo `"$NSIS_PATH/makensis.exe" /HDRINFO` | $EGREP  "\bNSIS_UNICODE_MAKENSIS\b" 2>&1 >/dev/null; then
5499				AC_MSG_RESULT([NSIS version compiled with Unicode support.])
5500			else
5501				NSIS_PATH=""
5502				AC_MSG_WARN([NSIS version compiled without Unicode support, no self contained installer will be build.])
5503			fi
5504		else
5505			NSIS_PATH=""
5506			AC_MSG_WARN([NSIS version found is < 3.*, no self contained installer will be build.])
5507		fi
5508    fi
5509fi
5510AC_SUBST(NSIS_PATH)
5511
5512dnl ***************************************
5513dnl testing bison and flex exist
5514dnl ***************************************
5515AC_PATH_PROG(BISON, bison)
5516if test -z "$BISON"; then
5517   AC_MSG_ERROR([no bison found in \$PATH, install bison])
5518else
5519   AC_MSG_CHECKING([the bison version])
5520   _bison_version=`$BISON --version | $GREP GNU | $SED -e 's@^[[^0-9]]*@@' -e 's@ .*@@' -e 's@,.*@@'`;
5521    _bison_longver=`echo $_bison_version | $AWK -F. '{ print \$1*1000+\$2}'`
5522    # Accept newer than 1.875 or older(equal) than 1.75
5523    if test "$_bison_longver" -ge 1875 -o "$_bison_longver" -le 1075; then
5524       if test "$_bison_version" = "1.875" ; then
5525          AC_MSG_WARN([suspect ($BISON $_bison_version)])
5526          echo "Suspect ($BISON $_bison_version) suggest upgrade" >> warn
5527       else
5528          AC_MSG_RESULT([checked ($BISON $_bison_version)])
5529       fi
5530    else
5531       AC_MSG_ERROR([failed ($BISON $_bison_version need 1.875+ (or 1.75 and older))])
5532    fi
5533fi
5534AC_PATH_PROG(FLEX, flex)
5535if test -z "$FLEX"; then
5536   AC_MSG_ERROR([no flex found in \$PATH, install flex])
5537fi
5538dnl ***************************************
5539dnl testing that patch exists
5540dnl ***************************************
5541AC_PATH_PROG(PATCH, patch)
5542if test -z "$PATCH"; then
5543   AC_MSG_ERROR([\"patch\" not found in \$PATH, install the development tool named\"patch"\])
5544fi
5545
5546dnl On Solaris, FreeBSD or MacOS X, check if --with-gnu-patch was used
5547if test "$_os" = "SunOS" -o "$_os" = "FreeBSD" -o "$_os" = "Darwin"; then
5548   if test -z "$with_gnu_patch"; then
5549      GNUPATCH=$PATCH
5550   else
5551      if test -x "$with_gnu_patch"; then
5552	      GNUPATCH=$with_gnu_patch
5553      else
5554         AC_MSG_ERROR([--with-gnu-patch did not point to an executable])
5555      fi
5556   fi
5557
5558   AC_MSG_CHECKING([whether $GNUPATCH is GNU patch])
5559   if $GNUPATCH --version | $GREP "Free Software Foundation" >/dev/null 2>/dev/null; then
5560	   AC_MSG_RESULT([yes])
5561   else
5562      AC_MSG_ERROR([no, GNU patch needed. install or specify with --with-gnu-patch=/path/to/it])
5563   fi
5564fi
5565
5566dnl We also need to check for --with-gnu-cp
5567
5568if test -z "$with_gnu_cp"; then
5569   # check the place where the GNU stuff is hidden on Solaris...
5570   if test -x /usr/gnu/bin/cp; then
5571      GNUCP=/usr/gnu/bin/cp
5572   else
5573      AC_PATH_PROGS(GNUCP, gnucp cp)
5574   fi
5575   if test -z $GNUCP; then
5576      AC_MSG_ERROR([Neither gnucp nor cp found. Install GNU cp and/or specify --with-gnu-cp=/path/to/it])
5577   fi
5578else
5579   if test -x "$with_gnu_cp"; then
5580      GNUCP=$with_gnu_cp
5581   else
5582      AC_MSG_ERROR([--with-gnu-cp did not point to an executable])
5583   fi
5584fi
5585
5586AC_MSG_CHECKING([whether $GNUCP is GNU cp from coreutils with preserve= support])
5587if $GNUCP --version 2>/dev/null | $GREP "coreutils" >/dev/null 2>/dev/null; then
5588   AC_MSG_RESULT([yes])
5589else
5590   AC_MSG_RESULT([no])
5591   GNUCP=''
5592fi
5593
5594if test -z "$GNUCP"; then
5595   if test "$_os" = "SunOS"; then
5596      AC_MSG_ERROR([no, GNU cp from coreutils is needed. install or specify with --with-gnu-cp=/path/to/it])
5597   else
5598      AC_MSG_RESULT([no GNU cp from coreutils found - using the system's cp command])
5599   fi
5600fi
5601
5602AC_SUBST(GNUPATCH)
5603AC_SUBST(GNUCP)
5604
5605dnl ***************************************
5606dnl testing bash tools path on Windows
5607dnl ***************************************
5608if test "$_os" = "WINNT"; then
5609    CYGWIN_PATH=""
5610    AC_PATH_PROG(CYGWIN_PATH, bash)
5611    CYGWIN_PATH=`dirname "$CYGWIN_PATH"`
5612fi
5613if test -z "$CYGWIN_PATH"; then
5614   CYGWIN_PATH="NO_CYGWIN"
5615fi
5616AC_SUBST(CYGWIN_PATH)
5617
5618dnl ***************************************
5619dnl testing ml.exe assembler path
5620dnl ***************************************
5621if test "$_os" = "WINNT" -a "$WITH_MINGWIN" != "yes"; then
5622  AC_MSG_CHECKING([ml.exe assembler path])
5623  if test -n "$with_asm_home"; then
5624    with_asm_home=`cygpath -u "$with_asm_home"`
5625  fi
5626  if test ! -x "$with_asm_home/ml.exe"; then
5627    AC_PATH_PROG(ML_EXE, ml.exe)
5628    if test -z "$ML_EXE"; then
5629      if test -x "$with_cl_home/bin/ml.exe"; then
5630        with_asm_home=$with_cl_home/bin
5631        AC_MSG_RESULT([found ($with_asm_home)])
5632      else
5633        AC_MSG_ERROR([Configure did not find ml.exe assembler.])
5634      fi
5635    else
5636       with_asm_home="ASM_IN_PATH"
5637    fi
5638  fi
5639  AC_MSG_RESULT([$ASM_HOME])
5640else
5641  with_asm_home="NO_ASM_HOME"
5642fi
5643ASM_HOME="$with_asm_home"
5644AC_SUBST(ASM_HOME)
5645
5646dnl ***************************************
5647dnl testing nasm.exe assembler path
5648dnl ***************************************
5649if test "$_os" = "WINNT" -a "$WITH_MINGWIN" != "yes" -a "$SYSTEM_OPENSSL" = "NO"; then
5650  AC_MSG_CHECKING([nasm.exe assembler path])
5651  if test -n "$with_nasm_home"; then
5652    with_nasm_home=`cygpath -u "$with_nasm_home"`
5653  fi
5654  if test ! -x "$with_nasm_home/nasm.exe"; then
5655    AC_PATH_PROG(NASM_EXE, nasm.exe)
5656    if test -z "$NASM_EXE"; then
5657      with_nasm_home="NO_NASM_HOME"
5658      AC_MSG_ERROR([NASM is required to build on Windows, please install or use --with-nasm-home],,)
5659    else
5660      with_nasm_home="NASM_IN_PATH"
5661    fi
5662  fi
5663  AC_MSG_RESULT([$NASM_HOME])
5664else
5665  with_nasm_home="NO_NASM_HOME"
5666fi
5667NASM_HOME="$with_nasm_home"
5668AC_SUBST(NASM_HOME)
5669
5670dnl ===================================================================
5671dnl testing handle deprecated unzip switch
5672dnl ===================================================================
5673if test -z "$with_zip_home"; then
5674	with_zip_home="$with_unzip_home"
5675fi
5676dnl ===================================================================
5677dnl Zip will be found where you tell me to find it
5678dnl ===================================================================
5679if test -n "$with_zip_home" ; then
5680    if test "$_os" = "WINNT"; then
5681        with_zip_home=`cygpath -u "$with_zip_home"`
5682    fi
5683    ZIP="$with_zip_home/zip"
5684    UNZIP="$with_zip_home/unzip"
5685    ZIP_HOME="$with_zip_home"
5686else
5687    AC_PATH_PROG(ZIP, zip)
5688    AC_PATH_PROG(UNZIP, unzip)
5689    ZIP_HOME=`dirname "$ZIP"`
5690fi
5691dnl ===================================================================
5692dnl Zip must be available or else it is an error, all platforms
5693dnl ===================================================================
5694if test -z "$ZIP" -o -z "$UNZIP"; then
5695    AC_MSG_ERROR([Zip/Unzip are required to build, please install or use --with-zip-home],,)
5696fi
5697if "$ZIP" -FS < /dev/null 2>&1 | $EGREP "no such option: S" > /dev/null; then
5698    AC_MSG_ERROR([Zip version 3.0 or newer is required to build, please install or use --with-zip-home],,)
5699fi
5700
5701dnl ===================================================================
5702dnl Zip must be a specific type for different build types.
5703dnl ===================================================================
5704if test "$_os" = "WINNT"; then
5705    if test -n "`$ZIP -h | $GREP -i WinNT`" ; then
5706AC_MSG_ERROR([$ZIP found in the path is not the required cygwin version of Info-ZIPs zip.exe.])
5707    fi
5708fi
5709AC_SUBST(ZIP_HOME)
5710
5711dnl ===================================================================
5712dnl Windows builds need dbghelp.dll in external/dbghelp/
5713dnl ===================================================================
5714if test "$_os" = "WINNT"; then
5715   AC_MSG_CHECKING([for dbghelp.dll])
5716   if test -x ./external/dbghelp/dbghelp.dll; then
5717      AC_MSG_RESULT([found and executable])
5718   else
5719      AC_MSG_ERROR([dbghelp.dll is missing in external/dbghelp/.
5720Get it from the Microsoft site and put it into external/dbghelp.
5721(Note: Microsoft seems to enjoy changing the exact location of this file. You
5722may have to search Microsoft's website.) Last time it was seen at:
5723<https://www.microsoft.com/downloads/release.asp?releaseid=30682>.])
5724   fi
5725fi
5726
5727dnl ===================================================================
5728dnl Windows builds need vcredist_x*.exe in external/vcredist/
5729dnl ===================================================================
5730WITH_VC_REDIST=""
5731
5732if test "$_os" = "WINNT"; then
5733   AC_MSG_CHECKING([for vcredist_x86.exe])
5734   if test -x ./external/vcredist/vcredist_x86.exe; then
5735      AC_MSG_RESULT([found and executable])
5736   else
5737      AC_MSG_ERROR([ vcredist_x86.exe is missing in external/vcredist/.
5738Get it from the Microsoft site and put it into external/vcredist. You can try
5739to download it from https://www.microsoft.com/download/en/search.aspx?q=redistributable%20package.])
5740   fi
5741   AC_MSG_CHECKING([for vcredist_x64.exe])
5742   if test -x ./external/vcredist/vcredist_x64.exe; then
5743      AC_MSG_RESULT([found and executable])
5744   else
5745      AC_MSG_ERROR([ vcredist_x64.exe is missing in external/vcredist/.
5746Get it from the Microsoft site and put it into external/vcredist. You can try
5747to download it from https://www.microsoft.com/download/en/search.aspx?q=redistributable%20package.])
5748   fi
5749   WITH_VC_REDIST=YES
5750   AC_SUBST(WITH_VC_REDIST)
5751fi
5752
5753dnl ===================================================================
5754dnl Windows builds - use oowintool to copy CRT dlls and manifest
5755dnl ===================================================================
5756if test "$_os" = "WINNT" -a "$WITH_MINGWIN" != "yes"; then
5757       if $OOWINTOOL --msvc-copy-dlls ./external/msvcp ; then
5758          :
5759       else
5760          AC_MSG_ERROR([oowintool failed to copy CRT])
5761       fi
5762fi
5763
5764dnl ===================================================================
5765dnl Windows builds need gdiplus.dll in external/gdiplus/
5766dnl ===================================================================
5767if test "$_os" = "WINNT"; then
5768   AC_MSG_CHECKING([for gdiplus.dll])
5769   if test -x ./external/gdiplus/gdiplus.dll; then
5770      AC_MSG_RESULT([found and executable])
5771   else
5772      AC_MSG_ERROR([gdiplus.dll is missing in external/gdiplus/.
5773Get it from the Microsoft site and put it into external/gdiplus.
5774You may have to search Microsoft's website. Last time it was seen at:
5775<https://www.microsoft.com/downloads/details.aspx?familyid=6A63AB9C-DF12-4D41-933C-BE590FEAA05A&displaylang=en>.])
5776   fi
5777fi
5778
5779dnl ===================================================================
5780dnl Windows builds need msvcr100.dll in external/msvcp100/
5781dnl ===================================================================
5782if test "$_os" = "WINNT"; then
5783   AC_MSG_CHECKING([for msvcr100.dll])
5784   if test -x ./external/msvcp100/msvcr100.dll; then
5785      AC_MSG_RESULT([found and executable])
5786   else
5787      AC_MSG_ERROR([msvcr100.dll is missing in external/msvcp100/.
5788Get it from the Microsoft Visual C++ 2010 Redistributable Package (x86),
5789from the Microsoft site and put it into external/msvcp100.
5790You may have to search Microsoft's website. Last time it was seen at:
5791<https://www.microsoft.com/en-us/download/search.aspx?q=Microsoft+Visual+C%2b%2b+2010+Redistributable>.])
5792   fi
5793fi
5794
5795dnl ===================================================================
5796dnl Test which vclplugs have to be built.
5797dnl ===================================================================
5798AC_MSG_CHECKING([which VCLplugs shall be built])
5799ENABLE_GTK=""
5800if test "x$enable_gtk" = "xyes"; then
5801    ENABLE_GTK="TRUE"
5802    R="gtk"
5803fi
5804AC_SUBST(ENABLE_GTK)
5805
5806ENABLE_KDE=""
5807if test "x$enable_kde" = "xyes"; then
5808    ENABLE_KDE="TRUE"
5809    R="$R kde"
5810fi
5811AC_SUBST(ENABLE_KDE)
5812
5813ENABLE_KDE4=""
5814if test "x$enable_kde4" = "xyes"; then
5815    ENABLE_KDE4="TRUE"
5816    R="$R kde4"
5817fi
5818AC_SUBST(ENABLE_KDE4)
5819
5820if test -z "$R"; then
5821	AC_MSG_RESULT([none])
5822else
5823	AC_MSG_RESULT([$R])
5824fi
5825
5826dnl ===================================================================
5827dnl GCONF check
5828dnl ===================================================================
5829
5830ENABLE_GCONF=""
5831AC_MSG_CHECKING([whether to enable GConf support])
5832if test "$_os" != "WINNT" -a "$_os" != "Darwin" -a "$_os" != "OS2" -a "$enable_gconf" = "yes"; then
5833    ENABLE_GCONF="TRUE"
5834    AC_MSG_RESULT([yes])
5835    PKG_CHECK_MODULES( GCONF, gconf-2.0 )
5836else
5837    AC_MSG_RESULT([no])
5838fi
5839AC_SUBST(ENABLE_GCONF)
5840
5841dnl ===================================================================
5842dnl Gnome VFS check
5843dnl ===================================================================
5844
5845ENABLE_GNOMEVFS=""
5846AC_MSG_CHECKING([whether to enable GNOME VFS support])
5847if test "$_os" != "WINNT" -a "$_os" != "Darwin" -a "$enable_gnome_vfs" = "yes"; then
5848    ENABLE_GNOMEVFS="TRUE"
5849    AC_MSG_RESULT([yes])
5850    PKG_CHECK_MODULES( GNOMEVFS, gnome-vfs-2.0 >= 2.6.0 )
5851    if test "$ENABLE_GCONF" != "TRUE"; then
5852        PKG_CHECK_MODULES( GCONF, gconf-2.0 )
5853    fi
5854else
5855    AC_MSG_RESULT([no])
5856fi
5857AC_SUBST(ENABLE_GNOMEVFS)
5858
5859dnl ===================================================================
5860dnl Check whether the gtk 2.0 libraries are available.
5861dnl ===================================================================
5862
5863GTK_CFLAGS=""
5864GTK_LIBS=""
5865ENABLE_SYSTRAY_GTK=""
5866ENABLE_DBUS=""
5867if test  "$test_gtk" = "yes"; then
5868
5869   if test "$ENABLE_GTK" = "TRUE" ; then
5870      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]))
5871      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]))
5872      BUILD_TYPE="$BUILD_TYPE GTK"
5873
5874      if test "x$enable_systray" = "xyes"; then
5875         PKG_CHECK_MODULES(GTK_2_10,gtk+-2.0 >= 2.10.0,
5876                           [ENABLE_SYSTRAY_GTK="TRUE"
5877                            BUILD_TYPE="$BUILD_TYPE SYSTRAY_GTK"],
5878                           [ENABLE_SYSTRAY_GTK=""])
5879      fi
5880
5881      AC_MSG_CHECKING([whether to enable DBUS support])
5882      if test "$_os" != "WINNT" -a "$_os" != "Darwin" -a "$enable_dbus" = "yes"; then
5883          ENABLE_DBUS="TRUE"
5884          AC_MSG_RESULT([yes])
5885          PKG_CHECK_MODULES( DBUS, dbus-glib-1 >= 0.70 )
5886      else
5887          AC_MSG_RESULT([no])
5888      fi
5889
5890      AC_MSG_CHECKING([whether to enable GIO support])
5891      if test "$_os" != "WINNT" -a "$_os" != "Darwin" -a "$enable_gio" = "yes"; then
5892          if test "$ENABLE_GNOMEVFS" = "TRUE" ; then
5893             AC_MSG_ERROR([please use --enable-gio only together with --disable-gnome-vfs.])
5894          fi
5895          ENABLE_GIO="TRUE"
5896          AC_MSG_RESULT([yes])
5897          PKG_CHECK_MODULES( GIO, gio-2.0 )
5898      else
5899          AC_MSG_RESULT([no])
5900      fi
5901
5902   fi
5903
5904fi
5905AC_SUBST(ENABLE_GIO)
5906AC_SUBST(ENABLE_DBUS)
5907AC_SUBST(ENABLE_SYSTRAY_GTK)
5908AC_SUBST(GTK_CFLAGS)
5909AC_SUBST(GTK_LIBS)
5910AC_SUBST(GTHREAD_CFLAGS)
5911AC_SUBST(GTHREAD_LIBS)
5912
5913dnl ===================================================================
5914dnl Check whether the GStreamer libraries are available.
5915dnl ===================================================================
5916
5917GSTREAMER_CFLAGS=""
5918GSTREAMER_LIBS=""
5919ENABLE_GSTREAMER=""
5920
5921if test "$test_gstreamer" = "yes"; then
5922    AC_MSG_CHECKING([whether to build the GStreamer media backend])
5923    if test "x$enable_gstreamer" != "xno" ; then
5924        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]))
5925        ENABLE_GSTREAMER="TRUE"
5926        AC_MSG_RESULT([yes])
5927    else
5928        AC_MSG_RESULT([no])
5929    fi
5930fi
5931AC_SUBST(ENABLE_GSTREAMER)
5932AC_SUBST(GSTREAMER_CFLAGS)
5933AC_SUBST(GSTREAMER_LIBS)
5934
5935dnl ===================================================================
5936dnl Check the ARM target
5937dnl ===================================================================
5938
5939if echo "$build_cpu" | $GREP -q arm; then
5940    # default value
5941    ARM_TARGET=ARMV4T
5942    AC_MSG_CHECKING([which ARM processor optimization to use])
5943    if test "$with_arm_target" -lt "6"; then
5944	ARM_TARGET=ARMV4T
5945    elif test "$with_arm_target" = "6"; then
5946	ARM_TARGET=ARMV6
5947    elif test "$with_arm_target" -gt "6"; then
5948	ARM_TARGET=ARMV7
5949    fi
5950    AC_MSG_RESULT([$ARM_TARGET])
5951    AC_SUBST(ARM_TARGET)
5952fi
5953
5954dnl ===================================================================
5955dnl Check whether the Cairo libraries are available.
5956dnl ===================================================================
5957
5958ENABLE_CAIRO=""
5959BUILD_PIXMAN=""
5960SYSTEM_CAIRO=""
5961
5962if test  "$test_cairo" = "yes"; then
5963
5964    AC_MSG_CHECKING([whether to use cairo])
5965    if test "x$enable_cairo" != "xno" ; then
5966        ENABLE_CAIRO="TRUE"
5967	AC_MSG_RESULT([yes])
5968        AC_MSG_CHECKING([which cairo to use])
5969        if test -n "$with_system_cairo" -o -n "$with_system_libs" && \
5970           test "$with_system_cairo" != "no"; then
5971           AC_MSG_RESULT([external])
5972           SYSTEM_CAIRO=YES
5973
5974           PKG_CHECK_MODULES( CAIRO, cairo >= 1.0.2 )
5975	   if test "$_os" != "WINNT" -a "$_os" != "Darwin" -a "$ENABLE_FONTCONFIG" != "TRUE" ; then
5976	      AC_MSG_ERROR([Cairo library requires fontconfig.])
5977	   fi
5978           if test "$with_system_xrender_headers" = "yes"; then
5979              AC_MSG_CHECKING([whether Xrender.h defines PictStandardA8])
5980              AC_TRY_RUN([
5981#include <X11/extensions/Xrender.h>
5982
5983int main(int argc, char **argv) {
5984#ifdef PictStandardA8
5985      return 0;
5986#else
5987      return 1;
5988#endif
5989}
5990               ], [AC_MSG_RESULT([yes])], [AC_MSG_ERROR([no, X headers too old.])])
5991           fi
5992        else
5993           BUILD_TYPE="$BUILD_TYPE CAIRO"
5994	   dnl === compiler fails on pixman with 64bit architectures...===
5995	   if test "$build_cpu" != "x86_64"; then
5996	      BUILD_PIXMAN=YES
5997	   fi
5998           AC_MSG_RESULT([internal])
5999        fi
6000    else
6001	   AC_MSG_RESULT([no])
6002    fi
6003fi
6004
6005AC_SUBST(ENABLE_CAIRO)
6006AC_SUBST(BUILD_PIXMAN)
6007AC_SUBST(SYSTEM_CAIRO)
6008AC_SUBST(CAIRO_CFLAGS)
6009AC_SUBST(CAIRO_LIBS)
6010
6011ENABLE_CAIRO_CANVAS="FALSE"
6012if test "$enable_cairo_canvas" = "yes" -a "$ENABLE_CAIRO" = "TRUE" ; then
6013   ENABLE_CAIRO_CANVAS="TRUE"
6014fi
6015AC_SUBST(ENABLE_CAIRO_CANVAS)
6016
6017dnl ===================================================================
6018dnl Check whether the OpenGL libraries are available
6019dnl ===================================================================
6020
6021AC_MSG_CHECKING([whether to build the OpenGL Transitions component])
6022ENABLE_OPENGL=
6023
6024if test "x$enable_opengl" != "xno" ; then
6025   AC_MSG_RESULT([yes])
6026   AC_CHECK_HEADER(GL/gl.h, [],
6027                   [AC_MSG_ERROR([OpenGL headers not found])], [])
6028   AC_CHECK_LIB(GL, main, [],
6029     [AC_MSG_ERROR(libGL not installed or functional)], [])
6030   AC_CHECK_LIB(GLU, main, [],
6031     [AC_MSG_ERROR(libGLU not installed or functional)], [])
6032   ENABLE_OPENGL=TRUE
6033else
6034   AC_MSG_RESULT([no])
6035fi
6036
6037AC_SUBST(ENABLE_OPENGL)
6038
6039
6040AC_MSG_CHECKING([whether to build the PDF Import extension])
6041if test -n "$enable_pdfimport" -a "$enable_pdfimport" != "no"; then
6042  AC_MSG_RESULT([yes])
6043  ENABLE_PDFIMPORT=YES
6044
6045  dnl ===================================================================
6046  dnl Check for system poppler
6047  dnl ===================================================================
6048  AC_MSG_CHECKING([whether to use system pdf backend])
6049  if test -n "$with_system_poppler" -o -n "$with_system_libs" && \
6050       test "$with_system_poppler" != "no"; then
6051      AC_MSG_RESULT([external])
6052      SYSTEM_POPPLER=YES
6053      PKG_CHECK_MODULES( POPPLER, poppler >= 0.8.0 )
6054  else
6055      AC_MSG_RESULT([no])
6056      SYSTEM_POPPLER=NO
6057      ENABLE_PDFIMPORT=NO
6058  fi
6059else
6060   AC_MSG_RESULT([no])
6061   ENABLE_PDFIMPORT=NO
6062fi
6063AC_SUBST(ENABLE_PDFIMPORT)
6064AC_SUBST(SYSTEM_POPPLER)
6065AC_SUBST(POPPLER_CFLAGS)
6066AC_SUBST(POPPLER_LIBS)
6067
6068AC_MSG_CHECKING([whether to build the Wiki Publisher extension])
6069if test -n "$enable_wiki_publisher" -a "$enable_wiki_publisher" != "no" && test "$WITH_JAVA" != "no"; then
6070  AC_MSG_RESULT([yes])
6071  AC_MSG_CHECKING([for swext module])
6072  if test -d ./swext; then
6073   AC_MSG_RESULT([OK])
6074  else
6075   AC_MSG_ERROR([not existing. get it (did you get the -extensions tarball?)])
6076  fi
6077  ENABLE_MEDIAWIKI=YES
6078  BUILD_TYPE="$BUILD_TYPE SWEXT"
6079else
6080  AC_MSG_RESULT([no])
6081  ENABLE_MEDIAWIKI=NO
6082fi
6083AC_SUBST(ENABLE_MEDIAWIKI)
6084
6085if test "$ENABLE_MEDIAWIKI" = "YES"; then
6086  AC_MSG_CHECKING([which Servlet API Jar to use])
6087  if test -n "$with_system_servlet_api"; then
6088    AC_MSG_RESULT([external])
6089    SYSTEM_SERVLETAPI=YES
6090      if test -z "$SERVLETAPI_JAR"; then
6091	SERVLETAPI_JAR=/usr/share/java/servlet-api.jar
6092      fi
6093      AC_CHECK_FILE($SERVLETAPI_JAR, [],
6094             [AC_MSG_ERROR(servlet-api.jar not found.)], [])
6095  else
6096    AC_MSG_RESULT([internal])
6097    SYSTEM_SERVLETAPI=NO
6098    BUILD_TYPE="$BUILD_TYPE TOMCAT"
6099  fi
6100fi
6101AC_SUBST(SYSTEM_SERVLETAPI)
6102AC_SUBST(SERVLETAPI_JAR)
6103
6104AC_MSG_CHECKING([whether to build the Report Builder extension])
6105if test -n "$enable_report_builder" -a "$enable_report_builder" != "no" && test "$WITH_JAVA" != "no"; then
6106  AC_MSG_RESULT([yes])
6107  ENABLE_REPORTBUILDER=YES
6108  SYSTEM_JFREEREPORT=YES
6109  AC_MSG_CHECKING([for reportbuilder module])
6110  if test -d ./reportbuilder; then
6111    AC_MSG_RESULT([OK])
6112  else
6113    AC_MSG_ERROR([not existing. get it (did you get the -extensions tarball?)])
6114  fi
6115  AC_MSG_CHECKING([which jfreereport libs to use (for Report Builder extension)])
6116  AC_MSG_RESULT([external])
6117  if test -z $SAC_JAR; then
6118         SAC_JAR=/usr/share/java/sac.jar
6119  fi
6120  AC_CHECK_FILE($SAC_JAR, [],
6121         [AC_MSG_ERROR(sac.jar not found.)], [])
6122
6123  if test -z $LIBXML_JAR; then
6124    AC_CHECK_FILE(/usr/share/java/libxml-1.0.0.jar,
6125      [ LIBXML_JAR=/usr/share/java/libxml-1.0.0.jar ],
6126      [
6127        AC_CHECK_FILE(/usr/share/java/libxml.jar,
6128          [ LIBXML_JAR=/usr/share/java/libxml.jar ],
6129          [AC_MSG_ERROR(libxml.jar replacement not found.)]
6130        )
6131      ]
6132    )
6133  else
6134    AC_CHECK_FILE($LIBXML_JAR, [],
6135         [AC_MSG_ERROR(libxml.jar not found.)], [])
6136  fi
6137
6138  if test -z $FLUTE_JAR; then
6139    AC_CHECK_FILE(/usr/share/java/flute-1.3.0.jar,
6140      [ FLUTE_JAR=/usr/share/java/flute-1.3.0.jar ],
6141      [
6142        AC_CHECK_FILE(/usr/share/java/flute.jar,
6143          [ FLUTE_JAR=/usr/share/java/flute.jar ],
6144          [ AC_MSG_ERROR(flute-1.3.0.jar replacement not found.)]
6145        )
6146      ]
6147    )
6148  else
6149    AC_CHECK_FILE($FLUTE_JAR, [],
6150         [AC_MSG_ERROR(flute-1.3.0.jar not found.)], [])
6151  fi
6152
6153  if test -z $JFREEREPORT_JAR; then
6154    AC_CHECK_FILE(/usr/share/java/flow-engine-0.9.2.jar,
6155      [ JFREEREPORT_JAR=/usr/share/java/flow-engine-0.9.2.jar ],
6156      [
6157        AC_CHECK_FILE(/usr/share/java/flow-engine.jar,
6158          [ JFREEREPORT_JAR=/usr/share/java/flow-engine.jar ],
6159          [AC_MSG_ERROR(jfreereport.jar replacement not found.)]
6160        )
6161      ]
6162    )
6163  else
6164    AC_CHECK_FILE($JFREEREPORT_JAR, [],
6165         [AC_MSG_ERROR(jfreereport.jar not found.)], [])
6166  fi
6167
6168  if test -z $LIBLAYOUT_JAR; then
6169    AC_CHECK_FILE(/usr/share/java/liblayout-0.2.9.jar,
6170      [ LIBLAYOUT_JAR=/usr/share/java/liblayout-0.2.9.jar ],
6171      [
6172        AC_CHECK_FILE(/usr/share/java/liblayout.jar,
6173          [ LIBLAYOUT_JAR=/usr/share/java/liblayout.jar ],
6174          [AC_MSG_ERROR(liblayout.jar replacement not found.)]
6175        )
6176      ]
6177    )
6178  else
6179    AC_CHECK_FILE($LIBLAYOUT_JAR, [],
6180         [AC_MSG_ERROR(liblayout.jar not found.)], [])
6181  fi
6182
6183  if test -z $LIBLOADER_JAR; then
6184    AC_CHECK_FILE(/usr/share/java/libloader-1.0.0.jar,
6185      [ LIBLOADER_JAR=/usr/share/java/libloader-1.0.0.jar ],
6186      [
6187        AC_CHECK_FILE(/usr/share/java/libloader.jar,
6188          [ LIBLOADER_JAR=/usr/share/java/libloader.jar ],
6189          [AC_MSG_ERROR(libloader.jar replacement not found.)]
6190        )
6191      ]
6192    )
6193  else
6194    AC_CHECK_FILE($LIBLOADER_JAR, [],
6195         [AC_MSG_ERROR(libloader.jar not found.)], [])
6196  fi
6197
6198  if test -z $LIBFORMULA_JAR; then
6199    AC_CHECK_FILE(/usr/share/java/libformula-0.2.0.jar,
6200      [ LIBFORMULA_JAR=/usr/share/java/libformula-0.2.0.jar ],
6201      [
6202        AC_CHECK_FILE(/usr/share/java/libformula.jar,
6203          [ LIBFORMULA_JAR=/usr/share/java/libformula.jar ],
6204          [AC_MSG_ERROR(libformula.jar replacement not found.)]
6205        )
6206      ]
6207    )
6208  else
6209    AC_CHECK_FILE($LIBFORMULA_JAR, [],
6210         [AC_MSG_ERROR(libformula.jar not found.)], [])
6211  fi
6212
6213  if test -z $LIBREPOSITORY_JAR; then
6214    AC_CHECK_FILE(/usr/share/java/librepository-1.0.0.jar,
6215      [ LIBREPOSITORY_JAR=/usr/share/java/librepository-1.0.0.jar ],
6216      [
6217        AC_CHECK_FILE(/usr/share/java/librepository.jar,
6218          [ LIBREPOSITORY_JAR=/usr/share/java/librepository.jar ],
6219          [AC_MSG_ERROR(librepository.jar replacement not found.)]
6220        )
6221      ]
6222    )
6223  else
6224    AC_CHECK_FILE($LIBREPOSITORY_JAR, [],
6225         [AC_MSG_ERROR(librepository.jar not found.)], [])
6226  fi
6227
6228  if test -z $LIBFONTS_JAR; then
6229    AC_CHECK_FILE(/usr/share/java/libfonts-1.0.0.jar,
6230      [ LIBFONTS_JAR=/usr/share/java/libfonts-1.0.0.jar ],
6231      [
6232        AC_CHECK_FILE(/usr/share/java/libfonts.jar,
6233          [ LIBFONTS_JAR=/usr/share/java/libfonts.jar ],
6234          [AC_MSG_ERROR(libfonts.jar replacement not found.)]
6235        )
6236      ]
6237    )
6238  else
6239    AC_CHECK_FILE($LIBFONTS_JAR, [],
6240         [AC_MSG_ERROR(libfonts.jar not found.)], [])
6241  fi
6242
6243  if test -z $LIBSERIALIZER_JAR; then
6244    AC_CHECK_FILE(/usr/share/java/libserializer-1.0.0.jar,
6245      [ LIBSERIALIZER_JAR=/usr/share/java/libserializer-1.0.0.jar ],
6246      [
6247        AC_CHECK_FILE(/usr/share/java/libserializer.jar,
6248          [ LIBSERIALIZER_JAR=/usr/share/java/libserializer.jar ],
6249          [AC_MSG_ERROR(libserializer.jar replacement not found.)]
6250        )
6251      ]
6252    )
6253  else
6254    AC_CHECK_FILE($LIBSERIALIZER_JAR, [],
6255         [AC_MSG_ERROR(libserializer.jar not found.)], [])
6256  fi
6257
6258
6259  if test -z $LIBBASE_JAR; then
6260    AC_CHECK_FILE(/usr/share/java/libbase-1.0.0.jar,
6261      [ LIBBASE_JAR=/usr/share/java/libbase-1.0.0.jar ],
6262      [
6263        AC_CHECK_FILE(/usr/share/java/libbase.jar,
6264          [ LIBBASE_JAR=/usr/share/java/libbase.jar ],
6265          [AC_MSG_ERROR(libbase.jar replacement not found.)]
6266        )
6267      ]
6268    )
6269  else
6270    AC_CHECK_FILE($LIBBASE_JAR, [],
6271         [AC_MSG_ERROR(libbase.jar not found.)], [])
6272  fi
6273  BUILD_TYPE="$BUILD_TYPE REPORTBUILDER"
6274else
6275  AC_MSG_RESULT([no])
6276  ENABLE_REPORTBUILDER=NO
6277fi
6278AC_SUBST(ENABLE_REPORTBUILDER)
6279AC_SUBST(SYSTEM_JFREEREPORT)
6280AC_SUBST(SAC_JAR)
6281AC_SUBST(LIBXML_JAR)
6282AC_SUBST(FLUTE_JAR)
6283AC_SUBST(JFREEREPORT_JAR)
6284AC_SUBST(LIBBASE_JAR)
6285AC_SUBST(LIBLAYOUT_JAR)
6286AC_SUBST(LIBLOADER_JAR)
6287AC_SUBST(LIBFORMULA_JAR)
6288AC_SUBST(LIBREPOSITORY_JAR)
6289AC_SUBST(LIBFONTS_JAR)
6290AC_SUBST(LIBSERIALIZER_JAR)
6291
6292# this has to be here because both the Wiki Publisher and the Report
6293# Builder use commons-logging, while the non-optional PostgreSQL
6294# connector uses commons-lang.
6295AC_MSG_CHECKING([which Apache commons-* libs to use])
6296if test "$with_system_apache_commons" = "yes"; then
6297  SYSTEM_APACHE_COMMONS=YES
6298  AC_MSG_RESULT([external])
6299
6300  if test -z $COMMONS_LANG_JAR; then
6301    AC_CHECK_FILE(/usr/share/java/commons-lang3-3.3.jar,
6302      [ COMMONS_LANG_JAR=/usr/share/java/commons-lang3-3.3.jar ],
6303      [
6304        AC_CHECK_FILE(/usr/share/java/commons-lang.jar,
6305          [ COMMONS_LANG_JAR=/usr/share/java/commons-lang.jar ],
6306          [AC_MSG_ERROR(commons-lang.jar replacement not found.)]
6307        )
6308      ]
6309    )
6310  else
6311    AC_CHECK_FILE($COMMONS_LANG_JAR, [],
6312         [AC_MSG_ERROR(commons-lang.jar not found.)], [])
6313  fi
6314  AC_MSG_CHECKING([whether commons-lang is version 3.x])
6315  export COMMONS_LANG_JAR
6316  if $PERL -e 'use Archive::Zip;
6317      my $file = "$ENV{'COMMONS_LANG_JAR'}";
6318      my $zip = Archive::Zip->new( $file );
6319      my $mf = $zip->contents ( "META-INF/MANIFEST.MF" );
6320      if ( $mf =~ m/Specification-Version: 3.*/ ) {
6321          exit 0;
6322      } else {
6323          exit 1;
6324      }'; then
6325      AC_MSG_RESULT([yes])
6326  else
6327      AC_MSG_ERROR([no, you need Apache Commons Lang 3.x])
6328  fi
6329
6330  if test "$ENABLE_MEDIAWIKI" = "YES"; then
6331    if test -z $COMMONS_CODEC_JAR; then
6332      AC_CHECK_FILE(/usr/share/java/commons-codec-1.9.jar,
6333        [ COMMONS_CODEC_JAR=/usr/share/java/commons-codec-1.9.jar ],
6334        [
6335          AC_CHECK_FILE(/usr/share/java/commons-codec.jar,
6336            [ COMMONS_CODEC_JAR=/usr/share/java/commons-codec.jar ],
6337            [AC_MSG_ERROR(commons-codec.jar replacement not found.)]
6338          )
6339        ]
6340      )
6341    else
6342      AC_CHECK_FILE($COMMONS_CODEC_JAR, [],
6343           [AC_MSG_ERROR(commons-codec.jar not found.)], [])
6344    fi
6345
6346    if test -z $COMMONS_HTTPCLIENT_JAR; then
6347      AC_CHECK_FILE(/usr/share/java/commons-httpclient-3.1.jar,
6348        [ COMMONS_HTTPCLIENT_JAR=/usr/share/java/commons-httpclient-3.1.jar ],
6349        [
6350          AC_CHECK_FILE(/usr/share/java/commons-httpclient.jar,
6351            [ COMMONS_HTTPCLIENT_JAR=/usr/share/java/commons-httpclient.jar ],
6352            [AC_MSG_ERROR(commons-httpclient.jar replacement not found.)]
6353          )
6354        ]
6355      )
6356    else
6357      AC_CHECK_FILE($COMMONS_HTTPCLIENT_JAR, [],
6358           [AC_MSG_ERROR(commons-httpclient.jar not found.)], [])
6359    fi
6360  fi
6361  if test "$ENABLE_MEDIAWIKI" = "YES" -o "$ENABLE_REPORTBUILDER" = "YES"; then
6362    if test -z $COMMONS_LOGGING_JAR; then
6363      AC_CHECK_FILE(/usr/share/java/commons-logging-1.1.3.jar,
6364        [ COMMONS_LOGGING_JAR=/usr/share/java/commons-logging-1.1.3.jar ],
6365        [
6366          AC_CHECK_FILE(/usr/share/java/commons-logging.jar,
6367            [ COMMONS_LOGGING_JAR=/usr/share/java/commons-logging.jar ],
6368            [AC_MSG_ERROR(commons-logging.jar replacement not found.)]
6369          )
6370        ]
6371      )
6372    else
6373      AC_CHECK_FILE($COMMONS_LOGGING_JAR, [],
6374           [AC_MSG_ERROR(commons-logging.jar not found.)], [])
6375    fi
6376  fi
6377else
6378  AC_MSG_RESULT([internal])
6379  SYSTEM_APACHE_COMMONS=NO
6380  BUILD_TYPE="$BUILD_TYPE APACHE_COMMONS TOMCAT"
6381fi
6382AC_SUBST(SYSTEM_APACHE_COMMONS)
6383AC_SUBST(COMMONS_CODEC_JAR)
6384AC_SUBST(COMMONS_LANG_JAR)
6385AC_SUBST(COMMONS_HTTPCLIENT_JAR)
6386AC_SUBST(COMMONS_LOGGING_JAR)
6387
6388dnl ===================================================================
6389dnl Check whether the Qt and KDE libraries are available.
6390dnl ===================================================================
6391
6392KDE_CFLAGS=""
6393KDE_LIBS=""
6394MOC="moc"
6395if test "$test_kde" = "yes" -a "$ENABLE_KDE" = "TRUE" ; then
6396    dnl Search paths for Qt and KDE
6397    if test "$build_cpu" != "x86_64" ; then
6398        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"
6399        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"
6400    else
6401        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"
6402        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"
6403    fi
6404    if test -n "$QTDIR" ; then
6405        qt_incdirs="$QTDIR/include $qt_incdirs"
6406        if test "$build_cpu" != "x86_64" ; then
6407            qt_libdirs="$QTDIR/lib $qt_libdirs"
6408        else
6409            qt_libdirs="$QTDIR/lib64 $QTDIR/lib $qt_libdirs"
6410        fi
6411    fi
6412    if test "$build_cpu" != "x86_64" ; then
6413        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"
6414        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"
6415    else
6416        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"
6417        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"
6418    fi
6419    if test -n "$KDEDIR" ; then
6420        kde_incdirs="$KDEDIR/include $kde_incdirs"
6421        if test "$build_cpu" != "x86_64" ; then
6422            kde_libdirs="$KDEDIR/lib $kde_libdirs"
6423        else
6424            kde_libdirs="$KDEDIR/lib64 $KDEDIR/lib $kde_libdirs"
6425        fi
6426    fi
6427
6428    dnl What to test
6429    qt_test_include="qstyle.h"
6430    qt_test_library="libqt-mt.so"
6431    kde_test_include="ksharedptr.h"
6432    kde_test_library="libkdeui.so"
6433
6434    dnl Check for Qt headers
6435    AC_MSG_CHECKING([for Qt headers])
6436    qt_incdir="no"
6437    for kde_check in $qt_incdirs ; do
6438        if test -r "$kde_check/$qt_test_include" ; then
6439            qt_incdir="$kde_check"
6440            break
6441        fi
6442    done
6443    AC_MSG_RESULT([$qt_incdir])
6444    if test "x$qt_incdir" = "xno" ; then
6445        AC_MSG_ERROR([Qt headers not found. Please specify the root of
6446your Qt installation by exporting QTDIR before running "configure".])
6447    fi
6448
6449    dnl Check for Qt libraries
6450    AC_MSG_CHECKING([for Qt libraries])
6451    qt_libdir="no"
6452    for qt_check in $qt_libdirs ; do
6453        if test -r "$qt_check/$qt_test_library" ; then
6454            qt_libdir="$qt_check"
6455            break
6456        fi
6457    done
6458    AC_MSG_RESULT([$qt_libdir])
6459    if test "x$qt_libdir" = "xno" ; then
6460        AC_MSG_ERROR([Qt libraries not found. Please specify the root of
6461your Qt installation by exporting QTDIR before running "configure".])
6462    fi
6463
6464    dnl Check for Meta Object Compiler
6465    AC_PATH_PROG( MOC, moc, no, [$QTDIR/bin:$PATH] )
6466    if test "$MOC" = "no" ; then
6467        AC_MSG_ERROR([Qt Meta Object Compiler not found. Please specify
6468the root of your Qt installation by exporting QTDIR before running "configure".])
6469    fi
6470
6471    dnl Check for KDE headers
6472    AC_MSG_CHECKING([for KDE headers])
6473    kde_incdir="no"
6474    for kde_check in $kde_incdirs ; do
6475        if test -r "$kde_check/$kde_test_include" ; then
6476            kde_incdir="$kde_check"
6477            break
6478        fi
6479    done
6480    AC_MSG_RESULT([$kde_incdir])
6481    if test "x$kde_incdir" = "xno" ; then
6482        AC_MSG_ERROR([KDE headers not found. Please specify the root of
6483your KDE installation by exporting KDEDIR before running "configure".])
6484    fi
6485
6486    dnl Check for KDE libraries
6487    AC_MSG_CHECKING([for KDE libraries])
6488    kde_libdir="no"
6489    for kde_check in $kde_libdirs ; do
6490        if test -r "$kde_check/$kde_test_library" ; then
6491            kde_libdir="$kde_check"
6492            break
6493        fi
6494    done
6495    AC_MSG_RESULT([$kde_libdir])
6496    if test "x$kde_libdir" = "xno" ; then
6497        AC_MSG_ERROR([KDE libraries not found. Please specify the root of
6498your KDE installation by exporting KDEDIR before running "configure".])
6499    fi
6500
6501    dnl Set the variables
6502    KDE_CFLAGS="-I$qt_incdir -I$kde_incdir -DQT_CLEAN_NAMESPACE -DQT_THREAD_SUPPORT"
6503    KDE_LIBS="-L$kde_libdir -L$qt_libdir -lkdeui -lkdecore -lqt-mt"
6504fi
6505AC_SUBST(KDE_CFLAGS)
6506AC_SUBST(KDE_LIBS)
6507AC_SUBST(MOC)
6508
6509dnl ===================================================================
6510dnl KDE4 Integration
6511dnl ===================================================================
6512
6513KDE4_CFLAGS=""
6514KDE4_LIBS=""
6515MOC4="moc"
6516if test "$test_kde4" = "yes" -a "$ENABLE_KDE4" = "TRUE" ; then
6517   qt_incdirs="$QT4INC $QT4DIR /usr/include/qt4 /usr/include $x_includes"
6518   qt_libdirs="$QT4LIB /usr/lib $x_libraries"
6519
6520   kde_incdirs="/usr/include /usr/include/kde4 $x_includes"
6521   kde_libdirs="/usr/lib /usr/lib/kde4 /usr/lib/kde4/devel $x_libraries"
6522
6523   if test "$build_cpu" = "x86_64" ; then
6524      qt_libdirs="$qt_libdirs /usr/lib64/qt4 /usr/lib64/qt /usr/lib64"
6525      kde_libdirs="$kde_libdirs /usr/lib64 /usr/lib64/kde4 /usr/lib64/kde4/devel"
6526   fi
6527
6528   if test -n "$KDE4DIR" ; then
6529      kde_incdirs="$KDE4DIR/include $kde_incdirs"
6530      if test "$build_cpu" != "x86_64" ; then
6531         kde_libdirs="$KDE4DIR/lib $kde_libdirs"
6532      else
6533         kde_libdirs="$KDE4DIR/lib64 $KDE4DIR/lib $kde_libdirs"
6534      fi
6535   fi
6536
6537   qt_test_include="Qt/qobject.h"
6538   qt_test_library="libQtCore.so"
6539   kde_test_include="ksharedptr.h"
6540   kde_test_library="libkdeui.so"
6541
6542   AC_MSG_CHECKING([for Qt4 headers])
6543   qt_header_dir="no"
6544   for inc_dir in $qt_incdirs ; do
6545      if test -r "$inc_dir/$qt_test_include" ; then
6546         qt_header_dir="$inc_dir"
6547         break
6548      fi
6549   done
6550
6551   AC_MSG_RESULT([$qt_header_dir])
6552   if test "x$qt_header_dir" = "xno" ; then
6553      AC_MSG_ERROR([Qt4 headers not found. Please specify the root of your Qt4 installation by exporting QT4DIR before running "configure".])
6554   fi
6555
6556   AC_MSG_CHECKING([for Qt4 libraries])
6557   qt_lib_dir="no"
6558   for lib_dir in $qt_libdirs ; do
6559      if test -r "$lib_dir/$qt_test_library" ; then
6560         qt_lib_dir="$lib_dir"
6561         break
6562      fi
6563   done
6564
6565   AC_MSG_RESULT([$qt_lib_dir])
6566
6567   if test "x$qt_lib_dir" = "xno" ; then
6568      AC_MSG_ERROR([Qt4 libraries not found. Please specify the root of your Qt4 installation by exporting QT4DIR before running "configure".])
6569   fi
6570
6571   dnl Check for Meta Object Compiler
6572   AC_PATH_PROG( MOCQT4, moc-qt4, no, [$QT4DIR/bin:$PATH] )
6573   MOC4="$MOCQT4"
6574   if test "$MOC4" = "no" ; then
6575      AC_PATH_PROG( MOC4, moc, no, [$PATH:$QT4DIR/bin] )
6576      if test "$MOC4" = "no" ; then
6577         AC_MSG_ERROR([Qt Meta Object Compiler not found. Please specify the root of your Qt installation by exporting QT4DIR before running "configure".])
6578      fi
6579   fi
6580
6581   dnl Check for KDE4 headers
6582   AC_MSG_CHECKING([for KDE4 headers])
6583   kde_incdir="no"
6584   for kde_check in $kde_incdirs ; do
6585      if test -r "$kde_check/$kde_test_include" ; then
6586         kde_incdir="$kde_check"
6587         break
6588      fi
6589   done
6590   AC_MSG_RESULT([$kde_incdir])
6591   if test "x$kde_incdir" = "xno" ; then
6592      AC_MSG_ERROR([KDE4 headers not found. Please specify the root of your KDE4 installation by exporting KDE4DIR before running "configure".])
6593   fi
6594
6595   dnl Check for KDE4 libraries
6596   AC_MSG_CHECKING([for KDE4 libraries])
6597   kde_libdir="no"
6598   for kde_check in $kde_libdirs ; do
6599      if test -r "$kde_check/$kde_test_library" ; then
6600         kde_libdir="$kde_check"
6601         break
6602      fi
6603   done
6604
6605   AC_MSG_RESULT([$kde_libdir])
6606   if test "x$kde_libdir" = "xno" ; then
6607      AC_MSG_ERROR([KDE4 libraries not found. Please specify the root of your KDE4 installation by exporting KDE4DIR before running "configure".])
6608   fi
6609
6610   KDE4_CFLAGS="`pkg-config --cflags QtCore` `pkg-config --cflags QtGui` -I$kde_incdir -DQT_CLEAN_NAMESPACE -DQT_THREAD_SUPPORT"
6611   KDE4_LIBS="-L$kde_libdir -L$qt_lib_dir -lkdeui -lkdecore -lQtCore -lQtGui"
6612fi
6613AC_SUBST(KDE4_CFLAGS)
6614AC_SUBST(KDE4_LIBS)
6615AC_SUBST(MOC4)
6616
6617dnl ===================================================================
6618dnl Test for the enabling the lockdown pieces
6619dnl ===================================================================
6620AC_MSG_CHECKING([whether to enable the lockdown pieces])
6621ENABLE_LOCKDOWN=""
6622if test -n "$enable_lockdown" && test "$enable_lockdown" != "no"; then
6623  ENABLE_LOCKDOWN=YES
6624  AC_MSG_RESULT([yes])
6625else
6626  AC_MSG_RESULT([no])
6627fi
6628AC_SUBST(ENABLE_LOCKDOWN)
6629
6630dnl ===================================================================
6631dnl Test whether to include Evolution 2 support
6632dnl ===================================================================
6633AC_MSG_CHECKING([whether to enable evolution 2 support])
6634if test "$enable_evolution2" = "yes" -o "$enable_evolution2" = "TRUE"; then
6635   AC_MSG_RESULT([yes])
6636   PKG_CHECK_MODULES(GOBJECT, gobject-2.0)
6637   ENABLE_EVOAB2="TRUE"
6638else
6639   ENABLE_EVOAB2=""
6640   AC_MSG_RESULT([no])
6641fi
6642AC_SUBST(ENABLE_EVOAB2)
6643AC_SUBST(GOBJECT_CFLAGS)
6644AC_SUBST(GOBJECT_LIBS)
6645
6646dnl ===================================================================
6647dnl Test whether to include MathMLDTD
6648dnl ===================================================================
6649AC_MSG_CHECKING([whether to include MathMLDTD])
6650if test -n "$enable_mathmldtd"; then
6651  if test "$enable_mathmldtd" = "no"; then
6652    AC_MSG_RESULT([no])
6653    SCPDEFS="$SCPDEFS -DWITHOUT_MATHMLDTD"
6654  else
6655    AC_MSG_RESULT([yes])
6656    BUILD_TYPE="$BUILD_TYPE MATHMLDTD"
6657  fi
6658else
6659  AC_MSG_RESULT([no])
6660  SCPDEFS="$SCPDEFS -DWITHOUT_MATHMLDTD"
6661fi
6662
6663dnl ===================================================================
6664dnl Test whether to include category-B fonts
6665dnl ===================================================================
6666WITH_CATB_FONTS=
6667AC_MSG_CHECKING([whether to include category B fonts])
6668if test "x$enable_category_b_fonts" = "xyes" && test "x$with_fonts" != "xno"; then
6669   AC_MSG_RESULT([yes])
6670   BUILD_TYPE="$BUILD_TYPE CATB_FONTS"
6671   WITH_CATB_FONTS=YES
6672   SCPDEFS="$SCPDEFS -DWITH_CATB_FONTS"
6673else
6674   AC_MSG_RESULT([no])
6675   WITH_CATB_FONTS=NO
6676fi
6677
6678dnl ===================================================================
6679dnl Test whether to include category-A fonts
6680dnl ===================================================================
6681WITH_CATA_FONTS=
6682AC_MSG_CHECKING([whether to include category A fonts])
6683if test "x$with_fonts" != "xno" ; then
6684  AC_MSG_RESULT([yes])
6685  WITH_CATA_FONTS=YES
6686  SCPDEFS="$SCPDEFS -DWITH_CATA_FONTS"
6687else
6688  AC_MSG_RESULT([no])
6689  WITH_CATA_FONTS=NO
6690  WITH_CATB_FONTS=NO
6691fi
6692
6693WITH_FONTS=NO
6694AC_MSG_CHECKING([whether any fonts are included])
6695if test "x$WITH_CATA_FONTS" = "xYES" -o "x$WITH_CATB_FONTS" = "xYES"; then
6696  BUILD_TYPE="$BUILD_TYPE MORE_FONTS"
6697  WITH_FONTS=YES
6698  AC_MSG_RESULT([yes])
6699else
6700  AC_MSG_RESULT([no])
6701fi
6702
6703AC_SUBST(WITH_CATA_FONTS)
6704AC_SUBST(WITH_CATB_FONTS)
6705AC_SUBST(WITH_FONTS)
6706
6707dnl ===================================================================
6708dnl Test whether to include ppds
6709dnl ===================================================================
6710AC_MSG_CHECKING([whether to include PPDs])
6711if test "$with_ppds" != "no"; then
6712  AC_MSG_RESULT([yes])
6713else
6714  AC_MSG_RESULT([no])
6715  WITHOUT_PPDS=YES
6716  SCPDEFS="$SCPDEFS -DWITHOUT_PPDS"
6717fi
6718AC_SUBST(WITHOUT_PPDS)
6719
6720dnl ===================================================================
6721dnl Test whether to include afms
6722dnl ===================================================================
6723AC_MSG_CHECKING([whether to include AFMs])
6724if test "$with_afms" != "no"; then
6725  AC_MSG_RESULT([yes])
6726  BUILD_TYPE="$BUILD_TYPE AFMS"
6727else
6728  AC_MSG_RESULT([no])
6729  WITHOUT_AFMS=YES
6730  SCPDEFS="$SCPDEFS -DWITHOUT_AFMS"
6731fi
6732AC_SUBST(WITHOUT_AFMS)
6733
6734AC_SUBST(SCPDEFS)
6735
6736AC_MSG_CHECKING([whether and how to use Xinerama])
6737if test "$_os" = "Darwin"; then
6738   USE_XINERAMA=YES
6739   XINERAMA_LINK=dynamic
6740   AC_MSG_RESULT([yes])
6741elif test "$_os" = "Linux" -o "$_os" = "FreeBSD"; then
6742   if test -e "$XLIB/libXinerama.so" -a -e "$XLIB/libXinerama.a"; then
6743      # we have both versions, let the user decide but use the dynamic one
6744      # per default
6745      USE_XINERAMA=YES
6746      if test -z "$with_static_xinerama" -o -n "$with_system_libs"; then
6747         XINERAMA_LINK=dynamic
6748      else
6749         XINERAMA_LINK=static
6750      fi
6751   elif test -e "$XLIB/libXinerama.so" -a ! -e "$XLIB/libXinerama.a"; then
6752      # we have only the dynamic version
6753      USE_XINERAMA=YES
6754      XINERAMA_LINK=dynamic
6755   elif test -e "$XLIB/libXinerama.a"; then
6756      # static version
6757      if echo $build_cpu | $GREP -E 'i[[3456]]86' 2>/dev/null >/dev/null; then
6758         USE_XINERAMA=YES
6759         XINERAMA_LINK=static
6760      else
6761         USE_XINERAMA=NO
6762         XINERAMA_LINK=none
6763      fi
6764   else
6765      # no Xinerama
6766      USE_XINERAMA=NO
6767      XINERAMA_LINK=none
6768   fi
6769   if test "$USE_XINERAMA" = "YES"; then
6770      AC_MSG_RESULT([yes, with $XINERAMA_LINK linking])
6771      AC_CHECK_HEADER(X11/extensions/Xinerama.h, [],
6772          [AC_MSG_ERROR(Xinerama header not found.)], [])
6773      XINERAMA_EXTRA_LIBS="-L$XLIB -lXext"
6774      if test "$_os" = "FreeBSD"; then
6775          XINERAMA_EXTRA_LIBS="$XINERAMA_EXTRA_LIBS -lXt"
6776      fi
6777      if test "$_os" = "Linux"; then
6778          XINERAMA_EXTRA_LIBS="$XINERAMA_EXTRA_LIBS -ldl"
6779      fi
6780      AC_CHECK_LIB(Xinerama, XineramaIsActive, [],
6781          [AC_MSG_ERROR(Xinerama not functional?)], [$XINERAMA_EXTRA_LIBS])
6782   else
6783      AC_MSG_RESULT([no, libXinerama not found or wrong architecture.])
6784   fi
6785else
6786   AC_MSG_RESULT([no])
6787fi
6788AC_SUBST(USE_XINERAMA)
6789AC_SUBST(XINERAMA_LINK)
6790
6791dnl ===================================================================
6792dnl always rely on the system version of gdk-pixbuf
6793dnl ===================================================================
6794
6795SYSTEM_GDKPIXBUF=YES
6796AC_SUBST(SYSTEM_GDKPIXBUF)
6797
6798dnl ===================================================================
6799dnl always rely on the system version of glib
6800dnl ===================================================================
6801
6802SYSTEM_GLIB=YES
6803AC_SUBST(SYSTEM_GLIB)
6804
6805dnl ===================================================================
6806dnl always rely on the system version of gettext
6807dnl ===================================================================
6808
6809SYSTEM_GETTEXT=YES
6810AC_SUBST(SYSTEM_GETTEXT)
6811
6812if test "$_os" = "FreeBSD"; then
6813    LIBINTL_PREFIX=
6814    for dir in $CPPFLAGS; do
6815      if dir=`expr -- $dir : '-I\(.*\)'`; then
6816        if test -f "$dir/libintl.h" ; then
6817          LIBINTL_PREFIX=`dirname $dir`
6818        fi
6819      fi
6820    done
6821    AC_SUBST(LIBINTL_PREFIX)
6822fi
6823
6824dnl ===================================================================
6825dnl always rely on the system version of pango
6826dnl ===================================================================
6827
6828SYSTEM_PANGO=YES
6829AC_SUBST(SYSTEM_PANGO)
6830
6831dnl ===================================================================
6832dnl Test whether to build libpng or rely on the system version
6833dnl ===================================================================
6834AC_MSG_CHECKING([whether to build own version of libpng])
6835
6836case "$_os" in
6837	WINNT*) # Windows
6838	    SYSTEM_LIBPNG=NO
6839	    AC_MSG_RESULT([yes])
6840		;;
6841	Darwin*)
6842	    SYSTEM_LIBPNG=NO
6843	    AC_MSG_RESULT([yes])
6844	    ;;
6845   *)
6846   SYSTEM_LIBPNG=YES
6847   AC_MSG_RESULT([no])
6848   ;;
6849esac
6850AC_SUBST(SYSTEM_LIBPNG)
6851
6852dnl ===================================================================
6853dnl Test whether to build libjpeg or rely on the system version
6854dnl ===================================================================
6855dnl FIXME: this is currently because we have jpeg-6b for our filters
6856dnl        and jpeg-8 as dependency for librsvg
6857dnl        this should be unified into using only one version for both
6858
6859AC_MSG_CHECKING([whether to build own version of libjpeg])
6860
6861if test "$SYSTEM_JPEG" = "YES"; then
6862SYSTEM_LIBJPEG=YES
6863else
6864case "$_os" in
6865	WINNT*) # Windows
6866	    SYSTEM_LIBJPEG=NO
6867		;;
6868	Darwin*)
6869	    SYSTEM_LIBJPEG=NO
6870	    ;;
6871   *)
6872        SYSTEM_LIBJPEG=YES
6873        ;;
6874esac
6875fi
6876
6877if test "$SYSTEM_LIBJPEG" = "YES"; then
6878   AC_MSG_RESULT([no])
6879else
6880   AC_MSG_RESULT([yes])
6881fi
6882AC_SUBST(SYSTEM_LIBJPEG)
6883
6884dnl ===================================================================
6885dnl Test whether rat scan was requested and whether apache-rat is available
6886dnl ===================================================================
6887RAT_JAR=
6888AC_MSG_CHECKING([whether to trigger rat scan])
6889if test -z "$with_rat_scan" -o "$with_rat_scan" = "no"; then
6890    AC_MSG_RESULT([no])
6891else
6892    if test "$WITH_JAVA" = "no"; then
6893        AC_MSG_ERROR([no, java disabled, enable with --with-java])
6894    elif test "$enable_saxon" = "no"; then
6895        AC_MSG_ERROR([no, saxon disabled, enable with --enable-category-b])
6896    elif test "$with_rat_scan" = "yes"; then
6897        AC_MSG_RESULT([yes, use pre-built library])
6898        RAT_JAR_HOME="BUILD"
6899        BUILD_TYPE="$BUILD_TYPE RAT"
6900    else
6901        AC_MSG_RESULT([yes, use pre-installed library])
6902        AC_MSG_CHECKING([whether apache-rat is available])
6903        if test -d "$with_rat_scan"; then
6904            RAT_JAR_HOME=$with_rat_scan
6905        else
6906            AC_MSG_ERROR([$with_rat_scan is not a directory])
6907        fi
6908    fi
6909fi
6910AC_SUBST(RAT_JAR_HOME)
6911
6912
6913dnl ===================================================================
6914dnl Test for the presence of Ant and that it works
6915dnl ===================================================================
6916
6917if test "$SOLAR_JAVA" != ""; then
6918ANT_HOME=; export ANT_HOME
6919WITH_ANT_HOME=; export WITH_ANT_HOME
6920if test -z "$with_ant_home"; then
6921   if test "$_os" = "OS2"; then
6922     AC_PATH_PROGS(ANT, ant.cmd)
6923   else
6924     AC_PATH_PROGS(ANT, [apache-ant ant ant.sh ant.bat ant.cmd])
6925   fi
6926else
6927   if test "$_os" = "WINNT"; then
6928      with_ant_home=`cygpath -u "$with_ant_home"`
6929   fi
6930   if test "$_os" = "OS2"; then
6931     AC_PATH_PROGS(ANT, ant.cmd,,$with_ant_home/bin:$PATH)
6932   else
6933     AC_PATH_PROGS(ANT, [apache-ant ant ant.sh ant.bat ant.cmd],,$with_ant_home/bin:$PATH)
6934   fi
6935   WITH_ANT_HOME=$with_ant_home
6936   ANT_HOME=$with_ant_home
6937fi
6938
6939if test -z "$ANT"; then
6940  AC_MSG_ERROR([Ant not found - Make sure it's in the path or use --with-ant-home])
6941else
6942  # resolve relative or absolute symlink
6943  while test -h "$ANT"; do
6944     a_cwd=`pwd`
6945     a_basename=`basename "$ANT"`
6946     a_script=`ls -l "$ANT" | sed "s/.*${a_basename} -> //g"`
6947     cd "`dirname "$ANT"`"
6948     cd "`dirname "$a_script"`"
6949     ANT="`pwd`"/"`basename "$a_script"`"
6950     cd "$a_cwd"
6951  done
6952
6953  if test "$_os" = "OS2"; then
6954    ANT_HOME=`echo $ANT | $SED -n "s/\/bin\/ant.*\$//p"`
6955    export ANT_HOME
6956  fi
6957
6958  AC_MSG_CHECKING([if $ANT works])
6959cat > conftest.java << EOF
6960    public class conftest {
6961	int testmethod(int a, int b) {
6962            return a + b;
6963	}
6964    }
6965EOF
6966
6967cat > conftest.xml << EOF
6968    <project name="conftest" default="conftest">
6969	<target name="conftest">
6970            <javac srcdir="." includes="conftest.java">
6971	    </javac>
6972	</target>
6973    </project>
6974EOF
6975  oldJAVA_HOME=$JAVA_HOME
6976  if test "$JAVACISGCJ" = "yes"; then
6977    JAVA_HOME=; export JAVA_HOME
6978    ant_cmd="$ANT -Dbuild.compiler=gcj -buildfile conftest.xml 1>&2"
6979  else
6980    ant_cmd="$ANT -buildfile conftest.xml 1>&2"
6981  fi
6982  AC_TRY_EVAL(ant_cmd)
6983  if test $? = 0 && test -f ./conftest.class ; then
6984    AC_MSG_RESULT([Ant works])
6985    if test -z "$WITH_ANT_HOME"; then
6986        ANT_HOME=`$ANT -diagnostics | $EGREP "ant.home :" | $SED -e "s#ant.home : ##g"`
6987        if test -z "$ANT_HOME"; then
6988            ANT_HOME=`echo $ANT | $SED -n "s/\/bin\/ant.*\$//p"`
6989        fi
6990    else
6991        ANT_HOME="$WITH_ANT_HOME"
6992    fi
6993  else
6994    echo "configure: Ant test failed" >&5
6995    cat conftest.java >&5
6996    cat conftest.xml >&5
6997    AC_MSG_WARN([Ant does not work - Some Java projects will not build!])
6998    ANT_HOME=""
6999    echo "Ant does not work - Some Java projects will not build!" >>warn
7000  fi
7001  JAVA_HOME=$oldJAVA_HOME
7002  rm -f conftest* core core.* *.core
7003fi
7004if test -z "$ANT_HOME"; then
7005   ANT_HOME="NO_ANT_HOME"
7006fi
7007AC_SUBST(ANT_HOME)
7008
7009dnl Checking for ant.jar
7010if test "$ANT_HOME" != "NO_ANT_HOME"; then
7011   AC_MSG_CHECKING([Ant lib directory])
7012   if test -f $ANT_HOME/lib/ant.jar; then
7013    ANT_LIB="$ANT_HOME/lib"
7014   else
7015      if test -f $ANT_HOME/ant.jar; then
7016         ANT_LIB="$ANT_HOME"
7017      else
7018          if test -f /usr/share/java/ant.jar; then
7019              ANT_LIB=/usr/share/java
7020          else
7021             if test -f /usr/share/ant-core/lib/ant.jar; then
7022                 ANT_LIB=/usr/share/ant-core/lib
7023             else
7024                if test -f $ANT_HOME/lib/ant/ant.jar; then
7025                    ANT_LIB="$ANT_HOME/lib/ant"
7026                else
7027                   if test -f /usr/share/lib/ant/ant.jar; then
7028                       ANT_LIB=/usr/share/lib/ant
7029                   else
7030                       AC_MSG_ERROR([Ant libraries not found!])
7031                   fi
7032                fi
7033             fi
7034          fi
7035      fi
7036   fi
7037   AC_MSG_RESULT([Ant lib directory found.])
7038fi
7039AC_SUBST(ANT_LIB)
7040fi
7041
7042ant_minver=1.9.1
7043# update for more extensions...
7044if test "$ENABLE_MEDIAWIKI" = "YES"; then
7045  ant_minver=1.9.1
7046fi
7047ant_minminor1=`echo $ant_minver | cut -d"." -f2`
7048
7049AC_MSG_CHECKING([whether ant is >= $ant_minver])
7050ant_version=`$ANT -version | $AWK '{ print $4; }'`
7051ant_version_major=`echo $ant_version | cut -d. -f1`
7052ant_version_minor=`echo $ant_version | cut -d. -f2`
7053echo "configure: ant_version $ant_version " >&5
7054echo "configure: ant_version_major $ant_version_major " >&5
7055echo "configure: ant_version_minor $ant_version_minor " >&5
7056if test "$ant_version_major" -ge "2"; then
7057   AC_MSG_RESULT([yes, $ant_version])
7058elif test "$ant_version_major" = "1" && test "$ant_version_minor" -ge "$ant_minminor1"; then
7059   AC_MSG_RESULT([yes, $ant_version])
7060else
7061   AC_MSG_ERROR([no, you need at least ant >= $ant_minver])
7062fi
7063
7064if test "$ENABLE_MEDIAWIKI" = "YES"; then
7065AC_MSG_CHECKING([whether ant supports mapper type="regexp"])
7066rm -rf confdir
7067mkdir confdir
7068cat > conftest.java << EOF
7069    public class conftest {
7070        int testmethod(int a, int b) {
7071            return a + b;
7072        }
7073    }
7074EOF
7075
7076cat > conftest.xml << EOF
7077    <project name="conftest" default="conftest">
7078        <target name="conftest" depends="copytest">
7079            <javac srcdir="." includes="conftest.java">
7080            </javac>
7081        </target>
7082        <target name="copytest">
7083             <copy todir="confdir">
7084                 <fileset dir="confdir" includes="**/*.abc" casesensitive="yes"/>
7085                 <filterset/>
7086                 <mapper type="regexp" from="^(.*[/\\])foo([/\\].*)" to="\1baa\2"/>
7087             </copy>
7088        </target>
7089    </project>
7090EOF
7091  if test "$JAVACISGCJ" = "yes"; then
7092    JAVA_HOME=; export JAVA_HOME
7093    ant_cmd="$ANT -Dbuild.compiler=gcj -buildfile conftest.xml 1>&2"
7094  else
7095    ant_cmd="$ANT -buildfile conftest.xml 1>&2"
7096  fi
7097  AC_TRY_EVAL(ant_cmd)
7098  if test $? = 0 && test -f ./conftest.class ; then
7099    AC_MSG_RESULT([yes])
7100    rm -rf confdir
7101  else
7102    echo "configure: Ant test failed" >&5
7103    cat conftest.java >&5
7104    cat conftest.xml >&5
7105    rm -rf confdir
7106    AC_MSG_ERROR([no. Did you install ant-apache-regexp?])
7107  fi
7108fi
7109rm -f conftest* core core.* *.core
7110
7111OOO_JUNIT_JAR=
7112JUNIT_NEEDS_HAMCREST=
7113if test "$SOLAR_JAVA" != "" && test "$with_junit" != "no"; then
7114    AC_MSG_CHECKING([for JUnit])
7115    if test "$with_junit" = "yes"; then
7116        if test -e /usr/share/java/junit4.jar; then
7117           OOO_JUNIT_JAR=/usr/share/java/junit4.jar
7118        else
7119           if test -e /usr/local/share/java/classes/junit4.jar; then
7120              OOO_JUNIT_JAR=/usr/local/share/java/classes/junit4.jar
7121           else
7122              if test -e /usr/share/lib/java/junit.jar; then
7123                 OOO_JUNIT_JAR=/usr/share/lib/java/junit.jar
7124              else
7125                 if test -e /usr/share/local/lib/java/junit.jar; then
7126                    OOO_JUNIT_JAR=/usr/share/local/lib/java/junit.jar
7127                 else
7128                    if test -e /usr/share/java/junit.jar; then
7129                       OOO_JUNIT_JAR=/usr/share/java/junit.jar
7130                    else
7131                       if test -e /usr/local/share/java/classes/junit.jar; then
7132                          OOO_JUNIT_JAR=/usr/local/share/java/classes/junit.jar
7133                       fi
7134                    fi
7135                 fi
7136              fi
7137           fi
7138        fi
7139    else
7140        OOO_JUNIT_JAR=$with_junit
7141    fi
7142    if test -e "$OOO_JUNIT_JAR"; then
7143        AC_MSG_RESULT([yes])
7144    else
7145        AC_MSG_ERROR([cannot find JUnit 4 jar; please install one in the default
7146locations (/usr/share/java or /usr/local/share/java/classes), specify its pathname via
7147--with-junit=..., or disable it via --without-junit.])
7148    fi
7149    if test "$_os" = "WINNT"; then
7150        OOO_JUNIT_JAR=`cygpath -m "$OOO_JUNIT_JAR"`
7151    fi
7152    AC_MSG_CHECKING([whether JUnit is version 4.x])
7153    export OOO_JUNIT_JAR
7154    if $PERL -e 'use Archive::Zip;
7155        my $file = "$ENV{'OOO_JUNIT_JAR'}";
7156        my $zip = Archive::Zip->new( $file );
7157        my $mf = $zip->contents ( "META-INF/MANIFEST.MF" );
7158        if ( $mf =~ m/Implementation-Version: 4.12*/ ) {
7159            exit 0;
7160        } elsif ( $mf =~ m/Implementation-Version: 4.11*/ ) {
7161            exit 0;
7162        } elsif ( $mf =~ m/Bundle-Version: 4.12*/ ) {
7163            exit 0;
7164        } elsif ( $mf =~ m/Bundle-Version: 4.11*/ ) {
7165            exit 0;
7166        } else {
7167            exit 1;
7168        }'; then
7169        AC_MSG_RESULT([yes, but Hamcrest Core is mandatory with this JUnit version (>= 4.11)])
7170        JUNIT_NEEDS_HAMCREST=yes
7171    elif $PERL -e 'use Archive::Zip;
7172        my $file = "$ENV{'OOO_JUNIT_JAR'}";
7173        my $zip = Archive::Zip->new( $file );
7174        my $mf = $zip->contents ( "META-INF/MANIFEST.MF" );
7175        if ( $mf =~ m/Implementation-Version: 4.*/ ) {
7176            exit 0;
7177        } elsif ( $mf =~ m/Bundle-Version: 4.*/ ) {
7178        } else {
7179            exit 1;
7180        }'; then
7181        AC_MSG_RESULT([yes])
7182    else
7183        AC_MSG_ERROR([no, your JUnit version is too old, you need JUnit 4.x])
7184    fi
7185fi
7186AC_SUBST(OOO_JUNIT_JAR)
7187
7188HAMCREST_CORE_JAR=
7189if test "$SOLAR_JAVA" != "" && test "$with_hamcrest_core" != "no"; then
7190    AC_MSG_CHECKING([for hamcrest-core])
7191    if test "$with_hamcrest_core" = "yes"; then
7192        if test "$HAMCREST_CORE_JAR" = "" && test -e /usr/share/java/hamcrest-core-1.3.jar; then
7193            HAMCREST_CORE_JAR=/usr/share/java/hamcrest-core-1.3.jar
7194        fi
7195        if test "$HAMCREST_CORE_JAR" = "" && test -e /usr/local/share/java/classes/hamcrest-core-1.3.jar; then
7196            HAMCREST_CORE_JAR=/usr/local/share/java/classes/hamcrest-core-1.3.jar
7197        fi
7198        if test "$HAMCREST_CORE_JAR" = "" && test -e /usr/share/lib/java/hamcrest-core.jar; then
7199            HAMCREST_CORE_JAR=/usr/share/lib/java/hamcrest-core.jar
7200        fi
7201        if test "$HAMCREST_CORE_JAR" = "" && test -e /usr/local/share/lib/java/hamcrest-core.jar; then
7202            HAMCREST_CORE_JAR=/usr/local/share/lib/java/hamcrest-core.jar
7203        fi
7204        if test "$HAMCREST_CORE_JAR" = "" && test -e /usr/share/java/hamcrest-core.jar; then
7205            HAMCREST_CORE_JAR=/usr/share/java/hamcrest-core.jar
7206        fi
7207        if test "$HAMCREST_CORE_JAR" = "" && test -e /usr/local/share/java/classes/hamcrest-core.jar; then
7208            HAMCREST_CORE_JAR=/usr/local/share/java/classes/hamcrest-core.jar
7209        fi
7210        # Sometimes the "-core-" part is missing...
7211        if test "$HAMCREST_CORE_JAR" = "" && test -e /usr/share/java/hamcrest1.3.jar; then
7212            HAMCREST_CORE_JAR=/usr/share/java/hamcrest1.3.jar
7213        fi
7214        if test "$HAMCREST_CORE_JAR" = "" && test -e /usr/local/share/java/classes/hamcrest1.3.jar; then
7215            HAMCREST_CORE_JAR=/usr/local/share/java/classes/hamcrest1.3.jar
7216        fi
7217        if test "$HAMCREST_CORE_JAR" = "" && test -e /usr/share/lib/java/hamcrest.jar; then
7218            HAMCREST_CORE_JAR=/usr/share/lib/java/hamcrest.jar
7219        fi
7220        if test "$HAMCREST_CORE_JAR" = "" && test -e /usr/local/share/lib/java/hamcrest.jar; then
7221            HAMCREST_CORE_JAR=/usr/local/share/lib/java/hamcrest.jar
7222        fi
7223        if test "$HAMCREST_CORE_JAR" = "" && test -e /usr/share/java/hamcrest.jar; then
7224            HAMCREST_CORE_JAR=/usr/share/java/hamcrest.jar
7225        fi
7226        if test "$HAMCREST_CORE_JAR" = "" && test -e /usr/local/share/java/classes/hamcrest.jar; then
7227            HAMCREST_CORE_JAR=/usr/local/share/java/classes/hamcrest.jar
7228        fi
7229    else
7230        HAMCREST_CORE_JAR=$with_hamcrest_core
7231    fi
7232    if test -e "$HAMCREST_CORE_JAR"; then
7233        AC_MSG_RESULT([yes])
7234        if test "$_os" = "WINNT"; then
7235            HAMCREST_CORE_JAR=`cygpath -m "$HAMCREST_CORE_JAR"`
7236        fi
7237    else
7238        if test "$JUNIT_NEEDS_HAMCREST" = "yes"; then
7239            AC_MSG_ERROR([cannot find hamcrest-core jar; please install one in the
7240default locations (/usr/share/java or /usr/local/share/java/classes), specify its
7241pathname via --with-hamcrest-core=..., or disable
7242it via --without-hamcrest-core or --without-junit])
7243        else
7244            AC_MSG_RESULT([no, skipping])
7245        fi
7246    fi
7247else
7248    if test "$JUNIT_NEEDS_HAMCREST" = "yes"; then
7249        AC_MSG_ERROR([JUnit needs Hamcrest but Hamcrest disabled.])
7250    fi
7251fi
7252AC_SUBST(HAMCREST_CORE_JAR)
7253
7254AC_MSG_CHECKING([which languages to be built])
7255WITH_LANG="$with_lang"
7256if test -z "$WITH_LANG"; then
7257   AC_MSG_RESULT([en-US])
7258else
7259   AC_MSG_RESULT([$WITH_LANG])
7260   ADDITIONAL_REPOSITORIES="$ADDITIONAL_REPOSITORIES ../extras"
7261   BUILD_TYPE="$BUILD_TYPE L10N"
7262fi
7263AC_SUBST(WITH_LANG)
7264
7265AC_MSG_CHECKING([which languages have poor help localizations])
7266WITH_POOR_HELP_LOCALIZATIONS="$with_poor_help_localizations"
7267if test -z "$WITH_POOR_HELP_LOCALIZATIONS"; then
7268   AC_MSG_RESULT([none])
7269else
7270   AC_MSG_RESULT([$WITH_POOR_HELP_LOCALIZATIONS])
7271fi
7272AC_SUBST(WITH_POOR_HELP_LOCALIZATIONS)
7273
7274AC_MSG_CHECKING([which dictionaries to include])
7275if test -z "$with_dict"; then
7276   WITH_DICT=,ALL,
7277   AC_MSG_RESULT([ALL])
7278else
7279   WITH_DICT=","$with_dict","
7280   AC_MSG_RESULT([$with_dict])
7281fi
7282AC_SUBST(WITH_DICT)
7283
7284AC_MSG_CHECKING([for additional 'intro' bitmaps])
7285INTRO_BITMAPS=
7286if test -z "$with_intro_bitmaps" -o "$with_intro_bitmaps" = "no" ; then
7287   INTRO_BITMAPS=
7288   AC_MSG_RESULT([none])
7289else
7290   for bitmap in `echo $with_intro_bitmaps | tr ',' ' '` ; do
7291      case "$bitmap" in
7292         *.png) ;;
7293         *)     bitmap= ; AC_MSG_WARN([Intro bitmaps should be .png files!]) ;;
7294      esac
7295      if test -n "$bitmap" ; then
7296         INTRO_BITMAPS="$INTRO_BITMAPS $bitmap"
7297      fi
7298   done
7299   AC_MSG_RESULT([$INTRO_BITMAPS])
7300fi
7301AC_SUBST(INTRO_BITMAPS)
7302
7303AC_MSG_CHECKING([for additional 'about' bitmaps])
7304ABOUT_BITMAPS=
7305if test -z "$with_about_bitmaps" -o "$with_about_bitmaps" = "no" ; then
7306   ABOUT_BITMAPS=
7307   AC_MSG_RESULT([none])
7308else
7309   for bitmap in `echo $with_about_bitmaps | tr ',' ' '` ; do
7310      case "$bitmap" in
7311         *.png) ;;
7312         *)     bitmap= ; AC_MSG_WARN([About bitmaps should be .png files!]) ;;
7313      esac
7314      if test -n "$bitmap" ; then
7315         ABOUT_BITMAPS="$ABOUT_BITMAPS $bitmap"
7316      fi
7317   done
7318   AC_MSG_RESULT([$ABOUT_BITMAPS])
7319fi
7320AC_SUBST(ABOUT_BITMAPS)
7321
7322OOO_VENDOR=
7323AC_MSG_CHECKING([for vendor])
7324if test -z "$with_vendor" -o "$with_vendor" = "no" ; then
7325   AC_MSG_RESULT([not set])
7326else
7327   OOO_VENDOR="$with_vendor"
7328   AC_MSG_RESULT([$OOO_VENDOR])
7329fi
7330AC_SUBST(OOO_VENDOR)
7331
7332UNIXWRAPPERNAME=
7333AC_MSG_CHECKING([for UNIX wrapper name])
7334if test -z "$with_unix_wrapper" -o "$with_unix_wrapper" = "no" -o "$with_unix_wrapper" = "yes" ; then
7335   AC_MSG_RESULT([not set])
7336else
7337   UNIXWRAPPERNAME="$with_unix_wrapper"
7338   AC_MSG_RESULT([$UNIXWRAPPERNAME])
7339fi
7340AC_SUBST(UNIXWRAPPERNAME)
7341
7342AC_MSG_CHECKING([whether to statically link to Gtk])
7343if test -n "$enable_static_gtk" && test "$enable_static_gtk" != "no"; then
7344   ENABLE_STATIC_GTK="TRUE"
7345   AC_MSG_RESULT([yes])
7346else
7347   ENABLE_STATIC_GTK="FALSE"
7348   AC_MSG_RESULT([no])
7349fi
7350AC_SUBST(ENABLE_STATIC_GTK)
7351
7352AC_MSG_CHECKING([whether to use layout dialogs])
7353if test -n "$enable_layout" && test "$enable_layout" != "no"; then
7354   ENABLE_LAYOUT="TRUE"
7355   AC_MSG_RESULT([yes])
7356else
7357   ENABLE_LAYOUT="FALSE"
7358   AC_MSG_RESULT([no])
7359fi
7360AC_SUBST(ENABLE_LAYOUT)
7361
7362# ===================================================================
7363# De- or increase default verbosity of build process
7364# ===================================================================
7365AC_MSG_CHECKING([build verbosity])
7366if test -n "$enable_verbose"; then
7367   if test "$enable_verbose" = "yes"; then
7368      VERBOSE="TRUE"
7369      AC_MSG_RESULT([high])
7370   fi
7371   if test "$enable_verbose" = "no"; then
7372      VERBOSE="FALSE"
7373      AC_MSG_RESULT([low])
7374   fi
7375else
7376   AC_MSG_RESULT([not set])
7377fi
7378AC_SUBST(VERBOSE)
7379
7380dnl ===================================================================
7381dnl Hook up AOOs nodep environmental variable to automake's equivalent
7382dnl --enable-dependency-tracking configure option
7383dnl ===================================================================
7384AC_MSG_CHECKING([whether to enable dependency tracking])
7385if test "$enable_dependency_tracking" = "no"; then
7386    nodep=TRUE
7387    AC_MSG_RESULT([no])
7388else
7389    AC_MSG_RESULT([yes])
7390fi
7391AC_SUBST(nodep)
7392
7393dnl ===================================================================
7394dnl Setting up the environment.
7395dnl ===================================================================
7396echo "********************************************************************"
7397echo "*                                                                  *"
7398echo "*   Setting up the build environment variables.                    *"
7399echo "*                                                                  *"
7400echo "********************************************************************"
7401
7402if test -z "$COMPATH"; then
7403   AC_MSG_ERROR([No compiler found.])
7404fi
7405AC_SUBST(COMPATH)
7406AC_SUBST(CC_PATH)
7407
7408AC_MSG_CHECKING([solver path])
7409if test -z "$with_local_solver"; then
7410   LOCAL_SOLVER="DEFAULT"
7411   AC_MSG_RESULT([default])
7412else
7413   LOCAL_SOLVER=$with_local_solver
7414   AC_MSG_RESULT([$with_local_solver])
7415fi
7416AC_SUBST(LOCAL_SOLVER)
7417
7418AC_SUBST(BUILD_TYPE)
7419AC_SUBST(ADDITIONAL_REPOSITORIES)
7420
7421# make sure config.guess is +x; we execute config.guess, so it has to be so;
7422chmod +x ./config.guess
7423
7424# Create files from their *.in templates.
7425AC_CONFIG_FILES([set_soenv Makefile])
7426
7427AC_MSG_NOTICE([writing config.status])
7428AC_OUTPUT
7429
7430dnl Executing the set_soenv script to setup the environment variables.
7431chmod a+x set_soenv
7432if test -z "$enable_check_only"; then
7433   './set_soenv'
7434else
7435   echo
7436   echo Test Complete
7437   echo No environment file will be generated
7438   echo
7439   num_warnings=`wc -l warn`
7440   _num=`echo $num_warnings | $AWK '{ print $1 }'`
7441   if test $_num -gt 0; then
7442      echo The following warning\(s\) were generated by configure
7443      echo ----------------------------------------------------
7444      echo
7445      cat warn
7446      echo
7447   else
7448      echo There were no warnings
7449   fi
7450   echo
7451fi
7452
7453
7454