1 dnl -*- Mode: Autoconf; tab-width: 4; indent-tabs-mode: nil; fill-column: 102 -*-
2 dnl configure.ac serves as input for the GNU autoconf package
3 dnl in order to create a configure script.
5 # The version number in the second argument to AC_INIT should be four numbers separated by
6 # periods. Some parts of the code requires the first one to be less than 128 and the others to be less
7 # than 256. The four numbers can optionally be followed by a period and a free-form string containing
8 # no spaces or periods, like "frobozz-mumble-42" or "alpha0". If the free-form string ends with one or
9 # several non-alphanumeric characters, those are split off and used only for the
10 # ABOUTBOXPRODUCTVERSIONSUFFIX in openoffice.lst. Why that is necessary, no idea.
12 AC_INIT([LibreOffice],[7.0.0.0.alpha0+],[],[],[http://documentfoundation.org/])
14 dnl libnumbertext needs autoconf 2.68, but that can pick up autoconf268 just fine if it is installed
15 dnl whereas aclocal (as run by autogen.sh) insists on using autoconf and fails hard
16 dnl so check for the version of autoconf that is actually used to create the configure script
18 m4_if(m4_version_compare(m4_defn([AC_AUTOCONF_VERSION]), [2.68]), -1,
19 [AC_MSG_ERROR([at least autoconf version 2.68 is needed (you can use AUTOCONF environment variable to point to a suitable one)])])
21 if test -n "$BUILD_TYPE"; then
22 AC_MSG_ERROR([You have sourced config_host.mk in this shell. This may lead to trouble, please run in a fresh (login) shell.])
36 CC_BASE=`first_arg_basename "$CC"`
37 CXX_BASE=`first_arg_basename "$CXX"`
41 GIT_NEEDED_SUBMODULES=""
42 LO_PATH= # used by path_munge to construct a PATH variable
49 # let's start with Fedora's paths for now
50 -L/lib|-L/lib/|-L/lib64|-L/lib64/|-L/usr/lib|-L/usr/lib/|-L/usr/lib64|-L/usr/lib64/)
51 # ignore it: on UNIXoids it is searched by default anyway
52 # but if it's given explicitly then it may override other paths
53 # (on macOS it would be an error to use it instead of SDK)
56 filteredlibs="$filteredlibs $f"
65 if test "$build_os" = "cygwin"; then
67 # spaces,parentheses,brackets,braces are problematic in pathname
69 case "$formatted_path" in
70 *\ * | *\)* | *\(* | *\{* | *\}* | *\[* | *\]* | *\\* )
74 if test "$pf_conv_to_dos" = "yes"; then
75 if test "$GNUMAKE_WIN_NATIVE" = "TRUE" ; then
76 formatted_path=`cygpath -sm "$formatted_path"`
78 formatted_path=`cygpath -d "$formatted_path"`
80 if test $? -ne 0; then
81 AC_MSG_ERROR([path conversion failed for "$1".])
84 fp_count_colon=`echo "$formatted_path" | $GREP -c "[:]"`
85 fp_count_slash=`echo "$formatted_path" | $GREP -c "[/]"`
86 if test "$fp_count_slash$fp_count_colon" != "00"; then
87 if test "$fp_count_colon" = "0"; then
88 new_formatted_path=`realpath "$formatted_path"`
89 if test $? -ne 0; then
90 AC_MSG_WARN([realpath failed for "$1", not necessarily a problem.])
92 formatted_path="$new_formatted_path"
95 formatted_path=`cygpath -m "$formatted_path"`
96 if test $? -ne 0; then
97 AC_MSG_ERROR([path conversion failed for "$1".])
100 fp_count_space=`echo "$formatted_path" | $GREP -c "[ ]"`
101 if test "$fp_count_space" != "0"; then
102 AC_MSG_ERROR([converted path "$formatted_path" still contains spaces. Short filenames (8.3 filenames) support was disabled on this system?])
109 # There appears to be no simple and portable method to get an absolute and
110 # canonical path, so we try creating the directory if does not exist and
111 # utilizing the shell and pwd.
114 test ! -e "$rel" && mkdir -p "$rel"
115 if test -d "$rel" ; then
116 cd "$rel" || AC_MSG_ERROR([absolute path resolution failed for "$rel".])
117 absolute_path="$(pwd)"
120 AC_MSG_ERROR([Failed to resolve absolute path. "$rel" does not exist or is not a directory.])
128 if test "$have_WARNINGS" = "no"; then
129 echo "*************************************" > warn
131 if which tput >/dev/null && test "`tput colors 2>/dev/null || echo 0`" -ge 8; then
132 dnl <esc> as actual byte (U+1b), [ escaped using quadrigraph @<:@
133 COLORWARN='*
\e@<:@1;33;40m WARNING
\e@<:@0m:'
135 COLORWARN="* WARNING :"
138 echo "$COLORWARN $@" >> warn
141 dnl Some Mac User have the bad habit of letting a lot of crap
142 dnl accumulate in their PATH and even adding stuff in /usr/local/bin
143 dnl that confuse the build.
144 dnl For the ones that use LODE, let's be nice and protect them
149 mac_path="$LODE_HOME/opt/bin:/usr/bin:/bin:/usr/sbin:/sbin"
150 dnl a common but nevertheless necessary thing that may be in a fancy
151 dnl path location is git, so make sure we have it
152 mac_git_path=`which git 2>/dev/null`
153 if test -n "$mac_git_path" -a -x "$mac_git_path" -a "$mac_git_path" != "/usr/bin/git" ; then
154 mac_path="$mac_path:`dirname $mac_git_path`"
156 dnl a not so common but nevertheless quite helpful thing that may be in a fancy
157 dnl path location is gpg, so make sure we find it
158 mac_gpg_path=`which gpg 2>/dev/null`
159 if test -n "$mac_gpg_path" -a -x "$mac_gpg_path" -a "$mac_gpg_path" != "/usr/bin/gpg" ; then
160 mac_path="$mac_path:`dirname $mac_gpg_path`"
168 echo "********************************************************************"
170 echo "* Running ${PACKAGE_NAME} build configuration."
172 echo "********************************************************************"
175 dnl ===================================================================
176 dnl checks build and host OSes
177 dnl do this before argument processing to allow for platform dependent defaults
178 dnl ===================================================================
181 AC_MSG_CHECKING([for product name])
182 PRODUCTNAME="AC_PACKAGE_NAME"
183 if test -n "$with_product_name" -a "$with_product_name" != no; then
184 PRODUCTNAME="$with_product_name"
186 if test "$enable_release_build" = "" -o "$enable_release_build" = "no"; then
187 PRODUCTNAME="${PRODUCTNAME}Dev"
189 AC_MSG_RESULT([$PRODUCTNAME])
190 AC_SUBST(PRODUCTNAME)
191 PRODUCTNAME_WITHOUT_SPACES=$(printf %s "$PRODUCTNAME" | sed 's/ //g')
192 AC_SUBST(PRODUCTNAME_WITHOUT_SPACES)
194 dnl ===================================================================
195 dnl Our version is defined by the AC_INIT() at the top of this script.
196 dnl ===================================================================
198 AC_MSG_CHECKING([for package version])
199 if test -n "$with_package_version" -a "$with_package_version" != no; then
200 PACKAGE_VERSION="$with_package_version"
202 AC_MSG_RESULT([$PACKAGE_VERSION])
204 set `echo "$PACKAGE_VERSION" | sed "s/\./ /g"`
206 LIBO_VERSION_MAJOR=$1
207 LIBO_VERSION_MINOR=$2
208 LIBO_VERSION_MICRO=$3
209 LIBO_VERSION_PATCH=$4
211 # The CFBundleShortVersionString in Info.plist consists of three integers, so encode the third
212 # as the micro version times 1000 plus the patch number. Unfortunately the LIBO_VERSION_SUFFIX can be anything so
213 # no way to encode that into an integer in general.
214 MACOSX_BUNDLE_SHORTVERSION=$LIBO_VERSION_MAJOR.$LIBO_VERSION_MINOR.`expr $LIBO_VERSION_MICRO '*' 1000 + $LIBO_VERSION_PATCH`
216 LIBO_VERSION_SUFFIX=$5
217 # Split out LIBO_VERSION_SUFFIX_SUFFIX... horrible crack. But apparently wanted separately in
218 # openoffice.lst as ABOUTBOXPRODUCTVERSIONSUFFIX. Note that the double brackets are for m4's sake,
219 # they get undoubled before actually passed to sed.
220 LIBO_VERSION_SUFFIX_SUFFIX=`echo "$LIBO_VERSION_SUFFIX" | sed -e 's/.*[[a-zA-Z0-9]]\([[^a-zA-Z0-9]]*\)$/\1/'`
221 test -n "$LIBO_VERSION_SUFFIX_SUFFIX" && LIBO_VERSION_SUFFIX="${LIBO_VERSION_SUFFIX%${LIBO_VERSION_SUFFIX_SUFFIX}}"
222 # LIBO_VERSION_SUFFIX, if non-empty, should include the period separator
223 test -n "$LIBO_VERSION_SUFFIX" && LIBO_VERSION_SUFFIX=".$LIBO_VERSION_SUFFIX"
225 AC_SUBST(LIBO_VERSION_MAJOR)
226 AC_SUBST(LIBO_VERSION_MINOR)
227 AC_SUBST(LIBO_VERSION_MICRO)
228 AC_SUBST(LIBO_VERSION_PATCH)
229 AC_SUBST(MACOSX_BUNDLE_SHORTVERSION)
230 AC_SUBST(LIBO_VERSION_SUFFIX)
231 AC_SUBST(LIBO_VERSION_SUFFIX_SUFFIX)
233 AC_DEFINE_UNQUOTED(LIBO_VERSION_MAJOR,$LIBO_VERSION_MAJOR)
234 AC_DEFINE_UNQUOTED(LIBO_VERSION_MINOR,$LIBO_VERSION_MINOR)
235 AC_DEFINE_UNQUOTED(LIBO_VERSION_MICRO,$LIBO_VERSION_MICRO)
236 AC_DEFINE_UNQUOTED(LIBO_VERSION_PATCH,$LIBO_VERSION_PATCH)
238 LIBO_THIS_YEAR=`date +%Y`
239 AC_DEFINE_UNQUOTED(LIBO_THIS_YEAR,$LIBO_THIS_YEAR)
241 dnl ===================================================================
243 dnl ===================================================================
244 AC_MSG_CHECKING([for product version])
245 PRODUCTVERSION="$LIBO_VERSION_MAJOR.$LIBO_VERSION_MINOR"
246 AC_MSG_RESULT([$PRODUCTVERSION])
247 AC_SUBST(PRODUCTVERSION)
250 # AC_PROG_EGREP doesn't set GREP on all systems as well
251 AC_PATH_PROG(GREP, grep)
259 dnl ======================================
260 dnl Required GObject introspection version
261 dnl ======================================
262 INTROSPECTION_REQUIRED_VERSION=1.32.0
264 dnl ===================================================================
265 dnl Search all the common names for GNU Make
266 dnl ===================================================================
267 AC_MSG_CHECKING([for GNU Make])
269 # try to use our own make if it is available and GNUMAKE was not already defined
270 if test -z "$GNUMAKE"; then
271 if test -n "$LODE_HOME" -a -x "$LODE_HOME/opt/bin/make" ; then
272 GNUMAKE="$LODE_HOME/opt/bin/make"
273 elif test -x "/opt/lo/bin/make"; then
274 GNUMAKE="/opt/lo/bin/make"
279 for a in "$MAKE" "$GNUMAKE" make gmake gnumake; do
280 if test -n "$a"; then
281 $a --version 2> /dev/null | grep GNU 2>&1 > /dev/null
282 if test $? -eq 0; then
283 if test "$build_os" = "cygwin"; then
284 if test -n "$($a -v | grep 'Built for Windows')" ; then
285 GNUMAKE="$(cygpath -m "$(which "$(cygpath -u $a)")")"
286 GNUMAKE_WIN_NATIVE="TRUE"
297 AC_MSG_RESULT($GNUMAKE)
298 if test -z "$GNUMAKE"; then
299 AC_MSG_ERROR([not found. install GNU Make.])
301 if test "$GNUMAKE_WIN_NATIVE" = "TRUE" ; then
302 AC_MSG_NOTICE([Using a native Win32 GNU Make version.])
306 win_short_path_for_make()
308 local_short_path="$1"
309 if test "$GNUMAKE_WIN_NATIVE" = "TRUE" ; then
310 cygpath -sm "$local_short_path"
312 cygpath -u "$(cygpath -d "$local_short_path")"
317 if test "$build_os" = "cygwin"; then
318 PathFormat "$SRC_ROOT"
319 SRC_ROOT="$formatted_path"
320 PathFormat "$BUILDDIR"
321 BUILDDIR="$formatted_path"
323 AC_MSG_CHECKING(for explicit COMSPEC)
324 if test -z "$COMSPEC"; then
325 AC_MSG_ERROR([COMSPEC not set in environment, please set it and rerun])
327 AC_MSG_RESULT([found: $COMSPEC])
334 AC_DEFINE_UNQUOTED(SRCDIR,"$SRC_ROOT")
335 AC_DEFINE_UNQUOTED(SRC_ROOT,"$SRC_ROOT")
336 AC_DEFINE_UNQUOTED(BUILDDIR,"$BUILDDIR")
338 if test "z$EUID" = "z0" -a "`uname -o 2>/dev/null`" = "Cygwin"; then
339 AC_MSG_ERROR([You must build LibreOffice as a normal user - not using an administrative account])
342 # need sed in os checks...
343 AC_PATH_PROGS(SED, sed)
344 if test -z "$SED"; then
345 AC_MSG_ERROR([install sed to run this script])
348 # Set the ENABLE_LTO variable
349 # ===================================================================
350 AC_MSG_CHECKING([whether to use link-time optimization])
351 if test -n "$enable_lto" -a "$enable_lto" != "no"; then
354 AC_DEFINE(STATIC_LINKING)
361 AC_ARG_ENABLE(fuzz-options,
362 AS_HELP_STRING([--enable-fuzz-options],
363 [Randomly enable or disable each of those configurable options
364 that are supposed to be freely selectable without interdependencies,
365 or where bad interaction from interdependencies is automatically avoided.])
368 dnl ===================================================================
369 dnl When building for Android, --with-android-ndk,
370 dnl --with-android-ndk-toolchain-version and --with-android-sdk are
372 dnl ===================================================================
374 AC_ARG_WITH(android-ndk,
375 AS_HELP_STRING([--with-android-ndk],
376 [Specify location of the Android Native Development Kit. Mandatory when building for Android.]),
379 AC_ARG_WITH(android-ndk-toolchain-version,
380 AS_HELP_STRING([--with-android-ndk-toolchain-version],
381 [Specify which toolchain version to use, of those present in the
382 Android NDK you are using. The default (and only supported version currently) is "clang5.0"]),,
383 with_android_ndk_toolchain_version=clang5.0)
385 AC_ARG_WITH(android-sdk,
386 AS_HELP_STRING([--with-android-sdk],
387 [Specify location of the Android SDK. Mandatory when building for Android.]),
390 AC_ARG_WITH(android-api-level,
391 AS_HELP_STRING([--with-android-api-level],
392 [Specify the API level when building for Android. Defaults to 16 for ARM and x86 and to 21 for ARM64 and x86-64]),
396 if test -z "$with_android_ndk" -a -e "$SRC_ROOT/external/android-ndk" -a "$build" != "$host"; then
397 with_android_ndk="$SRC_ROOT/external/android-ndk"
399 if test -n "$with_android_ndk"; then
400 eval ANDROID_NDK_HOME=$with_android_ndk
402 # Set up a lot of pre-canned defaults
404 if test ! -f $ANDROID_NDK_HOME/RELEASE.TXT; then
405 if test ! -f $ANDROID_NDK_HOME/source.properties; then
406 AC_MSG_ERROR([Unrecognized Android NDK. Missing RELEASE.TXT or source.properties file in $ANDROID_NDK_HOME.])
408 ANDROID_NDK_VERSION=`sed -n -e 's/Pkg.Revision = //p' $ANDROID_NDK_HOME/source.properties`
410 ANDROID_NDK_VERSION=`cut -f1 -d' ' <$ANDROID_NDK_HOME/RELEASE.TXT`
412 if test -z "$ANDROID_NDK_VERSION"; then
413 AC_MSG_ERROR([Failed to determine Android NDK version. Please check your installation.])
415 case $ANDROID_NDK_VERSION in
417 AC_MSG_ERROR([Building for Android is only supported with NDK versions above 16.x*])
419 11.1.*|12.1.*|13.1.*|14.1.*)
420 AC_MSG_ERROR([Building for Android is only supported with NDK versions above 16.x.*])
422 16.*|17.*|18.*|19.*|20.*)
425 AC_MSG_WARN([Untested Android NDK version $ANDROID_NDK_VERSION, only versions 16.* til 20.* have been used successfully. Proceed at your own risk.])
426 add_warning "Untested Android NDK version $ANDROID_NDK_VERSION, only versions 16.* til 20.* have been used successfully. Proceed at your own risk."
431 if test -n "$with_android_api_level" ; then
432 ANDROID_API_LEVEL="$with_android_api_level"
435 android_cpu=$host_cpu
436 if test $host_cpu = arm; then
437 android_platform_prefix=arm-linux-androideabi
438 android_gnu_prefix=$android_platform_prefix
439 LLVM_TRIPLE=armv7a-linux-androideabi
440 ANDROID_APP_ABI=armeabi-v7a
441 ANDROIDCFLAGS="-mthumb -march=armv7-a -mfloat-abi=softfp -mfpu=neon -Wl,--fix-cortex-a8"
442 elif test $host_cpu = aarch64; then
443 android_platform_prefix=aarch64-linux-android
444 android_gnu_prefix=$android_platform_prefix
445 LLVM_TRIPLE=$android_platform_prefix
446 # minimum android version that supports aarch64
447 if test "$ANDROID_API_LEVEL" -lt "21" ; then
450 ANDROID_APP_ABI=arm64-v8a
451 elif test $host_cpu = x86_64; then
452 android_platform_prefix=x86_64-linux-android
453 android_gnu_prefix=$android_platform_prefix
454 LLVM_TRIPLE=$android_platform_prefix
455 # minimum android version that supports x86_64
457 ANDROID_APP_ABI=x86_64
459 # host_cpu is something like "i386" or "i686" I guess, NDK uses
460 # "x86" in some contexts
462 android_platform_prefix=$android_cpu
463 android_gnu_prefix=i686-linux-android
464 LLVM_TRIPLE=$android_gnu_prefix
468 case "$with_android_ndk_toolchain_version" in
470 ANDROID_GCC_TOOLCHAIN_VERSION=4.9
473 AC_MSG_ERROR([Unrecognized value for the --with-android-ndk-toolchain-version option. Building for Android is only supported with Clang 5.*])
476 AC_MSG_NOTICE([using the Android API level... $ANDROID_API_LEVEL])
478 # NDK 15 or later toolchain is 64bit-only, except for Windows that we don't support. Using a 64-bit
479 # linker is required if you compile large parts of the code with -g. A 32-bit linker just won't
480 # manage to link the (app-specific) single huge .so that is built for the app in
481 # android/source/ if there is debug information in a significant part of the object files.
482 # (A 64-bit ld.gold grows too much over 10 gigabytes of virtual space when linking such a .so if
483 # all objects have been built with debug information.)
486 android_HOST_TAG=linux-x86_64
489 android_HOST_TAG=darwin-x86_64
492 AC_MSG_ERROR([We only support building for Android from Linux or macOS])
493 # ndk would also support windows and windows-x86_64
496 android_TOOLCHAIN=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/$android_HOST_TAG
497 ANDROID_COMPILER_BIN=$android_TOOLCHAIN/bin
498 dnl TODO: NSS build uses it...
499 ANDROID_BINUTILS_PREBUILT_ROOT=$ANDROID_NDK_HOME/toolchains/$android_platform_prefix-$ANDROID_GCC_TOOLCHAIN_VERSION/prebuilt/$android_HOST_TAG
500 AC_SUBST(ANDROID_BINUTILS_PREBUILT_ROOT)
502 test -z "$AR" && AR=$ANDROID_COMPILER_BIN/$android_gnu_prefix-ar
503 test -z "$NM" && NM=$ANDROID_COMPILER_BIN/$android_gnu_prefix-nm
504 test -z "$OBJDUMP" && OBJDUMP=$ANDROID_COMPILER_BIN/$android_gnu_prefix-objdump
505 test -z "$RANLIB" && RANLIB=$ANDROID_COMPILER_BIN/$android_gnu_prefix-ranlib
506 test -z "$STRIP" && STRIP=$ANDROID_COMPILER_BIN/$android_gnu_prefix-strip
508 ANDROIDCFLAGS="$ANDROIDCFLAGS -target ${LLVM_TRIPLE}${ANDROID_API_LEVEL}"
509 ANDROIDCFLAGS="$ANDROIDCFLAGS -no-canonical-prefixes -ffunction-sections -fdata-sections -Qunused-arguments"
510 if test "$ENABLE_LTO" = TRUE; then
511 # -flto comes from com_GCC_defs.mk, too, but we need to make sure it gets passed as part of
512 # $CC and $CXX when building external libraries
513 ANDROIDCFLAGS="$ANDROIDCFLAGS -flto -fuse-linker-plugin -O2"
516 ANDROIDCXXFLAGS="$ANDROIDCFLAGS -stdlib=libc++"
518 if test -z "$CC"; then
519 CC="$ANDROID_COMPILER_BIN/clang $ANDROIDCFLAGS"
522 if test -z "$CXX"; then
523 CXX="$ANDROID_COMPILER_BIN/clang++ $ANDROIDCXXFLAGS"
527 # remember to download the ownCloud Android library later
528 BUILD_TYPE="$BUILD_TYPE OWNCLOUD_ANDROID_LIB"
530 AC_SUBST(ANDROID_NDK_HOME)
531 AC_SUBST(ANDROID_APP_ABI)
532 AC_SUBST(ANDROID_GCC_TOOLCHAIN_VERSION)
534 dnl ===================================================================
535 dnl --with-android-sdk
536 dnl ===================================================================
538 if test -z "$with_android_sdk" -a -e "$SRC_ROOT/external/android-sdk-linux" -a "$build" != "$host"; then
539 with_android_sdk="$SRC_ROOT/external/android-sdk-linux"
541 if test -n "$with_android_sdk"; then
542 eval ANDROID_SDK_HOME=$with_android_sdk
543 PATH="$ANDROID_SDK_HOME/platform-tools:$ANDROID_SDK_HOME/tools:$PATH"
545 AC_SUBST(ANDROID_SDK_HOME)
547 AC_ARG_ENABLE([android-lok],
548 AS_HELP_STRING([--enable-android-lok],
549 [The Android app from the android/ subdir needs several tweaks all
550 over the place that break the LOK when used in the Online-based
551 Android app. This switch indicates that the intent of this build is
552 actually the Online-based, non-modified LOK.])
555 if test -n "$ANDROID_NDK_HOME" ; then
556 if test "$enable_android_lok" = yes; then
557 ENABLE_ANDROID_LOK=TRUE
558 AC_DEFINE(HAVE_FEATURE_ANDROID_LOK)
559 AC_MSG_NOTICE([building the Android version... for the Online-based Android app])
561 AC_MSG_NOTICE([building the Android version... for the app from the android/ subdir])
564 AC_SUBST([ENABLE_ANDROID_LOK])
566 libo_FUZZ_ARG_ENABLE([android-editing],
567 AS_HELP_STRING([--enable-android-editing],
568 [Enable the experimental editing feature on Android.])
570 ENABLE_ANDROID_EDITING=
571 if test "$enable_android_editing" = yes; then
572 ENABLE_ANDROID_EDITING=TRUE
574 AC_SUBST([ENABLE_ANDROID_EDITING])
576 dnl ===================================================================
577 dnl The following is a list of supported systems.
578 dnl Sequential to keep the logic very simple
579 dnl These values may be checked and reset later.
580 dnl ===================================================================
581 #defaults unless the os test overrides this:
591 # Default values, as such probably valid just for Linux, set
592 # differently below just for Mac OSX, but at least better than
593 # hardcoding these as we used to do. Much of this is duplicated also
594 # in solenv for old build system and for gbuild, ideally we should
595 # perhaps define stuff like this only here in configure.ac?
597 LINKFLAGSSHL="-shared"
601 LINKFLAGSNOUNDEFS="-Wl,-z,defs"
604 INSTROOTCONTENTSUFFIX=
610 build_gstreamer_1_0=yes
615 dnl ===========================================================
616 dnl Check whether we're using Solaris 10 - SPARC or Intel.
617 dnl ===========================================================
618 AC_MSG_CHECKING([the Solaris operating system release])
619 _os_release=`echo $host_os | $SED -e s/solaris2\.//`
620 if test "$_os_release" -lt "10"; then
621 AC_MSG_ERROR([use Solaris >= 10 to build LibreOffice])
623 AC_MSG_RESULT([ok ($_os_release)])
626 dnl Check whether we're using a SPARC or i386 processor
627 AC_MSG_CHECKING([the processor type])
628 if test "$host_cpu" = "sparc" -o "$host_cpu" = "i386"; then
629 AC_MSG_RESULT([ok ($host_cpu)])
631 AC_MSG_ERROR([only SPARC and i386 processors are supported])
635 linux-gnu*|k*bsd*-gnu*)
636 build_gstreamer_1_0=yes
642 if test "$enable_fuzzers" != yes; then
648 BUILD_TYPE="$BUILD_TYPE FONTCONFIG FREETYPE"
661 # When building on Windows normally with MSVC under Cygwin,
662 # configure thinks that the host platform (the platform the
663 # built code will run on) is Cygwin, even if it obviously is
664 # Windows, which in Autoconf terminology is called
665 # "mingw32". (Which is misleading as MinGW is the name of the
666 # tool-chain, not an operating system.)
668 # Somewhat confusing, yes. But this configure script doesn't
669 # look at $host etc that much, it mostly uses its own $_os
670 # variable, set here in this case statement.
685 darwin*) # macOS or iOS
691 if test -n "$LODE_HOME" ; then
693 AC_MSG_NOTICE([sanitized the PATH to $PATH])
695 if test "$host_cpu" = "arm64" -o "$enable_ios_simulator" = "yes"; then
699 enable_mpl_subset=yes
700 enable_lotuswordpro=no
703 enable_postgresql_sdbc=no
704 enable_extension_integration=no
705 enable_report_builder=no
707 if test "$enable_ios_simulator" = "yes"; then
708 host=x86_64-apple-darwin
712 INSTROOTBASESUFFIX=/$PRODUCTNAME_WITHOUT_SPACES.app
713 INSTROOTCONTENTSUFFIX=/Contents
714 SDKDIRNAME=AC_PACKAGE_NAME${PRODUCTVERSION}_SDK
716 # See comment above the case "$host_os"
717 LINKFLAGSSHL="-dynamiclib -single_module"
724 # -undefined error is the default
729 build_gstreamer_1_0=yes
734 AC_MSG_CHECKING([the FreeBSD operating system release])
735 if test -n "$with_os_version"; then
736 OSVERSION="$with_os_version"
738 OSVERSION=`/sbin/sysctl -n kern.osreldate`
740 AC_MSG_RESULT([found OSVERSION=$OSVERSION])
741 AC_MSG_CHECKING([which thread library to use])
742 if test "$OSVERSION" -lt "500016"; then
743 PTHREAD_CFLAGS="-D_THREAD_SAFE"
744 PTHREAD_LIBS="-pthread"
745 elif test "$OSVERSION" -lt "502102"; then
746 PTHREAD_CFLAGS="-D_THREAD_SAFE"
750 PTHREAD_LIBS="-pthread"
752 AC_MSG_RESULT([$PTHREAD_LIBS])
757 build_gstreamer_1_0=yes
762 PTHREAD_LIBS="-pthread -lpthread"
769 PTHREAD_LIBS=-pthread
775 PTHREAD_CFLAGS="-D_THREAD_SAFE"
776 PTHREAD_LIBS="-pthread"
781 build_gstreamer_1_0=yes
786 PTHREAD_LIBS="-pthread"
791 build_gstreamer_1_0=no
792 enable_lotuswordpro=no
793 enable_mpl_subset=yes
796 enable_report_builder=no
798 enable_postgresql_sdbc=no
811 AC_DEFINE(HAVE_FT_FACE_GETCHARVARIANTINDEX)
812 BUILD_TYPE="$BUILD_TYPE CAIRO FONTCONFIG FREETYPE"
822 enable_gstreamer_1_0=no
827 enable_postgresql_sdbc=no
828 enable_firebird_sdbc=no
833 AC_MSG_ERROR([$host_os operating system is not suitable to build LibreOffice for!])
837 if test "$_os" = "Android" ; then
838 # Verify that the NDK and SDK options are proper
839 if test -z "$with_android_ndk"; then
840 AC_MSG_ERROR([the --with-android-ndk option is mandatory, unless it is available at external/android-ndk/.])
841 elif test ! -f "$ANDROID_NDK_HOME/meta/abis.json"; then
842 AC_MSG_ERROR([the --with-android-ndk option does not point to an Android NDK])
845 if test -z "$ANDROID_SDK_HOME"; then
846 AC_MSG_ERROR([the --with-android-sdk option is mandatory, unless it is available at external/android-sdk-linux/.])
847 elif test ! -d "$ANDROID_SDK_HOME/platforms"; then
848 AC_MSG_ERROR([the --with-android-sdk option does not point to an Android SDK])
851 BUILD_TOOLS_VERSION=`$SED -n -e 's/.*buildToolsVersion "\(.*\)"/\1/p' $SRC_ROOT/android/source/build.gradle`
852 if test ! -d "$ANDROID_SDK_HOME/build-tools/$BUILD_TOOLS_VERSION"; then
853 AC_MSG_WARN([android build-tools $BUILD_TOOLS_VERSION not found - install with
854 $ANDROID_SDK_HOME/tools/android update sdk -u --all --filter build-tools-$BUILD_TOOLS_VERSION
855 or adjust change $SRC_ROOT/android/source/build.gradle accordingly])
856 add_warning "android build-tools $BUILD_TOOLS_VERSION not found - install with"
857 add_warning " $ANDROID_SDK_HOME/tools/android update sdk -u --all --filter build-tools-$BUILD_TOOLS_VERSION"
858 add_warning "or adjust $SRC_ROOT/android/source/build.gradle accordingly"
860 if test ! -f "$ANDROID_SDK_HOME/extras/android/m2repository/source.properties"; then
861 AC_MSG_WARN([android support repository not found - install with
862 $ANDROID_SDK_HOME/tools/android update sdk -u --filter extra-android-m2repository
863 to allow the build to download the specified version of the android support libraries])
864 add_warning "android support repository not found - install with"
865 add_warning " $ANDROID_SDK_HOME/tools/android update sdk -u --filter extra-android-m2repository"
866 add_warning "to allow the build to download the specified version of the android support libraries"
870 if test "$_os" = "AIX"; then
871 AC_PATH_PROG(GAWK, gawk)
872 if test -z "$GAWK"; then
873 AC_MSG_ERROR([gawk not found in \$PATH])
879 AC_SUBST(PTHREAD_CFLAGS)
880 AC_SUBST(PTHREAD_LIBS)
882 # Check for explicit A/C/CXX/OBJC/OBJCXX/LDFLAGS.
883 # By default use the ones specified by our build system,
884 # but explicit override is possible.
885 AC_MSG_CHECKING(for explicit AFLAGS)
886 if test -n "$AFLAGS"; then
887 AC_MSG_RESULT([$AFLAGS])
893 AC_MSG_CHECKING(for explicit CFLAGS)
894 if test -n "$CFLAGS"; then
895 AC_MSG_RESULT([$CFLAGS])
901 AC_MSG_CHECKING(for explicit CXXFLAGS)
902 if test -n "$CXXFLAGS"; then
903 AC_MSG_RESULT([$CXXFLAGS])
909 AC_MSG_CHECKING(for explicit OBJCFLAGS)
910 if test -n "$OBJCFLAGS"; then
911 AC_MSG_RESULT([$OBJCFLAGS])
917 AC_MSG_CHECKING(for explicit OBJCXXFLAGS)
918 if test -n "$OBJCXXFLAGS"; then
919 AC_MSG_RESULT([$OBJCXXFLAGS])
925 AC_MSG_CHECKING(for explicit LDFLAGS)
926 if test -n "$LDFLAGS"; then
927 AC_MSG_RESULT([$LDFLAGS])
937 AC_SUBST(OBJCXXFLAGS)
942 AC_SUBST(x_OBJCFLAGS)
943 AC_SUBST(x_OBJCXXFLAGS)
946 dnl These are potentially set for MSVC, in the code checking for UCRT below:
947 my_original_CFLAGS=$CFLAGS
948 my_original_CXXFLAGS=$CXXFLAGS
949 my_original_CPPFLAGS=$CPPFLAGS
951 dnl The following checks for gcc, cc and then cl (if it weren't guarded for win32)
952 dnl Needs to precede the AC_C_BIGENDIAN and AC_SEARCH_LIBS calls below, which apparently call
953 dnl AC_PROG_CC internally.
954 if test "$_os" != "WINNT"; then
955 # AC_PROG_CC sets CFLAGS to -g -O2 if not set, avoid that
959 if test -z "$CC_BASE"; then
960 CC_BASE=`first_arg_basename "$CC"`
964 if test "$_os" != "WINNT"; then
965 AC_C_BIGENDIAN([ENDIANNESS=big], [ENDIANNESS=little])
971 if test $_os != "WINNT"; then
973 AC_SEARCH_LIBS([dlsym], [dl],
974 [case "$ac_cv_search_dlsym" in -l*) DLOPEN_LIBS="$ac_cv_search_dlsym";; esac],
975 [AC_MSG_ERROR([dlsym not found in either libc nor libdl])])
978 AC_SUBST(DLOPEN_LIBS)
980 AC_ARG_ENABLE(ios-simulator,
981 AS_HELP_STRING([--enable-ios-simulator],
982 [build i386 or x86_64 for ios simulator])
985 AC_ARG_ENABLE(ios-libreofficelight-app,
986 AS_HELP_STRING([--enable-ios-libreofficelight-app],
987 [When building for iOS, build stuff relevant only for the 'LibreOfficeLight' app
988 (in ios/LibreOfficeLight). Note that this app is not known to work in any useful manner,
989 and also that its actual build (in Xcode) requires some obvious modifications to the project.])
992 ENABLE_IOS_LIBREOFFICELIGHT_APP=
993 if test "$enable_ios_libreofficelight_app" = yes; then
994 ENABLE_IOS_LIBREOFFICELIGHT_APP=TRUE
996 AC_SUBST(ENABLE_IOS_LIBREOFFICELIGHT_APP)
998 ###############################################################################
999 # Extensions switches --enable/--disable
1000 ###############################################################################
1001 # By default these should be enabled unless having extra dependencies.
1002 # If there is extra dependency over configure options then the enable should
1003 # be automagic based on whether the requiring feature is enabled or not.
1004 # All this options change anything only with --enable-extension-integration.
1006 # The name of this option and its help string makes it sound as if
1007 # extensions are built anyway, just not integrated in the installer,
1008 # if you use --disable-extension-integration. Is that really the
1011 libo_FUZZ_ARG_ENABLE(extension-integration,
1012 AS_HELP_STRING([--disable-extension-integration],
1013 [Disable integration of the built extensions in the installer of the
1014 product. Use this switch to disable the integration.])
1017 AC_ARG_ENABLE(avmedia,
1018 AS_HELP_STRING([--disable-avmedia],
1019 [Disable displaying and inserting AV media in documents. Work in progress, use only if you are hacking on it.])
1022 AC_ARG_ENABLE(database-connectivity,
1023 AS_HELP_STRING([--disable-database-connectivity],
1024 [Disable various database connectivity. Work in progress, use only if you are hacking on it.])
1027 # This doesn't mean not building (or "integrating") extensions
1028 # (although it probably should; i.e. it should imply
1029 # --disable-extension-integration I guess), it means not supporting
1030 # any extension mechanism at all
1031 libo_FUZZ_ARG_ENABLE(extensions,
1032 AS_HELP_STRING([--disable-extensions],
1033 [Disable all add-on extension functionality. Work in progress, use only if you are hacking on it.])
1036 AC_ARG_ENABLE(scripting,
1037 AS_HELP_STRING([--disable-scripting],
1038 [Disable BASIC, Java and Python. Work in progress, use only if you are hacking on it.])
1041 # This is mainly for Android and iOS, but could potentially be used in some
1042 # special case otherwise, too, so factored out as a separate setting
1044 AC_ARG_ENABLE(dynamic-loading,
1045 AS_HELP_STRING([--disable-dynamic-loading],
1046 [Disable any use of dynamic loading of code. Work in progress, use only if you are hacking on it.])
1049 libo_FUZZ_ARG_ENABLE(report-builder,
1050 AS_HELP_STRING([--disable-report-builder],
1051 [Disable the Report Builder.])
1054 libo_FUZZ_ARG_ENABLE(ext-wiki-publisher,
1055 AS_HELP_STRING([--enable-ext-wiki-publisher],
1056 [Enable the Wiki Publisher extension.])
1059 libo_FUZZ_ARG_ENABLE(lpsolve,
1060 AS_HELP_STRING([--disable-lpsolve],
1061 [Disable compilation of the lp solve solver ])
1063 libo_FUZZ_ARG_ENABLE(coinmp,
1064 AS_HELP_STRING([--disable-coinmp],
1065 [Disable compilation of the CoinMP solver ])
1068 libo_FUZZ_ARG_ENABLE(pdfimport,
1069 AS_HELP_STRING([--disable-pdfimport],
1070 [Disable building the PDF import feature.])
1073 libo_FUZZ_ARG_ENABLE(pdfium,
1074 AS_HELP_STRING([--disable-pdfium],
1075 [Disable building PDFium.])
1078 libo_FUZZ_ARG_ENABLE(skia,
1079 AS_HELP_STRING([--disable-skia],
1080 [Disable building Skia.])
1083 ###############################################################################
1085 dnl ---------- *** ----------
1087 libo_FUZZ_ARG_ENABLE(mergelibs,
1088 AS_HELP_STRING([--enable-mergelibs],
1089 [Merge several of the smaller libraries into one big, "merged", one.])
1092 libo_FUZZ_ARG_ENABLE(breakpad,
1093 AS_HELP_STRING([--enable-breakpad],
1094 [Enables breakpad for crash reporting.])
1097 libo_FUZZ_ARG_ENABLE(crashdump,
1098 AS_HELP_STRING([--disable-crashdump],
1099 [Disable dump.ini and dump-file, when --enable-breakpad])
1102 AC_ARG_ENABLE(fetch-external,
1103 AS_HELP_STRING([--disable-fetch-external],
1104 [Disables fetching external tarballs from web sources.])
1107 AC_ARG_ENABLE(fuzzers,
1108 AS_HELP_STRING([--enable-fuzzers],
1109 [Enables building libfuzzer targets for fuzz testing.])
1112 libo_FUZZ_ARG_ENABLE(pch,
1113 AS_HELP_STRING([--enable-pch=<yes/no/system/base/normal/full>],
1114 [Enables precompiled header support for C++. Forced default on Windows/VC build.
1115 Using 'system' will include only external headers, 'base' will add also headers
1116 from base modules, 'normal' will also add all headers except from the module built,
1117 'full' will use all suitable headers even from a module itself.])
1120 libo_FUZZ_ARG_ENABLE(epm,
1121 AS_HELP_STRING([--enable-epm],
1122 [LibreOffice includes self-packaging code, that requires epm, however epm is
1123 useless for large scale package building.])
1126 libo_FUZZ_ARG_ENABLE(odk,
1127 AS_HELP_STRING([--disable-odk],
1128 [LibreOffice includes an ODK, office development kit which some packagers may
1129 wish to build without.])
1132 AC_ARG_ENABLE(mpl-subset,
1133 AS_HELP_STRING([--enable-mpl-subset],
1134 [Don't compile any pieces which are not MPL or more liberally licensed])
1137 libo_FUZZ_ARG_ENABLE(evolution2,
1138 AS_HELP_STRING([--enable-evolution2],
1139 [Allows the built-in evolution 2 addressbook connectivity build to be
1143 AC_ARG_ENABLE(avahi,
1144 AS_HELP_STRING([--enable-avahi],
1145 [Determines whether to use Avahi to advertise Impress to remote controls.])
1148 libo_FUZZ_ARG_ENABLE(werror,
1149 AS_HELP_STRING([--enable-werror],
1150 [Turn warnings to errors. (Has no effect in modules where the treating
1151 of warnings as errors is disabled explicitly.)]),
1154 libo_FUZZ_ARG_ENABLE(assert-always-abort,
1155 AS_HELP_STRING([--enable-assert-always-abort],
1156 [make assert() failures abort even when building without --enable-debug or --enable-dbgutil.]),
1159 libo_FUZZ_ARG_ENABLE(dbgutil,
1160 AS_HELP_STRING([--enable-dbgutil],
1161 [Provide debugging support from --enable-debug and include additional debugging
1162 utilities such as object counting or more expensive checks.
1163 This is the recommended option for developers.
1164 Note that this makes the build ABI incompatible, it is not possible to mix object
1165 files or libraries from a --enable-dbgutil and a --disable-dbgutil build.]))
1167 libo_FUZZ_ARG_ENABLE(debug,
1168 AS_HELP_STRING([--enable-debug],
1169 [Include debugging information, disable compiler optimization and inlining plus
1170 extra debugging code like assertions. Extra large build! (enables -g compiler flag).]))
1172 libo_FUZZ_ARG_ENABLE(split-debug,
1173 AS_HELP_STRING([--disable-split-debug],
1174 [Disable using split debug information (-gsplit-dwarf compile flag). Split debug information
1175 saves disk space and build time, but requires tools that support it (both build tools and debuggers).]))
1177 libo_FUZZ_ARG_ENABLE(gdb-index,
1178 AS_HELP_STRING([--disable-gdb-index],
1179 [Disables creating debug information in the gdb index format, which makes gdb start faster.
1180 The feature requires the gold or lld linker.]))
1182 libo_FUZZ_ARG_ENABLE(sal-log,
1183 AS_HELP_STRING([--enable-sal-log],
1184 [Make SAL_INFO and SAL_WARN calls do something even in a non-debug build.]))
1186 libo_FUZZ_ARG_ENABLE(symbols,
1187 AS_HELP_STRING([--enable-symbols],
1188 [Generate debug information.
1189 By default, enabled for --enable-debug and --enable-dbgutil, disabled
1190 otherwise. It is possible to explicitly specify gbuild build targets
1191 (where 'all' means everything, '-' prepended means to not enable, '/' appended means
1192 everything in the directory; there is no ordering, more specific overrides
1193 more general, and disabling takes precedence).
1194 Example: --enable-symbols="all -sw/ -Library_sc".]))
1196 libo_FUZZ_ARG_ENABLE(optimized,
1197 AS_HELP_STRING([--enable-optimized=<yes/no/debug>],
1198 [Whether to compile with optimization flags.
1199 By default, disabled for --enable-debug and --enable-dbgutil, enabled
1200 otherwise. Using 'debug' will try to use only optimizations that should
1201 not interfere with debugging.]))
1203 libo_FUZZ_ARG_ENABLE(runtime-optimizations,
1204 AS_HELP_STRING([--disable-runtime-optimizations],
1205 [Statically disable certain runtime optimizations (like rtl/alloc.h or
1206 JVM JIT) that are known to interact badly with certain dynamic analysis
1207 tools (like -fsanitize=address or Valgrind). By default, disabled iff
1208 CC contains "-fsanitize=*". (For Valgrind, those runtime optimizations
1209 are typically disabled dynamically via RUNNING_ON_VALGRIND.)]))
1211 AC_ARG_WITH(valgrind,
1212 AS_HELP_STRING([--with-valgrind],
1213 [Make availability of Valgrind headers a hard requirement.]))
1215 libo_FUZZ_ARG_ENABLE(compiler-plugins,
1216 AS_HELP_STRING([--enable-compiler-plugins],
1217 [Enable compiler plugins that will perform additional checks during
1218 building. Enabled automatically by --enable-dbgutil.
1219 Use --enable-compiler-plugins=debug to also enable debug code in the plugins.]))
1220 COMPILER_PLUGINS_DEBUG=
1221 if test "$enable_compiler_plugins" = debug; then
1222 enable_compiler_plugins=yes
1223 COMPILER_PLUGINS_DEBUG=TRUE
1226 libo_FUZZ_ARG_ENABLE(compiler-plugins-analyzer-pch,
1227 AS_HELP_STRING([--disable-compiler-plugins-analyzer-pch],
1228 [Disable use of precompiled headers when running the Clang compiler plugin analyzer. Not
1229 relevant in the --disable-compiler-plugins case.]))
1231 libo_FUZZ_ARG_ENABLE(ooenv,
1232 AS_HELP_STRING([--disable-ooenv],
1233 [Disable ooenv for the instdir installation.]))
1235 libo_FUZZ_ARG_ENABLE(libnumbertext,
1236 AS_HELP_STRING([--disable-libnumbertext],
1237 [Disable use of numbertext external library.]))
1240 AS_HELP_STRING([--enable-lto],
1241 [Enable link-time optimization. Suitable for (optimised) product builds. Building might take
1242 longer but libraries and executables are optimized for speed. For GCC, best to use the 'gold'
1243 linker. For MSVC, this option is broken at the moment. This is experimental work
1244 in progress that shouldn't be used unless you are working on it.)]))
1246 AC_ARG_ENABLE(python,
1247 AS_HELP_STRING([--enable-python=<no/auto/system/internal/fully-internal>],
1248 [Enables or disables Python support at run-time.
1249 Also specifies what Python to use. 'auto' is the default.
1250 'fully-internal' even forces the internal version for uses of Python
1251 during the build.]))
1253 libo_FUZZ_ARG_ENABLE(gtk3,
1254 AS_HELP_STRING([--disable-gtk3],
1255 [Determines whether to use Gtk+ 3.0 vclplug on platforms where Gtk+ 3.0 is available.]),
1256 ,test "${enable_gtk3+set}" = set || enable_gtk3=yes)
1258 AC_ARG_ENABLE(introspection,
1259 AS_HELP_STRING([--enable-introspection],
1260 [Generate files for GObject introspection. Requires --enable-gtk3. (Typically used by
1261 Linux distributions.)]))
1263 AC_ARG_ENABLE(split-app-modules,
1264 AS_HELP_STRING([--enable-split-app-modules],
1265 [Split file lists for app modules, e.g. base, calc.
1266 Has effect only with make distro-pack-install]),
1269 AC_ARG_ENABLE(split-opt-features,
1270 AS_HELP_STRING([--enable-split-opt-features],
1271 [Split file lists for some optional features, e.g. pyuno, testtool.
1272 Has effect only with make distro-pack-install]),
1275 libo_FUZZ_ARG_ENABLE(cairo-canvas,
1276 AS_HELP_STRING([--disable-cairo-canvas],
1277 [Determines whether to build the Cairo canvas on platforms where Cairo is available.]),
1280 libo_FUZZ_ARG_ENABLE(dbus,
1281 AS_HELP_STRING([--disable-dbus],
1282 [Determines whether to enable features that depend on dbus.
1283 e.g. Presentation mode screensaver control, bluetooth presentation control, automatic font install]),
1284 ,test "${enable_dbus+set}" = set || enable_dbus=yes)
1286 libo_FUZZ_ARG_ENABLE(sdremote,
1287 AS_HELP_STRING([--disable-sdremote],
1288 [Determines whether to enable Impress remote control (i.e. the server component).]),
1289 ,test "${enable_sdremote+set}" = set || enable_sdremote=yes)
1291 libo_FUZZ_ARG_ENABLE(sdremote-bluetooth,
1292 AS_HELP_STRING([--disable-sdremote-bluetooth],
1293 [Determines whether to build sdremote with bluetooth support.
1294 Requires dbus on Linux.]))
1296 libo_FUZZ_ARG_ENABLE(gio,
1297 AS_HELP_STRING([--disable-gio],
1298 [Determines whether to use the GIO support.]),
1299 ,test "${enable_gio+set}" = set || enable_gio=yes)
1302 AS_HELP_STRING([--enable-qt5],
1303 [Determines whether to use Qt5 vclplug on platforms where Qt5 is
1308 AS_HELP_STRING([--enable-kf5],
1309 [Determines whether to use Qt5/KF5 vclplug on platforms where Qt5 and
1310 KF5 are available.]),
1314 AS_HELP_STRING([--enable-kde5],
1315 [Compatibility switch for the kde5 => kf5 rename. Use --enable-kf5!])
1318 AC_ARG_ENABLE(gtk3_kde5,
1319 AS_HELP_STRING([--enable-gtk3-kde5],
1320 [Determines whether to use Gtk3 vclplug with KF5 file dialogs on
1321 platforms where Gtk3, Qt5 and Plasma is available.]),
1325 AS_HELP_STRING([--disable-gui],
1326 [Disable use of X11 or Wayland to reduce dependencies (e.g. for building LibreOfficeKit).]),
1329 libo_FUZZ_ARG_ENABLE(randr,
1330 AS_HELP_STRING([--disable-randr],
1331 [Disable RandR support in the vcl project.]),
1332 ,test "${enable_randr+set}" = set || enable_randr=yes)
1334 libo_FUZZ_ARG_ENABLE(gstreamer-1-0,
1335 AS_HELP_STRING([--disable-gstreamer-1-0],
1336 [Disable building with the gstreamer 1.0 avmedia backend.]),
1337 ,test "${enable_gstreamer_1_0+set}" = set || enable_gstreamer_1_0=yes)
1339 libo_FUZZ_ARG_ENABLE(vlc,
1340 AS_HELP_STRING([--enable-vlc],
1341 [Enable building with the (experimental) VLC avmedia backend.]),
1342 ,test "${enable_vlc+set}" = set || enable_vlc=no)
1344 libo_FUZZ_ARG_ENABLE(neon,
1345 AS_HELP_STRING([--disable-neon],
1346 [Disable neon and the compilation of webdav binding.]),
1349 libo_FUZZ_ARG_ENABLE([eot],
1350 [AS_HELP_STRING([--enable-eot],
1351 [Enable support for Embedded OpenType fonts.])],
1352 ,test "${enable_eot+set}" = set || enable_eot=no)
1354 libo_FUZZ_ARG_ENABLE(cve-tests,
1355 AS_HELP_STRING([--disable-cve-tests],
1356 [Prevent CVE tests to be executed]),
1359 libo_FUZZ_ARG_ENABLE(chart-tests,
1360 AS_HELP_STRING([--enable-chart-tests],
1361 [Executes chart XShape tests. In a perfect world these tests would be
1362 stable and everyone could run them, in reality it is best to run them
1363 only on a few machines that are known to work and maintained by people
1364 who can judge if a test failure is a regression or not.]),
1367 AC_ARG_ENABLE(build-unowinreg,
1368 AS_HELP_STRING([--enable-build-unowinreg],
1369 [Do not use the prebuilt unowinreg.dll. Build it instead. The MinGW C++
1370 compiler is needed on Linux.]),
1373 AC_ARG_ENABLE(build-opensymbol,
1374 AS_HELP_STRING([--enable-build-opensymbol],
1375 [Do not use the prebuilt opens___.ttf. Build it instead. This needs
1376 fontforge installed.]),
1379 AC_ARG_ENABLE(dependency-tracking,
1380 AS_HELP_STRING([--enable-dependency-tracking],
1381 [Do not reject slow dependency extractors.])[
1382 --disable-dependency-tracking
1383 Disables generation of dependency information.
1384 Speed up one-time builds.],
1387 AC_ARG_ENABLE(icecream,
1388 AS_HELP_STRING([--enable-icecream],
1389 [Use the 'icecream' distributed compiling tool to speedup the compilation.
1390 It defaults to /opt/icecream for the location of the icecream gcc/g++
1391 wrappers, you can override that using --with-gcc-home=/the/path switch.]),
1395 AS_HELP_STRING([--enable-ld=<linker>],
1396 [Use the specified linker. Both 'gold' and 'lld' linkers generally use less memory and link faster.
1397 By default tries to use the best linker possible, use --disable-ld to use the default linker.]),
1400 libo_FUZZ_ARG_ENABLE(cups,
1401 AS_HELP_STRING([--disable-cups],
1402 [Do not build cups support.])
1405 AC_ARG_ENABLE(ccache,
1406 AS_HELP_STRING([--disable-ccache],
1407 [Do not try to use ccache automatically.
1408 By default, unless on Windows, we will try to detect if ccache is available; in that case if
1409 CC/CXX are not yet set, and --enable-icecream is not given, we
1410 attempt to use ccache. --disable-ccache disables ccache completely.
1411 Additionally ccache's depend mode is enabled if possible,
1412 use --enable-ccache=nodepend to enable ccache without depend mode.
1416 AC_ARG_ENABLE(64-bit,
1417 AS_HELP_STRING([--enable-64-bit],
1418 [Build a 64-bit LibreOffice on platforms where the normal build is 32-bit.
1419 At the moment meaningful only for Windows.]), ,)
1421 libo_FUZZ_ARG_ENABLE(online-update,
1422 AS_HELP_STRING([--enable-online-update],
1423 [Enable the online update service that will check for new versions of
1424 LibreOffice. By default, it is enabled on Windows and Mac, disabled on Linux.
1425 If the value is "mar", the experimental Mozilla-like update will be
1426 enabled instead of the traditional update mechanism.]),
1429 AC_ARG_WITH(update-config,
1430 AS_HELP_STRING([--with-update-config=/tmp/update.ini],
1431 [Path to the update config ini file]))
1433 libo_FUZZ_ARG_ENABLE(extension-update,
1434 AS_HELP_STRING([--disable-extension-update],
1435 [Disable possibility to update installed extensions.]),
1438 libo_FUZZ_ARG_ENABLE(release-build,
1439 AS_HELP_STRING([--enable-release-build],
1440 [Enable release build. Note that the "release build" choice is orthogonal to
1441 whether symbols are present, debug info is generated, or optimization
1443 See http://wiki.documentfoundation.org/Development/DevBuild]),
1446 AC_ARG_ENABLE(windows-build-signing,
1447 AS_HELP_STRING([--enable-windows-build-signing],
1448 [Enable signing of windows binaries (*.exe, *.dll)]),
1451 AC_ARG_ENABLE(silent-msi,
1452 AS_HELP_STRING([--enable-silent-msi],
1453 [Enable MSI with LIMITUI=1 (silent install).]),
1456 AC_ARG_ENABLE(macosx-code-signing,
1457 AS_HELP_STRING([--enable-macosx-code-signing=<identity>],
1458 [Sign executables, dylibs, frameworks and the app bundle. If you
1459 don't provide an identity the first suitable certificate
1460 in your keychain is used.]),
1463 AC_ARG_ENABLE(macosx-package-signing,
1464 AS_HELP_STRING([--enable-macosx-package-signing=<identity>],
1465 [Create a .pkg suitable for uploading to the Mac App Store and sign
1466 it. If you don't provide an identity the first suitable certificate
1467 in your keychain is used.]),
1470 AC_ARG_ENABLE(macosx-sandbox,
1471 AS_HELP_STRING([--enable-macosx-sandbox],
1472 [Make the app bundle run in a sandbox. Requires code signing.
1473 Is required by apps distributed in the Mac App Store, and implies
1474 adherence to App Store rules.]),
1477 AC_ARG_WITH(macosx-bundle-identifier,
1478 AS_HELP_STRING([--with-macosx-bundle-identifier=tld.mumble.orifice.TheOffice],
1479 [Define the macOS bundle identifier. Default is the somewhat weird
1480 org.libreoffice.script ("script", huh?).]),
1481 ,with_macosx_bundle_identifier=org.libreoffice.script)
1483 AC_ARG_WITH(product-name,
1484 AS_HELP_STRING([--with-product-name='My Own Office Suite'],
1485 [Define the product name. Default is AC_PACKAGE_NAME.]),
1486 ,with_product_name=$PRODUCTNAME)
1488 AC_ARG_WITH(package-version,
1489 AS_HELP_STRING([--with-package-version='3.1.4.5'],
1490 [Define the package version. Default is AC_PACKAGE_VERSION. Use only if you distribute an own build for macOS.]),
1493 libo_FUZZ_ARG_ENABLE(readonly-installset,
1494 AS_HELP_STRING([--enable-readonly-installset],
1495 [Prevents any attempts by LibreOffice to write into its installation. That means
1496 at least that no "system-wide" extensions can be added. Partly experimental work in
1497 progress, probably not fully implemented (but is useful for sandboxed macOS builds).]),
1500 libo_FUZZ_ARG_ENABLE(postgresql-sdbc,
1501 AS_HELP_STRING([--disable-postgresql-sdbc],
1502 [Disable the build of the PostgreSQL-SDBC driver.])
1505 libo_FUZZ_ARG_ENABLE(lotuswordpro,
1506 AS_HELP_STRING([--disable-lotuswordpro],
1507 [Disable the build of the Lotus Word Pro filter.]),
1508 ,test "${enable_lotuswordpro+set}" = set || enable_lotuswordpro=yes)
1510 libo_FUZZ_ARG_ENABLE(firebird-sdbc,
1511 AS_HELP_STRING([--disable-firebird-sdbc],
1512 [Disable the build of the Firebird-SDBC driver if it doesn't compile for you.]),
1513 ,test "${enable_firebird_sdbc+set}" = set || enable_firebird_sdbc=yes)
1515 AC_ARG_ENABLE(bogus-pkg-config,
1516 AS_HELP_STRING([--enable-bogus-pkg-config],
1517 [MACOSX only: on MacOSX pkg-config can cause trouble. by default if one is found in the PATH, an error is issued. This flag turn that error into a warning.]),
1520 AC_ARG_ENABLE(openssl,
1521 AS_HELP_STRING([--disable-openssl],
1522 [Disable using libssl/libcrypto from OpenSSL. If disabled,
1523 components will either use GNUTLS or NSS. Work in progress,
1524 use only if you are hacking on it.]),
1525 ,enable_openssl=yes)
1527 libo_FUZZ_ARG_ENABLE(cipher-openssl-backend,
1528 AS_HELP_STRING([--enable-cipher-openssl-backend],
1529 [Enable using OpenSSL as the actual implementation of the rtl/cipher.h functionality.
1530 Requires --enable-openssl.]))
1532 AC_ARG_ENABLE(library-bin-tar,
1533 AS_HELP_STRING([--enable-library-bin-tar],
1534 [Enable the building and reused of tarball of binary build for some 'external' libraries.
1535 Some libraries can save their build result in a tarball
1536 stored in TARFILE_LOCATION. That binary tarball is
1537 uniquely identified by the source tarball,
1538 the content of the config_host.mk file and the content
1539 of the top-level directory in core for that library
1540 If this option is enabled, then if such a tarfile exist, it will be untarred
1541 instead of the source tarfile, and the build step will be skipped for that
1543 If a proper tarfile does not exist, then the normal source-based
1544 build is done for that library and a proper binary tarfile is created
1545 for the next time.]),
1548 AC_ARG_ENABLE(dconf,
1549 AS_HELP_STRING([--disable-dconf],
1550 [Disable the dconf configuration backend (enabled by default where
1553 libo_FUZZ_ARG_ENABLE(formula-logger,
1555 [--enable-formula-logger],
1556 [Enable formula logger for logging formula calculation flow in Calc.]
1561 AS_HELP_STRING([--disable-ldap],
1562 [Disable LDAP support.]),
1565 dnl ===================================================================
1566 dnl Optional Packages (--with/without-)
1567 dnl ===================================================================
1569 AC_ARG_WITH(gcc-home,
1570 AS_HELP_STRING([--with-gcc-home],
1571 [Specify the location of gcc/g++ manually. This can be used in conjunction
1572 with --enable-icecream when icecream gcc/g++ wrappers are installed in a
1573 non-default path.]),
1576 AC_ARG_WITH(gnu-patch,
1577 AS_HELP_STRING([--with-gnu-patch],
1578 [Specify location of GNU patch on Solaris or FreeBSD.]),
1581 AC_ARG_WITH(build-platform-configure-options,
1582 AS_HELP_STRING([--with-build-platform-configure-options],
1583 [Specify options for the configure script run for the *build* platform in a cross-compilation]),
1587 AS_HELP_STRING([--with-gnu-cp],
1588 [Specify location of GNU cp on Solaris or FreeBSD.]),
1591 AC_ARG_WITH(external-tar,
1592 AS_HELP_STRING([--with-external-tar=<TARFILE_PATH>],
1593 [Specify an absolute path of where to find (and store) tarfiles.]),
1594 TARFILE_LOCATION=$withval ,
1597 AC_ARG_WITH(referenced-git,
1598 AS_HELP_STRING([--with-referenced-git=<OTHER_CHECKOUT_DIR>],
1599 [Specify another checkout directory to reference. This makes use of
1600 git submodule update --reference, and saves a lot of diskspace
1601 when having multiple trees side-by-side.]),
1602 GIT_REFERENCE_SRC=$withval ,
1605 AC_ARG_WITH(linked-git,
1606 AS_HELP_STRING([--with-linked-git=<submodules repo basedir>],
1607 [Specify a directory where the repositories of submodules are located.
1608 This uses a method similar to git-new-workdir to get submodules.]),
1609 GIT_LINK_SRC=$withval ,
1612 AC_ARG_WITH(galleries,
1613 AS_HELP_STRING([--with-galleries],
1614 [Specify how galleries should be built. It is possible either to
1615 build these internally from source ("build"),
1616 or to disable them ("no")]),
1620 AS_HELP_STRING([--with-theme="theme1 theme2..."],
1621 [Choose which themes to include. By default those themes with an '*' are included.
1622 Possible choices: *breeze, *breeze_dark, *breeze_dark_svg, *breeze_svg, *colibre, *colibre_svg, *elementary,
1623 *elementary_svg, *karasa_jaga, *karasa_jaga_svg, *sifr, *sifr_dark, *sifr_dark_svg, *sifr_svg, *sukapura, *sukapura_svg, *tango.]),
1626 libo_FUZZ_ARG_WITH(helppack-integration,
1627 AS_HELP_STRING([--without-helppack-integration],
1628 [It will not integrate the helppacks to the installer
1629 of the product. Please use this switch to use the online help
1630 or separate help packages.]),
1633 libo_FUZZ_ARG_WITH(fonts,
1634 AS_HELP_STRING([--without-fonts],
1635 [LibreOffice includes some third-party fonts to provide a reliable basis for
1636 help content, templates, samples, etc. When these fonts are already
1637 known to be available on the system then you should use this option.]),
1641 AS_HELP_STRING([--with-epm],
1642 [Decides which epm to use. Default is to use the one from the system if
1643 one is built. When either this is not there or you say =internal epm
1647 AC_ARG_WITH(package-format,
1648 AS_HELP_STRING([--with-package-format],
1649 [Specify package format(s) for LibreOffice installation sets. The
1650 implicit --without-package-format leads to no installation sets being
1651 generated. Possible values: aix, archive, bsd, deb, dmg,
1652 installed, msi, pkg, and rpm.
1653 Example: --with-package-format='deb rpm']),
1657 AS_HELP_STRING([--with-tls],
1658 [Decides which TLS/SSL and cryptographic implementations to use for
1659 LibreOffice's code. Notice that this doesn't apply for depending
1660 libraries like "neon", for example. Default is to use NSS
1661 although OpenSSL is also possible. Notice that selecting NSS restricts
1662 the usage of OpenSSL in LO's code but selecting OpenSSL doesn't
1663 restrict by now the usage of NSS in LO's code. Possible values:
1664 openssl, nss. Example: --with-tls="nss"]),
1667 AC_ARG_WITH(system-libs,
1668 AS_HELP_STRING([--with-system-libs],
1669 [Use libraries already on system -- enables all --with-system-* flags.]),
1672 AC_ARG_WITH(system-bzip2,
1673 AS_HELP_STRING([--with-system-bzip2],
1674 [Use bzip2 already on system. Used only when --enable-online-update=mar]),,
1675 [with_system_bzip2="$with_system_libs"])
1677 AC_ARG_WITH(system-headers,
1678 AS_HELP_STRING([--with-system-headers],
1679 [Use headers already on system -- enables all --with-system-* flags for
1680 external packages whose headers are the only entities used i.e.
1681 boost/odbc/sane-header(s).]),,
1682 [with_system_headers="$with_system_libs"])
1684 AC_ARG_WITH(system-jars,
1685 AS_HELP_STRING([--without-system-jars],
1686 [When building with --with-system-libs, also the needed jars are expected
1687 on the system. Use this to disable that]),,
1688 [with_system_jars="$with_system_libs"])
1690 AC_ARG_WITH(system-cairo,
1691 AS_HELP_STRING([--with-system-cairo],
1692 [Use cairo libraries already on system. Happens automatically for
1693 (implicit) --enable-gtk3.]))
1695 AC_ARG_WITH(system-epoxy,
1696 AS_HELP_STRING([--with-system-epoxy],
1697 [Use epoxy libraries already on system. Happens automatically for
1698 (implicit) --enable-gtk3.]),,
1699 [with_system_epoxy="$with_system_libs"])
1701 AC_ARG_WITH(myspell-dicts,
1702 AS_HELP_STRING([--with-myspell-dicts],
1703 [Adds myspell dictionaries to the LibreOffice installation set]),
1706 AC_ARG_WITH(system-dicts,
1707 AS_HELP_STRING([--without-system-dicts],
1708 [Do not use dictionaries from system paths.]),
1711 AC_ARG_WITH(external-dict-dir,
1712 AS_HELP_STRING([--with-external-dict-dir],
1713 [Specify external dictionary dir.]),
1716 AC_ARG_WITH(external-hyph-dir,
1717 AS_HELP_STRING([--with-external-hyph-dir],
1718 [Specify external hyphenation pattern dir.]),
1721 AC_ARG_WITH(external-thes-dir,
1722 AS_HELP_STRING([--with-external-thes-dir],
1723 [Specify external thesaurus dir.]),
1726 AC_ARG_WITH(system-zlib,
1727 AS_HELP_STRING([--with-system-zlib],
1728 [Use zlib already on system.]),,
1729 [with_system_zlib=auto])
1731 AC_ARG_WITH(system-jpeg,
1732 AS_HELP_STRING([--with-system-jpeg],
1733 [Use jpeg already on system.]),,
1734 [with_system_jpeg="$with_system_libs"])
1736 AC_ARG_WITH(system-clucene,
1737 AS_HELP_STRING([--with-system-clucene],
1738 [Use clucene already on system.]),,
1739 [with_system_clucene="$with_system_libs"])
1741 AC_ARG_WITH(system-expat,
1742 AS_HELP_STRING([--with-system-expat],
1743 [Use expat already on system.]),,
1744 [with_system_expat="$with_system_libs"])
1746 AC_ARG_WITH(system-libxml,
1747 AS_HELP_STRING([--with-system-libxml],
1748 [Use libxml/libxslt already on system.]),,
1749 [with_system_libxml=auto])
1751 AC_ARG_WITH(system-icu,
1752 AS_HELP_STRING([--with-system-icu],
1753 [Use icu already on system.]),,
1754 [with_system_icu="$with_system_libs"])
1756 AC_ARG_WITH(system-ucpp,
1757 AS_HELP_STRING([--with-system-ucpp],
1758 [Use ucpp already on system.]),,
1761 AC_ARG_WITH(system-openldap,
1762 AS_HELP_STRING([--with-system-openldap],
1763 [Use the OpenLDAP LDAP SDK already on system.]),,
1764 [with_system_openldap="$with_system_libs"])
1766 libo_FUZZ_ARG_ENABLE(poppler,
1767 AS_HELP_STRING([--disable-poppler],
1768 [Disable building Poppler.])
1771 AC_ARG_WITH(system-poppler,
1772 AS_HELP_STRING([--with-system-poppler],
1773 [Use system poppler (only needed for PDF import).]),,
1774 [with_system_poppler="$with_system_libs"])
1776 AC_ARG_WITH(system-gpgmepp,
1777 AS_HELP_STRING([--with-system-gpgmepp],
1778 [Use gpgmepp already on system]),,
1779 [with_system_gpgmepp="$with_system_libs"])
1781 AC_ARG_WITH(system-apache-commons,
1782 AS_HELP_STRING([--with-system-apache-commons],
1783 [Use Apache commons libraries already on system.]),,
1784 [with_system_apache_commons="$with_system_jars"])
1786 AC_ARG_WITH(system-mariadb,
1787 AS_HELP_STRING([--with-system-mariadb],
1788 [Use MariaDB/MySQL libraries already on system.]),,
1789 [with_system_mariadb="$with_system_libs"])
1791 AC_ARG_ENABLE(bundle-mariadb,
1792 AS_HELP_STRING([--enable-bundle-mariadb],
1793 [When using MariaDB/MySQL libraries already on system, bundle them with the MariaDB Connector/LibreOffice.])
1796 AC_ARG_WITH(system-postgresql,
1797 AS_HELP_STRING([--with-system-postgresql],
1798 [Use PostgreSQL libraries already on system, for building the PostgreSQL-SDBC
1799 driver. If pg_config is not in PATH, use PGCONFIG to point to it.]),,
1800 [with_system_postgresql="$with_system_libs"])
1802 AC_ARG_WITH(libpq-path,
1803 AS_HELP_STRING([--with-libpq-path=<absolute path to your libpq installation>],
1804 [Use this PostgreSQL C interface (libpq) installation for building
1805 the PostgreSQL-SDBC extension.]),
1808 AC_ARG_WITH(system-firebird,
1809 AS_HELP_STRING([--with-system-firebird],
1810 [Use Firebird libraries already on system, for building the Firebird-SDBC
1811 driver. If fb_config is not in PATH, use FBCONFIG to point to it.]),,
1812 [with_system_firebird="$with_system_libs"])
1814 AC_ARG_WITH(system-libtommath,
1815 AS_HELP_STRING([--with-system-libtommath],
1816 [Use libtommath already on system]),,
1817 [with_system_libtommath="$with_system_libs"])
1819 AC_ARG_WITH(system-hsqldb,
1820 AS_HELP_STRING([--with-system-hsqldb],
1821 [Use hsqldb already on system.]))
1823 AC_ARG_WITH(hsqldb-jar,
1824 AS_HELP_STRING([--with-hsqldb-jar=JARFILE],
1825 [Specify path to jarfile manually.]),
1826 HSQLDB_JAR=$withval)
1828 libo_FUZZ_ARG_ENABLE(scripting-beanshell,
1829 AS_HELP_STRING([--disable-scripting-beanshell],
1830 [Disable support for scripts in BeanShell.]),
1834 AC_ARG_WITH(system-beanshell,
1835 AS_HELP_STRING([--with-system-beanshell],
1836 [Use beanshell already on system.]),,
1837 [with_system_beanshell="$with_system_jars"])
1839 AC_ARG_WITH(beanshell-jar,
1840 AS_HELP_STRING([--with-beanshell-jar=JARFILE],
1841 [Specify path to jarfile manually.]),
1844 libo_FUZZ_ARG_ENABLE(scripting-javascript,
1845 AS_HELP_STRING([--disable-scripting-javascript],
1846 [Disable support for scripts in JavaScript.]),
1850 AC_ARG_WITH(system-rhino,
1851 AS_HELP_STRING([--with-system-rhino],
1852 [Use rhino already on system.]),,)
1853 # [with_system_rhino="$with_system_jars"])
1854 # Above is not used as we have different debug interface
1855 # patched into internal rhino. This code needs to be fixed
1856 # before we can enable it by default.
1858 AC_ARG_WITH(rhino-jar,
1859 AS_HELP_STRING([--with-rhino-jar=JARFILE],
1860 [Specify path to jarfile manually.]),
1863 AC_ARG_WITH(commons-logging-jar,
1864 AS_HELP_STRING([--with-commons-logging-jar=JARFILE],
1865 [Specify path to jarfile manually.]),
1866 COMMONS_LOGGING_JAR=$withval)
1868 AC_ARG_WITH(system-jfreereport,
1869 AS_HELP_STRING([--with-system-jfreereport],
1870 [Use JFreeReport already on system.]),,
1871 [with_system_jfreereport="$with_system_jars"])
1873 AC_ARG_WITH(sac-jar,
1874 AS_HELP_STRING([--with-sac-jar=JARFILE],
1875 [Specify path to jarfile manually.]),
1878 AC_ARG_WITH(libxml-jar,
1879 AS_HELP_STRING([--with-libxml-jar=JARFILE],
1880 [Specify path to jarfile manually.]),
1881 LIBXML_JAR=$withval)
1883 AC_ARG_WITH(flute-jar,
1884 AS_HELP_STRING([--with-flute-jar=JARFILE],
1885 [Specify path to jarfile manually.]),
1888 AC_ARG_WITH(jfreereport-jar,
1889 AS_HELP_STRING([--with-jfreereport-jar=JARFILE],
1890 [Specify path to jarfile manually.]),
1891 JFREEREPORT_JAR=$withval)
1893 AC_ARG_WITH(liblayout-jar,
1894 AS_HELP_STRING([--with-liblayout-jar=JARFILE],
1895 [Specify path to jarfile manually.]),
1896 LIBLAYOUT_JAR=$withval)
1898 AC_ARG_WITH(libloader-jar,
1899 AS_HELP_STRING([--with-libloader-jar=JARFILE],
1900 [Specify path to jarfile manually.]),
1901 LIBLOADER_JAR=$withval)
1903 AC_ARG_WITH(libformula-jar,
1904 AS_HELP_STRING([--with-libformula-jar=JARFILE],
1905 [Specify path to jarfile manually.]),
1906 LIBFORMULA_JAR=$withval)
1908 AC_ARG_WITH(librepository-jar,
1909 AS_HELP_STRING([--with-librepository-jar=JARFILE],
1910 [Specify path to jarfile manually.]),
1911 LIBREPOSITORY_JAR=$withval)
1913 AC_ARG_WITH(libfonts-jar,
1914 AS_HELP_STRING([--with-libfonts-jar=JARFILE],
1915 [Specify path to jarfile manually.]),
1916 LIBFONTS_JAR=$withval)
1918 AC_ARG_WITH(libserializer-jar,
1919 AS_HELP_STRING([--with-libserializer-jar=JARFILE],
1920 [Specify path to jarfile manually.]),
1921 LIBSERIALIZER_JAR=$withval)
1923 AC_ARG_WITH(libbase-jar,
1924 AS_HELP_STRING([--with-libbase-jar=JARFILE],
1925 [Specify path to jarfile manually.]),
1926 LIBBASE_JAR=$withval)
1928 AC_ARG_WITH(system-odbc,
1929 AS_HELP_STRING([--with-system-odbc],
1930 [Use the odbc headers already on system.]),,
1931 [with_system_odbc="auto"])
1933 AC_ARG_WITH(system-sane,
1934 AS_HELP_STRING([--with-system-sane],
1935 [Use sane.h already on system.]),,
1936 [with_system_sane="$with_system_headers"])
1938 AC_ARG_WITH(system-bluez,
1939 AS_HELP_STRING([--with-system-bluez],
1940 [Use bluetooth.h already on system.]),,
1941 [with_system_bluez="$with_system_headers"])
1943 AC_ARG_WITH(system-curl,
1944 AS_HELP_STRING([--with-system-curl],
1945 [Use curl already on system.]),,
1946 [with_system_curl=auto])
1948 AC_ARG_WITH(system-boost,
1949 AS_HELP_STRING([--with-system-boost],
1950 [Use boost already on system.]),,
1951 [with_system_boost="$with_system_headers"])
1953 AC_ARG_WITH(system-glm,
1954 AS_HELP_STRING([--with-system-glm],
1955 [Use glm already on system.]),,
1956 [with_system_glm="$with_system_headers"])
1958 AC_ARG_WITH(system-hunspell,
1959 AS_HELP_STRING([--with-system-hunspell],
1960 [Use libhunspell already on system.]),,
1961 [with_system_hunspell="$with_system_libs"])
1963 AC_ARG_WITH(system-qrcodegen,
1964 AS_HELP_STRING([--with-system-qrcodegen],
1965 [Use libqrcodegen already on system.]),,
1966 [with_system_qrcodegen="$with_system_libs"])
1968 AC_ARG_WITH(system-mythes,
1969 AS_HELP_STRING([--with-system-mythes],
1970 [Use mythes already on system.]),,
1971 [with_system_mythes="$with_system_libs"])
1973 AC_ARG_WITH(system-altlinuxhyph,
1974 AS_HELP_STRING([--with-system-altlinuxhyph],
1975 [Use ALTLinuxhyph already on system.]),,
1976 [with_system_altlinuxhyph="$with_system_libs"])
1978 AC_ARG_WITH(system-lpsolve,
1979 AS_HELP_STRING([--with-system-lpsolve],
1980 [Use lpsolve already on system.]),,
1981 [with_system_lpsolve="$with_system_libs"])
1983 AC_ARG_WITH(system-coinmp,
1984 AS_HELP_STRING([--with-system-coinmp],
1985 [Use CoinMP already on system.]),,
1986 [with_system_coinmp="$with_system_libs"])
1988 AC_ARG_WITH(system-liblangtag,
1989 AS_HELP_STRING([--with-system-liblangtag],
1990 [Use liblangtag library already on system.]),,
1991 [with_system_liblangtag="$with_system_libs"])
1994 AS_HELP_STRING([--with-webdav],
1995 [Specify which library to use for webdav implementation.
1996 Possible values: "neon", "serf", "no". The default value is "neon".
1997 Example: --with-webdav="serf"]),
1998 WITH_WEBDAV=$withval,
2001 AC_ARG_WITH(linker-hash-style,
2002 AS_HELP_STRING([--with-linker-hash-style],
2003 [Use linker with --hash-style=<style> when linking shared objects.
2004 Possible values: "sysv", "gnu", "both". The default value is "gnu"
2005 if supported on the build system, and "sysv" otherwise.]))
2007 AC_ARG_WITH(jdk-home,
2008 AS_HELP_STRING([--with-jdk-home=<absolute path to JDK home>],
2009 [If you have installed JDK 8 or later on your system please supply the
2010 path here. Note that this is not the location of the java command but the
2011 location of the entire distribution.]),
2015 AS_HELP_STRING([--with-help],
2016 [Enable the build of help. There is a special parameter "common" that
2017 can be used to bundle only the common part, .e.g help-specific icons.
2018 This is useful when you build the helpcontent separately.])
2020 Usage: --with-help build the old local help
2021 --without-help no local help (default)
2022 --with-help=html build the new HTML local help
2023 --with-help=online build the new HTML online help
2027 AC_ARG_WITH(omindex,
2028 AS_HELP_STRING([--with-omindex],
2029 [Enable the support of xapian-omega index for online help.])
2031 Usage: --with-omindex=server prepare the pages for omindex
2032 but let xapian-omega be built in server.
2033 --with-omindex=noxap do not prepare online pages
2038 libo_FUZZ_ARG_WITH(java,
2039 AS_HELP_STRING([--with-java=<java command>],
2040 [Specify the name of the Java interpreter command. Typically "java"
2041 which is the default.
2043 To build without support for Java components, applets, accessibility
2044 or the XML filters written in Java, use --without-java or --with-java=no.]),
2045 [ test -z "$with_java" -o "$with_java" = "yes" && with_java=java ],
2046 [ test -z "$with_java" -o "$with_java" = "yes" && with_java=java ]
2049 AC_ARG_WITH(jvm-path,
2050 AS_HELP_STRING([--with-jvm-path=<absolute path to parent of jvm home>],
2051 [Use a specific JVM search path at runtime.
2052 e.g. use --with-jvm-path=/usr/lib/ to find JRE/JDK in /usr/lib/jvm/]),
2055 AC_ARG_WITH(ant-home,
2056 AS_HELP_STRING([--with-ant-home=<absolute path to Ant home>],
2057 [If you have installed Apache Ant on your system, please supply the path here.
2058 Note that this is not the location of the Ant binary but the location
2059 of the entire distribution.]),
2062 AC_ARG_WITH(symbol-config,
2063 AS_HELP_STRING([--with-symbol-config],
2064 [Configuration for the crashreport symbol upload]),
2066 [with_symbol_config=no])
2068 AC_ARG_WITH(export-validation,
2069 AS_HELP_STRING([--without-export-validation],
2070 [Disable validating OOXML and ODF files as exported from in-tree tests.]),
2071 ,with_export_validation=auto)
2073 AC_ARG_WITH(bffvalidator,
2074 AS_HELP_STRING([--with-bffvalidator=<absolute path to BFFValidator>],
2075 [Enables export validation for Microsoft Binary formats (doc, xls, ppt).
2076 Requires installed Microsoft Office Binary File Format Validator.
2077 Note: export-validation (--with-export-validation) is required to be turned on.
2078 See https://www.microsoft.com/en-us/download/details.aspx?id=26794]),
2079 ,with_bffvalidator=no)
2081 libo_FUZZ_ARG_WITH(junit,
2082 AS_HELP_STRING([--with-junit=<absolute path to JUnit 4 jar>],
2083 [Specifies the JUnit 4 jar file to use for JUnit-based tests.
2084 --without-junit disables those tests. Not relevant in the --without-java case.]),
2087 AC_ARG_WITH(hamcrest,
2088 AS_HELP_STRING([--with-hamcrest=<absolute path to hamcrest jar>],
2089 [Specifies the hamcrest jar file to use for JUnit-based tests.
2090 --without-junit disables those tests. Not relevant in the --without-java case.]),
2093 AC_ARG_WITH(perl-home,
2094 AS_HELP_STRING([--with-perl-home=<abs. path to Perl 5 home>],
2095 [If you have installed Perl 5 Distribution, on your system, please
2096 supply the path here. Note that this is not the location of the Perl
2097 binary but the location of the entire distribution.]),
2100 libo_FUZZ_ARG_WITH(doxygen,
2102 [--with-doxygen=<absolute path to doxygen executable>],
2103 [Specifies the doxygen executable to use when generating ODK C/C++
2104 documentation. --without-doxygen disables generation of ODK C/C++
2105 documentation. Not relevant in the --disable-odk case.]),
2108 AC_ARG_WITH(visual-studio,
2109 AS_HELP_STRING([--with-visual-studio=<2019>],
2110 [Specify which Visual Studio version to use in case several are
2111 installed. Currently only 2019 (default) is supported.]),
2114 AC_ARG_WITH(windows-sdk,
2115 AS_HELP_STRING([--with-windows-sdk=<8.0(A)/8.1(A)/10.0>],
2116 [Specify which Windows SDK, or "Windows Kit", version to use
2117 in case the one that came with the selected Visual Studio
2118 is not what you want for some reason. Note that not all compiler/SDK
2119 combinations are supported. The intent is that this option should not
2124 AS_HELP_STRING([--with-lang="es sw tu cs sk"],
2125 [Use this option to build LibreOffice with additional UI language support.
2126 English (US) is always included by default.
2127 Separate multiple languages with space.
2128 For all languages, use --with-lang=ALL.]),
2131 AC_ARG_WITH(locales,
2132 AS_HELP_STRING([--with-locales="en es pt fr zh kr ja"],
2133 [Use this option to limit the locale information built in.
2134 Separate multiple locales with space.
2135 Very experimental and might well break stuff.
2136 Just a desperate measure to shrink code and data size.
2137 By default all the locales available is included.
2138 This option is completely unrelated to --with-lang.])
2140 Affects also our character encoding conversion
2141 tables for encodings mainly targeted for a
2142 particular locale, like EUC-CN and EUC-TW for
2143 zh, ISO-2022-JP for ja.
2145 Affects also our add-on break iterator data for
2148 For the default, all locales, don't use this switch at all.
2149 Specifying just the language part of a locale means all matching
2150 locales will be included.
2154 # Kerberos and GSSAPI used only by PostgreSQL as of LibO 3.5
2155 libo_FUZZ_ARG_WITH(krb5,
2156 AS_HELP_STRING([--with-krb5],
2157 [Enable MIT Kerberos 5 support in modules that support it.
2158 By default automatically enabled on platforms
2159 where a good system Kerberos 5 is available.]),
2162 libo_FUZZ_ARG_WITH(gssapi,
2163 AS_HELP_STRING([--with-gssapi],
2164 [Enable GSSAPI support in modules that support it.
2165 By default automatically enabled on platforms
2166 where a good system GSSAPI is available.]),
2170 AS_HELP_STRING([--with-iwyu],
2171 [Use given IWYU binary path to check unneeded includes instead of building.
2172 Use only if you are hacking on it.]),
2175 libo_FUZZ_ARG_WITH(lxml,
2176 AS_HELP_STRING([--without-lxml],
2177 [gla11y will use python lxml when available, potentially building a local copy if necessary.
2178 --without-lxml tells it to not use python lxml at all, which means that gla11y will only
2179 report widget classes and ids.]),
2182 dnl ===================================================================
2184 dnl ===================================================================
2186 AC_ARG_WITH(branding,
2187 AS_HELP_STRING([--with-branding=/path/to/images],
2188 [Use given path to retrieve branding images set.])
2190 Search for intro.png about.svg and flat_logo.svg.
2191 If any is missing, default ones will be used instead.
2193 Search also progress.conf for progress
2194 settings on intro screen :
2196 PROGRESSBARCOLOR="255,255,255" Set color of
2197 progress bar. Comma separated RGB decimal values.
2198 PROGRESSSIZE="407,6" Set size of progress bar.
2199 Comma separated decimal values (width, height).
2200 PROGRESSPOSITION="61,317" Set position of progress
2201 bar from left,top. Comma separated decimal values.
2202 PROGRESSFRAMECOLOR="20,136,3" Set color of progress
2203 bar frame. Comma separated RGB decimal values.
2204 PROGRESSTEXTCOLOR="0,0,0" Set color of progress
2205 bar text. Comma separated RGB decimal values.
2206 PROGRESSTEXTBASELINE="287" Set vertical position of
2207 progress bar text from top. Decimal value.
2209 Default values will be used if not found.
2214 AC_ARG_WITH(extra-buildid,
2215 AS_HELP_STRING([--with-extra-buildid="Tinderbox: Win-x86@6, Branch:master, Date:2012-11-26_00.29.34"],
2216 [Show addition build identification in about dialog.]),
2221 AS_HELP_STRING([--with-vendor="John the Builder"],
2222 [Set vendor of the build.]),
2225 AC_ARG_WITH(android-package-name,
2226 AS_HELP_STRING([--with-android-package-name="org.libreoffice"],
2227 [Set Android package name of the build.]),
2230 AC_ARG_WITH(compat-oowrappers,
2231 AS_HELP_STRING([--with-compat-oowrappers],
2232 [Install oo* wrappers in parallel with
2233 lo* ones to keep backward compatibility.
2234 Has effect only with make distro-pack-install]),
2237 AC_ARG_WITH(os-version,
2238 AS_HELP_STRING([--with-os-version=<OSVERSION>],
2239 [For FreeBSD users, use this option to override the detected OSVERSION.]),
2242 AC_ARG_WITH(mingw-cross-compiler,
2243 AS_HELP_STRING([--with-mingw-cross-compiler=<mingw32-g++ command>],
2244 [Specify the MinGW cross-compiler to use.
2245 When building on the ODK on Unix and building unowinreg.dll,
2246 specify the MinGW C++ cross-compiler.]),
2249 AC_ARG_WITH(idlc-cpp,
2250 AS_HELP_STRING([--with-idlc-cpp=<cpp/ucpp>],
2251 [Specify the C Preprocessor to use for idlc. Default is ucpp.]),
2254 AC_ARG_WITH(build-version,
2255 AS_HELP_STRING([--with-build-version="Built by Jim"],
2256 [Allows the builder to add a custom version tag that will appear in the
2257 Help/About box for QA purposes.]),
2258 with_build_version=$withval,
2261 AC_ARG_WITH(parallelism,
2262 AS_HELP_STRING([--with-parallelism],
2263 [Number of jobs to run simultaneously during build. Parallel builds can
2264 save a lot of time on multi-cpu machines. Defaults to the number of
2265 CPUs on the machine, unless you configure --enable-icecream - then to
2269 AC_ARG_WITH(all-tarballs,
2270 AS_HELP_STRING([--with-all-tarballs],
2271 [Download all external tarballs unconditionally]))
2273 AC_ARG_WITH(gdrive-client-id,
2274 AS_HELP_STRING([--with-gdrive-client-id],
2275 [Provides the client id of the application for OAuth2 authentication
2276 on Google Drive. If either this or --with-gdrive-client-secret is
2277 empty, the feature will be disabled]),
2280 AC_ARG_WITH(gdrive-client-secret,
2281 AS_HELP_STRING([--with-gdrive-client-secret],
2282 [Provides the client secret of the application for OAuth2
2283 authentication on Google Drive. If either this or
2284 --with-gdrive-client-id is empty, the feature will be disabled]),
2287 AC_ARG_WITH(alfresco-cloud-client-id,
2288 AS_HELP_STRING([--with-alfresco-cloud-client-id],
2289 [Provides the client id of the application for OAuth2 authentication
2290 on Alfresco Cloud. If either this or --with-alfresco-cloud-client-secret is
2291 empty, the feature will be disabled]),
2294 AC_ARG_WITH(alfresco-cloud-client-secret,
2295 AS_HELP_STRING([--with-alfresco-cloud-client-secret],
2296 [Provides the client secret of the application for OAuth2
2297 authentication on Alfresco Cloud. If either this or
2298 --with-alfresco-cloud-client-id is empty, the feature will be disabled]),
2301 AC_ARG_WITH(onedrive-client-id,
2302 AS_HELP_STRING([--with-onedrive-client-id],
2303 [Provides the client id of the application for OAuth2 authentication
2304 on OneDrive. If either this or --with-onedrive-client-secret is
2305 empty, the feature will be disabled]),
2308 AC_ARG_WITH(onedrive-client-secret,
2309 AS_HELP_STRING([--with-onedrive-client-secret],
2310 [Provides the client secret of the application for OAuth2
2311 authentication on OneDrive. If either this or
2312 --with-onedrive-client-id is empty, the feature will be disabled]),
2314 dnl ===================================================================
2315 dnl Do we want to use pre-build binary tarball for recompile
2316 dnl ===================================================================
2318 if test "$enable_library_bin_tar" = "yes" ; then
2319 USE_LIBRARY_BIN_TAR=TRUE
2321 USE_LIBRARY_BIN_TAR=
2323 AC_SUBST(USE_LIBRARY_BIN_TAR)
2325 dnl ===================================================================
2326 dnl Test whether build target is Release Build
2327 dnl ===================================================================
2328 AC_MSG_CHECKING([whether build target is Release Build])
2329 if test "$enable_release_build" = "" -o "$enable_release_build" = "no"; then
2331 ENABLE_RELEASE_BUILD=
2333 AC_MSG_RESULT([yes])
2334 ENABLE_RELEASE_BUILD=TRUE
2336 AC_SUBST(ENABLE_RELEASE_BUILD)
2338 dnl ===================================================================
2339 dnl Test whether to sign Windows Build
2340 dnl ===================================================================
2341 AC_MSG_CHECKING([whether to sign windows build])
2342 if test "$enable_windows_build_signing" = "yes" -a "$_os" = "WINNT"; then
2343 AC_MSG_RESULT([yes])
2344 WINDOWS_BUILD_SIGNING="TRUE"
2347 WINDOWS_BUILD_SIGNING="FALSE"
2349 AC_SUBST(WINDOWS_BUILD_SIGNING)
2351 dnl ===================================================================
2352 dnl MacOSX build and runtime environment options
2353 dnl ===================================================================
2355 AC_ARG_WITH(macosx-sdk,
2356 AS_HELP_STRING([--with-macosx-sdk=<version>],
2357 [Prefer a specific SDK for building.])
2359 If the requested SDK is not available, a search for the oldest one will be done.
2360 With current Xcode versions, only the latest SDK is included, so this option is
2361 not terribly useful. It works fine to build with a new SDK and run the result
2364 e. g.: --with-macosx-sdk=10.10
2366 there are 3 options to control the MacOSX build:
2367 --with-macosx-sdk (referred as 'sdk' below)
2368 --with-macosx-version-min-required (referred as 'min' below)
2369 --with-macosx-version-max-allowed (referred as 'max' below)
2371 the connection between these value and the default they take is as follow:
2372 ( ? means not specified on the command line, s means the SDK version found,
2373 constraint: 8 <= x <= y <= z)
2375 ==========================================
2376 command line || config result
2377 ==========================================
2378 min | max | sdk || min | max | sdk |
2379 ? | ? | ? || 10.10 | 10.s | 10.s |
2380 ? | ? | 10.x || 10.10 | 10.x | 10.x |
2381 ? | 10.x | ? || 10.10 | 10.s | 10.s |
2382 ? | 10.x | 10.y || 10.10 | 10.x | 10.y |
2383 10.x | ? | ? || 10.x | 10.s | 10.s |
2384 10.x | ? | 10.y || 10.x | 10.y | 10.y |
2385 10.x | 10.y | ? || 10.x | 10.y | 10.y |
2386 10.x | 10.y | 10.z || 10.x | 10.y | 10.z |
2389 see: http://developer.apple.com/library/mac/#technotes/tn2064/_index.html
2390 for a detailed technical explanation of these variables
2392 Note: MACOSX_DEPLOYMENT_TARGET will be set to the value of 'min'.
2396 AC_ARG_WITH(macosx-version-min-required,
2397 AS_HELP_STRING([--with-macosx-version-min-required=<version>],
2398 [set the minimum OS version needed to run the built LibreOffice])
2400 e. g.: --with-macos-version-min-required=10.10
2401 see --with-macosx-sdk for more info
2405 AC_ARG_WITH(macosx-version-max-allowed,
2406 AS_HELP_STRING([--with-macosx-version-max-allowed=<version>],
2407 [set the maximum allowed OS version the LibreOffice compilation can use APIs from])
2409 e. g.: --with-macos-version-max-allowed=10.10
2410 see --with-macosx-sdk for more info
2415 dnl ===================================================================
2416 dnl options for stuff used during cross-compilation build
2417 dnl Not quite superseded by --with-build-platform-configure-options.
2418 dnl TODO: check, if the "force" option is still needed anywhere.
2419 dnl ===================================================================
2421 AC_ARG_WITH(system-icu-for-build,
2422 AS_HELP_STRING([--with-system-icu-for-build=yes/no/force],
2423 [Use icu already on system for build tools (cross-compilation only).]))
2426 dnl ===================================================================
2427 dnl Check for incompatible options set by fuzzing, and reset those
2428 dnl automatically to working combinations
2429 dnl ===================================================================
2431 if test "$libo_fuzzed_enable_dbus" = yes -a "$libo_fuzzed_enable_avahi" -a \
2432 "$enable_dbus" != "$enable_avahi"; then
2433 AC_MSG_NOTICE([Resetting --enable-avahi=$enable_dbus])
2434 enable_avahi=$enable_dbus
2439 if ! echo "$LO_PATH" | $EGREP -q "(^|${P_SEP})$1($|${P_SEP})"; then
2440 LO_PATH="${LO_PATH:+$LO_PATH$P_SEP}$1"
2444 add_lopath_before ()
2449 for dir in $LO_PATH ; do
2450 if test "$dir" != "$1" ; then
2451 path_cleanup=${path_cleanup:+$path_cleanup$P_SEP}$dir
2454 LO_PATH="$1${path_cleanup:+$P_SEP$path_cleanup}"
2457 dnl ===================================================================
2458 dnl check for required programs (grep, awk, sed, bash)
2459 dnl ===================================================================
2463 if test -n "$1"; then
2464 if test "$build_os" = "cygwin"; then
2465 if test "$GNUMAKE_WIN_NATIVE" = "TRUE" ; then
2467 new_path=`cygpath -sm "$formatted_path"`
2470 new_path=`cygpath -u "$formatted_path"`
2475 if test "$2" = "after"; then
2476 add_lopath_after "$new_path"
2478 add_lopath_before "$new_path"
2485 AC_PATH_PROG( AWK, $AWK)
2486 if test -z "$AWK"; then
2487 AC_MSG_ERROR([install awk to run this script])
2490 AC_PATH_PROG(BASH, bash)
2491 if test -z "$BASH"; then
2492 AC_MSG_ERROR([bash not found in \$PATH])
2496 AC_MSG_CHECKING([for GNU or BSD tar])
2497 for a in $GNUTAR gtar gnutar bsdtar tar /usr/sfw/bin/gtar; do
2498 $a --version 2> /dev/null | egrep "GNU|bsdtar" 2>&1 > /dev/null
2499 if test $? -eq 0; then
2504 AC_MSG_RESULT($GNUTAR)
2505 if test -z "$GNUTAR"; then
2506 AC_MSG_ERROR([not found. install GNU or BSD tar.])
2510 AC_MSG_CHECKING([for tar's option to strip components])
2511 $GNUTAR --help 2> /dev/null | egrep "bsdtar|strip-components" 2>&1 >/dev/null
2512 if test $? -eq 0; then
2513 STRIP_COMPONENTS="--strip-components"
2515 $GNUTAR --help 2> /dev/null | egrep "strip-path" 2>&1 >/dev/null
2516 if test $? -eq 0; then
2517 STRIP_COMPONENTS="--strip-path"
2519 STRIP_COMPONENTS="unsupported"
2522 AC_MSG_RESULT($STRIP_COMPONENTS)
2523 if test x$STRIP_COMPONENTS = xunsupported; then
2524 AC_MSG_ERROR([you need a tar that is able to strip components.])
2526 AC_SUBST(STRIP_COMPONENTS)
2528 dnl It is useful to have a BUILD_TYPE keyword to distinguish "normal"
2529 dnl desktop OSes from "mobile" ones.
2531 dnl We assume that a non-DESKTOP build type is also a non-NATIVE one.
2532 dnl In other words, that when building for an OS that is not a
2533 dnl "desktop" one but a "mobile" one, we are always cross-compiling.
2535 dnl Note the direction of the implication; there is no assumption that
2536 dnl cross-compiling would imply a non-desktop OS.
2538 if test $_os != iOS -a $_os != Android -a "$enable_fuzzers" != "yes"; then
2539 BUILD_TYPE="$BUILD_TYPE DESKTOP"
2540 AC_DEFINE(HAVE_FEATURE_DESKTOP)
2541 AC_DEFINE(HAVE_FEATURE_MULTIUSER_ENVIRONMENT)
2544 # Whether to build "avmedia" functionality or not.
2546 if test -z "$enable_avmedia"; then
2550 BUILD_TYPE="$BUILD_TYPE AVMEDIA"
2551 if test "$enable_avmedia" = yes; then
2552 AC_DEFINE(HAVE_FEATURE_AVMEDIA)
2554 USE_AVMEDIA_DUMMY='TRUE'
2556 AC_SUBST(USE_AVMEDIA_DUMMY)
2558 # Decide whether to build database connectivity stuff (including
2559 # Base) or not. We probably don't want to on non-desktop OSes.
2560 if test -z "$enable_database_connectivity"; then
2561 # --disable-database-connectivity is unfinished work in progress
2562 # and the iOS test app doesn't link if we actually try to use it.
2563 # if test $_os != iOS -a $_os != Android; then
2564 if test $_os != iOS; then
2565 enable_database_connectivity=yes
2569 if test "$enable_database_connectivity" = yes; then
2570 BUILD_TYPE="$BUILD_TYPE DBCONNECTIVITY"
2571 AC_DEFINE(HAVE_FEATURE_DBCONNECTIVITY)
2574 if test -z "$enable_extensions"; then
2575 # For iOS and Android Viewer, disable extensions unless specifically overridden with --enable-extensions.
2576 if test $_os != iOS && test $_os != Android -o "$ENABLE_ANDROID_LOK" = TRUE ; then
2577 enable_extensions=yes
2581 if test "$enable_extensions" = yes; then
2582 BUILD_TYPE="$BUILD_TYPE EXTENSIONS"
2583 AC_DEFINE(HAVE_FEATURE_EXTENSIONS)
2586 if test -z "$enable_scripting"; then
2587 # Disable scripting for iOS unless specifically overridden
2588 # with --enable-scripting.
2589 if test $_os != iOS; then
2590 enable_scripting=yes
2594 DISABLE_SCRIPTING=''
2595 if test "$enable_scripting" = yes; then
2596 BUILD_TYPE="$BUILD_TYPE SCRIPTING"
2597 AC_DEFINE(HAVE_FEATURE_SCRIPTING)
2599 DISABLE_SCRIPTING='TRUE'
2600 SCPDEFS="$SCPDEFS -DDISABLE_SCRIPTING"
2603 if test $_os = iOS -o $_os = Android; then
2604 # Disable dynamic_loading always for iOS and Android
2605 enable_dynamic_loading=no
2606 elif test -z "$enable_dynamic_loading"; then
2607 # Otherwise enable it unless specifically disabled
2608 enable_dynamic_loading=yes
2611 DISABLE_DYNLOADING=''
2612 if test "$enable_dynamic_loading" = yes; then
2613 BUILD_TYPE="$BUILD_TYPE DYNLOADING"
2615 DISABLE_DYNLOADING='TRUE'
2617 AC_SUBST(DISABLE_DYNLOADING)
2619 # remember SYSBASE value
2622 dnl ===================================================================
2623 dnl Sort out various gallery compilation options
2624 dnl ===================================================================
2625 AC_MSG_CHECKING([how to build and package galleries])
2626 if test -n "${with_galleries}"; then
2627 if test "$with_galleries" = "build"; then
2628 WITH_GALLERY_BUILD=TRUE
2629 AC_MSG_RESULT([build from source images internally])
2630 elif test "$with_galleries" = "no"; then
2632 AC_MSG_RESULT([disable non-internal gallery build])
2634 AC_MSG_ERROR([unknown value --with-galleries=$with_galleries])
2637 if test $_os != iOS -a $_os != Android; then
2638 WITH_GALLERY_BUILD=TRUE
2639 AC_MSG_RESULT([internal src images for desktop])
2642 AC_MSG_RESULT([disable src image build])
2645 AC_SUBST(WITH_GALLERY_BUILD)
2647 dnl ===================================================================
2648 dnl Checks if ccache is available
2649 dnl ===================================================================
2651 if test "$_os" = "WINNT"; then
2652 # on windows/VC build do not use ccache
2654 elif test "$enable_ccache" = "no"; then
2656 elif test -n "$enable_ccache" -o \( "$enable_ccache" = "" -a "$enable_icecream" != "yes" \); then
2657 case "%$CC%$CXX%" in
2658 # If $CC and/or $CXX already contain "ccache" (possibly suffixed with some version number etc),
2659 # assume that's good then
2660 *%ccache[[-_' ']]*|*/ccache[[-_' ']]*)
2661 AC_MSG_NOTICE([ccache seems to be included in a pre-defined CC and/or CXX])
2662 CCACHE_DEPEND_MODE=1
2665 AC_PATH_PROG([CCACHE],[ccache],[not found])
2666 if test "$CCACHE" = "not found"; then
2669 CCACHE_DEPEND_MODE=1
2670 # Need to check for ccache version: otherwise prevents
2671 # caching of the results (like "-x objective-c++" for Mac)
2672 if test $_os = Darwin -o $_os = iOS; then
2673 # Check ccache version
2674 AC_MSG_CHECKING([whether version of ccache is suitable])
2675 CCACHE_VERSION=`"$CCACHE" -V | "$AWK" '/^ccache version/{print $3}'`
2676 CCACHE_NUMVER=`echo $CCACHE_VERSION | $AWK -F. '{ print \$1*10000+\$2*100+\$3 }'`
2677 if test "$CCACHE_VERSION" = "2.4_OOo" -o "$CCACHE_NUMVER" -ge "030100"; then
2678 AC_MSG_RESULT([yes, $CCACHE_VERSION])
2680 AC_MSG_RESULT([no, $CCACHE_VERSION])
2691 if test "$enable_ccache" = "nodepend"; then
2692 CCACHE_DEPEND_MODE=""
2694 AC_SUBST(CCACHE_DEPEND_MODE)
2696 if test "$CCACHE" != ""; then
2697 ccache_size_msg=$([ccache -s | tail -n 1 | sed 's/^[^0-9]*//' | sed -e 's/\.[0-9]*//'])
2698 ccache_size=$(echo "$ccache_size_msg" | grep "G" | sed -e 's/G.*$//')
2699 if test "$ccache_size" = ""; then
2700 ccache_size=$(echo "$ccache_size_msg" | grep "M" | sed -e 's/\ M.*$//')
2701 if test "$ccache_size" = ""; then
2704 # we could not determine the size or it was less than 1GB -> disable auto-ccache
2705 if test $ccache_size -lt 1024; then
2707 AC_MSG_WARN([ccache's cache size is less than 1GB using it is counter-productive: Disabling auto-ccache detection])
2708 add_warning "ccache's cache size is less than 1GB using it is counter-productive: auto-ccache detection disabled"
2710 # warn that ccache may be too small for debug build
2711 AC_MSG_WARN([ccache's cache size is less than 5GB using it may be counter-productive for debug or symbol-enabled build])
2712 add_warning "ccache's cache size is less than 5GB using it may be counter-productive for debug or symbol-enabled build"
2715 if test $ccache_size -lt 5; then
2716 #warn that ccache may be too small for debug build
2717 AC_MSG_WARN([ccache's cache size is less than 5GB using it may be counter-productive for debug or symbol-enabled build])
2718 add_warning "ccache's cache size is less than 5GB using it may be counter-productive for debug or symbol-enabled build"
2723 dnl ===================================================================
2724 dnl Checks for C compiler,
2725 dnl The check for the C++ compiler is later on.
2726 dnl ===================================================================
2727 if test "$_os" != "WINNT"; then
2729 AC_MSG_CHECKING([gcc home])
2730 if test -z "$with_gcc_home"; then
2731 if test "$enable_icecream" = "yes"; then
2732 if test -d "/usr/lib/icecc/bin"; then
2733 GCC_HOME="/usr/lib/icecc/"
2734 elif test -d "/usr/libexec/icecc/bin"; then
2735 GCC_HOME="/usr/libexec/icecc/"
2736 elif test -d "/opt/icecream/bin"; then
2737 GCC_HOME="/opt/icecream/"
2739 AC_MSG_ERROR([Could not figure out the location of icecream GCC wrappers, manually use --with-gcc-home])
2743 GCC_HOME=`which gcc | $SED -e s,/bin/gcc,,`
2744 GCC_HOME_SET="false"
2747 GCC_HOME="$with_gcc_home"
2749 AC_MSG_RESULT($GCC_HOME)
2752 if test "$GCC_HOME_SET" = "true"; then
2753 if test -z "$CC"; then
2754 CC="$GCC_HOME/bin/gcc"
2757 if test -z "$CXX"; then
2758 CXX="$GCC_HOME/bin/g++"
2764 COMPATH=`dirname "$CC"`
2765 if test "$COMPATH" = "."; then
2766 AC_PATH_PROGS(COMPATH, $CC)
2767 dnl double square bracket to get single because of M4 quote...
2768 COMPATH=`echo $COMPATH | $SED "s@/[[^/:]]*\\\$@@"`
2770 COMPATH=`echo $COMPATH | $SED "s@/[[Bb]][[Ii]][[Nn]]\\\$@@"`
2772 dnl ===================================================================
2774 dnl ===================================================================
2775 AC_MSG_CHECKING([whether to build with Java support])
2776 if test "$with_java" != "no"; then
2777 if test "$DISABLE_SCRIPTING" = TRUE; then
2778 AC_MSG_RESULT([no, overridden by --disable-scripting])
2782 AC_MSG_RESULT([yes])
2784 AC_DEFINE(HAVE_FEATURE_JAVA)
2791 AC_SUBST(ENABLE_JAVA)
2793 dnl ENABLE_JAVA="TRUE" if we want there to be *run-time* (and build-time) support for Java
2795 dnl ENABLE_JAVA="" indicate no Java support at all
2797 dnl ===================================================================
2798 dnl Check macOS SDK and compiler
2799 dnl ===================================================================
2801 if test $_os = Darwin; then
2803 # If no --with-macosx-sdk option is given, look for one
2805 # The intent is that for "most" Mac-based developers, a suitable
2806 # SDK will be found automatically without any configure options.
2808 # For developers with a current Xcode, the lowest-numbered SDK
2809 # higher than or equal to the minimum required should be found.
2811 AC_MSG_CHECKING([what macOS SDK to use])
2812 for _macosx_sdk in ${with_macosx_sdk-10.15 10.14 10.13}; do
2813 MACOSX_SDK_PATH=`xcrun --sdk macosx${_macosx_sdk} --show-sdk-path 2> /dev/null`
2814 if test -d "$MACOSX_SDK_PATH"; then
2815 with_macosx_sdk="${_macosx_sdk}"
2818 MACOSX_SDK_PATH="`xcode-select -print-path`/Platforms/MacOSX.platform/Developer/SDKs/MacOSX${_macosx_sdk}.sdk"
2819 if test -d "$MACOSX_SDK_PATH"; then
2820 with_macosx_sdk="${_macosx_sdk}"
2825 if test ! -d "$MACOSX_SDK_PATH"; then
2826 AC_MSG_ERROR([Could not find an appropriate macOS SDK])
2829 AC_MSG_RESULT([SDK $with_macosx_sdk at $MACOSX_SDK_PATH])
2831 case $with_macosx_sdk in
2833 MACOSX_SDK_VERSION=101300
2836 MACOSX_SDK_VERSION=101400
2839 MACOSX_SDK_VERSION=101500
2842 AC_MSG_ERROR([with-macosx-sdk $with_macosx_sdk is not a supported value, supported values are 10.13--15])
2846 if test "$with_macosx_version_min_required" = "" ; then
2847 with_macosx_version_min_required="10.10";
2850 if test "$with_macosx_version_max_allowed" = "" ; then
2851 with_macosx_version_max_allowed="$with_macosx_sdk"
2854 # export this so that "xcrun" invocations later return matching values
2855 DEVELOPER_DIR="${MACOSX_SDK_PATH%/SDKs*}"
2856 DEVELOPER_DIR="${DEVELOPER_DIR%/Platforms*}"
2857 export DEVELOPER_DIR
2858 FRAMEWORKSHOME="$MACOSX_SDK_PATH/System/Library/Frameworks"
2859 MACOSX_DEPLOYMENT_TARGET="$with_macosx_version_min_required"
2861 AC_MSG_CHECKING([whether Xcode is new enough])
2862 my_xcode_ver1=$(xcrun xcodebuild -version | head -n 1)
2863 my_xcode_ver2=${my_xcode_ver1#Xcode }
2864 my_xcode_ver3=$(printf %s "$my_xcode_ver2" | $AWK -F. '{ print $1*100+($2<100?$2:99) }')
2865 if test "$my_xcode_ver3" -ge 1103; then
2866 AC_MSG_RESULT([yes ($my_xcode_ver2)])
2868 AC_MSG_ERROR(["$my_xcode_ver1" is too old or unrecognized, must be at least Xcode 11.3])
2871 case "$with_macosx_version_min_required" in
2873 MAC_OS_X_VERSION_MIN_REQUIRED="101000"
2876 MAC_OS_X_VERSION_MIN_REQUIRED="101100"
2879 MAC_OS_X_VERSION_MIN_REQUIRED="101200"
2882 MAC_OS_X_VERSION_MIN_REQUIRED="101300"
2885 MAC_OS_X_VERSION_MIN_REQUIRED="101400"
2888 MAC_OS_X_VERSION_MIN_REQUIRED="101500"
2891 AC_MSG_ERROR([with-macosx-version-min-required $with_macosx_version_min_required is not a supported value, supported values are 10.10--15])
2895 LIBTOOL=/usr/bin/libtool
2896 INSTALL_NAME_TOOL=install_name_tool
2897 if test -z "$save_CC"; then
2898 stdlib=-stdlib=libc++
2899 if test "$ENABLE_LTO" = TRUE; then
2903 AC_MSG_CHECKING([what C compiler to use])
2904 CC="`xcrun -find clang`"
2905 CC_BASE=`first_arg_basename "$CC"`
2906 CC+=" -m64 $lto -mmacosx-version-min=$with_macosx_version_min_required -isysroot $MACOSX_SDK_PATH"
2907 AC_MSG_RESULT([$CC])
2909 AC_MSG_CHECKING([what C++ compiler to use])
2910 CXX="`xcrun -find clang++`"
2911 CXX_BASE=`first_arg_basename "$CXX"`
2912 CXX+=" -m64 $lto $stdlib -mmacosx-version-min=$with_macosx_version_min_required -isysroot $MACOSX_SDK_PATH"
2913 AC_MSG_RESULT([$CXX])
2915 INSTALL_NAME_TOOL=`xcrun -find install_name_tool`
2918 STRIP=`xcrun -find strip`
2919 LIBTOOL=`xcrun -find libtool`
2920 RANLIB=`xcrun -find ranlib`
2923 case "$with_macosx_version_max_allowed" in
2925 MAC_OS_X_VERSION_MAX_ALLOWED="101000"
2928 MAC_OS_X_VERSION_MAX_ALLOWED="101100"
2931 MAC_OS_X_VERSION_MAX_ALLOWED="101200"
2934 MAC_OS_X_VERSION_MAX_ALLOWED="101300"
2937 MAC_OS_X_VERSION_MAX_ALLOWED="101400"
2940 MAC_OS_X_VERSION_MAX_ALLOWED="101500"
2943 AC_MSG_ERROR([with-macosx-version-max-allowed $with_macosx_version_max_allowed is not a supported value, supported values are 10.10--15])
2947 AC_MSG_CHECKING([that macosx-version-min-required is coherent with macosx-version-max-allowed])
2948 if test $MAC_OS_X_VERSION_MIN_REQUIRED -gt $MAC_OS_X_VERSION_MAX_ALLOWED; then
2949 AC_MSG_ERROR([the version minimum required, $MAC_OS_X_VERSION_MIN_REQUIRED, must be <= the version maximum allowed, $MAC_OS_X_VERSION_MAX_ALLOWED])
2954 AC_MSG_CHECKING([that macosx-version-max-allowed is coherent with macos-with-sdk])
2955 if test $MAC_OS_X_VERSION_MAX_ALLOWED -gt $MACOSX_SDK_VERSION; then
2956 AC_MSG_ERROR([the version maximum allowed cannot be greater than the sdk level])
2960 AC_MSG_NOTICE([MAC_OS_X_VERSION_MIN_REQUIRED=$MAC_OS_X_VERSION_MIN_REQUIRED])
2961 AC_MSG_NOTICE([MAC_OS_X_VERSION_MAX_ALLOWED=$MAC_OS_X_VERSION_MAX_ALLOWED])
2963 AC_MSG_CHECKING([whether to do code signing])
2965 if test "$enable_macosx_code_signing" = yes; then
2966 # By default use the first suitable certificate (?).
2968 # http://stackoverflow.com/questions/13196291/difference-between-mac-developer-and-3rd-party-mac-developer-application
2969 # says that the "Mac Developer" certificate is useful just for self-testing. For distribution
2970 # outside the Mac App Store, use the "Developer ID Application" one, and for distribution in
2971 # the App Store, the "3rd Party Mac Developer" one. I think it works best to the
2972 # "Developer ID Application" one.
2974 identity=`security find-identity -p codesigning -v 2>/dev/null | grep 'Developer ID Application:' | $AWK '{print $2}' |head -1`
2975 if test -n "$identity"; then
2976 MACOSX_CODESIGNING_IDENTITY=$identity
2977 pretty_name=`security find-identity -p codesigning -v | grep "$MACOSX_CODESIGNING_IDENTITY" | sed -e 's/^[[^"]]*"//' -e 's/"//'`
2978 AC_MSG_RESULT([yes, using the identity $MACOSX_CODESIGNING_IDENTITY for $pretty_name])
2980 AC_MSG_ERROR([cannot determine identity to use])
2982 elif test -n "$enable_macosx_code_signing" -a "$enable_macosx_code_signing" != no ; then
2983 MACOSX_CODESIGNING_IDENTITY=$enable_macosx_code_signing
2984 pretty_name=`security find-identity -p codesigning -v | grep "$MACOSX_CODESIGNING_IDENTITY" | sed -e 's/^[[^"]]*"//' -e 's/"//'`
2985 AC_MSG_RESULT([yes, using the identity $MACOSX_CODESIGNING_IDENTITY for $pretty_name])
2990 AC_MSG_CHECKING([whether to create a Mac App Store package])
2992 if test -n "$enable_macosx_package_signing" -a -z "$MACOSX_CODESIGNING_IDENTITY"; then
2993 AC_MSG_ERROR([You forgot --enable-macosx-code-signing])
2994 elif test "$enable_macosx_package_signing" = yes; then
2995 # By default use the first suitable certificate.
2996 # It should be a "3rd Party Mac Developer Installer" one
2998 identity=`security find-identity -v 2>/dev/null | grep '3rd Party Mac Developer Installer:' | awk '{print $2}' |head -1`
2999 if test -n "$identity"; then
3000 MACOSX_PACKAGE_SIGNING_IDENTITY=$identity
3001 pretty_name=`security find-identity -v | grep "$MACOSX_PACKAGE_SIGNING_IDENTITY" | sed -e 's/^[[^"]]*"//' -e 's/"//'`
3002 AC_MSG_RESULT([yes, using the identity $MACOSX_PACKAGE_SIGNING_IDENTITY for $pretty_name])
3004 AC_MSG_ERROR([Could not find any suitable '3rd Party Mac Developer Installer' certificate])
3006 elif test -n "$enable_macosx_package_signing"; then
3007 MACOSX_PACKAGE_SIGNING_IDENTITY=$enable_macosx_package_signing
3008 pretty_name=`security find-identity -v | grep "$MACOSX_PACKAGE_SIGNING_IDENTITY" | sed -e 's/^[[^"]]*"//' -e 's/"//'`
3009 AC_MSG_RESULT([yes, using the identity $MACOSX_PACKAGE_SIGNING_IDENTITY for $pretty_name])
3014 if test -n "$MACOSX_CODESIGNING_IDENTITY" -a -n "$MACOSX_PACKAGE_SIGNING_IDENTITY" -a "$MACOSX_CODESIGNING_IDENTITY" = "$MACOSX_PACKAGE_SIGNING_IDENTITY"; then
3015 AC_MSG_ERROR([You should not use the same identity for code and package signing])
3018 AC_MSG_CHECKING([whether to sandbox the application])
3020 if test -z "$MACOSX_CODESIGNING_IDENTITY" -a "$enable_macosx_sandbox" = yes; then
3021 AC_MSG_ERROR([macOS sandboxing requires code signing])
3022 elif test -n "$ENABLE_JAVA" -a "$enable_macosx_sandbox" = yes; then
3023 AC_MSG_ERROR([macOS sandboxing (actually App Store rules) disallows use of Java])
3024 elif test -n "$MACOSX_CODESIGNING_IDENTITY" -a "$enable_macosx_sandbox" = yes; then
3025 ENABLE_MACOSX_SANDBOX=TRUE
3026 AC_DEFINE(HAVE_FEATURE_MACOSX_SANDBOX)
3027 AC_MSG_RESULT([yes])
3032 AC_MSG_CHECKING([what macOS app bundle identifier to use])
3033 MACOSX_BUNDLE_IDENTIFIER=$with_macosx_bundle_identifier
3034 AC_MSG_RESULT([$MACOSX_BUNDLE_IDENTIFIER])
3036 AC_SUBST(MACOSX_SDK_PATH)
3037 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
3038 AC_SUBST(MAC_OS_X_VERSION_MIN_REQUIRED)
3039 AC_SUBST(MAC_OS_X_VERSION_MAX_ALLOWED)
3040 AC_SUBST(INSTALL_NAME_TOOL)
3041 AC_SUBST(LIBTOOL) # Note that the macOS libtool command is unrelated to GNU libtool
3042 AC_SUBST(MACOSX_CODESIGNING_IDENTITY)
3043 AC_SUBST(MACOSX_PACKAGE_SIGNING_IDENTITY)
3044 AC_SUBST(ENABLE_MACOSX_SANDBOX)
3045 AC_SUBST(MACOSX_BUNDLE_IDENTIFIER)
3047 dnl ===================================================================
3048 dnl Check iOS SDK and compiler
3049 dnl ===================================================================
3051 if test $_os = iOS; then
3052 AC_MSG_CHECKING([what iOS SDK to use])
3053 current_sdk_ver=13.2
3054 older_sdk_vers="13.1 13.0 12.4 12.2"
3055 if test "$enable_ios_simulator" = "yes"; then
3056 platform=iPhoneSimulator
3057 versionmin=-mios-simulator-version-min=12.2
3060 versionmin=-miphoneos-version-min=12.2
3062 xcode_developer=`xcode-select -print-path`
3064 for sdkver in $current_sdk_ver $older_sdk_vers; do
3065 t=$xcode_developer/Platforms/$platform.platform/Developer/SDKs/$platform$sdkver.sdk
3072 if test -z "$sysroot"; then
3073 AC_MSG_ERROR([Could not find iOS SDK, expected something like $xcode_developer/Platforms/$platform.platform/Developer/SDKs/${platform}${current_sdk_ver}.sdk])
3076 AC_MSG_RESULT($sysroot)
3078 # LTO is not really recommended for iOS builds,
3079 # the link time will be astronomical
3080 if test "$ENABLE_LTO" = TRUE; then
3084 stdlib="-stdlib=libc++"
3086 AC_MSG_CHECKING([what C compiler to use])
3087 CC="`xcrun -find clang`"
3088 CC_BASE=`first_arg_basename "$CC"`
3089 CC+=" -arch $host_cpu -isysroot $sysroot $lto $versionmin"
3090 AC_MSG_RESULT([$CC])
3092 AC_MSG_CHECKING([what C++ compiler to use])
3093 CXX="`xcrun -find clang++`"
3094 CXX_BASE=`first_arg_basename "$CXX"`
3095 CXX+=" -arch $host_cpu $stdlib -isysroot $sysroot $lto $versionmin"
3096 AC_MSG_RESULT([$CXX])
3098 INSTALL_NAME_TOOL=`xcrun -find install_name_tool`
3101 STRIP=`xcrun -find strip`
3102 LIBTOOL=`xcrun -find libtool`
3103 RANLIB=`xcrun -find ranlib`
3106 AC_MSG_CHECKING([whether to treat the installation as read-only])
3108 if test \( -z "$enable_readonly_installset" -a "$ENABLE_MACOSX_SANDBOX" = TRUE \) -o \
3109 "$enable_extensions" != yes; then
3110 enable_readonly_installset=yes
3112 if test "$enable_readonly_installset" = yes; then
3113 AC_MSG_RESULT([yes])
3114 AC_DEFINE(HAVE_FEATURE_READONLY_INSTALLSET)
3119 dnl ===================================================================
3120 dnl Structure of install set
3121 dnl ===================================================================
3123 if test $_os = Darwin; then
3124 LIBO_BIN_FOLDER=MacOS
3125 LIBO_ETC_FOLDER=Resources
3126 LIBO_LIBEXEC_FOLDER=MacOS
3127 LIBO_LIB_FOLDER=Frameworks
3128 LIBO_LIB_PYUNO_FOLDER=Resources
3129 LIBO_SHARE_FOLDER=Resources
3130 LIBO_SHARE_HELP_FOLDER=Resources/help
3131 LIBO_SHARE_JAVA_FOLDER=Resources/java
3132 LIBO_SHARE_PRESETS_FOLDER=Resources/presets
3133 LIBO_SHARE_READMES_FOLDER=Resources/readmes
3134 LIBO_SHARE_RESOURCE_FOLDER=Resources/resource
3135 LIBO_SHARE_SHELL_FOLDER=Resources/shell
3136 LIBO_URE_BIN_FOLDER=MacOS
3137 LIBO_URE_ETC_FOLDER=Resources/ure/etc
3138 LIBO_URE_LIB_FOLDER=Frameworks
3139 LIBO_URE_MISC_FOLDER=Resources/ure/share/misc
3140 LIBO_URE_SHARE_JAVA_FOLDER=Resources/java
3141 elif test $_os = WINNT; then
3142 LIBO_BIN_FOLDER=program
3143 LIBO_ETC_FOLDER=program
3144 LIBO_LIBEXEC_FOLDER=program
3145 LIBO_LIB_FOLDER=program
3146 LIBO_LIB_PYUNO_FOLDER=program
3147 LIBO_SHARE_FOLDER=share
3148 LIBO_SHARE_HELP_FOLDER=help
3149 LIBO_SHARE_JAVA_FOLDER=program/classes
3150 LIBO_SHARE_PRESETS_FOLDER=presets
3151 LIBO_SHARE_READMES_FOLDER=readmes
3152 LIBO_SHARE_RESOURCE_FOLDER=program/resource
3153 LIBO_SHARE_SHELL_FOLDER=program/shell
3154 LIBO_URE_BIN_FOLDER=program
3155 LIBO_URE_ETC_FOLDER=program
3156 LIBO_URE_LIB_FOLDER=program
3157 LIBO_URE_MISC_FOLDER=program
3158 LIBO_URE_SHARE_JAVA_FOLDER=program/classes
3160 LIBO_BIN_FOLDER=program
3161 LIBO_ETC_FOLDER=program
3162 LIBO_LIBEXEC_FOLDER=program
3163 LIBO_LIB_FOLDER=program
3164 LIBO_LIB_PYUNO_FOLDER=program
3165 LIBO_SHARE_FOLDER=share
3166 LIBO_SHARE_HELP_FOLDER=help
3167 LIBO_SHARE_JAVA_FOLDER=program/classes
3168 LIBO_SHARE_PRESETS_FOLDER=presets
3169 LIBO_SHARE_READMES_FOLDER=readmes
3170 if test "$enable_fuzzers" != yes; then
3171 LIBO_SHARE_RESOURCE_FOLDER=program/resource
3173 LIBO_SHARE_RESOURCE_FOLDER=resource
3175 LIBO_SHARE_SHELL_FOLDER=program/shell
3176 LIBO_URE_BIN_FOLDER=program
3177 LIBO_URE_ETC_FOLDER=program
3178 LIBO_URE_LIB_FOLDER=program
3179 LIBO_URE_MISC_FOLDER=program
3180 LIBO_URE_SHARE_JAVA_FOLDER=program/classes
3182 AC_DEFINE_UNQUOTED(LIBO_BIN_FOLDER,"$LIBO_BIN_FOLDER")
3183 AC_DEFINE_UNQUOTED(LIBO_ETC_FOLDER,"$LIBO_ETC_FOLDER")
3184 AC_DEFINE_UNQUOTED(LIBO_LIBEXEC_FOLDER,"$LIBO_LIBEXEC_FOLDER")
3185 AC_DEFINE_UNQUOTED(LIBO_LIB_FOLDER,"$LIBO_LIB_FOLDER")
3186 AC_DEFINE_UNQUOTED(LIBO_LIB_PYUNO_FOLDER,"$LIBO_LIB_PYUNO_FOLDER")
3187 AC_DEFINE_UNQUOTED(LIBO_SHARE_FOLDER,"$LIBO_SHARE_FOLDER")
3188 AC_DEFINE_UNQUOTED(LIBO_SHARE_HELP_FOLDER,"$LIBO_SHARE_HELP_FOLDER")
3189 AC_DEFINE_UNQUOTED(LIBO_SHARE_JAVA_FOLDER,"$LIBO_SHARE_JAVA_FOLDER")
3190 AC_DEFINE_UNQUOTED(LIBO_SHARE_PRESETS_FOLDER,"$LIBO_SHARE_PRESETS_FOLDER")
3191 AC_DEFINE_UNQUOTED(LIBO_SHARE_RESOURCE_FOLDER,"$LIBO_SHARE_RESOURCE_FOLDER")
3192 AC_DEFINE_UNQUOTED(LIBO_SHARE_SHELL_FOLDER,"$LIBO_SHARE_SHELL_FOLDER")
3193 AC_DEFINE_UNQUOTED(LIBO_URE_BIN_FOLDER,"$LIBO_URE_BIN_FOLDER")
3194 AC_DEFINE_UNQUOTED(LIBO_URE_ETC_FOLDER,"$LIBO_URE_ETC_FOLDER")
3195 AC_DEFINE_UNQUOTED(LIBO_URE_LIB_FOLDER,"$LIBO_URE_LIB_FOLDER")
3196 AC_DEFINE_UNQUOTED(LIBO_URE_MISC_FOLDER,"$LIBO_URE_MISC_FOLDER")
3197 AC_DEFINE_UNQUOTED(LIBO_URE_SHARE_JAVA_FOLDER,"$LIBO_URE_SHARE_JAVA_FOLDER")
3199 # Not all of them needed in config_host.mk, add more if need arises
3200 AC_SUBST(LIBO_BIN_FOLDER)
3201 AC_SUBST(LIBO_ETC_FOLDER)
3202 AC_SUBST(LIBO_LIB_FOLDER)
3203 AC_SUBST(LIBO_LIB_PYUNO_FOLDER)
3204 AC_SUBST(LIBO_SHARE_FOLDER)
3205 AC_SUBST(LIBO_SHARE_HELP_FOLDER)
3206 AC_SUBST(LIBO_SHARE_JAVA_FOLDER)
3207 AC_SUBST(LIBO_SHARE_PRESETS_FOLDER)
3208 AC_SUBST(LIBO_SHARE_READMES_FOLDER)
3209 AC_SUBST(LIBO_SHARE_RESOURCE_FOLDER)
3210 AC_SUBST(LIBO_URE_BIN_FOLDER)
3211 AC_SUBST(LIBO_URE_ETC_FOLDER)
3212 AC_SUBST(LIBO_URE_LIB_FOLDER)
3213 AC_SUBST(LIBO_URE_MISC_FOLDER)
3214 AC_SUBST(LIBO_URE_SHARE_JAVA_FOLDER)
3216 dnl ===================================================================
3217 dnl Windows specific tests and stuff
3218 dnl ===================================================================
3222 # Return value: $regvalue
3225 local _regentry="/proc/registry${1}/${2}"
3226 if test -f "$_regentry"; then
3227 # Stop bash complaining about \0 bytes in input, as it can't handle them.
3228 # Registry keys read via /proc/registry* are always \0 terminated!
3229 local _regvalue=$(tr -d '\0' < "$_regentry")
3230 if test $? -eq 0; then
3236 # Get a value from the 32-bit side of the Registry
3239 reg_get_value "32" "$1"
3242 # Get a value from the 64-bit side of the Registry
3245 reg_get_value "64" "$1"
3248 if test "$_os" = "WINNT"; then
3249 AC_MSG_CHECKING([whether to build a 64-bit LibreOffice])
3250 if test "$enable_64_bit" = "" -o "$enable_64_bit" = "no"; then
3252 WINDOWS_SDK_ARCH="x86"
3254 AC_MSG_RESULT([yes])
3255 WINDOWS_SDK_ARCH="x64"
3259 if test "$_os" = "iOS"; then
3260 cross_compiling="yes"
3263 if test "$cross_compiling" = "yes"; then
3264 export CROSS_COMPILING=TRUE
3267 BUILD_TYPE="$BUILD_TYPE NATIVE"
3269 AC_SUBST(CROSS_COMPILING)
3271 # Use -isystem (gcc) if possible, to avoid warnings in 3rd party headers.
3272 # NOTE: must _not_ be used for bundled external libraries!
3274 if test "$GCC" = "yes"; then
3275 AC_MSG_CHECKING( for -isystem )
3277 CFLAGS="$CFLAGS -Werror"
3278 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[ return 0; ]])],[ ISYSTEM="-isystem " ],[])
3280 if test -n "$ISYSTEM"; then
3286 if test -z "$ISYSTEM"; then
3287 # fall back to using -I
3292 dnl ===================================================================
3293 dnl Check which Visual Studio compiler is used
3294 dnl ===================================================================
3296 map_vs_year_to_version()
3298 # Return value: $vsversion
3306 AC_MSG_ERROR([Assertion failure - invalid argument "$1" to map_vs_year_to_version()]);;
3310 vs_versions_to_check()
3312 # Args: $1 (optional) : versions to check, in the order of preference
3313 # Return value: $vsversions
3317 if test -n "$1"; then
3318 map_vs_year_to_version "$1"
3319 vsversions=$vsversion
3321 # We accept only 2019
3326 win_get_env_from_vsvars32bat()
3328 WRAPPERBATCHFILEPATH="`mktemp -t wrpXXXXXX.bat`"
3329 # Also seems to be located in another directory under the same name: vsvars32.bat
3330 # https://github.com/bazelbuild/bazel/blob/master/src/main/native/build_windows_jni.sh#L56-L57
3331 printf '@call "%s/../Common7/Tools/VsDevCmd.bat" /no_logo\r\n' "$(cygpath -w $VC_PRODUCT_DIR)" > $WRAPPERBATCHFILEPATH
3332 printf '@setlocal\r\n@echo %%%s%%\r\n@endlocal\r\n' "$1" >> $WRAPPERBATCHFILEPATH
3333 chmod +x $WRAPPERBATCHFILEPATH
3334 _win_get_env_from_vsvars32bat=$("$WRAPPERBATCHFILEPATH" | tr -d '\r')
3335 rm -f $WRAPPERBATCHFILEPATH
3336 printf '%s' "$_win_get_env_from_vsvars32bat"
3341 reg_get_value_32 "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/Windows/v10.0/InstallationFolder"
3342 if test -n "$regvalue"; then
3343 PathFormat "$regvalue"
3344 UCRTSDKDIR=$formatted_path
3345 reg_get_value_32 "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/Windows/v10.0/ProductVersion"
3346 UCRTVERSION=$regvalue
3348 if ! test -d "${UCRTSDKDIR}Include/$UCRTVERSION/ucrt"; then
3352 if test -z "$UCRTSDKDIR"; then
3353 ide_env_dir="$VC_PRODUCT_DIR/../Common7/Tools/"
3354 ide_env_file="${ide_env_dir}VsDevCmd.bat"
3355 if test -f "$ide_env_file"; then
3356 PathFormat "$(win_get_env_from_vsvars32bat UniversalCRTSdkDir)"
3357 UCRTSDKDIR=$formatted_path
3358 UCRTVERSION=$(win_get_env_from_vsvars32bat UCRTVersion)
3359 dnl Hack needed at least by tml:
3360 if test "$UCRTVERSION" = 10.0.15063.0 \
3361 -a ! -f "${UCRTSDKDIR}Include/10.0.15063.0/um/sqlext.h" \
3362 -a -f "${UCRTSDKDIR}Include/10.0.14393.0/um/sqlext.h"
3364 UCRTVERSION=10.0.14393.0
3367 AC_MSG_ERROR([No UCRT found])
3374 # Find Visual C++ 2019
3375 # Args: $1 (optional) : The VS version year
3376 # Return values: $vctest, $vcyear, $vcnum, $vcnumwithdot, $vcbuildnumber
3378 unset vctest vcnum vcnumwithdot vcbuildnumber
3380 vs_versions_to_check "$1"
3381 vswhere="$(perl -e 'print $ENV{"ProgramFiles(x86)"}')"
3382 vswhere+="\\Microsoft Visual Studio\\Installer\\vswhere.exe"
3383 PathFormat "$vswhere"
3384 vswhere=$formatted_path
3385 for ver in $vsversions; do
3386 vswhereoutput=`$vswhere -version "@<:@ $ver , $(expr $ver + 1) @:}@" -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath | head -1`
3387 # Fall back to all MS products (this includes VC++ Build Tools)
3388 if ! test -n "$vswhereoutput"; then
3389 AC_MSG_CHECKING([VC++ Build Tools and similar])
3390 vswhereoutput=`$vswhere -products \* -version "@<:@ $ver , $(expr $ver + 1) @:}@" -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath | head -1`
3392 if test -n "$vswhereoutput"; then
3393 PathFormat "$vswhereoutput"
3394 vctest=$formatted_path
3399 if test -n "$vctest"; then
3400 vcnumwithdot="$ver.0"
3401 case "$vcnumwithdot" in
3407 vcbuildnumber=`ls $vctest/VC/Tools/MSVC -A1r | head -1`
3415 if test "$_os" = "WINNT"; then
3416 AC_MSG_CHECKING([Visual C++])
3417 find_msvc "$with_visual_studio"
3418 if test -z "$vctest"; then
3419 if test -n "$with_visual_studio"; then
3420 AC_MSG_ERROR([no Visual Studio $with_visual_studio installation found])
3422 AC_MSG_ERROR([no Visual Studio 2019 installation found])
3426 if test "$BITNESS_OVERRIDE" = ""; then
3427 if test -f "$vctest/VC/Tools/MSVC/$vcbuildnumber/bin/HostX86/x86/cl.exe"; then
3428 VC_PRODUCT_DIR=$vctest/VC
3430 AC_MSG_ERROR([no compiler (cl.exe) in $vctest/VC/Tools/MSVC/$vcbuildnumber/bin/HostX86/x86])
3433 if test -f "$vctest/VC/Tools/MSVC/$vcbuildnumber/bin/HostX64/x64/cl.exe"; then
3434 VC_PRODUCT_DIR=$vctest/VC
3436 AC_MSG_ERROR([no compiler (cl.exe) in $vctest/VC/Tools/MSVC/$vcbuildnumber/bin/HostX64/x64])
3439 AC_MSG_RESULT([$VC_PRODUCT_DIR])
3441 AC_MSG_CHECKING([for short pathname of VC product directory])
3442 VC_PRODUCT_DIR=`win_short_path_for_make "$VC_PRODUCT_DIR"`
3443 AC_MSG_RESULT([$VC_PRODUCT_DIR])
3448 AC_MSG_CHECKING([for UCRT location])
3450 # find_ucrt errors out if it doesn't find it
3451 AC_MSG_RESULT([found])
3452 PathFormat "${UCRTSDKDIR}Include/$UCRTVERSION/ucrt"
3453 ucrtincpath_formatted=$formatted_path
3454 # SOLARINC is used for external modules and must be set too.
3455 # And no, it's not sufficient to set SOLARINC only, as configure
3456 # itself doesn't honour it.
3457 SOLARINC="$SOLARINC -I$ucrtincpath_formatted"
3458 CFLAGS="$CFLAGS -I$ucrtincpath_formatted"
3459 CXXFLAGS="$CXXFLAGS -I$ucrtincpath_formatted"
3460 CPPFLAGS="$CPPFLAGS -I$ucrtincpath_formatted"
3462 AC_SUBST(UCRTSDKDIR)
3463 AC_SUBST(UCRTVERSION)
3465 AC_MSG_CHECKING([for MSBuild.exe location for: $vcnumwithdot])
3466 # Find the proper version of MSBuild.exe to use based on the VS version
3467 reg_get_value_32 HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSBuild/$vcnumwithdot/MSBuildOverrideTasksPath
3468 if test -n "$regvalue" ; then
3469 AC_MSG_RESULT([found: $regvalue])
3470 MSBUILD_PATH=`win_short_path_for_make "$regvalue"`
3472 if test "$vcnumwithdot" = "16.0"; then
3473 if test "$BITNESS_OVERRIDE" = ""; then
3474 regvalue="$VC_PRODUCT_DIR/../MSBuild/Current/Bin"
3476 regvalue="$VC_PRODUCT_DIR/../MSBuild/Current/Bin/amd64"
3479 if test "$BITNESS_OVERRIDE" = ""; then
3480 regvalue="$VC_PRODUCT_DIR/../MSBuild/$vcnumwithdot/Bin"
3482 regvalue="$VC_PRODUCT_DIR/../MSBuild/$vcnumwithdot/Bin/amd64"
3485 MSBUILD_PATH=`win_short_path_for_make "$regvalue"`
3486 AC_MSG_RESULT([$regvalue])
3489 # Find the version of devenv.exe
3490 # MSVC 2017 devenv does not start properly from a DOS 8.3 path
3491 DEVENV=$(cygpath -lm "$VC_PRODUCT_DIR/../Common7/IDE/devenv.exe")
3492 if test ! -e "$DEVENV"; then
3493 AC_MSG_WARN([No devenv.exe found - this is expected for VC++ Build Tools])
3496 dnl ===========================================================
3497 dnl Check for the corresponding mspdb*.dll
3498 dnl ===========================================================
3504 if "$VC_PRODUCT_DIR/Tools/MSVC/$vcbuildnumber/bin/HostX64/x64/cl.exe" -? </dev/null >/dev/null 2>&1; then
3505 VC_HOST_DIR="HostX64"
3506 MSPDB_PATH="$VC_PRODUCT_DIR/Tools/MSVC/$vcbuildnumber/bin/$VC_HOST_DIR/x64"
3508 VC_HOST_DIR="HostX86"
3509 MSPDB_PATH="$VC_PRODUCT_DIR/Tools/MSVC/$vcbuildnumber/bin/$VC_HOST_DIR/x86"
3512 if test "$BITNESS_OVERRIDE" = ""; then
3513 CL_PATH="$VC_PRODUCT_DIR/Tools/MSVC/$vcbuildnumber/bin/$VC_HOST_DIR/x86"
3515 CL_PATH="$VC_PRODUCT_DIR/Tools/MSVC/$vcbuildnumber/bin/$VC_HOST_DIR/x64"
3518 # MSVC 15.0 has libraries from 14.0?
3521 if test ! -e "$MSPDB_PATH/mspdb${mspdbnum}.dll"; then
3522 AC_MSG_ERROR([No mspdb${mspdbnum}.dll in $MSPDB_PATH, Visual Studio installation broken?])
3525 dnl The path needs to be added before cl is called
3526 TEMP_PATH=`cygpath -d "$MSPDB_PATH"`
3527 PATH="`cygpath -u "$TEMP_PATH"`:$PATH"
3529 AC_MSG_CHECKING([cl.exe])
3531 # Is there really ever a need to pass CC explicitly? Surely we can hope to get all the
3532 # automagical niceness to work OK? If somebody has some unsupported compiler in some weird
3533 # location, isn't it likely that lots of other things needs changes, too, and just setting CC
3536 dnl Save the true MSVC cl.exe for use when CC/CXX is actually clang-cl,
3537 dnl needed when building CLR code:
3538 if test -z "$MSVC_CXX"; then
3539 if test -f "$CL_PATH/cl.exe"; then
3540 MSVC_CXX="$CL_PATH/cl.exe"
3543 # This gives us a posix path with 8.3 filename restrictions
3544 MSVC_CXX=`win_short_path_for_make "$MSVC_CXX"`
3547 if test -z "$CC"; then
3549 CC_BASE=`first_arg_basename "$CC"`
3551 if test "$BITNESS_OVERRIDE" = ""; then
3552 dnl since MSVC 2012, default for x86 is -arch:SSE2:
3553 MSVC_CXX="$MSVC_CXX -arch:SSE"
3555 if test -z "$CXX"; then
3557 CXX_BASE=`first_arg_basename "$CXX"`
3560 if test -n "$CC"; then
3561 # Remove /cl.exe from CC case insensitive
3562 AC_MSG_RESULT([found Visual C++ $vcyear ($CC)])
3563 if test "$BITNESS_OVERRIDE" = ""; then
3564 COMPATH="$VC_PRODUCT_DIR"
3566 if test -n "$VC_PRODUCT_DIR"; then
3567 COMPATH=$VC_PRODUCT_DIR
3570 if test "$BITNESS_OVERRIDE" = ""; then
3571 dnl since MSVC 2012, default for x86 is -arch:SSE2:
3575 COMPATH="$COMPATH/Tools/MSVC/$vcbuildnumber"
3577 export INCLUDE=`cygpath -d "$COMPATH\Include"`
3579 PathFormat "$COMPATH"
3580 COMPATH=`win_short_path_for_make "$formatted_path"`
3584 # The WINDOWS_SDK_ACCEPTABLE_VERSIONS is mostly an educated guess... Assuming newer ones
3585 # are always "better", we list them in reverse chronological order.
3589 WINDOWS_SDK_ACCEPTABLE_VERSIONS="10.0 8.1A 8.1 8.0"
3593 # The expectation is that --with-windows-sdk should not need to be used
3594 if test -n "$with_windows_sdk"; then
3595 case " $WINDOWS_SDK_ACCEPTABLE_VERSIONS " in
3596 *" "$with_windows_sdk" "*)
3597 WINDOWS_SDK_ACCEPTABLE_VERSIONS=$with_windows_sdk
3600 AC_MSG_ERROR([Windows SDK $with_windows_sdk is not known to work with VS $vcyear])
3605 # Make AC_COMPILE_IFELSE etc. work (set by AC_PROG_C, which we don't use for MSVC)
3610 AC_MSG_ERROR([Visual C++ not found after all, huh])
3613 AC_MSG_CHECKING([$CC_BASE is at least Visual Studio 2019 version 16.4])
3614 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
3615 // See <https://docs.microsoft.com/en-us/cpp/preprocessor/predefined-macros> for mapping
3616 // between Visual Studio versions and _MSC_VER:
3620 ]])],[AC_MSG_RESULT([yes])],[AC_MSG_ERROR([no])])
3622 # Check for 64-bit (cross-)compiler to use to build the 64-bit
3623 # version of the Explorer extension (and maybe other small
3624 # bits, too) needed when installing a 32-bit LibreOffice on a
3625 # 64-bit OS. The 64-bit Explorer extension is a feature that
3626 # has been present since long in OOo. Don't confuse it with
3627 # building LibreOffice itself as 64-bit code.
3632 if test "$BITNESS_OVERRIDE" = ""; then
3633 AC_MSG_CHECKING([for a x64 compiler and libraries for 64-bit Explorer extensions])
3634 if test -f "$VC_PRODUCT_DIR/Tools/MSVC/$vcbuildnumber/atlmfc/lib/x64/atls.lib" || \
3635 test -f "$VC_PRODUCT_DIR/Tools/MSVC/$vcbuildnumber/atlmfc/lib/spectre/x64/atls.lib"; then
3636 if "$VC_PRODUCT_DIR/Tools/MSVC/$vcbuildnumber/bin/$VC_HOST_DIR/x64/cl.exe" -? </dev/null >/dev/null 2>&1; then
3638 CXX_X64_BINARY=`win_short_path_for_make "$VC_PRODUCT_DIR/Tools/MSVC/$vcbuildnumber/bin/$VC_HOST_DIR/x64/cl.exe"`
3641 if test "$BUILD_X64" = TRUE; then
3642 AC_MSG_RESULT([found])
3644 AC_MSG_RESULT([not found])
3645 AC_MSG_WARN([Installation set will not contain 64-bit Explorer extensions])
3652 # These are passed to the environment and then used in gbuild/platform/com_MSC_class.mk
3653 AC_SUBST(CXX_X64_BINARY)
3655 # Check for 32-bit compiler to use to build the 32-bit TWAIN shim
3656 # needed to support TWAIN scan on both 32- and 64-bit systems
3660 if test "$BITNESS_OVERRIDE" = "64"; then
3661 AC_MSG_CHECKING([for a x86 compiler and libraries for 32-bit binaries required for TWAIN support])
3662 if test -n "$CXX_X86_BINARY"; then
3664 AC_MSG_RESULT([preset])
3665 elif "$VC_PRODUCT_DIR/Tools/MSVC/$vcbuildnumber/bin/$VC_HOST_DIR/x86/cl.exe" -? </dev/null >/dev/null 2>&1; then
3667 CXX_X86_BINARY=`win_short_path_for_make "$VC_PRODUCT_DIR/Tools/MSVC/$vcbuildnumber/bin/$VC_HOST_DIR/x86/cl.exe"`
3668 CXX_X86_BINARY+=" /arch:SSE"
3669 AC_MSG_RESULT([found])
3672 AC_MSG_RESULT([not found])
3673 AC_MSG_WARN([Installation set will not contain 32-bit binaries required for TWAIN support])
3677 CXX_X86_BINARY=$MSVC_CXX
3680 AC_SUBST(CXX_X86_BINARY)
3689 UNOWINREG_DLL="185d60944ea767075d27247c3162b3bc-unowinreg.dll"
3690 AC_SUBST(UNOWINREG_DLL)
3693 AC_MSG_CHECKING([whether the compiler is actually Clang])
3694 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
3700 [AC_MSG_RESULT([yes])
3702 [AC_MSG_RESULT([no])])
3703 AC_SUBST(COM_IS_CLANG)
3707 if test "$COM_IS_CLANG" = TRUE; then
3708 AC_MSG_CHECKING([whether Clang is new enough])
3709 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
3710 #if !defined __apple_build_version__
3714 [my_apple_clang=yes],[my_apple_clang=])
3715 if test "$my_apple_clang" = yes; then
3716 AC_MSG_RESULT([assumed yes (Apple Clang)])
3718 if test "$_os" = WINNT; then
3719 dnl In which case, assume clang-cl:
3721 dnl Filter out -FIIntrin.h, which needs to be explicitly stated for
3729 CC_PLAIN="$CC_PLAIN $i"
3736 clang_version=`echo __clang_major__.__clang_minor__.__clang_patchlevel__ | $CC_PLAIN $my_args - | sed 's/ //g'`
3737 CLANG_FULL_VERSION=`echo __clang_version__ | $CC_PLAIN $my_args -`
3738 CLANGVER=`echo $clang_version \
3739 | $AWK -F. '{ print \$1*10000+(\$2<100?\$2:99)*100+(\$3<100?\$3:99) }'`
3740 if test "$CLANGVER" -ge 50002; then
3741 AC_MSG_RESULT([yes ($clang_version)])
3743 AC_MSG_ERROR(["$CLANG_FULL_VERSION" is too old or unrecognized, must be at least Clang 5.0.2])
3745 AC_DEFINE_UNQUOTED(CLANG_VERSION,$CLANGVER)
3746 AC_DEFINE_UNQUOTED(CLANG_FULL_VERSION,$CLANG_FULL_VERSION)
3750 SHOWINCLUDES_PREFIX=
3751 if test "$_os" = WINNT; then
3752 dnl We need to guess the prefix of the -showIncludes output, it can be
3754 AC_MSG_CHECKING([the dependency generation prefix (cl.exe -showIncludes)])
3755 echo "#include <stdlib.h>" > conftest.c
3756 SHOWINCLUDES_PREFIX=`$CC_PLAIN $CFLAGS -c -showIncludes conftest.c 2>/dev/null | \
3757 grep 'stdlib\.h' | head -n1 | sed 's/ [[[:alpha:]]]:.*//'`
3758 rm -f conftest.c conftest.obj
3759 if test -z "$SHOWINCLUDES_PREFIX"; then
3760 AC_MSG_ERROR([cannot determine the -showIncludes prefix])
3762 AC_MSG_RESULT(["$SHOWINCLUDES_PREFIX"])
3765 AC_SUBST(SHOWINCLUDES_PREFIX)
3768 # prefix C with ccache if needed
3770 if test "$CCACHE" != ""; then
3771 AC_MSG_CHECKING([whether $CC_BASE is already ccached])
3775 CFLAGS="$CFLAGS --ccache-skip -O2"
3776 dnl an empty program will do, we're checking the compiler flags
3777 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],
3778 [use_ccache=yes], [use_ccache=no])
3779 if test $use_ccache = yes; then
3780 AC_MSG_RESULT([yes])
3783 CC_BASE="ccache $CC_BASE"
3790 # ===================================================================
3791 # check various GCC options that Clang does not support now but maybe
3792 # will somewhen in the future, check them even for GCC, so that the
3794 # ===================================================================
3797 if test "$GCC" = "yes"; then
3798 AC_MSG_CHECKING([whether $CC_BASE supports -ggdb2])
3800 CFLAGS="$CFLAGS -Werror -ggdb2"
3801 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[ return 0; ]])],[ HAVE_GCC_GGDB2=TRUE ],[])
3803 if test "$HAVE_GCC_GGDB2" = "TRUE"; then
3804 AC_MSG_RESULT([yes])
3809 if test "$host_cpu" = "m68k"; then
3810 AC_MSG_CHECKING([whether $CC_BASE supports -mlong-jump-table-offsets])
3812 CFLAGS="$CFLAGS -Werror -mlong-jump-table-offsets"
3813 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[ return 0; ]])],[ HAVE_GCC_LONG_JUMP_TABLE_OFFSETS=TRUE ],[])
3815 if test "$HAVE_GCC_LONG_JUMP_TABLE_OFFSETS" = "TRUE"; then
3816 AC_MSG_RESULT([yes])
3822 AC_SUBST(HAVE_GCC_GGDB2)
3824 dnl ===================================================================
3825 dnl Test the gcc version
3826 dnl ===================================================================
3827 if test "$GCC" = "yes" -a -z "$COM_IS_CLANG"; then
3828 AC_MSG_CHECKING([the GCC version])
3829 _gcc_version=`$CC -dumpversion`
3830 gcc_full_version=$(printf '%s' "$_gcc_version" | \
3831 $AWK -F. '{ print $1*10000+$2*100+(NF<3?1:$3) }')
3832 GCC_VERSION=`echo $_gcc_version | $AWK -F. '{ print \$1*100+\$2 }'`
3834 AC_MSG_RESULT([gcc $_gcc_version ($gcc_full_version)])
3836 if test "$gcc_full_version" -lt 70000; then
3837 AC_MSG_ERROR([GCC $_gcc_version is too old, must be at least GCC 7.0.0])
3840 # Explicitly force GCC_VERSION to be empty, even for Clang, to check incorrect uses.
3841 # GCC version should generally be checked only when handling GCC-specific bugs, for testing
3842 # things like features configure checks should be used, otherwise they may e.g. fail with Clang
3843 # (which reports itself as GCC 4.2.1).
3846 AC_SUBST(GCC_VERSION)
3848 dnl Set the ENABLE_DBGUTIL variable
3849 dnl ===================================================================
3850 AC_MSG_CHECKING([whether to build with additional debug utilities])
3851 if test -n "$enable_dbgutil" -a "$enable_dbgutil" != "no"; then
3852 ENABLE_DBGUTIL="TRUE"
3853 # this is an extra var so it can have different default on different MSVC
3854 # versions (in case there are version specific problems with it)
3855 MSVC_USE_DEBUG_RUNTIME="TRUE"
3857 AC_MSG_RESULT([yes])
3858 # cppunit and graphite expose STL in public headers
3859 if test "$with_system_cppunit" = "yes"; then
3860 AC_MSG_ERROR([--with-system-cppunit conflicts with --enable-dbgutil])
3862 with_system_cppunit=no
3864 if test "$with_system_graphite" = "yes"; then
3865 AC_MSG_ERROR([--with-system-graphite conflicts with --enable-dbgutil])
3867 with_system_graphite=no
3869 if test "$with_system_orcus" = "yes"; then
3870 AC_MSG_ERROR([--with-system-orcus conflicts with --enable-dbgutil])
3872 with_system_orcus=no
3874 if test "$with_system_libcmis" = "yes"; then
3875 AC_MSG_ERROR([--with-system-libcmis conflicts with --enable-dbgutil])
3877 with_system_libcmis=no
3879 if test "$with_system_hunspell" = "yes"; then
3880 AC_MSG_ERROR([--with-system-hunspell conflicts with --enable-dbgutil])
3882 with_system_hunspell=no
3884 if test "$with_system_gpgmepp" = "yes"; then
3885 AC_MSG_ERROR([--with-system-gpgmepp conflicts with --enable-dbgutil])
3887 with_system_gpgmepp=no
3889 # As mixing system libwps and non-system libnumbertext or vice versa likely causes trouble (see
3890 # 603074c5f2b84de8a24593faf807da784b040625 "Pass _GLIBCXX_DEBUG into external/libwps" and the
3891 # mail thread starting at <https://gcc.gnu.org/ml/gcc/2018-05/msg00057.html> "libstdc++: ODR
3892 # violation when using std::regex with and without -D_GLIBCXX_DEBUG"), simply make sure neither
3893 # of those two is using the system variant:
3894 if test "$with_system_libnumbertext" = "yes"; then
3895 AC_MSG_ERROR([--with-system-libnumbertext conflicts with --enable-dbgutil])
3897 with_system_libnumbertext=no
3899 if test "$with_system_libwps" = "yes"; then
3900 AC_MSG_ERROR([--with-system-libwps conflicts with --enable-dbgutil])
3902 with_system_libwps=no
3906 MSVC_USE_DEBUG_RUNTIME=""
3909 AC_SUBST(ENABLE_DBGUTIL)
3910 AC_SUBST(MSVC_USE_DEBUG_RUNTIME)
3912 dnl Set the ENABLE_DEBUG variable.
3913 dnl ===================================================================
3914 if test -n "$enable_debug" && test "$enable_debug" != "yes" && test "$enable_debug" != "no"; then
3915 AC_MSG_ERROR([--enable-debug now accepts only yes or no, use --enable-symbols])
3917 if test -n "$ENABLE_DBGUTIL" -a "$enable_debug" = "no"; then
3918 if test -z "$libo_fuzzed_enable_debug"; then
3919 AC_MSG_ERROR([--disable-debug cannot be used with --enable-dbgutil])
3921 AC_MSG_NOTICE([Resetting --enable-debug=yes])
3926 AC_MSG_CHECKING([whether to do a debug build])
3927 if test -n "$ENABLE_DBGUTIL" -o \( -n "$enable_debug" -a "$enable_debug" != "no" \) ; then
3929 if test -n "$ENABLE_DBGUTIL" ; then
3930 AC_MSG_RESULT([yes (dbgutil)])
3932 AC_MSG_RESULT([yes])
3938 AC_SUBST(ENABLE_DEBUG)
3940 dnl ===================================================================
3941 dnl Select the linker to use (gold/lld/ld.bfd).
3942 dnl This is done only after compiler checks (need to know if Clang is
3943 dnl used, for different defaults) and after checking if a debug build
3944 dnl is wanted (non-debug builds get the default linker if not explicitly
3945 dnl specified otherwise).
3946 dnl All checks for linker features/options should come after this.
3947 dnl ===================================================================
3951 use_ld_fail_if_error=$2
3953 AC_MSG_CHECKING([for -fuse-ld=$use_ld linker support])
3954 use_ld_ldflags_save="$LDFLAGS"
3955 LDFLAGS="$LDFLAGS -fuse-ld=$use_ld"
3956 AC_LINK_IFELSE([AC_LANG_PROGRAM([
3959 printf ("hello world\n");
3960 ])], USE_LD=$use_ld, [])
3961 if test -n "$USE_LD"; then
3962 AC_MSG_RESULT( yes )
3965 if test -n "$use_ld_fail_if_error"; then
3971 if test -n "$use_ld_ok"; then
3972 dnl keep the value of LDFLAGS
3975 LDFLAGS="$use_ld_ldflags_save"
3979 if test "$enable_ld" != "no"; then
3980 if test "$GCC" = "yes"; then
3981 if test -n "$enable_ld"; then
3982 check_use_ld "$enable_ld" fail_if_error
3983 elif test -z "$ENABLE_DEBUG$ENABLE_DBGUTIL"; then
3984 dnl non-debug builds default to the default linker
3986 elif test -n "$COM_IS_CLANG"; then
3988 if test $? -ne 0; then
3992 # For gcc first try gold, new versions also support lld.
3994 if test $? -ne 0; then
3998 ld_output=$(echo 'int main() { return 0; }' | $CC -Wl,-v -x c -o conftest.out - $CFLAGS $LDFLAGS 2>/dev/null)
4000 ld_used=$(echo "$ld_output" | grep -E '(^GNU gold|^GNU ld|^LLD)')
4001 if test -z "$ld_used"; then
4004 AC_MSG_CHECKING([for linker that is used])
4005 AC_MSG_RESULT([$ld_used])
4006 if test -n "$ENABLE_DEBUG$ENABLE_DBGUTIL"; then
4007 if echo "$ld_used" | grep -q "^GNU ld"; then
4008 AC_MSG_WARN([The default GNU linker is slow, consider using the LLD or the GNU gold linker.])
4009 add_warning "The default GNU linker is slow, consider using the LLD or the GNU gold linker."
4013 if test "$enable_ld" = "yes"; then
4014 AC_MSG_ERROR([--enable-ld not supported])
4020 HAVE_LD_BSYMBOLIC_FUNCTIONS=
4021 if test "$GCC" = "yes"; then
4022 AC_MSG_CHECKING([for -Bsymbolic-functions linker support])
4023 bsymbolic_functions_ldflags_save=$LDFLAGS
4024 LDFLAGS="$LDFLAGS -Wl,-Bsymbolic-functions"
4025 AC_LINK_IFELSE([AC_LANG_PROGRAM([
4028 printf ("hello world\n");
4029 ])], HAVE_LD_BSYMBOLIC_FUNCTIONS=TRUE, [])
4030 if test "$HAVE_LD_BSYMBOLIC_FUNCTIONS" = "TRUE"; then
4031 AC_MSG_RESULT( found )
4033 AC_MSG_RESULT( not found )
4035 LDFLAGS=$bsymbolic_functions_ldflags_save
4037 AC_SUBST(HAVE_LD_BSYMBOLIC_FUNCTIONS)
4040 if test "$GCC" = "yes"; then
4041 for flag in "--gc-sections" "-dead_strip"; do
4042 AC_MSG_CHECKING([for $flag linker support])
4043 ldflags_save=$LDFLAGS
4044 LDFLAGS="$LDFLAGS -Wl,$flag"
4045 AC_LINK_IFELSE([AC_LANG_PROGRAM([
4048 printf ("hello world\n");
4050 LD_GC_SECTIONS="-Wl,$flag"
4051 AC_MSG_RESULT( found )
4053 AC_MSG_RESULT( not found )
4055 LDFLAGS=$ldflags_save
4056 if test -n "$LD_GC_SECTIONS"; then
4061 AC_SUBST(LD_GC_SECTIONS)
4064 if test "$enable_split_debug" != no; then
4065 dnl Currently by default enabled only on Linux, feel free to set test_split_debug above also for other platforms.
4066 if test "$enable_split_debug" = yes -o \( "$test_split_debug" = "yes" -a -n "$ENABLE_DEBUG$ENABLE_DBGUTIL" \); then
4067 AC_MSG_CHECKING([whether $CC_BASE supports -gsplit-dwarf])
4069 CFLAGS="$CFLAGS -Werror -gsplit-dwarf"
4070 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[ return 0; ]])],[ HAVE_GCC_SPLIT_DWARF=TRUE ],[])
4072 if test "$HAVE_GCC_SPLIT_DWARF" = "TRUE"; then
4073 AC_MSG_RESULT([yes])
4075 if test "$enable_split_debug" = yes; then
4082 if test -z "$HAVE_GCC_SPLIT_DWARF" -a "$test_split_debug" = "yes" -a -n "$ENABLE_DEBUG$ENABLE_DBGUTIL"; then
4083 AC_MSG_WARN([Compiler is not capable of creating split debug info, linking will require more time and disk space.])
4084 add_warning "Compiler is not capable of creating split debug info, linking will require more time and disk space."
4087 AC_SUBST(HAVE_GCC_SPLIT_DWARF)
4090 if test "$enable_gdb_index" != "no"; then
4091 dnl Currently by default enabled only on Linux, feel free to set test_gdb_index above also for other platforms.
4092 if test "$enable_gdb_index" = yes -o \( "$test_gdb_index" = "yes" -o -n "$ENABLE_DEBUG$ENABLE_DBGUTIL" \); then
4093 AC_MSG_CHECKING([whether $CC_BASE supports -ggnu-pubnames])
4095 CFLAGS="$CFLAGS -Werror -ggnu-pubnames"
4097 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[ return 0; ]])],[have_ggnu_pubnames=TRUE],[have_ggnu_pubnames=])
4098 if test "$have_ggnu_pubnames" != "TRUE"; then
4099 if test "$enable_gdb_index" = "yes"; then
4100 AC_MSG_ERROR( no, --enable-gdb-index not supported )
4105 AC_MSG_RESULT( yes )
4106 AC_MSG_CHECKING([whether $CC_BASE supports -Wl,--gdb-index])
4107 ldflags_save=$LDFLAGS
4108 LDFLAGS="$LDFLAGS -Wl,--gdb-index"
4109 AC_LINK_IFELSE([AC_LANG_PROGRAM([
4112 printf ("hello world\n");
4113 ])], ENABLE_GDB_INDEX=TRUE, [])
4114 if test "$ENABLE_GDB_INDEX" = "TRUE"; then
4115 AC_MSG_RESULT( yes )
4117 if test "$enable_gdb_index" = "yes"; then
4123 LDFLAGS=$ldflags_save
4127 if test -z "$ENABLE_GDB_INDEX" -a "$test_gdb_index" = "yes" -a -n "$ENABLE_DEBUG$ENABLE_DBGUTIL"; then
4128 AC_MSG_WARN([Linker is not capable of creating gdb index, debugger startup will be slow.])
4129 add_warning "Linker is not capable of creating gdb index, debugger startup will be slow."
4132 AC_SUBST(ENABLE_GDB_INDEX)
4134 if test "$enable_sal_log" = yes; then
4137 AC_SUBST(ENABLE_SAL_LOG)
4139 dnl Check for enable symbols option
4140 dnl ===================================================================
4141 AC_MSG_CHECKING([whether to generate debug information])
4142 if test -z "$enable_symbols"; then
4143 if test -n "$ENABLE_DEBUG$ENABLE_DBGUTIL"; then
4149 if test "$enable_symbols" = yes; then
4150 ENABLE_SYMBOLS_FOR=all
4151 AC_MSG_RESULT([yes])
4152 elif test "$enable_symbols" = no; then
4156 # Selective debuginfo.
4157 ENABLE_SYMBOLS_FOR="$enable_symbols"
4158 AC_MSG_RESULT([for "$enable_symbols"])
4160 AC_SUBST(ENABLE_SYMBOLS_FOR)
4162 if test -n "$with_android_ndk" -a \( -n "$ENABLE_SYMBOLS" -o -n "$ENABLE_DEBUG" -o -n "$ENABLE_DBGUTIL" \) -a "$ENABLE_DEBUGINFO_FOR" = "all"; then
4163 # Building on Android with full symbols: without enough memory the linker never finishes currently.
4164 AC_MSG_CHECKING([whether enough memory is available for linking])
4165 mem_size=$(grep -o 'MemTotal: *.\+ kB' /proc/meminfo | sed 's/MemTotal: *\(.\+\) kB/\1/')
4166 # Check for 15GB, as Linux reports a bit less than the physical memory size.
4167 if test -n "$mem_size" -a $mem_size -lt 15728640; then
4168 AC_MSG_ERROR([building with full symbols and less than 16GB of memory is not supported])
4170 AC_MSG_RESULT([yes])
4175 ENABLE_OPTIMIZED_DEBUG=
4176 AC_MSG_CHECKING([whether to compile with optimization flags])
4177 if test -z "$enable_optimized"; then
4178 if test -n "$ENABLE_DEBUG$ENABLE_DBGUTIL"; then
4181 enable_optimized=yes
4184 if test "$enable_optimized" = yes; then
4185 ENABLE_OPTIMIZED=TRUE
4186 AC_MSG_RESULT([yes])
4187 elif test "$enable_optimized" = debug; then
4188 ENABLE_OPTIMIZED_DEBUG=TRUE
4189 AC_MSG_RESULT([yes (debug)])
4191 if test "$GCC" = "yes"; then
4192 AC_MSG_CHECKING([whether $CC_BASE supports -Og])
4194 CFLAGS="$CFLAGS -Werror -Og"
4195 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[ return 0; ]])],[ HAVE_GCC_OG=TRUE ],[])
4197 if test "$HAVE_GCC_OG" = "TRUE"; then
4198 AC_MSG_RESULT([yes])
4203 if test -z "$HAVE_GCC_OG"; then
4204 AC_MSG_ERROR([The compiler does not support optimizations suitable for debugging.])
4209 AC_SUBST(ENABLE_OPTIMIZED)
4210 AC_SUBST(ENABLE_OPTIMIZED_DEBUG)
4213 # determine CPUNAME, OS, ...
4214 # The USING_X11 flag tells whether the host os uses X by default. Can be overridden with the --without-x option.
4225 PLATFORMID=aix_powerpc
4234 if test "$GNUMAKE_WIN_NATIVE" = "TRUE" ; then
4241 if test "$BITNESS_OVERRIDE" = 64; then
4244 PLATFORMID=windows_x86_64
4246 SCPDEFS="$SCPDEFS -DWINDOWS_X64"
4250 PLATFORMID=windows_x86
4254 AC_MSG_ERROR([Unsupported host_cpu $host_cpu for host_os $host_os])
4257 SCPDEFS="$SCPDEFS -D_MSC_VER"
4269 AC_MSG_ERROR([Can't build 32-bit code for iOS])
4274 if test "$enable_ios_simulator" = "yes"; then
4275 AC_MSG_ERROR([iOS simulator is only available in OSX not iOS])
4279 PLATFORMID=ios_arm64
4283 AC_MSG_ERROR([Can't build 64-bit code in 32-bit OS])
4286 if test "$enable_ios_simulator" = "yes"; then
4291 PLATFORMID=macosx_x86_64
4294 AC_MSG_ERROR([Unsupported host_cpu $host_cpu for host_os $host_os])
4310 PLATFORMID=dragonfly_x86
4315 PLATFORMID=dragonfly_x86_64
4318 AC_MSG_ERROR([Unsupported host_cpu $host_cpu for host_os $host_os])
4334 PLATFORMID=freebsd_x86
4339 PLATFORMID=freebsd_x86_64
4342 AC_MSG_ERROR([Unsupported host_cpu $host_cpu for host_os $host_os])
4359 PLATFORMID=haiku_x86
4364 PLATFORMID=haiku_x86_64
4367 AC_MSG_ERROR([Unsupported host_cpu $host_cpu for host_os $host_os])
4384 PLATFORMID=kfreebsd_x86
4389 PLATFORMID=kfreebsd_x86_64
4392 AC_MSG_ERROR([Unsupported host_cpu $host_cpu for host_os $host_os])
4408 PLATFORMID=linux_aarch64
4414 PLATFORMID=linux_alpha
4420 PLATFORMID=linux_arm_eabi
4424 PLATFORMID=linux_arm_oabi
4432 PLATFORMID=linux_hppa
4437 PLATFORMID=linux_x86
4442 PLATFORMID=linux_ia64
4448 PLATFORMID=linux_mips_eb
4453 EPM_FLAGS="-a mips64"
4454 PLATFORMID=linux_mips64_eb
4459 EPM_FLAGS="-a mips64el"
4460 PLATFORMID=linux_mips64_el
4465 EPM_FLAGS="-a mipsel"
4466 PLATFORMID=linux_mips_el
4471 PLATFORMID=linux_m68k
4476 PLATFORMID=linux_powerpc
4481 PLATFORMID=linux_powerpc64
4485 RTL_ARCH=PowerPC_64_LE
4486 PLATFORMID=linux_powerpc64_le
4491 PLATFORMID=linux_sparc
4496 PLATFORMID=linux_sparc64
4501 PLATFORMID=linux_s390
4506 PLATFORMID=linux_s390x
4511 PLATFORMID=linux_x86_64
4514 AC_MSG_ERROR([Unsupported host_cpu $host_cpu for host_os $host_os])
4531 PLATFORMID=android_arm_eabi
4536 PLATFORMID=android_aarch64
4541 PLATFORMID=android_x86
4546 PLATFORMID=android_x86_64
4549 AC_MSG_ERROR([Unsupported host_cpu $host_cpu for host_os $host_os])
4565 PLATFORMID=netbsd_x86
4570 PLATFORMID=netbsd_powerpc
4575 PLATFORMID=netbsd_sparc
4580 PLATFORMID=netbsd_x86_64
4583 AC_MSG_ERROR([Unsupported host_cpu $host_cpu for host_os $host_os])
4599 PLATFORMID=openbsd_x86
4604 PLATFORMID=openbsd_x86_64
4607 AC_MSG_ERROR([Unsupported host_cpu $host_cpu for host_os $host_os])
4610 SOLARINC="$SOLARINC -I/usr/local/include"
4624 PLATFORMID=solaris_x86
4629 PLATFORMID=solaris_sparc
4634 PLATFORMID=solaris_sparc64
4637 AC_MSG_ERROR([Unsupported host_cpu $host_cpu for host_os $host_os])
4640 SOLARINC="$SOLARINC -I/usr/local/include"
4644 AC_MSG_ERROR([$host_os operating system is not suitable to build LibreOffice for!])
4648 if test "$with_x" = "no"; then
4649 AC_MSG_ERROR([Use --disable-gui instead. How can we get rid of this option? No idea where it comes from.])
4653 if test "$enable_gui" = "no"; then
4654 if test "$USING_X11" != TRUE; then
4655 AC_MSG_ERROR([$host_os operating system is not suitable to build LibreOffice with --disable-gui.])
4659 AC_DEFINE(HAVE_FEATURE_UI,0)
4662 AC_SUBST(DISABLE_GUI)
4664 WORKDIR="${BUILDDIR}/workdir"
4665 INSTDIR="${BUILDDIR}/instdir"
4666 INSTROOTBASE=${INSTDIR}${INSTROOTBASESUFFIX}
4667 INSTROOT=${INSTROOTBASE}${INSTROOTCONTENTSUFFIX}
4668 SOLARINC="-I$SRC_ROOT/include $SOLARINC"
4676 AC_SUBST([INSTROOT])
4677 AC_SUBST([INSTROOTBASE])
4681 AC_SUBST(PLATFORMID)
4682 AC_SUBST(WINDOWS_X64)
4683 AC_DEFINE_UNQUOTED(WORKDIR,"$WORKDIR")
4685 dnl ===================================================================
4686 dnl Test which package format to use
4687 dnl ===================================================================
4688 AC_MSG_CHECKING([which package format to use])
4689 if test -n "$with_package_format" -a "$with_package_format" != no; then
4690 for i in $with_package_format; do
4692 aix | bsd | deb | pkg | rpm | archive | dmg | installed | msi)
4695 AC_MSG_ERROR([unsupported format $i. Supported by EPM are:
4696 aix - AIX software distribution
4697 bsd - FreeBSD, NetBSD, or OpenBSD software distribution
4698 deb - Debian software distribution
4699 pkg - Solaris software distribution
4700 rpm - RedHat software distribution
4702 LibreOffice additionally supports:
4703 archive - .tar.gz or .zip
4705 installed - installation tree
4711 # fakeroot is needed to ensure correct file ownerships/permissions
4712 # inside deb packages and tar archives created on Linux and Solaris.
4713 if test "$OS" = "LINUX" || test "$OS" = "SOLARIS"; then
4714 AC_PATH_PROG(FAKEROOT, fakeroot, no)
4715 if test "$FAKEROOT" = "no"; then
4717 [--with-package-format='$with_package_format' requires fakeroot. Install fakeroot.])
4720 PKGFORMAT="$with_package_format"
4721 AC_MSG_RESULT([$PKGFORMAT])
4724 AC_MSG_RESULT([none])
4728 dnl ===================================================================
4729 dnl Set up a different compiler to produce tools to run on the build
4730 dnl machine when doing cross-compilation
4731 dnl ===================================================================
4733 m4_pattern_allow([PKG_CONFIG_FOR_BUILD])
4734 m4_pattern_allow([PKG_CONFIG_LIBDIR])
4735 if test "$cross_compiling" = "yes"; then
4736 AC_MSG_CHECKING([for BUILD platform configuration])
4738 rm -rf CONF-FOR-BUILD config_build.mk
4739 mkdir CONF-FOR-BUILD
4740 # Here must be listed all files needed when running the configure script. In particular, also
4741 # those expanded by the AC_CONFIG_FILES() call near the end of this configure.ac. For clarity,
4742 # keep them in the same order as there.
4743 (cd $SRC_ROOT && tar cf - \
4745 bin/get_config_variables \
4746 solenv/bin/getcompver.awk \
4747 solenv/inc/langlist.mk \
4750 config_host_lang.mk.in \
4752 bin/bffvalidator.sh.in \
4753 bin/odfvalidator.sh.in \
4754 bin/officeotron.sh.in \
4755 instsetoo_native/util/openoffice.lst.in \
4757 sysui/desktop/macosx/Info.plist.in) \
4758 | (cd CONF-FOR-BUILD && tar xf -)
4759 cp configure CONF-FOR-BUILD
4760 test -d config_build && cp -p config_build/*.h CONF-FOR-BUILD/config_host 2>/dev/null
4762 unset COM USING_X11 OS CPUNAME
4763 unset CC CXX SYSBASE CFLAGS
4764 unset AR NM OBJDUMP PKG_CONFIG RANLIB READELF STRIP
4765 unset CPPUNIT_CFLAGS CPPUNIT_LIBS
4766 unset LIBXML_CFLAGS LIBXML_LIBS LIBXSLT_CFLAGS LIBXSLT_LIBS XSLTPROC PKG_CONFIG_LIBDIR
4767 if test -n "$CC_FOR_BUILD"; then
4768 export CC="$CC_FOR_BUILD"
4769 CC_BASE=`first_arg_basename "$CC"`
4771 if test -n "$CXX_FOR_BUILD"; then
4772 export CXX="$CXX_FOR_BUILD"
4773 CXX_BASE=`first_arg_basename "$CXX"`
4775 test -n "$PKG_CONFIG_FOR_BUILD" && export PKG_CONFIG="$PKG_CONFIG_FOR_BUILD"
4778 test -n "$enable_ccache" && sub_conf_opts="$sub_conf_opts --enable-ccache=$enable_ccache"
4779 test -n "$with_ant_home" && sub_conf_opts="$sub_conf_opts --with-ant-home=$with_ant_home"
4780 test $with_junit = no && sub_conf_opts="$sub_conf_opts --without-junit"
4781 test -n "$TARFILE_LOCATION" && sub_conf_opts="$sub_conf_opts --with-external-tar=$TARFILE_LOCATION"
4782 test "$with_system_icu_for_build" = "yes" -o "$with_system_icu_for_build" = "force" && sub_conf_opts="$sub_conf_opts --with-system-icu"
4783 test "$build_for_ios" = "YES" && sub_conf_opts="$sub_conf_opts build_for_ios=YES"
4784 sub_conf_opts="$sub_conf_opts $with_build_platform_configure_options"
4785 # Don't bother having configure look for stuff not needed for the build platform anyway
4788 --disable-gstreamer-1-0 \
4791 --disable-pdfimport \
4792 --disable-postgresql-sdbc \
4793 --enable-icecream="$enable_icecream" \
4794 --with-parallelism="$with_parallelism" \
4799 2>&1 | sed -e 's/^/ /'
4800 test -f ./config_host.mk 2>/dev/null || exit
4801 cp config_host.mk ../config_build.mk
4802 cp config_host_lang.mk ../config_build_lang.mk
4803 mv config.log ../config.Build.log
4804 mkdir -p ../config_build
4805 mv config_host/*.h ../config_build
4806 . ./bin/get_config_variables CC CXX INSTDIR INSTROOT LIBO_BIN_FOLDER LIBO_LIB_FOLDER LIBO_URE_LIB_FOLDER LIBO_URE_MISC_FOLDER OS PATH SDKDIRNAME SYSTEM_LIBXML SYSTEM_LIBXSLT WORKDIR
4808 for V in CC CXX LIBO_BIN_FOLDER LIBO_LIB_FOLDER LIBO_URE_LIB_FOLDER LIBO_URE_MISC_FOLDER OS SDKDIRNAME SYSTEM_LIBXML SYSTEM_LIBXSLT; do
4810 VV=`eval "echo $VV"`
4811 if test -n "$VV"; then
4812 line=${V}_FOR_BUILD='${'${V}_FOR_BUILD:-$VV'}'
4813 echo "$line" >>build-config
4817 for V in INSTDIR INSTROOT WORKDIR; do
4819 VV=`eval "echo $VV"`
4820 VV=`echo $VV | sed -e "s,/CONF-FOR-BUILD/\([[a-z]]*\),/\1_for_build,g"`
4821 if test -n "$VV"; then
4822 line="${V}_FOR_BUILD='$VV'"
4823 echo "$line" >>build-config
4827 line=`echo "LO_PATH_FOR_BUILD=$PATH" | sed -e 's,/CONF-FOR-BUILD,,g'`
4828 echo "$line" >>build-config
4831 test -f CONF-FOR-BUILD/build-config || AC_MSG_ERROR([Running configure script for BUILD system failed, see CONF-FOR-BUILD/config.log])
4832 test -f config_build.mk || AC_MSG_ERROR([A file called config_build.mk was supposed to have been copied here, but it isn't found])
4833 perl -pi -e 's,/(workdir|instdir)(/|$),/\1_for_build\2,g;' \
4834 -e 's,/CONF-FOR-BUILD,,g;' config_build.mk
4836 eval `cat CONF-FOR-BUILD/build-config`
4838 AC_MSG_RESULT([checking for BUILD platform configuration... done])
4840 rm -rf CONF-FOR-BUILD
4844 CXX_FOR_BUILD="$CXX"
4845 INSTDIR_FOR_BUILD="$INSTDIR"
4846 INSTROOT_FOR_BUILD="$INSTROOT"
4847 LIBO_BIN_FOLDER_FOR_BUILD="$LIBO_BIN_FOLDER"
4848 LIBO_LIB_FOLDER_FOR_BUILD="$LIBO_LIB_FOLDER"
4849 LIBO_URE_LIB_FOLDER_FOR_BUILD="$LIBO_URE_LIB_FOLDER"
4850 LIBO_URE_MISC_FOLDER_FOR_BUILD="$LIBO_URE_MISC_FOLDER"
4851 SDKDIRNAME_FOR_BUILD="$SDKDIRNAME"
4852 WORKDIR_FOR_BUILD="$WORKDIR"
4854 AC_SUBST(OS_FOR_BUILD)
4855 AC_SUBST(INSTDIR_FOR_BUILD)
4856 AC_SUBST(INSTROOT_FOR_BUILD)
4857 AC_SUBST(LIBO_BIN_FOLDER_FOR_BUILD)
4858 AC_SUBST(LIBO_LIB_FOLDER_FOR_BUILD)
4859 AC_SUBST(LIBO_URE_LIB_FOLDER_FOR_BUILD)
4860 AC_SUBST(LIBO_URE_MISC_FOLDER_FOR_BUILD)
4861 AC_SUBST(SDKDIRNAME_FOR_BUILD)
4862 AC_SUBST(WORKDIR_FOR_BUILD)
4864 dnl ===================================================================
4865 dnl Check for syslog header
4866 dnl ===================================================================
4867 AC_CHECK_HEADER(syslog.h, AC_DEFINE(HAVE_SYSLOG_H))
4869 dnl Set the ENABLE_WERROR variable. (Activate --enable-werror)
4870 dnl ===================================================================
4871 AC_MSG_CHECKING([whether to turn warnings to errors])
4872 if test -n "$enable_werror" -a "$enable_werror" != "no"; then
4873 ENABLE_WERROR="TRUE"
4874 AC_MSG_RESULT([yes])
4876 if test -n "$LODE_HOME" -a -z "$enable_werror"; then
4877 ENABLE_WERROR="TRUE"
4878 AC_MSG_RESULT([yes])
4883 AC_SUBST(ENABLE_WERROR)
4885 dnl Check for --enable-assert-always-abort, set ASSERT_ALWAYS_ABORT
4886 dnl ===================================================================
4887 AC_MSG_CHECKING([whether to have assert() failures abort even without --enable-debug])
4888 if test -z "$enable_assert_always_abort"; then
4889 if test "$ENABLE_DEBUG" = TRUE; then
4890 enable_assert_always_abort=yes
4892 enable_assert_always_abort=no
4895 if test "$enable_assert_always_abort" = "yes"; then
4896 ASSERT_ALWAYS_ABORT="TRUE"
4897 AC_MSG_RESULT([yes])
4899 ASSERT_ALWAYS_ABORT="FALSE"
4902 AC_SUBST(ASSERT_ALWAYS_ABORT)
4904 # Determine whether to use ooenv for the instdir installation
4905 # ===================================================================
4906 if test $_os != "WINNT" -a $_os != "Darwin"; then
4907 AC_MSG_CHECKING([whether to use ooenv for the instdir installation])
4908 if test "$enable_ooenv" = "no"; then
4912 AC_MSG_RESULT([yes])
4915 AC_SUBST(ENABLE_OOENV)
4917 if test "$USING_X11" != TRUE; then
4918 # be sure to do not mess with unneeded stuff
4923 build_gstreamer_1_0=no
4927 enable_cairo_canvas=no
4930 if test "$OS" = "HAIKU"; then
4931 enable_cairo_canvas=yes
4935 if test "$test_kf5" = "yes" -a "$enable_kde5" = "yes"; then
4936 AC_MSG_WARN([The kde5 VCL plugin was renamed to kf5. Please update your configuration to use --enable-kf5, as --enable-kde5 will be removed after the next major release!])
4937 add_warning "The kde5 VCL plugin was renamed to kf5. Please update your configuration to use --enable-kf5, as --enable-kde5 will be removed after the next major release!"
4941 if test "$test_kf5" = "yes"; then
4945 if test "$test_kf5" = "yes" -a "$enable_kf5" = "yes"; then
4946 if test "$enable_qt5" = "no"; then
4947 AC_MSG_ERROR([KF5 support depends on QT5, so it conflicts with --disable-qt5])
4953 dnl ===================================================================
4954 dnl check for cups support
4955 dnl ===================================================================
4958 if test "$enable_cups" = "no"; then
4962 AC_MSG_CHECKING([whether to enable CUPS support])
4963 if test "$test_cups" = "yes"; then
4965 AC_MSG_RESULT([yes])
4967 AC_MSG_CHECKING([whether cups support is present])
4968 AC_CHECK_LIB([cups], [cupsPrintFiles], [:])
4969 AC_CHECK_HEADER(cups/cups.h, AC_DEFINE(HAVE_CUPS_H))
4970 if test "$ac_cv_lib_cups_cupsPrintFiles" != "yes" -o "$ac_cv_header_cups_cups_h" != "yes"; then
4971 AC_MSG_ERROR([Could not find CUPS. Install libcups2-dev or cups-devel.])
4978 AC_SUBST(ENABLE_CUPS)
4981 if test "$test_fontconfig" = "yes"; then
4982 PKG_CHECK_MODULES([FONTCONFIG], [fontconfig >= 2.4.1])
4983 SYSTEM_FONTCONFIG=TRUE
4984 FilterLibs "${FONTCONFIG_LIBS}"
4985 FONTCONFIG_LIBS="${filteredlibs}"
4987 AC_SUBST(FONTCONFIG_CFLAGS)
4988 AC_SUBST(FONTCONFIG_LIBS)
4989 AC_SUBST([SYSTEM_FONTCONFIG])
4991 dnl whether to find & fetch external tarballs?
4992 dnl ===================================================================
4993 if test -z "$TARFILE_LOCATION" -a -n "$LODE_HOME" ; then
4994 if test "$GNUMAKE_WIN_NATIVE" = "TRUE" ; then
4995 TARFILE_LOCATION="`cygpath -m $LODE_HOME/ext_tar`"
4997 TARFILE_LOCATION="$LODE_HOME/ext_tar"
5000 if test -z "$TARFILE_LOCATION"; then
5001 if test -d "$SRC_ROOT/src" ; then
5002 mv "$SRC_ROOT/src" "$SRC_ROOT/external/tarballs"
5003 ln -s "$SRC_ROOT/external/tarballs" "$SRC_ROOT/src"
5005 TARFILE_LOCATION="$SRC_ROOT/external/tarballs"
5007 AbsolutePath "$TARFILE_LOCATION"
5008 PathFormat "${absolute_path}"
5009 TARFILE_LOCATION="${formatted_path}"
5011 AC_SUBST(TARFILE_LOCATION)
5013 AC_MSG_CHECKING([whether we want to fetch tarballs])
5014 if test "$enable_fetch_external" != "no"; then
5015 if test "$with_all_tarballs" = "yes"; then
5016 AC_MSG_RESULT([yes, all of them])
5017 DO_FETCH_TARBALLS="ALL"
5019 AC_MSG_RESULT([yes, if we use them])
5020 DO_FETCH_TARBALLS="TRUE"
5026 AC_SUBST(DO_FETCH_TARBALLS)
5028 AC_MSG_CHECKING([whether to build help])
5029 if test -n "$with_help" -a "$with_help" != "no" -a $_os != iOS -a $_os != Android; then
5030 BUILD_TYPE="$BUILD_TYPE HELP"
5031 GIT_NEEDED_SUBMODULES="helpcontent2 $GIT_NEEDED_SUBMODULES"
5032 case "$with_help" in
5034 ENABLE_HTMLHELP=TRUE
5035 SCPDEFS="$SCPDEFS -DWITH_HELP"
5036 AC_MSG_RESULT([HTML])
5039 ENABLE_HTMLHELP=TRUE
5041 AC_MSG_RESULT([HTML])
5044 SCPDEFS="$SCPDEFS -DWITH_HELP"
5045 AC_MSG_RESULT([yes])
5048 AC_MSG_ERROR([Unknown --with-help=$with_help])
5054 AC_SUBST([ENABLE_HTMLHELP])
5055 AC_SUBST([HELP_ONLINE])
5057 AC_MSG_CHECKING([whether to enable xapian-omega support for help])
5058 if test -n "$with_omindex" -a "$with_omindex" != "no" -a $_os != iOS -a $_os != Android; then
5059 BUILD_TYPE="$BUILD_TYPE HELP"
5060 GIT_NEEDED_SUBMODULES="helpcontent2 $GIT_NEEDED_SUBMODULES"
5061 case "$with_omindex" in
5063 ENABLE_HTMLHELP=TRUE
5065 HELP_OMINDEX_PAGE=TRUE
5066 AC_MSG_RESULT([SERVER])
5069 ENABLE_HTMLHELP=TRUE
5071 HELP_OMINDEX_PAGE=FALSE
5072 AC_MSG_RESULT([NOXAP])
5075 AC_MSG_ERROR([Unknown --with-omindex=$with_omindex])
5079 HELP_OMINDEX_PAGE=FALSE
5082 AC_SUBST([ENABLE_HTMLHELP])
5083 AC_SUBST([HELP_OMINDEX_PAGE])
5084 AC_SUBST([HELP_ONLINE])
5087 dnl Test whether to include MySpell dictionaries
5088 dnl ===================================================================
5089 AC_MSG_CHECKING([whether to include MySpell dictionaries])
5090 if test "$with_myspell_dicts" = "yes"; then
5091 AC_MSG_RESULT([yes])
5092 WITH_MYSPELL_DICTS=TRUE
5093 BUILD_TYPE="$BUILD_TYPE DICTIONARIES"
5094 GIT_NEEDED_SUBMODULES="dictionaries $GIT_NEEDED_SUBMODULES"
5099 AC_SUBST(WITH_MYSPELL_DICTS)
5101 # There are no "system" myspell, hyphen or mythes dictionaries on macOS, Windows, Android or iOS.
5102 if test $_os = Darwin -o $_os = WINNT -o $_os = iOS -o $_os = Android; then
5103 if test "$with_system_dicts" = yes; then
5104 AC_MSG_ERROR([There are no system dicts on this OS in the formats the 3rd-party libs we use expect]);
5106 with_system_dicts=no
5109 AC_MSG_CHECKING([whether to use dicts from external paths])
5110 if test -z "$with_system_dicts" -o "$with_system_dicts" != "no"; then
5111 AC_MSG_RESULT([yes])
5113 AC_MSG_CHECKING([for spelling dictionary directory])
5114 if test -n "$with_external_dict_dir"; then
5115 DICT_SYSTEM_DIR=file://$with_external_dict_dir
5117 DICT_SYSTEM_DIR=file:///usr/share/hunspell
5118 if test ! -d /usr/share/hunspell -a -d /usr/share/myspell; then
5119 DICT_SYSTEM_DIR=file:///usr/share/myspell
5122 AC_MSG_RESULT([$DICT_SYSTEM_DIR])
5123 AC_MSG_CHECKING([for hyphenation patterns directory])
5124 if test -n "$with_external_hyph_dir"; then
5125 HYPH_SYSTEM_DIR=file://$with_external_hyph_dir
5127 HYPH_SYSTEM_DIR=file:///usr/share/hyphen
5129 AC_MSG_RESULT([$HYPH_SYSTEM_DIR])
5130 AC_MSG_CHECKING([for thesaurus directory])
5131 if test -n "$with_external_thes_dir"; then
5132 THES_SYSTEM_DIR=file://$with_external_thes_dir
5134 THES_SYSTEM_DIR=file:///usr/share/mythes
5136 AC_MSG_RESULT([$THES_SYSTEM_DIR])
5141 AC_SUBST(SYSTEM_DICTS)
5142 AC_SUBST(DICT_SYSTEM_DIR)
5143 AC_SUBST(HYPH_SYSTEM_DIR)
5144 AC_SUBST(THES_SYSTEM_DIR)
5146 dnl ===================================================================
5147 dnl Precompiled headers.
5149 AC_MSG_CHECKING([whether to enable pch feature])
5150 if test -z "$enable_pch"; then
5151 if test "$_os" = "WINNT"; then
5152 # Enabled by default on Windows.
5158 if test "$enable_pch" != "no" -a "$_os" != "WINNT" -a "$GCC" != "yes" ; then
5159 AC_MSG_ERROR([Precompiled header not yet supported for your platform/compiler])
5161 if test "$enable_pch" = "system"; then
5163 AC_MSG_RESULT([yes (system headers)])
5164 elif test "$enable_pch" = "base"; then
5166 AC_MSG_RESULT([yes (system and base headers)])
5167 elif test "$enable_pch" = "normal"; then
5169 AC_MSG_RESULT([yes (normal)])
5170 elif test "$enable_pch" = "full"; then
5172 AC_MSG_RESULT([yes (full)])
5173 elif test "$enable_pch" = "yes"; then
5174 # Pick a suitable default.
5175 if test "$GCC" = "yes"; then
5176 # With Clang and GCC higher levels do not seem to make a noticeable improvement,
5177 # while making the PCHs larger and rebuilds more likely.
5179 AC_MSG_RESULT([yes (system and base headers)])
5181 # With MSVC the highest level makes a significant difference,
5182 # and it was the default when there used to be no PCH levels.
5184 AC_MSG_RESULT([yes (full)])
5186 elif test "$enable_pch" = "no"; then
5189 AC_MSG_ERROR([Unknown value for --enable-pch])
5191 AC_SUBST(ENABLE_PCH)
5192 # ccache 3.7.1 and older do not properly detect/handle -include .gch in CCACHE_DEPEND mode
5193 if test -n "$ENABLE_PCH" -a -n "$CCACHE_DEPEND_MODE" -a "$GCC" = "yes" -a "$COM_IS_CLANG" != "TRUE"; then
5194 AC_PATH_PROG([CCACHE_BIN],[ccache],[not found])
5195 if test "$CCACHE_BIN" != "not found"; then
5196 AC_MSG_CHECKING([ccache version])
5197 CCACHE_VERSION=`"$CCACHE_BIN" -V | "$AWK" '/^ccache version/{print $3}'`
5198 CCACHE_NUMVER=`echo $CCACHE_VERSION | $AWK -F. '{ print \$1*10000+\$2*100+\$3 }'`
5199 AC_MSG_RESULT([$CCACHE_VERSION])
5200 AC_MSG_CHECKING([whether ccache depend mode works properly with GCC PCH])
5201 if test "$CCACHE_NUMVER" -gt "030701"; then
5202 AC_MSG_RESULT([yes])
5204 AC_MSG_RESULT([no (not newer than 3.7.1)])
5210 BUILDING_PCH_WITH_OBJ=
5211 if test -n "$ENABLE_PCH"; then
5212 AC_MSG_CHECKING([whether $CC supports -Xclang -building-pch-with-obj])
5214 CFLAGS="$CFLAGS -Werror -Xclang -building-pch-with-obj"
5215 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[ return 0; ]])],[ BUILDING_PCH_WITH_OBJ="-Xclang -building-pch-with-obj" ],[])
5217 if test -n "$BUILDING_PCH_WITH_OBJ"; then
5223 AC_SUBST(BUILDING_PCH_WITH_OBJ)
5225 PCH_MODULES_CODEGEN=
5226 if test -n "$BUILDING_PCH_WITH_OBJ"; then
5227 AC_MSG_CHECKING([whether $CC supports -Xclang -fmodules-codegen])
5229 CFLAGS="$CFLAGS -Werror -Xclang -fmodules-codegen"
5230 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[ return 0; ]])],[ PCH_MODULES_CODEGEN="-Xclang -fmodules-codegen" ],[])
5232 if test -n "$PCH_MODULES_CODEGEN"; then
5239 AC_SUBST(PCH_MODULES_CODEGEN)
5240 PCH_MODULES_DEBUGINFO=
5241 if test -n "$BUILDING_PCH_WITH_OBJ"; then
5242 AC_MSG_CHECKING([whether $CC supports -Xclang -fmodules-debuginfo])
5244 CFLAGS="$CFLAGS -Werror -Xclang -fmodules-debuginfo"
5245 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[ return 0; ]])],[ PCH_MODULES_DEBUGINFO="-Xclang -fmodules-debuginfo" ],[])
5247 if test -n "$PCH_MODULES_DEBUGINFO"; then
5254 AC_SUBST(PCH_MODULES_DEBUGINFO)
5258 AC_MSG_CHECKING([the GNU Make version])
5259 _make_version=`$GNUMAKE --version | grep GNU | $GREP -v GPL | $SED -e 's@^[[^0-9]]*@@' -e 's@ .*@@' -e 's@,.*@@'`
5260 _make_longver=`echo $_make_version | $AWK -F. '{ print \$1*10000+\$2*100+\$3 }'`
5261 if test "$_make_longver" -ge "038200"; then
5262 AC_MSG_RESULT([$GNUMAKE $_make_version])
5264 elif test "$_make_longver" -ge "038100"; then
5265 if test "$build_os" = "cygwin"; then
5266 AC_MSG_ERROR([failed ($GNUMAKE version >= 3.82 needed])
5268 AC_MSG_RESULT([$GNUMAKE $_make_version])
5270 dnl ===================================================================
5271 dnl Search all the common names for sha1sum
5272 dnl ===================================================================
5273 AC_CHECK_PROGS(SHA1SUM, sha1sum sha1 shasum openssl)
5274 if test -z "$SHA1SUM"; then
5275 AC_MSG_ERROR([install the appropriate SHA-1 checksumming program for this OS])
5276 elif test "$SHA1SUM" = "openssl"; then
5277 SHA1SUM="openssl sha1"
5279 AC_MSG_CHECKING([for GNU Make bug 20033])
5280 TESTGMAKEBUG20033=`mktemp -d tmp.XXXXXX`
5281 $SED -e "s/<TAB>/$TAB/g" > $TESTGMAKEBUG20033/Makefile << EOF
5282 A := \$(wildcard *.a)
5286 <TAB>@echo survived bug20033.
5290 <TAB>@touch 1.a 2.a 3.a 4.a 5.a 6.a
5303 <TAB>\$(eval CHECKSUM := \$(word 1,\$(shell cat \$^ | $SHA1SUM))) \$(if \$(wildcard \$(CACHEDIR)/\$(CHECKSUM)),\
5304 <TAB>\$(call d1,\$(CHECKSUM)),\
5305 <TAB>\$(call d2,\$(CHECKSUM)))
5307 if test -z "`(cd $TESTGMAKEBUG20033 && $GNUMAKE setup && $GNUMAKE -j)|grep survived`"; then
5308 no_parallelism_make="YES"
5309 AC_MSG_RESULT([yes, disable parallelism])
5311 AC_MSG_RESULT([no, keep parallelism enabled])
5313 rm -rf $TESTGMAKEBUG20033
5315 AC_MSG_ERROR([failed ($GNUMAKE version >= 3.81 needed])
5318 # find if gnumake support file function
5319 AC_MSG_CHECKING([whether GNU Make supports the 'file' function])
5320 TESTGMAKEFILEFUNC="`mktemp -d -t tst.XXXXXX`"
5321 if test "$GNUMAKE_WIN_NATIVE" = "TRUE" ; then
5322 TESTGMAKEFILEFUNC=`cygpath -m $TESTGMAKEFILEFUNC`
5324 $SED -e "s/<TAB>/$TAB/" > $TESTGMAKEFILEFUNC/Makefile << EOF
5325 \$(file >test.txt,Success )
5332 $GNUMAKE -C $TESTGMAKEFILEFUNC 2>/dev/null 1>&2
5333 if test -f $TESTGMAKEFILEFUNC/test.txt; then
5334 HAVE_GNUMAKE_FILE_FUNC=TRUE
5335 AC_MSG_RESULT([yes])
5339 rm -rf $TESTGMAKEFILEFUNC
5340 AC_SUBST(HAVE_GNUMAKE_FILE_FUNC)
5341 AC_SUBST(GNUMAKE_WIN_NATIVE)
5343 _make_ver_check=`$GNUMAKE --version | grep "Built for Windows"`
5345 if test "$_make_ver_check" = ""; then
5349 HAVE_LD_HASH_STYLE=FALSE
5350 WITH_LINKER_HASH_STYLE=
5351 AC_MSG_CHECKING([for --hash-style gcc linker support])
5352 if test "$GCC" = "yes"; then
5353 if test -z "$with_linker_hash_style" -o "$with_linker_hash_style" = "yes"; then
5354 hash_styles="gnu sysv"
5355 elif test "$with_linker_hash_style" = "no"; then
5358 hash_styles="$with_linker_hash_style"
5361 for hash_style in $hash_styles; do
5362 test "$HAVE_LD_HASH_STYLE" = "TRUE" && continue
5363 hash_style_ldflags_save=$LDFLAGS
5364 LDFLAGS="$LDFLAGS -Wl,--hash-style=$hash_style"
5366 AC_RUN_IFELSE([AC_LANG_PROGRAM(
5373 HAVE_LD_HASH_STYLE=TRUE
5374 WITH_LINKER_HASH_STYLE=$hash_style
5376 [HAVE_LD_HASH_STYLE=FALSE],
5377 [HAVE_LD_HASH_STYLE=FALSE])
5378 LDFLAGS=$hash_style_ldflags_save
5381 if test "$HAVE_LD_HASH_STYLE" = "TRUE"; then
5382 AC_MSG_RESULT( $WITH_LINKER_HASH_STYLE )
5386 LDFLAGS=$hash_style_ldflags_save
5390 AC_SUBST(HAVE_LD_HASH_STYLE)
5391 AC_SUBST(WITH_LINKER_HASH_STYLE)
5393 dnl ===================================================================
5394 dnl Check whether there's a Perl version available.
5395 dnl ===================================================================
5396 if test -z "$with_perl_home"; then
5397 AC_PATH_PROG(PERL, perl)
5399 test "$build_os" = "cygwin" && with_perl_home=`cygpath -u "$with_perl_home"`
5400 _perl_path="$with_perl_home/bin/perl"
5401 if test -x "$_perl_path"; then
5404 AC_MSG_ERROR([$_perl_path not found])
5408 dnl ===================================================================
5409 dnl Testing for Perl version 5 or greater.
5410 dnl $] is the Perl version variable, it is returned as an integer
5411 dnl ===================================================================
5412 if test "$PERL"; then
5413 AC_MSG_CHECKING([the Perl version])
5414 ${PERL} -e "exit($]);"
5416 if test "$_perl_version" -lt 5; then
5417 AC_MSG_ERROR([found Perl $_perl_version, use Perl 5])
5419 AC_MSG_RESULT([Perl $_perl_version])
5421 AC_MSG_ERROR([Perl not found, install Perl 5])
5424 dnl ===================================================================
5425 dnl Testing for required Perl modules
5426 dnl ===================================================================
5428 AC_MSG_CHECKING([for required Perl modules])
5429 perl_use_string="use Cwd ; use Digest::MD5"
5430 if test "$_os" = "WINNT"; then
5431 if test -n "$PKGFORMAT"; then
5432 for i in $PKGFORMAT; do
5435 # for getting fonts versions to use in MSI
5436 perl_use_string="$perl_use_string ; use Font::TTF::Font"
5442 if test "$with_system_hsqldb" = "yes"; then
5443 perl_use_string="$perl_use_string ; use Archive::Zip"
5445 if $PERL -e "$perl_use_string">/dev/null 2>&1; then
5446 AC_MSG_RESULT([all modules found])
5448 AC_MSG_RESULT([failed to find some modules])
5449 # Find out which modules are missing.
5450 for i in $perl_use_string; do
5451 if test "$i" != "use" -a "$i" != ";"; then
5452 if ! $PERL -e "use $i;">/dev/null 2>&1; then
5453 missing_perl_modules="$missing_perl_modules $i"
5458 The missing Perl modules are: $missing_perl_modules
5459 Install them as superuser/administrator with "cpan -i $missing_perl_modules"])
5462 dnl ===================================================================
5463 dnl Check for pkg-config
5464 dnl ===================================================================
5465 if test "$_os" != "WINNT"; then
5469 if test "$_os" != "WINNT"; then
5471 # If you use CC=/path/to/compiler/foo-gcc or even CC="ccache
5472 # /path/to/compiler/foo-gcc" you need to set the AR etc env vars
5473 # explicitly. Or put /path/to/compiler in PATH yourself.
5475 # Use wrappers for LTO
5476 if test "$ENABLE_LTO" = "TRUE" -a "$COM_IS_CLANG" != "TRUE"; then
5477 AC_CHECK_TOOL(AR,gcc-ar)
5478 AC_CHECK_TOOL(NM,gcc-nm)
5479 AC_CHECK_TOOL(RANLIB,gcc-ranlib)
5481 AC_CHECK_TOOL(AR,ar)
5482 AC_CHECK_TOOL(NM,nm)
5483 AC_CHECK_TOOL(RANLIB,ranlib)
5485 AC_CHECK_TOOL(OBJDUMP,objdump)
5486 AC_CHECK_TOOL(READELF,readelf)
5487 AC_CHECK_TOOL(STRIP,strip)
5488 if test "$_os" = "WINNT"; then
5489 AC_CHECK_TOOL(DLLTOOL,dlltool)
5490 AC_CHECK_TOOL(WINDRES,windres)
5497 AC_SUBST(PKG_CONFIG)
5503 dnl ===================================================================
5504 dnl pkg-config checks on macOS
5505 dnl ===================================================================
5507 if test $_os = Darwin; then
5508 AC_MSG_CHECKING([for bogus pkg-config])
5509 if test -n "$PKG_CONFIG"; then
5510 if test "$PKG_CONFIG" = /usr/bin/pkg-config && ls -l /usr/bin/pkg-config | $GREP -q Mono.framework; then
5511 AC_MSG_ERROR([yes, from Mono. This *will* break the build. Please remove or hide $PKG_CONFIG])
5513 if test "$enable_bogus_pkg_config" = "yes"; then
5514 AC_MSG_RESULT([yes, user-approved from unknown origin.])
5516 AC_MSG_ERROR([yes, from unknown origin. This *will* break the build. Please modify your PATH variable so that $PKG_CONFIG is no longer found by configure scripts.])
5520 AC_MSG_RESULT([no, good])
5526 # Return value: $csctest
5530 reg_get_value_32 "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/NET Framework Setup/NDP/v4/Client/InstallPath"
5531 if test -n "$regvalue"; then
5539 # Return value: $altest
5543 # We need this check to detect 4.6.1 or above.
5544 for ver in 4.8 4.7.2 4.7.1 4.7 4.6.2 4.6.1; do
5545 reg_get_value_32 "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/NETFXSDK/$ver/WinSDK-NetFx40Tools/InstallationFolder"
5546 if test -n "$regvalue" -a \( -f "$regvalue/al.exe" -o -f "$regvalue/bin/al.exe" \); then
5552 for x in `ls /proc/registry32/HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft\ SDKs/Windows`; do
5553 reg_get_value_32 "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/Windows/$x/WinSDK-NetFx40Tools/InstallationFolder"
5554 if test -n "$regvalue" -a \( -f "$regvalue/al.exe" -o -f "$regvalue/bin/al.exe" \); then
5567 for ver in 4.8 4.7.2 4.7.1 4.7 4.6.2 4.6.1 4.6; do
5568 reg_get_value_32 "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/NETFXSDK/$ver/KitsInstallationFolder"
5569 if test -n "$regvalue"; then
5576 find_winsdk_version()
5578 # Args: $1 : SDK version as in "8.0", "8.1A" etc
5579 # Return values: $winsdktest, $winsdkbinsubdir, $winsdklibsubdir
5581 unset winsdktest winsdkbinsubdir winsdklibsubdir
5585 reg_get_value_32 "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows Kits/Installed Roots/KitsRoot"
5586 if test -n "$regvalue"; then
5587 winsdktest=$regvalue
5588 winsdklibsubdir=win8
5593 reg_get_value_32 "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows Kits/Installed Roots/KitsRoot81"
5594 if test -n "$regvalue"; then
5595 winsdktest=$regvalue
5596 winsdklibsubdir=winv6.3
5601 reg_get_value_32 "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/Windows/v${1}/InstallationFolder"
5602 if test -n "$regvalue"; then
5603 winsdktest=$regvalue
5604 reg_get_value_32 "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/Windows/v${1}/ProductVersion"
5605 if test -n "$regvalue"; then
5606 winsdkbinsubdir="$regvalue".0
5607 winsdklibsubdir=$winsdkbinsubdir
5608 tmppath="$winsdktest\\Include\\$winsdklibsubdir"
5609 # test exist the SDK path
5610 if test -d "$tmppath"; then
5611 # when path is convertible to a short path then path is okay
5612 cygpath -d "$tmppath" >/dev/null 2>&1
5613 if test $? -ne 0; then
5614 AC_MSG_ERROR([Windows SDK doesn't have a 8.3 name, see NtfsDisable8dot3NameCreation])
5617 AC_MSG_ERROR([The Windows SDK not found, check the installation])
5628 # Return value: From find_winsdk_version
5632 for ver in $WINDOWS_SDK_ACCEPTABLE_VERSIONS; do
5633 find_winsdk_version $ver
5634 if test -n "$winsdktest"; then
5642 AC_MSG_CHECKING([for MSVC merge modules directory])
5643 my_msm_files=Microsoft_VC${VCVER}_CRT_x86.msm
5646 my_msm_files="Microsoft_VC141_CRT_x86.msm Microsoft_VC142_CRT_x86.msm ${my_msm_files}"
5649 for f in $my_msm_files; do
5650 echo "$as_me:$LINENO: searching for $f" >&5
5654 for ver in 14.0 15.0; do
5655 reg_get_value_32 HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/VisualStudio/$ver/Setup/VS/MSMDir
5656 if test -n "$regvalue"; then
5657 for f in ${my_msm_files}; do
5658 if test -e "$regvalue/${f}"; then
5665 dnl Is the following fallback really necessary, or was it added in response
5666 dnl to never having started Visual Studio on a given machine, so the
5667 dnl registry keys checked above had presumably not yet been created?
5668 dnl Anyway, if it really is necessary, it might be worthwhile to extend it
5669 dnl to also check %CommonProgramFiles(X86)% (typically expanding to
5670 dnl "C:\Program Files (X86)\Common Files" compared to %CommonProgramFiles%
5671 dnl expanding to "C:\Program Files\Common Files"), which would need
5672 dnl something like $(perl -e 'print $ENV{"CommonProgramFiles(x86)"}') to
5673 dnl obtain its value from cygwin:
5674 if test -z "$msmdir"; then
5675 my_msm_dir="${COMMONPROGRAMFILES}/Merge Modules/"
5676 for f in ${my_msm_files}; do
5677 if test -e "$my_msm_dir/${f}"; then
5683 dnl Starting from MSVC 15.0, merge modules are located in different directory
5686 for l in `ls -1 $VC_PRODUCT_DIR/redist/MSVC/`; do
5687 echo "$as_me:$LINENO: looking in $VC_PRODUCT_DIR/redist/MSVC/$l/MergeModules])" >&5
5688 my_msm_dir="$VC_PRODUCT_DIR/redist/MSVC/$l/MergeModules/"
5689 for f in ${my_msm_files}; do
5690 if test -e "$my_msm_dir/${f}"; then
5699 if test -n "$msmdir"; then
5700 msmdir=`cygpath -m "$msmdir"`
5701 AC_MSG_RESULT([$msmdir])
5703 if test "$ENABLE_RELEASE_BUILD" = "TRUE" ; then
5704 AC_MSG_FAILURE([not found])
5706 AC_MSG_WARN([not found (check config.log)])
5707 add_warning "MSM none of ${my_msm_files} found"
5712 find_msvc_x64_dlls()
5714 AC_MSG_CHECKING([for MSVC x64 DLL path])
5715 msvcdllpath="$VC_PRODUCT_DIR/redist/x64/Microsoft.VC${VCVER}.CRT"
5718 for l in `ls -1 $VC_PRODUCT_DIR/redist/MSVC/`; do
5719 echo "$as_me:$LINENO: testing $VC_PRODUCT_DIR/redist/MSVC/$l/x64/Microsoft.VC141.CRT" >&5
5720 if test -d "$VC_PRODUCT_DIR/redist/MSVC/$l/x64/Microsoft.VC141.CRT"; then
5721 msvcdllpath="$VC_PRODUCT_DIR/redist/MSVC/$l/x64/Microsoft.VC141.CRT"
5724 echo "$as_me:$LINENO: testing $VC_PRODUCT_DIR/redist/MSVC/$l/x64/Microsoft.VC142.CRT" >&5
5725 if test -d "$VC_PRODUCT_DIR/redist/MSVC/$l/x64/Microsoft.VC142.CRT"; then
5726 msvcdllpath="$VC_PRODUCT_DIR/redist/MSVC/$l/x64/Microsoft.VC142.CRT"
5732 AC_MSG_RESULT([$msvcdllpath])
5733 AC_MSG_CHECKING([for MSVC x64 DLLs])
5734 msvcdlls="msvcp140.dll vcruntime140.dll"
5735 for dll in $msvcdlls; do
5736 if ! test -f "$msvcdllpath/$dll"; then
5737 AC_MSG_FAILURE([missing $dll])
5740 AC_MSG_RESULT([found all ($msvcdlls)])
5743 dnl =========================================
5744 dnl Check for the Windows SDK.
5745 dnl =========================================
5746 if test "$_os" = "WINNT"; then
5747 AC_MSG_CHECKING([for Windows SDK])
5748 if test "$build_os" = "cygwin"; then
5750 WINDOWS_SDK_HOME=$winsdktest
5752 # normalize if found
5753 if test -n "$WINDOWS_SDK_HOME"; then
5754 WINDOWS_SDK_HOME=`cygpath -d "$WINDOWS_SDK_HOME"`
5755 WINDOWS_SDK_HOME=`cygpath -u "$WINDOWS_SDK_HOME"`
5758 WINDOWS_SDK_LIB_SUBDIR=$winsdklibsubdir
5761 if test -n "$WINDOWS_SDK_HOME"; then
5762 # Remove a possible trailing backslash
5763 WINDOWS_SDK_HOME=`echo $WINDOWS_SDK_HOME | $SED 's/\/$//'`
5765 if test -f "$WINDOWS_SDK_HOME/Include/adoint.h" \
5766 -a -f "$WINDOWS_SDK_HOME/Include/SqlUcode.h" \
5767 -a -f "$WINDOWS_SDK_HOME/Include/usp10.h"; then
5768 have_windows_sdk_headers=yes
5769 elif test -f "$WINDOWS_SDK_HOME/Include/um/adoint.h" \
5770 -a -f "$WINDOWS_SDK_HOME/Include/um/SqlUcode.h" \
5771 -a -f "$WINDOWS_SDK_HOME/Include/um/usp10.h"; then
5772 have_windows_sdk_headers=yes
5773 elif test -f "$WINDOWS_SDK_HOME/Include/$winsdklibsubdir/um/adoint.h" \
5774 -a -f "$WINDOWS_SDK_HOME/Include/$winsdklibsubdir/um/SqlUcode.h" \
5775 -a -f "$WINDOWS_SDK_HOME/Include/$winsdklibsubdir/um/usp10.h"; then
5776 have_windows_sdk_headers=yes
5778 have_windows_sdk_headers=no
5781 if test -f "$WINDOWS_SDK_HOME/lib/user32.lib"; then
5782 have_windows_sdk_libs=yes
5783 elif test -f "$WINDOWS_SDK_HOME/lib/$winsdklibsubdir/um/$WINDOWS_SDK_ARCH/user32.lib"; then
5784 have_windows_sdk_libs=yes
5786 have_windows_sdk_libs=no
5789 if test $have_windows_sdk_headers = no -o $have_windows_sdk_libs = no; then
5790 AC_MSG_ERROR([Some (all?) Windows SDK files not found, please check if all needed parts of
5791 the Windows SDK are installed.])
5795 if test -z "$WINDOWS_SDK_HOME"; then
5796 AC_MSG_RESULT([no, hoping the necessary headers and libraries will be found anyway!?])
5797 elif echo $WINDOWS_SDK_HOME | grep "8.0" >/dev/null 2>/dev/null; then
5798 WINDOWS_SDK_VERSION=80
5799 AC_MSG_RESULT([found Windows SDK 8.0 ($WINDOWS_SDK_HOME)])
5800 elif echo $WINDOWS_SDK_HOME | grep "8.1" >/dev/null 2>/dev/null; then
5801 WINDOWS_SDK_VERSION=81
5802 AC_MSG_RESULT([found Windows SDK 8.1 ($WINDOWS_SDK_HOME)])
5803 elif echo $WINDOWS_SDK_HOME | grep "/10" >/dev/null 2>/dev/null; then
5804 WINDOWS_SDK_VERSION=10
5805 AC_MSG_RESULT([found Windows SDK 10.0 ($WINDOWS_SDK_HOME)])
5807 AC_MSG_ERROR([Found legacy Windows Platform SDK ($WINDOWS_SDK_HOME)])
5809 PathFormat "$WINDOWS_SDK_HOME"
5810 WINDOWS_SDK_HOME="$formatted_path"
5811 if test "$build_os" = "cygwin"; then
5812 SOLARINC="$SOLARINC -I$WINDOWS_SDK_HOME/include -I$COMPATH/Include"
5813 if test -d "$WINDOWS_SDK_HOME/include/um"; then
5814 SOLARINC="$SOLARINC -I$WINDOWS_SDK_HOME/include/um -I$WINDOWS_SDK_HOME/include/shared"
5815 elif test -d "$WINDOWS_SDK_HOME/Include/$winsdklibsubdir/um"; then
5816 SOLARINC="$SOLARINC -I$WINDOWS_SDK_HOME/Include/$winsdklibsubdir/um -I$WINDOWS_SDK_HOME/Include/$winsdklibsubdir/shared"
5820 dnl TODO: solenv/bin/modules/installer/windows/msiglobal.pm wants to use a
5821 dnl WiLangId.vbs that is included only in some SDKs (e.g., included in v7.1
5822 dnl but not in v8.0), so allow this to be overridden with a
5823 dnl WINDOWS_SDK_WILANGID for now; a full-blown --with-windows-sdk-wilangid
5824 dnl and configuration error if no WiLangId.vbs is found would arguably be
5825 dnl better, but I do not know under which conditions exactly it is needed by
5827 if test -z "$WINDOWS_SDK_WILANGID" -a -n "$WINDOWS_SDK_HOME"; then
5828 WINDOWS_SDK_WILANGID=$WINDOWS_SDK_HOME/Samples/sysmgmt/msi/scripts/WiLangId.vbs
5829 if ! test -e "$WINDOWS_SDK_WILANGID" ; then
5830 WINDOWS_SDK_WILANGID="${WINDOWS_SDK_HOME}/bin/${WINDOWS_SDK_LIB_SUBDIR}/${WINDOWS_SDK_ARCH}/WiLangId.vbs"
5832 if ! test -e "$WINDOWS_SDK_WILANGID" ; then
5833 WINDOWS_SDK_WILANGID=$WINDOWS_SDK_HOME/bin/$WINDOWS_SDK_ARCH/WiLangId.vbs
5835 if ! test -e "$WINDOWS_SDK_WILANGID" ; then
5836 WINDOWS_SDK_WILANGID=$(cygpath -sm "C:/Program Files (x86)/Windows Kits/8.1/bin/$WINDOWS_SDK_ARCH/WiLangId.vbs")
5839 if test -n "$with_lang" -a "$with_lang" != "en-US"; then
5840 if test -n "$with_package_format" -a "$with_package_format" != no; then
5841 for i in "$with_package_format"; do
5842 if test "$i" = "msi"; then
5843 if ! test -e "$WINDOWS_SDK_WILANGID" ; then
5844 AC_MSG_ERROR([WiLangId.vbs not found - building translated packages will fail])
5851 AC_SUBST(WINDOWS_SDK_HOME)
5852 AC_SUBST(WINDOWS_SDK_LIB_SUBDIR)
5853 AC_SUBST(WINDOWS_SDK_VERSION)
5854 AC_SUBST(WINDOWS_SDK_WILANGID)
5856 if test "$build_os" = "cygwin"; then
5857 dnl Check midl.exe; this being the first check for a tool in the SDK bin
5858 dnl dir, it also determines that dir's path w/o an arch segment if any,
5859 dnl WINDOWS_SDK_BINDIR_NO_ARCH:
5860 AC_MSG_CHECKING([for midl.exe])
5863 if test -n "$winsdkbinsubdir" \
5864 -a -f "$winsdktest/Bin/$winsdkbinsubdir/$WINDOWS_SDK_ARCH/midl.exe"
5866 MIDL_PATH=$winsdktest/Bin/$winsdkbinsubdir/$WINDOWS_SDK_ARCH
5867 WINDOWS_SDK_BINDIR_NO_ARCH=$WINDOWS_SDK_HOME/Bin/$winsdkbinsubdir
5868 elif test -f "$winsdktest/Bin/$WINDOWS_SDK_ARCH/midl.exe"; then
5869 MIDL_PATH=$winsdktest/Bin/$WINDOWS_SDK_ARCH
5870 WINDOWS_SDK_BINDIR_NO_ARCH=$WINDOWS_SDK_HOME/Bin
5871 elif test -f "$winsdktest/Bin/midl.exe"; then
5872 MIDL_PATH=$winsdktest/Bin
5873 WINDOWS_SDK_BINDIR_NO_ARCH=$WINDOWS_SDK_HOME/Bin
5875 if test ! -f "$MIDL_PATH/midl.exe"; then
5876 AC_MSG_ERROR([midl.exe not found in $winsdktest/Bin/$WINDOWS_SDK_ARCH, Windows SDK installation broken?])
5878 AC_MSG_RESULT([$MIDL_PATH/midl.exe])
5881 # Convert to posix path with 8.3 filename restrictions ( No spaces )
5882 MIDL_PATH=`win_short_path_for_make "$MIDL_PATH"`
5884 if test -f "$WINDOWS_SDK_BINDIR_NO_ARCH/msiinfo.exe" \
5885 -a -f "$WINDOWS_SDK_BINDIR_NO_ARCH/msidb.exe" \
5886 -a -f "$WINDOWS_SDK_BINDIR_NO_ARCH/uuidgen.exe" \
5887 -a -f "$WINDOWS_SDK_BINDIR_NO_ARCH/msitran.exe"; then :
5888 elif test -f "$WINDOWS_SDK_BINDIR_NO_ARCH/x86/msiinfo.exe" \
5889 -a -f "$WINDOWS_SDK_BINDIR_NO_ARCH/x86/msidb.exe" \
5890 -a -f "$WINDOWS_SDK_BINDIR_NO_ARCH/x86/uuidgen.exe" \
5891 -a -f "$WINDOWS_SDK_BINDIR_NO_ARCH/x86/msitran.exe"; then :
5892 elif test -f "$WINDOWS_SDK_HOME/bin/x86/msiinfo.exe" \
5893 -a -f "$WINDOWS_SDK_HOME/bin/x86/msidb.exe" \
5894 -a -f "$WINDOWS_SDK_BINDIR_NO_ARCH/x86/uuidgen.exe" \
5895 -a -f "$WINDOWS_SDK_HOME/bin/x86/msitran.exe"; then :
5897 AC_MSG_ERROR([Some (all?) Windows Installer tools in the Windows SDK are missing, please install.])
5901 AC_MSG_CHECKING([for csc.exe])
5903 if test -f "$csctest/csc.exe"; then
5906 if test ! -f "$CSC_PATH/csc.exe"; then
5907 AC_MSG_ERROR([csc.exe not found as $CSC_PATH/csc.exe])
5909 AC_MSG_RESULT([$CSC_PATH/csc.exe])
5912 CSC_PATH=`win_short_path_for_make "$CSC_PATH"`
5915 AC_MSG_CHECKING([for al.exe])
5917 if test -n "$winsdkbinsubdir" \
5918 -a -f "$winsdktest/Bin/$winsdkbinsubdir/$WINDOWS_SDK_ARCH/al.exe"
5920 AL_PATH="$winsdktest/Bin/$winsdkbinsubdir/$WINDOWS_SDK_ARCH"
5921 elif test -f "$winsdktest/Bin/$WINDOWS_SDK_ARCH/al.exe"; then
5922 AL_PATH="$winsdktest/Bin/$WINDOWS_SDK_ARCH"
5923 elif test -f "$winsdktest/Bin/al.exe"; then
5924 AL_PATH="$winsdktest/Bin"
5927 if test -z "$AL_PATH"; then
5929 if test -f "$altest/bin/al.exe"; then
5930 AL_PATH="$altest/bin"
5931 elif test -f "$altest/al.exe"; then
5935 if test ! -f "$AL_PATH/al.exe"; then
5936 AC_MSG_ERROR([al.exe not found as $AL_PATH/al.exe])
5938 AC_MSG_RESULT([$AL_PATH/al.exe])
5941 AL_PATH=`win_short_path_for_make "$AL_PATH"`
5943 dnl Check mscoree.lib / .NET Framework dir
5944 AC_MSG_CHECKING(.NET Framework)
5946 PathFormat "$frametest"
5947 frametest="$formatted_path"
5948 if test -f "$frametest/Lib/um/$WINDOWS_SDK_ARCH/mscoree.lib"; then
5949 DOTNET_FRAMEWORK_HOME="$frametest"
5952 if test -f "$winsdktest/lib/mscoree.lib" -o -f "$winsdktest/lib/$winsdklibsubdir/um/$WINDOWS_SDK_ARCH/mscoree.lib"; then
5953 DOTNET_FRAMEWORK_HOME="$winsdktest"
5956 if test ! -f "$DOTNET_FRAMEWORK_HOME/lib/mscoree.lib" -a ! -f "$DOTNET_FRAMEWORK_HOME/lib/$winsdklibsubdir/um/$WINDOWS_SDK_ARCH/mscoree.lib" -a ! -f "$DOTNET_FRAMEWORK_HOME/Lib/um/$WINDOWS_SDK_ARCH/mscoree.lib"; then
5957 AC_MSG_ERROR([mscoree.lib not found])
5959 AC_MSG_RESULT([found: $DOTNET_FRAMEWORK_HOME])
5961 PathFormat "$MIDL_PATH"
5962 MIDL_PATH="$formatted_path"
5964 PathFormat "$AL_PATH"
5965 AL_PATH="$formatted_path"
5967 PathFormat "$DOTNET_FRAMEWORK_HOME"
5968 DOTNET_FRAMEWORK_HOME="$formatted_path"
5970 PathFormat "$CSC_PATH"
5971 CSC_PATH="$formatted_path"
5974 dnl ===================================================================
5975 dnl Check if stdc headers are available excluding MSVC.
5976 dnl ===================================================================
5977 if test "$_os" != "WINNT"; then
5981 dnl ===================================================================
5982 dnl Testing for C++ compiler and version...
5983 dnl ===================================================================
5985 if test "$_os" != "WINNT"; then
5986 # AC_PROG_CXX sets CXXFLAGS to -g -O2 if not set, avoid that
5987 save_CXXFLAGS=$CXXFLAGS
5989 CXXFLAGS=$save_CXXFLAGS
5990 if test -z "$CXX_BASE"; then
5991 CXX_BASE=`first_arg_basename "$CXX"`
5995 dnl check for GNU C++ compiler version
5996 if test "$GXX" = "yes" -a -z "$COM_IS_CLANG"; then
5997 AC_MSG_CHECKING([the GNU C++ compiler version])
5999 _gpp_version=`$CXX -dumpversion`
6000 _gpp_majmin=`echo $_gpp_version | $AWK -F. '{ print \$1*100+\$2 }'`
6002 if test "$_gpp_majmin" -lt "700"; then
6003 AC_MSG_ERROR([You need to use GNU C++ compiler version >= 7.0 to build LibreOffice, you have $_gpp_version.])
6005 AC_MSG_RESULT([ok (g++ $_gpp_version)])
6008 dnl see https://code.google.com/p/android/issues/detail?id=41770
6012 AC_MSG_CHECKING([whether $CXX_BASE is broken with boost.thread])
6013 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
6014 #include <bits/c++config.h>]],[[
6015 #if !defined(_GLIBCXX_HAVE_GTHR_DEFAULT) \
6016 && !defined(_GLIBCXX__PTHREADS) \
6017 && !defined(_GLIBCXX_HAS_GTHREADS)
6020 ]])],[AC_MSG_RESULT([yes])
6021 glibcxx_threads=yes],[AC_MSG_RESULT([no])])
6023 if test $glibcxx_threads = yes; then
6024 BOOST_CXXFLAGS="-D_GLIBCXX_HAS_GTHREADS"
6027 AC_SUBST(BOOST_CXXFLAGS)
6030 # prefx CXX with ccache if needed
6032 if test "$CCACHE" != ""; then
6033 AC_MSG_CHECKING([whether $CXX_BASE is already ccached])
6035 save_CXXFLAGS=$CXXFLAGS
6036 CXXFLAGS="$CXXFLAGS --ccache-skip -O2"
6037 dnl an empty program will do, we're checking the compiler flags
6038 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],
6039 [use_ccache=yes], [use_ccache=no])
6040 if test $use_ccache = yes; then
6041 AC_MSG_RESULT([yes])
6044 CXX_BASE="ccache $CXX_BASE"
6047 CXXFLAGS=$save_CXXFLAGS
6051 dnl ===================================================================
6052 dnl Find pre-processors.(should do that _after_ messing with CC/CXX)
6053 dnl ===================================================================
6055 if test "$_os" != "WINNT"; then
6058 dnl Check whether there's a C pre-processor.
6063 dnl ===================================================================
6064 dnl Find integral type sizes and alignments
6065 dnl ===================================================================
6067 if test "$_os" != "WINNT"; then
6069 if test "$_os" = "iOS"; then
6070 AC_MSG_CHECKING([iOS setting sizes long, short, int, long long, double, voidp])
6072 ac_cv_sizeof_short=2
6074 ac_cv_sizeof_long_long=8
6075 ac_cv_sizeof_double=8
6076 ac_cv_sizeof_voidp=8
6078 AC_CHECK_SIZEOF(long)
6079 AC_CHECK_SIZEOF(short)
6080 AC_CHECK_SIZEOF(int)
6081 AC_CHECK_SIZEOF(long long)
6082 AC_CHECK_SIZEOF(double)
6083 AC_CHECK_SIZEOF(void*)
6086 SAL_TYPES_SIZEOFSHORT=$ac_cv_sizeof_short
6087 SAL_TYPES_SIZEOFINT=$ac_cv_sizeof_int
6088 SAL_TYPES_SIZEOFLONG=$ac_cv_sizeof_long
6089 SAL_TYPES_SIZEOFLONGLONG=$ac_cv_sizeof_long_long
6090 SAL_TYPES_SIZEOFPOINTER=$ac_cv_sizeof_voidp
6092 dnl Allow build without AC_CHECK_ALIGNOF, grrr
6093 m4_pattern_allow([AC_CHECK_ALIGNOF])
6094 m4_ifdef([AC_CHECK_ALIGNOF],
6096 AC_CHECK_ALIGNOF(short,[#include <stddef.h>])
6097 AC_CHECK_ALIGNOF(int,[#include <stddef.h>])
6098 AC_CHECK_ALIGNOF(long,[#include <stddef.h>])
6099 AC_CHECK_ALIGNOF(double,[#include <stddef.h>])
6102 case "$_os-$host_cpu" in
6104 test -z "$ac_cv_alignof_short" && ac_cv_alignof_short=2
6105 test -z "$ac_cv_alignof_int" && ac_cv_alignof_int=4
6106 test -z "$ac_cv_alignof_long" && ac_cv_alignof_long=4
6107 test -z "$ac_cv_alignof_double" && ac_cv_alignof_double=4
6110 test -z "$ac_cv_alignof_short" && ac_cv_alignof_short=2
6111 test -z "$ac_cv_alignof_int" && ac_cv_alignof_int=4
6112 test -z "$ac_cv_alignof_long" && ac_cv_alignof_long=8
6113 test -z "$ac_cv_alignof_double" && ac_cv_alignof_double=8
6116 if test -z "$ac_cv_alignof_short" -o \
6117 -z "$ac_cv_alignof_int" -o \
6118 -z "$ac_cv_alignof_long" -o \
6119 -z "$ac_cv_alignof_double"; then
6120 AC_MSG_ERROR([Your Autoconf doesn't have [AC_][CHECK_ALIGNOF]. You need to set the environment variables ac_cv_alignof_short, ac_cv_alignof_int, ac_cv_alignof_long and ac_cv_alignof_double.])
6126 SAL_TYPES_ALIGNMENT2=$ac_cv_alignof_short
6127 SAL_TYPES_ALIGNMENT4=$ac_cv_alignof_int
6128 if test $ac_cv_sizeof_long -eq 8; then
6129 SAL_TYPES_ALIGNMENT8=$ac_cv_alignof_long
6130 elif test $ac_cv_sizeof_double -eq 8; then
6131 SAL_TYPES_ALIGNMENT8=$ac_cv_alignof_double
6133 AC_MSG_ERROR([Cannot find alignment of 8 byte types.])
6136 dnl Check for large file support
6138 if test -n "$ac_cv_sys_file_offset_bits" -a "$ac_cv_sys_file_offset_bits" != "no"; then
6139 LFS_CFLAGS="-D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits"
6141 if test -n "$ac_cv_sys_large_files" -a "$ac_cv_sys_large_files" != "no"; then
6142 LFS_CFLAGS="$LFS_CFLAGS -D_LARGE_FILES"
6146 SAL_TYPES_SIZEOFSHORT=2
6147 SAL_TYPES_SIZEOFINT=4
6148 SAL_TYPES_SIZEOFLONG=4
6149 SAL_TYPES_SIZEOFLONGLONG=8
6150 if test "$BITNESS_OVERRIDE" = ""; then
6151 SAL_TYPES_SIZEOFPOINTER=4
6153 SAL_TYPES_SIZEOFPOINTER=8
6155 SAL_TYPES_ALIGNMENT2=2
6156 SAL_TYPES_ALIGNMENT4=4
6157 SAL_TYPES_ALIGNMENT8=8
6160 AC_SUBST(LFS_CFLAGS)
6162 AC_DEFINE_UNQUOTED(SAL_TYPES_SIZEOFSHORT,$SAL_TYPES_SIZEOFSHORT)
6163 AC_DEFINE_UNQUOTED(SAL_TYPES_SIZEOFINT,$SAL_TYPES_SIZEOFINT)
6164 AC_DEFINE_UNQUOTED(SAL_TYPES_SIZEOFLONG,$SAL_TYPES_SIZEOFLONG)
6165 AC_DEFINE_UNQUOTED(SAL_TYPES_SIZEOFLONGLONG,$SAL_TYPES_SIZEOFLONGLONG)
6166 AC_DEFINE_UNQUOTED(SAL_TYPES_SIZEOFPOINTER,$SAL_TYPES_SIZEOFPOINTER)
6167 AC_DEFINE_UNQUOTED(SAL_TYPES_ALIGNMENT2,$SAL_TYPES_ALIGNMENT2)
6168 AC_DEFINE_UNQUOTED(SAL_TYPES_ALIGNMENT4,$SAL_TYPES_ALIGNMENT4)
6169 AC_DEFINE_UNQUOTED(SAL_TYPES_ALIGNMENT8,$SAL_TYPES_ALIGNMENT8)
6171 dnl ===================================================================
6172 dnl Check whether to enable runtime optimizations
6173 dnl ===================================================================
6174 ENABLE_RUNTIME_OPTIMIZATIONS=
6175 AC_MSG_CHECKING([whether to enable runtime optimizations])
6176 if test -z "$enable_runtime_optimizations"; then
6180 enable_runtime_optimizations=no
6186 if test "$enable_runtime_optimizations" != no; then
6187 ENABLE_RUNTIME_OPTIMIZATIONS=TRUE
6188 AC_DEFINE(ENABLE_RUNTIME_OPTIMIZATIONS)
6189 AC_MSG_RESULT([yes])
6193 AC_SUBST([ENABLE_RUNTIME_OPTIMIZATIONS])
6195 dnl ===================================================================
6196 dnl Check if valgrind headers are available
6197 dnl ===================================================================
6199 if test "$cross_compiling" != yes -a "$with_valgrind" != no; then
6200 prev_cppflags=$CPPFLAGS
6201 # Is VALGRIND_CFLAGS something one is supposed to have in the environment,
6202 # or where does it come from?
6203 CPPFLAGS="$CPPFLAGS $VALGRIND_CFLAGS"
6204 AC_CHECK_HEADER([valgrind/valgrind.h],
6205 [ENABLE_VALGRIND=TRUE])
6206 CPPFLAGS=$prev_cppflags
6208 AC_SUBST([ENABLE_VALGRIND])
6209 if test -z "$ENABLE_VALGRIND"; then
6210 if test "$with_valgrind" = yes; then
6211 AC_MSG_ERROR([--with-valgrind specified but no Valgrind headers found])
6215 AC_SUBST([VALGRIND_CFLAGS])
6218 dnl ===================================================================
6219 dnl Check if SDT probes (for systemtap, gdb, dtrace) are available
6220 dnl ===================================================================
6222 # We need at least the sys/sdt.h include header.
6223 AC_CHECK_HEADER([sys/sdt.h], [SDT_H_FOUND='TRUE'], [SDT_H_FOUND='FALSE'])
6224 if test "$SDT_H_FOUND" = "TRUE"; then
6225 # Found sys/sdt.h header, now make sure the c++ compiler works.
6226 # Old g++ versions had problems with probes in constructors/destructors.
6227 AC_MSG_CHECKING([working sys/sdt.h and c++ support])
6229 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
6230 #include <sys/sdt.h>
6238 ProbeClass(int& v, const char *n) : ref(v), name(n)
6240 DTRACE_PROBE2(_test_, cons, name, ref);
6243 void method(int min)
6245 DTRACE_PROBE3(_test_, meth, name, ref, min);
6251 DTRACE_PROBE2(_test_, dest, name, ref);
6256 DTRACE_PROBE1(_test_, call, i);
6257 ProbeClass inst = ProbeClass(i, "call");
6259 ]])], [AC_MSG_RESULT([yes]); AC_DEFINE([USE_SDT_PROBES])],
6260 [AC_MSG_RESULT([no, sdt.h or c++ compiler too old])])
6263 AC_CONFIG_HEADERS([config_host/config_probes.h])
6265 dnl ===================================================================
6267 dnl ===================================================================
6268 HAVE_GCC_STACK_CLASH_PROTECTION=
6269 if test "$GCC" = "yes" -o "$COM_IS_CLANG" = TRUE; then
6270 AC_MSG_CHECKING([whether $CC_BASE supports -fstack-clash-protection])
6272 CFLAGS="$CFLAGS -fstack-clash-protection"
6274 [AC_LANG_PROGRAM(, [[return 0;]])],
6275 [AC_MSG_RESULT([yes]); HAVE_GCC_STACK_CLASH_PROTECTION=TRUE],
6276 [AC_MSG_RESULT([no])])
6279 AC_MSG_CHECKING([whether $CC_BASE supports -mno-avx])
6281 CFLAGS="$CFLAGS -Werror -mno-avx"
6282 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[ return 0; ]])],[ HAVE_GCC_AVX=TRUE ],[])
6284 if test "$HAVE_GCC_AVX" = "TRUE"; then
6285 AC_MSG_RESULT([yes])
6290 AC_MSG_CHECKING([whether $CC_BASE supports atomic functions])
6291 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[
6293 if (__sync_add_and_fetch(&v, 1) != 1 ||
6294 __sync_sub_and_fetch(&v, 1) != 0)
6296 __sync_synchronize();
6297 if (__sync_val_compare_and_swap(&v, 0, 1) != 0 ||
6301 ]])],[HAVE_GCC_BUILTIN_ATOMIC=TRUE],[])
6302 if test "$HAVE_GCC_BUILTIN_ATOMIC" = "TRUE"; then
6303 AC_MSG_RESULT([yes])
6304 AC_DEFINE(HAVE_GCC_BUILTIN_ATOMIC)
6309 AC_MSG_CHECKING([whether $CC_BASE supports __builtin_ffs])
6310 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[ return __builtin_ffs(1); ]])],[HAVE_GCC_BUILTIN_FFS=TRUE],[])
6311 if test "$HAVE_GCC_BUILTIN_FFS" = "TRUE"; then
6312 AC_MSG_RESULT([yes])
6313 AC_DEFINE(HAVE_GCC_BUILTIN_FFS)
6318 AC_MSG_CHECKING([whether $CC_BASE supports __attribute__((deprecated(message)))])
6320 CFLAGS="$CFLAGS -Werror"
6321 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
6322 __attribute__((deprecated("test"))) void f();
6324 AC_DEFINE([HAVE_GCC_DEPRECATED_MESSAGE],[1])
6325 AC_MSG_RESULT([yes])
6326 ], [AC_MSG_RESULT([no])])
6329 AC_MSG_CHECKING([whether $CXX_BASE defines __base_class_type_info in cxxabi.h])
6331 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
6334 std::size_t f() { return sizeof(__cxxabiv1::__base_class_type_info); }
6336 AC_DEFINE([HAVE_CXXABI_H_BASE_CLASS_TYPE_INFO],[1])
6337 AC_MSG_RESULT([yes])
6338 ], [AC_MSG_RESULT([no])])
6341 AC_MSG_CHECKING([whether $CXX_BASE defines __class_type_info in cxxabi.h])
6343 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
6346 std::size_t f() { return sizeof(__cxxabiv1::__class_type_info); }
6348 AC_DEFINE([HAVE_CXXABI_H_CLASS_TYPE_INFO],[1])
6349 AC_MSG_RESULT([yes])
6350 ], [AC_MSG_RESULT([no])])
6353 AC_MSG_CHECKING([whether $CXX_BASE declares __cxa_allocate_exception in cxxabi.h])
6355 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
6357 void * f() { return __cxxabiv1::__cxa_allocate_exception(0); }
6359 AC_DEFINE([HAVE_CXXABI_H_CXA_ALLOCATE_EXCEPTION],[1])
6360 AC_MSG_RESULT([yes])
6361 ], [AC_MSG_RESULT([no])])
6364 AC_MSG_CHECKING([whether $CXX_BASE defines __cxa_eh_globals in cxxabi.h])
6366 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
6369 std::size_t f() { return sizeof(__cxxabiv1::__cxa_eh_globals); }
6371 AC_DEFINE([HAVE_CXXABI_H_CXA_EH_GLOBALS],[1])
6372 AC_MSG_RESULT([yes])
6373 ], [AC_MSG_RESULT([no])])
6376 AC_MSG_CHECKING([whether $CXX_BASE defines __cxa_exception in cxxabi.h])
6378 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
6381 std::size_t f() { return sizeof(__cxxabiv1::__cxa_exception); }
6383 AC_DEFINE([HAVE_CXXABI_H_CXA_EXCEPTION],[1])
6384 AC_MSG_RESULT([yes])
6385 ], [AC_MSG_RESULT([no])])
6388 AC_MSG_CHECKING([whether $CXX_BASE declares __cxa_get_globals in cxxabi.h])
6390 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
6392 void * f() { return __cxxabiv1::__cxa_get_globals(); }
6394 AC_DEFINE([HAVE_CXXABI_H_CXA_GET_GLOBALS],[1])
6395 AC_MSG_RESULT([yes])
6396 ], [AC_MSG_RESULT([no])])
6399 AC_MSG_CHECKING([whether $CXX_BASE declares __cxa_current_exception_type in cxxabi.h])
6401 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
6403 void * f() { return __cxxabiv1::__cxa_current_exception_type(); }
6405 AC_DEFINE([HAVE_CXXABI_H_CXA_CURRENT_EXCEPTION_TYPE],[1])
6406 AC_MSG_RESULT([yes])
6407 ], [AC_MSG_RESULT([no])])
6410 AC_MSG_CHECKING([whether $CXX_BASE declares __cxa_throw in cxxabi.h])
6412 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
6414 void f() { __cxxabiv1::__cxa_throw(0, 0, 0); }
6416 AC_DEFINE([HAVE_CXXABI_H_CXA_THROW],[1])
6417 AC_MSG_RESULT([yes])
6418 ], [AC_MSG_RESULT([no])])
6421 AC_MSG_CHECKING([whether $CXX_BASE defines __si_class_type_info in cxxabi.h])
6423 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
6426 std::size_t f() { return sizeof(__cxxabiv1::__si_class_type_info); }
6428 AC_DEFINE([HAVE_CXXABI_H_SI_CLASS_TYPE_INFO],[1])
6429 AC_MSG_RESULT([yes])
6430 ], [AC_MSG_RESULT([no])])
6433 AC_MSG_CHECKING([whether $CXX_BASE defines __vmi_class_type_info in cxxabi.h])
6435 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
6438 std::size_t f() { return sizeof(__cxxabiv1::__vmi_class_type_info); }
6440 AC_DEFINE([HAVE_CXXABI_H_VMI_CLASS_TYPE_INFO],[1])
6441 AC_MSG_RESULT([yes])
6442 ], [AC_MSG_RESULT([no])])
6445 dnl Available in GCC 4.9 and at least since Clang 3.4; this check can eventually be removed
6446 dnl completely (e.g., after libreoffice-6-5 branch off):
6447 AC_MSG_CHECKING([that $CXX_BASE supports __attribute__((warn_unused))])
6449 save_CXXFLAGS=$CXXFLAGS
6450 CXXFLAGS="$CXXFLAGS -Werror"
6451 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
6452 struct __attribute__((warn_unused)) dummy {};
6454 AC_MSG_RESULT([yes])
6455 ], [AC_MSG_ERROR([no])])
6456 CXXFLAGS=$save_CXXFLAGS
6460 AC_SUBST(HAVE_GCC_AVX)
6461 AC_SUBST(HAVE_GCC_BUILTIN_ATOMIC)
6462 AC_SUBST(HAVE_GCC_BUILTIN_FFS)
6463 AC_SUBST(HAVE_GCC_STACK_CLASH_PROTECTION)
6465 dnl ===================================================================
6466 dnl Identify the C++ library
6467 dnl ===================================================================
6469 AC_MSG_CHECKING([what the C++ library is])
6471 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
6477 [CPP_LIBRARY=GLIBCXX
6478 cpp_library_name="GNU libstdc++"
6480 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
6482 #ifndef _LIBCPP_VERSION
6487 cpp_library_name="LLVM libc++"
6488 AC_DEFINE([HAVE_LIBCXX])
6490 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
6497 cpp_library_name="Microsoft"
6499 AC_MSG_ERROR([Could not figure out what C++ library this is]))))
6500 AC_MSG_RESULT([$cpp_library_name])
6503 dnl ===================================================================
6505 dnl ===================================================================
6506 AC_PATH_PROG(GPERF, gperf)
6507 if test -z "$GPERF"; then
6508 AC_MSG_ERROR([gperf not found but needed. Install it.])
6510 if test "$GNUMAKE_WIN_NATIVE" = "TRUE" ; then
6511 GPERF=`cygpath -m $GPERF`
6513 AC_MSG_CHECKING([whether gperf is new enough])
6514 my_gperf_ver1=$($GPERF --version | head -n 1)
6515 my_gperf_ver2=${my_gperf_ver1#GNU gperf }
6516 my_gperf_ver3=$(printf %s "$my_gperf_ver2" | $AWK -F. '{ print $1*100+($2<100?$2:99) }')
6517 if test "$my_gperf_ver3" -ge 301; then
6518 AC_MSG_RESULT([yes ($my_gperf_ver2)])
6520 AC_MSG_ERROR(["$my_gperf_ver1" is too old or unrecognized, must be at least gperf 3.1])
6524 dnl ===================================================================
6525 dnl Check for system libcmis
6526 dnl ===================================================================
6527 # libcmis requires curl and we can't build curl for iOS
6528 if test $_os != iOS; then
6529 libo_CHECK_SYSTEM_MODULE([libcmis],[LIBCMIS],[libcmis-0.5 >= 0.5.2])
6534 AC_SUBST(ENABLE_LIBCMIS)
6536 dnl ===================================================================
6538 dnl ===================================================================
6540 AC_MSG_CHECKING([whether $CXX_BASE supports C++17])
6542 if test "$COM" = MSC -a "$COM_IS_CLANG" != TRUE; then
6543 CXXFLAGS_CXX11='-std:c++17 -Zc:__cplusplus'
6544 elif test "$GCC" = "yes" -o "$COM_IS_CLANG" = TRUE; then
6545 my_flags='-std=c++20 -std=c++2a -std=c++17 -std=c++1z'
6546 for flag in $my_flags; do
6547 if test "$COM" = MSC; then
6548 flag="-Xclang $flag"
6550 save_CXXFLAGS=$CXXFLAGS
6551 CXXFLAGS="$CXXFLAGS $flag -Werror"
6552 if test "$SYSTEM_LIBCMIS" = TRUE; then
6553 CXXFLAGS="$CXXFLAGS -DSYSTEM_LIBCMIS $LIBCMIS_CFLAGS"
6556 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
6557 #include <algorithm>
6558 #include <functional>
6561 #if defined SYSTEM_LIBCMIS
6562 // See ucb/source/ucp/cmis/auth_provider.hxx:
6563 #if !defined __clang__
6564 #pragma GCC diagnostic push
6565 #pragma GCC diagnostic ignored "-Wdeprecated"
6566 #pragma GCC diagnostic ignored "-Wunused-but-set-parameter"
6568 #include <libcmis/libcmis.hxx>
6569 #if !defined __clang__
6570 #pragma GCC diagnostic pop
6574 void f(std::vector<int> & v, std::function<bool(int, int)> fn) {
6575 std::sort(v.begin(), v.end(), fn);
6577 ]])],[CXXFLAGS_CXX11=$flag])
6579 CXXFLAGS=$save_CXXFLAGS
6580 if test -n "$CXXFLAGS_CXX11"; then
6585 if test -n "$CXXFLAGS_CXX11"; then
6586 AC_MSG_RESULT([yes ($CXXFLAGS_CXX11)])
6590 AC_SUBST(CXXFLAGS_CXX11)
6592 if test "$GCC" = "yes"; then
6593 save_CXXFLAGS=$CXXFLAGS
6594 CXXFLAGS="$CXXFLAGS $CXXFLAGS_CXX11"
6596 CXXFLAGS=$save_CXXFLAGS
6597 AC_SUBST(ATOMIC_LIB)
6600 dnl Test for temporarily incompatible libstdc++ 4.7.{0,1}, where
6601 dnl <https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=179528> introduced
6602 dnl an additional member _M_size into C++11 std::list towards 4.7.0 and
6603 dnl <https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=189186> removed it
6604 dnl again towards 4.7.2:
6605 if test $CPP_LIBRARY = GLIBCXX; then
6606 AC_MSG_CHECKING([whether using C++11 causes libstdc++ 4.7.0/4.7.1 ABI breakage])
6608 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
6610 #if !defined __GLIBCXX__ || (__GLIBCXX__ != 20120322 && __GLIBCXX__ != 20120614)
6611 // according to <https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html>:
6612 // GCC 4.7.0: 20120322
6613 // GCC 4.7.1: 20120614
6614 // and using a range check is not possible as the mapping between
6615 // __GLIBCXX__ values and GCC versions is not monotonic
6620 ]])], [AC_MSG_RESULT(no, ok)],
6621 [AC_MSG_ERROR(yes)])
6625 AC_MSG_CHECKING([whether $CXX_BASE supports C++11 without Language Defect 757])
6626 save_CXXFLAGS=$CXXFLAGS
6627 CXXFLAGS="$CXXFLAGS $CXXFLAGS_CXX11"
6630 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
6633 template <typename T, size_t S> char (&sal_n_array_size( T(&)[S] ))[S];
6649 a thinga[]={{0,0}, {1,1}};
6650 b thingb[]={{0,0}, {1,1}};
6651 size_t i = sizeof(sal_n_array_size(thinga));
6652 size_t j = sizeof(sal_n_array_size(thingb));
6653 return !(i != 0 && j != 0);
6655 ], [ AC_MSG_RESULT(yes) ],
6656 [ AC_MSG_ERROR(no)])
6658 CXXFLAGS=$save_CXXFLAGS
6660 dnl _Pragma support (may require C++11)
6661 if test "$GCC" = "yes" -o "$COM_IS_CLANG" = TRUE; then
6662 AC_MSG_CHECKING([whether $CXX_BASE supports _Pragma operator])
6664 save_CXXFLAGS=$CXXFLAGS
6665 CXXFLAGS="$CXXFLAGS $CXXFLAGS_CXX11 -Werror"
6666 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
6667 _Pragma("GCC diagnostic ignored \"-Wformat\"")
6669 AC_DEFINE([HAVE_GCC_PRAGMA_OPERATOR],[1])
6670 AC_MSG_RESULT([yes])
6671 ], [AC_MSG_RESULT([no])])
6673 CXXFLAGS=$save_CXXFLAGS
6676 HAVE_GCC_FNO_SIZED_DEALLOCATION=
6677 if test "$GCC" = yes; then
6678 AC_MSG_CHECKING([whether $CXX_BASE supports -fno-sized-deallocation])
6680 save_CXXFLAGS=$CXXFLAGS
6681 CXXFLAGS="$CXXFLAGS -fno-sized-deallocation"
6682 AC_LINK_IFELSE([AC_LANG_PROGRAM()],[HAVE_GCC_FNO_SIZED_DEALLOCATION=TRUE])
6683 CXXFLAGS=$save_CXXFLAGS
6685 if test "$HAVE_GCC_FNO_SIZED_DEALLOCATION" = TRUE; then
6686 AC_MSG_RESULT([yes])
6691 AC_SUBST([HAVE_GCC_FNO_SIZED_DEALLOCATION])
6693 AC_MSG_CHECKING([whether $CXX_BASE supports guaranteed copy elision])
6695 save_CXXFLAGS=$CXXFLAGS
6696 CXXFLAGS="$CXXFLAGS $CXXFLAGS_CXX11"
6697 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
6698 // At least VS 2017 15.8.1 defines __cpp_guaranteed_copy_elision as 201606L without actually
6700 #if !defined __cpp_guaranteed_copy_elision || (defined _MSC_VER && !defined __clang__)
6709 void f() { S c(copy()); }
6712 AC_DEFINE([HAVE_CPP_GUARANTEED_COPY_ELISION],[1])
6713 AC_MSG_RESULT([yes])
6714 ], [AC_MSG_RESULT([no])])
6715 CXXFLAGS=$save_CXXFLAGS
6718 AC_MSG_CHECKING([whether $CXX_BASE supports C++2a constinit sorted vectors])
6720 save_CXXFLAGS=$CXXFLAGS
6721 CXXFLAGS="$CXXFLAGS $CXXFLAGS_CXX11"
6722 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
6723 #include <algorithm>
6724 #include <initializer_list>
6726 template<typename T> class S {
6730 constexpr S(std::initializer_list<T> i): v_(i) { std::sort(v_.begin(), v_.end()); }
6732 constinit S<int> s{3, 2, 1};
6734 AC_DEFINE([HAVE_CPP_CONSTINIT_SORTED_VECTOR],[1])
6735 AC_MSG_RESULT([yes])
6736 ], [AC_MSG_RESULT([no])])
6737 CXXFLAGS=$save_CXXFLAGS
6740 AC_MSG_CHECKING([whether $CXX_BASE supports C++2a <span> with unsigned size_type])
6742 save_CXXFLAGS=$CXXFLAGS
6743 CXXFLAGS="$CXXFLAGS $CXXFLAGS_CXX11"
6744 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
6746 #include <type_traits>
6747 // Don't check size_type directly, as it was called index_type before P1872R0:
6748 void f(std::span<int> s) { static_assert(std::is_unsigned_v<decltype(s.size())>); };
6750 AC_DEFINE([HAVE_CPP_SPAN],[1])
6751 AC_MSG_RESULT([yes])
6752 ], [AC_MSG_RESULT([no])])
6753 CXXFLAGS=$save_CXXFLAGS
6756 AC_MSG_CHECKING([whether $CXX_BASE implements C++ DR P1155R3])
6758 save_CXXFLAGS=$CXXFLAGS
6759 CXXFLAGS="$CXXFLAGS $CXXFLAGS_CXX11"
6760 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
6761 struct S1 { S1(S1 &&); };
6763 S1 f(S2 s) { return s; }
6765 AC_DEFINE([HAVE_P1155R3],[1])
6766 AC_MSG_RESULT([yes])
6767 ], [AC_MSG_RESULT([no])])
6768 CXXFLAGS=$save_CXXFLAGS
6771 dnl Supported since GCC 9 and Clang 10 (which each also started to support -Wdeprecated-copy, but
6772 dnl which is included in -Wextra anyway):
6773 HAVE_WDEPRECATED_COPY_DTOR=
6774 if test "$GCC" = yes; then
6775 AC_MSG_CHECKING([whether $CXX_BASE supports -Wdeprecated-copy-dtor])
6777 save_CXXFLAGS=$CXXFLAGS
6778 CXXFLAGS="$CXXFLAGS -Werror -Wdeprecated-copy-dtor"
6779 AC_COMPILE_IFELSE([AC_LANG_SOURCE()], [
6780 HAVE_WDEPRECATED_COPY_DTOR=TRUE
6781 AC_MSG_RESULT([yes])
6782 ], [AC_MSG_RESULT([no])])
6783 CXXFLAGS=$save_CXXFLAGS
6786 AC_SUBST([HAVE_WDEPRECATED_COPY_DTOR])
6788 dnl At least GCC 8.2 with -O2 (i.e., --enable-optimized) causes a false-positive -Wmaybe-
6789 dnl uninitialized warning for code like
6792 dnl boost::optional<OString> * g(bool b) {
6793 dnl boost::optional<OString> o;
6795 dnl return new boost::optional<OString>(o);
6798 dnl (as is e.g. present, in a slightly more elaborate form, in
6799 dnl librdf_TypeConverter::extractNode_NoLock in unoxml/source/rdf/librdf_repository.cxx); the below
6800 dnl code is meant to be a faithfully stripped-down and self-contained version of the above code:
6801 HAVE_BROKEN_GCC_WMAYBE_UNINITIALIZED=
6802 if test "$GCC" = yes && test "$COM_IS_CLANG" != TRUE; then
6803 AC_MSG_CHECKING([whether $CXX_BASE might report false -Werror=maybe-uninitialized])
6805 save_CXXFLAGS=$CXXFLAGS
6806 CXXFLAGS="$CXXFLAGS $CXXFLAGS_CXX11 -Werror -Wmaybe-uninitialized"
6807 if test "$ENABLE_OPTIMIZED" = TRUE; then
6808 CXXFLAGS="$CXXFLAGS -O2"
6810 CXXFLAGS="$CXXFLAGS -O0"
6812 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
6821 S2(S2 const & s) { if (s.init) set(*reinterpret_cast<S1 const *>(s.stg)); }
6822 ~S2() { if (init) reinterpret_cast<S1 *>(stg)->S1::~S1(); }
6828 char stg[sizeof (S1)];
6836 ]])], [AC_MSG_RESULT([no])], [
6837 HAVE_BROKEN_GCC_WMAYBE_UNINITIALIZED=TRUE
6838 AC_MSG_RESULT([yes])
6840 CXXFLAGS=$save_CXXFLAGS
6843 AC_SUBST([HAVE_BROKEN_GCC_WMAYBE_UNINITIALIZED])
6845 dnl ===================================================================
6846 dnl CPU Intrinsics support - SSE, AVX
6847 dnl ===================================================================
6849 CXXFLAGS_INTRINSICS_SSE2=
6850 CXXFLAGS_INTRINSICS_SSSE3=
6851 CXXFLAGS_INTRINSICS_SSE41=
6852 CXXFLAGS_INTRINSICS_SSE42=
6853 CXXFLAGS_INTRINSICS_AVX=
6854 CXXFLAGS_INTRINSICS_AVX2=
6855 CXXFLAGS_INTRINSICS_F16C=
6856 CXXFLAGS_INTRINSICS_FMA=
6858 if test "$GCC" = "yes"; then
6868 # https://docs.microsoft.com/en-us/cpp/build/reference/arch-x86
6869 # MSVC seems to differentiate only between SSE and SSE2, where in fact
6870 # SSE2 seems to be SSE2+.
6871 # Even if -arch:SSE2 is the default, set it explicitly, so that the variable
6872 # is not empty (and can be tested in gbuild), moreover we now default to SSE
6874 flag_sse2=-arch:SSE2
6875 flag_ssse3=-arch:SSE2
6876 flag_sse41=-arch:SSE2
6877 flag_sse42=-arch:SSE2
6879 flag_avx2=-arch:AVX2
6880 # These are part of -arch:AVX2
6881 flag_f16c=-arch:AVX2
6885 AC_MSG_CHECKING([whether $CXX can compile SSE2 intrinsics])
6887 save_CXXFLAGS=$CXXFLAGS
6888 CXXFLAGS="$CXXFLAGS $flag_sse2"
6889 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
6890 #include <emmintrin.h>
6892 __m128i a = _mm_set1_epi32 (0), b = _mm_set1_epi32 (0), c;
6893 c = _mm_xor_si128 (a, b);
6897 [can_compile_sse2=yes],
6898 [can_compile_sse2=no])
6900 CXXFLAGS=$save_CXXFLAGS
6901 AC_MSG_RESULT([${can_compile_sse2}])
6902 if test "${can_compile_sse2}" = "yes" ; then
6903 CXXFLAGS_INTRINSICS_SSE2="$flag_sse2"
6906 AC_MSG_CHECKING([whether $CXX can compile SSSE3 intrinsics])
6908 save_CXXFLAGS=$CXXFLAGS
6909 CXXFLAGS="$CXXFLAGS $flag_ssse3"
6910 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
6911 #include <tmmintrin.h>
6913 __m128i a = _mm_set1_epi32 (0), b = _mm_set1_epi32 (0), c;
6914 c = _mm_maddubs_epi16 (a, b);
6918 [can_compile_ssse3=yes],
6919 [can_compile_ssse3=no])
6921 CXXFLAGS=$save_CXXFLAGS
6922 AC_MSG_RESULT([${can_compile_ssse3}])
6923 if test "${can_compile_ssse3}" = "yes" ; then
6924 CXXFLAGS_INTRINSICS_SSSE3="$flag_ssse3"
6927 AC_MSG_CHECKING([whether $CXX can compile SSE4.1 intrinsics])
6929 save_CXXFLAGS=$CXXFLAGS
6930 CXXFLAGS="$CXXFLAGS $flag_sse41"
6931 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
6932 #include <smmintrin.h>
6934 __m128i a = _mm_set1_epi32 (0), b = _mm_set1_epi32 (0), c;
6935 c = _mm_cmpeq_epi64 (a, b);
6939 [can_compile_sse41=yes],
6940 [can_compile_sse41=no])
6942 CXXFLAGS=$save_CXXFLAGS
6943 AC_MSG_RESULT([${can_compile_sse41}])
6944 if test "${can_compile_sse41}" = "yes" ; then
6945 CXXFLAGS_INTRINSICS_SSE41="$flag_sse41"
6948 AC_MSG_CHECKING([whether $CXX can compile SSE4.2 intrinsics])
6950 save_CXXFLAGS=$CXXFLAGS
6951 CXXFLAGS="$CXXFLAGS $flag_sse42"
6952 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
6953 #include <nmmintrin.h>
6955 __m128i a = _mm_set1_epi32 (0), b = _mm_set1_epi32 (0), c;
6956 c = _mm_cmpgt_epi64 (a, b);
6960 [can_compile_sse42=yes],
6961 [can_compile_sse42=no])
6963 CXXFLAGS=$save_CXXFLAGS
6964 AC_MSG_RESULT([${can_compile_sse42}])
6965 if test "${can_compile_sse42}" = "yes" ; then
6966 CXXFLAGS_INTRINSICS_SSE42="$flag_sse42"
6969 AC_MSG_CHECKING([whether $CXX can compile AVX intrinsics])
6971 save_CXXFLAGS=$CXXFLAGS
6972 CXXFLAGS="$CXXFLAGS $flag_avx"
6973 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
6974 #include <immintrin.h>
6976 __m256 a = _mm256_set1_ps (0.0f), b = _mm256_set1_ps (0.0f), c;
6977 c = _mm256_xor_ps(a, b);
6981 [can_compile_avx=yes],
6982 [can_compile_avx=no])
6984 CXXFLAGS=$save_CXXFLAGS
6985 AC_MSG_RESULT([${can_compile_avx}])
6986 if test "${can_compile_avx}" = "yes" ; then
6987 CXXFLAGS_INTRINSICS_AVX="$flag_avx"
6990 AC_MSG_CHECKING([whether $CXX can compile AVX2 intrinsics])
6992 save_CXXFLAGS=$CXXFLAGS
6993 CXXFLAGS="$CXXFLAGS $flag_avx2"
6994 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
6995 #include <immintrin.h>
6997 __m256i a = _mm256_set1_epi32 (0), b = _mm256_set1_epi32 (0), c;
6998 c = _mm256_maddubs_epi16(a, b);
7002 [can_compile_avx2=yes],
7003 [can_compile_avx2=no])
7005 CXXFLAGS=$save_CXXFLAGS
7006 AC_MSG_RESULT([${can_compile_avx2}])
7007 if test "${can_compile_avx2}" = "yes" ; then
7008 CXXFLAGS_INTRINSICS_AVX2="$flag_avx2"
7011 AC_MSG_CHECKING([whether $CXX can compile F16C intrinsics])
7013 save_CXXFLAGS=$CXXFLAGS
7014 CXXFLAGS="$CXXFLAGS $flag_f16c"
7015 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
7016 #include <immintrin.h>
7018 __m128i a = _mm_set1_epi32 (0);
7020 c = _mm_cvtph_ps(a);
7024 [can_compile_f16c=yes],
7025 [can_compile_f16c=no])
7027 CXXFLAGS=$save_CXXFLAGS
7028 AC_MSG_RESULT([${can_compile_f16c}])
7029 if test "${can_compile_f16c}" = "yes" ; then
7030 CXXFLAGS_INTRINSICS_F16C="$flag_f16c"
7033 AC_MSG_CHECKING([whether $CXX can compile FMA intrinsics])
7035 save_CXXFLAGS=$CXXFLAGS
7036 CXXFLAGS="$CXXFLAGS $flag_fma"
7037 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
7038 #include <immintrin.h>
7040 __m256 a = _mm256_set1_ps (0.0f), b = _mm256_set1_ps (0.0f), c = _mm256_set1_ps (0.0f), d;
7041 d = _mm256_fmadd_ps(a, b, c);
7045 [can_compile_fma=yes],
7046 [can_compile_fma=no])
7048 CXXFLAGS=$save_CXXFLAGS
7049 AC_MSG_RESULT([${can_compile_fma}])
7050 if test "${can_compile_fma}" = "yes" ; then
7051 CXXFLAGS_INTRINSICS_FMA="$flag_fma"
7054 AC_SUBST([CXXFLAGS_INTRINSICS_SSE2])
7055 AC_SUBST([CXXFLAGS_INTRINSICS_SSSE3])
7056 AC_SUBST([CXXFLAGS_INTRINSICS_SSE41])
7057 AC_SUBST([CXXFLAGS_INTRINSICS_SSE42])
7058 AC_SUBST([CXXFLAGS_INTRINSICS_AVX])
7059 AC_SUBST([CXXFLAGS_INTRINSICS_AVX2])
7060 AC_SUBST([CXXFLAGS_INTRINSICS_F16C])
7061 AC_SUBST([CXXFLAGS_INTRINSICS_FMA])
7063 dnl ===================================================================
7064 dnl system stl sanity tests
7065 dnl ===================================================================
7066 if test "$_os" != "WINNT"; then
7070 save_CPPFLAGS="$CPPFLAGS"
7071 if test -n "$MACOSX_SDK_PATH"; then
7072 CPPFLAGS="-isysroot $MACOSX_SDK_PATH $CPPFLAGS"
7075 # Assume visibility is not broken with libc++. The below test is very much designed for libstdc++
7077 if test "$CPP_LIBRARY" = GLIBCXX; then
7078 dnl gcc#19664, gcc#22482, rhbz#162935
7079 AC_MSG_CHECKING([if STL headers are visibility safe (GCC bug 22482)])
7080 AC_EGREP_HEADER(visibility push, string, stlvisok=yes, stlvisok=no)
7081 AC_MSG_RESULT([$stlvisok])
7082 if test "$stlvisok" = "no"; then
7083 AC_MSG_ERROR([Your libstdc++ headers are not visibility safe. This is no longer supported.])
7087 # As the below test checks things when linking self-compiled dynamic libraries, it presumably is irrelevant
7088 # when we don't make any dynamic libraries?
7089 if test "$DISABLE_DYNLOADING" = ""; then
7090 AC_MSG_CHECKING([if $CXX_BASE is -fvisibility-inlines-hidden safe (Clang bug 11250)])
7091 cat > conftestlib1.cc <<_ACEOF
7092 template<typename T> struct S1 { virtual ~S1() {} virtual void f() {} };
7093 struct S2: S1<int> { virtual ~S2(); };
7096 cat > conftestlib2.cc <<_ACEOF
7097 template<typename T> struct S1 { virtual ~S1() {} virtual void f() {} };
7098 struct S2: S1<int> { virtual ~S2(); };
7099 struct S3: S2 { virtual ~S3(); }; S3::~S3() {}
7101 gccvisinlineshiddenok=yes
7102 if ! $CXX $CXXFLAGS $CPPFLAGS $LINKFLAGSSHL -fPIC -fvisibility-inlines-hidden conftestlib1.cc -o libconftest1$DLLPOST >/dev/null 2>&5; then
7103 gccvisinlineshiddenok=no
7105 dnl At least Clang -fsanitize=address and -fsanitize=undefined are
7106 dnl known to not work with -z defs (unsetting which makes the test
7108 my_linkflagsnoundefs=$LINKFLAGSNOUNDEFS
7109 if test "$COM_IS_CLANG" = TRUE; then
7110 for i in $CXX $CXXFLAGS; do
7113 my_linkflagsnoundefs=
7119 if ! $CXX $CXXFLAGS $CPPFLAGS $LINKFLAGSSHL -fPIC -fvisibility-inlines-hidden conftestlib2.cc -L. -lconftest1 $my_linkflagsnoundefs -o libconftest2$DLLPOST >/dev/null 2>&5; then
7120 gccvisinlineshiddenok=no
7125 AC_MSG_RESULT([$gccvisinlineshiddenok])
7126 if test "$gccvisinlineshiddenok" = "no"; then
7127 AC_MSG_ERROR([Your gcc/clang is not -fvisibility-inlines-hidden safe. This is no longer supported.])
7131 AC_MSG_CHECKING([if $CXX_BASE has a visibility bug with class-level attributes (GCC bug 26905)])
7132 cat >visibility.cxx <<_ACEOF
7133 #pragma GCC visibility push(hidden)
7134 struct __attribute__ ((visibility ("default"))) TestStruct {
7137 __attribute__ ((visibility ("default"))) void TestFunc() {
7141 if ! $CXX $CXXFLAGS $CPPFLAGS -fpic -S visibility.cxx; then
7146 if test "$_os" = "Darwin" -o "$_os" = "iOS"; then
7149 if $EGREP -q '@PLT|@GOT' visibility.s || test "$ENABLE_LTO" = "TRUE"; then
7161 rm -f visibility.s visibility.cxx
7163 AC_MSG_RESULT([$gccvisbroken])
7164 if test "$gccvisbroken" = "yes"; then
7165 AC_MSG_ERROR([Your gcc is not -fvisibility=hidden safe. This is no longer supported.])
7168 CPPFLAGS="$save_CPPFLAGS"
7173 dnl ===================================================================
7175 dnl ===================================================================
7177 HAVE_GCC_FNO_ENFORCE_EH_SPECS=
7178 if test "$GCC" = "yes"; then
7179 AC_MSG_CHECKING([whether $CXX_BASE supports -fno-enforce-eh-specs])
7181 save_CXXFLAGS=$CXXFLAGS
7182 CXXFLAGS="$CFLAGS -Werror -fno-enforce-eh-specs"
7183 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[ return 0; ]])],[ HAVE_GCC_FNO_ENFORCE_EH_SPECS=TRUE ],[])
7184 CXXFLAGS=$save_CXXFLAGS
7186 if test "$HAVE_GCC_FNO_ENFORCE_EH_SPECS" = "TRUE"; then
7187 AC_MSG_RESULT([yes])
7192 AC_SUBST(HAVE_GCC_FNO_ENFORCE_EH_SPECS)
7194 dnl ===================================================================
7195 dnl Compiler plugins
7196 dnl ===================================================================
7199 # currently only Clang
7201 if test "$COM_IS_CLANG" != "TRUE"; then
7202 if test "$libo_fuzzed_enable_compiler_plugins" = yes -a "$enable_compiler_plugins" = yes; then
7203 AC_MSG_NOTICE([Resetting --enable-compiler-plugins=no])
7204 enable_compiler_plugins=no
7208 COMPILER_PLUGINS_COM_IS_CLANG=
7209 if test "$COM_IS_CLANG" = "TRUE"; then
7210 if test -n "$enable_compiler_plugins"; then
7211 compiler_plugins="$enable_compiler_plugins"
7212 elif test -n "$ENABLE_DBGUTIL"; then
7213 compiler_plugins=test
7217 if test "$compiler_plugins" != no -a "$my_apple_clang" != yes; then
7218 if test "$CLANGVER" -lt 50002; then
7219 if test "$compiler_plugins" = yes; then
7220 AC_MSG_ERROR([Clang $CLANGVER is too old to build compiler plugins; need >= 5.0.2.])
7226 if test "$compiler_plugins" != "no"; then
7227 dnl The prefix where Clang resides, override to where Clang resides if
7228 dnl using a source build:
7229 if test -z "$CLANGDIR"; then
7230 CLANGDIR=$(dirname $(dirname $($CXX -print-prog-name=$(basename $CXX))))
7232 # Assume Clang is self-built, but allow overriding COMPILER_PLUGINS_CXX to the compiler Clang was built with.
7233 if test -z "$COMPILER_PLUGINS_CXX"; then
7234 COMPILER_PLUGINS_CXX=[$(echo $CXX | sed -e 's/-fsanitize=[^ ]*//g')]
7236 clangbindir=$CLANGDIR/bin
7237 if test "$build_os" = "cygwin"; then
7238 clangbindir=$(cygpath -u "$clangbindir")
7240 AC_PATH_PROG(LLVM_CONFIG, llvm-config,[],"$clangbindir" $PATH)
7241 if test -n "$LLVM_CONFIG"; then
7242 COMPILER_PLUGINS_CXXFLAGS=$($LLVM_CONFIG --cxxflags)
7243 COMPILER_PLUGINS_LINKFLAGS=$($LLVM_CONFIG --ldflags --libs --system-libs | tr '\n' ' ')
7244 if test -z "$CLANGLIBDIR"; then
7245 CLANGLIBDIR=$($LLVM_CONFIG --libdir)
7247 # Try if clang is built from source (in which case its includes are not together with llvm includes).
7248 # src-root is [llvm-toplevel-src-dir]/llvm, clang is [llvm-toplevel-src-dir]/clang
7249 clangsrcdir=$(dirname $($LLVM_CONFIG --src-root))
7250 if test -n "$clangsrcdir" -a -d "$clangsrcdir" -a -d "$clangsrcdir/clang/include"; then
7251 COMPILER_PLUGINS_CXXFLAGS="$COMPILER_PLUGINS_CXXFLAGS -I$clangsrcdir/clang/include"
7253 # obj-root is [llvm-toplevel-obj-dir]/, clang is [llvm-toplevel-obj-dir]/tools/clang
7254 clangobjdir=$($LLVM_CONFIG --obj-root)
7255 if test -n "$clangobjdir" -a -d "$clangobjdir" -a -d "$clangobjdir/tools/clang/include"; then
7256 COMPILER_PLUGINS_CXXFLAGS="$COMPILER_PLUGINS_CXXFLAGS -I$clangobjdir/tools/clang/include"
7259 AC_MSG_NOTICE([compiler plugins compile flags: $COMPILER_PLUGINS_CXXFLAGS])
7263 save_CPPFLAGS=$CPPFLAGS
7264 save_CXXFLAGS=$CXXFLAGS
7265 save_LDFLAGS=$LDFLAGS
7267 CXX=$COMPILER_PLUGINS_CXX
7268 CXXCPP="$COMPILER_PLUGINS_CXX -E"
7269 CPPFLAGS="$COMPILER_PLUGINS_CXXFLAGS"
7270 CXXFLAGS="$COMPILER_PLUGINS_CXXFLAGS"
7271 AC_CHECK_HEADER(clang/Basic/SourceLocation.h,
7272 [COMPILER_PLUGINS=TRUE],
7274 if test "$compiler_plugins" = "yes"; then
7275 AC_MSG_ERROR([Cannot find Clang headers to build compiler plugins.])
7277 AC_MSG_WARN([Cannot find Clang headers to build compiler plugins, plugins disabled])
7278 add_warning "Cannot find Clang headers to build compiler plugins, plugins disabled."
7281 dnl TODO: Windows doesn't use LO_CLANG_SHARED_PLUGINS for now, see corresponding TODO
7282 dnl comment in compilerplugins/Makefile-clang.mk:
7283 if test -n "$COMPILER_PLUGINS" && test "$_os" != "WINNT"; then
7285 AC_MSG_CHECKING([for clang libraries to use])
7286 if test -z "$CLANGTOOLLIBS"; then
7287 LIBS="-lclangTooling -lclangFrontend -lclangDriver -lclangParse -lclangSema -lclangEdit \
7288 -lclangAnalysis -lclangAST -lclangLex -lclangSerialization -lclangBasic $COMPILER_PLUGINS_LINKFLAGS"
7290 AC_LANG_PROGRAM([[#include "clang/Basic/SourceLocation.h"]],
7291 [[ clang::FullSourceLoc().dump(); ]])
7292 ],[CLANGTOOLLIBS="$LIBS"],[])
7294 if test -z "$CLANGTOOLLIBS"; then
7295 LIBS="-lclang-cpp $COMPILER_PLUGINS_LINKFLAGS"
7297 AC_LANG_PROGRAM([[#include "clang/Basic/SourceLocation.h"]],
7298 [[ clang::FullSourceLoc().dump(); ]])
7299 ],[CLANGTOOLLIBS="$LIBS"],[])
7301 AC_MSG_RESULT([$CLANGTOOLLIBS])
7302 if test -z "$CLANGTOOLLIBS"; then
7303 if test "$compiler_plugins" = "yes"; then
7304 AC_MSG_ERROR([Cannot find Clang libraries to build compiler plugins.])
7306 AC_MSG_WARN([Cannot find Clang libraries to build compiler plugins, plugins disabled])
7307 add_warning "Cannot find Clang libraries to build compiler plugins, plugins disabled."
7311 if test -n "$COMPILER_PLUGINS"; then
7312 if test -z "$CLANGSYSINCLUDE"; then
7313 if test -n "$LLVM_CONFIG"; then
7314 # Path to the clang system headers (no idea if there's a better way to get it).
7315 CLANGSYSINCLUDE=$($LLVM_CONFIG --libdir)/clang/$($LLVM_CONFIG --version | sed 's/git\|svn//')/include
7322 CPPFLAGS=$save_CPPFLAGS
7323 CXXFLAGS=$save_CXXFLAGS
7324 LDFLAGS=$save_LDFLAGS
7328 AC_MSG_CHECKING([whether the compiler for building compilerplugins is actually Clang])
7329 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
7335 [AC_MSG_RESULT([yes])
7336 COMPILER_PLUGINS_COM_IS_CLANG=TRUE],
7337 [AC_MSG_RESULT([no])])
7338 AC_SUBST(COMPILER_PLUGINS_COM_IS_CLANG)
7341 if test "$enable_compiler_plugins" = "yes"; then
7342 AC_MSG_ERROR([Compiler plugins are currently supported only with the Clang compiler.])
7345 COMPILER_PLUGINS_ANALYZER_PCH=
7346 if test "$enable_compiler_plugins_analyzer_pch" != no; then
7347 COMPILER_PLUGINS_ANALYZER_PCH=TRUE
7349 AC_SUBST(COMPILER_PLUGINS)
7350 AC_SUBST(COMPILER_PLUGINS_ANALYZER_PCH)
7351 AC_SUBST(COMPILER_PLUGINS_COM_IS_CLANG)
7352 AC_SUBST(COMPILER_PLUGINS_CXX)
7353 AC_SUBST(COMPILER_PLUGINS_CXXFLAGS)
7354 AC_SUBST(COMPILER_PLUGINS_CXX_LINKFLAGS)
7355 AC_SUBST(COMPILER_PLUGINS_DEBUG)
7356 AC_SUBST(COMPILER_PLUGINS_TOOLING_ARGS)
7358 AC_SUBST(CLANGLIBDIR)
7359 AC_SUBST(CLANGTOOLLIBS)
7360 AC_SUBST(CLANGSYSINCLUDE)
7362 # Plugin to help linker.
7363 # Add something like LD_PLUGIN=/usr/lib64/LLVMgold.so to your autogen.input.
7364 # This makes --enable-lto build with clang work.
7367 AC_CHECK_FUNCS(posix_fallocate, HAVE_POSIX_FALLOCATE=YES, [HAVE_POSIX_FALLOCATE=NO])
7368 AC_SUBST(HAVE_POSIX_FALLOCATE)
7370 dnl ===================================================================
7371 dnl Custom build version
7372 dnl ===================================================================
7374 AC_MSG_CHECKING([whether to add custom build version])
7375 if test "$with_build_version" != ""; then
7376 BUILD_VER_STRING=$with_build_version
7377 AC_MSG_RESULT([yes, $BUILD_VER_STRING])
7382 AC_SUBST(BUILD_VER_STRING)
7384 JITC_PROCESSOR_TYPE=""
7385 if test "$_os" = "Linux" -a "$host_cpu" = "powerpc"; then
7386 # IBMs JDK needs this...
7387 JITC_PROCESSOR_TYPE=6
7388 export JITC_PROCESSOR_TYPE
7390 AC_SUBST([JITC_PROCESSOR_TYPE])
7392 # Misc Windows Stuff
7393 AC_ARG_WITH(ucrt-dir,
7394 AS_HELP_STRING([--with-ucrt-dir],
7395 [path to the directory with the arch-specific MSU packages of the Windows Universal CRT redistributables
7396 (MS KB 2999226) for packaging into the installsets (without those the target system needs to install
7397 the UCRT or Visual C++ Runtimes manually). The directory must contain the following 6 files:
7398 Windows6.1-KB2999226-x64.msu
7399 Windows6.1-KB2999226-x86.msu
7400 Windows8.1-KB2999226-x64.msu
7401 Windows8.1-KB2999226-x86.msu
7402 Windows8-RT-KB2999226-x64.msu
7403 Windows8-RT-KB2999226-x86.msu
7404 A zip archive including those files is available from Microsoft site:
7405 https://www.microsoft.com/en-us/download/details.aspx?id=48234]),
7407 UCRT_REDISTDIR="$with_ucrt_dir"
7408 if test $_os = "WINNT"; then
7411 MSVC_DLL_PATH=`win_short_path_for_make "$msvcdllpath"`
7412 MSVC_DLLS="$msvcdlls"
7413 MSM_PATH=`win_short_path_for_make "$msmdir"`
7414 # MSVC 15.3 changed it to VC141
7415 if echo "$msvcdllpath" | grep -q "VC142.CRT$"; then
7416 SCPDEFS="$SCPDEFS -DWITH_VC142_REDIST"
7417 elif echo "$msvcdllpath" | grep -q "VC141.CRT$"; then
7418 SCPDEFS="$SCPDEFS -DWITH_VC141_REDIST"
7420 SCPDEFS="$SCPDEFS -DWITH_VC${VCVER}_REDIST"
7423 if test "$UCRT_REDISTDIR" = "no"; then
7424 dnl explicitly disabled
7427 if ! test -f "$UCRT_REDISTDIR/Windows6.1-KB2999226-x64.msu" -a \
7428 -f "$UCRT_REDISTDIR/Windows6.1-KB2999226-x86.msu" -a \
7429 -f "$UCRT_REDISTDIR/Windows8.1-KB2999226-x64.msu" -a \
7430 -f "$UCRT_REDISTDIR/Windows8.1-KB2999226-x86.msu" -a \
7431 -f "$UCRT_REDISTDIR/Windows8-RT-KB2999226-x64.msu" -a \
7432 -f "$UCRT_REDISTDIR/Windows8-RT-KB2999226-x86.msu"; then
7434 if test -n "$PKGFORMAT"; then
7435 for i in $PKGFORMAT; do
7438 AC_MSG_WARN([--without-ucrt-dir not specified or MSUs not found - installer will have runtime dependency])
7439 add_warning "--without-ucrt-dir not specified or MSUs not found - installer will have runtime dependency"
7448 AC_SUBST(UCRT_REDISTDIR)
7449 AC_SUBST(MSVC_DLL_PATH)
7453 dnl ===================================================================
7455 dnl ===================================================================
7456 if test "$ENABLE_JAVA" != ""; then
7458 # Windows-specific tests
7459 if test "$build_os" = "cygwin"; then
7460 if test "$BITNESS_OVERRIDE" = 64; then
7466 if test -z "$with_jdk_home"; then
7467 dnl See <https://docs.oracle.com/javase/9/migrate/toc.htm#JSMIG-GUID-EEED398E-AE37-4D12-
7468 dnl AB10-49F82F720027> section "Windows Registry Key Changes":
7469 reg_get_value "$bitness" "HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/JDK/CurrentVersion"
7470 if test -n "$regvalue"; then
7472 reg_get_value "$bitness" "HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/JDK/$ver/JavaHome"
7475 if test -z "$with_jdk_home"; then
7477 reg_get_value "$bitness" "HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Development Kit/$ver/JavaHome"
7478 if test -n "$regvalue"; then
7484 if test -f "$_jdk_home/lib/jvm.lib" -a -f "$_jdk_home/bin/java.exe"; then
7485 with_jdk_home="$_jdk_home"
7486 howfound="found automatically"
7488 AC_MSG_ERROR([No JDK found, pass the --with-jdk-home option pointing to a $bitness-bit JDK])
7491 test "$build_os" = "cygwin" && with_jdk_home=`win_short_path_for_make "$with_jdk_home"`
7492 howfound="you passed"
7496 # macOS: /usr/libexec/java_home helps to set the current JDK_HOME. Actually JDK_HOME should NOT be set where java (/usr/bin/java) is located.
7497 # /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java, but /usr does not contain the JDK libraries
7498 if test -z "$with_jdk_home" -a "$_os" = "Darwin" -a -x /usr/libexec/java_home; then
7499 with_jdk_home=`/usr/libexec/java_home`
7502 JAVA_HOME=; export JAVA_HOME
7503 if test -z "$with_jdk_home"; then
7504 AC_PATH_PROG(JAVAINTERPRETER, $with_java)
7506 _java_path="$with_jdk_home/bin/$with_java"
7507 dnl Check if there is a Java interpreter at all.
7508 if test -x "$_java_path"; then
7509 JAVAINTERPRETER=$_java_path
7511 AC_MSG_ERROR([$_java_path not found, pass --with-jdk-home])
7515 dnl Check that the JDK found is correct architecture (at least 2 reasons to
7516 dnl check: officebean needs to link -ljawt, and libjpipe.so needs to be
7517 dnl loaded by java to run JunitTests:
7518 if test "$build_os" = "cygwin"; then
7519 shortjdkhome=`cygpath -d "$with_jdk_home"`
7520 if test "$BITNESS_OVERRIDE" = 64 -a -f "$with_jdk_home/bin/java.exe" -a "`$shortjdkhome/bin/java.exe -version 2>&1 | $GREP -i 64-bit`" = "" >/dev/null; then
7521 AC_MSG_WARN([You are building 64-bit binaries but the JDK $howfound is 32-bit])
7522 AC_MSG_ERROR([You should pass the --with-jdk-home option pointing to a 64-bit JDK])
7523 elif test "$BITNESS_OVERRIDE" = "" -a -f "$_jdk_home/bin/java.exe" -a "`$shortjdkhome/bin/java.exe -version 2>&1 | $GREP -i 64-bit`" != "" >/dev/null; then
7524 AC_MSG_WARN([You are building 32-bit binaries but the JDK $howfound is 64-bit])
7525 AC_MSG_ERROR([You should pass the --with-jdk-home option pointing to a (32-bit) JDK])
7528 if test x`echo "$JAVAINTERPRETER" | $GREP -i '\.exe$'` = x; then
7529 JAVAINTERPRETER="${JAVAINTERPRETER}.exe"
7531 JAVAINTERPRETER=`win_short_path_for_make "$JAVAINTERPRETER"`
7532 elif test "$cross_compiling" != "yes"; then
7534 AARCH64|AXP|X86_64|HPPA|IA64|POWERPC64|S390X|SPARC64|GODSON64)
7535 if test -f "$JAVAINTERPRETER" -a "`$JAVAINTERPRETER -version 2>&1 | $GREP -i 64-bit`" = "" >/dev/null; then
7536 AC_MSG_WARN([You are building 64-bit binaries but the JDK $JAVAINTERPRETER is 32-bit])
7537 AC_MSG_ERROR([You should pass the --with-jdk-home option pointing to a 64-bit JDK])
7540 *) # assumption: everything else 32-bit
7541 if test -f "$JAVAINTERPRETER" -a "`$JAVAINTERPRETER -version 2>&1 | $GREP -i 64-bit`" != "" >/dev/null; then
7542 AC_MSG_WARN([You are building 32-bit binaries but the JDK $howfound is 64-bit])
7543 AC_MSG_ERROR([You should pass the --with-jdk-home option pointing to a (32-bit) JDK])
7550 dnl ===================================================================
7552 dnl ===================================================================
7554 # Note that JAVA_HOME as for now always means the *build* platform's
7555 # JAVA_HOME. Whether all the complexity here actually is needed any
7556 # more or not, no idea.
7558 if test "$ENABLE_JAVA" != ""; then
7560 AC_MSG_CHECKING([the installed JDK])
7561 if test -n "$JAVAINTERPRETER"; then
7562 dnl java -version sends output to stderr!
7563 if test `$JAVAINTERPRETER -version 2>&1 | $GREP -c "Kaffe"` -gt 0; then
7564 AC_MSG_ERROR([No valid check available. Please check the block for your desired java in configure.ac])
7565 elif test `$JAVAINTERPRETER --version 2>&1 | $GREP -c "GNU libgcj"` -gt 0; then
7566 AC_MSG_ERROR([No valid check available. Please check the block for your desired java in configure.ac])
7567 elif test `$JAVAINTERPRETER -version 2>&1 | $AWK '{ print }' | $GREP -c "BEA"` -gt 0; then
7568 AC_MSG_ERROR([No valid check available. Please check the block for your desired java in configure.ac])
7569 elif test `$JAVAINTERPRETER -version 2>&1 | $AWK '{ print }' | $GREP -c "IBM"` -gt 0; then
7572 dnl IBM JDK specific tests
7573 _jdk=`$JAVAINTERPRETER -version 2>&1 | $AWK -F'"' '{ print \$2 }' | $SED s/[[-A-Za-z]]*//`
7574 _jdk_ver=`echo "$_jdk" | $AWK -F. '{ print (($1 * 100) + $2) * 100 + $3;}'`
7576 if test "$_jdk_ver" -lt 10800; then
7577 AC_MSG_ERROR([IBM JDK is too old, you need at least 8])
7580 AC_MSG_RESULT([found (IBM JDK $_jdk)])
7582 if test "$with_jdk_home" = ""; then
7583 AC_MSG_ERROR([In order to successfully build LibreOffice using the IBM JDK,
7584 you must use the "--with-jdk-home" configure option explicitly])
7587 JAVA_HOME=$with_jdk_home
7591 dnl Sun JDK specific tests
7592 _jdk=`$JAVAINTERPRETER -version 2>&1 | $AWK -F'"' '{ print \$2 }' | $SED '/^$/d' | $SED s/[[-A-Za-z]]*//`
7593 _jdk_ver=`echo "$_jdk" | $AWK -F. '{ print (($1 * 100) + $2) * 100 + $3;}'`
7595 if test "$_jdk_ver" -lt 10800; then
7596 AC_MSG_ERROR([JDK is too old, you need at least 8])
7598 if test "$_jdk_ver" -gt 10800; then
7599 JAVA_CLASSPATH_NOT_SET=TRUE
7602 AC_MSG_RESULT([found (JDK $_jdk)])
7603 JAVA_HOME=`echo $JAVAINTERPRETER | $SED -n "s,//*bin//*java,,p"`
7604 if test "$_os" = "WINNT"; then
7605 JAVA_HOME=`echo $JAVA_HOME | $SED "s,\.[[eE]][[xX]][[eE]]$,,"`
7608 # set to limit VM usage for JunitTests
7610 # set to limit VM usage for javac
7611 JAVAFLAGS=-J-Xmx128M
7614 AC_MSG_ERROR([Java not found. You need at least JDK 8])
7622 dnl ===================================================================
7623 dnl Checks for javac
7624 dnl ===================================================================
7625 if test "$ENABLE_JAVA" != ""; then
7626 javacompiler="javac"
7627 : ${JAVA_SOURCE_VER=8}
7628 : ${JAVA_TARGET_VER=8}
7629 if test -z "$with_jdk_home"; then
7630 AC_PATH_PROG(JAVACOMPILER, $javacompiler)
7632 _javac_path="$with_jdk_home/bin/$javacompiler"
7633 dnl Check if there is a Java compiler at all.
7634 if test -x "$_javac_path"; then
7635 JAVACOMPILER=$_javac_path
7638 if test -z "$JAVACOMPILER"; then
7639 AC_MSG_ERROR([$javacompiler not found set with_jdk_home])
7641 if test "$build_os" = "cygwin"; then
7642 if test x`echo "$JAVACOMPILER" | $GREP -i '\.exe$'` = x; then
7643 JAVACOMPILER="${JAVACOMPILER}.exe"
7645 JAVACOMPILER=`win_short_path_for_make "$JAVACOMPILER"`
7649 dnl ===================================================================
7650 dnl Checks for javadoc
7651 dnl ===================================================================
7652 if test "$ENABLE_JAVA" != ""; then
7653 if test -z "$with_jdk_home"; then
7654 AC_PATH_PROG(JAVADOC, javadoc)
7656 _javadoc_path="$with_jdk_home/bin/javadoc"
7657 dnl Check if there is a javadoc at all.
7658 if test -x "$_javadoc_path"; then
7659 JAVADOC=$_javadoc_path
7661 AC_PATH_PROG(JAVADOC, javadoc)
7664 if test -z "$JAVADOC"; then
7665 AC_MSG_ERROR([$_javadoc_path not found set with_jdk_home])
7667 if test "$build_os" = "cygwin"; then
7668 if test x`echo "$JAVADOC" | $GREP -i '\.exe$'` = x; then
7669 JAVADOC="${JAVADOC}.exe"
7671 JAVADOC=`win_short_path_for_make "$JAVADOC"`
7674 if test `$JAVADOC --version 2>&1 | $GREP -c "gjdoc"` -gt 0; then
7675 JAVADOCISGJDOC="yes"
7678 AC_SUBST(JAVADOCISGJDOC)
7680 if test "$ENABLE_JAVA" != ""; then
7681 # check if JAVA_HOME was (maybe incorrectly?) set automatically to /usr
7682 if test "$JAVA_HOME" = "/usr" -a "x$with_jdk_home" = "x"; then
7683 if basename $(readlink $(readlink $JAVACOMPILER)) >/dev/null 2>/dev/null; then
7684 # try to recover first by looking whether we have an alternative
7685 # system as in Debian or newer SuSEs where following /usr/bin/javac
7686 # over /etc/alternatives/javac leads to the right bindir where we
7687 # just need to strip a bit away to get a valid JAVA_HOME
7688 JAVA_HOME=$(readlink $(readlink $JAVACOMPILER))
7689 elif readlink $JAVACOMPILER >/dev/null 2>/dev/null; then
7690 # maybe only one level of symlink (e.g. on Mac)
7691 JAVA_HOME=$(readlink $JAVACOMPILER)
7692 if test "$(dirname $JAVA_HOME)" = "."; then
7693 # we've got no path to trim back
7698 AC_MSG_WARN([JAVA_HOME is set to /usr - this is very likely to be incorrect])
7699 AC_MSG_WARN([if this is the case, please inform the correct JAVA_HOME with --with-jdk-home])
7700 add_warning "JAVA_HOME is set to /usr - this is very likely to be incorrect"
7701 add_warning "if this is the case, please inform the correct JAVA_HOME with --with-jdk-home"
7703 dnl now that we probably have the path to the real javac, make a JAVA_HOME out of it...
7704 if test "$JAVA_HOME" != "/usr"; then
7705 if test "$_os" = "Darwin" -o "$OS_FOR_BUILD" = MACOSX; then
7706 dnl Leopard returns a non-suitable path with readlink - points to "Current" only
7707 JAVA_HOME=$(echo $JAVA_HOME | $SED -e s,/Current/Commands/javac$,/CurrentJDK/Home,)
7708 dnl Tiger already returns a JDK path...
7709 JAVA_HOME=$(echo $JAVA_HOME | $SED -e s,/CurrentJDK/Commands/javac$,/CurrentJDK/Home,)
7711 JAVA_HOME=$(echo $JAVA_HOME | $SED -e s,/bin/javac$,,)
7712 dnl check that we have a directory as certain distros eg gentoo substitute javac for a script
7713 dnl that checks which version to run
7714 if test -f "$JAVA_HOME"; then
7715 JAVA_HOME=""; # set JAVA_HOME to null if it's a file
7720 # as we drop out of this, JAVA_HOME may have been set to the empty string by readlink
7722 dnl now if JAVA_HOME has been set to empty, then call findhome to find it
7723 if test -z "$JAVA_HOME"; then
7724 if test "x$with_jdk_home" = "x"; then
7725 cat > findhome.java <<_ACEOF
7726 [import java.io.File;
7730 public static void main(String args[])
7732 String jrelocation = System.getProperty("java.home");
7733 File jre = new File(jrelocation);
7734 System.out.println(jre.getParent());
7738 AC_MSG_CHECKING([if javac works])
7739 javac_cmd="$JAVACOMPILER findhome.java 1>&2"
7740 AC_TRY_EVAL(javac_cmd)
7741 if test $? = 0 -a -f ./findhome.class; then
7742 AC_MSG_RESULT([javac works])
7744 echo "configure: javac test failed" >&5
7745 cat findhome.java >&5
7746 AC_MSG_ERROR([javac does not work - java projects will not build!])
7748 AC_MSG_CHECKING([if gij knows its java.home])
7749 JAVA_HOME=`$JAVAINTERPRETER findhome`
7750 if test $? = 0 -a "$JAVA_HOME" != ""; then
7751 AC_MSG_RESULT([$JAVA_HOME])
7753 echo "configure: java test failed" >&5
7754 cat findhome.java >&5
7755 AC_MSG_ERROR([gij does not know its java.home - use --with-jdk-home])
7757 # clean-up after ourselves
7758 rm -f ./findhome.java ./findhome.class
7760 JAVA_HOME=`echo $JAVAINTERPRETER | $SED -n "s,//*bin//*$with_java,,p"`
7764 # now check if $JAVA_HOME is really valid
7765 if test "$_os" = "Darwin" -o "$OS_FOR_BUILD" = MACOSX; then
7766 case "${JAVA_HOME}" in
7767 /Library/Java/JavaVirtualMachines/*)
7770 AC_MSG_ERROR([JDK in $JAVA_HOME cannot be used in CppUnit tests - install Oracle JDK])
7773 if test ! -f "$JAVA_HOME/lib/jvm.cfg" -a "x$with_jdk_home" = "x"; then
7774 AC_MSG_WARN([JAVA_HOME was not explicitly informed with --with-jdk-home. the configure script])
7775 AC_MSG_WARN([attempted to find JAVA_HOME automatically, but apparently it failed])
7776 AC_MSG_WARN([in case JAVA_HOME is incorrectly set, some projects will not be built correctly])
7777 add_warning "JAVA_HOME was not explicitly informed with --with-jdk-home. the configure script"
7778 add_warning "attempted to find JAVA_HOME automatically, but apparently it failed"
7779 add_warning "in case JAVA_HOME is incorrectly set, some projects will not be built correctly"
7782 PathFormat "$JAVA_HOME"
7783 JAVA_HOME="$formatted_path"
7786 if test -z "$JAWTLIB" -a -n "$ENABLE_JAVA" -a "$_os" != Android -a \
7789 AC_MSG_CHECKING([for JAWT lib])
7790 if test "$_os" = WINNT; then
7791 # The path to $JAVA_HOME/lib/$JAWTLIB is part of $ILIB:
7796 AS_IF([test -e "$JAVA_HOME/jre/lib/aarch32/libjawt.so"], [my_java_arch=aarch32], [my_java_arch=arm])
7797 JAVA_ARCH=$my_java_arch
7812 AS_IF([test -e "$JAVA_HOME/jre/lib/ppc64le/libjawt.so"], [my_java_arch=ppc64le], [my_java_arch=ppc64])
7813 JAVA_ARCH=$my_java_arch
7816 my_java_arch=sparcv9
7822 my_java_arch=$host_cpu
7825 # This is where JDK9 puts the library
7826 if test -e "$JAVA_HOME/lib/libjawt.so"; then
7827 JAWTLIB="-L$JAVA_HOME/lib/ -ljawt"
7829 JAWTLIB="-L$JAVA_HOME/jre/lib/$my_java_arch -ljawt"
7831 AS_IF([test "$JAVA_ARCH" != ""], [AC_DEFINE_UNQUOTED([JAVA_ARCH], ["$JAVA_ARCH"])])
7833 AC_MSG_RESULT([$JAWTLIB])
7837 if test -n "$ENABLE_JAVA" -a -z "$JAVAINC"; then
7841 JAVAINC="-I$JAVA_HOME/include"
7842 JAVAINC="$JAVAINC -I$JAVA_HOME/include/aix"
7843 test -d "$JAVA_HOME/include/native_thread" && JAVAINC="$JAVAINC -I$JAVA_HOME/include/native_thread"
7847 JAVAINC="-I$JAVA_HOME/include/win32"
7848 JAVAINC="$JAVAINC -I$JAVA_HOME/include"
7852 if test -d "$JAVA_HOME/include/darwin"; then
7853 JAVAINC="-I$JAVA_HOME/include -I$JAVA_HOME/include/darwin"
7855 JAVAINC=${ISYSTEM}$FRAMEWORKSHOME/JavaVM.framework/Versions/Current/Headers
7860 JAVAINC="-I$JAVA_HOME/include"
7861 test -d "$JAVA_HOME/include/native_thread" && JAVAINC="$JAVAINC -I$JAVA_HOME/include/native_thread"
7865 JAVAINC="-I$JAVA_HOME/include"
7866 JAVAINC="$JAVAINC -I$JAVA_HOME/include/freebsd"
7867 JAVAINC="$JAVAINC -I$JAVA_HOME/include/bsd"
7868 JAVAINC="$JAVAINC -I$JAVA_HOME/include/linux"
7869 test -d "$JAVA_HOME/include/native_thread" && JAVAINC="$JAVAINC -I$JAVA_HOME/include/native_thread"
7873 JAVAINC="-I$JAVA_HOME/include"
7874 JAVAINC="$JAVAINC -I$JAVA_HOME/include/linux"
7875 test -d "$JAVA_HOME/include/native_thread" && JAVAINC="$JAVAINC -I$JAVA_HOME/include/native_thread"
7879 JAVAINC="-I$JAVA_HOME/include"
7880 JAVAINC="$JAVAINC -I$JAVA_HOME/include/linux"
7881 test -d "$JAVA_HOME/include/native_thread" && JAVAINC="$JAVAINC -I$JAVA_HOME/include/native_thread"
7885 JAVAINC="-I$JAVA_HOME/include"
7886 JAVAINC="$JAVAINC -I$JAVA_HOME/include/netbsd"
7887 test -d "$JAVA_HOME/include/native_thread" && JAVAINC="$JAVAINC -I$JAVA_HOME/include/native_thread"
7891 JAVAINC="-I$JAVA_HOME/include"
7892 JAVAINC="$JAVAINC -I$JAVA_HOME/include/openbsd"
7893 test -d "$JAVA_HOME/include/native_thread" && JAVAINC="$JAVAINC -I$JAVA_HOME/include/native_thread"
7897 JAVAINC="-I$JAVA_HOME/include"
7898 JAVAINC="$JAVAINC -I$JAVA_HOME/include/solaris"
7899 test -d "$JAVA_HOME/include/native_thread" && JAVAINC="$JAVAINC -I$JAVA_HOME/include/native_thread"
7903 SOLARINC="$SOLARINC $JAVAINC"
7905 AC_SUBST(JAVACOMPILER)
7907 AC_SUBST(JAVAINTERPRETER)
7908 AC_SUBST(JAVAIFLAGS)
7910 AC_SUBST(JAVA_CLASSPATH_NOT_SET)
7912 AC_SUBST(JAVA_SOURCE_VER)
7913 AC_SUBST(JAVA_TARGET_VER)
7917 dnl ===================================================================
7918 dnl Export file validation
7919 dnl ===================================================================
7920 AC_MSG_CHECKING([whether to enable export file validation])
7921 if test "$with_export_validation" != "no"; then
7922 if test -z "$ENABLE_JAVA"; then
7923 if test "$with_export_validation" = "yes"; then
7924 AC_MSG_ERROR([requested, but Java is disabled])
7926 AC_MSG_RESULT([no, as Java is disabled])
7928 elif ! test -d "${SRC_ROOT}/schema"; then
7929 if test "$with_export_validation" = "yes"; then
7930 AC_MSG_ERROR([requested, but schema directory is missing (it is excluded from tarballs)])
7932 AC_MSG_RESULT([no, schema directory is missing (it is excluded from tarballs)])
7935 AC_MSG_RESULT([yes])
7936 AC_DEFINE(HAVE_EXPORT_VALIDATION)
7938 AC_PATH_PROGS(ODFVALIDATOR, odfvalidator)
7939 if test -z "$ODFVALIDATOR"; then
7940 # remember to download the ODF toolkit with validator later
7941 AC_MSG_NOTICE([no odfvalidator found, will download it])
7942 BUILD_TYPE="$BUILD_TYPE ODFVALIDATOR"
7943 ODFVALIDATOR="$BUILDDIR/bin/odfvalidator.sh"
7945 # and fetch name of odfvalidator jar name from download.lst
7946 ODFVALIDATOR_JAR=`$SED -n -e "s/export *ODFVALIDATOR_JAR *:= *\(.*\) */\1/p" $SRC_ROOT/download.lst`
7947 AC_SUBST(ODFVALIDATOR_JAR)
7949 if test -z "$ODFVALIDATOR_JAR"; then
7950 AC_MSG_ERROR([cannot determine odfvalidator jar location (--with-export-validation)])
7953 if test "$build_os" = "cygwin"; then
7954 # In case of Cygwin it will be executed from Windows,
7955 # so we need to run bash and absolute path to validator
7956 # so instead of "odfvalidator" it will be
7957 # something like "bash.exe C:\cygwin\opt\lo\bin\odfvalidator"
7958 ODFVALIDATOR="bash.exe `cygpath -m "$ODFVALIDATOR"`"
7960 ODFVALIDATOR="sh $ODFVALIDATOR"
7962 AC_SUBST(ODFVALIDATOR)
7965 AC_PATH_PROGS(OFFICEOTRON, officeotron)
7966 if test -z "$OFFICEOTRON"; then
7967 # remember to download the officeotron with validator later
7968 AC_MSG_NOTICE([no officeotron found, will download it])
7969 BUILD_TYPE="$BUILD_TYPE OFFICEOTRON"
7970 OFFICEOTRON="$BUILDDIR/bin/officeotron.sh"
7972 # and fetch name of officeotron jar name from download.lst
7973 OFFICEOTRON_JAR=`$SED -n -e "s/export *OFFICEOTRON_JAR *:= *\(.*\) */\1/p" $SRC_ROOT/download.lst`
7974 AC_SUBST(OFFICEOTRON_JAR)
7976 if test -z "$OFFICEOTRON_JAR"; then
7977 AC_MSG_ERROR([cannot determine officeotron jar location (--with-export-validation)])
7980 # check version of existing officeotron
7981 OFFICEOTRON_VER=`$OFFICEOTRON --version | $AWK -F. '{ print \$1*10000+\$2*100+\$3 }'`
7982 if test 0"$OFFICEOTRON_VER" -lt 704; then
7983 AC_MSG_ERROR([officeotron too old])
7986 if test "$build_os" = "cygwin"; then
7987 # In case of Cygwin it will be executed from Windows,
7988 # so we need to run bash and absolute path to validator
7989 # so instead of "odfvalidator" it will be
7990 # something like "bash.exe C:\cygwin\opt\lo\bin\odfvalidator"
7991 OFFICEOTRON="bash.exe `cygpath -m "$OFFICEOTRON"`"
7993 OFFICEOTRON="sh $OFFICEOTRON"
7996 AC_SUBST(OFFICEOTRON)
8001 AC_MSG_CHECKING([for Microsoft Binary File Format Validator])
8002 if test "$with_bffvalidator" != "no"; then
8003 AC_DEFINE(HAVE_BFFVALIDATOR)
8005 if test "$with_export_validation" = "no"; then
8006 AC_MSG_ERROR([Please enable export validation (-with-export-validation)!])
8009 if test "$with_bffvalidator" = "yes"; then
8010 BFFVALIDATOR=`win_short_path_for_make "$PROGRAMFILES/Microsoft Office/BFFValidator/BFFValidator.exe"`
8012 BFFVALIDATOR="$with_bffvalidator"
8015 if test "$build_os" = "cygwin"; then
8016 if test -n "$BFFVALIDATOR" -a -e "`cygpath $BFFVALIDATOR`"; then
8017 AC_MSG_RESULT($BFFVALIDATOR)
8019 AC_MSG_ERROR([bffvalidator not found, but required by --with-bffvalidator])
8021 elif test -n "$BFFVALIDATOR"; then
8022 # We are not in Cygwin but need to run Windows binary with wine
8023 AC_PATH_PROGS(WINE, wine)
8025 # so swap in a shell wrapper that converts paths transparently
8026 BFFVALIDATOR_EXE="$BFFVALIDATOR"
8027 BFFVALIDATOR="sh $BUILDDIR/bin/bffvalidator.sh"
8028 AC_SUBST(BFFVALIDATOR_EXE)
8029 AC_MSG_RESULT($BFFVALIDATOR)
8031 AC_MSG_ERROR([bffvalidator not found, but required by --with-bffvalidator])
8033 AC_SUBST(BFFVALIDATOR)
8038 dnl ===================================================================
8039 dnl Check for C preprocessor to use
8040 dnl ===================================================================
8041 AC_MSG_CHECKING([which C preprocessor to use in idlc])
8042 if test -n "$with_idlc_cpp"; then
8043 AC_MSG_RESULT([$with_idlc_cpp])
8044 AC_PATH_PROG(SYSTEM_UCPP, $with_idlc_cpp)
8046 AC_MSG_RESULT([ucpp])
8047 AC_MSG_CHECKING([which ucpp tp use])
8048 if test -n "$with_system_ucpp" -a "$with_system_ucpp" != "no"; then
8049 AC_MSG_RESULT([external])
8050 AC_PATH_PROG(SYSTEM_UCPP, ucpp)
8052 AC_MSG_RESULT([internal])
8053 BUILD_TYPE="$BUILD_TYPE UCPP"
8056 AC_SUBST(SYSTEM_UCPP)
8058 dnl ===================================================================
8059 dnl Check for epm (not needed for Windows)
8060 dnl ===================================================================
8061 AC_MSG_CHECKING([whether to enable EPM for packing])
8062 if test "$enable_epm" = "yes"; then
8063 AC_MSG_RESULT([yes])
8064 if test "$_os" != "WINNT"; then
8065 if test $_os = Darwin; then
8067 elif test -n "$with_epm"; then
8070 AC_PATH_PROG(EPM, epm, no)
8072 if test "$EPM" = "no" -o "$EPM" = "internal"; then
8073 AC_MSG_NOTICE([EPM will be built.])
8074 BUILD_TYPE="$BUILD_TYPE EPM"
8075 EPM=${WORKDIR}/UnpackedTarball/epm/epm
8077 # Gentoo has some epm which is something different...
8078 AC_MSG_CHECKING([whether the found epm is the right epm])
8079 if $EPM | grep "ESP Package Manager" >/dev/null 2>/dev/null; then
8080 AC_MSG_RESULT([yes])
8082 AC_MSG_ERROR([no. Install ESP Package Manager (http://www.msweet.org/projects.php?Z2) and/or specify the path to the right epm])
8084 AC_MSG_CHECKING([epm version])
8085 EPM_VERSION=`$EPM | grep 'ESP Package Manager' | cut -d' ' -f4 | $SED -e s/v//`
8086 if test "`echo $EPM_VERSION | cut -d'.' -f1`" -gt "3" || \
8087 test "`echo $EPM_VERSION | cut -d'.' -f1`" -eq "3" -a "`echo $EPM_VERSION | cut -d'.' -f2`" -ge "7"; then
8088 AC_MSG_RESULT([OK, >= 3.7])
8090 AC_MSG_RESULT([too old. epm >= 3.7 is required.])
8091 AC_MSG_ERROR([Install ESP Package Manager (http://www.msweet.org/projects.php?Z2) and/or specify the path to the right epm])
8096 if echo "$PKGFORMAT" | $EGREP rpm 2>&1 >/dev/null; then
8097 AC_MSG_CHECKING([for rpm])
8098 for a in "$RPM" rpmbuild rpm; do
8099 $a --usage >/dev/null 2> /dev/null
8100 if test $? -eq 0; then
8104 $a --version >/dev/null 2> /dev/null
8105 if test $? -eq 0; then
8111 if test -z "$RPM"; then
8112 AC_MSG_ERROR([not found])
8113 elif "$RPM" --help 2>&1 | $EGREP buildroot >/dev/null; then
8114 RPM_PATH=`which $RPM`
8115 AC_MSG_RESULT([$RPM_PATH])
8116 SCPDEFS="$SCPDEFS -DWITH_RPM"
8118 AC_MSG_ERROR([cannot build packages. Try installing rpmbuild.])
8121 if echo "$PKGFORMAT" | $EGREP deb 2>&1 >/dev/null; then
8122 AC_PATH_PROG(DPKG, dpkg, no)
8123 if test "$DPKG" = "no"; then
8124 AC_MSG_ERROR([dpkg needed for deb creation. Install dpkg.])
8127 if echo "$PKGFORMAT" | $EGREP rpm 2>&1 >/dev/null || \
8128 echo "$PKGFORMAT" | $EGREP pkg 2>&1 >/dev/null; then
8129 if test "$with_epm" = "no" -a "$_os" != "Darwin"; then
8130 if test "`echo $EPM_VERSION | cut -d'.' -f1`" -lt "4"; then
8131 AC_MSG_CHECKING([whether epm is patched for LibreOffice's needs])
8132 if grep "Patched for .*Office" $EPM >/dev/null 2>/dev/null; then
8133 AC_MSG_RESULT([yes])
8136 if echo "$PKGFORMAT" | $GREP -q rpm; then
8138 AC_MSG_WARN([the rpms will need to be installed with --nodeps])
8139 add_warning "the rpms will need to be installed with --nodeps"
8143 AC_MSG_WARN([the ${_pt}s will not be relocatable])
8144 add_warning "the ${_pt}s will not be relocatable"
8145 AC_MSG_WARN([if you want to make sure installation without --nodeps and
8146 relocation will work, you need to patch your epm with the
8147 patch in epm/epm-3.7.patch or build with
8148 --with-epm=internal which will build a suitable epm])
8153 if echo "$PKGFORMAT" | $EGREP pkg 2>&1 >/dev/null; then
8154 AC_PATH_PROG(PKGMK, pkgmk, no)
8155 if test "$PKGMK" = "no"; then
8156 AC_MSG_ERROR([pkgmk needed for Solaris pkg creation. Install it.])
8163 for i in $PKGFORMAT; do
8165 aix | bsd | deb | pkg | rpm | native | portable)
8167 [--with-package-format='$PKGFORMAT' requires --enable-epm])
8177 if test "$enable_lotuswordpro" = "yes"; then
8180 AC_SUBST(ENABLE_LWP)
8182 dnl ===================================================================
8183 dnl Check for building ODK
8184 dnl ===================================================================
8185 if test "$enable_odk" = no; then
8188 if test "$with_doxygen" = no; then
8189 AC_MSG_CHECKING([for doxygen])
8193 if test "$with_doxygen" = yes; then
8194 AC_PATH_PROG([DOXYGEN], [doxygen])
8195 if test -z "$DOXYGEN"; then
8196 AC_MSG_ERROR([doxygen not found in \$PATH; specify its pathname via --with-doxygen=..., or disable its use via --without-doxygen])
8198 if $DOXYGEN -g - | grep -q "HAVE_DOT *= *YES"; then
8199 if ! dot -V 2>/dev/null; then
8200 AC_MSG_ERROR([dot not found in \$PATH but doxygen defaults to HAVE_DOT=YES; install graphviz or disable its use via --without-doxygen])
8204 AC_MSG_CHECKING([for doxygen])
8205 DOXYGEN=$with_doxygen
8206 AC_MSG_RESULT([$DOXYGEN])
8208 if test -n "$DOXYGEN"; then
8209 DOXYGEN_VERSION=`$DOXYGEN --version 2>/dev/null`
8210 DOXYGEN_NUMVERSION=`echo $DOXYGEN_VERSION | $AWK -F. '{ print \$1*10000 + \$2*100 + \$3 }'`
8211 if ! test "$DOXYGEN_NUMVERSION" -ge "10804" ; then
8212 AC_MSG_ERROR([found doxygen is too old; need at least version 1.8.4 or specify --without-doxygen])
8219 AC_MSG_CHECKING([whether to build the ODK])
8220 if test "$enable_odk" = "" -o "$enable_odk" != "no"; then
8221 AC_MSG_RESULT([yes])
8223 if test "$with_java" != "no"; then
8224 AC_MSG_CHECKING([whether to build unowinreg.dll])
8225 if test "$_os" = "WINNT" -a "$enable_build_unowinreg" = ""; then
8226 # build on Win by default
8227 enable_build_unowinreg=yes
8229 if test "$enable_build_unowinreg" = "" -o "$enable_build_unowinreg" = "no"; then
8233 AC_MSG_RESULT([yes])
8234 BUILD_UNOWINREG=TRUE
8236 if test "$_os" != "WINNT" -a "$BUILD_UNOWINREG" = "TRUE"; then
8237 if test -z "$with_mingw_cross_compiler"; then
8239 AC_CHECK_PROGS(MINGWCXX,i386-mingw32msvc-g++ i586-pc-mingw32-g++ i686-pc-mingw32-g++ i686-w64-mingw32-g++,false)
8240 elif test -x "$with_mingw_cross_compiler"; then
8241 MINGWCXX="$with_mingw_cross_compiler"
8243 AC_CHECK_TOOL(MINGWCXX, "$with_mingw_cross_compiler", false)
8246 if test "$MINGWCXX" = "false"; then
8247 AC_MSG_ERROR([MinGW32 C++ cross-compiler not found.])
8250 mingwstrip_test="`echo $MINGWCXX | $SED -e s/g++/strip/`"
8251 if test -x "$mingwstrip_test"; then
8252 MINGWSTRIP="$mingwstrip_test"
8254 AC_CHECK_TOOL(MINGWSTRIP, "$mingwstrip_test", false)
8257 if test "$MINGWSTRIP" = "false"; then
8258 AC_MSG_ERROR(MinGW32 binutils not found.)
8262 BUILD_TYPE="$BUILD_TYPE ODK"
8267 AC_SUBST(BUILD_UNOWINREG)
8269 AC_SUBST(MINGWSTRIP)
8271 dnl ===================================================================
8272 dnl Check for system zlib
8273 dnl ===================================================================
8274 if test "$with_system_zlib" = "auto"; then
8277 with_system_zlib="$with_system_libs"
8280 if test "$enable_fuzzers" != "yes"; then
8281 with_system_zlib=yes
8289 dnl we want to use libo_CHECK_SYSTEM_MODULE here too, but macOS is too stupid
8290 dnl and has no pkg-config for it at least on some tinderboxes,
8291 dnl so leaving that out for now
8292 dnl libo_CHECK_SYSTEM_MODULE([zlib],[ZLIB],[zlib])
8293 AC_MSG_CHECKING([which zlib to use])
8294 if test "$with_system_zlib" = "yes"; then
8295 AC_MSG_RESULT([external])
8297 AC_CHECK_HEADER(zlib.h, [],
8298 [AC_MSG_ERROR(zlib.h not found. install zlib)], [])
8299 AC_CHECK_LIB(z, deflate, [ ZLIB_LIBS=-lz ],
8300 [AC_MSG_ERROR(zlib not found or functional)], [])
8302 AC_MSG_RESULT([internal])
8304 BUILD_TYPE="$BUILD_TYPE ZLIB"
8305 ZLIB_CFLAGS="-I${WORKDIR}/UnpackedTarball/zlib"
8306 ZLIB_LIBS="-L${WORKDIR}/LinkTarget/StaticLibrary -lzlib"
8308 AC_SUBST(ZLIB_CFLAGS)
8310 AC_SUBST(SYSTEM_ZLIB)
8312 dnl ===================================================================
8313 dnl Check for system jpeg
8314 dnl ===================================================================
8315 AC_MSG_CHECKING([which libjpeg to use])
8316 if test "$with_system_jpeg" = "yes"; then
8317 AC_MSG_RESULT([external])
8319 AC_CHECK_HEADER(jpeglib.h, [ LIBJPEG_CFLAGS= ],
8320 [AC_MSG_ERROR(jpeg.h not found. install libjpeg)], [])
8321 AC_CHECK_LIB(jpeg, jpeg_resync_to_restart, [ LIBJPEG_LIBS="-ljpeg" ],
8322 [AC_MSG_ERROR(jpeg library not found or functional)], [])
8325 AC_MSG_RESULT([internal, libjpeg-turbo])
8326 BUILD_TYPE="$BUILD_TYPE LIBJPEG_TURBO"
8327 LIBJPEG_CFLAGS="-I${WORKDIR}/UnpackedTarball/libjpeg-turbo"
8328 if test "$COM" = "MSC"; then
8329 LIBJPEG_LIBS="${WORKDIR}/UnpackedTarball/libjpeg-turbo/.libs/libjpeg.lib"
8331 LIBJPEG_LIBS="-L${WORKDIR}/UnpackedTarball/libjpeg-turbo/.libs -ljpeg"
8335 x86_64 | amd64 | i*86 | x86 | ia32)
8336 AC_CHECK_PROGS(NASM, [nasm nasmw yasm])
8337 if test -z "$NASM" -a "$build_os" = "cygwin"; then
8338 if test -n "$LODE_HOME" -a -x "$LODE_HOME/opt/bin/nasm"; then
8339 NASM="$LODE_HOME/opt/bin/nasm"
8340 elif test -x "/opt/lo/bin/nasm"; then
8341 NASM="/opt/lo/bin/nasm"
8345 if test -n "$NASM"; then
8346 AC_MSG_CHECKING([for object file format of host system])
8348 cygwin* | mingw* | pw32* | interix*)
8358 msdosdjgpp* | go32*)
8361 os2-emx*) # not tested
8362 objfmt='MSOMF' # obj
8364 linux*coff* | linux*oldld*)
8380 kfreebsd* | freebsd* | netbsd* | openbsd*)
8381 if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
8394 solaris* | sunos* | sysv* | sco*)
8404 darwin* | rhapsody* | nextstep* | openstep* | macos*)
8419 AC_MSG_RESULT([$objfmt])
8420 if test "$objfmt" = 'ELF ?'; then
8422 AC_MSG_WARN([unexpected host system. assumed that the format is $objfmt.])
8425 AC_MSG_CHECKING([for object file format specifier (NAFLAGS) ])
8427 MSOMF) NAFLAGS='-fobj -DOBJ32';;
8428 Win32-COFF) NAFLAGS='-fwin32 -DWIN32';;
8429 Win64-COFF) NAFLAGS='-fwin64 -DWIN64 -D__x86_64__';;
8430 COFF) NAFLAGS='-fcoff -DCOFF';;
8431 a.out) NAFLAGS='-faout -DAOUT';;
8432 BSD-a.out) NAFLAGS='-faoutb -DAOUT';;
8433 ELF) NAFLAGS='-felf -DELF';;
8434 ELF64) NAFLAGS='-felf64 -DELF -D__x86_64__';;
8435 RDF) NAFLAGS='-frdf -DRDF';;
8436 Mach-O) NAFLAGS='-fmacho -DMACHO';;
8437 Mach-O64) NAFLAGS='-fmacho64 -DMACHO -D__x86_64__';;
8439 AC_MSG_RESULT([$NAFLAGS])
8441 AC_MSG_CHECKING([whether the assembler ($NASM $NAFLAGS) works])
8442 cat > conftest.asm << EOF
8443 [%line __oline__ "configure"
8451 try_nasm='$NASM $NAFLAGS -o conftest.o conftest.asm'
8452 if AC_TRY_EVAL(try_nasm) && test -s conftest.o; then
8455 echo "configure: failed program was:" >&AC_FD_CC
8456 cat conftest.asm >&AC_FD_CC
8459 AC_MSG_WARN([installation or configuration problem: assembler cannot create object files.])
8465 if test -z "$NASM"; then
8467 ****************************************************************************
8468 You need yasm or nasm (Netwide Assembler) to build the internal jpeg library optimally.
8472 if test "$build_os" = "cygwin"; then
8474 install a pre-compiled binary for Win32
8476 mkdir -p /opt/lo/bin
8478 wget https://dev-www.libreoffice.org/bin/cygwin/nasm.exe
8481 or get and install one from http://www.nasm.us/
8483 Then re-run autogen.sh
8485 Note: autogen.sh will try to use /opt/lo/bin/nasm if the environment variable NASM is not already defined.
8486 Alternatively, you can install the 'new' nasm where ever you want and make sure that \`which nasm\` finds it.
8491 consult https://github.com/libjpeg-turbo/libjpeg-turbo/blob/master/BUILDING.md
8495 AC_MSG_WARN([no suitable nasm (Netwide Assembler) found])
8496 add_warning "no suitable nasm (Netwide Assembler) found for internal libjpeg-turbo"
8503 AC_SUBST(LIBJPEG_CFLAGS)
8504 AC_SUBST(LIBJPEG_LIBS)
8505 AC_SUBST(SYSTEM_LIBJPEG)
8507 dnl ===================================================================
8508 dnl Check for system clucene
8509 dnl ===================================================================
8510 dnl we should rather be using
8511 dnl libo_CHECK_SYSTEM_MODULE([clucence],[CLUCENE],[liblucence-core]) here
8512 dnl but the contribs-lib check seems tricky
8513 AC_MSG_CHECKING([which clucene to use])
8514 if test "$with_system_clucene" = "yes"; then
8515 AC_MSG_RESULT([external])
8517 PKG_CHECK_MODULES(CLUCENE, libclucene-core)
8518 CLUCENE_CFLAGS=[$(printf '%s' "$CLUCENE_CFLAGS" | sed -e 's@-I[^ ]*/CLucene/ext@@' -e "s/-I/${ISYSTEM?}/g")]
8519 FilterLibs "${CLUCENE_LIBS}"
8520 CLUCENE_LIBS="${filteredlibs}"
8522 save_CXXFLAGS=$CXXFLAGS
8523 save_CPPFLAGS=$CPPFLAGS
8524 CXXFLAGS="$CXXFLAGS $CLUCENE_CFLAGS"
8525 CPPFLAGS="$CPPFLAGS $CLUCENE_CFLAGS"
8526 dnl http://sourceforge.net/tracker/index.php?func=detail&aid=3392466&group_id=80013&atid=558446
8527 dnl https://bugzilla.redhat.com/show_bug.cgi?id=794795
8528 AC_CHECK_HEADER([CLucene/analysis/cjk/CJKAnalyzer.h], [],
8529 [AC_MSG_ERROR([Your version of libclucene has contribs-lib missing.])], [#include <CLucene.h>])
8530 CXXFLAGS=$save_CXXFLAGS
8531 CPPFLAGS=$save_CPPFLAGS
8534 CLUCENE_LIBS="$CLUCENE_LIBS -lclucene-contribs-lib"
8536 AC_MSG_RESULT([internal])
8538 BUILD_TYPE="$BUILD_TYPE CLUCENE"
8540 AC_SUBST(SYSTEM_CLUCENE)
8541 AC_SUBST(CLUCENE_CFLAGS)
8542 AC_SUBST(CLUCENE_LIBS)
8544 dnl ===================================================================
8545 dnl Check for system expat
8546 dnl ===================================================================
8547 libo_CHECK_SYSTEM_MODULE([expat], [EXPAT], [expat])
8549 dnl ===================================================================
8550 dnl Check for system xmlsec
8551 dnl ===================================================================
8552 libo_CHECK_SYSTEM_MODULE([xmlsec], [XMLSEC], [xmlsec1-nss >= 1.2.28])
8554 AC_MSG_CHECKING([whether to enable Embedded OpenType support])
8555 if test "$_os" != "WINNT" -a "$_os" != "Darwin" -a "$enable_eot" = "yes"; then
8557 AC_DEFINE([ENABLE_EOT])
8558 AC_MSG_RESULT([yes])
8560 libo_CHECK_SYSTEM_MODULE([libeot],[LIBEOT],[libeot >= 0.01])
8565 AC_SUBST([ENABLE_EOT])
8567 dnl ===================================================================
8568 dnl Check for DLP libs
8569 dnl ===================================================================
8570 AS_IF([test "$COM" = "MSC"],
8571 [librevenge_libdir="${WORKDIR}/LinkTarget/Library"],
8572 [librevenge_libdir="${WORKDIR}/UnpackedTarball/librevenge/src/lib/.libs"]
8574 libo_CHECK_SYSTEM_MODULE([librevenge],[REVENGE],[librevenge-0.0 >= 0.0.1],["-I${WORKDIR}/UnpackedTarball/librevenge/inc"],["-L${librevenge_libdir} -lrevenge-0.0"])
8576 libo_CHECK_SYSTEM_MODULE([libodfgen],[ODFGEN],[libodfgen-0.1])
8578 libo_CHECK_SYSTEM_MODULE([libepubgen],[EPUBGEN],[libepubgen-0.1])
8580 AS_IF([test "$COM" = "MSC"],
8581 [libwpd_libdir="${WORKDIR}/LinkTarget/Library"],
8582 [libwpd_libdir="${WORKDIR}/UnpackedTarball/libwpd/src/lib/.libs"]
8584 libo_CHECK_SYSTEM_MODULE([libwpd],[WPD],[libwpd-0.10],["-I${WORKDIR}/UnpackedTarball/libwpd/inc"],["-L${libwpd_libdir} -lwpd-0.10"])
8586 libo_CHECK_SYSTEM_MODULE([libwpg],[WPG],[libwpg-0.3])
8588 libo_CHECK_SYSTEM_MODULE([libwps],[WPS],[libwps-0.4])
8589 libo_PKG_VERSION([WPS], [libwps-0.4], [0.4.10])
8591 libo_CHECK_SYSTEM_MODULE([libvisio],[VISIO],[libvisio-0.1])
8593 libo_CHECK_SYSTEM_MODULE([libcdr],[CDR],[libcdr-0.1])
8595 libo_CHECK_SYSTEM_MODULE([libmspub],[MSPUB],[libmspub-0.1])
8597 libo_CHECK_SYSTEM_MODULE([libmwaw],[MWAW],[libmwaw-0.3 >= 0.3.1])
8598 libo_PKG_VERSION([MWAW], [libmwaw-0.3], [0.3.15])
8600 libo_CHECK_SYSTEM_MODULE([libetonyek],[ETONYEK],[libetonyek-0.1])
8601 libo_PKG_VERSION([ETONYEK], [libetonyek-0.1], [0.1.8])
8603 libo_CHECK_SYSTEM_MODULE([libfreehand],[FREEHAND],[libfreehand-0.1])
8605 libo_CHECK_SYSTEM_MODULE([libebook],[EBOOK],[libe-book-0.1])
8606 libo_PKG_VERSION([EBOOK], [libe-book-0.1], [0.1.2])
8608 libo_CHECK_SYSTEM_MODULE([libabw],[ABW],[libabw-0.1])
8610 libo_CHECK_SYSTEM_MODULE([libpagemaker],[PAGEMAKER],[libpagemaker-0.0])
8612 libo_CHECK_SYSTEM_MODULE([libqxp],[QXP],[libqxp-0.0])
8614 libo_CHECK_SYSTEM_MODULE([libzmf],[ZMF],[libzmf-0.0])
8616 libo_CHECK_SYSTEM_MODULE([libstaroffice],[STAROFFICE],[libstaroffice-0.0])
8617 libo_PKG_VERSION([STAROFFICE], [libstaroffice-0.0], [0.0.6])
8619 dnl ===================================================================
8620 dnl Check for system lcms2
8621 dnl ===================================================================
8622 if test "$with_system_lcms2" != "yes"; then
8625 libo_CHECK_SYSTEM_MODULE([lcms2],[LCMS2],[lcms2],["-I${WORKDIR}/UnpackedTarball/lcms2/include"],["-L${WORKDIR}/UnpackedTarball/lcms2/src/.libs -llcms2"])
8626 if test "$GCC" = "yes"; then
8627 LCMS2_CFLAGS="${LCMS2_CFLAGS} -Wno-long-long"
8629 if test "$COM" = "MSC"; then # override the above
8630 LCMS2_LIBS=${WORKDIR}/UnpackedTarball/lcms2/bin/lcms2.lib
8633 dnl ===================================================================
8634 dnl Check for system cppunit
8635 dnl ===================================================================
8636 if test "$_os" != "Android" ; then
8637 libo_CHECK_SYSTEM_MODULE([cppunit],[CPPUNIT],[cppunit >= 1.14.0])
8640 dnl ===================================================================
8641 dnl Check whether freetype is available
8642 dnl ===================================================================
8643 if test "$test_freetype" = "yes"; then
8644 AC_MSG_CHECKING([whether freetype is available])
8645 # FreeType has 3 different kinds of versions
8646 # * release, like 2.4.10
8647 # * libtool, like 13.0.7 (this what pkg-config returns)
8649 # FreeType's docs/VERSION.DLL provides a table mapping between the three
8652 PKG_CHECK_MODULES(FREETYPE, freetype2 >= 9.9.3)
8653 FREETYPE_CFLAGS=$(printf '%s' "$FREETYPE_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
8654 FilterLibs "${FREETYPE_LIBS}"
8655 FREETYPE_LIBS="${filteredlibs}"
8656 SYSTEM_FREETYPE=TRUE
8658 FREETYPE_CFLAGS="${ISYSTEM}${WORKDIR}/UnpackedTarball/freetype/include"
8659 if test "x$ac_config_site_64bit_host" = xYES; then
8660 FREETYPE_LIBS="-L${WORKDIR}/UnpackedTarball/freetype/instdir/lib64 -lfreetype"
8662 FREETYPE_LIBS="-L${WORKDIR}/UnpackedTarball/freetype/instdir/lib -lfreetype"
8665 AC_SUBST(FREETYPE_CFLAGS)
8666 AC_SUBST(FREETYPE_LIBS)
8667 AC_SUBST([SYSTEM_FREETYPE])
8669 # ===================================================================
8670 # Check for system libxslt
8671 # to prevent incompatibilities between internal libxml2 and external libxslt,
8672 # or vice versa, use with_system_libxml here
8673 # ===================================================================
8674 if test "$with_system_libxml" = "auto"; then
8677 with_system_libxml="$with_system_libs"
8680 if test "$enable_fuzzers" != "yes"; then
8681 with_system_libxml=yes
8683 with_system_libxml=no
8689 AC_MSG_CHECKING([which libxslt to use])
8690 if test "$with_system_libxml" = "yes"; then
8691 AC_MSG_RESULT([external])
8693 if test "$_os" = "Darwin"; then
8694 dnl make sure to use SDK path
8695 LIBXSLT_CFLAGS="-I$MACOSX_SDK_PATH/usr/include/libxml2"
8696 LIBEXSLT_CFLAGS="$LIBXSLT_CFLAGS"
8698 LIBXSLT_LIBS="-lxslt -lxml2 -lz -lpthread -liconv -lm"
8699 LIBEXSLT_LIBS="-lexslt $LIBXSLT_LIBS"
8701 PKG_CHECK_MODULES(LIBXSLT, libxslt)
8702 LIBXSLT_CFLAGS=$(printf '%s' "$LIBXSLT_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
8703 FilterLibs "${LIBXSLT_LIBS}"
8704 LIBXSLT_LIBS="${filteredlibs}"
8705 PKG_CHECK_MODULES(LIBEXSLT, libexslt)
8706 LIBEXSLT_CFLAGS=$(printf '%s' "$LIBEXSLT_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
8707 FilterLibs "${LIBEXSLT_LIBS}"
8708 LIBEXSLT_LIBS=$(printf '%s' "${filteredlibs}" | sed -e "s/-lgpg-error//" -e "s/-lgcrypt//")
8711 dnl Check for xsltproc
8712 AC_PATH_PROG(XSLTPROC, xsltproc, no)
8713 if test "$XSLTPROC" = "no"; then
8714 AC_MSG_ERROR([xsltproc is required])
8717 AC_MSG_RESULT([internal])
8719 BUILD_TYPE="$BUILD_TYPE LIBXSLT"
8721 if test "$cross_compiling" = "yes"; then
8722 AC_PATH_PROG(XSLTPROC, xsltproc, no)
8723 if test "$XSLTPROC" = "no"; then
8724 AC_MSG_ERROR([xsltproc is required])
8728 AC_SUBST(SYSTEM_LIBXSLT)
8729 if test -z "$SYSTEM_LIBXSLT_FOR_BUILD"; then
8730 SYSTEM_LIBXSLT_FOR_BUILD="$SYSTEM_LIBXSLT"
8732 AC_SUBST(SYSTEM_LIBXSLT_FOR_BUILD)
8734 AC_SUBST(LIBEXSLT_CFLAGS)
8735 AC_SUBST(LIBEXSLT_LIBS)
8736 AC_SUBST(LIBXSLT_CFLAGS)
8737 AC_SUBST(LIBXSLT_LIBS)
8740 # ===================================================================
8741 # Check for system libxml
8742 # ===================================================================
8743 AC_MSG_CHECKING([which libxml to use])
8744 if test "$with_system_libxml" = "yes"; then
8745 AC_MSG_RESULT([external])
8747 if test "$_os" = "Darwin"; then
8748 dnl make sure to use SDK path
8749 LIBXML_CFLAGS="-I$MACOSX_SDK_PATH/usr/include/libxml2"
8751 LIBXML_LIBS="-lxml2 -lz -lpthread -liconv -lm"
8752 elif test $_os = iOS; then
8753 dnl make sure to use SDK path
8754 usr=`echo '#include <stdlib.h>' | $CC -E -MD - | grep usr/include/stdlib.h | head -1 | sed -e 's,# 1 ",,' -e 's,/usr/include/.*,/usr,'`
8755 LIBXML_CFLAGS="-I$usr/include/libxml2"
8756 LIBXML_LIBS="-L$usr/lib -lxml2 -liconv"
8758 PKG_CHECK_MODULES(LIBXML, libxml-2.0 >= 2.0)
8759 LIBXML_CFLAGS=$(printf '%s' "$LIBXML_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
8760 FilterLibs "${LIBXML_LIBS}"
8761 LIBXML_LIBS="${filteredlibs}"
8764 dnl Check for xmllint
8765 AC_PATH_PROG(XMLLINT, xmllint, no)
8766 if test "$XMLLINT" = "no"; then
8767 AC_MSG_ERROR([xmllint is required])
8770 AC_MSG_RESULT([internal])
8772 LIBXML_CFLAGS="-I${WORKDIR}/UnpackedTarball/libxml2/include"
8773 if test "$COM" = "MSC"; then
8774 LIBXML_CFLAGS="${LIBXML_CFLAGS} -I${WORKDIR}/UnpackedTarball/icu/source/i18n -I${WORKDIR}/UnpackedTarball/icu/source/common"
8776 if test "$COM" = "MSC"; then
8777 LIBXML_LIBS="${WORKDIR}/UnpackedTarball/libxml2/win32/bin.msvc/libxml2.lib"
8779 LIBXML_LIBS="-L${WORKDIR}/UnpackedTarball/libxml2/.libs -lxml2"
8781 BUILD_TYPE="$BUILD_TYPE LIBXML2"
8783 AC_SUBST(SYSTEM_LIBXML)
8784 if test -z "$SYSTEM_LIBXML_FOR_BUILD"; then
8785 SYSTEM_LIBXML_FOR_BUILD="$SYSTEM_LIBXML"
8787 AC_SUBST(SYSTEM_LIBXML_FOR_BUILD)
8788 AC_SUBST(LIBXML_CFLAGS)
8789 AC_SUBST(LIBXML_LIBS)
8792 # =====================================================================
8793 # Checking for a Python interpreter with version >= 2.7.
8794 # Build and runtime requires Python 3 compatible version (>= 2.7).
8795 # Optionally user can pass an option to configure, i. e.
8796 # ./configure PYTHON=/usr/bin/python
8797 # =====================================================================
8798 if test "$build_os" != "cygwin" -a "$enable_python" != fully-internal; then
8799 if test -n "$PYTHON"; then
8800 PYTHON_FOR_BUILD=$PYTHON
8802 # This allows a lack of system python with no error, we use internal one in that case.
8803 AM_PATH_PYTHON([2.7],, [:])
8804 # Clean PYTHON_VERSION checked below if cross-compiling
8806 if test "$PYTHON" != ":"; then
8807 PYTHON_FOR_BUILD=$PYTHON
8811 AC_SUBST(PYTHON_FOR_BUILD)
8813 # Checks for Python to use for Pyuno
8814 AC_MSG_CHECKING([which Python to use for Pyuno])
8815 case "$enable_python" in
8817 if test -z $PYTHON_FOR_BUILD; then
8818 # Python is required to build LibreOffice. In theory we could separate the build-time Python
8819 # requirement from the choice whether to include Python stuff in the installer, but why
8821 AC_MSG_ERROR([Python is required at build time.])
8824 AC_MSG_RESULT([none])
8827 if test "$DISABLE_SCRIPTING" = TRUE -a -n "$PYTHON_FOR_BUILD"; then
8828 AC_MSG_RESULT([no, overridden by --disable-scripting])
8830 elif test $build_os = cygwin; then
8831 dnl When building on Windows we don't attempt to use any installed
8832 dnl "system" Python.
8833 AC_MSG_RESULT([fully internal])
8834 enable_python=internal
8835 elif test "$cross_compiling" = yes; then
8836 AC_MSG_RESULT([system])
8837 enable_python=system
8839 # Unset variables set by the above AM_PATH_PYTHON so that
8840 # we actually do check anew.
8842 unset PYTHON am_cv_pathless_PYTHON ac_cv_path_PYTHON am_cv_python_version am_cv_python_platform am_cv_python_pythondir am_cv_python_pyexecdir
8843 AM_PATH_PYTHON([3.3],, [:])
8844 AC_MSG_CHECKING([which Python to use for Pyuno])
8845 if test "$PYTHON" = ":"; then
8846 if test -z "$PYTHON_FOR_BUILD"; then
8847 AC_MSG_RESULT([fully internal])
8849 AC_MSG_RESULT([internal])
8851 enable_python=internal
8853 AC_MSG_RESULT([system])
8854 enable_python=system
8859 AC_MSG_RESULT([internal])
8862 AC_MSG_RESULT([fully internal])
8863 enable_python=internal
8866 AC_MSG_RESULT([system])
8867 if test "$_os" = Darwin; then
8868 AC_MSG_ERROR([--enable-python=system doesn't work on macOS: /System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7/unicodeobject.h is known to contain uses of "register", which is removed from C++17])
8872 AC_MSG_ERROR([Incorrect --enable-python option])
8876 if test $enable_python != no; then
8877 BUILD_TYPE="$BUILD_TYPE PYUNO"
8880 if test $enable_python = system; then
8881 if test -n "$PYTHON_CFLAGS" -a -n "$PYTHON_LIBS"; then
8882 # Fallback: Accept these in the environment, or as set above
8885 elif test "$cross_compiling" != yes; then
8886 # Unset variables set by the above AM_PATH_PYTHON so that
8887 # we actually do check anew.
8888 unset PYTHON am_cv_pathless_PYTHON ac_cv_path_PYTHON am_cv_python_version am_cv_python_platform am_cv_python_pythondir am_cv_python_pyexecdir
8889 # This causes an error if no python command is found
8890 AM_PATH_PYTHON([3.3])
8891 python_include=`$PYTHON -c "import distutils.sysconfig; print(distutils.sysconfig.get_config_var('INCLUDEPY'));"`
8892 python_version=`$PYTHON -c "import distutils.sysconfig; print(distutils.sysconfig.get_config_var('VERSION'));"`
8893 python_libs=`$PYTHON -c "import distutils.sysconfig; print(distutils.sysconfig.get_config_var('LIBS'));"`
8894 python_libdir=`$PYTHON -c "import distutils.sysconfig; print(distutils.sysconfig.get_config_var('LIBDIR'));"`
8895 if test -z "$PKG_CONFIG"; then
8896 PYTHON_CFLAGS="-I$python_include"
8897 PYTHON_LIBS="-L$python_libdir -lpython$python_version $python_libs"
8898 elif $PKG_CONFIG --exists python-$python_version-embed; then
8899 PYTHON_CFLAGS="`$PKG_CONFIG --cflags python-$python_version-embed`"
8900 PYTHON_LIBS="`$PKG_CONFIG --libs python-$python_version-embed` $python_libs"
8901 elif $PKG_CONFIG --exists python-$python_version; then
8902 PYTHON_CFLAGS="`$PKG_CONFIG --cflags python-$python_version`"
8903 PYTHON_LIBS="`$PKG_CONFIG --libs python-$python_version` $python_libs"
8905 PYTHON_CFLAGS="-I$python_include"
8906 PYTHON_LIBS="-L$python_libdir -lpython$python_version $python_libs"
8908 FilterLibs "${PYTHON_LIBS}"
8909 PYTHON_LIBS="${filteredlibs}"
8911 dnl How to find out the cross-compilation Python installation path?
8912 AC_MSG_CHECKING([for python version])
8913 AS_IF([test -n "$PYTHON_VERSION"],
8914 [AC_MSG_RESULT([$PYTHON_VERSION])],
8915 [AC_MSG_RESULT([not found])
8916 AC_MSG_ERROR([no usable python found])])
8917 test -n "$PYTHON_CFLAGS" && break
8920 dnl Check if the headers really work
8921 save_CPPFLAGS="$CPPFLAGS"
8922 CPPFLAGS="$CPPFLAGS $PYTHON_CFLAGS"
8923 AC_CHECK_HEADER(Python.h)
8924 CPPFLAGS="$save_CPPFLAGS"
8926 # let the PYTHON_FOR_BUILD match the same python installation that
8927 # provides PYTHON_CFLAGS/PYTHON_LDFLAGS for pyuno, which should be
8928 # better for PythonTests.
8929 PYTHON_FOR_BUILD=$PYTHON
8932 if test "$with_lxml" != no; then
8933 if test -z "$PYTHON_FOR_BUILD"; then
8936 AC_MSG_WARN([No system-provided python lxml, gla11y will only report widget classes and ids])
8939 if test "$cross_compiling" != yes ; then
8940 BUILD_TYPE="$BUILD_TYPE LXML"
8945 AC_MSG_CHECKING([for python lxml])
8946 if $PYTHON_FOR_BUILD -c "import lxml.etree as ET" 2> /dev/null ; then
8947 AC_MSG_RESULT([yes])
8951 AC_MSG_RESULT([no, gla11y will only report widget classes and ids])
8954 if test "$cross_compiling" != yes -a "x$ac_cv_header_Python_h" = "xyes"; then
8955 BUILD_TYPE="$BUILD_TYPE LXML"
8956 AC_MSG_RESULT([no, using internal lxml])
8958 AC_MSG_RESULT([no, and system does not provide python development headers, gla11y will only report widget classes and ids])
8966 dnl By now enable_python should be "system", "internal" or "no"
8967 case $enable_python in
8971 if test "x$ac_cv_header_Python_h" != "xyes"; then
8972 AC_MSG_ERROR([Python headers not found. You probably want to set both the PYTHON_CFLAGS and PYTHON_LIBS environment variables.])
8976 CFLAGS="$CFLAGS $PYTHON_CFLAGS"
8977 AC_MSG_CHECKING([for correct python library version])
8978 AC_RUN_IFELSE([AC_LANG_SOURCE([[
8981 int main(int argc, char **argv) {
8982 if ((PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION >= 7) ||
8983 (PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION >= 3)) return 0;
8986 ]])],[AC_MSG_RESULT([ok])],[AC_MSG_ERROR([Python >= 3.3 is needed when building with Python 3, or Python >= 2.7 when building with Python 2])],[AC_MSG_RESULT([skipped; cross-compiling])])
8990 dnl FIXME Check if the Python library can be linked with, too?
8995 PYTHON_VERSION_MAJOR=3
8996 PYTHON_VERSION_MINOR=7
8997 PYTHON_VERSION=${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}.6
8998 if ! grep -q -i python.*${PYTHON_VERSION} ${SRC_ROOT}/download.lst; then
8999 AC_MSG_ERROR([PYTHON_VERSION ${PYTHON_VERSION} but no matching file in download.lst])
9001 AC_DEFINE_UNQUOTED([PYTHON_VERSION_STRING], [L"${PYTHON_VERSION}"])
9002 BUILD_TYPE="$BUILD_TYPE PYTHON"
9003 if test "$OS" = LINUX; then
9004 BUILD_TYPE="$BUILD_TYPE LIBFFI"
9006 # Embedded Python dies without Home set
9007 if test "$HOME" = ""; then
9016 AC_MSG_ERROR([Internal configure script error, invalid enable_python value "$enable_python"])
9020 AC_SUBST(DISABLE_PYTHON)
9021 AC_SUBST(SYSTEM_PYTHON)
9022 AC_SUBST(PYTHON_CFLAGS)
9023 AC_SUBST(PYTHON_LIBS)
9024 AC_SUBST(PYTHON_VERSION)
9025 AC_SUBST(PYTHON_VERSION_MAJOR)
9026 AC_SUBST(PYTHON_VERSION_MINOR)
9028 ENABLE_MARIADBC=TRUE
9029 if test "$_os" = "Android" -o "$_os" = "iOS" -o "$enable_mpl_subset" = "yes"; then
9035 if test "$ENABLE_MARIADBC" = "TRUE"; then
9036 BUILD_TYPE="$BUILD_TYPE MARIADBC"
9039 AC_SUBST(ENABLE_MARIADBC)
9040 AC_SUBST(MARIADBC_MAJOR)
9041 AC_SUBST(MARIADBC_MINOR)
9042 AC_SUBST(MARIADBC_MICRO)
9044 if test "$ENABLE_MARIADBC" = "TRUE"; then
9045 dnl ===================================================================
9046 dnl Check for system MariaDB
9047 dnl ===================================================================
9048 AC_MSG_CHECKING([which MariaDB to use])
9049 if test "$with_system_mariadb" = "yes"; then
9050 AC_MSG_RESULT([external])
9051 SYSTEM_MARIADB_CONNECTOR_C=TRUE
9052 #AC_PATH_PROG(MARIADBCONFIG, [mariadb_config])
9053 if test -z "$MARIADBCONFIG"; then
9054 AC_PATH_PROG(MARIADBCONFIG, [mysql_config])
9055 if test -z "$MARIADBCONFIG"; then
9056 AC_MSG_ERROR([mysql_config is missing. Install MySQL client library development package.])
9057 #AC_MSG_ERROR([mariadb_config and mysql_config are missing. Install MariaDB or MySQL client library development package.])
9060 AC_MSG_CHECKING([MariaDB version])
9061 MARIADB_VERSION=`$MARIADBCONFIG --version`
9062 MARIADB_MAJOR=`$MARIADBCONFIG --version | cut -d"." -f1`
9063 if test "$MARIADB_MAJOR" -ge "5"; then
9066 AC_MSG_ERROR([too old, use 5.0.x or later])
9068 AC_MSG_CHECKING([for MariaDB Client library])
9069 MARIADB_CFLAGS=`$MARIADBCONFIG --cflags`
9070 if test "$COM_IS_CLANG" = TRUE; then
9071 MARIADB_CFLAGS=$(printf '%s' "$MARIADB_CFLAGS" | sed -e s/-fstack-protector-strong//)
9073 MARIADB_LIBS=`$MARIADBCONFIG --libs_r`
9074 dnl At least mariadb-5.5.34-3.fc20.x86_64 plus
9075 dnl mariadb-5.5.34-3.fc20.i686 reports 64-bit specific output even under
9077 if test "$OS" = LINUX -a "$CPUNAME" = INTEL; then
9078 MARIADB_CFLAGS=$(printf '%s' "$MARIADB_CFLAGS" | sed -e s/-m64//)
9079 MARIADB_LIBS=$(printf '%s' "$MARIADB_LIBS" \
9080 | sed -e 's|/lib64/|/lib/|')
9082 FilterLibs "${MARIADB_LIBS}"
9083 MARIADB_LIBS="${filteredlibs}"
9084 AC_MSG_RESULT([includes '$MARIADB_CFLAGS', libraries '$MARIADB_LIBS'])
9085 AC_MSG_CHECKING([whether to bundle the MySQL/MariaDB client library])
9086 if test "$enable_bundle_mariadb" = "yes"; then
9087 AC_MSG_RESULT([yes])
9088 BUNDLE_MARIADB_CONNECTOR_C=TRUE
9089 LIBMARIADB=lib$(echo "${MARIADB_LIBS}" | sed -e 's/[[[:space:]]]\{1,\}-l\([[^[:space:]]]\{1,\}\)/\
9091 /g' -e 's/^-l\([[^[:space:]]]\{1,\}\)[[[:space:]]]*/\
9093 /g' | grep -E '(mysqlclient|mariadb)')
9094 if test "$_os" = "Darwin"; then
9095 LIBMARIADB=${LIBMARIADB}.dylib
9096 elif test "$_os" = "WINNT"; then
9097 LIBMARIADB=${LIBMARIADB}.dll
9099 LIBMARIADB=${LIBMARIADB}.so
9101 LIBMARIADB_PATH=$($MARIADBCONFIG --variable=pkglibdir)
9102 AC_MSG_CHECKING([for $LIBMARIADB in $LIBMARIADB_PATH])
9103 if test -e "$LIBMARIADB_PATH/$LIBMARIADB"; then
9104 AC_MSG_RESULT([found.])
9105 PathFormat "$LIBMARIADB_PATH"
9106 LIBMARIADB_PATH="$formatted_path"
9108 AC_MSG_ERROR([not found.])
9112 BUNDLE_MARIADB_CONNECTOR_C=
9115 AC_MSG_RESULT([internal])
9116 SYSTEM_MARIADB_CONNECTOR_C=
9117 MARIADB_CFLAGS="-I${WORKDIR}/UnpackedTarball/mariadb-connector-c/include"
9118 MARIADB_LIBS="-L${WORKDIR}/LinkTarget/StaticLibrary -lmariadb-connector-c"
9119 BUILD_TYPE="$BUILD_TYPE MARIADB_CONNECTOR_C"
9122 AC_SUBST(SYSTEM_MARIADB_CONNECTOR_C)
9123 AC_SUBST(MARIADB_CFLAGS)
9124 AC_SUBST(MARIADB_LIBS)
9125 AC_SUBST(LIBMARIADB)
9126 AC_SUBST(LIBMARIADB_PATH)
9127 AC_SUBST(BUNDLE_MARIADB_CONNECTOR_C)
9130 dnl ===================================================================
9131 dnl Check for system hsqldb
9132 dnl ===================================================================
9133 if test "$with_java" != "no"; then
9134 HSQLDB_USE_JDBC_4_1=
9135 AC_MSG_CHECKING([which hsqldb to use])
9136 if test "$with_system_hsqldb" = "yes"; then
9137 AC_MSG_RESULT([external])
9139 if test -z $HSQLDB_JAR; then
9140 HSQLDB_JAR=/usr/share/java/hsqldb.jar
9142 if ! test -f $HSQLDB_JAR; then
9143 AC_MSG_ERROR(hsqldb.jar not found.)
9145 AC_MSG_CHECKING([whether hsqldb is 1.8.0.x])
9149 my $file = "$ENV{'HSQLDB_JAR'}";
9150 my $zip = Archive::Zip->new( $file );
9151 my $mf = $zip->contents ( "META-INF/MANIFEST.MF" );
9152 if ( $mf =~ m/Specification-Version: 1.8.*/ )
9154 push @l, split(/\n/, $mf);
9155 foreach my $line (@l)
9157 if ($line =~ m/Specification-Version:/)
9159 ($t, $version) = split (/:/,$line);
9160 $version =~ s/^\s//;
9161 ($a, $b, $c, $d) = split (/\./,$version);
9162 if ($c == "0" && $d > "8")
9177 AC_MSG_RESULT([yes])
9179 AC_MSG_ERROR([no, you need hsqldb >= 1.8.0.9 but < 1.8.1])
9182 AC_MSG_RESULT([internal])
9184 BUILD_TYPE="$BUILD_TYPE HSQLDB"
9186 AC_MSG_CHECKING([whether hsqldb should be built with JDBC 4.1])
9187 javanumver=`$JAVAINTERPRETER -version 2>&1 | $AWK -v num=true -f $SRC_ROOT/solenv/bin/getcompver.awk`
9188 if expr "$javanumver" '>=' 000100060000 > /dev/null; then
9189 AC_MSG_RESULT([yes])
9190 HSQLDB_USE_JDBC_4_1=TRUE
9195 AC_SUBST(SYSTEM_HSQLDB)
9196 AC_SUBST(HSQLDB_JAR)
9197 AC_SUBST([HSQLDB_USE_JDBC_4_1])
9200 dnl ===================================================================
9201 dnl Check for PostgreSQL stuff
9202 dnl ===================================================================
9203 AC_MSG_CHECKING([whether to build the PostgreSQL SDBC driver])
9204 if test "x$enable_postgresql_sdbc" != "xno"; then
9205 AC_MSG_RESULT([yes])
9206 SCPDEFS="$SCPDEFS -DWITH_POSTGRESQL_SDBC"
9208 if test "$with_krb5" = "yes" -a "$enable_openssl" = "no"; then
9209 AC_MSG_ERROR([krb5 needs OpenSSL, but --disable-openssl was given.])
9211 if test "$with_gssapi" = "yes" -a "$enable_openssl" = "no"; then
9212 AC_MSG_ERROR([GSSAPI needs OpenSSL, but --disable-openssl was given.])
9215 postgres_interface=""
9216 if test "$with_system_postgresql" = "yes"; then
9217 postgres_interface="external PostgreSQL"
9218 SYSTEM_POSTGRESQL=TRUE
9219 if test "$_os" = Darwin; then
9221 for d in /Library/PostgreSQL/9.*/bin /sw/opt/postgresql/9.*/bin /opt/local/lib/postgresql9*/bin; do
9222 pg_supp_path="$P_SEP$d$pg_supp_path"
9225 AC_PATH_PROG(PGCONFIG, pg_config, ,$PATH$pg_supp_path)
9226 if test -n "$PGCONFIG"; then
9227 POSTGRESQL_INC=-I$(${PGCONFIG} --includedir)
9228 POSTGRESQL_LIB="-L$(${PGCONFIG} --libdir)"
9230 PKG_CHECK_MODULES(POSTGRESQL, libpq, [
9231 POSTGRESQL_INC=$POSTGRESQL_CFLAGS
9232 POSTGRESQL_LIB=$POSTGRESQL_LIBS
9234 AC_MSG_ERROR([pg_config or 'pkg-config libpq' needed; set PGCONFIG if not in PATH])
9237 FilterLibs "${POSTGRESQL_LIB}"
9238 POSTGRESQL_LIB="${filteredlibs}"
9240 # if/when anything else than PostgreSQL uses Kerberos,
9241 # move this out of `test "x$enable_postgresql_sdbc" != "xno"'
9246 # macOS has system MIT Kerberos 5 since 10.4
9247 if test "$with_krb5" != "no"; then
9250 # Not sure whether it makes any sense here to search multiple potential libraries; it is not likely
9251 # that the libraries where these functions are located on macOS will change, is it?
9252 AC_SEARCH_LIBS(com_err, [com_err 'com_err -lssl -lcrypto' krb5 'krb5 -lcrypto -ldes -lasn1 -lroken'], [],
9253 [AC_MSG_ERROR([could not find function 'com_err' required for Kerberos 5])])
9256 AC_SEARCH_LIBS(krb5_sendauth, [krb5 'krb5 -lcrypto -ldes -lasn1 -lroken'], [],
9257 [AC_MSG_ERROR([could not find function 'krb5_sendauth' required for Kerberos 5])])
9258 KRB5_LIBS="$KRB5_LIBS $LIBS"
9261 if test "$with_gssapi" != "no"; then
9264 AC_SEARCH_LIBS(gss_init_sec_context, [gssapi_krb5 gss 'gssapi -lkrb5 -lcrypto'], [],
9265 [AC_MSG_ERROR([could not find function 'gss_init_sec_context' required for GSSAPI])])
9271 if test "$with_krb5" = "yes" -o "$with_gssapi" = "yes"; then
9272 AC_MSG_ERROR([Refusing to enable MIT Kerberos 5 or GSSAPI on Windows.])
9275 Linux|GNU|*BSD|DragonFly)
9276 if test "$with_krb5" != "no"; then
9279 AC_SEARCH_LIBS(com_err, [com_err 'com_err -lssl -lcrypto' krb5 'krb5 -lcrypto -ldes -lasn1 -lroken'], [],
9280 [AC_MSG_ERROR([could not find function 'com_err' required for Kerberos 5])])
9283 AC_SEARCH_LIBS(krb5_sendauth, [krb5 'krb5 -lcrypto -ldes -lasn1 -lroken'], [],
9284 [AC_MSG_ERROR([could not find function 'krb5_sendauth' required for Kerberos 5])])
9285 KRB5_LIBS="$KRB5_LIBS $LIBS"
9288 if test "$with_gssapi" != "no"; then
9291 AC_SEARCH_LIBS(gss_init_sec_context, [gssapi_krb5 gss 'gssapi -lkrb5 -lcrypto'], [],
9292 [AC_MSG_ERROR([could not find function 'gss_init_sec_context' required for GSSAPI])])
9298 if test "$with_krb5" = "yes"; then
9301 AC_SEARCH_LIBS(com_err, [com_err 'com_err -lssl -lcrypto' krb5 'krb5 -lcrypto -ldes -lasn1 -lroken'], [],
9302 [AC_MSG_ERROR([could not find function 'com_err' required for Kerberos 5])])
9305 AC_SEARCH_LIBS(krb5_sendauth, [krb5 'krb5 -lcrypto -ldes -lasn1 -lroken'], [],
9306 [AC_MSG_ERROR([could not find function 'krb5_sendauth' required for Kerberos 5])])
9307 KRB5_LIBS="$KRB5_LIBS $LIBS"
9310 if test "$with_gssapi" = "yes"; then
9313 AC_SEARCH_LIBS(gss_init_sec_context, [gssapi_krb5 gss 'gssapi -lkrb5 -lcrypto'], [],
9314 [AC_MSG_ERROR([could not find function 'gss_init_sec_context' required for GSSAPI])])
9320 if test -n "$with_libpq_path"; then
9321 SYSTEM_POSTGRESQL=TRUE
9322 postgres_interface="external libpq"
9323 POSTGRESQL_LIB="-L${with_libpq_path}/lib/"
9324 POSTGRESQL_INC=-I"${with_libpq_path}/include/"
9327 postgres_interface="internal"
9329 POSTGRESQL_INC="%OVERRIDE_ME%"
9330 BUILD_TYPE="$BUILD_TYPE POSTGRESQL"
9334 AC_MSG_CHECKING([PostgreSQL C interface])
9335 AC_MSG_RESULT([$postgres_interface])
9337 if test "${SYSTEM_POSTGRESQL}" = "TRUE"; then
9338 AC_MSG_NOTICE([checking system PostgreSQL prerequisites])
9340 save_CPPFLAGS=$CPPFLAGS
9342 CPPFLAGS="${CPPFLAGS} ${POSTGRESQL_INC}"
9343 LIBS="${LIBS} ${POSTGRESQL_LIB}"
9344 AC_CHECK_HEADER([libpq-fe.h], [], [AC_MSG_ERROR([libpq-fe.h is needed])], [])
9345 AC_CHECK_LIB([pq], [PQconnectdbParams], [:],
9346 [AC_MSG_ERROR(libpq not found or too old. Need >= 9.0)], [])
9348 CPPFLAGS=$save_CPPFLAGS
9351 BUILD_POSTGRESQL_SDBC=TRUE
9356 AC_SUBST(WITH_GSSAPI)
9357 AC_SUBST(GSSAPI_LIBS)
9359 AC_SUBST(BUILD_POSTGRESQL_SDBC)
9360 AC_SUBST(SYSTEM_POSTGRESQL)
9361 AC_SUBST(POSTGRESQL_INC)
9362 AC_SUBST(POSTGRESQL_LIB)
9364 dnl ===================================================================
9365 dnl Check for Firebird stuff
9366 dnl ===================================================================
9367 ENABLE_FIREBIRD_SDBC=
9368 if test "$enable_firebird_sdbc" = "yes" ; then
9369 SCPDEFS="$SCPDEFS -DWITH_FIREBIRD_SDBC"
9371 dnl ===================================================================
9372 dnl Check for system Firebird
9373 dnl ===================================================================
9374 AC_MSG_CHECKING([which Firebird to use])
9375 if test "$with_system_firebird" = "yes"; then
9376 AC_MSG_RESULT([external])
9377 SYSTEM_FIREBIRD=TRUE
9378 AC_PATH_PROG(FIREBIRDCONFIG, [fb_config])
9379 if test -z "$FIREBIRDCONFIG"; then
9380 AC_MSG_NOTICE([No fb_config -- using pkg-config])
9381 PKG_CHECK_MODULES([FIREBIRD], [fbclient >= 3], [FIREBIRD_PKGNAME=fbclient], [
9382 PKG_CHECK_MODULES([FIREBIRD], [fbembed], [FIREBIRD_PKGNAME=fbembed])
9384 FIREBIRD_VERSION=`pkg-config --modversion "$FIREBIRD_PKGNAME"`
9386 AC_MSG_NOTICE([fb_config found])
9387 FIREBIRD_VERSION=`$FIREBIRDCONFIG --version`
9388 AC_MSG_CHECKING([for Firebird Client library])
9389 FIREBIRD_CFLAGS=`$FIREBIRDCONFIG --cflags`
9390 FIREBIRD_LIBS=`$FIREBIRDCONFIG --embedlibs`
9391 FilterLibs "${FIREBIRD_LIBS}"
9392 FIREBIRD_LIBS="${filteredlibs}"
9394 AC_MSG_RESULT([includes `$FIREBIRD_CFLAGS', libraries `$FIREBIRD_LIBS'])
9395 AC_MSG_CHECKING([Firebird version])
9396 if test -n "${FIREBIRD_VERSION}"; then
9397 FIREBIRD_MAJOR=`echo $FIREBIRD_VERSION | cut -d"." -f1`
9398 FIREBIRD_MINOR=`echo $FIREBIRD_VERSION | cut -d"." -f2`
9399 if test "$FIREBIRD_MAJOR" -eq "3" -a "$FIREBIRD_MINOR" -eq "0"; then
9402 AC_MSG_ERROR([Ensure firebird 3.0.x is installed])
9405 __save_CFLAGS="${CFLAGS}"
9406 CFLAGS="${CFLAGS} ${FIREBIRD_CFLAGS}"
9407 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include <ibase.h>
9408 #if defined(FB_API_VER) && FB_API_VER == 30
9409 int fb_api_is_30(void) { return 0; }
9411 #error "Wrong Firebird API version"
9412 #endif]])],AC_MSG_RESULT([OK]),AC_MSG_ERROR([Ensure firebird 3.0.x is installed]))
9413 CFLAGS="${__save_CFLAGS}"
9415 ENABLE_FIREBIRD_SDBC=TRUE
9416 AC_DEFINE([ENABLE_FIREBIRD_SDBC],1)
9417 elif test "$enable_database_connectivity" != yes; then
9418 AC_MSG_RESULT([none])
9419 elif test "$cross_compiling" = "yes"; then
9420 AC_MSG_RESULT([none])
9422 dnl Embedded Firebird has version 3.0
9423 AC_DEFINE(HAVE_FIREBIRD_30, 1)
9424 dnl We need libatomic_ops for any non X86/X64 system
9425 if test "${CPUNAME}" != INTEL -a "${CPUNAME}" != X86_64; then
9426 dnl ===================================================================
9427 dnl Check for system libatomic_ops
9428 dnl ===================================================================
9429 libo_CHECK_SYSTEM_MODULE([libatomic_ops],[ATOMIC_OPS],[atomic_ops >= 0.7.2])
9430 if test "$with_system_libatomic_ops" = "yes"; then
9431 SYSTEM_LIBATOMIC_OPS=TRUE
9432 AC_CHECK_HEADERS(atomic_ops.h, [],
9433 [AC_MSG_ERROR(atomic_ops.h not found. install libatomic_ops)], [])
9435 SYSTEM_LIBATOMIC_OPS=
9436 LIBATOMIC_OPS_CFLAGS="-I${WORKDIR}/UnpackedTarball/libatomic_ops/include"
9437 LIBATOMIC_OPS_LIBS="-latomic_ops"
9438 BUILD_TYPE="$BUILD_TYPE LIBATOMIC_OPS"
9442 AC_MSG_RESULT([internal])
9444 FIREBIRD_CFLAGS="-I${WORKDIR}/UnpackedTarball/firebird/gen/Release/firebird/include"
9445 FIREBIRD_LIBS="-lfbclient"
9447 if test "$with_system_libtommath" = "yes"; then
9448 SYSTEM_LIBTOMMATH=TRUE
9449 dnl check for tommath presence
9451 AC_CHECK_HEADER(tommath.h,,AC_MSG_ERROR(Include file for tommath not found - please install development tommath package))
9452 AC_CHECK_LIB(tommath, mp_init, TOMMATH_LIBS=-ltommath, AC_MSG_ERROR(Library tommath not found - please install development tommath package))
9456 LIBTOMMATH_CFLAGS="-I${WORKDIR}/UnpackedTarball/libtommath"
9457 LIBTOMMATH_LIBS="-ltommath"
9458 BUILD_TYPE="$BUILD_TYPE LIBTOMMATH"
9461 BUILD_TYPE="$BUILD_TYPE FIREBIRD"
9462 ENABLE_FIREBIRD_SDBC=TRUE
9463 AC_DEFINE([ENABLE_FIREBIRD_SDBC],1)
9466 AC_SUBST(ENABLE_FIREBIRD_SDBC)
9467 AC_SUBST(SYSTEM_LIBATOMIC_OPS)
9468 AC_SUBST(LIBATOMIC_OPS_CFLAGS)
9469 AC_SUBST(LIBATOMIC_OPS_LIBS)
9470 AC_SUBST(SYSTEM_FIREBIRD)
9471 AC_SUBST(FIREBIRD_CFLAGS)
9472 AC_SUBST(FIREBIRD_LIBS)
9473 AC_SUBST([TOMMATH_CFLAGS])
9474 AC_SUBST([TOMMATH_LIBS])
9476 dnl ===================================================================
9477 dnl Check for system curl
9478 dnl ===================================================================
9479 AC_MSG_CHECKING([which libcurl to use])
9480 if test "$with_system_curl" = "auto"; then
9481 with_system_curl="$with_system_libs"
9484 if test "$with_system_curl" = "yes"; then
9485 AC_MSG_RESULT([external])
9488 # First try PKGCONFIG and then fall back
9489 PKG_CHECK_MODULES(CURL, libcurl >= 7.19.4,, [:])
9491 if test -n "$CURL_PKG_ERRORS"; then
9492 AC_PATH_PROG(CURLCONFIG, curl-config)
9493 if test -z "$CURLCONFIG"; then
9494 AC_MSG_ERROR([curl development files not found])
9496 CURL_LIBS=`$CURLCONFIG --libs`
9497 FilterLibs "${CURL_LIBS}"
9498 CURL_LIBS="${filteredlibs}"
9499 CURL_CFLAGS=$("$CURLCONFIG" --cflags | sed -e "s/-I/${ISYSTEM?}/g")
9500 curl_version=`$CURLCONFIG --version | $SED -e 's/^libcurl //'`
9502 AC_MSG_CHECKING([whether libcurl is >= 7.19.4])
9503 case $curl_version in
9504 dnl brackets doubled below because Autoconf uses them as m4 quote characters,
9505 dnl so they need to be doubled to end up in the configure script
9506 7.19.4|7.19.[[5-9]]|7.[[2-9]]?.*|7.???.*|[[8-9]].*|[[1-9]][[0-9]].*)
9507 AC_MSG_RESULT([yes])
9510 AC_MSG_ERROR([no, you have $curl_version])
9516 elif test $_os = iOS; then
9517 # Let's see if we need curl, I think not?
9518 AC_MSG_RESULT([none])
9521 AC_MSG_RESULT([internal])
9523 BUILD_TYPE="$BUILD_TYPE CURL"
9526 AC_SUBST(SYSTEM_CURL)
9527 AC_SUBST(CURL_CFLAGS)
9529 AC_SUBST(ENABLE_CURL)
9531 dnl ===================================================================
9532 dnl Check for system boost
9533 dnl ===================================================================
9534 AC_MSG_CHECKING([which boost to use])
9535 if test "$with_system_boost" = "yes"; then
9536 AC_MSG_RESULT([external])
9544 save_CXXFLAGS=$CXXFLAGS
9545 CXXFLAGS="$CXXFLAGS $BOOST_CPPFLAGS $CXXFLAGS_CXX11"
9546 AC_CHECK_HEADER(boost/shared_ptr.hpp, [],
9547 [AC_MSG_ERROR(boost/shared_ptr.hpp not found. install boost)], [])
9548 AC_CHECK_HEADER(boost/spirit/include/classic_core.hpp, [],
9549 [AC_MSG_ERROR(boost/spirit/include/classic_core.hpp not found. install boost >= 1.36)], [])
9550 CXXFLAGS=$save_CXXFLAGS
9552 # this is in m4/ax_boost_base.m4
9553 FilterLibs "${BOOST_LDFLAGS}"
9554 BOOST_LDFLAGS="${filteredlibs}"
9556 AC_MSG_RESULT([internal])
9557 BUILD_TYPE="$BUILD_TYPE BOOST"
9559 if test "${COM}" = "GCC" -o "${COM_IS_CLANG}" = "TRUE"; then
9560 # use warning-suppressing wrapper headers
9561 BOOST_CPPFLAGS="-I${SRC_ROOT}/external/boost/include -I${WORKDIR}/UnpackedTarball/boost"
9563 BOOST_CPPFLAGS="-I${WORKDIR}/UnpackedTarball/boost"
9566 AC_SUBST(SYSTEM_BOOST)
9568 dnl ===================================================================
9569 dnl Check for system mdds
9570 dnl ===================================================================
9571 libo_CHECK_SYSTEM_MODULE([mdds], [MDDS], [mdds-1.5 >= 1.5.0], ["-I${WORKDIR}/UnpackedTarball/mdds/include"])
9573 dnl ===================================================================
9574 dnl Check for system glm
9575 dnl ===================================================================
9576 AC_MSG_CHECKING([which glm to use])
9577 if test "$with_system_glm" = "yes"; then
9578 AC_MSG_RESULT([external])
9581 AC_CHECK_HEADER([glm/glm.hpp], [],
9582 [AC_MSG_ERROR([glm/glm.hpp not found. install glm])], [])
9585 AC_MSG_RESULT([internal])
9586 BUILD_TYPE="$BUILD_TYPE GLM"
9588 GLM_CFLAGS="${ISYSTEM}${WORKDIR}/UnpackedTarball/glm"
9590 AC_SUBST([GLM_CFLAGS])
9591 AC_SUBST([SYSTEM_GLM])
9593 dnl ===================================================================
9594 dnl Check for system odbc
9595 dnl ===================================================================
9596 AC_MSG_CHECKING([which odbc headers to use])
9597 if test "$with_system_odbc" = "yes" -o '(' "$with_system_headers" = "yes" -a "$with_system_odbc" = "auto" ')' -o '(' "$_os" = "WINNT" -a "$with_system_odbc" != "no" ')'; then
9598 AC_MSG_RESULT([external])
9599 SYSTEM_ODBC_HEADERS=TRUE
9601 if test "$build_os" = "cygwin"; then
9602 save_CPPFLAGS=$CPPFLAGS
9604 PathFormat "$winsdktest"
9605 CPPFLAGS="$CPPFLAGS -I$formatted_path/include/um -I$formatted_path/Include/$winsdklibsubdir/um -I$formatted_path/include -I$formatted_path/include/shared -I$formatted_path/include/$winsdklibsubdir/shared"
9606 AC_CHECK_HEADER(sqlext.h, [],
9607 [AC_MSG_ERROR(odbc not found. install odbc)],
9608 [#include <windows.h>])
9609 CPPFLAGS=$save_CPPFLAGS
9611 AC_CHECK_HEADER(sqlext.h, [],
9612 [AC_MSG_ERROR(odbc not found. install odbc)],[])
9614 elif test "$enable_database_connectivity" != yes; then
9615 AC_MSG_RESULT([none])
9617 AC_MSG_RESULT([internal])
9618 SYSTEM_ODBC_HEADERS=
9620 AC_SUBST(SYSTEM_ODBC_HEADERS)
9622 dnl ===================================================================
9623 dnl Enable LDAP support
9624 dnl ===================================================================
9626 if test "$_os" != "WINNT" -a "$_os" != "iOS" -a "$_os" != "Android"; then
9627 AC_MSG_CHECKING([whether to enable LDAP support])
9628 if test "$enable_ldap" != "yes"; then
9633 AC_MSG_RESULT([yes])
9637 AC_SUBST(ENABLE_LDAP)
9639 dnl ===================================================================
9640 dnl Check for system openldap
9641 dnl ===================================================================
9643 if test "$_os" != "WINNT" -a "$_os" != "iOS" -a "$_os" != "Android" -a "$ENABLE_LDAP" != ""; then
9644 AC_MSG_CHECKING([which openldap library to use])
9645 if test "$with_system_openldap" = "yes"; then
9646 AC_MSG_RESULT([external])
9647 SYSTEM_OPENLDAP=TRUE
9648 AC_CHECK_HEADERS(ldap.h, [], [AC_MSG_ERROR(ldap.h not found. install openldap libs)], [])
9649 AC_CHECK_LIB([ldap], [ldap_simple_bind_s], [:], [AC_MSG_ERROR(openldap lib not found or functional)], [])
9650 AC_CHECK_LIB([ldap], [ldap_set_option], [:], [AC_MSG_ERROR(openldap lib not found or functional)], [])
9652 AC_MSG_RESULT([internal])
9654 BUILD_TYPE="$BUILD_TYPE OPENLDAP"
9657 AC_SUBST(SYSTEM_OPENLDAP)
9659 dnl ===================================================================
9660 dnl Check for system NSS
9661 dnl ===================================================================
9662 if test $_os != iOS -a "$enable_fuzzers" != "yes"; then
9663 libo_CHECK_SYSTEM_MODULE([nss],[NSS],[nss >= 3.9.3 nspr >= 4.8])
9664 AC_DEFINE(HAVE_FEATURE_NSS)
9666 AC_DEFINE(ENABLE_NSS)
9667 elif test $_os != iOS ; then
9670 AC_SUBST(ENABLE_NSS)
9672 dnl ===================================================================
9673 dnl Check for TLS/SSL and cryptographic implementation to use
9674 dnl ===================================================================
9675 AC_MSG_CHECKING([which TLS/SSL and cryptographic implementation to use])
9676 if test -n "$with_tls"; then
9679 AC_DEFINE(USE_TLS_OPENSSL)
9682 if test "$enable_openssl" != "yes"; then
9683 AC_MSG_ERROR(["Disabling OpenSSL was requested, but the requested TLS to use is actually OpenSSL."])
9686 # warn that OpenSSL has been selected but not all TLS code has this option
9687 AC_MSG_WARN([TLS/SSL implementation to use is OpenSSL but some code may still depend on NSS or GNUTLS])
9688 add_warning "TLS/SSL implementation to use is OpenSSL but some code may still depend on NSS or GNUTLS"
9691 AC_DEFINE(USE_TLS_NSS)
9695 AC_MSG_WARN([Skipping TLS/SSL])
9698 AC_MSG_ERROR([unsupported implementation $with_tls. Supported are:
9700 nss - Mozilla's Network Security Services (NSS)
9705 # default to using NSS, it results in smaller oox lib
9706 AC_DEFINE(USE_TLS_NSS)
9709 AC_MSG_RESULT([$TLS])
9712 dnl ===================================================================
9713 dnl Check for system sane
9714 dnl ===================================================================
9715 AC_MSG_CHECKING([which sane header to use])
9716 if test "$with_system_sane" = "yes"; then
9717 AC_MSG_RESULT([external])
9718 AC_CHECK_HEADER(sane/sane.h, [],
9719 [AC_MSG_ERROR(sane not found. install sane)], [])
9721 AC_MSG_RESULT([internal])
9722 BUILD_TYPE="$BUILD_TYPE SANE"
9725 dnl ===================================================================
9726 dnl Check for system icu
9727 dnl ===================================================================
9734 ICU_RECLASSIFIED_PREPEND_SET_EMPTY="TRUE"
9735 ICU_RECLASSIFIED_CONDITIONAL_JAPANESE_STARTER="TRUE"
9736 ICU_RECLASSIFIED_HEBREW_LETTER="TRUE"
9737 AC_MSG_CHECKING([which icu to use])
9738 if test "$with_system_icu" = "yes"; then
9739 AC_MSG_RESULT([external])
9742 AC_MSG_CHECKING([for unicode/rbbi.h])
9743 AC_PREPROC_IFELSE([AC_LANG_SOURCE([[unicode/rbbi.h]])],[AC_MSG_RESULT([yes])],[AC_MSG_ERROR([icu headers not found])])
9746 if test "$cross_compiling" != "yes"; then
9747 PKG_CHECK_MODULES(ICU, icu-i18n >= 4.6)
9748 ICU_VERSION=`$PKG_CONFIG --modversion icu-i18n 2>/dev/null`
9749 ICU_MAJOR=`echo $ICU_VERSION | cut -d"." -f1`
9750 ICU_MINOR=`echo $ICU_VERSION | cut -d"." -f2`
9753 if test "$cross_compiling" = "yes" -a \( "$with_system_icu_for_build" = "yes" -o "$with_system_icu_for_build" = "force" \); then
9754 ICU_VERSION_FOR_BUILD=`$PKG_CONFIG --modversion icu-i18n 2>/dev/null`
9755 ICU_MAJOR_FOR_BUILD=`echo $ICU_VERSION_FOR_BUILD | cut -d"." -f1`
9756 ICU_MINOR_FOR_BUILD=`echo $ICU_VERSION_FOR_BUILD | cut -d"." -f2`
9757 AC_MSG_CHECKING([if MinGW and system versions of ICU are compatible])
9758 if test "$ICU_MAJOR" -eq "$ICU_MAJOR_FOR_BUILD" -a "$ICU_MINOR" -eq "$ICU_MINOR_FOR_BUILD"; then
9759 AC_MSG_RESULT([yes])
9762 if test "$with_system_icu_for_build" != "force"; then
9763 AC_MSG_ERROR([System ICU is not version-compatible with MinGW ICU.
9764 You can use --with-system-icu-for-build=force to use it anyway.])
9769 if test "$cross_compiling" != "yes" -o "$with_system_icu_for_build" = "yes" -o "$with_system_icu_for_build" = "force"; then
9770 # using the system icu tools can lead to version confusion, use the
9771 # ones from the build environment when cross-compiling
9772 AC_PATH_PROG(SYSTEM_GENBRK, genbrk, [], [$PATH:/usr/sbin:/sbin])
9773 if test -z "$SYSTEM_GENBRK"; then
9774 AC_MSG_ERROR([\'genbrk\' not found in \$PATH, install the icu development tool \'genbrk\'])
9776 AC_PATH_PROG(SYSTEM_GENCCODE, genccode, [], [$PATH:/usr/sbin:/sbin:/usr/local/sbin])
9777 if test -z "$SYSTEM_GENCCODE"; then
9778 AC_MSG_ERROR([\'genccode\' not found in \$PATH, install the icu development tool \'genccode\'])
9780 AC_PATH_PROG(SYSTEM_GENCMN, gencmn, [], [$PATH:/usr/sbin:/sbin:/usr/local/sbin])
9781 if test -z "$SYSTEM_GENCMN"; then
9782 AC_MSG_ERROR([\'gencmn\' not found in \$PATH, install the icu development tool \'gencmn\'])
9784 if test "$ICU_MAJOR" -ge "49"; then
9785 ICU_RECLASSIFIED_PREPEND_SET_EMPTY="TRUE"
9786 ICU_RECLASSIFIED_CONDITIONAL_JAPANESE_STARTER="TRUE"
9787 ICU_RECLASSIFIED_HEBREW_LETTER="TRUE"
9789 ICU_RECLASSIFIED_PREPEND_SET_EMPTY=
9790 ICU_RECLASSIFIED_CONDITIONAL_JAPANESE_STARTER=
9791 ICU_RECLASSIFIED_HEBREW_LETTER=
9795 if test "$cross_compiling" = "yes"; then
9796 if test "$ICU_MAJOR" -ge "50"; then
9797 AC_MSG_RESULT([Ignore ICU_MINOR as obviously the libraries don't include the minor version in their names any more])
9802 AC_MSG_RESULT([internal])
9804 BUILD_TYPE="$BUILD_TYPE ICU"
9805 # surprisingly set these only for "internal" (to be used by various other
9806 # external libs): the system icu-config is quite unhelpful and spits out
9807 # dozens of weird flags and also default path -I/usr/include
9808 ICU_CFLAGS="-I${WORKDIR}/UnpackedTarball/icu/source/i18n -I${WORKDIR}/UnpackedTarball/icu/source/common"
9809 ICU_LIBS="-L${WORKDIR}/UnpackedTarball/icu/source/lib"
9811 if test "$ICU_MAJOR" -ge "59"; then
9812 # As of ICU 59 it defaults to typedef char16_t UChar; which is available
9813 # with -std=c++11 but not all external libraries can be built with that,
9814 # for those use a bit-compatible typedef uint16_t UChar; see
9815 # icu/source/common/unicode/umachine.h
9816 ICU_UCHAR_TYPE="-DUCHAR_TYPE=uint16_t"
9820 AC_SUBST(SYSTEM_ICU)
9821 AC_SUBST(SYSTEM_GENBRK)
9822 AC_SUBST(SYSTEM_GENCCODE)
9823 AC_SUBST(SYSTEM_GENCMN)
9826 AC_SUBST(ICU_RECLASSIFIED_PREPEND_SET_EMPTY)
9827 AC_SUBST(ICU_RECLASSIFIED_CONDITIONAL_JAPANESE_STARTER)
9828 AC_SUBST(ICU_RECLASSIFIED_HEBREW_LETTER)
9829 AC_SUBST(ICU_CFLAGS)
9831 AC_SUBST(ICU_UCHAR_TYPE)
9833 dnl ==================================================================
9835 dnl ==================================================================
9836 DEFAULT_CRASHDUMP_VALUE="true"
9837 AC_MSG_CHECKING([whether to enable breakpad])
9838 if test "$enable_breakpad" != yes; then
9841 AC_MSG_RESULT([yes])
9842 ENABLE_BREAKPAD="TRUE"
9843 AC_DEFINE(ENABLE_BREAKPAD)
9844 AC_DEFINE(HAVE_FEATURE_BREAKPAD, 1)
9845 BUILD_TYPE="$BUILD_TYPE BREAKPAD"
9847 AC_MSG_CHECKING([for disable crash dump])
9848 if test "$enable_crashdump" = no; then
9849 DEFAULT_CRASHDUMP_VALUE="false"
9850 AC_MSG_RESULT([yes])
9855 AC_MSG_CHECKING([for crashreport config])
9856 if test "$with_symbol_config" = "no"; then
9857 BREAKPAD_SYMBOL_CONFIG="invalid"
9860 BREAKPAD_SYMBOL_CONFIG="$with_symbol_config"
9861 AC_DEFINE(BREAKPAD_SYMBOL_CONFIG)
9862 AC_MSG_RESULT([yes])
9864 AC_SUBST(BREAKPAD_SYMBOL_CONFIG)
9866 AC_SUBST(ENABLE_BREAKPAD)
9867 AC_SUBST(DEFAULT_CRASHDUMP_VALUE)
9869 dnl ==================================================================
9871 dnl ==================================================================
9872 AC_MSG_CHECKING([whether to enable fuzzers])
9873 if test "$enable_fuzzers" != yes; then
9876 AC_MSG_RESULT([yes])
9877 ENABLE_FUZZERS="TRUE"
9878 AC_DEFINE([ENABLE_FUZZERS],1)
9879 BUILD_TYPE="$BUILD_TYPE FUZZERS"
9881 AC_SUBST(ENABLE_FUZZERS)
9883 dnl ===================================================================
9885 dnl ===================================================================
9886 libo_CHECK_SYSTEM_MODULE([orcus],[ORCUS],[liborcus-0.15 >= 0.15.0])
9887 if test "$with_system_orcus" != "yes"; then
9888 if test "$SYSTEM_BOOST" = "TRUE"; then
9889 # ===========================================================
9890 # Determine if we are going to need to link with Boost.System
9891 # ===========================================================
9892 dnl This seems to be necessary since boost 1.50 (1.48 does not need it,
9893 dnl 1.49 is untested). The macro BOOST_THREAD_DONT_USE_SYSTEM mentioned
9894 dnl in documentation has no effect.
9895 AC_MSG_CHECKING([if we need to link with Boost.System])
9897 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
9898 @%:@include <boost/version.hpp>
9900 #if BOOST_VERSION >= 105000
9901 # error yes, we need to link with Boost.System
9906 AC_MSG_RESULT([yes])
9912 dnl FIXME by renaming SYSTEM_LIBORCUS to SYSTEM_ORCUS in the build system world
9913 SYSTEM_LIBORCUS=$SYSTEM_ORCUS
9914 AC_SUBST([BOOST_SYSTEM_LIB])
9915 AC_SUBST(SYSTEM_LIBORCUS)
9917 dnl ===================================================================
9919 dnl ===================================================================
9920 libo_CHECK_SYSTEM_MODULE([graphite],[GRAPHITE],[graphite2 >= 0.9.3],
9921 ["-I${WORKDIR}/UnpackedTarball/graphite/include -DGRAPHITE2_STATIC"],
9922 ["-L${WORKDIR}/LinkTarget/StaticLibrary -lgraphite"])
9924 libo_CHECK_SYSTEM_MODULE([harfbuzz],[HARFBUZZ],[harfbuzz-icu >= 0.9.42],
9925 ["-I${WORKDIR}/UnpackedTarball/harfbuzz/src"],
9926 ["-L${WORKDIR}/UnpackedTarball/harfbuzz/src/.libs -lharfbuzz"])
9928 if test "$COM" = "MSC"; then # override the above
9929 GRAPHITE_LIBS="${WORKDIR}/LinkTarget/StaticLibrary/graphite.lib"
9930 HARFBUZZ_LIBS="${WORKDIR}/UnpackedTarball/harfbuzz/src/.libs/libharfbuzz.lib"
9933 if test "$with_system_harfbuzz" = "yes"; then
9934 if test "$with_system_graphite" = "no"; then
9935 AC_MSG_ERROR([--with-system-graphite must be used when --with-system-harfbuzz is used])
9937 AC_MSG_CHECKING([whether system Harfbuzz is built with Graphite support])
9939 _save_cflags="$CFLAGS"
9940 LIBS="$LIBS $HARFBUZZ_LIBS"
9941 CFLAGS="$CFLAGS $HARFBUZZ_CFLAGS"
9942 AC_CHECK_FUNC(hb_graphite2_face_get_gr_face,,[AC_MSG_ERROR([Harfbuzz needs to be built with Graphite support.])])
9944 CFLAGS="$_save_cflags"
9946 if test "$with_system_graphite" = "yes"; then
9947 AC_MSG_ERROR([--without-system-graphite must be used when --without-system-harfbuzz is used])
9951 AC_MSG_CHECKING([whether to use X11])
9952 dnl ***************************************
9953 dnl testing for X libraries and includes...
9954 dnl ***************************************
9955 if test "$USING_X11" = TRUE; then
9956 AC_DEFINE(HAVE_FEATURE_X11)
9958 AC_MSG_RESULT([$USING_X11])
9960 if test "$USING_X11" = TRUE; then
9963 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
9965 if test -z "$x_includes"; then
9966 x_includes="default_x_includes"
9968 if test -z "$x_libraries"; then
9969 x_libraries="default_x_libraries"
9971 CFLAGS="$CFLAGS $X_CFLAGS"
9972 LDFLAGS="$LDFLAGS $X_LDFLAGS $X_LIBS"
9973 AC_CHECK_LIB(X11, XOpenDisplay, x_libs="-lX11 $X_EXTRA_LIBS", [AC_MSG_ERROR([X Development libraries not found])])
9975 x_includes="no_x_includes"
9976 x_libraries="no_x_libraries"
9979 if test "$USING_X11" = TRUE; then
9980 dnl ===================================================================
9981 dnl Check for extension headers
9982 dnl ===================================================================
9983 AC_CHECK_HEADERS(X11/extensions/shape.h,[],[AC_MSG_ERROR([libXext headers not found])],
9984 [#include <X11/extensions/shape.h>])
9986 # vcl needs ICE and SM
9987 AC_CHECK_HEADERS(X11/ICE/ICElib.h,[],[AC_MSG_ERROR([libICE headers not found])])
9988 AC_CHECK_LIB([ICE], [IceConnectionNumber], [:],
9989 [AC_MSG_ERROR(ICE library not found)])
9990 AC_CHECK_HEADERS(X11/SM/SMlib.h,[],[AC_MSG_ERROR([libSM headers not found])])
9991 AC_CHECK_LIB([SM], [SmcOpenConnection], [:],
9992 [AC_MSG_ERROR(SM library not found)])
9995 dnl ===================================================================
9996 dnl Check for system Xrender
9997 dnl ===================================================================
9998 AC_MSG_CHECKING([whether to use Xrender])
9999 if test "$USING_X11" = TRUE -a "$test_xrender" = "yes"; then
10000 AC_MSG_RESULT([yes])
10001 PKG_CHECK_MODULES(XRENDER, xrender)
10002 XRENDER_CFLAGS=$(printf '%s' "$XRENDER_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
10003 FilterLibs "${XRENDER_LIBS}"
10004 XRENDER_LIBS="${filteredlibs}"
10005 AC_CHECK_LIB([Xrender], [XRenderQueryVersion], [:],
10006 [AC_MSG_ERROR(libXrender not found or functional)], [])
10007 AC_CHECK_HEADER(X11/extensions/Xrender.h, [],
10008 [AC_MSG_ERROR(Xrender not found. install X)], [])
10010 AC_MSG_RESULT([no])
10012 AC_SUBST(XRENDER_CFLAGS)
10013 AC_SUBST(XRENDER_LIBS)
10015 dnl ===================================================================
10016 dnl Check for XRandr
10017 dnl ===================================================================
10018 AC_MSG_CHECKING([whether to enable RandR support])
10019 if test "$USING_X11" = TRUE -a "$test_randr" = "yes" -a \( "$enable_randr" = "yes" -o "$enable_randr" = "TRUE" \); then
10020 AC_MSG_RESULT([yes])
10021 PKG_CHECK_MODULES(XRANDR, xrandr >= 1.2, ENABLE_RANDR="TRUE", ENABLE_RANDR="")
10022 if test "$ENABLE_RANDR" != "TRUE"; then
10023 AC_CHECK_HEADER(X11/extensions/Xrandr.h, [],
10024 [AC_MSG_ERROR([X11/extensions/Xrandr.h could not be found. X11 dev missing?])], [])
10026 AC_CHECK_LIB([Xrandr], [XRRQueryExtension], [:],
10027 [ AC_MSG_ERROR(libXrandr not found or functional) ], [])
10028 XRANDR_LIBS="-lXrandr "
10029 ENABLE_RANDR="TRUE"
10031 XRANDR_CFLAGS=$(printf '%s' "$XRANDR_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
10032 FilterLibs "${XRANDR_LIBS}"
10033 XRANDR_LIBS="${filteredlibs}"
10036 AC_MSG_RESULT([no])
10038 AC_SUBST(XRANDR_CFLAGS)
10039 AC_SUBST(XRANDR_LIBS)
10040 AC_SUBST(ENABLE_RANDR)
10042 if test "$enable_neon" = "no" -o "$enable_mpl_subset" = "yes"; then
10045 if test $_os = iOS -o $_os = Android; then
10048 AC_MSG_CHECKING([for webdav library])
10049 case "$WITH_WEBDAV" in
10051 AC_MSG_RESULT([serf])
10052 # Check for system apr-util
10053 libo_CHECK_SYSTEM_MODULE([apr],[APR],[apr-util-1],
10054 ["-I${WORKDIR}/UnpackedTarball/apr/include -I${WORKDIR}/UnpackedTarball/apr_util/include"],
10055 ["-L${WORKDIR}/UnpackedTarball/apr/.libs -lapr-1 -L${WORKDIR}/UnpackedTarball/apr_util/.libs -laprutil-1"])
10056 if test "$COM" = "MSC"; then
10058 test -n "${MSVC_USE_DEBUG_RUNTIME}" && APR_LIB_DIR="LibD"
10059 APR_LIBS="${WORKDIR}/UnpackedTarball/apr/${APR_LIB_DIR}/apr-1.lib ${WORKDIR}/UnpackedTarball/apr_util/${APR_LIB_DIR}/aprutil-1.lib"
10062 # Check for system serf
10063 libo_CHECK_SYSTEM_MODULE([serf],[SERF],[serf-1 >= 1.1.0],["-I${WORKDIR}/UnpackedTarball/serf"],
10064 ["-L${WORKDIR}/UnpackedTarball/serf/.libs -lserf-1"])
10065 if test "$COM" = "MSC"; then
10066 SERF_LIB_DIR="Release"
10067 test -n "${MSVC_USE_DEBUG_RUNTIME}" && SERF_LIB_DIR="Debug"
10068 SERF_LIBS="${WORKDIR}/UnpackedTarball/serf/${SERF_LIB_DIR}/serf-1.lib"
10072 AC_MSG_RESULT([neon])
10073 # Check for system neon
10074 libo_CHECK_SYSTEM_MODULE([neon],[NEON],[neon >= 0.26.0])
10075 if test "$with_system_neon" = "yes"; then
10076 NEON_VERSION="`$PKG_CONFIG --modversion neon | $SED 's/\.//g'`"
10080 AC_SUBST(NEON_VERSION)
10083 AC_MSG_RESULT([none, disabled])
10087 AC_SUBST(WITH_WEBDAV)
10089 dnl ===================================================================
10090 dnl Check for disabling cve_tests
10091 dnl ===================================================================
10092 AC_MSG_CHECKING([whether to execute CVE tests])
10093 # If not explicitly enabled or disabled, default
10094 if test -z "$enable_cve_tests"; then
10097 # Default cves off for Windows with its wild and wonderful
10098 # variety of AV software kicking in and panicking
10099 enable_cve_tests=no
10103 enable_cve_tests=yes
10107 if test "$enable_cve_tests" = "no"; then
10108 AC_MSG_RESULT([no])
10109 DISABLE_CVE_TESTS=TRUE
10110 AC_SUBST(DISABLE_CVE_TESTS)
10112 AC_MSG_RESULT([yes])
10115 dnl ===================================================================
10116 dnl Check for enabling chart XShape tests
10117 dnl ===================================================================
10118 AC_MSG_CHECKING([whether to execute chart XShape tests])
10119 if test "$enable_chart_tests" = "yes" -o '(' "$_os" = "WINNT" -a "$enable_chart_tests" != "no" ')'; then
10120 AC_MSG_RESULT([yes])
10121 ENABLE_CHART_TESTS=TRUE
10122 AC_SUBST(ENABLE_CHART_TESTS)
10124 AC_MSG_RESULT([no])
10127 dnl ===================================================================
10128 dnl Check for system openssl
10129 dnl ===================================================================
10131 AC_MSG_CHECKING([whether to disable OpenSSL usage])
10132 if test "$enable_openssl" = "yes"; then
10133 AC_MSG_RESULT([no])
10134 if test "$_os" = Darwin ; then
10135 # OpenSSL is deprecated when building for 10.7 or later.
10137 # http://stackoverflow.com/questions/7406946/why-is-apple-deprecating-openssl-in-macos-10-7-lion
10138 # http://stackoverflow.com/questions/7475914/libcrypto-deprecated-on-mac-os-x-10-7-lion
10140 with_system_openssl=no
10141 libo_CHECK_SYSTEM_MODULE([openssl],[OPENSSL],[openssl])
10142 elif test "$_os" = "NetBSD" -o "$_os" = "OpenBSD" -o "$_os" = "DragonFly" \
10143 && test "$with_system_openssl" != "no"; then
10144 with_system_openssl=yes
10145 SYSTEM_OPENSSL=TRUE
10147 OPENSSL_LIBS="-lssl -lcrypto"
10149 libo_CHECK_SYSTEM_MODULE([openssl],[OPENSSL],[openssl])
10151 if test "$with_system_openssl" = "yes"; then
10152 AC_MSG_CHECKING([whether openssl supports SHA512])
10154 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <openssl/sha.h>]],[[
10155 SHA512_CTX context;
10156 ]])],[AC_MSG_RESULT([yes])],[AC_MSG_ERROR([no, openssl too old. Need >= 0.9.8.])])
10160 AC_MSG_RESULT([yes])
10161 DISABLE_OPENSSL=TRUE
10163 # warn that although OpenSSL is disabled, system libraries may depend on it
10164 AC_MSG_WARN([OpenSSL has been disabled. No code compiled here will make use of it but system libraries may create indirect dependencies])
10165 add_warning "OpenSSL has been disabled. No code compiled here will make use of it but system libraries may create indirect dependencies"
10168 AC_SUBST([DISABLE_OPENSSL])
10170 if test "$enable_cipher_openssl_backend" = yes && test "$DISABLE_OPENSSL" = TRUE; then
10171 if test "$libo_fuzzed_enable_cipher_openssl_backend" = yes; then
10172 AC_MSG_NOTICE([Resetting --enable-cipher-openssl-backend=no])
10173 enable_cipher_openssl_backend=no
10175 AC_MSG_ERROR([--enable-cipher-openssl-backend needs OpenSSL, but --disable-openssl was given.])
10178 AC_MSG_CHECKING([whether to enable the OpenSSL backend for rtl/cipher.h])
10179 ENABLE_CIPHER_OPENSSL_BACKEND=
10180 if test "$enable_cipher_openssl_backend" = yes; then
10181 AC_MSG_RESULT([yes])
10182 ENABLE_CIPHER_OPENSSL_BACKEND=TRUE
10184 AC_MSG_RESULT([no])
10186 AC_SUBST([ENABLE_CIPHER_OPENSSL_BACKEND])
10188 dnl ===================================================================
10189 dnl Check for building gnutls
10190 dnl ===================================================================
10191 AC_MSG_CHECKING([whether to use gnutls])
10192 if test "$WITH_WEBDAV" = "neon" -a "$with_system_neon" = no -a "$enable_openssl" = "no"; then
10193 AC_MSG_RESULT([yes])
10194 AM_PATH_LIBGCRYPT()
10195 PKG_CHECK_MODULES(GNUTLS, [gnutls],,
10196 AC_MSG_ERROR([[Disabling OpenSSL was requested, but GNUTLS is not
10197 available in the system to use as replacement.]]))
10198 FilterLibs "${LIBGCRYPT_LIBS}"
10199 LIBGCRYPT_LIBS="${filteredlibs}"
10201 AC_MSG_RESULT([no])
10204 AC_SUBST([LIBGCRYPT_CFLAGS])
10205 AC_SUBST([LIBGCRYPT_LIBS])
10207 dnl ===================================================================
10208 dnl Check for system redland
10209 dnl ===================================================================
10210 dnl redland: versions before 1.0.8 write RDF/XML that is useless for ODF (@xml:base)
10211 dnl raptor2: need at least 2.0.7 for CVE-2012-0037
10212 libo_CHECK_SYSTEM_MODULE([redland],[REDLAND],[redland >= 1.0.8 raptor2 >= 2.0.7])
10213 if test "$with_system_redland" = "yes"; then
10214 AC_CHECK_LIB([rdf], [librdf_world_set_raptor_init_handler], [:],
10215 [AC_MSG_ERROR(librdf too old. Need >= 1.0.16)], [])
10221 AC_SUBST(RAPTOR_MAJOR)
10222 AC_SUBST(RASQAL_MAJOR)
10223 AC_SUBST(REDLAND_MAJOR)
10225 dnl ===================================================================
10226 dnl Check for system hunspell
10227 dnl ===================================================================
10228 AC_MSG_CHECKING([which libhunspell to use])
10229 if test "$_os" = iOS; then
10230 AC_MSG_RESULT([none])
10231 elif test "$with_system_hunspell" = "yes"; then
10232 AC_MSG_RESULT([external])
10233 SYSTEM_HUNSPELL=TRUE
10234 AC_LANG_PUSH([C++])
10235 PKG_CHECK_MODULES(HUNSPELL, hunspell, HUNSPELL_PC="TRUE", HUNSPELL_PC="" )
10236 if test "$HUNSPELL_PC" != "TRUE"; then
10237 AC_CHECK_HEADER(hunspell.hxx, [],
10239 AC_CHECK_HEADER(hunspell/hunspell.hxx, [ HUNSPELL_CFLAGS=-I/usr/include/hunspell ],
10240 [AC_MSG_ERROR(hunspell headers not found.)], [])
10242 AC_CHECK_LIB([hunspell], [main], [:],
10243 [ AC_MSG_ERROR(hunspell library not found.) ], [])
10244 HUNSPELL_LIBS=-lhunspell
10247 HUNSPELL_CFLAGS=$(printf '%s' "$HUNSPELL_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
10248 FilterLibs "${HUNSPELL_LIBS}"
10249 HUNSPELL_LIBS="${filteredlibs}"
10251 AC_MSG_RESULT([internal])
10253 HUNSPELL_CFLAGS="-I${WORKDIR}/UnpackedTarball/hunspell/src/hunspell"
10254 if test "$COM" = "MSC"; then
10255 HUNSPELL_LIBS="${WORKDIR}/LinkTarget/StaticLibrary/hunspell.lib"
10257 HUNSPELL_LIBS="-L${WORKDIR}/UnpackedTarball/hunspell/src/hunspell/.libs -lhunspell-1.7"
10259 BUILD_TYPE="$BUILD_TYPE HUNSPELL"
10261 AC_SUBST(SYSTEM_HUNSPELL)
10262 AC_SUBST(HUNSPELL_CFLAGS)
10263 AC_SUBST(HUNSPELL_LIBS)
10265 dnl ===================================================================
10266 dnl Check for system qrcodegen
10267 dnl ===================================================================
10268 AC_MSG_CHECKING([which libqrcodegen to use])
10269 if test "$with_system_qrcodegen" = "yes"; then
10270 AC_MSG_RESULT([external])
10271 SYSTEM_QRCODEGEN=TRUE
10272 AC_LANG_PUSH([C++])
10273 AC_CHECK_HEADER(qrcodegen/QrCode.hpp, [],
10274 [AC_MSG_ERROR(qrcodegen headers not found.)], [#include <stdexcept>])
10275 AC_CHECK_LIB([qrcodegencpp], [main], [:],
10276 [ AC_MSG_ERROR(qrcodegen C++ library not found.) ], [])
10277 QRCODEGEN_LIBS=-lqrcodegencpp
10279 QRCODEGEN_CFLAGS=$(printf '%s' "$QRCODEGEN_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
10280 FilterLibs "${QRCODEGEN_LIBS}"
10281 QRCODEGEN_LIBS="${filteredlibs}"
10283 AC_MSG_RESULT([internal])
10285 BUILD_TYPE="$BUILD_TYPE QRCODEGEN"
10287 AC_SUBST(SYSTEM_QRCODEGEN)
10288 AC_SUBST(QRCODEGEN_CFLAGS)
10289 AC_SUBST(QRCODEGEN_LIBS)
10291 dnl ===================================================================
10292 dnl Checking for altlinuxhyph
10293 dnl ===================================================================
10294 AC_MSG_CHECKING([which altlinuxhyph to use])
10295 if test "$with_system_altlinuxhyph" = "yes"; then
10296 AC_MSG_RESULT([external])
10298 AC_CHECK_HEADER(hyphen.h, [],
10299 [ AC_MSG_ERROR(altlinuxhyph headers not found.)], [])
10300 AC_CHECK_MEMBER(struct _HyphenDict.cset, [],
10301 [ AC_MSG_ERROR(no. You are sure you have altlinuyhyph headers?)],
10302 [#include <hyphen.h>])
10303 AC_CHECK_LIB(hyphen, hnj_hyphen_hyphenate2, [HYPHEN_LIB=-lhyphen],
10304 [ AC_MSG_ERROR(altlinuxhyph library not found or too old.)], [])
10305 if test -z "$HYPHEN_LIB"; then
10306 AC_CHECK_LIB(hyph, hnj_hyphen_hyphenate2, [HYPHEN_LIB=-lhyph],
10307 [ AC_MSG_ERROR(altlinuxhyph library not found or too old.)], [])
10309 if test -z "$HYPHEN_LIB"; then
10310 AC_CHECK_LIB(hnj, hnj_hyphen_hyphenate2, [HYPHEN_LIB=-lhnj],
10311 [ AC_MSG_ERROR(altlinuxhyph library not found or too old.)], [])
10314 AC_MSG_RESULT([internal])
10316 BUILD_TYPE="$BUILD_TYPE HYPHEN"
10317 if test "$COM" = "MSC"; then
10318 HYPHEN_LIB="${WORKDIR}/LinkTarget/StaticLibrary/hyphen.lib"
10320 HYPHEN_LIB="-L${WORKDIR}/UnpackedTarball/hyphen/.libs -lhyphen"
10323 AC_SUBST(SYSTEM_HYPH)
10324 AC_SUBST(HYPHEN_LIB)
10326 dnl ===================================================================
10327 dnl Checking for mythes
10328 dnl ===================================================================
10329 AC_MSG_CHECKING([which mythes to use])
10330 if test "$_os" = iOS; then
10331 AC_MSG_RESULT([none])
10332 elif test "$with_system_mythes" = "yes"; then
10333 AC_MSG_RESULT([external])
10335 AC_LANG_PUSH([C++])
10336 PKG_CHECK_MODULES(MYTHES, mythes, MYTHES_PKGCONFIG=yes, MYTHES_PKGCONFIG=no)
10337 if test "$MYTHES_PKGCONFIG" = "no"; then
10338 AC_CHECK_HEADER(mythes.hxx, [],
10339 [ AC_MSG_ERROR(mythes.hxx headers not found.)], [])
10340 AC_CHECK_LIB([mythes-1.2], [main], [:],
10341 [ MYTHES_FOUND=no], [])
10342 if test "$MYTHES_FOUND" = "no"; then
10343 AC_CHECK_LIB(mythes, main, [MYTHES_FOUND=yes],
10344 [ MYTHES_FOUND=no], [])
10346 if test "$MYTHES_FOUND" = "no"; then
10347 AC_MSG_ERROR([mythes library not found!.])
10351 MYTHES_CFLAGS=$(printf '%s' "$MYTHES_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
10352 FilterLibs "${MYTHES_LIBS}"
10353 MYTHES_LIBS="${filteredlibs}"
10355 AC_MSG_RESULT([internal])
10357 BUILD_TYPE="$BUILD_TYPE MYTHES"
10358 if test "$COM" = "MSC"; then
10359 MYTHES_LIBS="${WORKDIR}/LinkTarget/StaticLibrary/mythes.lib"
10361 MYTHES_LIBS="-L${WORKDIR}/UnpackedTarball/mythes/.libs -lmythes-1.2"
10364 AC_SUBST(SYSTEM_MYTHES)
10365 AC_SUBST(MYTHES_CFLAGS)
10366 AC_SUBST(MYTHES_LIBS)
10368 dnl ===================================================================
10369 dnl How should we build the linear programming solver ?
10370 dnl ===================================================================
10373 AC_MSG_CHECKING([whether to build with CoinMP])
10374 if test "$enable_coinmp" != "no"; then
10376 AC_MSG_RESULT([yes])
10377 if test "$with_system_coinmp" = "yes"; then
10379 PKG_CHECK_MODULES(COINMP, coinmp coinutils)
10380 FilterLibs "${COINMP_LIBS}"
10381 COINMP_LIBS="${filteredlibs}"
10383 BUILD_TYPE="$BUILD_TYPE COINMP"
10386 AC_MSG_RESULT([no])
10388 AC_SUBST(ENABLE_COINMP)
10389 AC_SUBST(SYSTEM_COINMP)
10390 AC_SUBST(COINMP_CFLAGS)
10391 AC_SUBST(COINMP_LIBS)
10394 AC_MSG_CHECKING([whether to build with lpsolve])
10395 if test "$enable_lpsolve" != "no"; then
10396 ENABLE_LPSOLVE=TRUE
10397 AC_MSG_RESULT([yes])
10399 AC_MSG_RESULT([no])
10401 AC_SUBST(ENABLE_LPSOLVE)
10403 if test "$ENABLE_LPSOLVE" = TRUE; then
10404 AC_MSG_CHECKING([which lpsolve to use])
10405 if test "$with_system_lpsolve" = "yes"; then
10406 AC_MSG_RESULT([external])
10407 SYSTEM_LPSOLVE=TRUE
10408 AC_CHECK_HEADER(lpsolve/lp_lib.h, [],
10409 [ AC_MSG_ERROR(lpsolve headers not found.)], [])
10411 # some systems need this. Like Ubuntu...
10412 AC_CHECK_LIB(m, floor)
10413 AC_CHECK_LIB(dl, dlopen)
10414 AC_CHECK_LIB([lpsolve55], [make_lp], [:],
10415 [ AC_MSG_ERROR(lpsolve library not found or too old.)], [])
10418 AC_MSG_RESULT([internal])
10420 BUILD_TYPE="$BUILD_TYPE LPSOLVE"
10423 AC_SUBST(SYSTEM_LPSOLVE)
10425 dnl ===================================================================
10426 dnl Checking for libexttextcat
10427 dnl ===================================================================
10428 libo_CHECK_SYSTEM_MODULE([libexttextcat],[LIBEXTTEXTCAT],[libexttextcat >= 3.4.1])
10429 if test "$with_system_libexttextcat" = "yes"; then
10430 SYSTEM_LIBEXTTEXTCAT_DATA=file://`$PKG_CONFIG --variable=pkgdatadir libexttextcat`
10432 AC_SUBST(SYSTEM_LIBEXTTEXTCAT_DATA)
10434 dnl ===================================================================
10435 dnl Checking for libnumbertext
10436 dnl ===================================================================
10437 AC_MSG_CHECKING([whether to use libnumbertext])
10438 if test "$enable_libnumbertext" = "no"; then
10439 AC_MSG_RESULT([no])
10440 ENABLE_LIBNUMBERTEXT=
10441 SYSTEM_LIBNUMBERTEXT=
10443 AC_MSG_RESULT([yes])
10444 ENABLE_LIBNUMBERTEXT=TRUE
10445 libo_CHECK_SYSTEM_MODULE([libnumbertext],[LIBNUMBERTEXT],[libnumbertext >= 1.0.0])
10446 if test "$with_system_libnumbertext" = "yes"; then
10447 SYSTEM_LIBNUMBERTEXT_DATA=file://`$PKG_CONFIG --variable=pkgdatadir libnumbertext`
10448 SYSTEM_LIBNUMBERTEXT=YES
10450 SYSTEM_LIBNUMBERTEXT=
10451 AC_LANG_PUSH([C++])
10452 save_CPPFLAGS=$CPPFLAGS
10453 CPPFLAGS="$CPPFLAGS $CXXFLAGS_CXX11"
10454 AC_CHECK_HEADERS([codecvt regex])
10455 AS_IF([test "x$ac_cv_header_codecvt" != xyes -o "x$ac_cv_header_regex" != xyes],
10456 [ ENABLE_LIBNUMBERTEXT=''
10457 LIBNUMBERTEXT_CFLAGS=''
10458 AC_MSG_WARN([No system-provided libnumbertext or codecvt/regex C++11 headers (min. libstdc++ 4.9).
10459 Enable libnumbertext fallback (missing number to number name conversion).])
10461 CPPFLAGS=$save_CPPFLAGS
10464 if test "$ENABLE_LIBNUMBERTEXT" = TRUE; then
10465 AC_DEFINE(ENABLE_LIBNUMBERTEXT)
10468 AC_SUBST(SYSTEM_LIBNUMBERTEXT)
10469 AC_SUBST(SYSTEM_LIBNUMBERTEXT_DATA)
10470 AC_SUBST(ENABLE_LIBNUMBERTEXT)
10471 AC_SUBST(LIBNUMBERTEXT_CFLAGS)
10473 dnl ***************************************
10474 dnl testing libc version for Linux...
10475 dnl ***************************************
10476 if test "$_os" = "Linux"; then
10477 AC_MSG_CHECKING([whether libc is >= 2.1.1])
10478 exec 6>/dev/null # no output
10479 AC_CHECK_LIB(c, gnu_get_libc_version, HAVE_LIBC=yes; export HAVE_LIBC)
10480 exec 6>&1 # output on again
10481 if test "$HAVE_LIBC"; then
10482 AC_MSG_RESULT([yes])
10484 AC_MSG_ERROR([no, upgrade libc])
10488 dnl =========================================
10489 dnl Check for uuidgen
10490 dnl =========================================
10491 if test "$_os" = "WINNT" -a "$cross_compiling" != "yes"; then
10492 # presence is already tested above in the WINDOWS_SDK_HOME check
10493 UUIDGEN=uuidgen.exe
10496 AC_PATH_PROG([UUIDGEN], [uuidgen])
10497 if test -z "$UUIDGEN"; then
10498 AC_MSG_WARN([uuid is needed for building installation sets])
10502 dnl ***************************************
10503 dnl Checking for bison and flex
10504 dnl ***************************************
10505 AC_PATH_PROG(BISON, bison)
10506 if test -z "$BISON"; then
10507 AC_MSG_ERROR([no bison found in \$PATH, install it])
10509 AC_MSG_CHECKING([the bison version])
10510 _bison_version=`$BISON --version | grep GNU | $SED -e 's@^[[^0-9]]*@@' -e 's@ .*@@' -e 's@,.*@@'`
10511 _bison_longver=`echo $_bison_version | $AWK -F. '{ print \$1*1000+\$2}'`
10512 dnl Accept newer than 2.0; for --enable-compiler-plugins at least 2.3 is known to be bad and
10515 dnl idlc/source/parser.y:222:15: error: externally available entity 'YYSTYPE' is not previously declared in an included file (if it is only used in this translation unit, put it in an unnamed namespace; otherwise, provide a declaration of it in an included file) [loplugin:external]
10516 dnl typedef union YYSTYPE
10519 dnl while at least 3.4.1 is know to be good:
10520 if test "$COMPILER_PLUGINS" = TRUE; then
10521 if test "$_bison_longver" -lt 2004; then
10522 AC_MSG_ERROR([failed ($BISON $_bison_version need 2.4+ for --enable-compiler-plugins)])
10525 if test "$_bison_longver" -lt 2000; then
10526 AC_MSG_ERROR([failed ($BISON $_bison_version need 2.0+)])
10532 AC_PATH_PROG(FLEX, flex)
10533 if test "$GNUMAKE_WIN_NATIVE" = "TRUE" ; then
10534 FLEX=`cygpath -m $FLEX`
10536 if test -z "$FLEX"; then
10537 AC_MSG_ERROR([no flex found in \$PATH, install it])
10539 AC_MSG_CHECKING([the flex version])
10540 _flex_version=$($FLEX --version | $SED -e 's/^.*\([[[:digit:]]]\{1,\}\.[[[:digit:]]]\{1,\}\.[[[:digit:]]]\{1,\}\).*$/\1/')
10541 if test $(echo $_flex_version | $AWK -F. '{printf("%d%03d%03d", $1, $2, $3)}') -lt 2006000; then
10542 AC_MSG_ERROR([failed ($FLEX $_flex_version found, but need at least 2.6.0)])
10546 dnl ***************************************
10547 dnl Checking for patch
10548 dnl ***************************************
10549 AC_PATH_PROG(PATCH, patch)
10550 if test -z "$PATCH"; then
10551 AC_MSG_ERROR(["patch" not found in \$PATH, install it])
10554 dnl On Solaris, FreeBSD or macOS, check if --with-gnu-patch was used
10555 if test "$_os" = "SunOS" -o "$_os" = "FreeBSD" -o "$_os" = "Darwin"; then
10556 if test -z "$with_gnu_patch"; then
10559 if test -x "$with_gnu_patch"; then
10560 GNUPATCH=$with_gnu_patch
10562 AC_MSG_ERROR([--with-gnu-patch did not point to an executable])
10566 AC_MSG_CHECKING([whether $GNUPATCH is GNU patch])
10567 if $GNUPATCH --version | grep "Free Software Foundation" >/dev/null 2>/dev/null; then
10568 AC_MSG_RESULT([yes])
10570 AC_MSG_ERROR([no, GNU patch needed. install or specify with --with-gnu-patch=/path/to/it])
10576 if test "$GNUMAKE_WIN_NATIVE" = "TRUE" ; then
10577 GNUPATCH=`cygpath -m $GNUPATCH`
10580 dnl We also need to check for --with-gnu-cp
10582 if test -z "$with_gnu_cp"; then
10583 # check the place where the good stuff is hidden on Solaris...
10584 if test -x /usr/gnu/bin/cp; then
10585 GNUCP=/usr/gnu/bin/cp
10587 AC_PATH_PROGS(GNUCP, gnucp cp)
10589 if test -z $GNUCP; then
10590 AC_MSG_ERROR([Neither gnucp nor cp found. Install GNU cp and/or specify --with-gnu-cp=/path/to/it])
10593 if test -x "$with_gnu_cp"; then
10596 AC_MSG_ERROR([--with-gnu-cp did not point to an executable])
10600 if test "$GNUMAKE_WIN_NATIVE" = "TRUE" ; then
10601 GNUCP=`cygpath -m $GNUCP`
10604 AC_MSG_CHECKING([whether $GNUCP is GNU cp from coreutils with preserve= support])
10605 if $GNUCP --version 2>/dev/null | grep "coreutils" >/dev/null 2>/dev/null; then
10606 AC_MSG_RESULT([yes])
10607 elif $GNUCP --version 2>/dev/null | grep "GNU fileutils" >/dev/null 2>/dev/null; then
10608 AC_MSG_RESULT([yes])
10610 case "$build_os" in
10611 darwin*|netbsd*|openbsd*|freebsd*|dragonfly*|aix*)
10614 AC_MSG_RESULT([no gnucp found - using the system's cp command])
10617 AC_MSG_ERROR([no, GNU cp needed. install or specify with --with-gnu-cp=/path/to/it])
10626 dnl ***************************************
10627 dnl testing assembler path
10628 dnl ***************************************
10630 if test "$_os" = "WINNT"; then
10631 if test "$BITNESS_OVERRIDE" = ""; then
10637 AC_MSG_CHECKING([for the MSVC assembler ($assembler)])
10638 if test -f "$CL_PATH/$assembler"; then
10639 ML_EXE=`win_short_path_for_make "$CL_PATH/$assembler"`
10640 AC_MSG_RESULT([$ML_EXE])
10642 AC_MSG_ERROR([not found])
10648 dnl ===================================================================
10649 dnl We need zip and unzip
10650 dnl ===================================================================
10651 AC_PATH_PROG(ZIP, zip)
10652 test -z "$ZIP" && AC_MSG_ERROR([zip is required])
10653 if ! "$ZIP" --filesync < /dev/null 2>/dev/null > /dev/null; then
10654 AC_MSG_ERROR([Zip version 3.0 or newer is required to build, please install it and make sure it is the one found first in PATH],,)
10657 AC_PATH_PROG(UNZIP, unzip)
10658 test -z "$UNZIP" && AC_MSG_ERROR([unzip is required])
10660 dnl ===================================================================
10661 dnl Zip must be a specific type for different build types.
10662 dnl ===================================================================
10663 if test $build_os = cygwin; then
10664 if test -n "`$ZIP -h | $GREP -i WinNT`"; then
10665 AC_MSG_ERROR([$ZIP is not the required Cygwin version of Info-ZIP's zip.exe.])
10669 dnl ===================================================================
10670 dnl We need touch with -h option support.
10671 dnl ===================================================================
10672 AC_PATH_PROG(TOUCH, touch)
10673 test -z "$TOUCH" && AC_MSG_ERROR([touch is required])
10675 if ! "$TOUCH" -h warn 2>/dev/null > /dev/null; then
10676 AC_MSG_ERROR([touch version with -h option support is required to build, please install it and make sure it is the one found first in PATH],,)
10679 dnl ===================================================================
10680 dnl Check for system epoxy
10681 dnl ===================================================================
10682 libo_CHECK_SYSTEM_MODULE([epoxy], [EPOXY], [epoxy >= 1.2], ["-I${WORKDIR}/UnpackedTarball/epoxy/include"])
10684 dnl ===================================================================
10685 dnl Set vcl option: coordinate device in double or sal_Int32
10686 dnl ===================================================================
10688 dnl disabled for now, we don't want subtle differences between OSs
10689 dnl AC_MSG_CHECKING([Type to use for Device Pixel coordinates])
10690 dnl if test "$_os" = "Darwin" -o $_os = iOS ; then
10691 dnl AC_DEFINE(VCL_FLOAT_DEVICE_PIXEL)
10692 dnl AC_MSG_RESULT([double])
10694 dnl AC_MSG_RESULT([sal_Int32])
10697 dnl ===================================================================
10698 dnl Test which vclplugs have to be built.
10699 dnl ===================================================================
10701 if test "$USING_X11" != TRUE; then
10707 if test "x$enable_gtk3" = "xyes"; then
10708 if test "$with_system_cairo" = no; then
10709 AC_MSG_ERROR([System cairo required for gtk3 support, do not combine --enable-gtk3 with --without-system-cairo])
10711 : ${with_system_cairo:=yes}
10712 PKG_CHECK_MODULES(GTK3, gtk+-3.0 >= 3.18 gtk+-unix-print-3.0 gmodule-no-export-2.0 glib-2.0 >= 2.38 cairo, ENABLE_GTK3="TRUE", ENABLE_GTK3="")
10713 if test "x$ENABLE_GTK3" = "xTRUE"; then
10714 AC_DEFINE(ENABLE_GTK3)
10717 AC_MSG_ERROR([gtk3 or dependent libraries of the correct versions, not found])
10719 GTK3_CFLAGS=$(printf '%s' "$GTK3_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
10720 FilterLibs "${GTK3_LIBS}"
10721 GTK3_LIBS="${filteredlibs}"
10723 dnl We require egl only for the gtk3 plugin. Otherwise we use glx.
10724 if test "$with_system_epoxy" != "yes"; then
10725 AC_CHECK_LIB(EGL, eglMakeCurrent, [:], AC_MSG_ERROR([libEGL required.]))
10726 AC_CHECK_HEADER(EGL/eglplatform.h, [],
10727 [AC_MSG_ERROR(EGL headers not found. install mesa-libEGL-devel)], [])
10730 AC_SUBST(GTK3_LIBS)
10731 AC_SUBST(GTK3_CFLAGS)
10732 AC_SUBST(ENABLE_GTK3)
10734 if test "$enable_introspection" = yes; then
10735 if test "$ENABLE_GTK3" = TRUE; then
10736 GOBJECT_INTROSPECTION_REQUIRE(INTROSPECTION_REQUIRED_VERSION)
10738 AC_MSG_ERROR([--enable-introspection requires --enable-gtk3])
10743 if test "x$enable_qt5" = "xyes"; then
10745 AC_DEFINE(ENABLE_QT5)
10748 AC_SUBST(ENABLE_QT5)
10751 if test "x$enable_kf5" = "xyes"; then
10753 AC_DEFINE(ENABLE_KF5)
10756 AC_SUBST(ENABLE_KF5)
10758 ENABLE_GTK3_KDE5=""
10759 if test "x$enable_gtk3_kde5" = "xyes"; then
10760 ENABLE_GTK3_KDE5="TRUE"
10761 AC_DEFINE(ENABLE_GTK3_KDE5)
10764 AC_SUBST(ENABLE_GTK3_KDE5)
10766 if test "$_os" = "WINNT"; then
10768 elif test "$_os" = "Darwin"; then
10770 elif test "$_os" = "iOS"; then
10774 build_vcl_plugins="$R"
10775 if test -z "$build_vcl_plugins"; then
10776 build_vcl_plugins="none"
10778 AC_MSG_NOTICE([VCLplugs to be built: $build_vcl_plugins])
10780 dnl ===================================================================
10781 dnl check for dbus support
10782 dnl ===================================================================
10786 DBUS_GLIB_CFLAGS=""
10790 if test "$enable_dbus" = "no"; then
10794 AC_MSG_CHECKING([whether to enable DBUS support])
10795 if test "$test_dbus" = "yes"; then
10797 AC_MSG_RESULT([yes])
10798 PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.60)
10799 AC_DEFINE(ENABLE_DBUS)
10800 DBUS_CFLAGS=$(printf '%s' "$DBUS_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
10801 FilterLibs "${DBUS_LIBS}"
10802 DBUS_LIBS="${filteredlibs}"
10804 # Glib is needed for BluetoothServer
10805 # Sets also DBUS_GLIB_CFLAGS/DBUS_GLIB_LIBS if successful.
10806 PKG_CHECK_MODULES(DBUS_GLIB,[glib-2.0 >= 2.4],
10808 DBUS_HAVE_GLIB="TRUE"
10809 AC_DEFINE(DBUS_HAVE_GLIB,1)
10811 AC_MSG_WARN([[No Glib found, Bluetooth support will be disabled]])
10814 AC_MSG_RESULT([no])
10817 AC_SUBST(ENABLE_DBUS)
10818 AC_SUBST(DBUS_CFLAGS)
10819 AC_SUBST(DBUS_LIBS)
10820 AC_SUBST(DBUS_GLIB_CFLAGS)
10821 AC_SUBST(DBUS_GLIB_LIBS)
10822 AC_SUBST(DBUS_HAVE_GLIB)
10824 AC_MSG_CHECKING([whether to enable Impress remote control])
10825 if test -n "$enable_sdremote" -a "$enable_sdremote" != "no"; then
10826 AC_MSG_RESULT([yes])
10827 ENABLE_SDREMOTE=TRUE
10828 AC_MSG_CHECKING([whether to enable Bluetooth support in Impress remote control])
10830 if test $OS = MACOSX && test "$MACOSX_SDK_VERSION" -ge 101500; then
10831 # The Bluetooth code doesn't compile with macOS SDK 10.15
10832 if test "$enable_sdremote_bluetooth" = yes; then
10833 AC_MSG_ERROR([macOS SDK $with_macosx_sdk does not currently support --enable-sdremote-bluetooth])
10835 enable_sdremote_bluetooth=no
10837 # If not explicitly enabled or disabled, default
10838 if test -z "$enable_sdremote_bluetooth"; then
10841 # Default to yes for these
10842 enable_sdremote_bluetooth=yes
10846 enable_sdremote_bluetooth=no
10850 # $enable_sdremote_bluetooth is guaranteed non-empty now
10852 if test "$enable_sdremote_bluetooth" != "no"; then
10853 if test "$OS" = "LINUX"; then
10854 if test "$ENABLE_DBUS" = "TRUE" -a "$DBUS_HAVE_GLIB" = "TRUE"; then
10855 AC_MSG_RESULT([yes])
10856 ENABLE_SDREMOTE_BLUETOOTH=TRUE
10857 dnl ===================================================================
10858 dnl Check for system bluez
10859 dnl ===================================================================
10860 AC_MSG_CHECKING([which Bluetooth header to use])
10861 if test "$with_system_bluez" = "yes"; then
10862 AC_MSG_RESULT([external])
10863 AC_CHECK_HEADER(bluetooth/bluetooth.h, [],
10864 [AC_MSG_ERROR(bluetooth.h not found. install bluez)], [])
10867 AC_MSG_RESULT([internal])
10871 AC_MSG_RESULT([no, dbus disabled])
10872 ENABLE_SDREMOTE_BLUETOOTH=
10876 AC_MSG_RESULT([yes])
10877 ENABLE_SDREMOTE_BLUETOOTH=TRUE
10881 AC_MSG_RESULT([no])
10882 ENABLE_SDREMOTE_BLUETOOTH=
10888 AC_MSG_RESULT([no])
10890 AC_SUBST(ENABLE_SDREMOTE)
10891 AC_SUBST(ENABLE_SDREMOTE_BLUETOOTH)
10892 AC_SUBST(SYSTEM_BLUEZ)
10894 dnl ===================================================================
10895 dnl Check whether to enable GIO support
10896 dnl ===================================================================
10897 if test "$ENABLE_GTK3" = "TRUE"; then
10898 AC_MSG_CHECKING([whether to enable GIO support])
10899 if test "$_os" != "WINNT" -a "$_os" != "Darwin" -a "$enable_gio" = "yes"; then
10900 dnl Need at least 2.26 for the dbus support.
10901 PKG_CHECK_MODULES([GIO], [gio-2.0 >= 2.26],
10902 [ENABLE_GIO="TRUE"], [ENABLE_GIO=""])
10903 if test "$ENABLE_GIO" = "TRUE"; then
10904 AC_DEFINE(ENABLE_GIO)
10905 GIO_CFLAGS=$(printf '%s' "$GIO_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
10906 FilterLibs "${GIO_LIBS}"
10907 GIO_LIBS="${filteredlibs}"
10910 AC_MSG_RESULT([no])
10913 AC_SUBST(ENABLE_GIO)
10914 AC_SUBST(GIO_CFLAGS)
10918 dnl ===================================================================
10920 SPLIT_APP_MODULES=""
10921 if test "$enable_split_app_modules" = "yes"; then
10922 SPLIT_APP_MODULES="TRUE"
10924 AC_SUBST(SPLIT_APP_MODULES)
10926 SPLIT_OPT_FEATURES=""
10927 if test "$enable_split_opt_features" = "yes"; then
10928 SPLIT_OPT_FEATURES="TRUE"
10930 AC_SUBST(SPLIT_OPT_FEATURES)
10932 if test $_os = Darwin -o $_os = WINNT -o $_os = iOS; then
10933 if test "$enable_cairo_canvas" = yes; then
10934 AC_MSG_ERROR([The cairo canvas should not be used for this platform])
10936 enable_cairo_canvas=no
10937 elif test -z "$enable_cairo_canvas"; then
10938 enable_cairo_canvas=yes
10941 ENABLE_CAIRO_CANVAS=""
10942 if test "$enable_cairo_canvas" = "yes"; then
10944 ENABLE_CAIRO_CANVAS="TRUE"
10945 AC_DEFINE(ENABLE_CAIRO_CANVAS)
10947 AC_SUBST(ENABLE_CAIRO_CANVAS)
10949 dnl ===================================================================
10950 dnl Check whether the GStreamer libraries are available.
10951 dnl ===================================================================
10953 ENABLE_GSTREAMER_1_0=""
10955 if test "$build_gstreamer_1_0" = "yes"; then
10957 AC_MSG_CHECKING([whether to enable the GStreamer 1.0 avmedia backend])
10958 if test "$enable_avmedia" = yes -a "$enable_gstreamer_1_0" != no; then
10959 ENABLE_GSTREAMER_1_0="TRUE"
10960 AC_MSG_RESULT([yes])
10961 PKG_CHECK_MODULES( [GSTREAMER_1_0], [gstreamer-1.0 gstreamer-plugins-base-1.0 gstreamer-pbutils-1.0 gstreamer-video-1.0] )
10962 GSTREAMER_1_0_CFLAGS=$(printf '%s' "$GSTREAMER_1_0_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
10963 FilterLibs "${GSTREAMER_1_0_LIBS}"
10964 GSTREAMER_1_0_LIBS="${filteredlibs}"
10965 AC_DEFINE(ENABLE_GSTREAMER_1_0)
10967 AC_MSG_RESULT([no])
10970 AC_SUBST(GSTREAMER_1_0_CFLAGS)
10971 AC_SUBST(GSTREAMER_1_0_LIBS)
10972 AC_SUBST(ENABLE_GSTREAMER_1_0)
10974 dnl ===================================================================
10975 dnl Check whether to build the VLC avmedia backend
10976 dnl ===================================================================
10980 AC_MSG_CHECKING([whether to enable the VLC avmedia backend])
10981 if test "$enable_avmedia" = yes -a $_os != iOS -a $_os != Android -a "$enable_vlc" = yes; then
10983 AC_MSG_RESULT([yes])
10985 AC_MSG_RESULT([no])
10987 AC_SUBST(ENABLE_VLC)
10989 ENABLE_OPENGL_TRANSITIONS=
10990 ENABLE_OPENGL_CANVAS=
10991 if test $_os = iOS -o $_os = Android -o "$ENABLE_FUZZERS" = "TRUE"; then
10993 elif test "$_os" = "Darwin"; then
10994 # We use frameworks on macOS, no need for detail checks
10995 ENABLE_OPENGL_TRANSITIONS=TRUE
10996 AC_DEFINE(HAVE_FEATURE_OPENGL,1)
10997 ENABLE_OPENGL_CANVAS=TRUE
10998 elif test $_os = WINNT; then
10999 ENABLE_OPENGL_TRANSITIONS=TRUE
11000 AC_DEFINE(HAVE_FEATURE_OPENGL,1)
11001 ENABLE_OPENGL_CANVAS=TRUE
11003 if test "$USING_X11" = TRUE; then
11004 AC_CHECK_LIB(GL, glBegin, [:], AC_MSG_ERROR([libGL required.]))
11005 ENABLE_OPENGL_TRANSITIONS=TRUE
11006 AC_DEFINE(HAVE_FEATURE_OPENGL,1)
11007 ENABLE_OPENGL_CANVAS=TRUE
11011 AC_SUBST(ENABLE_OPENGL_TRANSITIONS)
11012 AC_SUBST(ENABLE_OPENGL_CANVAS)
11014 dnl =================================================
11015 dnl Check whether to build with OpenCL support.
11016 dnl =================================================
11018 if test $_os != iOS -a $_os != Android -a "$ENABLE_FUZZERS" != "TRUE"; then
11019 # OPENCL in BUILD_TYPE and HAVE_FEATURE_OPENCL tell that OpenCL is potentially available on the
11020 # platform (optional at run-time, used through clew).
11021 BUILD_TYPE="$BUILD_TYPE OPENCL"
11022 AC_DEFINE(HAVE_FEATURE_OPENCL)
11025 dnl =================================================
11026 dnl Check whether to build with dconf support.
11027 dnl =================================================
11029 if test $_os != Android -a $_os != iOS -a "$enable_dconf" != no; then
11030 PKG_CHECK_MODULES([DCONF], [dconf >= 0.15.2], [], [
11031 if test "$enable_dconf" = yes; then
11032 AC_MSG_ERROR([dconf not found])
11037 AC_MSG_CHECKING([whether to enable dconf])
11038 if test $_os = Android -o $_os = iOS -o "$enable_dconf" = no; then
11042 AC_MSG_RESULT([no])
11045 AC_DEFINE(ENABLE_DCONF)
11046 AC_MSG_RESULT([yes])
11048 AC_SUBST([DCONF_CFLAGS])
11049 AC_SUBST([DCONF_LIBS])
11050 AC_SUBST([ENABLE_DCONF])
11053 AC_MSG_CHECKING([whether to build the PDF import feature])
11055 if test $_os != Android -a $_os != iOS -a \( -z "$enable_pdfimport" -o "$enable_pdfimport" = yes \); then
11056 AC_MSG_RESULT([yes])
11057 ENABLE_PDFIMPORT=TRUE
11058 AC_DEFINE(HAVE_FEATURE_PDFIMPORT)
11060 AC_MSG_RESULT([no])
11064 AC_MSG_CHECKING([whether to build PDFium])
11066 if test \( -z "$enable_pdfium" -a "$ENABLE_PDFIMPORT" = "TRUE" \) -o "$enable_pdfium" = yes; then
11067 AC_MSG_RESULT([yes])
11069 AC_DEFINE(HAVE_FEATURE_PDFIUM)
11070 BUILD_TYPE="$BUILD_TYPE PDFIUM"
11072 AC_MSG_RESULT([no])
11074 AC_SUBST(ENABLE_PDFIUM)
11076 dnl ===================================================================
11077 dnl Check for poppler
11078 dnl ===================================================================
11080 AC_MSG_CHECKING([whether to build Poppler])
11081 if test \( -z "$enable_poppler" -a "$ENABLE_PDFIMPORT" = "TRUE" \) -o "$enable_poppler" = yes; then
11082 AC_MSG_RESULT([yes])
11083 ENABLE_POPPLER=TRUE
11084 AC_DEFINE(HAVE_FEATURE_POPPLER)
11086 AC_MSG_RESULT([no])
11088 AC_SUBST(ENABLE_POPPLER)
11090 if test "$ENABLE_PDFIMPORT" = "TRUE" -a "$ENABLE_POPPLER" != "TRUE" -a "$ENABLE_PDFIUM" != "TRUE"; then
11091 AC_MSG_ERROR([Cannot import PDF without either Pdfium or Poppler; please enable either of them.])
11094 if test "$ENABLE_PDFIMPORT" != "TRUE" -a \( "$ENABLE_POPPLER" = "TRUE" -o "$ENABLE_PDFIUM" = "TRUE" \); then
11095 AC_MSG_ERROR([Cannot enable Pdfium or Poppler when PDF importing is disabled; please enable PDF import first.])
11098 if test "$ENABLE_PDFIMPORT" = "TRUE" -a "$ENABLE_POPPLER" = "TRUE"; then
11099 dnl ===================================================================
11100 dnl Check for system poppler
11101 dnl ===================================================================
11102 AC_MSG_CHECKING([which PDF import poppler to use])
11103 if test "$with_system_poppler" = "yes"; then
11104 AC_MSG_RESULT([external])
11105 SYSTEM_POPPLER=TRUE
11106 PKG_CHECK_MODULES( POPPLER, poppler >= 0.12.0 )
11107 AC_LANG_PUSH([C++])
11108 save_CXXFLAGS=$CXXFLAGS
11109 save_CPPFLAGS=$CPPFLAGS
11110 CXXFLAGS="$CXXFLAGS $POPPLER_CFLAGS"
11111 CPPFLAGS="$CPPFLAGS $POPPLER_CFLAGS"
11112 AC_CHECK_HEADER([cpp/poppler-version.h],
11113 [AC_DEFINE([HAVE_POPPLER_VERSION_H], 1)],
11115 CXXFLAGS=$save_CXXFLAGS
11116 CPPFLAGS=$save_CPPFLAGS
11118 POPPLER_CFLAGS=$(printf '%s' "$POPPLER_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
11120 FilterLibs "${POPPLER_LIBS}"
11121 POPPLER_LIBS="${filteredlibs}"
11123 AC_MSG_RESULT([internal])
11125 BUILD_TYPE="$BUILD_TYPE POPPLER"
11126 AC_DEFINE([HAVE_POPPLER_VERSION_H], 1)
11128 AC_DEFINE([ENABLE_PDFIMPORT],1)
11130 AC_SUBST(ENABLE_PDFIMPORT)
11131 AC_SUBST(SYSTEM_POPPLER)
11132 AC_SUBST(POPPLER_CFLAGS)
11133 AC_SUBST(POPPLER_LIBS)
11136 AC_MSG_CHECKING([whether to build Skia])
11138 if test "$enable_skia" != "no" -a "$build_skia" = "yes"; then
11139 AC_MSG_RESULT([yes])
11141 AC_DEFINE(HAVE_FEATURE_SKIA)
11142 BUILD_TYPE="$BUILD_TYPE SKIA"
11144 AC_MSG_RESULT([no])
11146 AC_SUBST(ENABLE_SKIA)
11150 if test "$build_for_ios" = "YES"; then
11151 AC_MSG_CHECKING([whether gpgmepp should be disabled due to iOS])
11152 AC_MSG_RESULT([yes])
11153 elif test "$enable_mpl_subset" = "yes"; then
11154 AC_MSG_CHECKING([whether gpgmepp should be disabled due to building just MPL])
11155 AC_MSG_RESULT([yes])
11156 elif test "$enable_fuzzers" = "yes"; then
11157 AC_MSG_CHECKING([whether gpgmepp should be disabled due to oss-fuzz])
11158 AC_MSG_RESULT([yes])
11159 elif test "$_os" = "Linux" -o "$_os" = "Darwin" -o "$_os" = "WINNT" ; then
11160 dnl ===================================================================
11161 dnl Check for system gpgme
11162 dnl ===================================================================
11163 AC_MSG_CHECKING([which gpgmepp to use])
11164 if test "$with_system_gpgmepp" = "yes"; then
11165 AC_MSG_RESULT([external])
11166 SYSTEM_GPGMEPP=TRUE
11168 # C++ library doesn't come with fancy gpgmepp-config, check for headers the old-fashioned way
11169 AC_CHECK_HEADER(gpgme++/gpgmepp_version.h, [ GPGMEPP_CFLAGS=-I/usr/include/gpgme++ ],
11170 [AC_MSG_ERROR([gpgmepp headers not found, install gpgmepp development package])], [])
11171 # progress_callback is the only func with plain C linkage
11172 # checking for it also filters out older, KDE-dependent libgpgmepp versions
11173 AC_CHECK_LIB(gpgmepp, progress_callback, [ GPGMEPP_LIBS=-lgpgmepp ],
11174 [AC_MSG_ERROR(gpgmepp not found or not functional)], [])
11175 AC_CHECK_HEADER(gpgme.h, [],
11176 [AC_MSG_ERROR([gpgme headers not found, install gpgme development package])], [])
11178 AC_MSG_RESULT([internal])
11179 BUILD_TYPE="$BUILD_TYPE LIBGPGERROR LIBASSUAN GPGMEPP"
11180 AC_DEFINE([GPGME_CAN_EXPORT_MINIMAL_KEY])
11182 GPG_ERROR_CFLAGS="-I${WORKDIR}/UnpackedTarball/libgpg-error/src"
11183 LIBASSUAN_CFLAGS="-I${WORKDIR}/UnpackedTarball/libassuan/src"
11184 if test "$_os" != "WINNT"; then
11185 GPG_ERROR_LIBS="-L${WORKDIR}/UnpackedTarball/libgpg-error/src/.libs -lgpg-error"
11186 LIBASSUAN_LIBS="-L${WORKDIR}/UnpackedTarball/libassuan/src/.libs -lassuan"
11187 elif test "$host_cpu" = "i686" -a "$WINDOWS_SDK_ARCH" = "x64"; then
11188 AC_MSG_ERROR(gpgme cannot be built on cygwin32 for Win64.)
11191 ENABLE_GPGMEPP=TRUE
11192 AC_DEFINE([HAVE_FEATURE_GPGME])
11193 AC_PATH_PROG(GPG, gpg)
11194 # TODO: Windows's cygwin gpg does not seem to work with our gpgme,
11195 # so let's exclude that manually for the moment
11196 if test -n "$GPG" -a "$_os" != "WINNT"; then
11197 # make sure we not only have a working gpgme, but a full working
11198 # gpg installation to run OpenPGP signature verification
11199 AC_DEFINE([HAVE_FEATURE_GPGVERIFY])
11201 if test "$_os" = "Linux"; then
11203 AC_MSG_CHECKING([for /run/user/$uid])
11204 if test -d /run/user/$uid; then
11205 AC_MSG_RESULT([yes])
11206 AC_PATH_PROG(GPGCONF, gpgconf)
11208 # Older versions of gpgconf are not working as expected, since
11209 # `gpgconf --remove-socketdir` fails to exit any gpg-agent daemon operating
11210 # on that socket dir that has (indirectly) been started by the tests in xmlsecurity/qa/unit/signing/signing.cxx
11211 # (see commit message of f0305ec0a7d199e605511844d9d6af98b66d4bfd%5E )
11212 AC_MSG_CHECKING([whether version of gpgconf is suitable ... ])
11213 GPGCONF_VERSION=`"$GPGCONF" --version | "$AWK" '/^gpgconf \(GnuPG\)/{print $3}'`
11214 GPGCONF_NUMVER=`echo $GPGCONF_VERSION | $AWK -F. '{ print \$1*10000+\$2*100+\$3 }'`
11215 if test "$GPGCONF_VERSION" = "2.2_OOo" -o "$GPGCONF_NUMVER" -ge "020200"; then
11216 AC_MSG_RESULT([yes, $GPGCONF_VERSION])
11217 AC_MSG_CHECKING([for gpgconf --create-socketdir... ])
11218 if $GPGCONF --dump-options > /dev/null ; then
11219 if $GPGCONF --dump-options | grep -q create-socketdir ; then
11220 AC_MSG_RESULT([yes])
11221 AC_DEFINE([HAVE_GPGCONF_SOCKETDIR])
11222 AC_DEFINE_UNQUOTED([GPGME_GPGCONF], ["$GPGCONF"])
11224 AC_MSG_RESULT([no])
11227 AC_MSG_RESULT([no. missing or broken gpgconf?])
11230 AC_MSG_RESULT([no, $GPGCONF_VERSION])
11233 AC_MSG_RESULT([no])
11237 AC_SUBST(ENABLE_GPGMEPP)
11238 AC_SUBST(SYSTEM_GPGMEPP)
11239 AC_SUBST(GPG_ERROR_CFLAGS)
11240 AC_SUBST(GPG_ERROR_LIBS)
11241 AC_SUBST(LIBASSUAN_CFLAGS)
11242 AC_SUBST(LIBASSUAN_LIBS)
11243 AC_SUBST(GPGMEPP_CFLAGS)
11244 AC_SUBST(GPGMEPP_LIBS)
11246 AC_MSG_CHECKING([whether to build the Wiki Publisher extension])
11247 if test "x$enable_ext_wiki_publisher" = "xyes" -a "x$enable_extension_integration" != "xno" -a "$with_java" != "no"; then
11248 AC_MSG_RESULT([yes])
11249 ENABLE_MEDIAWIKI=TRUE
11250 BUILD_TYPE="$BUILD_TYPE XSLTML"
11251 if test "x$with_java" = "xno"; then
11252 AC_MSG_ERROR([Wiki Publisher requires Java! Enable Java if you want to build it.])
11255 AC_MSG_RESULT([no])
11257 SCPDEFS="$SCPDEFS -DWITHOUT_EXTENSION_MEDIAWIKI"
11259 AC_SUBST(ENABLE_MEDIAWIKI)
11261 AC_MSG_CHECKING([whether to build the Report Builder])
11262 if test "$enable_report_builder" != "no" -a "$with_java" != "no"; then
11263 AC_MSG_RESULT([yes])
11264 ENABLE_REPORTBUILDER=TRUE
11265 AC_MSG_CHECKING([which jfreereport libs to use])
11266 if test "$with_system_jfreereport" = "yes"; then
11267 SYSTEM_JFREEREPORT=TRUE
11268 AC_MSG_RESULT([external])
11269 if test -z $SAC_JAR; then
11270 SAC_JAR=/usr/share/java/sac.jar
11272 if ! test -f $SAC_JAR; then
11273 AC_MSG_ERROR(sac.jar not found.)
11276 if test -z $LIBXML_JAR; then
11277 if test -f /usr/share/java/libxml-1.0.0.jar; then
11278 LIBXML_JAR=/usr/share/java/libxml-1.0.0.jar
11279 elif test -f /usr/share/java/libxml.jar; then
11280 LIBXML_JAR=/usr/share/java/libxml.jar
11282 AC_MSG_ERROR(libxml.jar replacement not found.)
11284 elif ! test -f $LIBXML_JAR; then
11285 AC_MSG_ERROR(libxml.jar not found.)
11288 if test -z $FLUTE_JAR; then
11289 if test -f/usr/share/java/flute-1.3.0.jar; then
11290 FLUTE_JAR=/usr/share/java/flute-1.3.0.jar
11291 elif test -f /usr/share/java/flute.jar; then
11292 FLUTE_JAR=/usr/share/java/flute.jar
11294 AC_MSG_ERROR(flute-1.3.0.jar replacement not found.)
11296 elif ! test -f $FLUTE_JAR; then
11297 AC_MSG_ERROR(flute-1.3.0.jar not found.)
11300 if test -z $JFREEREPORT_JAR; then
11301 if test -f /usr/share/java/flow-engine-0.9.2.jar; then
11302 JFREEREPORT_JAR=/usr/share/java/flow-engine-0.9.2.jar
11303 elif test -f /usr/share/java/flow-engine.jar; then
11304 JFREEREPORT_JAR=/usr/share/java/flow-engine.jar
11306 AC_MSG_ERROR(jfreereport.jar replacement not found.)
11308 elif ! test -f $JFREEREPORT_JAR; then
11309 AC_MSG_ERROR(jfreereport.jar not found.)
11312 if test -z $LIBLAYOUT_JAR; then
11313 if test -f /usr/share/java/liblayout-0.2.9.jar; then
11314 LIBLAYOUT_JAR=/usr/share/java/liblayout-0.2.9.jar
11315 elif test -f /usr/share/java/liblayout.jar; then
11316 LIBLAYOUT_JAR=/usr/share/java/liblayout.jar
11318 AC_MSG_ERROR(liblayout.jar replacement not found.)
11320 elif ! test -f $LIBLAYOUT_JAR; then
11321 AC_MSG_ERROR(liblayout.jar not found.)
11324 if test -z $LIBLOADER_JAR; then
11325 if test -f /usr/share/java/libloader-1.0.0.jar; then
11326 LIBLOADER_JAR=/usr/share/java/libloader-1.0.0.jar
11327 elif test -f /usr/share/java/libloader.jar; then
11328 LIBLOADER_JAR=/usr/share/java/libloader.jar
11330 AC_MSG_ERROR(libloader.jar replacement not found.)
11332 elif ! test -f $LIBLOADER_JAR; then
11333 AC_MSG_ERROR(libloader.jar not found.)
11336 if test -z $LIBFORMULA_JAR; then
11337 if test -f /usr/share/java/libformula-0.2.0.jar; then
11338 LIBFORMULA_JAR=/usr/share/java/libformula-0.2.0.jar
11339 elif test -f /usr/share/java/libformula.jar; then
11340 LIBFORMULA_JAR=/usr/share/java/libformula.jar
11342 AC_MSG_ERROR(libformula.jar replacement not found.)
11344 elif ! test -f $LIBFORMULA_JAR; then
11345 AC_MSG_ERROR(libformula.jar not found.)
11348 if test -z $LIBREPOSITORY_JAR; then
11349 if test -f /usr/share/java/librepository-1.0.0.jar; then
11350 LIBREPOSITORY_JAR=/usr/share/java/librepository-1.0.0.jar
11351 elif test -f /usr/share/java/librepository.jar; then
11352 LIBREPOSITORY_JAR=/usr/share/java/librepository.jar
11354 AC_MSG_ERROR(librepository.jar replacement not found.)
11356 elif ! test -f $LIBREPOSITORY_JAR; then
11357 AC_MSG_ERROR(librepository.jar not found.)
11360 if test -z $LIBFONTS_JAR; then
11361 if test -f /usr/share/java/libfonts-1.0.0.jar; then
11362 LIBFONTS_JAR=/usr/share/java/libfonts-1.0.0.jar
11363 elif test -f /usr/share/java/libfonts.jar; then
11364 LIBFONTS_JAR=/usr/share/java/libfonts.jar
11366 AC_MSG_ERROR(libfonts.jar replacement not found.)
11368 elif ! test -f $LIBFONTS_JAR; then
11369 AC_MSG_ERROR(libfonts.jar not found.)
11372 if test -z $LIBSERIALIZER_JAR; then
11373 if test -f /usr/share/java/libserializer-1.0.0.jar; then
11374 LIBSERIALIZER_JAR=/usr/share/java/libserializer-1.0.0.jar
11375 elif test -f /usr/share/java/libserializer.jar; then
11376 LIBSERIALIZER_JAR=/usr/share/java/libserializer.jar
11378 AC_MSG_ERROR(libserializer.jar replacement not found.)
11380 elif ! test -f $LIBSERIALIZER_JAR; then
11381 AC_MSG_ERROR(libserializer.jar not found.)
11384 if test -z $LIBBASE_JAR; then
11385 if test -f /usr/share/java/libbase-1.0.0.jar; then
11386 LIBBASE_JAR=/usr/share/java/libbase-1.0.0.jar
11387 elif test -f /usr/share/java/libbase.jar; then
11388 LIBBASE_JAR=/usr/share/java/libbase.jar
11390 AC_MSG_ERROR(libbase.jar replacement not found.)
11392 elif ! test -f $LIBBASE_JAR; then
11393 AC_MSG_ERROR(libbase.jar not found.)
11397 AC_MSG_RESULT([internal])
11398 SYSTEM_JFREEREPORT=
11399 BUILD_TYPE="$BUILD_TYPE JFREEREPORT"
11403 AC_MSG_RESULT([no])
11404 ENABLE_REPORTBUILDER=
11405 SYSTEM_JFREEREPORT=
11407 AC_SUBST(ENABLE_REPORTBUILDER)
11408 AC_SUBST(SYSTEM_JFREEREPORT)
11410 AC_SUBST(LIBXML_JAR)
11411 AC_SUBST(FLUTE_JAR)
11412 AC_SUBST(JFREEREPORT_JAR)
11413 AC_SUBST(LIBBASE_JAR)
11414 AC_SUBST(LIBLAYOUT_JAR)
11415 AC_SUBST(LIBLOADER_JAR)
11416 AC_SUBST(LIBFORMULA_JAR)
11417 AC_SUBST(LIBREPOSITORY_JAR)
11418 AC_SUBST(LIBFONTS_JAR)
11419 AC_SUBST(LIBSERIALIZER_JAR)
11421 # this has to be here because both the Wiki Publisher and the SRB use
11423 COMMONS_LOGGING_VERSION=1.2
11424 if test "$ENABLE_REPORTBUILDER" = "TRUE"; then
11425 AC_MSG_CHECKING([which Apache commons-* libs to use])
11426 if test "$with_system_apache_commons" = "yes"; then
11427 SYSTEM_APACHE_COMMONS=TRUE
11428 AC_MSG_RESULT([external])
11429 if test -z $COMMONS_LOGGING_JAR; then
11430 if test -f /usr/share/java/commons-logging-${COMMONS_LOGGING_VERSION}.jar; then
11431 COMMONS_LOGGING_JAR=/usr/share/java/commons-logging-${COMMONS_LOGGING_VERSION}.jar
11432 elif test -f /usr/share/java/commons-logging.jar; then
11433 COMMONS_LOGGING_JAR=/usr/share/java/commons-logging.jar
11435 AC_MSG_ERROR(commons-logging.jar replacement not found.)
11437 elif ! test -f $COMMONS_LOGGING_JAR; then
11438 AC_MSG_ERROR(commons-logging.jar not found.)
11441 AC_MSG_RESULT([internal])
11442 SYSTEM_APACHE_COMMONS=
11443 BUILD_TYPE="$BUILD_TYPE APACHE_COMMONS"
11447 AC_SUBST(SYSTEM_APACHE_COMMONS)
11448 AC_SUBST(COMMONS_LOGGING_JAR)
11449 AC_SUBST(COMMONS_LOGGING_VERSION)
11451 # scripting provider for BeanShell?
11452 AC_MSG_CHECKING([whether to build support for scripts in BeanShell])
11453 if test "${enable_scripting_beanshell}" != "no" -a "x$with_java" != "xno"; then
11454 AC_MSG_RESULT([yes])
11455 ENABLE_SCRIPTING_BEANSHELL=TRUE
11457 dnl ===================================================================
11458 dnl Check for system beanshell
11459 dnl ===================================================================
11460 AC_MSG_CHECKING([which beanshell to use])
11461 if test "$with_system_beanshell" = "yes"; then
11462 AC_MSG_RESULT([external])
11464 if test -z $BSH_JAR; then
11465 BSH_JAR=/usr/share/java/bsh.jar
11467 if ! test -f $BSH_JAR; then
11468 AC_MSG_ERROR(bsh.jar not found.)
11471 AC_MSG_RESULT([internal])
11473 BUILD_TYPE="$BUILD_TYPE BSH"
11476 AC_MSG_RESULT([no])
11477 ENABLE_SCRIPTING_BEANSHELL=
11478 SCPDEFS="$SCPDEFS -DWITHOUT_SCRIPTING_BEANSHELL"
11480 AC_SUBST(ENABLE_SCRIPTING_BEANSHELL)
11481 AC_SUBST(SYSTEM_BSH)
11484 # scripting provider for JavaScript?
11485 AC_MSG_CHECKING([whether to build support for scripts in JavaScript])
11486 if test "${enable_scripting_javascript}" != "no" -a "x$with_java" != "xno"; then
11487 AC_MSG_RESULT([yes])
11488 ENABLE_SCRIPTING_JAVASCRIPT=TRUE
11490 dnl ===================================================================
11491 dnl Check for system rhino
11492 dnl ===================================================================
11493 AC_MSG_CHECKING([which rhino to use])
11494 if test "$with_system_rhino" = "yes"; then
11495 AC_MSG_RESULT([external])
11497 if test -z $RHINO_JAR; then
11498 RHINO_JAR=/usr/share/java/js.jar
11500 if ! test -f $RHINO_JAR; then
11501 AC_MSG_ERROR(js.jar not found.)
11504 AC_MSG_RESULT([internal])
11506 BUILD_TYPE="$BUILD_TYPE RHINO"
11510 AC_MSG_RESULT([no])
11511 ENABLE_SCRIPTING_JAVASCRIPT=
11512 SCPDEFS="$SCPDEFS -DWITHOUT_SCRIPTING_JAVASCRIPT"
11514 AC_SUBST(ENABLE_SCRIPTING_JAVASCRIPT)
11515 AC_SUBST(SYSTEM_RHINO)
11516 AC_SUBST(RHINO_JAR)
11518 # This is only used in Qt5/KF5 checks to determine if /usr/lib64
11519 # paths should be added to library search path. So lets put all 64-bit
11522 case "$host_cpu" in
11523 x86_64 | powerpc64 | powerpc64le | s390x | aarch64 | mips64 | mips64el)
11524 if test "$SAL_TYPES_SIZEOFLONG" = "8"; then
11525 supports_multilib="yes"
11532 dnl ===================================================================
11533 dnl QT5 Integration
11534 dnl ===================================================================
11540 QT5_GOBJECT_CFLAGS=""
11541 QT5_GOBJECT_LIBS=""
11542 QT5_HAVE_GOBJECT=""
11543 if test \( "$test_kf5" = "yes" -a "$ENABLE_KF5" = "TRUE" \) -o \
11544 \( "$test_qt5" = "yes" -a "$ENABLE_QT5" = "TRUE" \) -o \
11545 \( "$test_gtk3_kde5" = "yes" -a "$ENABLE_GTK3_KDE5" = "TRUE" \)
11547 qt5_incdirs="$QT5INC /usr/include/qt5 /usr/include $x_includes"
11548 qt5_libdirs="$QT5LIB /usr/lib/qt5 /usr/lib $x_libraries"
11550 if test -n "$supports_multilib"; then
11551 qt5_libdirs="$qt5_libdirs /usr/lib64/qt5 /usr/lib64/qt /usr/lib64"
11554 qt5_test_include="QtWidgets/qapplication.h"
11555 qt5_test_library="libQt5Widgets.so"
11557 dnl Check for qmake5
11558 AC_PATH_PROGS( QMAKE5, [qmake-qt5 qmake], no, [$QT5DIR/bin:$PATH])
11559 if test "$QMAKE5" = "no"; then
11560 AC_MSG_ERROR([Qmake not found. Please specify the root of your Qt5 installation by exporting QT5DIR before running "configure".])
11562 qmake5_test_ver="`$QMAKE5 -v 2>&1 | $SED -n -e 's/^Using Qt version \(5\.[[0-9.]]\+\).*$/\1/p'`"
11563 if test -z "$qmake5_test_ver"; then
11564 AC_MSG_ERROR([Wrong qmake for Qt5 found. Please specify the root of your Qt5 installation by exporting QT5DIR before running "configure".])
11566 qmake5_minor_version="`echo $qmake5_test_ver | cut -d. -f2`"
11567 qt5_minimal_minor="6"
11568 if test "$qmake5_minor_version" -lt "$qt5_minimal_minor"; then
11569 AC_MSG_ERROR([The minimal supported Qt5 version is 5.${qt5_minimal_minor}, but your 'qmake -v' reports Qt5 version $qmake5_test_ver.])
11571 AC_MSG_NOTICE([Detected Qt5 version: $qmake5_test_ver])
11575 qt5_incdirs="`$QMAKE5 -query QT_INSTALL_HEADERS` $qt5_incdirs"
11576 qt5_libdirs="`$QMAKE5 -query QT_INSTALL_LIBS` $qt5_libdirs"
11578 AC_MSG_CHECKING([for Qt5 headers])
11580 for inc_dir in $qt5_incdirs; do
11581 if test -r "$inc_dir/$qt5_test_include"; then
11582 qt5_incdir="$inc_dir"
11586 AC_MSG_RESULT([$qt5_incdir])
11587 if test "x$qt5_incdir" = "xno"; then
11588 AC_MSG_ERROR([Qt5 headers not found. Please specify the root of your Qt5 installation by exporting QT5DIR before running "configure".])
11591 AC_MSG_CHECKING([for Qt5 libraries])
11593 for lib_dir in $qt5_libdirs; do
11594 if test -r "$lib_dir/$qt5_test_library"; then
11595 qt5_libdir="$lib_dir"
11599 AC_MSG_RESULT([$qt5_libdir])
11600 if test "x$qt5_libdir" = "xno"; then
11601 AC_MSG_ERROR([Qt5 libraries not found. Please specify the root of your Qt5 installation by exporting QT5DIR before running "configure".])
11604 QT5_CFLAGS="-I$qt5_incdir -DQT_CLEAN_NAMESPACE -DQT_THREAD_SUPPORT -DQT_NO_VERSION_TAGGING"
11605 QT5_CFLAGS=$(printf '%s' "$QT5_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
11606 QT5_LIBS="-L$qt5_libdir -lQt5Core -lQt5Gui -lQt5Widgets -lQt5Network"
11608 if test "$USING_X11" = TRUE; then
11609 PKG_CHECK_MODULES(QT5_XCB,[xcb],,[AC_MSG_ERROR([XCB not found, which is needed for correct app grouping in X11.])])
11610 PKG_CHECK_MODULES(QT5_XCB_ICCCM,[xcb-icccm],[
11611 QT5_HAVE_XCB_ICCCM=1
11612 AC_DEFINE(QT5_HAVE_XCB_ICCCM)
11614 AC_MSG_WARN([XCB ICCCM not found, which is needed for old Qt versions (< 5.12) on some WMs to correctly group dialogs (like QTBUG-46626)])
11615 add_warning "XCB ICCCM not found, which is needed for Qt versions (< 5.12) on some WMs to correctly group dialogs (like QTBUG-46626)"
11617 QT5_CFLAGS="$QT5_CFLAGS $QT5_XCB_CFLAGS $QT5_XCB_ICCCM_CFLAGS"
11618 QT5_LIBS="$QT5_LIBS $QT5_XCB_LIBS $QT5_XCB_ICCCM_LIBS -lQt5X11Extras"
11620 AC_DEFINE(QT5_USING_X11)
11623 dnl Check for Meta Object Compiler
11625 AC_PATH_PROGS( MOC5, [moc-qt5 moc], no, [`dirname $qt5_libdir`/bin:$QT5DIR/bin:$PATH])
11626 if test "$MOC5" = "no"; then
11627 AC_MSG_ERROR([Qt Meta Object Compiler not found. Please specify
11628 the root of your Qt installation by exporting QT5DIR before running "configure".])
11631 if test "$build_gstreamer_1_0" = "yes"; then
11632 PKG_CHECK_MODULES(QT5_GOBJECT,[gobject-2.0], [
11634 AC_DEFINE(QT5_HAVE_GOBJECT)
11636 AC_MSG_WARN([[No GObject found, can't use QWidget GStreamer sink on wayland!]])
11640 AC_SUBST(QT5_CFLAGS)
11643 AC_SUBST(QT5_GOBJECT_CFLAGS)
11644 AC_SUBST(QT5_GOBJECT_LIBS)
11645 AC_SUBST(QT5_HAVE_GOBJECT)
11647 dnl ===================================================================
11648 dnl KF5 Integration
11649 dnl ===================================================================
11653 KF5_CONFIG="kf5-config"
11654 if test \( "$test_kf5" = "yes" -a "$ENABLE_KF5" = "TRUE" \) -o \
11655 \( "$test_gtk3_kde5" = "yes" -a "$ENABLE_GTK3_KDE5" = "TRUE" \)
11657 if test "$OS" = "HAIKU"; then
11658 haiku_arch="`echo $RTL_ARCH | tr X x`"
11659 kf5_haiku_incdirs="`findpaths -c ' ' -a $haiku_arch B_FIND_PATH_HEADERS_DIRECTORY`"
11660 kf5_haiku_libdirs="`findpaths -c ' ' -a $haiku_arch B_FIND_PATH_DEVELOP_LIB_DIRECTORY`"
11663 kf5_incdirs="$KF5INC /usr/include $kf5_haiku_incdirs $x_includes"
11664 kf5_libdirs="$KF5LIB /usr/lib /usr/lib/kf5 /usr/lib/kf5/devel $kf5_haiku_libdirs $x_libraries"
11665 if test -n "$supports_multilib"; then
11666 kf5_libdirs="$kf5_libdirs /usr/lib64 /usr/lib64/kf5 /usr/lib64/kf5/devel"
11669 kf5_test_include="KF5/kcoreaddons_version.h"
11670 kf5_test_library="libKF5CoreAddons.so"
11671 kf5_libdirs="$qt5_libdir $kf5_libdirs"
11673 dnl kf5 KDE4 support compatibility installed
11674 AC_PATH_PROG( KF5_CONFIG, $KF5_CONFIG, no, )
11675 if test "$KF5_CONFIG" != "no"; then
11676 kf5_incdirs="`$KF5_CONFIG --path include` $kf5_incdirs"
11677 kf5_libdirs="`$KF5_CONFIG --path lib` $kf5_libdirs"
11680 dnl Check for KF5 headers
11681 AC_MSG_CHECKING([for KF5 headers])
11683 for kf5_check in $kf5_incdirs; do
11684 if test -r "$kf5_check/$kf5_test_include"; then
11685 kf5_incdir="$kf5_check/KF5"
11689 AC_MSG_RESULT([$kf5_incdir])
11690 if test "x$kf5_incdir" = "xno"; then
11691 AC_MSG_ERROR([KF5 headers not found. Please specify the root of your KF5 installation by exporting KF5DIR before running "configure".])
11694 dnl Check for KF5 libraries
11695 AC_MSG_CHECKING([for KF5 libraries])
11697 for kf5_check in $kf5_libdirs; do
11698 if test -r "$kf5_check/$kf5_test_library"; then
11699 kf5_libdir="$kf5_check"
11704 AC_MSG_RESULT([$kf5_libdir])
11705 if test "x$kf5_libdir" = "xno"; then
11706 AC_MSG_ERROR([KF5 libraries not found. Please specify the root of your KF5 installation by exporting KF5DIR before running "configure".])
11709 KF5_CFLAGS="-I$kf5_incdir -I$kf5_incdir/KCoreAddons -I$kf5_incdir/KI18n -I$kf5_incdir/KConfigCore -I$kf5_incdir/KWindowSystem -I$kf5_incdir/KIOCore -I$kf5_incdir/KIOWidgets -I$kf5_incdir/KIOFileWidgets -I$qt5_incdir -I$qt5_incdir/QtCore -I$qt5_incdir/QtGui -I$qt5_incdir/QtWidgets -I$qt5_incdir/QtNetwork -DQT_CLEAN_NAMESPACE -DQT_THREAD_SUPPORT -DQT_NO_VERSION_TAGGING"
11710 KF5_LIBS="-L$kf5_libdir -lKF5CoreAddons -lKF5I18n -lKF5ConfigCore -lKF5WindowSystem -lKF5KIOCore -lKF5KIOWidgets -lKF5KIOFileWidgets -L$qt5_libdir -lQt5Core -lQt5Gui -lQt5Widgets -lQt5Network"
11711 KF5_CFLAGS=$(printf '%s' "$KF5_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
11713 if test "$USING_X11" = TRUE; then
11714 KF5_LIBS="$KF5_LIBS -lQt5X11Extras"
11717 AC_LANG_PUSH([C++])
11718 save_CXXFLAGS=$CXXFLAGS
11719 CXXFLAGS="$CXXFLAGS $KF5_CFLAGS"
11720 AC_MSG_CHECKING([whether KDE is >= 5.0])
11721 AC_RUN_IFELSE([AC_LANG_SOURCE([[
11722 #include <kcoreaddons_version.h>
11724 int main(int argc, char **argv) {
11725 if (KCOREADDONS_VERSION_MAJOR == 5 && KCOREADDONS_VERSION_MINOR >= 0) return 0;
11728 ]])],[AC_MSG_RESULT([yes])],[AC_MSG_ERROR([KDE version too old])],[])
11729 CXXFLAGS=$save_CXXFLAGS
11732 AC_SUBST(KF5_CFLAGS)
11735 dnl ===================================================================
11736 dnl Test whether to include Evolution 2 support
11737 dnl ===================================================================
11738 AC_MSG_CHECKING([whether to enable evolution 2 support])
11739 if test "$enable_evolution2" = "yes" -o "$enable_evolution2" = "TRUE"; then
11740 AC_MSG_RESULT([yes])
11741 PKG_CHECK_MODULES(GOBJECT, gobject-2.0)
11742 GOBJECT_CFLAGS=$(printf '%s' "$GOBJECT_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
11743 FilterLibs "${GOBJECT_LIBS}"
11744 GOBJECT_LIBS="${filteredlibs}"
11745 ENABLE_EVOAB2="TRUE"
11748 AC_MSG_RESULT([no])
11750 AC_SUBST(ENABLE_EVOAB2)
11751 AC_SUBST(GOBJECT_CFLAGS)
11752 AC_SUBST(GOBJECT_LIBS)
11754 dnl ===================================================================
11755 dnl Test which themes to include
11756 dnl ===================================================================
11757 AC_MSG_CHECKING([which themes to include])
11758 # if none given use default subset of available themes
11759 if test "x$with_theme" = "x" -o "x$with_theme" = "xyes"; then
11760 with_theme="breeze breeze_dark breeze_dark_svg breeze_svg colibre colibre_svg elementary elementary_svg karasa_jaga karasa_jaga_svg sifr sifr_svg sifr_dark sifr_dark_svg sukapura sukapura_svg tango"
11764 if test "x$with_theme" != "xno"; then
11765 for theme in $with_theme; do
11767 breeze|breeze_dark|breeze_dark_svg|breeze_svg|colibre|colibre_svg|elementary|elementary_svg|karasa_jaga|karasa_jaga_svg|sifr|sifr_svg|sifr_dark|sifr_dark_svg|sukapura|sukapura_svg|tango) real_theme="$theme" ;;
11768 default) real_theme=colibre ;;
11769 *) AC_MSG_ERROR([Unknown value for --with-theme: $theme]) ;;
11771 WITH_THEMES=`echo "$WITH_THEMES $real_theme"|tr '\ ' '\n'|sort|uniq|tr '\n' '\ '`
11774 AC_MSG_RESULT([$WITH_THEMES])
11775 AC_SUBST([WITH_THEMES])
11776 # FIXME: remove this, and the convenience default->colibre remapping after a grace period
11777 for theme in $with_theme; do
11779 default) AC_MSG_WARN([--with-theme=default is deprecated and will be removed, use --with-theme=colibre]) ;;
11784 dnl ===================================================================
11785 dnl Test whether to integrate helppacks into the product's installer
11786 dnl ===================================================================
11787 AC_MSG_CHECKING([for helppack integration])
11788 if test "$with_helppack_integration" = "no"; then
11789 AC_MSG_RESULT([no integration])
11791 SCPDEFS="$SCPDEFS -DWITH_HELPPACK_INTEGRATION"
11792 AC_MSG_RESULT([integration])
11795 ###############################################################################
11796 # Extensions checking
11797 ###############################################################################
11798 AC_MSG_CHECKING([for extensions integration])
11799 if test "x$enable_extension_integration" != "xno"; then
11800 WITH_EXTENSION_INTEGRATION=TRUE
11801 SCPDEFS="$SCPDEFS -DWITH_EXTENSION_INTEGRATION"
11802 AC_MSG_RESULT([yes, use integration])
11804 WITH_EXTENSION_INTEGRATION=
11805 AC_MSG_RESULT([no, do not integrate])
11807 AC_SUBST(WITH_EXTENSION_INTEGRATION)
11809 dnl Should any extra extensions be included?
11810 dnl There are standalone tests for each of these below.
11811 WITH_EXTRA_EXTENSIONS=
11812 AC_SUBST([WITH_EXTRA_EXTENSIONS])
11814 libo_CHECK_EXTENSION([ConvertTextToNumber],[CT2N],[ct2n],[ct2n],[])
11815 libo_CHECK_EXTENSION([Numbertext],[NUMBERTEXT],[numbertext],[numbertext],[b7cae45ad2c23551fd6ccb8ae2c1f59e-numbertext_0.9.5.oxt])
11816 if test "x$with_java" != "xno"; then
11817 libo_CHECK_EXTENSION([NLPSolver],[NLPSOLVER],[nlpsolver],[nlpsolver],[])
11818 libo_CHECK_EXTENSION([LanguageTool],[LANGUAGETOOL],[languagetool],[languagetool],[])
11821 AC_MSG_CHECKING([whether to build opens___.ttf])
11822 if test "$enable_build_opensymbol" = "yes"; then
11823 AC_MSG_RESULT([yes])
11824 AC_PATH_PROG(FONTFORGE, fontforge)
11825 if test -z "$FONTFORGE"; then
11826 AC_MSG_ERROR([fontforge not installed])
11829 AC_MSG_RESULT([no])
11830 OPENSYMBOL_TTF=884ed41809687c3e168fc7c19b16585149ff058eca79acbf3ee784f6630704cc-opens___.ttf
11831 BUILD_TYPE="$BUILD_TYPE OPENSYMBOL"
11833 AC_SUBST(OPENSYMBOL_TTF)
11834 AC_SUBST(FONTFORGE)
11836 dnl ===================================================================
11837 dnl Test whether to include fonts
11838 dnl ===================================================================
11839 AC_MSG_CHECKING([whether to include third-party fonts])
11840 if test "$with_fonts" != "no"; then
11841 AC_MSG_RESULT([yes])
11843 BUILD_TYPE="$BUILD_TYPE MORE_FONTS"
11844 AC_DEFINE(HAVE_MORE_FONTS)
11846 AC_MSG_RESULT([no])
11848 SCPDEFS="$SCPDEFS -DWITHOUT_FONTS"
11850 AC_SUBST(WITH_FONTS)
11853 dnl ===================================================================
11854 dnl Test whether to enable online update service
11855 dnl ===================================================================
11856 AC_MSG_CHECKING([whether to enable online update])
11857 ENABLE_ONLINE_UPDATE=
11858 ENABLE_ONLINE_UPDATE_MAR=
11860 if test "$enable_online_update" = ""; then
11861 if test "$_os" = "WINNT" -o "$_os" = "Darwin"; then
11862 AC_MSG_RESULT([yes])
11863 ENABLE_ONLINE_UPDATE="TRUE"
11865 AC_MSG_RESULT([no])
11868 if test "$enable_online_update" = "mar"; then
11869 AC_MSG_RESULT([yes - MAR-based online update])
11870 ENABLE_ONLINE_UPDATE_MAR="TRUE"
11871 if test "$with_update_config" = ""; then
11872 AC_MSG_ERROR([mar based online updater needs an update config specified with "with-update-config])
11874 UPDATE_CONFIG="$with_update_config"
11875 AC_DEFINE(HAVE_FEATURE_UPDATE_MAR)
11876 elif test "$enable_online_update" = "yes"; then
11877 AC_MSG_RESULT([yes])
11878 ENABLE_ONLINE_UPDATE="TRUE"
11880 AC_MSG_RESULT([no])
11883 AC_SUBST(ENABLE_ONLINE_UPDATE)
11884 AC_SUBST(ENABLE_ONLINE_UPDATE_MAR)
11885 AC_SUBST(UPDATE_CONFIG)
11887 dnl ===================================================================
11888 dnl Test whether we need bzip2
11889 dnl ===================================================================
11891 if test "$ENABLE_ONLINE_UPDATE_MAR" = "TRUE"; then
11892 AC_MSG_CHECKING([whether to use system bzip2])
11893 if test "$with_system_bzip2" = yes; then
11895 AC_MSG_RESULT([yes])
11896 PKG_CHECK_MODULES(BZIP2, bzip2)
11897 FilterLibs "${BZIP2_LIBS}"
11898 BZIP2_LIBS="${filteredlibs}"
11900 AC_MSG_RESULT([no])
11901 BUILD_TYPE="$BUILD_TYPE BZIP2"
11904 AC_SUBST(SYSTEM_BZIP2)
11905 AC_SUBST(BZIP2_CFLAGS)
11906 AC_SUBST(BZIP2_LIBS)
11908 dnl ===================================================================
11909 dnl Test whether to enable extension update
11910 dnl ===================================================================
11911 AC_MSG_CHECKING([whether to enable extension update])
11912 ENABLE_EXTENSION_UPDATE=
11913 if test "x$enable_extension_update" = "xno"; then
11914 AC_MSG_RESULT([no])
11916 AC_MSG_RESULT([yes])
11917 ENABLE_EXTENSION_UPDATE="TRUE"
11918 AC_DEFINE(ENABLE_EXTENSION_UPDATE)
11919 SCPDEFS="$SCPDEFS -DENABLE_EXTENSION_UPDATE"
11921 AC_SUBST(ENABLE_EXTENSION_UPDATE)
11924 dnl ===================================================================
11925 dnl Test whether to create MSI with LIMITUI=1 (silent install)
11926 dnl ===================================================================
11927 AC_MSG_CHECKING([whether to create MSI with LIMITUI=1 (silent install)])
11928 if test "$enable_silent_msi" = "" -o "$enable_silent_msi" = "no"; then
11929 AC_MSG_RESULT([no])
11932 AC_MSG_RESULT([yes])
11933 ENABLE_SILENT_MSI=TRUE
11934 SCPDEFS="$SCPDEFS -DENABLE_SILENT_MSI"
11936 AC_SUBST(ENABLE_SILENT_MSI)
11938 AC_MSG_CHECKING([whether and how to use Xinerama])
11939 if test "$_os" = "Linux" -o "$_os" = "FreeBSD"; then
11940 if test "$x_libraries" = "default_x_libraries"; then
11941 XINERAMALIB=`$PKG_CONFIG --variable=libdir xinerama`
11942 if test "x$XINERAMALIB" = x; then
11943 XINERAMALIB="/usr/lib"
11946 XINERAMALIB="$x_libraries"
11948 if test -e "$XINERAMALIB/libXinerama.so" -a -e "$XINERAMALIB/libXinerama.a"; then
11949 # we have both versions, let the user decide but use the dynamic one
11952 if test -z "$with_static_xinerama" -o -n "$with_system_libs"; then
11953 XINERAMA_LINK=dynamic
11955 XINERAMA_LINK=static
11957 elif test -e "$XINERAMALIB/libXinerama.so" -a ! -e "$XINERAMALIB/libXinerama.a"; then
11958 # we have only the dynamic version
11960 XINERAMA_LINK=dynamic
11961 elif test -e "$XINERAMALIB/libXinerama.a"; then
11963 if echo $host_cpu | $GREP -E 'i[[3456]]86' 2>/dev/null >/dev/null; then
11965 XINERAMA_LINK=static
11975 if test "$USE_XINERAMA" = "TRUE"; then
11976 AC_MSG_RESULT([yes, with $XINERAMA_LINK linking])
11977 AC_CHECK_HEADER(X11/extensions/Xinerama.h, [],
11978 [AC_MSG_ERROR(Xinerama header not found.)], [])
11979 XEXTLIBS=`$PKG_CONFIG --variable=libs xext`
11980 if test "x$XEXTLIB" = x; then
11981 XEXTLIBS="-L$XLIB -L$XINERAMALIB -lXext"
11983 XINERAMA_EXTRA_LIBS="$XEXTLIBS"
11984 if test "$_os" = "FreeBSD"; then
11985 XINERAMA_EXTRA_LIBS="$XINERAMA_EXTRA_LIBS -lXt"
11987 if test "$_os" = "Linux"; then
11988 XINERAMA_EXTRA_LIBS="$XINERAMA_EXTRA_LIBS -ldl"
11990 AC_CHECK_LIB([Xinerama], [XineramaIsActive], [:],
11991 [AC_MSG_ERROR(Xinerama not functional?)], [$XINERAMA_EXTRA_LIBS])
11993 AC_MSG_RESULT([no, libXinerama not found or wrong architecture.])
11998 AC_MSG_RESULT([no])
12000 AC_SUBST(USE_XINERAMA)
12001 AC_SUBST(XINERAMA_LINK)
12003 dnl ===================================================================
12004 dnl Test whether to build cairo or rely on the system version
12005 dnl ===================================================================
12007 if test "$USING_X11" = TRUE; then
12008 # Used in vcl/Library_vclplug_gen.mk
12012 if test "$test_cairo" = "yes"; then
12013 AC_MSG_CHECKING([whether to use the system cairo])
12015 : ${with_system_cairo:=$with_system_libs}
12016 if test "$with_system_cairo" = "yes"; then
12018 AC_MSG_RESULT([yes])
12020 PKG_CHECK_MODULES( CAIRO, cairo >= 1.8.0 )
12021 CAIRO_CFLAGS=$(printf '%s' "$CAIRO_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
12022 FilterLibs "${CAIRO_LIBS}"
12023 CAIRO_LIBS="${filteredlibs}"
12025 if test "$test_xrender" = "yes"; then
12026 AC_MSG_CHECKING([whether Xrender.h defines PictStandardA8])
12028 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <X11/extensions/Xrender.h>]],[[
12029 #ifdef PictStandardA8
12033 ]])],[AC_MSG_RESULT([yes])],[AC_MSG_ERROR([no, X headers too old.])])
12039 AC_MSG_RESULT([no])
12041 BUILD_TYPE="$BUILD_TYPE CAIRO"
12045 AC_SUBST(SYSTEM_CAIRO)
12046 AC_SUBST(CAIRO_CFLAGS)
12047 AC_SUBST(CAIRO_LIBS)
12049 dnl ===================================================================
12050 dnl Test whether to use avahi
12051 dnl ===================================================================
12052 if test "$_os" = "WINNT"; then
12053 # Windows uses bundled mDNSResponder
12054 BUILD_TYPE="$BUILD_TYPE MDNSRESPONDER"
12055 elif test "$_os" != "Darwin" -a "$enable_avahi" = "yes"; then
12056 PKG_CHECK_MODULES([AVAHI], [avahi-client >= 0.6.10],
12057 [ENABLE_AVAHI="TRUE"])
12058 AC_DEFINE(HAVE_FEATURE_AVAHI)
12059 AVAHI_CFLAGS=$(printf '%s' "$AVAHI_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
12060 FilterLibs "${AVAHI_LIBS}"
12061 AVAHI_LIBS="${filteredlibs}"
12064 AC_SUBST(ENABLE_AVAHI)
12065 AC_SUBST(AVAHI_CFLAGS)
12066 AC_SUBST(AVAHI_LIBS)
12068 dnl ===================================================================
12069 dnl Test whether to use liblangtag
12070 dnl ===================================================================
12072 AC_MSG_CHECKING([whether to use system liblangtag])
12073 if test "$with_system_liblangtag" = yes; then
12074 SYSTEM_LIBLANGTAG=TRUE
12075 AC_MSG_RESULT([yes])
12076 PKG_CHECK_MODULES( LIBLANGTAG, liblangtag >= 0.4.0)
12077 dnl cf. <https://bitbucket.org/tagoh/liblangtag/commits/9324836a0d1c> "Fix a build issue with inline keyword"
12078 PKG_CHECK_EXISTS([liblangtag >= 0.5.5], [], [AC_DEFINE([LIBLANGTAG_INLINE_FIX])])
12079 LIBLANGTAG_CFLAGS=$(printf '%s' "$LIBLANGTAG_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
12080 FilterLibs "${LIBLANGTAG_LIBS}"
12081 LIBLANGTAG_LIBS="${filteredlibs}"
12084 AC_MSG_RESULT([no])
12085 BUILD_TYPE="$BUILD_TYPE LIBLANGTAG"
12086 LIBLANGTAG_CFLAGS="-I${WORKDIR}/UnpackedTarball/liblangtag"
12087 if test "$COM" = "MSC"; then
12088 LIBLANGTAG_LIBS="${WORKDIR}/UnpackedTarball/liblangtag/liblangtag/.libs/liblangtag.lib"
12090 LIBLANGTAG_LIBS="-L${WORKDIR}/UnpackedTarball/liblangtag/liblangtag/.libs -llangtag"
12093 AC_SUBST(SYSTEM_LIBLANGTAG)
12094 AC_SUBST(LIBLANGTAG_CFLAGS)
12095 AC_SUBST(LIBLANGTAG_LIBS)
12097 dnl ===================================================================
12098 dnl Test whether to build libpng or rely on the system version
12099 dnl ===================================================================
12101 libo_CHECK_SYSTEM_MODULE([libpng],[LIBPNG],[libpng],["-I${WORKDIR}/UnpackedTarball/libpng"],["-L${WORKDIR}/LinkTarget/StaticLibrary -llibpng"])
12103 dnl ===================================================================
12104 dnl Check for runtime JVM search path
12105 dnl ===================================================================
12106 if test "$ENABLE_JAVA" != ""; then
12107 AC_MSG_CHECKING([whether to use specific JVM search path at runtime])
12108 if test -n "$with_jvm_path" -a "$with_jvm_path" != "no"; then
12109 AC_MSG_RESULT([yes])
12110 if ! test -d "$with_jvm_path"; then
12111 AC_MSG_ERROR(["$with_jvm_path" not a directory])
12113 if ! test -d "$with_jvm_path"jvm; then
12114 AC_MSG_ERROR(["$with_jvm_path"jvm not found, point with_jvm_path to \[/path/to/\]jvm])
12116 JVM_ONE_PATH_CHECK="$with_jvm_path"
12117 AC_SUBST(JVM_ONE_PATH_CHECK)
12119 AC_MSG_RESULT([no])
12123 dnl ===================================================================
12124 dnl Test for the presence of Ant and that it works
12125 dnl ===================================================================
12127 if test "$ENABLE_JAVA" != "" -a "$NEED_ANT" = "TRUE"; then
12128 ANT_HOME=; export ANT_HOME
12129 WITH_ANT_HOME=; export WITH_ANT_HOME
12130 if test -z "$with_ant_home" -a -n "$LODE_HOME" ; then
12131 if test -x "$LODE_HOME/opt/ant/bin/ant" ; then
12132 if test "$_os" = "WINNT"; then
12133 with_ant_home="`cygpath -m $LODE_HOME/opt/ant`"
12135 with_ant_home="$LODE_HOME/opt/ant"
12137 elif test -x "$LODE_HOME/opt/bin/ant" ; then
12138 with_ant_home="$LODE_HOME/opt/ant"
12141 if test -z "$with_ant_home"; then
12142 AC_PATH_PROGS(ANT, [ant ant.sh ant.bat ant.cmd])
12144 if test "$_os" = "WINNT"; then
12145 # AC_PATH_PROGS needs unix path
12146 with_ant_home=`cygpath -u "$with_ant_home"`
12148 AbsolutePath "$with_ant_home"
12149 with_ant_home=$absolute_path
12150 AC_PATH_PROGS(ANT, [ant ant.sh ant.bat ant.cmd],,$with_ant_home/bin:$PATH)
12151 WITH_ANT_HOME=$with_ant_home
12152 ANT_HOME=$with_ant_home
12155 if test -z "$ANT"; then
12156 AC_MSG_ERROR([Ant not found - Make sure it's in the path or use --with-ant-home])
12158 # resolve relative or absolute symlink
12159 while test -h "$ANT"; do
12161 a_basename=`basename "$ANT"`
12162 a_script=`ls -l "$ANT" | $SED "s/.*${a_basename} -> //g"`
12163 cd "`dirname "$ANT"`"
12164 cd "`dirname "$a_script"`"
12165 ANT="`pwd`"/"`basename "$a_script"`"
12169 AC_MSG_CHECKING([if $ANT works])
12170 mkdir -p conftest.dir
12173 cat > conftest.java << EOF
12174 public class conftest {
12175 int testmethod(int a, int b) {
12181 cat > conftest.xml << EOF
12182 <project name="conftest" default="conftest">
12183 <target name="conftest">
12184 <javac srcdir="." includes="conftest.java">
12190 AC_TRY_COMMAND("$ANT" -buildfile conftest.xml 1>&2)
12191 if test $? = 0 -a -f ./conftest.class; then
12192 AC_MSG_RESULT([Ant works])
12193 if test -z "$WITH_ANT_HOME"; then
12194 ANT_HOME=`"$ANT" -diagnostics | $EGREP "ant.home :" | $SED -e "s#ant.home : ##g"`
12195 if test -z "$ANT_HOME"; then
12196 ANT_HOME=`echo "$ANT" | $SED -n "s/\/bin\/ant.*\$//p"`
12199 ANT_HOME="$WITH_ANT_HOME"
12202 echo "configure: Ant test failed" >&5
12203 cat conftest.java >&5
12204 cat conftest.xml >&5
12205 AC_MSG_ERROR([Ant does not work - Some Java projects will not build!])
12208 rm -fr conftest.dir
12210 if test -z "$ANT_HOME"; then
12211 ANT_HOME="NO_ANT_HOME"
12213 PathFormat "$ANT_HOME"
12214 ANT_HOME="$formatted_path"
12216 ANT="$formatted_path"
12221 dnl Checking for ant.jar
12222 if test "$ANT_HOME" != "NO_ANT_HOME"; then
12223 AC_MSG_CHECKING([Ant lib directory])
12224 if test -f $ANT_HOME/lib/ant.jar; then
12225 ANT_LIB="$ANT_HOME/lib"
12227 if test -f $ANT_HOME/ant.jar; then
12228 ANT_LIB="$ANT_HOME"
12230 if test -f /usr/share/java/ant.jar; then
12231 ANT_LIB=/usr/share/java
12233 if test -f /usr/share/ant-core/lib/ant.jar; then
12234 ANT_LIB=/usr/share/ant-core/lib
12236 if test -f $ANT_HOME/lib/ant/ant.jar; then
12237 ANT_LIB="$ANT_HOME/lib/ant"
12239 if test -f /usr/share/lib/ant/ant.jar; then
12240 ANT_LIB=/usr/share/lib/ant
12242 AC_MSG_ERROR([Ant libraries not found!])
12249 PathFormat "$ANT_LIB"
12250 ANT_LIB="$formatted_path"
12251 AC_MSG_RESULT([Ant lib directory found.])
12256 ant_minminor1=`echo $ant_minver | cut -d"." -f2`
12258 AC_MSG_CHECKING([whether Ant is >= $ant_minver])
12259 ant_version=`"$ANT" -version | $AWK '$3 == "version" { print $4; }'`
12260 ant_version_major=`echo $ant_version | cut -d. -f1`
12261 ant_version_minor=`echo $ant_version | cut -d. -f2`
12262 echo "configure: ant_version $ant_version " >&5
12263 echo "configure: ant_version_major $ant_version_major " >&5
12264 echo "configure: ant_version_minor $ant_version_minor " >&5
12265 if test "$ant_version_major" -ge "2"; then
12266 AC_MSG_RESULT([yes, $ant_version])
12267 elif test "$ant_version_major" = "1" -a "$ant_version_minor" -ge "$ant_minminor1"; then
12268 AC_MSG_RESULT([yes, $ant_version])
12270 AC_MSG_ERROR([no, you need at least Ant >= $ant_minver])
12273 rm -f conftest* core core.* *.core
12277 if test "$ENABLE_JAVA" != "" -a "$with_junit" != "no"; then
12278 AC_MSG_CHECKING([for JUnit 4])
12279 if test "$with_junit" = "yes"; then
12280 if test -n "$LODE_HOME" -a -e "$LODE_HOME/opt/share/java/junit.jar" ; then
12281 OOO_JUNIT_JAR="$LODE_HOME/opt/share/java/junit.jar"
12282 elif test -e /usr/share/java/junit4.jar; then
12283 OOO_JUNIT_JAR=/usr/share/java/junit4.jar
12285 if test -e /usr/share/lib/java/junit.jar; then
12286 OOO_JUNIT_JAR=/usr/share/lib/java/junit.jar
12288 OOO_JUNIT_JAR=/usr/share/java/junit.jar
12292 OOO_JUNIT_JAR=$with_junit
12294 if test "$_os" = "WINNT"; then
12295 OOO_JUNIT_JAR=`cygpath -m "$OOO_JUNIT_JAR"`
12297 printf 'import org.junit.Before;' > conftest.java
12298 if "$JAVACOMPILER" -classpath "$OOO_JUNIT_JAR" conftest.java >&5 2>&5; then
12299 AC_MSG_RESULT([$OOO_JUNIT_JAR])
12302 [cannot find JUnit 4 jar; please install one in the default location (/usr/share/java),
12303 specify its pathname via --with-junit=..., or disable it via --without-junit])
12305 rm -f conftest.class conftest.java
12306 if test $OOO_JUNIT_JAR != ""; then
12307 BUILD_TYPE="$BUILD_TYPE QADEVOOO"
12310 AC_SUBST(OOO_JUNIT_JAR)
12313 if test "$ENABLE_JAVA" != "" -a "$with_junit" != "no"; then
12314 AC_MSG_CHECKING([for included Hamcrest])
12315 printf 'import org.hamcrest.BaseDescription;' > conftest.java
12316 if "$JAVACOMPILER" -classpath "$OOO_JUNIT_JAR" conftest.java >&5 2>&5; then
12317 AC_MSG_RESULT([Included in $OOO_JUNIT_JAR])
12319 AC_MSG_RESULT([Not included])
12320 AC_MSG_CHECKING([for standalone hamcrest jar.])
12321 if test "$with_hamcrest" = "yes"; then
12322 if test -e /usr/share/lib/java/hamcrest.jar; then
12323 HAMCREST_JAR=/usr/share/lib/java/hamcrest.jar
12324 elif test -e /usr/share/java/hamcrest/core.jar; then
12325 HAMCREST_JAR=/usr/share/java/hamcrest/core.jar
12327 HAMCREST_JAR=/usr/share/java/hamcrest.jar
12330 HAMCREST_JAR=$with_hamcrest
12332 if test "$_os" = "WINNT"; then
12333 HAMCREST_JAR=`cygpath -m "$HAMCREST_JAR"`
12335 if "$JAVACOMPILER" -classpath "$HAMCREST_JAR" conftest.java >&5 2>&5; then
12336 AC_MSG_RESULT([$HAMCREST_JAR])
12338 AC_MSG_ERROR([junit does not contain hamcrest; please use a junit jar that includes hamcrest, install a hamcrest jar in the default location (/usr/share/java),
12339 specify its path with --with-hamcrest=..., or disable junit with --without-junit])
12342 rm -f conftest.class conftest.java
12344 AC_SUBST(HAMCREST_JAR)
12350 # check for wget and curl
12355 if test "$enable_fetch_external" != "no"; then
12357 CURL=`which curl 2>/dev/null`
12359 for i in wget /usr/bin/wget /usr/local/bin/wget /usr/sfw/bin/wget /opt/sfw/bin/wget /opt/local/bin/wget; do
12361 $i --help 2> /dev/null | $GREP no-use-server-timestamps 2>&1 > /dev/null
12362 if test $? -eq 0; then
12368 if test -z "$WGET" -a -z "$CURL"; then
12369 AC_MSG_ERROR([neither wget nor curl found!])
12378 # check for sha256sum
12382 for i in shasum /usr/local/bin/shasum /usr/sfw/bin/shasum /opt/sfw/bin/shasum /opt/local/bin/shasum; do
12383 eval "$i -a 256 --version" > /dev/null 2>&1
12385 if test $ret -eq 0; then
12386 SHA256SUM="$i -a 256"
12391 if test -z "$SHA256SUM"; then
12392 for i in sha256sum /usr/local/bin/sha256sum /usr/sfw/bin/sha256sum /opt/sfw/bin/sha256sum /opt/local/bin/sha256sum; do
12393 eval "$i --version" > /dev/null 2>&1
12395 if test $ret -eq 0; then
12402 if test -z "$SHA256SUM"; then
12403 AC_MSG_ERROR([no sha256sum found!])
12406 AC_SUBST(SHA256SUM)
12408 dnl ===================================================================
12409 dnl Dealing with l10n options
12410 dnl ===================================================================
12411 AC_MSG_CHECKING([which languages to be built])
12412 # get list of all languages
12413 # generate shell variable from completelangiso= from solenv/inc/langlist.mk
12414 # the sed command does the following:
12415 # + if a line ends with a backslash, append the next line to it
12416 # + adds " on the beginning of the value (after =)
12417 # + adds " at the end of the value
12418 # + removes en-US; we want to put it on the beginning
12419 # + prints just the section starting with 'completelangiso=' and ending with the " at the end of line
12420 [eval $(sed -e :a -e '/\\$/N; s/\\\n//; ta' -n -e 's/=/="/;s/\([^\\]\)$/\1"/;s/en-US//;/^completelangiso/p' $SRC_ROOT/solenv/inc/langlist.mk)]
12421 ALL_LANGS="en-US $completelangiso"
12422 # check the configured localizations
12423 WITH_LANG="$with_lang"
12425 # Check for --without-lang which turns up as $with_lang being "no". Luckily there is no language with code "no".
12426 # (Norwegian is "nb" and "nn".)
12427 if test "$WITH_LANG" = "no"; then
12431 if test -z "$WITH_LANG" -o "$WITH_LANG" = "en-US"; then
12432 AC_MSG_RESULT([en-US])
12434 AC_MSG_RESULT([$WITH_LANG])
12435 GIT_NEEDED_SUBMODULES="translations $GIT_NEEDED_SUBMODULES"
12436 if test -z "$MSGFMT"; then
12437 if test -n "$LODE_HOME" -a -x "$LODE_HOME/opt/bin/msgfmt" ; then
12438 MSGFMT="$LODE_HOME/opt/bin/msgfmt"
12439 elif test -x "/opt/lo/bin/msgfmt"; then
12440 MSGFMT="/opt/lo/bin/msgfmt"
12442 AC_CHECK_PROGS(MSGFMT, [msgfmt])
12443 if test -z "$MSGFMT"; then
12444 AC_MSG_ERROR([msgfmt not found. Install GNU gettext, or re-run without languages.])
12448 if test -z "$MSGUNIQ"; then
12449 if test -n "$LODE_HOME" -a -x "$LODE_HOME/opt/bin/msguniq" ; then
12450 MSGUNIQ="$LODE_HOME/opt/bin/msguniq"
12451 elif test -x "/opt/lo/bin/msguniq"; then
12452 MSGUNIQ="/opt/lo/bin/msguniq"
12454 AC_CHECK_PROGS(MSGUNIQ, [msguniq])
12455 if test -z "$MSGUNIQ"; then
12456 AC_MSG_ERROR([msguniq not found. Install GNU gettext, or re-run without languages.])
12463 # check that the list is valid
12464 for lang in $WITH_LANG; do
12465 test "$lang" = "ALL" && continue
12466 # need to check for the exact string, so add space before and after the list of all languages
12467 for vl in $ALL_LANGS; do
12468 if test "$vl" = "$lang"; then
12472 if test "$vl" != "$lang"; then
12473 # if you're reading this - you prolly quoted your languages remove the quotes ...
12474 AC_MSG_ERROR([invalid language: '$lang' (vs '$v1'); supported languages are: $ALL_LANGS])
12477 if test -n "$WITH_LANG" -a "$WITH_LANG" != "ALL"; then
12478 echo $WITH_LANG | grep -q en-US
12479 test $? -ne 1 || WITH_LANG=`echo $WITH_LANG en-US`
12481 # list with substituted ALL
12482 WITH_LANG_LIST=`echo $WITH_LANG | sed "s/ALL/$ALL_LANGS/"`
12483 test -z "$WITH_LANG_LIST" && WITH_LANG_LIST="en-US"
12484 test "$WITH_LANG" = "en-US" && WITH_LANG=
12485 if test "$enable_release_build" = "" -o "$enable_release_build" = "no"; then
12486 test "$WITH_LANG_LIST" = "en-US" || WITH_LANG_LIST=`echo $WITH_LANG_LIST qtz`
12487 ALL_LANGS=`echo $ALL_LANGS qtz`
12489 AC_SUBST(ALL_LANGS)
12490 AC_DEFINE_UNQUOTED(WITH_LANG,"$WITH_LANG")
12491 AC_SUBST(WITH_LANG)
12492 AC_SUBST(WITH_LANG_LIST)
12493 AC_SUBST(GIT_NEEDED_SUBMODULES)
12495 WITH_POOR_HELP_LOCALIZATIONS=
12496 if test -d "$SRC_ROOT/translations/source"; then
12497 for l in `ls -1 $SRC_ROOT/translations/source`; do
12498 if test ! -d "$SRC_ROOT/translations/source/$l/helpcontent2"; then
12499 WITH_POOR_HELP_LOCALIZATIONS="$WITH_POOR_HELP_LOCALIZATIONS $l"
12503 AC_SUBST(WITH_POOR_HELP_LOCALIZATIONS)
12505 if test -n "$with_locales"; then
12506 WITH_LOCALES="$with_locales"
12508 just_langs="`echo $WITH_LOCALES | sed -e 's/_[A-Z]*//g'`"
12509 # Only languages and scripts for which we actually have ifdefs need to be handled. Also see
12510 # config_host/config_locales.h.in
12511 for locale in $WITH_LOCALES; do
12514 AC_DEFINE_UNQUOTED(WITH_LOCALE_$lang, 1)
12518 AC_DEFINE(WITH_LOCALE_FOR_SCRIPT_Deva)
12521 AC_DEFINE(WITH_LOCALE_FOR_SCRIPT_Cyrl)
12526 AC_DEFINE(WITH_LOCALE_ALL)
12528 AC_SUBST(WITH_LOCALES)
12530 dnl git submodule update --reference
12531 dnl ===================================================================
12532 if test -n "${GIT_REFERENCE_SRC}"; then
12533 for repo in ${GIT_NEEDED_SUBMODULES}; do
12534 if ! test -d "${GIT_REFERENCE_SRC}"/${repo}; then
12535 AC_MSG_ERROR([referenced git: required repository does not exist: ${GIT_REFERENCE_SRC}/${repo}])
12539 AC_SUBST(GIT_REFERENCE_SRC)
12541 dnl git submodules linked dirs
12542 dnl ===================================================================
12543 if test -n "${GIT_LINK_SRC}"; then
12544 for repo in ${GIT_NEEDED_SUBMODULES}; do
12545 if ! test -d "${GIT_LINK_SRC}"/${repo}; then
12546 AC_MSG_ERROR([linked git: required repository does not exist: ${GIT_LINK_SRC}/${repo}])
12550 AC_SUBST(GIT_LINK_SRC)
12553 dnl ===================================================================
12554 AC_MSG_CHECKING([for alternative branding images directory])
12555 # initialize mapped arrays
12556 BRAND_INTRO_IMAGES="flat_logo.svg intro.png intro-highres.png"
12557 brand_files="$BRAND_INTRO_IMAGES about.svg"
12559 if test -z "$with_branding" -o "$with_branding" = "no"; then
12560 AC_MSG_RESULT([none])
12561 DEFAULT_BRAND_IMAGES="$brand_files"
12563 if ! test -d $with_branding ; then
12564 AC_MSG_ERROR([No directory $with_branding, falling back to default branding])
12566 AC_MSG_RESULT([$with_branding])
12567 CUSTOM_BRAND_DIR="$with_branding"
12568 for lfile in $brand_files
12570 if ! test -f $with_branding/$lfile ; then
12571 AC_MSG_WARN([Branded file $lfile does not exist, using the default one])
12572 DEFAULT_BRAND_IMAGES="$DEFAULT_BRAND_IMAGES $lfile"
12574 CUSTOM_BRAND_IMAGES="$CUSTOM_BRAND_IMAGES $lfile"
12577 check_for_progress="yes"
12580 AC_SUBST([BRAND_INTRO_IMAGES])
12581 AC_SUBST([CUSTOM_BRAND_DIR])
12582 AC_SUBST([CUSTOM_BRAND_IMAGES])
12583 AC_SUBST([DEFAULT_BRAND_IMAGES])
12586 AC_MSG_CHECKING([for 'intro' progress settings])
12590 PROGRESSFRAMECOLOR=
12592 PROGRESSTEXTBASELINE=
12594 if test "$check_for_progress" = "yes" -a -f "$with_branding/progress.conf" ; then
12595 source "$with_branding/progress.conf"
12596 AC_MSG_RESULT([settings found in $with_branding/progress.conf])
12598 AC_MSG_RESULT([none])
12601 AC_SUBST(PROGRESSBARCOLOR)
12602 AC_SUBST(PROGRESSSIZE)
12603 AC_SUBST(PROGRESSPOSITION)
12604 AC_SUBST(PROGRESSFRAMECOLOR)
12605 AC_SUBST(PROGRESSTEXTCOLOR)
12606 AC_SUBST(PROGRESSTEXTBASELINE)
12609 AC_MSG_CHECKING([for extra build ID])
12610 if test -n "$with_extra_buildid" -a "$with_extra_buildid" != "yes" ; then
12611 EXTRA_BUILDID="$with_extra_buildid"
12613 # in tinderboxes, it is easier to set EXTRA_BUILDID via the environment variable instead of configure switch
12614 if test -n "$EXTRA_BUILDID" ; then
12615 AC_MSG_RESULT([$EXTRA_BUILDID])
12617 AC_MSG_RESULT([not set])
12619 AC_DEFINE_UNQUOTED([EXTRA_BUILDID], ["$EXTRA_BUILDID"])
12622 AC_MSG_CHECKING([for vendor])
12623 if test -z "$with_vendor" -o "$with_vendor" = "no"; then
12624 OOO_VENDOR="$USERNAME"
12626 if test -z "$OOO_VENDOR"; then
12630 if test -z "$OOO_VENDOR"; then
12631 OOO_VENDOR="`id -u -n`"
12634 AC_MSG_RESULT([not set, using $OOO_VENDOR])
12636 OOO_VENDOR="$with_vendor"
12637 AC_MSG_RESULT([$OOO_VENDOR])
12639 AC_DEFINE_UNQUOTED(OOO_VENDOR,"$OOO_VENDOR")
12640 AC_SUBST(OOO_VENDOR)
12642 if test "$_os" = "Android" ; then
12643 ANDROID_PACKAGE_NAME=
12644 AC_MSG_CHECKING([for Android package name])
12645 if test -z "$with_android_package_name" -o "$with_android_package_name" = "no"; then
12646 if test -n "$ENABLE_DEBUG"; then
12647 # Default to the package name that makes ndk-gdb happy.
12648 ANDROID_PACKAGE_NAME="org.libreoffice"
12650 ANDROID_PACKAGE_NAME="org.example.libreoffice"
12653 AC_MSG_RESULT([not set, using $ANDROID_PACKAGE_NAME])
12655 ANDROID_PACKAGE_NAME="$with_android_package_name"
12656 AC_MSG_RESULT([$ANDROID_PACKAGE_NAME])
12658 AC_SUBST(ANDROID_PACKAGE_NAME)
12661 AC_MSG_CHECKING([whether to install the compat oo* wrappers])
12662 if test "$with_compat_oowrappers" = "yes"; then
12663 WITH_COMPAT_OOWRAPPERS=TRUE
12666 WITH_COMPAT_OOWRAPPERS=
12669 AC_SUBST(WITH_COMPAT_OOWRAPPERS)
12671 INSTALLDIRNAME=`echo AC_PACKAGE_NAME | $AWK '{print tolower($0)}'`
12672 AC_MSG_CHECKING([for install dirname])
12673 if test -n "$with_install_dirname" -a "$with_install_dirname" != "no" -a "$with_install_dirname" != "yes"; then
12674 INSTALLDIRNAME="$with_install_dirname"
12676 AC_MSG_RESULT([$INSTALLDIRNAME])
12677 AC_SUBST(INSTALLDIRNAME)
12679 AC_MSG_CHECKING([for prefix])
12680 test "x$prefix" = xNONE && prefix=$ac_default_prefix
12681 test "x$exec_prefix" = xNONE && exec_prefix=$prefix
12682 PREFIXDIR="$prefix"
12683 AC_MSG_RESULT([$PREFIXDIR])
12684 AC_SUBST(PREFIXDIR)
12686 LIBDIR=[$(eval echo $(eval echo $libdir))]
12689 DATADIR=[$(eval echo $(eval echo $datadir))]
12692 MANDIR=[$(eval echo $(eval echo $mandir))]
12695 DOCDIR=[$(eval echo $(eval echo $docdir))]
12698 BINDIR=[$(eval echo $(eval echo $bindir))]
12701 INSTALLDIR="$LIBDIR/$INSTALLDIRNAME"
12702 AC_SUBST(INSTALLDIR)
12704 TESTINSTALLDIR="${BUILDDIR}/test-install"
12705 AC_SUBST(TESTINSTALLDIR)
12708 # ===================================================================
12709 # OAuth2 id and secrets
12710 # ===================================================================
12712 AC_MSG_CHECKING([for Google Drive client id and secret])
12713 if test "$with_gdrive_client_id" = "no" -o -z "$with_gdrive_client_id"; then
12714 AC_MSG_RESULT([not set])
12715 GDRIVE_CLIENT_ID="\"\""
12716 GDRIVE_CLIENT_SECRET="\"\""
12718 AC_MSG_RESULT([set])
12719 GDRIVE_CLIENT_ID="\"$with_gdrive_client_id\""
12720 GDRIVE_CLIENT_SECRET="\"$with_gdrive_client_secret\""
12722 AC_DEFINE_UNQUOTED(GDRIVE_CLIENT_ID, $GDRIVE_CLIENT_ID)
12723 AC_DEFINE_UNQUOTED(GDRIVE_CLIENT_SECRET, $GDRIVE_CLIENT_SECRET)
12725 AC_MSG_CHECKING([for Alfresco Cloud client id and secret])
12726 if test "$with_alfresco_cloud_client_id" = "no" -o -z "$with_alfresco_cloud_client_id"; then
12727 AC_MSG_RESULT([not set])
12728 ALFRESCO_CLOUD_CLIENT_ID="\"\""
12729 ALFRESCO_CLOUD_CLIENT_SECRET="\"\""
12731 AC_MSG_RESULT([set])
12732 ALFRESCO_CLOUD_CLIENT_ID="\"$with_alfresco_cloud_client_id\""
12733 ALFRESCO_CLOUD_CLIENT_SECRET="\"$with_alfresco_cloud_client_secret\""
12735 AC_DEFINE_UNQUOTED(ALFRESCO_CLOUD_CLIENT_ID, $ALFRESCO_CLOUD_CLIENT_ID)
12736 AC_DEFINE_UNQUOTED(ALFRESCO_CLOUD_CLIENT_SECRET, $ALFRESCO_CLOUD_CLIENT_SECRET)
12738 AC_MSG_CHECKING([for OneDrive client id and secret])
12739 if test "$with_onedrive_client_id" = "no" -o -z "$with_onedrive_client_id"; then
12740 AC_MSG_RESULT([not set])
12741 ONEDRIVE_CLIENT_ID="\"\""
12742 ONEDRIVE_CLIENT_SECRET="\"\""
12744 AC_MSG_RESULT([set])
12745 ONEDRIVE_CLIENT_ID="\"$with_onedrive_client_id\""
12746 ONEDRIVE_CLIENT_SECRET="\"$with_onedrive_client_secret\""
12748 AC_DEFINE_UNQUOTED(ONEDRIVE_CLIENT_ID, $ONEDRIVE_CLIENT_ID)
12749 AC_DEFINE_UNQUOTED(ONEDRIVE_CLIENT_SECRET, $ONEDRIVE_CLIENT_SECRET)
12752 dnl ===================================================================
12753 dnl Hook up LibreOffice's nodep environmental variable to automake's equivalent
12754 dnl --enable-dependency-tracking configure option
12755 dnl ===================================================================
12756 AC_MSG_CHECKING([whether to enable dependency tracking])
12757 if test "$enable_dependency_tracking" = "no"; then
12759 AC_MSG_RESULT([no])
12761 AC_MSG_RESULT([yes])
12765 dnl ===================================================================
12766 dnl Number of CPUs to use during the build
12767 dnl ===================================================================
12768 AC_MSG_CHECKING([for number of processors to use])
12769 # plain --with-parallelism is just the default
12770 if test -n "$with_parallelism" -a "$with_parallelism" != "yes"; then
12771 if test "$with_parallelism" = "no"; then
12774 PARALLELISM=$with_parallelism
12777 if test "$enable_icecream" = "yes"; then
12782 Darwin|FreeBSD|NetBSD|OpenBSD)
12783 PARALLELISM=`sysctl -n hw.ncpu`
12787 PARALLELISM=`getconf _NPROCESSORS_ONLN`
12789 # what else than above does profit here *and* has /proc?
12791 PARALLELISM=`grep $'^processor\t*:' /proc/cpuinfo | wc -l`
12795 # If we hit the catch-all case, but /proc/cpuinfo doesn't exist or has an
12796 # unexpected format, 'wc -l' will have returned 0 (and we won't use -j at all).
12800 if test "$no_parallelism_make" = "YES" && test $PARALLELISM -gt 1; then
12801 if test -z "$with_parallelism"; then
12802 AC_MSG_WARN([gmake 3.81 crashes with parallelism > 1, reducing it to 1. upgrade to 3.82 to avoid this.])
12803 add_warning "gmake 3.81 crashes with parallelism > 1, reducing it to 1. upgrade to 3.82 to avoid this."
12806 add_warning "make 3.81 is prone to crashes with parallelism > 1. Since --with-parallelism was explicitly given, it is honored, but do not complain when make segfaults on you."
12810 if test $PARALLELISM -eq 0; then
12811 AC_MSG_RESULT([explicit make -j option needed])
12813 AC_MSG_RESULT([$PARALLELISM])
12815 AC_SUBST(PARALLELISM)
12817 IWYU_PATH="$with_iwyu"
12818 AC_SUBST(IWYU_PATH)
12819 if test ! -z "$IWYU_PATH"; then
12820 if test ! -f "$IWYU_PATH"; then
12821 AC_MSG_ERROR([cannot find include-what-you-use binary specified by --with-iwyu])
12826 # Set up ILIB for MSVC build
12829 if test "$build_os" = "cygwin"; then
12831 if test -n "$JAVA_HOME"; then
12832 ILIB="$ILIB;$JAVA_HOME/lib"
12835 if test "$BITNESS_OVERRIDE" = 64; then
12836 ILIB="$ILIB;$COMPATH/lib/x64"
12837 ILIB1="$ILIB1 -LIBPATH:$COMPATH/lib/x64"
12838 ILIB="$ILIB;$WINDOWS_SDK_HOME/lib/x64"
12839 ILIB1="$ILIB1 -LIBPATH:$WINDOWS_SDK_HOME/lib/x64"
12840 if test $WINDOWS_SDK_VERSION = 80 -o $WINDOWS_SDK_VERSION = 81 -o $WINDOWS_SDK_VERSION = 10; then
12841 ILIB="$ILIB;$WINDOWS_SDK_HOME/lib/$winsdklibsubdir/um/x64"
12842 ILIB1="$ILIB1 -LIBPATH:$WINDOWS_SDK_HOME/lib/$winsdklibsubdir/um/x64"
12844 PathFormat "${UCRTSDKDIR}lib/$UCRTVERSION/ucrt/x64"
12845 ucrtlibpath_formatted=$formatted_path
12846 ILIB="$ILIB;$ucrtlibpath_formatted"
12847 ILIB1="$ILIB1 -LIBPATH:$ucrtlibpath_formatted"
12849 ILIB="$ILIB;$COMPATH/lib/x86"
12850 ILIB1="$ILIB1 -LIBPATH:$COMPATH/lib/x86"
12851 ILIB="$ILIB;$WINDOWS_SDK_HOME/lib"
12852 ILIB1="$ILIB1 -LIBPATH:$WINDOWS_SDK_HOME/lib"
12853 if test $WINDOWS_SDK_VERSION = 80 -o $WINDOWS_SDK_VERSION = 81 -o $WINDOWS_SDK_VERSION = 10; then
12854 ILIB="$ILIB;$WINDOWS_SDK_HOME/lib/$winsdklibsubdir/um/x86"
12855 ILIB1="$ILIB1 -LIBPATH:$WINDOWS_SDK_HOME/lib/$winsdklibsubdir/um/x86"
12857 PathFormat "${UCRTSDKDIR}lib/$UCRTVERSION/ucrt/x86"
12858 ucrtlibpath_formatted=$formatted_path
12859 ILIB="$ILIB;$ucrtlibpath_formatted"
12860 ILIB1="$ILIB1 -LIBPATH:$ucrtlibpath_formatted"
12862 if test -f "$DOTNET_FRAMEWORK_HOME/lib/mscoree.lib"; then
12863 ILIB="$ILIB;$DOTNET_FRAMEWORK_HOME/lib"
12865 ILIB="$ILIB;$DOTNET_FRAMEWORK_HOME/Lib/um/$WINDOWS_SDK_ARCH"
12871 # ===================================================================
12872 # Creating bigger shared library to link against
12873 # ===================================================================
12874 AC_MSG_CHECKING([whether to create huge library])
12877 if test $_os = iOS -o $_os = Android; then
12878 # Never any point in mergelibs for these as we build just static
12879 # libraries anyway...
12880 enable_mergelibs=no
12883 if test -n "$enable_mergelibs" -a "$enable_mergelibs" != "no"; then
12884 if test $_os != Linux -a $_os != WINNT; then
12885 add_warning "--enable-mergelibs is not tested for this platform"
12888 AC_MSG_RESULT([yes])
12889 AC_DEFINE(ENABLE_MERGELIBS)
12891 AC_MSG_RESULT([no])
12893 AC_SUBST([MERGELIBS])
12895 dnl ===================================================================
12896 dnl icerun is a wrapper that stops us spawning tens of processes
12897 dnl locally - for tools that can't be executed on the compile cluster
12898 dnl this avoids a dozen javac's ganging up on your laptop to kill it.
12899 dnl ===================================================================
12900 AC_MSG_CHECKING([whether to use icerun wrapper])
12902 if test "$enable_icecream" = "yes" && which icerun >/dev/null 2>&1 ; then
12903 ICECREAM_RUN=icerun
12904 AC_MSG_RESULT([yes])
12906 AC_MSG_RESULT([no])
12908 AC_SUBST(ICECREAM_RUN)
12910 dnl ===================================================================
12911 dnl Setup the ICECC_VERSION for the build the same way it was set for
12912 dnl configure, so that CC/CXX and ICECC_VERSION are in sync
12913 dnl ===================================================================
12914 x_ICECC_VERSION=[\#]
12915 if test -n "$ICECC_VERSION" ; then
12918 AC_SUBST(x_ICECC_VERSION)
12919 AC_SUBST(ICECC_VERSION)
12921 dnl ===================================================================
12923 AC_MSG_CHECKING([MPL subset])
12926 if test "$enable_mpl_subset" = "yes"; then
12928 if test "$enable_report_builder" != "no" -a "$with_java" != "no"; then
12930 elif test "$ENABLE_REPORTBUILDER" = "TRUE"; then
12933 if test "$warn_report" = "true"; then
12934 AC_MSG_ERROR([need to --disable-report-builder - extended database report builder.])
12936 if test "x$enable_postgresql_sdbc" != "xno"; then
12937 AC_MSG_ERROR([need to --disable-postgresql-sdbc - the PostgreSQL database backend.])
12939 if test "$enable_lotuswordpro" = "yes"; then
12940 AC_MSG_ERROR([need to --disable-lotuswordpro - a Lotus Word Pro file format import filter.])
12942 if test "$WITH_WEBDAV" = "neon"; then
12943 AC_MSG_ERROR([need --with-webdav=serf or --without-webdav - webdav support.])
12945 if test -n "$ENABLE_POPPLER"; then
12946 if test "x$SYSTEM_POPPLER" = "x"; then
12947 AC_MSG_ERROR([need to disable PDF import via poppler or use system library])
12950 # cf. m4/libo_check_extension.m4
12951 if test "x$WITH_EXTRA_EXTENSIONS" != "x"; then
12952 AC_MSG_ERROR([need to disable extra extensions '$WITH_EXTRA_EXTENSIONS'])
12954 for theme in $WITH_THEMES; do
12956 breeze|breeze_dark|breeze_dark_svg|breeze_svg|elementary|elementary_svg|karasa_jaga|karasa_jaga_svg|sukapura|sukapura_svg) #blacklist of icon themes under GPL or LGPL
12957 AC_MSG_ERROR([need to disable icon themes from '$WITH_THEMES': $theme present, use --with-theme=tango]) ;;
12962 ENABLE_OPENGL_TRANSITIONS=
12964 if test "$enable_lpsolve" != "no" -o "x$ENABLE_LPSOLVE" = "xTRUE"; then
12965 AC_MSG_ERROR([need to --disable-lpsolve - calc linear programming solver.])
12969 AC_DEFINE(MPL_HAVE_SUBSET)
12970 AC_MSG_RESULT([only])
12972 AC_MSG_RESULT([no restrictions])
12974 AC_SUBST(MPL_SUBSET)
12976 dnl ===================================================================
12978 AC_MSG_CHECKING([formula logger])
12979 ENABLE_FORMULA_LOGGER=
12981 if test "x$enable_formula_logger" = "xyes"; then
12982 AC_MSG_RESULT([yes])
12983 AC_DEFINE(ENABLE_FORMULA_LOGGER)
12984 ENABLE_FORMULA_LOGGER=TRUE
12985 elif test -n "$ENABLE_DBGUTIL" ; then
12986 AC_MSG_RESULT([yes])
12987 AC_DEFINE(ENABLE_FORMULA_LOGGER)
12988 ENABLE_FORMULA_LOGGER=TRUE
12990 AC_MSG_RESULT([no])
12993 AC_SUBST(ENABLE_FORMULA_LOGGER)
12995 dnl ===================================================================
12996 dnl Checking for active Antivirus software.
12997 dnl ===================================================================
12999 if test $_os = WINNT ; then
13000 AC_MSG_CHECKING([for active Antivirus software])
13001 ANTIVIRUS_LIST=`cscript.exe //Nologo $SRC_ROOT/antivirusDetection.vbs`
13002 if [ [ "$ANTIVIRUS_LIST" != "NULL" ] ]; then
13003 if [ [ "$ANTIVIRUS_LIST" != "NOT_FOUND" ] ]; then
13004 AC_MSG_RESULT([found])
13005 EICAR_STRING='X5O!P%@AP@<:@4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*'
13006 echo $EICAR_STRING > $SRC_ROOT/eicar
13007 EICAR_TEMP_FILE_CONTENTS=`cat $SRC_ROOT/eicar`
13009 if [ [ "$EICAR_STRING" != "$EICAR_TEMP_FILE_CONTENTS" ] ]; then
13010 AC_MSG_ERROR([Exclude the build and source directories associated with LibreOffice in the following Antivirus software: $ANTIVIRUS_LIST])
13012 echo $EICAR_STRING > $BUILDDIR/eicar
13013 EICAR_TEMP_FILE_CONTENTS=`cat $BUILDDIR/eicar`
13015 if [ [ "$EICAR_STRING" != "$EICAR_TEMP_FILE_CONTENTS" ] ]; then
13016 AC_MSG_ERROR([Exclude the build and source directories associated with LibreOffice in the following Antivirus software: $ANTIVIRUS_LIST])
13018 add_warning "To speed up builds and avoid failures in unit tests, it is highly recommended that you exclude the build and source directories associated with LibreOffice in the following Antivirus software: $ANTIVIRUS_LIST"
13020 AC_MSG_RESULT([not found])
13023 AC_MSG_RESULT([n/a])
13027 dnl ===================================================================
13028 dnl Setting up the environment.
13029 dnl ===================================================================
13030 AC_MSG_NOTICE([setting up the build environment variables...])
13034 if test "$build_os" = "cygwin"; then
13035 if test -d "$COMPATH/atlmfc/lib/spectre"; then
13036 ATL_LIB="$COMPATH/atlmfc/lib/spectre"
13037 ATL_INCLUDE="$COMPATH/atlmfc/include"
13038 elif test -d "$COMPATH/atlmfc/lib"; then
13039 ATL_LIB="$COMPATH/atlmfc/lib"
13040 ATL_INCLUDE="$COMPATH/atlmfc/include"
13042 ATL_LIB="$WINDOWS_SDK_HOME/lib" # Doesn't exist for VSE
13043 ATL_INCLUDE="$WINDOWS_SDK_HOME/include/atl"
13045 if test "$BITNESS_OVERRIDE" = 64; then
13046 ATL_LIB="$ATL_LIB/x64"
13048 ATL_LIB="$ATL_LIB/x86"
13050 ATL_LIB=`win_short_path_for_make "$ATL_LIB"`
13051 ATL_INCLUDE=`win_short_path_for_make "$ATL_INCLUDE"`
13053 # sort.exe and find.exe also exist in C:/Windows/system32 so need /usr/bin/
13054 PathFormat "/usr/bin/find.exe"
13055 FIND="$formatted_path"
13056 PathFormat "/usr/bin/sort.exe"
13057 SORT="$formatted_path"
13058 PathFormat "/usr/bin/grep.exe"
13059 WIN_GREP="$formatted_path"
13060 PathFormat "/usr/bin/ls.exe"
13061 WIN_LS="$formatted_path"
13062 PathFormat "/usr/bin/touch.exe"
13063 WIN_TOUCH="$formatted_path"
13069 AC_SUBST(ATL_INCLUDE)
13075 AC_SUBST(WIN_TOUCH)
13077 AC_SUBST(BUILD_TYPE)
13082 PERL="$formatted_path"
13085 if test -n "$TMPDIR"; then
13086 TEMP_DIRECTORY="$TMPDIR"
13088 TEMP_DIRECTORY="/tmp"
13090 if test "$build_os" = "cygwin"; then
13091 TEMP_DIRECTORY=`cygpath -m "$TEMP_DIRECTORY"`
13093 AC_SUBST(TEMP_DIRECTORY)
13095 # setup the PATH for the environment
13096 if test -n "$LO_PATH_FOR_BUILD"; then
13097 LO_PATH="$LO_PATH_FOR_BUILD"
13103 aix*|dragonfly*|freebsd*|linux-gnu*|*netbsd*|openbsd*)
13104 if test "$ENABLE_JAVA" != ""; then
13105 pathmunge "$JAVA_HOME/bin" "after"
13110 # Win32 make needs native paths
13111 if test "$GNUMAKE_WIN_NATIVE" = "TRUE" ; then
13112 LO_PATH=`cygpath -p -m "$PATH"`
13114 if test "$BITNESS_OVERRIDE" = 64; then
13115 # needed for msi packaging
13116 pathmunge "$WINDOWS_SDK_BINDIR_NO_ARCH/x86" "before"
13118 # .NET 4.6 and higher don't have bin directory
13119 if test -f "$DOTNET_FRAMEWORK_HOME/bin"; then
13120 pathmunge "$DOTNET_FRAMEWORK_HOME/bin" "before"
13122 pathmunge "$WINDOWS_SDK_HOME/bin" "before"
13123 pathmunge "$CSC_PATH" "before"
13124 pathmunge "$MIDL_PATH" "before"
13125 pathmunge "$AL_PATH" "before"
13126 pathmunge "$MSPDB_PATH" "before"
13127 if test "$MSPDB_PATH" != "$CL_PATH" ; then
13128 pathmunge "$CL_PATH" "before"
13130 if test -n "$MSBUILD_PATH" ; then
13131 pathmunge "$MSBUILD_PATH" "before"
13133 if test "$BITNESS_OVERRIDE" = 64; then
13134 pathmunge "$COMPATH/bin/amd64" "before"
13135 pathmunge "$WINDOWS_SDK_BINDIR_NO_ARCH/x64" "before"
13137 pathmunge "$COMPATH/bin" "before"
13138 pathmunge "$WINDOWS_SDK_BINDIR_NO_ARCH/x86" "before"
13140 if test "$ENABLE_JAVA" != ""; then
13141 if test -d "$JAVA_HOME/jre/bin/client"; then
13142 pathmunge "$JAVA_HOME/jre/bin/client" "before"
13144 if test -d "$JAVA_HOME/jre/bin/hotspot"; then
13145 pathmunge "$JAVA_HOME/jre/bin/hotspot" "before"
13147 pathmunge "$JAVA_HOME/bin" "before"
13152 pathmunge "/usr/css/bin" "before"
13153 if test "$ENABLE_JAVA" != ""; then
13154 pathmunge "$JAVA_HOME/bin" "after"
13164 # Generate a configuration sha256 we can use for deps
13165 if test -f config_host.mk; then
13166 config_sha256=`$SHA256SUM config_host.mk | sed "s/ .*//"`
13168 if test -f config_host_lang.mk; then
13169 config_lang_sha256=`$SHA256SUM config_host_lang.mk | sed "s/ .*//"`
13172 CFLAGS=$my_original_CFLAGS
13173 CXXFLAGS=$my_original_CXXFLAGS
13174 CPPFLAGS=$my_original_CPPFLAGS
13176 AC_CONFIG_FILES([config_host.mk
13177 config_host_lang.mk
13179 bin/bffvalidator.sh
13180 bin/odfvalidator.sh
13182 instsetoo_native/util/openoffice.lst
13183 sysui/desktop/macosx/Info.plist])
13184 AC_CONFIG_HEADERS([config_host/config_buildid.h])
13185 AC_CONFIG_HEADERS([config_host/config_clang.h])
13186 AC_CONFIG_HEADERS([config_host/config_dconf.h])
13187 AC_CONFIG_HEADERS([config_host/config_eot.h])
13188 AC_CONFIG_HEADERS([config_host/config_extensions.h])
13189 AC_CONFIG_HEADERS([config_host/config_cairo_canvas.h])
13190 AC_CONFIG_HEADERS([config_host/config_cxxabi.h])
13191 AC_CONFIG_HEADERS([config_host/config_dbus.h])
13192 AC_CONFIG_HEADERS([config_host/config_features.h])
13193 AC_CONFIG_HEADERS([config_host/config_feature_desktop.h])
13194 AC_CONFIG_HEADERS([config_host/config_feature_opencl.h])
13195 AC_CONFIG_HEADERS([config_host/config_firebird.h])
13196 AC_CONFIG_HEADERS([config_host/config_folders.h])
13197 AC_CONFIG_HEADERS([config_host/config_fuzzers.h])
13198 AC_CONFIG_HEADERS([config_host/config_gio.h])
13199 AC_CONFIG_HEADERS([config_host/config_global.h])
13200 AC_CONFIG_HEADERS([config_host/config_gpgme.h])
13201 AC_CONFIG_HEADERS([config_host/config_java.h])
13202 AC_CONFIG_HEADERS([config_host/config_langs.h])
13203 AC_CONFIG_HEADERS([config_host/config_lgpl.h])
13204 AC_CONFIG_HEADERS([config_host/config_libcxx.h])
13205 AC_CONFIG_HEADERS([config_host/config_liblangtag.h])
13206 AC_CONFIG_HEADERS([config_host/config_libnumbertext.h])
13207 AC_CONFIG_HEADERS([config_host/config_locales.h])
13208 AC_CONFIG_HEADERS([config_host/config_mpl.h])
13209 AC_CONFIG_HEADERS([config_host/config_oox.h])
13210 AC_CONFIG_HEADERS([config_host/config_options.h])
13211 AC_CONFIG_HEADERS([config_host/config_options_calc.h])
13212 AC_CONFIG_HEADERS([config_host/config_skia.h])
13213 AC_CONFIG_HEADERS([config_host/config_typesizes.h])
13214 AC_CONFIG_HEADERS([config_host/config_vendor.h])
13215 AC_CONFIG_HEADERS([config_host/config_vcl.h])
13216 AC_CONFIG_HEADERS([config_host/config_vclplug.h])
13217 AC_CONFIG_HEADERS([config_host/config_version.h])
13218 AC_CONFIG_HEADERS([config_host/config_oauth2.h])
13219 AC_CONFIG_HEADERS([config_host/config_poppler.h])
13220 AC_CONFIG_HEADERS([config_host/config_python.h])
13221 AC_CONFIG_HEADERS([config_host/config_writerperfect.h])
13224 if test "$CROSS_COMPILING" = TRUE; then
13225 (echo; echo export BUILD_TYPE_FOR_HOST=$BUILD_TYPE) >>config_build.mk
13228 # touch the config timestamp file
13229 if test ! -f config_host.mk.stamp; then
13230 echo > config_host.mk.stamp
13231 elif test "$config_sha256" = `$SHA256SUM config_host.mk | sed "s/ .*//"`; then
13232 echo "Host Configuration unchanged - avoiding scp2 stamp update"
13234 echo > config_host.mk.stamp
13237 # touch the config lang timestamp file
13238 if test ! -f config_host_lang.mk.stamp; then
13239 echo > config_host_lang.mk.stamp
13240 elif test "$config_lang_sha256" = `$SHA256SUM config_host_lang.mk | sed "s/ .*//"`; then
13241 echo "Language Configuration unchanged - avoiding scp2 stamp update"
13243 echo > config_host_lang.mk.stamp
13247 if test \( "$STALE_MAKE" = "TRUE" -o "$HAVE_GNUMAKE_FILE_FUNC" != "TRUE" \) \
13248 -a "$build_os" = "cygwin"; then
13251 ****************************************************************************
13253 Your make version is known to be horribly slow, and hard to debug
13254 problems with. To get a reasonably functional make please do:
13256 to install a pre-compiled binary make for Win32
13258 mkdir -p /opt/lo/bin
13260 wget https://dev-www.libreoffice.org/bin/cygwin/make-4.2.1-msvc.exe
13261 cp make-4.2.1-msvc.exe make
13264 to install from source:
13265 place yourself in a working directory of you choice.
13267 git clone git://git.savannah.gnu.org/make.git
13269 [go to Start menu, open "Visual Studio 2019", click "x86 Native Tools Command Prompt" or "x64 Native Tools Command Prompt"]
13270 set PATH=%PATH%;C:\Cygwin\bin
13271 [or Cygwin64, if that is what you have]
13272 cd path-to-make-repo-you-cloned-above
13273 build_w32.bat --without-guile
13275 should result in a WinRel/gnumake.exe.
13276 Copy it to the Cygwin /opt/lo/bin directory as make.exe
13278 Then re-run autogen.sh
13280 Note: autogen.sh will try to use /opt/lo/bin/make if the environment variable GNUMAKE is not already defined.
13281 Alternatively, you can install the 'new' make where ever you want and make sure that `which make` finds it.
13284 if test "$HAVE_GNUMAKE_FILE_FUNC" != "TRUE"; then
13285 AC_MSG_ERROR([no file function found; the build will fail without it; use GNU make 4.0 or later])
13291 ****************************************************************************
13296 To view some help, run:
13301 if test $_os != WINNT -a "$CROSS_COMPILING" != TRUE; then
13303 After the build of LibreOffice has finished successfully, you can immediately run LibreOffice using the command:
13306 if test $_os = Darwin; then
13307 echo open instdir/$PRODUCTNAME.app
13309 echo instdir/program/soffice
13313 If you want to run the smoketest, run:
13319 if test -f warn; then
13324 dnl vim:set shiftwidth=4 softtabstop=4 expandtab: