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