dnl -*- Mode: Autoconf; tab-width: 4; indent-tabs-mode: nil; fill-column: 102 -*- dnl configure.ac serves as input for the GNU autoconf package dnl in order to create a configure script. # The version number in the second argumemnt to AC_INIT should be four numbers separated by # periods. Some parts of the code requires the first one to be less than 128 and the others to be less # than 256. The four numbers can optionally be followed by a period and a free-form string containing # no spaces or periods, like "frobozz-mumble-42" or "alpha0". If the free-form string ends with one or # several non-alphanumeric characters, those are split off and used only for the # ABOUTBOXPRODUCTVERSIONSUFFIX in openoffice.lst. Why that is necessary, no idea. AC_INIT([LibreOffice],[5.1.0.0.alpha1+],[],[],[http://documentfoundation.org/]) AC_PREREQ([2.59]) if test -n "$BUILD_TYPE"; then AC_MSG_ERROR([You have sourced config_host.mk in this shell. This may lead to trouble, please run in a fresh (login) shell.]) fi save_CC=$CC save_CXX=$CXX BUILD_TYPE="LibO" SCPDEFS="" GIT_NEEDED_SUBMODULES="" LO_PATH= # used by path_munge to construct a PATH variable PathFormat() { formatted_path="$1" if test "$build_os" = "cygwin"; then pf_conv_to_dos= # spaces,parentheses,brackets,braces are problematic in pathname # so are backslashes case "$formatted_path" in *\ * | *\)* | *\(* | *\{* | *\}* | *\[* | *\]* | *\\* ) pf_conv_to_dos="yes" ;; esac if test "$pf_conv_to_dos" = "yes"; then if test "$GNUMAKE_WIN_NATIVE" = "TRUE" ; then formatted_path=`cygpath -sm "$formatted_path"` else formatted_path=`cygpath -d "$formatted_path"` fi if test $? -ne 0; then AC_MSG_ERROR([path conversion failed for "$1".]) fi fi fp_count_colon=`echo "$formatted_path" | $GREP -c "[:]"` fp_count_slash=`echo "$formatted_path" | $GREP -c "[/]"` if test "$fp_count_slash$fp_count_colon" != "00"; then if test "$fp_count_colon" = "0"; then new_formatted_path=`realpath "$formatted_path"` if test $? -ne 0; then AC_MSG_WARN([realpath failed for "$1", not necessarily a problem.]) else formatted_path="$new_formatted_path" fi fi formatted_path=`cygpath -m "$formatted_path"` if test $? -ne 0; then AC_MSG_ERROR([path conversion failed for "$1".]) fi fi fi } AbsolutePath() { # There appears to be no simple and portable method to get an absolute and # canonical path, so we try creating the directory if does not exist and # utilizing the shell and pwd. rel="$1" absolute_path="" test ! -e "$rel" && mkdir -p "$rel" if test -d "$rel" ; then cd "$rel" || AC_MSG_ERROR([absolute path resolution failed for "$rel".]) absolute_path="$(pwd)" cd - > /dev/null else AC_MSG_ERROR([Failed to resolve absolute path. "$rel" does not exist or is not a directory.]) fi } rm -f warn have_WARNINGS="no" add_warning() { if test "$have_WARNINGS" = "no"; then echo "*************************************" > warn have_WARNINGS="yes" if which tput >/dev/null 2>/dev/null && test `tput colors` -ge 8; then dnl as actual byte (U+1b), [ escaped using quadrigraph @<:@ COLORWARN='*@<:@1;33;40m WARNING @<:@0m:' else COLORWARN="* WARNING :" fi fi echo "$COLORWARN $@" >> warn } dnl Some Mac User have the bad habbit of letting a lot fo crap dnl accumulate in their PATH and even adding stuff in /usr/local/bin dnl that confuse the build. dnl For the ones that use LODE, let's be nice and protect them dnl from themselves mac_sanitize_path() { mac_path="$LODE_HOME/opt/bin:/usr/bin:/bin:/usr/sbin:/sbin" dnl a common but nevertheless necessary thing that may be in a fancy dnl path location is git, so make sure we have it mac_git_path=`which git 2>/dev/null` if test -n "$mac_git_path" -a -x "$mac_git_path" -a "$mac_git_path" != "/usr/bin/git" ; then mac_path="$mac_path:`dirname $mac_git_path`" fi PATH="$mac_path" unset mac_path unset git_mac_path } echo "********************************************************************" echo "*" echo "* Running ${PACKAGE_NAME} build configuration." echo "*" echo "********************************************************************" echo "" dnl =================================================================== dnl checks build and host OSes dnl do this before argument processing to allow for platform dependent defaults dnl =================================================================== AC_CANONICAL_HOST AC_MSG_CHECKING([for product name]) if test "$enable_release_build" = "" -o "$enable_release_build" = "no"; then PRODUCTNAME=AC_PACKAGE_NAME"Dev" else PRODUCTNAME=AC_PACKAGE_NAME fi AC_MSG_RESULT([$PRODUCTNAME]) AC_SUBST(PRODUCTNAME) dnl =================================================================== dnl Our version is defined by the AC_INIT() at the top of this script. dnl =================================================================== set `echo AC_PACKAGE_VERSION | sed "s/\./ /g"` LIBO_VERSION_MAJOR=$1 LIBO_VERSION_MINOR=$2 LIBO_VERSION_MICRO=$3 LIBO_VERSION_PATCH=$4 # The CFBundleShortVersionString in Info.plist consists of three integers, so encode the third # as the micro version times 1000 plus the patch number. Unfortunately the LIBO_VERSION_SUFFIX can be anything so # no way to encode that into an integer in general. MACOSX_BUNDLE_SHORTVERSION=$LIBO_VERSION_MAJOR.$LIBO_VERSION_MINOR.`expr $LIBO_VERSION_MICRO '*' 1000 + $LIBO_VERSION_PATCH` LIBO_VERSION_SUFFIX=$5 # Split out LIBO_VERSION_SUFFIX_SUFFIX... horrible crack. But apparently wanted separately in # openoffice.lst as ABOUTBOXPRODUCTVERSIONSUFFIX. Note that the double brackets are for m4's sake, # they get undoubled before actually passed to sed. LIBO_VERSION_SUFFIX_SUFFIX=`echo "$LIBO_VERSION_SUFFIX" | sed -e 's/.*[[a-zA-Z0-9]]\([[^a-zA-Z0-9]]*\)$/\1/'` test -n "$LIBO_VERSION_SUFFIX_SUFFIX" && LIBO_VERSION_SUFFIX="${LIBO_VERSION_SUFFIX%${LIBO_VERSION_SUFFIX_SUFFIX}}" # LIBO_VERSION_SUFFIX, if non-empty, should include the period separator test -n "$LIBO_VERSION_SUFFIX" && LIBO_VERSION_SUFFIX=".$LIBO_VERSION_SUFFIX" AC_SUBST(LIBO_VERSION_MAJOR) AC_SUBST(LIBO_VERSION_MINOR) AC_SUBST(LIBO_VERSION_MICRO) AC_SUBST(LIBO_VERSION_PATCH) AC_SUBST(MACOSX_BUNDLE_SHORTVERSION) AC_SUBST(LIBO_VERSION_SUFFIX) AC_SUBST(LIBO_VERSION_SUFFIX_SUFFIX) AC_DEFINE_UNQUOTED(LIBO_VERSION_MAJOR,$LIBO_VERSION_MAJOR) AC_DEFINE_UNQUOTED(LIBO_VERSION_MINOR,$LIBO_VERSION_MINOR) AC_DEFINE_UNQUOTED(LIBO_VERSION_MICRO,$LIBO_VERSION_MICRO) AC_DEFINE_UNQUOTED(LIBO_VERSION_PATCH,$LIBO_VERSION_PATCH) LIBO_THIS_YEAR=`date +%Y` AC_DEFINE_UNQUOTED(LIBO_THIS_YEAR,$LIBO_THIS_YEAR) dnl =================================================================== dnl Product version dnl =================================================================== AC_MSG_CHECKING([for product version]) PRODUCTVERSION="$LIBO_VERSION_MAJOR.$LIBO_VERSION_MINOR" AC_MSG_RESULT([$PRODUCTVERSION]) AC_SUBST(PRODUCTVERSION) AC_PROG_EGREP # AC_PROG_EGREP doesn't set GREP on all systems as well AC_PATH_PROG(GREP, grep) BUILDDIR=`pwd` cd $srcdir SRC_ROOT=`pwd` cd $BUILDDIR x_Cygwin=[\#] dnl ====================================== dnl Required GObject introspection version dnl ====================================== INTROSPECTION_REQUIRED_VERSION=1.32.0 dnl =================================================================== dnl Search all the common names for GNU Make dnl =================================================================== AC_MSG_CHECKING([for GNU Make]) # try to use our own make if it is available and GNUMAKE was not already defined if test -z "$GNUMAKE"; then if test -n "$LODE_HOME" -a -x "$LODE_HOME/opt/bin/make" ; then GNUMAKE="$LODE_HOME/opt/bin/make" elif test -x "/opt/lo/bin/make"; then GNUMAKE="/opt/lo/bin/make" fi fi GNUMAKE_WIN_NATIVE= for a in "$MAKE" "$GNUMAKE" make gmake gnumake; do if test -n "$a"; then $a --version 2> /dev/null | grep GNU 2>&1 > /dev/null if test $? -eq 0; then if test "$build_os" = "cygwin"; then if test -n "$($a -v | grep 'Built for Windows')" ; then GNUMAKE="$(cygpath -m "$(which "$(cygpath -u $a)")")" GNUMAKE_WIN_NATIVE="TRUE" else GNUMAKE=`which $a` fi else GNUMAKE=`which $a` fi break fi fi done AC_MSG_RESULT($GNUMAKE) if test -z "$GNUMAKE"; then AC_MSG_ERROR([not found. install GNU Make.]) else if test "$GNUMAKE_WIN_NATIVE" = "TRUE" ; then AC_MSG_NOTICE([Using a native Win32 GNU Make version.]) fi fi win_short_path_for_make() { local_short_path="$1" if test "$GNUMAKE_WIN_NATIVE" = "TRUE" ; then cygpath -sm "$local_short_path" else cygpath -u "$(cygpath -d "$local_short_path")" fi } if test "$build_os" = "cygwin"; then PathFormat "$SRC_ROOT" SRC_ROOT="$formatted_path" PathFormat "$BUILDDIR" BUILDDIR="$formatted_path" x_Cygwin= fi AC_SUBST(SRC_ROOT) AC_SUBST(BUILDDIR) AC_SUBST(x_Cygwin) AC_DEFINE_UNQUOTED(SRCDIR,"$SRC_ROOT") AC_DEFINE_UNQUOTED(BUILDDIR,"$BUILDDIR") if test "z$EUID" = "z0" -a "`uname -o 2>/dev/null`" = "Cygwin"; then AC_MSG_ERROR([You must build LibreOffice as a normal user - not using an administrative account]) fi # need sed in os checks... AC_PATH_PROGS(SED, sed) if test -z "$SED"; then AC_MSG_ERROR([install sed to run this script]) fi # Set the ENABLE_LTO variable # =================================================================== AC_MSG_CHECKING([whether to use link-time optimization]) if test -n "$enable_lto" -a "$enable_lto" != "no"; then ENABLE_LTO="TRUE" AC_MSG_RESULT([yes]) AC_DEFINE(STATIC_LINKING) else ENABLE_LTO="" AC_MSG_RESULT([no]) fi AC_SUBST(ENABLE_LTO) dnl =================================================================== dnl When building for Android, --with-android-ndk, dnl --with-android-ndk-toolchain-version and --with-android-sdk are dnl mandatory dnl =================================================================== AC_ARG_WITH(android-ndk, AS_HELP_STRING([--with-android-ndk], [Specify location of the Android Native Development Kit. Mandatory when building for Android.]), ,) AC_ARG_WITH(android-ndk-toolchain-version, AS_HELP_STRING([--with-android-ndk-toolchain-version], [Specify which toolchain version to use, of those present in the Android NDK you are using. The default is 4.9 currently.]), ,) AC_ARG_WITH(android-sdk, AS_HELP_STRING([--with-android-sdk], [Specify location of the Android SDK. Mandatory when building for Android, or when building the Impress Remote Android app.]), ,) ANDROID_NDK_HOME= if test -z "$with_android_ndk" -a -e "$SRC_ROOT/external/android-ndk"; then with_android_ndk="$SRC_ROOT/external/android-ndk" fi if test -n "$with_android_ndk"; then ANDROID_NDK_HOME=$with_android_ndk # Set up a lot of pre-canned defaults if test ! -f $ANDROID_NDK_HOME/RELEASE.TXT; then AC_MSG_ERROR([Unrecognized Android NDK. Missing RELEASE.TXT file in $ANDROID_NDK_HOME.]) fi ANDROID_NDK_VERSION=`cut -f1 -d' ' <$ANDROID_NDK_HOME/RELEASE.TXT` case $ANDROID_NDK_VERSION in r9*|r10*) ;; *) AC_MSG_ERROR([Unsupported NDK version $ANDROID_NDK_VERSION, only r9* and r10* versions are supported]) ;; esac if test $host_cpu = arm; then android_cpu=arm android_platform_prefix=$android_cpu-linux-androideabi elif test $host_cpu = aarch64; then android_cpu=aarch64 android_platform_prefix=$android_cpu-linux-android elif test $host_cpu = mips; then android_cpu=mips android_platform_prefix=$android_cpu-linux-androideabi else # host_cpu is something like "i386" or "i686" I guess, NDK uses # "x86" in some contexts android_cpu=x86 android_platform_prefix=$android_cpu fi if test -z "$with_android_ndk_toolchain_version"; then # Default to gcc 4.9 with_android_ndk_toolchain_version=4.9 fi case "$with_android_ndk_toolchain_version" in 4.6|4.7|4.8|4.9) ANDROID_BINUTILS_DIR=$ANDROID_NDK_HOME/toolchains/$android_platform_prefix-$with_android_ndk_toolchain_version ANDROID_COMPILER_DIR=$ANDROID_BINUTILS_DIR ;; clang3.3|clang3.4) AC_MSG_WARN([Building with the Clang tool-chain is known to break in the bridges module, fix that please]) ANDROID_BINUTILS_DIR=$ANDROID_NDK_HOME/toolchains/$android_platform_prefix-4.8 ANDROID_COMPILER_DIR=$ANDROID_NDK_HOME/toolchains/llvm-${with_android_ndk_toolchain_version#clang} ANDROID_USING_CLANG=true ;; *) AC_MSG_ERROR([Unrecognized value for the --with-android-ndk-toolchain-version option]) esac if test ! -d $ANDROID_BINUTILS_DIR; then AC_MSG_ERROR([No directory $ANDROID_BINUTILS_DIR]) elif test $ANDROID_COMPILER_DIR != $ANDROID_BINUTILS_DIR -a ! -d $ANDROID_COMPILER_DIR; then AC_MSG_ERROR([No directory $ANDROID_COMPILER_DIR]) fi # Check if there is a 64-bit tool-chain. Google provides a NDK with 64-bit tool-chain binaries in # NDK r8e and later, and for earlier NDKs it was possible to build one yourself. Using a 64-bit # linker is required if you compile large parts of the code with -g. A 32-bit linker just won't # manage to link the (app-specific) single huge .so that is built for the app in # android/source/ if there is debug information in a significant part of the object files. # (A 64-bit ld.gold grows to much over 10 gigabytes of virtual space when linking such a .so if # all objects have been built with debug information.) toolchain_system='*' case $build_os in linux-gnu*) ndk_build_os=linux ;; darwin*) ndk_build_os=darwin ;; *) AC_MSG_ERROR([We only support building for Android from Linux or OS X]) ;; esac ANDROID_COMPILER_BIN=$ANDROID_COMPILER_DIR/prebuilt/$ndk_build_os-x86/bin ANDROID_BINUTILS_PREBUILT_ROOT=$ANDROID_BINUTILS_DIR/prebuilt/$ndk_build_os-x86 if test $build_cpu = x86_64; then if test -d $ANDROID_COMPILER_DIR/prebuilt/$ndk_build_os-x86_64; then ANDROID_COMPILER_BIN=$ANDROID_COMPILER_DIR/prebuilt/$ndk_build_os-x86_64/bin fi if test -d $ANDROID_BINUTILS_DIR/prebuilt/$ndk_build_os-x86_64; then ANDROID_BINUTILS_PREBUILT_ROOT=$ANDROID_BINUTILS_DIR/prebuilt/$ndk_build_os-x86_64 fi fi ANDROID_BINUTILS_BIN=$ANDROID_BINUTILS_PREBUILT_ROOT/bin # This stays empty if there is just one version of the toolchain in the NDK ANDROID_NDK_TOOLCHAIN_VERSION_SUBDIR= case "`echo $ANDROID_NDK_HOME/toolchains/$android_cpu*-*/prebuilt/*/bin`" in */bin\ */bin*) # Trailing slash intentional and necessary, compare to how this is used if test -n "$ANDROID_USING_CLANG"; then ANDROID_NDK_TOOLCHAIN_VERSION_SUBDIR=4.8/ else ANDROID_NDK_TOOLCHAIN_VERSION_SUBDIR="${with_android_ndk_toolchain_version}/" fi ;; esac ANDROID_API_LEVEL=15 if test $host_cpu = arm; then android_gnu_prefix=arm-linux-androideabi elif test $host_cpu = aarch64; then android_gnu_prefix=aarch64-linux-android ANDROID_NDK_TOOLCHAIN_VERSION_SUBDIR="${with_android_ndk_toolchain_version}/" ANDROID_API_LEVEL=L elif test $host_cpu = mips; then android_gnu_prefix=mipsel-linux-android elif test $ANDROID_NDK_VERSION = r8; then # The prefix used for the x86 tool-chain changed between NDK r8 and r8b android_gnu_prefix=i686-android-linux else android_gnu_prefix=i686-linux-android fi ANDROID_ARCH=$android_cpu if test $host_cpu = arm; then ANDROID_APP_ABI=armeabi-v7a if test -n "$ANDROID_USING_CLANG"; then ANDROIDCFLAGS="-gcc-toolchain $ANDROID_BINUTILS_PREBUILT_ROOT" ANDROIDCFLAGS="$ANDROIDCFLAGS -target armv7-none-linux-androideabi" ANDROIDCFLAGS="$ANDROIDCFLAGS -no-canonical-prefixes" else : fi ANDROIDCFLAGS="$ANDROIDCFLAGS -mthumb" ANDROIDCFLAGS="$ANDROIDCFLAGS -march=armv7-a -mfloat-abi=softfp -mfpu=neon" ANDROIDCFLAGS="$ANDROIDCFLAGS -Wl,--fix-cortex-a8" elif test $host_cpu = aarch64; then ANDROID_APP_ABI=arm64-v8a ANDROID_ARCH=arm64 elif test $host_cpu = mips; then ANDROID_APP_ABI=mips ANDROIDCFLAGS="" else # x86 ANDROID_APP_ABI=x86 ANDROIDCFLAGS="-march=atom" fi ANDROIDCFLAGS="$ANDROIDCFLAGS -ffunction-sections -fdata-sections" ANDROIDCFLAGS="$ANDROIDCFLAGS -L$ANDROID_NDK_HOME/sources/cxx-stl/gnu-libstdc++/${ANDROID_NDK_TOOLCHAIN_VERSION_SUBDIR}libs/$ANDROID_APP_ABI" ANDROIDCFLAGS="$ANDROIDCFLAGS --sysroot=$ANDROID_NDK_HOME/platforms/android-${ANDROID_API_LEVEL}/arch-${ANDROID_ARCH}" if test -n "$ANDROID_USING_CLANG"; then ANDROIDCFLAGS="$ANDROIDCFLAGS -Qunused-arguments" else ANDROIDCFLAGS="$ANDROIDCFLAGS -Wno-psabi" fi test -z "$SYSBASE" && export SYSBASE=$ANDROID_NDK_HOME/platforms/android-${ANDROID_API_LEVEL}/arch-${ANDROID_ARCH} test -z "$AR" && AR=$ANDROID_BINUTILS_BIN/$android_gnu_prefix-ar test -z "$NM" && NM=$ANDROID_BINUTILS_BIN/$android_gnu_prefix-nm test -z "$OBJDUMP" && OBJDUMP=$ANDROID_BINUTILS_BIN/$android_gnu_prefix-objdump test -z "$RANLIB" && RANLIB=$ANDROID_BINUTILS_BIN/$android_gnu_prefix-ranlib test -z "$STRIP" && STRIP=$ANDROID_BINUTILS_BIN/$android_gnu_prefix-strip # When using the 4.6 or newer toolchain, use the gold linker case "$with_android_ndk_toolchain_version" in 4.[[6789]]*|[[56789]].*|clang*) if test "$host_cpu" = arm -a "$ENABLE_LTO" != TRUE; then ANDROIDCFLAGS="$ANDROIDCFLAGS -fuse-ld=gold" fi ;; esac if test "$ENABLE_LTO" = TRUE; then # -flto comes from com_GCC_degs.mk, too, but we need to make sure it gets passed as part of # $CC and $CXX when building external libraries ANDROIDCFLAGS="$ANDROIDCFLAGS -flto" fi # gdbserver can be in different locations if test -f $ANDROID_NDK_HOME/toolchains/arm-linux-androideabi-4.4.3/prebuilt/gdbserver; then ANDROID_NDK_GDBSERVER=$ANDROID_NDK_HOME/toolchains/arm-linux-androideabi-4.4.3/prebuilt/gdbserver elif test -f $ANDROID_NDK_HOME/prebuilt/android-$android_cpu/gdbserver/gdbserver; then ANDROID_NDK_GDBSERVER=$ANDROID_NDK_HOME/prebuilt/android-$android_cpu/gdbserver/gdbserver elif test $android_cpu = aarch64; then ANDROID_NDK_GDBSERVER=$ANDROID_NDK_HOME/prebuilt/android-arm64/gdbserver/gdbserver else AC_MSG_ERROR([Can't find gdbserver for your Android target]) fi if test $host_cpu = arm; then ANDROIDCXXFLAGS="$ANDROIDCFLAGS -I $ANDROID_NDK_HOME/sources/cxx-stl/gnu-libstdc++/${ANDROID_NDK_TOOLCHAIN_VERSION_SUBDIR}include -I$ANDROID_NDK_HOME/sources/cxx-stl/gnu-libstdc++/${ANDROID_NDK_TOOLCHAIN_VERSION_SUBDIR}libs/armeabi-v7a/include" elif test $host_cpu = mips; then ANDROIDCXXFLAGS="$ANDROIDCFLAGS -I $ANDROID_NDK_HOME/sources/cxx-stl/gnu-libstdc++/${ANDROID_NDK_TOOLCHAIN_VERSION_SUBDIR}include -I$ANDROID_NDK_HOME/sources/cxx-stl/gnu-libstdc++/${ANDROID_NDK_TOOLCHAIN_VERSION_SUBDIR}libs/mips/include" else # x86 ANDROIDCXXFLAGS="$ANDROIDCFLAGS -I $ANDROID_NDK_HOME/sources/cxx-stl/gnu-libstdc++/${ANDROID_NDK_TOOLCHAIN_VERSION_SUBDIR}include -I$ANDROID_NDK_HOME/sources/cxx-stl/gnu-libstdc++/${ANDROID_NDK_TOOLCHAIN_VERSION_SUBDIR}libs/x86/include" fi if test -z "$CC"; then case "$with_android_ndk_toolchain_version" in 4.*) CC="$ANDROID_COMPILER_BIN/$android_gnu_prefix-gcc $ANDROIDCFLAGS" ;; clang*) CC="$ANDROID_COMPILER_BIN/clang $ANDROIDCFLAGS" esac fi if test -z "$CXX"; then case "$with_android_ndk_toolchain_version" in 4.*) CXX="$ANDROID_COMPILER_BIN/$android_gnu_prefix-g++ $ANDROIDCXXFLAGS" ;; clang*) CXX="$ANDROID_COMPILER_BIN/clang++ $ANDROIDCXXFLAGS" ;; esac fi # remember to download the ownCloud Android library later BUILD_TYPE="$BUILD_TYPE OWNCLOUD_ANDROID_LIB" fi AC_SUBST(ANDROID_NDK_GDBSERVER) AC_SUBST(ANDROID_APP_ABI) dnl =================================================================== dnl --with-android-sdk dnl =================================================================== ANDROID_SDK_HOME= if test -z "$with_android_sdk" -a -e "$SRC_ROOT/external/android-sdk-linux"; then with_android_sdk="$SRC_ROOT/external/android-sdk-linux" fi if test -n "$with_android_sdk"; then ANDROID_SDK_HOME=$with_android_sdk PATH="$ANDROID_SDK_HOME/platform-tools:$ANDROID_SDK_HOME/tools:$PATH" fi AC_SUBST(ANDROID_SDK_HOME) dnl =================================================================== dnl The following is a list of supported systems. dnl Sequential to keep the logic very simple dnl These values may be checked and reset later. dnl =================================================================== #defaults unless the os test overrides this: test_randr=yes test_xrender=yes test_cups=yes test_dbus=yes test_fontconfig=yes test_cairo=no # Default values, as such probably valid just for Linux, set # differently below just for Mac OSX,but at least better than # hardcoding these as we used to do. Much of this is duplicated also # in solenv for old build system and for gbuild, ideally we should # perhaps define stuff like this only here in configure.ac? LINKFLAGSSHL="-shared" PICSWITCH="-fpic" DLLPOST=".so" LINKFLAGSNOUNDEFS="-Wl,-z,defs" INSTROOTSUFFIX= SDKDIRNAME=sdk case "$host_os" in solaris*) test_gtk=yes build_gstreamer_1_0=yes build_gstreamer_0_10=yes test_tde=yes test_freetype=yes _os=SunOS dnl =========================================================== dnl Check whether we're using Solaris 10 - SPARC or Intel. dnl =========================================================== AC_MSG_CHECKING([the Solaris operating system release]) _os_release=`echo $host_os | $SED -e s/solaris2\.//` if test "$_os_release" -lt "10"; then AC_MSG_ERROR([use Solaris >= 10 to build LibreOffice]) else AC_MSG_RESULT([ok ($_os_release)]) fi dnl Check whether we're using a SPARC or i386 processor AC_MSG_CHECKING([the processor type]) if test "$host_cpu" = "sparc" -o "$host_cpu" = "i386"; then AC_MSG_RESULT([ok ($host_cpu)]) else AC_MSG_ERROR([only SPARC and i386 processors are supported]) fi ;; linux-gnu*|k*bsd*-gnu*) test_gtk=yes build_gstreamer_1_0=yes build_gstreamer_0_10=yes test_tde=yes test_kde4=yes test_freetype=yes _os=Linux ;; gnu) test_randr=no test_xrender=no _os=GNU ;; cygwin*|interix*|mingw32*) # When building on Windows normally with MSVC under Cygwin, # configure thinks that the host platform (the platform the # built code will run on) is Cygwin, even if it obviously is # Windows, which in Autoconf terminology is called # "mingw32". (Which is misleading as MinGW is the name of the # tool-chain, not an operating system.) # Somewhat confusing, yes. But this configure script doesn't # look at $host etc that much, it mostly uses its own $_os # variable, set here in this case statement. # When cross-compiling to Windows from Unix, the host platform # is "mingw32" (because in that case it is the MinGW # tool-chain that is used). test_cups=no test_dbus=no test_randr=no test_xrender=no test_freetype=no test_fontconfig=no _os=WINNT DLLPOST=".dll" LINKFLAGSNOUNDEFS= # If the host OS matches "mingw32*", that means we are using the # MinGW cross-compiler, because we don't see the point in building # LibreOffice using MinGW on Windows. If you want to build on # Windows, use MSVC. If you want to use MinGW, surely you want to # cross-compile (from Linux or some other Unix). case "$host_os" in mingw32*) WITH_MINGW=yes if test -z "$CC"; then CC="$host_cpu-$host_vendor-$host_os-gcc" fi if test -z "$CXX"; then CXX="$host_cpu-$host_vendor-$host_os-g++" fi ;; esac ;; darwin*) # Mac OS X or iOS test_gtk=yes test_randr=no test_xrender=no test_freetype=no test_fontconfig=no test_dbus=no if test "$host_cpu" = "arm"; then _os=iOS test_gtk=no test_cups=no else _os=Darwin if test -n "$LODE_HOME" ; then mac_sanitize_path AC_MSG_NOTICE([sanitized the PATH to $PATH]) fi INSTROOTSUFFIX=/$PRODUCTNAME.app/Contents SDKDIRNAME=AC_PACKAGE_NAME${PRODUCTVERSION}_SDK fi enable_systray=no # See comment above the case "$host_os" LINKFLAGSSHL="-dynamiclib -single_module" # -fPIC is default PICSWITCH="" DLLPOST=".dylib" # -undefined error is the default LINKFLAGSNOUNDEFS="" ;; freebsd*) test_gtk=yes build_gstreamer_1_0=yes build_gstreamer_0_10=yes test_tde=yes test_kde4=yes test_freetype=yes AC_MSG_CHECKING([the FreeBSD operating system release]) if test -n "$with_os_version"; then OSVERSION="$with_os_version" else OSVERSION=`/sbin/sysctl -n kern.osreldate` fi AC_MSG_RESULT([found OSVERSION=$OSVERSION]) AC_MSG_CHECKING([which thread library to use]) if test "$OSVERSION" -lt "500016"; then PTHREAD_CFLAGS="-D_THREAD_SAFE" PTHREAD_LIBS="-pthread" elif test "$OSVERSION" -lt "502102"; then PTHREAD_CFLAGS="-D_THREAD_SAFE" PTHREAD_LIBS="-lc_r" else PTHREAD_CFLAGS="" PTHREAD_LIBS="-pthread" fi AC_MSG_RESULT([$PTHREAD_LIBS]) _os=FreeBSD ;; *netbsd*) test_gtk=yes build_gstreamer_1_0=yes build_gstreamer_0_10=yes test_tde=no test_kde4=yes test_freetype=yes PTHREAD_LIBS="-pthread -lpthread" _os=NetBSD ;; aix*) test_randr=no test_freetype=yes PTHREAD_LIBS=-pthread _os=AIX ;; openbsd*) test_gtk=yes test_tde=yes test_freetype=yes PTHREAD_CFLAGS="-D_THREAD_SAFE" PTHREAD_LIBS="-pthread" _os=OpenBSD ;; dragonfly*) test_gtk=yes build_gstreamer_1_0=yes build_gstreamer_0_10=yes test_tde=yes test_kde4=yes test_freetype=yes PTHREAD_LIBS="-pthread" _os=DragonFly ;; linux-android*) build_gstreamer_1_0=no build_gstreamer_0_10=no enable_lotuswordpro=no enable_mpl_subset=yes enable_coinmp=yes enable_lpsolve=no enable_report_builder=no with_theme="tango" test_cups=no test_dbus=no test_fontconfig=no test_freetype=no test_gtk=no test_tde=no test_kde4=no test_randr=no test_xrender=no _os=Android if test -z "$with_android_ndk"; then AC_MSG_ERROR([the --with-android-ndk option is mandatory, unless it is available at external/android-ndk/.]) fi if test -z "$with_android_ndk_toolchain_version"; then AC_MSG_ERROR([the --with-android-ndk-toolchain-version option is mandatory]) fi # Verify that the NDK and SDK options are proper if test ! -f "$ANDROID_NDK_HOME/platforms/android-${ANDROID_API_LEVEL}/arch-${ANDROID_ARCH}/usr/lib/libc.a"; then AC_MSG_ERROR([the --with-android-ndk option does not point to an Android NDK]) fi AC_DEFINE(HAVE_FT_FACE_GETCHARVARIANTINDEX) BUILD_TYPE="$BUILD_TYPE FONTCONFIG FREETYPE" ;; emscripten*) build_gstreamer_1_0=no build_gstreamer_0_10=no enable_lotuswordpro=no enable_mpl_subset=yes enable_coinmp=yes enable_lpsolve=no enable_report_builder=no with_theme="tango" test_cups=no test_dbus=no test_fontconfig=no test_freetype=no test_gtk=no test_tde=no test_kde4=no test_randr=no test_xrender=no _os=Emscripten ;; *) AC_MSG_ERROR([$host_os operating system is not suitable to build LibreOffice for!]) ;; esac if echo "$host_os" | grep -q linux-android ; then if test -z "$with_android_sdk"; then AC_MSG_ERROR([the --with-android-sdk option is mandatory, unless it is available at external/android-sdk-linux/.]) fi if test ! -d "$ANDROID_SDK_HOME/platforms"; then AC_MSG_ERROR([the --with-android-sdk option does not point to an Android SDK]) fi BUILD_TOOLS_VERSION=`$SED -n -e 's/.*buildToolsVersion "\(.*\)"/\1/p' $SRC_ROOT/android/source/build.gradle` if test ! -d "$ANDROID_SDK_HOME/build-tools/$BUILD_TOOLS_VERSION"; then AC_MSG_WARN([android build-tools $BUILD_TOOLS_VERSION not found - install with $ANDROID_SDK_HOME/tools/android update sdk -u --all --filter build-tools-$BUILD_TOOLS_VERSION or adjust change $SRC_ROOT/android/source/build.gradle accordingly]) add_warning "android build-tools $BUILD_TOOLS_VERSION not found - install with" add_warning " $ANDROID_SDK_HOME/tools/android update sdk -u --all --filter build-tools-$BUILD_TOOLS_VERSION" add_warning "or adjust $SRC_ROOT/android/source/build.gradle accordingly" fi if test ! -f "$ANDROID_SDK_HOME/extras/android/m2repository/source.properties"; then AC_MSG_WARN([android support repository not found - install with $ANDROID_SDK_HOME/tools/android update sdk -u --filter extra-android-m2repository to allow the build to download the specified version of the android support libraries]) add_warning "android support repository not found - install with" add_warning " $ANDROID_SDK_HOME/tools/android update sdk -u --filter extra-android-m2repository" add_warning "to allow the build to download the specified version of the android support libraries" fi fi if test "$_os" = "AIX"; then AC_PATH_PROG(GAWK, gawk) if test -z "$GAWK"; then AC_MSG_ERROR([gawk not found in \$PATH]) fi fi AC_SUBST(SDKDIRNAME) AC_SUBST(WITH_MINGW) AC_SUBST(PTHREAD_CFLAGS) AC_SUBST(PTHREAD_LIBS) ############################################################################### # Extensions switches --enable/--disable ############################################################################### # By default these should be enabled unless having extra dependencies. # If there is extra dependency over configure options then the enable should # be automagic based on whether the requiring feature is enabled or not. # All this options change anything only with --enable-extension-integration. # The name of this option and its help string makes it sound as if # extensions are built anyway, just not integrated in the installer, # if you use --disable-extension-integration. Is that really the # case? AC_ARG_ENABLE(extension-integration, AS_HELP_STRING([--disable-extension-integration], [Disable integration of the built extensions in the installer of the product. Use this switch to disable the integration.]) ) AC_ARG_ENABLE(export, AS_HELP_STRING([--disable-export], [Disable (some) code for document export. Useful when building viewer-only apps that lack save/export functionality, to avoid having an excessive amount of code and data used only for exporrt linked in. Work in progress, use only if you are hacking on it.]) ) AC_ARG_ENABLE(avmedia, AS_HELP_STRING([--disable-avmedia], [Disable displaying and inserting AV media in documents. Work in progress, use only if you are hacking on it.]) ) AC_ARG_ENABLE(database-connectivity, AS_HELP_STRING([--disable-database-connectivity], [Disable various database connectivity. Work in progress, use only if you are hacking on it.]) ) # This doesn't mean not building (or "integrating") extensions # (although it probably should; i.e. it should imply # --disable-extension-integration I guess), it means not supporting # any extension mechanism at all AC_ARG_ENABLE(extensions, AS_HELP_STRING([--disable-extensions], [Disable all add-on extension functionality. Work in progress, use only if you are hacking on it.]) ) AC_ARG_ENABLE(scripting, AS_HELP_STRING([--disable-scripting], [Disable BASIC, Java and Python. Work in progress, use only if you are hacking on it.]) ) # This is mainly for Android and iOS, but could potentially be used in some # special case otherwise, too, so factored out as a separate setting AC_ARG_ENABLE(dynamic-loading, AS_HELP_STRING([--disable-dynamic-loading], [Disable any use of dynamic loading of code. Work in progress, use only if you are hacking on it.]) ) AC_ARG_ENABLE(ext-mariadb-connector, AS_HELP_STRING([--enable-ext-mariadb-connector], [Enable the build of the MariaDB/MySQL Connector extension.]) ) AC_ARG_ENABLE(report-builder, AS_HELP_STRING([--disable-report-builder], [Disable the Report Builder.]) ) AC_ARG_ENABLE(ext-wiki-publisher, AS_HELP_STRING([--enable-ext-wiki-publisher], [Enable the Wiki Publisher extension.]) ) AC_ARG_ENABLE(lpsolve, AS_HELP_STRING([--disable-lpsolve], [Disable compilation of the lp solve solver ]) ) AC_ARG_ENABLE(coinmp, AS_HELP_STRING([--disable-coinmp], [Disable compilation of the CoinMP solver ]) ) AC_ARG_ENABLE(pdfimport, AS_HELP_STRING([--disable-pdfimport], [Disable building the PDF import feature.]) ) ############################################################################### dnl ---------- *** ---------- AC_ARG_ENABLE([hardlink-deliver], AS_HELP_STRING([--enable-hardlink-deliver], [Put files into deliver folder as hardlinks instead of copying them over. Saves space and speeds up build.]) ) AC_ARG_ENABLE(mergelibs, AS_HELP_STRING([--enable-mergelibs], [Enables linking of big, merged, library. Experimental feature, tested only for Linux at some stage in history, but possibly does not work even for Linux any more. This will link a core set of libraries into libmerged.]) ) AC_ARG_ENABLE(graphite, AS_HELP_STRING([--disable-graphite], [Disables the compilation of Graphite smart font rendering.]) ) AC_ARG_ENABLE(orcus, AS_HELP_STRING([--enable-orcus], [Enables orcus for extra file import filters for Calc.]) ) AC_ARG_ENABLE(fetch-external, AS_HELP_STRING([--disable-fetch-external], [Disables fetching external tarballs from web sources.]) ) AC_ARG_ENABLE(lockdown, AS_HELP_STRING([--disable-lockdown], [Disables the gconf integration work in LibreOffice.]), ) AC_ARG_ENABLE(pch, AS_HELP_STRING([--enable-pch], [Enables precompiled header support for C++. Forced default on Windows/VC build]) ) AC_ARG_ENABLE(win-mozab-driver, AS_HELP_STRING([--enable-win-mozab-driver], [LibreOffice includes a driver to connect to Mozilla address books under Windows, to build with this version, use this option.]) ) AC_ARG_ENABLE(epm, AS_HELP_STRING([--enable-epm], [LibreOffice includes self-packaging code, that requires epm, however epm is useless for large scale package building.]) ) AC_ARG_ENABLE(odk, AS_HELP_STRING([--disable-odk], [LibreOffice includes an ODK, office development kit which some packagers may wish to build without.]) ) AC_ARG_ENABLE(mpl-subset, AS_HELP_STRING([--enable-mpl-subset], [Don't compile any pieces which are not MPL or more liberally licensed]) ) AC_ARG_ENABLE(evolution2, AS_HELP_STRING([--enable-evolution2], [Allows the built-in evolution 2 addressbook connectivity build to be enabled.]) ) AC_ARG_ENABLE(directx, AS_HELP_STRING([--disable-directx], [Remove DirectX implementation for the new XCanvas interface. The DirectX support requires more stuff installed on Windows to compile. (DirectX SDK, GDI+ libs)]) ) AC_ARG_ENABLE(activex, AS_HELP_STRING([--disable-activex], [Disable the use of ActiveX for a Windows build. This switch is mandatory when using an Express edition of Visual Studio.]) ) AC_ARG_ENABLE(atl, AS_HELP_STRING([--disable-atl], [Disable the use of ATL for a Windows build.]) [ This switch is mandatory when using an Express edition of Visual Studio. ], ,) AC_ARG_ENABLE(avahi, AS_HELP_STRING([--enable-avahi], [Determines whether to use Avahi to advertise Impress to remote controls.]), ,) AC_ARG_ENABLE(werror, AS_HELP_STRING([--enable-werror], [Turn warnings to errors. (Has no effect in modules where the treating of warnings as errors is disabled explicitly.)]), ,) AC_ARG_ENABLE(assert-always-abort, AS_HELP_STRING([--enable-assert-always-abort], [make assert() abort even in release code.]), ,) AC_ARG_ENABLE(dbgutil, AS_HELP_STRING([--enable-dbgutil], [Provide debugging support from --enable-debug and include additional debugging utilities such as object counting or more expensive checks. This is the recommended option for developers. Note that this makes the build ABI incompatible, it is not possible to mix object files or libraries from a --enable-dbgutil and a --disable-dbgutil build.])) AC_ARG_ENABLE(debug, AS_HELP_STRING([--enable-debug], [Include debugging information, disable compiler optimization and inlining plus extra debugging code like assertions. Extra large build! (enables -g compiler flag).])) AC_ARG_ENABLE(sal-log, AS_HELP_STRING([--enable-sal-log], [Make SAL_INFO and SAL_WARN calls do something even in a non-debug build.])) AC_ARG_ENABLE(selective-debuginfo, AS_HELP_STRING([--enable-selective-debuginfo], [If --enable-debug or --enable-dbgutil is used, build debugging information (-g compiler flag) only for the specified gbuild build targets (where all means everything, - prepended means not to enable, / appended means everything in the directory; there is no ordering, more specific overrides more general, and disabling takes precedence). Example: --enable-selective-debuginfo="all -sw/ -Library_sc".])) AC_ARG_ENABLE(symbols, AS_HELP_STRING([--enable-symbols], [Include debugging symbols in output while preserve optimization. This enables -g compiler flag for GCC or equivalent, without changing anything else compared to productive code.])) AC_ARG_ENABLE(runtime-optimizations, AS_HELP_STRING([--disable-runtime-optimizations], [Statically disable certain runtime optimizations (like rtl/alloc.h or JVM JIT) that are known to interact badly with certain dynamic analysis tools (like -fsanitize=address or Valgrind). By default, disabled iff CC contains "-fsanitize=*". (For Valgrind, those runtime optimizations are typically disabled dynamically via RUNNING_ON_VALGRIND.)])) AC_ARG_ENABLE(compiler-plugins, AS_HELP_STRING([--enable-compiler-plugins], [Enable compiler plugins that will perform additional checks during building. Enabled automatically by --enable-dbgutil.])) AC_ARG_ENABLE(ooenv, AS_HELP_STRING([--disable-ooenv], [Disable ooenv for the instdir installation.])) AC_ARG_ENABLE(lto, AS_HELP_STRING([--enable-lto], [Enable link-time optimization. Suitable for (optimised) product builds. Building might take longer but libraries and executables are optimized for speed. For GCC, best to use the 'gold' linker. For MSVC, this option is broken at the moment. This is experimental work in progress that shouldn't be used unless you are working on it.)])) AC_ARG_ENABLE(crashdump, AS_HELP_STRING([--enable-crashdump], [Enable the crashdump feature.])) AC_ARG_ENABLE(python, AS_HELP_STRING([--enable-python=], [Enables or disables Python support at run-time and build-time. Also specifies what Python to use. 'auto' is the default. 'fully-internal' even forces the internal version for uses of Python during the build.])) AC_ARG_ENABLE(gtk, AS_HELP_STRING([--disable-gtk], [Determines whether to use Gtk+ vclplug on platforms where Gtk+ is available.]), ,enable_gtk=yes) AC_ARG_ENABLE(gtk3, AS_HELP_STRING([--enable-gtk3], [Determines whether to use Gtk+ 3.0 vclplug on platforms where Gtk+ 3.0 is available. This is experimental and may not work.]), ,enable_gtk3=yes) AC_ARG_ENABLE(systray, AS_HELP_STRING([--disable-systray], [Determines whether to build the systray quickstarter.]), ,enable_systray=yes) AC_ARG_ENABLE(split-app-modules, AS_HELP_STRING([--enable-split-app-modules], [Split file lists for app modules, e.g. base, calc. Has effect only with make distro-pack-install]), ,) AC_ARG_ENABLE(split-opt-features, AS_HELP_STRING([--enable-split-opt-features], [Split file lists for some optional features, .e.g. pyuno, testtool. Has effect only with make distro-pack-install]), ,) AC_ARG_ENABLE(cairo-canvas, [ --disable-cairo-canvas Determines whether to build the Cairo canvas on platforms where Cairo is available. ]) AC_ARG_ENABLE(dbus, AS_HELP_STRING([--disable-dbus], [Determines whether to enable features that depend on dbus. e.g. Presentation mode screensaver control, bluetooth presentation control]), ,enable_dbus=yes) AC_ARG_ENABLE(packagekit, AS_HELP_STRING([--enable-packagekit], [Determines whether to enable features using packagekit. Right now that is auto font install]), ,) AC_ARG_ENABLE(sdremote, AS_HELP_STRING([--disable-sdremote], [Determines whether to enable Impress remote control (i.e. the server component).]), ,enable_sdremote=yes) AC_ARG_ENABLE(sdremote-bluetooth, AS_HELP_STRING([--disable-sdremote-bluetooth], [Determines whether to build sdremote with bluetooth support. Requires dbus on Linux.])) AC_ARG_ENABLE(gconf, AS_HELP_STRING([--disable-gconf], [Determines whether to use the GConf support.]), ,enable_gconf=yes) AC_ARG_ENABLE(gio, AS_HELP_STRING([--disable-gio], [Determines whether to use the GIO support.]), ,enable_gio=yes) AC_ARG_ENABLE(telepathy, AS_HELP_STRING([--enable-telepathy], [Determines whether to enable Telepathy for collaboration.]), ,enable_telepathy=no) AC_ARG_ENABLE(tde, AS_HELP_STRING([--enable-tde], [Determines whether to use TQt/TDE vclplug on platforms where TQt and TDE are available.]), ,) AC_ARG_ENABLE(tdeab, AS_HELP_STRING([--disable-tdeab], [Disable the TDE address book support.]), , if test "$enable_tde" = "yes"; then enable_tdeab=yes fi ) AC_ARG_ENABLE(kde4, AS_HELP_STRING([--enable-kde4], [Determines whether to use Qt4/KDE4 vclplug on platforms where Qt4 and KDE4 are available.]), ,) AC_ARG_ENABLE(randr, AS_HELP_STRING([--disable-randr], [Disable RandR support in the vcl project.]), ,enable_randr=yes) AC_ARG_ENABLE(randr-link, AS_HELP_STRING([--disable-randr-link], [Disable linking with libXrandr, instead dynamically open it at runtime.]), ,enable_randr_link=yes) AC_ARG_ENABLE(gstreamer-1-0, AS_HELP_STRING([--disable-gstreamer-1-0], [Disable building with the new gstreamer 1.0 avmedia backend.]), ,enable_gstreamer_1_0=yes) AC_ARG_ENABLE(gstreamer-0-10, AS_HELP_STRING([--enable-gstreamer-0-10], [Enable building with the gstreamer 0.10 avmedia backend.]), ,enable_gstreamer_0_10=no) AC_ARG_ENABLE(vlc, AS_HELP_STRING([--enable-vlc], [Enable building with the (experimental) VLC avmedia backend.]), ,enable_vlc=no) AC_ARG_ENABLE(neon, AS_HELP_STRING([--disable-neon], [Disable neon and the compilation of webdav binding.]), ,) AC_ARG_ENABLE([eot], [AS_HELP_STRING([--enable-eot], [Enable support for Embedded OpenType fonts.])], , [enable_eot=no]) AC_ARG_ENABLE(cve-tests, AS_HELP_STRING([--disable-cve-tests], [Prevent CVE tests to be executed]), ,) AC_ARG_ENABLE(chart-tests, AS_HELP_STRING([--enable-chart-tests], [Executes chart XShape tests. In a perfect world these tests would be stable and everyone could run them, in reality it is best to run them only on a few machines that are known to work and maintained by people who can judge if a test failure is a regression or not.]), ,) AC_ARG_ENABLE(build-unowinreg, AS_HELP_STRING([--enable-build-unowinreg], [Do not use the prebuilt unowinreg.dll. Build it instead. The MinGW C++ compiler is needed on Linux.]) [ Usage: --enable-build-unowinreg ], ,) AC_ARG_ENABLE(dependency-tracking, AS_HELP_STRING([--enable-dependency-tracking], [Do not reject slow dependency extractors.])[ --disable-dependency-tracking Disables generation of dependency information. Speed up one-time builds.], ,) AC_ARG_ENABLE(icecream, AS_HELP_STRING([--enable-icecream], [Use the 'icecream' distributed compiling tool to speedup the compilation. It defaults to /opt/icecream for the location of the icecream gcc/g++ wrappers, you can override that using --with-gcc-home=/the/path switch.]), ,) AC_ARG_ENABLE(cups, AS_HELP_STRING([--disable-cups], [Do not build cups support.]) ) AC_ARG_ENABLE(ccache, AS_HELP_STRING([--disable-ccache], [Do not try to use ccache automatically. By default, unless on Windows, we will try to detect if ccache is available; in that case if CC/CXX are not yet set, and --enable-icecream is not given, we attempt to use ccache. --disable-ccache disables ccache completely. ]), ,) AC_ARG_ENABLE(64-bit, AS_HELP_STRING([--enable-64-bit], [Build a 64-bit LibreOffice on platforms where the normal build is 32-bit. At the moment meaningful only for iOS and Windows. On Windows this option is experimental and possibly quite broken, and you should use it only if you are hacking on 64-bitness support.]), ,) AC_ARG_ENABLE(extra-gallery, AS_HELP_STRING([--enable-extra-gallery], [Add extra gallery content.]), ,) AC_ARG_ENABLE(extra-template, AS_HELP_STRING([--enable-extra-template], [Add extra template content.]), ,) AC_ARG_ENABLE(extra-sample, AS_HELP_STRING([--enable-extra-sample], [Add extra sample content.]), ,) AC_ARG_ENABLE(extra-font, AS_HELP_STRING([--enable-extra-font], [Add extra font content.]), ,) AC_ARG_ENABLE(online-update, AS_HELP_STRING([--enable-online-update], [Enable the online update service that will check for new versions of LibreOffice. By default, it is enabled on Windows and Mac, disabled on Linux. If the value is "mar", the experimental Mozilla-like update will be enabled instead of the traditional update mechanism.]), ,) AC_ARG_ENABLE(extension-update, AS_HELP_STRING([--disable-extension-update], [Disable possibility to update installed extensions.]), ,) AC_ARG_ENABLE(release-build, AS_HELP_STRING([--enable-release-build], [Enable release build. See http://wiki.documentfoundation.org/DevBuild]), ,) AC_ARG_ENABLE(windows-build-signing, AS_HELP_STRING([--enable-windows-build-signing], [Enable signing of windows binaries (*.exe, *.dll)]), ,) AC_ARG_ENABLE(silent-msi, AS_HELP_STRING([--enable-silent-msi], [Enable MSI with LIMITUI=1 (silent install).]), ,) AC_ARG_ENABLE(macosx-code-signing, AS_HELP_STRING([--enable-macosx-code-signing=], [Sign executables, dylibs, frameworks and the app bundle. If you don't provide an identity the first suitable certificate in your keychain is used.]), ,) AC_ARG_ENABLE(macosx-package-signing, AS_HELP_STRING([--enable-macosx-package-signing=], [Create a .pkg suitable for uploading to the Mac App Store and sign it. If you don't provide an identity the first suitable certificate in your keychain is used.]), ,) AC_ARG_ENABLE(macosx-sandbox, AS_HELP_STRING([--enable-macosx-sandbox], [Make the app bundle run in a sandbox. Requires code signing. Is required by apps distributed in the Mac App Store, and implies adherence to App Store rules.]), ,) AC_ARG_WITH(macosx-bundle-identifier, AS_HELP_STRING([--with-macosx-bundle-identifier=tld.mumble.orifice.TheOffice], [Define the OS X bundle identifier. Default is the somewhat weird org.libreoffice.script ("script", huh?).]), ,with_macosx_bundle_identifier=org.libreoffice.script) AC_ARG_WITH(macosx-app-name, AS_HELP_STRING([--with-macosx-app-name='My Own Office Suite'], [Define the OS X app name. Default is AC_PACKAGE_NAME.]), ,with_macosx_app_name=$PRODUCTNAME) AC_ARG_ENABLE(ios-simulator, AS_HELP_STRING([--enable-ios-simulator], [Build for the iOS Simulator, not iOS device.]), ,) AC_ARG_ENABLE(readonly-installset, AS_HELP_STRING([--enable-readonly-installset], [Prevents any attempts by LibreOffice to write into its installation. That means at least that no "system-wide" extensions can be added. Experimental work in progress.]), ,) AC_ARG_ENABLE(postgresql-sdbc, AS_HELP_STRING([--disable-postgresql-sdbc], [Disable the build of the PostgreSQL-SDBC driver.]) ) AC_ARG_ENABLE(lotuswordpro, AS_HELP_STRING([--disable-lotuswordpro], [Disable the build of the Lotus Word Pro filter.]), ,enable_lotuswordpro=yes) AC_ARG_ENABLE(firebird-sdbc, AS_HELP_STRING([--disable-firebird-sdbc], [Disable the build of the Firebird-SDBC driver if it doesn't compile for you.]), ) AC_ARG_ENABLE(winegcc, AS_HELP_STRING([--enable-winegcc], [Enable use of winegcc during the build, in order to create msi* tools needed for MinGW cross-compilation.]), ) AC_ARG_ENABLE(liblangtag, AS_HELP_STRING([--disable-liblangtag], [Disable use of liblangtag, and instead use an own simple implementation.]), ) AC_ARG_ENABLE(bogus-pkg-config, AS_HELP_STRING([--enable-bogus-pkg-config], [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.]), ) AC_ARG_ENABLE(openssl, AS_HELP_STRING([--disable-openssl], [Disable using libssl/libcrypto from OpenSSL. If disabled, components will either use GNUTLS or NSS. Work in progress, use only if you are hacking on it.]), ,enable_openssl=yes) AC_ARG_ENABLE(library-bin-tar, AS_HELP_STRING([--enable-library-bin-tar], [Enable the building and reused of tarball of binary build for some 'external' libraries. Some libraries can save their build result in a tarball stored in TARFILE_LOCATION. That binary tarball is uniquely identified by the source tarball, the content of the config_host.mk file and the content of the top-level directory in core for that library If this option is enabled, then if such a tarfile exist, it will be untarred instead of the source tarfile, and the build step will be skipped for that library. If a proper tarfile does not exist, then the normal source-based build is done for that library and a proper binary tarfile is created for the next time.]), ) AC_ARG_ENABLE(gltf, AS_HELP_STRING([--disable-gltf], [Determines whether to build libraries related to glTF 3D model rendering.])) AC_ARG_ENABLE(collada, AS_HELP_STRING([--disable-collada], [Disable collada support (Rendering 3D models stored in *.dae and *.kmz format).])) AC_ARG_ENABLE(dconf, AS_HELP_STRING([--disable-dconf], [Disable the dconf configuration backend (enabled by default where available).])) dnl =================================================================== dnl Optional Packages (--with/without-) dnl =================================================================== AC_ARG_WITH(gnu-patch, AS_HELP_STRING([--with-gnu-patch], [Specify location of GNU patch on Solaris or FreeBSD.]), ,) AC_ARG_WITH(build-platform-configure-options, AS_HELP_STRING([--with-build-platform-configure-options], [Specify options for the configure script run for the *build* platform in a cross-compilation]), ,) AC_ARG_WITH(gnu-cp, AS_HELP_STRING([--with-gnu-cp], [Specify location of GNU cp on Solaris or FreeBSD.]), ,) AC_ARG_WITH(external-tar, AS_HELP_STRING([--with-external-tar=], [Specify an absolute path of where to find (and store) tarfiles.]), TARFILE_LOCATION=$withval , ) AC_ARG_WITH(referenced-git, AS_HELP_STRING([--with-referenced-git=], [Specify another checkout directory to reference. This makes use of git submodule update --reference, and saves a lot of diskspace when having multiple trees side-by-side.]), GIT_REFERENCE_SRC=$withval , ) AC_ARG_WITH(linked-git, AS_HELP_STRING([--with-linked-git=], [Specify a directory where the repositories of submodules are located. This uses a method similar to git-new-workdir to get submodules.]), GIT_LINK_SRC=$withval , ) AC_ARG_WITH(galleries, AS_HELP_STRING([--with-galleries], [Specify how galleries should be built. It is possible either to build these internally from source ("build"), or to disable them ("no")]), ) AC_ARG_WITH(theme, AS_HELP_STRING([--with-theme="theme1 theme2..."], [Choose which themes to include. By default those themes with an '*' are included. Possible choices: *breeze, crystal, *galaxy, *hicontrast, human, industrial, *oxygen, *sifr, *tango, *tango_testing.]), ,) AC_ARG_WITH(helppack-integration, [ --without-helppack-integration It will not integrate the helppacks to the installer of the product. Please use this switch to use the online help or separate help packages.], ,) AC_ARG_WITH(fonts, AS_HELP_STRING([--without-fonts], [LibreOffice includes some third-party fonts to provide a reliable basis for help content, templates, samples, etc. When these fonts are already known to be available on the system then you should use this option.]), ,) AC_ARG_WITH(epm, AS_HELP_STRING([--with-epm], [Decides which epm to use. Default is to use the one from the system if one is built. When either this is not there or you say =internal epm will be built.]), ,) AC_ARG_WITH(package-format, AS_HELP_STRING([--with-package-format], [Specify package format(s) for LibreOffice installation sets. The implicit --without-package-format leads to no installation sets being generated. Possible values: aix, archive, bsd, deb, dmg, installed, msi, pkg, and rpm. Example: --with-package-format='deb rpm']), ,) AC_ARG_WITH(tls, AS_HELP_STRING([--with-tls], [Decides which TLS/SSL and cryptographic implementations to use for LibreOffice's code. Notice that this doesn't apply for depending libraries like "neon", for example. Default is to use OpenSSL although NSS is also possible. Notice that selecting NSS restricts the usage of OpenSSL in LO's code but selecting OpenSSL doesn't restrict by now the usage of NSS in LO's code. Possible values: openssl, nss. Example: --with-tls="nss"]), ,) AC_ARG_WITH(system-libs, AS_HELP_STRING([--with-system-libs], [Use libraries already on system -- enables all --with-system-* flags.]), ,) AC_ARG_WITH(system-bzip2, AS_HELP_STRING([--with-system-bzip2], [Use bzip2 already on system. Used only when --enable-online-update=mar]),, [with_system_bzip2="$with_system_libs"]) AC_ARG_WITH(system-headers, AS_HELP_STRING([--with-system-headers], [Use headers already on system -- enables all --with-system-* flags for external packages whose headers are the only entities used i.e. boost/vigra/odbc/sane-header(s).]),, [with_system_headers="$with_system_libs"]) AC_ARG_WITH(system-jars, AS_HELP_STRING([--without-system-jars], [When building with --with-system-libs, also the needed jars are expected on the system. Use this to disable that]),, [with_system_jars="$with_system_libs"]) AC_ARG_WITH(system-cairo, AS_HELP_STRING([--with-system-cairo], [Use cairo libraries already on system. Happens automatically for (implicit) --enable-gtk and for --enable-gtk3.])) AC_ARG_WITH(myspell-dicts, AS_HELP_STRING([--with-myspell-dicts], [Adds myspell dictionaries to the LibreOffice installation set]), ,) AC_ARG_WITH(system-dicts, AS_HELP_STRING([--without-system-dicts], [Do not use dictionaries from system paths.]), ,) AC_ARG_WITH(external-dict-dir, AS_HELP_STRING([--with-external-dict-dir], [Specify external dictionary dir.]), ,) AC_ARG_WITH(external-hyph-dir, AS_HELP_STRING([--with-external-hyph-dir], [Specify external hyphenation pattern dir.]), ,) AC_ARG_WITH(external-thes-dir, AS_HELP_STRING([--with-external-thes-dir], [Specify external thesaurus dir.]), ,) AC_ARG_WITH(system-zlib, AS_HELP_STRING([--with-system-zlib], [Use zlib already on system.]),, [with_system_zlib=auto]) AC_ARG_WITH(system-jpeg, AS_HELP_STRING([--with-system-jpeg], [Use jpeg already on system.]),, [with_system_jpeg="$with_system_libs"]) AC_ARG_WITH(system-libgltf, AS_HELP_STRING([--with-system-libgltf], [Use libgltf already on system.]),, [with_system_libgltf="$with_system_libs"]) AC_ARG_WITH(system-clucene, AS_HELP_STRING([--with-system-clucene], [Use clucene already on system.]),, [with_system_clucene="$with_system_libs"]) AC_ARG_WITH(system-expat, AS_HELP_STRING([--with-system-expat], [Use expat already on system.]),, [with_system_expat="$with_system_libs"]) AC_ARG_WITH(system-libxml, AS_HELP_STRING([--with-system-libxml], [Use libxml/libxslt already on system.]),, [with_system_libxml=auto]) AC_ARG_WITH(system-icu, AS_HELP_STRING([--with-system-icu], [Use icu already on system.]),, [with_system_icu="$with_system_libs"]) AC_ARG_WITH(system-ucpp, AS_HELP_STRING([--with-system-ucpp], [Use ucpp already on system.]),, []) AC_ARG_WITH(system-opencollada, AS_HELP_STRING([--with-system-opencollada], [Use openCOLLADA already on system.]),, [with_system_opencollada=no]) AC_ARG_WITH(system-collada2gltf, AS_HELP_STRING([--with-system-collada2gltf], [Use collada2gltf already on system.]),, [with_system_collada2gltf=no]) AC_ARG_WITH(system-openldap, AS_HELP_STRING([--with-system-openldap], [Use the OpenLDAP LDAP SDK already on system.]),, [with_system_openldap="$with_system_libs"]) AC_ARG_WITH(system-poppler, AS_HELP_STRING([--with-system-poppler], [Use system poppler (only needed for PDF import).]),, [with_system_poppler="$with_system_libs"]) AC_ARG_WITH(system-apache-commons, AS_HELP_STRING([--with-system-apache-commons], [Use Apache commons libraries already on system.]),, [with_system_apache_commons="$with_system_jars"]) AC_ARG_WITH(system-mariadb, AS_HELP_STRING([--with-system-mariadb], [Use MariaDB/MySQL libraries already on system, for building the MariaDB Connector/LibreOffice extension.]),, [with_system_mariadb="$with_system_libs"]) AC_ARG_ENABLE(bundle-mariadb, AS_HELP_STRING([--enable-bundle-mariadb], [When using MariaDB/MySQL libraries already on system, bundle them with the MariaDB Connector/LibreOffice extension.]) ) AC_ARG_WITH(system-mysql-cppconn, AS_HELP_STRING([--with-system-mysql-cppconn], [Use MySQL C++ Connector libraries already on system.]),, [with_system_mysql_cppconn="$with_system_libs"]) AC_ARG_WITH(system-postgresql, AS_HELP_STRING([--with-system-postgresql], [Use PostgreSQL libraries already on system, for building the PostgreSQL-SDBC driver. If pg_config is not in PATH, use PGCONFIG to point to it.]),, [with_system_postgresql="$with_system_libs"]) AC_ARG_WITH(libpq-path, AS_HELP_STRING([--with-libpq-path], [Use this PostgreSQL C interface (libpq) installation for building the PostgreSQL-SDBC extension.]) [ Usage: --with-libpq-path= ], ,) AC_ARG_WITH(system-firebird, AS_HELP_STRING([--with-system-firebird], [Use Firebird libraries already on system, for building the Firebird-SDBC driver. If fb_config is not in PATH, use FBCONFIG to point to it.]),, [with_system_firebird="$with_system_libs"]) AC_ARG_WITH(system-hsqldb, AS_HELP_STRING([--with-system-hsqldb], [Use hsqldb already on system.])) AC_ARG_WITH(hsqldb-jar, AS_HELP_STRING([--with-hsqldb-jar=JARFILE], [Specify path to jarfile manually.]), HSQLDB_JAR=$withval) AC_ARG_ENABLE(scripting-beanshell, AS_HELP_STRING([--disable-scripting-beanshell], [Disable support for scripts in BeanShell.]), , ) AC_ARG_WITH(system-beanshell, AS_HELP_STRING([--with-system-beanshell], [Use beanshell already on system.]),, [with_system_beanshell="$with_system_jars"]) AC_ARG_WITH(beanshell-jar, AS_HELP_STRING([--with-beanshell-jar=JARFILE], [Specify path to jarfile manually.]), BSH_JAR=$withval) AC_ARG_ENABLE(scripting-javascript, AS_HELP_STRING([--disable-scripting-javascript], [Disable support for scripts in JavaScript.]), , ) AC_ARG_WITH(system-rhino, AS_HELP_STRING([--with-system-rhino], [Use rhino already on system.]),,) # [with_system_rhino="$with_system_jars"]) # Above is not used as we have different debug interface # patched into internal rhino. This code needs to be fixed # before we can enable it by default. AC_ARG_WITH(rhino-jar, AS_HELP_STRING([--with-rhino-jar=JARFILE], [Specify path to jarfile manually.]), RHINO_JAR=$withval) AC_ARG_WITH(commons-codec-jar, AS_HELP_STRING([--with-commons-codec-jar=JARFILE], [Specify path to jarfile manually.]), COMMONS_CODEC_JAR=$withval) AC_ARG_WITH(commons-lang-jar, AS_HELP_STRING([--with-commons-lang-jar=JARFILE], [Specify path to jarfile manually.]), COMMONS_LANG_JAR=$withval) AC_ARG_WITH(commons-httpclient-jar, AS_HELP_STRING([--with-commons-httpclient-jar=JARFILE], [Specify path to jarfile manually.]), COMMONS_HTTPCLIENT_JAR=$withval) AC_ARG_WITH(commons-logging-jar, AS_HELP_STRING([--with-commons-logging-jar=JARFILE], [Specify path to jarfile manually.]), COMMONS_LOGGING_JAR=$withval) AC_ARG_WITH(system-jfreereport, AS_HELP_STRING([--with-system-jfreereport], [Use JFreeReport already on system.]),, [with_system_jfreereport="$with_system_jars"]) AC_ARG_WITH(sac-jar, AS_HELP_STRING([--with-sac-jar=JARFILE], [Specify path to jarfile manually.]), SAC_JAR=$withval) AC_ARG_WITH(libxml-jar, AS_HELP_STRING([--with-libxml-jar=JARFILE], [Specify path to jarfile manually.]), LIBXML_JAR=$withval) AC_ARG_WITH(flute-jar, AS_HELP_STRING([--with-flute-jar=JARFILE], [Specify path to jarfile manually.]), FLUTE_JAR=$withval) AC_ARG_WITH(jfreereport-jar, AS_HELP_STRING([--with-jfreereport-jar=JARFILE], [Specify path to jarfile manually.]), JFREEREPORT_JAR=$withval) AC_ARG_WITH(liblayout-jar, AS_HELP_STRING([--with-liblayout-jar=JARFILE], [Specify path to jarfile manually.]), LIBLAYOUT_JAR=$withval) AC_ARG_WITH(libloader-jar, AS_HELP_STRING([--with-libloader-jar=JARFILE], [Specify path to jarfile manually.]), LIBLOADER_JAR=$withval) AC_ARG_WITH(libloader-jar, AS_HELP_STRING([--with-libloader-jar=JARFILE], [Specify path to jarfile manually.]), LIBLOADER_JAR=$withval) AC_ARG_WITH(libformula-jar, AS_HELP_STRING([--with-libformula-jar=JARFILE], [Specify path to jarfile manually.]), LIBFORMULA_JAR=$withval) AC_ARG_WITH(librepository-jar, AS_HELP_STRING([--with-librepository-jar=JARFILE], [Specify path to jarfile manually.]), LIBREPOSITORY_JAR=$withval) AC_ARG_WITH(libfonts-jar, AS_HELP_STRING([--with-libfonts-jar=JARFILE], [Specify path to jarfile manually.]), LIBFONTS_JAR=$withval) AC_ARG_WITH(libserializer-jar, AS_HELP_STRING([--with-libserializer-jar=JARFILE], [Specify path to jarfile manually.]), LIBSERIALIZER_JAR=$withval) AC_ARG_WITH(libbase-jar, AS_HELP_STRING([--with-libbase-jar=JARFILE], [Specify path to jarfile manually.]), LIBBASE_JAR=$withval) AC_ARG_WITH(system-odbc, AS_HELP_STRING([--with-system-odbc], [Use the odbc headers already on system.]),, [with_system_odbc="auto"]) AC_ARG_WITH(system-sane, AS_HELP_STRING([--with-system-sane], [Use sane.h already on system.]),, [with_system_sane="$with_system_headers"]) AC_ARG_WITH(system-bluez, AS_HELP_STRING([--with-system-bluez], [Use bluetooth.h already on system.]),, [with_system_bluez="$with_system_headers"]) AC_ARG_WITH(system-mesa-headers, AS_HELP_STRING([--with-system-mesa-headers], [Use Mesa headers already on system.]),, [with_system_mesa_headers="$with_system_headers"]) AC_ARG_WITH(system-curl, AS_HELP_STRING([--with-system-curl], [Use curl already on system.]),, [with_system_curl=auto]) AC_ARG_WITH(system-boost, AS_HELP_STRING([--with-system-boost], [Use boost already on system.]),, [with_system_boost="$with_system_headers"]) AC_ARG_WITH(system-glm, AS_HELP_STRING([--with-system-glm], [Use glm already on system.]),, [with_system_glm="$with_system_headers"]) AC_ARG_WITH(system-vigra, AS_HELP_STRING([--with-system-vigra], [Use vigra already on system.]),, [with_system_vigra="$with_system_headers"]) AC_ARG_WITH(system-hunspell, AS_HELP_STRING([--with-system-hunspell], [Use libhunspell already on system.]),, [with_system_hunspell="$with_system_libs"]) AC_ARG_WITH(system-mythes, AS_HELP_STRING([--with-system-mythes], [Use mythes already on system.]),, [with_system_mythes="$with_system_libs"]) AC_ARG_WITH(system-altlinuxhyph, AS_HELP_STRING([--with-system-altlinuxhyph], [Use ALTLinuxhyph already on system.]),, [with_system_altlinuxhyph="$with_system_libs"]) AC_ARG_WITH(system-lpsolve, AS_HELP_STRING([--with-system-lpsolve], [Use lpsolve already on system.]),, [with_system_lpsolve="$with_system_libs"]) AC_ARG_WITH(system-coinmp, AS_HELP_STRING([--with-system-coinmp], [Use CoinMP already on system.]),, [with_system_coinmp="$with_system_libs"]) AC_ARG_WITH(system-liblangtag, AS_HELP_STRING([--with-system-liblangtag], [Use liblangtag library already on system.]),, [with_system_liblangtag="$with_system_libs"]) AC_ARG_WITH(system-npapi-headers, AS_HELP_STRING([--with-system-npapi-headers], [Use NPAPI headers provided by system instead of bundled ones. Used in extensions/source/plugin (ENABLE_NPAPI_FROM_BROWSER=TRUE)]),, [with_system_npapi_headers="$with_system_headers"] ) AC_ARG_WITH(jpeg-turbo, AS_HELP_STRING([--with-jpeg-turbo], [Use internal libjpeg-turbo library.]),, [with_jpeg_turbo=auto]) AC_ARG_WITH(webdav, AS_HELP_STRING([--with-webdav], [Specify which library to use for webdav implementation. Possible values: "neon", "serf", "no". The default value is "neon". Example: --with-webdav="serf"]), WITH_WEBDAV=$withval, WITH_WEBDAV="neon") AC_ARG_WITH(linker-hash-style, AS_HELP_STRING([--with-linker-hash-style], [Use linker with --hash-style=