1 dnl -*- Mode: Autoconf; tab-width: 4; indent-tabs-mode: nil; fill-column: 100 -*-
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.2.0.0.alpha1+],[],[],[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
46 # Return value: $filteredlibs
51 # let's start with Fedora's paths for now
52 -L/lib|-L/lib/|-L/lib64|-L/lib64/|-L/usr/lib|-L/usr/lib/|-L/usr/lib64|-L/usr/lib64/)
53 # ignore it: on UNIXoids it is searched by default anyway
54 # but if it's given explicitly then it may override other paths
55 # (on macOS it would be an error to use it instead of SDK)
58 filteredlibs="$filteredlibs $f"
66 # Args: $1: A pathname. On Cygwin and WSL, in either the Unix or the Windows format. Note that this
67 # function is called also on Unix.
69 # Return value: $formatted_path and $formatted_path_unix.
71 # $formatted_path is the argument in Windows format, but using forward slashes instead of
72 # backslashes, using 8.3 pathname components if necessary (if it otherwise would contains spaces
73 # or shell metacharacters).
75 # $formatted_path_unix is the argument in a form usable in Cygwin or WSL, using 8.3 components if
76 # necessary. On Cygwin, it is the same as $formatted_path, but on WSL it is $formatted_path as a
79 # Errors out if 8.3 names are needed but aren't present for some of the path components.
83 # /home/tml/lo/master-optimised => C:/cygwin64/home/tml/lo/master-optimised
85 # C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe => C:/PROGRA~2/MICROS~3/INSTAL~1/vswhere.exe
87 # C:\Program Files (x86)\Microsoft Visual Studio\2019\Community => C:/PROGRA~2/MICROS~3/2019/COMMUN~1
89 # C:/PROGRA~2/WI3CF2~1/10/Include/10.0.18362.0/ucrt => C:/PROGRA~2/WI3CF2~1/10/Include/10.0.18362.0/ucrt
91 # /cygdrive/c/PROGRA~2/WI3CF2~1/10 => C:/PROGRA~2/WI3CF2~1/10
93 # C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\ => C:/PROGRA~2/WI3CF2~1/NETFXSDK/4.8/
95 # /usr/bin/find.exe => C:/cygwin64/bin/find.exe
97 if test -n "$UNITTEST_WSL_PATHFORMAT"; then
98 printf "PathFormat $1 ==> "
102 if test "$build_os" = "cygwin" -o "$build_os" = "wsl"; then
103 if test "$build_os" = "wsl"; then
104 formatted_path=$(echo "$formatted_path" | tr -d '\r')
108 # spaces,parentheses,brackets,braces are problematic in pathname
110 case "$formatted_path" in
111 *\ * | *\)* | *\(* | *\{* | *\}* | *\[* | *\]* | *\\* )
115 if test "$pf_conv_to_dos" = "yes"; then
116 if test "$build_os" = "wsl"; then
117 case "$formatted_path" in
119 formatted_path=$(wslpath -w "$formatted_path")
122 formatted_path=$($BUILDDIR/solenv/wsl/wsl-lo-helper.exe --8.3 "$formatted_path")
123 elif test "$GNUMAKE_WIN_NATIVE" = "TRUE" ; then
124 formatted_path=`cygpath -sm "$formatted_path"`
126 formatted_path=`cygpath -d "$formatted_path"`
128 if test $? -ne 0; then
129 AC_MSG_ERROR([path conversion failed for "$1".])
132 fp_count_colon=`echo "$formatted_path" | $GREP -c "[:]"`
133 fp_count_slash=`echo "$formatted_path" | $GREP -c "[/]"`
134 if test "$fp_count_slash$fp_count_colon" != "00"; then
135 if test "$fp_count_colon" = "0"; then
136 new_formatted_path=`realpath "$formatted_path"`
137 if test $? -ne 0; then
138 AC_MSG_WARN([realpath failed for "$formatted_path", not necessarily a problem.])
140 formatted_path="$new_formatted_path"
143 if test "$build_os" = "wsl"; then
144 if test "$fp_count_colon" != "0"; then
145 formatted_path=$(wslpath "$formatted_path")
147 case "$formatted_path" in
152 formatted_path=$(wslpath -m $formatted_path)
153 case "$formatted_path" in
157 formatted_path="$formatted_path"$final_slash
161 formatted_path=$(wslpath -m "$formatted_path")
164 formatted_path=`cygpath -m "$formatted_path"`
166 if test $? -ne 0; then
167 AC_MSG_ERROR([path conversion failed for "$1".])
170 fp_count_space=`echo "$formatted_path" | $GREP -c "[ ]"`
171 if test "$fp_count_space" != "0"; then
172 AC_MSG_ERROR([converted path "$formatted_path" still contains spaces. Short filenames (8.3 filenames) support was disabled on this system?])
175 if test "$build_os" = "wsl"; then
176 # WSL can't run Windows binaries from Windows pathnames so we need a separate return value in Unix format
177 formatted_path_unix=$(wslpath "$formatted_path")
180 formatted_path_unix="$formatted_path"
186 # There appears to be no simple and portable method to get an absolute and
187 # canonical path, so we try creating the directory if does not exist and
188 # utilizing the shell and pwd.
190 # Args: $1: A possibly relative pathname
191 # Return value: $absolute_path
195 test ! -e "$rel" && mkdir -p "$rel"
196 if test -d "$rel" ; then
197 cd "$rel" || AC_MSG_ERROR([absolute path resolution failed for "$rel".])
198 absolute_path="$(pwd)"
201 AC_MSG_ERROR([Failed to resolve absolute path. "$rel" does not exist or is not a directory.])
205 WARNINGS_FILE=config.warn
206 WARNINGS_FILE_FOR_BUILD=config.Build.warn
207 rm -f "$WARNINGS_FILE" "$WARNINGS_FILE_FOR_BUILD"
211 if test "$have_WARNINGS" = "no"; then
212 echo "*************************************" > "$WARNINGS_FILE"
214 if which tput >/dev/null && test "`tput colors 2>/dev/null || echo 0`" -ge 8; then
215 dnl <esc> as actual byte (U+1b), [ escaped using quadrigraph @<:@
216 COLORWARN='*
\e@<:@1;33;40m WARNING
\e@<:@0m:'
218 COLORWARN="* WARNING :"
221 echo "$COLORWARN $@" >> "$WARNINGS_FILE"
224 dnl Some Mac User have the bad habit of letting a lot of crap
225 dnl accumulate in their PATH and even adding stuff in /usr/local/bin
226 dnl that confuse the build.
227 dnl For the ones that use LODE, let's be nice and protect them
232 mac_path="$LODE_HOME/opt/bin:/usr/bin:/bin:/usr/sbin:/sbin"
233 dnl a common but nevertheless necessary thing that may be in a fancy
234 dnl path location is git, so make sure we have it
235 mac_git_path=`which git 2>/dev/null`
236 if test -n "$mac_git_path" -a -x "$mac_git_path" -a "$mac_git_path" != "/usr/bin/git" ; then
237 mac_path="$mac_path:`dirname $mac_git_path`"
239 dnl a not so common but nevertheless quite helpful thing that may be in a fancy
240 dnl path location is gpg, so make sure we find it
241 mac_gpg_path=`which gpg 2>/dev/null`
242 if test -n "$mac_gpg_path" -a -x "$mac_gpg_path" -a "$mac_gpg_path" != "/usr/bin/gpg" ; then
243 mac_path="$mac_path:`dirname $mac_gpg_path`"
251 echo "********************************************************************"
253 echo "* Running ${PACKAGE_NAME} build configuration."
255 echo "********************************************************************"
258 dnl ===================================================================
259 dnl checks build and host OSes
260 dnl do this before argument processing to allow for platform dependent defaults
261 dnl ===================================================================
263 # Check for WSL (version 2, at least). But if --host is explicitly specified (to really do build for
264 # Linux on WSL) trust that.
265 if test -z "$host" -a -z "$build" -a "`wslsys -v 2>/dev/null`" != ""; then
266 ac_cv_host="x86_64-pc-wsl"
267 ac_cv_host_cpu="x86_64"
269 ac_cv_build="$ac_cv_host"
270 ac_cv_build_cpu="$ac_cv_host_cpu"
271 ac_cv_build_os="$ac_cv_host_os"
273 # Emulation of Cygwin's cygpath command for WSL.
276 if test -n "$UNITTEST_WSL_CYGPATH"; then
277 echo -n cygpath "$@" "==> "
280 # Cygwin's real cygpath has a plethora of options but we use only a few here.
283 local opt_d opt_m opt_u opt_w opt_l opt_s opt_p
286 while getopts dmuwlsp opt; do
289 AC_MSG_ERROR([Unimplemented cygpath emulation option in invocation: cygpath $args])
299 if test $# -ne 1; then
300 AC_MSG_ERROR([Invalid cygpath emulation invocation: Pathname missing]);
307 if test -n "$opt_d" -o -n "$opt_m" -o -n "$opt_w"; then
308 # Print Windows path, possibly in 8.3 form (-d) or with forward slashes (-m)
310 if test -n "$opt_u"; then
311 AC_MSG_ERROR([Invalid cygpath invocation: Both Windows and Unix path output requested])
316 # A Windows file in WSL format
317 input=$(wslpath -w "$input")
319 [[a-zA-Z]]:\\* | \\* | [[a-zA-Z]]:/* | /*)
320 # Already in Windows format
323 input=$(wslpath -w "$input")
326 AC_MSG_ERROR([Invalid cygpath invocation: Path '$input' is not absolute])
329 if test -n "$opt_d" -o -n "$opt_s"; then
330 input=$($BUILDDIR/solenv/wsl/wsl-lo-helper.exe --8.3 "$input")
332 if test -n "$opt_m"; then
333 input="${input//\\//}"
340 [[a-zA-Z]]:\\* | \\* | [[a-zA-Z]]:/* | /*)
347 AC_MSG_ERROR([Invalid cygpath invocation: Path '$input' is not absolute])
353 if test -n "$UNITTEST_WSL_CYGPATH"; then
356 # Nothing special with these file names, just arbitrary ones picked to test with
357 cygpath -d /usr/lib64/ld-linux-x86-64.so.2
358 cygpath -w /usr/lib64/ld-linux-x86-64.so.2
359 cygpath -m /usr/lib64/ld-linux-x86-64.so.2
360 cygpath -m -s /usr/lib64/ld-linux-x86-64.so.2
361 # At least on my machine for instance this file does have an 8.3 name
362 cygpath -d /mnt/c/windows/WindowsUpdate.log
363 # But for instance this one doesn't
364 cygpath -w /mnt/c/windows/system32/AboutSettingsHandlers.dll
365 cygpath -ws /mnt/c/windows/WindowsUpdate.log
366 cygpath -m /mnt/c/windows/system32/AboutSettingsHandlers.dll
367 cygpath -ms /mnt/c/windows/WindowsUpdate.log
369 cygpath -u 'c:\windows\system32\AboutSettingsHandlers.dll'
370 cygpath -u 'c:/windows/system32/AboutSettingsHandlers.dll'
379 if test -n "$UNITTEST_WSL_PATHFORMAT"; then
383 # Use of PathFormat must be after AC_CANONICAL_BUILD above
385 printf "$formatted_path , $formatted_path_unix\n"
388 printf "$formatted_path , $formatted_path_unix\n"
390 PathFormat "$PROGRAMFILESX86"
391 printf "$formatted_path , $formatted_path_unix\n"
396 AC_MSG_CHECKING([for product name])
397 PRODUCTNAME="AC_PACKAGE_NAME"
398 if test -n "$with_product_name" -a "$with_product_name" != no; then
399 PRODUCTNAME="$with_product_name"
401 if test "$enable_release_build" = "" -o "$enable_release_build" = "no"; then
402 PRODUCTNAME="${PRODUCTNAME}Dev"
404 AC_MSG_RESULT([$PRODUCTNAME])
405 AC_SUBST(PRODUCTNAME)
406 PRODUCTNAME_WITHOUT_SPACES=$(printf %s "$PRODUCTNAME" | sed 's/ //g')
407 AC_SUBST(PRODUCTNAME_WITHOUT_SPACES)
409 dnl ===================================================================
410 dnl Our version is defined by the AC_INIT() at the top of this script.
411 dnl ===================================================================
413 AC_MSG_CHECKING([for package version])
414 if test -n "$with_package_version" -a "$with_package_version" != no; then
415 PACKAGE_VERSION="$with_package_version"
417 AC_MSG_RESULT([$PACKAGE_VERSION])
419 set `echo "$PACKAGE_VERSION" | sed "s/\./ /g"`
421 LIBO_VERSION_MAJOR=$1
422 LIBO_VERSION_MINOR=$2
423 LIBO_VERSION_MICRO=$3
424 LIBO_VERSION_PATCH=$4
426 LIBO_VERSION_SUFFIX=$5
428 # Split out LIBO_VERSION_SUFFIX_SUFFIX... horrible crack. But apparently wanted separately in
429 # openoffice.lst as ABOUTBOXPRODUCTVERSIONSUFFIX. Note that the double brackets are for m4's sake,
430 # they get undoubled before actually passed to sed.
431 LIBO_VERSION_SUFFIX_SUFFIX=`echo "$LIBO_VERSION_SUFFIX" | sed -e 's/.*[[a-zA-Z0-9]]\([[^a-zA-Z0-9]]*\)$/\1/'`
432 test -n "$LIBO_VERSION_SUFFIX_SUFFIX" && LIBO_VERSION_SUFFIX="${LIBO_VERSION_SUFFIX%${LIBO_VERSION_SUFFIX_SUFFIX}}"
433 # LIBO_VERSION_SUFFIX, if non-empty, should include the period separator
434 test -n "$LIBO_VERSION_SUFFIX" && LIBO_VERSION_SUFFIX=".$LIBO_VERSION_SUFFIX"
436 # The value for key CFBundleVersion in the Info.plist file must be a period-separated list of at most
437 # three non-negative integers. Please find more information about CFBundleVersion at
438 # https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundleversion
440 # The value for key CFBundleShortVersionString in the Info.plist file must be a period-separated list
441 # of at most three non-negative integers. Please find more information about
442 # CFBundleShortVersionString at
443 # https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundleshortversionstring
445 # But that is enforced only in the App Store, and we apparently want to break the rules otherwise.
447 if test "$enable_macosx_sandbox" = yes; then
448 MACOSX_BUNDLE_SHORTVERSION=$LIBO_VERSION_MAJOR.$LIBO_VERSION_MINOR.`expr $LIBO_VERSION_MICRO '*' 1000 + $LIBO_VERSION_PATCH`
449 MACOSX_BUNDLE_VERSION=$MACOSX_BUNDLE_SHORTVERSION
451 MACOSX_BUNDLE_SHORTVERSION=$LIBO_VERSION_MAJOR.$LIBO_VERSION_MINOR.$LIBO_VERSION_MICRO.$LIBO_VERSION_PATCH
452 MACOSX_BUNDLE_VERSION=$MACOSX_BUNDLE_SHORTVERSION$LIBO_VERSION_SUFFIX
455 AC_SUBST(LIBO_VERSION_MAJOR)
456 AC_SUBST(LIBO_VERSION_MINOR)
457 AC_SUBST(LIBO_VERSION_MICRO)
458 AC_SUBST(LIBO_VERSION_PATCH)
459 AC_SUBST(LIBO_VERSION_SUFFIX)
460 AC_SUBST(LIBO_VERSION_SUFFIX_SUFFIX)
461 AC_SUBST(MACOSX_BUNDLE_SHORTVERSION)
462 AC_SUBST(MACOSX_BUNDLE_VERSION)
464 AC_DEFINE_UNQUOTED(LIBO_VERSION_MAJOR,$LIBO_VERSION_MAJOR)
465 AC_DEFINE_UNQUOTED(LIBO_VERSION_MINOR,$LIBO_VERSION_MINOR)
466 AC_DEFINE_UNQUOTED(LIBO_VERSION_MICRO,$LIBO_VERSION_MICRO)
467 AC_DEFINE_UNQUOTED(LIBO_VERSION_PATCH,$LIBO_VERSION_PATCH)
469 LIBO_THIS_YEAR=`date +%Y`
470 AC_DEFINE_UNQUOTED(LIBO_THIS_YEAR,$LIBO_THIS_YEAR)
472 dnl ===================================================================
474 dnl ===================================================================
475 AC_MSG_CHECKING([for product version])
476 PRODUCTVERSION="$LIBO_VERSION_MAJOR.$LIBO_VERSION_MINOR"
477 AC_MSG_RESULT([$PRODUCTVERSION])
478 AC_SUBST(PRODUCTVERSION)
481 # AC_PROG_EGREP doesn't set GREP on all systems as well
482 AC_PATH_PROG(GREP, grep)
490 dnl ======================================
491 dnl Required GObject introspection version
492 dnl ======================================
493 INTROSPECTION_REQUIRED_VERSION=1.32.0
495 dnl ===================================================================
496 dnl Search all the common names for GNU Make
497 dnl ===================================================================
498 AC_MSG_CHECKING([for GNU Make])
500 # try to use our own make if it is available and GNUMAKE was not already defined
501 if test -z "$GNUMAKE"; then
502 if test -n "$LODE_HOME" -a -x "$LODE_HOME/opt/bin/make" ; then
503 GNUMAKE="$LODE_HOME/opt/bin/make"
504 elif test -x "/opt/lo/bin/make"; then
505 GNUMAKE="/opt/lo/bin/make"
510 for a in "$MAKE" "$GNUMAKE" make gmake gnumake; do
511 if test -n "$a"; then
512 $a --version 2> /dev/null | grep GNU 2>&1 > /dev/null
513 if test $? -eq 0; then
514 if test "$build_os" = "cygwin"; then
515 if test -n "$($a -v | grep 'Built for Windows')" ; then
516 GNUMAKE="$(cygpath -m "$(which "$(cygpath -u $a)")")"
517 GNUMAKE_WIN_NATIVE="TRUE"
528 AC_MSG_RESULT($GNUMAKE)
529 if test -z "$GNUMAKE"; then
530 AC_MSG_ERROR([not found. install GNU Make.])
532 if test "$GNUMAKE_WIN_NATIVE" = "TRUE" ; then
533 AC_MSG_NOTICE([Using a native Win32 GNU Make version.])
537 win_short_path_for_make()
539 local short_path="$1"
540 if test "$GNUMAKE_WIN_NATIVE" = "TRUE" ; then
541 cygpath -sm "$short_path"
543 cygpath -u "$(cygpath -d "$short_path")"
548 if test "$build_os" = "cygwin"; then
549 PathFormat "$SRC_ROOT"
550 SRC_ROOT="$formatted_path"
551 PathFormat "$BUILDDIR"
552 BUILDDIR="$formatted_path"
554 AC_MSG_CHECKING(for explicit COMSPEC)
555 if test -z "$COMSPEC"; then
556 AC_MSG_ERROR([COMSPEC not set in environment, please set it and rerun])
558 AC_MSG_RESULT([found: $COMSPEC])
565 AC_DEFINE_UNQUOTED(SRCDIR,"$SRC_ROOT")
566 AC_DEFINE_UNQUOTED(SRC_ROOT,"$SRC_ROOT")
567 AC_DEFINE_UNQUOTED(BUILDDIR,"$BUILDDIR")
569 if test "z$EUID" = "z0" -a "`uname -o 2>/dev/null`" = "Cygwin"; then
570 AC_MSG_ERROR([You must build LibreOffice as a normal user - not using an administrative account])
573 # need sed in os checks...
574 AC_PATH_PROGS(SED, sed)
575 if test -z "$SED"; then
576 AC_MSG_ERROR([install sed to run this script])
579 # Set the ENABLE_LTO variable
580 # ===================================================================
581 AC_MSG_CHECKING([whether to use link-time optimization])
582 if test -n "$enable_lto" -a "$enable_lto" != "no"; then
591 AC_ARG_ENABLE(fuzz-options,
592 AS_HELP_STRING([--enable-fuzz-options],
593 [Randomly enable or disable each of those configurable options
594 that are supposed to be freely selectable without interdependencies,
595 or where bad interaction from interdependencies is automatically avoided.])
598 dnl ===================================================================
599 dnl When building for Android, --with-android-ndk,
600 dnl --with-android-ndk-toolchain-version and --with-android-sdk are
602 dnl ===================================================================
604 AC_ARG_WITH(android-ndk,
605 AS_HELP_STRING([--with-android-ndk],
606 [Specify location of the Android Native Development Kit. Mandatory when building for Android.]),
609 AC_ARG_WITH(android-ndk-toolchain-version,
610 AS_HELP_STRING([--with-android-ndk-toolchain-version],
611 [Specify which toolchain version to use, of those present in the
612 Android NDK you are using. The default (and only supported version currently) is "clang5.0"]),,
613 with_android_ndk_toolchain_version=clang5.0)
615 AC_ARG_WITH(android-sdk,
616 AS_HELP_STRING([--with-android-sdk],
617 [Specify location of the Android SDK. Mandatory when building for Android.]),
620 AC_ARG_WITH(android-api-level,
621 AS_HELP_STRING([--with-android-api-level],
622 [Specify the API level when building for Android. Defaults to 16 for ARM and x86 and to 21 for ARM64 and x86-64]),
626 if test -z "$with_android_ndk" -a -e "$SRC_ROOT/external/android-ndk" -a "$build" != "$host"; then
627 with_android_ndk="$SRC_ROOT/external/android-ndk"
629 if test -n "$with_android_ndk"; then
630 eval ANDROID_NDK_HOME=$with_android_ndk
632 # Set up a lot of pre-canned defaults
634 if test ! -f $ANDROID_NDK_HOME/RELEASE.TXT; then
635 if test ! -f $ANDROID_NDK_HOME/source.properties; then
636 AC_MSG_ERROR([Unrecognized Android NDK. Missing RELEASE.TXT or source.properties file in $ANDROID_NDK_HOME.])
638 ANDROID_NDK_VERSION=`sed -n -e 's/Pkg.Revision = //p' $ANDROID_NDK_HOME/source.properties`
640 ANDROID_NDK_VERSION=`cut -f1 -d' ' <$ANDROID_NDK_HOME/RELEASE.TXT`
642 if test -z "$ANDROID_NDK_VERSION"; then
643 AC_MSG_ERROR([Failed to determine Android NDK version. Please check your installation.])
645 case $ANDROID_NDK_VERSION in
647 AC_MSG_ERROR([Building for Android is only supported with NDK versions above 16.x*])
649 11.1.*|12.1.*|13.1.*|14.1.*)
650 AC_MSG_ERROR([Building for Android is only supported with NDK versions above 16.x.*])
652 16.*|17.*|18.*|19.*|20.*)
655 AC_MSG_WARN([Untested Android NDK version $ANDROID_NDK_VERSION, only versions 16.* til 20.* have been used successfully. Proceed at your own risk.])
656 add_warning "Untested Android NDK version $ANDROID_NDK_VERSION, only versions 16.* til 20.* have been used successfully. Proceed at your own risk."
661 if test -n "$with_android_api_level" ; then
662 ANDROID_API_LEVEL="$with_android_api_level"
665 android_cpu=$host_cpu
666 if test $host_cpu = arm; then
667 android_platform_prefix=arm-linux-androideabi
668 android_gnu_prefix=$android_platform_prefix
669 LLVM_TRIPLE=armv7a-linux-androideabi
670 ANDROID_APP_ABI=armeabi-v7a
671 ANDROIDCFLAGS="-mthumb -march=armv7-a -mfloat-abi=softfp -mfpu=neon -Wl,--fix-cortex-a8"
672 elif test $host_cpu = aarch64; then
673 android_platform_prefix=aarch64-linux-android
674 android_gnu_prefix=$android_platform_prefix
675 LLVM_TRIPLE=$android_platform_prefix
676 # minimum android version that supports aarch64
677 if test "$ANDROID_API_LEVEL" -lt "21" ; then
680 ANDROID_APP_ABI=arm64-v8a
681 elif test $host_cpu = x86_64; then
682 android_platform_prefix=x86_64-linux-android
683 android_gnu_prefix=$android_platform_prefix
684 LLVM_TRIPLE=$android_platform_prefix
685 # minimum android version that supports x86_64
687 ANDROID_APP_ABI=x86_64
689 # host_cpu is something like "i386" or "i686" I guess, NDK uses
690 # "x86" in some contexts
692 android_platform_prefix=$android_cpu
693 android_gnu_prefix=i686-linux-android
694 LLVM_TRIPLE=$android_gnu_prefix
698 case "$with_android_ndk_toolchain_version" in
700 ANDROID_GCC_TOOLCHAIN_VERSION=4.9
703 AC_MSG_ERROR([Unrecognized value for the --with-android-ndk-toolchain-version option. Building for Android is only supported with Clang 5.*])
706 AC_MSG_NOTICE([using the Android API level... $ANDROID_API_LEVEL])
708 # NDK 15 or later toolchain is 64bit-only, except for Windows that we don't support. Using a 64-bit
709 # linker is required if you compile large parts of the code with -g. A 32-bit linker just won't
710 # manage to link the (app-specific) single huge .so that is built for the app in
711 # android/source/ if there is debug information in a significant part of the object files.
712 # (A 64-bit ld.gold grows too much over 10 gigabytes of virtual space when linking such a .so if
713 # all objects have been built with debug information.)
716 android_HOST_TAG=linux-x86_64
719 android_HOST_TAG=darwin-x86_64
722 AC_MSG_ERROR([We only support building for Android from Linux or macOS])
723 # ndk would also support windows and windows-x86_64
726 android_TOOLCHAIN=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/$android_HOST_TAG
727 ANDROID_COMPILER_BIN=$android_TOOLCHAIN/bin
728 dnl TODO: NSS build uses it...
729 ANDROID_BINUTILS_PREBUILT_ROOT=$ANDROID_NDK_HOME/toolchains/$android_platform_prefix-$ANDROID_GCC_TOOLCHAIN_VERSION/prebuilt/$android_HOST_TAG
730 AC_SUBST(ANDROID_BINUTILS_PREBUILT_ROOT)
732 test -z "$AR" && AR=$ANDROID_COMPILER_BIN/$android_gnu_prefix-ar
733 test -z "$NM" && NM=$ANDROID_COMPILER_BIN/$android_gnu_prefix-nm
734 test -z "$OBJDUMP" && OBJDUMP=$ANDROID_COMPILER_BIN/$android_gnu_prefix-objdump
735 test -z "$RANLIB" && RANLIB=$ANDROID_COMPILER_BIN/$android_gnu_prefix-ranlib
736 test -z "$STRIP" && STRIP=$ANDROID_COMPILER_BIN/$android_gnu_prefix-strip
738 ANDROIDCFLAGS="$ANDROIDCFLAGS -target ${LLVM_TRIPLE}${ANDROID_API_LEVEL}"
739 ANDROIDCFLAGS="$ANDROIDCFLAGS -no-canonical-prefixes -ffunction-sections -fdata-sections -Qunused-arguments"
740 if test "$ENABLE_LTO" = TRUE; then
741 # -flto comes from com_GCC_defs.mk, too, but we need to make sure it gets passed as part of
742 # $CC and $CXX when building external libraries
743 ANDROIDCFLAGS="$ANDROIDCFLAGS -flto -fuse-linker-plugin -O2"
746 ANDROIDCXXFLAGS="$ANDROIDCFLAGS -stdlib=libc++"
748 if test -z "$CC"; then
749 CC="$ANDROID_COMPILER_BIN/clang $ANDROIDCFLAGS"
752 if test -z "$CXX"; then
753 CXX="$ANDROID_COMPILER_BIN/clang++ $ANDROIDCXXFLAGS"
757 AC_SUBST(ANDROID_NDK_HOME)
758 AC_SUBST(ANDROID_APP_ABI)
759 AC_SUBST(ANDROID_GCC_TOOLCHAIN_VERSION)
761 dnl ===================================================================
762 dnl --with-android-sdk
763 dnl ===================================================================
765 if test -z "$with_android_sdk" -a -e "$SRC_ROOT/external/android-sdk-linux" -a "$build" != "$host"; then
766 with_android_sdk="$SRC_ROOT/external/android-sdk-linux"
768 if test -n "$with_android_sdk"; then
769 eval ANDROID_SDK_HOME=$with_android_sdk
770 PATH="$ANDROID_SDK_HOME/platform-tools:$ANDROID_SDK_HOME/tools:$PATH"
772 AC_SUBST(ANDROID_SDK_HOME)
774 AC_ARG_ENABLE([android-lok],
775 AS_HELP_STRING([--enable-android-lok],
776 [The Android app from the android/ subdir needs several tweaks all
777 over the place that break the LOK when used in the Online-based
778 Android app. This switch indicates that the intent of this build is
779 actually the Online-based, non-modified LOK.])
782 if test -n "$ANDROID_NDK_HOME" ; then
783 if test "$enable_android_lok" = yes; then
784 ENABLE_ANDROID_LOK=TRUE
785 AC_DEFINE(HAVE_FEATURE_ANDROID_LOK)
786 AC_MSG_NOTICE([building the Android version... for the Online-based Android app])
788 AC_MSG_NOTICE([building the Android version... for the app from the android/ subdir])
791 AC_SUBST([ENABLE_ANDROID_LOK])
793 libo_FUZZ_ARG_ENABLE([android-editing],
794 AS_HELP_STRING([--enable-android-editing],
795 [Enable the experimental editing feature on Android.])
797 ENABLE_ANDROID_EDITING=
798 if test "$enable_android_editing" = yes; then
799 ENABLE_ANDROID_EDITING=TRUE
801 AC_SUBST([ENABLE_ANDROID_EDITING])
803 disable_database_connectivity_dependencies()
806 enable_firebird_sdbc=no
807 enable_mariadb_sdbc=no
808 enable_postgresql_sdbc=no
809 enable_report_builder=no
812 # ===================================================================
814 # Start initial platform setup
816 # The using_* variables reflect platform support and should not be
817 # changed after the "End initial platform setup" block.
818 # This is also true for most test_* variables.
819 # ===================================================================
827 # There is currently just iOS not using salplug, so this explicitly enables it.
828 # must: using_freetype_fontconfig
829 # may: using_headless_plugin defaults to $using_freetype_fontconfig
833 # Default values, as such probably valid just for Linux, set
834 # differently below just for Mac OSX, but at least better than
835 # hardcoding these as we used to do. Much of this is duplicated also
836 # in solenv for old build system and for gbuild, ideally we should
837 # perhaps define stuff like this only here in configure.ac?
839 LINKFLAGSSHL="-shared"
843 LINKFLAGSNOUNDEFS="-Wl,-z,defs"
846 INSTROOTCONTENTSUFFIX=
849 HOST_PLATFORM="$host"
851 host_cpu_for_clang="$host_cpu"
856 using_freetype_fontconfig=yes
861 dnl ===========================================================
862 dnl Check whether we're using Solaris 10 - SPARC or Intel.
863 dnl ===========================================================
864 AC_MSG_CHECKING([the Solaris operating system release])
865 _os_release=`echo $host_os | $SED -e s/solaris2\.//`
866 if test "$_os_release" -lt "10"; then
867 AC_MSG_ERROR([use Solaris >= 10 to build LibreOffice])
869 AC_MSG_RESULT([ok ($_os_release)])
872 dnl Check whether we're using a SPARC or i386 processor
873 AC_MSG_CHECKING([the processor type])
874 if test "$host_cpu" = "sparc" -o "$host_cpu" = "i386"; then
875 AC_MSG_RESULT([ok ($host_cpu)])
877 AC_MSG_ERROR([only SPARC and i386 processors are supported])
881 linux-gnu*|k*bsd*-gnu*)
882 using_freetype_fontconfig=yes
887 if test "$enable_fuzzers" = yes; then
888 test_system_freetype=no
894 using_freetype_fontconfig=yes
900 # When building on Windows normally with MSVC under Cygwin,
901 # configure thinks that the host platform (the platform the
902 # built code will run on) is Cygwin, even if it obviously is
903 # Windows, which in Autoconf terminology is called
904 # "mingw32". (Which is misleading as MinGW is the name of the
905 # tool-chain, not an operating system.)
907 # Somewhat confusing, yes. But this configure script doesn't
908 # look at $host etc that much, it mostly uses its own $_os
909 # variable, set here in this case statement.
911 using_freetype_fontconfig=no
919 if test "$host_cpu" = "aarch64"; then
922 enable_firebird_sdbc=no
926 darwin*|macos*) # macOS
927 using_freetype_fontconfig=no
929 if test -n "$LODE_HOME" ; then
931 AC_MSG_NOTICE([sanitized the PATH to $PATH])
934 INSTROOTBASESUFFIX=/$PRODUCTNAME_WITHOUT_SPACES.app
935 INSTROOTCONTENTSUFFIX=/Contents
936 SDKDIRNAME=${PRODUCTNAME_WITHOUT_SPACES}${PRODUCTVERSION}_SDK
937 # See comment above the case "$host_os"
938 LINKFLAGSSHL="-dynamiclib -single_module"
945 # -undefined error is the default
951 # HOST_PLATFORM is used for external projects and their configury occasionally doesn't like
952 # the "macos" part so be sure to use aarch64-apple-darwin for now.
953 HOST_PLATFORM=aarch64-apple-darwin
957 # Apple's Clang uses "arm64"
958 host_cpu_for_clang=arm64
963 using_freetype_fontconfig=no
969 if test -n "$LODE_HOME" ; then
971 AC_MSG_NOTICE([sanitized the PATH to $PATH])
975 enable_mpl_subset=yes
976 enable_lotuswordpro=no
977 disable_database_connectivity_dependencies
980 enable_extension_integration=no
982 if test "$enable_ios_simulator" = "yes"; then
983 host=x86_64-apple-darwin
985 # See comment above the case "$host_os"
986 LINKFLAGSSHL="-dynamiclib -single_module"
993 # -undefined error is the default
996 # HOST_PLATFORM is used for external projects and their configury typically doesn't like the "ios"
997 # part, so use aarch64-apple-darwin for now.
998 HOST_PLATFORM=aarch64-apple-darwin
1000 # Apple's Clang uses "arm64"
1001 host_cpu_for_clang=arm64
1005 using_freetype_fontconfig=yes
1008 AC_MSG_CHECKING([the FreeBSD operating system release])
1009 if test -n "$with_os_version"; then
1010 OSVERSION="$with_os_version"
1012 OSVERSION=`/sbin/sysctl -n kern.osreldate`
1014 AC_MSG_RESULT([found OSVERSION=$OSVERSION])
1015 AC_MSG_CHECKING([which thread library to use])
1016 if test "$OSVERSION" -lt "500016"; then
1017 PTHREAD_CFLAGS="-D_THREAD_SAFE"
1018 PTHREAD_LIBS="-pthread"
1019 elif test "$OSVERSION" -lt "502102"; then
1020 PTHREAD_CFLAGS="-D_THREAD_SAFE"
1021 PTHREAD_LIBS="-lc_r"
1024 PTHREAD_LIBS="-pthread"
1026 AC_MSG_RESULT([$PTHREAD_LIBS])
1031 using_freetype_fontconfig=yes
1035 PTHREAD_LIBS="-pthread -lpthread"
1040 using_freetype_fontconfig=yes
1043 test_gstreamer_1_0=no
1044 PTHREAD_LIBS=-pthread
1049 using_freetype_fontconfig=yes
1051 PTHREAD_CFLAGS="-D_THREAD_SAFE"
1052 PTHREAD_LIBS="-pthread"
1057 using_freetype_fontconfig=yes
1060 PTHREAD_LIBS="-pthread"
1065 using_freetype_fontconfig=yes
1066 using_headless_plugin=no
1069 test_system_freetype=no
1071 disable_database_connectivity_dependencies
1072 enable_lotuswordpro=no
1073 enable_mpl_subset=yes
1074 enable_cairo_canvas=no
1081 AC_DEFINE(HAVE_FT_FACE_GETCHARVARIANTINDEX)
1085 using_freetype_fontconfig=yes
1094 enable_postgresql_sdbc=no
1095 enable_firebird_sdbc=no
1100 using_freetype_fontconfig=yes
1102 enable_compiler_plugins=no
1105 enable_database_connectivity=no
1113 AC_MSG_ERROR([$host_os operating system is not suitable to build LibreOffice for!])
1117 AC_SUBST(HOST_PLATFORM)
1119 if test -z "$using_x11" -o -z "$using_freetype_fontconfig"; then
1120 AC_MSG_ERROR([You must set \$using_freetype_fontconfig and \$using_x11 for your platform])
1123 # Set defaults, if not set by platform
1124 test "${test_cups+set}" = set || test_cups="$using_x11"
1125 test "${test_dbus+set}" = set || test_dbus="$using_x11"
1126 test "${test_gstreamer_1_0+set}" = set || test_gstreamer_1_0="$using_x11"
1127 test "${test_gtk3+set}" = set || test_gtk3="$using_x11"
1128 test "${test_gtk4+set}" = set || test_gtk4="$using_x11"
1129 test "${test_kf5+set}" = set || test_kf5="$using_x11"
1130 test "${test_openldap+set}" = set || test_openldap="$using_x11"
1131 # don't handle test_qt5, so it can disable test_kf5 later
1132 test "${test_randr+set}" = set || test_randr="$using_x11"
1133 test "${test_xrender+set}" = set || test_xrender="$using_x11"
1134 test "${using_headless_plugin+set}" = set || using_headless_plugin="$using_freetype_fontconfig"
1136 test "${test_gtk3_kde5+set}" != set -a "$test_kf5" = yes -a "$test_gtk3" = yes && test_gtk3_kde5="yes"
1137 test "${test_system_fontconfig+set}" != set -a "${test_system_freetype+set}" = set && test_system_fontconfig="$test_system_freetype"
1138 test "${test_system_freetype+set}" != set -a "${test_system_fontconfig+set}" = set && test_system_freetype="$test_system_fontconfig"
1140 # convenience / platform overriding "fixes"
1142 test "$test_kf5" = yes -a "$test_qt5" = no && test_kf5=no
1143 test "$test_kf5" = yes && test_qt5=yes
1144 test "$test_gtk3" != yes -o "$test_kf5" != yes && test_gtk3_kde5=no
1145 test "$using_freetype_fontconfig" = no && using_headless_plugin=no
1146 test "$using_freetype_fontconfig" = yes && test_cairo=yes
1148 # Keep in sync with the above $using_x11 depending test default list
1153 test_gstreamer_1_0=no
1164 test "$using_x11" = yes && USING_X11=TRUE
1166 if test "$using_freetype_fontconfig" = yes; then
1167 if test "$using_headless_plugin" = yes; then
1168 AC_DEFINE(ENABLE_HEADLESS)
1169 ENABLE_HEADLESS=TRUE
1173 AC_SUBST(ENABLE_HEADLESS)
1175 AC_MSG_NOTICE([VCL platform uses freetype+fontconfig: $using_freetype_fontconfig])
1176 AC_MSG_NOTICE([VCL platform uses headless plugin: $using_headless_plugin])
1177 AC_MSG_NOTICE([VCL platform uses vclplug: $using_vclplug])
1178 AC_MSG_NOTICE([VCL platform uses X11: $using_x11])
1180 # ===================================================================
1182 # End initial platform setup
1184 # ===================================================================
1186 if test "$_os" = "Android" ; then
1187 # Verify that the NDK and SDK options are proper
1188 if test -z "$with_android_ndk"; then
1189 AC_MSG_ERROR([the --with-android-ndk option is mandatory, unless it is available at external/android-ndk/.])
1190 elif test ! -f "$ANDROID_NDK_HOME/meta/abis.json"; then
1191 AC_MSG_ERROR([the --with-android-ndk option does not point to an Android NDK])
1194 if test -z "$ANDROID_SDK_HOME"; then
1195 AC_MSG_ERROR([the --with-android-sdk option is mandatory, unless it is available at external/android-sdk-linux/.])
1196 elif test ! -d "$ANDROID_SDK_HOME/platforms"; then
1197 AC_MSG_ERROR([the --with-android-sdk option does not point to an Android SDK])
1200 BUILD_TOOLS_VERSION=`$SED -n -e 's/.*buildToolsVersion "\(.*\)"/\1/p' $SRC_ROOT/android/source/build.gradle`
1201 if test ! -d "$ANDROID_SDK_HOME/build-tools/$BUILD_TOOLS_VERSION"; then
1202 AC_MSG_WARN([android build-tools $BUILD_TOOLS_VERSION not found - install with
1203 $ANDROID_SDK_HOME/tools/android update sdk -u --all --filter build-tools-$BUILD_TOOLS_VERSION
1204 or adjust change $SRC_ROOT/android/source/build.gradle accordingly])
1205 add_warning "android build-tools $BUILD_TOOLS_VERSION not found - install with"
1206 add_warning " $ANDROID_SDK_HOME/tools/android update sdk -u --all --filter build-tools-$BUILD_TOOLS_VERSION"
1207 add_warning "or adjust $SRC_ROOT/android/source/build.gradle accordingly"
1209 if test ! -f "$ANDROID_SDK_HOME/extras/android/m2repository/source.properties"; then
1210 AC_MSG_WARN([android support repository not found - install with
1211 $ANDROID_SDK_HOME/tools/android update sdk -u --filter extra-android-m2repository
1212 to allow the build to download the specified version of the android support libraries])
1213 add_warning "android support repository not found - install with"
1214 add_warning " $ANDROID_SDK_HOME/tools/android update sdk -u --filter extra-android-m2repository"
1215 add_warning "to allow the build to download the specified version of the android support libraries"
1219 if test "$_os" = "AIX"; then
1220 AC_PATH_PROG(GAWK, gawk)
1221 if test -z "$GAWK"; then
1222 AC_MSG_ERROR([gawk not found in \$PATH])
1226 AC_SUBST(SDKDIRNAME)
1228 AC_SUBST(PTHREAD_CFLAGS)
1229 AC_SUBST(PTHREAD_LIBS)
1231 # Check for explicit A/C/CXX/OBJC/OBJCXX/LDFLAGS.
1232 # By default use the ones specified by our build system,
1233 # but explicit override is possible.
1234 AC_MSG_CHECKING(for explicit AFLAGS)
1235 if test -n "$AFLAGS"; then
1236 AC_MSG_RESULT([$AFLAGS])
1242 AC_MSG_CHECKING(for explicit CFLAGS)
1243 if test -n "$CFLAGS"; then
1244 AC_MSG_RESULT([$CFLAGS])
1250 AC_MSG_CHECKING(for explicit CXXFLAGS)
1251 if test -n "$CXXFLAGS"; then
1252 AC_MSG_RESULT([$CXXFLAGS])
1258 AC_MSG_CHECKING(for explicit OBJCFLAGS)
1259 if test -n "$OBJCFLAGS"; then
1260 AC_MSG_RESULT([$OBJCFLAGS])
1266 AC_MSG_CHECKING(for explicit OBJCXXFLAGS)
1267 if test -n "$OBJCXXFLAGS"; then
1268 AC_MSG_RESULT([$OBJCXXFLAGS])
1274 AC_MSG_CHECKING(for explicit LDFLAGS)
1275 if test -n "$LDFLAGS"; then
1276 AC_MSG_RESULT([$LDFLAGS])
1286 AC_SUBST(OBJCXXFLAGS)
1290 AC_SUBST(x_CXXFLAGS)
1291 AC_SUBST(x_OBJCFLAGS)
1292 AC_SUBST(x_OBJCXXFLAGS)
1295 dnl These are potentially set for MSVC, in the code checking for UCRT below:
1296 my_original_CFLAGS=$CFLAGS
1297 my_original_CXXFLAGS=$CXXFLAGS
1298 my_original_CPPFLAGS=$CPPFLAGS
1300 dnl The following checks for gcc, cc and then cl (if it weren't guarded for win32)
1301 dnl Needs to precede the AC_C_BIGENDIAN and AC_SEARCH_LIBS calls below, which apparently call
1302 dnl AC_PROG_CC internally.
1303 if test "$_os" != "WINNT"; then
1304 # AC_PROG_CC sets CFLAGS to -g -O2 if not set, avoid that
1308 if test -z "$CC_BASE"; then
1309 CC_BASE=`first_arg_basename "$CC"`
1313 if test "$_os" != "WINNT"; then
1314 AC_C_BIGENDIAN([ENDIANNESS=big], [ENDIANNESS=little])
1318 AC_SUBST(ENDIANNESS)
1320 if test $_os != "WINNT"; then
1322 AC_SEARCH_LIBS([dlsym], [dl],
1323 [case "$ac_cv_search_dlsym" in -l*) DLOPEN_LIBS="$ac_cv_search_dlsym";; esac],
1324 [AC_MSG_ERROR([dlsym not found in either libc nor libdl])])
1327 AC_SUBST(DLOPEN_LIBS)
1329 dnl ===================================================================
1330 dnl Sanity checks for Emscripten SDK setup
1331 dnl ===================================================================
1333 if test "$_os" = "Emscripten"; then
1335 if ! which emconfigure >/dev/null 2>&1; then
1336 AC_MSG_WARN([emconfigure must be in your \$PATH])
1339 if test -z "$EMMAKEN_JUST_CONFIGURE"; then
1340 AC_MSG_WARN(["\$EMMAKEN_JUST_CONFIGURE wasn't set by emconfigure. Prefix configure or use autogen.sh])
1343 if test $EMSCRIPTEN_ERROR -ne 0; then
1344 AC_MSG_ERROR(["Please fix your EMSDK setup to build with Emscripten!"])
1348 ###############################################################################
1349 # Extensions switches --enable/--disable
1350 ###############################################################################
1351 # By default these should be enabled unless having extra dependencies.
1352 # If there is extra dependency over configure options then the enable should
1353 # be automagic based on whether the requiring feature is enabled or not.
1354 # All this options change anything only with --enable-extension-integration.
1356 # The name of this option and its help string makes it sound as if
1357 # extensions are built anyway, just not integrated in the installer,
1358 # if you use --disable-extension-integration. Is that really the
1361 AC_ARG_ENABLE(ios-simulator,
1362 AS_HELP_STRING([--enable-ios-simulator],
1363 [build for iOS simulator])
1366 libo_FUZZ_ARG_ENABLE(extension-integration,
1367 AS_HELP_STRING([--disable-extension-integration],
1368 [Disable integration of the built extensions in the installer of the
1369 product. Use this switch to disable the integration.])
1372 AC_ARG_ENABLE(avmedia,
1373 AS_HELP_STRING([--disable-avmedia],
1374 [Disable displaying and inserting AV media in documents. Work in progress, use only if you are hacking on it.])
1377 AC_ARG_ENABLE(database-connectivity,
1378 AS_HELP_STRING([--disable-database-connectivity],
1379 [Disable various database connectivity. Work in progress, use only if you are hacking on it.])
1382 # This doesn't mean not building (or "integrating") extensions
1383 # (although it probably should; i.e. it should imply
1384 # --disable-extension-integration I guess), it means not supporting
1385 # any extension mechanism at all
1386 libo_FUZZ_ARG_ENABLE(extensions,
1387 AS_HELP_STRING([--disable-extensions],
1388 [Disable all add-on extension functionality. Work in progress, use only if you are hacking on it.])
1391 AC_ARG_ENABLE(scripting,
1392 AS_HELP_STRING([--disable-scripting],
1393 [Disable BASIC, Java and Python. Work in progress, use only if you are hacking on it.])
1396 # This is mainly for Android and iOS, but could potentially be used in some
1397 # special case otherwise, too, so factored out as a separate setting
1399 AC_ARG_ENABLE(dynamic-loading,
1400 AS_HELP_STRING([--disable-dynamic-loading],
1401 [Disable any use of dynamic loading of code. Work in progress, use only if you are hacking on it.])
1404 libo_FUZZ_ARG_ENABLE(report-builder,
1405 AS_HELP_STRING([--disable-report-builder],
1406 [Disable the Report Builder.])
1409 libo_FUZZ_ARG_ENABLE(ext-wiki-publisher,
1410 AS_HELP_STRING([--enable-ext-wiki-publisher],
1411 [Enable the Wiki Publisher extension.])
1414 libo_FUZZ_ARG_ENABLE(lpsolve,
1415 AS_HELP_STRING([--disable-lpsolve],
1416 [Disable compilation of the lp solve solver ])
1418 libo_FUZZ_ARG_ENABLE(coinmp,
1419 AS_HELP_STRING([--disable-coinmp],
1420 [Disable compilation of the CoinMP solver ])
1423 libo_FUZZ_ARG_ENABLE(pdfimport,
1424 AS_HELP_STRING([--disable-pdfimport],
1425 [Disable building the PDF import feature.])
1428 libo_FUZZ_ARG_ENABLE(pdfium,
1429 AS_HELP_STRING([--disable-pdfium],
1430 [Disable building PDFium. Results in unsecure PDF signature verification.])
1433 libo_FUZZ_ARG_ENABLE(skia,
1434 AS_HELP_STRING([--disable-skia],
1435 [Disable building Skia. Use --enable-skia=debug to build without optimizations.])
1438 ###############################################################################
1440 dnl ---------- *** ----------
1442 libo_FUZZ_ARG_ENABLE(mergelibs,
1443 AS_HELP_STRING([--enable-mergelibs],
1444 [Merge several of the smaller libraries into one big, "merged", one.])
1447 libo_FUZZ_ARG_ENABLE(breakpad,
1448 AS_HELP_STRING([--enable-breakpad],
1449 [Enables breakpad for crash reporting.])
1452 libo_FUZZ_ARG_ENABLE(crashdump,
1453 AS_HELP_STRING([--disable-crashdump],
1454 [Disable dump.ini and dump-file, when --enable-breakpad])
1457 AC_ARG_ENABLE(fetch-external,
1458 AS_HELP_STRING([--disable-fetch-external],
1459 [Disables fetching external tarballs from web sources.])
1462 AC_ARG_ENABLE(fuzzers,
1463 AS_HELP_STRING([--enable-fuzzers],
1464 [Enables building libfuzzer targets for fuzz testing.])
1467 libo_FUZZ_ARG_ENABLE(pch,
1468 AS_HELP_STRING([--enable-pch=<yes/no/system/base/normal/full>],
1469 [Enables precompiled header support for C++. Forced default on Windows/VC build.
1470 Using 'system' will include only external headers, 'base' will add also headers
1471 from base modules, 'normal' will also add all headers except from the module built,
1472 'full' will use all suitable headers even from a module itself.])
1475 libo_FUZZ_ARG_ENABLE(epm,
1476 AS_HELP_STRING([--enable-epm],
1477 [LibreOffice includes self-packaging code, that requires epm, however epm is
1478 useless for large scale package building.])
1481 libo_FUZZ_ARG_ENABLE(odk,
1482 AS_HELP_STRING([--enable-odk],
1483 [Enable building the Office Development Kit, the part that extensions need to build against])
1486 AC_ARG_ENABLE(mpl-subset,
1487 AS_HELP_STRING([--enable-mpl-subset],
1488 [Don't compile any pieces which are not MPL or more liberally licensed])
1491 libo_FUZZ_ARG_ENABLE(evolution2,
1492 AS_HELP_STRING([--enable-evolution2],
1493 [Allows the built-in evolution 2 addressbook connectivity build to be
1497 AC_ARG_ENABLE(avahi,
1498 AS_HELP_STRING([--enable-avahi],
1499 [Determines whether to use Avahi to advertise Impress to remote controls.])
1502 libo_FUZZ_ARG_ENABLE(werror,
1503 AS_HELP_STRING([--enable-werror],
1504 [Turn warnings to errors. (Has no effect in modules where the treating
1505 of warnings as errors is disabled explicitly.)]),
1508 libo_FUZZ_ARG_ENABLE(assert-always-abort,
1509 AS_HELP_STRING([--enable-assert-always-abort],
1510 [make assert() failures abort even when building without --enable-debug or --enable-dbgutil.]),
1513 libo_FUZZ_ARG_ENABLE(dbgutil,
1514 AS_HELP_STRING([--enable-dbgutil],
1515 [Provide debugging support from --enable-debug and include additional debugging
1516 utilities such as object counting or more expensive checks.
1517 This is the recommended option for developers.
1518 Note that this makes the build ABI incompatible, it is not possible to mix object
1519 files or libraries from a --enable-dbgutil and a --disable-dbgutil build.]))
1521 libo_FUZZ_ARG_ENABLE(debug,
1522 AS_HELP_STRING([--enable-debug],
1523 [Include debugging information, disable compiler optimization and inlining plus
1524 extra debugging code like assertions. Extra large build! (enables -g compiler flag).]))
1526 libo_FUZZ_ARG_ENABLE(split-debug,
1527 AS_HELP_STRING([--disable-split-debug],
1528 [Disable using split debug information (-gsplit-dwarf compile flag). Split debug information
1529 saves disk space and build time, but requires tools that support it (both build tools and debuggers).]))
1531 libo_FUZZ_ARG_ENABLE(gdb-index,
1532 AS_HELP_STRING([--disable-gdb-index],
1533 [Disables creating debug information in the gdb index format, which makes gdb start faster.
1534 The feature requires the gold or lld linker.]))
1536 libo_FUZZ_ARG_ENABLE(sal-log,
1537 AS_HELP_STRING([--enable-sal-log],
1538 [Make SAL_INFO and SAL_WARN calls do something even in a non-debug build.]))
1540 libo_FUZZ_ARG_ENABLE(symbols,
1541 AS_HELP_STRING([--enable-symbols],
1542 [Generate debug information.
1543 By default, enabled for --enable-debug and --enable-dbgutil, disabled
1544 otherwise. It is possible to explicitly specify gbuild build targets
1545 (where 'all' means everything, '-' prepended means to not enable, '/' appended means
1546 everything in the directory; there is no ordering, more specific overrides
1547 more general, and disabling takes precedence).
1548 Example: --enable-symbols="all -sw/ -Library_sc".]))
1550 libo_FUZZ_ARG_ENABLE(optimized,
1551 AS_HELP_STRING([--enable-optimized=<yes/no/debug>],
1552 [Whether to compile with optimization flags.
1553 By default, disabled for --enable-debug and --enable-dbgutil, enabled
1554 otherwise. Using 'debug' will try to use only optimizations that should
1555 not interfere with debugging. For Emscripten we default to optimized (-O1)
1556 debug build, as otherwise binaries become too large.]))
1558 libo_FUZZ_ARG_ENABLE(runtime-optimizations,
1559 AS_HELP_STRING([--disable-runtime-optimizations],
1560 [Statically disable certain runtime optimizations (like rtl/alloc.h or
1561 JVM JIT) that are known to interact badly with certain dynamic analysis
1562 tools (like -fsanitize=address or Valgrind). By default, disabled iff
1563 CC contains "-fsanitize=*". (For Valgrind, those runtime optimizations
1564 are typically disabled dynamically via RUNNING_ON_VALGRIND.)]))
1566 AC_ARG_WITH(valgrind,
1567 AS_HELP_STRING([--with-valgrind],
1568 [Make availability of Valgrind headers a hard requirement.]))
1570 libo_FUZZ_ARG_ENABLE(compiler-plugins,
1571 AS_HELP_STRING([--enable-compiler-plugins],
1572 [Enable compiler plugins that will perform additional checks during
1573 building. Enabled automatically by --enable-dbgutil.
1574 Use --enable-compiler-plugins=debug to also enable debug code in the plugins.]))
1575 COMPILER_PLUGINS_DEBUG=
1576 if test "$enable_compiler_plugins" = debug; then
1577 enable_compiler_plugins=yes
1578 COMPILER_PLUGINS_DEBUG=TRUE
1581 libo_FUZZ_ARG_ENABLE(compiler-plugins-analyzer-pch,
1582 AS_HELP_STRING([--disable-compiler-plugins-analyzer-pch],
1583 [Disable use of precompiled headers when running the Clang compiler plugin analyzer. Not
1584 relevant in the --disable-compiler-plugins case.]))
1586 libo_FUZZ_ARG_ENABLE(ooenv,
1587 AS_HELP_STRING([--enable-ooenv],
1588 [Enable ooenv for the instdir installation.]))
1591 AS_HELP_STRING([--enable-lto],
1592 [Enable link-time optimization. Suitable for (optimised) product builds. Building might take
1593 longer but libraries and executables are optimized for speed. For GCC, best to use the 'gold'
1594 linker. For MSVC, this option is broken at the moment. This is experimental work
1595 in progress that shouldn't be used unless you are working on it.)]))
1597 AC_ARG_ENABLE(python,
1598 AS_HELP_STRING([--enable-python=<no/auto/system/internal/fully-internal>],
1599 [Enables or disables Python support at run-time.
1600 Also specifies what Python to use at build-time.
1601 'fully-internal' even forces the internal version for uses of Python
1603 On macOS the only choices are
1604 'internal' (default) or 'fully-internal'. Otherwise the default is 'auto'.
1607 libo_FUZZ_ARG_ENABLE(gtk3,
1608 AS_HELP_STRING([--disable-gtk3],
1609 [Determines whether to use Gtk+ 3.0 vclplug on platforms where Gtk+ 3.0 is available.]),
1610 ,test "${enable_gtk3+set}" = set || enable_gtk3=yes)
1613 AS_HELP_STRING([--enable-gtk4],
1614 [Determines whether to use Gtk+ 4.0 vclplug on platforms where Gtk+ 4.0 is available.]))
1616 AC_ARG_ENABLE(introspection,
1617 AS_HELP_STRING([--enable-introspection],
1618 [Generate files for GObject introspection. Requires --enable-gtk3. (Typically used by
1619 Linux distributions.)]))
1621 AC_ARG_ENABLE(split-app-modules,
1622 AS_HELP_STRING([--enable-split-app-modules],
1623 [Split file lists for app modules, e.g. base, calc.
1624 Has effect only with make distro-pack-install]),
1627 AC_ARG_ENABLE(split-opt-features,
1628 AS_HELP_STRING([--enable-split-opt-features],
1629 [Split file lists for some optional features, e.g. pyuno, testtool.
1630 Has effect only with make distro-pack-install]),
1633 libo_FUZZ_ARG_ENABLE(cairo-canvas,
1634 AS_HELP_STRING([--disable-cairo-canvas],
1635 [Determines whether to build the Cairo canvas on platforms where Cairo is available.]),
1638 libo_FUZZ_ARG_ENABLE(dbus,
1639 AS_HELP_STRING([--disable-dbus],
1640 [Determines whether to enable features that depend on dbus.
1641 e.g. Presentation mode screensaver control, bluetooth presentation control, automatic font install]),
1642 ,test "${enable_dbus+set}" = set || enable_dbus=yes)
1644 libo_FUZZ_ARG_ENABLE(sdremote,
1645 AS_HELP_STRING([--disable-sdremote],
1646 [Determines whether to enable Impress remote control (i.e. the server component).]),
1647 ,test "${enable_sdremote+set}" = set || enable_sdremote=yes)
1649 libo_FUZZ_ARG_ENABLE(sdremote-bluetooth,
1650 AS_HELP_STRING([--disable-sdremote-bluetooth],
1651 [Determines whether to build sdremote with bluetooth support.
1652 Requires dbus on Linux.]))
1654 libo_FUZZ_ARG_ENABLE(gio,
1655 AS_HELP_STRING([--disable-gio],
1656 [Determines whether to use the GIO support.]),
1657 ,test "${enable_gio+set}" = set || enable_gio=yes)
1660 AS_HELP_STRING([--enable-qt5],
1661 [Determines whether to use Qt5 vclplug on platforms where Qt5 is
1666 AS_HELP_STRING([--enable-kf5],
1667 [Determines whether to use Qt5/KF5 vclplug on platforms where Qt5 and
1668 KF5 are available.]),
1671 AC_ARG_ENABLE(gtk3_kde5,
1672 AS_HELP_STRING([--enable-gtk3-kde5],
1673 [Determines whether to use Gtk3 vclplug with KF5 file dialogs on
1674 platforms where Gtk3, Qt5 and Plasma is available.]),
1678 AS_HELP_STRING([--disable-gui],
1679 [Disable use of X11 or Wayland to reduce dependencies (e.g. for building LibreOfficeKit).]),
1682 libo_FUZZ_ARG_ENABLE(randr,
1683 AS_HELP_STRING([--disable-randr],
1684 [Disable RandR support in the vcl project.]),
1685 ,test "${enable_randr+set}" = set || enable_randr=yes)
1687 libo_FUZZ_ARG_ENABLE(gstreamer-1-0,
1688 AS_HELP_STRING([--disable-gstreamer-1-0],
1689 [Disable building with the gstreamer 1.0 avmedia backend.]),
1690 ,test "${enable_gstreamer_1_0+set}" = set || enable_gstreamer_1_0=yes)
1692 libo_FUZZ_ARG_ENABLE([eot],
1693 [AS_HELP_STRING([--enable-eot],
1694 [Enable support for Embedded OpenType fonts.])],
1695 ,test "${enable_eot+set}" = set || enable_eot=no)
1697 libo_FUZZ_ARG_ENABLE(cve-tests,
1698 AS_HELP_STRING([--disable-cve-tests],
1699 [Prevent CVE tests to be executed]),
1702 libo_FUZZ_ARG_ENABLE(chart-tests,
1703 AS_HELP_STRING([--enable-chart-tests],
1704 [Executes chart XShape tests. In a perfect world these tests would be
1705 stable and everyone could run them, in reality it is best to run them
1706 only on a few machines that are known to work and maintained by people
1707 who can judge if a test failure is a regression or not.]),
1710 AC_ARG_ENABLE(build-opensymbol,
1711 AS_HELP_STRING([--enable-build-opensymbol],
1712 [Do not use the prebuilt opens___.ttf. Build it instead. This needs
1713 fontforge installed.]),
1716 AC_ARG_ENABLE(dependency-tracking,
1717 AS_HELP_STRING([--enable-dependency-tracking],
1718 [Do not reject slow dependency extractors.])[
1719 --disable-dependency-tracking
1720 Disables generation of dependency information.
1721 Speed up one-time builds.],
1724 AC_ARG_ENABLE(icecream,
1725 AS_HELP_STRING([--enable-icecream],
1726 [Use the 'icecream' distributed compiling tool to speedup the compilation.
1727 It defaults to /opt/icecream for the location of the icecream gcc/g++
1728 wrappers, you can override that using --with-gcc-home=/the/path switch.]),
1732 AS_HELP_STRING([--enable-ld=<linker>],
1733 [Use the specified linker. Both 'gold' and 'lld' linkers generally use less memory and link faster.
1734 By default tries to use the best linker possible, use --disable-ld to use the default linker.
1735 If <linker> contains any ':', the part before the first ':' is used as the value of
1736 -fuse-ld, while the part after the first ':' is used as the value of --ld-path (which is
1737 needed for Clang 12).]),
1740 libo_FUZZ_ARG_ENABLE(cups,
1741 AS_HELP_STRING([--disable-cups],
1742 [Do not build cups support.])
1745 AC_ARG_ENABLE(ccache,
1746 AS_HELP_STRING([--disable-ccache],
1747 [Do not try to use ccache automatically.
1748 By default, unless on Windows, we will try to detect if ccache is available; in that case if
1749 CC/CXX are not yet set, and --enable-icecream is not given, we
1750 attempt to use ccache. --disable-ccache disables ccache completely.
1751 Additionally ccache's depend mode is enabled if possible,
1752 use --enable-ccache=nodepend to enable ccache without depend mode.
1756 libo_FUZZ_ARG_ENABLE(online-update,
1757 AS_HELP_STRING([--enable-online-update],
1758 [Enable the online update service that will check for new versions of
1759 LibreOffice. By default, it is enabled on Windows and Mac, disabled on Linux.
1760 If the value is "mar", the experimental Mozilla-like update will be
1761 enabled instead of the traditional update mechanism.]),
1764 AC_ARG_WITH(update-config,
1765 AS_HELP_STRING([--with-update-config=/tmp/update.ini],
1766 [Path to the update config ini file]))
1768 libo_FUZZ_ARG_ENABLE(extension-update,
1769 AS_HELP_STRING([--disable-extension-update],
1770 [Disable possibility to update installed extensions.]),
1773 libo_FUZZ_ARG_ENABLE(release-build,
1774 AS_HELP_STRING([--enable-release-build],
1775 [Enable release build. Note that the "release build" choice is orthogonal to
1776 whether symbols are present, debug info is generated, or optimization
1778 See http://wiki.documentfoundation.org/Development/DevBuild]),
1781 AC_ARG_ENABLE(windows-build-signing,
1782 AS_HELP_STRING([--enable-windows-build-signing],
1783 [Enable signing of windows binaries (*.exe, *.dll)]),
1786 AC_ARG_ENABLE(silent-msi,
1787 AS_HELP_STRING([--enable-silent-msi],
1788 [Enable MSI with LIMITUI=1 (silent install).]),
1791 AC_ARG_ENABLE(macosx-code-signing,
1792 AS_HELP_STRING([--enable-macosx-code-signing=<identity>],
1793 [Sign executables, dylibs, frameworks and the app bundle. If you
1794 don't provide an identity the first suitable certificate
1795 in your keychain is used.]),
1798 AC_ARG_ENABLE(macosx-package-signing,
1799 AS_HELP_STRING([--enable-macosx-package-signing=<identity>],
1800 [Create a .pkg suitable for uploading to the Mac App Store and sign
1801 it. If you don't provide an identity the first suitable certificate
1802 in your keychain is used.]),
1805 AC_ARG_ENABLE(macosx-sandbox,
1806 AS_HELP_STRING([--enable-macosx-sandbox],
1807 [Make the app bundle run in a sandbox. Requires code signing.
1808 Is required by apps distributed in the Mac App Store, and implies
1809 adherence to App Store rules.]),
1812 AC_ARG_WITH(macosx-bundle-identifier,
1813 AS_HELP_STRING([--with-macosx-bundle-identifier=tld.mumble.orifice.TheOffice],
1814 [Define the macOS bundle identifier. Default is the somewhat weird
1815 org.libreoffice.script ("script", huh?).]),
1816 ,with_macosx_bundle_identifier=org.libreoffice.script)
1818 AC_ARG_WITH(product-name,
1819 AS_HELP_STRING([--with-product-name='My Own Office Suite'],
1820 [Define the product name. Default is AC_PACKAGE_NAME.]),
1821 ,with_product_name=$PRODUCTNAME)
1823 libo_FUZZ_ARG_ENABLE(community-flavor,
1824 AS_HELP_STRING([--disable-community-flavor],
1825 [Disable the Community branding.]),
1828 AC_ARG_WITH(package-version,
1829 AS_HELP_STRING([--with-package-version='3.1.4.5'],
1830 [Define the package version. Default is AC_PACKAGE_VERSION. Use only if you distribute an own build for macOS.]),
1833 libo_FUZZ_ARG_ENABLE(readonly-installset,
1834 AS_HELP_STRING([--enable-readonly-installset],
1835 [Prevents any attempts by LibreOffice to write into its installation. That means
1836 at least that no "system-wide" extensions can be added. Partly experimental work in
1837 progress, probably not fully implemented. Always enabled for macOS.]),
1840 libo_FUZZ_ARG_ENABLE(mariadb-sdbc,
1841 AS_HELP_STRING([--disable-mariadb-sdbc],
1842 [Disable the build of the MariaDB/MySQL-SDBC driver.])
1845 libo_FUZZ_ARG_ENABLE(postgresql-sdbc,
1846 AS_HELP_STRING([--disable-postgresql-sdbc],
1847 [Disable the build of the PostgreSQL-SDBC driver.])
1850 libo_FUZZ_ARG_ENABLE(lotuswordpro,
1851 AS_HELP_STRING([--disable-lotuswordpro],
1852 [Disable the build of the Lotus Word Pro filter.]),
1853 ,test "${enable_lotuswordpro+set}" = set || enable_lotuswordpro=yes)
1855 libo_FUZZ_ARG_ENABLE(firebird-sdbc,
1856 AS_HELP_STRING([--disable-firebird-sdbc],
1857 [Disable the build of the Firebird-SDBC driver if it doesn't compile for you.]),
1858 ,test "${enable_firebird_sdbc+set}" = set || enable_firebird_sdbc=yes)
1860 AC_ARG_ENABLE(bogus-pkg-config,
1861 AS_HELP_STRING([--enable-bogus-pkg-config],
1862 [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.]),
1865 AC_ARG_ENABLE(openssl,
1866 AS_HELP_STRING([--disable-openssl],
1867 [Disable using libssl/libcrypto from OpenSSL. If disabled,
1868 components will either use GNUTLS or NSS. Work in progress,
1869 use only if you are hacking on it.]),
1870 ,enable_openssl=yes)
1872 libo_FUZZ_ARG_ENABLE(cipher-openssl-backend,
1873 AS_HELP_STRING([--enable-cipher-openssl-backend],
1874 [Enable using OpenSSL as the actual implementation of the rtl/cipher.h functionality.
1875 Requires --enable-openssl.]))
1878 AS_HELP_STRING([--disable-nss],
1879 [Disable using NSS. If disabled,
1880 components will either use GNUTLS or openssl. Work in progress,
1881 use only if you are hacking on it.]),
1884 AC_ARG_ENABLE(library-bin-tar,
1885 AS_HELP_STRING([--enable-library-bin-tar],
1886 [Enable the building and reused of tarball of binary build for some 'external' libraries.
1887 Some libraries can save their build result in a tarball
1888 stored in TARFILE_LOCATION. That binary tarball is
1889 uniquely identified by the source tarball,
1890 the content of the config_host.mk file and the content
1891 of the top-level directory in core for that library
1892 If this option is enabled, then if such a tarfile exist, it will be untarred
1893 instead of the source tarfile, and the build step will be skipped for that
1895 If a proper tarfile does not exist, then the normal source-based
1896 build is done for that library and a proper binary tarfile is created
1897 for the next time.]),
1900 AC_ARG_ENABLE(dconf,
1901 AS_HELP_STRING([--disable-dconf],
1902 [Disable the dconf configuration backend (enabled by default where
1905 libo_FUZZ_ARG_ENABLE(formula-logger,
1907 [--enable-formula-logger],
1908 [Enable formula logger for logging formula calculation flow in Calc.]
1913 AS_HELP_STRING([--disable-ldap],
1914 [Disable LDAP support.]),
1917 AC_ARG_ENABLE(opencl,
1918 AS_HELP_STRING([--disable-opencl],
1919 [Disable OpenCL support.]),
1922 libo_FUZZ_ARG_ENABLE(librelogo,
1923 AS_HELP_STRING([--disable-librelogo],
1924 [Do not build LibreLogo.]),
1925 ,enable_librelogo=yes)
1928 AS_HELP_STRING([--disable-cmis],
1929 [Disable CMIS support.]),
1933 AS_HELP_STRING([--disable-curl],
1934 [Disable CURL support.]),
1937 AC_ARG_ENABLE(wasm-strip,
1938 AS_HELP_STRING([--enable-wasm-strip],
1939 [Strip the static build like for WASM/emscripten platform.]),
1940 ,enable_wasm_strip=yes)
1943 dnl ===================================================================
1944 dnl Optional Packages (--with/without-)
1945 dnl ===================================================================
1947 AC_ARG_WITH(gcc-home,
1948 AS_HELP_STRING([--with-gcc-home],
1949 [Specify the location of gcc/g++ manually. This can be used in conjunction
1950 with --enable-icecream when icecream gcc/g++ wrappers are installed in a
1951 non-default path.]),
1954 AC_ARG_WITH(gnu-patch,
1955 AS_HELP_STRING([--with-gnu-patch],
1956 [Specify location of GNU patch on Solaris or FreeBSD.]),
1959 AC_ARG_WITH(build-platform-configure-options,
1960 AS_HELP_STRING([--with-build-platform-configure-options],
1961 [Specify options for the configure script run for the *build* platform in a cross-compilation]),
1965 AS_HELP_STRING([--with-gnu-cp],
1966 [Specify location of GNU cp on Solaris or FreeBSD.]),
1969 AC_ARG_WITH(external-tar,
1970 AS_HELP_STRING([--with-external-tar=<TARFILE_PATH>],
1971 [Specify an absolute path of where to find (and store) tarfiles.]),
1972 TARFILE_LOCATION=$withval ,
1975 AC_ARG_WITH(referenced-git,
1976 AS_HELP_STRING([--with-referenced-git=<OTHER_CHECKOUT_DIR>],
1977 [Specify another checkout directory to reference. This makes use of
1978 git submodule update --reference, and saves a lot of diskspace
1979 when having multiple trees side-by-side.]),
1980 GIT_REFERENCE_SRC=$withval ,
1983 AC_ARG_WITH(linked-git,
1984 AS_HELP_STRING([--with-linked-git=<submodules repo basedir>],
1985 [Specify a directory where the repositories of submodules are located.
1986 This uses a method similar to git-new-workdir to get submodules.]),
1987 GIT_LINK_SRC=$withval ,
1990 AC_ARG_WITH(galleries,
1991 AS_HELP_STRING([--with-galleries],
1992 [Specify how galleries should be built. It is possible either to
1993 build these internally from source ("build"),
1994 or to disable them ("no")]),
1998 AS_HELP_STRING([--with-theme="theme1 theme2..."],
1999 [Choose which themes to include. By default those themes with an '*' are included.
2000 Possible choices: *breeze, *breeze_dark, *breeze_dark_svg, *breeze_svg, *colibre, *colibre_svg, *elementary,
2001 *elementary_svg, *karasa_jaga, *karasa_jaga_svg, *sifr, *sifr_dark, *sifr_dark_svg, *sifr_svg, *sukapura, *sukapura_svg.]),
2004 libo_FUZZ_ARG_WITH(helppack-integration,
2005 AS_HELP_STRING([--without-helppack-integration],
2006 [It will not integrate the helppacks to the installer
2007 of the product. Please use this switch to use the online help
2008 or separate help packages.]),
2011 libo_FUZZ_ARG_WITH(fonts,
2012 AS_HELP_STRING([--without-fonts],
2013 [LibreOffice includes some third-party fonts to provide a reliable basis for
2014 help content, templates, samples, etc. When these fonts are already
2015 known to be available on the system then you should use this option.]),
2019 AS_HELP_STRING([--with-epm],
2020 [Decides which epm to use. Default is to use the one from the system if
2021 one is built. When either this is not there or you say =internal epm
2025 AC_ARG_WITH(package-format,
2026 AS_HELP_STRING([--with-package-format],
2027 [Specify package format(s) for LibreOffice installation sets. The
2028 implicit --without-package-format leads to no installation sets being
2029 generated. Possible values: aix, archive, bsd, deb, dmg,
2030 installed, msi, pkg, and rpm.
2031 Example: --with-package-format='deb rpm']),
2035 AS_HELP_STRING([--with-tls],
2036 [Decides which TLS/SSL and cryptographic implementations to use for
2037 LibreOffice's code. Notice that this doesn't apply for depending
2038 libraries like "neon", for example. Default is to use NSS
2039 although OpenSSL is also possible. Notice that selecting NSS restricts
2040 the usage of OpenSSL in LO's code but selecting OpenSSL doesn't
2041 restrict by now the usage of NSS in LO's code. Possible values:
2042 openssl, nss. Example: --with-tls="nss"]),
2045 AC_ARG_WITH(system-libs,
2046 AS_HELP_STRING([--with-system-libs],
2047 [Use libraries already on system -- enables all --with-system-* flags.]),
2050 AC_ARG_WITH(system-bzip2,
2051 AS_HELP_STRING([--with-system-bzip2],
2052 [Use bzip2 already on system. Used only when --enable-online-update=mar]),,
2053 [with_system_bzip2="$with_system_libs"])
2055 AC_ARG_WITH(system-headers,
2056 AS_HELP_STRING([--with-system-headers],
2057 [Use headers already on system -- enables all --with-system-* flags for
2058 external packages whose headers are the only entities used i.e.
2059 boost/odbc/sane-header(s).]),,
2060 [with_system_headers="$with_system_libs"])
2062 AC_ARG_WITH(system-jars,
2063 AS_HELP_STRING([--without-system-jars],
2064 [When building with --with-system-libs, also the needed jars are expected
2065 on the system. Use this to disable that]),,
2066 [with_system_jars="$with_system_libs"])
2068 AC_ARG_WITH(system-cairo,
2069 AS_HELP_STRING([--with-system-cairo],
2070 [Use cairo libraries already on system. Happens automatically for
2071 (implicit) --enable-gtk3.]))
2073 AC_ARG_WITH(system-epoxy,
2074 AS_HELP_STRING([--with-system-epoxy],
2075 [Use epoxy libraries already on system. Happens automatically for
2076 (implicit) --enable-gtk3.]),,
2077 [with_system_epoxy="$with_system_libs"])
2079 AC_ARG_WITH(myspell-dicts,
2080 AS_HELP_STRING([--with-myspell-dicts],
2081 [Adds myspell dictionaries to the LibreOffice installation set]),
2084 AC_ARG_WITH(system-dicts,
2085 AS_HELP_STRING([--without-system-dicts],
2086 [Do not use dictionaries from system paths.]),
2089 AC_ARG_WITH(external-dict-dir,
2090 AS_HELP_STRING([--with-external-dict-dir],
2091 [Specify external dictionary dir.]),
2094 AC_ARG_WITH(external-hyph-dir,
2095 AS_HELP_STRING([--with-external-hyph-dir],
2096 [Specify external hyphenation pattern dir.]),
2099 AC_ARG_WITH(external-thes-dir,
2100 AS_HELP_STRING([--with-external-thes-dir],
2101 [Specify external thesaurus dir.]),
2104 AC_ARG_WITH(system-zlib,
2105 AS_HELP_STRING([--with-system-zlib],
2106 [Use zlib already on system.]),,
2107 [with_system_zlib=auto])
2109 AC_ARG_WITH(system-jpeg,
2110 AS_HELP_STRING([--with-system-jpeg],
2111 [Use jpeg already on system.]),,
2112 [with_system_jpeg="$with_system_libs"])
2114 AC_ARG_WITH(system-clucene,
2115 AS_HELP_STRING([--with-system-clucene],
2116 [Use clucene already on system.]),,
2117 [with_system_clucene="$with_system_libs"])
2119 AC_ARG_WITH(system-expat,
2120 AS_HELP_STRING([--with-system-expat],
2121 [Use expat already on system.]),,
2122 [with_system_expat="$with_system_libs"])
2124 AC_ARG_WITH(system-libxml,
2125 AS_HELP_STRING([--with-system-libxml],
2126 [Use libxml/libxslt already on system.]),,
2127 [with_system_libxml=auto])
2129 AC_ARG_WITH(system-icu,
2130 AS_HELP_STRING([--with-system-icu],
2131 [Use icu already on system.]),,
2132 [with_system_icu="$with_system_libs"])
2134 AC_ARG_WITH(system-ucpp,
2135 AS_HELP_STRING([--with-system-ucpp],
2136 [Use ucpp already on system.]),,
2139 AC_ARG_WITH(system-openldap,
2140 AS_HELP_STRING([--with-system-openldap],
2141 [Use the OpenLDAP LDAP SDK already on system.]),,
2142 [with_system_openldap="$with_system_libs"])
2144 libo_FUZZ_ARG_ENABLE(poppler,
2145 AS_HELP_STRING([--disable-poppler],
2146 [Disable building Poppler.])
2149 AC_ARG_WITH(system-poppler,
2150 AS_HELP_STRING([--with-system-poppler],
2151 [Use system poppler (only needed for PDF import).]),,
2152 [with_system_poppler="$with_system_libs"])
2154 libo_FUZZ_ARG_ENABLE(gpgmepp,
2155 AS_HELP_STRING([--disable-gpgmepp],
2156 [Disable building gpgmepp. Do not use in normal cases unless you want to fix potential problems it causes.])
2159 AC_ARG_WITH(system-gpgmepp,
2160 AS_HELP_STRING([--with-system-gpgmepp],
2161 [Use gpgmepp already on system]),,
2162 [with_system_gpgmepp="$with_system_libs"])
2164 AC_ARG_WITH(system-mariadb,
2165 AS_HELP_STRING([--with-system-mariadb],
2166 [Use MariaDB/MySQL libraries already on system.]),,
2167 [with_system_mariadb="$with_system_libs"])
2169 AC_ARG_ENABLE(bundle-mariadb,
2170 AS_HELP_STRING([--enable-bundle-mariadb],
2171 [When using MariaDB/MySQL libraries already on system, bundle them with the MariaDB Connector/LibreOffice.])
2174 AC_ARG_WITH(system-postgresql,
2175 AS_HELP_STRING([--with-system-postgresql],
2176 [Use PostgreSQL libraries already on system, for building the PostgreSQL-SDBC
2177 driver. If pg_config is not in PATH, use PGCONFIG to point to it.]),,
2178 [with_system_postgresql="$with_system_libs"])
2180 AC_ARG_WITH(libpq-path,
2181 AS_HELP_STRING([--with-libpq-path=<absolute path to your libpq installation>],
2182 [Use this PostgreSQL C interface (libpq) installation for building
2183 the PostgreSQL-SDBC extension.]),
2186 AC_ARG_WITH(system-firebird,
2187 AS_HELP_STRING([--with-system-firebird],
2188 [Use Firebird libraries already on system, for building the Firebird-SDBC
2189 driver. If fb_config is not in PATH, use FBCONFIG to point to it.]),,
2190 [with_system_firebird="$with_system_libs"])
2192 AC_ARG_WITH(system-libtommath,
2193 AS_HELP_STRING([--with-system-libtommath],
2194 [Use libtommath already on system]),,
2195 [with_system_libtommath="$with_system_libs"])
2197 AC_ARG_WITH(system-hsqldb,
2198 AS_HELP_STRING([--with-system-hsqldb],
2199 [Use hsqldb already on system.]))
2201 AC_ARG_WITH(hsqldb-jar,
2202 AS_HELP_STRING([--with-hsqldb-jar=JARFILE],
2203 [Specify path to jarfile manually.]),
2204 HSQLDB_JAR=$withval)
2206 libo_FUZZ_ARG_ENABLE(scripting-beanshell,
2207 AS_HELP_STRING([--disable-scripting-beanshell],
2208 [Disable support for scripts in BeanShell.]),
2212 AC_ARG_WITH(system-beanshell,
2213 AS_HELP_STRING([--with-system-beanshell],
2214 [Use beanshell already on system.]),,
2215 [with_system_beanshell="$with_system_jars"])
2217 AC_ARG_WITH(beanshell-jar,
2218 AS_HELP_STRING([--with-beanshell-jar=JARFILE],
2219 [Specify path to jarfile manually.]),
2222 libo_FUZZ_ARG_ENABLE(scripting-javascript,
2223 AS_HELP_STRING([--disable-scripting-javascript],
2224 [Disable support for scripts in JavaScript.]),
2228 AC_ARG_WITH(system-rhino,
2229 AS_HELP_STRING([--with-system-rhino],
2230 [Use rhino already on system.]),,)
2231 # [with_system_rhino="$with_system_jars"])
2232 # Above is not used as we have different debug interface
2233 # patched into internal rhino. This code needs to be fixed
2234 # before we can enable it by default.
2236 AC_ARG_WITH(rhino-jar,
2237 AS_HELP_STRING([--with-rhino-jar=JARFILE],
2238 [Specify path to jarfile manually.]),
2241 AC_ARG_WITH(system-jfreereport,
2242 AS_HELP_STRING([--with-system-jfreereport],
2243 [Use JFreeReport already on system.]),,
2244 [with_system_jfreereport="$with_system_jars"])
2246 AC_ARG_WITH(sac-jar,
2247 AS_HELP_STRING([--with-sac-jar=JARFILE],
2248 [Specify path to jarfile manually.]),
2251 AC_ARG_WITH(libxml-jar,
2252 AS_HELP_STRING([--with-libxml-jar=JARFILE],
2253 [Specify path to jarfile manually.]),
2254 LIBXML_JAR=$withval)
2256 AC_ARG_WITH(flute-jar,
2257 AS_HELP_STRING([--with-flute-jar=JARFILE],
2258 [Specify path to jarfile manually.]),
2261 AC_ARG_WITH(jfreereport-jar,
2262 AS_HELP_STRING([--with-jfreereport-jar=JARFILE],
2263 [Specify path to jarfile manually.]),
2264 JFREEREPORT_JAR=$withval)
2266 AC_ARG_WITH(liblayout-jar,
2267 AS_HELP_STRING([--with-liblayout-jar=JARFILE],
2268 [Specify path to jarfile manually.]),
2269 LIBLAYOUT_JAR=$withval)
2271 AC_ARG_WITH(libloader-jar,
2272 AS_HELP_STRING([--with-libloader-jar=JARFILE],
2273 [Specify path to jarfile manually.]),
2274 LIBLOADER_JAR=$withval)
2276 AC_ARG_WITH(libformula-jar,
2277 AS_HELP_STRING([--with-libformula-jar=JARFILE],
2278 [Specify path to jarfile manually.]),
2279 LIBFORMULA_JAR=$withval)
2281 AC_ARG_WITH(librepository-jar,
2282 AS_HELP_STRING([--with-librepository-jar=JARFILE],
2283 [Specify path to jarfile manually.]),
2284 LIBREPOSITORY_JAR=$withval)
2286 AC_ARG_WITH(libfonts-jar,
2287 AS_HELP_STRING([--with-libfonts-jar=JARFILE],
2288 [Specify path to jarfile manually.]),
2289 LIBFONTS_JAR=$withval)
2291 AC_ARG_WITH(libserializer-jar,
2292 AS_HELP_STRING([--with-libserializer-jar=JARFILE],
2293 [Specify path to jarfile manually.]),
2294 LIBSERIALIZER_JAR=$withval)
2296 AC_ARG_WITH(libbase-jar,
2297 AS_HELP_STRING([--with-libbase-jar=JARFILE],
2298 [Specify path to jarfile manually.]),
2299 LIBBASE_JAR=$withval)
2301 AC_ARG_WITH(system-odbc,
2302 AS_HELP_STRING([--with-system-odbc],
2303 [Use the odbc headers already on system.]),,
2304 [with_system_odbc="auto"])
2306 AC_ARG_WITH(system-sane,
2307 AS_HELP_STRING([--with-system-sane],
2308 [Use sane.h already on system.]),,
2309 [with_system_sane="$with_system_headers"])
2311 AC_ARG_WITH(system-bluez,
2312 AS_HELP_STRING([--with-system-bluez],
2313 [Use bluetooth.h already on system.]),,
2314 [with_system_bluez="$with_system_headers"])
2316 AC_ARG_WITH(system-curl,
2317 AS_HELP_STRING([--with-system-curl],
2318 [Use curl already on system.]),,
2319 [with_system_curl=auto])
2321 AC_ARG_WITH(system-boost,
2322 AS_HELP_STRING([--with-system-boost],
2323 [Use boost already on system.]),,
2324 [with_system_boost="$with_system_headers"])
2326 AC_ARG_WITH(system-glm,
2327 AS_HELP_STRING([--with-system-glm],
2328 [Use glm already on system.]),,
2329 [with_system_glm="$with_system_headers"])
2331 AC_ARG_WITH(system-hunspell,
2332 AS_HELP_STRING([--with-system-hunspell],
2333 [Use libhunspell already on system.]),,
2334 [with_system_hunspell="$with_system_libs"])
2336 libo_FUZZ_ARG_ENABLE(zxing,
2337 AS_HELP_STRING([--disable-zxing],
2338 [Disable use of zxing external library.]))
2340 AC_ARG_WITH(system-zxing,
2341 AS_HELP_STRING([--with-system-zxing],
2342 [Use libzxing already on system.]),,
2343 [with_system_zxing="$with_system_libs"])
2345 AC_ARG_WITH(system-box2d,
2346 AS_HELP_STRING([--with-system-box2d],
2347 [Use box2d already on system.]),,
2348 [with_system_box2d="$with_system_libs"])
2350 AC_ARG_WITH(system-mythes,
2351 AS_HELP_STRING([--with-system-mythes],
2352 [Use mythes already on system.]),,
2353 [with_system_mythes="$with_system_libs"])
2355 AC_ARG_WITH(system-altlinuxhyph,
2356 AS_HELP_STRING([--with-system-altlinuxhyph],
2357 [Use ALTLinuxhyph already on system.]),,
2358 [with_system_altlinuxhyph="$with_system_libs"])
2360 AC_ARG_WITH(system-lpsolve,
2361 AS_HELP_STRING([--with-system-lpsolve],
2362 [Use lpsolve already on system.]),,
2363 [with_system_lpsolve="$with_system_libs"])
2365 AC_ARG_WITH(system-coinmp,
2366 AS_HELP_STRING([--with-system-coinmp],
2367 [Use CoinMP already on system.]),,
2368 [with_system_coinmp="$with_system_libs"])
2370 AC_ARG_WITH(system-liblangtag,
2371 AS_HELP_STRING([--with-system-liblangtag],
2372 [Use liblangtag library already on system.]),,
2373 [with_system_liblangtag="$with_system_libs"])
2376 AS_HELP_STRING([--with-webdav],
2377 [Specify which library to use for webdav implementation.
2378 Possible values: "neon", "serf", "no". The default value is "neon".
2379 Example: --with-webdav="serf"]))
2381 AC_ARG_WITH(linker-hash-style,
2382 AS_HELP_STRING([--with-linker-hash-style],
2383 [Use linker with --hash-style=<style> when linking shared objects.
2384 Possible values: "sysv", "gnu", "both". The default value is "gnu"
2385 if supported on the build system, and "sysv" otherwise.]))
2387 AC_ARG_WITH(jdk-home,
2388 AS_HELP_STRING([--with-jdk-home=<absolute path to JDK home>],
2389 [If you have installed JDK 9 or later on your system please supply the
2390 path here. Note that this is not the location of the java command but the
2391 location of the entire distribution. In case of cross-compiling, this
2392 is the JDK of the host os. Use --with-build-platform-configure-options
2393 to point to a different build platform JDK.]),
2397 AS_HELP_STRING([--with-help],
2398 [Enable the build of help. There is a special parameter "common" that
2399 can be used to bundle only the common part, .e.g help-specific icons.
2400 This is useful when you build the helpcontent separately.])
2402 Usage: --with-help build the old local help
2403 --without-help no local help (default)
2404 --with-help=html build the new HTML local help
2405 --with-help=online build the new HTML online help
2409 AC_ARG_WITH(omindex,
2410 AS_HELP_STRING([--with-omindex],
2411 [Enable the support of xapian-omega index for online help.])
2413 Usage: --with-omindex=server prepare the pages for omindex
2414 but let xapian-omega be built in server.
2415 --with-omindex=noxap do not prepare online pages
2420 libo_FUZZ_ARG_WITH(java,
2421 AS_HELP_STRING([--with-java=<java command>],
2422 [Specify the name of the Java interpreter command. Typically "java"
2423 which is the default.
2425 To build without support for Java components, applets, accessibility
2426 or the XML filters written in Java, use --without-java or --with-java=no.]),
2427 [ test -z "$with_java" -o "$with_java" = "yes" && with_java=java ],
2428 [ test -z "$with_java" -o "$with_java" = "yes" && with_java=java ]
2431 AC_ARG_WITH(jvm-path,
2432 AS_HELP_STRING([--with-jvm-path=<absolute path to parent of jvm home>],
2433 [Use a specific JVM search path at runtime.
2434 e.g. use --with-jvm-path=/usr/lib/ to find JRE/JDK in /usr/lib/jvm/]),
2437 AC_ARG_WITH(ant-home,
2438 AS_HELP_STRING([--with-ant-home=<absolute path to Ant home>],
2439 [If you have installed Apache Ant on your system, please supply the path here.
2440 Note that this is not the location of the Ant binary but the location
2441 of the entire distribution.]),
2444 AC_ARG_WITH(symbol-config,
2445 AS_HELP_STRING([--with-symbol-config],
2446 [Configuration for the crashreport symbol upload]),
2448 [with_symbol_config=no])
2450 AC_ARG_WITH(export-validation,
2451 AS_HELP_STRING([--without-export-validation],
2452 [Disable validating OOXML and ODF files as exported from in-tree tests.]),
2453 ,with_export_validation=auto)
2455 AC_ARG_WITH(bffvalidator,
2456 AS_HELP_STRING([--with-bffvalidator=<absolute path to BFFValidator>],
2457 [Enables export validation for Microsoft Binary formats (doc, xls, ppt).
2458 Requires installed Microsoft Office Binary File Format Validator.
2459 Note: export-validation (--with-export-validation) is required to be turned on.
2460 See https://www.microsoft.com/en-us/download/details.aspx?id=26794]),
2461 ,with_bffvalidator=no)
2463 libo_FUZZ_ARG_WITH(junit,
2464 AS_HELP_STRING([--with-junit=<absolute path to JUnit 4 jar>],
2465 [Specifies the JUnit 4 jar file to use for JUnit-based tests.
2466 --without-junit disables those tests. Not relevant in the --without-java case.]),
2469 AC_ARG_WITH(hamcrest,
2470 AS_HELP_STRING([--with-hamcrest=<absolute path to hamcrest jar>],
2471 [Specifies the hamcrest jar file to use for JUnit-based tests.
2472 --without-junit disables those tests. Not relevant in the --without-java case.]),
2475 AC_ARG_WITH(perl-home,
2476 AS_HELP_STRING([--with-perl-home=<abs. path to Perl 5 home>],
2477 [If you have installed Perl 5 Distribution, on your system, please
2478 supply the path here. Note that this is not the location of the Perl
2479 binary but the location of the entire distribution.]),
2482 libo_FUZZ_ARG_WITH(doxygen,
2484 [--with-doxygen=<absolute path to doxygen executable>],
2485 [Specifies the doxygen executable to use when generating ODK C/C++
2486 documentation. --without-doxygen disables generation of ODK C/C++
2487 documentation. Not relevant in the --disable-odk case.]),
2490 AC_ARG_WITH(visual-studio,
2491 AS_HELP_STRING([--with-visual-studio=<2019>],
2492 [Specify which Visual Studio version to use in case several are
2493 installed. Currently only 2019 (default) is supported.]),
2496 AC_ARG_WITH(windows-sdk,
2497 AS_HELP_STRING([--with-windows-sdk=<8.0(A)/8.1(A)/10.0>],
2498 [Specify which Windows SDK, or "Windows Kit", version to use
2499 in case the one that came with the selected Visual Studio
2500 is not what you want for some reason. Note that not all compiler/SDK
2501 combinations are supported. The intent is that this option should not
2506 AS_HELP_STRING([--with-lang="es sw tu cs sk"],
2507 [Use this option to build LibreOffice with additional UI language support.
2508 English (US) is always included by default.
2509 Separate multiple languages with space.
2510 For all languages, use --with-lang=ALL.]),
2513 AC_ARG_WITH(locales,
2514 AS_HELP_STRING([--with-locales="en es pt fr zh kr ja"],
2515 [Use this option to limit the locale information built in.
2516 Separate multiple locales with space.
2517 Very experimental and might well break stuff.
2518 Just a desperate measure to shrink code and data size.
2519 By default all the locales available is included.
2520 This option is completely unrelated to --with-lang.])
2522 Affects also our character encoding conversion
2523 tables for encodings mainly targeted for a
2524 particular locale, like EUC-CN and EUC-TW for
2525 zh, ISO-2022-JP for ja.
2527 Affects also our add-on break iterator data for
2530 For the default, all locales, don't use this switch at all.
2531 Specifying just the language part of a locale means all matching
2532 locales will be included.
2536 # Kerberos and GSSAPI used only by PostgreSQL as of LibO 3.5
2537 libo_FUZZ_ARG_WITH(krb5,
2538 AS_HELP_STRING([--with-krb5],
2539 [Enable MIT Kerberos 5 support in modules that support it.
2540 By default automatically enabled on platforms
2541 where a good system Kerberos 5 is available.]),
2544 libo_FUZZ_ARG_WITH(gssapi,
2545 AS_HELP_STRING([--with-gssapi],
2546 [Enable GSSAPI support in modules that support it.
2547 By default automatically enabled on platforms
2548 where a good system GSSAPI is available.]),
2552 AS_HELP_STRING([--with-iwyu],
2553 [Use given IWYU binary path to check unneeded includes instead of building.
2554 Use only if you are hacking on it.]),
2557 libo_FUZZ_ARG_WITH(lxml,
2558 AS_HELP_STRING([--without-lxml],
2559 [gla11y will use python lxml when available, potentially building a local copy if necessary.
2560 --without-lxml tells it to not use python lxml at all, which means that gla11y will only
2561 report widget classes and ids.]),
2564 libo_FUZZ_ARG_WITH(latest-c++,
2565 AS_HELP_STRING([--with-latest-c++],
2566 [Try to enable the latest features of the C++ compiler, even if they are not yet part of a
2567 published standard.]),,
2568 [with_latest_c__=no])
2570 dnl ===================================================================
2572 dnl ===================================================================
2574 AC_ARG_WITH(branding,
2575 AS_HELP_STRING([--with-branding=/path/to/images],
2576 [Use given path to retrieve branding images set.])
2578 Search for intro.png about.svg and logo.svg.
2579 If any is missing, default ones will be used instead.
2581 Search also progress.conf for progress
2582 settings on intro screen :
2584 PROGRESSBARCOLOR="255,255,255" Set color of
2585 progress bar. Comma separated RGB decimal values.
2586 PROGRESSSIZE="407,6" Set size of progress bar.
2587 Comma separated decimal values (width, height).
2588 PROGRESSPOSITION="61,317" Set position of progress
2589 bar from left,top. Comma separated decimal values.
2590 PROGRESSFRAMECOLOR="20,136,3" Set color of progress
2591 bar frame. Comma separated RGB decimal values.
2592 PROGRESSTEXTCOLOR="0,0,0" Set color of progress
2593 bar text. Comma separated RGB decimal values.
2594 PROGRESSTEXTBASELINE="287" Set vertical position of
2595 progress bar text from top. Decimal value.
2597 Default values will be used if not found.
2602 AC_ARG_WITH(extra-buildid,
2603 AS_HELP_STRING([--with-extra-buildid="Tinderbox: Win-x86@6, Branch:master, Date:2012-11-26_00.29.34"],
2604 [Show addition build identification in about dialog.]),
2609 AS_HELP_STRING([--with-vendor="John the Builder"],
2610 [Set vendor of the build.]),
2613 AC_ARG_WITH(privacy-policy-url,
2614 AS_HELP_STRING([--with-privacy-policy-url="https://yourdomain/privacy-policy"],
2615 [The URL to your privacy policy (needed when
2616 enabling online-update or crashreporting via breakpad)]),
2617 [if test "x$with_privacy_policy_url" = "xyes"; then
2618 AC_MSG_FAILURE([you need to specify an argument when using --with-privacy-policy-url])
2619 elif test "x$with_privacy_policy_url" = "xno"; then
2620 with_privacy_policy_url="undefined"
2622 ,[with_privacy_policy_url="undefined"])
2624 AC_ARG_WITH(android-package-name,
2625 AS_HELP_STRING([--with-android-package-name="org.libreoffice"],
2626 [Set Android package name of the build.]),
2629 AC_ARG_WITH(compat-oowrappers,
2630 AS_HELP_STRING([--with-compat-oowrappers],
2631 [Install oo* wrappers in parallel with
2632 lo* ones to keep backward compatibility.
2633 Has effect only with make distro-pack-install]),
2636 AC_ARG_WITH(os-version,
2637 AS_HELP_STRING([--with-os-version=<OSVERSION>],
2638 [For FreeBSD users, use this option to override the detected OSVERSION.]),
2641 AC_ARG_WITH(idlc-cpp,
2642 AS_HELP_STRING([--with-idlc-cpp=<cpp/ucpp>],
2643 [Specify the C Preprocessor to use for idlc. Default is ucpp.]),
2646 AC_ARG_WITH(parallelism,
2647 AS_HELP_STRING([--with-parallelism],
2648 [Number of jobs to run simultaneously during build. Parallel builds can
2649 save a lot of time on multi-cpu machines. Defaults to the number of
2650 CPUs on the machine, unless you configure --enable-icecream - then to
2654 AC_ARG_WITH(all-tarballs,
2655 AS_HELP_STRING([--with-all-tarballs],
2656 [Download all external tarballs unconditionally]))
2658 AC_ARG_WITH(gdrive-client-id,
2659 AS_HELP_STRING([--with-gdrive-client-id],
2660 [Provides the client id of the application for OAuth2 authentication
2661 on Google Drive. If either this or --with-gdrive-client-secret is
2662 empty, the feature will be disabled]),
2665 AC_ARG_WITH(gdrive-client-secret,
2666 AS_HELP_STRING([--with-gdrive-client-secret],
2667 [Provides the client secret of the application for OAuth2
2668 authentication on Google Drive. If either this or
2669 --with-gdrive-client-id is empty, the feature will be disabled]),
2672 AC_ARG_WITH(alfresco-cloud-client-id,
2673 AS_HELP_STRING([--with-alfresco-cloud-client-id],
2674 [Provides the client id of the application for OAuth2 authentication
2675 on Alfresco Cloud. If either this or --with-alfresco-cloud-client-secret is
2676 empty, the feature will be disabled]),
2679 AC_ARG_WITH(alfresco-cloud-client-secret,
2680 AS_HELP_STRING([--with-alfresco-cloud-client-secret],
2681 [Provides the client secret of the application for OAuth2
2682 authentication on Alfresco Cloud. If either this or
2683 --with-alfresco-cloud-client-id is empty, the feature will be disabled]),
2686 AC_ARG_WITH(onedrive-client-id,
2687 AS_HELP_STRING([--with-onedrive-client-id],
2688 [Provides the client id of the application for OAuth2 authentication
2689 on OneDrive. If either this or --with-onedrive-client-secret is
2690 empty, the feature will be disabled]),
2693 AC_ARG_WITH(onedrive-client-secret,
2694 AS_HELP_STRING([--with-onedrive-client-secret],
2695 [Provides the client secret of the application for OAuth2
2696 authentication on OneDrive. If either this or
2697 --with-onedrive-client-id is empty, the feature will be disabled]),
2699 dnl ===================================================================
2700 dnl Do we want to use pre-build binary tarball for recompile
2701 dnl ===================================================================
2703 if test "$enable_library_bin_tar" = "yes" ; then
2704 USE_LIBRARY_BIN_TAR=TRUE
2706 USE_LIBRARY_BIN_TAR=
2708 AC_SUBST(USE_LIBRARY_BIN_TAR)
2710 dnl ===================================================================
2711 dnl Test whether build target is Release Build
2712 dnl ===================================================================
2713 AC_MSG_CHECKING([whether build target is Release Build])
2714 if test "$enable_release_build" = "" -o "$enable_release_build" = "no"; then
2716 ENABLE_RELEASE_BUILD=
2717 GET_TASK_ALLOW_ENTITLEMENT='
2718 <!-- We want to be able to debug a hardened process when not building for release -->
2719 <key>com.apple.security.get-task-allow</key>
2722 AC_MSG_RESULT([yes])
2723 ENABLE_RELEASE_BUILD=TRUE
2724 GET_TASK_ALLOW_ENTITLEMENT=''
2726 AC_SUBST(ENABLE_RELEASE_BUILD)
2727 AC_SUBST(GET_TASK_ALLOW_ENTITLEMENT)
2729 AC_MSG_CHECKING([whether to build a Community flavor])
2730 if test -z "$enable_community_flavor" -o "$enable_community_flavor" = "yes"; then
2731 AC_DEFINE(HAVE_FEATURE_COMMUNITY_FLAVOR)
2732 AC_MSG_RESULT([yes])
2737 dnl ===================================================================
2738 dnl Test whether to sign Windows Build
2739 dnl ===================================================================
2740 AC_MSG_CHECKING([whether to sign windows build])
2741 if test "$enable_windows_build_signing" = "yes" -a "$_os" = "WINNT"; then
2742 AC_MSG_RESULT([yes])
2743 WINDOWS_BUILD_SIGNING="TRUE"
2746 WINDOWS_BUILD_SIGNING="FALSE"
2748 AC_SUBST(WINDOWS_BUILD_SIGNING)
2750 dnl ===================================================================
2751 dnl MacOSX build and runtime environment options
2752 dnl ===================================================================
2754 AC_ARG_WITH(macosx-sdk,
2755 AS_HELP_STRING([--with-macosx-sdk=<version>],
2756 [Prefer a specific SDK for building.])
2758 If the requested SDK is not available, a search for the oldest one will be done.
2759 With current Xcode versions, only the latest SDK is included, so this option is
2760 not terribly useful. It works fine to build with a new SDK and run the result
2763 e. g.: --with-macosx-sdk=10.10
2765 there are 3 options to control the MacOSX build:
2766 --with-macosx-sdk (referred as 'sdk' below)
2767 --with-macosx-version-min-required (referred as 'min' below)
2768 --with-macosx-version-max-allowed (referred as 'max' below)
2770 the connection between these value and the default they take is as follow:
2771 ( ? means not specified on the command line, s means the SDK version found,
2772 constraint: 8 <= x <= y <= z)
2774 ==========================================
2775 command line || config result
2776 ==========================================
2777 min | max | sdk || min | max | sdk |
2778 ? | ? | ? || 10.10 | 10.s | 10.s |
2779 ? | ? | 10.x || 10.10 | 10.x | 10.x |
2780 ? | 10.x | ? || 10.10 | 10.s | 10.s |
2781 ? | 10.x | 10.y || 10.10 | 10.x | 10.y |
2782 10.x | ? | ? || 10.x | 10.s | 10.s |
2783 10.x | ? | 10.y || 10.x | 10.y | 10.y |
2784 10.x | 10.y | ? || 10.x | 10.y | 10.y |
2785 10.x | 10.y | 10.z || 10.x | 10.y | 10.z |
2788 see: http://developer.apple.com/library/mac/#technotes/tn2064/_index.html
2789 for a detailed technical explanation of these variables
2791 Note: MACOSX_DEPLOYMENT_TARGET will be set to the value of 'min'.
2795 AC_ARG_WITH(macosx-version-min-required,
2796 AS_HELP_STRING([--with-macosx-version-min-required=<version>],
2797 [set the minimum OS version needed to run the built LibreOffice])
2799 e. g.: --with-macosx-version-min-required=10.10
2800 see --with-macosx-sdk for more info
2804 AC_ARG_WITH(macosx-version-max-allowed,
2805 AS_HELP_STRING([--with-macosx-version-max-allowed=<version>],
2806 [set the maximum allowed OS version the LibreOffice compilation can use APIs from])
2808 e. g.: --with-macosx-version-max-allowed=10.10
2809 see --with-macosx-sdk for more info
2814 dnl ===================================================================
2815 dnl options for stuff used during cross-compilation build
2816 dnl Not quite superseded by --with-build-platform-configure-options.
2817 dnl TODO: check, if the "force" option is still needed anywhere.
2818 dnl ===================================================================
2820 AC_ARG_WITH(system-icu-for-build,
2821 AS_HELP_STRING([--with-system-icu-for-build=yes/no/force],
2822 [Use icu already on system for build tools (cross-compilation only).]))
2825 dnl ===================================================================
2826 dnl Check for incompatible options set by fuzzing, and reset those
2827 dnl automatically to working combinations
2828 dnl ===================================================================
2830 if test "$libo_fuzzed_enable_dbus" = yes -a "$libo_fuzzed_enable_avahi" -a \
2831 "$enable_dbus" != "$enable_avahi"; then
2832 AC_MSG_NOTICE([Resetting --enable-avahi=$enable_dbus])
2833 enable_avahi=$enable_dbus
2838 if ! echo "$LO_PATH" | $EGREP -q "(^|${P_SEP})$1($|${P_SEP})"; then
2839 LO_PATH="${LO_PATH:+$LO_PATH$P_SEP}$1"
2843 add_lopath_before ()
2848 for dir in $LO_PATH ; do
2849 if test "$dir" != "$1" ; then
2850 path_cleanup=${path_cleanup:+$path_cleanup$P_SEP}$dir
2853 LO_PATH="$1${path_cleanup:+$P_SEP$path_cleanup}"
2856 dnl ===================================================================
2857 dnl check for required programs (grep, awk, sed, bash)
2858 dnl ===================================================================
2863 if test -n "$1"; then
2864 if test "$build_os" = "cygwin"; then
2865 if test "$GNUMAKE_WIN_NATIVE" = "TRUE" ; then
2867 new_path=`cygpath -sm "$formatted_path"`
2870 new_path=`cygpath -u "$formatted_path"`
2875 if test "$2" = "after"; then
2876 add_lopath_after "$new_path"
2878 add_lopath_before "$new_path"
2884 AC_PATH_PROG( AWK, $AWK)
2885 if test -z "$AWK"; then
2886 AC_MSG_ERROR([install awk to run this script])
2889 AC_PATH_PROG(BASH, bash)
2890 if test -z "$BASH"; then
2891 AC_MSG_ERROR([bash not found in \$PATH])
2895 AC_MSG_CHECKING([for GNU or BSD tar])
2896 for a in $GNUTAR gtar gnutar bsdtar tar /usr/sfw/bin/gtar; do
2897 $a --version 2> /dev/null | egrep "GNU|bsdtar" 2>&1 > /dev/null
2898 if test $? -eq 0; then
2903 AC_MSG_RESULT($GNUTAR)
2904 if test -z "$GNUTAR"; then
2905 AC_MSG_ERROR([not found. install GNU or BSD tar.])
2909 AC_MSG_CHECKING([for tar's option to strip components])
2910 $GNUTAR --help 2> /dev/null | egrep "bsdtar|strip-components" 2>&1 >/dev/null
2911 if test $? -eq 0; then
2912 STRIP_COMPONENTS="--strip-components"
2914 $GNUTAR --help 2> /dev/null | egrep "strip-path" 2>&1 >/dev/null
2915 if test $? -eq 0; then
2916 STRIP_COMPONENTS="--strip-path"
2918 STRIP_COMPONENTS="unsupported"
2921 AC_MSG_RESULT($STRIP_COMPONENTS)
2922 if test x$STRIP_COMPONENTS = xunsupported; then
2923 AC_MSG_ERROR([you need a tar that is able to strip components.])
2925 AC_SUBST(STRIP_COMPONENTS)
2927 dnl It is useful to have a BUILD_TYPE keyword to distinguish "normal"
2928 dnl desktop OSes from "mobile" ones.
2930 dnl We assume that a non-DESKTOP build type is also a non-NATIVE one.
2931 dnl In other words, that when building for an OS that is not a
2932 dnl "desktop" one but a "mobile" one, we are always cross-compiling.
2934 dnl Note the direction of the implication; there is no assumption that
2935 dnl cross-compiling would imply a non-desktop OS.
2937 if test $_os != iOS -a $_os != Android -a $_os != Emscripten -a "$enable_fuzzers" != "yes"; then
2938 BUILD_TYPE="$BUILD_TYPE DESKTOP"
2939 AC_DEFINE(HAVE_FEATURE_DESKTOP)
2940 AC_DEFINE(HAVE_FEATURE_MULTIUSER_ENVIRONMENT)
2943 # Whether to build "avmedia" functionality or not.
2945 if test -z "$enable_avmedia"; then
2949 BUILD_TYPE="$BUILD_TYPE AVMEDIA"
2950 if test "$enable_avmedia" = yes; then
2951 AC_DEFINE(HAVE_FEATURE_AVMEDIA)
2953 USE_AVMEDIA_DUMMY='TRUE'
2955 AC_SUBST(USE_AVMEDIA_DUMMY)
2957 # Decide whether to build database connectivity stuff (including Base) or not.
2958 if test "$enable_database_connectivity" != no; then
2959 BUILD_TYPE="$BUILD_TYPE DBCONNECTIVITY"
2960 AC_DEFINE(HAVE_FEATURE_DBCONNECTIVITY)
2962 if test "$_os" = iOS; then
2963 AC_MSG_ERROR([Presumly can't disable DB connectivity on iOS.])
2965 disable_database_connectivity_dependencies
2968 if test -z "$enable_extensions"; then
2969 # For iOS and Android Viewer, disable extensions unless specifically overridden with --enable-extensions.
2970 if test $_os != iOS && test $_os != Android -o "$ENABLE_ANDROID_LOK" = TRUE ; then
2971 enable_extensions=yes
2975 if test "$enable_extensions" = yes; then
2976 BUILD_TYPE="$BUILD_TYPE EXTENSIONS"
2977 AC_DEFINE(HAVE_FEATURE_EXTENSIONS)
2980 if test -z "$enable_scripting"; then
2981 # Disable scripting for iOS unless specifically overridden
2982 # with --enable-scripting.
2983 if test $_os != iOS -o $_os = Emscripten; then
2984 enable_scripting=yes
2988 DISABLE_SCRIPTING=''
2989 if test "$enable_scripting" = yes; then
2990 BUILD_TYPE="$BUILD_TYPE SCRIPTING"
2991 AC_DEFINE(HAVE_FEATURE_SCRIPTING)
2993 DISABLE_SCRIPTING='TRUE'
2994 SCPDEFS="$SCPDEFS -DDISABLE_SCRIPTING"
2997 if test $_os = iOS -o $_os = Android -o $_os = Emscripten; then
2998 # Disable dynamic_loading always for iOS and Android
2999 enable_dynamic_loading=no
3000 elif test -z "$enable_dynamic_loading"; then
3001 # Otherwise enable it unless specifically disabled
3002 enable_dynamic_loading=yes
3005 DISABLE_DYNLOADING=''
3006 if test "$enable_dynamic_loading" = yes; then
3007 BUILD_TYPE="$BUILD_TYPE DYNLOADING"
3009 DISABLE_DYNLOADING='TRUE'
3011 AC_SUBST(DISABLE_DYNLOADING)
3013 # remember SYSBASE value
3016 dnl ===================================================================
3017 dnl Sort out various gallery compilation options
3018 dnl ===================================================================
3019 WITH_GALLERY_BUILD=TRUE
3020 AC_MSG_CHECKING([how to build and package galleries])
3021 if test -n "${with_galleries}"; then
3022 if test "$with_galleries" = "build"; then
3023 if test "$enable_database_connectivity" = no; then
3024 AC_MSG_ERROR([DB connectivity is needed for gengal / svx])
3026 AC_MSG_RESULT([build from source images internally])
3027 elif test "$with_galleries" = "no"; then
3029 AC_MSG_RESULT([disable non-internal gallery build])
3031 AC_MSG_ERROR([unknown value --with-galleries=$with_galleries])
3034 if test $_os != iOS -a $_os != Android; then
3035 AC_MSG_RESULT([internal src images for desktop])
3038 AC_MSG_RESULT([disable src image build])
3041 AC_SUBST(WITH_GALLERY_BUILD)
3043 dnl ===================================================================
3044 dnl Checks if ccache is available
3045 dnl ===================================================================
3047 if test "$enable_ccache" = "no"; then
3049 elif test "$_os" = "WINNT"; then
3050 # on windows/VC build do not use ccache - but perhaps sccache is around?
3051 case "%$CC%$CXX%" in
3052 # If $CC and/or $CXX already contain "sccache" (possibly suffixed with some version number etc),
3053 # assume that's good then
3054 *%sccache[[-_' ']]*|*/sccache[[-_' ']]*)
3055 AC_MSG_NOTICE([sccache seems to be included in a pre-defined CC and/or CXX])
3056 CCACHE_DEPEND_MODE=1
3059 # for sharing code below, reuse CCACHE env var
3060 AC_PATH_PROG([CCACHE],[sccache],[not found])
3061 if test "$CCACHE" = "not found"; then
3064 CCACHE=`win_short_path_for_make "$CCACHE"`
3065 CCACHE_DEPEND_MODE=1
3069 elif test -n "$enable_ccache" -o \( "$enable_ccache" = "" -a "$enable_icecream" != "yes" \); then
3070 case "%$CC%$CXX%" in
3071 # If $CC and/or $CXX already contain "ccache" (possibly suffixed with some version number etc),
3072 # assume that's good then
3073 *%ccache[[-_' ']]*|*/ccache[[-_' ']]*)
3074 AC_MSG_NOTICE([ccache seems to be included in a pre-defined CC and/or CXX])
3075 CCACHE_DEPEND_MODE=1
3078 AC_PATH_PROG([CCACHE],[ccache],[not found])
3079 if test "$CCACHE" = "not found"; then
3082 CCACHE_DEPEND_MODE=1
3083 # Need to check for ccache version: otherwise prevents
3084 # caching of the results (like "-x objective-c++" for Mac)
3085 if test $_os = Darwin -o $_os = iOS; then
3086 # Check ccache version
3087 AC_MSG_CHECKING([whether version of ccache is suitable])
3088 CCACHE_VERSION=`"$CCACHE" -V | "$AWK" '/^ccache version/{print $3}'`
3089 CCACHE_NUMVER=`echo $CCACHE_VERSION | $AWK -F. '{ print \$1*10000+\$2*100+\$3 }'`
3090 if test "$CCACHE_VERSION" = "2.4_OOo" -o "$CCACHE_NUMVER" -ge "030100"; then
3091 AC_MSG_RESULT([yes, $CCACHE_VERSION])
3093 AC_MSG_RESULT([no, $CCACHE_VERSION])
3104 if test "$enable_ccache" = "nodepend"; then
3105 CCACHE_DEPEND_MODE=""
3107 AC_SUBST(CCACHE_DEPEND_MODE)
3109 # skip on windows - sccache defaults are good enough
3110 if test "$CCACHE" != "" -a "$_os" != "WINNT"; then
3111 ccache_size_msg=$([ccache -s | tail -n 1 | sed 's/^[^0-9]*//' | sed -e 's/\.[0-9]*//'])
3112 ccache_size=$(echo "$ccache_size_msg" | grep "G" | sed -e 's/G.*$//')
3113 if test "$ccache_size" = ""; then
3114 ccache_size=$(echo "$ccache_size_msg" | grep "M" | sed -e 's/\ M.*$//')
3115 if test "$ccache_size" = ""; then
3118 # we could not determine the size or it was less than 1GB -> disable auto-ccache
3119 if test $ccache_size -lt 1024; then
3121 AC_MSG_WARN([ccache's cache size is less than 1GB using it is counter-productive: Disabling auto-ccache detection])
3122 add_warning "ccache's cache size is less than 1GB using it is counter-productive: auto-ccache detection disabled"
3124 # warn that ccache may be too small for debug build
3125 AC_MSG_WARN([ccache's cache size is less than 5GB using it may be counter-productive for debug or symbol-enabled build])
3126 add_warning "ccache's cache size is less than 5GB using it may be counter-productive for debug or symbol-enabled build"
3129 if test $ccache_size -lt 5; then
3130 #warn that ccache may be too small for debug build
3131 AC_MSG_WARN([ccache's cache size is less than 5GB using it may be counter-productive for debug or symbol-enabled build])
3132 add_warning "ccache's cache size is less than 5GB using it may be counter-productive for debug or symbol-enabled build"
3137 dnl ===================================================================
3138 dnl Checks for C compiler,
3139 dnl The check for the C++ compiler is later on.
3140 dnl ===================================================================
3141 if test "$_os" != "WINNT"; then
3143 AC_MSG_CHECKING([gcc home])
3144 if test -z "$with_gcc_home"; then
3145 if test "$enable_icecream" = "yes"; then
3146 if test -d "/usr/lib/icecc/bin"; then
3147 GCC_HOME="/usr/lib/icecc/"
3148 elif test -d "/usr/libexec/icecc/bin"; then
3149 GCC_HOME="/usr/libexec/icecc/"
3150 elif test -d "/opt/icecream/bin"; then
3151 GCC_HOME="/opt/icecream/"
3153 AC_MSG_ERROR([Could not figure out the location of icecream GCC wrappers, manually use --with-gcc-home])
3157 GCC_HOME=`which gcc | $SED -e s,/bin/gcc,,`
3158 GCC_HOME_SET="false"
3161 GCC_HOME="$with_gcc_home"
3163 AC_MSG_RESULT($GCC_HOME)
3166 if test "$GCC_HOME_SET" = "true"; then
3167 if test -z "$CC"; then
3168 CC="$GCC_HOME/bin/gcc"
3171 if test -z "$CXX"; then
3172 CXX="$GCC_HOME/bin/g++"
3178 COMPATH=`dirname "$CC"`
3179 if test "$COMPATH" = "."; then
3180 AC_PATH_PROGS(COMPATH, $CC)
3181 dnl double square bracket to get single because of M4 quote...
3182 COMPATH=`echo $COMPATH | $SED "s@/[[^/:]]*\\\$@@"`
3184 COMPATH=`echo $COMPATH | $SED "s@/[[Bb]][[Ii]][[Nn]]\\\$@@"`
3186 dnl ===================================================================
3188 dnl ===================================================================
3189 AC_MSG_CHECKING([whether to build with Java support])
3190 if test "$with_java" != "no"; then
3191 if test "$DISABLE_SCRIPTING" = TRUE; then
3192 AC_MSG_RESULT([no, overridden by --disable-scripting])
3196 AC_MSG_RESULT([yes])
3198 AC_DEFINE(HAVE_FEATURE_JAVA)
3205 AC_SUBST(ENABLE_JAVA)
3207 dnl ENABLE_JAVA="TRUE" if we want there to be *run-time* (and build-time) support for Java
3209 dnl ENABLE_JAVA="" indicate no Java support at all
3211 dnl ===================================================================
3212 dnl Check macOS SDK and compiler
3213 dnl ===================================================================
3215 if test $_os = Darwin; then
3217 # If no --with-macosx-sdk option is given, look for one
3219 # The intent is that for "most" Mac-based developers, a suitable
3220 # SDK will be found automatically without any configure options.
3222 # For developers with a current Xcode, the lowest-numbered SDK
3223 # higher than or equal to the minimum required should be found.
3225 AC_MSG_CHECKING([what macOS SDK to use])
3226 for _macosx_sdk in ${with_macosx_sdk-11.3 11.1 11.0 10.15 10.14 10.13}; do
3227 MACOSX_SDK_PATH=`xcrun --sdk macosx${_macosx_sdk} --show-sdk-path 2> /dev/null`
3228 if test -d "$MACOSX_SDK_PATH"; then
3229 with_macosx_sdk="${_macosx_sdk}"
3232 MACOSX_SDK_PATH="`xcode-select -print-path`/Platforms/MacOSX.platform/Developer/SDKs/MacOSX${_macosx_sdk}.sdk"
3233 if test -d "$MACOSX_SDK_PATH"; then
3234 with_macosx_sdk="${_macosx_sdk}"
3239 if test ! -d "$MACOSX_SDK_PATH"; then
3240 AC_MSG_ERROR([Could not find an appropriate macOS SDK])
3243 AC_MSG_RESULT([SDK $with_macosx_sdk at $MACOSX_SDK_PATH])
3245 case $with_macosx_sdk in
3247 MACOSX_SDK_VERSION=101300
3250 MACOSX_SDK_VERSION=101400
3253 MACOSX_SDK_VERSION=101500
3256 MACOSX_SDK_VERSION=110000
3259 MACOSX_SDK_VERSION=110100
3262 MACOSX_SDK_VERSION=110300
3265 AC_MSG_ERROR([with-macosx-sdk $with_macosx_sdk is not a supported value, supported values are 10.13--11.3])
3269 if test "$host_cpu" = arm64 -a $MACOSX_SDK_VERSION -lt 110000; then
3270 AC_MSG_ERROR([with-macosx-sdk $with_macosx_sdk is not a supported value for Apple Silicon])
3273 if test "$with_macosx_version_min_required" = "" ; then
3274 if test "$host_cpu" = x86_64; then
3275 with_macosx_version_min_required="10.10";
3277 with_macosx_version_min_required="11.0";
3281 if test "$with_macosx_version_max_allowed" = "" ; then
3282 with_macosx_version_max_allowed="$with_macosx_sdk"
3285 # export this so that "xcrun" invocations later return matching values
3286 DEVELOPER_DIR="${MACOSX_SDK_PATH%/SDKs*}"
3287 DEVELOPER_DIR="${DEVELOPER_DIR%/Platforms*}"
3288 export DEVELOPER_DIR
3289 FRAMEWORKSHOME="$MACOSX_SDK_PATH/System/Library/Frameworks"
3290 MACOSX_DEPLOYMENT_TARGET="$with_macosx_version_min_required"
3292 AC_MSG_CHECKING([whether Xcode is new enough])
3293 my_xcode_ver1=$(xcrun xcodebuild -version | head -n 1)
3294 my_xcode_ver2=${my_xcode_ver1#Xcode }
3295 my_xcode_ver3=$(printf %s "$my_xcode_ver2" | $AWK -F. '{ print $1*100+($2<100?$2:99) }')
3296 if test "$my_xcode_ver3" -ge 1103; then
3297 AC_MSG_RESULT([yes ($my_xcode_ver2)])
3299 AC_MSG_ERROR(["$my_xcode_ver1" is too old or unrecognized, must be at least Xcode 11.3])
3302 case "$with_macosx_version_min_required" in
3304 MAC_OS_X_VERSION_MIN_REQUIRED="101000"
3307 MAC_OS_X_VERSION_MIN_REQUIRED="101100"
3310 MAC_OS_X_VERSION_MIN_REQUIRED="101200"
3313 MAC_OS_X_VERSION_MIN_REQUIRED="101300"
3316 MAC_OS_X_VERSION_MIN_REQUIRED="101400"
3319 MAC_OS_X_VERSION_MIN_REQUIRED="101500"
3322 MAC_OS_X_VERSION_MIN_REQUIRED="101600"
3325 MAC_OS_X_VERSION_MIN_REQUIRED="110000"
3328 MAC_OS_X_VERSION_MIN_REQUIRED="110100"
3331 MAC_OS_X_VERSION_MIN_REQUIRED="110300"
3334 AC_MSG_ERROR([with-macosx-version-min-required $with_macosx_version_min_required is not a supported value, supported values are 10.10--11.3])
3338 LIBTOOL=/usr/bin/libtool
3339 INSTALL_NAME_TOOL=install_name_tool
3340 if test -z "$save_CC"; then
3341 stdlib=-stdlib=libc++
3343 AC_MSG_CHECKING([what C compiler to use])
3344 CC="`xcrun -find clang`"
3345 CC_BASE=`first_arg_basename "$CC"`
3346 if test "$host_cpu" = x86_64; then
3347 CC+=" -target x86_64-apple-macos"
3349 CC+=" -target arm64-apple-macos"
3351 CC+=" -mmacosx-version-min=$with_macosx_version_min_required -isysroot $MACOSX_SDK_PATH"
3352 AC_MSG_RESULT([$CC])
3354 AC_MSG_CHECKING([what C++ compiler to use])
3355 CXX="`xcrun -find clang++`"
3356 CXX_BASE=`first_arg_basename "$CXX"`
3357 if test "$host_cpu" = x86_64; then
3358 CXX+=" -target x86_64-apple-macos"
3360 CXX+=" -target arm64-apple-macos"
3362 CXX+=" $stdlib -mmacosx-version-min=$with_macosx_version_min_required -isysroot $MACOSX_SDK_PATH"
3363 AC_MSG_RESULT([$CXX])
3365 INSTALL_NAME_TOOL=`xcrun -find install_name_tool`
3368 STRIP=`xcrun -find strip`
3369 LIBTOOL=`xcrun -find libtool`
3370 RANLIB=`xcrun -find ranlib`
3373 case "$with_macosx_version_max_allowed" in
3375 MAC_OS_X_VERSION_MAX_ALLOWED="101000"
3378 MAC_OS_X_VERSION_MAX_ALLOWED="101100"
3381 MAC_OS_X_VERSION_MAX_ALLOWED="101200"
3384 MAC_OS_X_VERSION_MAX_ALLOWED="101300"
3387 MAC_OS_X_VERSION_MAX_ALLOWED="101400"
3390 MAC_OS_X_VERSION_MAX_ALLOWED="101500"
3393 MAC_OS_X_VERSION_MAX_ALLOWED="110000"
3396 MAC_OS_X_VERSION_MAX_ALLOWED="110100"
3399 MAC_OS_X_VERSION_MAX_ALLOWED="110300"
3402 AC_MSG_ERROR([with-macosx-version-max-allowed $with_macosx_version_max_allowed is not a supported value, supported values are 10.10--11.3])
3406 AC_MSG_CHECKING([that macosx-version-min-required is coherent with macosx-version-max-allowed])
3407 if test $MAC_OS_X_VERSION_MIN_REQUIRED -gt $MAC_OS_X_VERSION_MAX_ALLOWED; then
3408 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])
3413 AC_MSG_CHECKING([that macosx-version-max-allowed is coherent with macos-with-sdk])
3414 if test $MAC_OS_X_VERSION_MAX_ALLOWED -gt $MACOSX_SDK_VERSION; then
3415 AC_MSG_ERROR([the version maximum allowed cannot be greater than the sdk level])
3419 AC_MSG_NOTICE([MAC_OS_X_VERSION_MIN_REQUIRED=$MAC_OS_X_VERSION_MIN_REQUIRED])
3420 AC_MSG_NOTICE([MAC_OS_X_VERSION_MAX_ALLOWED=$MAC_OS_X_VERSION_MAX_ALLOWED])
3422 AC_MSG_CHECKING([whether to do code signing])
3424 if test "$enable_macosx_code_signing" = yes; then
3425 # By default use the first suitable certificate (?).
3427 # http://stackoverflow.com/questions/13196291/difference-between-mac-developer-and-3rd-party-mac-developer-application
3428 # says that the "Mac Developer" certificate is useful just for self-testing. For distribution
3429 # outside the Mac App Store, use the "Developer ID Application" one, and for distribution in
3430 # the App Store, the "3rd Party Mac Developer" one. I think it works best to the
3431 # "Developer ID Application" one.
3433 identity=`security find-identity -p codesigning -v 2>/dev/null | grep 'Developer ID Application:' | $AWK '{print $2}' |head -1`
3434 if test -n "$identity"; then
3435 MACOSX_CODESIGNING_IDENTITY=$identity
3436 pretty_name=`security find-identity -p codesigning -v | grep "$MACOSX_CODESIGNING_IDENTITY" | sed -e 's/^[[^"]]*"//' -e 's/"//'`
3437 AC_MSG_RESULT([yes, using the identity $MACOSX_CODESIGNING_IDENTITY for $pretty_name])
3439 AC_MSG_ERROR([cannot determine identity to use])
3441 elif test -n "$enable_macosx_code_signing" -a "$enable_macosx_code_signing" != no ; then
3442 MACOSX_CODESIGNING_IDENTITY=$enable_macosx_code_signing
3443 pretty_name=`security find-identity -p codesigning -v | grep "$MACOSX_CODESIGNING_IDENTITY" | sed -e 's/^[[^"]]*"//' -e 's/"//'`
3444 AC_MSG_RESULT([yes, using the identity $MACOSX_CODESIGNING_IDENTITY for $pretty_name])
3449 AC_MSG_CHECKING([whether to create a Mac App Store package])
3451 if test -z "$enable_macosx_package_signing" || test "$enable_macosx_package_signing" == no; then
3453 elif test -z "$MACOSX_CODESIGNING_IDENTITY"; then
3454 AC_MSG_ERROR([You forgot --enable-macosx-code-signing])
3455 elif test "$enable_macosx_package_signing" = yes; then
3456 # By default use the first suitable certificate.
3457 # It should be a "3rd Party Mac Developer Installer" one
3459 identity=`security find-identity -v 2>/dev/null | grep '3rd Party Mac Developer Installer:' | awk '{print $2}' |head -1`
3460 if test -n "$identity"; then
3461 MACOSX_PACKAGE_SIGNING_IDENTITY=$identity
3462 pretty_name=`security find-identity -v | grep "$MACOSX_PACKAGE_SIGNING_IDENTITY" | sed -e 's/^[[^"]]*"//' -e 's/"//'`
3463 AC_MSG_RESULT([yes, using the identity $MACOSX_PACKAGE_SIGNING_IDENTITY for $pretty_name])
3465 AC_MSG_ERROR([Could not find any suitable '3rd Party Mac Developer Installer' certificate])
3468 MACOSX_PACKAGE_SIGNING_IDENTITY=$enable_macosx_package_signing
3469 pretty_name=`security find-identity -v | grep "$MACOSX_PACKAGE_SIGNING_IDENTITY" | sed -e 's/^[[^"]]*"//' -e 's/"//'`
3470 AC_MSG_RESULT([yes, using the identity $MACOSX_PACKAGE_SIGNING_IDENTITY for $pretty_name])
3473 if test -n "$MACOSX_CODESIGNING_IDENTITY" -a -n "$MACOSX_PACKAGE_SIGNING_IDENTITY" -a "$MACOSX_CODESIGNING_IDENTITY" = "$MACOSX_PACKAGE_SIGNING_IDENTITY"; then
3474 AC_MSG_ERROR([You should not use the same identity for code and package signing])
3477 AC_MSG_CHECKING([whether to sandbox the application])
3479 if test -n "$ENABLE_JAVA" -a "$enable_macosx_sandbox" = yes; then
3480 AC_MSG_ERROR([macOS sandboxing (actually App Store rules) disallows use of Java])
3481 elif test "$enable_macosx_sandbox" = yes; then
3482 ENABLE_MACOSX_SANDBOX=TRUE
3483 AC_DEFINE(HAVE_FEATURE_MACOSX_SANDBOX)
3484 AC_MSG_RESULT([yes])
3489 AC_MSG_CHECKING([what macOS app bundle identifier to use])
3490 MACOSX_BUNDLE_IDENTIFIER=$with_macosx_bundle_identifier
3491 AC_MSG_RESULT([$MACOSX_BUNDLE_IDENTIFIER])
3493 AC_SUBST(MACOSX_SDK_PATH)
3494 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
3495 AC_SUBST(MAC_OS_X_VERSION_MIN_REQUIRED)
3496 AC_SUBST(MAC_OS_X_VERSION_MAX_ALLOWED)
3497 AC_SUBST(INSTALL_NAME_TOOL)
3498 AC_SUBST(LIBTOOL) # Note that the macOS libtool command is unrelated to GNU libtool
3499 AC_SUBST(MACOSX_CODESIGNING_IDENTITY)
3500 AC_SUBST(MACOSX_PACKAGE_SIGNING_IDENTITY)
3501 AC_SUBST(ENABLE_MACOSX_SANDBOX)
3502 AC_SUBST(MACOSX_BUNDLE_IDENTIFIER)
3504 dnl ===================================================================
3505 dnl Check iOS SDK and compiler
3506 dnl ===================================================================
3508 if test $_os = iOS; then
3509 AC_MSG_CHECKING([what iOS SDK to use])
3510 current_sdk_ver=14.5
3511 older_sdk_vers="14.4 14.3 14.2 14.1 14.0 13.7"
3512 if test "$enable_ios_simulator" = "yes"; then
3513 platform=iPhoneSimulator
3514 versionmin=-mios-simulator-version-min=12.2
3517 versionmin=-miphoneos-version-min=12.2
3519 xcode_developer=`xcode-select -print-path`
3521 for sdkver in $current_sdk_ver $older_sdk_vers; do
3522 t=$xcode_developer/Platforms/$platform.platform/Developer/SDKs/$platform$sdkver.sdk
3529 if test -z "$sysroot"; then
3530 AC_MSG_ERROR([Could not find iOS SDK, expected something like $xcode_developer/Platforms/$platform.platform/Developer/SDKs/${platform}${current_sdk_ver}.sdk])
3533 AC_MSG_RESULT($sysroot)
3535 stdlib="-stdlib=libc++"
3537 AC_MSG_CHECKING([what C compiler to use])
3538 CC="`xcrun -find clang`"
3539 CC_BASE=`first_arg_basename "$CC"`
3540 CC+=" -arch $host_cpu_for_clang -isysroot $sysroot $versionmin"
3541 AC_MSG_RESULT([$CC])
3543 AC_MSG_CHECKING([what C++ compiler to use])
3544 CXX="`xcrun -find clang++`"
3545 CXX_BASE=`first_arg_basename "$CXX"`
3546 CXX+=" -arch $host_cpu_for_clang $stdlib -isysroot $sysroot $versionmin"
3547 AC_MSG_RESULT([$CXX])
3549 INSTALL_NAME_TOOL=`xcrun -find install_name_tool`
3552 STRIP=`xcrun -find strip`
3553 LIBTOOL=`xcrun -find libtool`
3554 RANLIB=`xcrun -find ranlib`
3557 AC_MSG_CHECKING([whether to treat the installation as read-only])
3559 if test $_os = Darwin; then
3560 enable_readonly_installset=yes
3561 elif test "$enable_extensions" != yes; then
3562 enable_readonly_installset=yes
3564 if test "$enable_readonly_installset" = yes; then
3565 AC_MSG_RESULT([yes])
3566 AC_DEFINE(HAVE_FEATURE_READONLY_INSTALLSET)
3571 dnl ===================================================================
3572 dnl Structure of install set
3573 dnl ===================================================================
3575 if test $_os = Darwin; then
3576 LIBO_BIN_FOLDER=MacOS
3577 LIBO_ETC_FOLDER=Resources
3578 LIBO_LIBEXEC_FOLDER=MacOS
3579 LIBO_LIB_FOLDER=Frameworks
3580 LIBO_LIB_PYUNO_FOLDER=Resources
3581 LIBO_SHARE_FOLDER=Resources
3582 LIBO_SHARE_HELP_FOLDER=Resources/help
3583 LIBO_SHARE_JAVA_FOLDER=Resources/java
3584 LIBO_SHARE_PRESETS_FOLDER=Resources/presets
3585 LIBO_SHARE_READMES_FOLDER=Resources/readmes
3586 LIBO_SHARE_RESOURCE_FOLDER=Resources/resource
3587 LIBO_SHARE_SHELL_FOLDER=Resources/shell
3588 LIBO_URE_BIN_FOLDER=MacOS
3589 LIBO_URE_ETC_FOLDER=Resources/ure/etc
3590 LIBO_URE_LIB_FOLDER=Frameworks
3591 LIBO_URE_MISC_FOLDER=Resources/ure/share/misc
3592 LIBO_URE_SHARE_JAVA_FOLDER=Resources/java
3593 elif test $_os = WINNT; then
3594 LIBO_BIN_FOLDER=program
3595 LIBO_ETC_FOLDER=program
3596 LIBO_LIBEXEC_FOLDER=program
3597 LIBO_LIB_FOLDER=program
3598 LIBO_LIB_PYUNO_FOLDER=program
3599 LIBO_SHARE_FOLDER=share
3600 LIBO_SHARE_HELP_FOLDER=help
3601 LIBO_SHARE_JAVA_FOLDER=program/classes
3602 LIBO_SHARE_PRESETS_FOLDER=presets
3603 LIBO_SHARE_READMES_FOLDER=readmes
3604 LIBO_SHARE_RESOURCE_FOLDER=program/resource
3605 LIBO_SHARE_SHELL_FOLDER=program/shell
3606 LIBO_URE_BIN_FOLDER=program
3607 LIBO_URE_ETC_FOLDER=program
3608 LIBO_URE_LIB_FOLDER=program
3609 LIBO_URE_MISC_FOLDER=program
3610 LIBO_URE_SHARE_JAVA_FOLDER=program/classes
3612 LIBO_BIN_FOLDER=program
3613 LIBO_ETC_FOLDER=program
3614 LIBO_LIBEXEC_FOLDER=program
3615 LIBO_LIB_FOLDER=program
3616 LIBO_LIB_PYUNO_FOLDER=program
3617 LIBO_SHARE_FOLDER=share
3618 LIBO_SHARE_HELP_FOLDER=help
3619 LIBO_SHARE_JAVA_FOLDER=program/classes
3620 LIBO_SHARE_PRESETS_FOLDER=presets
3621 LIBO_SHARE_READMES_FOLDER=readmes
3622 if test "$enable_fuzzers" != yes; then
3623 LIBO_SHARE_RESOURCE_FOLDER=program/resource
3625 LIBO_SHARE_RESOURCE_FOLDER=resource
3627 LIBO_SHARE_SHELL_FOLDER=program/shell
3628 LIBO_URE_BIN_FOLDER=program
3629 LIBO_URE_ETC_FOLDER=program
3630 LIBO_URE_LIB_FOLDER=program
3631 LIBO_URE_MISC_FOLDER=program
3632 LIBO_URE_SHARE_JAVA_FOLDER=program/classes
3634 AC_DEFINE_UNQUOTED(LIBO_BIN_FOLDER,"$LIBO_BIN_FOLDER")
3635 AC_DEFINE_UNQUOTED(LIBO_ETC_FOLDER,"$LIBO_ETC_FOLDER")
3636 AC_DEFINE_UNQUOTED(LIBO_LIBEXEC_FOLDER,"$LIBO_LIBEXEC_FOLDER")
3637 AC_DEFINE_UNQUOTED(LIBO_LIB_FOLDER,"$LIBO_LIB_FOLDER")
3638 AC_DEFINE_UNQUOTED(LIBO_LIB_PYUNO_FOLDER,"$LIBO_LIB_PYUNO_FOLDER")
3639 AC_DEFINE_UNQUOTED(LIBO_SHARE_FOLDER,"$LIBO_SHARE_FOLDER")
3640 AC_DEFINE_UNQUOTED(LIBO_SHARE_HELP_FOLDER,"$LIBO_SHARE_HELP_FOLDER")
3641 AC_DEFINE_UNQUOTED(LIBO_SHARE_JAVA_FOLDER,"$LIBO_SHARE_JAVA_FOLDER")
3642 AC_DEFINE_UNQUOTED(LIBO_SHARE_PRESETS_FOLDER,"$LIBO_SHARE_PRESETS_FOLDER")
3643 AC_DEFINE_UNQUOTED(LIBO_SHARE_RESOURCE_FOLDER,"$LIBO_SHARE_RESOURCE_FOLDER")
3644 AC_DEFINE_UNQUOTED(LIBO_SHARE_SHELL_FOLDER,"$LIBO_SHARE_SHELL_FOLDER")
3645 AC_DEFINE_UNQUOTED(LIBO_URE_BIN_FOLDER,"$LIBO_URE_BIN_FOLDER")
3646 AC_DEFINE_UNQUOTED(LIBO_URE_ETC_FOLDER,"$LIBO_URE_ETC_FOLDER")
3647 AC_DEFINE_UNQUOTED(LIBO_URE_LIB_FOLDER,"$LIBO_URE_LIB_FOLDER")
3648 AC_DEFINE_UNQUOTED(LIBO_URE_MISC_FOLDER,"$LIBO_URE_MISC_FOLDER")
3649 AC_DEFINE_UNQUOTED(LIBO_URE_SHARE_JAVA_FOLDER,"$LIBO_URE_SHARE_JAVA_FOLDER")
3651 # Not all of them needed in config_host.mk, add more if need arises
3652 AC_SUBST(LIBO_BIN_FOLDER)
3653 AC_SUBST(LIBO_ETC_FOLDER)
3654 AC_SUBST(LIBO_LIB_FOLDER)
3655 AC_SUBST(LIBO_LIB_PYUNO_FOLDER)
3656 AC_SUBST(LIBO_SHARE_FOLDER)
3657 AC_SUBST(LIBO_SHARE_HELP_FOLDER)
3658 AC_SUBST(LIBO_SHARE_JAVA_FOLDER)
3659 AC_SUBST(LIBO_SHARE_PRESETS_FOLDER)
3660 AC_SUBST(LIBO_SHARE_READMES_FOLDER)
3661 AC_SUBST(LIBO_SHARE_RESOURCE_FOLDER)
3662 AC_SUBST(LIBO_URE_BIN_FOLDER)
3663 AC_SUBST(LIBO_URE_ETC_FOLDER)
3664 AC_SUBST(LIBO_URE_LIB_FOLDER)
3665 AC_SUBST(LIBO_URE_MISC_FOLDER)
3666 AC_SUBST(LIBO_URE_SHARE_JAVA_FOLDER)
3668 dnl ===================================================================
3669 dnl Windows specific tests and stuff
3670 dnl ===================================================================
3674 # Return value: $regvalue
3677 if test "$build_os" = "wsl"; then
3678 regvalue=$($BUILDDIR/solenv/wsl/wsl-lo-helper.exe --read-registry $1 "$2" 2>/dev/null)
3682 local _regentry="/proc/registry${1}/${2}"
3683 if test -f "$_regentry"; then
3684 # Stop bash complaining about \0 bytes in input, as it can't handle them.
3685 # Registry keys read via /proc/registry* are always \0 terminated!
3686 local _regvalue=$(tr -d '\0' < "$_regentry")
3687 if test $? -eq 0; then
3693 # Get a value from the 32-bit side of the Registry
3696 reg_get_value "32" "$1"
3699 # Get a value from the 64-bit side of the Registry
3702 reg_get_value "64" "$1"
3710 if test "$GNUMAKE_WIN_NATIVE" = "TRUE" ; then
3719 PLATFORMID=windows_x86_64
3721 SCPDEFS="$SCPDEFS -DWINDOWS_X64"
3723 WIN_MULTI_ARCH="x86"
3729 PLATFORMID=windows_x86
3732 WIN_OTHER_ARCH="x64"
3737 PLATFORMID=windows_aarch64
3739 SCPDEFS="$SCPDEFS -DWINDOWS_AARCH64"
3740 WIN_HOST_ARCH="arm64"
3745 AC_MSG_ERROR([Unsupported host_cpu $host_cpu for host_os $host_os])
3749 case "$build_cpu" in
3750 x86_64) WIN_BUILD_ARCH="x64" ;;
3751 i*86) WIN_BUILD_ARCH="x86" ;;
3752 aarch64) WIN_BUILD_ARCH="arm64" ;;
3754 AC_MSG_ERROR([Unsupported build_cpu $build_cpu for host_os $host_os])
3758 SCPDEFS="$SCPDEFS -D_MSC_VER"
3762 # multi-arch is an arch, which can execute on the host (x86 on x64), while
3763 # other-arch won't, but wouldn't break the build (x64 on x86).
3764 if test -n "$WIN_MULTI_ARCH" -a -n "$WIN_OTHER_ARCH"; then
3765 AC_MSG_ERROR([Broken configure.ac file: can't have set \$WIN_MULTI_ARCH and $WIN_OTHER_ARCH])
3769 if test "$_os" = "iOS" -o "$build_cpu" != "$host_cpu"; then
3770 # To allow building Windows multi-arch releases without cross-tooling
3771 if test -z "$WIN_MULTI_ARCH" -a -z "$WIN_OTHER_ARCH"; then
3772 cross_compiling="yes"
3776 ENABLE_WASM_STRIP=''
3777 if test "$cross_compiling" = "yes"; then
3778 export CROSS_COMPILING=TRUE
3779 if test "$enable_dynamic_loading" != yes -a "$enable_wasm_strip" = yes; then
3780 ENABLE_WASM_STRIP=TRUE
3784 BUILD_TYPE="$BUILD_TYPE NATIVE"
3786 AC_SUBST(CROSS_COMPILING)
3787 AC_SUBST(ENABLE_WASM_STRIP)
3789 # Use -isystem (gcc) if possible, to avoid warnings in 3rd party headers.
3790 # NOTE: must _not_ be used for bundled external libraries!
3792 if test "$GCC" = "yes"; then
3793 AC_MSG_CHECKING( for -isystem )
3795 CFLAGS="$CFLAGS -Werror"
3796 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[ return 0; ]])],[ ISYSTEM="-isystem " ],[])
3798 if test -n "$ISYSTEM"; then
3804 if test -z "$ISYSTEM"; then
3805 # fall back to using -I
3810 dnl ===================================================================
3811 dnl Check which Visual Studio compiler is used
3812 dnl ===================================================================
3814 map_vs_year_to_version()
3816 # Return value: $vsversion
3824 AC_MSG_ERROR([Assertion failure - invalid argument "$1" to map_vs_year_to_version()]);;
3828 vs_versions_to_check()
3830 # Args: $1 (optional) : versions to check, in the order of preference
3831 # Return value: $vsversions
3835 if test -n "$1"; then
3836 map_vs_year_to_version "$1"
3837 vsversions=$vsversion
3839 # We accept only 2019
3844 win_get_env_from_vsvars32bat()
3846 local WRAPPERBATCHFILEPATH="`mktemp -t wrpXXXXXX.bat`"
3847 # Also seems to be located in another directory under the same name: vsvars32.bat
3848 # https://github.com/bazelbuild/bazel/blob/master/src/main/native/build_windows_jni.sh#L56-L57
3849 printf '@call "%s/../Common7/Tools/VsDevCmd.bat" /no_logo\r\n' "$(cygpath -w $VC_PRODUCT_DIR)" > $WRAPPERBATCHFILEPATH
3850 # use 'echo.%ENV%' syntax (instead of 'echo %ENV%') to avoid outputting "ECHO is off." in case when ENV is empty or a space
3851 printf '@setlocal\r\n@echo.%%%s%%\r\n@endlocal\r\n' "$1" >> $WRAPPERBATCHFILEPATH
3853 if test "$build_os" = "wsl"; then
3854 result=$(cd /mnt/c && cmd.exe /c $(wslpath -w $WRAPPERBATCHFILEPATH) | tr -d '\r')
3856 chmod +x $WRAPPERBATCHFILEPATH
3857 result=$("$WRAPPERBATCHFILEPATH" | tr -d '\r')
3859 rm -f $WRAPPERBATCHFILEPATH
3860 printf '%s' "$result"
3865 reg_get_value_32 "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/Windows/v10.0/InstallationFolder"
3866 if test -n "$regvalue"; then
3867 PathFormat "$regvalue"
3868 UCRTSDKDIR=$formatted_path_unix
3869 reg_get_value_32 "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/Windows/v10.0/ProductVersion"
3870 UCRTVERSION=$regvalue
3872 if ! test -d "${UCRTSDKDIR}Include/$UCRTVERSION/ucrt"; then
3876 if test -z "$UCRTSDKDIR"; then
3877 ide_env_dir="$VC_PRODUCT_DIR/../Common7/Tools/"
3878 ide_env_file="${ide_env_dir}VsDevCmd.bat"
3879 if test -f "$ide_env_file"; then
3880 PathFormat "$(win_get_env_from_vsvars32bat UniversalCRTSdkDir)"
3881 UCRTSDKDIR=$formatted_path
3882 UCRTVERSION=$(win_get_env_from_vsvars32bat UCRTVersion)
3883 dnl Hack needed at least by tml:
3884 if test "$UCRTVERSION" = 10.0.15063.0 \
3885 -a ! -f "${UCRTSDKDIR}Include/10.0.15063.0/um/sqlext.h" \
3886 -a -f "${UCRTSDKDIR}Include/10.0.14393.0/um/sqlext.h"
3888 UCRTVERSION=10.0.14393.0
3891 AC_MSG_ERROR([No UCRT found])
3898 # Find Visual C++ 2019
3899 # Args: $1 (optional) : The VS version year
3900 # Return values: $vctest, $vcyear, $vcnum, $vcnumwithdot, $vcbuildnumber
3902 unset vctest vcnum vcnumwithdot vcbuildnumber
3904 vs_versions_to_check "$1"
3905 if test "$build_os" = wsl; then
3906 vswhere="$PROGRAMFILESX86"
3908 vswhere="$(perl -e 'print $ENV{"ProgramFiles(x86)"}')"
3910 vswhere+="\\Microsoft Visual Studio\\Installer\\vswhere.exe"
3911 PathFormat "$vswhere"
3912 vswhere=$formatted_path_unix
3913 for ver in $vsversions; do
3914 vswhereoutput=`$vswhere -version "@<:@ $ver , $(expr $ver + 1) @:}@" -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath | head -1`
3915 # Fall back to all MS products (this includes VC++ Build Tools)
3916 if ! test -n "$vswhereoutput"; then
3917 AC_MSG_CHECKING([VC++ Build Tools and similar])
3918 vswhereoutput=`$vswhere -products \* -version "@<:@ $ver , $(expr $ver + 1) @:}@" -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath | head -1`
3920 if test -n "$vswhereoutput"; then
3921 PathFormat "$vswhereoutput"
3922 vctest=$formatted_path_unix
3927 if test -n "$vctest"; then
3928 vcnumwithdot="$ver.0"
3929 case "$vcnumwithdot" in
3935 vcbuildnumber=`ls $vctest/VC/Tools/MSVC -A1r | head -1`
3942 AC_MSG_CHECKING([$1 compiler])
3944 CL_EXE_PATH="$2/cl.exe"
3946 if test ! -f "$CL_EXE_PATH"; then
3947 if test "$1" = "multi-arch"; then
3948 AC_MSG_WARN([no compiler (cl.exe) in $2])
3951 AC_MSG_ERROR([no compiler (cl.exe) in $2])
3955 dnl ===========================================================
3956 dnl Check for the corresponding mspdb*.dll
3957 dnl ===========================================================
3959 # MSVC 15.0 has libraries from 14.0?
3962 if test ! -e "$2/mspdb${mspdbnum}.dll"; then
3963 AC_MSG_ERROR([No mspdb${mspdbnum}.dll in $2, Visual Studio installation broken?])
3966 # The compiles has to find its shared libraries
3968 TEMP_PATH=`cygpath -d "$2"`
3969 PATH="`cygpath -u "$TEMP_PATH"`:$PATH"
3971 if ! "$CL_EXE_PATH" -? </dev/null >/dev/null 2>&1; then
3972 AC_MSG_ERROR([no compiler (cl.exe) in $2])
3977 AC_MSG_RESULT([$CL_EXE_PATH])
3983 if test "$_os" = "WINNT"; then
3984 AC_MSG_CHECKING([Visual C++])
3985 find_msvc "$with_visual_studio"
3986 if test -z "$vctest"; then
3987 if test -n "$with_visual_studio"; then
3988 AC_MSG_ERROR([no Visual Studio $with_visual_studio installation found])
3990 AC_MSG_ERROR([no Visual Studio 2019 installation found])
3995 VC_PRODUCT_DIR="$vctest/VC"
3996 COMPATH="$VC_PRODUCT_DIR/Tools/MSVC/$vcbuildnumber"
3998 # $WIN_OTHER_ARCH is a hack to test the x64 compiler on x86, even if it's not multi-arch
3999 if test -n "$WIN_MULTI_ARCH" -o -n "$WIN_OTHER_ARCH"; then
4000 MSVC_MULTI_PATH="$COMPATH/bin/Host$WIN_BUILD_ARCH/${WIN_MULTI_ARCH}${WIN_OTHER_ARCH}"
4001 test_cl_exe "multi-arch" "$MSVC_MULTI_PATH"
4002 if test $? -ne 0; then
4008 if test "$WIN_BUILD_ARCH" = "$WIN_HOST_ARCH"; then
4009 MSVC_BUILD_PATH="$COMPATH/bin/Host$WIN_BUILD_ARCH/$WIN_BUILD_ARCH"
4010 test_cl_exe "build" "$MSVC_BUILD_PATH"
4013 if test "$WIN_BUILD_ARCH" != "$WIN_HOST_ARCH"; then
4014 MSVC_HOST_PATH="$COMPATH/bin/Host$WIN_BUILD_ARCH/$WIN_HOST_ARCH"
4015 test_cl_exe "host" "$MSVC_HOST_PATH"
4017 MSVC_HOST_PATH="$MSVC_BUILD_PATH"
4020 AC_MSG_CHECKING([for short pathname of VC product directory])
4021 VC_PRODUCT_DIR=`win_short_path_for_make "$VC_PRODUCT_DIR"`
4022 AC_MSG_RESULT([$VC_PRODUCT_DIR])
4027 AC_MSG_CHECKING([for UCRT location])
4029 # find_ucrt errors out if it doesn't find it
4030 AC_MSG_RESULT([$UCRTSDKDIR ($UCRTVERSION)])
4031 PathFormat "${UCRTSDKDIR}Include/$UCRTVERSION/ucrt"
4032 ucrtincpath_formatted=$formatted_path
4033 # SOLARINC is used for external modules and must be set too.
4034 # And no, it's not sufficient to set SOLARINC only, as configure
4035 # itself doesn't honour it.
4036 SOLARINC="$SOLARINC -I$ucrtincpath_formatted"
4037 CFLAGS="$CFLAGS -I$ucrtincpath_formatted"
4038 CXXFLAGS="$CXXFLAGS -I$ucrtincpath_formatted"
4039 CPPFLAGS="$CPPFLAGS -I$ucrtincpath_formatted"
4041 AC_SUBST(UCRTSDKDIR)
4042 AC_SUBST(UCRTVERSION)
4044 AC_MSG_CHECKING([for MSBuild.exe location for: $vcnumwithdot])
4045 # Find the proper version of MSBuild.exe to use based on the VS version
4046 reg_get_value_32 HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSBuild/$vcnumwithdot/MSBuildOverrideTasksPath
4047 if test -n "$regvalue" ; then
4048 AC_MSG_RESULT([found: $regvalue])
4049 MSBUILD_PATH=`win_short_path_for_make "$regvalue"`
4051 if test "$vcnumwithdot" = "16.0"; then
4052 if test "$WIN_BUILD_ARCH" != "x64"; then
4053 regvalue="$VC_PRODUCT_DIR/../MSBuild/Current/Bin"
4055 regvalue="$VC_PRODUCT_DIR/../MSBuild/Current/Bin/amd64"
4058 if test "$WIN_BUILD_ARCH" != "x64"; then
4059 regvalue="$VC_PRODUCT_DIR/../MSBuild/$vcnumwithdot/Bin"
4061 regvalue="$VC_PRODUCT_DIR/../MSBuild/$vcnumwithdot/Bin/amd64"
4064 MSBUILD_PATH=`win_short_path_for_make "$regvalue"`
4065 AC_MSG_RESULT([$regvalue])
4068 # Find the version of devenv.exe
4069 # MSVC 2017 devenv does not start properly from a DOS 8.3 path
4070 DEVENV=$(cygpath -lm "$VC_PRODUCT_DIR/../Common7/IDE/devenv.exe")
4071 DEVENV_unix=$(cygpath -u "$DEVENV")
4072 if test ! -e "$DEVENV_unix"; then
4073 AC_MSG_WARN([No devenv.exe found - this is expected for VC++ Build Tools])
4076 dnl Save the true MSVC cl.exe for use when CC/CXX is actually clang-cl,
4077 dnl needed when building CLR code:
4078 if test -z "$MSVC_CXX"; then
4079 # This gives us a posix path with 8.3 filename restrictions
4080 MSVC_CXX=`win_short_path_for_make "$MSVC_HOST_PATH/cl.exe"`
4083 if test -z "$CC"; then
4085 CC_BASE=`first_arg_basename "$CC"`
4087 if test -z "$CXX"; then
4089 CXX_BASE=`first_arg_basename "$CXX"`
4092 if test -n "$CC"; then
4093 # Remove /cl.exe from CC case insensitive
4094 AC_MSG_NOTICE([found Visual C++ $vcyear])
4096 main_include_dir=`cygpath -d -m "$COMPATH/Include"`
4097 CPPFLAGS="$CPPFLAGS -I$main_include_dir"
4099 PathFormat "$COMPATH"
4100 COMPATH=`win_short_path_for_make "$formatted_path"`
4104 # The WINDOWS_SDK_ACCEPTABLE_VERSIONS is mostly an educated guess... Assuming newer ones
4105 # are always "better", we list them in reverse chronological order.
4109 WINDOWS_SDK_ACCEPTABLE_VERSIONS="10.0 8.1A 8.1 8.0"
4113 # The expectation is that --with-windows-sdk should not need to be used
4114 if test -n "$with_windows_sdk"; then
4115 case " $WINDOWS_SDK_ACCEPTABLE_VERSIONS " in
4116 *" "$with_windows_sdk" "*)
4117 WINDOWS_SDK_ACCEPTABLE_VERSIONS=$with_windows_sdk
4120 AC_MSG_ERROR([Windows SDK $with_windows_sdk is not known to work with VS $vcyear])
4125 # Make AC_COMPILE_IFELSE etc. work (set by AC_PROG_C, which we don't use for MSVC)
4130 AC_MSG_ERROR([Visual C++ not found after all, huh])
4133 AC_MSG_CHECKING([$CC_BASE is at least Visual Studio 2019 version 16.5])
4134 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
4135 // See <https://docs.microsoft.com/en-us/cpp/preprocessor/predefined-macros> for mapping
4136 // between Visual Studio versions and _MSC_VER:
4140 ]])],[AC_MSG_RESULT([yes])],[AC_MSG_ERROR([no])])
4142 # Check for 64-bit (cross-)compiler to use to build the 64-bit
4143 # version of the Explorer extension (and maybe other small
4144 # bits, too) needed when installing a 32-bit LibreOffice on a
4145 # 64-bit OS. The 64-bit Explorer extension is a feature that
4146 # has been present since long in OOo. Don't confuse it with
4147 # building LibreOffice itself as 64-bit code.
4152 if test "$WIN_HOST_ARCH" = "x86" -a -n "$WIN_OTHER_ARCH"; then
4153 AC_MSG_CHECKING([for the libraries to build the 64-bit Explorer extensions])
4154 if test -f "$COMPATH/atlmfc/lib/x64/atls.lib" -o \
4155 -f "$COMPATH/atlmfc/lib/spectre/x64/atls.lib"
4158 CXX_X64_BINARY=`win_short_path_for_make "$MSVC_MULTI_PATH/cl.exe"`
4159 AC_MSG_RESULT([found])
4161 AC_MSG_RESULT([not found])
4162 AC_MSG_WARN([Installation set will not contain 64-bit Explorer extensions])
4164 elif test "$WIN_HOST_ARCH" = "x64"; then
4169 # These are passed to the environment and then used in gbuild/platform/com_MSC_class.mk
4170 AC_SUBST(CXX_X64_BINARY)
4172 # Check for 32-bit compiler to use to build the 32-bit TWAIN shim
4173 # needed to support TWAIN scan on both 32- and 64-bit systems
4175 case "$WIN_HOST_ARCH" in
4177 AC_MSG_CHECKING([for a x86 compiler and libraries for 32-bit binaries required for TWAIN support])
4178 if test -n "$CXX_X86_BINARY"; then
4180 AC_MSG_RESULT([preset])
4181 elif test -n "$WIN_MULTI_ARCH"; then
4183 CXX_X86_BINARY=`win_short_path_for_make "$MSVC_MULTI_PATH/cl.exe"`
4184 CXX_X86_BINARY+=" /arch:SSE"
4185 AC_MSG_RESULT([found])
4187 AC_MSG_RESULT([not found])
4188 AC_MSG_WARN([Installation set will not contain 32-bit binaries required for TWAIN support])
4193 CXX_X86_BINARY=$MSVC_CXX
4197 AC_SUBST(CXX_X86_BINARY)
4204 AC_MSG_CHECKING([whether the compiler is actually Clang])
4205 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
4211 [AC_MSG_RESULT([yes])
4213 [AC_MSG_RESULT([no])])
4214 AC_SUBST(COM_IS_CLANG)
4218 if test "$COM_IS_CLANG" = TRUE; then
4219 AC_MSG_CHECKING([whether Clang is new enough])
4220 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
4221 #if !defined __apple_build_version__
4225 [my_apple_clang=yes],[my_apple_clang=])
4226 if test "$my_apple_clang" = yes; then
4227 AC_MSG_RESULT([assumed yes (Apple Clang)])
4228 elif test "$_os" = Emscripten; then
4229 AC_MSG_RESULT([assumed yes (Emscripten Clang)])
4231 if test "$_os" = WINNT; then
4232 dnl In which case, assume clang-cl:
4234 dnl Filter out -FIIntrin.h, which needs to be explicitly stated for
4242 CC_PLAIN="$CC_PLAIN $i"
4249 clang_version=`echo __clang_major__.__clang_minor__.__clang_patchlevel__ | $CC_PLAIN $my_args - | sed 's/ //g'`
4250 CLANG_FULL_VERSION=`echo __clang_version__ | $CC_PLAIN $my_args -`
4251 CLANGVER=`echo $clang_version \
4252 | $AWK -F. '{ print \$1*10000+(\$2<100?\$2:99)*100+(\$3<100?\$3:99) }'`
4253 if test "$CLANGVER" -ge 50002; then
4254 AC_MSG_RESULT([yes ($clang_version)])
4256 AC_MSG_ERROR(["$CLANG_FULL_VERSION" is too old or unrecognized, must be at least Clang 5.0.2])
4258 AC_DEFINE_UNQUOTED(CLANG_VERSION,$CLANGVER)
4259 AC_DEFINE_UNQUOTED(CLANG_FULL_VERSION,$CLANG_FULL_VERSION)
4263 SHOWINCLUDES_PREFIX=
4264 if test "$_os" = WINNT; then
4265 dnl We need to guess the prefix of the -showIncludes output, it can be
4267 AC_MSG_CHECKING([the dependency generation prefix (cl.exe -showIncludes)])
4268 echo "#include <stdlib.h>" > conftest.c
4269 SHOWINCLUDES_PREFIX=`$CC_PLAIN $CFLAGS -c -showIncludes conftest.c 2>/dev/null | \
4270 grep 'stdlib\.h' | head -n1 | sed 's/ [[[:alpha:]]]:.*//'`
4271 rm -f conftest.c conftest.obj
4272 if test -z "$SHOWINCLUDES_PREFIX"; then
4273 AC_MSG_ERROR([cannot determine the -showIncludes prefix])
4275 AC_MSG_RESULT(["$SHOWINCLUDES_PREFIX"])
4278 AC_SUBST(SHOWINCLUDES_PREFIX)
4281 # prefix C with ccache if needed
4284 if test "$CCACHE" != ""; then
4285 AC_MSG_CHECKING([whether $CC_BASE is already ccached])
4289 CFLAGS="$CFLAGS --ccache-skip -O2"
4290 dnl an empty program will do, we're checking the compiler flags
4291 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],
4292 [use_ccache=yes], [use_ccache=no])
4294 if test $use_ccache = yes -a "${CCACHE/*sccache*/}" != ""; then
4295 AC_MSG_RESULT([yes])
4298 CC_BASE="ccache $CC_BASE"
4304 # ===================================================================
4305 # check various GCC options that Clang does not support now but maybe
4306 # will somewhen in the future, check them even for GCC, so that the
4308 # ===================================================================
4311 if test "$GCC" = "yes" -a "$_os" != "Emscripten"; then
4312 AC_MSG_CHECKING([whether $CC_BASE supports -ggdb2])
4314 CFLAGS="$CFLAGS -Werror -ggdb2"
4315 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[ return 0; ]])],[ HAVE_GCC_GGDB2=TRUE ],[])
4317 if test "$HAVE_GCC_GGDB2" = "TRUE"; then
4318 AC_MSG_RESULT([yes])
4323 if test "$host_cpu" = "m68k"; then
4324 AC_MSG_CHECKING([whether $CC_BASE supports -mlong-jump-table-offsets])
4326 CFLAGS="$CFLAGS -Werror -mlong-jump-table-offsets"
4327 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[ return 0; ]])],[ HAVE_GCC_LONG_JUMP_TABLE_OFFSETS=TRUE ],[])
4329 if test "$HAVE_GCC_LONG_JUMP_TABLE_OFFSETS" = "TRUE"; then
4330 AC_MSG_RESULT([yes])
4336 AC_SUBST(HAVE_GCC_GGDB2)
4338 dnl ===================================================================
4339 dnl Test the gcc version
4340 dnl ===================================================================
4341 if test "$GCC" = "yes" -a -z "$COM_IS_CLANG"; then
4342 AC_MSG_CHECKING([the GCC version])
4343 _gcc_version=`$CC -dumpversion`
4344 gcc_full_version=$(printf '%s' "$_gcc_version" | \
4345 $AWK -F. '{ print $1*10000+$2*100+(NF<3?1:$3) }')
4346 GCC_VERSION=`echo $_gcc_version | $AWK -F. '{ print \$1*100+\$2 }'`
4348 AC_MSG_RESULT([gcc $_gcc_version ($gcc_full_version)])
4350 if test "$gcc_full_version" -lt 70000; then
4351 AC_MSG_ERROR([GCC $_gcc_version is too old, must be at least GCC 7.0.0])
4354 # Explicitly force GCC_VERSION to be empty, even for Clang, to check incorrect uses.
4355 # GCC version should generally be checked only when handling GCC-specific bugs, for testing
4356 # things like features configure checks should be used, otherwise they may e.g. fail with Clang
4357 # (which reports itself as GCC 4.2.1).
4360 AC_SUBST(GCC_VERSION)
4362 dnl Set the ENABLE_DBGUTIL variable
4363 dnl ===================================================================
4364 AC_MSG_CHECKING([whether to build with additional debug utilities])
4365 if test -n "$enable_dbgutil" -a "$enable_dbgutil" != "no"; then
4366 ENABLE_DBGUTIL="TRUE"
4367 # this is an extra var so it can have different default on different MSVC
4368 # versions (in case there are version specific problems with it)
4369 MSVC_USE_DEBUG_RUNTIME="TRUE"
4371 AC_MSG_RESULT([yes])
4372 # cppunit and graphite expose STL in public headers
4373 if test "$with_system_cppunit" = "yes"; then
4374 AC_MSG_ERROR([--with-system-cppunit conflicts with --enable-dbgutil])
4376 with_system_cppunit=no
4378 if test "$with_system_graphite" = "yes"; then
4379 AC_MSG_ERROR([--with-system-graphite conflicts with --enable-dbgutil])
4381 with_system_graphite=no
4383 if test "$with_system_orcus" = "yes"; then
4384 AC_MSG_ERROR([--with-system-orcus conflicts with --enable-dbgutil])
4386 with_system_orcus=no
4388 if test "$with_system_libcmis" = "yes"; then
4389 AC_MSG_ERROR([--with-system-libcmis conflicts with --enable-dbgutil])
4391 with_system_libcmis=no
4393 if test "$with_system_hunspell" = "yes"; then
4394 AC_MSG_ERROR([--with-system-hunspell conflicts with --enable-dbgutil])
4396 with_system_hunspell=no
4398 if test "$with_system_gpgmepp" = "yes"; then
4399 AC_MSG_ERROR([--with-system-gpgmepp conflicts with --enable-dbgutil])
4401 with_system_gpgmepp=no
4403 # As mixing system libwps and non-system libnumbertext or vice versa likely causes trouble (see
4404 # 603074c5f2b84de8a24593faf807da784b040625 "Pass _GLIBCXX_DEBUG into external/libwps" and the
4405 # mail thread starting at <https://gcc.gnu.org/ml/gcc/2018-05/msg00057.html> "libstdc++: ODR
4406 # violation when using std::regex with and without -D_GLIBCXX_DEBUG"), simply make sure neither
4407 # of those two is using the system variant:
4408 if test "$with_system_libnumbertext" = "yes"; then
4409 AC_MSG_ERROR([--with-system-libnumbertext conflicts with --enable-dbgutil])
4411 with_system_libnumbertext=no
4413 if test "$with_system_libwps" = "yes"; then
4414 AC_MSG_ERROR([--with-system-libwps conflicts with --enable-dbgutil])
4416 with_system_libwps=no
4420 MSVC_USE_DEBUG_RUNTIME=""
4423 AC_SUBST(ENABLE_DBGUTIL)
4424 AC_SUBST(MSVC_USE_DEBUG_RUNTIME)
4426 dnl Set the ENABLE_DEBUG variable.
4427 dnl ===================================================================
4428 if test -n "$enable_debug" && test "$enable_debug" != "yes" && test "$enable_debug" != "no"; then
4429 AC_MSG_ERROR([--enable-debug now accepts only yes or no, use --enable-symbols])
4431 if test -n "$ENABLE_DBGUTIL" -a "$enable_debug" = "no"; then
4432 if test -z "$libo_fuzzed_enable_debug"; then
4433 AC_MSG_ERROR([--disable-debug cannot be used with --enable-dbgutil])
4435 AC_MSG_NOTICE([Resetting --enable-debug=yes])
4440 AC_MSG_CHECKING([whether to do a debug build])
4441 if test -n "$ENABLE_DBGUTIL" -o \( -n "$enable_debug" -a "$enable_debug" != "no" \) ; then
4443 if test -n "$ENABLE_DBGUTIL" ; then
4444 AC_MSG_RESULT([yes (dbgutil)])
4446 AC_MSG_RESULT([yes])
4452 AC_SUBST(ENABLE_DEBUG)
4454 dnl ===================================================================
4455 dnl Select the linker to use (gold/lld/ld.bfd).
4456 dnl This is done only after compiler checks (need to know if Clang is
4457 dnl used, for different defaults) and after checking if a debug build
4458 dnl is wanted (non-debug builds get the default linker if not explicitly
4459 dnl specified otherwise).
4460 dnl All checks for linker features/options should come after this.
4461 dnl ===================================================================
4464 use_ld=-fuse-ld=${1%%:*}
4466 if test "$use_ld_path" != "$1"; then
4467 use_ld="$use_ld --ld-path=$use_ld_path"
4469 use_ld_fail_if_error=$2
4471 AC_MSG_CHECKING([for $use_ld linker support])
4472 use_ld_ldflags_save="$LDFLAGS"
4473 LDFLAGS="$LDFLAGS $use_ld"
4474 AC_LINK_IFELSE([AC_LANG_PROGRAM([
4477 printf ("hello world\n");
4478 ])], USE_LD=$use_ld, [])
4479 if test -n "$USE_LD"; then
4480 AC_MSG_RESULT( yes )
4483 if test -n "$use_ld_fail_if_error"; then
4489 if test -n "$use_ld_ok"; then
4490 dnl keep the value of LDFLAGS
4493 LDFLAGS="$use_ld_ldflags_save"
4497 if test "$enable_ld" != "no"; then
4498 if test "$GCC" = "yes"; then
4499 if test -n "$enable_ld"; then
4500 check_use_ld "$enable_ld" fail_if_error
4501 elif test -z "$ENABLE_DEBUG$ENABLE_DBGUTIL"; then
4502 dnl non-debug builds default to the default linker
4504 elif test -n "$COM_IS_CLANG"; then
4506 if test $? -ne 0; then
4510 # For gcc first try gold, new versions also support lld.
4512 if test $? -ne 0; then
4516 ld_output=$(echo 'int main() { return 0; }' | $CC -Wl,-v -x c -o conftest.out - $CFLAGS $LDFLAGS 2>/dev/null)
4518 ld_used=$(echo "$ld_output" | grep -E '(^GNU gold|^GNU ld|^LLD)')
4519 if test -z "$ld_used"; then
4522 AC_MSG_CHECKING([for linker that is used])
4523 AC_MSG_RESULT([$ld_used])
4524 if test -n "$ENABLE_DEBUG$ENABLE_DBGUTIL"; then
4525 if echo "$ld_used" | grep -q "^GNU ld"; then
4526 AC_MSG_WARN([The default GNU linker is slow, consider using the LLD or the GNU gold linker.])
4527 add_warning "The default GNU linker is slow, consider using the LLD or the GNU gold linker."
4531 if test "$enable_ld" = "yes"; then
4532 AC_MSG_ERROR([--enable-ld not supported])
4538 HAVE_LD_BSYMBOLIC_FUNCTIONS=
4539 if test "$GCC" = "yes" -a "$_os" != Emscripten ; then
4540 AC_MSG_CHECKING([for -Bsymbolic-functions linker support])
4541 bsymbolic_functions_ldflags_save=$LDFLAGS
4542 LDFLAGS="$LDFLAGS -Wl,-Bsymbolic-functions"
4543 AC_LINK_IFELSE([AC_LANG_PROGRAM([
4546 printf ("hello world\n");
4547 ])], HAVE_LD_BSYMBOLIC_FUNCTIONS=TRUE, [])
4548 if test "$HAVE_LD_BSYMBOLIC_FUNCTIONS" = "TRUE"; then
4549 AC_MSG_RESULT( found )
4551 AC_MSG_RESULT( not found )
4553 LDFLAGS=$bsymbolic_functions_ldflags_save
4555 AC_SUBST(HAVE_LD_BSYMBOLIC_FUNCTIONS)
4558 if test "$GCC" = "yes"; then
4559 for flag in "--gc-sections" "-dead_strip"; do
4560 AC_MSG_CHECKING([for $flag linker support])
4561 ldflags_save=$LDFLAGS
4562 LDFLAGS="$LDFLAGS -Wl,$flag"
4563 AC_LINK_IFELSE([AC_LANG_PROGRAM([
4566 printf ("hello world\n");
4568 LD_GC_SECTIONS="-Wl,$flag"
4569 AC_MSG_RESULT( found )
4571 AC_MSG_RESULT( not found )
4573 LDFLAGS=$ldflags_save
4574 if test -n "$LD_GC_SECTIONS"; then
4579 AC_SUBST(LD_GC_SECTIONS)
4582 if test "$enable_split_debug" != no; then
4583 dnl Currently by default enabled only on Linux, feel free to set test_split_debug above also for other platforms.
4584 if test "$enable_split_debug" = yes -o \( "$test_split_debug" = "yes" -a -n "$ENABLE_DEBUG$ENABLE_DBGUTIL" \); then
4585 AC_MSG_CHECKING([whether $CC_BASE supports -gsplit-dwarf])
4587 CFLAGS="$CFLAGS -Werror -gsplit-dwarf"
4588 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[ return 0; ]])],[ HAVE_GCC_SPLIT_DWARF=TRUE ],[])
4590 if test "$HAVE_GCC_SPLIT_DWARF" = "TRUE"; then
4591 AC_MSG_RESULT([yes])
4593 if test "$enable_split_debug" = yes; then
4600 if test -z "$HAVE_GCC_SPLIT_DWARF" -a "$test_split_debug" = "yes" -a -n "$ENABLE_DEBUG$ENABLE_DBGUTIL"; then
4601 AC_MSG_WARN([Compiler is not capable of creating split debug info, linking will require more time and disk space.])
4602 add_warning "Compiler is not capable of creating split debug info, linking will require more time and disk space."
4605 AC_SUBST(HAVE_GCC_SPLIT_DWARF)
4607 HAVE_CLANG_DEBUG_INFO_KIND_CONSTRUCTOR=
4608 AC_MSG_CHECKING([whether $CC_BASE supports -Xclang -debug-info-kind=constructor])
4610 CFLAGS="$CFLAGS -Werror -Xclang -debug-info-kind=constructor"
4611 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[ return 0; ]])],[ HAVE_CLANG_DEBUG_INFO_KIND_CONSTRUCTOR=TRUE ],[])
4613 if test "$HAVE_CLANG_DEBUG_INFO_KIND_CONSTRUCTOR" = "TRUE"; then
4614 AC_MSG_RESULT([yes])
4618 AC_SUBST(HAVE_CLANG_DEBUG_INFO_KIND_CONSTRUCTOR)
4621 if test "$enable_gdb_index" != "no"; then
4622 dnl Currently by default enabled only on Linux, feel free to set test_gdb_index above also for other platforms.
4623 if test "$enable_gdb_index" = yes -o \( "$test_gdb_index" = "yes" -o -n "$ENABLE_DEBUG$ENABLE_DBGUTIL" \); then
4624 AC_MSG_CHECKING([whether $CC_BASE supports -ggnu-pubnames])
4626 CFLAGS="$CFLAGS -Werror -ggnu-pubnames"
4628 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[ return 0; ]])],[have_ggnu_pubnames=TRUE],[have_ggnu_pubnames=])
4629 if test "$have_ggnu_pubnames" != "TRUE"; then
4630 if test "$enable_gdb_index" = "yes"; then
4631 AC_MSG_ERROR([no, --enable-gdb-index not supported])
4636 AC_MSG_RESULT( yes )
4637 AC_MSG_CHECKING([whether $CC_BASE supports -Wl,--gdb-index])
4638 ldflags_save=$LDFLAGS
4639 LDFLAGS="$LDFLAGS -Wl,--gdb-index"
4640 AC_LINK_IFELSE([AC_LANG_PROGRAM([
4643 printf ("hello world\n");
4644 ])], ENABLE_GDB_INDEX=TRUE, [])
4645 if test "$ENABLE_GDB_INDEX" = "TRUE"; then
4646 AC_MSG_RESULT( yes )
4648 if test "$enable_gdb_index" = "yes"; then
4654 LDFLAGS=$ldflags_save
4658 if test -z "$ENABLE_GDB_INDEX" -a "$test_gdb_index" = "yes" -a -n "$ENABLE_DEBUG$ENABLE_DBGUTIL"; then
4659 AC_MSG_WARN([Linker is not capable of creating gdb index, debugger startup will be slow.])
4660 add_warning "Linker is not capable of creating gdb index, debugger startup will be slow."
4663 AC_SUBST(ENABLE_GDB_INDEX)
4665 if test -z "$enable_sal_log" && test "$ENABLE_DEBUG" = TRUE; then
4668 if test "$enable_sal_log" = yes; then
4671 AC_SUBST(ENABLE_SAL_LOG)
4673 dnl Check for enable symbols option
4674 dnl ===================================================================
4675 AC_MSG_CHECKING([whether to generate debug information])
4676 if test -z "$enable_symbols"; then
4677 if test -n "$ENABLE_DEBUG$ENABLE_DBGUTIL"; then
4683 if test "$enable_symbols" = yes; then
4684 ENABLE_SYMBOLS_FOR=all
4685 AC_MSG_RESULT([yes])
4686 elif test "$enable_symbols" = no; then
4690 # Selective debuginfo.
4691 ENABLE_SYMBOLS_FOR="$enable_symbols"
4692 AC_MSG_RESULT([for "$enable_symbols"])
4694 AC_SUBST(ENABLE_SYMBOLS_FOR)
4696 if test -n "$with_android_ndk" -a \( -n "$ENABLE_SYMBOLS" -o -n "$ENABLE_DEBUG" -o -n "$ENABLE_DBGUTIL" \) -a "$ENABLE_DEBUGINFO_FOR" = "all"; then
4697 # Building on Android with full symbols: without enough memory the linker never finishes currently.
4698 AC_MSG_CHECKING([whether enough memory is available for linking])
4699 mem_size=$(grep -o 'MemTotal: *.\+ kB' /proc/meminfo | sed 's/MemTotal: *\(.\+\) kB/\1/')
4700 # Check for 15GB, as Linux reports a bit less than the physical memory size.
4701 if test -n "$mem_size" -a $mem_size -lt 15728640; then
4702 AC_MSG_ERROR([building with full symbols and less than 16GB of memory is not supported])
4704 AC_MSG_RESULT([yes])
4709 ENABLE_OPTIMIZED_DEBUG=
4710 AC_MSG_CHECKING([whether to compile with optimization flags])
4711 if test -z "$enable_optimized"; then
4712 if test -n "$ENABLE_DEBUG$ENABLE_DBGUTIL"; then
4715 enable_optimized=yes
4718 if test "$enable_optimized" = yes; then
4719 ENABLE_OPTIMIZED=TRUE
4720 AC_MSG_RESULT([yes])
4721 elif test "$enable_optimized" = debug; then
4722 ENABLE_OPTIMIZED_DEBUG=TRUE
4723 AC_MSG_RESULT([yes (debug)])
4725 if test "$GCC" = "yes" -a "$_os" != "Emscripten"; then
4726 AC_MSG_CHECKING([whether $CC_BASE supports -Og])
4728 CFLAGS="$CFLAGS -Werror -Og"
4729 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[ return 0; ]])],[ HAVE_GCC_OG=TRUE ],[])
4731 if test "$HAVE_GCC_OG" = "TRUE"; then
4732 AC_MSG_RESULT([yes])
4737 if test -z "$HAVE_GCC_OG" -a "$_os" != "Emscripten"; then
4738 AC_MSG_ERROR([The compiler does not support optimizations suitable for debugging.])
4743 AC_SUBST(ENABLE_OPTIMIZED)
4744 AC_SUBST(ENABLE_OPTIMIZED_DEBUG)
4747 # determine CPUNAME, OS, ...
4757 PLATFORMID=aix_powerpc
4773 if test "$enable_ios_simulator" = "yes"; then
4778 PLATFORMID=macosx_aarch64
4782 if test "$enable_ios_simulator" = "yes"; then
4787 PLATFORMID=macosx_x86_64
4790 AC_MSG_ERROR([Unsupported host_cpu $host_cpu for host_os $host_os])
4803 if test "$enable_ios_simulator" = "yes"; then
4804 AC_MSG_ERROR([iOS simulator is only available in macOS not iOS])
4808 AC_MSG_ERROR([Unsupported host_cpu $host_cpu for host_os $host_os])
4813 PLATFORMID=ios_arm64
4826 PLATFORMID=dragonfly_x86
4831 PLATFORMID=dragonfly_x86_64
4834 AC_MSG_ERROR([Unsupported host_cpu $host_cpu for host_os $host_os])
4848 PLATFORMID=freebsd_aarch64
4854 PLATFORMID=freebsd_x86
4859 PLATFORMID=freebsd_x86_64
4864 PLATFORMID=freebsd_powerpc64
4869 PLATFORMID=freebsd_powerpc
4872 AC_MSG_ERROR([Unsupported host_cpu $host_cpu for host_os $host_os])
4888 PLATFORMID=haiku_x86
4893 PLATFORMID=haiku_x86_64
4896 AC_MSG_ERROR([Unsupported host_cpu $host_cpu for host_os $host_os])
4912 PLATFORMID=kfreebsd_x86
4917 PLATFORMID=kfreebsd_x86_64
4920 AC_MSG_ERROR([Unsupported host_cpu $host_cpu for host_os $host_os])
4935 PLATFORMID=linux_aarch64
4937 EPM_FLAGS="-a arm64"
4942 PLATFORMID=linux_alpha
4948 PLATFORMID=linux_arm_eabi
4952 PLATFORMID=linux_arm_oabi
4960 PLATFORMID=linux_hppa
4965 PLATFORMID=linux_x86
4970 PLATFORMID=linux_ia64
4976 PLATFORMID=linux_mips_eb
4981 EPM_FLAGS="-a mips64"
4982 PLATFORMID=linux_mips64_eb
4987 EPM_FLAGS="-a mips64el"
4988 PLATFORMID=linux_mips64_el
4993 EPM_FLAGS="-a mipsel"
4994 PLATFORMID=linux_mips_el
4999 PLATFORMID=linux_m68k
5004 PLATFORMID=linux_powerpc
5009 PLATFORMID=linux_powerpc64
5013 RTL_ARCH=PowerPC_64_LE
5014 PLATFORMID=linux_powerpc64_le
5019 PLATFORMID=linux_sparc
5024 PLATFORMID=linux_sparc64
5029 PLATFORMID=linux_s390
5034 PLATFORMID=linux_s390x
5039 PLATFORMID=linux_x86_64
5042 AC_MSG_ERROR([Unsupported host_cpu $host_cpu for host_os $host_os])
5058 PLATFORMID=android_arm_eabi
5063 PLATFORMID=android_aarch64
5068 PLATFORMID=android_x86
5073 PLATFORMID=android_x86_64
5076 AC_MSG_ERROR([Unsupported host_cpu $host_cpu for host_os $host_os])
5091 PLATFORMID=netbsd_x86
5096 PLATFORMID=netbsd_powerpc
5101 PLATFORMID=netbsd_sparc
5106 PLATFORMID=netbsd_x86_64
5109 AC_MSG_ERROR([Unsupported host_cpu $host_cpu for host_os $host_os])
5124 PLATFORMID=openbsd_x86
5129 PLATFORMID=openbsd_x86_64
5132 AC_MSG_ERROR([Unsupported host_cpu $host_cpu for host_os $host_os])
5135 SOLARINC="$SOLARINC -I/usr/local/include"
5148 PLATFORMID=solaris_x86
5153 PLATFORMID=solaris_sparc
5158 PLATFORMID=solaris_sparc64
5161 AC_MSG_ERROR([Unsupported host_cpu $host_cpu for host_os $host_os])
5164 SOLARINC="$SOLARINC -I/usr/local/include"
5177 AC_MSG_ERROR([Unsupported host_cpu $host_cpu for host_os $host_os])
5182 PLATFORMID=linux_x86
5186 AC_MSG_ERROR([$host_os operating system is not suitable to build LibreOffice for!])
5190 if test "$with_x" = "no"; then
5191 AC_MSG_ERROR([Use --disable-gui instead. How can we get rid of this option? No idea where it comes from.])
5195 if test "$enable_gui" = "no"; then
5196 if test "$using_x11" != yes; then
5197 AC_MSG_ERROR([$host_os operating system is not suitable to build LibreOffice with --disable-gui.])
5202 AC_DEFINE(HAVE_FEATURE_UI)
5204 AC_SUBST(DISABLE_GUI)
5206 if test "$using_x11" = yes; then
5207 if test "$USING_X11" = TRUE; then
5208 AC_DEFINE(USING_X11)
5213 if test "$USING_X11" = TRUE; then
5214 AC_MSG_ERROR([Platform doesn't support X11 (\$using_x11), but \$USING_X11 is set!])
5218 WORKDIR="${BUILDDIR}/workdir"
5219 INSTDIR="${BUILDDIR}/instdir"
5220 INSTROOTBASE=${INSTDIR}${INSTROOTBASESUFFIX}
5221 INSTROOT=${INSTROOTBASE}${INSTROOTCONTENTSUFFIX}
5222 SOLARINC="-I$SRC_ROOT/include $SOLARINC"
5230 AC_SUBST([INSTROOT])
5231 AC_SUBST([INSTROOTBASE])
5235 AC_SUBST(PLATFORMID)
5236 AC_SUBST(WINDOWS_X64)
5237 AC_DEFINE_UNQUOTED(WORKDIR,"$WORKDIR")
5239 if test "$OS" = WNT -a "$COM" = MSC; then
5241 INTEL) CPPU_ENV=msci ;;
5242 X86_64) CPPU_ENV=mscx ;;
5243 AARCH64) CPPU_ENV=msca ;;
5245 AC_MSG_ERROR([Unknown \$CPUNAME '$CPUNAME' for $OS / $COM"])
5253 dnl ===================================================================
5254 dnl Test which package format to use
5255 dnl ===================================================================
5256 AC_MSG_CHECKING([which package format to use])
5257 if test -n "$with_package_format" -a "$with_package_format" != no; then
5258 for i in $with_package_format; do
5260 aix | bsd | deb | pkg | rpm | archive | dmg | installed | msi)
5263 AC_MSG_ERROR([unsupported format $i. Supported by EPM are:
5264 aix - AIX software distribution
5265 bsd - FreeBSD, NetBSD, or OpenBSD software distribution
5266 deb - Debian software distribution
5267 pkg - Solaris software distribution
5268 rpm - RedHat software distribution
5270 LibreOffice additionally supports:
5271 archive - .tar.gz or .zip
5273 installed - installation tree
5279 # fakeroot is needed to ensure correct file ownerships/permissions
5280 # inside deb packages and tar archives created on Linux and Solaris.
5281 if test "$OS" = "LINUX" || test "$OS" = "SOLARIS"; then
5282 AC_PATH_PROG(FAKEROOT, fakeroot, no)
5283 if test "$FAKEROOT" = "no"; then
5285 [--with-package-format='$with_package_format' requires fakeroot. Install fakeroot.])
5288 PKGFORMAT="$with_package_format"
5289 AC_MSG_RESULT([$PKGFORMAT])
5292 AC_MSG_RESULT([none])
5296 dnl ===================================================================
5297 dnl Set up a different compiler to produce tools to run on the build
5298 dnl machine when doing cross-compilation
5299 dnl ===================================================================
5301 m4_pattern_allow([PKG_CONFIG_FOR_BUILD])
5302 m4_pattern_allow([PKG_CONFIG_LIBDIR])
5303 if test "$cross_compiling" = "yes"; then
5304 AC_MSG_CHECKING([for BUILD platform configuration])
5306 rm -rf CONF-FOR-BUILD config_build.mk
5307 mkdir CONF-FOR-BUILD
5308 # Here must be listed all files needed when running the configure script. In particular, also
5309 # those expanded by the AC_CONFIG_FILES() call near the end of this configure.ac. For clarity,
5310 # keep them in the same order as there.
5311 (cd $SRC_ROOT && tar cf - \
5313 bin/get_config_variables \
5314 solenv/bin/getcompver.awk \
5315 solenv/inc/langlist.mk \
5318 config_host_lang.mk.in \
5320 bin/bffvalidator.sh.in \
5321 bin/odfvalidator.sh.in \
5322 bin/officeotron.sh.in \
5323 hardened_runtime.xcent.in \
5324 instsetoo_native/util/openoffice.lst.in \
5326 sysui/desktop/macosx/Info.plist.in \
5327 .vscode/vs-code-template.code-workspace.in \
5329 | (cd CONF-FOR-BUILD && tar xf -)
5330 cp configure CONF-FOR-BUILD
5331 test -d config_build && cp -p config_build/*.h CONF-FOR-BUILD/config_host 2>/dev/null
5333 unset COM USING_X11 OS CPUNAME
5334 unset CC CXX SYSBASE CFLAGS
5335 unset AR LD NM OBJDUMP PKG_CONFIG RANLIB READELF STRIP
5336 unset CPPUNIT_CFLAGS CPPUNIT_LIBS
5337 unset LIBXML_CFLAGS LIBXML_LIBS LIBXSLT_CFLAGS LIBXSLT_LIBS XSLTPROC
5338 unset PKG_CONFIG_LIBDIR PKG_CONFIG_PATH
5339 if test -n "$CC_FOR_BUILD"; then
5340 export CC="$CC_FOR_BUILD"
5341 CC_BASE=`first_arg_basename "$CC"`
5343 if test -n "$CXX_FOR_BUILD"; then
5344 export CXX="$CXX_FOR_BUILD"
5345 CXX_BASE=`first_arg_basename "$CXX"`
5347 test -n "$PKG_CONFIG_FOR_BUILD" && export PKG_CONFIG="$PKG_CONFIG_FOR_BUILD"
5350 # Handle host configuration, which affects the cross-toolset too
5352 test -n "$enable_ccache" && sub_conf_opts="$sub_conf_opts --enable-ccache=$enable_ccache"
5353 test -n "$with_ant_home" && sub_conf_opts="$sub_conf_opts --with-ant-home=$with_ant_home"
5354 test "$with_junit" = "no" && sub_conf_opts="$sub_conf_opts --without-junit"
5355 if test -n "$ENABLE_JAVA"; then
5357 iOS) sub_conf_opts="$sub_conf_opts --without-java" ;; # force it off, like it used to be
5359 # Hack for Android - the build doesn't need a host JDK, so just forward to build for convenience
5360 test -n "$with_jdk_home" && sub_conf_opts="$sub_conf_opts --with-jdk-home=$with_jdk_home"
5363 if test -z "$with_jdk_home"; then
5364 AC_MSG_ERROR([Missing host JDK! This can't be detected for the build OS, so you have to specify it with --with-jdk-home.])
5369 sub_conf_opts="$sub_conf_opts --without-java"
5371 test -n "$TARFILE_LOCATION" && sub_conf_opts="$sub_conf_opts --with-external-tar=$TARFILE_LOCATION"
5372 test "$with_system_icu_for_build" = "yes" -o "$with_system_icu_for_build" = "force" && sub_conf_opts="$sub_conf_opts --with-system-icu"
5373 test "$with_galleries" = "no" -o -z "$WITH_GALLERY_BUILD" && sub_conf_opts="$sub_conf_opts --with-galleries=no --disable-database-connectivity"
5374 test "$enable_wasm_strip" = "yes" && sub_conf_opts="$sub_conf_opts --enable-wasm-strip"
5375 sub_conf_opts="$sub_conf_opts $with_build_platform_configure_options"
5377 # Don't bother having configure look for stuff not needed for the build platform anyway
5379 --build="$build_alias" \
5380 --disable-cairo-canvas \
5382 --disable-firebird-sdbc \
5384 --disable-gstreamer-1-0 \
5387 --disable-mariadb-sdbc \
5389 --disable-online-update \
5391 --disable-pdfimport \
5392 --disable-postgresql-sdbc \
5394 --enable-icecream="$enable_icecream" \
5397 --with-parallelism="$with_parallelism" \
5398 --with-theme="$with_theme" \
5399 --with-tls=openssl \
5402 2>&1 | sed -e 's/^/ /'
5403 if test [${PIPESTATUS[0]}] -ne 0; then
5404 AC_MSG_ERROR([Running the configure script for BUILD side failed, see CONF-FOR-BUILD/config.log])
5407 # filter permitted build targets
5408 PERMITTED_BUILD_TARGETS="
5439 # converts BUILD_TYPE and PERMITTED_BUILD_TARGETS into non-whitespace,
5440 # newlined lists, to use grep as a filter
5441 PERMITTED_BUILD_TARGETS=$(echo "$PERMITTED_BUILD_TARGETS" | sed -e '/^ *$/d' -e 's/ *//')
5442 BUILD_TARGETS="$(sed -n -e '/^export BUILD_TYPE=/ s/.*=//p' config_host.mk | tr ' ' '\n')"
5443 BUILD_TARGETS="$(echo "$BUILD_TARGETS" | grep -F "$PERMITTED_BUILD_TARGETS" | tr '\n' ' ')"
5444 sed -i -e "s/ BUILD_TYPE=.*$/ BUILD_TYPE=$BUILD_TARGETS/" config_host.mk
5446 cp config_host.mk ../config_build.mk
5447 cp config_host_lang.mk ../config_build_lang.mk
5448 mv config.log ../config.Build.log
5449 mkdir -p ../config_build
5450 mv config_host/*.h ../config_build
5451 test -f "$WARNINGS_FILE" && mv "$WARNINGS_FILE" "../$WARNINGS_FILE_FOR_BUILD"
5453 # all these will get a _FOR_BUILD postfix
5454 DIRECT_FOR_BUILD_SETTINGS="
5465 LIBO_URE_MISC_FOLDER
5471 # these overwrite host config with build config
5472 OVERWRITING_SETTINGS="
5477 JAVA_CLASSPATH_NOT_SET
5485 # these need some special handling
5486 EXTRA_HANDLED_SETTINGS="
5493 . ./bin/get_config_variables $DIRECT_FOR_BUILD_SETTINGS $OVERWRITING_SETTINGS $EXTRA_HANDLED_SETTINGS
5497 line=`echo "LO_PATH_FOR_BUILD='${BUILD_PATH}'" | sed -e 's,/CONF-FOR-BUILD,,g'`
5498 echo "$line" >>build-config
5500 for V in $DIRECT_FOR_BUILD_SETTINGS; do
5502 VV=`eval "echo $VV"`
5503 if test -n "$VV"; then
5504 line=${V}_FOR_BUILD='${'${V}_FOR_BUILD:-$VV'}'
5505 echo "$line" >>build-config
5509 for V in $OVERWRITING_SETTINGS; do
5511 VV=`eval "echo $VV"`
5512 if test -n "$VV"; then
5513 line=${V}='${'${V}:-$VV'}'
5514 echo "$line" >>build-config
5518 for V in INSTDIR INSTROOT WORKDIR; do
5520 VV=`eval "echo $VV"`
5521 VV=`echo $VV | sed -e "s,/CONF-FOR-BUILD/\([[a-z]]*\),/\1_for_build,g"`
5522 if test -n "$VV"; then
5523 line="${V}_FOR_BUILD='$VV'"
5524 echo "$line" >>build-config
5529 test -f CONF-FOR-BUILD/build-config || AC_MSG_ERROR([setup/configure for BUILD side failed, see CONF-FOR-BUILD/config.log])
5530 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])
5531 perl -pi -e 's,/(workdir|instdir)(/|$),/\1_for_build\2,g;' \
5532 -e 's,/CONF-FOR-BUILD,,g;' config_build.mk
5534 eval `cat CONF-FOR-BUILD/build-config`
5536 AC_MSG_RESULT([checking for BUILD platform configuration... done])
5538 rm -rf CONF-FOR-BUILD
5542 CPPU_ENV_FOR_BUILD="$CPPU_ENV"
5543 CXX_FOR_BUILD="$CXX"
5544 INSTDIR_FOR_BUILD="$INSTDIR"
5545 INSTROOT_FOR_BUILD="$INSTROOT"
5546 LIBO_BIN_FOLDER_FOR_BUILD="$LIBO_BIN_FOLDER"
5547 LIBO_LIB_FOLDER_FOR_BUILD="$LIBO_LIB_FOLDER"
5548 LIBO_URE_LIB_FOLDER_FOR_BUILD="$LIBO_URE_LIB_FOLDER"
5549 LIBO_URE_MISC_FOLDER_FOR_BUILD="$LIBO_URE_MISC_FOLDER"
5550 SDKDIRNAME_FOR_BUILD="$SDKDIRNAME"
5551 WORKDIR_FOR_BUILD="$WORKDIR"
5553 AC_SUBST(OS_FOR_BUILD)
5554 AC_SUBST(INSTDIR_FOR_BUILD)
5555 AC_SUBST(INSTROOT_FOR_BUILD)
5556 AC_SUBST(LIBO_BIN_FOLDER_FOR_BUILD)
5557 AC_SUBST(LIBO_LIB_FOLDER_FOR_BUILD)
5558 AC_SUBST(LIBO_URE_LIB_FOLDER_FOR_BUILD)
5559 AC_SUBST(LIBO_URE_MISC_FOLDER_FOR_BUILD)
5560 AC_SUBST(SDKDIRNAME_FOR_BUILD)
5561 AC_SUBST(WORKDIR_FOR_BUILD)
5562 AC_SUBST(CC_FOR_BUILD)
5563 AC_SUBST(CXX_FOR_BUILD)
5564 AC_SUBST(CPPU_ENV_FOR_BUILD)
5566 dnl ===================================================================
5567 dnl Check for syslog header
5568 dnl ===================================================================
5569 AC_CHECK_HEADER(syslog.h, AC_DEFINE(HAVE_SYSLOG_H))
5571 dnl Set the ENABLE_WERROR variable. (Activate --enable-werror)
5572 dnl ===================================================================
5573 AC_MSG_CHECKING([whether to turn warnings to errors])
5574 if test -n "$enable_werror" -a "$enable_werror" != "no"; then
5575 ENABLE_WERROR="TRUE"
5576 PYTHONWARNINGS="error"
5577 AC_MSG_RESULT([yes])
5579 if test -n "$LODE_HOME" -a -z "$enable_werror"; then
5580 ENABLE_WERROR="TRUE"
5581 PYTHONWARNINGS="error"
5582 AC_MSG_RESULT([yes])
5587 AC_SUBST(ENABLE_WERROR)
5588 AC_SUBST(PYTHONWARNINGS)
5590 dnl Check for --enable-assert-always-abort, set ASSERT_ALWAYS_ABORT
5591 dnl ===================================================================
5592 AC_MSG_CHECKING([whether to have assert() failures abort even without --enable-debug])
5593 if test -z "$enable_assert_always_abort"; then
5594 if test "$ENABLE_DEBUG" = TRUE; then
5595 enable_assert_always_abort=yes
5597 enable_assert_always_abort=no
5600 if test "$enable_assert_always_abort" = "yes"; then
5601 ASSERT_ALWAYS_ABORT="TRUE"
5602 AC_MSG_RESULT([yes])
5604 ASSERT_ALWAYS_ABORT="FALSE"
5607 AC_SUBST(ASSERT_ALWAYS_ABORT)
5609 # Determine whether to use ooenv for the instdir installation
5610 # ===================================================================
5611 if test $_os != "WINNT" -a $_os != "Darwin"; then
5612 AC_MSG_CHECKING([whether to use ooenv for the instdir installation])
5613 if test -z "$enable_ooenv"; then
5614 if test -n "$ENABLE_DEBUG$ENABLE_DBGUTIL"; then
5620 if test "$enable_ooenv" = "no"; then
5624 AC_MSG_RESULT([yes])
5627 AC_SUBST(ENABLE_OOENV)
5629 if test "$test_kf5" = "yes" -a "$enable_kf5" = "yes"; then
5630 if test "$enable_qt5" = "no"; then
5631 AC_MSG_ERROR([KF5 support depends on QT5, so it conflicts with --disable-qt5])
5637 dnl ===================================================================
5638 dnl check for cups support
5639 dnl ===================================================================
5641 AC_MSG_CHECKING([whether to enable CUPS support])
5642 if test "$test_cups" = yes -a "$enable_cups" != no; then
5644 AC_MSG_RESULT([yes])
5646 AC_MSG_CHECKING([whether cups support is present])
5647 AC_CHECK_LIB([cups], [cupsPrintFiles], [:])
5648 AC_CHECK_HEADER(cups/cups.h, AC_DEFINE(HAVE_CUPS_H))
5649 if test "$ac_cv_lib_cups_cupsPrintFiles" != "yes" -o "$ac_cv_header_cups_cups_h" != "yes"; then
5650 AC_MSG_ERROR([Could not find CUPS. Install libcups2-dev or cups-devel.])
5656 AC_SUBST(ENABLE_CUPS)
5659 if test "$using_freetype_fontconfig" = yes; then
5660 AC_MSG_CHECKING([which fontconfig to use])
5662 if test "$using_freetype_fontconfig" = yes -a "$test_system_fontconfig" != no; then
5663 AC_MSG_RESULT([external])
5664 PKG_CHECK_MODULES([FONTCONFIG], [fontconfig >= 2.4.1])
5665 SYSTEM_FONTCONFIG=TRUE
5666 FilterLibs "${FONTCONFIG_LIBS}"
5667 FONTCONFIG_LIBS="${filteredlibs}"
5668 elif test "$using_freetype_fontconfig" = yes; then
5669 AC_MSG_RESULT([internal])
5670 BUILD_TYPE="$BUILD_TYPE FONTCONFIG"
5672 AC_SUBST(FONTCONFIG_CFLAGS)
5673 AC_SUBST(FONTCONFIG_LIBS)
5674 AC_SUBST([SYSTEM_FONTCONFIG])
5676 dnl whether to find & fetch external tarballs?
5677 dnl ===================================================================
5678 if test -z "$TARFILE_LOCATION" -a -n "$LODE_HOME" ; then
5679 if test "$GNUMAKE_WIN_NATIVE" = "TRUE" ; then
5680 TARFILE_LOCATION="`cygpath -m $LODE_HOME/ext_tar`"
5682 TARFILE_LOCATION="$LODE_HOME/ext_tar"
5685 if test -z "$TARFILE_LOCATION"; then
5686 if test -d "$SRC_ROOT/src" ; then
5687 mv "$SRC_ROOT/src" "$SRC_ROOT/external/tarballs"
5688 ln -s "$SRC_ROOT/external/tarballs" "$SRC_ROOT/src"
5690 TARFILE_LOCATION="$SRC_ROOT/external/tarballs"
5692 AbsolutePath "$TARFILE_LOCATION"
5693 PathFormat "${absolute_path}"
5694 TARFILE_LOCATION="${formatted_path}"
5696 AC_SUBST(TARFILE_LOCATION)
5698 AC_MSG_CHECKING([whether we want to fetch tarballs])
5699 if test "$enable_fetch_external" != "no"; then
5700 if test "$with_all_tarballs" = "yes"; then
5701 AC_MSG_RESULT([yes, all of them])
5702 DO_FETCH_TARBALLS="ALL"
5704 AC_MSG_RESULT([yes, if we use them])
5705 DO_FETCH_TARBALLS="TRUE"
5711 AC_SUBST(DO_FETCH_TARBALLS)
5713 AC_MSG_CHECKING([whether to build help])
5714 if test -n "$with_help" -a "$with_help" != "no" -a $_os != iOS -a $_os != Android; then
5715 BUILD_TYPE="$BUILD_TYPE HELP"
5716 GIT_NEEDED_SUBMODULES="helpcontent2 $GIT_NEEDED_SUBMODULES"
5717 case "$with_help" in
5719 ENABLE_HTMLHELP=TRUE
5720 SCPDEFS="$SCPDEFS -DWITH_HELP"
5721 AC_MSG_RESULT([HTML])
5724 ENABLE_HTMLHELP=TRUE
5726 AC_MSG_RESULT([HTML])
5729 SCPDEFS="$SCPDEFS -DWITH_HELP"
5730 AC_MSG_RESULT([yes])
5733 AC_MSG_ERROR([Unknown --with-help=$with_help])
5739 AC_SUBST([ENABLE_HTMLHELP])
5740 AC_SUBST([HELP_ONLINE])
5742 AC_MSG_CHECKING([whether to enable xapian-omega support for help])
5743 if test -n "$with_omindex" -a "$with_omindex" != "no" -a $_os != iOS -a $_os != Android; then
5744 BUILD_TYPE="$BUILD_TYPE HELP"
5745 GIT_NEEDED_SUBMODULES="helpcontent2 $GIT_NEEDED_SUBMODULES"
5746 case "$with_omindex" in
5748 ENABLE_HTMLHELP=TRUE
5750 HELP_OMINDEX_PAGE=TRUE
5751 AC_MSG_RESULT([SERVER])
5754 ENABLE_HTMLHELP=TRUE
5756 HELP_OMINDEX_PAGE=FALSE
5757 AC_MSG_RESULT([NOXAP])
5760 AC_MSG_ERROR([Unknown --with-omindex=$with_omindex])
5764 HELP_OMINDEX_PAGE=FALSE
5767 AC_SUBST([ENABLE_HTMLHELP])
5768 AC_SUBST([HELP_OMINDEX_PAGE])
5769 AC_SUBST([HELP_ONLINE])
5772 dnl Test whether to include MySpell dictionaries
5773 dnl ===================================================================
5774 AC_MSG_CHECKING([whether to include MySpell dictionaries])
5775 if test "$with_myspell_dicts" = "yes"; then
5776 AC_MSG_RESULT([yes])
5777 WITH_MYSPELL_DICTS=TRUE
5778 BUILD_TYPE="$BUILD_TYPE DICTIONARIES"
5779 GIT_NEEDED_SUBMODULES="dictionaries $GIT_NEEDED_SUBMODULES"
5784 AC_SUBST(WITH_MYSPELL_DICTS)
5786 # There are no "system" myspell, hyphen or mythes dictionaries on macOS, Windows, Android or iOS.
5787 if test $_os = Darwin -o $_os = WINNT -o $_os = iOS -o $_os = Android; then
5788 if test "$with_system_dicts" = yes; then
5789 AC_MSG_ERROR([There are no system dicts on this OS in the formats the 3rd-party libs we use expect]);
5791 with_system_dicts=no
5794 AC_MSG_CHECKING([whether to use dicts from external paths])
5795 if test -z "$with_system_dicts" -o "$with_system_dicts" != "no"; then
5796 AC_MSG_RESULT([yes])
5798 AC_MSG_CHECKING([for spelling dictionary directory])
5799 if test -n "$with_external_dict_dir"; then
5800 DICT_SYSTEM_DIR=file://$with_external_dict_dir
5802 DICT_SYSTEM_DIR=file:///usr/share/hunspell
5803 if test ! -d /usr/share/hunspell -a -d /usr/share/myspell; then
5804 DICT_SYSTEM_DIR=file:///usr/share/myspell
5807 AC_MSG_RESULT([$DICT_SYSTEM_DIR])
5808 AC_MSG_CHECKING([for hyphenation patterns directory])
5809 if test -n "$with_external_hyph_dir"; then
5810 HYPH_SYSTEM_DIR=file://$with_external_hyph_dir
5812 HYPH_SYSTEM_DIR=file:///usr/share/hyphen
5814 AC_MSG_RESULT([$HYPH_SYSTEM_DIR])
5815 AC_MSG_CHECKING([for thesaurus directory])
5816 if test -n "$with_external_thes_dir"; then
5817 THES_SYSTEM_DIR=file://$with_external_thes_dir
5819 THES_SYSTEM_DIR=file:///usr/share/mythes
5821 AC_MSG_RESULT([$THES_SYSTEM_DIR])
5826 AC_SUBST(SYSTEM_DICTS)
5827 AC_SUBST(DICT_SYSTEM_DIR)
5828 AC_SUBST(HYPH_SYSTEM_DIR)
5829 AC_SUBST(THES_SYSTEM_DIR)
5831 dnl ===================================================================
5832 dnl Precompiled headers.
5834 AC_MSG_CHECKING([whether to enable pch feature])
5835 if test -z "$enable_pch"; then
5836 if test "$_os" = "WINNT"; then
5837 # Enabled by default on Windows.
5843 if test "$enable_pch" != "no" -a "$_os" != "WINNT" -a "$GCC" != "yes" ; then
5844 AC_MSG_ERROR([Precompiled header not yet supported for your platform/compiler])
5846 if test "$enable_pch" = "system"; then
5848 AC_MSG_RESULT([yes (system headers)])
5849 elif test "$enable_pch" = "base"; then
5851 AC_MSG_RESULT([yes (system and base headers)])
5852 elif test "$enable_pch" = "normal"; then
5854 AC_MSG_RESULT([yes (normal)])
5855 elif test "$enable_pch" = "full"; then
5857 AC_MSG_RESULT([yes (full)])
5858 elif test "$enable_pch" = "yes"; then
5859 # Pick a suitable default.
5860 if test "$GCC" = "yes"; then
5861 # With Clang and GCC higher levels do not seem to make a noticeable improvement,
5862 # while making the PCHs larger and rebuilds more likely.
5864 AC_MSG_RESULT([yes (system and base headers)])
5866 # With MSVC the highest level makes a significant difference,
5867 # and it was the default when there used to be no PCH levels.
5869 AC_MSG_RESULT([yes (full)])
5871 elif test "$enable_pch" = "no"; then
5874 AC_MSG_ERROR([Unknown value for --enable-pch])
5876 AC_SUBST(ENABLE_PCH)
5877 # ccache 3.7.1 and older do not properly detect/handle -include .gch in CCACHE_DEPEND mode
5878 if test -n "$ENABLE_PCH" -a -n "$CCACHE_DEPEND_MODE" -a "$GCC" = "yes" -a "$COM_IS_CLANG" != "TRUE"; then
5879 AC_PATH_PROG([CCACHE_BIN],[ccache],[not found])
5880 if test "$CCACHE_BIN" != "not found"; then
5881 AC_MSG_CHECKING([ccache version])
5882 CCACHE_VERSION=`"$CCACHE_BIN" -V | "$AWK" '/^ccache version/{print $3}'`
5883 CCACHE_NUMVER=`echo $CCACHE_VERSION | $AWK -F. '{ print \$1*10000+\$2*100+\$3 }'`
5884 AC_MSG_RESULT([$CCACHE_VERSION])
5885 AC_MSG_CHECKING([whether ccache depend mode works properly with GCC PCH])
5886 if test "$CCACHE_NUMVER" -gt "030701"; then
5887 AC_MSG_RESULT([yes])
5889 AC_MSG_RESULT([no (not newer than 3.7.1)])
5895 PCH_INSTANTIATE_TEMPLATES=
5896 if test -n "$ENABLE_PCH"; then
5897 AC_MSG_CHECKING([whether $CC supports -fpch-instantiate-templates])
5899 CFLAGS="$CFLAGS -Werror -fpch-instantiate-templates"
5900 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[ return 0; ]])],[ PCH_INSTANTIATE_TEMPLATES="-fpch-instantiate-templates" ],[])
5902 if test -n "$PCH_INSTANTIATE_TEMPLATES"; then
5908 AC_SUBST(PCH_INSTANTIATE_TEMPLATES)
5910 BUILDING_PCH_WITH_OBJ=
5911 if test -n "$ENABLE_PCH"; then
5912 AC_MSG_CHECKING([whether $CC supports -Xclang -building-pch-with-obj])
5914 CFLAGS="$CFLAGS -Werror -Xclang -building-pch-with-obj"
5915 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[ return 0; ]])],[ BUILDING_PCH_WITH_OBJ="-Xclang -building-pch-with-obj" ],[])
5917 if test -n "$BUILDING_PCH_WITH_OBJ"; then
5923 AC_SUBST(BUILDING_PCH_WITH_OBJ)
5927 if test -n "$BUILDING_PCH_WITH_OBJ"; then
5928 AC_MSG_CHECKING([whether $CC supports -fpch-codegen])
5930 CFLAGS="$CFLAGS -Werror -fpch-codegen"
5931 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[ return 0; ]])],
5933 PCH_CODEGEN="-fpch-codegen"
5934 PCH_NO_CODEGEN="-fno-pch-codegen"
5937 if test -n "$PCH_CODEGEN"; then
5943 AC_SUBST(PCH_CODEGEN)
5944 AC_SUBST(PCH_NO_CODEGEN)
5946 if test -n "$BUILDING_PCH_WITH_OBJ"; then
5947 AC_MSG_CHECKING([whether $CC supports -fpch-debuginfo])
5949 CFLAGS="$CFLAGS -Werror -fpch-debuginfo"
5950 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[ return 0; ]])],[ PCH_DEBUGINFO="-fpch-debuginfo" ],[])
5952 if test -n "$PCH_DEBUGINFO"; then
5958 AC_SUBST(PCH_DEBUGINFO)
5962 AC_MSG_CHECKING([the GNU Make version])
5963 _make_version=`$GNUMAKE --version | grep GNU | $GREP -v GPL | $SED -e 's@^[[^0-9]]*@@' -e 's@ .*@@' -e 's@,.*@@'`
5964 _make_longver=`echo $_make_version | $AWK -F. '{ print \$1*10000+\$2*100+\$3 }'`
5965 if test "$_make_longver" -ge "038200"; then
5966 AC_MSG_RESULT([$GNUMAKE $_make_version])
5968 elif test "$_make_longver" -ge "038100"; then
5969 if test "$build_os" = "cygwin"; then
5970 AC_MSG_ERROR([failed ($GNUMAKE version >= 3.82 needed])
5972 AC_MSG_RESULT([$GNUMAKE $_make_version])
5974 dnl ===================================================================
5975 dnl Search all the common names for sha1sum
5976 dnl ===================================================================
5977 AC_CHECK_PROGS(SHA1SUM, sha1sum sha1 shasum openssl)
5978 if test -z "$SHA1SUM"; then
5979 AC_MSG_ERROR([install the appropriate SHA-1 checksumming program for this OS])
5980 elif test "$SHA1SUM" = "openssl"; then
5981 SHA1SUM="openssl sha1"
5983 AC_MSG_CHECKING([for GNU Make bug 20033])
5984 TESTGMAKEBUG20033=`mktemp -d tmp.XXXXXX`
5985 $SED -e "s/<TAB>/$TAB/g" > $TESTGMAKEBUG20033/Makefile << EOF
5986 A := \$(wildcard *.a)
5990 <TAB>@echo survived bug20033.
5994 <TAB>@touch 1.a 2.a 3.a 4.a 5.a 6.a
6007 <TAB>\$(eval CHECKSUM := \$(word 1,\$(shell cat \$^ | $SHA1SUM))) \$(if \$(wildcard \$(CACHEDIR)/\$(CHECKSUM)),\
6008 <TAB>\$(call d1,\$(CHECKSUM)),\
6009 <TAB>\$(call d2,\$(CHECKSUM)))
6011 if test -z "`(cd $TESTGMAKEBUG20033 && $GNUMAKE setup && $GNUMAKE -j)|grep survived`"; then
6012 no_parallelism_make="YES"
6013 AC_MSG_RESULT([yes, disable parallelism])
6015 AC_MSG_RESULT([no, keep parallelism enabled])
6017 rm -rf $TESTGMAKEBUG20033
6019 AC_MSG_ERROR([failed ($GNUMAKE version >= 3.81 needed])
6022 # find if gnumake support file function
6023 AC_MSG_CHECKING([whether GNU Make supports the 'file' function])
6024 TESTGMAKEFILEFUNC="`mktemp -d -t tst.XXXXXX`"
6025 if test "$GNUMAKE_WIN_NATIVE" = "TRUE" ; then
6026 TESTGMAKEFILEFUNC=`cygpath -m $TESTGMAKEFILEFUNC`
6028 $SED -e "s/<TAB>/$TAB/" > $TESTGMAKEFILEFUNC/Makefile << EOF
6029 \$(file >test.txt,Success )
6036 $GNUMAKE -C $TESTGMAKEFILEFUNC 2>/dev/null 1>&2
6037 if test -f $TESTGMAKEFILEFUNC/test.txt; then
6038 HAVE_GNUMAKE_FILE_FUNC=TRUE
6039 AC_MSG_RESULT([yes])
6043 rm -rf $TESTGMAKEFILEFUNC
6044 AC_SUBST(HAVE_GNUMAKE_FILE_FUNC)
6045 AC_SUBST(GNUMAKE_WIN_NATIVE)
6047 _make_ver_check=`$GNUMAKE --version | grep "Built for Windows"`
6049 if test "$_make_ver_check" = ""; then
6053 HAVE_LD_HASH_STYLE=FALSE
6054 WITH_LINKER_HASH_STYLE=
6055 AC_MSG_CHECKING([for --hash-style gcc linker support])
6056 if test "$GCC" = "yes"; then
6057 if test -z "$with_linker_hash_style" -o "$with_linker_hash_style" = "yes"; then
6058 hash_styles="gnu sysv"
6059 elif test "$with_linker_hash_style" = "no"; then
6062 hash_styles="$with_linker_hash_style"
6065 for hash_style in $hash_styles; do
6066 test "$HAVE_LD_HASH_STYLE" = "TRUE" && continue
6067 hash_style_ldflags_save=$LDFLAGS
6068 LDFLAGS="$LDFLAGS -Wl,--hash-style=$hash_style"
6070 AC_RUN_IFELSE([AC_LANG_PROGRAM(
6077 HAVE_LD_HASH_STYLE=TRUE
6078 WITH_LINKER_HASH_STYLE=$hash_style
6080 [HAVE_LD_HASH_STYLE=FALSE],
6081 [HAVE_LD_HASH_STYLE=FALSE])
6082 LDFLAGS=$hash_style_ldflags_save
6085 if test "$HAVE_LD_HASH_STYLE" = "TRUE"; then
6086 AC_MSG_RESULT( $WITH_LINKER_HASH_STYLE )
6090 LDFLAGS=$hash_style_ldflags_save
6094 AC_SUBST(HAVE_LD_HASH_STYLE)
6095 AC_SUBST(WITH_LINKER_HASH_STYLE)
6097 dnl ===================================================================
6098 dnl Check whether there's a Perl version available.
6099 dnl ===================================================================
6100 if test -z "$with_perl_home"; then
6101 AC_PATH_PROG(PERL, perl)
6103 test "$build_os" = "cygwin" && with_perl_home=`cygpath -u "$with_perl_home"`
6104 _perl_path="$with_perl_home/bin/perl"
6105 if test -x "$_perl_path"; then
6108 AC_MSG_ERROR([$_perl_path not found])
6112 dnl ===================================================================
6113 dnl Testing for Perl version 5 or greater.
6114 dnl $] is the Perl version variable, it is returned as an integer
6115 dnl ===================================================================
6116 if test "$PERL"; then
6117 AC_MSG_CHECKING([the Perl version])
6118 ${PERL} -e "exit($]);"
6120 if test "$_perl_version" -lt 5; then
6121 AC_MSG_ERROR([found Perl $_perl_version, use Perl 5])
6123 AC_MSG_RESULT([Perl $_perl_version])
6125 AC_MSG_ERROR([Perl not found, install Perl 5])
6128 dnl ===================================================================
6129 dnl Testing for required Perl modules
6130 dnl ===================================================================
6132 AC_MSG_CHECKING([for required Perl modules])
6133 perl_use_string="use Cwd ; use Digest::MD5"
6134 if test "$_os" = "WINNT"; then
6135 if test -n "$PKGFORMAT"; then
6136 for i in $PKGFORMAT; do
6139 # for getting fonts versions to use in MSI
6140 perl_use_string="$perl_use_string ; use Font::TTF::Font"
6146 if test "$with_system_hsqldb" = "yes"; then
6147 perl_use_string="$perl_use_string ; use Archive::Zip"
6149 if test "$enable_openssl" = "yes" -a "$with_system_openssl" != "yes"; then
6150 # OpenSSL needs that to build
6151 perl_use_string="$perl_use_string ; use FindBin"
6153 if $PERL -e "$perl_use_string">/dev/null 2>&1; then
6154 AC_MSG_RESULT([all modules found])
6156 AC_MSG_RESULT([failed to find some modules])
6157 # Find out which modules are missing.
6158 for i in $perl_use_string; do
6159 if test "$i" != "use" -a "$i" != ";"; then
6160 if ! $PERL -e "use $i;">/dev/null 2>&1; then
6161 missing_perl_modules="$missing_perl_modules $i"
6166 The missing Perl modules are: $missing_perl_modules
6167 Install them as superuser/administrator with "cpan -i $missing_perl_modules"])
6170 dnl ===================================================================
6171 dnl Check for pkg-config
6172 dnl ===================================================================
6173 if test "$_os" != "WINNT"; then
6177 if test "$_os" != "WINNT"; then
6179 # If you use CC=/path/to/compiler/foo-gcc or even CC="ccache
6180 # /path/to/compiler/foo-gcc" you need to set the AR etc env vars
6181 # explicitly. Or put /path/to/compiler in PATH yourself.
6183 # Use wrappers for LTO
6184 if test "$ENABLE_LTO" = "TRUE" -a "$COM_IS_CLANG" != "TRUE"; then
6185 AC_CHECK_TOOL(AR,gcc-ar)
6186 AC_CHECK_TOOL(NM,gcc-nm)
6187 AC_CHECK_TOOL(RANLIB,gcc-ranlib)
6189 AC_CHECK_TOOL(AR,ar)
6190 AC_CHECK_TOOL(NM,nm)
6191 AC_CHECK_TOOL(RANLIB,ranlib)
6193 AC_CHECK_TOOL(OBJDUMP,objdump)
6194 AC_CHECK_TOOL(READELF,readelf)
6195 AC_CHECK_TOOL(STRIP,strip)
6196 if test "$_os" = "WINNT"; then
6197 AC_CHECK_TOOL(DLLTOOL,dlltool)
6198 AC_CHECK_TOOL(WINDRES,windres)
6206 AC_SUBST(PKG_CONFIG)
6207 AC_SUBST(PKG_CONFIG_PATH)
6208 AC_SUBST(PKG_CONFIG_LIBDIR)
6214 dnl ===================================================================
6215 dnl pkg-config checks on macOS
6216 dnl ===================================================================
6218 if test $_os = Darwin; then
6219 AC_MSG_CHECKING([for bogus pkg-config])
6220 if test -n "$PKG_CONFIG"; then
6221 if test "$PKG_CONFIG" = /usr/bin/pkg-config && ls -l /usr/bin/pkg-config | $GREP -q Mono.framework; then
6222 AC_MSG_ERROR([yes, from Mono. This *will* break the build. Please remove or hide $PKG_CONFIG])
6224 if test "$enable_bogus_pkg_config" = "yes"; then
6225 AC_MSG_RESULT([yes, user-approved from unknown origin.])
6227 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.])
6231 AC_MSG_RESULT([no, good])
6237 # Return value: $csctest
6241 reg_get_value_32 "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/NET Framework Setup/NDP/v4/Client/InstallPath"
6242 if test -n "$regvalue"; then
6250 # Return value: $altest
6254 # We need this check to detect 4.6.1 or above.
6255 for ver in 4.8 4.7.2 4.7.1 4.7 4.6.2 4.6.1; do
6256 reg_get_value_32 "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/NETFXSDK/$ver/WinSDK-NetFx40Tools/InstallationFolder"
6257 if test -n "$regvalue" -a \( -f "$regvalue/al.exe" -o -f "$regvalue/bin/al.exe" \); then
6263 for x in `ls /proc/registry32/HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft\ SDKs/Windows`; do
6264 reg_get_value_32 "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/Windows/$x/WinSDK-NetFx40Tools/InstallationFolder"
6265 if test -n "$regvalue" -a \( -f "$regvalue/al.exe" -o -f "$regvalue/bin/al.exe" \); then
6276 for ver in 4.8 4.7.2 4.7.1 4.7 4.6.2 4.6.1 4.6; do
6277 reg_get_value_32 "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/NETFXSDK/$ver/KitsInstallationFolder"
6278 if test -n "$regvalue"; then
6285 find_winsdk_version()
6287 # Args: $1 : SDK version as in "8.0", "8.1A" etc
6288 # Return values: $winsdktest, $winsdkbinsubdir, $winsdklibsubdir
6290 unset winsdktest winsdkbinsubdir winsdklibsubdir
6294 reg_get_value_32 "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows Kits/Installed Roots/KitsRoot"
6295 if test -n "$regvalue"; then
6296 winsdktest=$regvalue
6297 winsdklibsubdir=win8
6302 reg_get_value_32 "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows Kits/Installed Roots/KitsRoot81"
6303 if test -n "$regvalue"; then
6304 winsdktest=$regvalue
6305 winsdklibsubdir=winv6.3
6310 reg_get_value_32 "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/Windows/v${1}/InstallationFolder"
6311 if test -n "$regvalue"; then
6312 winsdktest=$regvalue
6313 reg_get_value_32 "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/Windows/v${1}/ProductVersion"
6314 if test -n "$regvalue"; then
6315 winsdkbinsubdir="$regvalue".0
6316 winsdklibsubdir=$winsdkbinsubdir
6317 local tmppath="$winsdktest\\Include\\$winsdklibsubdir"
6318 local tmppath_unix=$(cygpath -u "$tmppath")
6319 # test exist the SDK path
6320 if test -d "$tmppath_unix"; then
6321 # when path is convertible to a short path then path is okay
6322 cygpath -d "$tmppath" >/dev/null 2>&1
6323 if test $? -ne 0; then
6324 AC_MSG_ERROR([Windows SDK doesn't have a 8.3 name, see NtfsDisable8dot3NameCreation])
6327 AC_MSG_ERROR([The Windows SDK not found, check the installation])
6338 # Return value: From find_winsdk_version
6342 for ver in $WINDOWS_SDK_ACCEPTABLE_VERSIONS; do
6343 find_winsdk_version $ver
6344 if test -n "$winsdktest"; then
6352 # Return value: $msmdir
6354 AC_MSG_CHECKING([for MSVC merge modules directory])
6355 local my_msm_files=Microsoft_VC${VCVER}_CRT_x86.msm
6360 my_msm_files="Microsoft_VC141_CRT_x86.msm Microsoft_VC142_CRT_x86.msm ${my_msm_files}"
6363 for f in $my_msm_files; do
6364 echo "$as_me:$LINENO: searching for $f" >&5
6368 for ver in 14.0 15.0; do
6369 reg_get_value_32 HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/VisualStudio/$ver/Setup/VS/MSMDir
6370 if test -n "$regvalue"; then
6371 for f in ${my_msm_files}; do
6372 if test -e "$regvalue/${f}"; then
6379 dnl Is the following fallback really necessary, or was it added in response
6380 dnl to never having started Visual Studio on a given machine, so the
6381 dnl registry keys checked above had presumably not yet been created?
6382 dnl Anyway, if it really is necessary, it might be worthwhile to extend it
6383 dnl to also check %CommonProgramFiles(X86)% (typically expanding to
6384 dnl "C:\Program Files (X86)\Common Files" compared to %CommonProgramFiles%
6385 dnl expanding to "C:\Program Files\Common Files"), which would need
6386 dnl something like $(perl -e 'print $ENV{"CommonProgramFiles(x86)"}') to
6387 dnl obtain its value from cygwin:
6388 if test -z "$msmdir"; then
6389 my_msm_dir="${COMMONPROGRAMFILES}/Merge Modules/"
6390 for f in ${my_msm_files}; do
6391 if test -e "$my_msm_dir/${f}"; then
6397 dnl Starting from MSVC 15.0, merge modules are located in different directory
6400 for l in `ls -1 $VC_PRODUCT_DIR/redist/MSVC/`; do
6401 echo "$as_me:$LINENO: looking in $VC_PRODUCT_DIR/redist/MSVC/$l/MergeModules])" >&5
6402 my_msm_dir="$VC_PRODUCT_DIR/redist/MSVC/$l/MergeModules/"
6403 for f in ${my_msm_files}; do
6404 if test -e "$my_msm_dir/${f}"; then
6413 if test -n "$msmdir"; then
6414 msmdir=`cygpath -m "$msmdir"`
6415 AC_MSG_RESULT([$msmdir])
6417 if test "$ENABLE_RELEASE_BUILD" = "TRUE" ; then
6418 AC_MSG_FAILURE([not found])
6420 AC_MSG_WARN([not found (check config.log)])
6421 add_warning "MSM none of ${my_msm_files} found"
6426 find_msvc_x64_dlls()
6428 # Return value: $msvcdllpath, $msvcdlls
6430 AC_MSG_CHECKING([for MSVC x64 DLL path])
6431 msvcdllpath="$VC_PRODUCT_DIR/redist/x64/Microsoft.VC${VCVER}.CRT"
6434 for l in `ls -1 $VC_PRODUCT_DIR/redist/MSVC/`; do
6435 echo "$as_me:$LINENO: testing $VC_PRODUCT_DIR/redist/MSVC/$l/x64/Microsoft.VC141.CRT" >&5
6436 if test -d "$VC_PRODUCT_DIR/redist/MSVC/$l/x64/Microsoft.VC141.CRT"; then
6437 msvcdllpath="$VC_PRODUCT_DIR/redist/MSVC/$l/x64/Microsoft.VC141.CRT"
6440 echo "$as_me:$LINENO: testing $VC_PRODUCT_DIR/redist/MSVC/$l/x64/Microsoft.VC142.CRT" >&5
6441 if test -d "$VC_PRODUCT_DIR/redist/MSVC/$l/x64/Microsoft.VC142.CRT"; then
6442 msvcdllpath="$VC_PRODUCT_DIR/redist/MSVC/$l/x64/Microsoft.VC142.CRT"
6448 AC_MSG_RESULT([$msvcdllpath])
6449 AC_MSG_CHECKING([for MSVC x64 DLLs])
6450 msvcdlls="msvcp140.dll vcruntime140.dll"
6451 for dll in $msvcdlls; do
6452 if ! test -f "$msvcdllpath/$dll"; then
6453 AC_MSG_FAILURE([missing $dll])
6456 AC_MSG_RESULT([found all ($msvcdlls)])
6459 dnl =========================================
6460 dnl Check for the Windows SDK.
6461 dnl =========================================
6462 if test "$_os" = "WINNT"; then
6463 AC_MSG_CHECKING([for Windows SDK])
6464 if test "$build_os" = "cygwin" -o "$build_os" = "wsl"; then
6466 WINDOWS_SDK_HOME=$winsdktest
6468 # normalize if found
6469 if test -n "$WINDOWS_SDK_HOME"; then
6470 WINDOWS_SDK_HOME=`cygpath -d "$WINDOWS_SDK_HOME"`
6471 WINDOWS_SDK_HOME=`cygpath -u "$WINDOWS_SDK_HOME"`
6474 WINDOWS_SDK_LIB_SUBDIR=$winsdklibsubdir
6477 if test -n "$WINDOWS_SDK_HOME"; then
6478 # Remove a possible trailing backslash
6479 WINDOWS_SDK_HOME=`echo $WINDOWS_SDK_HOME | $SED 's/\/$//'`
6481 if test -f "$WINDOWS_SDK_HOME/Include/adoint.h" \
6482 -a -f "$WINDOWS_SDK_HOME/Include/SqlUcode.h" \
6483 -a -f "$WINDOWS_SDK_HOME/Include/usp10.h"; then
6484 have_windows_sdk_headers=yes
6485 elif test -f "$WINDOWS_SDK_HOME/Include/um/adoint.h" \
6486 -a -f "$WINDOWS_SDK_HOME/Include/um/SqlUcode.h" \
6487 -a -f "$WINDOWS_SDK_HOME/Include/um/usp10.h"; then
6488 have_windows_sdk_headers=yes
6489 elif test -f "$WINDOWS_SDK_HOME/Include/$winsdklibsubdir/um/adoint.h" \
6490 -a -f "$WINDOWS_SDK_HOME/Include/$winsdklibsubdir/um/SqlUcode.h" \
6491 -a -f "$WINDOWS_SDK_HOME/Include/$winsdklibsubdir/um/usp10.h"; then
6492 have_windows_sdk_headers=yes
6494 have_windows_sdk_headers=no
6497 if test -f "$WINDOWS_SDK_HOME/lib/user32.lib"; then
6498 have_windows_sdk_libs=yes
6499 elif test -f "$WINDOWS_SDK_HOME/lib/$winsdklibsubdir/um/$WIN_BUILD_ARCH/user32.lib"; then
6500 have_windows_sdk_libs=yes
6502 have_windows_sdk_libs=no
6505 if test $have_windows_sdk_headers = no -o $have_windows_sdk_libs = no; then
6506 AC_MSG_ERROR([Some (all?) Windows SDK files not found, please check if all needed parts of
6507 the Windows SDK are installed.])
6511 if test -z "$WINDOWS_SDK_HOME"; then
6512 AC_MSG_RESULT([no, hoping the necessary headers and libraries will be found anyway!?])
6513 elif echo $WINDOWS_SDK_HOME | grep "8.0" >/dev/null 2>/dev/null; then
6514 WINDOWS_SDK_VERSION=80
6515 AC_MSG_RESULT([found Windows SDK 8.0 ($WINDOWS_SDK_HOME)])
6516 elif echo $WINDOWS_SDK_HOME | grep "8.1" >/dev/null 2>/dev/null; then
6517 WINDOWS_SDK_VERSION=81
6518 AC_MSG_RESULT([found Windows SDK 8.1 ($WINDOWS_SDK_HOME)])
6519 elif echo $WINDOWS_SDK_HOME | grep "/10" >/dev/null 2>/dev/null; then
6520 WINDOWS_SDK_VERSION=10
6521 AC_MSG_RESULT([found Windows SDK 10.0 ($WINDOWS_SDK_HOME)])
6523 AC_MSG_ERROR([Found legacy Windows Platform SDK ($WINDOWS_SDK_HOME)])
6525 PathFormat "$WINDOWS_SDK_HOME"
6526 WINDOWS_SDK_HOME="$formatted_path"
6527 WINDOWS_SDK_HOME_unix="$formatted_path_unix"
6528 if test "$build_os" = "cygwin" -o "$build_os" = "wsl"; then
6529 SOLARINC="$SOLARINC -I$WINDOWS_SDK_HOME/include -I$COMPATH/Include"
6530 if test -d "$WINDOWS_SDK_HOME/include/um"; then
6531 SOLARINC="$SOLARINC -I$WINDOWS_SDK_HOME/include/um -I$WINDOWS_SDK_HOME/include/shared"
6532 elif test -d "$WINDOWS_SDK_HOME/Include/$winsdklibsubdir/um"; then
6533 SOLARINC="$SOLARINC -I$WINDOWS_SDK_HOME/Include/$winsdklibsubdir/um -I$WINDOWS_SDK_HOME/Include/$winsdklibsubdir/shared"
6537 dnl TODO: solenv/bin/modules/installer/windows/msiglobal.pm wants to use a
6538 dnl WiLangId.vbs that is included only in some SDKs (e.g., included in v7.1
6539 dnl but not in v8.0), so allow this to be overridden with a
6540 dnl WINDOWS_SDK_WILANGID for now; a full-blown --with-windows-sdk-wilangid
6541 dnl and configuration error if no WiLangId.vbs is found would arguably be
6542 dnl better, but I do not know under which conditions exactly it is needed by
6544 if test -z "$WINDOWS_SDK_WILANGID" -a -n "$WINDOWS_SDK_HOME"; then
6545 WINDOWS_SDK_WILANGID=$WINDOWS_SDK_HOME/Samples/sysmgmt/msi/scripts/WiLangId.vbs
6546 WINDOWS_SDK_WILANGID_unix=$(cygpath -u "$WINDOWS_SDK_WILANGID")
6547 if ! test -e "$WINDOWS_SDK_WILANGID_unix" ; then
6548 WINDOWS_SDK_WILANGID="${WINDOWS_SDK_HOME}/bin/${WINDOWS_SDK_LIB_SUBDIR}/${WIN_BUILD_ARCH}/WiLangId.vbs"
6549 WINDOWS_SDK_WILANGID_unix=$(cygpath -u "$WINDOWS_SDK_WILANGID")
6551 if ! test -e "$WINDOWS_SDK_WILANGID_unix" ; then
6552 WINDOWS_SDK_WILANGID=$WINDOWS_SDK_HOME/bin/$WIN_BUILD_ARCH/WiLangId.vbs
6553 WINDOWS_SDK_WILANGID_unix=$(cygpath -u "$WINDOWS_SDK_WILANGID")
6555 if ! test -e "$WINDOWS_SDK_WILANGID_unix" ; then
6556 WINDOWS_SDK_WILANGID=$(cygpath -sm "C:/Program Files (x86)/Windows Kits/8.1/bin/$WIN_BUILD_ARCH/WiLangId.vbs")
6557 WINDOWS_SDK_WILANGID_unix=$(cygpath -u "$WINDOWS_SDK_WILANGID")
6560 if test -n "$with_lang" -a "$with_lang" != "en-US"; then
6561 if test -n "$with_package_format" -a "$with_package_format" != no; then
6562 for i in "$with_package_format"; do
6563 if test "$i" = "msi"; then
6564 if ! test -e "$WINDOWS_SDK_WILANGID_unix" ; then
6565 AC_MSG_ERROR([WiLangId.vbs not found - building translated packages will fail])
6572 AC_SUBST(WINDOWS_SDK_HOME)
6573 AC_SUBST(WINDOWS_SDK_LIB_SUBDIR)
6574 AC_SUBST(WINDOWS_SDK_VERSION)
6575 AC_SUBST(WINDOWS_SDK_WILANGID)
6577 if test "$build_os" = "cygwin"; then
6578 dnl Check midl.exe; this being the first check for a tool in the SDK bin
6579 dnl dir, it also determines that dir's path w/o an arch segment if any,
6580 dnl WINDOWS_SDK_BINDIR_NO_ARCH:
6581 AC_MSG_CHECKING([for midl.exe])
6584 if test -n "$winsdkbinsubdir" \
6585 -a -f "$winsdktest/Bin/$winsdkbinsubdir/$WIN_BUILD_ARCH/midl.exe"
6587 MIDL_PATH=$winsdktest/Bin/$winsdkbinsubdir/$WIN_BUILD_ARCH
6588 WINDOWS_SDK_BINDIR_NO_ARCH=$WINDOWS_SDK_HOME/Bin/$winsdkbinsubdir
6589 elif test -f "$winsdktest/Bin/$WIN_BUILD_ARCH/midl.exe"; then
6590 MIDL_PATH=$winsdktest/Bin/$WIN_BUILD_ARCH
6591 WINDOWS_SDK_BINDIR_NO_ARCH=$WINDOWS_SDK_HOME/Bin
6592 elif test -f "$winsdktest/Bin/midl.exe"; then
6593 MIDL_PATH=$winsdktest/Bin
6594 WINDOWS_SDK_BINDIR_NO_ARCH=$WINDOWS_SDK_HOME/Bin
6596 if test ! -f "$MIDL_PATH/midl.exe"; then
6597 AC_MSG_ERROR([midl.exe not found in $winsdktest/Bin/$WIN_BUILD_ARCH, Windows SDK installation broken?])
6599 AC_MSG_RESULT([$MIDL_PATH/midl.exe])
6602 # Convert to posix path with 8.3 filename restrictions ( No spaces )
6603 MIDL_PATH=`win_short_path_for_make "$MIDL_PATH"`
6605 if test -f "$WINDOWS_SDK_BINDIR_NO_ARCH/msiinfo.exe" \
6606 -a -f "$WINDOWS_SDK_BINDIR_NO_ARCH/msidb.exe" \
6607 -a -f "$WINDOWS_SDK_BINDIR_NO_ARCH/uuidgen.exe" \
6608 -a -f "$WINDOWS_SDK_BINDIR_NO_ARCH/msitran.exe"; then :
6609 elif test -f "$WINDOWS_SDK_BINDIR_NO_ARCH/x86/msiinfo.exe" \
6610 -a -f "$WINDOWS_SDK_BINDIR_NO_ARCH/x86/msidb.exe" \
6611 -a -f "$WINDOWS_SDK_BINDIR_NO_ARCH/x86/uuidgen.exe" \
6612 -a -f "$WINDOWS_SDK_BINDIR_NO_ARCH/x86/msitran.exe"; then :
6613 elif test -f "$WINDOWS_SDK_HOME/bin/x86/msiinfo.exe" \
6614 -a -f "$WINDOWS_SDK_HOME/bin/x86/msidb.exe" \
6615 -a -f "$WINDOWS_SDK_BINDIR_NO_ARCH/x86/uuidgen.exe" \
6616 -a -f "$WINDOWS_SDK_HOME/bin/x86/msitran.exe"; then :
6618 AC_MSG_ERROR([Some (all?) Windows Installer tools in the Windows SDK are missing, please install.])
6622 AC_MSG_CHECKING([for csc.exe])
6624 if test -f "$csctest/csc.exe"; then
6627 if test ! -f "$CSC_PATH/csc.exe"; then
6628 AC_MSG_ERROR([csc.exe not found as $CSC_PATH/csc.exe])
6630 AC_MSG_RESULT([$CSC_PATH/csc.exe])
6633 CSC_PATH=`win_short_path_for_make "$CSC_PATH"`
6636 AC_MSG_CHECKING([for al.exe])
6638 if test -n "$winsdkbinsubdir" \
6639 -a -f "$winsdktest/Bin/$winsdkbinsubdir/$WIN_BUILD_ARCH/al.exe"
6641 AL_PATH="$winsdktest/Bin/$winsdkbinsubdir/$WIN_BUILD_ARCH"
6642 elif test -f "$winsdktest/Bin/$WIN_BUILD_ARCH/al.exe"; then
6643 AL_PATH="$winsdktest/Bin/$WIN_BUILD_ARCH"
6644 elif test -f "$winsdktest/Bin/al.exe"; then
6645 AL_PATH="$winsdktest/Bin"
6648 if test -z "$AL_PATH"; then
6650 if test -f "$altest/bin/al.exe"; then
6651 AL_PATH="$altest/bin"
6652 elif test -f "$altest/al.exe"; then
6656 if test ! -f "$AL_PATH/al.exe"; then
6657 AC_MSG_ERROR([al.exe not found as $AL_PATH/al.exe])
6659 AC_MSG_RESULT([$AL_PATH/al.exe])
6662 AL_PATH=`win_short_path_for_make "$AL_PATH"`
6664 dnl Check mscoree.lib / .NET Framework dir
6665 AC_MSG_CHECKING(.NET Framework)
6667 PathFormat "$frametest"
6668 frametest="$formatted_path"
6669 if test -f "$frametest/Lib/um/$WIN_BUILD_ARCH/mscoree.lib"; then
6670 DOTNET_FRAMEWORK_HOME="$frametest"
6673 if test -f "$winsdktest/lib/mscoree.lib" -o -f "$winsdktest/lib/$winsdklibsubdir/um/$WIN_BUILD_ARCH/mscoree.lib"; then
6674 DOTNET_FRAMEWORK_HOME="$winsdktest"
6677 if test ! -f "$DOTNET_FRAMEWORK_HOME/lib/mscoree.lib" -a ! -f "$DOTNET_FRAMEWORK_HOME/lib/$winsdklibsubdir/um/$WIN_BUILD_ARCH/mscoree.lib" -a ! -f "$DOTNET_FRAMEWORK_HOME/Lib/um/$WIN_BUILD_ARCH/mscoree.lib"; then
6678 AC_MSG_ERROR([mscoree.lib not found])
6680 AC_MSG_RESULT([found: $DOTNET_FRAMEWORK_HOME])
6682 PathFormat "$MIDL_PATH"
6683 MIDL_PATH="$formatted_path"
6685 PathFormat "$AL_PATH"
6686 AL_PATH="$formatted_path"
6688 PathFormat "$DOTNET_FRAMEWORK_HOME"
6689 DOTNET_FRAMEWORK_HOME="$formatted_path"
6691 PathFormat "$CSC_PATH"
6692 CSC_PATH="$formatted_path"
6695 dnl ===================================================================
6696 dnl Testing for C++ compiler and version...
6697 dnl ===================================================================
6699 if test "$_os" != "WINNT"; then
6700 # AC_PROG_CXX sets CXXFLAGS to -g -O2 if not set, avoid that
6701 save_CXXFLAGS=$CXXFLAGS
6703 CXXFLAGS=$save_CXXFLAGS
6704 if test -z "$CXX_BASE"; then
6705 CXX_BASE=`first_arg_basename "$CXX"`
6709 dnl check for GNU C++ compiler version
6710 if test "$GXX" = "yes" -a -z "$COM_IS_CLANG"; then
6711 AC_MSG_CHECKING([the GNU C++ compiler version])
6713 _gpp_version=`$CXX -dumpversion`
6714 _gpp_majmin=`echo $_gpp_version | $AWK -F. '{ print \$1*100+\$2 }'`
6716 if test "$_gpp_majmin" -lt "700"; then
6717 AC_MSG_ERROR([You need to use GNU C++ compiler version >= 7.0 to build LibreOffice, you have $_gpp_version.])
6719 AC_MSG_RESULT([ok (g++ $_gpp_version)])
6722 dnl see https://code.google.com/p/android/issues/detail?id=41770
6726 AC_MSG_CHECKING([whether $CXX_BASE is broken with boost.thread])
6727 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
6728 #include <bits/c++config.h>]],[[
6729 #if !defined(_GLIBCXX_HAVE_GTHR_DEFAULT) \
6730 && !defined(_GLIBCXX__PTHREADS) \
6731 && !defined(_GLIBCXX_HAS_GTHREADS)
6734 ]])],[AC_MSG_RESULT([yes])
6735 glibcxx_threads=yes],[AC_MSG_RESULT([no])])
6737 if test $glibcxx_threads = yes; then
6738 BOOST_CXXFLAGS="-D_GLIBCXX_HAS_GTHREADS"
6741 AC_SUBST(BOOST_CXXFLAGS)
6744 # prefx CXX with ccache if needed
6747 if test "$CCACHE" != ""; then
6748 AC_MSG_CHECKING([whether $CXX_BASE is already ccached])
6750 save_CXXFLAGS=$CXXFLAGS
6751 CXXFLAGS="$CXXFLAGS --ccache-skip -O2"
6752 dnl an empty program will do, we're checking the compiler flags
6753 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],
6754 [use_ccache=yes], [use_ccache=no])
6755 if test $use_ccache = yes -a "${CCACHE/*sccache*/}" != ""; then
6756 AC_MSG_RESULT([yes])
6759 CXX_BASE="ccache $CXX_BASE"
6762 CXXFLAGS=$save_CXXFLAGS
6766 dnl ===================================================================
6767 dnl Find pre-processors.(should do that _after_ messing with CC/CXX)
6768 dnl ===================================================================
6770 if test "$_os" != "WINNT"; then
6773 dnl Check whether there's a C pre-processor.
6778 dnl ===================================================================
6779 dnl Find integral type sizes and alignments
6780 dnl ===================================================================
6782 if test "$_os" != "WINNT"; then
6784 AC_CHECK_SIZEOF(long)
6785 AC_CHECK_SIZEOF(short)
6786 AC_CHECK_SIZEOF(int)
6787 AC_CHECK_SIZEOF(long long)
6788 AC_CHECK_SIZEOF(double)
6789 AC_CHECK_SIZEOF(void*)
6791 SAL_TYPES_SIZEOFSHORT=$ac_cv_sizeof_short
6792 SAL_TYPES_SIZEOFINT=$ac_cv_sizeof_int
6793 SAL_TYPES_SIZEOFLONG=$ac_cv_sizeof_long
6794 SAL_TYPES_SIZEOFLONGLONG=$ac_cv_sizeof_long_long
6795 SAL_TYPES_SIZEOFPOINTER=$ac_cv_sizeof_voidp
6797 dnl Allow build without AC_CHECK_ALIGNOF, grrr
6798 m4_pattern_allow([AC_CHECK_ALIGNOF])
6799 m4_ifdef([AC_CHECK_ALIGNOF],
6801 AC_CHECK_ALIGNOF(short,[#include <stddef.h>])
6802 AC_CHECK_ALIGNOF(int,[#include <stddef.h>])
6803 AC_CHECK_ALIGNOF(long,[#include <stddef.h>])
6804 AC_CHECK_ALIGNOF(double,[#include <stddef.h>])
6807 case "$_os-$host_cpu" in
6809 test -z "$ac_cv_alignof_short" && ac_cv_alignof_short=2
6810 test -z "$ac_cv_alignof_int" && ac_cv_alignof_int=4
6811 test -z "$ac_cv_alignof_long" && ac_cv_alignof_long=4
6812 test -z "$ac_cv_alignof_double" && ac_cv_alignof_double=4
6815 test -z "$ac_cv_alignof_short" && ac_cv_alignof_short=2
6816 test -z "$ac_cv_alignof_int" && ac_cv_alignof_int=4
6817 test -z "$ac_cv_alignof_long" && ac_cv_alignof_long=8
6818 test -z "$ac_cv_alignof_double" && ac_cv_alignof_double=8
6821 if test -z "$ac_cv_alignof_short" -o \
6822 -z "$ac_cv_alignof_int" -o \
6823 -z "$ac_cv_alignof_long" -o \
6824 -z "$ac_cv_alignof_double"; then
6825 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.])
6831 SAL_TYPES_ALIGNMENT2=$ac_cv_alignof_short
6832 SAL_TYPES_ALIGNMENT4=$ac_cv_alignof_int
6833 if test $ac_cv_sizeof_long -eq 8; then
6834 SAL_TYPES_ALIGNMENT8=$ac_cv_alignof_long
6835 elif test $ac_cv_sizeof_double -eq 8; then
6836 SAL_TYPES_ALIGNMENT8=$ac_cv_alignof_double
6838 AC_MSG_ERROR([Cannot find alignment of 8 byte types.])
6841 dnl Check for large file support
6843 if test -n "$ac_cv_sys_file_offset_bits" -a "$ac_cv_sys_file_offset_bits" != "no"; then
6844 LFS_CFLAGS="-D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits"
6846 if test -n "$ac_cv_sys_large_files" -a "$ac_cv_sys_large_files" != "no"; then
6847 LFS_CFLAGS="$LFS_CFLAGS -D_LARGE_FILES"
6851 SAL_TYPES_SIZEOFSHORT=2
6852 SAL_TYPES_SIZEOFINT=4
6853 SAL_TYPES_SIZEOFLONG=4
6854 SAL_TYPES_SIZEOFLONGLONG=8
6855 if test $WIN_HOST_BITS -eq 32; then
6856 SAL_TYPES_SIZEOFPOINTER=4
6858 SAL_TYPES_SIZEOFPOINTER=8
6860 SAL_TYPES_ALIGNMENT2=2
6861 SAL_TYPES_ALIGNMENT4=4
6862 SAL_TYPES_ALIGNMENT8=8
6865 AC_SUBST(LFS_CFLAGS)
6867 AC_DEFINE_UNQUOTED(SAL_TYPES_SIZEOFSHORT,$SAL_TYPES_SIZEOFSHORT)
6868 AC_DEFINE_UNQUOTED(SAL_TYPES_SIZEOFINT,$SAL_TYPES_SIZEOFINT)
6869 AC_DEFINE_UNQUOTED(SAL_TYPES_SIZEOFLONG,$SAL_TYPES_SIZEOFLONG)
6870 AC_DEFINE_UNQUOTED(SAL_TYPES_SIZEOFLONGLONG,$SAL_TYPES_SIZEOFLONGLONG)
6871 AC_DEFINE_UNQUOTED(SAL_TYPES_SIZEOFPOINTER,$SAL_TYPES_SIZEOFPOINTER)
6872 AC_DEFINE_UNQUOTED(SAL_TYPES_ALIGNMENT2,$SAL_TYPES_ALIGNMENT2)
6873 AC_DEFINE_UNQUOTED(SAL_TYPES_ALIGNMENT4,$SAL_TYPES_ALIGNMENT4)
6874 AC_DEFINE_UNQUOTED(SAL_TYPES_ALIGNMENT8,$SAL_TYPES_ALIGNMENT8)
6876 dnl ===================================================================
6877 dnl Check whether to enable runtime optimizations
6878 dnl ===================================================================
6879 ENABLE_RUNTIME_OPTIMIZATIONS=
6880 AC_MSG_CHECKING([whether to enable runtime optimizations])
6881 if test -z "$enable_runtime_optimizations"; then
6885 enable_runtime_optimizations=no
6891 if test "$enable_runtime_optimizations" != no; then
6892 ENABLE_RUNTIME_OPTIMIZATIONS=TRUE
6893 AC_DEFINE(ENABLE_RUNTIME_OPTIMIZATIONS)
6894 AC_MSG_RESULT([yes])
6898 AC_SUBST([ENABLE_RUNTIME_OPTIMIZATIONS])
6900 dnl ===================================================================
6901 dnl Check if valgrind headers are available
6902 dnl ===================================================================
6904 if test "$cross_compiling" != yes -a "$with_valgrind" != no; then
6905 prev_cppflags=$CPPFLAGS
6906 # Is VALGRIND_CFLAGS something one is supposed to have in the environment,
6907 # or where does it come from?
6908 CPPFLAGS="$CPPFLAGS $VALGRIND_CFLAGS"
6909 AC_CHECK_HEADER([valgrind/valgrind.h],
6910 [ENABLE_VALGRIND=TRUE])
6911 CPPFLAGS=$prev_cppflags
6913 AC_SUBST([ENABLE_VALGRIND])
6914 if test -z "$ENABLE_VALGRIND"; then
6915 if test "$with_valgrind" = yes; then
6916 AC_MSG_ERROR([--with-valgrind specified but no Valgrind headers found])
6920 AC_SUBST([VALGRIND_CFLAGS])
6923 dnl ===================================================================
6924 dnl Check if SDT probes (for systemtap, gdb, dtrace) are available
6925 dnl ===================================================================
6927 # We need at least the sys/sdt.h include header.
6928 AC_CHECK_HEADER([sys/sdt.h], [SDT_H_FOUND='TRUE'], [SDT_H_FOUND='FALSE'])
6929 if test "$SDT_H_FOUND" = "TRUE"; then
6930 # Found sys/sdt.h header, now make sure the c++ compiler works.
6931 # Old g++ versions had problems with probes in constructors/destructors.
6932 AC_MSG_CHECKING([working sys/sdt.h and c++ support])
6934 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
6935 #include <sys/sdt.h>
6943 ProbeClass(int& v, const char *n) : ref(v), name(n)
6945 DTRACE_PROBE2(_test_, cons, name, ref);
6948 void method(int min)
6950 DTRACE_PROBE3(_test_, meth, name, ref, min);
6956 DTRACE_PROBE2(_test_, dest, name, ref);
6961 DTRACE_PROBE1(_test_, call, i);
6962 ProbeClass inst = ProbeClass(i, "call");
6964 ]])], [AC_MSG_RESULT([yes]); AC_DEFINE([USE_SDT_PROBES])],
6965 [AC_MSG_RESULT([no, sdt.h or c++ compiler too old])])
6968 AC_CONFIG_HEADERS([config_host/config_probes.h])
6970 dnl ===================================================================
6972 dnl ===================================================================
6973 HAVE_GCC_STACK_CLASH_PROTECTION=
6974 if test "$GCC" = "yes" -o "$COM_IS_CLANG" = TRUE; then
6975 AC_MSG_CHECKING([whether $CC_BASE supports -fstack-clash-protection])
6977 CFLAGS="$CFLAGS -Werror -fstack-clash-protection"
6979 [AC_LANG_PROGRAM(, [[return 0;]])],
6980 [AC_MSG_RESULT([yes]); HAVE_GCC_STACK_CLASH_PROTECTION=TRUE],
6981 [AC_MSG_RESULT([no])])
6984 AC_MSG_CHECKING([whether $CC_BASE supports -mno-avx])
6986 CFLAGS="$CFLAGS -Werror -mno-avx"
6987 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[ return 0; ]])],[ HAVE_GCC_AVX=TRUE ],[])
6989 if test "$HAVE_GCC_AVX" = "TRUE"; then
6990 AC_MSG_RESULT([yes])
6995 AC_MSG_CHECKING([whether $CC_BASE supports atomic functions])
6996 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[
6998 if (__sync_add_and_fetch(&v, 1) != 1 ||
6999 __sync_sub_and_fetch(&v, 1) != 0)
7001 __sync_synchronize();
7002 if (__sync_val_compare_and_swap(&v, 0, 1) != 0 ||
7006 ]])],[HAVE_GCC_BUILTIN_ATOMIC=TRUE],[])
7007 if test "$HAVE_GCC_BUILTIN_ATOMIC" = "TRUE"; then
7008 AC_MSG_RESULT([yes])
7009 AC_DEFINE(HAVE_GCC_BUILTIN_ATOMIC)
7014 AC_MSG_CHECKING([whether $CXX_BASE defines __base_class_type_info in cxxabi.h])
7016 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
7019 std::size_t f() { return sizeof(__cxxabiv1::__base_class_type_info); }
7021 AC_DEFINE([HAVE_CXXABI_H_BASE_CLASS_TYPE_INFO],[1])
7022 AC_MSG_RESULT([yes])
7023 ], [AC_MSG_RESULT([no])])
7026 AC_MSG_CHECKING([whether $CXX_BASE defines __class_type_info in cxxabi.h])
7028 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
7031 std::size_t f() { return sizeof(__cxxabiv1::__class_type_info); }
7033 AC_DEFINE([HAVE_CXXABI_H_CLASS_TYPE_INFO],[1])
7034 AC_MSG_RESULT([yes])
7035 ], [AC_MSG_RESULT([no])])
7038 AC_MSG_CHECKING([whether $CXX_BASE declares __cxa_allocate_exception in cxxabi.h])
7040 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
7042 void * f() { return __cxxabiv1::__cxa_allocate_exception(0); }
7044 AC_DEFINE([HAVE_CXXABI_H_CXA_ALLOCATE_EXCEPTION],[1])
7045 AC_MSG_RESULT([yes])
7046 ], [AC_MSG_RESULT([no])])
7049 AC_MSG_CHECKING([whether $CXX_BASE defines __cxa_eh_globals in cxxabi.h])
7051 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
7054 std::size_t f() { return sizeof(__cxxabiv1::__cxa_eh_globals); }
7056 AC_DEFINE([HAVE_CXXABI_H_CXA_EH_GLOBALS],[1])
7057 AC_MSG_RESULT([yes])
7058 ], [AC_MSG_RESULT([no])])
7061 AC_MSG_CHECKING([whether $CXX_BASE defines __cxa_exception in cxxabi.h])
7063 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
7066 std::size_t f() { return sizeof(__cxxabiv1::__cxa_exception); }
7068 AC_DEFINE([HAVE_CXXABI_H_CXA_EXCEPTION],[1])
7069 AC_MSG_RESULT([yes])
7070 ], [AC_MSG_RESULT([no])])
7073 AC_MSG_CHECKING([whether $CXX_BASE declares __cxa_get_globals in cxxabi.h])
7075 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
7077 void * f() { return __cxxabiv1::__cxa_get_globals(); }
7079 AC_DEFINE([HAVE_CXXABI_H_CXA_GET_GLOBALS],[1])
7080 AC_MSG_RESULT([yes])
7081 ], [AC_MSG_RESULT([no])])
7084 AC_MSG_CHECKING([whether $CXX_BASE declares __cxa_current_exception_type in cxxabi.h])
7086 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
7088 void * f() { return __cxxabiv1::__cxa_current_exception_type(); }
7090 AC_DEFINE([HAVE_CXXABI_H_CXA_CURRENT_EXCEPTION_TYPE],[1])
7091 AC_MSG_RESULT([yes])
7092 ], [AC_MSG_RESULT([no])])
7095 AC_MSG_CHECKING([whether $CXX_BASE declares __cxa_throw in cxxabi.h])
7097 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
7099 void f() { __cxxabiv1::__cxa_throw(0, 0, 0); }
7101 AC_DEFINE([HAVE_CXXABI_H_CXA_THROW],[1])
7102 AC_MSG_RESULT([yes])
7103 ], [AC_MSG_RESULT([no])])
7106 AC_MSG_CHECKING([whether $CXX_BASE defines __si_class_type_info in cxxabi.h])
7108 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
7111 std::size_t f() { return sizeof(__cxxabiv1::__si_class_type_info); }
7113 AC_DEFINE([HAVE_CXXABI_H_SI_CLASS_TYPE_INFO],[1])
7114 AC_MSG_RESULT([yes])
7115 ], [AC_MSG_RESULT([no])])
7118 AC_MSG_CHECKING([whether $CXX_BASE defines __vmi_class_type_info in cxxabi.h])
7120 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
7123 std::size_t f() { return sizeof(__cxxabiv1::__vmi_class_type_info); }
7125 AC_DEFINE([HAVE_CXXABI_H_VMI_CLASS_TYPE_INFO],[1])
7126 AC_MSG_RESULT([yes])
7127 ], [AC_MSG_RESULT([no])])
7131 AC_SUBST(HAVE_GCC_AVX)
7132 AC_SUBST(HAVE_GCC_BUILTIN_ATOMIC)
7133 AC_SUBST(HAVE_GCC_STACK_CLASH_PROTECTION)
7135 dnl ===================================================================
7136 dnl Identify the C++ library
7137 dnl ===================================================================
7139 AC_MSG_CHECKING([what the C++ library is])
7141 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
7147 [CPP_LIBRARY=GLIBCXX
7148 cpp_library_name="GNU libstdc++"
7150 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
7152 #ifndef _LIBCPP_VERSION
7157 cpp_library_name="LLVM libc++"
7158 AC_DEFINE([HAVE_LIBCXX])
7160 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
7167 cpp_library_name="Microsoft"
7169 AC_MSG_ERROR([Could not figure out what C++ library this is]))))
7170 AC_MSG_RESULT([$cpp_library_name])
7173 dnl ===================================================================
7175 dnl ===================================================================
7176 AC_PATH_PROG(GPERF, gperf)
7177 if test -z "$GPERF"; then
7178 AC_MSG_ERROR([gperf not found but needed. Install it.])
7180 if test "$GNUMAKE_WIN_NATIVE" = "TRUE" ; then
7181 GPERF=`cygpath -m $GPERF`
7183 AC_MSG_CHECKING([whether gperf is new enough])
7184 my_gperf_ver1=$($GPERF --version | head -n 1)
7185 my_gperf_ver2=${my_gperf_ver1#GNU gperf }
7186 my_gperf_ver3=$(printf %s "$my_gperf_ver2" | $AWK -F. '{ print $1*100+($2<100?$2:99) }')
7187 if test "$my_gperf_ver3" -ge 301; then
7188 AC_MSG_RESULT([yes ($my_gperf_ver2)])
7190 AC_MSG_ERROR(["$my_gperf_ver1" is too old or unrecognized, must be at least gperf 3.1])
7194 dnl ===================================================================
7195 dnl Check for system libcmis
7196 dnl ===================================================================
7197 # libcmis requires curl and we can't build curl for iOS
7198 if test "$test_cmis" = "yes" -a "$enable_cmis" = "yes"; then
7199 libo_CHECK_SYSTEM_MODULE([libcmis],[LIBCMIS],[libcmis-0.5 >= 0.5.2])
7204 AC_SUBST(ENABLE_LIBCMIS)
7206 dnl ===================================================================
7208 dnl ===================================================================
7210 AC_MSG_CHECKING([whether $CXX_BASE supports C++17])
7212 if test "$COM" = MSC -a "$COM_IS_CLANG" != TRUE; then
7213 if test "$with_latest_c__" = yes; then
7214 CXXFLAGS_CXX11=-std:c++latest
7216 CXXFLAGS_CXX11=-std:c++17
7218 CXXFLAGS_CXX11="$CXXFLAGS_CXX11 -permissive- -Zc:__cplusplus"
7219 elif test "$GCC" = "yes" -o "$COM_IS_CLANG" = TRUE; then
7220 my_flags='-std=c++17 -std=c++1z'
7221 if test "$with_latest_c__" = yes; then
7222 my_flags="-std=c++23 -std=c++2b -std=c++20 -std=c++2a $my_flags"
7224 for flag in $my_flags; do
7225 if test "$COM" = MSC; then
7226 flag="-Xclang $flag"
7228 save_CXXFLAGS=$CXXFLAGS
7229 CXXFLAGS="$CXXFLAGS $flag -Werror"
7230 if test "$SYSTEM_LIBCMIS" = TRUE; then
7231 CXXFLAGS="$CXXFLAGS -DSYSTEM_LIBCMIS $LIBCMIS_CFLAGS"
7234 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
7235 #include <algorithm>
7236 #include <functional>
7239 #if defined SYSTEM_LIBCMIS
7240 // See ucb/source/ucp/cmis/auth_provider.hxx:
7241 #if !defined __clang__
7242 #pragma GCC diagnostic push
7243 #pragma GCC diagnostic ignored "-Wdeprecated"
7244 #pragma GCC diagnostic ignored "-Wunused-but-set-parameter"
7246 #include <libcmis/libcmis.hxx>
7247 #if !defined __clang__
7248 #pragma GCC diagnostic pop
7252 void f(std::vector<int> & v, std::function<bool(int, int)> fn) {
7253 std::sort(v.begin(), v.end(), fn);
7255 ]])],[CXXFLAGS_CXX11=$flag])
7257 CXXFLAGS=$save_CXXFLAGS
7258 if test -n "$CXXFLAGS_CXX11"; then
7263 if test -n "$CXXFLAGS_CXX11"; then
7264 AC_MSG_RESULT([yes ($CXXFLAGS_CXX11)])
7268 AC_SUBST(CXXFLAGS_CXX11)
7270 if test "$GCC" = "yes"; then
7271 save_CXXFLAGS=$CXXFLAGS
7272 CXXFLAGS="$CXXFLAGS $CXXFLAGS_CXX11"
7274 CXXFLAGS=$save_CXXFLAGS
7275 AC_SUBST(ATOMIC_LIB)
7278 dnl Test for temporarily incompatible libstdc++ 4.7.{0,1}, where
7279 dnl <https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=179528> introduced
7280 dnl an additional member _M_size into C++11 std::list towards 4.7.0 and
7281 dnl <https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=189186> removed it
7282 dnl again towards 4.7.2:
7283 if test $CPP_LIBRARY = GLIBCXX; then
7284 AC_MSG_CHECKING([whether using C++11 causes libstdc++ 4.7.0/4.7.1 ABI breakage])
7286 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
7288 #if !defined __GLIBCXX__ || (__GLIBCXX__ != 20120322 && __GLIBCXX__ != 20120614)
7289 // according to <https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html>:
7290 // GCC 4.7.0: 20120322
7291 // GCC 4.7.1: 20120614
7292 // and using a range check is not possible as the mapping between
7293 // __GLIBCXX__ values and GCC versions is not monotonic
7298 ]])], [AC_MSG_RESULT(no, ok)],
7299 [AC_MSG_ERROR(yes)])
7303 AC_MSG_CHECKING([whether $CXX_BASE supports C++11 without Language Defect 757])
7304 save_CXXFLAGS=$CXXFLAGS
7305 CXXFLAGS="$CXXFLAGS $CXXFLAGS_CXX11"
7308 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
7311 template <typename T, size_t S> char (&sal_n_array_size( T(&)[S] ))[S];
7327 a thinga[]={{0,0}, {1,1}};
7328 b thingb[]={{0,0}, {1,1}};
7329 size_t i = sizeof(sal_n_array_size(thinga));
7330 size_t j = sizeof(sal_n_array_size(thingb));
7331 return !(i != 0 && j != 0);
7333 ], [ AC_MSG_RESULT(yes) ],
7334 [ AC_MSG_ERROR(no)])
7336 CXXFLAGS=$save_CXXFLAGS
7338 HAVE_GCC_FNO_SIZED_DEALLOCATION=
7339 if test "$GCC" = yes; then
7340 AC_MSG_CHECKING([whether $CXX_BASE supports -fno-sized-deallocation])
7342 save_CXXFLAGS=$CXXFLAGS
7343 CXXFLAGS="$CXXFLAGS -fno-sized-deallocation"
7344 AC_LINK_IFELSE([AC_LANG_PROGRAM()],[HAVE_GCC_FNO_SIZED_DEALLOCATION=TRUE])
7345 CXXFLAGS=$save_CXXFLAGS
7347 if test "$HAVE_GCC_FNO_SIZED_DEALLOCATION" = TRUE; then
7348 AC_MSG_RESULT([yes])
7353 AC_SUBST([HAVE_GCC_FNO_SIZED_DEALLOCATION])
7355 AC_MSG_CHECKING([whether $CXX_BASE supports a working C++20 consteval])
7356 dnl ...that does not suffer from <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96994> "Missing code
7357 dnl from consteval constructor initializing const variable",
7358 dnl <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98752> "wrong 'error: ‘this’ is not a constant
7359 dnl expression' with consteval constructor", or <https://bugs.llvm.org/show_bug.cgi?id=50063> "code
7360 dnl using consteval: 'clang/lib/CodeGen/Address.h:38: llvm::Value*
7361 dnl clang::CodeGen::Address::getPointer() const: Assertion `isValid()' failed.'":
7363 save_CXXFLAGS=$CXXFLAGS
7364 CXXFLAGS="$CXXFLAGS $CXXFLAGS_CXX11"
7365 AC_RUN_IFELSE([AC_LANG_PROGRAM([
7367 consteval S() { i = 1; }
7372 struct S1 { consteval S1(int) {} };
7387 return (s.i == 1) ? 0 : 1;
7389 AC_DEFINE([HAVE_CPP_CONSTEVAL],[1])
7390 AC_MSG_RESULT([yes])
7391 ], [AC_MSG_RESULT([no])], [AC_MSG_RESULT([assumed no (cross compiling)])])
7392 CXXFLAGS=$save_CXXFLAGS
7395 AC_MSG_CHECKING([whether $CXX_BASE supports C++2a constinit sorted vectors])
7397 save_CXXFLAGS=$CXXFLAGS
7398 CXXFLAGS="$CXXFLAGS $CXXFLAGS_CXX11"
7399 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
7400 #include <algorithm>
7401 #include <initializer_list>
7403 template<typename T> class S {
7407 constexpr S(std::initializer_list<T> i): v_(i) { std::sort(v_.begin(), v_.end()); }
7409 constinit S<int> s{3, 2, 1};
7411 AC_DEFINE([HAVE_CPP_CONSTINIT_SORTED_VECTOR],[1])
7412 AC_MSG_RESULT([yes])
7413 ], [AC_MSG_RESULT([no])])
7414 CXXFLAGS=$save_CXXFLAGS
7417 AC_MSG_CHECKING([whether $CXX_BASE supports C++2a <span> with unsigned size_type])
7419 save_CXXFLAGS=$CXXFLAGS
7420 CXXFLAGS="$CXXFLAGS $CXXFLAGS_CXX11"
7421 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
7423 #include <type_traits>
7424 // Don't check size_type directly, as it was called index_type before P1872R0:
7425 void f(std::span<int> s) { static_assert(std::is_unsigned_v<decltype(s.size())>); };
7427 AC_DEFINE([HAVE_CPP_SPAN],[1])
7428 AC_MSG_RESULT([yes])
7429 ], [AC_MSG_RESULT([no])])
7430 CXXFLAGS=$save_CXXFLAGS
7433 AC_MSG_CHECKING([whether $CXX_BASE implements C++ DR P1155R3])
7435 save_CXXFLAGS=$CXXFLAGS
7436 CXXFLAGS="$CXXFLAGS $CXXFLAGS_CXX11"
7437 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
7438 struct S1 { S1(S1 &&); };
7440 S1 f(S2 s) { return s; }
7442 AC_DEFINE([HAVE_P1155R3],[1])
7443 AC_MSG_RESULT([yes])
7444 ], [AC_MSG_RESULT([no])])
7445 CXXFLAGS=$save_CXXFLAGS
7448 dnl Supported since GCC 9 and Clang 10 (which each also started to support -Wdeprecated-copy, but
7449 dnl which is included in -Wextra anyway):
7450 HAVE_WDEPRECATED_COPY_DTOR=
7451 if test "$GCC" = yes; then
7452 AC_MSG_CHECKING([whether $CXX_BASE supports -Wdeprecated-copy-dtor])
7454 save_CXXFLAGS=$CXXFLAGS
7455 CXXFLAGS="$CXXFLAGS -Werror -Wdeprecated-copy-dtor"
7456 AC_COMPILE_IFELSE([AC_LANG_SOURCE()], [
7457 HAVE_WDEPRECATED_COPY_DTOR=TRUE
7458 AC_MSG_RESULT([yes])
7459 ], [AC_MSG_RESULT([no])])
7460 CXXFLAGS=$save_CXXFLAGS
7463 AC_SUBST([HAVE_WDEPRECATED_COPY_DTOR])
7465 dnl At least GCC 8.2 with -O2 (i.e., --enable-optimized) causes a false-positive -Wmaybe-
7466 dnl uninitialized warning for code like
7469 dnl boost::optional<OString> * g(bool b) {
7470 dnl boost::optional<OString> o;
7472 dnl return new boost::optional<OString>(o);
7475 dnl (as is e.g. present, in a slightly more elaborate form, in
7476 dnl librdf_TypeConverter::extractNode_NoLock in unoxml/source/rdf/librdf_repository.cxx); the below
7477 dnl code is meant to be a faithfully stripped-down and self-contained version of the above code:
7478 HAVE_BROKEN_GCC_WMAYBE_UNINITIALIZED=
7479 if test "$GCC" = yes && test "$COM_IS_CLANG" != TRUE; then
7480 AC_MSG_CHECKING([whether $CXX_BASE might report false -Werror=maybe-uninitialized])
7482 save_CXXFLAGS=$CXXFLAGS
7483 CXXFLAGS="$CXXFLAGS $CXXFLAGS_CXX11 -Werror -Wmaybe-uninitialized"
7484 if test "$ENABLE_OPTIMIZED" = TRUE; then
7485 CXXFLAGS="$CXXFLAGS -O2"
7487 CXXFLAGS="$CXXFLAGS -O0"
7489 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
7498 S2(S2 const & s) { if (s.init) set(*reinterpret_cast<S1 const *>(s.stg)); }
7499 ~S2() { if (init) reinterpret_cast<S1 *>(stg)->S1::~S1(); }
7505 char stg[sizeof (S1)];
7513 ]])], [AC_MSG_RESULT([no])], [
7514 HAVE_BROKEN_GCC_WMAYBE_UNINITIALIZED=TRUE
7515 AC_MSG_RESULT([yes])
7517 CXXFLAGS=$save_CXXFLAGS
7520 AC_SUBST([HAVE_BROKEN_GCC_WMAYBE_UNINITIALIZED])
7522 dnl Check for <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87296#c5> "[8/9/10/11 Regression]
7523 dnl -Wstringop-overflow false positive due to using MEM_REF type of &MEM" (fixed in GCC 11), which
7524 dnl hits us e.g. with GCC 10 and --enable-optimized at
7526 dnl In file included from include/rtl/string.hxx:49,
7527 dnl from include/rtl/ustring.hxx:43,
7528 dnl from include/osl/file.hxx:35,
7529 dnl from include/codemaker/global.hxx:28,
7530 dnl from include/codemaker/options.hxx:23,
7531 dnl from codemaker/source/commoncpp/commoncpp.cxx:24:
7532 dnl In function ‘char* rtl::addDataHelper(char*, const char*, std::size_t)’,
7533 dnl inlined from ‘static char* rtl::ToStringHelper<const char [N]>::addData(char*, const char*) [with long unsigned int N = 3]’ at include/rtl/stringconcat.hxx:147:85,
7534 dnl inlined from ‘char* rtl::OStringConcat<T1, T2>::addData(char*) const [with T1 = const char [3]; T2 = rtl::OString]’ at include/rtl/stringconcat.hxx:226:103,
7535 dnl inlined from ‘rtl::OStringBuffer& rtl::OStringBuffer::append(rtl::OStringConcat<T1, T2>&&) [with T1 = const char [3]; T2 = rtl::OString]’ at include/rtl/strbuf.hxx:599:30,
7536 dnl inlined from ‘rtl::OString codemaker::cpp::scopedCppName(const rtl::OString&, bool)’ at codemaker/source/commoncpp/commoncpp.cxx:53:55:
7537 dnl include/rtl/stringconcat.hxx:78:15: error: writing 2 bytes into a region of size 1 [-Werror=stringop-overflow=]
7538 dnl 78 | memcpy( buffer, data, length );
7539 dnl | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
7540 HAVE_BROKEN_GCC_WSTRINGOP_OVERFLOW=
7541 if test "$GCC" = yes && test "$COM_IS_CLANG" != TRUE; then
7542 AC_MSG_CHECKING([whether $CXX_BASE might report false -Werror=stringop-overflow=])
7544 save_CXXFLAGS=$CXXFLAGS
7545 CXXFLAGS="$CXXFLAGS $CXXFLAGS_CXX11 -Werror -Wstringop-overflow"
7546 if test "$ENABLE_OPTIMIZED" = TRUE; then
7547 CXXFLAGS="$CXXFLAGS -O2"
7549 CXXFLAGS="$CXXFLAGS -O0"
7551 dnl Test code taken from <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87296#c0>:
7552 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
7553 void fill(char const * begin, char const * end, char c);
7559 fill(c.ids, c.ids + sizeof(c.ids), '\0');
7560 __builtin_strncpy(c.username, "root", sizeof(c.username));
7562 ]])], [AC_MSG_RESULT([no])], [
7563 HAVE_BROKEN_GCC_WSTRINGOP_OVERFLOW=TRUE
7564 AC_MSG_RESULT([yes])
7566 CXXFLAGS=$save_CXXFLAGS
7569 AC_SUBST([HAVE_BROKEN_GCC_WSTRINGOP_OVERFLOW])
7571 dnl ===================================================================
7572 dnl CPU Intrinsics support - SSE, AVX
7573 dnl ===================================================================
7575 CXXFLAGS_INTRINSICS_SSE2=
7576 CXXFLAGS_INTRINSICS_SSSE3=
7577 CXXFLAGS_INTRINSICS_SSE41=
7578 CXXFLAGS_INTRINSICS_SSE42=
7579 CXXFLAGS_INTRINSICS_AVX=
7580 CXXFLAGS_INTRINSICS_AVX2=
7581 CXXFLAGS_INTRINSICS_AVX512=
7582 CXXFLAGS_INTRINSICS_F16C=
7583 CXXFLAGS_INTRINSICS_FMA=
7585 if test "$GCC" = "yes" -o "$COM_IS_CLANG" = TRUE; then
7586 # GCC, Clang or Clang-cl (clang-cl + MSVC's -arch options don't work well together)
7593 flag_avx512="-mavx512f -mavx512vl -mavx512bw -mavx512dq -mavx512cd"
7597 # https://docs.microsoft.com/en-us/cpp/build/reference/arch-x86
7598 # MSVC seems to differentiate only between SSE and SSE2, where in fact
7599 # SSE2 seems to be SSE2+.
7600 # Even if -arch:SSE2 is the default, set it explicitly, so that the variable
7601 # is not empty (and can be tested in gbuild).
7602 flag_sse2=-arch:SSE2
7603 flag_ssse3=-arch:SSE2
7604 flag_sse41=-arch:SSE2
7605 flag_sse42=-arch:SSE2
7607 flag_avx2=-arch:AVX2
7608 flag_avx512=-arch:AVX512
7609 # These are part of -arch:AVX2
7610 flag_f16c=-arch:AVX2
7614 AC_MSG_CHECKING([whether $CXX can compile SSE2 intrinsics])
7616 save_CXXFLAGS=$CXXFLAGS
7617 CXXFLAGS="$CXXFLAGS $flag_sse2"
7618 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
7619 #include <emmintrin.h>
7621 __m128i a = _mm_set1_epi32 (0), b = _mm_set1_epi32 (0), c;
7622 c = _mm_xor_si128 (a, b);
7626 [can_compile_sse2=yes],
7627 [can_compile_sse2=no])
7629 CXXFLAGS=$save_CXXFLAGS
7630 AC_MSG_RESULT([${can_compile_sse2}])
7631 if test "${can_compile_sse2}" = "yes" ; then
7632 CXXFLAGS_INTRINSICS_SSE2="$flag_sse2"
7635 AC_MSG_CHECKING([whether $CXX can compile SSSE3 intrinsics])
7637 save_CXXFLAGS=$CXXFLAGS
7638 CXXFLAGS="$CXXFLAGS $flag_ssse3"
7639 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
7640 #include <tmmintrin.h>
7642 __m128i a = _mm_set1_epi32 (0), b = _mm_set1_epi32 (0), c;
7643 c = _mm_maddubs_epi16 (a, b);
7647 [can_compile_ssse3=yes],
7648 [can_compile_ssse3=no])
7650 CXXFLAGS=$save_CXXFLAGS
7651 AC_MSG_RESULT([${can_compile_ssse3}])
7652 if test "${can_compile_ssse3}" = "yes" ; then
7653 CXXFLAGS_INTRINSICS_SSSE3="$flag_ssse3"
7656 AC_MSG_CHECKING([whether $CXX can compile SSE4.1 intrinsics])
7658 save_CXXFLAGS=$CXXFLAGS
7659 CXXFLAGS="$CXXFLAGS $flag_sse41"
7660 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
7661 #include <smmintrin.h>
7663 __m128i a = _mm_set1_epi32 (0), b = _mm_set1_epi32 (0), c;
7664 c = _mm_cmpeq_epi64 (a, b);
7668 [can_compile_sse41=yes],
7669 [can_compile_sse41=no])
7671 CXXFLAGS=$save_CXXFLAGS
7672 AC_MSG_RESULT([${can_compile_sse41}])
7673 if test "${can_compile_sse41}" = "yes" ; then
7674 CXXFLAGS_INTRINSICS_SSE41="$flag_sse41"
7677 AC_MSG_CHECKING([whether $CXX can compile SSE4.2 intrinsics])
7679 save_CXXFLAGS=$CXXFLAGS
7680 CXXFLAGS="$CXXFLAGS $flag_sse42"
7681 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
7682 #include <nmmintrin.h>
7684 __m128i a = _mm_set1_epi32 (0), b = _mm_set1_epi32 (0), c;
7685 c = _mm_cmpgt_epi64 (a, b);
7689 [can_compile_sse42=yes],
7690 [can_compile_sse42=no])
7692 CXXFLAGS=$save_CXXFLAGS
7693 AC_MSG_RESULT([${can_compile_sse42}])
7694 if test "${can_compile_sse42}" = "yes" ; then
7695 CXXFLAGS_INTRINSICS_SSE42="$flag_sse42"
7698 AC_MSG_CHECKING([whether $CXX can compile AVX intrinsics])
7700 save_CXXFLAGS=$CXXFLAGS
7701 CXXFLAGS="$CXXFLAGS $flag_avx"
7702 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
7703 #include <immintrin.h>
7705 __m256 a = _mm256_set1_ps (0.0f), b = _mm256_set1_ps (0.0f), c;
7706 c = _mm256_xor_ps(a, b);
7710 [can_compile_avx=yes],
7711 [can_compile_avx=no])
7713 CXXFLAGS=$save_CXXFLAGS
7714 AC_MSG_RESULT([${can_compile_avx}])
7715 if test "${can_compile_avx}" = "yes" ; then
7716 CXXFLAGS_INTRINSICS_AVX="$flag_avx"
7719 AC_MSG_CHECKING([whether $CXX can compile AVX2 intrinsics])
7721 save_CXXFLAGS=$CXXFLAGS
7722 CXXFLAGS="$CXXFLAGS $flag_avx2"
7723 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
7724 #include <immintrin.h>
7726 __m256i a = _mm256_set1_epi32 (0), b = _mm256_set1_epi32 (0), c;
7727 c = _mm256_maddubs_epi16(a, b);
7731 [can_compile_avx2=yes],
7732 [can_compile_avx2=no])
7734 CXXFLAGS=$save_CXXFLAGS
7735 AC_MSG_RESULT([${can_compile_avx2}])
7736 if test "${can_compile_avx2}" = "yes" ; then
7737 CXXFLAGS_INTRINSICS_AVX2="$flag_avx2"
7740 AC_MSG_CHECKING([whether $CXX can compile AVX512 intrinsics])
7742 save_CXXFLAGS=$CXXFLAGS
7743 CXXFLAGS="$CXXFLAGS $flag_avx512"
7744 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
7745 #include <immintrin.h>
7747 __m512i a = _mm512_loadu_si512(0);
7751 [can_compile_avx512=yes],
7752 [can_compile_avx512=no])
7754 CXXFLAGS=$save_CXXFLAGS
7755 AC_MSG_RESULT([${can_compile_avx512}])
7756 if test "${can_compile_avx512}" = "yes" ; then
7757 CXXFLAGS_INTRINSICS_AVX512="$flag_avx512"
7760 AC_MSG_CHECKING([whether $CXX can compile F16C intrinsics])
7762 save_CXXFLAGS=$CXXFLAGS
7763 CXXFLAGS="$CXXFLAGS $flag_f16c"
7764 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
7765 #include <immintrin.h>
7767 __m128i a = _mm_set1_epi32 (0);
7769 c = _mm_cvtph_ps(a);
7773 [can_compile_f16c=yes],
7774 [can_compile_f16c=no])
7776 CXXFLAGS=$save_CXXFLAGS
7777 AC_MSG_RESULT([${can_compile_f16c}])
7778 if test "${can_compile_f16c}" = "yes" ; then
7779 CXXFLAGS_INTRINSICS_F16C="$flag_f16c"
7782 AC_MSG_CHECKING([whether $CXX can compile FMA intrinsics])
7784 save_CXXFLAGS=$CXXFLAGS
7785 CXXFLAGS="$CXXFLAGS $flag_fma"
7786 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
7787 #include <immintrin.h>
7789 __m256 a = _mm256_set1_ps (0.0f), b = _mm256_set1_ps (0.0f), c = _mm256_set1_ps (0.0f), d;
7790 d = _mm256_fmadd_ps(a, b, c);
7794 [can_compile_fma=yes],
7795 [can_compile_fma=no])
7797 CXXFLAGS=$save_CXXFLAGS
7798 AC_MSG_RESULT([${can_compile_fma}])
7799 if test "${can_compile_fma}" = "yes" ; then
7800 CXXFLAGS_INTRINSICS_FMA="$flag_fma"
7803 AC_SUBST([CXXFLAGS_INTRINSICS_SSE2])
7804 AC_SUBST([CXXFLAGS_INTRINSICS_SSSE3])
7805 AC_SUBST([CXXFLAGS_INTRINSICS_SSE41])
7806 AC_SUBST([CXXFLAGS_INTRINSICS_SSE42])
7807 AC_SUBST([CXXFLAGS_INTRINSICS_AVX])
7808 AC_SUBST([CXXFLAGS_INTRINSICS_AVX2])
7809 AC_SUBST([CXXFLAGS_INTRINSICS_AVX512])
7810 AC_SUBST([CXXFLAGS_INTRINSICS_F16C])
7811 AC_SUBST([CXXFLAGS_INTRINSICS_FMA])
7813 dnl ===================================================================
7814 dnl system stl sanity tests
7815 dnl ===================================================================
7816 if test "$_os" != "WINNT"; then
7820 save_CPPFLAGS="$CPPFLAGS"
7821 if test -n "$MACOSX_SDK_PATH"; then
7822 CPPFLAGS="-isysroot $MACOSX_SDK_PATH $CPPFLAGS"
7825 # Assume visibility is not broken with libc++. The below test is very much designed for libstdc++
7827 if test "$CPP_LIBRARY" = GLIBCXX; then
7828 dnl gcc#19664, gcc#22482, rhbz#162935
7829 AC_MSG_CHECKING([if STL headers are visibility safe (GCC bug 22482)])
7830 AC_EGREP_HEADER(visibility push, string, stlvisok=yes, stlvisok=no)
7831 AC_MSG_RESULT([$stlvisok])
7832 if test "$stlvisok" = "no"; then
7833 AC_MSG_ERROR([Your libstdc++ headers are not visibility safe. This is no longer supported.])
7837 # As the below test checks things when linking self-compiled dynamic libraries, it presumably is irrelevant
7838 # when we don't make any dynamic libraries?
7839 if test "$DISABLE_DYNLOADING" = ""; then
7840 AC_MSG_CHECKING([if $CXX_BASE is -fvisibility-inlines-hidden safe (Clang bug 11250)])
7841 cat > conftestlib1.cc <<_ACEOF
7842 template<typename T> struct S1 { virtual ~S1() {} virtual void f() {} };
7843 struct S2: S1<int> { virtual ~S2(); };
7846 cat > conftestlib2.cc <<_ACEOF
7847 template<typename T> struct S1 { virtual ~S1() {} virtual void f() {} };
7848 struct S2: S1<int> { virtual ~S2(); };
7849 struct S3: S2 { virtual ~S3(); }; S3::~S3() {}
7851 gccvisinlineshiddenok=yes
7852 if ! $CXX $CXXFLAGS $CPPFLAGS $LINKFLAGSSHL -fPIC -fvisibility-inlines-hidden conftestlib1.cc -o libconftest1$DLLPOST >/dev/null 2>&5; then
7853 gccvisinlineshiddenok=no
7855 dnl At least Clang -fsanitize=address and -fsanitize=undefined are
7856 dnl known to not work with -z defs (unsetting which makes the test
7858 my_linkflagsnoundefs=$LINKFLAGSNOUNDEFS
7859 if test "$COM_IS_CLANG" = TRUE; then
7860 for i in $CXX $CXXFLAGS; do
7863 my_linkflagsnoundefs=
7869 if ! $CXX $CXXFLAGS $CPPFLAGS $LINKFLAGSSHL -fPIC -fvisibility-inlines-hidden conftestlib2.cc -L. -lconftest1 $my_linkflagsnoundefs -o libconftest2$DLLPOST >/dev/null 2>&5; then
7870 gccvisinlineshiddenok=no
7875 AC_MSG_RESULT([$gccvisinlineshiddenok])
7876 if test "$gccvisinlineshiddenok" = "no"; then
7877 AC_MSG_ERROR([Your gcc/clang is not -fvisibility-inlines-hidden safe. This is no longer supported.])
7881 AC_MSG_CHECKING([if $CXX_BASE has a visibility bug with class-level attributes (GCC bug 26905)])
7882 cat >visibility.cxx <<_ACEOF
7883 #pragma GCC visibility push(hidden)
7884 struct __attribute__ ((visibility ("default"))) TestStruct {
7887 __attribute__ ((visibility ("default"))) void TestFunc() {
7891 if ! $CXX $CXXFLAGS $CPPFLAGS -fpic -S visibility.cxx; then
7896 if test "$_os" = "Darwin" -o "$_os" = "iOS"; then
7899 if $EGREP -q '@PLT|@GOT' visibility.s || test "$ENABLE_LTO" = "TRUE"; then
7911 rm -f visibility.s visibility.cxx
7913 AC_MSG_RESULT([$gccvisbroken])
7914 if test "$gccvisbroken" = "yes"; then
7915 AC_MSG_ERROR([Your gcc is not -fvisibility=hidden safe. This is no longer supported.])
7918 CPPFLAGS="$save_CPPFLAGS"
7923 dnl ===================================================================
7925 dnl ===================================================================
7927 HAVE_GCC_FNO_ENFORCE_EH_SPECS=
7928 if test "$GCC" = "yes"; then
7929 AC_MSG_CHECKING([whether $CXX_BASE supports -fno-enforce-eh-specs])
7931 save_CXXFLAGS=$CXXFLAGS
7932 CXXFLAGS="$CFLAGS -Werror -fno-enforce-eh-specs"
7933 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[ return 0; ]])],[ HAVE_GCC_FNO_ENFORCE_EH_SPECS=TRUE ],[])
7934 CXXFLAGS=$save_CXXFLAGS
7936 if test "$HAVE_GCC_FNO_ENFORCE_EH_SPECS" = "TRUE"; then
7937 AC_MSG_RESULT([yes])
7942 AC_SUBST(HAVE_GCC_FNO_ENFORCE_EH_SPECS)
7944 dnl ===================================================================
7945 dnl Compiler plugins
7946 dnl ===================================================================
7949 # currently only Clang
7951 if test "$COM_IS_CLANG" != "TRUE"; then
7952 if test "$libo_fuzzed_enable_compiler_plugins" = yes -a "$enable_compiler_plugins" = yes; then
7953 AC_MSG_NOTICE([Resetting --enable-compiler-plugins=no])
7954 enable_compiler_plugins=no
7958 COMPILER_PLUGINS_COM_IS_CLANG=
7959 if test "$COM_IS_CLANG" = "TRUE"; then
7960 if test -n "$enable_compiler_plugins"; then
7961 compiler_plugins="$enable_compiler_plugins"
7962 elif test -n "$ENABLE_DBGUTIL"; then
7963 compiler_plugins=test
7967 if test "$compiler_plugins" != no -a "$my_apple_clang" != yes; then
7968 if test "$CLANGVER" -lt 50002; then
7969 if test "$compiler_plugins" = yes; then
7970 AC_MSG_ERROR([Clang $CLANGVER is too old to build compiler plugins; need >= 5.0.2.])
7976 if test "$compiler_plugins" != "no"; then
7977 dnl The prefix where Clang resides, override to where Clang resides if
7978 dnl using a source build:
7979 if test -z "$CLANGDIR"; then
7980 CLANGDIR=$(dirname $(dirname $($CXX -print-prog-name=$(basename $(printf '%s\n' $CXX | grep clang | head -n 1)))))
7982 # Assume Clang is self-built, but allow overriding COMPILER_PLUGINS_CXX to the compiler Clang was built with.
7983 if test -z "$COMPILER_PLUGINS_CXX"; then
7984 COMPILER_PLUGINS_CXX=[$(echo $CXX | sed -e 's/-fsanitize=[^ ]*//g')]
7986 clangbindir=$CLANGDIR/bin
7987 if test "$build_os" = "cygwin"; then
7988 clangbindir=$(cygpath -u "$clangbindir")
7990 AC_PATH_PROG(LLVM_CONFIG, llvm-config,[],"$clangbindir" $PATH)
7991 if test -n "$LLVM_CONFIG"; then
7992 COMPILER_PLUGINS_CXXFLAGS=$($LLVM_CONFIG --cxxflags)
7993 COMPILER_PLUGINS_LINKFLAGS=$($LLVM_CONFIG --ldflags --libs --system-libs | tr '\n' ' ')
7994 if test -z "$CLANGLIBDIR"; then
7995 CLANGLIBDIR=$($LLVM_CONFIG --libdir)
7997 # Try if clang is built from source (in which case its includes are not together with llvm includes).
7998 # src-root is [llvm-toplevel-src-dir]/llvm, clang is [llvm-toplevel-src-dir]/clang
7999 clangsrcdir=$(dirname $($LLVM_CONFIG --src-root))
8000 if test -n "$clangsrcdir" -a -d "$clangsrcdir" -a -d "$clangsrcdir/clang/include"; then
8001 COMPILER_PLUGINS_CXXFLAGS="$COMPILER_PLUGINS_CXXFLAGS -I$clangsrcdir/clang/include"
8003 # obj-root is [llvm-toplevel-obj-dir]/, clang is [llvm-toplevel-obj-dir]/tools/clang
8004 clangobjdir=$($LLVM_CONFIG --obj-root)
8005 if test -n "$clangobjdir" -a -d "$clangobjdir" -a -d "$clangobjdir/tools/clang/include"; then
8006 COMPILER_PLUGINS_CXXFLAGS="$COMPILER_PLUGINS_CXXFLAGS -I$clangobjdir/tools/clang/include"
8009 AC_MSG_NOTICE([compiler plugins compile flags: $COMPILER_PLUGINS_CXXFLAGS])
8013 save_CPPFLAGS=$CPPFLAGS
8014 save_CXXFLAGS=$CXXFLAGS
8015 save_LDFLAGS=$LDFLAGS
8017 CXX=$COMPILER_PLUGINS_CXX
8018 CXXCPP="$COMPILER_PLUGINS_CXX -E"
8019 CPPFLAGS="$COMPILER_PLUGINS_CXXFLAGS"
8020 CXXFLAGS="$COMPILER_PLUGINS_CXXFLAGS"
8021 AC_CHECK_HEADER(clang/Basic/SourceLocation.h,
8022 [COMPILER_PLUGINS=TRUE],
8024 if test "$compiler_plugins" = "yes"; then
8025 AC_MSG_ERROR([Cannot find Clang headers to build compiler plugins.])
8027 AC_MSG_WARN([Cannot find Clang headers to build compiler plugins, plugins disabled])
8028 add_warning "Cannot find Clang headers to build compiler plugins, plugins disabled."
8031 dnl TODO: Windows doesn't use LO_CLANG_SHARED_PLUGINS for now, see corresponding TODO
8032 dnl comment in compilerplugins/Makefile-clang.mk:
8033 if test -n "$COMPILER_PLUGINS" && test "$_os" != "WINNT"; then
8035 AC_MSG_CHECKING([for clang libraries to use])
8036 if test -z "$CLANGTOOLLIBS"; then
8037 LIBS="-lclangTooling -lclangFrontend -lclangDriver -lclangParse -lclangSema -lclangEdit \
8038 -lclangAnalysis -lclangAST -lclangLex -lclangSerialization -lclangBasic $COMPILER_PLUGINS_LINKFLAGS"
8040 AC_LANG_PROGRAM([[#include "clang/Basic/SourceLocation.h"]],
8041 [[ clang::FullSourceLoc().dump(); ]])
8042 ],[CLANGTOOLLIBS="$LIBS"],[])
8044 if test -z "$CLANGTOOLLIBS"; then
8045 LIBS="-lclang-cpp $COMPILER_PLUGINS_LINKFLAGS"
8047 AC_LANG_PROGRAM([[#include "clang/Basic/SourceLocation.h"]],
8048 [[ clang::FullSourceLoc().dump(); ]])
8049 ],[CLANGTOOLLIBS="$LIBS"],[])
8051 AC_MSG_RESULT([$CLANGTOOLLIBS])
8052 if test -z "$CLANGTOOLLIBS"; then
8053 if test "$compiler_plugins" = "yes"; then
8054 AC_MSG_ERROR([Cannot find Clang libraries to build compiler plugins.])
8056 AC_MSG_WARN([Cannot find Clang libraries to build compiler plugins, plugins disabled])
8057 add_warning "Cannot find Clang libraries to build compiler plugins, plugins disabled."
8061 if test -n "$COMPILER_PLUGINS"; then
8062 if test -z "$CLANGSYSINCLUDE"; then
8063 if test -n "$LLVM_CONFIG"; then
8064 # Path to the clang system headers (no idea if there's a better way to get it).
8065 CLANGSYSINCLUDE=$($LLVM_CONFIG --libdir)/clang/$($LLVM_CONFIG --version | sed 's/git\|svn//')/include
8072 CPPFLAGS=$save_CPPFLAGS
8073 CXXFLAGS=$save_CXXFLAGS
8074 LDFLAGS=$save_LDFLAGS
8078 AC_MSG_CHECKING([whether the compiler for building compilerplugins is actually Clang])
8079 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
8085 [AC_MSG_RESULT([yes])
8086 COMPILER_PLUGINS_COM_IS_CLANG=TRUE],
8087 [AC_MSG_RESULT([no])])
8088 AC_SUBST(COMPILER_PLUGINS_COM_IS_CLANG)
8091 if test "$enable_compiler_plugins" = "yes"; then
8092 AC_MSG_ERROR([Compiler plugins are currently supported only with the Clang compiler.])
8095 COMPILER_PLUGINS_ANALYZER_PCH=
8096 if test "$enable_compiler_plugins_analyzer_pch" != no; then
8097 COMPILER_PLUGINS_ANALYZER_PCH=TRUE
8099 AC_SUBST(COMPILER_PLUGINS)
8100 AC_SUBST(COMPILER_PLUGINS_ANALYZER_PCH)
8101 AC_SUBST(COMPILER_PLUGINS_COM_IS_CLANG)
8102 AC_SUBST(COMPILER_PLUGINS_CXX)
8103 AC_SUBST(COMPILER_PLUGINS_CXXFLAGS)
8104 AC_SUBST(COMPILER_PLUGINS_CXX_LINKFLAGS)
8105 AC_SUBST(COMPILER_PLUGINS_DEBUG)
8106 AC_SUBST(COMPILER_PLUGINS_TOOLING_ARGS)
8108 AC_SUBST(CLANGLIBDIR)
8109 AC_SUBST(CLANGTOOLLIBS)
8110 AC_SUBST(CLANGSYSINCLUDE)
8112 # Plugin to help linker.
8113 # Add something like LD_PLUGIN=/usr/lib64/LLVMgold.so to your autogen.input.
8114 # This makes --enable-lto build with clang work.
8117 AC_CHECK_FUNCS(posix_fallocate, HAVE_POSIX_FALLOCATE=YES, [HAVE_POSIX_FALLOCATE=NO])
8118 AC_SUBST(HAVE_POSIX_FALLOCATE)
8120 JITC_PROCESSOR_TYPE=""
8121 if test "$_os" = "Linux" -a "$host_cpu" = "powerpc"; then
8122 # IBMs JDK needs this...
8123 JITC_PROCESSOR_TYPE=6
8124 export JITC_PROCESSOR_TYPE
8126 AC_SUBST([JITC_PROCESSOR_TYPE])
8128 # Misc Windows Stuff
8129 AC_ARG_WITH(ucrt-dir,
8130 AS_HELP_STRING([--with-ucrt-dir],
8131 [path to the directory with the arch-specific MSU packages of the Windows Universal CRT redistributables
8132 (MS KB 2999226) for packaging into the installsets (without those the target system needs to install
8133 the UCRT or Visual C++ Runtimes manually). The directory must contain the following 6 files:
8134 Windows6.1-KB2999226-x64.msu
8135 Windows6.1-KB2999226-x86.msu
8136 Windows8.1-KB2999226-x64.msu
8137 Windows8.1-KB2999226-x86.msu
8138 Windows8-RT-KB2999226-x64.msu
8139 Windows8-RT-KB2999226-x86.msu
8140 A zip archive including those files is available from Microsoft site:
8141 https://www.microsoft.com/en-us/download/details.aspx?id=48234]),
8144 UCRT_REDISTDIR="$with_ucrt_dir"
8145 if test $_os = "WINNT"; then
8147 for i in $PKGFORMAT; do
8148 if test "$i" = msi; then
8153 MSVC_DLL_PATH=`win_short_path_for_make "$msvcdllpath"`
8154 MSVC_DLLS="$msvcdlls"
8155 test -n "$msmdir" && MSM_PATH=`win_short_path_for_make "$msmdir"`
8156 # MSVC 15.3 changed it to VC141
8157 if echo "$msvcdllpath" | grep -q "VC142.CRT$"; then
8158 SCPDEFS="$SCPDEFS -DWITH_VC142_REDIST"
8159 elif echo "$msvcdllpath" | grep -q "VC141.CRT$"; then
8160 SCPDEFS="$SCPDEFS -DWITH_VC141_REDIST"
8162 SCPDEFS="$SCPDEFS -DWITH_VC${VCVER}_REDIST"
8165 if test "$UCRT_REDISTDIR" = "no"; then
8166 dnl explicitly disabled
8169 if ! test -f "$UCRT_REDISTDIR/Windows6.1-KB2999226-x64.msu" -a \
8170 -f "$UCRT_REDISTDIR/Windows6.1-KB2999226-x86.msu" -a \
8171 -f "$UCRT_REDISTDIR/Windows8.1-KB2999226-x64.msu" -a \
8172 -f "$UCRT_REDISTDIR/Windows8.1-KB2999226-x86.msu" -a \
8173 -f "$UCRT_REDISTDIR/Windows8-RT-KB2999226-x64.msu" -a \
8174 -f "$UCRT_REDISTDIR/Windows8-RT-KB2999226-x86.msu"; then
8176 if test -n "$PKGFORMAT"; then
8177 for i in $PKGFORMAT; do
8180 AC_MSG_WARN([--without-ucrt-dir not specified or MSUs not found - installer will have runtime dependency])
8181 add_warning "--without-ucrt-dir not specified or MSUs not found - installer will have runtime dependency"
8190 AC_SUBST(UCRT_REDISTDIR)
8191 AC_SUBST(MSVC_DLL_PATH)
8196 dnl ===================================================================
8198 dnl ===================================================================
8199 if test "$ENABLE_JAVA" != ""; then
8201 # Windows-specific tests
8202 if test "$build_os" = "cygwin"; then
8203 if test -z "$with_jdk_home"; then
8204 dnl See <https://docs.oracle.com/javase/9/migrate/toc.htm#JSMIG-GUID-EEED398E-AE37-4D12-
8205 dnl AB10-49F82F720027> section "Windows Registry Key Changes":
8206 reg_get_value "$WIN_HOST_BITS" "HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/JDK/CurrentVersion"
8207 if test -n "$regvalue"; then
8209 reg_get_value "$WIN_HOST_BITS" "HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/JDK/$ver/JavaHome"
8210 with_jdk_home=$regvalue
8212 howfound="found automatically"
8214 with_jdk_home=`win_short_path_for_make "$with_jdk_home"`
8215 howfound="you passed"
8218 if ! test -f "$with_jdk_home/lib/jvm.lib" -a -f "$with_jdk_home/bin/java.exe"; then
8219 AC_MSG_ERROR([No JDK found, pass the --with-jdk-home option (or fix the path) pointing to a $WIN_HOST_BITS-bit JDK >= 9])
8223 # 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.
8224 # /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java, but /usr does not contain the JDK libraries
8225 if test -z "$with_jdk_home" -a "$_os" = "Darwin" -a -x /usr/libexec/java_home; then
8226 with_jdk_home=`/usr/libexec/java_home`
8229 JAVA_HOME=; export JAVA_HOME
8230 if test -z "$with_jdk_home"; then
8231 AC_PATH_PROG(JAVAINTERPRETER, $with_java)
8233 _java_path="$with_jdk_home/bin/$with_java"
8234 dnl Check if there is a Java interpreter at all.
8235 if test -x "$_java_path"; then
8236 JAVAINTERPRETER=$_java_path
8238 AC_MSG_ERROR([$_java_path not found, pass --with-jdk-home])
8242 dnl Check that the JDK found is correct architecture (at least 2 reasons to
8243 dnl check: officebean needs to link -ljawt, and libjpipe.so needs to be
8244 dnl loaded by java to run JunitTests:
8245 if test "$build_os" = "cygwin" -a "$cross_compiling" != "yes"; then
8246 shortjdkhome=`cygpath -d "$with_jdk_home"`
8247 if test $WIN_HOST_BITS -eq 64 -a -f "$with_jdk_home/bin/java.exe" -a "`$shortjdkhome/bin/java.exe -version 2>&1 | $GREP -i 64-bit`" = "" >/dev/null; then
8248 AC_MSG_WARN([You are building 64-bit binaries but the JDK $howfound is 32-bit])
8249 AC_MSG_ERROR([You should pass the --with-jdk-home option pointing to a 64-bit JDK])
8250 elif test $WIN_HOST_BITS -eq 32 -a -f "$with_jdk_home/bin/java.exe" -a "`$shortjdkhome/bin/java.exe -version 2>&1 | $GREP -i 64-bit`" != "" >/dev/null; then
8251 AC_MSG_WARN([You are building 32-bit binaries but the JDK $howfound is 64-bit])
8252 AC_MSG_ERROR([You should pass the --with-jdk-home option pointing to a (32-bit) JDK])
8255 if test x`echo "$JAVAINTERPRETER" | $GREP -i '\.exe$'` = x; then
8256 JAVAINTERPRETER="${JAVAINTERPRETER}.exe"
8258 JAVAINTERPRETER=`win_short_path_for_make "$JAVAINTERPRETER"`
8259 elif test "$cross_compiling" != "yes"; then
8261 AARCH64|AXP|X86_64|HPPA|IA64|POWERPC64|S390X|SPARC64|GODSON64)
8262 if test -f "$JAVAINTERPRETER" -a "`$JAVAINTERPRETER -version 2>&1 | $GREP -i 64-bit`" = "" >/dev/null; then
8263 AC_MSG_WARN([You are building 64-bit binaries but the JDK $JAVAINTERPRETER is 32-bit])
8264 AC_MSG_ERROR([You should pass the --with-jdk-home option pointing to a 64-bit JDK])
8267 *) # assumption: everything else 32-bit
8268 if test -f "$JAVAINTERPRETER" -a "`$JAVAINTERPRETER -version 2>&1 | $GREP -i 64-bit`" != "" >/dev/null; then
8269 AC_MSG_WARN([You are building 32-bit binaries but the JDK $howfound is 64-bit])
8270 AC_MSG_ERROR([You should pass the --with-jdk-home option pointing to a (32-bit) JDK])
8277 dnl ===================================================================
8279 dnl ===================================================================
8281 # Whether all the complexity here actually is needed any more or not, no idea.
8283 if test "$ENABLE_JAVA" != "" -a "$cross_compiling" != "yes"; then
8285 AC_MSG_CHECKING([the installed JDK])
8286 if test -n "$JAVAINTERPRETER"; then
8287 dnl java -version sends output to stderr!
8288 if test `$JAVAINTERPRETER -version 2>&1 | $GREP -c "Kaffe"` -gt 0; then
8289 AC_MSG_ERROR([No valid check available. Please check the block for your desired java in configure.ac])
8290 elif test `$JAVAINTERPRETER --version 2>&1 | $GREP -c "GNU libgcj"` -gt 0; then
8291 AC_MSG_ERROR([No valid check available. Please check the block for your desired java in configure.ac])
8292 elif test `$JAVAINTERPRETER -version 2>&1 | $AWK '{ print }' | $GREP -c "BEA"` -gt 0; then
8293 AC_MSG_ERROR([No valid check available. Please check the block for your desired java in configure.ac])
8294 elif test `$JAVAINTERPRETER -version 2>&1 | $AWK '{ print }' | $GREP -c "IBM"` -gt 0; then
8295 AC_MSG_ERROR([No valid check available. Please check the block for your desired java in configure.ac])
8299 dnl Sun JDK specific tests
8300 _jdk=`$JAVAINTERPRETER -version 2>&1 | $AWK -F'"' '{ print \$2 }' | $SED '/^$/d' | $SED s/[[-A-Za-z]]*//`
8301 _jdk_ver=`echo "$_jdk" | $AWK -F. '{ print (($1 * 100) + $2) * 100 + $3;}'`
8303 if test "$_jdk_ver" -lt 10900; then
8304 AC_MSG_ERROR([JDK is too old, you need at least 9 ($_jdk_ver < 10900)])
8306 if test "$_jdk_ver" -gt 10900; then
8307 JAVA_CLASSPATH_NOT_SET=TRUE
8310 JAVA_HOME=`echo $JAVAINTERPRETER | $SED -n "s,//*bin//*java,,p"`
8311 if test "$_os" = "WINNT"; then
8312 JAVA_HOME=`echo $JAVA_HOME | $SED "s,\.[[eE]][[xX]][[eE]]$,,"`
8314 AC_MSG_RESULT([found $JAVA_HOME (JDK $_jdk)])
8316 # set to limit VM usage for JunitTests
8318 # set to limit VM usage for javac
8319 JAVACFLAGS=-J-Xmx128M
8322 AC_MSG_ERROR([Java not found. You need at least JDK 9])
8325 if test -z "$ENABLE_JAVA"; then
8329 elif test "$cross_compiling" = "yes"; then
8330 # Just assume compatibility of build and host JDK
8332 JAVAIFLAGS=$JAVAIFLAGS_FOR_BUILD
8336 dnl ===================================================================
8337 dnl Checks for javac
8338 dnl ===================================================================
8339 if test "$ENABLE_JAVA" != "" -a "$cross_compiling" != "yes"; then
8340 javacompiler="javac"
8341 : ${JAVA_SOURCE_VER=8}
8342 : ${JAVA_TARGET_VER=8}
8343 if test -z "$with_jdk_home"; then
8344 AC_PATH_PROG(JAVACOMPILER, $javacompiler)
8346 _javac_path="$with_jdk_home/bin/$javacompiler"
8347 dnl Check if there is a Java compiler at all.
8348 if test -x "$_javac_path"; then
8349 JAVACOMPILER=$_javac_path
8352 if test -z "$JAVACOMPILER"; then
8353 AC_MSG_ERROR([$javacompiler not found set with_jdk_home])
8355 if test "$build_os" = "cygwin"; then
8356 if test x`echo "$JAVACOMPILER" | $GREP -i '\.exe$'` = x; then
8357 JAVACOMPILER="${JAVACOMPILER}.exe"
8359 JAVACOMPILER=`win_short_path_for_make "$JAVACOMPILER"`
8363 dnl ===================================================================
8364 dnl Checks for javadoc
8365 dnl ===================================================================
8366 if test "$ENABLE_JAVA" != "" -a "$cross_compiling" != "yes"; then
8367 if test -z "$with_jdk_home"; then
8368 AC_PATH_PROG(JAVADOC, javadoc)
8370 _javadoc_path="$with_jdk_home/bin/javadoc"
8371 dnl Check if there is a javadoc at all.
8372 if test -x "$_javadoc_path"; then
8373 JAVADOC=$_javadoc_path
8375 AC_PATH_PROG(JAVADOC, javadoc)
8378 if test -z "$JAVADOC"; then
8379 AC_MSG_ERROR([$_javadoc_path not found set with_jdk_home])
8381 if test "$build_os" = "cygwin"; then
8382 if test x`echo "$JAVADOC" | $GREP -i '\.exe$'` = x; then
8383 JAVADOC="${JAVADOC}.exe"
8385 JAVADOC=`win_short_path_for_make "$JAVADOC"`
8388 if test `$JAVADOC --version 2>&1 | $GREP -c "gjdoc"` -gt 0; then
8389 JAVADOCISGJDOC="yes"
8393 AC_SUBST(JAVADOCISGJDOC)
8395 if test "$ENABLE_JAVA" != "" -a \( "$cross_compiling" != "yes" -o -n "$with_jdk_home" \); then
8396 # check if JAVA_HOME was (maybe incorrectly?) set automatically to /usr
8397 if test "$JAVA_HOME" = "/usr" -a "x$with_jdk_home" = "x"; then
8398 if basename $(readlink $(readlink $JAVACOMPILER)) >/dev/null 2>/dev/null; then
8399 # try to recover first by looking whether we have an alternative
8400 # system as in Debian or newer SuSEs where following /usr/bin/javac
8401 # over /etc/alternatives/javac leads to the right bindir where we
8402 # just need to strip a bit away to get a valid JAVA_HOME
8403 JAVA_HOME=$(readlink $(readlink $JAVACOMPILER))
8404 elif readlink $JAVACOMPILER >/dev/null 2>/dev/null; then
8405 # maybe only one level of symlink (e.g. on Mac)
8406 JAVA_HOME=$(readlink $JAVACOMPILER)
8407 if test "$(dirname $JAVA_HOME)" = "."; then
8408 # we've got no path to trim back
8413 AC_MSG_WARN([JAVA_HOME is set to /usr - this is very likely to be incorrect])
8414 AC_MSG_WARN([if this is the case, please inform the correct JAVA_HOME with --with-jdk-home])
8415 add_warning "JAVA_HOME is set to /usr - this is very likely to be incorrect"
8416 add_warning "if this is the case, please inform the correct JAVA_HOME with --with-jdk-home"
8418 dnl now that we probably have the path to the real javac, make a JAVA_HOME out of it...
8419 if test "$JAVA_HOME" != "/usr"; then
8420 if test "$_os" = "Darwin" -o "$OS_FOR_BUILD" = MACOSX; then
8421 dnl Leopard returns a non-suitable path with readlink - points to "Current" only
8422 JAVA_HOME=$(echo $JAVA_HOME | $SED -e s,/Current/Commands/javac$,/CurrentJDK/Home,)
8423 dnl Tiger already returns a JDK path...
8424 JAVA_HOME=$(echo $JAVA_HOME | $SED -e s,/CurrentJDK/Commands/javac$,/CurrentJDK/Home,)
8426 JAVA_HOME=$(echo $JAVA_HOME | $SED -e s,/bin/javac$,,)
8427 dnl check that we have a directory as certain distros eg gentoo substitute javac for a script
8428 dnl that checks which version to run
8429 if test -f "$JAVA_HOME"; then
8430 JAVA_HOME=""; # set JAVA_HOME to null if it's a file
8435 # as we drop out of this, JAVA_HOME may have been set to the empty string by readlink
8437 dnl now if JAVA_HOME has been set to empty, then call findhome to find it
8438 if test -z "$JAVA_HOME"; then
8439 if test "x$with_jdk_home" = "x"; then
8440 cat > findhome.java <<_ACEOF
8441 [import java.io.File;
8445 public static void main(String args[])
8447 String jrelocation = System.getProperty("java.home");
8448 File jre = new File(jrelocation);
8449 System.out.println(jre.getParent());
8453 AC_MSG_CHECKING([if javac works])
8454 javac_cmd="$JAVACOMPILER findhome.java 1>&2"
8455 AC_TRY_EVAL(javac_cmd)
8456 if test $? = 0 -a -f ./findhome.class; then
8457 AC_MSG_RESULT([javac works])
8459 echo "configure: javac test failed" >&5
8460 cat findhome.java >&5
8461 AC_MSG_ERROR([javac does not work - java projects will not build!])
8463 AC_MSG_CHECKING([if gij knows its java.home])
8464 JAVA_HOME=`$JAVAINTERPRETER findhome`
8465 if test $? = 0 -a "$JAVA_HOME" != ""; then
8466 AC_MSG_RESULT([$JAVA_HOME])
8468 echo "configure: java test failed" >&5
8469 cat findhome.java >&5
8470 AC_MSG_ERROR([gij does not know its java.home - use --with-jdk-home])
8472 # clean-up after ourselves
8473 rm -f ./findhome.java ./findhome.class
8475 JAVA_HOME=`echo $JAVAINTERPRETER | $SED -n "s,//*bin//*$with_java,,p"`
8479 # now check if $JAVA_HOME is really valid
8480 if test "$_os" = "Darwin" -o "$OS_FOR_BUILD" = MACOSX; then
8481 if test ! -f "$JAVA_HOME/lib/jvm.cfg" -a "x$with_jdk_home" = "x"; then
8482 AC_MSG_WARN([JAVA_HOME was not explicitly informed with --with-jdk-home. the configure script])
8483 AC_MSG_WARN([attempted to find JAVA_HOME automatically, but apparently it failed])
8484 AC_MSG_WARN([in case JAVA_HOME is incorrectly set, some projects will not be built correctly])
8485 add_warning "JAVA_HOME was not explicitly informed with --with-jdk-home. the configure script"
8486 add_warning "attempted to find JAVA_HOME automatically, but apparently it failed"
8487 add_warning "in case JAVA_HOME is incorrectly set, some projects will not be built correctly"
8490 PathFormat "$JAVA_HOME"
8491 JAVA_HOME="$formatted_path"
8494 if test -z "$JAWTLIB" -a -n "$ENABLE_JAVA" -a "$_os" != Android -a \
8497 AC_MSG_CHECKING([for JAWT lib])
8498 if test "$_os" = WINNT; then
8499 # The path to $JAVA_HOME/lib/$JAWTLIB is part of $ILIB:
8504 AS_IF([test -e "$JAVA_HOME/jre/lib/aarch32/libjawt.so"], [my_java_arch=aarch32], [my_java_arch=arm])
8505 JAVA_ARCH=$my_java_arch
8520 AS_IF([test -e "$JAVA_HOME/jre/lib/ppc64le/libjawt.so"], [my_java_arch=ppc64le], [my_java_arch=ppc64])
8521 JAVA_ARCH=$my_java_arch
8524 my_java_arch=sparcv9
8530 my_java_arch=$host_cpu
8533 # This is where JDK9 puts the library
8534 if test -e "$JAVA_HOME/lib/libjawt.so"; then
8535 JAWTLIB="-L$JAVA_HOME/lib/ -ljawt"
8537 JAWTLIB="-L$JAVA_HOME/jre/lib/$my_java_arch -ljawt"
8539 AS_IF([test "$JAVA_ARCH" != ""], [AC_DEFINE_UNQUOTED([JAVA_ARCH], ["$JAVA_ARCH"])])
8541 AC_MSG_RESULT([$JAWTLIB])
8545 if test -n "$ENABLE_JAVA" -a -z "$JAVAINC"; then
8549 JAVAINC="-I$JAVA_HOME/include"
8550 JAVAINC="$JAVAINC -I$JAVA_HOME/include/aix"
8551 test -d "$JAVA_HOME/include/native_thread" && JAVAINC="$JAVAINC -I$JAVA_HOME/include/native_thread"
8555 JAVAINC="-I$JAVA_HOME/include/win32"
8556 JAVAINC="$JAVAINC -I$JAVA_HOME/include"
8560 if test -d "$JAVA_HOME/include/darwin"; then
8561 JAVAINC="-I$JAVA_HOME/include -I$JAVA_HOME/include/darwin"
8563 JAVAINC=${ISYSTEM}$FRAMEWORKSHOME/JavaVM.framework/Versions/Current/Headers
8568 JAVAINC="-I$JAVA_HOME/include"
8569 test -d "$JAVA_HOME/include/native_thread" && JAVAINC="$JAVAINC -I$JAVA_HOME/include/native_thread"
8573 JAVAINC="-I$JAVA_HOME/include"
8574 JAVAINC="$JAVAINC -I$JAVA_HOME/include/freebsd"
8575 JAVAINC="$JAVAINC -I$JAVA_HOME/include/bsd"
8576 JAVAINC="$JAVAINC -I$JAVA_HOME/include/linux"
8577 test -d "$JAVA_HOME/include/native_thread" && JAVAINC="$JAVAINC -I$JAVA_HOME/include/native_thread"
8581 JAVAINC="-I$JAVA_HOME/include"
8582 JAVAINC="$JAVAINC -I$JAVA_HOME/include/linux"
8583 test -d "$JAVA_HOME/include/native_thread" && JAVAINC="$JAVAINC -I$JAVA_HOME/include/native_thread"
8587 JAVAINC="-I$JAVA_HOME/include"
8588 JAVAINC="$JAVAINC -I$JAVA_HOME/include/linux"
8589 test -d "$JAVA_HOME/include/native_thread" && JAVAINC="$JAVAINC -I$JAVA_HOME/include/native_thread"
8593 JAVAINC="-I$JAVA_HOME/include"
8594 JAVAINC="$JAVAINC -I$JAVA_HOME/include/netbsd"
8595 test -d "$JAVA_HOME/include/native_thread" && JAVAINC="$JAVAINC -I$JAVA_HOME/include/native_thread"
8599 JAVAINC="-I$JAVA_HOME/include"
8600 JAVAINC="$JAVAINC -I$JAVA_HOME/include/openbsd"
8601 test -d "$JAVA_HOME/include/native_thread" && JAVAINC="$JAVAINC -I$JAVA_HOME/include/native_thread"
8605 JAVAINC="-I$JAVA_HOME/include"
8606 JAVAINC="$JAVAINC -I$JAVA_HOME/include/solaris"
8607 test -d "$JAVA_HOME/include/native_thread" && JAVAINC="$JAVAINC -I$JAVA_HOME/include/native_thread"
8611 SOLARINC="$SOLARINC $JAVAINC"
8613 if test "$ENABLE_JAVA" != "" -a "$cross_compiling" != "yes"; then
8614 JAVA_HOME_FOR_BUILD=$JAVA_HOME
8615 JAVAIFLAGS_FOR_BUILD=$JAVAIFLAGS
8619 AC_SUBST(JAVACFLAGS)
8620 AC_SUBST(JAVACOMPILER)
8621 AC_SUBST(JAVAINTERPRETER)
8622 AC_SUBST(JAVAIFLAGS)
8623 AC_SUBST(JAVAIFLAGS_FOR_BUILD)
8624 AC_SUBST(JAVA_CLASSPATH_NOT_SET)
8626 AC_SUBST(JAVA_HOME_FOR_BUILD)
8628 AC_SUBST(JDK_FOR_BUILD)
8629 AC_SUBST(JAVA_SOURCE_VER)
8630 AC_SUBST(JAVA_TARGET_VER)
8633 dnl ===================================================================
8634 dnl Export file validation
8635 dnl ===================================================================
8636 AC_MSG_CHECKING([whether to enable export file validation])
8637 if test "$with_export_validation" != "no"; then
8638 if test -z "$ENABLE_JAVA"; then
8639 if test "$with_export_validation" = "yes"; then
8640 AC_MSG_ERROR([requested, but Java is disabled])
8642 AC_MSG_RESULT([no, as Java is disabled])
8644 elif ! test -d "${SRC_ROOT}/schema"; then
8645 if test "$with_export_validation" = "yes"; then
8646 AC_MSG_ERROR([requested, but schema directory is missing (it is excluded from tarballs)])
8648 AC_MSG_RESULT([no, schema directory is missing (it is excluded from tarballs)])
8651 AC_MSG_RESULT([yes])
8652 AC_DEFINE(HAVE_EXPORT_VALIDATION)
8654 AC_PATH_PROGS(ODFVALIDATOR, odfvalidator)
8655 if test -z "$ODFVALIDATOR"; then
8656 # remember to download the ODF toolkit with validator later
8657 AC_MSG_NOTICE([no odfvalidator found, will download it])
8658 BUILD_TYPE="$BUILD_TYPE ODFVALIDATOR"
8659 ODFVALIDATOR="$BUILDDIR/bin/odfvalidator.sh"
8661 # and fetch name of odfvalidator jar name from download.lst
8662 ODFVALIDATOR_JAR=`$SED -n -e "s/export *ODFVALIDATOR_JAR *:= *\(.*\) */\1/p" $SRC_ROOT/download.lst`
8663 AC_SUBST(ODFVALIDATOR_JAR)
8665 if test -z "$ODFVALIDATOR_JAR"; then
8666 AC_MSG_ERROR([cannot determine odfvalidator jar location (--with-export-validation)])
8669 if test "$build_os" = "cygwin"; then
8670 # In case of Cygwin it will be executed from Windows,
8671 # so we need to run bash and absolute path to validator
8672 # so instead of "odfvalidator" it will be
8673 # something like "bash.exe C:\cygwin\opt\lo\bin\odfvalidator"
8674 ODFVALIDATOR="bash.exe `cygpath -m "$ODFVALIDATOR"`"
8676 ODFVALIDATOR="sh $ODFVALIDATOR"
8678 AC_SUBST(ODFVALIDATOR)
8681 AC_PATH_PROGS(OFFICEOTRON, officeotron)
8682 if test -z "$OFFICEOTRON"; then
8683 # remember to download the officeotron with validator later
8684 AC_MSG_NOTICE([no officeotron found, will download it])
8685 BUILD_TYPE="$BUILD_TYPE OFFICEOTRON"
8686 OFFICEOTRON="$BUILDDIR/bin/officeotron.sh"
8688 # and fetch name of officeotron jar name from download.lst
8689 OFFICEOTRON_JAR=`$SED -n -e "s/export *OFFICEOTRON_JAR *:= *\(.*\) */\1/p" $SRC_ROOT/download.lst`
8690 AC_SUBST(OFFICEOTRON_JAR)
8692 if test -z "$OFFICEOTRON_JAR"; then
8693 AC_MSG_ERROR([cannot determine officeotron jar location (--with-export-validation)])
8696 # check version of existing officeotron
8697 OFFICEOTRON_VER=`$OFFICEOTRON --version | $AWK -F. '{ print \$1*10000+\$2*100+\$3 }'`
8698 if test 0"$OFFICEOTRON_VER" -lt 704; then
8699 AC_MSG_ERROR([officeotron too old])
8702 if test "$build_os" = "cygwin"; then
8703 # In case of Cygwin it will be executed from Windows,
8704 # so we need to run bash and absolute path to validator
8705 # so instead of "odfvalidator" it will be
8706 # something like "bash.exe C:\cygwin\opt\lo\bin\odfvalidator"
8707 OFFICEOTRON="bash.exe `cygpath -m "$OFFICEOTRON"`"
8709 OFFICEOTRON="sh $OFFICEOTRON"
8712 AC_SUBST(OFFICEOTRON)
8717 AC_MSG_CHECKING([for Microsoft Binary File Format Validator])
8718 if test "$with_bffvalidator" != "no"; then
8719 AC_DEFINE(HAVE_BFFVALIDATOR)
8721 if test "$with_export_validation" = "no"; then
8722 AC_MSG_ERROR([Please enable export validation (-with-export-validation)!])
8725 if test "$with_bffvalidator" = "yes"; then
8726 BFFVALIDATOR=`win_short_path_for_make "$PROGRAMFILES/Microsoft Office/BFFValidator/BFFValidator.exe"`
8728 BFFVALIDATOR="$with_bffvalidator"
8731 if test "$build_os" = "cygwin"; then
8732 if test -n "$BFFVALIDATOR" -a -e "`cygpath $BFFVALIDATOR`"; then
8733 AC_MSG_RESULT($BFFVALIDATOR)
8735 AC_MSG_ERROR([bffvalidator not found, but required by --with-bffvalidator])
8737 elif test -n "$BFFVALIDATOR"; then
8738 # We are not in Cygwin but need to run Windows binary with wine
8739 AC_PATH_PROGS(WINE, wine)
8741 # so swap in a shell wrapper that converts paths transparently
8742 BFFVALIDATOR_EXE="$BFFVALIDATOR"
8743 BFFVALIDATOR="sh $BUILDDIR/bin/bffvalidator.sh"
8744 AC_SUBST(BFFVALIDATOR_EXE)
8745 AC_MSG_RESULT($BFFVALIDATOR)
8747 AC_MSG_ERROR([bffvalidator not found, but required by --with-bffvalidator])
8749 AC_SUBST(BFFVALIDATOR)
8754 dnl ===================================================================
8755 dnl Check for C preprocessor to use
8756 dnl ===================================================================
8757 AC_MSG_CHECKING([which C preprocessor to use in idlc])
8758 if test -n "$with_idlc_cpp"; then
8759 AC_MSG_RESULT([$with_idlc_cpp])
8760 AC_PATH_PROG(SYSTEM_UCPP, $with_idlc_cpp)
8762 AC_MSG_RESULT([ucpp])
8763 AC_MSG_CHECKING([which ucpp tp use])
8764 if test -n "$with_system_ucpp" -a "$with_system_ucpp" != "no"; then
8765 AC_MSG_RESULT([external])
8766 AC_PATH_PROG(SYSTEM_UCPP, ucpp)
8768 AC_MSG_RESULT([internal])
8769 BUILD_TYPE="$BUILD_TYPE UCPP"
8772 AC_SUBST(SYSTEM_UCPP)
8774 dnl ===================================================================
8775 dnl Check for epm (not needed for Windows)
8776 dnl ===================================================================
8777 AC_MSG_CHECKING([whether to enable EPM for packing])
8778 if test "$enable_epm" = "yes"; then
8779 AC_MSG_RESULT([yes])
8780 if test "$_os" != "WINNT"; then
8781 if test $_os = Darwin; then
8783 elif test -n "$with_epm"; then
8786 AC_PATH_PROG(EPM, epm, no)
8788 if test "$EPM" = "no" -o "$EPM" = "internal"; then
8789 AC_MSG_NOTICE([EPM will be built.])
8790 BUILD_TYPE="$BUILD_TYPE EPM"
8791 EPM=${WORKDIR}/UnpackedTarball/epm/epm
8793 # Gentoo has some epm which is something different...
8794 AC_MSG_CHECKING([whether the found epm is the right epm])
8795 if $EPM | grep "ESP Package Manager" >/dev/null 2>/dev/null; then
8796 AC_MSG_RESULT([yes])
8798 AC_MSG_ERROR([no. Install ESP Package Manager (http://www.msweet.org/projects.php?Z2) and/or specify the path to the right epm])
8800 AC_MSG_CHECKING([epm version])
8801 EPM_VERSION=`$EPM | grep 'ESP Package Manager' | cut -d' ' -f4 | $SED -e s/v//`
8802 if test "`echo $EPM_VERSION | cut -d'.' -f1`" -gt "3" || \
8803 test "`echo $EPM_VERSION | cut -d'.' -f1`" -eq "3" -a "`echo $EPM_VERSION | cut -d'.' -f2`" -ge "7"; then
8804 AC_MSG_RESULT([OK, >= 3.7])
8806 AC_MSG_RESULT([too old. epm >= 3.7 is required.])
8807 AC_MSG_ERROR([Install ESP Package Manager (http://www.msweet.org/projects.php?Z2) and/or specify the path to the right epm])
8812 if echo "$PKGFORMAT" | $EGREP rpm 2>&1 >/dev/null; then
8813 AC_MSG_CHECKING([for rpm])
8814 for a in "$RPM" rpmbuild rpm; do
8815 $a --usage >/dev/null 2> /dev/null
8816 if test $? -eq 0; then
8820 $a --version >/dev/null 2> /dev/null
8821 if test $? -eq 0; then
8827 if test -z "$RPM"; then
8828 AC_MSG_ERROR([not found])
8829 elif "$RPM" --help 2>&1 | $EGREP buildroot >/dev/null; then
8830 RPM_PATH=`which $RPM`
8831 AC_MSG_RESULT([$RPM_PATH])
8832 SCPDEFS="$SCPDEFS -DWITH_RPM"
8834 AC_MSG_ERROR([cannot build packages. Try installing rpmbuild.])
8837 if echo "$PKGFORMAT" | $EGREP deb 2>&1 >/dev/null; then
8838 AC_PATH_PROG(DPKG, dpkg, no)
8839 if test "$DPKG" = "no"; then
8840 AC_MSG_ERROR([dpkg needed for deb creation. Install dpkg.])
8843 if echo "$PKGFORMAT" | $EGREP rpm 2>&1 >/dev/null || \
8844 echo "$PKGFORMAT" | $EGREP pkg 2>&1 >/dev/null; then
8845 if test "$with_epm" = "no" -a "$_os" != "Darwin"; then
8846 if test "`echo $EPM_VERSION | cut -d'.' -f1`" -lt "4"; then
8847 AC_MSG_CHECKING([whether epm is patched for LibreOffice's needs])
8848 if grep "Patched for .*Office" $EPM >/dev/null 2>/dev/null; then
8849 AC_MSG_RESULT([yes])
8852 if echo "$PKGFORMAT" | $GREP -q rpm; then
8854 AC_MSG_WARN([the rpms will need to be installed with --nodeps])
8855 add_warning "the rpms will need to be installed with --nodeps"
8859 AC_MSG_WARN([the ${_pt}s will not be relocatable])
8860 add_warning "the ${_pt}s will not be relocatable"
8861 AC_MSG_WARN([if you want to make sure installation without --nodeps and
8862 relocation will work, you need to patch your epm with the
8863 patch in epm/epm-3.7.patch or build with
8864 --with-epm=internal which will build a suitable epm])
8869 if echo "$PKGFORMAT" | $EGREP pkg 2>&1 >/dev/null; then
8870 AC_PATH_PROG(PKGMK, pkgmk, no)
8871 if test "$PKGMK" = "no"; then
8872 AC_MSG_ERROR([pkgmk needed for Solaris pkg creation. Install it.])
8879 for i in $PKGFORMAT; do
8881 aix | bsd | deb | pkg | rpm | native | portable)
8883 [--with-package-format='$PKGFORMAT' requires --enable-epm])
8893 if test "$enable_lotuswordpro" = "yes"; then
8896 AC_SUBST(ENABLE_LWP)
8898 dnl ===================================================================
8899 dnl Check for building ODK
8900 dnl ===================================================================
8901 if test "$enable_odk" != yes; then
8904 if test "$with_doxygen" = no; then
8905 AC_MSG_CHECKING([for doxygen])
8909 if test "$with_doxygen" = yes; then
8910 AC_PATH_PROG([DOXYGEN], [doxygen])
8911 if test -z "$DOXYGEN"; then
8912 AC_MSG_ERROR([doxygen not found in \$PATH; specify its pathname via --with-doxygen=..., or disable its use via --without-doxygen])
8914 if $DOXYGEN -g - | grep -q "HAVE_DOT *= *YES"; then
8915 if ! dot -V 2>/dev/null; then
8916 AC_MSG_ERROR([dot not found in \$PATH but doxygen defaults to HAVE_DOT=YES; install graphviz or disable its use via --without-doxygen])
8920 AC_MSG_CHECKING([for doxygen])
8921 DOXYGEN=$with_doxygen
8922 AC_MSG_RESULT([$DOXYGEN])
8924 if test -n "$DOXYGEN"; then
8925 DOXYGEN_VERSION=`$DOXYGEN --version 2>/dev/null`
8926 DOXYGEN_NUMVERSION=`echo $DOXYGEN_VERSION | $AWK -F. '{ print \$1*10000 + \$2*100 + \$3 }'`
8927 if ! test "$DOXYGEN_NUMVERSION" -ge "10804" ; then
8928 AC_MSG_ERROR([found doxygen is too old; need at least version 1.8.4 or specify --without-doxygen])
8935 AC_MSG_CHECKING([whether to build the ODK])
8936 if test "$enable_odk" = yes; then
8937 AC_MSG_RESULT([yes])
8938 BUILD_TYPE="$BUILD_TYPE ODK"
8943 dnl ===================================================================
8944 dnl Check for system zlib
8945 dnl ===================================================================
8946 if test "$with_system_zlib" = "auto"; then
8949 with_system_zlib="$with_system_libs"
8952 if test "$enable_fuzzers" != "yes"; then
8953 with_system_zlib=yes
8961 dnl we want to use libo_CHECK_SYSTEM_MODULE here too, but macOS is too stupid
8962 dnl and has no pkg-config for it at least on some tinderboxes,
8963 dnl so leaving that out for now
8964 dnl libo_CHECK_SYSTEM_MODULE([zlib],[ZLIB],[zlib])
8965 AC_MSG_CHECKING([which zlib to use])
8966 if test "$with_system_zlib" = "yes"; then
8967 AC_MSG_RESULT([external])
8969 AC_CHECK_HEADER(zlib.h, [],
8970 [AC_MSG_ERROR(zlib.h not found. install zlib)], [])
8971 AC_CHECK_LIB(z, deflate, [ ZLIB_LIBS=-lz ],
8972 [AC_MSG_ERROR(zlib not found or functional)], [])
8974 AC_MSG_RESULT([internal])
8976 BUILD_TYPE="$BUILD_TYPE ZLIB"
8977 ZLIB_CFLAGS="-I${WORKDIR}/UnpackedTarball/zlib"
8978 ZLIB_LIBS="-L${WORKDIR}/LinkTarget/StaticLibrary -lzlib"
8980 AC_SUBST(ZLIB_CFLAGS)
8982 AC_SUBST(SYSTEM_ZLIB)
8984 dnl ===================================================================
8985 dnl Check for system jpeg
8986 dnl ===================================================================
8987 AC_MSG_CHECKING([which libjpeg to use])
8988 if test "$with_system_jpeg" = "yes"; then
8989 AC_MSG_RESULT([external])
8991 AC_CHECK_HEADER(jpeglib.h, [ LIBJPEG_CFLAGS= ],
8992 [AC_MSG_ERROR(jpeg.h not found. install libjpeg)], [])
8993 AC_CHECK_LIB(jpeg, jpeg_resync_to_restart, [ LIBJPEG_LIBS="-ljpeg" ],
8994 [AC_MSG_ERROR(jpeg library not found or functional)], [])
8997 AC_MSG_RESULT([internal, libjpeg-turbo])
8998 BUILD_TYPE="$BUILD_TYPE LIBJPEG_TURBO"
8999 LIBJPEG_CFLAGS="-I${WORKDIR}/UnpackedTarball/libjpeg-turbo"
9000 if test "$COM" = "MSC"; then
9001 LIBJPEG_LIBS="${WORKDIR}/UnpackedTarball/libjpeg-turbo/.libs/libjpeg.lib"
9003 LIBJPEG_LIBS="-L${WORKDIR}/UnpackedTarball/libjpeg-turbo/.libs -ljpeg"
9007 x86_64 | amd64 | i*86 | x86 | ia32)
9008 AC_CHECK_PROGS(NASM, [nasm nasmw yasm])
9009 if test -z "$NASM" -a "$build_os" = "cygwin"; then
9010 if test -n "$LODE_HOME" -a -x "$LODE_HOME/opt/bin/nasm"; then
9011 NASM="$LODE_HOME/opt/bin/nasm"
9012 elif test -x "/opt/lo/bin/nasm"; then
9013 NASM="/opt/lo/bin/nasm"
9017 if test -n "$NASM"; then
9018 AC_MSG_CHECKING([for object file format of host system])
9020 cygwin* | mingw* | pw32* | wsl*)
9030 msdosdjgpp* | go32*)
9033 os2-emx*) # not tested
9034 objfmt='MSOMF' # obj
9036 linux*coff* | linux*oldld*)
9052 kfreebsd* | freebsd* | netbsd* | openbsd*)
9053 if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
9066 solaris* | sunos* | sysv* | sco*)
9076 darwin* | rhapsody* | nextstep* | openstep* | macos*)
9091 AC_MSG_RESULT([$objfmt])
9092 if test "$objfmt" = 'ELF ?'; then
9094 AC_MSG_WARN([unexpected host system. assumed that the format is $objfmt.])
9097 AC_MSG_CHECKING([for object file format specifier (NAFLAGS) ])
9099 MSOMF) NAFLAGS='-fobj -DOBJ32';;
9100 Win32-COFF) NAFLAGS='-fwin32 -DWIN32';;
9101 Win64-COFF) NAFLAGS='-fwin64 -DWIN64 -D__x86_64__';;
9102 COFF) NAFLAGS='-fcoff -DCOFF';;
9103 a.out) NAFLAGS='-faout -DAOUT';;
9104 BSD-a.out) NAFLAGS='-faoutb -DAOUT';;
9105 ELF) NAFLAGS='-felf -DELF';;
9106 ELF64) NAFLAGS='-felf64 -DELF -D__x86_64__';;
9107 RDF) NAFLAGS='-frdf -DRDF';;
9108 Mach-O) NAFLAGS='-fmacho -DMACHO';;
9109 Mach-O64) NAFLAGS='-fmacho64 -DMACHO -D__x86_64__';;
9111 AC_MSG_RESULT([$NAFLAGS])
9113 AC_MSG_CHECKING([whether the assembler ($NASM $NAFLAGS) works])
9114 cat > conftest.asm << EOF
9115 [%line __oline__ "configure"
9123 try_nasm='$NASM $NAFLAGS -o conftest.o conftest.asm'
9124 if AC_TRY_EVAL(try_nasm) && test -s conftest.o; then
9127 echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD
9128 cat conftest.asm >&AS_MESSAGE_LOG_FD
9131 AC_MSG_WARN([installation or configuration problem: assembler cannot create object files.])
9137 if test -z "$NASM"; then
9139 ****************************************************************************
9140 You need yasm or nasm (Netwide Assembler) to build the internal jpeg library optimally.
9144 if test "$build_os" = "cygwin"; then
9146 install a pre-compiled binary for Win32
9148 mkdir -p /opt/lo/bin
9150 wget https://dev-www.libreoffice.org/bin/cygwin/nasm.exe
9153 or get and install one from http://www.nasm.us/
9155 Then re-run autogen.sh
9157 Note: autogen.sh will try to use /opt/lo/bin/nasm if the environment variable NASM is not already defined.
9158 Alternatively, you can install the 'new' nasm where ever you want and make sure that \`which nasm\` finds it.
9163 consult https://github.com/libjpeg-turbo/libjpeg-turbo/blob/master/BUILDING.md
9167 AC_MSG_WARN([no suitable nasm (Netwide Assembler) found])
9168 add_warning "no suitable nasm (Netwide Assembler) found for internal libjpeg-turbo"
9175 AC_SUBST(LIBJPEG_CFLAGS)
9176 AC_SUBST(LIBJPEG_LIBS)
9177 AC_SUBST(SYSTEM_LIBJPEG)
9179 dnl ===================================================================
9180 dnl Check for system clucene
9181 dnl ===================================================================
9182 dnl we should rather be using
9183 dnl libo_CHECK_SYSTEM_MODULE([clucence],[CLUCENE],[liblucence-core]) here
9184 dnl but the contribs-lib check seems tricky
9185 AC_MSG_CHECKING([which clucene to use])
9186 if test "$with_system_clucene" = "yes"; then
9187 AC_MSG_RESULT([external])
9189 PKG_CHECK_MODULES(CLUCENE, libclucene-core)
9190 CLUCENE_CFLAGS=[$(printf '%s' "$CLUCENE_CFLAGS" | sed -e 's@-I[^ ]*/CLucene/ext@@' -e "s/-I/${ISYSTEM?}/g")]
9191 FilterLibs "${CLUCENE_LIBS}"
9192 CLUCENE_LIBS="${filteredlibs}"
9194 save_CXXFLAGS=$CXXFLAGS
9195 save_CPPFLAGS=$CPPFLAGS
9196 CXXFLAGS="$CXXFLAGS $CLUCENE_CFLAGS"
9197 CPPFLAGS="$CPPFLAGS $CLUCENE_CFLAGS"
9198 dnl http://sourceforge.net/tracker/index.php?func=detail&aid=3392466&group_id=80013&atid=558446
9199 dnl https://bugzilla.redhat.com/show_bug.cgi?id=794795
9200 AC_CHECK_HEADER([CLucene/analysis/cjk/CJKAnalyzer.h], [],
9201 [AC_MSG_ERROR([Your version of libclucene has contribs-lib missing.])], [#include <CLucene.h>])
9202 CXXFLAGS=$save_CXXFLAGS
9203 CPPFLAGS=$save_CPPFLAGS
9206 CLUCENE_LIBS="$CLUCENE_LIBS -lclucene-contribs-lib"
9208 AC_MSG_RESULT([internal])
9210 BUILD_TYPE="$BUILD_TYPE CLUCENE"
9212 AC_SUBST(SYSTEM_CLUCENE)
9213 AC_SUBST(CLUCENE_CFLAGS)
9214 AC_SUBST(CLUCENE_LIBS)
9216 dnl ===================================================================
9217 dnl Check for system expat
9218 dnl ===================================================================
9219 libo_CHECK_SYSTEM_MODULE([expat], [EXPAT], [expat])
9221 dnl ===================================================================
9222 dnl Check for system xmlsec
9223 dnl ===================================================================
9224 libo_CHECK_SYSTEM_MODULE([xmlsec], [XMLSEC], [xmlsec1-nss >= 1.2.28])
9226 AC_MSG_CHECKING([whether to enable Embedded OpenType support])
9227 if test "$_os" != "WINNT" -a "$_os" != "Darwin" -a "$enable_eot" = "yes"; then
9229 AC_DEFINE([ENABLE_EOT])
9230 AC_MSG_RESULT([yes])
9232 libo_CHECK_SYSTEM_MODULE([libeot],[LIBEOT],[libeot >= 0.01])
9237 AC_SUBST([ENABLE_EOT])
9239 dnl ===================================================================
9240 dnl Check for DLP libs
9241 dnl ===================================================================
9242 AS_IF([test "$COM" = "MSC"],
9243 [librevenge_libdir="${WORKDIR}/LinkTarget/Library"],
9244 [librevenge_libdir="${WORKDIR}/UnpackedTarball/librevenge/src/lib/.libs"]
9246 libo_CHECK_SYSTEM_MODULE([librevenge],[REVENGE],[librevenge-0.0 >= 0.0.1],["-I${WORKDIR}/UnpackedTarball/librevenge/inc"],["-L${librevenge_libdir} -lrevenge-0.0"])
9248 libo_CHECK_SYSTEM_MODULE([libodfgen],[ODFGEN],[libodfgen-0.1])
9250 libo_CHECK_SYSTEM_MODULE([libepubgen],[EPUBGEN],[libepubgen-0.1])
9252 AS_IF([test "$COM" = "MSC"],
9253 [libwpd_libdir="${WORKDIR}/LinkTarget/Library"],
9254 [libwpd_libdir="${WORKDIR}/UnpackedTarball/libwpd/src/lib/.libs"]
9256 libo_CHECK_SYSTEM_MODULE([libwpd],[WPD],[libwpd-0.10],["-I${WORKDIR}/UnpackedTarball/libwpd/inc"],["-L${libwpd_libdir} -lwpd-0.10"])
9258 libo_CHECK_SYSTEM_MODULE([libwpg],[WPG],[libwpg-0.3])
9260 libo_CHECK_SYSTEM_MODULE([libwps],[WPS],[libwps-0.4])
9261 libo_PKG_VERSION([WPS], [libwps-0.4], [0.4.12])
9263 libo_CHECK_SYSTEM_MODULE([libvisio],[VISIO],[libvisio-0.1])
9265 libo_CHECK_SYSTEM_MODULE([libcdr],[CDR],[libcdr-0.1])
9267 libo_CHECK_SYSTEM_MODULE([libmspub],[MSPUB],[libmspub-0.1])
9269 libo_CHECK_SYSTEM_MODULE([libmwaw],[MWAW],[libmwaw-0.3 >= 0.3.1])
9270 libo_PKG_VERSION([MWAW], [libmwaw-0.3], [0.3.19])
9272 libo_CHECK_SYSTEM_MODULE([libetonyek],[ETONYEK],[libetonyek-0.1])
9273 libo_PKG_VERSION([ETONYEK], [libetonyek-0.1], [0.1.10])
9275 libo_CHECK_SYSTEM_MODULE([libfreehand],[FREEHAND],[libfreehand-0.1])
9277 libo_CHECK_SYSTEM_MODULE([libebook],[EBOOK],[libe-book-0.1])
9278 libo_PKG_VERSION([EBOOK], [libe-book-0.1], [0.1.2])
9280 libo_CHECK_SYSTEM_MODULE([libabw],[ABW],[libabw-0.1])
9282 libo_CHECK_SYSTEM_MODULE([libpagemaker],[PAGEMAKER],[libpagemaker-0.0])
9284 libo_CHECK_SYSTEM_MODULE([libqxp],[QXP],[libqxp-0.0])
9286 libo_CHECK_SYSTEM_MODULE([libzmf],[ZMF],[libzmf-0.0])
9288 libo_CHECK_SYSTEM_MODULE([libstaroffice],[STAROFFICE],[libstaroffice-0.0])
9289 libo_PKG_VERSION([STAROFFICE], [libstaroffice-0.0], [0.0.7])
9291 dnl ===================================================================
9292 dnl Check for system lcms2
9293 dnl ===================================================================
9294 if test "$with_system_lcms2" != "yes"; then
9297 libo_CHECK_SYSTEM_MODULE([lcms2],[LCMS2],[lcms2],["-I${WORKDIR}/UnpackedTarball/lcms2/include"],["-L${WORKDIR}/UnpackedTarball/lcms2/src/.libs -llcms2"])
9298 if test "$GCC" = "yes"; then
9299 LCMS2_CFLAGS="${LCMS2_CFLAGS} -Wno-long-long"
9301 if test "$COM" = "MSC"; then # override the above
9302 LCMS2_LIBS=${WORKDIR}/UnpackedTarball/lcms2/bin/lcms2.lib
9305 dnl ===================================================================
9306 dnl Check for system cppunit
9307 dnl ===================================================================
9308 if test "$_os" != "Android" ; then
9309 libo_CHECK_SYSTEM_MODULE([cppunit],[CPPUNIT],[cppunit >= 1.14.0])
9312 dnl ===================================================================
9313 dnl Check whether freetype is available
9314 dnl ===================================================================
9315 if test "$using_freetype_fontconfig" = yes; then
9316 AC_MSG_CHECKING([which freetype to use])
9318 if test "$using_freetype_fontconfig" = yes -a "$test_system_freetype" != no; then
9319 AC_MSG_RESULT([external])
9320 # FreeType has 3 different kinds of versions
9321 # * release, like 2.4.10
9322 # * libtool, like 13.0.7 (this what pkg-config returns)
9324 # FreeType's docs/VERSION.DLL provides a table mapping between the three
9327 PKG_CHECK_MODULES(FREETYPE, freetype2 >= 9.9.3)
9328 FREETYPE_CFLAGS=$(printf '%s' "$FREETYPE_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
9329 FilterLibs "${FREETYPE_LIBS}"
9330 FREETYPE_LIBS="${filteredlibs}"
9331 SYSTEM_FREETYPE=TRUE
9332 elif test "$using_freetype_fontconfig" = yes; then
9333 AC_MSG_RESULT([internal])
9334 FREETYPE_CFLAGS="${ISYSTEM}${WORKDIR}/UnpackedTarball/freetype/include"
9335 if test "x$ac_config_site_64bit_host" = xYES; then
9336 FREETYPE_LIBS="-L${WORKDIR}/UnpackedTarball/freetype/instdir/lib64 -lfreetype"
9338 FREETYPE_LIBS="-L${WORKDIR}/UnpackedTarball/freetype/instdir/lib -lfreetype"
9340 BUILD_TYPE="$BUILD_TYPE FREETYPE"
9342 AC_SUBST(FREETYPE_CFLAGS)
9343 AC_SUBST(FREETYPE_LIBS)
9344 AC_SUBST([SYSTEM_FREETYPE])
9346 # ===================================================================
9347 # Check for system libxslt
9348 # to prevent incompatibilities between internal libxml2 and external libxslt,
9349 # or vice versa, use with_system_libxml here
9350 # ===================================================================
9351 if test "$with_system_libxml" = "auto"; then
9354 with_system_libxml="$with_system_libs"
9357 with_system_libxml=no
9360 if test "$enable_fuzzers" != "yes"; then
9361 with_system_libxml=yes
9363 with_system_libxml=no
9369 AC_MSG_CHECKING([which libxslt to use])
9370 if test "$with_system_libxml" = "yes"; then
9371 AC_MSG_RESULT([external])
9373 if test "$_os" = "Darwin"; then
9374 dnl make sure to use SDK path
9375 LIBXSLT_CFLAGS="-I$MACOSX_SDK_PATH/usr/include/libxml2"
9376 LIBEXSLT_CFLAGS="$LIBXSLT_CFLAGS"
9378 LIBXSLT_LIBS="-lxslt -lxml2 -lz -lpthread -liconv -lm"
9379 LIBEXSLT_LIBS="-lexslt $LIBXSLT_LIBS"
9381 PKG_CHECK_MODULES(LIBXSLT, libxslt)
9382 LIBXSLT_CFLAGS=$(printf '%s' "$LIBXSLT_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
9383 FilterLibs "${LIBXSLT_LIBS}"
9384 LIBXSLT_LIBS="${filteredlibs}"
9385 PKG_CHECK_MODULES(LIBEXSLT, libexslt)
9386 LIBEXSLT_CFLAGS=$(printf '%s' "$LIBEXSLT_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
9387 FilterLibs "${LIBEXSLT_LIBS}"
9388 LIBEXSLT_LIBS=$(printf '%s' "${filteredlibs}" | sed -e "s/-lgpg-error//" -e "s/-lgcrypt//")
9391 dnl Check for xsltproc
9392 AC_PATH_PROG(XSLTPROC, xsltproc, no)
9393 if test "$XSLTPROC" = "no"; then
9394 AC_MSG_ERROR([xsltproc is required])
9397 AC_MSG_RESULT([internal])
9399 BUILD_TYPE="$BUILD_TYPE LIBXSLT"
9401 AC_SUBST(SYSTEM_LIBXSLT)
9402 if test -z "$SYSTEM_LIBXSLT_FOR_BUILD"; then
9403 SYSTEM_LIBXSLT_FOR_BUILD="$SYSTEM_LIBXSLT"
9405 AC_SUBST(SYSTEM_LIBXSLT_FOR_BUILD)
9407 AC_SUBST(LIBEXSLT_CFLAGS)
9408 AC_SUBST(LIBEXSLT_LIBS)
9409 AC_SUBST(LIBXSLT_CFLAGS)
9410 AC_SUBST(LIBXSLT_LIBS)
9413 # ===================================================================
9414 # Check for system libxml
9415 # ===================================================================
9416 AC_MSG_CHECKING([which libxml to use])
9417 if test "$with_system_libxml" = "yes"; then
9418 AC_MSG_RESULT([external])
9420 if test "$_os" = "Darwin"; then
9421 dnl make sure to use SDK path
9422 LIBXML_CFLAGS="-I$MACOSX_SDK_PATH/usr/include/libxml2"
9424 LIBXML_LIBS="-lxml2 -lz -lpthread -liconv -lm"
9425 elif test $_os = iOS; then
9426 dnl make sure to use SDK path
9427 usr=`echo '#include <stdlib.h>' | $CC -E -MD - | grep usr/include/stdlib.h | head -1 | sed -e 's,# 1 ",,' -e 's,/usr/include/.*,/usr,'`
9428 LIBXML_CFLAGS="-I$usr/include/libxml2"
9429 LIBXML_LIBS="-L$usr/lib -lxml2 -liconv"
9431 PKG_CHECK_MODULES(LIBXML, libxml-2.0 >= 2.0)
9432 LIBXML_CFLAGS=$(printf '%s' "$LIBXML_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
9433 FilterLibs "${LIBXML_LIBS}"
9434 LIBXML_LIBS="${filteredlibs}"
9437 dnl Check for xmllint
9438 AC_PATH_PROG(XMLLINT, xmllint, no)
9439 if test "$XMLLINT" = "no"; then
9440 AC_MSG_ERROR([xmllint is required])
9443 AC_MSG_RESULT([internal])
9445 LIBXML_CFLAGS="-I${WORKDIR}/UnpackedTarball/libxml2/include"
9446 if test "$COM" = "MSC"; then
9447 LIBXML_CFLAGS="${LIBXML_CFLAGS} -I${WORKDIR}/UnpackedTarball/icu/source/i18n -I${WORKDIR}/UnpackedTarball/icu/source/common"
9449 if test "$COM" = "MSC"; then
9450 LIBXML_LIBS="${WORKDIR}/UnpackedTarball/libxml2/win32/bin.msvc/libxml2.lib"
9452 LIBXML_LIBS="-L${WORKDIR}/UnpackedTarball/libxml2/.libs -lxml2"
9453 if test "$_os" = Android; then
9454 LIBXML_LIBS="$LIBXML_LIBS -lm"
9457 BUILD_TYPE="$BUILD_TYPE LIBXML2"
9459 AC_SUBST(SYSTEM_LIBXML)
9460 if test -z "$SYSTEM_LIBXML_FOR_BUILD"; then
9461 SYSTEM_LIBXML_FOR_BUILD="$SYSTEM_LIBXML"
9463 AC_SUBST(SYSTEM_LIBXML_FOR_BUILD)
9464 AC_SUBST(LIBXML_CFLAGS)
9465 AC_SUBST(LIBXML_LIBS)
9468 # =====================================================================
9469 # Checking for a Python interpreter with version >= 3.3.
9470 # Optionally user can pass an option to configure, i. e.
9471 # ./configure PYTHON=/usr/bin/python
9472 # =====================================================================
9473 if test $_os = Darwin -a "$enable_python" != no -a "$enable_python" != fully-internal -a "$enable_python" != internal -a "$enable_python" != system; then
9474 # Only allowed choices for macOS are 'no', 'internal' (default), and 'fully-internal'
9475 # unless PYTHON is defined as above which allows 'system'
9476 enable_python=internal
9478 if test "$build_os" != "cygwin" -a "$enable_python" != fully-internal; then
9479 if test -n "$PYTHON"; then
9480 PYTHON_FOR_BUILD=$PYTHON
9482 # This allows a lack of system python with no error, we use internal one in that case.
9483 AM_PATH_PYTHON([3.3],, [:])
9484 # Clean PYTHON_VERSION checked below if cross-compiling
9486 if test "$PYTHON" != ":"; then
9487 PYTHON_FOR_BUILD=$PYTHON
9491 AC_SUBST(PYTHON_FOR_BUILD)
9493 # Checks for Python to use for Pyuno
9494 AC_MSG_CHECKING([which Python to use for Pyuno])
9495 case "$enable_python" in
9497 if test -z $PYTHON_FOR_BUILD; then
9498 # Python is required to build LibreOffice. In theory we could separate the build-time Python
9499 # requirement from the choice whether to include Python stuff in the installer, but why
9501 if test "$cross_compiling" = yes; then
9502 enable_python=system
9504 AC_MSG_ERROR([Python is required at build time.])
9508 AC_MSG_RESULT([none])
9511 if test "$DISABLE_SCRIPTING" = TRUE -a -n "$PYTHON_FOR_BUILD"; then
9512 AC_MSG_RESULT([no, overridden by --disable-scripting])
9514 elif test $build_os = cygwin; then
9515 dnl When building on Windows we don't attempt to use any installed
9516 dnl "system" Python.
9517 AC_MSG_RESULT([fully internal])
9518 enable_python=internal
9519 elif test "$cross_compiling" = yes; then
9520 AC_MSG_RESULT([system])
9521 enable_python=system
9523 # Unset variables set by the above AM_PATH_PYTHON so that
9524 # we actually do check anew.
9526 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
9527 AM_PATH_PYTHON([3.3],, [:])
9528 AC_MSG_CHECKING([which Python to use for Pyuno])
9529 if test "$PYTHON" = ":"; then
9530 if test -z "$PYTHON_FOR_BUILD"; then
9531 AC_MSG_RESULT([fully internal])
9533 AC_MSG_RESULT([internal])
9535 enable_python=internal
9537 AC_MSG_RESULT([system])
9538 enable_python=system
9543 AC_MSG_RESULT([internal])
9546 AC_MSG_RESULT([fully internal])
9547 enable_python=internal
9550 AC_MSG_RESULT([system])
9551 if test "$_os" = Darwin -a -z "$PYTHON"; then
9552 AC_MSG_ERROR([--enable-python=system doesn't work on macOS because the version provided is obsolete])
9556 AC_MSG_ERROR([Incorrect --enable-python option])
9560 if test $enable_python != no; then
9561 BUILD_TYPE="$BUILD_TYPE PYUNO"
9564 if test $enable_python = system; then
9565 if test -n "$PYTHON_CFLAGS" -a -n "$PYTHON_LIBS"; then
9566 # Fallback: Accept these in the environment, or as set above
9569 elif test "$cross_compiling" != yes; then
9570 # Unset variables set by the above AM_PATH_PYTHON so that
9571 # we actually do check anew.
9572 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
9573 # This causes an error if no python command is found
9574 AM_PATH_PYTHON([3.3])
9575 python_include=`$PYTHON -c "import distutils.sysconfig; print(distutils.sysconfig.get_config_var('INCLUDEPY'));"`
9576 python_version=`$PYTHON -c "import distutils.sysconfig; print(distutils.sysconfig.get_config_var('VERSION'));"`
9577 python_libs=`$PYTHON -c "import distutils.sysconfig; print(distutils.sysconfig.get_config_var('LIBS'));"`
9578 python_libdir=`$PYTHON -c "import distutils.sysconfig; print(distutils.sysconfig.get_config_var('LIBDIR'));"`
9579 if test -z "$PKG_CONFIG"; then
9580 PYTHON_CFLAGS="-I$python_include"
9581 PYTHON_LIBS="-L$python_libdir -lpython$python_version $python_libs"
9582 elif $PKG_CONFIG --exists python-$python_version-embed; then
9583 PYTHON_CFLAGS="`$PKG_CONFIG --cflags python-$python_version-embed`"
9584 PYTHON_LIBS="`$PKG_CONFIG --libs python-$python_version-embed` $python_libs"
9585 elif $PKG_CONFIG --exists python-$python_version; then
9586 PYTHON_CFLAGS="`$PKG_CONFIG --cflags python-$python_version`"
9587 PYTHON_LIBS="`$PKG_CONFIG --libs python-$python_version` $python_libs"
9589 PYTHON_CFLAGS="-I$python_include"
9590 PYTHON_LIBS="-L$python_libdir -lpython$python_version $python_libs"
9592 FilterLibs "${PYTHON_LIBS}"
9593 PYTHON_LIBS="${filteredlibs}"
9595 dnl How to find out the cross-compilation Python installation path?
9596 AC_MSG_CHECKING([for python version])
9597 AS_IF([test -n "$PYTHON_VERSION"],
9598 [AC_MSG_RESULT([$PYTHON_VERSION])],
9599 [AC_MSG_RESULT([not found])
9600 AC_MSG_ERROR([no usable python found])])
9601 test -n "$PYTHON_CFLAGS" && break
9604 dnl Check if the headers really work
9605 save_CPPFLAGS="$CPPFLAGS"
9606 CPPFLAGS="$CPPFLAGS $PYTHON_CFLAGS"
9607 AC_CHECK_HEADER(Python.h)
9608 CPPFLAGS="$save_CPPFLAGS"
9610 # let the PYTHON_FOR_BUILD match the same python installation that
9611 # provides PYTHON_CFLAGS/PYTHON_LDFLAGS for pyuno, which should be
9612 # better for PythonTests.
9613 PYTHON_FOR_BUILD=$PYTHON
9616 if test "$with_lxml" != no; then
9617 if test -z "$PYTHON_FOR_BUILD"; then
9620 AC_MSG_WARN([No system-provided python lxml, gla11y will only report widget classes and ids])
9623 if test "$cross_compiling" != yes ; then
9624 BUILD_TYPE="$BUILD_TYPE LXML"
9629 AC_MSG_CHECKING([for python lxml])
9630 if $PYTHON_FOR_BUILD -c "import lxml.etree as ET" 2> /dev/null ; then
9631 AC_MSG_RESULT([yes])
9635 AC_MSG_RESULT([no, gla11y will only report widget classes and ids])
9638 if test "$cross_compiling" != yes -a "x$ac_cv_header_Python_h" = "xyes"; then
9639 if test -n ${SYSTEM_LIBXSLT} -o -n ${SYSTEM_LIBXML}; then
9640 AC_MSG_RESULT([no, and no system libxml/libxslt, gla11y will only report widget classes and ids])
9642 BUILD_TYPE="$BUILD_TYPE LXML"
9643 AC_MSG_RESULT([no, using internal lxml])
9646 AC_MSG_RESULT([no, and system does not provide python development headers, gla11y will only report widget classes and ids])
9654 dnl By now enable_python should be "system", "internal" or "no"
9655 case $enable_python in
9659 if test "x$ac_cv_header_Python_h" != "xyes"; then
9660 AC_MSG_ERROR([Python headers not found. You probably want to set both the PYTHON_CFLAGS and PYTHON_LIBS environment variables.])
9664 CFLAGS="$CFLAGS $PYTHON_CFLAGS"
9665 AC_MSG_CHECKING([for correct python library version])
9666 AC_RUN_IFELSE([AC_LANG_SOURCE([[
9669 int main(int argc, char **argv) {
9670 if ((PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION >= 3)) return 0;
9673 ]])],[AC_MSG_RESULT([ok])],[AC_MSG_ERROR([Python >= 3.3 is needed when building with Python 3])],[AC_MSG_RESULT([skipped; cross-compiling])])
9676 dnl FIXME Check if the Python library can be linked with, too?
9681 PYTHON_VERSION_MAJOR=3
9682 PYTHON_VERSION_MINOR=8
9683 PYTHON_VERSION=${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}.8
9684 if ! grep -q -i python.*${PYTHON_VERSION} ${SRC_ROOT}/download.lst; then
9685 AC_MSG_ERROR([PYTHON_VERSION ${PYTHON_VERSION} but no matching file in download.lst])
9687 AC_DEFINE_UNQUOTED([PYTHON_VERSION_STRING], [L"${PYTHON_VERSION}"])
9688 BUILD_TYPE="$BUILD_TYPE PYTHON"
9689 if test "$OS" = LINUX -o "$OS" = WNT ; then
9690 BUILD_TYPE="$BUILD_TYPE LIBFFI"
9692 # Embedded Python dies without Home set
9693 if test "$HOME" = ""; then
9702 AC_MSG_ERROR([Internal configure script error, invalid enable_python value "$enable_python"])
9706 AC_SUBST(DISABLE_PYTHON)
9707 AC_SUBST(SYSTEM_PYTHON)
9708 AC_SUBST(PYTHON_CFLAGS)
9709 AC_SUBST(PYTHON_LIBS)
9710 AC_SUBST(PYTHON_VERSION)
9711 AC_SUBST(PYTHON_VERSION_MAJOR)
9712 AC_SUBST(PYTHON_VERSION_MINOR)
9714 AC_MSG_CHECKING([whether to build LibreLogo])
9715 case "$enable_python" in
9717 AC_MSG_RESULT([no; Python disabled])
9720 if test "${enable_librelogo}" = "no"; then
9723 AC_MSG_RESULT([yes])
9724 BUILD_TYPE="${BUILD_TYPE} LIBRELOGO"
9725 AC_DEFINE([ENABLE_LIBRELOGO],1)
9729 AC_SUBST(ENABLE_LIBRELOGO)
9735 AC_MSG_CHECKING([whether to build the MariaDB/MySQL SDBC driver])
9736 if test "x$enable_mariadb_sdbc" != "xno" -a "$enable_mpl_subset" != "yes"; then
9737 ENABLE_MARIADBC=TRUE
9738 AC_MSG_RESULT([yes])
9739 BUILD_TYPE="$BUILD_TYPE MARIADBC"
9743 AC_SUBST(ENABLE_MARIADBC)
9744 AC_SUBST(MARIADBC_MAJOR)
9745 AC_SUBST(MARIADBC_MINOR)
9746 AC_SUBST(MARIADBC_MICRO)
9748 if test "$ENABLE_MARIADBC" = "TRUE"; then
9749 dnl ===================================================================
9750 dnl Check for system MariaDB
9751 dnl ===================================================================
9752 AC_MSG_CHECKING([which MariaDB to use])
9753 if test "$with_system_mariadb" = "yes"; then
9754 AC_MSG_RESULT([external])
9755 SYSTEM_MARIADB_CONNECTOR_C=TRUE
9756 #AC_PATH_PROG(MARIADBCONFIG, [mariadb_config])
9757 if test -z "$MARIADBCONFIG"; then
9758 AC_PATH_PROG(MARIADBCONFIG, [mysql_config])
9759 if test -z "$MARIADBCONFIG"; then
9760 AC_MSG_ERROR([mysql_config is missing. Install MySQL client library development package.])
9761 #AC_MSG_ERROR([mariadb_config and mysql_config are missing. Install MariaDB or MySQL client library development package.])
9764 AC_MSG_CHECKING([MariaDB version])
9765 MARIADB_VERSION=`$MARIADBCONFIG --version`
9766 MARIADB_MAJOR=`$MARIADBCONFIG --version | cut -d"." -f1`
9767 if test "$MARIADB_MAJOR" -ge "5"; then
9770 AC_MSG_ERROR([too old, use 5.0.x or later])
9772 AC_MSG_CHECKING([for MariaDB Client library])
9773 MARIADB_CFLAGS=`$MARIADBCONFIG --cflags`
9774 if test "$COM_IS_CLANG" = TRUE; then
9775 MARIADB_CFLAGS=$(printf '%s' "$MARIADB_CFLAGS" | sed -e s/-fstack-protector-strong//)
9777 MARIADB_LIBS=`$MARIADBCONFIG --libs_r`
9778 dnl At least mariadb-5.5.34-3.fc20.x86_64 plus
9779 dnl mariadb-5.5.34-3.fc20.i686 reports 64-bit specific output even under
9781 if test "$OS" = LINUX -a "$CPUNAME" = INTEL; then
9782 MARIADB_CFLAGS=$(printf '%s' "$MARIADB_CFLAGS" | sed -e s/-m64//)
9783 MARIADB_LIBS=$(printf '%s' "$MARIADB_LIBS" \
9784 | sed -e 's|/lib64/|/lib/|')
9786 FilterLibs "${MARIADB_LIBS}"
9787 MARIADB_LIBS="${filteredlibs}"
9788 AC_MSG_RESULT([includes '$MARIADB_CFLAGS', libraries '$MARIADB_LIBS'])
9789 AC_MSG_CHECKING([whether to bundle the MySQL/MariaDB client library])
9790 if test "$enable_bundle_mariadb" = "yes"; then
9791 AC_MSG_RESULT([yes])
9792 BUNDLE_MARIADB_CONNECTOR_C=TRUE
9793 LIBMARIADB=lib$(echo "${MARIADB_LIBS}" | sed -e 's/[[[:space:]]]\{1,\}-l\([[^[:space:]]]\{1,\}\)/\
9795 /g' -e 's/^-l\([[^[:space:]]]\{1,\}\)[[[:space:]]]*/\
9797 /g' | grep -E '(mysqlclient|mariadb)')
9798 if test "$_os" = "Darwin"; then
9799 LIBMARIADB=${LIBMARIADB}.dylib
9800 elif test "$_os" = "WINNT"; then
9801 LIBMARIADB=${LIBMARIADB}.dll
9803 LIBMARIADB=${LIBMARIADB}.so
9805 LIBMARIADB_PATH=$($MARIADBCONFIG --variable=pkglibdir)
9806 AC_MSG_CHECKING([for $LIBMARIADB in $LIBMARIADB_PATH])
9807 if test -e "$LIBMARIADB_PATH/$LIBMARIADB"; then
9808 AC_MSG_RESULT([found.])
9809 PathFormat "$LIBMARIADB_PATH"
9810 LIBMARIADB_PATH="$formatted_path"
9812 AC_MSG_ERROR([not found.])
9816 BUNDLE_MARIADB_CONNECTOR_C=
9819 AC_MSG_RESULT([internal])
9820 SYSTEM_MARIADB_CONNECTOR_C=
9821 MARIADB_CFLAGS="-I${WORKDIR}/UnpackedTarball/mariadb-connector-c/include"
9822 MARIADB_LIBS="-L${WORKDIR}/LinkTarget/StaticLibrary -lmariadb-connector-c"
9823 BUILD_TYPE="$BUILD_TYPE MARIADB_CONNECTOR_C"
9826 AC_SUBST(SYSTEM_MARIADB_CONNECTOR_C)
9827 AC_SUBST(MARIADB_CFLAGS)
9828 AC_SUBST(MARIADB_LIBS)
9829 AC_SUBST(LIBMARIADB)
9830 AC_SUBST(LIBMARIADB_PATH)
9831 AC_SUBST(BUNDLE_MARIADB_CONNECTOR_C)
9834 dnl ===================================================================
9835 dnl Check for system hsqldb
9836 dnl ===================================================================
9837 if test "$with_java" != "no" -a "$cross_compiling" != "yes"; then
9838 HSQLDB_USE_JDBC_4_1=
9839 AC_MSG_CHECKING([which hsqldb to use])
9840 if test "$with_system_hsqldb" = "yes"; then
9841 AC_MSG_RESULT([external])
9843 if test -z $HSQLDB_JAR; then
9844 HSQLDB_JAR=/usr/share/java/hsqldb.jar
9846 if ! test -f $HSQLDB_JAR; then
9847 AC_MSG_ERROR(hsqldb.jar not found.)
9849 AC_MSG_CHECKING([whether hsqldb is 1.8.0.x])
9853 my $file = "$ENV{'HSQLDB_JAR'}";
9854 my $zip = Archive::Zip->new( $file );
9855 my $mf = $zip->contents ( "META-INF/MANIFEST.MF" );
9856 if ( $mf =~ m/Specification-Version: 1.8.*/ )
9858 push @l, split(/\n/, $mf);
9859 foreach my $line (@l)
9861 if ($line =~ m/Specification-Version:/)
9863 ($t, $version) = split (/:/,$line);
9864 $version =~ s/^\s//;
9865 ($a, $b, $c, $d) = split (/\./,$version);
9866 if ($c == "0" && $d > "8")
9881 AC_MSG_RESULT([yes])
9883 AC_MSG_ERROR([no, you need hsqldb >= 1.8.0.9 but < 1.8.1])
9886 AC_MSG_RESULT([internal])
9888 BUILD_TYPE="$BUILD_TYPE HSQLDB"
9890 AC_MSG_CHECKING([whether hsqldb should be built with JDBC 4.1])
9891 javanumver=`$JAVAINTERPRETER -version 2>&1 | $AWK -v num=true -f $SRC_ROOT/solenv/bin/getcompver.awk`
9892 if expr "$javanumver" '>=' 000100060000 > /dev/null; then
9893 AC_MSG_RESULT([yes])
9894 HSQLDB_USE_JDBC_4_1=TRUE
9900 if test "$with_java" != "no" -a -z "$HSQLDB_JAR"; then
9901 BUILD_TYPE="$BUILD_TYPE HSQLDB"
9904 AC_SUBST(SYSTEM_HSQLDB)
9905 AC_SUBST(HSQLDB_JAR)
9906 AC_SUBST([HSQLDB_USE_JDBC_4_1])
9908 dnl ===================================================================
9909 dnl Check for PostgreSQL stuff
9910 dnl ===================================================================
9911 AC_MSG_CHECKING([whether to build the PostgreSQL SDBC driver])
9912 if test "x$enable_postgresql_sdbc" != "xno"; then
9913 AC_MSG_RESULT([yes])
9914 SCPDEFS="$SCPDEFS -DWITH_POSTGRESQL_SDBC"
9916 if test "$with_krb5" = "yes" -a "$enable_openssl" = "no"; then
9917 AC_MSG_ERROR([krb5 needs OpenSSL, but --disable-openssl was given.])
9919 if test "$with_gssapi" = "yes" -a "$enable_openssl" = "no"; then
9920 AC_MSG_ERROR([GSSAPI needs OpenSSL, but --disable-openssl was given.])
9923 postgres_interface=""
9924 if test "$with_system_postgresql" = "yes"; then
9925 postgres_interface="external PostgreSQL"
9926 SYSTEM_POSTGRESQL=TRUE
9927 if test "$_os" = Darwin; then
9929 for d in /Library/PostgreSQL/9.*/bin /sw/opt/postgresql/9.*/bin /opt/local/lib/postgresql9*/bin; do
9930 pg_supp_path="$P_SEP$d$pg_supp_path"
9933 AC_PATH_PROG(PGCONFIG, pg_config, ,$PATH$pg_supp_path)
9934 if test -n "$PGCONFIG"; then
9935 POSTGRESQL_INC=-I$(${PGCONFIG} --includedir)
9936 POSTGRESQL_LIB="-L$(${PGCONFIG} --libdir)"
9938 PKG_CHECK_MODULES(POSTGRESQL, libpq, [
9939 POSTGRESQL_INC=$POSTGRESQL_CFLAGS
9940 POSTGRESQL_LIB=$POSTGRESQL_LIBS
9942 AC_MSG_ERROR([pg_config or 'pkg-config libpq' needed; set PGCONFIG if not in PATH])
9945 FilterLibs "${POSTGRESQL_LIB}"
9946 POSTGRESQL_LIB="${filteredlibs}"
9948 # if/when anything else than PostgreSQL uses Kerberos,
9949 # move this out of `test "x$enable_postgresql_sdbc" != "xno"'
9954 # macOS has system MIT Kerberos 5 since 10.4
9955 if test "$with_krb5" != "no"; then
9958 # Not sure whether it makes any sense here to search multiple potential libraries; it is not likely
9959 # that the libraries where these functions are located on macOS will change, is it?
9960 AC_SEARCH_LIBS(com_err, [com_err 'com_err -lssl -lcrypto' krb5 'krb5 -lcrypto -ldes -lasn1 -lroken'], [],
9961 [AC_MSG_ERROR([could not find function 'com_err' required for Kerberos 5])])
9964 AC_SEARCH_LIBS(krb5_sendauth, [krb5 'krb5 -lcrypto -ldes -lasn1 -lroken'], [],
9965 [AC_MSG_ERROR([could not find function 'krb5_sendauth' required for Kerberos 5])])
9966 KRB5_LIBS="$KRB5_LIBS $LIBS"
9969 if test "$with_gssapi" != "no"; then
9972 AC_SEARCH_LIBS(gss_init_sec_context, [gssapi_krb5 gss 'gssapi -lkrb5 -lcrypto'], [],
9973 [AC_MSG_ERROR([could not find function 'gss_init_sec_context' required for GSSAPI])])
9979 if test "$with_krb5" = "yes" -o "$with_gssapi" = "yes"; then
9980 AC_MSG_ERROR([Refusing to enable MIT Kerberos 5 or GSSAPI on Windows.])
9983 Linux|GNU|*BSD|DragonFly)
9984 if test "$with_krb5" != "no"; then
9987 AC_SEARCH_LIBS(com_err, [com_err 'com_err -lssl -lcrypto' krb5 'krb5 -lcrypto -ldes -lasn1 -lroken'], [],
9988 [AC_MSG_ERROR([could not find function 'com_err' required for Kerberos 5])])
9991 AC_SEARCH_LIBS(krb5_sendauth, [krb5 'krb5 -lcrypto -ldes -lasn1 -lroken'], [],
9992 [AC_MSG_ERROR([could not find function 'krb5_sendauth' required for Kerberos 5])])
9993 KRB5_LIBS="$KRB5_LIBS $LIBS"
9996 if test "$with_gssapi" != "no"; then
9999 AC_SEARCH_LIBS(gss_init_sec_context, [gssapi_krb5 gss 'gssapi -lkrb5 -lcrypto'], [],
10000 [AC_MSG_ERROR([could not find function 'gss_init_sec_context' required for GSSAPI])])
10006 if test "$with_krb5" = "yes"; then
10009 AC_SEARCH_LIBS(com_err, [com_err 'com_err -lssl -lcrypto' krb5 'krb5 -lcrypto -ldes -lasn1 -lroken'], [],
10010 [AC_MSG_ERROR([could not find function 'com_err' required for Kerberos 5])])
10013 AC_SEARCH_LIBS(krb5_sendauth, [krb5 'krb5 -lcrypto -ldes -lasn1 -lroken'], [],
10014 [AC_MSG_ERROR([could not find function 'krb5_sendauth' required for Kerberos 5])])
10015 KRB5_LIBS="$KRB5_LIBS $LIBS"
10018 if test "$with_gssapi" = "yes"; then
10021 AC_SEARCH_LIBS(gss_init_sec_context, [gssapi_krb5 gss 'gssapi -lkrb5 -lcrypto'], [],
10022 [AC_MSG_ERROR([could not find function 'gss_init_sec_context' required for GSSAPI])])
10028 if test -n "$with_libpq_path"; then
10029 SYSTEM_POSTGRESQL=TRUE
10030 postgres_interface="external libpq"
10031 POSTGRESQL_LIB="-L${with_libpq_path}/lib/"
10032 POSTGRESQL_INC=-I"${with_libpq_path}/include/"
10035 postgres_interface="internal"
10037 POSTGRESQL_INC="%OVERRIDE_ME%"
10038 BUILD_TYPE="$BUILD_TYPE POSTGRESQL"
10042 AC_MSG_CHECKING([PostgreSQL C interface])
10043 AC_MSG_RESULT([$postgres_interface])
10045 if test "${SYSTEM_POSTGRESQL}" = "TRUE"; then
10046 AC_MSG_NOTICE([checking system PostgreSQL prerequisites])
10047 save_CFLAGS=$CFLAGS
10048 save_CPPFLAGS=$CPPFLAGS
10050 CPPFLAGS="${CPPFLAGS} ${POSTGRESQL_INC}"
10051 LIBS="${LIBS} ${POSTGRESQL_LIB}"
10052 AC_CHECK_HEADER([libpq-fe.h], [], [AC_MSG_ERROR([libpq-fe.h is needed])], [])
10053 AC_CHECK_LIB([pq], [PQconnectdbParams], [:],
10054 [AC_MSG_ERROR(libpq not found or too old. Need >= 9.0)], [])
10055 CFLAGS=$save_CFLAGS
10056 CPPFLAGS=$save_CPPFLAGS
10059 BUILD_POSTGRESQL_SDBC=TRUE
10061 AC_MSG_RESULT([no])
10063 AC_SUBST(WITH_KRB5)
10064 AC_SUBST(WITH_GSSAPI)
10065 AC_SUBST(GSSAPI_LIBS)
10066 AC_SUBST(KRB5_LIBS)
10067 AC_SUBST(BUILD_POSTGRESQL_SDBC)
10068 AC_SUBST(SYSTEM_POSTGRESQL)
10069 AC_SUBST(POSTGRESQL_INC)
10070 AC_SUBST(POSTGRESQL_LIB)
10072 dnl ===================================================================
10073 dnl Check for Firebird stuff
10074 dnl ===================================================================
10075 ENABLE_FIREBIRD_SDBC=
10076 if test "$enable_firebird_sdbc" = "yes" ; then
10077 SCPDEFS="$SCPDEFS -DWITH_FIREBIRD_SDBC"
10079 dnl ===================================================================
10080 dnl Check for system Firebird
10081 dnl ===================================================================
10082 AC_MSG_CHECKING([which Firebird to use])
10083 if test "$with_system_firebird" = "yes"; then
10084 AC_MSG_RESULT([external])
10085 SYSTEM_FIREBIRD=TRUE
10086 AC_PATH_PROG(FIREBIRDCONFIG, [fb_config])
10087 if test -z "$FIREBIRDCONFIG"; then
10088 AC_MSG_NOTICE([No fb_config -- using pkg-config])
10089 PKG_CHECK_MODULES([FIREBIRD], [fbclient >= 3], [FIREBIRD_PKGNAME=fbclient], [
10090 PKG_CHECK_MODULES([FIREBIRD], [fbembed], [FIREBIRD_PKGNAME=fbembed])
10092 FIREBIRD_VERSION=`pkg-config --modversion "$FIREBIRD_PKGNAME"`
10094 AC_MSG_NOTICE([fb_config found])
10095 FIREBIRD_VERSION=`$FIREBIRDCONFIG --version`
10096 AC_MSG_CHECKING([for Firebird Client library])
10097 FIREBIRD_CFLAGS=`$FIREBIRDCONFIG --cflags`
10098 FIREBIRD_LIBS=`$FIREBIRDCONFIG --embedlibs`
10099 FilterLibs "${FIREBIRD_LIBS}"
10100 FIREBIRD_LIBS="${filteredlibs}"
10102 AC_MSG_RESULT([includes `$FIREBIRD_CFLAGS', libraries `$FIREBIRD_LIBS'])
10103 AC_MSG_CHECKING([Firebird version])
10104 if test -n "${FIREBIRD_VERSION}"; then
10105 FIREBIRD_MAJOR=`echo $FIREBIRD_VERSION | cut -d"." -f1`
10106 if test "$FIREBIRD_MAJOR" -ge "3"; then
10107 AC_MSG_RESULT([OK])
10109 AC_MSG_ERROR([Ensure firebird >= 3 is installed])
10112 save_CFLAGS="${CFLAGS}"
10113 CFLAGS="${CFLAGS} ${FIREBIRD_CFLAGS}"
10114 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include <ibase.h>
10115 #if defined(FB_API_VER) && FB_API_VER == 30
10116 int fb_api_is_30(void) { return 0; }
10118 #error "Wrong Firebird API version"
10119 #endif]])],AC_MSG_RESULT([OK]),AC_MSG_ERROR([Ensure firebird 3.0.x is installed]))
10120 CFLAGS="$save_CFLAGS"
10122 ENABLE_FIREBIRD_SDBC=TRUE
10123 AC_DEFINE([ENABLE_FIREBIRD_SDBC],1)
10124 elif test "$enable_database_connectivity" = no; then
10125 AC_MSG_RESULT([none])
10126 elif test "$cross_compiling" = "yes"; then
10127 AC_MSG_RESULT([none])
10129 dnl Embedded Firebird has version 3.0
10130 dnl We need libatomic_ops for any non X86/X64 system
10131 if test "${CPUNAME}" != INTEL -a "${CPUNAME}" != X86_64; then
10132 dnl ===================================================================
10133 dnl Check for system libatomic_ops
10134 dnl ===================================================================
10135 libo_CHECK_SYSTEM_MODULE([libatomic_ops],[LIBATOMIC_OPS],[atomic_ops >= 0.7.2])
10136 if test "$with_system_libatomic_ops" = "yes"; then
10137 SYSTEM_LIBATOMIC_OPS=TRUE
10138 AC_CHECK_HEADERS(atomic_ops.h, [],
10139 [AC_MSG_ERROR(atomic_ops.h not found. install libatomic_ops)], [])
10141 SYSTEM_LIBATOMIC_OPS=
10142 LIBATOMIC_OPS_CFLAGS="-I${WORKDIR}/UnpackedTarball/libatomic_ops/include"
10143 LIBATOMIC_OPS_LIBS="-latomic_ops"
10144 BUILD_TYPE="$BUILD_TYPE LIBATOMIC_OPS"
10148 AC_MSG_RESULT([internal])
10150 FIREBIRD_CFLAGS="-I${WORKDIR}/UnpackedTarball/firebird/gen/Release/firebird/include"
10151 FIREBIRD_LIBS="-lfbclient"
10153 if test "$with_system_libtommath" = "yes"; then
10154 SYSTEM_LIBTOMMATH=TRUE
10155 dnl check for tommath presence
10157 AC_CHECK_HEADER(tommath.h,,AC_MSG_ERROR(Include file for tommath not found - please install development tommath package))
10158 AC_CHECK_LIB(tommath, mp_init, LIBTOMMATH_LIBS=-ltommath, AC_MSG_ERROR(Library tommath not found - please install development tommath package))
10162 LIBTOMMATH_CFLAGS="-I${WORKDIR}/UnpackedTarball/libtommath"
10163 LIBTOMMATH_LIBS="-ltommath"
10164 BUILD_TYPE="$BUILD_TYPE LIBTOMMATH"
10167 BUILD_TYPE="$BUILD_TYPE FIREBIRD"
10168 ENABLE_FIREBIRD_SDBC=TRUE
10169 AC_DEFINE([ENABLE_FIREBIRD_SDBC],1)
10172 AC_SUBST(ENABLE_FIREBIRD_SDBC)
10173 AC_SUBST(SYSTEM_LIBATOMIC_OPS)
10174 AC_SUBST(LIBATOMIC_OPS_CFLAGS)
10175 AC_SUBST(LIBATOMIC_OPS_LIBS)
10176 AC_SUBST(SYSTEM_FIREBIRD)
10177 AC_SUBST(FIREBIRD_CFLAGS)
10178 AC_SUBST(FIREBIRD_LIBS)
10179 AC_SUBST(SYSTEM_LIBTOMMATH)
10180 AC_SUBST(LIBTOMMATH_CFLAGS)
10181 AC_SUBST(LIBTOMMATH_LIBS)
10183 dnl ===================================================================
10184 dnl Check for system curl
10185 dnl ===================================================================
10186 AC_MSG_CHECKING([which libcurl to use])
10187 if test "$with_system_curl" = "auto"; then
10188 with_system_curl="$with_system_libs"
10191 if test "$test_curl" = "yes" -a "$enable_curl" = "yes" -a "$with_system_curl" = "yes"; then
10192 AC_MSG_RESULT([external])
10195 # First try PKGCONFIG and then fall back
10196 PKG_CHECK_MODULES(CURL, libcurl >= 7.19.4,, [:])
10198 if test -n "$CURL_PKG_ERRORS"; then
10199 AC_PATH_PROG(CURLCONFIG, curl-config)
10200 if test -z "$CURLCONFIG"; then
10201 AC_MSG_ERROR([curl development files not found])
10203 CURL_LIBS=`$CURLCONFIG --libs`
10204 FilterLibs "${CURL_LIBS}"
10205 CURL_LIBS="${filteredlibs}"
10206 CURL_CFLAGS=$("$CURLCONFIG" --cflags | sed -e "s/-I/${ISYSTEM?}/g")
10207 curl_version=`$CURLCONFIG --version | $SED -e 's/^libcurl //'`
10209 AC_MSG_CHECKING([whether libcurl is >= 7.19.4])
10210 case $curl_version in
10211 dnl brackets doubled below because Autoconf uses them as m4 quote characters,
10212 dnl so they need to be doubled to end up in the configure script
10213 7.19.4|7.19.[[5-9]]|7.[[2-9]]?.*|7.???.*|[[8-9]].*|[[1-9]][[0-9]].*)
10214 AC_MSG_RESULT([yes])
10217 AC_MSG_ERROR([no, you have $curl_version])
10223 elif test "$test_curl" = "no"; then
10224 AC_MSG_RESULT([none])
10226 AC_MSG_RESULT([internal])
10228 BUILD_TYPE="$BUILD_TYPE CURL"
10231 AC_SUBST(SYSTEM_CURL)
10232 AC_SUBST(CURL_CFLAGS)
10233 AC_SUBST(CURL_LIBS)
10234 AC_SUBST(ENABLE_CURL)
10236 dnl ===================================================================
10237 dnl Check for system boost
10238 dnl ===================================================================
10239 AC_MSG_CHECKING([which boost to use])
10240 if test "$with_system_boost" = "yes"; then
10241 AC_MSG_RESULT([external])
10243 AX_BOOST_BASE([1.66],,[AC_MSG_ERROR([no suitable Boost found])])
10245 AX_BOOST_FILESYSTEM
10248 AC_LANG_PUSH([C++])
10249 save_CXXFLAGS=$CXXFLAGS
10250 CXXFLAGS="$CXXFLAGS $BOOST_CPPFLAGS $CXXFLAGS_CXX11"
10251 AC_CHECK_HEADER(boost/shared_ptr.hpp, [],
10252 [AC_MSG_ERROR(boost/shared_ptr.hpp not found. install boost)], [])
10253 AC_CHECK_HEADER(boost/spirit/include/classic_core.hpp, [],
10254 [AC_MSG_ERROR(boost/spirit/include/classic_core.hpp not found. install boost >= 1.36)], [])
10255 CXXFLAGS=$save_CXXFLAGS
10257 # this is in m4/ax_boost_base.m4
10258 FilterLibs "${BOOST_LDFLAGS}"
10259 BOOST_LDFLAGS="${filteredlibs}"
10261 AC_MSG_RESULT([internal])
10262 BUILD_TYPE="$BUILD_TYPE BOOST"
10264 if test "${COM}" = "GCC" -o "${COM_IS_CLANG}" = "TRUE"; then
10265 # use warning-suppressing wrapper headers
10266 BOOST_CPPFLAGS="-I${SRC_ROOT}/external/boost/include -I${WORKDIR}/UnpackedTarball/boost"
10268 BOOST_CPPFLAGS="-I${WORKDIR}/UnpackedTarball/boost"
10271 AC_SUBST(SYSTEM_BOOST)
10273 dnl ===================================================================
10274 dnl Check for system mdds
10275 dnl ===================================================================
10276 libo_CHECK_SYSTEM_MODULE([mdds], [MDDS], [mdds-1.5 >= 1.5.0], ["-I${WORKDIR}/UnpackedTarball/mdds/include"])
10278 dnl ===================================================================
10279 dnl Check for system glm
10280 dnl ===================================================================
10281 AC_MSG_CHECKING([which glm to use])
10282 if test "$with_system_glm" = "yes"; then
10283 AC_MSG_RESULT([external])
10285 AC_LANG_PUSH([C++])
10286 AC_CHECK_HEADER([glm/glm.hpp], [],
10287 [AC_MSG_ERROR([glm/glm.hpp not found. install glm])], [])
10290 AC_MSG_RESULT([internal])
10291 BUILD_TYPE="$BUILD_TYPE GLM"
10293 GLM_CFLAGS="${ISYSTEM}${WORKDIR}/UnpackedTarball/glm"
10295 AC_SUBST([GLM_CFLAGS])
10296 AC_SUBST([SYSTEM_GLM])
10298 dnl ===================================================================
10299 dnl Check for system odbc
10300 dnl ===================================================================
10301 AC_MSG_CHECKING([which odbc headers to use])
10302 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
10303 AC_MSG_RESULT([external])
10304 SYSTEM_ODBC_HEADERS=TRUE
10306 if test "$build_os" = "cygwin" -o "$build_os" = "wsl"; then
10307 save_CPPFLAGS=$CPPFLAGS
10309 PathFormat "$winsdktest"
10310 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"
10311 AC_CHECK_HEADER(sqlext.h, [],
10312 [AC_MSG_ERROR(odbc not found. install odbc)],
10313 [#include <windows.h>])
10314 CPPFLAGS=$save_CPPFLAGS
10316 AC_CHECK_HEADER(sqlext.h, [],
10317 [AC_MSG_ERROR(odbc not found. install odbc)],[])
10319 elif test "$enable_database_connectivity" = no; then
10320 AC_MSG_RESULT([none])
10322 AC_MSG_RESULT([internal])
10323 SYSTEM_ODBC_HEADERS=
10325 AC_SUBST(SYSTEM_ODBC_HEADERS)
10327 dnl ===================================================================
10328 dnl Check for system NSS
10329 dnl ===================================================================
10330 if test "$enable_fuzzers" != "yes" -a "$enable_nss" = "yes"; then
10331 libo_CHECK_SYSTEM_MODULE([nss],[NSS],[nss >= 3.9.3 nspr >= 4.8])
10332 AC_DEFINE(HAVE_FEATURE_NSS)
10334 elif test $_os != iOS ; then
10337 AC_SUBST(ENABLE_NSS)
10339 dnl ===================================================================
10340 dnl Enable LDAP support
10341 dnl ===================================================================
10343 if test "$test_openldap" = yes; then
10344 AC_MSG_CHECKING([whether to enable LDAP support])
10345 if test "$enable_ldap" = yes -a \( "$ENABLE_NSS" = TRUE -o "$with_system_openldap" = yes \); then
10346 AC_MSG_RESULT([yes])
10349 if test "$enable_ldap" != "yes"; then
10350 AC_MSG_RESULT([no])
10352 AC_MSG_RESULT([no (needs NSS or system openldap)])
10356 dnl ===================================================================
10357 dnl Check for system openldap
10358 dnl ===================================================================
10360 if test "$ENABLE_LDAP" = TRUE; then
10361 AC_MSG_CHECKING([which openldap library to use])
10362 if test "$with_system_openldap" = yes; then
10363 AC_MSG_RESULT([external])
10364 SYSTEM_OPENLDAP=TRUE
10365 AC_CHECK_HEADERS(ldap.h, [], [AC_MSG_ERROR(ldap.h not found. install openldap libs)], [])
10366 AC_CHECK_LIB([ldap], [ldap_simple_bind_s], [:], [AC_MSG_ERROR(openldap lib not found or functional)], [])
10367 AC_CHECK_LIB([ldap], [ldap_set_option], [:], [AC_MSG_ERROR(openldap lib not found or functional)], [])
10369 AC_MSG_RESULT([internal])
10370 BUILD_TYPE="$BUILD_TYPE OPENLDAP"
10375 AC_SUBST(ENABLE_LDAP)
10376 AC_SUBST(SYSTEM_OPENLDAP)
10378 dnl ===================================================================
10379 dnl Check for TLS/SSL and cryptographic implementation to use
10380 dnl ===================================================================
10381 AC_MSG_CHECKING([which TLS/SSL and cryptographic implementation to use])
10382 if test -n "$with_tls"; then
10385 AC_DEFINE(USE_TLS_OPENSSL)
10387 AC_MSG_RESULT([$TLS])
10389 if test "$enable_openssl" != "yes"; then
10390 AC_MSG_ERROR(["Disabling OpenSSL was requested, but the requested TLS to use is actually OpenSSL."])
10393 # warn that OpenSSL has been selected but not all TLS code has this option
10394 AC_MSG_WARN([TLS/SSL implementation to use is OpenSSL but some code may still depend on NSS or GNUTLS])
10395 add_warning "TLS/SSL implementation to use is OpenSSL but some code may still depend on NSS or GNUTLS"
10398 AC_DEFINE(USE_TLS_NSS)
10400 AC_MSG_RESULT([$TLS])
10403 AC_MSG_RESULT([none])
10404 AC_MSG_WARN([Skipping TLS/SSL])
10408 AC_MSG_ERROR([unsupported implementation $with_tls. Supported are:
10410 nss - Mozilla's Network Security Services (NSS)
10415 # default to using NSS, it results in smaller oox lib
10416 AC_DEFINE(USE_TLS_NSS)
10418 AC_MSG_RESULT([$TLS])
10422 dnl ===================================================================
10423 dnl Check for system sane
10424 dnl ===================================================================
10425 AC_MSG_CHECKING([which sane header to use])
10426 if test "$with_system_sane" = "yes"; then
10427 AC_MSG_RESULT([external])
10428 AC_CHECK_HEADER(sane/sane.h, [],
10429 [AC_MSG_ERROR(sane not found. install sane)], [])
10431 AC_MSG_RESULT([internal])
10432 BUILD_TYPE="$BUILD_TYPE SANE"
10435 dnl ===================================================================
10436 dnl Check for system icu
10437 dnl ===================================================================
10444 ICU_RECLASSIFIED_PREPEND_SET_EMPTY="TRUE"
10445 ICU_RECLASSIFIED_CONDITIONAL_JAPANESE_STARTER="TRUE"
10446 ICU_RECLASSIFIED_HEBREW_LETTER="TRUE"
10447 AC_MSG_CHECKING([which icu to use])
10448 if test "$with_system_icu" = "yes"; then
10449 AC_MSG_RESULT([external])
10451 AC_LANG_PUSH([C++])
10452 AC_MSG_CHECKING([for unicode/rbbi.h])
10453 AC_PREPROC_IFELSE([AC_LANG_SOURCE([[unicode/rbbi.h]])],[AC_MSG_RESULT([yes])],[AC_MSG_ERROR([icu headers not found])])
10456 if test "$cross_compiling" != "yes"; then
10457 PKG_CHECK_MODULES(ICU, icu-i18n >= 4.6)
10458 ICU_VERSION=`$PKG_CONFIG --modversion icu-i18n 2>/dev/null`
10459 ICU_MAJOR=`echo $ICU_VERSION | cut -d"." -f1`
10460 ICU_MINOR=`echo $ICU_VERSION | cut -d"." -f2`
10463 if test "$cross_compiling" = "yes" -a \( "$with_system_icu_for_build" = "yes" -o "$with_system_icu_for_build" = "force" \); then
10464 ICU_VERSION_FOR_BUILD=`$PKG_CONFIG --modversion icu-i18n 2>/dev/null`
10465 ICU_MAJOR_FOR_BUILD=`echo $ICU_VERSION_FOR_BUILD | cut -d"." -f1`
10466 ICU_MINOR_FOR_BUILD=`echo $ICU_VERSION_FOR_BUILD | cut -d"." -f2`
10467 AC_MSG_CHECKING([if MinGW and system versions of ICU are compatible])
10468 if test "$ICU_MAJOR" -eq "$ICU_MAJOR_FOR_BUILD" -a "$ICU_MINOR" -eq "$ICU_MINOR_FOR_BUILD"; then
10469 AC_MSG_RESULT([yes])
10471 AC_MSG_RESULT([no])
10472 if test "$with_system_icu_for_build" != "force"; then
10473 AC_MSG_ERROR([System ICU is not version-compatible with MinGW ICU.
10474 You can use --with-system-icu-for-build=force to use it anyway.])
10479 if test "$cross_compiling" != "yes" -o "$with_system_icu_for_build" = "yes" -o "$with_system_icu_for_build" = "force"; then
10480 # using the system icu tools can lead to version confusion, use the
10481 # ones from the build environment when cross-compiling
10482 AC_PATH_PROG(SYSTEM_GENBRK, genbrk, [], [$PATH:/usr/sbin:/sbin])
10483 if test -z "$SYSTEM_GENBRK"; then
10484 AC_MSG_ERROR([\'genbrk\' not found in \$PATH, install the icu development tool \'genbrk\'])
10486 AC_PATH_PROG(SYSTEM_GENCCODE, genccode, [], [$PATH:/usr/sbin:/sbin:/usr/local/sbin])
10487 if test -z "$SYSTEM_GENCCODE"; then
10488 AC_MSG_ERROR([\'genccode\' not found in \$PATH, install the icu development tool \'genccode\'])
10490 AC_PATH_PROG(SYSTEM_GENCMN, gencmn, [], [$PATH:/usr/sbin:/sbin:/usr/local/sbin])
10491 if test -z "$SYSTEM_GENCMN"; then
10492 AC_MSG_ERROR([\'gencmn\' not found in \$PATH, install the icu development tool \'gencmn\'])
10494 if test "$ICU_MAJOR" -ge "49"; then
10495 ICU_RECLASSIFIED_PREPEND_SET_EMPTY="TRUE"
10496 ICU_RECLASSIFIED_CONDITIONAL_JAPANESE_STARTER="TRUE"
10497 ICU_RECLASSIFIED_HEBREW_LETTER="TRUE"
10499 ICU_RECLASSIFIED_PREPEND_SET_EMPTY=
10500 ICU_RECLASSIFIED_CONDITIONAL_JAPANESE_STARTER=
10501 ICU_RECLASSIFIED_HEBREW_LETTER=
10505 if test "$cross_compiling" = "yes"; then
10506 if test "$ICU_MAJOR" -ge "50"; then
10507 AC_MSG_RESULT([Ignore ICU_MINOR as obviously the libraries don't include the minor version in their names any more])
10512 AC_MSG_RESULT([internal])
10514 BUILD_TYPE="$BUILD_TYPE ICU"
10515 # surprisingly set these only for "internal" (to be used by various other
10516 # external libs): the system icu-config is quite unhelpful and spits out
10517 # dozens of weird flags and also default path -I/usr/include
10518 ICU_CFLAGS="-I${WORKDIR}/UnpackedTarball/icu/source/i18n -I${WORKDIR}/UnpackedTarball/icu/source/common"
10519 ICU_LIBS="-L${WORKDIR}/UnpackedTarball/icu/source/lib"
10521 if test "$ICU_MAJOR" -ge "59"; then
10522 # As of ICU 59 it defaults to typedef char16_t UChar; which is available
10523 # with -std=c++11 but not all external libraries can be built with that,
10524 # for those use a bit-compatible typedef uint16_t UChar; see
10525 # icu/source/common/unicode/umachine.h
10526 ICU_UCHAR_TYPE="-DUCHAR_TYPE=uint16_t"
10530 AC_SUBST(SYSTEM_ICU)
10531 AC_SUBST(SYSTEM_GENBRK)
10532 AC_SUBST(SYSTEM_GENCCODE)
10533 AC_SUBST(SYSTEM_GENCMN)
10534 AC_SUBST(ICU_MAJOR)
10535 AC_SUBST(ICU_MINOR)
10536 AC_SUBST(ICU_RECLASSIFIED_PREPEND_SET_EMPTY)
10537 AC_SUBST(ICU_RECLASSIFIED_CONDITIONAL_JAPANESE_STARTER)
10538 AC_SUBST(ICU_RECLASSIFIED_HEBREW_LETTER)
10539 AC_SUBST(ICU_CFLAGS)
10541 AC_SUBST(ICU_UCHAR_TYPE)
10543 dnl ==================================================================
10545 dnl ==================================================================
10546 DEFAULT_CRASHDUMP_VALUE="true"
10547 AC_MSG_CHECKING([whether to enable breakpad])
10548 if test "$enable_breakpad" != yes; then
10549 AC_MSG_RESULT([no])
10551 AC_MSG_RESULT([yes])
10552 ENABLE_BREAKPAD="TRUE"
10553 AC_DEFINE(ENABLE_BREAKPAD)
10554 AC_DEFINE(HAVE_FEATURE_BREAKPAD, 1)
10555 BUILD_TYPE="$BUILD_TYPE BREAKPAD"
10557 AC_MSG_CHECKING([for disable crash dump])
10558 if test "$enable_crashdump" = no; then
10559 DEFAULT_CRASHDUMP_VALUE="false"
10560 AC_MSG_RESULT([yes])
10562 AC_MSG_RESULT([no])
10565 AC_MSG_CHECKING([for crashreport config])
10566 if test "$with_symbol_config" = "no"; then
10567 BREAKPAD_SYMBOL_CONFIG="invalid"
10568 AC_MSG_RESULT([no])
10570 BREAKPAD_SYMBOL_CONFIG="$with_symbol_config"
10571 AC_DEFINE(BREAKPAD_SYMBOL_CONFIG)
10572 AC_MSG_RESULT([yes])
10574 AC_SUBST(BREAKPAD_SYMBOL_CONFIG)
10576 AC_SUBST(ENABLE_BREAKPAD)
10577 AC_SUBST(DEFAULT_CRASHDUMP_VALUE)
10579 dnl ==================================================================
10581 dnl ==================================================================
10582 AC_MSG_CHECKING([whether to enable fuzzers])
10583 if test "$enable_fuzzers" != yes; then
10584 AC_MSG_RESULT([no])
10586 if test $LIB_FUZZING_ENGINE == ""; then
10587 AC_MSG_ERROR(['LIB_FUZZING_ENGINE' must be set when using --enable-fuzzers. Examples include '-fsanitize=fuzzer'.])
10589 AC_MSG_RESULT([yes])
10590 ENABLE_FUZZERS="TRUE"
10591 AC_DEFINE([ENABLE_FUZZERS],1)
10592 BUILD_TYPE="$BUILD_TYPE FUZZERS"
10594 AC_SUBST(LIB_FUZZING_ENGINE)
10595 AC_SUBST(ENABLE_FUZZERS)
10597 dnl ===================================================================
10599 dnl ===================================================================
10600 libo_CHECK_SYSTEM_MODULE([orcus],[ORCUS],[liborcus-0.16 >= 0.16.0])
10601 if test "$with_system_orcus" != "yes"; then
10602 if test "$SYSTEM_BOOST" = "TRUE"; then
10603 # ===========================================================
10604 # Determine if we are going to need to link with Boost.System
10605 # ===========================================================
10606 dnl This seems to be necessary since boost 1.50 (1.48 does not need it,
10607 dnl 1.49 is untested). The macro BOOST_THREAD_DONT_USE_SYSTEM mentioned
10608 dnl in documentation has no effect.
10609 AC_MSG_CHECKING([if we need to link with Boost.System])
10610 AC_LANG_PUSH([C++])
10611 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
10612 @%:@include <boost/version.hpp>
10614 #if BOOST_VERSION >= 105000
10615 # error yes, we need to link with Boost.System
10618 AC_MSG_RESULT([no])
10620 AC_MSG_RESULT([yes])
10626 dnl FIXME by renaming SYSTEM_LIBORCUS to SYSTEM_ORCUS in the build system world
10627 SYSTEM_LIBORCUS=$SYSTEM_ORCUS
10628 AC_SUBST([BOOST_SYSTEM_LIB])
10629 AC_SUBST(SYSTEM_LIBORCUS)
10631 dnl ===================================================================
10633 dnl ===================================================================
10634 libo_CHECK_SYSTEM_MODULE([graphite],[GRAPHITE],[graphite2 >= 0.9.3],
10635 ["-I${WORKDIR}/UnpackedTarball/graphite/include -DGRAPHITE2_STATIC"],
10636 ["-L${WORKDIR}/LinkTarget/StaticLibrary -lgraphite"])
10638 libo_CHECK_SYSTEM_MODULE([harfbuzz],[HARFBUZZ],[harfbuzz-icu >= 0.9.42],
10639 ["-I${WORKDIR}/UnpackedTarball/harfbuzz/src"],
10640 ["-L${WORKDIR}/UnpackedTarball/harfbuzz/src/.libs -lharfbuzz"])
10642 if test "$COM" = "MSC"; then # override the above
10643 GRAPHITE_LIBS="${WORKDIR}/LinkTarget/StaticLibrary/graphite.lib"
10644 HARFBUZZ_LIBS="${WORKDIR}/UnpackedTarball/harfbuzz/src/.libs/libharfbuzz.lib"
10647 if test "$with_system_harfbuzz" = "yes"; then
10648 if test "$with_system_graphite" = "no"; then
10649 AC_MSG_ERROR([--with-system-graphite must be used when --with-system-harfbuzz is used])
10651 AC_MSG_CHECKING([whether system Harfbuzz is built with Graphite support])
10653 save_CFLAGS="$CFLAGS"
10654 LIBS="$LIBS $HARFBUZZ_LIBS"
10655 CFLAGS="$CFLAGS $HARFBUZZ_CFLAGS"
10656 AC_CHECK_FUNC(hb_graphite2_face_get_gr_face,,[AC_MSG_ERROR([Harfbuzz needs to be built with Graphite support.])])
10658 CFLAGS="$save_CFLAGS"
10660 if test "$with_system_graphite" = "yes"; then
10661 AC_MSG_ERROR([--without-system-graphite must be used when --without-system-harfbuzz is used])
10665 if test "$USING_X11" = TRUE; then
10668 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
10670 if test -z "$x_includes"; then
10671 x_includes="default_x_includes"
10673 if test -z "$x_libraries"; then
10674 x_libraries="default_x_libraries"
10676 CFLAGS="$CFLAGS $X_CFLAGS"
10677 LDFLAGS="$LDFLAGS $X_LDFLAGS $X_LIBS"
10678 AC_CHECK_LIB(X11, XOpenDisplay, x_libs="-lX11 $X_EXTRA_LIBS", [AC_MSG_ERROR([X Development libraries not found])])
10680 x_includes="no_x_includes"
10681 x_libraries="no_x_libraries"
10684 if test "$USING_X11" = TRUE; then
10685 dnl ===================================================================
10686 dnl Check for extension headers
10687 dnl ===================================================================
10688 AC_CHECK_HEADERS(X11/extensions/shape.h,[],[AC_MSG_ERROR([libXext headers not found])],
10689 [#include <X11/extensions/shape.h>])
10691 # vcl needs ICE and SM
10692 AC_CHECK_HEADERS(X11/ICE/ICElib.h,[],[AC_MSG_ERROR([libICE headers not found])])
10693 AC_CHECK_LIB([ICE], [IceConnectionNumber], [:],
10694 [AC_MSG_ERROR(ICE library not found)])
10695 AC_CHECK_HEADERS(X11/SM/SMlib.h,[],[AC_MSG_ERROR([libSM headers not found])])
10696 AC_CHECK_LIB([SM], [SmcOpenConnection], [:],
10697 [AC_MSG_ERROR(SM library not found)])
10700 if test "$USING_X11" = TRUE -a "$ENABLE_JAVA" != ""; then
10701 # bean/native/unix/com_sun_star_comp_beans_LocalOfficeWindow.c needs Xt
10702 AC_CHECK_HEADERS(X11/Intrinsic.h,[],[AC_MSG_ERROR([libXt headers not found])])
10705 dnl ===================================================================
10706 dnl Check for system Xrender
10707 dnl ===================================================================
10708 AC_MSG_CHECKING([whether to use Xrender])
10709 if test "$USING_X11" = TRUE -a "$test_xrender" = "yes"; then
10710 AC_MSG_RESULT([yes])
10711 PKG_CHECK_MODULES(XRENDER, xrender)
10712 XRENDER_CFLAGS=$(printf '%s' "$XRENDER_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
10713 FilterLibs "${XRENDER_LIBS}"
10714 XRENDER_LIBS="${filteredlibs}"
10715 AC_CHECK_LIB([Xrender], [XRenderQueryVersion], [:],
10716 [AC_MSG_ERROR(libXrender not found or functional)], [])
10717 AC_CHECK_HEADER(X11/extensions/Xrender.h, [],
10718 [AC_MSG_ERROR(Xrender not found. install X)], [])
10720 AC_MSG_RESULT([no])
10722 AC_SUBST(XRENDER_CFLAGS)
10723 AC_SUBST(XRENDER_LIBS)
10725 dnl ===================================================================
10726 dnl Check for XRandr
10727 dnl ===================================================================
10728 AC_MSG_CHECKING([whether to enable RandR support])
10729 if test "$USING_X11" = TRUE -a "$test_randr" = "yes" -a \( "$enable_randr" = "yes" -o "$enable_randr" = "TRUE" \); then
10730 AC_MSG_RESULT([yes])
10731 PKG_CHECK_MODULES(XRANDR, xrandr >= 1.2, ENABLE_RANDR="TRUE", ENABLE_RANDR="")
10732 if test "$ENABLE_RANDR" != "TRUE"; then
10733 AC_CHECK_HEADER(X11/extensions/Xrandr.h, [],
10734 [AC_MSG_ERROR([X11/extensions/Xrandr.h could not be found. X11 dev missing?])], [])
10736 AC_CHECK_LIB([Xrandr], [XRRQueryExtension], [:],
10737 [ AC_MSG_ERROR(libXrandr not found or functional) ], [])
10738 XRANDR_LIBS="-lXrandr "
10739 ENABLE_RANDR="TRUE"
10741 XRANDR_CFLAGS=$(printf '%s' "$XRANDR_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
10742 FilterLibs "${XRANDR_LIBS}"
10743 XRANDR_LIBS="${filteredlibs}"
10746 AC_MSG_RESULT([no])
10748 AC_SUBST(XRANDR_CFLAGS)
10749 AC_SUBST(XRANDR_LIBS)
10750 AC_SUBST(ENABLE_RANDR)
10752 if test "$test_webdav" = yes; then
10753 if test -z "$with_webdav"; then
10755 if test "$enable_mpl_subset" = yes; then
10759 WITH_WEBDAV="$with_webdav"
10763 AC_MSG_CHECKING([for webdav library])
10764 case "$WITH_WEBDAV" in
10766 AC_MSG_RESULT([serf])
10767 # Check for system apr-util
10768 libo_CHECK_SYSTEM_MODULE([apr],[APR],[apr-util-1],
10769 ["-I${WORKDIR}/UnpackedTarball/apr/include -I${WORKDIR}/UnpackedTarball/apr_util/include"],
10770 ["-L${WORKDIR}/UnpackedTarball/apr/.libs -lapr-1 -L${WORKDIR}/UnpackedTarball/apr_util/.libs -laprutil-1"])
10771 if test "$COM" = "MSC"; then
10773 test -n "${MSVC_USE_DEBUG_RUNTIME}" && APR_LIB_DIR="LibD"
10774 APR_LIBS="${WORKDIR}/UnpackedTarball/apr/${APR_LIB_DIR}/apr-1.lib ${WORKDIR}/UnpackedTarball/apr_util/${APR_LIB_DIR}/aprutil-1.lib"
10777 # Check for system serf
10778 libo_CHECK_SYSTEM_MODULE([serf],[SERF],[serf-1 >= 1.3.9])
10781 AC_MSG_RESULT([neon])
10782 # Check for system neon
10783 libo_CHECK_SYSTEM_MODULE([neon],[NEON],[neon >= 0.31.2])
10784 if test "$with_system_neon" = "yes"; then
10785 NEON_VERSION="`$PKG_CONFIG --modversion neon | $SED 's/\.//g'`"
10789 AC_SUBST(NEON_VERSION)
10792 AC_MSG_RESULT([none, disabled])
10796 AC_SUBST(WITH_WEBDAV)
10798 dnl ===================================================================
10799 dnl Check for disabling cve_tests
10800 dnl ===================================================================
10801 AC_MSG_CHECKING([whether to execute CVE tests])
10802 # If not explicitly enabled or disabled, default
10803 if test -z "$enable_cve_tests"; then
10806 # Default cves off for Windows with its wild and wonderful
10807 # variety of AV software kicking in and panicking
10808 enable_cve_tests=no
10812 enable_cve_tests=yes
10816 if test "$enable_cve_tests" = "no"; then
10817 AC_MSG_RESULT([no])
10818 DISABLE_CVE_TESTS=TRUE
10819 AC_SUBST(DISABLE_CVE_TESTS)
10821 AC_MSG_RESULT([yes])
10824 dnl ===================================================================
10825 dnl Check for enabling chart XShape tests
10826 dnl ===================================================================
10827 AC_MSG_CHECKING([whether to execute chart XShape tests])
10828 if test "$enable_chart_tests" = "yes" -o '(' "$_os" = "WINNT" -a "$enable_chart_tests" != "no" ')'; then
10829 AC_MSG_RESULT([yes])
10830 ENABLE_CHART_TESTS=TRUE
10831 AC_SUBST(ENABLE_CHART_TESTS)
10833 AC_MSG_RESULT([no])
10836 dnl ===================================================================
10837 dnl Check for system openssl
10838 dnl ===================================================================
10840 AC_MSG_CHECKING([whether to disable OpenSSL usage])
10841 if test "$enable_openssl" = "yes"; then
10842 AC_MSG_RESULT([no])
10843 ENABLE_OPENSSL=TRUE
10844 if test "$_os" = Darwin ; then
10845 # OpenSSL is deprecated when building for 10.7 or later.
10847 # http://stackoverflow.com/questions/7406946/why-is-apple-deprecating-openssl-in-macos-10-7-lion
10848 # http://stackoverflow.com/questions/7475914/libcrypto-deprecated-on-mac-os-x-10-7-lion
10850 with_system_openssl=no
10851 libo_CHECK_SYSTEM_MODULE([openssl],[OPENSSL],[openssl])
10852 elif test "$_os" = "FreeBSD" -o "$_os" = "NetBSD" -o "$_os" = "OpenBSD" -o "$_os" = "DragonFly" \
10853 && test "$with_system_openssl" != "no"; then
10854 with_system_openssl=yes
10855 SYSTEM_OPENSSL=TRUE
10857 OPENSSL_LIBS="-lssl -lcrypto"
10859 libo_CHECK_SYSTEM_MODULE([openssl],[OPENSSL],[openssl])
10861 if test "$with_system_openssl" = "yes"; then
10862 AC_MSG_CHECKING([whether openssl supports SHA512])
10864 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <openssl/sha.h>]],[[
10865 SHA512_CTX context;
10866 ]])],[AC_MSG_RESULT([yes])],[AC_MSG_ERROR([no, openssl too old. Need >= 0.9.8.])])
10870 AC_MSG_RESULT([yes])
10872 # warn that although OpenSSL is disabled, system libraries may depend on it
10873 AC_MSG_WARN([OpenSSL has been disabled. No code compiled here will make use of it but system libraries may create indirect dependencies])
10874 add_warning "OpenSSL has been disabled. No code compiled here will make use of it but system libraries may create indirect dependencies"
10877 AC_SUBST([ENABLE_OPENSSL])
10879 if test "$enable_cipher_openssl_backend" = yes && test "$ENABLE_OPENSSL" != TRUE; then
10880 if test "$libo_fuzzed_enable_cipher_openssl_backend" = yes; then
10881 AC_MSG_NOTICE([Resetting --enable-cipher-openssl-backend=no])
10882 enable_cipher_openssl_backend=no
10884 AC_MSG_ERROR([--enable-cipher-openssl-backend needs OpenSSL, but --disable-openssl was given.])
10887 AC_MSG_CHECKING([whether to enable the OpenSSL backend for rtl/cipher.h])
10888 ENABLE_CIPHER_OPENSSL_BACKEND=
10889 if test "$enable_cipher_openssl_backend" = yes; then
10890 AC_MSG_RESULT([yes])
10891 ENABLE_CIPHER_OPENSSL_BACKEND=TRUE
10893 AC_MSG_RESULT([no])
10895 AC_SUBST([ENABLE_CIPHER_OPENSSL_BACKEND])
10897 dnl ===================================================================
10898 dnl Select the crypto backends used by LO
10899 dnl ===================================================================
10901 if test "$build_crypto" = yes; then
10902 if test "$OS" = WNT; then
10903 BUILD_TYPE="$BUILD_TYPE CRYPTO_MSCAPI"
10904 AC_DEFINE([USE_CRYPTO_MSCAPI])
10905 elif test "$ENABLE_NSS" = TRUE; then
10906 BUILD_TYPE="$BUILD_TYPE CRYPTO_NSS"
10907 AC_DEFINE([USE_CRYPTO_NSS])
10911 dnl ===================================================================
10912 dnl Check for building gnutls
10913 dnl ===================================================================
10914 AC_MSG_CHECKING([whether to use gnutls])
10915 if test "$WITH_WEBDAV" = "neon" -a "$with_system_neon" = no -a "$enable_openssl" = "no"; then
10916 AC_MSG_RESULT([yes])
10917 AM_PATH_LIBGCRYPT()
10918 PKG_CHECK_MODULES(GNUTLS, [gnutls],,
10919 AC_MSG_ERROR([[Disabling OpenSSL was requested, but GNUTLS is not
10920 available in the system to use as replacement.]]))
10921 FilterLibs "${LIBGCRYPT_LIBS}"
10922 LIBGCRYPT_LIBS="${filteredlibs}"
10924 AC_MSG_RESULT([no])
10927 AC_SUBST([LIBGCRYPT_CFLAGS])
10928 AC_SUBST([LIBGCRYPT_LIBS])
10930 dnl ===================================================================
10931 dnl Check for system redland
10932 dnl ===================================================================
10933 dnl redland: versions before 1.0.8 write RDF/XML that is useless for ODF (@xml:base)
10934 dnl raptor2: need at least 2.0.7 for CVE-2012-0037
10935 libo_CHECK_SYSTEM_MODULE([redland],[REDLAND],[redland >= 1.0.8 raptor2 >= 2.0.7])
10936 if test "$with_system_redland" = "yes"; then
10937 AC_CHECK_LIB([rdf], [librdf_world_set_raptor_init_handler], [:],
10938 [AC_MSG_ERROR(librdf too old. Need >= 1.0.16)], [])
10944 AC_SUBST(RAPTOR_MAJOR)
10945 AC_SUBST(RASQAL_MAJOR)
10946 AC_SUBST(REDLAND_MAJOR)
10948 dnl ===================================================================
10949 dnl Check for system hunspell
10950 dnl ===================================================================
10951 AC_MSG_CHECKING([which libhunspell to use])
10952 if test "$with_system_hunspell" = "yes"; then
10953 AC_MSG_RESULT([external])
10954 SYSTEM_HUNSPELL=TRUE
10955 AC_LANG_PUSH([C++])
10956 PKG_CHECK_MODULES(HUNSPELL, hunspell, HUNSPELL_PC="TRUE", HUNSPELL_PC="" )
10957 if test "$HUNSPELL_PC" != "TRUE"; then
10958 AC_CHECK_HEADER(hunspell.hxx, [],
10960 AC_CHECK_HEADER(hunspell/hunspell.hxx, [ HUNSPELL_CFLAGS=-I/usr/include/hunspell ],
10961 [AC_MSG_ERROR(hunspell headers not found.)], [])
10963 AC_CHECK_LIB([hunspell], [main], [:],
10964 [ AC_MSG_ERROR(hunspell library not found.) ], [])
10965 HUNSPELL_LIBS=-lhunspell
10968 HUNSPELL_CFLAGS=$(printf '%s' "$HUNSPELL_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
10969 FilterLibs "${HUNSPELL_LIBS}"
10970 HUNSPELL_LIBS="${filteredlibs}"
10972 AC_MSG_RESULT([internal])
10974 HUNSPELL_CFLAGS="-I${WORKDIR}/UnpackedTarball/hunspell/src/hunspell"
10975 if test "$COM" = "MSC"; then
10976 HUNSPELL_LIBS="${WORKDIR}/LinkTarget/StaticLibrary/hunspell.lib"
10978 HUNSPELL_LIBS="-L${WORKDIR}/UnpackedTarball/hunspell/src/hunspell/.libs -lhunspell-1.7"
10980 BUILD_TYPE="$BUILD_TYPE HUNSPELL"
10982 AC_SUBST(SYSTEM_HUNSPELL)
10983 AC_SUBST(HUNSPELL_CFLAGS)
10984 AC_SUBST(HUNSPELL_LIBS)
10986 dnl ===================================================================
10987 dnl Check for system zxing
10988 dnl ===================================================================
10989 AC_MSG_CHECKING([whether to use zxing])
10990 if test "$enable_zxing" = "no"; then
10991 AC_MSG_RESULT([no])
10995 AC_MSG_RESULT([yes])
10997 AC_MSG_CHECKING([which libzxing to use])
10998 if test "$with_system_zxing" = "yes"; then
10999 AC_MSG_RESULT([external])
11001 AC_LANG_PUSH([C++])
11002 AC_CHECK_HEADER(ZXing/MultiFormatWriter.h, [],
11003 [AC_MSG_ERROR(zxing headers not found.)], [#include <stdexcept>])
11004 ZXING_CFLAGS=-I/usr/include/ZXing
11005 AC_CHECK_LIB([ZXing], [main], [ZXING_LIBS=-lZXing],
11006 [ AC_CHECK_LIB([ZXingCore], [main], [ZXING_LIBS=-lZXingCore],
11007 [ AC_MSG_ERROR(zxing C++ library not found.) ])], [])
11009 ZXING_CFLAGS=$(printf '%s' "$ZXING_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
11010 FilterLibs "${ZXING_LIBS}"
11011 ZXING_LIBS="${filteredlibs}"
11013 AC_MSG_RESULT([internal])
11015 BUILD_TYPE="$BUILD_TYPE ZXING"
11017 if test "$ENABLE_ZXING" = TRUE; then
11018 AC_DEFINE(ENABLE_ZXING)
11021 AC_SUBST(SYSTEM_ZXING)
11022 AC_SUBST(ENABLE_ZXING)
11023 AC_SUBST(ZXING_CFLAGS)
11024 AC_SUBST(ZXING_LIBS)
11026 dnl ===================================================================
11027 dnl Check for system box2d
11028 dnl ===================================================================
11029 AC_MSG_CHECKING([which box2d to use])
11030 if test "$with_system_box2d" = "yes"; then
11031 AC_MSG_RESULT([external])
11033 AC_LANG_PUSH([C++])
11034 AC_CHECK_HEADER(box2d/box2d.h, [BOX2D_H_FOUND='TRUE'],
11035 [BOX2D_H_FOUND='FALSE'])
11036 if test "$BOX2D_H_FOUND" = "TRUE"; then # 2.4.0+
11038 AC_DEFINE(BOX2D_HEADER,<box2d/box2d.h>)
11040 # fail this. there's no other alternative to check when we are here.
11041 AC_CHECK_HEADER([Box2D/Box2D.h], [],
11042 [AC_MSG_ERROR(box2d headers not found.)])
11044 AC_DEFINE(BOX2D_HEADER,<Box2D/Box2D.h>)
11046 AC_CHECK_LIB([$_BOX2D_LIB], [main], [:],
11047 [ AC_MSG_ERROR(box2d library not found.) ], [])
11048 BOX2D_LIBS=-l$_BOX2D_LIB
11050 BOX2D_CFLAGS=$(printf '%s' "$BOX2D_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
11051 FilterLibs "${BOX2D_LIBS}"
11052 BOX2D_LIBS="${filteredlibs}"
11054 AC_MSG_RESULT([internal])
11056 BUILD_TYPE="$BUILD_TYPE BOX2D"
11058 AC_SUBST(SYSTEM_BOX2D)
11059 AC_SUBST(BOX2D_CFLAGS)
11060 AC_SUBST(BOX2D_LIBS)
11062 dnl ===================================================================
11063 dnl Checking for altlinuxhyph
11064 dnl ===================================================================
11065 AC_MSG_CHECKING([which altlinuxhyph to use])
11066 if test "$with_system_altlinuxhyph" = "yes"; then
11067 AC_MSG_RESULT([external])
11069 AC_CHECK_HEADER(hyphen.h, [],
11070 [ AC_MSG_ERROR(altlinuxhyph headers not found.)], [])
11071 AC_CHECK_MEMBER(struct _HyphenDict.cset, [],
11072 [ AC_MSG_ERROR(no. You are sure you have altlinuyhyph headers?)],
11073 [#include <hyphen.h>])
11074 AC_CHECK_LIB(hyphen, hnj_hyphen_hyphenate2, [HYPHEN_LIB=-lhyphen],
11075 [ AC_MSG_ERROR(altlinuxhyph library not found or too old.)], [])
11076 if test -z "$HYPHEN_LIB"; then
11077 AC_CHECK_LIB(hyph, hnj_hyphen_hyphenate2, [HYPHEN_LIB=-lhyph],
11078 [ AC_MSG_ERROR(altlinuxhyph library not found or too old.)], [])
11080 if test -z "$HYPHEN_LIB"; then
11081 AC_CHECK_LIB(hnj, hnj_hyphen_hyphenate2, [HYPHEN_LIB=-lhnj],
11082 [ AC_MSG_ERROR(altlinuxhyph library not found or too old.)], [])
11085 AC_MSG_RESULT([internal])
11087 BUILD_TYPE="$BUILD_TYPE HYPHEN"
11088 if test "$COM" = "MSC"; then
11089 HYPHEN_LIB="${WORKDIR}/LinkTarget/StaticLibrary/hyphen.lib"
11091 HYPHEN_LIB="-L${WORKDIR}/UnpackedTarball/hyphen/.libs -lhyphen"
11094 AC_SUBST(SYSTEM_HYPH)
11095 AC_SUBST(HYPHEN_LIB)
11097 dnl ===================================================================
11098 dnl Checking for mythes
11099 dnl ===================================================================
11100 AC_MSG_CHECKING([which mythes to use])
11101 if test "$with_system_mythes" = "yes"; then
11102 AC_MSG_RESULT([external])
11104 AC_LANG_PUSH([C++])
11105 PKG_CHECK_MODULES(MYTHES, mythes, MYTHES_PKGCONFIG=yes, MYTHES_PKGCONFIG=no)
11106 if test "$MYTHES_PKGCONFIG" = "no"; then
11107 AC_CHECK_HEADER(mythes.hxx, [],
11108 [ AC_MSG_ERROR(mythes.hxx headers not found.)], [])
11109 AC_CHECK_LIB([mythes-1.2], [main], [:],
11110 [ MYTHES_FOUND=no], [])
11111 if test "$MYTHES_FOUND" = "no"; then
11112 AC_CHECK_LIB(mythes, main, [MYTHES_FOUND=yes],
11113 [ MYTHES_FOUND=no], [])
11115 if test "$MYTHES_FOUND" = "no"; then
11116 AC_MSG_ERROR([mythes library not found!.])
11120 MYTHES_CFLAGS=$(printf '%s' "$MYTHES_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
11121 FilterLibs "${MYTHES_LIBS}"
11122 MYTHES_LIBS="${filteredlibs}"
11124 AC_MSG_RESULT([internal])
11126 BUILD_TYPE="$BUILD_TYPE MYTHES"
11127 if test "$COM" = "MSC"; then
11128 MYTHES_LIBS="${WORKDIR}/LinkTarget/StaticLibrary/mythes.lib"
11130 MYTHES_LIBS="-L${WORKDIR}/UnpackedTarball/mythes/.libs -lmythes-1.2"
11133 AC_SUBST(SYSTEM_MYTHES)
11134 AC_SUBST(MYTHES_CFLAGS)
11135 AC_SUBST(MYTHES_LIBS)
11137 dnl ===================================================================
11138 dnl How should we build the linear programming solver ?
11139 dnl ===================================================================
11142 AC_MSG_CHECKING([whether to build with CoinMP])
11143 if test "$enable_coinmp" != "no"; then
11145 AC_MSG_RESULT([yes])
11146 if test "$with_system_coinmp" = "yes"; then
11148 PKG_CHECK_MODULES(COINMP, coinmp coinutils)
11149 FilterLibs "${COINMP_LIBS}"
11150 COINMP_LIBS="${filteredlibs}"
11152 BUILD_TYPE="$BUILD_TYPE COINMP"
11155 AC_MSG_RESULT([no])
11157 AC_SUBST(ENABLE_COINMP)
11158 AC_SUBST(SYSTEM_COINMP)
11159 AC_SUBST(COINMP_CFLAGS)
11160 AC_SUBST(COINMP_LIBS)
11163 AC_MSG_CHECKING([whether to build with lpsolve])
11164 if test "$enable_lpsolve" != "no"; then
11165 ENABLE_LPSOLVE=TRUE
11166 AC_MSG_RESULT([yes])
11168 AC_MSG_RESULT([no])
11170 AC_SUBST(ENABLE_LPSOLVE)
11172 if test "$ENABLE_LPSOLVE" = TRUE; then
11173 AC_MSG_CHECKING([which lpsolve to use])
11174 if test "$with_system_lpsolve" = "yes"; then
11175 AC_MSG_RESULT([external])
11176 SYSTEM_LPSOLVE=TRUE
11177 AC_CHECK_HEADER(lpsolve/lp_lib.h, [],
11178 [ AC_MSG_ERROR(lpsolve headers not found.)], [])
11180 # some systems need this. Like Ubuntu...
11181 AC_CHECK_LIB(m, floor)
11182 AC_CHECK_LIB(dl, dlopen)
11183 AC_CHECK_LIB([lpsolve55], [make_lp], [:],
11184 [ AC_MSG_ERROR(lpsolve library not found or too old.)], [])
11187 AC_MSG_RESULT([internal])
11189 BUILD_TYPE="$BUILD_TYPE LPSOLVE"
11192 AC_SUBST(SYSTEM_LPSOLVE)
11194 dnl ===================================================================
11195 dnl Checking for libexttextcat
11196 dnl ===================================================================
11197 libo_CHECK_SYSTEM_MODULE([libexttextcat],[LIBEXTTEXTCAT],[libexttextcat >= 3.4.1])
11198 if test "$with_system_libexttextcat" = "yes"; then
11199 SYSTEM_LIBEXTTEXTCAT_DATA=file://`$PKG_CONFIG --variable=pkgdatadir libexttextcat`
11201 AC_SUBST(SYSTEM_LIBEXTTEXTCAT_DATA)
11203 dnl ===================================================================
11204 dnl Checking for libnumbertext
11205 dnl ===================================================================
11206 libo_CHECK_SYSTEM_MODULE([libnumbertext],[LIBNUMBERTEXT],[libnumbertext >= 1.0.6])
11207 if test "$with_system_libnumbertext" = "yes"; then
11208 SYSTEM_LIBNUMBERTEXT_DATA=file://`$PKG_CONFIG --variable=pkgdatadir libnumbertext`
11209 SYSTEM_LIBNUMBERTEXT=YES
11211 SYSTEM_LIBNUMBERTEXT=
11212 AC_LANG_PUSH([C++])
11213 save_CPPFLAGS=$CPPFLAGS
11214 CPPFLAGS="$CPPFLAGS $CXXFLAGS_CXX11"
11215 AC_CHECK_HEADERS([codecvt regex])
11216 AS_IF([test "x$ac_cv_header_codecvt" != xyes -o "x$ac_cv_header_regex" != xyes],
11217 [ LIBNUMBERTEXT_CFLAGS=''
11218 AC_MSG_WARN([No system-provided libnumbertext or codecvt/regex C++11 headers (min. libstdc++ 4.9).
11219 Enable libnumbertext fallback (missing number to number name conversion).])
11221 CPPFLAGS=$save_CPPFLAGS
11224 AC_SUBST(SYSTEM_LIBNUMBERTEXT)
11225 AC_SUBST(SYSTEM_LIBNUMBERTEXT_DATA)
11226 AC_SUBST(LIBNUMBERTEXT_CFLAGS)
11228 dnl ***************************************
11229 dnl testing libc version for Linux...
11230 dnl ***************************************
11231 if test "$_os" = "Linux"; then
11232 AC_MSG_CHECKING([whether libc is >= 2.1.1])
11233 exec 6>/dev/null # no output
11234 AC_CHECK_LIB(c, gnu_get_libc_version, HAVE_LIBC=yes; export HAVE_LIBC)
11235 exec 6>&1 # output on again
11236 if test "$HAVE_LIBC"; then
11237 AC_MSG_RESULT([yes])
11239 AC_MSG_ERROR([no, upgrade libc])
11243 dnl =========================================
11244 dnl Check for uuidgen
11245 dnl =========================================
11246 if test "$_os" = "WINNT"; then
11247 # we must use the uuidgen from the Windows SDK, which will be in the LO_PATH, but isn't in
11248 # the PATH for AC_PATH_PROG. It is already tested above in the WINDOWS_SDK_HOME check.
11249 UUIDGEN=uuidgen.exe
11252 AC_PATH_PROG([UUIDGEN], [uuidgen])
11253 if test -z "$UUIDGEN"; then
11254 AC_MSG_WARN([uuid is needed for building installation sets])
11258 dnl ***************************************
11259 dnl Checking for bison and flex
11260 dnl ***************************************
11261 AC_PATH_PROG(BISON, bison)
11262 if test -z "$BISON"; then
11263 AC_MSG_ERROR([no bison found in \$PATH, install it])
11265 AC_MSG_CHECKING([the bison version])
11266 _bison_version=`$BISON --version | grep GNU | $SED -e 's@^[[^0-9]]*@@' -e 's@ .*@@' -e 's@,.*@@'`
11267 _bison_longver=`echo $_bison_version | $AWK -F. '{ print \$1*1000+\$2}'`
11268 dnl Accept newer than 2.0; for --enable-compiler-plugins at least 2.3 is known to be bad and
11271 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]
11272 dnl typedef union YYSTYPE
11275 dnl while at least 3.4.1 is know to be good:
11276 if test "$COMPILER_PLUGINS" = TRUE; then
11277 if test "$_bison_longver" -lt 2004; then
11278 AC_MSG_ERROR([failed ($BISON $_bison_version need 2.4+ for --enable-compiler-plugins)])
11281 if test "$_bison_longver" -lt 2000; then
11282 AC_MSG_ERROR([failed ($BISON $_bison_version need 2.0+)])
11288 AC_PATH_PROG(FLEX, flex)
11289 if test "$GNUMAKE_WIN_NATIVE" = "TRUE" ; then
11290 FLEX=`cygpath -m $FLEX`
11292 if test -z "$FLEX"; then
11293 AC_MSG_ERROR([no flex found in \$PATH, install it])
11295 AC_MSG_CHECKING([the flex version])
11296 _flex_version=$($FLEX --version | $SED -e 's/^.*\([[[:digit:]]]\{1,\}\.[[[:digit:]]]\{1,\}\.[[[:digit:]]]\{1,\}\).*$/\1/')
11297 if test $(echo $_flex_version | $AWK -F. '{printf("%d%03d%03d", $1, $2, $3)}') -lt 2006000; then
11298 AC_MSG_ERROR([failed ($FLEX $_flex_version found, but need at least 2.6.0)])
11302 dnl ***************************************
11303 dnl Checking for patch
11304 dnl ***************************************
11305 AC_PATH_PROG(PATCH, patch)
11306 if test -z "$PATCH"; then
11307 AC_MSG_ERROR(["patch" not found in \$PATH, install it])
11310 dnl On Solaris or macOS, check if --with-gnu-patch was used
11311 if test "$_os" = "SunOS" -o "$_os" = "Darwin"; then
11312 if test -z "$with_gnu_patch"; then
11315 if test -x "$with_gnu_patch"; then
11316 GNUPATCH=$with_gnu_patch
11318 AC_MSG_ERROR([--with-gnu-patch did not point to an executable])
11322 AC_MSG_CHECKING([whether $GNUPATCH is GNU patch])
11323 if $GNUPATCH --version | grep "Free Software Foundation" >/dev/null 2>/dev/null; then
11324 AC_MSG_RESULT([yes])
11326 AC_MSG_ERROR([no, GNU patch needed. install or specify with --with-gnu-patch=/path/to/it])
11332 if test "$GNUMAKE_WIN_NATIVE" = "TRUE" ; then
11333 GNUPATCH=`cygpath -m $GNUPATCH`
11336 dnl We also need to check for --with-gnu-cp
11338 if test -z "$with_gnu_cp"; then
11339 # check the place where the good stuff is hidden on Solaris...
11340 if test -x /usr/gnu/bin/cp; then
11341 GNUCP=/usr/gnu/bin/cp
11343 AC_PATH_PROGS(GNUCP, gnucp cp)
11345 if test -z $GNUCP; then
11346 AC_MSG_ERROR([Neither gnucp nor cp found. Install GNU cp and/or specify --with-gnu-cp=/path/to/it])
11349 if test -x "$with_gnu_cp"; then
11352 AC_MSG_ERROR([--with-gnu-cp did not point to an executable])
11356 if test "$GNUMAKE_WIN_NATIVE" = "TRUE" ; then
11357 GNUCP=`cygpath -m $GNUCP`
11360 AC_MSG_CHECKING([whether $GNUCP is GNU cp from coreutils with preserve= support])
11361 if $GNUCP --version 2>/dev/null | grep "coreutils" >/dev/null 2>/dev/null; then
11362 AC_MSG_RESULT([yes])
11363 elif $GNUCP --version 2>/dev/null | grep "GNU fileutils" >/dev/null 2>/dev/null; then
11364 AC_MSG_RESULT([yes])
11366 case "$build_os" in
11367 darwin*|macos*|netbsd*|openbsd*|freebsd*|dragonfly*|aix*)
11370 AC_MSG_RESULT([no gnucp found - using the system's cp command])
11373 AC_MSG_ERROR([no, GNU cp needed. install or specify with --with-gnu-cp=/path/to/it])
11382 dnl ***************************************
11383 dnl testing assembler path
11384 dnl ***************************************
11386 if test "$_os" = "WINNT"; then
11387 case "$WIN_HOST_ARCH" in
11388 x86) assembler=ml.exe ;;
11389 x64) assembler=ml64.exe ;;
11390 arm64) assembler=armasm64.exe ;;
11393 AC_MSG_CHECKING([for the MSVC assembler ($assembler)])
11394 if test -f "$MSVC_HOST_PATH/$assembler"; then
11395 ML_EXE=`win_short_path_for_make "$MSVC_HOST_PATH/$assembler"`
11396 AC_MSG_RESULT([$ML_EXE])
11398 AC_MSG_ERROR([not found in $MSVC_HOST_PATH])
11404 dnl ===================================================================
11405 dnl We need zip and unzip
11406 dnl ===================================================================
11407 AC_PATH_PROG(ZIP, zip)
11408 test -z "$ZIP" && AC_MSG_ERROR([zip is required])
11409 if ! "$ZIP" --filesync < /dev/null 2>/dev/null > /dev/null; then
11410 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],,)
11413 AC_PATH_PROG(UNZIP, unzip)
11414 test -z "$UNZIP" && AC_MSG_ERROR([unzip is required])
11416 dnl ===================================================================
11417 dnl Zip must be a specific type for different build types.
11418 dnl ===================================================================
11419 if test $build_os = cygwin; then
11420 if test -n "`$ZIP -h | $GREP -i WinNT`"; then
11421 AC_MSG_ERROR([$ZIP is not the required Cygwin version of Info-ZIP's zip.exe.])
11425 dnl ===================================================================
11426 dnl We need touch with -h option support.
11427 dnl ===================================================================
11428 AC_PATH_PROG(TOUCH, touch)
11429 test -z "$TOUCH" && AC_MSG_ERROR([touch is required])
11430 touch "$WARNINGS_FILE"
11431 if ! "$TOUCH" -h "$WARNINGS_FILE" 2>/dev/null > /dev/null; then
11432 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],,)
11435 dnl ===================================================================
11436 dnl Check for system epoxy
11437 dnl ===================================================================
11438 libo_CHECK_SYSTEM_MODULE([epoxy], [EPOXY], [epoxy >= 1.2], ["-I${WORKDIR}/UnpackedTarball/epoxy/include"])
11440 dnl ===================================================================
11441 dnl Set vcl option: coordinate device in double or sal_Int32
11442 dnl ===================================================================
11444 dnl disabled for now, we don't want subtle differences between OSs
11445 dnl AC_MSG_CHECKING([Type to use for Device Pixel coordinates])
11446 dnl if test "$_os" = "Darwin" -o $_os = iOS ; then
11447 dnl AC_DEFINE(VCL_FLOAT_DEVICE_PIXEL)
11448 dnl AC_MSG_RESULT([double])
11450 dnl AC_MSG_RESULT([sal_Int32])
11453 dnl ===================================================================
11454 dnl Show which vclplugs will be built.
11455 dnl ===================================================================
11457 if test "$USING_X11" != TRUE; then
11462 if test "x$enable_gtk3" = "xyes"; then
11464 AC_DEFINE(ENABLE_GTK3)
11467 AC_SUBST(ENABLE_GTK3)
11469 ENABLE_GTK3_KDE5=""
11470 if test "x$enable_gtk3_kde5" = "xyes"; then
11471 ENABLE_GTK3_KDE5="TRUE"
11472 AC_DEFINE(ENABLE_GTK3_KDE5)
11475 AC_SUBST(ENABLE_GTK3_KDE5)
11478 if test "x$enable_gtk4" = "xyes"; then
11480 AC_DEFINE(ENABLE_GTK4)
11483 AC_SUBST(ENABLE_GTK4)
11486 if test "x$enable_qt5" = "xyes"; then
11488 AC_DEFINE(ENABLE_QT5)
11491 AC_SUBST(ENABLE_QT5)
11494 if test "x$enable_kf5" = "xyes"; then
11496 AC_DEFINE(ENABLE_KF5)
11499 AC_SUBST(ENABLE_KF5)
11501 if test "x$USING_X11" = "xyes"; then
11505 if test "$_os" = "WINNT"; then
11507 elif test "$_os" = "Darwin"; then
11509 elif test "$_os" = "iOS"; then
11511 elif test "$_os" = Android; then
11515 build_vcl_plugins="$R"
11516 if test -z "$build_vcl_plugins"; then
11517 build_vcl_plugins=" none"
11519 AC_MSG_NOTICE([VCLplugs to be built:${build_vcl_plugins}])
11521 AC_SUBST([VCL_PLUGIN_INFO])
11523 dnl ===================================================================
11524 dnl Check for GTK libraries
11525 dnl ===================================================================
11529 if test "$test_gtk3" = yes -a "x$enable_gtk3" = "xyes" -o "x$enable_gtk3_kde5" = "xyes"; then
11530 if test "$with_system_cairo" = no; then
11531 add_warning 'Non-system cairo combined with gtk3 is assumed to cause trouble; proceed at your own risk.'
11533 : ${with_system_cairo:=yes}
11534 PKG_CHECK_MODULES(GTK3, gtk+-3.0 >= 3.20 gtk+-unix-print-3.0 gmodule-no-export-2.0 glib-2.0 >= 2.38 cairo)
11535 GTK3_CFLAGS=$(printf '%s' "$GTK3_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
11536 GTK3_CFLAGS="$GTK3_CFLAGS -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED"
11537 FilterLibs "${GTK3_LIBS}"
11538 GTK3_LIBS="${filteredlibs}"
11540 dnl We require egl only for the gtk3 plugin. Otherwise we use glx.
11541 if test "$with_system_epoxy" != "yes"; then
11542 AC_CHECK_LIB(EGL, eglMakeCurrent, [:], AC_MSG_ERROR([libEGL required.]))
11543 AC_CHECK_HEADER(EGL/eglplatform.h, [],
11544 [AC_MSG_ERROR(EGL headers not found. install mesa-libEGL-devel)], [])
11547 AC_SUBST(GTK3_LIBS)
11548 AC_SUBST(GTK3_CFLAGS)
11552 if test "$test_gtk4" = yes -a "x$enable_gtk4" = "xyes"; then
11553 if test "$with_system_cairo" = no; then
11554 add_warning 'Non-system cairo combined with gtk4 is assumed to cause trouble; proceed at your own risk.'
11556 : ${with_system_cairo:=yes}
11557 PKG_CHECK_MODULES(GTK4, gtk4 gmodule-no-export-2.0 glib-2.0 >= 2.38 cairo atk)
11558 GTK4_CFLAGS=$(printf '%s' "$GTK4_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
11559 GTK4_CFLAGS="$GTK4_CFLAGS -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED"
11560 FilterLibs "${GTK4_LIBS}"
11561 GTK4_LIBS="${filteredlibs}"
11563 dnl We require egl only for the gtk4 plugin. Otherwise we use glx.
11564 if test "$with_system_epoxy" != "yes"; then
11565 AC_CHECK_LIB(EGL, eglMakeCurrent, [:], AC_MSG_ERROR([libEGL required.]))
11566 AC_CHECK_HEADER(EGL/eglplatform.h, [],
11567 [AC_MSG_ERROR(EGL headers not found. install mesa-libEGL-devel)], [])
11570 AC_SUBST(GTK4_LIBS)
11571 AC_SUBST(GTK4_CFLAGS)
11573 if test "$enable_introspection" = yes; then
11574 if test "$ENABLE_GTK3" = "TRUE" -o "$ENABLE_GTK3_KDE5" = "TRUE"; then
11575 GOBJECT_INTROSPECTION_REQUIRE(INTROSPECTION_REQUIRED_VERSION)
11577 AC_MSG_ERROR([--enable-introspection requires --enable-gtk3])
11581 dnl ===================================================================
11582 dnl check for dbus support
11583 dnl ===================================================================
11587 DBUS_GLIB_CFLAGS=""
11591 if test "$enable_dbus" = "no"; then
11595 AC_MSG_CHECKING([whether to enable DBUS support])
11596 if test "$test_dbus" = "yes"; then
11598 AC_MSG_RESULT([yes])
11599 PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.60)
11600 AC_DEFINE(ENABLE_DBUS)
11601 DBUS_CFLAGS=$(printf '%s' "$DBUS_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
11602 FilterLibs "${DBUS_LIBS}"
11603 DBUS_LIBS="${filteredlibs}"
11605 # Glib is needed for BluetoothServer
11606 # Sets also DBUS_GLIB_CFLAGS/DBUS_GLIB_LIBS if successful.
11607 PKG_CHECK_MODULES(DBUS_GLIB,[glib-2.0 >= 2.4],
11609 DBUS_HAVE_GLIB="TRUE"
11610 AC_DEFINE(DBUS_HAVE_GLIB,1)
11612 AC_MSG_WARN([[No Glib found, Bluetooth support will be disabled]])
11615 AC_MSG_RESULT([no])
11618 AC_SUBST(ENABLE_DBUS)
11619 AC_SUBST(DBUS_CFLAGS)
11620 AC_SUBST(DBUS_LIBS)
11621 AC_SUBST(DBUS_GLIB_CFLAGS)
11622 AC_SUBST(DBUS_GLIB_LIBS)
11623 AC_SUBST(DBUS_HAVE_GLIB)
11625 AC_MSG_CHECKING([whether to enable Impress remote control])
11626 if test -n "$enable_sdremote" -a "$enable_sdremote" != "no"; then
11627 AC_MSG_RESULT([yes])
11628 ENABLE_SDREMOTE=TRUE
11629 AC_MSG_CHECKING([whether to enable Bluetooth support in Impress remote control])
11631 if test $OS = MACOSX && test "$MACOSX_SDK_VERSION" -ge 101500; then
11632 # The Bluetooth code doesn't compile with macOS SDK 10.15
11633 if test "$enable_sdremote_bluetooth" = yes; then
11634 AC_MSG_ERROR([macOS SDK $with_macosx_sdk does not currently support --enable-sdremote-bluetooth])
11636 enable_sdremote_bluetooth=no
11638 # If not explicitly enabled or disabled, default
11639 if test -z "$enable_sdremote_bluetooth"; then
11642 # Default to yes for these
11643 enable_sdremote_bluetooth=yes
11647 enable_sdremote_bluetooth=no
11651 # $enable_sdremote_bluetooth is guaranteed non-empty now
11653 if test "$enable_sdremote_bluetooth" != "no"; then
11654 if test "$OS" = "LINUX"; then
11655 if test "$ENABLE_DBUS" = "TRUE" -a "$DBUS_HAVE_GLIB" = "TRUE"; then
11656 AC_MSG_RESULT([yes])
11657 ENABLE_SDREMOTE_BLUETOOTH=TRUE
11658 dnl ===================================================================
11659 dnl Check for system bluez
11660 dnl ===================================================================
11661 AC_MSG_CHECKING([which Bluetooth header to use])
11662 if test "$with_system_bluez" = "yes"; then
11663 AC_MSG_RESULT([external])
11664 AC_CHECK_HEADER(bluetooth/bluetooth.h, [],
11665 [AC_MSG_ERROR(bluetooth.h not found. install bluez)], [])
11668 AC_MSG_RESULT([internal])
11672 AC_MSG_RESULT([no, dbus disabled])
11673 ENABLE_SDREMOTE_BLUETOOTH=
11677 AC_MSG_RESULT([yes])
11678 ENABLE_SDREMOTE_BLUETOOTH=TRUE
11682 AC_MSG_RESULT([no])
11683 ENABLE_SDREMOTE_BLUETOOTH=
11689 AC_MSG_RESULT([no])
11691 AC_SUBST(ENABLE_SDREMOTE)
11692 AC_SUBST(ENABLE_SDREMOTE_BLUETOOTH)
11693 AC_SUBST(SYSTEM_BLUEZ)
11695 dnl ===================================================================
11696 dnl Check whether to enable GIO support
11697 dnl ===================================================================
11698 if test "$ENABLE_GTK4" = "TRUE" -o "$ENABLE_GTK3" = "TRUE" -o "$ENABLE_GTK3_KDE5" = "TRUE"; then
11699 AC_MSG_CHECKING([whether to enable GIO support])
11700 if test "$_os" != "WINNT" -a "$_os" != "Darwin" -a "$enable_gio" = "yes"; then
11701 dnl Need at least 2.26 for the dbus support.
11702 PKG_CHECK_MODULES([GIO], [gio-2.0 >= 2.26],
11703 [ENABLE_GIO="TRUE"], [ENABLE_GIO=""])
11704 if test "$ENABLE_GIO" = "TRUE"; then
11705 AC_DEFINE(ENABLE_GIO)
11706 GIO_CFLAGS=$(printf '%s' "$GIO_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
11707 FilterLibs "${GIO_LIBS}"
11708 GIO_LIBS="${filteredlibs}"
11711 AC_MSG_RESULT([no])
11714 AC_SUBST(ENABLE_GIO)
11715 AC_SUBST(GIO_CFLAGS)
11719 dnl ===================================================================
11721 SPLIT_APP_MODULES=""
11722 if test "$enable_split_app_modules" = "yes"; then
11723 SPLIT_APP_MODULES="TRUE"
11725 AC_SUBST(SPLIT_APP_MODULES)
11727 SPLIT_OPT_FEATURES=""
11728 if test "$enable_split_opt_features" = "yes"; then
11729 SPLIT_OPT_FEATURES="TRUE"
11731 AC_SUBST(SPLIT_OPT_FEATURES)
11733 dnl ===================================================================
11734 dnl Check whether the GStreamer libraries are available.
11735 dnl ===================================================================
11737 ENABLE_GSTREAMER_1_0=""
11739 if test "$test_gstreamer_1_0" = yes; then
11741 AC_MSG_CHECKING([whether to enable the GStreamer 1.0 avmedia backend])
11742 if test "$enable_avmedia" = yes -a "$enable_gstreamer_1_0" != no; then
11743 ENABLE_GSTREAMER_1_0="TRUE"
11744 AC_MSG_RESULT([yes])
11745 PKG_CHECK_MODULES( [GSTREAMER_1_0], [gstreamer-1.0 gstreamer-plugins-base-1.0 gstreamer-pbutils-1.0 gstreamer-video-1.0] )
11746 GSTREAMER_1_0_CFLAGS=$(printf '%s' "$GSTREAMER_1_0_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
11747 FilterLibs "${GSTREAMER_1_0_LIBS}"
11748 GSTREAMER_1_0_LIBS="${filteredlibs}"
11749 AC_DEFINE(ENABLE_GSTREAMER_1_0)
11751 AC_MSG_RESULT([no])
11754 AC_SUBST(GSTREAMER_1_0_CFLAGS)
11755 AC_SUBST(GSTREAMER_1_0_LIBS)
11756 AC_SUBST(ENABLE_GSTREAMER_1_0)
11758 ENABLE_OPENGL_TRANSITIONS=
11759 ENABLE_OPENGL_CANVAS=
11760 if test $_os = iOS -o $_os = Android -o "$ENABLE_FUZZERS" = "TRUE"; then
11762 elif test "$_os" = "Darwin"; then
11763 # We use frameworks on macOS, no need for detail checks
11764 ENABLE_OPENGL_TRANSITIONS=TRUE
11765 AC_DEFINE(HAVE_FEATURE_OPENGL,1)
11766 ENABLE_OPENGL_CANVAS=TRUE
11767 elif test $_os = WINNT; then
11768 ENABLE_OPENGL_TRANSITIONS=TRUE
11769 AC_DEFINE(HAVE_FEATURE_OPENGL,1)
11770 ENABLE_OPENGL_CANVAS=TRUE
11772 if test "$USING_X11" = TRUE; then
11773 AC_CHECK_LIB(GL, glBegin, [:], AC_MSG_ERROR([libGL required.]))
11774 ENABLE_OPENGL_TRANSITIONS=TRUE
11775 AC_DEFINE(HAVE_FEATURE_OPENGL,1)
11776 ENABLE_OPENGL_CANVAS=TRUE
11780 AC_SUBST(ENABLE_OPENGL_TRANSITIONS)
11781 AC_SUBST(ENABLE_OPENGL_CANVAS)
11783 dnl =================================================
11784 dnl Check whether to build with OpenCL support.
11785 dnl =================================================
11787 if test $_os != iOS -a $_os != Android -a "$ENABLE_FUZZERS" != "TRUE" -a "$enable_opencl" = "yes"; then
11788 # OPENCL in BUILD_TYPE and HAVE_FEATURE_OPENCL tell that OpenCL is potentially available on the
11789 # platform (optional at run-time, used through clew).
11790 BUILD_TYPE="$BUILD_TYPE OPENCL"
11791 AC_DEFINE(HAVE_FEATURE_OPENCL)
11794 dnl =================================================
11795 dnl Check whether to build with dconf support.
11796 dnl =================================================
11798 if test $_os != Android -a $_os != iOS -a "$enable_dconf" != no; then
11799 PKG_CHECK_MODULES([DCONF], [dconf >= 0.15.2], [], [
11800 if test "$enable_dconf" = yes; then
11801 AC_MSG_ERROR([dconf not found])
11806 AC_MSG_CHECKING([whether to enable dconf])
11807 if test $_os = Android -o $_os = iOS -o "$enable_dconf" = no; then
11811 AC_MSG_RESULT([no])
11814 AC_DEFINE(ENABLE_DCONF)
11815 AC_MSG_RESULT([yes])
11817 AC_SUBST([DCONF_CFLAGS])
11818 AC_SUBST([DCONF_LIBS])
11819 AC_SUBST([ENABLE_DCONF])
11822 AC_MSG_CHECKING([whether to build the PDF import feature])
11824 if test -z "$enable_pdfimport" -o "$enable_pdfimport" = yes; then
11825 AC_MSG_RESULT([yes])
11826 ENABLE_PDFIMPORT=TRUE
11827 AC_DEFINE(HAVE_FEATURE_PDFIMPORT)
11829 AC_MSG_RESULT([no])
11833 AC_MSG_CHECKING([whether to build PDFium])
11835 if test \( -z "$enable_pdfium" -a "$ENABLE_PDFIMPORT" = "TRUE" \) -o "$enable_pdfium" = yes; then
11836 AC_MSG_RESULT([yes])
11838 BUILD_TYPE="$BUILD_TYPE PDFIUM"
11840 AC_MSG_RESULT([no])
11842 AC_SUBST(ENABLE_PDFIUM)
11844 dnl ===================================================================
11845 dnl Check for poppler
11846 dnl ===================================================================
11848 AC_MSG_CHECKING([whether to build Poppler])
11849 if test \( -z "$enable_poppler" -a "$ENABLE_PDFIMPORT" = "TRUE" -a $_os != Android \) -o "$enable_poppler" = yes; then
11850 AC_MSG_RESULT([yes])
11851 ENABLE_POPPLER=TRUE
11852 AC_DEFINE(HAVE_FEATURE_POPPLER)
11854 AC_MSG_RESULT([no])
11856 AC_SUBST(ENABLE_POPPLER)
11858 if test "$ENABLE_PDFIMPORT" = "TRUE" -a "$ENABLE_POPPLER" != "TRUE" -a "$ENABLE_PDFIUM" != "TRUE"; then
11859 AC_MSG_ERROR([Cannot import PDF without either Pdfium or Poppler; please enable either of them.])
11862 if test "$ENABLE_PDFIMPORT" != "TRUE" -a \( "$ENABLE_POPPLER" = "TRUE" -o "$ENABLE_PDFIUM" = "TRUE" \); then
11863 AC_MSG_ERROR([Cannot enable Pdfium or Poppler when PDF importing is disabled; please enable PDF import first.])
11866 if test "$ENABLE_PDFIMPORT" = "TRUE" -a "$ENABLE_POPPLER" = "TRUE"; then
11867 dnl ===================================================================
11868 dnl Check for system poppler
11869 dnl ===================================================================
11870 AC_MSG_CHECKING([which PDF import poppler to use])
11871 if test "$with_system_poppler" = "yes"; then
11872 AC_MSG_RESULT([external])
11873 SYSTEM_POPPLER=TRUE
11874 PKG_CHECK_MODULES( POPPLER, poppler >= 0.12.0 )
11875 AC_LANG_PUSH([C++])
11876 save_CXXFLAGS=$CXXFLAGS
11877 save_CPPFLAGS=$CPPFLAGS
11878 CXXFLAGS="$CXXFLAGS $POPPLER_CFLAGS"
11879 CPPFLAGS="$CPPFLAGS $POPPLER_CFLAGS"
11880 AC_CHECK_HEADER([cpp/poppler-version.h],
11881 [AC_DEFINE([HAVE_POPPLER_VERSION_H], 1)],
11883 CXXFLAGS=$save_CXXFLAGS
11884 CPPFLAGS=$save_CPPFLAGS
11886 POPPLER_CFLAGS=$(printf '%s' "$POPPLER_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
11888 FilterLibs "${POPPLER_LIBS}"
11889 POPPLER_LIBS="${filteredlibs}"
11891 AC_MSG_RESULT([internal])
11893 BUILD_TYPE="$BUILD_TYPE POPPLER"
11894 AC_DEFINE([HAVE_POPPLER_VERSION_H], 1)
11896 AC_DEFINE([ENABLE_PDFIMPORT],1)
11898 AC_SUBST(ENABLE_PDFIMPORT)
11899 AC_SUBST(SYSTEM_POPPLER)
11900 AC_SUBST(POPPLER_CFLAGS)
11901 AC_SUBST(POPPLER_LIBS)
11904 AC_MSG_CHECKING([whether to build Skia])
11906 if test "$enable_skia" != "no" -a "$build_skia" = "yes" -a -z "$DISABLE_GUI"; then
11907 if test "$enable_skia" = "debug"; then
11908 AC_MSG_RESULT([yes (debug)])
11909 ENABLE_SKIA_DEBUG=TRUE
11911 AC_MSG_RESULT([yes])
11915 AC_DEFINE(HAVE_FEATURE_SKIA)
11916 BUILD_TYPE="$BUILD_TYPE SKIA"
11918 AC_MSG_RESULT([no])
11920 AC_SUBST(ENABLE_SKIA)
11921 AC_SUBST(ENABLE_SKIA_DEBUG)
11923 LO_CLANG_CXXFLAGS_INTRINSICS_SSE2=
11924 LO_CLANG_CXXFLAGS_INTRINSICS_SSSE3=
11925 LO_CLANG_CXXFLAGS_INTRINSICS_SSE41=
11926 LO_CLANG_CXXFLAGS_INTRINSICS_SSE42=
11927 LO_CLANG_CXXFLAGS_INTRINSICS_AVX=
11928 LO_CLANG_CXXFLAGS_INTRINSICS_AVX2=
11929 LO_CLANG_CXXFLAGS_INTRINSICS_AVX512=
11930 LO_CLANG_CXXFLAGS_INTRINSICS_F16C=
11931 LO_CLANG_CXXFLAGS_INTRINSICS_FMA=
11933 if test "$ENABLE_SKIA" = TRUE -a "$COM_IS_CLANG" != TRUE -a ! \( "$_os" = "WINNT" -a "$CPUNAME" = "AARCH64" \); then
11934 if test -n "$LO_CLANG_CC" -a -n "$LO_CLANG_CXX"; then
11935 AC_MSG_CHECKING([for Clang])
11936 AC_MSG_RESULT([$LO_CLANG_CC / $LO_CLANG_CXX])
11938 if test "$_os" = "WINNT"; then
11939 AC_MSG_CHECKING([for clang-cl])
11940 if test -x "$VC_PRODUCT_DIR/Tools/Llvm/bin/clang-cl.exe"; then
11941 LO_CLANG_CC=`win_short_path_for_make "$VC_PRODUCT_DIR/Tools/Llvm/bin/clang-cl.exe"`
11942 dnl explicitly set -m32/-m64
11943 LO_CLANG_CC="$LO_CLANG_CC -m$WIN_HOST_BITS"
11944 LO_CLANG_CXX="$LO_CLANG_CC"
11945 AC_MSG_RESULT([$LO_CLANG_CC])
11947 AC_MSG_RESULT([no])
11950 AC_CHECK_PROG(LO_CLANG_CC,clang,clang,[])
11951 AC_CHECK_PROG(LO_CLANG_CXX,clang++,clang++,[])
11954 if test -n "$LO_CLANG_CC" -a -n "$LO_CLANG_CXX"; then
11955 clang2_version=`echo __clang_major__.__clang_minor__.__clang_patchlevel__ | $LO_CLANG_CC -E - | tail -1 | sed 's/ //g'`
11956 clang2_ver=`echo "$clang2_version" | $AWK -F. '{ print \$1*10000+(\$2<100?\$2:99)*100+(\$3<100?\$3:99) }'`
11957 if test "$clang2_ver" -lt 50002; then
11958 AC_MSG_WARN(["$clang2_version" is too old or unrecognized, must be at least Clang 5.0.2])
11963 if test -z "$LO_CLANG_CC" -o -z "$LO_CLANG_CXX"; then
11964 # Skia is the default on Windows, so hard-require Clang.
11965 # Elsewhere it's used just by the 'gen' VCL backend which is rarely used.
11966 if test "$_os" = "WINNT"; then
11967 AC_MSG_ERROR([Clang compiler not found. The Skia library needs to be built using Clang.])
11969 AC_MSG_WARN([Clang compiler not found.])
11974 CXX="$LO_CLANG_CXX"
11975 # copy&paste (and adjust) of intrinsics checks, since MSVC's -arch doesn't work well for Clang-cl
11978 flag_sse41=-msse4.1
11979 flag_sse42=-msse4.2
11982 flag_avx512="-mavx512f -mavx512vl -mavx512bw -mavx512dq -mavx512cd"
11986 AC_MSG_CHECKING([whether $CXX can compile SSE2 intrinsics])
11987 AC_LANG_PUSH([C++])
11988 save_CXXFLAGS=$CXXFLAGS
11989 CXXFLAGS="$CXXFLAGS $flag_sse2"
11990 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
11991 #include <emmintrin.h>
11993 __m128i a = _mm_set1_epi32 (0), b = _mm_set1_epi32 (0), c;
11994 c = _mm_xor_si128 (a, b);
11998 [can_compile_sse2=yes],
11999 [can_compile_sse2=no])
12001 CXXFLAGS=$save_CXXFLAGS
12002 AC_MSG_RESULT([${can_compile_sse2}])
12003 if test "${can_compile_sse2}" = "yes" ; then
12004 LO_CLANG_CXXFLAGS_INTRINSICS_SSE2="$flag_sse2"
12007 AC_MSG_CHECKING([whether $CXX can compile SSSE3 intrinsics])
12008 AC_LANG_PUSH([C++])
12009 save_CXXFLAGS=$CXXFLAGS
12010 CXXFLAGS="$CXXFLAGS $flag_ssse3"
12011 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
12012 #include <tmmintrin.h>
12014 __m128i a = _mm_set1_epi32 (0), b = _mm_set1_epi32 (0), c;
12015 c = _mm_maddubs_epi16 (a, b);
12019 [can_compile_ssse3=yes],
12020 [can_compile_ssse3=no])
12022 CXXFLAGS=$save_CXXFLAGS
12023 AC_MSG_RESULT([${can_compile_ssse3}])
12024 if test "${can_compile_ssse3}" = "yes" ; then
12025 LO_CLANG_CXXFLAGS_INTRINSICS_SSSE3="$flag_ssse3"
12028 AC_MSG_CHECKING([whether $CXX can compile SSE4.1 intrinsics])
12029 AC_LANG_PUSH([C++])
12030 save_CXXFLAGS=$CXXFLAGS
12031 CXXFLAGS="$CXXFLAGS $flag_sse41"
12032 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
12033 #include <smmintrin.h>
12035 __m128i a = _mm_set1_epi32 (0), b = _mm_set1_epi32 (0), c;
12036 c = _mm_cmpeq_epi64 (a, b);
12040 [can_compile_sse41=yes],
12041 [can_compile_sse41=no])
12043 CXXFLAGS=$save_CXXFLAGS
12044 AC_MSG_RESULT([${can_compile_sse41}])
12045 if test "${can_compile_sse41}" = "yes" ; then
12046 LO_CLANG_CXXFLAGS_INTRINSICS_SSE41="$flag_sse41"
12049 AC_MSG_CHECKING([whether $CXX can compile SSE4.2 intrinsics])
12050 AC_LANG_PUSH([C++])
12051 save_CXXFLAGS=$CXXFLAGS
12052 CXXFLAGS="$CXXFLAGS $flag_sse42"
12053 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
12054 #include <nmmintrin.h>
12056 __m128i a = _mm_set1_epi32 (0), b = _mm_set1_epi32 (0), c;
12057 c = _mm_cmpgt_epi64 (a, b);
12061 [can_compile_sse42=yes],
12062 [can_compile_sse42=no])
12064 CXXFLAGS=$save_CXXFLAGS
12065 AC_MSG_RESULT([${can_compile_sse42}])
12066 if test "${can_compile_sse42}" = "yes" ; then
12067 LO_CLANG_CXXFLAGS_INTRINSICS_SSE42="$flag_sse42"
12070 AC_MSG_CHECKING([whether $CXX can compile AVX intrinsics])
12071 AC_LANG_PUSH([C++])
12072 save_CXXFLAGS=$CXXFLAGS
12073 CXXFLAGS="$CXXFLAGS $flag_avx"
12074 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
12075 #include <immintrin.h>
12077 __m256 a = _mm256_set1_ps (0.0f), b = _mm256_set1_ps (0.0f), c;
12078 c = _mm256_xor_ps(a, b);
12082 [can_compile_avx=yes],
12083 [can_compile_avx=no])
12085 CXXFLAGS=$save_CXXFLAGS
12086 AC_MSG_RESULT([${can_compile_avx}])
12087 if test "${can_compile_avx}" = "yes" ; then
12088 LO_CLANG_CXXFLAGS_INTRINSICS_AVX="$flag_avx"
12091 AC_MSG_CHECKING([whether $CXX can compile AVX2 intrinsics])
12092 AC_LANG_PUSH([C++])
12093 save_CXXFLAGS=$CXXFLAGS
12094 CXXFLAGS="$CXXFLAGS $flag_avx2"
12095 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
12096 #include <immintrin.h>
12098 __m256i a = _mm256_set1_epi32 (0), b = _mm256_set1_epi32 (0), c;
12099 c = _mm256_maddubs_epi16(a, b);
12103 [can_compile_avx2=yes],
12104 [can_compile_avx2=no])
12106 CXXFLAGS=$save_CXXFLAGS
12107 AC_MSG_RESULT([${can_compile_avx2}])
12108 if test "${can_compile_avx2}" = "yes" ; then
12109 LO_CLANG_CXXFLAGS_INTRINSICS_AVX2="$flag_avx2"
12112 AC_MSG_CHECKING([whether $CXX can compile AVX512 intrinsics])
12113 AC_LANG_PUSH([C++])
12114 save_CXXFLAGS=$CXXFLAGS
12115 CXXFLAGS="$CXXFLAGS $flag_avx512"
12116 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
12117 #include <immintrin.h>
12119 __m512i a = _mm512_loadu_si512(0);
12123 [can_compile_avx512=yes],
12124 [can_compile_avx512=no])
12126 CXXFLAGS=$save_CXXFLAGS
12127 AC_MSG_RESULT([${can_compile_avx512}])
12128 if test "${can_compile_avx512}" = "yes" ; then
12129 LO_CLANG_CXXFLAGS_INTRINSICS_AVX512="$flag_avx512"
12132 AC_MSG_CHECKING([whether $CXX can compile F16C intrinsics])
12133 AC_LANG_PUSH([C++])
12134 save_CXXFLAGS=$CXXFLAGS
12135 CXXFLAGS="$CXXFLAGS $flag_f16c"
12136 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
12137 #include <immintrin.h>
12139 __m128i a = _mm_set1_epi32 (0);
12141 c = _mm_cvtph_ps(a);
12145 [can_compile_f16c=yes],
12146 [can_compile_f16c=no])
12148 CXXFLAGS=$save_CXXFLAGS
12149 AC_MSG_RESULT([${can_compile_f16c}])
12150 if test "${can_compile_f16c}" = "yes" ; then
12151 LO_CLANG_CXXFLAGS_INTRINSICS_F16C="$flag_f16c"
12154 AC_MSG_CHECKING([whether $CXX can compile FMA intrinsics])
12155 AC_LANG_PUSH([C++])
12156 save_CXXFLAGS=$CXXFLAGS
12157 CXXFLAGS="$CXXFLAGS $flag_fma"
12158 AC_COMPILE_IFELSE([AC_LANG_SOURCE([
12159 #include <immintrin.h>
12161 __m256 a = _mm256_set1_ps (0.0f), b = _mm256_set1_ps (0.0f), c = _mm256_set1_ps (0.0f), d;
12162 d = _mm256_fmadd_ps(a, b, c);
12166 [can_compile_fma=yes],
12167 [can_compile_fma=no])
12169 CXXFLAGS=$save_CXXFLAGS
12170 AC_MSG_RESULT([${can_compile_fma}])
12171 if test "${can_compile_fma}" = "yes" ; then
12172 LO_CLANG_CXXFLAGS_INTRINSICS_FMA="$flag_fma"
12179 # prefix LO_CLANG_CC/LO_CLANG_CXX with ccache if needed
12181 UNCACHED_CLANG_CC="$LO_CLANG_CC"
12182 UNCACHED_CLANG_CXX="$LO_CLANG_CXX"
12183 if test "$CCACHE" != "" -a -n "$LO_CLANG_CC" -a -n "$LO_CLANG_CXX"; then
12184 AC_MSG_CHECKING([whether $LO_CLANG_CC is already ccached])
12188 save_CFLAGS=$CFLAGS
12189 CFLAGS="$CFLAGS --ccache-skip -O2"
12190 dnl an empty program will do, we're checking the compiler flags
12191 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],
12192 [use_ccache=yes], [use_ccache=no])
12193 CFLAGS=$save_CFLAGS
12195 if test $use_ccache = yes -a "${CCACHE/*sccache*/}" != ""; then
12196 AC_MSG_RESULT([yes])
12198 LO_CLANG_CC="$CCACHE $LO_CLANG_CC"
12199 AC_MSG_RESULT([no])
12203 AC_MSG_CHECKING([whether $LO_CLANG_CXX is already ccached])
12204 AC_LANG_PUSH([C++])
12206 CXX="$LO_CLANG_CXX"
12207 save_CXXFLAGS=$CXXFLAGS
12208 CXXFLAGS="$CXXFLAGS --ccache-skip -O2"
12209 dnl an empty program will do, we're checking the compiler flags
12210 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],
12211 [use_ccache=yes], [use_ccache=no])
12212 if test $use_ccache = yes -a "${CCACHE/*sccache*/}" != ""; then
12213 AC_MSG_RESULT([yes])
12215 LO_CLANG_CXX="$CCACHE $LO_CLANG_CXX"
12216 AC_MSG_RESULT([no])
12218 CXXFLAGS=$save_CXXFLAGS
12223 AC_SUBST(UNCACHED_CC)
12224 AC_SUBST(UNCACHED_CXX)
12225 AC_SUBST(LO_CLANG_CC)
12226 AC_SUBST(LO_CLANG_CXX)
12227 AC_SUBST(UNCACHED_CLANG_CC)
12228 AC_SUBST(UNCACHED_CLANG_CXX)
12229 AC_SUBST(LO_CLANG_CXXFLAGS_INTRINSICS_SSE2)
12230 AC_SUBST(LO_CLANG_CXXFLAGS_INTRINSICS_SSSE3)
12231 AC_SUBST(LO_CLANG_CXXFLAGS_INTRINSICS_SSE41)
12232 AC_SUBST(LO_CLANG_CXXFLAGS_INTRINSICS_SSE42)
12233 AC_SUBST(LO_CLANG_CXXFLAGS_INTRINSICS_AVX)
12234 AC_SUBST(LO_CLANG_CXXFLAGS_INTRINSICS_AVX2)
12235 AC_SUBST(LO_CLANG_CXXFLAGS_INTRINSICS_AVX512)
12236 AC_SUBST(LO_CLANG_CXXFLAGS_INTRINSICS_F16C)
12237 AC_SUBST(LO_CLANG_CXXFLAGS_INTRINSICS_FMA)
12238 AC_SUBST(CLANG_USE_LD)
12242 if test "$enable_gpgmepp" = no; then
12243 AC_MSG_CHECKING([whether to enable gpgmepp])
12244 AC_MSG_RESULT([no])
12245 elif test "$enable_mpl_subset" = "yes"; then
12246 AC_MSG_CHECKING([whether gpgmepp should be disabled due to building just MPL])
12247 AC_MSG_RESULT([yes])
12248 elif test "$enable_fuzzers" = "yes"; then
12249 AC_MSG_CHECKING([whether gpgmepp should be disabled due to oss-fuzz])
12250 AC_MSG_RESULT([yes])
12251 elif test "$_os" = "Linux" -o "$_os" = "Darwin" -o "$_os" = "WINNT" ; then
12252 dnl ===================================================================
12253 dnl Check for system gpgme
12254 dnl ===================================================================
12255 AC_MSG_CHECKING([which gpgmepp to use])
12256 if test "$with_system_gpgmepp" = "yes"; then
12257 AC_MSG_RESULT([external])
12258 SYSTEM_GPGMEPP=TRUE
12260 # C++ library doesn't come with fancy gpgmepp-config, check for headers the old-fashioned way
12261 AC_CHECK_HEADER(gpgme++/gpgmepp_version.h, [ GPGMEPP_CFLAGS=-I/usr/include/gpgme++ ],
12262 [AC_MSG_ERROR([gpgmepp headers not found, install gpgmepp development package])], [])
12263 # progress_callback is the only func with plain C linkage
12264 # checking for it also filters out older, KDE-dependent libgpgmepp versions
12265 AC_CHECK_LIB(gpgmepp, progress_callback, [ GPGMEPP_LIBS=-lgpgmepp ],
12266 [AC_MSG_ERROR(gpgmepp not found or not functional)], [])
12267 AC_CHECK_HEADER(gpgme.h, [],
12268 [AC_MSG_ERROR([gpgme headers not found, install gpgme development package])], [])
12270 AC_MSG_RESULT([internal])
12271 BUILD_TYPE="$BUILD_TYPE LIBGPGERROR LIBASSUAN GPGMEPP"
12272 AC_DEFINE([GPGME_CAN_EXPORT_MINIMAL_KEY])
12274 GPG_ERROR_CFLAGS="-I${WORKDIR}/UnpackedTarball/libgpg-error/src"
12275 LIBASSUAN_CFLAGS="-I${WORKDIR}/UnpackedTarball/libassuan/src"
12276 if test "$_os" != "WINNT"; then
12277 GPG_ERROR_LIBS="-L${WORKDIR}/UnpackedTarball/libgpg-error/src/.libs -lgpg-error"
12278 LIBASSUAN_LIBS="-L${WORKDIR}/UnpackedTarball/libassuan/src/.libs -lassuan"
12281 ENABLE_GPGMEPP=TRUE
12282 AC_DEFINE([HAVE_FEATURE_GPGME])
12283 AC_PATH_PROG(GPG, gpg)
12284 # TODO: Windows's cygwin gpg does not seem to work with our gpgme,
12285 # so let's exclude that manually for the moment
12286 if test -n "$GPG" -a "$_os" != "WINNT"; then
12287 # make sure we not only have a working gpgme, but a full working
12288 # gpg installation to run OpenPGP signature verification
12289 AC_DEFINE([HAVE_FEATURE_GPGVERIFY])
12291 if test "$_os" = "Linux"; then
12293 AC_MSG_CHECKING([for /run/user/$uid])
12294 if test -d /run/user/$uid; then
12295 AC_MSG_RESULT([yes])
12296 AC_PATH_PROG(GPGCONF, gpgconf)
12298 # Older versions of gpgconf are not working as expected, since
12299 # `gpgconf --remove-socketdir` fails to exit any gpg-agent daemon operating
12300 # on that socket dir that has (indirectly) been started by the tests in xmlsecurity/qa/unit/signing/signing.cxx
12301 # (see commit message of f0305ec0a7d199e605511844d9d6af98b66d4bfd%5E )
12302 AC_MSG_CHECKING([whether version of gpgconf is suitable ... ])
12303 GPGCONF_VERSION=`"$GPGCONF" --version | "$AWK" '/^gpgconf \(GnuPG\)/{print $3}'`
12304 GPGCONF_NUMVER=`echo $GPGCONF_VERSION | $AWK -F. '{ print \$1*10000+\$2*100+\$3 }'`
12305 if test "$GPGCONF_VERSION" = "2.2_OOo" -o "$GPGCONF_NUMVER" -ge "020200"; then
12306 AC_MSG_RESULT([yes, $GPGCONF_VERSION])
12307 AC_MSG_CHECKING([for gpgconf --create-socketdir... ])
12308 if $GPGCONF --dump-options > /dev/null ; then
12309 if $GPGCONF --dump-options | grep -q create-socketdir ; then
12310 AC_MSG_RESULT([yes])
12311 AC_DEFINE([HAVE_GPGCONF_SOCKETDIR])
12312 AC_DEFINE_UNQUOTED([GPGME_GPGCONF], ["$GPGCONF"])
12314 AC_MSG_RESULT([no])
12317 AC_MSG_RESULT([no. missing or broken gpgconf?])
12320 AC_MSG_RESULT([no, $GPGCONF_VERSION])
12323 AC_MSG_RESULT([no])
12327 AC_SUBST(ENABLE_GPGMEPP)
12328 AC_SUBST(SYSTEM_GPGMEPP)
12329 AC_SUBST(GPG_ERROR_CFLAGS)
12330 AC_SUBST(GPG_ERROR_LIBS)
12331 AC_SUBST(LIBASSUAN_CFLAGS)
12332 AC_SUBST(LIBASSUAN_LIBS)
12333 AC_SUBST(GPGMEPP_CFLAGS)
12334 AC_SUBST(GPGMEPP_LIBS)
12336 AC_MSG_CHECKING([whether to build the Wiki Publisher extension])
12337 if test "x$enable_ext_wiki_publisher" = "xyes" -a "x$enable_extension_integration" != "xno" -a "$with_java" != "no"; then
12338 AC_MSG_RESULT([yes])
12339 ENABLE_MEDIAWIKI=TRUE
12340 BUILD_TYPE="$BUILD_TYPE XSLTML"
12341 if test "x$with_java" = "xno"; then
12342 AC_MSG_ERROR([Wiki Publisher requires Java! Enable Java if you want to build it.])
12345 AC_MSG_RESULT([no])
12347 SCPDEFS="$SCPDEFS -DWITHOUT_EXTENSION_MEDIAWIKI"
12349 AC_SUBST(ENABLE_MEDIAWIKI)
12351 AC_MSG_CHECKING([whether to build the Report Builder])
12352 if test "$enable_report_builder" != "no" -a "$with_java" != "no"; then
12353 AC_MSG_RESULT([yes])
12354 ENABLE_REPORTBUILDER=TRUE
12355 AC_MSG_CHECKING([which jfreereport libs to use])
12356 if test "$with_system_jfreereport" = "yes"; then
12357 SYSTEM_JFREEREPORT=TRUE
12358 AC_MSG_RESULT([external])
12359 if test -z $SAC_JAR; then
12360 SAC_JAR=/usr/share/java/sac.jar
12362 if ! test -f $SAC_JAR; then
12363 AC_MSG_ERROR(sac.jar not found.)
12366 if test -z $LIBXML_JAR; then
12367 if test -f /usr/share/java/libxml-1.0.0.jar; then
12368 LIBXML_JAR=/usr/share/java/libxml-1.0.0.jar
12369 elif test -f /usr/share/java/libxml.jar; then
12370 LIBXML_JAR=/usr/share/java/libxml.jar
12372 AC_MSG_ERROR(libxml.jar replacement not found.)
12374 elif ! test -f $LIBXML_JAR; then
12375 AC_MSG_ERROR(libxml.jar not found.)
12378 if test -z $FLUTE_JAR; then
12379 if test -f /usr/share/java/flute-1.3.0.jar; then
12380 FLUTE_JAR=/usr/share/java/flute-1.3.0.jar
12381 elif test -f /usr/share/java/flute.jar; then
12382 FLUTE_JAR=/usr/share/java/flute.jar
12384 AC_MSG_ERROR(flute-1.3.0.jar replacement not found.)
12386 elif ! test -f $FLUTE_JAR; then
12387 AC_MSG_ERROR(flute-1.3.0.jar not found.)
12390 if test -z $JFREEREPORT_JAR; then
12391 if test -f /usr/share/java/flow-engine-0.9.2.jar; then
12392 JFREEREPORT_JAR=/usr/share/java/flow-engine-0.9.2.jar
12393 elif test -f /usr/share/java/flow-engine.jar; then
12394 JFREEREPORT_JAR=/usr/share/java/flow-engine.jar
12396 AC_MSG_ERROR(jfreereport.jar replacement not found.)
12398 elif ! test -f $JFREEREPORT_JAR; then
12399 AC_MSG_ERROR(jfreereport.jar not found.)
12402 if test -z $LIBLAYOUT_JAR; then
12403 if test -f /usr/share/java/liblayout-0.2.9.jar; then
12404 LIBLAYOUT_JAR=/usr/share/java/liblayout-0.2.9.jar
12405 elif test -f /usr/share/java/liblayout.jar; then
12406 LIBLAYOUT_JAR=/usr/share/java/liblayout.jar
12408 AC_MSG_ERROR(liblayout.jar replacement not found.)
12410 elif ! test -f $LIBLAYOUT_JAR; then
12411 AC_MSG_ERROR(liblayout.jar not found.)
12414 if test -z $LIBLOADER_JAR; then
12415 if test -f /usr/share/java/libloader-1.0.0.jar; then
12416 LIBLOADER_JAR=/usr/share/java/libloader-1.0.0.jar
12417 elif test -f /usr/share/java/libloader.jar; then
12418 LIBLOADER_JAR=/usr/share/java/libloader.jar
12420 AC_MSG_ERROR(libloader.jar replacement not found.)
12422 elif ! test -f $LIBLOADER_JAR; then
12423 AC_MSG_ERROR(libloader.jar not found.)
12426 if test -z $LIBFORMULA_JAR; then
12427 if test -f /usr/share/java/libformula-0.2.0.jar; then
12428 LIBFORMULA_JAR=/usr/share/java/libformula-0.2.0.jar
12429 elif test -f /usr/share/java/libformula.jar; then
12430 LIBFORMULA_JAR=/usr/share/java/libformula.jar
12432 AC_MSG_ERROR(libformula.jar replacement not found.)
12434 elif ! test -f $LIBFORMULA_JAR; then
12435 AC_MSG_ERROR(libformula.jar not found.)
12438 if test -z $LIBREPOSITORY_JAR; then
12439 if test -f /usr/share/java/librepository-1.0.0.jar; then
12440 LIBREPOSITORY_JAR=/usr/share/java/librepository-1.0.0.jar
12441 elif test -f /usr/share/java/librepository.jar; then
12442 LIBREPOSITORY_JAR=/usr/share/java/librepository.jar
12444 AC_MSG_ERROR(librepository.jar replacement not found.)
12446 elif ! test -f $LIBREPOSITORY_JAR; then
12447 AC_MSG_ERROR(librepository.jar not found.)
12450 if test -z $LIBFONTS_JAR; then
12451 if test -f /usr/share/java/libfonts-1.0.0.jar; then
12452 LIBFONTS_JAR=/usr/share/java/libfonts-1.0.0.jar
12453 elif test -f /usr/share/java/libfonts.jar; then
12454 LIBFONTS_JAR=/usr/share/java/libfonts.jar
12456 AC_MSG_ERROR(libfonts.jar replacement not found.)
12458 elif ! test -f $LIBFONTS_JAR; then
12459 AC_MSG_ERROR(libfonts.jar not found.)
12462 if test -z $LIBSERIALIZER_JAR; then
12463 if test -f /usr/share/java/libserializer-1.0.0.jar; then
12464 LIBSERIALIZER_JAR=/usr/share/java/libserializer-1.0.0.jar
12465 elif test -f /usr/share/java/libserializer.jar; then
12466 LIBSERIALIZER_JAR=/usr/share/java/libserializer.jar
12468 AC_MSG_ERROR(libserializer.jar replacement not found.)
12470 elif ! test -f $LIBSERIALIZER_JAR; then
12471 AC_MSG_ERROR(libserializer.jar not found.)
12474 if test -z $LIBBASE_JAR; then
12475 if test -f /usr/share/java/libbase-1.0.0.jar; then
12476 LIBBASE_JAR=/usr/share/java/libbase-1.0.0.jar
12477 elif test -f /usr/share/java/libbase.jar; then
12478 LIBBASE_JAR=/usr/share/java/libbase.jar
12480 AC_MSG_ERROR(libbase.jar replacement not found.)
12482 elif ! test -f $LIBBASE_JAR; then
12483 AC_MSG_ERROR(libbase.jar not found.)
12487 AC_MSG_RESULT([internal])
12488 SYSTEM_JFREEREPORT=
12489 BUILD_TYPE="$BUILD_TYPE JFREEREPORT"
12493 AC_MSG_RESULT([no])
12494 ENABLE_REPORTBUILDER=
12495 SYSTEM_JFREEREPORT=
12497 AC_SUBST(ENABLE_REPORTBUILDER)
12498 AC_SUBST(SYSTEM_JFREEREPORT)
12500 AC_SUBST(LIBXML_JAR)
12501 AC_SUBST(FLUTE_JAR)
12502 AC_SUBST(JFREEREPORT_JAR)
12503 AC_SUBST(LIBBASE_JAR)
12504 AC_SUBST(LIBLAYOUT_JAR)
12505 AC_SUBST(LIBLOADER_JAR)
12506 AC_SUBST(LIBFORMULA_JAR)
12507 AC_SUBST(LIBREPOSITORY_JAR)
12508 AC_SUBST(LIBFONTS_JAR)
12509 AC_SUBST(LIBSERIALIZER_JAR)
12511 # scripting provider for BeanShell?
12512 AC_MSG_CHECKING([whether to build support for scripts in BeanShell])
12513 if test "${enable_scripting_beanshell}" != "no" -a "x$with_java" != "xno"; then
12514 AC_MSG_RESULT([yes])
12515 ENABLE_SCRIPTING_BEANSHELL=TRUE
12517 dnl ===================================================================
12518 dnl Check for system beanshell
12519 dnl ===================================================================
12520 AC_MSG_CHECKING([which beanshell to use])
12521 if test "$with_system_beanshell" = "yes"; then
12522 AC_MSG_RESULT([external])
12524 if test -z $BSH_JAR; then
12525 BSH_JAR=/usr/share/java/bsh.jar
12527 if ! test -f $BSH_JAR; then
12528 AC_MSG_ERROR(bsh.jar not found.)
12531 AC_MSG_RESULT([internal])
12533 BUILD_TYPE="$BUILD_TYPE BSH"
12536 AC_MSG_RESULT([no])
12537 ENABLE_SCRIPTING_BEANSHELL=
12538 SCPDEFS="$SCPDEFS -DWITHOUT_SCRIPTING_BEANSHELL"
12540 AC_SUBST(ENABLE_SCRIPTING_BEANSHELL)
12541 AC_SUBST(SYSTEM_BSH)
12544 # scripting provider for JavaScript?
12545 AC_MSG_CHECKING([whether to build support for scripts in JavaScript])
12546 if test "${enable_scripting_javascript}" != "no" -a "x$with_java" != "xno"; then
12547 AC_MSG_RESULT([yes])
12548 ENABLE_SCRIPTING_JAVASCRIPT=TRUE
12550 dnl ===================================================================
12551 dnl Check for system rhino
12552 dnl ===================================================================
12553 AC_MSG_CHECKING([which rhino to use])
12554 if test "$with_system_rhino" = "yes"; then
12555 AC_MSG_RESULT([external])
12557 if test -z $RHINO_JAR; then
12558 RHINO_JAR=/usr/share/java/js.jar
12560 if ! test -f $RHINO_JAR; then
12561 AC_MSG_ERROR(js.jar not found.)
12564 AC_MSG_RESULT([internal])
12566 BUILD_TYPE="$BUILD_TYPE RHINO"
12570 AC_MSG_RESULT([no])
12571 ENABLE_SCRIPTING_JAVASCRIPT=
12572 SCPDEFS="$SCPDEFS -DWITHOUT_SCRIPTING_JAVASCRIPT"
12574 AC_SUBST(ENABLE_SCRIPTING_JAVASCRIPT)
12575 AC_SUBST(SYSTEM_RHINO)
12576 AC_SUBST(RHINO_JAR)
12578 # This is only used in Qt5/KF5 checks to determine if /usr/lib64
12579 # paths should be added to library search path. So lets put all 64-bit
12582 case "$host_cpu" in
12583 x86_64 | powerpc64 | powerpc64le | s390x | aarch64 | mips64 | mips64el)
12584 if test "$SAL_TYPES_SIZEOFLONG" = "8"; then
12585 supports_multilib="yes"
12592 dnl ===================================================================
12593 dnl QT5 Integration
12594 dnl ===================================================================
12600 QT5_GOBJECT_CFLAGS=""
12601 QT5_GOBJECT_LIBS=""
12602 QT5_HAVE_GOBJECT=""
12603 QT5_PLATFORMS_SRCDIR=""
12604 if test \( "$test_kf5" = "yes" -a "$ENABLE_KF5" = "TRUE" \) -o \
12605 \( "$test_qt5" = "yes" -a "$ENABLE_QT5" = "TRUE" \) -o \
12606 \( "$test_gtk3_kde5" = "yes" -a "$ENABLE_GTK3_KDE5" = "TRUE" \)
12608 qt5_incdirs="$QT5INC /usr/include/qt5 /usr/include $x_includes"
12609 qt5_libdirs="$QT5LIB /usr/lib/qt5 /usr/lib $x_libraries"
12611 if test -n "$supports_multilib"; then
12612 qt5_libdirs="$qt5_libdirs /usr/lib64/qt5 /usr/lib64/qt /usr/lib64"
12615 qt5_test_include="QtWidgets/qapplication.h"
12616 if test "$_os" = "Emscripten"; then
12617 qt5_test_library="libQt5Widgets.a"
12619 qt5_test_library="libQt5Widgets.so"
12622 dnl Check for qmake5
12623 if test -n "$QT5DIR"; then
12624 AC_PATH_PROG(QMAKE5, [qmake], no, [$QT5DIR/bin])
12626 AC_PATH_PROGS(QMAKE5, [qmake-qt5 qmake], no)
12628 if test "$QMAKE5" = "no"; then
12629 AC_MSG_ERROR([Qmake not found. Please specify the root of your Qt5 installation by exporting QT5DIR before running "configure".])
12631 qmake5_test_ver="`$QMAKE5 -v 2>&1 | $SED -n -e 's/^Using Qt version \(5\.[[0-9.]]\+\).*$/\1/p'`"
12632 if test -z "$qmake5_test_ver"; then
12633 AC_MSG_ERROR([Wrong qmake for Qt5 found. Please specify the root of your Qt5 installation by exporting QT5DIR before running "configure".])
12635 qmake5_minor_version="`echo $qmake5_test_ver | cut -d. -f2`"
12636 qt5_minimal_minor="6"
12637 if test "$qmake5_minor_version" -lt "$qt5_minimal_minor"; then
12638 AC_MSG_ERROR([The minimal supported Qt5 version is 5.${qt5_minimal_minor}, but your 'qmake -v' reports Qt5 version $qmake5_test_ver.])
12640 AC_MSG_NOTICE([Detected Qt5 version: $qmake5_test_ver])
12644 qt5_incdirs="`$QMAKE5 -query QT_INSTALL_HEADERS` $qt5_incdirs"
12645 qt5_libdirs="`$QMAKE5 -query QT_INSTALL_LIBS` $qt5_libdirs"
12646 qt5_platformsdir="`$QMAKE5 -query QT_INSTALL_PLUGINS`/platforms"
12647 QT5_PLATFORMS_SRCDIR="$qt5_platformsdir"
12649 AC_MSG_CHECKING([for Qt5 headers])
12651 for inc_dir in $qt5_incdirs; do
12652 if test -r "$inc_dir/$qt5_test_include"; then
12653 qt5_incdir="$inc_dir"
12657 AC_MSG_RESULT([$qt5_incdir])
12658 if test "x$qt5_incdir" = "xno"; then
12659 AC_MSG_ERROR([Qt5 headers not found. Please specify the root of your Qt5 installation by exporting QT5DIR before running "configure".])
12661 # check for scenario: qt5-qtbase-devel-*.86_64 installed but host is i686
12662 AC_LANG_PUSH([C++])
12663 save_CPPFLAGS=$CPPFLAGS
12664 CPPFLAGS="${CPPFLAGS} -I${qt5_incdir}"
12665 AC_CHECK_HEADER(QtCore/qconfig.h, [],
12666 [AC_MSG_ERROR(qconfig.h header not found.)], [])
12667 CPPFLAGS=$save_CPPFLAGS
12670 AC_MSG_CHECKING([for Qt5 libraries])
12672 for lib_dir in $qt5_libdirs; do
12673 if test -r "$lib_dir/$qt5_test_library"; then
12674 qt5_libdir="$lib_dir"
12678 AC_MSG_RESULT([$qt5_libdir])
12679 if test "x$qt5_libdir" = "xno"; then
12680 AC_MSG_ERROR([Qt5 libraries not found. Please specify the root of your Qt5 installation by exporting QT5DIR before running "configure".])
12683 if test "$_os" = "Emscripten"; then
12684 if test ! -f "$QT5_PLATFORMS_SRCDIR"/wasm_shell.html ; then
12685 QT5_PLATFORMS_SRCDIR="${QT5_PLATFORMS_SRCDIR/plugins/src\/plugins}/wasm"
12687 if test ! -f "${qt5_platformsdir}"/libqwasm.a -o ! -f "$QT5_PLATFORMS_SRCDIR"/wasm_shell.html; then
12688 AC_MSG_ERROR([No Qt5 WASM QPA plugin found in ${qt5_platformsdir} or ${QT5_PLATFORMS_SRCDIR}])
12692 QT5_CFLAGS="-I$qt5_incdir -DQT_CLEAN_NAMESPACE -DQT_THREAD_SUPPORT -DQT_NO_VERSION_TAGGING"
12693 QT5_CFLAGS=$(printf '%s' "$QT5_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
12694 QT5_LIBS="-L$qt5_libdir -lQt5Core -lQt5Gui -lQt5Widgets -lQt5Network"
12695 if test "$_os" = "Emscripten"; then
12696 QT5_LIBS="$QT5_LIBS -lqtpcre2 -lQt5EventDispatcherSupport -lQt5FontDatabaseSupport -L${qt5_platformsdir} -lqwasm"
12699 if test "$USING_X11" = TRUE; then
12700 PKG_CHECK_MODULES(QT5_XCB,[xcb],,[AC_MSG_ERROR([XCB not found, which is needed for correct app grouping in X11.])])
12701 PKG_CHECK_MODULES(QT5_XCB_ICCCM,[xcb-icccm],[
12702 QT5_HAVE_XCB_ICCCM=1
12703 AC_DEFINE(QT5_HAVE_XCB_ICCCM)
12705 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)])
12706 add_warning "XCB ICCCM not found, which is needed for Qt versions (< 5.12) on some WMs to correctly group dialogs (like QTBUG-46626)"
12708 QT5_CFLAGS="$QT5_CFLAGS $QT5_XCB_CFLAGS $QT5_XCB_ICCCM_CFLAGS"
12709 QT5_LIBS="$QT5_LIBS $QT5_XCB_LIBS $QT5_XCB_ICCCM_LIBS -lQt5X11Extras"
12711 AC_DEFINE(QT5_USING_X11)
12714 dnl Check for Meta Object Compiler
12716 AC_PATH_PROGS( MOC5, [moc-qt5 moc], no, [`dirname $qt5_libdir`/bin:$QT5DIR/bin:$PATH])
12717 if test "$MOC5" = "no"; then
12718 AC_MSG_ERROR([Qt Meta Object Compiler not found. Please specify
12719 the root of your Qt installation by exporting QT5DIR before running "configure".])
12722 if test "$test_gstreamer_1_0" = yes; then
12723 PKG_CHECK_MODULES(QT5_GOBJECT,[gobject-2.0], [
12725 AC_DEFINE(QT5_HAVE_GOBJECT)
12727 AC_MSG_WARN([[No GObject found, can't use QWidget GStreamer sink on wayland!]])
12731 AC_SUBST(QT5_CFLAGS)
12734 AC_SUBST(QT5_GOBJECT_CFLAGS)
12735 AC_SUBST(QT5_GOBJECT_LIBS)
12736 AC_SUBST(QT5_HAVE_GOBJECT)
12737 AC_SUBST(QT5_PLATFORMS_SRCDIR)
12739 dnl ===================================================================
12740 dnl KF5 Integration
12741 dnl ===================================================================
12745 KF5_CONFIG="kf5-config"
12746 if test \( "$test_kf5" = "yes" -a "$ENABLE_KF5" = "TRUE" \) -o \
12747 \( "$test_gtk3_kde5" = "yes" -a "$ENABLE_GTK3_KDE5" = "TRUE" \)
12749 if test "$OS" = "HAIKU"; then
12750 haiku_arch="`echo $RTL_ARCH | tr X x`"
12751 kf5_haiku_incdirs="`findpaths -c ' ' -a $haiku_arch B_FIND_PATH_HEADERS_DIRECTORY`"
12752 kf5_haiku_libdirs="`findpaths -c ' ' -a $haiku_arch B_FIND_PATH_DEVELOP_LIB_DIRECTORY`"
12755 kf5_incdirs="$KF5INC /usr/include $kf5_haiku_incdirs $x_includes"
12756 kf5_libdirs="$KF5LIB /usr/lib /usr/lib/kf5 /usr/lib/kf5/devel $kf5_haiku_libdirs $x_libraries"
12757 if test -n "$supports_multilib"; then
12758 kf5_libdirs="$kf5_libdirs /usr/lib64 /usr/lib64/kf5 /usr/lib64/kf5/devel"
12761 kf5_test_include="KF5/kcoreaddons_version.h"
12762 kf5_test_library="libKF5CoreAddons.so"
12763 kf5_libdirs="$qt5_libdir $kf5_libdirs"
12765 dnl kf5 KDE4 support compatibility installed
12766 AC_PATH_PROG( KF5_CONFIG, $KF5_CONFIG, no, )
12767 if test "$KF5_CONFIG" != "no"; then
12768 kf5_incdirs="`$KF5_CONFIG --path include` $kf5_incdirs"
12769 kf5_libdirs="`$KF5_CONFIG --path lib` $kf5_libdirs"
12772 dnl Check for KF5 headers
12773 AC_MSG_CHECKING([for KF5 headers])
12775 for kf5_check in $kf5_incdirs; do
12776 if test -r "$kf5_check/$kf5_test_include"; then
12777 kf5_incdir="$kf5_check/KF5"
12781 AC_MSG_RESULT([$kf5_incdir])
12782 if test "x$kf5_incdir" = "xno"; then
12783 AC_MSG_ERROR([KF5 headers not found. Please specify the root of your KF5 installation by exporting KF5DIR before running "configure".])
12786 dnl Check for KF5 libraries
12787 AC_MSG_CHECKING([for KF5 libraries])
12789 for kf5_check in $kf5_libdirs; do
12790 if test -r "$kf5_check/$kf5_test_library"; then
12791 kf5_libdir="$kf5_check"
12796 AC_MSG_RESULT([$kf5_libdir])
12797 if test "x$kf5_libdir" = "xno"; then
12798 AC_MSG_ERROR([KF5 libraries not found. Please specify the root of your KF5 installation by exporting KF5DIR before running "configure".])
12801 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"
12802 KF5_LIBS="-L$kf5_libdir -lKF5CoreAddons -lKF5I18n -lKF5ConfigCore -lKF5WindowSystem -lKF5KIOCore -lKF5KIOWidgets -lKF5KIOFileWidgets -L$qt5_libdir -lQt5Core -lQt5Gui -lQt5Widgets -lQt5Network"
12803 KF5_CFLAGS=$(printf '%s' "$KF5_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
12805 if test "$USING_X11" = TRUE; then
12806 KF5_LIBS="$KF5_LIBS -lQt5X11Extras"
12809 AC_LANG_PUSH([C++])
12810 save_CXXFLAGS=$CXXFLAGS
12811 CXXFLAGS="$CXXFLAGS $KF5_CFLAGS"
12812 AC_MSG_CHECKING([whether KDE is >= 5.0])
12813 AC_RUN_IFELSE([AC_LANG_SOURCE([[
12814 #include <kcoreaddons_version.h>
12816 int main(int argc, char **argv) {
12817 if (KCOREADDONS_VERSION_MAJOR == 5 && KCOREADDONS_VERSION_MINOR >= 0) return 0;
12820 ]])],[AC_MSG_RESULT([yes])],[AC_MSG_ERROR([KDE version too old])],[])
12821 CXXFLAGS=$save_CXXFLAGS
12824 AC_SUBST(KF5_CFLAGS)
12827 dnl ===================================================================
12828 dnl Test whether to include Evolution 2 support
12829 dnl ===================================================================
12830 AC_MSG_CHECKING([whether to enable evolution 2 support])
12831 if test "$enable_evolution2" = yes; then
12832 AC_MSG_RESULT([yes])
12833 PKG_CHECK_MODULES(GOBJECT, gobject-2.0)
12834 GOBJECT_CFLAGS=$(printf '%s' "$GOBJECT_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
12835 FilterLibs "${GOBJECT_LIBS}"
12836 GOBJECT_LIBS="${filteredlibs}"
12837 ENABLE_EVOAB2="TRUE"
12839 AC_MSG_RESULT([no])
12841 AC_SUBST(ENABLE_EVOAB2)
12842 AC_SUBST(GOBJECT_CFLAGS)
12843 AC_SUBST(GOBJECT_LIBS)
12845 dnl ===================================================================
12846 dnl Test which themes to include
12847 dnl ===================================================================
12848 AC_MSG_CHECKING([which themes to include])
12849 # if none given use default subset of available themes
12850 if test "x$with_theme" = "x" -o "x$with_theme" = "xyes"; then
12851 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"
12855 if test "x$with_theme" != "xno"; then
12856 for theme in $with_theme; do
12858 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) real_theme="$theme" ;;
12859 default) real_theme=colibre ;;
12860 *) AC_MSG_ERROR([Unknown value for --with-theme: $theme]) ;;
12862 WITH_THEMES=`echo "$WITH_THEMES $real_theme"|tr '\ ' '\n'|sort|uniq|tr '\n' '\ '`
12865 AC_MSG_RESULT([$WITH_THEMES])
12866 AC_SUBST([WITH_THEMES])
12867 # FIXME: remove this, and the convenience default->colibre remapping after a grace period
12868 for theme in $with_theme; do
12870 default) AC_MSG_WARN([--with-theme=default is deprecated and will be removed, use --with-theme=colibre]) ;;
12875 dnl ===================================================================
12876 dnl Test whether to integrate helppacks into the product's installer
12877 dnl ===================================================================
12878 AC_MSG_CHECKING([for helppack integration])
12879 if test "$with_helppack_integration" = "no"; then
12880 AC_MSG_RESULT([no integration])
12882 SCPDEFS="$SCPDEFS -DWITH_HELPPACK_INTEGRATION"
12883 AC_MSG_RESULT([integration])
12886 ###############################################################################
12887 # Extensions checking
12888 ###############################################################################
12889 AC_MSG_CHECKING([for extensions integration])
12890 if test "x$enable_extension_integration" != "xno"; then
12891 WITH_EXTENSION_INTEGRATION=TRUE
12892 SCPDEFS="$SCPDEFS -DWITH_EXTENSION_INTEGRATION"
12893 AC_MSG_RESULT([yes, use integration])
12895 WITH_EXTENSION_INTEGRATION=
12896 AC_MSG_RESULT([no, do not integrate])
12898 AC_SUBST(WITH_EXTENSION_INTEGRATION)
12900 dnl Should any extra extensions be included?
12901 dnl There are standalone tests for each of these below.
12902 WITH_EXTRA_EXTENSIONS=
12903 AC_SUBST([WITH_EXTRA_EXTENSIONS])
12905 libo_CHECK_EXTENSION([ConvertTextToNumber],[CT2N],[ct2n],[ct2n],[])
12906 libo_CHECK_EXTENSION([Numbertext],[NUMBERTEXT],[numbertext],[numbertext],[b7cae45ad2c23551fd6ccb8ae2c1f59e-numbertext_0.9.5.oxt])
12907 if test "x$with_java" != "xno"; then
12908 libo_CHECK_EXTENSION([NLPSolver],[NLPSOLVER],[nlpsolver],[nlpsolver],[])
12909 libo_CHECK_EXTENSION([LanguageTool],[LANGUAGETOOL],[languagetool],[languagetool],[])
12912 AC_MSG_CHECKING([whether to build opens___.ttf])
12913 if test "$enable_build_opensymbol" = "yes"; then
12914 AC_MSG_RESULT([yes])
12915 AC_PATH_PROG(FONTFORGE, fontforge)
12916 if test -z "$FONTFORGE"; then
12917 AC_MSG_ERROR([fontforge not installed])
12920 AC_MSG_RESULT([no])
12921 OPENSYMBOL_TTF=f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140-opens___.ttf
12922 BUILD_TYPE="$BUILD_TYPE OPENSYMBOL"
12924 AC_SUBST(OPENSYMBOL_TTF)
12925 AC_SUBST(FONTFORGE)
12927 dnl ===================================================================
12928 dnl Test whether to include fonts
12929 dnl ===================================================================
12930 AC_MSG_CHECKING([whether to include third-party fonts])
12931 if test "$with_fonts" != "no"; then
12932 AC_MSG_RESULT([yes])
12934 BUILD_TYPE="$BUILD_TYPE MORE_FONTS"
12935 AC_DEFINE(HAVE_MORE_FONTS)
12937 AC_MSG_RESULT([no])
12939 SCPDEFS="$SCPDEFS -DWITHOUT_FONTS"
12941 AC_SUBST(WITH_FONTS)
12944 dnl ===================================================================
12945 dnl Test whether to enable online update service
12946 dnl ===================================================================
12947 AC_MSG_CHECKING([whether to enable online update])
12948 ENABLE_ONLINE_UPDATE=
12949 ENABLE_ONLINE_UPDATE_MAR=
12951 if test "$enable_online_update" = ""; then
12952 if test "$_os" = "WINNT" -o "$_os" = "Darwin"; then
12953 AC_MSG_RESULT([yes])
12954 ENABLE_ONLINE_UPDATE="TRUE"
12956 AC_MSG_RESULT([no])
12959 if test "$enable_online_update" = "mar"; then
12960 AC_MSG_RESULT([yes - MAR-based online update])
12961 ENABLE_ONLINE_UPDATE_MAR="TRUE"
12962 if test "$with_update_config" = ""; then
12963 AC_MSG_ERROR([mar based online updater needs an update config specified with "with-update-config])
12965 UPDATE_CONFIG="$with_update_config"
12966 AC_DEFINE(HAVE_FEATURE_UPDATE_MAR)
12967 elif test "$enable_online_update" = "yes"; then
12968 AC_MSG_RESULT([yes])
12969 ENABLE_ONLINE_UPDATE="TRUE"
12971 AC_MSG_RESULT([no])
12974 AC_SUBST(ENABLE_ONLINE_UPDATE)
12975 AC_SUBST(ENABLE_ONLINE_UPDATE_MAR)
12976 AC_SUBST(UPDATE_CONFIG)
12979 PRIVACY_POLICY_URL="$with_privacy_policy_url"
12980 if test "$ENABLE_ONLINE_UPDATE" = TRUE -o "$ENABLE_BREAKPAD" = "TRUE"; then
12981 if test "x$with_privacy_policy_url" = "xundefined"; then
12982 AC_MSG_FAILURE([online update or breakpad/crashreporting are enabled, but no --with-privacy-policy-url=... was provided])
12985 AC_SUBST(PRIVACY_POLICY_URL)
12986 dnl ===================================================================
12987 dnl Test whether we need bzip2
12988 dnl ===================================================================
12990 if test "$ENABLE_ONLINE_UPDATE_MAR" = "TRUE"; then
12991 AC_MSG_CHECKING([whether to use system bzip2])
12992 if test "$with_system_bzip2" = yes; then
12994 AC_MSG_RESULT([yes])
12995 PKG_CHECK_MODULES(BZIP2, bzip2)
12996 FilterLibs "${BZIP2_LIBS}"
12997 BZIP2_LIBS="${filteredlibs}"
12999 AC_MSG_RESULT([no])
13000 BUILD_TYPE="$BUILD_TYPE BZIP2"
13003 AC_SUBST(SYSTEM_BZIP2)
13004 AC_SUBST(BZIP2_CFLAGS)
13005 AC_SUBST(BZIP2_LIBS)
13007 dnl ===================================================================
13008 dnl Test whether to enable extension update
13009 dnl ===================================================================
13010 AC_MSG_CHECKING([whether to enable extension update])
13011 ENABLE_EXTENSION_UPDATE=
13012 if test "x$enable_extension_update" = "xno"; then
13013 AC_MSG_RESULT([no])
13015 AC_MSG_RESULT([yes])
13016 ENABLE_EXTENSION_UPDATE="TRUE"
13017 AC_DEFINE(ENABLE_EXTENSION_UPDATE)
13018 SCPDEFS="$SCPDEFS -DENABLE_EXTENSION_UPDATE"
13020 AC_SUBST(ENABLE_EXTENSION_UPDATE)
13023 dnl ===================================================================
13024 dnl Test whether to create MSI with LIMITUI=1 (silent install)
13025 dnl ===================================================================
13026 AC_MSG_CHECKING([whether to create MSI with LIMITUI=1 (silent install)])
13027 if test "$enable_silent_msi" = "" -o "$enable_silent_msi" = "no"; then
13028 AC_MSG_RESULT([no])
13031 AC_MSG_RESULT([yes])
13032 ENABLE_SILENT_MSI=TRUE
13033 SCPDEFS="$SCPDEFS -DENABLE_SILENT_MSI"
13035 AC_SUBST(ENABLE_SILENT_MSI)
13037 AC_MSG_CHECKING([whether and how to use Xinerama])
13038 if test "$_os" = "Linux" -o "$_os" = "FreeBSD"; then
13039 if test "$x_libraries" = "default_x_libraries"; then
13040 XINERAMALIB=`$PKG_CONFIG --variable=libdir xinerama`
13041 if test "x$XINERAMALIB" = x; then
13042 XINERAMALIB="/usr/lib"
13045 XINERAMALIB="$x_libraries"
13047 if test -e "$XINERAMALIB/libXinerama.so" -a -e "$XINERAMALIB/libXinerama.a"; then
13048 # we have both versions, let the user decide but use the dynamic one
13051 if test -z "$with_static_xinerama" -o -n "$with_system_libs"; then
13052 XINERAMA_LINK=dynamic
13054 XINERAMA_LINK=static
13056 elif test -e "$XINERAMALIB/libXinerama.so" -a ! -e "$XINERAMALIB/libXinerama.a"; then
13057 # we have only the dynamic version
13059 XINERAMA_LINK=dynamic
13060 elif test -e "$XINERAMALIB/libXinerama.a"; then
13062 if echo $host_cpu | $GREP -E 'i[[3456]]86' 2>/dev/null >/dev/null; then
13064 XINERAMA_LINK=static
13074 if test "$USE_XINERAMA" = "TRUE"; then
13075 AC_MSG_RESULT([yes, with $XINERAMA_LINK linking])
13076 AC_CHECK_HEADER(X11/extensions/Xinerama.h, [],
13077 [AC_MSG_ERROR(Xinerama header not found.)], [])
13078 XEXTLIBS=`$PKG_CONFIG --variable=libs xext`
13079 if test "x$XEXTLIB" = x; then
13080 XEXTLIBS="-L$XLIB -L$XINERAMALIB -lXext"
13082 XINERAMA_EXTRA_LIBS="$XEXTLIBS"
13083 if test "$_os" = "FreeBSD"; then
13084 XINERAMA_EXTRA_LIBS="$XINERAMA_EXTRA_LIBS -lXt"
13086 if test "$_os" = "Linux"; then
13087 XINERAMA_EXTRA_LIBS="$XINERAMA_EXTRA_LIBS -ldl"
13089 AC_CHECK_LIB([Xinerama], [XineramaIsActive], [:],
13090 [AC_MSG_ERROR(Xinerama not functional?)], [$XINERAMA_EXTRA_LIBS])
13092 AC_MSG_RESULT([no, libXinerama not found or wrong architecture.])
13097 AC_MSG_RESULT([no])
13099 AC_SUBST(USE_XINERAMA)
13100 AC_SUBST(XINERAMA_LINK)
13102 dnl ===================================================================
13103 dnl Test whether to build cairo or rely on the system version
13104 dnl ===================================================================
13106 if test "$test_cairo" = "yes"; then
13107 AC_MSG_CHECKING([whether to use the system cairo])
13109 : ${with_system_cairo:=$with_system_libs}
13110 if test "$with_system_cairo" = "yes"; then
13112 AC_MSG_RESULT([yes])
13114 PKG_CHECK_MODULES( CAIRO, cairo >= 1.8.0 )
13115 CAIRO_CFLAGS=$(printf '%s' "$CAIRO_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
13116 FilterLibs "${CAIRO_LIBS}"
13117 CAIRO_LIBS="${filteredlibs}"
13119 if test "$test_xrender" = "yes"; then
13120 AC_MSG_CHECKING([whether Xrender.h defines PictStandardA8])
13122 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <X11/extensions/Xrender.h>]],[[
13123 #ifdef PictStandardA8
13127 ]])],[AC_MSG_RESULT([yes])],[AC_MSG_ERROR([no, X headers too old.])])
13132 AC_MSG_RESULT([no])
13133 BUILD_TYPE="$BUILD_TYPE CAIRO"
13136 if test "$enable_cairo_canvas" != no; then
13137 AC_DEFINE(ENABLE_CAIRO_CANVAS)
13138 ENABLE_CAIRO_CANVAS=TRUE
13142 AC_SUBST(CAIRO_CFLAGS)
13143 AC_SUBST(CAIRO_LIBS)
13144 AC_SUBST(ENABLE_CAIRO_CANVAS)
13145 AC_SUBST(SYSTEM_CAIRO)
13147 dnl ===================================================================
13148 dnl Test whether to use avahi
13149 dnl ===================================================================
13150 if test "$_os" = "WINNT"; then
13151 # Windows uses bundled mDNSResponder
13152 BUILD_TYPE="$BUILD_TYPE MDNSRESPONDER"
13153 elif test "$_os" != "Darwin" -a "$enable_avahi" = "yes"; then
13154 PKG_CHECK_MODULES([AVAHI], [avahi-client >= 0.6.10],
13155 [ENABLE_AVAHI="TRUE"])
13156 AC_DEFINE(HAVE_FEATURE_AVAHI)
13157 AVAHI_CFLAGS=$(printf '%s' "$AVAHI_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
13158 FilterLibs "${AVAHI_LIBS}"
13159 AVAHI_LIBS="${filteredlibs}"
13162 AC_SUBST(ENABLE_AVAHI)
13163 AC_SUBST(AVAHI_CFLAGS)
13164 AC_SUBST(AVAHI_LIBS)
13166 dnl ===================================================================
13167 dnl Test whether to use liblangtag
13168 dnl ===================================================================
13170 AC_MSG_CHECKING([whether to use system liblangtag])
13171 if test "$with_system_liblangtag" = yes; then
13172 SYSTEM_LIBLANGTAG=TRUE
13173 AC_MSG_RESULT([yes])
13174 PKG_CHECK_MODULES( LIBLANGTAG, liblangtag >= 0.4.0)
13175 dnl cf. <https://bitbucket.org/tagoh/liblangtag/commits/9324836a0d1c> "Fix a build issue with inline keyword"
13176 PKG_CHECK_EXISTS([liblangtag >= 0.5.5], [], [AC_DEFINE([LIBLANGTAG_INLINE_FIX])])
13177 LIBLANGTAG_CFLAGS=$(printf '%s' "$LIBLANGTAG_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
13178 FilterLibs "${LIBLANGTAG_LIBS}"
13179 LIBLANGTAG_LIBS="${filteredlibs}"
13182 AC_MSG_RESULT([no])
13183 BUILD_TYPE="$BUILD_TYPE LIBLANGTAG"
13184 LIBLANGTAG_CFLAGS="-I${WORKDIR}/UnpackedTarball/liblangtag"
13185 if test "$COM" = "MSC"; then
13186 LIBLANGTAG_LIBS="${WORKDIR}/UnpackedTarball/liblangtag/liblangtag/.libs/liblangtag.lib"
13188 LIBLANGTAG_LIBS="-L${WORKDIR}/UnpackedTarball/liblangtag/liblangtag/.libs -llangtag"
13191 AC_SUBST(SYSTEM_LIBLANGTAG)
13192 AC_SUBST(LIBLANGTAG_CFLAGS)
13193 AC_SUBST(LIBLANGTAG_LIBS)
13195 dnl ===================================================================
13196 dnl Test whether to build libpng or rely on the system version
13197 dnl ===================================================================
13199 libo_CHECK_SYSTEM_MODULE([libpng],[LIBPNG],[libpng],["-I${WORKDIR}/UnpackedTarball/libpng"],["-L${WORKDIR}/LinkTarget/StaticLibrary -llibpng"])
13201 dnl ===================================================================
13202 dnl Check for runtime JVM search path
13203 dnl ===================================================================
13204 if test "$ENABLE_JAVA" != ""; then
13205 AC_MSG_CHECKING([whether to use specific JVM search path at runtime])
13206 if test -n "$with_jvm_path" -a "$with_jvm_path" != "no"; then
13207 AC_MSG_RESULT([yes])
13208 if ! test -d "$with_jvm_path"; then
13209 AC_MSG_ERROR(["$with_jvm_path" not a directory])
13211 if ! test -d "$with_jvm_path"jvm; then
13212 AC_MSG_ERROR(["$with_jvm_path"jvm not found, point with_jvm_path to \[/path/to/\]jvm])
13214 JVM_ONE_PATH_CHECK="$with_jvm_path"
13215 AC_SUBST(JVM_ONE_PATH_CHECK)
13217 AC_MSG_RESULT([no])
13221 dnl ===================================================================
13222 dnl Test for the presence of Ant and that it works
13223 dnl ===================================================================
13225 if test "$ENABLE_JAVA" != "" -a "$NEED_ANT" = "TRUE" -a "$cross_compiling" != "yes"; then
13226 ANT_HOME=; export ANT_HOME
13227 WITH_ANT_HOME=; export WITH_ANT_HOME
13228 if test -z "$with_ant_home" -a -n "$LODE_HOME" ; then
13229 if test -x "$LODE_HOME/opt/ant/bin/ant" ; then
13230 if test "$_os" = "WINNT"; then
13231 with_ant_home="`cygpath -m $LODE_HOME/opt/ant`"
13233 with_ant_home="$LODE_HOME/opt/ant"
13235 elif test -x "$LODE_HOME/opt/bin/ant" ; then
13236 with_ant_home="$LODE_HOME/opt/ant"
13239 if test -z "$with_ant_home"; then
13240 AC_PATH_PROGS(ANT, [ant ant.sh ant.bat ant.cmd])
13242 if test "$_os" = "WINNT"; then
13243 # AC_PATH_PROGS needs unix path
13244 with_ant_home=`cygpath -u "$with_ant_home"`
13246 AbsolutePath "$with_ant_home"
13247 with_ant_home=$absolute_path
13248 AC_PATH_PROGS(ANT, [ant ant.sh ant.bat ant.cmd],,$with_ant_home/bin:$PATH)
13249 WITH_ANT_HOME=$with_ant_home
13250 ANT_HOME=$with_ant_home
13253 if test -z "$ANT"; then
13254 AC_MSG_ERROR([Ant not found - Make sure it's in the path or use --with-ant-home])
13256 # resolve relative or absolute symlink
13257 while test -h "$ANT"; do
13259 a_basename=`basename "$ANT"`
13260 a_script=`ls -l "$ANT" | $SED "s/.*${a_basename} -> //g"`
13261 cd "`dirname "$ANT"`"
13262 cd "`dirname "$a_script"`"
13263 ANT="`pwd`"/"`basename "$a_script"`"
13267 AC_MSG_CHECKING([if $ANT works])
13268 mkdir -p conftest.dir
13271 cat > conftest.java << EOF
13272 public class conftest {
13273 int testmethod(int a, int b) {
13279 cat > conftest.xml << EOF
13280 <project name="conftest" default="conftest">
13281 <target name="conftest">
13282 <javac srcdir="." includes="conftest.java">
13288 AC_TRY_COMMAND("$ANT" -buildfile conftest.xml 1>&2)
13289 if test $? = 0 -a -f ./conftest.class; then
13290 AC_MSG_RESULT([Ant works])
13291 if test -z "$WITH_ANT_HOME"; then
13292 ANT_HOME=`"$ANT" -diagnostics | $EGREP "ant.home :" | $SED -e "s#ant.home : ##g"`
13293 if test -z "$ANT_HOME"; then
13294 ANT_HOME=`echo "$ANT" | $SED -n "s/\/bin\/ant.*\$//p"`
13297 ANT_HOME="$WITH_ANT_HOME"
13300 echo "configure: Ant test failed" >&5
13301 cat conftest.java >&5
13302 cat conftest.xml >&5
13303 AC_MSG_ERROR([Ant does not work - Some Java projects will not build!])
13306 rm -fr conftest.dir
13308 if test -z "$ANT_HOME"; then
13309 ANT_HOME="NO_ANT_HOME"
13311 PathFormat "$ANT_HOME"
13312 ANT_HOME="$formatted_path"
13314 ANT="$formatted_path"
13317 dnl Checking for ant.jar
13318 if test "$ANT_HOME" != "NO_ANT_HOME"; then
13319 AC_MSG_CHECKING([Ant lib directory])
13320 if test -f $ANT_HOME/lib/ant.jar; then
13321 ANT_LIB="$ANT_HOME/lib"
13323 if test -f $ANT_HOME/ant.jar; then
13324 ANT_LIB="$ANT_HOME"
13326 if test -f /usr/share/java/ant.jar; then
13327 ANT_LIB=/usr/share/java
13329 if test -f /usr/share/ant-core/lib/ant.jar; then
13330 ANT_LIB=/usr/share/ant-core/lib
13332 if test -f $ANT_HOME/lib/ant/ant.jar; then
13333 ANT_LIB="$ANT_HOME/lib/ant"
13335 if test -f /usr/share/lib/ant/ant.jar; then
13336 ANT_LIB=/usr/share/lib/ant
13338 AC_MSG_ERROR([Ant libraries not found!])
13345 PathFormat "$ANT_LIB"
13346 ANT_LIB="$formatted_path"
13347 AC_MSG_RESULT([Ant lib directory found.])
13351 ant_minminor1=`echo $ant_minver | cut -d"." -f2`
13353 AC_MSG_CHECKING([whether Ant is >= $ant_minver])
13354 ant_version=`"$ANT" -version | $AWK '$3 == "version" { print $4; }'`
13355 ant_version_major=`echo $ant_version | cut -d. -f1`
13356 ant_version_minor=`echo $ant_version | cut -d. -f2`
13357 echo "configure: ant_version $ant_version " >&5
13358 echo "configure: ant_version_major $ant_version_major " >&5
13359 echo "configure: ant_version_minor $ant_version_minor " >&5
13360 if test "$ant_version_major" -ge "2"; then
13361 AC_MSG_RESULT([yes, $ant_version])
13362 elif test "$ant_version_major" = "1" -a "$ant_version_minor" -ge "$ant_minminor1"; then
13363 AC_MSG_RESULT([yes, $ant_version])
13365 AC_MSG_ERROR([no, you need at least Ant >= $ant_minver])
13368 rm -f conftest* core core.* *.core
13376 if test "$ENABLE_JAVA" != "" -a "$with_junit" != "no" -a "$cross_compiling" != "yes"; then
13377 AC_MSG_CHECKING([for JUnit 4])
13378 if test "$with_junit" = "yes"; then
13379 if test -n "$LODE_HOME" -a -e "$LODE_HOME/opt/share/java/junit.jar" ; then
13380 OOO_JUNIT_JAR="$LODE_HOME/opt/share/java/junit.jar"
13381 elif test -e /usr/share/java/junit4.jar; then
13382 OOO_JUNIT_JAR=/usr/share/java/junit4.jar
13384 if test -e /usr/share/lib/java/junit.jar; then
13385 OOO_JUNIT_JAR=/usr/share/lib/java/junit.jar
13387 OOO_JUNIT_JAR=/usr/share/java/junit.jar
13391 OOO_JUNIT_JAR=$with_junit
13393 if test "$_os" = "WINNT"; then
13394 OOO_JUNIT_JAR=`cygpath -m "$OOO_JUNIT_JAR"`
13396 printf 'import org.junit.Before;' > conftest.java
13397 if "$JAVACOMPILER" -classpath "$OOO_JUNIT_JAR" conftest.java >&5 2>&5; then
13398 AC_MSG_RESULT([$OOO_JUNIT_JAR])
13401 [cannot find JUnit 4 jar; please install one in the default location (/usr/share/java),
13402 specify its pathname via --with-junit=..., or disable it via --without-junit])
13404 rm -f conftest.class conftest.java
13405 if test $OOO_JUNIT_JAR != ""; then
13406 BUILD_TYPE="$BUILD_TYPE QADEVOOO"
13409 AC_MSG_CHECKING([for included Hamcrest])
13410 printf 'import org.hamcrest.BaseDescription;' > conftest.java
13411 if "$JAVACOMPILER" -classpath "$OOO_JUNIT_JAR" conftest.java >&5 2>&5; then
13412 AC_MSG_RESULT([Included in $OOO_JUNIT_JAR])
13414 AC_MSG_RESULT([Not included])
13415 AC_MSG_CHECKING([for standalone hamcrest jar.])
13416 if test "$with_hamcrest" = "yes"; then
13417 if test -e /usr/share/lib/java/hamcrest.jar; then
13418 HAMCREST_JAR=/usr/share/lib/java/hamcrest.jar
13419 elif test -e /usr/share/java/hamcrest/core.jar; then
13420 HAMCREST_JAR=/usr/share/java/hamcrest/core.jar
13421 elif test -e /usr/share/java/hamcrest/hamcrest.jar; then
13422 HAMCREST_JAR=/usr/share/java/hamcrest/hamcrest.jar
13424 HAMCREST_JAR=/usr/share/java/hamcrest.jar
13427 HAMCREST_JAR=$with_hamcrest
13429 if test "$_os" = "WINNT"; then
13430 HAMCREST_JAR=`cygpath -m "$HAMCREST_JAR"`
13432 if "$JAVACOMPILER" -classpath "$HAMCREST_JAR" conftest.java >&5 2>&5; then
13433 AC_MSG_RESULT([$HAMCREST_JAR])
13435 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),
13436 specify its path with --with-hamcrest=..., or disable junit with --without-junit])
13439 rm -f conftest.class conftest.java
13441 AC_SUBST(OOO_JUNIT_JAR)
13442 AC_SUBST(HAMCREST_JAR)
13448 # check for wget and curl
13453 if test "$enable_fetch_external" != "no"; then
13455 CURL=`which curl 2>/dev/null`
13457 for i in wget /usr/bin/wget /usr/local/bin/wget /usr/sfw/bin/wget /opt/sfw/bin/wget /opt/local/bin/wget; do
13459 $i --help 2> /dev/null | $GREP no-use-server-timestamps 2>&1 > /dev/null
13460 if test $? -eq 0; then
13466 if test -z "$WGET" -a -z "$CURL"; then
13467 AC_MSG_ERROR([neither wget nor curl found!])
13476 # check for sha256sum
13480 for i in shasum /usr/local/bin/shasum /usr/sfw/bin/shasum /opt/sfw/bin/shasum /opt/local/bin/shasum; do
13481 eval "$i -a 256 --version" > /dev/null 2>&1
13483 if test $ret -eq 0; then
13484 SHA256SUM="$i -a 256"
13489 if test -z "$SHA256SUM"; then
13490 for i in sha256sum /usr/local/bin/sha256sum /usr/sfw/bin/sha256sum /opt/sfw/bin/sha256sum /opt/local/bin/sha256sum; do
13491 eval "$i --version" > /dev/null 2>&1
13493 if test $ret -eq 0; then
13500 if test -z "$SHA256SUM"; then
13501 AC_MSG_ERROR([no sha256sum found!])
13504 AC_SUBST(SHA256SUM)
13506 dnl ===================================================================
13507 dnl Dealing with l10n options
13508 dnl ===================================================================
13509 AC_MSG_CHECKING([which languages to be built])
13510 # get list of all languages
13511 # generate shell variable from completelangiso= from solenv/inc/langlist.mk
13512 # the sed command does the following:
13513 # + if a line ends with a backslash, append the next line to it
13514 # + adds " on the beginning of the value (after =)
13515 # + adds " at the end of the value
13516 # + removes en-US; we want to put it on the beginning
13517 # + prints just the section starting with 'completelangiso=' and ending with the " at the end of line
13518 [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)]
13519 ALL_LANGS="en-US $completelangiso"
13520 # check the configured localizations
13521 WITH_LANG="$with_lang"
13523 # Check for --without-lang which turns up as $with_lang being "no". Luckily there is no language with code "no".
13524 # (Norwegian is "nb" and "nn".)
13525 if test "$WITH_LANG" = "no"; then
13529 if test -z "$WITH_LANG" -o "$WITH_LANG" = "en-US"; then
13530 AC_MSG_RESULT([en-US])
13532 AC_MSG_RESULT([$WITH_LANG])
13533 GIT_NEEDED_SUBMODULES="translations $GIT_NEEDED_SUBMODULES"
13534 if test -z "$MSGFMT"; then
13535 if test -n "$LODE_HOME" -a -x "$LODE_HOME/opt/bin/msgfmt" ; then
13536 MSGFMT="$LODE_HOME/opt/bin/msgfmt"
13537 elif test -x "/opt/lo/bin/msgfmt"; then
13538 MSGFMT="/opt/lo/bin/msgfmt"
13540 AC_CHECK_PROGS(MSGFMT, [msgfmt])
13541 if test -z "$MSGFMT"; then
13542 AC_MSG_ERROR([msgfmt not found. Install GNU gettext, or re-run without languages.])
13546 if test -z "$MSGUNIQ"; then
13547 if test -n "$LODE_HOME" -a -x "$LODE_HOME/opt/bin/msguniq" ; then
13548 MSGUNIQ="$LODE_HOME/opt/bin/msguniq"
13549 elif test -x "/opt/lo/bin/msguniq"; then
13550 MSGUNIQ="/opt/lo/bin/msguniq"
13552 AC_CHECK_PROGS(MSGUNIQ, [msguniq])
13553 if test -z "$MSGUNIQ"; then
13554 AC_MSG_ERROR([msguniq not found. Install GNU gettext, or re-run without languages.])
13561 # check that the list is valid
13562 for lang in $WITH_LANG; do
13563 test "$lang" = "ALL" && continue
13564 # need to check for the exact string, so add space before and after the list of all languages
13565 for vl in $ALL_LANGS; do
13566 if test "$vl" = "$lang"; then
13570 if test "$vl" != "$lang"; then
13571 # if you're reading this - you prolly quoted your languages remove the quotes ...
13572 AC_MSG_ERROR([invalid language: '$lang' (vs '$v1'); supported languages are: $ALL_LANGS])
13575 if test -n "$WITH_LANG" -a "$WITH_LANG" != "ALL"; then
13576 echo $WITH_LANG | grep -q en-US
13577 test $? -ne 1 || WITH_LANG=`echo $WITH_LANG en-US`
13579 # list with substituted ALL
13580 WITH_LANG_LIST=`echo $WITH_LANG | sed "s/ALL/$ALL_LANGS/"`
13581 test -z "$WITH_LANG_LIST" && WITH_LANG_LIST="en-US"
13582 test "$WITH_LANG" = "en-US" && WITH_LANG=
13583 if test "$enable_release_build" = "" -o "$enable_release_build" = "no"; then
13584 test "$WITH_LANG_LIST" = "en-US" || WITH_LANG_LIST=`echo $WITH_LANG_LIST qtz`
13585 ALL_LANGS=`echo $ALL_LANGS qtz`
13587 AC_SUBST(ALL_LANGS)
13588 AC_DEFINE_UNQUOTED(WITH_LANG,"$WITH_LANG")
13589 AC_SUBST(WITH_LANG)
13590 AC_SUBST(WITH_LANG_LIST)
13591 AC_SUBST(GIT_NEEDED_SUBMODULES)
13593 WITH_POOR_HELP_LOCALIZATIONS=
13594 if test -d "$SRC_ROOT/translations/source"; then
13595 for l in `ls -1 $SRC_ROOT/translations/source`; do
13596 if test ! -d "$SRC_ROOT/translations/source/$l/helpcontent2"; then
13597 WITH_POOR_HELP_LOCALIZATIONS="$WITH_POOR_HELP_LOCALIZATIONS $l"
13601 AC_SUBST(WITH_POOR_HELP_LOCALIZATIONS)
13603 if test -n "$with_locales"; then
13604 WITH_LOCALES="$with_locales"
13606 just_langs="`echo $WITH_LOCALES | sed -e 's/_[A-Z]*//g'`"
13607 # Only languages and scripts for which we actually have ifdefs need to be handled. Also see
13608 # config_host/config_locales.h.in
13609 for locale in $WITH_LOCALES; do
13612 AC_DEFINE_UNQUOTED(WITH_LOCALE_$lang, 1)
13616 AC_DEFINE(WITH_LOCALE_FOR_SCRIPT_Deva)
13619 AC_DEFINE(WITH_LOCALE_FOR_SCRIPT_Cyrl)
13624 AC_DEFINE(WITH_LOCALE_ALL)
13626 AC_SUBST(WITH_LOCALES)
13628 dnl git submodule update --reference
13629 dnl ===================================================================
13630 if test -n "${GIT_REFERENCE_SRC}"; then
13631 for repo in ${GIT_NEEDED_SUBMODULES}; do
13632 if ! test -d "${GIT_REFERENCE_SRC}"/${repo}; then
13633 AC_MSG_ERROR([referenced git: required repository does not exist: ${GIT_REFERENCE_SRC}/${repo}])
13637 AC_SUBST(GIT_REFERENCE_SRC)
13639 dnl git submodules linked dirs
13640 dnl ===================================================================
13641 if test -n "${GIT_LINK_SRC}"; then
13642 for repo in ${GIT_NEEDED_SUBMODULES}; do
13643 if ! test -d "${GIT_LINK_SRC}"/${repo}; then
13644 AC_MSG_ERROR([linked git: required repository does not exist: ${GIT_LINK_SRC}/${repo}])
13648 AC_SUBST(GIT_LINK_SRC)
13651 dnl ===================================================================
13652 AC_MSG_CHECKING([for alternative branding images directory])
13653 # initialize mapped arrays
13654 BRAND_INTRO_IMAGES="intro.png intro-highres.png"
13655 brand_files="$BRAND_INTRO_IMAGES logo.svg logo_inverted.svg logo-sc.svg logo-sc_inverted.svg about.svg"
13657 if test -z "$with_branding" -o "$with_branding" = "no"; then
13658 AC_MSG_RESULT([none])
13659 DEFAULT_BRAND_IMAGES="$brand_files"
13661 if ! test -d $with_branding ; then
13662 AC_MSG_ERROR([No directory $with_branding, falling back to default branding])
13664 AC_MSG_RESULT([$with_branding])
13665 CUSTOM_BRAND_DIR="$with_branding"
13666 for lfile in $brand_files
13668 if ! test -f $with_branding/$lfile ; then
13669 AC_MSG_WARN([Branded file $lfile does not exist, using the default one])
13670 DEFAULT_BRAND_IMAGES="$DEFAULT_BRAND_IMAGES $lfile"
13672 CUSTOM_BRAND_IMAGES="$CUSTOM_BRAND_IMAGES $lfile"
13675 check_for_progress="yes"
13678 AC_SUBST([BRAND_INTRO_IMAGES])
13679 AC_SUBST([CUSTOM_BRAND_DIR])
13680 AC_SUBST([CUSTOM_BRAND_IMAGES])
13681 AC_SUBST([DEFAULT_BRAND_IMAGES])
13684 AC_MSG_CHECKING([for 'intro' progress settings])
13688 PROGRESSFRAMECOLOR=
13690 PROGRESSTEXTBASELINE=
13692 if test "$check_for_progress" = "yes" -a -f "$with_branding/progress.conf" ; then
13693 source "$with_branding/progress.conf"
13694 AC_MSG_RESULT([settings found in $with_branding/progress.conf])
13696 AC_MSG_RESULT([none])
13699 AC_SUBST(PROGRESSBARCOLOR)
13700 AC_SUBST(PROGRESSSIZE)
13701 AC_SUBST(PROGRESSPOSITION)
13702 AC_SUBST(PROGRESSFRAMECOLOR)
13703 AC_SUBST(PROGRESSTEXTCOLOR)
13704 AC_SUBST(PROGRESSTEXTBASELINE)
13707 dnl ===================================================================
13708 dnl Custom build version
13709 dnl ===================================================================
13710 AC_MSG_CHECKING([for extra build ID])
13711 if test -n "$with_extra_buildid" -a "$with_extra_buildid" != "yes" ; then
13712 EXTRA_BUILDID="$with_extra_buildid"
13714 # in tinderboxes, it is easier to set EXTRA_BUILDID via the environment variable instead of configure switch
13715 if test -n "$EXTRA_BUILDID" ; then
13716 AC_MSG_RESULT([$EXTRA_BUILDID])
13718 AC_MSG_RESULT([not set])
13720 AC_DEFINE_UNQUOTED([EXTRA_BUILDID], ["$EXTRA_BUILDID"])
13723 AC_MSG_CHECKING([for vendor])
13724 if test -z "$with_vendor" -o "$with_vendor" = "no"; then
13725 OOO_VENDOR="$USERNAME"
13727 if test -z "$OOO_VENDOR"; then
13731 if test -z "$OOO_VENDOR"; then
13732 OOO_VENDOR="`id -u -n`"
13735 AC_MSG_RESULT([not set, using $OOO_VENDOR])
13737 OOO_VENDOR="$with_vendor"
13738 AC_MSG_RESULT([$OOO_VENDOR])
13740 AC_DEFINE_UNQUOTED(OOO_VENDOR,"$OOO_VENDOR")
13741 AC_SUBST(OOO_VENDOR)
13743 if test "$_os" = "Android" ; then
13744 ANDROID_PACKAGE_NAME=
13745 AC_MSG_CHECKING([for Android package name])
13746 if test -z "$with_android_package_name" -o "$with_android_package_name" = "no"; then
13747 if test -n "$ENABLE_DEBUG"; then
13748 # Default to the package name that makes ndk-gdb happy.
13749 ANDROID_PACKAGE_NAME="org.libreoffice"
13751 ANDROID_PACKAGE_NAME="org.example.libreoffice"
13754 AC_MSG_RESULT([not set, using $ANDROID_PACKAGE_NAME])
13756 ANDROID_PACKAGE_NAME="$with_android_package_name"
13757 AC_MSG_RESULT([$ANDROID_PACKAGE_NAME])
13759 AC_SUBST(ANDROID_PACKAGE_NAME)
13762 AC_MSG_CHECKING([whether to install the compat oo* wrappers])
13763 if test "$with_compat_oowrappers" = "yes"; then
13764 WITH_COMPAT_OOWRAPPERS=TRUE
13767 WITH_COMPAT_OOWRAPPERS=
13770 AC_SUBST(WITH_COMPAT_OOWRAPPERS)
13772 INSTALLDIRNAME=`echo AC_PACKAGE_NAME | $AWK '{print tolower($0)}'`
13773 AC_MSG_CHECKING([for install dirname])
13774 if test -n "$with_install_dirname" -a "$with_install_dirname" != "no" -a "$with_install_dirname" != "yes"; then
13775 INSTALLDIRNAME="$with_install_dirname"
13777 AC_MSG_RESULT([$INSTALLDIRNAME])
13778 AC_SUBST(INSTALLDIRNAME)
13780 AC_MSG_CHECKING([for prefix])
13781 test "x$prefix" = xNONE && prefix=$ac_default_prefix
13782 test "x$exec_prefix" = xNONE && exec_prefix=$prefix
13783 PREFIXDIR="$prefix"
13784 AC_MSG_RESULT([$PREFIXDIR])
13785 AC_SUBST(PREFIXDIR)
13787 LIBDIR=[$(eval echo $(eval echo $libdir))]
13790 DATADIR=[$(eval echo $(eval echo $datadir))]
13793 MANDIR=[$(eval echo $(eval echo $mandir))]
13796 DOCDIR=[$(eval echo $(eval echo $docdir))]
13799 BINDIR=[$(eval echo $(eval echo $bindir))]
13802 INSTALLDIR="$LIBDIR/$INSTALLDIRNAME"
13803 AC_SUBST(INSTALLDIR)
13805 TESTINSTALLDIR="${BUILDDIR}/test-install"
13806 AC_SUBST(TESTINSTALLDIR)
13809 # ===================================================================
13810 # OAuth2 id and secrets
13811 # ===================================================================
13813 AC_MSG_CHECKING([for Google Drive client id and secret])
13814 if test "$with_gdrive_client_id" = "no" -o -z "$with_gdrive_client_id"; then
13815 AC_MSG_RESULT([not set])
13816 GDRIVE_CLIENT_ID="\"\""
13817 GDRIVE_CLIENT_SECRET="\"\""
13819 AC_MSG_RESULT([set])
13820 GDRIVE_CLIENT_ID="\"$with_gdrive_client_id\""
13821 GDRIVE_CLIENT_SECRET="\"$with_gdrive_client_secret\""
13823 AC_DEFINE_UNQUOTED(GDRIVE_CLIENT_ID, $GDRIVE_CLIENT_ID)
13824 AC_DEFINE_UNQUOTED(GDRIVE_CLIENT_SECRET, $GDRIVE_CLIENT_SECRET)
13826 AC_MSG_CHECKING([for Alfresco Cloud client id and secret])
13827 if test "$with_alfresco_cloud_client_id" = "no" -o -z "$with_alfresco_cloud_client_id"; then
13828 AC_MSG_RESULT([not set])
13829 ALFRESCO_CLOUD_CLIENT_ID="\"\""
13830 ALFRESCO_CLOUD_CLIENT_SECRET="\"\""
13832 AC_MSG_RESULT([set])
13833 ALFRESCO_CLOUD_CLIENT_ID="\"$with_alfresco_cloud_client_id\""
13834 ALFRESCO_CLOUD_CLIENT_SECRET="\"$with_alfresco_cloud_client_secret\""
13836 AC_DEFINE_UNQUOTED(ALFRESCO_CLOUD_CLIENT_ID, $ALFRESCO_CLOUD_CLIENT_ID)
13837 AC_DEFINE_UNQUOTED(ALFRESCO_CLOUD_CLIENT_SECRET, $ALFRESCO_CLOUD_CLIENT_SECRET)
13839 AC_MSG_CHECKING([for OneDrive client id and secret])
13840 if test "$with_onedrive_client_id" = "no" -o -z "$with_onedrive_client_id"; then
13841 AC_MSG_RESULT([not set])
13842 ONEDRIVE_CLIENT_ID="\"\""
13843 ONEDRIVE_CLIENT_SECRET="\"\""
13845 AC_MSG_RESULT([set])
13846 ONEDRIVE_CLIENT_ID="\"$with_onedrive_client_id\""
13847 ONEDRIVE_CLIENT_SECRET="\"$with_onedrive_client_secret\""
13849 AC_DEFINE_UNQUOTED(ONEDRIVE_CLIENT_ID, $ONEDRIVE_CLIENT_ID)
13850 AC_DEFINE_UNQUOTED(ONEDRIVE_CLIENT_SECRET, $ONEDRIVE_CLIENT_SECRET)
13853 dnl ===================================================================
13854 dnl Hook up LibreOffice's nodep environmental variable to automake's equivalent
13855 dnl --enable-dependency-tracking configure option
13856 dnl ===================================================================
13857 AC_MSG_CHECKING([whether to enable dependency tracking])
13858 if test "$enable_dependency_tracking" = "no"; then
13860 AC_MSG_RESULT([no])
13862 AC_MSG_RESULT([yes])
13866 dnl ===================================================================
13867 dnl Number of CPUs to use during the build
13868 dnl ===================================================================
13869 AC_MSG_CHECKING([for number of processors to use])
13870 # plain --with-parallelism is just the default
13871 if test -n "$with_parallelism" -a "$with_parallelism" != "yes"; then
13872 if test "$with_parallelism" = "no"; then
13875 PARALLELISM=$with_parallelism
13878 if test "$enable_icecream" = "yes"; then
13883 Darwin|FreeBSD|NetBSD|OpenBSD)
13884 PARALLELISM=`sysctl -n hw.ncpu`
13888 PARALLELISM=`getconf _NPROCESSORS_ONLN`
13890 # what else than above does profit here *and* has /proc?
13892 PARALLELISM=`grep $'^processor\t*:' /proc/cpuinfo | wc -l`
13896 # If we hit the catch-all case, but /proc/cpuinfo doesn't exist or has an
13897 # unexpected format, 'wc -l' will have returned 0 (and we won't use -j at all).
13901 if test "$no_parallelism_make" = "YES" && test $PARALLELISM -gt 1; then
13902 if test -z "$with_parallelism"; then
13903 AC_MSG_WARN([gmake 3.81 crashes with parallelism > 1, reducing it to 1. upgrade to 3.82 to avoid this.])
13904 add_warning "gmake 3.81 crashes with parallelism > 1, reducing it to 1. upgrade to 3.82 to avoid this."
13907 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."
13911 if test $PARALLELISM -eq 0; then
13912 AC_MSG_RESULT([explicit make -j option needed])
13914 AC_MSG_RESULT([$PARALLELISM])
13916 AC_SUBST(PARALLELISM)
13918 IWYU_PATH="$with_iwyu"
13919 AC_SUBST(IWYU_PATH)
13920 if test ! -z "$IWYU_PATH"; then
13921 if test ! -f "$IWYU_PATH"; then
13922 AC_MSG_ERROR([cannot find include-what-you-use binary specified by --with-iwyu])
13927 # Set up ILIB for MSVC build
13930 if test "$build_os" = "cygwin"; then
13932 if test -n "$JAVA_HOME"; then
13933 ILIB="$ILIB;$JAVA_HOME/lib"
13936 ILIB="$ILIB;$COMPATH/lib/$WIN_HOST_ARCH"
13937 ILIB1="$ILIB1 -LIBPATH:$COMPATH/lib/$WIN_HOST_ARCH"
13938 ILIB="$ILIB;$WINDOWS_SDK_HOME/lib/$WIN_HOST_ARCH"
13939 ILIB1="$ILIB1 -LIBPATH:$WINDOWS_SDK_HOME/lib/$WIN_HOST_ARCH"
13940 if test $WINDOWS_SDK_VERSION = 80 -o $WINDOWS_SDK_VERSION = 81 -o $WINDOWS_SDK_VERSION = 10; then
13941 ILIB="$ILIB;$WINDOWS_SDK_HOME/lib/$winsdklibsubdir/um/$WIN_HOST_ARCH"
13942 ILIB1="$ILIB1 -LIBPATH:$WINDOWS_SDK_HOME/lib/$winsdklibsubdir/um/$WIN_HOST_ARCH"
13944 PathFormat "${UCRTSDKDIR}lib/$UCRTVERSION/ucrt/$WIN_HOST_ARCH"
13945 ucrtlibpath_formatted=$formatted_path
13946 ILIB="$ILIB;$ucrtlibpath_formatted"
13947 ILIB1="$ILIB1 -LIBPATH:$ucrtlibpath_formatted"
13948 if test -f "$DOTNET_FRAMEWORK_HOME/lib/mscoree.lib"; then
13949 ILIB="$ILIB;$DOTNET_FRAMEWORK_HOME/lib"
13951 ILIB="$ILIB;$DOTNET_FRAMEWORK_HOME/Lib/um/$WIN_HOST_ARCH"
13954 if test "$cross_compiling" != "yes"; then
13955 ILIB_FOR_BUILD="$ILIB"
13959 AC_SUBST(ILIB_FOR_BUILD)
13961 # ===================================================================
13962 # Creating bigger shared library to link against
13963 # ===================================================================
13964 AC_MSG_CHECKING([whether to create huge library])
13967 if test $_os = iOS -o $_os = Android; then
13968 # Never any point in mergelibs for these as we build just static
13969 # libraries anyway...
13970 enable_mergelibs=no
13973 if test -n "$enable_mergelibs" -a "$enable_mergelibs" != "no"; then
13974 if test $_os != Linux -a $_os != WINNT; then
13975 add_warning "--enable-mergelibs is not tested for this platform"
13978 AC_MSG_RESULT([yes])
13979 AC_DEFINE(ENABLE_MERGELIBS)
13981 AC_MSG_RESULT([no])
13983 AC_SUBST([MERGELIBS])
13985 dnl ===================================================================
13986 dnl icerun is a wrapper that stops us spawning tens of processes
13987 dnl locally - for tools that can't be executed on the compile cluster
13988 dnl this avoids a dozen javac's ganging up on your laptop to kill it.
13989 dnl ===================================================================
13990 AC_MSG_CHECKING([whether to use icerun wrapper])
13992 if test "$enable_icecream" = "yes" && which icerun >/dev/null 2>&1 ; then
13993 ICECREAM_RUN=icerun
13994 AC_MSG_RESULT([yes])
13996 AC_MSG_RESULT([no])
13998 AC_SUBST(ICECREAM_RUN)
14000 dnl ===================================================================
14001 dnl Setup the ICECC_VERSION for the build the same way it was set for
14002 dnl configure, so that CC/CXX and ICECC_VERSION are in sync
14003 dnl ===================================================================
14004 x_ICECC_VERSION=[\#]
14005 if test -n "$ICECC_VERSION" ; then
14008 AC_SUBST(x_ICECC_VERSION)
14009 AC_SUBST(ICECC_VERSION)
14011 dnl ===================================================================
14013 AC_MSG_CHECKING([MPL subset])
14016 if test "$enable_mpl_subset" = "yes"; then
14018 if test "$enable_report_builder" != "no" -a "$with_java" != "no"; then
14020 elif test "$ENABLE_REPORTBUILDER" = "TRUE"; then
14023 if test "$warn_report" = "true"; then
14024 AC_MSG_ERROR([need to --disable-report-builder - extended database report builder.])
14026 if test "x$enable_postgresql_sdbc" != "xno"; then
14027 AC_MSG_ERROR([need to --disable-postgresql-sdbc - the PostgreSQL database backend.])
14029 if test "$enable_lotuswordpro" = "yes"; then
14030 AC_MSG_ERROR([need to --disable-lotuswordpro - a Lotus Word Pro file format import filter.])
14032 if test "$WITH_WEBDAV" = "neon"; then
14033 AC_MSG_ERROR([need --with-webdav=serf or --without-webdav - webdav support.])
14035 if test -n "$ENABLE_POPPLER"; then
14036 if test "x$SYSTEM_POPPLER" = "x"; then
14037 AC_MSG_ERROR([need to disable PDF import via poppler or use system library])
14040 # cf. m4/libo_check_extension.m4
14041 if test "x$WITH_EXTRA_EXTENSIONS" != "x"; then
14042 AC_MSG_ERROR([need to disable extra extensions '$WITH_EXTRA_EXTENSIONS'])
14044 for theme in $WITH_THEMES; do
14046 breeze|breeze_dark|breeze_dark_svg|breeze_svg|elementary|elementary_svg|karasa_jaga|karasa_jaga_svg) #denylist of icon themes under GPL or LGPL
14047 AC_MSG_ERROR([need to disable icon themes from '$WITH_THEMES': $theme present, use --with-theme=colibre]) ;;
14052 ENABLE_OPENGL_TRANSITIONS=
14054 if test "$enable_lpsolve" != "no" -o "x$ENABLE_LPSOLVE" = "xTRUE"; then
14055 AC_MSG_ERROR([need to --disable-lpsolve - calc linear programming solver.])
14059 AC_DEFINE(MPL_HAVE_SUBSET)
14060 AC_MSG_RESULT([only])
14062 AC_MSG_RESULT([no restrictions])
14064 AC_SUBST(MPL_SUBSET)
14066 dnl ===================================================================
14068 AC_MSG_CHECKING([formula logger])
14069 ENABLE_FORMULA_LOGGER=
14071 if test "x$enable_formula_logger" = "xyes"; then
14072 AC_MSG_RESULT([yes])
14073 AC_DEFINE(ENABLE_FORMULA_LOGGER)
14074 ENABLE_FORMULA_LOGGER=TRUE
14075 elif test -n "$ENABLE_DBGUTIL" ; then
14076 AC_MSG_RESULT([yes])
14077 AC_DEFINE(ENABLE_FORMULA_LOGGER)
14078 ENABLE_FORMULA_LOGGER=TRUE
14080 AC_MSG_RESULT([no])
14083 AC_SUBST(ENABLE_FORMULA_LOGGER)
14085 dnl ===================================================================
14086 dnl Checking for active Antivirus software.
14087 dnl ===================================================================
14089 if test $_os = WINNT -a -f "$SRC_ROOT/antivirusDetection.vbs" ; then
14090 AC_MSG_CHECKING([for active Antivirus software])
14091 ANTIVIRUS_LIST=`cscript.exe //Nologo $SRC_ROOT/antivirusDetection.vbs`
14092 if [ [ "$ANTIVIRUS_LIST" != "NULL" ] ]; then
14093 if [ [ "$ANTIVIRUS_LIST" != "NOT_FOUND" ] ]; then
14094 AC_MSG_RESULT([found])
14095 EICAR_STRING='X5O!P%@AP@<:@4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*'
14096 echo $EICAR_STRING > $SRC_ROOT/eicar
14097 EICAR_TEMP_FILE_CONTENTS=`cat $SRC_ROOT/eicar`
14099 if [ [ "$EICAR_STRING" != "$EICAR_TEMP_FILE_CONTENTS" ] ]; then
14100 AC_MSG_ERROR([Exclude the build and source directories associated with LibreOffice in the following Antivirus software: $ANTIVIRUS_LIST])
14102 echo $EICAR_STRING > $BUILDDIR/eicar
14103 EICAR_TEMP_FILE_CONTENTS=`cat $BUILDDIR/eicar`
14105 if [ [ "$EICAR_STRING" != "$EICAR_TEMP_FILE_CONTENTS" ] ]; then
14106 AC_MSG_ERROR([Exclude the build and source directories associated with LibreOffice in the following Antivirus software: $ANTIVIRUS_LIST])
14108 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"
14110 AC_MSG_RESULT([not found])
14113 AC_MSG_RESULT([n/a])
14117 dnl ===================================================================
14118 dnl Setting up the environment.
14119 dnl ===================================================================
14120 AC_MSG_NOTICE([setting up the build environment variables...])
14124 if test "$build_os" = "cygwin"; then
14125 if test -d "$COMPATH/atlmfc/lib/spectre"; then
14126 ATL_LIB="$COMPATH/atlmfc/lib/spectre"
14127 ATL_INCLUDE="$COMPATH/atlmfc/include"
14128 elif test -d "$COMPATH/atlmfc/lib"; then
14129 ATL_LIB="$COMPATH/atlmfc/lib"
14130 ATL_INCLUDE="$COMPATH/atlmfc/include"
14132 ATL_LIB="$WINDOWS_SDK_HOME/lib" # Doesn't exist for VSE
14133 ATL_INCLUDE="$WINDOWS_SDK_HOME/include/atl"
14135 ATL_LIB="$ATL_LIB/$WIN_HOST_ARCH"
14136 ATL_LIB=`win_short_path_for_make "$ATL_LIB"`
14137 ATL_INCLUDE=`win_short_path_for_make "$ATL_INCLUDE"`
14139 # sort.exe and find.exe also exist in C:/Windows/system32 so need /usr/bin/
14140 PathFormat "/usr/bin/find.exe"
14141 FIND="$formatted_path"
14142 PathFormat "/usr/bin/sort.exe"
14143 SORT="$formatted_path"
14144 PathFormat "/usr/bin/grep.exe"
14145 WIN_GREP="$formatted_path"
14146 PathFormat "/usr/bin/ls.exe"
14147 WIN_LS="$formatted_path"
14148 PathFormat "/usr/bin/touch.exe"
14149 WIN_TOUCH="$formatted_path"
14155 AC_SUBST(ATL_INCLUDE)
14161 AC_SUBST(WIN_TOUCH)
14163 AC_SUBST(BUILD_TYPE)
14168 PERL="$formatted_path"
14171 if test -n "$TMPDIR"; then
14172 TEMP_DIRECTORY="$TMPDIR"
14174 TEMP_DIRECTORY="/tmp"
14176 if test "$build_os" = "cygwin"; then
14177 TEMP_DIRECTORY=`cygpath -m "$TEMP_DIRECTORY"`
14179 AC_SUBST(TEMP_DIRECTORY)
14181 # setup the PATH for the environment
14182 if test -n "$LO_PATH_FOR_BUILD"; then
14183 LO_PATH="$LO_PATH_FOR_BUILD"
14186 pathmunge "$MSVC_HOST_PATH" "before"
14194 aix*|dragonfly*|freebsd*|linux-gnu*|*netbsd*|openbsd*)
14195 if test "$ENABLE_JAVA" != ""; then
14196 pathmunge "$JAVA_HOME/bin" "after"
14201 # Win32 make needs native paths
14202 if test "$GNUMAKE_WIN_NATIVE" = "TRUE" ; then
14203 LO_PATH=`cygpath -p -m "$PATH"`
14205 if test "$WIN_BUILD_ARCH" = "x64"; then
14206 # needed for msi packaging
14207 pathmunge "$WINDOWS_SDK_BINDIR_NO_ARCH/x86" "before"
14209 # .NET 4.6 and higher don't have bin directory
14210 if test -f "$DOTNET_FRAMEWORK_HOME/bin"; then
14211 pathmunge "$DOTNET_FRAMEWORK_HOME/bin" "before"
14213 pathmunge "$WINDOWS_SDK_HOME/bin" "before"
14214 pathmunge "$CSC_PATH" "before"
14215 pathmunge "$MIDL_PATH" "before"
14216 pathmunge "$AL_PATH" "before"
14217 pathmunge "$MSVC_MULTI_PATH" "before"
14218 pathmunge "$MSVC_BUILD_PATH" "before"
14219 if test -n "$MSBUILD_PATH" ; then
14220 pathmunge "$MSBUILD_PATH" "before"
14222 pathmunge "$WINDOWS_SDK_BINDIR_NO_ARCH/$WIN_BUILD_ARCH" "before"
14223 if test "$ENABLE_JAVA" != ""; then
14224 if test -d "$JAVA_HOME/jre/bin/client"; then
14225 pathmunge "$JAVA_HOME/jre/bin/client" "before"
14227 if test -d "$JAVA_HOME/jre/bin/hotspot"; then
14228 pathmunge "$JAVA_HOME/jre/bin/hotspot" "before"
14230 pathmunge "$JAVA_HOME/bin" "before"
14232 pathmunge "$MSVC_HOST_PATH" "before"
14236 pathmunge "/usr/css/bin" "before"
14237 if test "$ENABLE_JAVA" != ""; then
14238 pathmunge "$JAVA_HOME/bin" "after"
14246 # Allow to pass LO_ELFCHECK_ALLOWLIST from autogen.input to bin/check-elf-dynamic-objects:
14247 if test "$LO_ELFCHECK_ALLOWLIST" = x || test "${LO_ELFCHECK_ALLOWLIST-x}" != x; then
14248 x_LO_ELFCHECK_ALLOWLIST=
14250 x_LO_ELFCHECK_ALLOWLIST=[\#]
14252 AC_SUBST(x_LO_ELFCHECK_ALLOWLIST)
14253 AC_SUBST(LO_ELFCHECK_ALLOWLIST)
14257 # Generate a configuration sha256 we can use for deps
14258 if test -f config_host.mk; then
14259 config_sha256=`$SHA256SUM config_host.mk | sed "s/ .*//"`
14261 if test -f config_host_lang.mk; then
14262 config_lang_sha256=`$SHA256SUM config_host_lang.mk | sed "s/ .*//"`
14265 CFLAGS=$my_original_CFLAGS
14266 CXXFLAGS=$my_original_CXXFLAGS
14267 CPPFLAGS=$my_original_CPPFLAGS
14269 AC_CONFIG_LINKS([include:include])
14271 # Keep in sync with list of files far up, at AC_MSG_CHECKING([for
14272 # BUILD platform configuration] - otherwise breaks cross building
14273 AC_CONFIG_FILES([config_host.mk
14274 config_host_lang.mk
14276 bin/bffvalidator.sh
14277 bin/odfvalidator.sh
14279 hardened_runtime.xcent
14280 instsetoo_native/util/openoffice.lst
14281 sysui/desktop/macosx/Info.plist
14282 vs-code-template.code-workspace:.vscode/vs-code-template.code-workspace.in])
14283 AC_CONFIG_HEADERS([config_host/config_buildid.h])
14284 AC_CONFIG_HEADERS([config_host/config_box2d.h])
14285 AC_CONFIG_HEADERS([config_host/config_clang.h])
14286 AC_CONFIG_HEADERS([config_host/config_crypto.h])
14287 AC_CONFIG_HEADERS([config_host/config_dconf.h])
14288 AC_CONFIG_HEADERS([config_host/config_eot.h])
14289 AC_CONFIG_HEADERS([config_host/config_extensions.h])
14290 AC_CONFIG_HEADERS([config_host/config_cairo_canvas.h])
14291 AC_CONFIG_HEADERS([config_host/config_cxxabi.h])
14292 AC_CONFIG_HEADERS([config_host/config_dbus.h])
14293 AC_CONFIG_HEADERS([config_host/config_features.h])
14294 AC_CONFIG_HEADERS([config_host/config_feature_desktop.h])
14295 AC_CONFIG_HEADERS([config_host/config_feature_opencl.h])
14296 AC_CONFIG_HEADERS([config_host/config_firebird.h])
14297 AC_CONFIG_HEADERS([config_host/config_folders.h])
14298 AC_CONFIG_HEADERS([config_host/config_fuzzers.h])
14299 AC_CONFIG_HEADERS([config_host/config_gio.h])
14300 AC_CONFIG_HEADERS([config_host/config_global.h])
14301 AC_CONFIG_HEADERS([config_host/config_gpgme.h])
14302 AC_CONFIG_HEADERS([config_host/config_java.h])
14303 AC_CONFIG_HEADERS([config_host/config_langs.h])
14304 AC_CONFIG_HEADERS([config_host/config_lgpl.h])
14305 AC_CONFIG_HEADERS([config_host/config_libcxx.h])
14306 AC_CONFIG_HEADERS([config_host/config_liblangtag.h])
14307 AC_CONFIG_HEADERS([config_host/config_locales.h])
14308 AC_CONFIG_HEADERS([config_host/config_mpl.h])
14309 AC_CONFIG_HEADERS([config_host/config_oox.h])
14310 AC_CONFIG_HEADERS([config_host/config_options.h])
14311 AC_CONFIG_HEADERS([config_host/config_options_calc.h])
14312 AC_CONFIG_HEADERS([config_host/config_zxing.h])
14313 AC_CONFIG_HEADERS([config_host/config_skia.h])
14314 AC_CONFIG_HEADERS([config_host/config_typesizes.h])
14315 AC_CONFIG_HEADERS([config_host/config_vendor.h])
14316 AC_CONFIG_HEADERS([config_host/config_vcl.h])
14317 AC_CONFIG_HEADERS([config_host/config_vclplug.h])
14318 AC_CONFIG_HEADERS([config_host/config_version.h])
14319 AC_CONFIG_HEADERS([config_host/config_oauth2.h])
14320 AC_CONFIG_HEADERS([config_host/config_poppler.h])
14321 AC_CONFIG_HEADERS([config_host/config_python.h])
14322 AC_CONFIG_HEADERS([config_host/config_writerperfect.h])
14325 if test "$CROSS_COMPILING" = TRUE; then
14326 (echo; echo export BUILD_TYPE_FOR_HOST=$BUILD_TYPE) >>config_build.mk
14329 # touch the config timestamp file
14330 if test ! -f config_host.mk.stamp; then
14331 echo > config_host.mk.stamp
14332 elif test "$config_sha256" = `$SHA256SUM config_host.mk | sed "s/ .*//"`; then
14333 echo "Host Configuration unchanged - avoiding scp2 stamp update"
14335 echo > config_host.mk.stamp
14338 # touch the config lang timestamp file
14339 if test ! -f config_host_lang.mk.stamp; then
14340 echo > config_host_lang.mk.stamp
14341 elif test "$config_lang_sha256" = `$SHA256SUM config_host_lang.mk | sed "s/ .*//"`; then
14342 echo "Language Configuration unchanged - avoiding scp2 stamp update"
14344 echo > config_host_lang.mk.stamp
14348 if test \( "$STALE_MAKE" = "TRUE" -o "$HAVE_GNUMAKE_FILE_FUNC" != "TRUE" \) \
14349 -a "$build_os" = "cygwin"; then
14352 ****************************************************************************
14354 Your make version is known to be horribly slow, and hard to debug
14355 problems with. To get a reasonably functional make please do:
14357 to install a pre-compiled binary make for Win32
14359 mkdir -p /opt/lo/bin
14361 wget https://dev-www.libreoffice.org/bin/cygwin/make-4.2.1-msvc.exe
14362 cp make-4.2.1-msvc.exe make
14365 to install from source:
14366 place yourself in a working directory of you choice.
14368 git clone git://git.savannah.gnu.org/make.git
14370 [go to Start menu, open "Visual Studio 2019", click "x86 Native Tools Command Prompt" or "x64 Native Tools Command Prompt"]
14371 set PATH=%PATH%;C:\Cygwin\bin
14372 [or Cygwin64, if that is what you have]
14373 cd path-to-make-repo-you-cloned-above
14374 build_w32.bat --without-guile
14376 should result in a WinRel/gnumake.exe.
14377 Copy it to the Cygwin /opt/lo/bin directory as make.exe
14379 Then re-run autogen.sh
14381 Note: autogen.sh will try to use /opt/lo/bin/make if the environment variable GNUMAKE is not already defined.
14382 Alternatively, you can install the 'new' make where ever you want and make sure that `which make` finds it.
14385 if test "$HAVE_GNUMAKE_FILE_FUNC" != "TRUE"; then
14386 AC_MSG_ERROR([no file function found; the build will fail without it; use GNU make 4.0 or later])
14392 ****************************************************************************
14397 To view some help, run:
14402 if test $_os != WINNT -a "$CROSS_COMPILING" != TRUE; then
14404 After the build has finished successfully, you can immediately run what you built using the command:
14407 if test $_os = Darwin; then
14408 echo open instdir/$PRODUCTNAME_WITHOUT_SPACES.app
14410 echo instdir/program/soffice
14414 If you want to run the smoketest, run:
14420 if test -f "$WARNINGS_FILE_FOR_BUILD"; then
14421 echo "BUILD / cross-toolset config, repeated ($WARNINGS_FILE_FOR_BUILD)"
14422 cat "$WARNINGS_FILE_FOR_BUILD"
14426 if test -f "$WARNINGS_FILE"; then
14427 echo "HOST config ($WARNINGS_FILE)"
14428 cat "$WARNINGS_FILE"
14431 dnl vim:set shiftwidth=4 softtabstop=4 expandtab: