summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.in19068
1 files changed, 9534 insertions, 9534 deletions
diff --git a/configure.in b/configure.in
index ee33ba172..23f94bf65 100644
--- a/configure.in
+++ b/configure.in
@@ -1,9534 +1,9534 @@
-
-dnl -*- Mode: Autoconf; tab-width: 4; indent-tabs-mode: nil; -*-
-dnl vi: set tabstop=4 shiftwidth=4 expandtab syntax=m4:
-dnl This Source Code Form is subject to the terms of the Mozilla Public
-dnl License, v. 2.0. If a copy of the MPL was not distributed with this
-dnl file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-dnl Process this file with autoconf to produce a configure script.
-dnl ========================================================
-
-AC_PREREQ(2.13)
-AC_INIT(config/config.mk)
-AC_CONFIG_AUX_DIR(${srcdir}/build/autoconf)
-AC_CANONICAL_SYSTEM
-TARGET_CPU="${target_cpu}"
-TARGET_VENDOR="${target_vendor}"
-TARGET_OS="${target_os}"
-
-dnl ========================================================
-dnl =
-dnl = Don't change the following two lines. Doing so breaks:
-dnl =
-dnl = CFLAGS="-foo" ./configure
-dnl =
-dnl ========================================================
-CFLAGS="${CFLAGS=}"
-CPPFLAGS="${CPPFLAGS=}"
-CXXFLAGS="${CXXFLAGS=}"
-LDFLAGS="${LDFLAGS=}"
-HOST_CFLAGS="${HOST_CFLAGS=}"
-HOST_CXXFLAGS="${HOST_CXXFLAGS=}"
-HOST_LDFLAGS="${HOST_LDFLAGS=}"
-
-dnl ========================================================
-dnl = Preserve certain environment flags passed to configure
-dnl = We want sub projects to receive the same flags
-dnl = untainted by this configure script
-dnl ========================================================
-_SUBDIR_CC="$CC"
-_SUBDIR_CXX="$CXX"
-_SUBDIR_CFLAGS="$CFLAGS"
-_SUBDIR_CPPFLAGS="$CPPFLAGS"
-_SUBDIR_CXXFLAGS="$CXXFLAGS"
-_SUBDIR_LDFLAGS="$LDFLAGS"
-_SUBDIR_HOST_CC="$HOST_CC"
-_SUBDIR_HOST_CFLAGS="$HOST_CFLAGS"
-_SUBDIR_HOST_CXXFLAGS="$HOST_CXXFLAGS"
-_SUBDIR_HOST_LDFLAGS="$HOST_LDFLAGS"
-_SUBDIR_CONFIG_ARGS="$ac_configure_args"
-
-dnl Set the version number of the libs included with mozilla
-dnl ========================================================
-MOZJPEG=62
-MOZPNG=10513
-NSPR_VERSION=4
-NSS_VERSION=3
-
-dnl Set the minimum version of toolkit libs used by mozilla
-dnl ========================================================
-GLIB_VERSION=1.2.0
-PERL_VERSION=5.006
-CAIRO_VERSION=1.10
-PANGO_VERSION=1.14.0
-GTK2_VERSION=2.10.0
-GTK3_VERSION=3.0.0
-WINDRES_VERSION=2.14.90
-W32API_VERSION=3.14
-GNOMEVFS_VERSION=2.0
-GNOMEUI_VERSION=2.2.0
-GCONF_VERSION=1.2.1
-GIO_VERSION=2.20
-STARTUP_NOTIFICATION_VERSION=0.8
-DBUS_VERSION=0.60
-SQLITE_VERSION=3.7.17
-
-MSMANIFEST_TOOL=
-
-dnl Set various checks
-dnl ========================================================
-MISSING_X=
-AC_PROG_AWK
-
-dnl Initialize the Pthread test variables early so they can be
-dnl overridden by each platform.
-dnl ========================================================
-MOZ_USE_PTHREADS=
-_PTHREAD_LDFLAGS=""
-
-dnl Do not allow a separate objdir build if a srcdir build exists.
-dnl ==============================================================
-_topsrcdir=`cd \`dirname $0\`; pwd`
-_objdir=`pwd`
-
-if test "$_topsrcdir" != "$_objdir"
-then
- # Check for a couple representative files in the source tree
- _conflict_files=
- for file in $_topsrcdir/Makefile $_topsrcdir/config/autoconf.mk; do
- if test -f $file; then
- _conflict_files="$_conflict_files $file"
- fi
- done
- if test "$_conflict_files"; then
- echo "***"
- echo "* Your source tree contains these files:"
- for file in $_conflict_files; do
- echo "* $file"
- done
- cat 1>&2 <<-EOF
- * This indicates that you previously built in the source tree.
- * A source tree build can confuse the separate objdir build.
- *
- * To clean up the source tree:
- * 1. cd $_topsrcdir
- * 2. gmake distclean
- ***
- EOF
- exit 1
- break
- fi
-fi
-MOZ_BUILD_ROOT=`pwd`
-
-MOZ_PYTHON
-
-MOZ_DEFAULT_COMPILER
-
-COMPILE_ENVIRONMENT=1
-MOZ_ARG_DISABLE_BOOL(compile-environment,
-[ --disable-compile-environment
- Disable compiler/library checks.],
- COMPILE_ENVIRONMENT= )
-AC_SUBST(COMPILE_ENVIRONMENT)
-
-MOZ_ARG_WITH_STRING(l10n-base,
-[ --with-l10n-base=DIR path to l10n repositories],
- L10NBASEDIR=$withval)
-if test -n "$L10NBASEDIR"; then
- if test "$L10NBASEDIR" = "yes" -o "$L10NBASEDIR" = "no"; then
- AC_MSG_ERROR([--with-l10n-base must specify a path])
- elif test -d "$L10NBASEDIR"; then
- L10NBASEDIR=`cd "$L10NBASEDIR" && pwd`
- else
- AC_MSG_ERROR([Invalid value --with-l10n-base, $L10NBASEDIR doesn't exist])
- fi
-fi
-AC_SUBST(L10NBASEDIR)
-
-dnl Check for Perl first -- needed for win32 SDK checks
-MOZ_PATH_PROGS(PERL, $PERL perl5 perl )
-if test -z "$PERL" -o "$PERL" = ":"; then
- AC_MSG_ERROR([perl not found in \$PATH])
-fi
-
-AC_SUBST(GAIADIR)
-if test -n "$GAIADIR" ; then
- AC_DEFINE(PACKAGE_GAIA)
-fi
-
-MOZ_ARG_WITH_STRING(gonk,
-[ --with-gonk=DIR
- location of gonk dir],
- gonkdir=$withval)
-
-MOZ_ARG_WITH_STRING(gonk-toolchain-prefix,
-[ --with-gonk-toolchain-prefix=DIR
- prefix to gonk toolchain commands],
- gonk_toolchain_prefix=$withval)
-
-if test -n "$gonkdir" ; then
- kernel_name=`uname -s | tr "[[:upper:]]" "[[:lower:]]"`
- android_source="$gonkdir"
- ANDROID_SOURCE="$android_source"
- ANDROID_NDK="${ANDROID_SOURCE}/ndk"
- dnl Default to ICS
- ANDROID_VERSION=15
- if test -n "${PLATFORM_SDK_VERSION}"; then
- ANDROID_VERSION="${PLATFORM_SDK_VERSION}"
- fi
-
- dnl set up compilers
- TOOLCHAIN_PREFIX="$gonk_toolchain_prefix"
- AS="$gonk_toolchain_prefix"as
- CC="$gonk_toolchain_prefix"gcc
- CXX="$gonk_toolchain_prefix"g++
- CPP="$gonk_toolchain_prefix"cpp
- LD="$gonk_toolchain_prefix"ld
- AR="$gonk_toolchain_prefix"ar
- RANLIB="$gonk_toolchain_prefix"ranlib
- STRIP="$gonk_toolchain_prefix"strip
- OBJCOPY="$gonk_toolchain_prefix"objcopy
-
- STLPORT_CPPFLAGS="-I$gonkdir/ndk/sources/cxx-stl/stlport/stlport/ -I$gonkdir/external/stlport/stlport/"
- STLPORT_LIBS="-lstlport"
-
- case "$target_cpu" in
- arm)
- ARCH_DIR=arch-arm
- ;;
- i?86)
- ARCH_DIR=arch-x86
- ;;
- esac
-
- case "$ANDROID_VERSION" in
- 15)
- GONK_INCLUDES="-I$gonkdir/frameworks/base/opengl/include -I$gonkdir/frameworks/base/native/include -I$gonkdir/frameworks/base/include -I$gonkdir/frameworks/base/services/camera -I$gonkdir/frameworks/base/include/media/stagefright -I$gonkdir/frameworks/base/include/media/stagefright/openmax -I$gonkdir/frameworks/base/media/libstagefright/rtsp -I$gonkdir/frameworks/base/media/libstagefright/include -I$gonkdir/external/dbus -I$gonkdir/external/bluetooth/bluez/lib -I$gonkdir/dalvik/libnativehelper/include/nativehelper"
- MOZ_B2G_BT=1
- MOZ_B2G_CAMERA=1
- MOZ_OMX_DECODER=1
- AC_DEFINE(MOZ_OMX_DECODER)
- AC_SUBST(MOZ_OMX_DECODER)
- ;;
- 17)
- GONK_INCLUDES="-I$gonkdir/frameworks/native/include"
- ;;
- *)
- AC_MSG_ERROR([Unsupported platform version: $ANDROID_VERSION])
- ;;
- esac
- CPPFLAGS="-DANDROID -isystem $gonkdir/bionic/libc/$ARCH_DIR/include -isystem $gonkdir/bionic/libc/include/ -isystem $gonkdir/bionic/libc/kernel/common -isystem $gonkdir/bionic/libc/kernel/$ARCH_DIR -isystem $gonkdir/bionic/libm/include -I$gonkdir/system -I$gonkdir/system/core/include -isystem $gonkdir/bionic -I$gonkdir/hardware/libhardware/include -I$gonkdir/external/valgrind/fxos-include $GONK_INCLUDES $CPPFLAGS"
- CFLAGS="-mandroid -fno-short-enums -fno-exceptions $CFLAGS"
- CXXFLAGS="-mandroid -fno-short-enums -fno-exceptions -Wno-psabi $CXXFLAGS $STLPORT_CPPFLAGS"
- dnl Add -llog by default, since we use it all over the place.
- LIBS="$LIBS -llog $STLPORT_LIBS"
-
- LDFLAGS="-mandroid -L$gonkdir/out/target/product/$GONK_PRODUCT/obj/lib -Wl,-rpath-link=$gonkdir/out/target/product/$GONK_PRODUCT/obj/lib --sysroot=$gonkdir/out/target/product/$GONK_PRODUCT/obj/ $LDFLAGS"
-
- dnl prevent cross compile section from using these flags as host flags
- if test -z "$HOST_CPPFLAGS" ; then
- HOST_CPPFLAGS=" "
- fi
- if test -z "$HOST_CFLAGS" ; then
- HOST_CFLAGS=" "
- fi
- if test -z "$HOST_CXXFLAGS" ; then
- HOST_CXXFLAGS=" "
- fi
- if test -z "$HOST_LDFLAGS" ; then
- HOST_LDFLAGS=" "
- fi
-
- AC_DEFINE(ANDROID)
- AC_DEFINE_UNQUOTED(ANDROID_VERSION, $ANDROID_VERSION)
- AC_SUBST(ANDROID_VERSION)
- AC_DEFINE(HAVE_SYS_UIO_H)
- AC_DEFINE(HAVE_PTHREADS)
- CROSS_COMPILE=1
- MOZ_CHROME_FILE_FORMAT=omni
- direct_nspr_config=1
-else
- MOZ_ANDROID_NDK
-
- case "$target" in
- *-android*|*-linuxandroid*)
- if test -z "$ANDROID_PACKAGE_NAME" ; then
- ANDROID_PACKAGE_NAME='org.mozilla.$(MOZ_APP_NAME)'
- fi
- MOZ_CHROME_FILE_FORMAT=omni
- ZLIB_DIR=yes
- ;;
- *-linux*)
- AC_PATH_PROG(OBJCOPY,objcopy)
- ;;
- esac
-fi
-
-AC_SUBST(ANDROID_SOURCE)
-AC_SUBST(ANDROID_PACKAGE_NAME)
-AC_SUBST(OBJCOPY)
-
-dnl ========================================================
-dnl Checks for compilers.
-dnl ========================================================
-dnl Set CROSS_COMPILE in the environment when running configure
-dnl to use the cross-compile setup for now
-dnl ========================================================
-
-dnl AR_FLAGS set here so HOST_AR_FLAGS can be set correctly (see bug 538269)
-AR_FLAGS='cr $@'
-
-if test "$COMPILE_ENVIRONMENT"; then
-
-if test -n "$CROSS_COMPILE" -a "$target" != "$host"; then
- echo "cross compiling from $host to $target"
- cross_compiling=yes
-
- _SAVE_CC="$CC"
- _SAVE_CFLAGS="$CFLAGS"
- _SAVE_LDFLAGS="$LDFLAGS"
-
- AC_MSG_CHECKING([for host c compiler])
- AC_CHECK_PROGS(HOST_CC, $HOST_CC cc gcc /usr/ucb/cc cl icc, "")
- if test -z "$HOST_CC"; then
- AC_MSG_ERROR([no acceptable c compiler found in \$PATH])
- fi
- AC_MSG_RESULT([$HOST_CC])
- AC_MSG_CHECKING([for host c++ compiler])
- AC_CHECK_PROGS(HOST_CXX, $HOST_CXX $CCC c++ g++ gcc CC cxx cc++ cl icc, "")
- if test -z "$HOST_CXX"; then
- AC_MSG_ERROR([no acceptable c++ compiler found in \$PATH])
- fi
- AC_MSG_RESULT([$HOST_CXX])
-
- if test -z "$HOST_CFLAGS"; then
- HOST_CFLAGS="$CFLAGS"
- fi
- if test -z "$HOST_CXXFLAGS"; then
- HOST_CXXFLAGS="$CXXFLAGS"
- fi
- if test -z "$HOST_LDFLAGS"; then
- HOST_LDFLAGS="$LDFLAGS"
- fi
- if test -z "$HOST_AR_FLAGS"; then
- HOST_AR_FLAGS="$AR_FLAGS"
- fi
- AC_CHECK_PROGS(HOST_RANLIB, $HOST_RANLIB ranlib, ranlib, :)
- AC_CHECK_PROGS(HOST_AR, $HOST_AR ar, ar, :)
- CC="$HOST_CC"
- CFLAGS="$HOST_CFLAGS"
- LDFLAGS="$HOST_LDFLAGS"
-
- AC_MSG_CHECKING([whether the host c compiler ($HOST_CC $HOST_CFLAGS $HOST_LDFLAGS) works])
- AC_TRY_COMPILE([], [return(0);],
- [ac_cv_prog_hostcc_works=1 AC_MSG_RESULT([yes])],
- AC_MSG_ERROR([installation or configuration problem: host compiler $HOST_CC cannot create executables.]) )
-
- CC="$HOST_CXX"
- CFLAGS="$HOST_CXXFLAGS"
-
- AC_MSG_CHECKING([whether the host c++ compiler ($HOST_CXX $HOST_CXXFLAGS $HOST_LDFLAGS) works])
- AC_TRY_COMPILE([], [return(0);],
- [ac_cv_prog_hostcxx_works=1 AC_MSG_RESULT([yes])],
- AC_MSG_ERROR([installation or configuration problem: host compiler $HOST_CXX cannot create executables.]) )
-
- CC=$_SAVE_CC
- CFLAGS=$_SAVE_CFLAGS
- LDFLAGS=$_SAVE_LDFLAGS
-
- AC_CHECK_PROGS(CC, $CC "${target_alias}-gcc" "${target}-gcc", :)
- unset ac_cv_prog_CC
- AC_PROG_CC
- AC_CHECK_PROGS(CXX, $CXX "${target_alias}-g++" "${target}-g++", :)
- unset ac_cv_prog_CXX
- AC_PROG_CXX
-
- AC_CHECK_PROGS(RANLIB, $RANLIB "${target_alias}-ranlib" "${target}-ranlib", :)
- AC_CHECK_PROGS(AR, $AR "${target_alias}-ar" "${target}-ar", :)
- MOZ_PATH_PROGS(AS, $AS "${target_alias}-as" "${target}-as", :)
- AC_CHECK_PROGS(LD, $LD "${target_alias}-ld" "${target}-ld", :)
- AC_CHECK_PROGS(STRIP, $STRIP "${target_alias}-strip" "${target}-strip", :)
- AC_CHECK_PROGS(WINDRES, $WINDRES "${target_alias}-windres" "${target}-windres", :)
- AC_DEFINE(CROSS_COMPILE)
-else
- AC_PROG_CC
- case "$target" in
- *-mingw*)
- # Work around the conftest.exe access problem on Windows
- sleep 2
- esac
- AC_PROG_CXX
- AC_PROG_RANLIB
- MOZ_PATH_PROGS(AS, $AS as, $CC)
- AC_CHECK_PROGS(AR, ar, :)
- AC_CHECK_PROGS(LD, ld, :)
- AC_CHECK_PROGS(STRIP, strip, :)
- AC_CHECK_PROGS(WINDRES, windres, :)
- if test -z "$HOST_CC"; then
- HOST_CC="$CC"
- fi
- if test -z "$HOST_CFLAGS"; then
- HOST_CFLAGS="$CFLAGS"
- fi
- if test -z "$HOST_CXX"; then
- HOST_CXX="$CXX"
- fi
- if test -z "$HOST_CXXFLAGS"; then
- HOST_CXXFLAGS="$CXXFLAGS"
- fi
- if test -z "$HOST_LDFLAGS"; then
- HOST_LDFLAGS="$LDFLAGS"
- fi
- if test -z "$HOST_RANLIB"; then
- HOST_RANLIB="$RANLIB"
- fi
- if test -z "$HOST_AR"; then
- HOST_AR="$AR"
- fi
- if test -z "$HOST_AR_FLAGS"; then
- HOST_AR_FLAGS="$AR_FLAGS"
- fi
-fi
-
-if test -n "$MOZ_WINCONSOLE"; then
- AC_DEFINE(MOZ_WINCONSOLE)
-fi
-
-MOZ_TOOL_VARIABLES
-
-if test -n "$GNU_CC" -a -z "$CLANG_CC" ; then
- if test "$GCC_MAJOR_VERSION" -eq 4 -a "$GCC_MINOR_VERSION" -lt 4 ||
- test "$GCC_MAJOR_VERSION" -lt 4; then
- AC_MSG_ERROR([Only GCC 4.4 or newer supported])
- fi
-fi
-
-dnl ========================================================
-dnl Special win32 checks
-dnl ========================================================
-
-MOZ_ARG_ENABLE_BOOL(metro,
-[ --enable-metro Enable Windows Metro build targets],
- MOZ_METRO=1,
- MOZ_METRO=)
-if test -n "$MOZ_METRO"; then
- AC_DEFINE(MOZ_METRO)
- # Target the Windows 8 Kit
- WINSDK_TARGETVER=602
- WINVER=502
- # toolkit/library/makefile.in needs these, see nsDllMain.
- CRTDLLVERSION=110
- CRTEXPDLLVERSION=1-1-0
-else
- # Target the Windows 7 SDK by default
- WINSDK_TARGETVER=601
- WINVER=502
-fi
-
-AC_SUBST(CRTDLLVERSION)
-AC_SUBST(CRTEXPDLLVERSION)
-
-MOZ_ARG_WITH_STRING(windows-version,
-[ --with-windows-version=WINSDK_TARGETVER
- Windows SDK version to target. Lowest version
- currently allowed is 601 (Win7), highest is 602 (Win8)],
- WINSDK_TARGETVER=$withval)
-
-# Currently only two sdk versions allowed, 601 and 602
-case "$WINSDK_TARGETVER" in
-601|602)
- MOZ_WINSDK_TARGETVER=0${WINSDK_TARGETVER}0000
- ;;
-
-*)
- AC_MSG_ERROR([Invalid value for --with-windows-version ($WINSDK_TARGETVER)]);
- ;;
-esac
-
-case "$target" in
-*-mingw*)
- if test "$GCC" != "yes" -a -z "$CLANG_CC"; then
- # Check to see if we are really running in a msvc environemnt
- _WIN32_MSVC=1
- AC_CHECK_PROGS(MIDL, midl)
-
- # Make sure compilers are valid
- CFLAGS="$CFLAGS -TC -nologo"
- CXXFLAGS="$CXXFLAGS -TP -nologo"
- AC_LANG_SAVE
- AC_LANG_C
- AC_TRY_COMPILE([#include <stdio.h>],
- [ printf("Hello World\n"); ],,
- AC_MSG_ERROR([\$(CC) test failed. You must have MS VC++ in your path to build.]) )
-
- AC_LANG_CPLUSPLUS
- AC_TRY_COMPILE([#include <new.h>],
- [ unsigned *test = new unsigned(42); ],,
- AC_MSG_ERROR([\$(CXX) test failed. You must have MS VC++ in your path to build.]) )
- AC_LANG_RESTORE
-
- changequote(,)
- _MSVC_VER_FILTER='s|.*[^!-~]([0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+)?).*|\1|p'
- changequote([,])
-
- # Determine compiler version
- CC_VERSION=`"${CC}" -v 2>&1 | sed -nre "$_MSVC_VER_FILTER"`
- _CC_MAJOR_VERSION=`echo ${CC_VERSION} | $AWK -F\. '{ print $1 }'`
- _CC_MINOR_VERSION=`echo ${CC_VERSION} | $AWK -F\. '{ print $2 }'`
- _CC_RELEASE=`echo ${CC_VERSION} | $AWK -F\. '{ print $3 }'`
- _CC_BUILD=`echo ${CC_VERSION} | $AWK -F\. '{ print $4 }'`
- _MSC_VER=${_CC_MAJOR_VERSION}${_CC_MINOR_VERSION}
-
- CXX_VERSION=`"${CXX}" -v 2>&1 | sed -nre "$_MSVC_VER_FILTER"`
- _CXX_MAJOR_VERSION=`echo ${CXX_VERSION} | $AWK -F\. '{ print $1 }'`
-
- if test "$_CC_MAJOR_VERSION" != "$_CXX_MAJOR_VERSION"; then
- AC_MSG_ERROR([The major versions of \$CC and \$CXX do not match.])
- fi
-
- if test "$_CC_MAJOR_VERSION" = "16"; then
- _CC_SUITE=10
- _MSVS_VERSION=2010
- AC_DEFINE(_CRT_SECURE_NO_WARNINGS)
- AC_DEFINE(_CRT_NONSTDC_NO_WARNINGS)
- elif test "$_CC_MAJOR_VERSION" = "17"; then
- _CC_SUITE=11
- _MSVS_VERSION=2012
- AC_DEFINE(_CRT_SECURE_NO_WARNINGS)
- AC_DEFINE(_CRT_NONSTDC_NO_WARNINGS)
- else
- AC_MSG_ERROR([This version ($CC_VERSION) of the MSVC compiler is unsupported. See https://developer.mozilla.org/en/Windows_Build_Prerequisites.])
- fi
-
- AC_DEFINE(HAVE_SEH_EXCEPTIONS)
-
- if test -n "$WIN32_REDIST_DIR"; then
- if test ! -d "$WIN32_REDIST_DIR"; then
- AC_MSG_ERROR([Invalid Win32 Redist directory: ${WIN32_REDIST_DIR}])
- fi
- WIN32_REDIST_DIR=`cd "$WIN32_REDIST_DIR" && pwd`
- fi
-
- dnl Confirm we have the pri tools on win8 builds
- if test -n "$MOZ_METRO"; then
- AC_MSG_CHECKING([for makepri])
- AC_CHECK_PROGS(MAKEPRI, makepri, "")
- if test -z "MAKEPRI" ; then
- AC_MSG_ERROR([makepri.exe is required for generating metro browser install components. It should be in the Win8 SDK.])
- fi
- AC_SUBST(MAKEPRI)
- fi
-
- dnl Ensure that mt.exe is 'Microsoft (R) Manifest Tool',
- dnl not something else like "magnetic tape manipulation utility".
- MSMT_TOOL=`mt 2>&1|grep 'Microsoft (R) Manifest Tool'`
- if test -z "$MSMT_TOOL"; then
- AC_MSG_ERROR([Microsoft (R) Manifest Tool must be in your \$PATH.])
- fi
-
- changequote(,)
- _MSMT_VER_FILTER='s|.*[^!-~]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*|\1|p'
- changequote([,])
- MSMANIFEST_TOOL_VERSION=`echo ${MSMT_TOOL}|sed -ne "$_MSMT_VER_FILTER"`
- if test -z "$MSMANIFEST_TOOL_VERSION"; then
- AC_MSG_WARN([Unknown version of the Microsoft (R) Manifest Tool.])
- fi
-
- MSMANIFEST_TOOL=1
- unset MSMT_TOOL
-
- # Check linker version
- _LD_FULL_VERSION=`"${LD}" -v 2>&1 | sed -nre "$_MSVC_VER_FILTER"`
- _LD_MAJOR_VERSION=`echo ${_LD_FULL_VERSION} | $AWK -F\. '{ print $1 }'`
- if test "$_LD_MAJOR_VERSION" != "$_CC_SUITE"; then
- AC_MSG_ERROR([The linker major version, $_LD_FULL_VERSION, does not match the compiler suite version, $_CC_SUITE.])
- fi
-
- INCREMENTAL_LINKER=1
-
- # Check midl version
- _MIDL_FULL_VERSION=`"${MIDL}" -v 2>&1 | sed -nre "$_MSVC_VER_FILTER"`
- _MIDL_MAJOR_VERSION=`echo ${_MIDL_FULL_VERSION} | $AWK -F\. '{ print $1 }'`
- _MIDL_MINOR_VERSION=`echo ${_MIDL_FULL_VERSION} | $AWK -F\. '{ print $2 }'`
- _MIDL_REV_VERSION=`echo ${_MIDL_FULL_VERSION} | $AWK -F\. '{ print $3 }'`
- # Add flags if necessary
- AC_MSG_CHECKING([for midl flags])
- case "$target" in
- i*86-*)
- if test \( "$_MIDL_MAJOR_VERSION" = "7" -a "$_MIDL_MINOR_VERSION" = "00" -a "$_MIDL_REV_VERSION" = "0499" \); then
- # MIDL version 7.00.0499 defaults /env win64 on x64 platforms.
- # MIDL version 7.00.0500 or later has no problem.
- MIDL_FLAGS="${MIDL_FLAGS} -env win32"
- AC_MSG_RESULT([need -env win32])
- else
- AC_MSG_RESULT([none needed])
- fi
- ;;
- x86_64-*)
- MIDL_FLAGS="${MIDL_FLAGS} -env x64"
- ;;
- *)
- AC_MSG_RESULT([none needed])
- ;;
- esac
-
- unset _MSVC_VER_FILTER
-
- AC_CACHE_CHECK(for std::_Throw, ac_cv_have_std__Throw,
- [
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- _SAVE_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="${CXXFLAGS} -D_HAS_EXCEPTIONS=0"
- AC_TRY_COMPILE([#include <exception>],
- [std::_Throw(std::exception()); return 0;],
- ac_cv_have_std__Throw="yes",
- ac_cv_have_std__Throw="no")
- CXXFLAGS="$_SAVE_CXXFLAGS"
- AC_LANG_RESTORE
- ])
-
- if test "$ac_cv_have_std__Throw" = "yes"; then
- AC_CACHE_CHECK(for |class __declspec(dllimport) exception| bug,
- ac_cv_have_dllimport_exception_bug,
- [
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- _SAVE_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="${CXXFLAGS} -D_HAS_EXCEPTIONS=0"
- AC_TRY_LINK([#include <vector>],
- [std::vector<int> v; return v.at(1);],
- ac_cv_have_dllimport_exception_bug="no",
- ac_cv_have_dllimport_exception_bug="yes")
- CXXFLAGS="$_SAVE_CXXFLAGS"
- AC_LANG_RESTORE
- ])
- if test "$ac_cv_have_dllimport_exception_bug" = "no"; then
- WRAP_STL_INCLUDES=1
- MOZ_MSVC_STL_WRAP__Throw=1
- AC_DEFINE(MOZ_MSVC_STL_WRAP__Throw)
- fi
- else
- AC_CACHE_CHECK(for overridable _RAISE,
- ac_cv_have__RAISE,
- [
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- _SAVE_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="${CXXFLAGS} -D_HAS_EXCEPTIONS=0"
- AC_TRY_COMPILE([#include <xstddef>
- #undef _RAISE
- #define _RAISE(x) externallyDefinedFunction((x).what())
- #include <vector>
- ],
- [std::vector<int> v; return v.at(1);],
- ac_cv_have__RAISE="no",
- ac_cv_have__RAISE="yes")
- CXXFLAGS="$_SAVE_CXXFLAGS"
- AC_LANG_RESTORE
- ])
- if test "$ac_cv_have__RAISE" = "yes"; then
- WRAP_STL_INCLUDES=1
- MOZ_MSVC_STL_WRAP__RAISE=1
- AC_DEFINE(MOZ_MSVC_STL_WRAP__RAISE)
- else
- AC_MSG_ERROR([Gecko exception wrapping doesn't understand your your MSVC/SDK. Please file a bug describing this error and your build configuration.])
- fi
- fi
-
- if test "$WRAP_STL_INCLUDES" = "1"; then
- STL_FLAGS='-D_HAS_EXCEPTIONS=0 -I$(DIST)/stl_wrappers'
- fi
- elif test -z "$CLANG_CC"; then
- # Check w32api version
- _W32API_MAJOR_VERSION=`echo $W32API_VERSION | $AWK -F\. '{ print $1 }'`
- _W32API_MINOR_VERSION=`echo $W32API_VERSION | $AWK -F\. '{ print $2 }'`
- AC_MSG_CHECKING([for w32api version >= $W32API_VERSION])
- AC_TRY_COMPILE([#include <w32api.h>],
- #if (__W32API_MAJOR_VERSION < $_W32API_MAJOR_VERSION) || \
- (__W32API_MAJOR_VERSION == $_W32API_MAJOR_VERSION && \
- __W32API_MINOR_VERSION < $_W32API_MINOR_VERSION)
- #error "test failed."
- #endif
- , [ res=yes ], [ res=no ])
- AC_MSG_RESULT([$res])
- if test "$res" != "yes"; then
- AC_MSG_ERROR([w32api version $W32API_VERSION or higher required.])
- fi
- # Check windres version
- AC_MSG_CHECKING([for windres version >= $WINDRES_VERSION])
- _WINDRES_VERSION=`${WINDRES} --version 2>&1 | grep -i windres 2>/dev/null | $AWK '{ print $3 }'`
- AC_MSG_RESULT([$_WINDRES_VERSION])
- _WINDRES_MAJOR_VERSION=`echo $_WINDRES_VERSION | $AWK -F\. '{ print $1 }'`
- _WINDRES_MINOR_VERSION=`echo $_WINDRES_VERSION | $AWK -F\. '{ print $2 }'`
- _WINDRES_RELEASE_VERSION=`echo $_WINDRES_VERSION | $AWK -F\. '{ print $3 }'`
- WINDRES_MAJOR_VERSION=`echo $WINDRES_VERSION | $AWK -F\. '{ print $1 }'`
- WINDRES_MINOR_VERSION=`echo $WINDRES_VERSION | $AWK -F\. '{ print $2 }'`
- WINDRES_RELEASE_VERSION=`echo $WINDRES_VERSION | $AWK -F\. '{ print $3 }'`
- if test "$_WINDRES_MAJOR_VERSION" -lt "$WINDRES_MAJOR_VERSION" -o \
- "$_WINDRES_MAJOR_VERSION" -eq "$WINDRES_MAJOR_VERSION" -a \
- "$_WINDRES_MINOR_VERSION" -lt "$WINDRES_MINOR_VERSION" -o \
- "$_WINDRES_MAJOR_VERSION" -eq "$WINDRES_MAJOR_VERSION" -a \
- "$_WINDRES_MINOR_VERSION" -eq "$WINDRES_MINOR_VERSION" -a \
- "$_WINDRES_RELEASE_VERSION" -lt "$WINDRES_RELEASE_VERSION"
- then
- AC_MSG_ERROR([windres version $WINDRES_VERSION or higher is required to build.])
- fi
-
- AC_CHECK_PROGS(MIDL, $target-widl widl)
- if test -n "$MIDL"; then
- case "$target" in
- i*86-*)
- MIDL_FLAGS="$MIDL_FLAGS --win32 -m32"
- ;;
- x86_64-*)
- MIDL_FLAGS="$MIDL_FLAGS --win64 -m64"
- ;;
- esac
- fi
-
- MOZ_WINSDK_MAXVER=0x06020000
- fi # !GNU_CC
-
- # If MSVC or clang
- if test "$GCC" != "yes" -o -n "$CLANG_CC" ; then
- MOZ_FIND_WINSDK_VERSION
- fi
-
- AC_DEFINE_UNQUOTED(WINVER,0x$WINVER)
- AC_DEFINE_UNQUOTED(_WIN32_WINNT,0x$WINVER)
- # Require OS features provided by IE 6.0 SP2 (XP SP2)
- AC_DEFINE_UNQUOTED(_WIN32_IE,0x0603)
-
- # If the maximum version supported by this SDK is lower than the target
- # version, error out
- AC_MSG_CHECKING([for Windows SDK being recent enough])
- if $PERL -e "exit(0x$MOZ_WINSDK_TARGETVER > $MOZ_WINSDK_MAXVER)"; then
- AC_MSG_RESULT("yes")
- else
- AC_MSG_RESULT("no")
- AC_MSG_ERROR([You are targeting Windows version 0x$MOZ_WINSDK_TARGETVER, but your SDK only supports up to version $MOZ_WINSDK_MAXVER. Install and use an updated SDK, or target a lower version using --with-windows-version. Alternatively, try running the Windows SDK Configuration Tool and selecting a newer SDK. See https://developer.mozilla.org/En/Windows_SDK_versions for more details on fixing this.])
- fi
-
- AC_DEFINE_UNQUOTED(MOZ_WINSDK_TARGETVER,0x$MOZ_WINSDK_TARGETVER)
- # Definitions matching sdkddkver.h
- AC_DEFINE_UNQUOTED(MOZ_NTDDI_WIN7, 0x06010000)
- AC_DEFINE_UNQUOTED(MOZ_WINSDK_MAXVER,$MOZ_WINSDK_MAXVER)
- AC_SUBST(MOZ_WINSDK_MAXVER)
- ;;
-esac
-
-AC_PROG_CPP
-AC_PROG_CXXCPP
-
-if test -n "$_WIN32_MSVC"; then
- SKIP_PATH_CHECKS=1
- SKIP_COMPILER_CHECKS=1
- SKIP_LIBRARY_CHECKS=1
-
- # Since we're skipping compiler and library checks, hard-code
- # some facts here.
- AC_DEFINE(HAVE_IO_H)
- AC_DEFINE(HAVE_SETBUF)
- AC_DEFINE(HAVE_ISATTY)
-fi
-
-fi # COMPILE_ENVIRONMENT
-
-AC_SUBST(MIDL_FLAGS)
-AC_SUBST(_MSC_VER)
-
-AC_SUBST(GNU_AS)
-AC_SUBST(GNU_LD)
-AC_SUBST(GNU_CC)
-AC_SUBST(GNU_CXX)
-AC_SUBST(INTEL_CC)
-AC_SUBST(INTEL_CXX)
-
-AC_SUBST(STL_FLAGS)
-AC_SUBST(WRAP_STL_INCLUDES)
-AC_SUBST(MOZ_MSVC_STL_WRAP__Throw)
-AC_SUBST(MOZ_MSVC_STL_WRAP__RAISE)
-
-dnl ========================================================
-dnl Checks for programs.
-dnl ========================================================
-AC_PROG_INSTALL
-AC_PROG_LN_S
-
-if test -z "$TINDERBOX_SKIP_PERL_VERSION_CHECK"; then
-AC_MSG_CHECKING([for minimum required perl version >= $PERL_VERSION])
-_perl_version=`PERL_VERSION=$PERL_VERSION $PERL -e 'print "$]"; if ($] >= $ENV{PERL_VERSION}) { exit(0); } else { exit(1); }' 2>&5`
-_perl_res=$?
-AC_MSG_RESULT([$_perl_version])
-
-if test "$_perl_res" != 0; then
- AC_MSG_ERROR([Perl $PERL_VERSION or higher is required.])
-fi
-fi
-
-AC_MSG_CHECKING([for full perl installation])
-_perl_archlib=`$PERL -e 'use Config; if ( -d $Config{archlib} ) { exit(0); } else { exit(1); }' 2>&5`
-_perl_res=$?
-if test "$_perl_res" != 0; then
- AC_MSG_RESULT([no])
- AC_MSG_ERROR([Cannot find Config.pm or \$Config{archlib}. A full perl installation is required.])
-else
- AC_MSG_RESULT([yes])
-fi
-
-MOZ_ARG_WITH_BOOL(system-ply,
-[ --with-system-ply Use system installed python ply library],
- [if $PYTHON -c 'import ply' 2>&5; then
- MOZ_SYSTEM_PLY=1
- else
- AC_MSG_ERROR([python ply library is not found but --with-system-ply was requested])
- fi])
-
-AC_SUBST(MOZ_SYSTEM_PLY)
-
-if test -z "$COMPILE_ENVIRONMENT"; then
- NSINSTALL_BIN='$(PYTHON) $(topsrcdir)/config/nsinstall.py'
-fi
-AC_SUBST(NSINSTALL_BIN)
-
-MOZ_PATH_PROG(DOXYGEN, doxygen, :)
-MOZ_PATH_PROG(AUTOCONF, autoconf, :)
-MOZ_PATH_PROGS(UNZIP, unzip)
-if test -z "$UNZIP" -o "$UNZIP" = ":"; then
- AC_MSG_ERROR([unzip not found in \$PATH])
-fi
-MOZ_PATH_PROGS(ZIP, zip)
-if test -z "$ZIP" -o "$ZIP" = ":"; then
- AC_MSG_ERROR([zip not found in \$PATH])
-fi
-MOZ_PATH_PROG(XARGS, xargs)
-if test -z "$XARGS" -o "$XARGS" = ":"; then
- AC_MSG_ERROR([xargs not found in \$PATH .])
-fi
-
-MOZ_PATH_PROG(RPMBUILD, rpmbuild, :)
-AC_SUBST(RPMBUILD)
-
-if test "$COMPILE_ENVIRONMENT"; then
-
-dnl ========================================================
-dnl = Mac OS X toolchain support
-dnl ========================================================
-
-dnl The universal machinery sets UNIVERSAL_BINARY to inform packager.mk
-dnl that a universal binary is being produced and MOZ_CAN_RUN_PROGRAMS
-dnl when we can run target binaries.
-AC_SUBST(UNIVERSAL_BINARY)
-AC_SUBST(MOZ_CAN_RUN_PROGRAMS)
-
-MOZ_ARG_WITH_STRING(unify-dist,
-[ --with-unify-dist=dir Location of the dist directory to unify with at packaging time (Mac OS X universal build only)],
- UNIFY_DIST=$withval)
-if test -n "$UNIVERSAL_BINARY"; then
- if test -z "$UNIFY_DIST"; then
- AC_MSG_ERROR([You need to provide the --with-unify-dist=dir argument when performing a universal build])
- fi
- case "$UNIFY_DIST" in
- /*)
- ;;
- *)
- UNIFY_DIST="${MOZ_BUILD_ROOT}/${UNIFY_DIST}"
- ;;
- esac
-fi
-AC_SUBST(UNIFY_DIST)
-
-dnl ========================================================
-dnl Check for MacOS deployment target version
-dnl ========================================================
-
-MOZ_ARG_ENABLE_STRING(macos-target,
- [ --enable-macos-target=VER (default=10.6)
- Set the minimum MacOS version needed at runtime],
- [_MACOSX_DEPLOYMENT_TARGET=$enableval])
-
-case "$target" in
-*-darwin*)
- if test -n "$_MACOSX_DEPLOYMENT_TARGET" ; then
- dnl Use the specified value
- export MACOSX_DEPLOYMENT_TARGET=$_MACOSX_DEPLOYMENT_TARGET
- else
- dnl No value specified on the command line or in the environment,
- dnl use architecture minimum.
- export MACOSX_DEPLOYMENT_TARGET=10.6
- fi
- ;;
-esac
-
-AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
-
-dnl ========================================================
-dnl = Mac OS X SDK support
-dnl ========================================================
-MACOS_SDK_DIR=
-NEXT_ROOT=
-MOZ_ARG_WITH_STRING(macos-sdk,
-[ --with-macos-sdk=dir Location of platform SDK to use (Mac OS X only)],
- MACOS_SDK_DIR=$withval)
-
-dnl MACOS_SDK_DIR will be set to the SDK location whenever one is in use.
-dnl NEXT_ROOT will be set and exported only if it's needed.
-AC_SUBST(MACOS_SDK_DIR)
-AC_SUBST(NEXT_ROOT)
-
-if test "$MACOS_SDK_DIR"; then
- dnl Sync this section with the ones in NSPR and NSS.
- dnl Changes to the cross environment here need to be accounted for in
- dnl the libIDL checks (below) and xpidl build.
-
- if test ! -d "$MACOS_SDK_DIR"; then
- AC_MSG_ERROR([SDK not found. When using --with-macos-sdk, you must
-specify a valid SDK. SDKs are installed when the optional cross-development
-tools are selected during the Xcode/Developer Tools installation.])
- fi
-
- CFLAGS="$CFLAGS -isysroot ${MACOS_SDK_DIR}"
- CXXFLAGS="$CXXFLAGS -isysroot ${MACOS_SDK_DIR}"
-
- dnl CPP/CXXCPP needs to be set for MOZ_CHECK_HEADER.
- CPP="$CPP -isysroot ${MACOS_SDK_DIR}"
- CXXCPP="$CXXCPP -isysroot ${MACOS_SDK_DIR}"
-
- AC_LANG_SAVE
- AC_MSG_CHECKING([for valid compiler/Mac OS X SDK combination])
- AC_LANG_CPLUSPLUS
- AC_TRY_COMPILE([#include <new>],[],
- result=yes,
- result=no)
- AC_LANG_RESTORE
- AC_MSG_RESULT($result)
-
- if test "$result" = "no" ; then
- AC_MSG_ERROR([The selected compiler and Mac OS X SDK are incompatible.])
- fi
-fi
-
-fi # COMPILE_ENVIRONMENT
-
-AC_MSG_CHECKING([compiler version])
-# Just print it so it shows up in the logs.
-cc_version=$($CC --version)
-AC_MSG_RESULT([$cc_version])
-
-if test -n "$MAKE"; then
- if test `echo $MAKE | grep -c make.py` != 1; then
- NOT_PYMAKE=$MAKE
- fi
-fi
-
-case "$host_os" in
-mingw*)
- MOZ_PATH_PROGS(GMAKE, $GMAKE $NOT_PYMAKE make gmake, :)
- ;;
-*)
- MOZ_PATH_PROGS(GMAKE, $GMAKE $NOT_PYMAKE gmake make, :)
- ;;
-esac
-if test "$GMAKE" = ":"; then
- AC_MSG_ERROR([GNU make not found])
-fi
-AC_SUBST(GMAKE)
-
-if test -z "$MAKE"; then
- MAKE=$GMAKE
-fi
-
-if test "$COMPILE_ENVIRONMENT"; then
-
-AC_PATH_XTRA
-
-XCFLAGS="$X_CFLAGS"
-
-fi # COMPILE_ENVIRONMENT
-
-dnl ========================================================
-dnl set the defaults first
-dnl ========================================================
-AS_BIN=$AS
-AR_LIST='$(AR) t'
-AR_EXTRACT='$(AR) x'
-AR_DELETE='$(AR) d'
-AS='$(CC)'
-AS_DASH_C_FLAG='-c'
-DLL_PREFIX=lib
-LIB_PREFIX=lib
-DLL_SUFFIX=.so
-OBJ_SUFFIX=o
-LIB_SUFFIX=a
-ASM_SUFFIX=s
-IMPORT_LIB_SUFFIX=
-TARGET_MD_ARCH=unix
-DIRENT_INO=d_ino
-MOZ_USER_DIR=".mozilla"
-
-MOZ_JPEG_CFLAGS=
-MOZ_JPEG_LIBS='$(call EXPAND_LIBNAME_PATH,mozjpeg,$(DEPTH)/media/libjpeg)'
-MOZ_BZ2_CFLAGS=
-MOZ_BZ2_LIBS='$(call EXPAND_LIBNAME_PATH,bz2,$(DEPTH)/modules/libbz2/src)'
-MOZ_PNG_CFLAGS=
-MOZ_PNG_LIBS='$(call EXPAND_LIBNAME_PATH,mozpng,$(DEPTH)/media/libpng)'
-
-MOZ_JS_STATIC_LIBS='$(call EXPAND_LIBNAME_PATH,js_static,$(LIBXUL_DIST)/lib)'
-MOZ_JS_SHARED_LIBS='$(call EXPAND_LIBNAME_PATH,mozjs,$(LIBXUL_DIST)/lib)'
-DYNAMIC_XPCOM_LIBS='-L$(LIBXUL_DIST)/bin -lxul -lxpcom_core -lmozalloc'
-MOZ_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin -Wl,-rpath-link,$(prefix)/lib'
-XPCOM_FROZEN_LDOPTS='-L$(LIBXUL_DIST)/bin -lxul -lmozalloc'
-LIBXUL_LIBS='$(XPCOM_FROZEN_LDOPTS)'
-XPCOM_GLUE_LDOPTS='$(LIBXUL_DIST)/lib/$(LIB_PREFIX)xpcomglue_s.$(LIB_SUFFIX) $(XPCOM_FROZEN_LDOPTS)'
-XPCOM_STANDALONE_GLUE_LDOPTS='$(LIBXUL_DIST)/lib/$(LIB_PREFIX)xpcomglue.$(LIB_SUFFIX)'
-
-# These are specially defined on Windows only
-case "$target" in
-*-mingw*)
- XPCOM_STATICRUNTIME_GLUE_LDOPTS='$(LIBXUL_DIST)/lib/$(LIB_PREFIX)xpcomglue_staticruntime_s.$(LIB_SUFFIX) $(XPCOM_FROZEN_LDOPTS)'
- XPCOM_STANDALONE_STATICRUNTIME_GLUE_LDOPTS='$(LIBXUL_DIST)/lib/$(LIB_PREFIX)xpcomglue_staticruntime.$(LIB_SUFFIX)'
- ;;
-*)
- XPCOM_STATICRUNTIME_GLUE_LDOPTS=$XPCOM_GLUE_LDOPTS
- XPCOM_STANDALONE_STATICRUNTIME_GLUE_LDOPTS=$XPCOM_STANDALONE_GLUE_LDOPTS
- ;;
-esac
-
-MOZ_FS_LAYOUT=unix
-
-MOZ_COMPONENT_NSPR_LIBS='-L$(LIBXUL_DIST)/bin $(NSPR_LIBS)'
-
-USE_DEPENDENT_LIBS=1
-
-_PLATFORM_DEFAULT_TOOLKIT=cairo-gtk2
-
-if test -n "$CROSS_COMPILE"; then
- OS_TARGET="${target_os}"
- OS_ARCH=`echo $target_os | sed -e 's|/|_|g'`
- OS_RELEASE=
- case "${target_os}" in
- linux*) OS_ARCH=Linux OS_TARGET=Linux ;;
- kfreebsd*-gnu) OS_ARCH=GNU_kFreeBSD OS_TARGET=GNU_kFreeBSD ;;
- gnu*) OS_ARCH=GNU ;;
- solaris*) OS_ARCH=SunOS OS_RELEASE=5 ;;
- mingw*) OS_ARCH=WINNT OS_TARGET=WINNT ;;
- darwin*) OS_ARCH=Darwin OS_TARGET=Darwin ;;
- esac
- case "${target}" in
- *-android*|*-linuxandroid*) OS_ARCH=Linux OS_TARGET=Android ;;
- esac
-else
- OS_TARGET=`uname -s`
- OS_ARCH=`uname -s | sed -e 's|/|_|g'`
- OS_RELEASE=`uname -r`
-fi
-
-# Before this used `uname -m` when not cross compiling
-# but that breaks when you have a 64 bit kernel with a 32 bit userland.
-OS_TEST="${target_cpu}"
-
-HOST_OS_ARCH=`echo $host_os | sed -e 's|/|_|g'`
-
-#######################################################################
-# Master "Core Components" macros for getting the OS target #
-#######################################################################
-
-#
-# If OS_TARGET is not specified, it defaults to $(OS_ARCH), i.e., no
-# cross-compilation.
-#
-
-#
-# Define and override various archtecture-specific variables, including
-# HOST_OS_ARCH
-# OS_ARCH
-# OS_TEST
-# OS_TARGET
-# OS_RELEASE
-# OS_MINOR_RELEASE
-#
-
-case "$HOST_OS_ARCH" in
-mingw*)
- HOST_OS_ARCH=WINNT
- ;;
-darwin*)
- HOST_OS_ARCH=Darwin
- ;;
-linux*)
- HOST_OS_ARCH=Linux
- ;;
-solaris*)
- HOST_OS_ARCH=SunOS
- SOLARIS_SUNPRO_CC=
- SOLARIS_SUNPRO_CXX=
- if test -z "$GNU_CC"; then
- if test "`$CC -V 2>&1 | egrep -c 'Sun.*C '`" != "0"; then
- SOLARIS_SUNPRO_CC=1
- fi
- fi
-
- if test -z "$GNU_CXX"; then
- if test "`$CXX -V 2>&1 | egrep -c 'Sun.*C\+\+ '`" != "0"; then
- SOLARIS_SUNPRO_CXX=1
- fi
- fi
- AC_SUBST(SOLARIS_SUNPRO_CC)
- AC_SUBST(SOLARIS_SUNPRO_CXX)
- ;;
-OS_2)
- HOST_OS_ARCH=OS2
- ;;
-esac
-
-case "$OS_ARCH" in
-WINNT)
- if test -z "$CROSS_COMPILE" ; then
- OS_TEST=`uname -p`
- fi
- ;;
-Windows_NT)
-#
-# If uname -s returns "Windows_NT", we assume that we are using
-# the uname.exe in MKS toolkit.
-#
-# The -r option of MKS uname only returns the major version number.
-# So we need to use its -v option to get the minor version number.
-# Moreover, it doesn't have the -p option, so we need to use uname -m.
-#
- OS_ARCH=WINNT
- OS_TARGET=WINNT
- OS_MINOR_RELEASE=`uname -v`
- if test "$OS_MINOR_RELEASE" = "00"; then
- OS_MINOR_RELEASE=0
- fi
- OS_RELEASE="${OS_RELEASE}.${OS_MINOR_RELEASE}"
- ;;
-MINGW*_NT*)
-#
-# If uname -s returns MINGW32_NT-5.1, we assume that we are using
-# the uname.exe in the MSYS tools.
-#
- OS_RELEASE=`expr $OS_ARCH : '.*NT-\(.*\)'`
- OS_ARCH=WINNT
- OS_TARGET=WINNT
- ;;
-AIX)
- OS_RELEASE=`uname -v`.`uname -r`
- OS_TEST=${target_cpu}
- ;;
-OS_2)
- OS_ARCH=OS2
- OS_TARGET=OS2
- OS_RELEASE=`uname -v`
- ;;
-Darwin)
- case "${target_cpu}" in
- powerpc*)
- OS_TEST=ppc
- ;;
- i*86*)
- OS_TEST=i386
- ;;
- x86_64)
- OS_TEST=x86_64
- ;;
- *)
- if test -z "$CROSS_COMPILE" ; then
- OS_TEST=`uname -p`
- fi
- ;;
- esac
- ;;
-esac
-
-# Only set CPU_ARCH if we recognize the value of OS_TEST
-
-case "$OS_TEST" in
-*86 | i86pc)
- CPU_ARCH=x86
- ;;
-
-powerpc64 | ppc64)
- CPU_ARCH=ppc64
- ;;
-
-powerpc | ppc | rs6000)
- CPU_ARCH=ppc
- ;;
-
-Alpha | alpha | ALPHA)
- CPU_ARCH=Alpha
- ;;
-
-s390)
- CPU_ARCH=s390
- ;;
-
-s390x)
- CPU_ARCH=s390x
- ;;
-
-hppa* | parisc)
- CPU_ARCH=hppa
- ;;
-
-sun4u | sparc*)
- CPU_ARCH=sparc
- ;;
-
-x86_64 | ia64)
- CPU_ARCH="$OS_TEST"
- ;;
-
-arm*)
- CPU_ARCH=arm
- ;;
-
-mips|mipsel)
- CPU_ARCH="mips"
- ;;
-esac
-
-if test -z "$OS_TARGET"; then
- OS_TARGET=$OS_ARCH
-fi
-OS_CONFIG="${OS_TARGET}${OS_RELEASE}"
-
-dnl Set INTEL_ARCHITECTURE if we're compiling for x86-32 or x86-64.
-dnl ===============================================================
-INTEL_ARCHITECTURE=
-case "$OS_TEST" in
- x86_64|i?86)
- INTEL_ARCHITECTURE=1
-esac
-
-dnl Configure platform-specific CPU architecture compiler options.
-dnl ==============================================================
-MOZ_ARCH_OPTS
-
-dnl =================================================================
-dnl Set up and test static assertion macros used to avoid AC_TRY_RUN,
-dnl which is bad when cross compiling.
-dnl =================================================================
-if test "$COMPILE_ENVIRONMENT"; then
-configure_static_assert_macros='
-#define CONFIGURE_STATIC_ASSERT(condition) CONFIGURE_STATIC_ASSERT_IMPL(condition, __LINE__)
-#define CONFIGURE_STATIC_ASSERT_IMPL(condition, line) CONFIGURE_STATIC_ASSERT_IMPL2(condition, line)
-#define CONFIGURE_STATIC_ASSERT_IMPL2(condition, line) typedef int static_assert_line_##line[(condition) ? 1 : -1]
-'
-
-dnl test that the macros actually work:
-AC_MSG_CHECKING(that static assertion macros used in autoconf tests work)
-AC_CACHE_VAL(ac_cv_static_assertion_macros_work,
- [AC_LANG_SAVE
- AC_LANG_C
- ac_cv_static_assertion_macros_work="yes"
- AC_TRY_COMPILE([$configure_static_assert_macros],
- [CONFIGURE_STATIC_ASSERT(1)],
- ,
- ac_cv_static_assertion_macros_work="no")
- AC_TRY_COMPILE([$configure_static_assert_macros],
- [CONFIGURE_STATIC_ASSERT(0)],
- ac_cv_static_assertion_macros_work="no",
- )
- AC_LANG_CPLUSPLUS
- AC_TRY_COMPILE([$configure_static_assert_macros],
- [CONFIGURE_STATIC_ASSERT(1)],
- ,
- ac_cv_static_assertion_macros_work="no")
- AC_TRY_COMPILE([$configure_static_assert_macros],
- [CONFIGURE_STATIC_ASSERT(0)],
- ac_cv_static_assertion_macros_work="no",
- )
- AC_LANG_RESTORE
- ])
-AC_MSG_RESULT("$ac_cv_static_assertion_macros_work")
-if test "$ac_cv_static_assertion_macros_work" = "no"; then
- AC_MSG_ERROR([Compiler cannot compile macros used in autoconf tests.])
-fi
-fi # COMPILE_ENVIRONMENT
-
-dnl ========================================================
-dnl Android libstdc++, placed here so it can use MOZ_ARCH
-dnl computed above.
-dnl ========================================================
-
-MOZ_ANDROID_STLPORT
-
-dnl ========================================================
-dnl Suppress Clang Argument Warnings
-dnl ========================================================
-if test -n "$CLANG_CC"; then
- _WARNINGS_CFLAGS="-Qunused-arguments ${_WARNINGS_CFLAGS}"
- CPPFLAGS="-Qunused-arguments ${CPPFLAGS}"
-fi
-if test -n "$CLANG_CXX"; then
- _WARNINGS_CXXFLAGS="-Qunused-arguments ${_WARNINGS_CXXFLAGS}"
-fi
-
-dnl ========================================================
-dnl = Use Address Sanitizer
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(address-sanitizer,
-[ --enable-address-sanitizer Enable Address Sanitizer (default=no)],
- MOZ_ASAN=1,
- MOZ_ASAN= )
-if test -n "$MOZ_ASAN"; then
- MOZ_LLVM_HACKS=1
- AC_DEFINE(MOZ_ASAN)
-fi
-AC_SUBST(MOZ_ASAN)
-
-dnl ========================================================
-dnl = Enable hacks required for LLVM instrumentations
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(llvm-hacks,
-[ --enable-llvm-hacks Enable workarounds required for several LLVM instrumentations (default=no)],
- MOZ_LLVM_HACKS=1,
- MOZ_LLVM_HACKS= )
-if test -n "$MOZ_LLVM_HACKS"; then
- MOZ_NO_WLZDEFS=1
- MOZ_CFLAGS_NSS=1
-fi
-AC_SUBST(MOZ_NO_WLZDEFS)
-AC_SUBST(MOZ_CFLAGS_NSS)
-
-dnl ========================================================
-dnl GNU specific defaults
-dnl ========================================================
-if test "$GNU_CC"; then
- # Per bug 719659 comment 2, some of the headers on ancient build machines
- # may require gnu89 inline semantics. But otherwise, we use C99.
- # But on OS X we just use C99 plus GNU extensions, in order to fix
- # bug 917526.
- CFLAGS="$CFLAGS -std=gnu99"
- if test "${OS_ARCH}" != Darwin; then
- CFLAGS="$CFLAGS -fgnu89-inline"
- fi
- # FIXME: Let us build with strict aliasing. bug 414641.
- CFLAGS="$CFLAGS -fno-strict-aliasing"
- MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-h,$(notdir $@) -o $@'
- MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-h,$(notdir $@) -o $@'
- DSO_LDOPTS='-shared'
- if test "$GCC_USE_GNU_LD"; then
- # Some tools like ASan use a runtime library that is only
- # linked against executables, so we must allow undefined
- # symbols for shared objects in some cases.
- if test -z "$MOZ_NO_WLZDEFS"; then
- # Don't allow undefined symbols in libraries
- DSO_LDOPTS="$DSO_LDOPTS -Wl,-z,defs"
- fi
- fi
- WARNINGS_AS_ERRORS='-Werror'
- # Don't treat -Wuninitialized as error b/c it has lots of false positives.
- WARNINGS_AS_ERRORS="$WARNINGS_AS_ERRORS -Wno-error=uninitialized"
- # Don't treat -Wdeprecated-declarations as error b/c we don't want our
- # builds held hostage when a platform-specific API is suddenly deprecated.
- WARNINGS_AS_ERRORS="$WARNINGS_AS_ERRORS -Wno-error=deprecated-declarations"
- DSO_CFLAGS=''
- DSO_PIC_CFLAGS='-fPIC'
- ASFLAGS="$ASFLAGS -fPIC"
- AC_MSG_CHECKING([for --noexecstack option to as])
- _SAVE_CFLAGS=$CFLAGS
- CFLAGS="$CFLAGS -Wa,--noexecstack"
- AC_TRY_COMPILE(,,AC_MSG_RESULT([yes])
- [ASFLAGS="$ASFLAGS -Wa,--noexecstack"],
- AC_MSG_RESULT([no]))
- CFLAGS=$_SAVE_CFLAGS
- AC_MSG_CHECKING([for -z noexecstack option to ld])
- _SAVE_LDFLAGS=$LDFLAGS
- LDFLAGS="$LDFLAGS -Wl,-z,noexecstack"
- AC_TRY_LINK(,,AC_MSG_RESULT([yes]),
- AC_MSG_RESULT([no])
- LDFLAGS=$_SAVE_LDFLAGS)
- AC_MSG_CHECKING([for --build-id option to ld])
- _SAVE_LDFLAGS=$LDFLAGS
- LDFLAGS="$LDFLAGS -Wl,--build-id"
- AC_TRY_LINK(,,AC_MSG_RESULT([yes])
- [NSPR_LDFLAGS="$NSPR_LDFLAGS -Wl,--build-id"],
- AC_MSG_RESULT([no])
- LDFLAGS=$_SAVE_LDFLAGS)
-
-
- # Check for -mssse3 on $CC
- AC_MSG_CHECKING([if toolchain supports -mssse3 option])
- HAVE_TOOLCHAIN_SUPPORT_MSSSE3=
- _SAVE_CFLAGS=$CFLAGS
- CFLAGS="$CFLAGS -mssse3"
- AC_TRY_COMPILE([asm ("pmaddubsw %xmm2,%xmm3");],,AC_MSG_RESULT([yes])
- [HAVE_TOOLCHAIN_SUPPORT_MSSSE3=1],
- AC_MSG_RESULT([no]))
- CFLAGS=$_SAVE_CFLAGS
- AC_SUBST(HAVE_TOOLCHAIN_SUPPORT_MSSSE3)
-
- # Check for -msse4.1 on $CC
- AC_MSG_CHECKING([if toolchain supports -msse4.1 option])
- HAVE_TOOLCHAIN_SUPPORT_MSSE4_1=
- _SAVE_CFLAGS=$CFLAGS
- CFLAGS="$CFLAGS -msse4.1"
- AC_TRY_COMPILE([asm ("pmulld %xmm6,%xmm0");],,AC_MSG_RESULT([yes])
- [HAVE_TOOLCHAIN_SUPPORT_MSSE4_1=1],
- AC_MSG_RESULT([no]))
- CFLAGS=$_SAVE_CFLAGS
- AC_SUBST(HAVE_TOOLCHAIN_SUPPORT_MSSE4_1)
-
- # Turn on GNU-specific warnings:
- # -Wall - turn on a lot of warnings
- # -Wpointer-arith - good to have
- # -Wdeclaration-after-statement - MSVC doesn't like these
- # -Werror=return-type - catches missing returns, zero false positives
- # -Wtype-limits - catches overflow bugs, few false positives
- # -Wempty-body - catches bugs, e.g. "if (c); foo();", few false positives
- # -Wsign-compare - catches comparison of signed and unsigned types
- #
- _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wall -Wpointer-arith -Wdeclaration-after-statement"
- MOZ_C_SUPPORTS_WARNING(-W, error=return-type, ac_c_has_werror_return_type)
- MOZ_C_SUPPORTS_WARNING(-W, type-limits, ac_c_has_wtype_limits)
- MOZ_C_SUPPORTS_WARNING(-W, empty-body, ac_c_has_wempty_body)
- MOZ_C_SUPPORTS_WARNING(-W, sign-compare, ac_c_has_sign_compare)
-
- # Turn off the following warnings that -Wall turns on:
- # -Wno-unused - lots of violations in third-party code
- #
- _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wno-unused"
-
- if test -z "$INTEL_CC" -a -z "$CLANG_CC"; then
- # Don't use -Wcast-align with ICC or clang
- case "$CPU_ARCH" in
- # And don't use it on hppa, ia64, sparc, arm, since it's noisy there
- hppa | ia64 | sparc | arm)
- ;;
- *)
- _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wcast-align"
- ;;
- esac
- fi
-
- _DEFINES_CFLAGS='-include $(DEPTH)/mozilla-config.h -DMOZILLA_CLIENT'
- _USE_CPP_INCLUDE_FLAG=1
- ASFLAGS="$ASFLAGS $_DEFINES_CFLAGS"
-
-elif test "$SOLARIS_SUNPRO_CC"; then
- DSO_CFLAGS=''
- if test "$CPU_ARCH" = "sparc"; then
- # for Sun Studio on Solaris/SPARC
- DSO_PIC_CFLAGS='-xcode=pic32'
- else
- DSO_PIC_CFLAGS='-KPIC'
- fi
- _DEFINES_CFLAGS='$(ACDEFINES) -D_MOZILLA_CONFIG_H_ -DMOZILLA_CLIENT'
-else
- MKSHLIB='$(LD) $(DSO_LDOPTS) -h $(notdir $@) -o $@'
- MKCSHLIB='$(LD) $(DSO_LDOPTS) -h $(notdir $@) -o $@'
-
- DSO_LDOPTS='-shared'
- if test "$GNU_LD"; then
- # Don't allow undefined symbols in libraries
- DSO_LDOPTS="$DSO_LDOPTS -z defs"
- fi
-
- DSO_CFLAGS=''
- DSO_PIC_CFLAGS='-KPIC'
- _DEFINES_CFLAGS='$(ACDEFINES) -D_MOZILLA_CONFIG_H_ -DMOZILLA_CLIENT'
-fi
-
-if test "$GNU_CXX"; then
- # FIXME: Let us build with strict aliasing. bug 414641.
- CXXFLAGS="$CXXFLAGS -fno-exceptions -fno-strict-aliasing"
-
- # Turn on GNU-specific warnings:
- # -Wall - turn on a lot of warnings
- # -Wpointer-arith - good to have
- # -Woverloaded-virtual - ???
- # -Werror=return-type - catches missing returns, zero false positives
- # -Wtype-limits - catches overflow bugs, few false positives
- # -Wempty-body - catches bugs, e.g. "if (c); foo();", few false positives
- # -Wsign-compare - catches comparison of signed and unsigned types
- #
- _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wall -Wpointer-arith -Woverloaded-virtual"
- MOZ_CXX_SUPPORTS_WARNING(-W, error=return-type, ac_cxx_has_werror_return_type)
- MOZ_CXX_SUPPORTS_WARNING(-W, type-limits, ac_cxx_has_wtype_limits)
- MOZ_CXX_SUPPORTS_WARNING(-W, empty-body, ac_cxx_has_wempty_body)
- MOZ_CXX_SUPPORTS_WARNING(-W, sign-compare, ac_cxx_has_sign_compare)
-
- # Turn off the following warnings that -Wall turns on:
- # -Wno-invalid-offsetof - we use offsetof on non-POD types frequently
- #
- MOZ_CXX_SUPPORTS_WARNING(-Wno-, invalid-offsetof, ac_cxx_has_wno_invalid_offsetof)
-
- if test -z "$INTEL_CXX" -a -z "$CLANG_CXX"; then
- # Don't use -Wcast-align with ICC or clang
- case "$CPU_ARCH" in
- # And don't use it on hppa, ia64, sparc, arm, since it's noisy there
- hppa | ia64 | sparc | arm)
- ;;
- *)
- _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wcast-align"
- ;;
- esac
- fi
-
- _DEFINES_CXXFLAGS='-DMOZILLA_CLIENT -include $(DEPTH)/mozilla-config.h'
- _USE_CPP_INCLUDE_FLAG=1
-
- # Recent clang and gcc support C++11 deleted functions without warnings if
- # compiling with -std=c++0x or -std=gnu++0x (or c++11 or gnu++11 in very new
- # versions). We can't use -std=c++0x yet, so gcc's support must remain
- # unused. But clang's warning can be disabled, so when compiling with clang
- # we use it to opt out of the warning, enabling (macro-encapsulated) use of
- # deleted function syntax.
- if test "$CLANG_CXX"; then
- _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wno-c++0x-extensions"
- MOZ_CXX_SUPPORTS_WARNING(-Wno-, extended-offsetof, ac_cxx_has_wno_extended_offsetof)
- fi
-
-else
- _DEFINES_CXXFLAGS='-DMOZILLA_CLIENT -D_MOZILLA_CONFIG_H_ $(ACDEFINES)'
-fi
-
-dnl gcc can come with its own linker so it is better to use the pass-thru calls
-dnl MKSHLIB_FORCE_ALL is used to force the linker to include all object
-dnl files present in an archive. MKSHLIB_UNFORCE_ALL reverts the linker to
-dnl normal behavior.
-dnl ========================================================
-MKSHLIB_FORCE_ALL=
-MKSHLIB_UNFORCE_ALL=
-
-if test "$COMPILE_ENVIRONMENT"; then
-if test "$GNU_CC"; then
- AC_MSG_CHECKING(whether ld has archive extraction flags)
- AC_CACHE_VAL(ac_cv_mkshlib_force_and_unforce,
- [_SAVE_LDFLAGS=$LDFLAGS; _SAVE_LIBS=$LIBS
- ac_cv_mkshlib_force_and_unforce="no"
- exec 3<&0 <<LOOP_INPUT
- force="-Wl,--whole-archive"; unforce="-Wl,--no-whole-archive"
- force="-Wl,-z -Wl,allextract"; unforce="-Wl,-z -Wl,defaultextract"
- force="-Wl,-all"; unforce="-Wl,-none"
-LOOP_INPUT
- while read line
- do
- eval $line
- LDFLAGS=$force
- LIBS=$unforce
- AC_TRY_LINK(,, ac_cv_mkshlib_force_and_unforce=$line; break)
- done
- exec 0<&3 3<&-
- LDFLAGS=$_SAVE_LDFLAGS; LIBS=$_SAVE_LIBS
- ])
- if test "$ac_cv_mkshlib_force_and_unforce" = "no"; then
- AC_MSG_RESULT(no)
- else
- AC_MSG_RESULT(yes)
- eval $ac_cv_mkshlib_force_and_unforce
- MKSHLIB_FORCE_ALL=$force
- MKSHLIB_UNFORCE_ALL=$unforce
- fi
-fi # GNU_CC
-fi # COMPILE_ENVIRONMENT
-
-dnl ========================================================
-dnl Checking for 64-bit OS
-dnl ========================================================
-if test "$COMPILE_ENVIRONMENT"; then
-AC_LANG_SAVE
-AC_LANG_C
-AC_MSG_CHECKING(for 64-bit OS)
-AC_TRY_COMPILE([$configure_static_assert_macros],
- [CONFIGURE_STATIC_ASSERT(sizeof(void*) == 8)],
- result="yes", result="no")
-AC_MSG_RESULT("$result")
-if test "$result" = "yes"; then
- AC_DEFINE(HAVE_64BIT_OS)
- HAVE_64BIT_OS=1
-fi
-AC_SUBST(HAVE_64BIT_OS)
-AC_LANG_RESTORE
-fi # COMPILE_ENVIRONMENT
-
-dnl ========================================================
-dnl Enable high-memory support on OS/2 by default.
-dnl ========================================================
-MOZ_OS2_HIGH_MEMORY=1
-MOZ_ARG_DISABLE_BOOL(os2-high-mem,
-[ --disable-os2-high-mem Disable high-memory support on OS/2],
- MOZ_OS2_HIGH_MEMORY=,
- MOZ_OS2_HIGH_MEMORY=1 )
-AC_SUBST(MOZ_OS2_HIGH_MEMORY)
-
-dnl ========================================================
-dnl = Use profiling compile flags
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(profiling,
-[ --enable-profiling Set compile flags necessary for using sampling profilers (e.g. shark, perf)],
- MOZ_PROFILING=1,
- MOZ_PROFILING= )
-
-# For profiling builds keep the symbol information
-if test "$MOZ_PROFILING" -a -z "$STRIP_FLAGS"; then
- case "$OS_TARGET" in
- Linux|DragonFly|FreeBSD|NetBSD|OpenBSD)
- STRIP_FLAGS="--strip-debug"
- ;;
- esac
-fi
-
-dnl ========================================================
-dnl = Use incremental GC
-dnl ========================================================
-JSGC_INCREMENTAL=1
-MOZ_ARG_DISABLE_BOOL(gcincremental,
-[ --disable-gcincremental Disable incremental GC],
- JSGC_INCREMENTAL= )
-if test -n "$JSGC_INCREMENTAL"; then
- AC_DEFINE(JSGC_INCREMENTAL)
-fi
-
-dnl ========================================================
-dnl = Use generational GC
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(gcgenerational,
-[ --enable-gcgenerational Enable generational GC],
- JSGC_GENERATIONAL=1,
- JSGC_GENERATIONAL= )
-if test -n "$JSGC_GENERATIONAL"; then
- AC_DEFINE(JSGC_GENERATIONAL)
-fi
-
-dnl ========================================================
-dnl = Perform moving GC stack rooting analysis
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(root-analysis,
-[ --enable-root-analysis Enable moving GC stack root analysis],
- JSGC_ROOT_ANALYSIS=1,
- JSGC_ROOT_ANALYSIS= )
-if test -n "$JSGC_ROOT_ANALYSIS"; then
- AC_DEFINE(JSGC_ROOT_ANALYSIS)
-fi
-
-dnl ========================================================
-dnl = Use exact stack rooting for GC
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(exact-rooting,
-[ --enable-exact-rooting Enable use of exact stack roots for GC],
- JSGC_USE_EXACT_ROOTING=1,
- JSGC_USE_EXACT_ROOTING= )
-if test -n "$JSGC_USE_EXACT_ROOTING"; then
- AC_DEFINE(JSGC_USE_EXACT_ROOTING)
-fi
-
-dnl ========================================================
-dnl = Use Valgrind
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(valgrind,
-[ --enable-valgrind Enable Valgrind integration hooks (default=no)],
- MOZ_VALGRIND=1,
- MOZ_VALGRIND= )
-if test -n "$MOZ_VALGRIND"; then
- MOZ_CHECK_HEADER([valgrind/valgrind.h], [],
- AC_MSG_ERROR(
- [--enable-valgrind specified but Valgrind is not installed]))
- AC_DEFINE(MOZ_VALGRIND)
-fi
-AC_SUBST(MOZ_VALGRIND)
-
-dnl ========================================================
-dnl jprof
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(jprof,
-[ --enable-jprof Enable jprof profiling tool (needs mozilla/tools/jprof). Implies --enable-profiling.],
- MOZ_JPROF=1,
- MOZ_JPROF= )
-if test -n "$MOZ_JPROF"; then
- MOZ_PROFILING=1
- AC_DEFINE(MOZ_JPROF)
-fi
-
-dnl ========================================================
-dnl SPS Profiler
-dnl ========================================================
-MOZ_ENABLE_PROFILER_SPS=1
-
-case "${OS_TARGET}" in
-Android)
- case "${CPU_ARCH}" in
- x86 | arm) ;;
- *)
- MOZ_ENABLE_PROFILER_SPS=
- esac
- ;;
-Linux)
- case "${CPU_ARCH}" in
- x86 | x86_64) ;;
- *)
- MOZ_ENABLE_PROFILER_SPS=
- esac
- ;;
-WINNT|Darwin) ;;
-*)
- MOZ_ENABLE_PROFILER_SPS=
- ;;
-esac
-
-if test -n "$MOZ_ENABLE_PROFILER_SPS"; then
- AC_DEFINE(MOZ_ENABLE_PROFILER_SPS)
-fi
-
-dnl ========================================================
-dnl shark
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(shark,
-[ --enable-shark Enable shark remote profiling. Implies --enable-profiling.],
- MOZ_SHARK=1,
- MOZ_SHARK= )
-if test -n "$MOZ_SHARK"; then
- MOZ_PROFILING=1
- AC_DEFINE(MOZ_SHARK)
-fi
-
-dnl ========================================================
-dnl instruments
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(instruments,
-[ --enable-instruments Enable instruments remote profiling. Implies --enable-profiling.],
- MOZ_INSTRUMENTS=1,
- MOZ_INSTRUMENTS= )
-if test -n "$MOZ_INSTRUMENTS"; then
- MOZ_PROFILING=1
- AC_DEFINE(MOZ_INSTRUMENTS)
-fi
-
-dnl ========================================================
-dnl callgrind
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(callgrind,
-[ --enable-callgrind Enable callgrind profiling. Implies --enable-profiling.],
- MOZ_CALLGRIND=1,
- MOZ_CALLGRIND= )
-if test -n "$MOZ_CALLGRIND"; then
- MOZ_PROFILING=1
- AC_DEFINE(MOZ_CALLGRIND)
-fi
-
-dnl ========================================================
-dnl vtune
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(vtune,
-[ --enable-vtune Enable vtune profiling. Implies --enable-profiling.],
- MOZ_VTUNE=1,
- MOZ_VTUNE= )
-if test -n "$MOZ_VTUNE"; then
- MOZ_PROFILING=1
- AC_DEFINE(MOZ_VTUNE)
-fi
-
-dnl ========================================================
-dnl Profiling
-dnl ========================================================
-if test -n "$MOZ_PROFILING"; then
- AC_DEFINE(MOZ_PROFILING)
-fi
-
-dnl ========================================================
-dnl System overrides of the defaults for host
-dnl ========================================================
-case "$host" in
-*mingw*)
- if test -n "$_WIN32_MSVC"; then
- HOST_AR=lib
- HOST_AR_FLAGS='-NOLOGO -OUT:"$@"'
- HOST_CFLAGS="$HOST_CFLAGS -TC -nologo -Fd\$(HOST_PDBFILE)"
- HOST_RANLIB='echo ranlib'
- else
- HOST_CFLAGS="$HOST_CFLAGS -mwindows"
- fi
- HOST_CFLAGS="$HOST_CFLAGS -DXP_WIN32 -DXP_WIN -DWIN32 -D_WIN32 -DNO_X11 -D_CRT_SECURE_NO_WARNINGS"
- HOST_NSPR_MDCPUCFG='\"md/_winnt.cfg\"'
- HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}"
- HOST_BIN_SUFFIX=.exe
- case "$host" in
- *mingw*)
- PERL="/bin/sh ${_topsrcdir}/build/msys-perl-wrapper"
- ;;
- esac
-
- case "${host_cpu}" in
- i*86)
- if test -n "$_WIN32_MSVC"; then
- HOST_LDFLAGS="$HOST_LDFLAGS -MACHINE:X86"
- fi
- ;;
- x86_64)
- if test -n "$_WIN32_MSVC"; then
- HOST_LDFLAGS="$HOST_LDFLAGS -MACHINE:X64"
- fi
- HOST_CFLAGS="$HOST_CFLAGS -D_AMD64_"
- ;;
- esac
- ;;
-
-*-darwin*)
- HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX -DXP_MACOSX -DNO_X11"
- HOST_NSPR_MDCPUCFG='\"md/_darwin.cfg\"'
- HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}"
- ;;
-
-*-linux*|*-kfreebsd*-gnu|*-gnu*)
- HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
- HOST_NSPR_MDCPUCFG='\"md/_linux.cfg\"'
- HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}"
- ;;
-
-*os2*)
- HOST_CFLAGS="$HOST_CFLAGS -DXP_OS2 -DNO_X11 -Zomf"
- HOST_NSPR_MDCPUCFG='\"md/_os2.cfg\"'
- HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}"
- HOST_BIN_SUFFIX=.exe
- MOZ_FIX_LINK_PATHS=
- ;;
-
-*)
- HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
- HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}"
- ;;
-esac
-
-dnl Check for using a custom <stdint.h> implementation
-dnl ========================================================
-AC_MSG_CHECKING(for custom <stdint.h> implementation)
-if test "$MOZ_CUSTOM_STDINT_H"; then
- AC_DEFINE_UNQUOTED(MOZ_CUSTOM_STDINT_H, "$MOZ_CUSTOM_STDINT_H")
- AC_MSG_RESULT(using $MOZ_CUSTOM_STDINT_H)
-else
- AC_MSG_RESULT(none specified)
-fi
-
-dnl Get mozilla version from central milestone file
-MOZILLA_VERSION=`$PERL $srcdir/config/milestone.pl -topsrcdir $srcdir`
-MOZILLA_UAVERSION=`$PERL $srcdir/config/milestone.pl -topsrcdir $srcdir -uaversion`
-MOZILLA_SYMBOLVERSION=`$PERL $srcdir/config/milestone.pl -topsrcdir $srcdir -symbolversion`
-
-dnl Get version of various core apps from the version files.
-FIREFOX_VERSION=`cat $_topsrcdir/browser/config/version.txt`
-
-if test -z "$FIREFOX_VERSION"; then
- AC_MSG_ERROR([FIREFOX_VERSION is unexpectedly blank.])
-fi
-
-AC_DEFINE_UNQUOTED(MOZILLA_VERSION,"$MOZILLA_VERSION")
-AC_DEFINE_UNQUOTED(MOZILLA_VERSION_U,$MOZILLA_VERSION)
-AC_DEFINE_UNQUOTED(MOZILLA_UAVERSION,"$MOZILLA_UAVERSION")
-AC_SUBST(MOZILLA_SYMBOLVERSION)
-
-MOZ_DOING_LTO(lto_is_enabled)
-
-dnl ========================================================
-dnl System overrides of the defaults for target
-dnl ========================================================
-
-case "$target" in
-*-aix*)
- AC_DEFINE(AIX)
- if test ! "$GNU_CC"; then
- if test ! "$HAVE_64BIT_OS"; then
- # Compiling with Visual Age C++ object model compat is the
- # default. To compile with object model ibm, add
- # AIX_OBJMODEL=ibm to .mozconfig.
- if test "$AIX_OBJMODEL" = "ibm"; then
- CXXFLAGS="$CXXFLAGS -qobjmodel=ibm"
- else
- AIX_OBJMODEL=compat
- fi
- else
- AIX_OBJMODEL=compat
- fi
- AC_SUBST(AIX_OBJMODEL)
- DSO_LDOPTS='-qmkshrobj=1'
- DSO_CFLAGS='-qflag=w:w'
- DSO_PIC_CFLAGS=
- LDFLAGS="$LDFLAGS -Wl,-brtl -blibpath:/usr/lib:/lib"
- MOZ_FIX_LINK_PATHS=
- MKSHLIB='$(CXX) $(DSO_LDOPTS) -o $@'
- MKCSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
- if test "$COMPILE_ENVIRONMENT"; then
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- AC_MSG_CHECKING([for IBM XLC/C++ compiler version >= 9.0.0.7])
- AC_TRY_COMPILE([],
- [#if (__IBMCPP__ < 900)
- #error "Bad compiler"
- #endif],
- _BAD_COMPILER=,_BAD_COMPILER=1)
- if test -n "$_BAD_COMPILER"; then
- AC_MSG_RESULT([no])
- AC_MSG_ERROR([IBM XLC/C++ 9.0.0.7 or higher is required to build.])
- else
- AC_MSG_RESULT([yes])
- fi
- AC_LANG_RESTORE
- TARGET_COMPILER_ABI="ibmc"
- CC_VERSION=`lslpp -Lcq vac.C 2>/dev/null | awk -F: '{ print $3 }'`
- CXX_VERSION=`lslpp -Lcq vacpp.cmp.core 2>/dev/null | awk -F: '{ print $3 }'`
- fi
- fi
- case "${target_os}" in
- aix4.1*)
- DLL_SUFFIX='_shr.a'
- ;;
- esac
- if test "$COMPILE_ENVIRONMENT"; then
- MOZ_CHECK_HEADERS(sys/inttypes.h)
- fi
- AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
- ;;
-
-*-darwin*)
- MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
- MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
- MOZ_OPTIMIZE_FLAGS="-O3"
- # Statically disable jemalloc on 10.5 and 32-bit 10.6. See bug 702250.
- if test "$HAVE_64BIT_OS"; then
- MOZ_MEMORY=1
- fi
- DLL_SUFFIX=".dylib"
- DSO_LDOPTS=''
- STRIP_FLAGS="$STRIP_FLAGS -x -S"
- # Check whether we're targeting OS X or iOS
- AC_CACHE_CHECK(for iOS target,
- ac_cv_ios_target,
- [AC_TRY_COMPILE([#include <TargetConditionals.h>
-#if !(TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR)
-#error not iOS
-#endif],
- [],
- ac_cv_ios_target="yes",
- ac_cv_ios_target="no")])
- if test "$ac_cv_ios_target" = "yes"; then
- AC_DEFINE(XP_IOS)
- AC_DEFINE(XP_DARWIN)
- _PLATFORM_DEFAULT_TOOLKIT='cairo-uikit'
- else
- AC_DEFINE(XP_MACOSX)
- AC_DEFINE(XP_DARWIN)
- _PLATFORM_DEFAULT_TOOLKIT='cairo-cocoa'
- # The ExceptionHandling framework is needed for Objective-C exception
- # logging code in nsObjCExceptions.h. Currently we only use that in debug
- # builds.
- MOZ_DEBUG_LDFLAGS="$MOZ_DEBUG_LDFLAGS -framework ExceptionHandling";
- fi
- TARGET_NSPR_MDCPUCFG='\"md/_darwin.cfg\"'
-
-
- if test "x$lto_is_enabled" = "xyes"; then
- echo "Skipping -dead_strip because lto is enabled."
- dnl DTrace and -dead_strip don't interact well. See bug 403132.
- dnl ===================================================================
- elif test "x$enable_dtrace" = "xyes"; then
- echo "Skipping -dead_strip because DTrace is enabled. See bug 403132."
- else
- dnl check for the presence of the -dead_strip linker flag
- AC_MSG_CHECKING([for -dead_strip option to ld])
- _SAVE_LDFLAGS=$LDFLAGS
- LDFLAGS="$LDFLAGS -Wl,-dead_strip"
- AC_TRY_LINK(,[return 0;],_HAVE_DEAD_STRIP=1,_HAVE_DEAD_STRIP=)
- if test -n "$_HAVE_DEAD_STRIP" ; then
- AC_MSG_RESULT([yes])
- MOZ_OPTIMIZE_LDFLAGS="-Wl,-dead_strip"
- else
- AC_MSG_RESULT([no])
- fi
-
- LDFLAGS=$_SAVE_LDFLAGS
- fi
-
- dnl With newer linkers we need to pass -allow_heap_execute because of
- dnl Microsoft Silverlight (5.1.10411.0 at least).
- AC_MSG_CHECKING([for -allow_heap_execute option to ld])
- _SAVE_LDFLAGS=$LDFLAGS
- LDFLAGS="$LDFLAGS -Wl,-allow_heap_execute"
- AC_TRY_LINK(,[return 0;],_HAVE_ALLOW_HEAP_EXECUTE=1,
- _HAVE_ALLOW_HEAP_EXECUTE=)
- if test -n "$_HAVE_ALLOW_HEAP_EXECUTE" ; then
- AC_MSG_RESULT([yes])
- MOZ_ALLOW_HEAP_EXECUTE_FLAGS="-Wl,-allow_heap_execute"
- else
- AC_MSG_RESULT([no])
- fi
- LDFLAGS=$_SAVE_LDFLAGS
-
- MOZ_FIX_LINK_PATHS='-Wl,-executable_path,$(LIBXUL_DIST)/bin'
- ;;
-
-ia64*-hpux*)
- DLL_SUFFIX=".so"
- if test ! "$GNU_CC"; then
- DSO_LDOPTS='-b'
- DSO_CFLAGS=""
- DSO_PIC_CFLAGS=
- MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -o $@'
- MKCSHLIB='$(CC) $(CFLAGS) $(DSO_LDOPTS) -o $@'
- CXXFLAGS="$CXXFLAGS -Wc,-ansi_for_scope,on"
- else
- DSO_LDOPTS='-b -E'
- MKSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
- MKCSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
- fi
- MOZ_FIX_LINK_PATHS=
- AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
- AC_DEFINE(_LARGEFILE64_SOURCE)
- ;;
-
-*-hpux*)
- DLL_SUFFIX=".sl"
- if test ! "$GNU_CC"; then
- DSO_LDOPTS='-b -Wl,+s'
- DSO_CFLAGS=""
- DSO_PIC_CFLAGS="+Z"
- MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -L$(LIBXUL_DIST)/bin -o $@'
- MKCSHLIB='$(LD) -b +s -L$(LIBXUL_DIST)/bin -o $@'
- CXXFLAGS="$CXXFLAGS -Wc,-ansi_for_scope,on"
- else
- DSO_LDOPTS='-b -E +s'
- MKSHLIB='$(LD) $(DSO_LDOPTS) -L$(LIBXUL_DIST)/bin -L$(LIBXUL_DIST)/lib -o $@'
- MKCSHLIB='$(LD) $(DSO_LDOPTS) -L$(LIBXUL_DIST)/bin -L$(LIBXUL_DIST)/lib -o $@'
- fi
- MOZ_POST_PROGRAM_COMMAND='chatr +s enable'
- AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
- ;;
-
-*-android*|*-linuxandroid*)
- AC_DEFINE(NO_PW_GECOS)
- no_x=yes
- if test -n "$gonkdir"; then
- _PLATFORM_DEFAULT_TOOLKIT=cairo-gonk
- MOZ_B2G_RIL=1
- MOZ_B2G_FM=1
- else
- _PLATFORM_DEFAULT_TOOLKIT=cairo-android
- MOZ_LINKER=1
- fi
- TARGET_NSPR_MDCPUCFG='\"md/_linux.cfg\"'
-
- MOZ_GFX_OPTIMIZE_MOBILE=1
- MOZ_OPTIMIZE_FLAGS="-Os -freorder-blocks -fno-reorder-functions"
- ;;
-
-*-*linux*)
- # Note: both GNU_CC and INTEL_CC are set when using Intel's C compiler.
- # Similarly for GNU_CXX and INTEL_CXX.
- if test "$INTEL_CC" -o "$INTEL_CXX"; then
- # -Os has been broken on Intel's C/C++ compilers for quite a
- # while; Intel recommends against using it.
- MOZ_OPTIMIZE_FLAGS="-O2"
- MOZ_DEBUG_FLAGS="-g"
- elif test "$GNU_CC" -o "$GNU_CXX"; then
- case $GCC_VERSION in
- 4.5.*)
- # -Os is broken on gcc 4.5.x we need to tweak it to get good results.
- MOZ_OPTIMIZE_SIZE_TWEAK="-finline-limit=50"
- esac
- MOZ_PGO_OPTIMIZE_FLAGS="-O3"
- MOZ_OPTIMIZE_FLAGS="-Os -freorder-blocks $MOZ_OPTIMIZE_SIZE_TWEAK"
- MOZ_DEBUG_FLAGS="-g"
- fi
-
- TARGET_NSPR_MDCPUCFG='\"md/_linux.cfg\"'
-
- MOZ_MEMORY=1
-
- case "${target_cpu}" in
- alpha*)
- CFLAGS="$CFLAGS -mieee"
- CXXFLAGS="$CXXFLAGS -mieee"
- ;;
- i*86)
- USE_ELF_DYNSTR_GC=1
- ;;
- mips*)
- MOZ_DEBUG_FLAGS="-g" # We want inlining
- ;;
- esac
-
- if test -z "$MC"; then
- MC=mc.exe
- fi
- ;;
-*-mingw*)
- DSO_CFLAGS=
- DSO_PIC_CFLAGS=
- DLL_SUFFIX=.dll
- RC=rc.exe
- MC=mc.exe
- # certain versions of cygwin's makedepend barf on the
- # #include <string> vs -I./dist/include/string issue so don't use it
- if test -n "$GNU_CC" -o -n "$CLANG_CC"; then
- CC="$CC -mwindows"
- CXX="$CXX -mwindows"
- CPP="$CPP -mwindows"
- CFLAGS="$CFLAGS -mms-bitfields"
- CXXFLAGS="$CXXFLAGS -mms-bitfields"
- DSO_LDOPTS='-shared'
- MKSHLIB='$(CXX) $(DSO_LDOPTS) -o $@'
- MKCSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
- RC='$(WINDRES)'
- # Use static libgcc and libstdc++
- LDFLAGS="$LDFLAGS -static-libgcc -static-libstdc++"
- NSPR_LDFLAGS="$NSPR_LDFLAGS -static-libgcc"
- # Use temp file for windres (bug 213281)
- RCFLAGS='-O coff --use-temp-file'
- # mingw doesn't require kernel32, user32, and advapi32 explicitly
- LIBS="$LIBS -luuid -lgdi32 -lwinmm -lwsock32 -luserenv -lsecur32 -lnetapi32"
- MOZ_FIX_LINK_PATHS=
- DYNAMIC_XPCOM_LIBS='-L$(LIBXUL_DIST)/lib -lxul -lxpcom_core -lmozalloc'
- XPCOM_FROZEN_LDOPTS='-L$(LIBXUL_DIST)/lib -lxul -lmozalloc'
- DLL_PREFIX=
- IMPORT_LIB_SUFFIX=dll.a
-
- # We use mix of both POSIX and Win32 printf format across the tree, so format
- # warnings are useless on mingw.
- MOZ_C_SUPPORTS_WARNING(-Wno-, format, ac_c_has_wno_format)
- MOZ_CXX_SUPPORTS_WARNING(-Wno-, format, ac_cxx_has_wno_format)
- else
- TARGET_COMPILER_ABI=msvc
- HOST_CC='$(CC)'
- HOST_CXX='$(CXX)'
- HOST_LD='$(LD)'
- if test "$AS_BIN"; then
- AS="$(basename "$AS_BIN")"
- fi
- AR='lib'
- AR_FLAGS='-NOLOGO -OUT:"$@"'
- AR_EXTRACT=
- RANLIB='echo not_ranlib'
- STRIP='echo not_strip'
- PKG_SKIP_STRIP=1
- XARGS=xargs
- ZIP=zip
- UNZIP=unzip
- DOXYGEN=:
- ASM_SUFFIX=asm
- OBJ_SUFFIX=obj
- LIB_SUFFIX=lib
- DLL_PREFIX=
- LIB_PREFIX=
- IMPORT_LIB_SUFFIX=lib
- MKSHLIB='$(LD) -NOLOGO -DLL -OUT:$@ -PDB:$(LINK_PDBFILE) $(DSO_LDOPTS)'
- MKCSHLIB='$(LD) -NOLOGO -DLL -OUT:$@ -PDB:$(LINK_PDBFILE) $(DSO_LDOPTS)'
- MKSHLIB_FORCE_ALL=
- MKSHLIB_UNFORCE_ALL=
- DSO_LDOPTS=-SUBSYSTEM:WINDOWS,5.01
- _USE_CPP_INCLUDE_FLAG=1
- _DEFINES_CFLAGS='-FI $(DEPTH)/dist/include/mozilla-config.h -DMOZILLA_CLIENT'
- _DEFINES_CXXFLAGS='-FI $(DEPTH)/dist/include/mozilla-config.h -DMOZILLA_CLIENT'
- CFLAGS="$CFLAGS -W3 -Gy -Fd\$(COMPILE_PDBFILE)"
- CXXFLAGS="$CXXFLAGS -W3 -Gy -Fd\$(COMPILE_PDBFILE)"
- # khuey says we can safely ignore MSVC warning C4251
- # MSVC warning C4244 (implicit type conversion may lose data) warns
- # and requires workarounds for perfectly valid code. Also, GCC/clang
- # don't warn about it by default. So for consistency/sanity, we turn
- # it off on MSVC, too.
- # MSVC warning C4345 warns of newly conformant behavior as of VS2003.
- # MSVC warning C4351 warns of newly conformant behavior as of VS2005.
- # MSVC warning C4482 warns when an enum value is refered specifing the
- # name of the enum itself. This behavior is allowed in C++11, and the
- # warning has been removed in VS2012.
- # MSVC warning C4800 warns when a value is implicitly cast to bool,
- # because this also forces narrowing to a single byte, which can be a
- # perf hit. But this matters so little in practice (and often we want
- # that behavior) that it's better to turn it off.
- # MSVC warning C4819 warns some UTF-8 characters (e.g. copyright sign)
- # on non-Western system locales even if it is in a comment.
- CFLAGS="$CFLAGS -wd4244 -wd4819 -wd4267"
- CXXFLAGS="$CXXFLAGS -wd4251 -wd4244 -wd4345 -wd4351 -wd4482 -wd4800 -wd4819 -wd4267"
- # make 'foo == bar;' error out
- CFLAGS="$CFLAGS -we4553"
- CXXFLAGS="$CXXFLAGS -we4553"
- LIBS="$LIBS kernel32.lib user32.lib gdi32.lib winmm.lib wsock32.lib advapi32.lib secur32.lib netapi32.lib"
- MOZ_DEBUG_FLAGS='-Zi'
- MOZ_DEBUG_LDFLAGS='-DEBUG -DEBUGTYPE:CV'
- WARNINGS_AS_ERRORS='-WX'
- MOZ_OPTIMIZE_FLAGS='-O1'
- MOZ_FIX_LINK_PATHS=
- DYNAMIC_XPCOM_LIBS='$(LIBXUL_DIST)/lib/xul.lib $(LIBXUL_DIST)/lib/xpcom_core.lib $(LIBXUL_DIST)/lib/mozalloc.lib'
- XPCOM_FROZEN_LDOPTS='$(LIBXUL_DIST)/lib/xul.lib $(LIBXUL_DIST)/lib/mozalloc.lib'
- LIBXUL_LIBS='$(LIBXUL_DIST)/lib/xul.lib $(LIBXUL_DIST)/lib/mozalloc.lib'
- MOZ_COMPONENT_NSPR_LIBS='$(NSPR_LIBS)'
- LDFLAGS="$LDFLAGS -LARGEADDRESSAWARE -NXCOMPAT -OPT:REF -OPT:ICF=15"
- dnl For profile-guided optimization
- PROFILE_GEN_CFLAGS="-GL"
- PROFILE_GEN_LDFLAGS="-LTCG:PGINSTRUMENT"
- dnl XXX: PGO builds can fail with warnings treated as errors,
- dnl specifically "no profile data available" appears to be
- dnl treated as an error sometimes. This might be a consequence
- dnl of using WARNINGS_AS_ERRORS in some modules, combined
- dnl with the linker doing most of the work in the whole-program
- dnl optimization/PGO case. I think it's probably a compiler bug,
- dnl but we work around it here.
- PROFILE_USE_CFLAGS="-GL -wd4624 -wd4952"
- dnl XXX: should be -LTCG:PGOPTIMIZE, but that fails on libxul.
- dnl Probably also a compiler bug, but what can you do?
- PROFILE_USE_LDFLAGS="-LTCG:PGUPDATE"
- LDFLAGS="$LDFLAGS -DYNAMICBASE"
- if test "$_MSC_VER" -ge 1500; then
- dnl VS2008 or later supports SSSE3
- HAVE_TOOLCHAIN_SUPPORT_MSSSE3=1
- AC_SUBST(HAVE_TOOLCHAIN_SUPPORT_MSSSE3)
- fi
- fi
- AC_DEFINE(HAVE_SNPRINTF)
- AC_DEFINE(_WINDOWS)
- AC_DEFINE(WIN32)
- AC_DEFINE(XP_WIN)
- AC_DEFINE(XP_WIN32)
- AC_DEFINE(HW_THREADS)
- AC_DEFINE(STDC_HEADERS)
- AC_DEFINE(NEW_H, <new>)
- AC_DEFINE(WIN32_LEAN_AND_MEAN)
- TARGET_MD_ARCH=win32
- _PLATFORM_DEFAULT_TOOLKIT='cairo-windows'
- BIN_SUFFIX='.exe'
- MOZ_USER_DIR="Mozilla"
-
- dnl Hardcode to win95 for now - cls
- TARGET_NSPR_MDCPUCFG='\"md/_win95.cfg\"'
-
- dnl set NO_X11 defines here as the general check is skipped on win32
- no_x=yes
- AC_DEFINE(NO_X11)
-
- case "$host" in
- *-mingw*)
- MOZ_BUILD_ROOT=`cd $MOZ_BUILD_ROOT && pwd -W`
- if test -n "$L10NBASEDIR"; then
- L10NBASEDIR=`cd $L10NBASEDIR && pwd -W`
- fi
- ;;
- esac
-
- case "$host" in
- *-mingw*)
- if test -z "$MOZ_TOOLS"; then
- AC_MSG_ERROR([MOZ_TOOLS is not set])
- fi
- MOZ_TOOLS_DIR=`cd $MOZ_TOOLS && pwd -W`
- if test "$?" != "0" -o -z "$MOZ_TOOLS_DIR"; then
- AC_MSG_ERROR([cd \$MOZ_TOOLS failed. MOZ_TOOLS ==? $MOZ_TOOLS])
- fi
- MOZ_TOOLS_BIN_DIR="$(cd "$MOZ_TOOLS_DIR/bin" && pwd)"
- if test `echo ${PATH}: | grep -ic "$MOZ_TOOLS_BINDIR:"` = 0; then
- AC_MSG_ERROR([\$MOZ_TOOLS\\bin must be in your path.])
- fi
- ;;
- esac
-
- case "$host_os" in
- cygwin*|msvc*|mks*)
- AC_MSG_ERROR([Using a Cygwin build environment is unsupported. Configure cannot check for presence of necessary headers. Please upgrade to MozillaBuild; see https://developer.mozilla.org/en/Windows_Build_Prerequisites.])
- ;;
- esac
-
- case "$target" in
- i*86-*)
- if test "$HAVE_64BIT_OS"; then
- AC_MSG_ERROR([You are targeting i386 but using the 64-bit compiler.])
- fi
-
- if test -n "$GNU_CC"; then
- CFLAGS="$CFLAGS -mstackrealign -fno-keep-inline-dllexport"
- CXXFLAGS="$CXXFLAGS -mstackrealign -fno-keep-inline-dllexport"
- LDFLAGS="$LDFLAGS -Wl,--enable-stdcall-fixup -Wl,--large-address-aware"
- else
- AC_DEFINE(HAVE_STDCALL)
- DSO_LDOPTS="$DSO_LDOPTS -MACHINE:X86"
- LDFLAGS="$LDFLAGS -SAFESEH"
- fi
-
- AC_DEFINE(_X86_)
- ;;
- x86_64-*)
- if test -n "$_WIN32_MSVC"; then
- DSO_LDOPTS="$DSO_LDOPTS -MACHINE:X64"
- fi
- AC_DEFINE(_AMD64_)
- ;;
- *)
- AC_DEFINE(_CPU_ARCH_NOT_DEFINED)
- ;;
- esac
- ;;
-
-*-netbsd*)
- DSO_CFLAGS=''
- CFLAGS="$CFLAGS -Dunix"
- CXXFLAGS="$CXXFLAGS -Dunix"
- if $CC -E - -dM </dev/null | grep __ELF__ >/dev/null; then
- DLL_SUFFIX=".so"
- DSO_PIC_CFLAGS='-fPIC -DPIC'
- DSO_LDOPTS='-shared'
- BIN_FLAGS='-Wl,--export-dynamic'
- else
- DSO_PIC_CFLAGS='-fPIC -DPIC'
- DLL_SUFFIX=".so.1.0"
- DSO_LDOPTS='-shared'
- fi
- # This will fail on a.out systems prior to 1.5.1_ALPHA.
- MKSHLIB_FORCE_ALL='-Wl,--whole-archive'
- MKSHLIB_UNFORCE_ALL='-Wl,--no-whole-archive'
- if test "$LIBRUNPATH"; then
- DSO_LDOPTS="-Wl,-R$LIBRUNPATH $DSO_LDOPTS"
- fi
- MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,$(notdir $@) -o $@'
- MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,$(notdir $@)) -o $@'
- ;;
-
-*-openbsd*)
- if test "$SO_VERSION"; then
- DLL_SUFFIX=".so.$SO_VERSION"
- else
- DLL_SUFFIX=".so.1.0"
- fi
- MOZ_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin -Wl,-rpath-link,$(prefix)/lib -Wl,-rpath-link,$(if $(X11BASE),$(X11BASE),/usr/X11R6)/lib'
- DSO_CFLAGS=''
- DSO_PIC_CFLAGS='-fPIC'
- DSO_LDOPTS='-shared -fPIC'
- if test "$LIBRUNPATH"; then
- DSO_LDOPTS="-R$LIBRUNPATH $DSO_LDOPTS"
- fi
- ;;
-
-*-os2*)
- MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
- MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
- AC_DEFINE(OS2)
- AC_DEFINE(XP_OS2)
- AC_DEFINE(OS2EMX_PLAIN_CHAR)
- AC_DEFINE(TCPV40HDRS)
- DLL_PREFIX=
- LIB_PREFIX=
- LIB_SUFFIX=lib
- BIN_SUFFIX=".exe"
- DLL_SUFFIX=".dll"
- IMPORT_LIB_SUFFIX=lib
- DSO_PIC_CFLAGS=
- AR=emxomfar
- AR_FLAGS='r $@'
- CFLAGS="$CFLAGS -Zomf"
- CXXFLAGS="$CXXFLAGS -Zomf"
- DSO_LDOPTS='-Zdll'
- BIN_FLAGS='-Zlinker /ST:0x100000'
- IMPLIB='emximp -o'
- FILTER='true'
- LDFLAGS='-Zmap'
- WARNINGS_AS_ERRORS='-Werror'
- MOZ_DEBUG_FLAGS="-g -fno-inline"
- MOZ_OPTIMIZE_FLAGS="-O2"
- MOZ_OPTIMIZE_LDFLAGS="-s -Zlinker /EXEPACK:2 -Zlinker /PACKCODE -Zlinker /PACKDATA"
- DYNAMIC_XPCOM_LIBS='-L$(LIBXUL_DIST)/lib $(LIBXUL_DIST)/lib/xul.lib $(LIBXUL_DIST)/lib/xpcom_core.lib $(LIBXUL_DIST)/lib/mozalloc.lib'
- LIBXUL_LIBS='-L$(LIBXUL_DIST)/lib $(LIBXUL_DIST)/lib/xul.lib $(LIBXUL_DIST)/lib/mozalloc.lib'
- TARGET_MD_ARCH=os2
- _PLATFORM_DEFAULT_TOOLKIT="cairo-os2"
- RC=rc.exe
- MC=mc.exe
- RCFLAGS='-n'
- MOZ_USER_DIR="Mozilla"
- ZIP="$ZIP -X"
- STRIP=lxlite
- STRIP_FLAGS="/yua /ydd /yxd /ynl /anp /b- /cs+ /d /i- /ml1 /mr2 /mf2 /r+ /u+ /x- /zs:0 /zx /zd"
-
- if test "$MOZTOOLS"; then
- MOZ_TOOLS_DIR=`echo $MOZTOOLS | sed -e 's|\\\\|/|g'`
- else
- AC_MSG_ERROR([MOZTOOLS is not set])
- fi
- if test -n "$MOZ_OS2_HIGH_MEMORY"; then
- DSO_LDOPTS="$DSO_LDOPTS -Zhigh-mem"
- LDFLAGS="$LDFLAGS -Zhigh-mem"
- MOZ_OPTIMIZE_LDFLAGS="$MOZ_OPTIMIZE_LDFLAGS -Zhigh-mem"
- AC_DEFINE(MOZ_OS2_HIGH_MEMORY)
- fi
-
- # GCC for OS/2 currently predefines these, but we don't want them
- _DEFINES_CFLAGS="$_DEFINES_CFLAGS -Uunix -U__unix -U__unix__"
- _DEFINES_CXXFLAGS="$_DEFINES_CXXFLAGS -Uunix -U__unix -U__unix__"
-
- AC_CACHE_CHECK(for __declspec(dllexport),
- ac_os2_declspec,
- [AC_TRY_COMPILE([__declspec(dllexport) void ac_os2_declspec(void) {}],
- [return 0;],
- ac_os2_declspec="yes",
- ac_os2_declspec="no")])
- if test "$ac_os2_declspec" != "yes"; then
- AC_MSG_ERROR([Compiler does not support __declspec(dllexport), install GCC-4.3.2 or newer])
- fi
- ;;
-
-*-solaris*)
- AC_DEFINE(SOLARIS)
- TARGET_NSPR_MDCPUCFG='\"md/_solaris.cfg\"'
- MOZ_FIX_LINK_PATHS=
- # $ORIGIN/.. is for shared libraries under components/ to locate shared
- # libraries one level up (e.g. libnspr4.so)
- if test "$SOLARIS_SUNPRO_CC"; then
- LDFLAGS="$LDFLAGS -z ignore -R '\$\$ORIGIN:\$\$ORIGIN/..' -z lazyload -z combreloc -z muldefs"
- LIBS="-lCrun -lCstd -lc $LIBS"
- AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
- CFLAGS="$CFLAGS -xlibmieee -xstrconst -xbuiltin=%all -D__FUNCTION__=__func__"
- CXXFLAGS="$CXXFLAGS -xlibmieee -xbuiltin=%all -features=tmplife,tmplrefstatic,extensions,no%except -norunpath -D__FUNCTION__=__func__ -template=no%extdef"
- LDFLAGS="-xildoff $LDFLAGS"
- if test -z "$CROSS_COMPILE" -a -f /usr/lib/ld/map.noexstk; then
- _SAVE_LDFLAGS=$LDFLAGS
- LDFLAGS="-M /usr/lib/ld/map.noexstk $LDFLAGS"
- AC_TRY_LINK([#include <stdio.h>],
- [printf("Hello World\n");],
- ,
- [LDFLAGS=$_SAVE_LDFLAGS])
- fi
- MOZ_OPTIMIZE_FLAGS="-xO4"
- MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_FLAGS) $(DSO_LDOPTS) -h $(notdir $@) -o $@'
- MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_FLAGS) $(DSO_LDOPTS) -h $(notdir $@) -o $@'
- MKSHLIB_FORCE_ALL='-z allextract'
- MKSHLIB_UNFORCE_ALL='-z defaultextract'
- DSO_LDOPTS='-G'
- AR_LIST="$AR t"
- AR_EXTRACT="$AR x"
- AR_DELETE="$AR d"
- AR='$(CXX) -xar'
- AR_FLAGS='-o $@'
- AS='/usr/ccs/bin/as'
- ASFLAGS="$ASFLAGS -K PIC -L -P -D_ASM -D__STDC__=0"
- AS_DASH_C_FLAG=''
- TARGET_COMPILER_ABI="sunc"
- CC_VERSION=`$CC -V 2>&1 | grep '^cc:' 2>/dev/null | $AWK -F\: '{ print $2 }'`
- CXX_VERSION=`$CXX -V 2>&1 | grep '^CC:' 2>/dev/null | $AWK -F\: '{ print $2 }'`
- AC_MSG_CHECKING([for Sun C++ compiler version >= 5.9])
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- AC_TRY_COMPILE([],
- [#if (__SUNPRO_CC < 0x590)
- #error "Denied"
- #endif],
- _BAD_COMPILER=,_BAD_COMPILER=1)
- if test -n "$_BAD_COMPILER"; then
- _res="no"
- AC_MSG_ERROR([Sun C++ 5.9 (Sun Studio 12) or higher is required to build. Your compiler version is $CXX_VERSION .])
- else
- _res="yes"
- fi
- AC_TRY_COMPILE([],
- [#if (__SUNPRO_CC >= 0x5100)
- #error "Sun C++ 5.10 or above"
- #endif],
- _ABOVE_SS12U1=,_ABOVE_SS12U1=1)
- if test "$_ABOVE_SS12U1"; then
- # disable xannotate
- CXXFLAGS="$CXXFLAGS -xannotate=no"
- fi
- AC_MSG_RESULT([$_res])
- AC_LANG_RESTORE
- else
- LDFLAGS="$LDFLAGS -Wl,-z,ignore -Wl,-R,'\$\$ORIGIN:\$\$ORIGIN/..' -Wl,-z,lazyload -Wl,-z,combreloc -Wl,-z,muldefs"
- LIBS="-lc $LIBS"
- MKSHLIB_FORCE_ALL='-Wl,-z -Wl,allextract'
- MKSHLIB_UNFORCE_ALL='-Wl,-z -Wl,defaultextract'
- ASFLAGS="$ASFLAGS -fPIC"
- DSO_LDOPTS='-shared'
- WARNINGS_AS_ERRORS='-Werror'
- _WARNINGS_CFLAGS=''
- _WARNINGS_CXXFLAGS=''
- if test "$OS_RELEASE" = "5.3"; then
- AC_DEFINE(MUST_UNDEF_HAVE_BOOLEAN_AFTER_INCLUDES)
- fi
- fi
- if test "$OS_RELEASE" = "5.5.1"; then
- AC_DEFINE(NEED_USLEEP_PROTOTYPE)
- fi
- ;;
-
-*-sunos*)
- DSO_LDOPTS='-Bdynamic'
- MKSHLIB='-$(LD) $(DSO_LDOPTS) -o $@'
- MKCSHLIB='-$(LD) $(DSO_LDOPTS) -o $@'
- AC_DEFINE(SUNOS4)
- AC_DEFINE(SPRINTF_RETURNS_STRING)
- case "$(target_os)" in
- sunos4.1*)
- DLL_SUFFIX='.so.1.0'
- ;;
- esac
- ;;
-
-*-os2*)
- HOST_NSPR_MDCPUCFG='\"md/_os2.cfg\"'
- ;;
-
-esac
-
-AC_SUBST(MOZ_LINKER)
-if test -n "$MOZ_LINKER"; then
- AC_DEFINE(MOZ_LINKER)
-fi
-
-dnl Only one oddball right now (QNX), but this gives us flexibility
-dnl if any other platforms need to override this in the future.
-AC_DEFINE_UNQUOTED(D_INO,$DIRENT_INO)
-
-dnl ========================================================
-dnl Any platform that doesn't have MKSHLIB_FORCE_ALL defined
-dnl by now will not have any way to link most binaries (tests
-dnl as well as viewer, apprunner, etc.), because some symbols
-dnl will be left out of the "composite" .so's by ld as unneeded.
-dnl So, by defining NO_LD_ARCHIVE_FLAGS for these platforms,
-dnl they can link in the static libs that provide the missing
-dnl symbols.
-dnl ========================================================
-NO_LD_ARCHIVE_FLAGS=
-if test -z "$MKSHLIB_FORCE_ALL" -o -z "$MKSHLIB_UNFORCE_ALL"; then
- NO_LD_ARCHIVE_FLAGS=1
-fi
-case "$target" in
-*-os2*)
- NO_LD_ARCHIVE_FLAGS=
- ;;
-*-aix4.3*|*-aix5*)
- NO_LD_ARCHIVE_FLAGS=
- ;;
-*-mingw*)
- if test -z "$GNU_CC"; then
- NO_LD_ARCHIVE_FLAGS=
- fi
- ;;
-esac
-AC_SUBST(NO_LD_ARCHIVE_FLAGS)
-
-dnl ========================================================
-dnl = Flags to strip unused symbols from .so components and
-dnl = to export jemalloc symbols when linking a program
-dnl ========================================================
-case "$target" in
- *-linux*|*-kfreebsd*-gnu|*-gnu*)
- MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,--version-script -Wl,$(BUILD_TOOLS)/gnu-ld-scripts/components-version-script'
- ;;
- *-solaris*)
- if test -z "$GNU_CC"; then
- MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-M $(BUILD_TOOLS)/gnu-ld-scripts/components-mapfile'
- else
- if test -z "$GCC_USE_GNU_LD"; then
- MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,-M -Wl,$(BUILD_TOOLS)/gnu-ld-scripts/components-mapfile'
- else
- MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,--version-script -Wl,$(BUILD_TOOLS)/gnu-ld-scripts/components-version-script'
- fi
- fi
- ;;
- *-darwin*)
- MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,-exported_symbols_list -Wl,$(BUILD_TOOLS)/gnu-ld-scripts/components-export-list'
- ;;
- *-mingw*)
- if test -n "$GNU_CC"; then
- MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,--version-script,$(BUILD_TOOLS)/gnu-ld-scripts/components-version-script'
- fi
- ;;
-esac
-
-if test -z "$COMPILE_ENVIRONMENT"; then
- SKIP_COMPILER_CHECKS=1
- SKIP_LIBRARY_CHECKS=1
-fi
-
-MOZ_COMPILER_OPTS
-if test -z "$SKIP_COMPILER_CHECKS"; then
-dnl Checks for typedefs, structures, and compiler characteristics.
-dnl ========================================================
-AC_HEADER_STDC
-AC_C_CONST
-AC_TYPE_MODE_T
-AC_TYPE_OFF_T
-AC_TYPE_PID_T
-AC_TYPE_SIZE_T
-AC_LANG_CPLUSPLUS
-AC_MSG_CHECKING(for __stdcall)
-AC_CACHE_VAL(ac_cv___stdcall,
- [AC_TRY_COMPILE([template <typename Method> struct foo;
- template <> struct foo<void (*)()> {};
- template <> struct foo<void (__stdcall*)()> {};],
- [],
- [ac_cv___stdcall=true],
- [ac_cv___stdcall=false])])
-if test "$ac_cv___stdcall" = true ; then
- AC_DEFINE(HAVE_STDCALL)
- AC_MSG_RESULT(yes)
-else
- AC_MSG_RESULT(no)
-fi
-AC_LANG_C
-AC_MSG_CHECKING(for ssize_t)
-AC_CACHE_VAL(ac_cv_type_ssize_t,
- [AC_TRY_COMPILE([#include <stdio.h>
- #include <sys/types.h>],
- [ssize_t foo = 0;],
- [ac_cv_type_ssize_t=true],
- [ac_cv_type_ssize_t=false])])
-if test "$ac_cv_type_ssize_t" = true ; then
- AC_DEFINE(HAVE_SSIZE_T)
- AC_MSG_RESULT(yes)
-else
- AC_MSG_RESULT(no)
-fi
-AC_STRUCT_ST_BLKSIZE
-AC_MSG_CHECKING(for siginfo_t)
-AC_CACHE_VAL(ac_cv_siginfo_t,
- [AC_TRY_COMPILE([#define _POSIX_C_SOURCE 199506L
- #include <signal.h>],
- [siginfo_t* info;],
- [ac_cv_siginfo_t=true],
- [ac_cv_siginfo_t=false])])
-if test "$ac_cv_siginfo_t" = true ; then
- AC_DEFINE(HAVE_SIGINFO_T)
- AC_MSG_RESULT(yes)
-else
- AC_MSG_RESULT(no)
-fi
-
-dnl Check for int64, uint, and uint_t.
-dnl ========================================================
-AC_MSG_CHECKING(for int64)
-AC_CACHE_VAL(ac_cv_int64,
- [AC_TRY_COMPILE([#include <stdio.h>
- #include <sys/types.h>],
- [int64 foo = 0;],
- [ac_cv_int64=true],
- [ac_cv_int64=false])])
-if test "$ac_cv_int64" = true ; then
- AC_DEFINE(HAVE_INT64)
- AC_MSG_RESULT(yes)
-else
- AC_MSG_RESULT(no)
-fi
-AC_MSG_CHECKING(for uint)
-AC_CACHE_VAL(ac_cv_uint,
- [AC_TRY_COMPILE([#include <stdio.h>
- #include <sys/types.h>],
- [uint foo = 0;],
- [ac_cv_uint=true],
- [ac_cv_uint=false])])
-if test "$ac_cv_uint" = true ; then
- AC_DEFINE(HAVE_UINT)
- AC_MSG_RESULT(yes)
-else
- AC_MSG_RESULT(no)
-fi
-AC_MSG_CHECKING(for uint_t)
-AC_CACHE_VAL(ac_cv_uint_t,
- [AC_TRY_COMPILE([#include <stdio.h>
- #include <sys/types.h>],
- [uint_t foo = 0;],
- [ac_cv_uint_t=true],
- [ac_cv_uint_t=false])])
-if test "$ac_cv_uint_t" = true ; then
- AC_DEFINE(HAVE_UINT_T)
- AC_MSG_RESULT(yes)
-else
- AC_MSG_RESULT(no)
-fi
-
-dnl On the gcc trunk (as of 2001-02-09) _GNU_SOURCE, and thus __USE_GNU,
-dnl are defined when compiling C++ but not C. Since the result of this
-dnl test is used only in C++, do it in C++.
-AC_LANG_CPLUSPLUS
-
-AC_MSG_CHECKING(for uname.domainname)
-AC_CACHE_VAL(ac_cv_have_uname_domainname_field,
- [AC_TRY_COMPILE([#include <sys/utsname.h>],
- [ struct utsname *res; char *domain;
- (void)uname(res); if (res != 0) { domain = res->domainname; } ],
- [ac_cv_have_uname_domainname_field=true],
- [ac_cv_have_uname_domainname_field=false])])
-
-if test "$ac_cv_have_uname_domainname_field" = "true"; then
- AC_DEFINE(HAVE_UNAME_DOMAINNAME_FIELD)
- AC_MSG_RESULT(yes)
-else
- AC_MSG_RESULT(no)
-fi
-
-AC_MSG_CHECKING(for uname.__domainname)
-AC_CACHE_VAL(ac_cv_have_uname_us_domainname_field,
- [AC_TRY_COMPILE([#include <sys/utsname.h>],
- [ struct utsname *res; char *domain;
- (void)uname(res); if (res != 0) { domain = res->__domainname; } ],
- [ac_cv_have_uname_us_domainname_field=true],
- [ac_cv_have_uname_us_domainname_field=false])])
-
-if test "$ac_cv_have_uname_us_domainname_field" = "true"; then
- AC_DEFINE(HAVE_UNAME_US_DOMAINNAME_FIELD)
- AC_MSG_RESULT(yes)
-else
- AC_MSG_RESULT(no)
-fi
-
-dnl Check whether we can use gcc's c++0x mode
-AC_LANG_CPLUSPLUS
-
-if test "$GNU_CXX"; then
- _SAVE_CXXFLAGS=$CXXFLAGS
- CXXFLAGS="$CXXFLAGS -std=gnu++0x"
-
- AC_CACHE_CHECK(for gcc c++0x headers bug without rtti,
- ac_cv_cxx0x_headers_bug,
- [AC_TRY_COMPILE([#include <memory>], [],
- ac_cv_cxx0x_headers_bug="no",
- ac_cv_cxx0x_headers_bug="yes")])
-
- if test "$CLANG_CXX" -a "$ac_cv_cxx0x_headers_bug" = "yes"; then
- CXXFLAGS="$CXXFLAGS -I$_topsrcdir/build/unix/headers"
- AC_CACHE_CHECK(whether workaround for gcc c++0x headers conflict with clang works,
- ac_cv_cxx0x_clang_workaround,
- [AC_TRY_COMPILE([#include <memory>], [],
- ac_cv_cxx0x_clang_workaround="yes",
- ac_cv_cxx0x_clang_workaround="no")])
-
- if test "ac_cv_cxx0x_clang_workaround" = "no"; then
- CXXFLAGS="$_SAVE_CXXFLAGS"
- fi
- elif test "$ac_cv_cxx0x_headers_bug" = "yes"; then
- CXXFLAGS="$_SAVE_CXXFLAGS"
- fi
-fi
-
-dnl Check for usable char16_t (2 bytes, unsigned)
-dnl (we might not need the unsignedness check anymore)
-AC_CACHE_CHECK(for usable char16_t (2 bytes, unsigned),
- ac_cv_have_usable_char16_t,
- [AC_TRY_COMPILE([$configure_static_assert_macros],
- [CONFIGURE_STATIC_ASSERT(sizeof(char16_t) == 2);
- CONFIGURE_STATIC_ASSERT(char16_t(-1) > char16_t(0));
- CONFIGURE_STATIC_ASSERT(sizeof((u"hello")[0]) == 2);
- CONFIGURE_STATIC_ASSERT(sizeof(u'a') == 2);
- CONFIGURE_STATIC_ASSERT(u'\xFFFF' > u'\x0')],
- ac_cv_have_usable_char16_t="yes",
- ac_cv_have_usable_char16_t="no")])
-if test "$ac_cv_have_usable_char16_t" = "yes"; then
- AC_DEFINE(HAVE_CPP_CHAR16_T)
- HAVE_CPP_CHAR16_T=1
-elif test "$GNU_CXX"; then
- CXXFLAGS="$_SAVE_CXXFLAGS"
-fi
-
-dnl Check for usable wchar_t (2 bytes, unsigned)
-dnl (we really don't need the unsignedness check anymore)
-dnl ========================================================
-
-AC_CACHE_CHECK(for usable wchar_t (2 bytes, unsigned),
- ac_cv_have_usable_wchar_v2,
- [AC_TRY_COMPILE([#include <stddef.h>
- $configure_static_assert_macros],
- [CONFIGURE_STATIC_ASSERT(sizeof(wchar_t) == 2);
- CONFIGURE_STATIC_ASSERT((wchar_t)-1 > (wchar_t) 0)],
- ac_cv_have_usable_wchar_v2="yes",
- ac_cv_have_usable_wchar_v2="no")])
-if test "$ac_cv_have_usable_wchar_v2" = "yes"; then
- AC_DEFINE(HAVE_CPP_2BYTE_WCHAR_T)
- HAVE_CPP_2BYTE_WCHAR_T=1
-elif test "$ac_cv_have_usable_char16_t" != "yes"; then
-dnl This is really gcc-only
-dnl Do this test using CXX only since some versions of gcc
-dnl 2.95-2.97 have a signed wchar_t in c++ only and some versions
-dnl only have short-wchar support for c++.
-dnl Note that we assume that mac & win32 have short wchar (see nscore.h)
-
- _SAVE_CXXFLAGS=$CXXFLAGS
- CXXFLAGS="$CXXFLAGS -fshort-wchar"
-
- AC_CACHE_CHECK(for compiler -fshort-wchar option,
- ac_cv_have_usable_wchar_option_v2,
- [AC_TRY_LINK([#include <stddef.h>
- $configure_static_assert_macros],
- [CONFIGURE_STATIC_ASSERT(sizeof(wchar_t) == 2);
- CONFIGURE_STATIC_ASSERT((wchar_t)-1 > (wchar_t) 0)],
- ac_cv_have_usable_wchar_option_v2="yes",
- ac_cv_have_usable_wchar_option_v2="no")])
-
- if test "$ac_cv_have_usable_wchar_option_v2" = "yes"; then
- AC_DEFINE(HAVE_CPP_2BYTE_WCHAR_T)
- HAVE_CPP_2BYTE_WCHAR_T=1
- if test "$OS_TARGET" = Android; then
- WCHAR_CFLAGS="-fshort-wchar -Wl,--no-wchar-size-warning"
- CXXFLAGS="$CXXFLAGS -Wl,--no-wchar-size-warning"
- CFLAGS="$CFLAGS -Wl,--no-wchar-size-warning"
- DSO_LDOPTS="$DSO_LDOPTS -Wl,--no-wchar-size-warning"
- else
- WCHAR_CFLAGS="-fshort-wchar"
- fi
- else
- CXXFLAGS=$_SAVE_CXXFLAGS
- fi
-fi
-
-AC_LANG_C
-
-dnl Check for .hidden assembler directive and visibility attribute.
-dnl Borrowed from glibc configure.in
-dnl ===============================================================
-if test "$GNU_CC"; then
- AC_CACHE_CHECK(for visibility(hidden) attribute,
- ac_cv_visibility_hidden,
- [cat > conftest.c <<EOF
- int foo __attribute__ ((visibility ("hidden"))) = 1;
-EOF
- ac_cv_visibility_hidden=no
- if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
- if egrep '\.(hidden|private_extern).*foo' conftest.s >/dev/null; then
- ac_cv_visibility_hidden=yes
- fi
- fi
- rm -f conftest.[cs]
- ])
- if test "$ac_cv_visibility_hidden" = "yes"; then
- AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE)
-
- AC_CACHE_CHECK(for visibility(default) attribute,
- ac_cv_visibility_default,
- [cat > conftest.c <<EOF
- int foo __attribute__ ((visibility ("default"))) = 1;
-EOF
- ac_cv_visibility_default=no
- if ${CC-cc} -fvisibility=hidden -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
- if ! egrep '\.(hidden|private_extern).*foo' conftest.s >/dev/null; then
- ac_cv_visibility_default=yes
- fi
- fi
- rm -f conftest.[cs]
- ])
- if test "$ac_cv_visibility_default" = "yes"; then
- AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
-
- AC_CACHE_CHECK(for visibility pragma support,
- ac_cv_visibility_pragma,
- [cat > conftest.c <<EOF
-#pragma GCC visibility push(hidden)
- int foo_hidden = 1;
-#pragma GCC visibility push(default)
- int foo_default = 1;
-EOF
- ac_cv_visibility_pragma=no
- if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
- if egrep '\.(hidden|private_extern).*foo_hidden' conftest.s >/dev/null; then
- if ! egrep '\.(hidden|private_extern).*foo_default' conftest.s > /dev/null; then
- ac_cv_visibility_pragma=yes
- fi
- fi
- fi
- rm -f conftest.[cs]
- ])
- if test "$ac_cv_visibility_pragma" = "yes"; then
- AC_CACHE_CHECK(For gcc visibility bug with class-level attributes (GCC bug 26905),
- ac_cv_have_visibility_class_bug,
- [cat > conftest.c <<EOF
-#pragma GCC visibility push(hidden)
-struct __attribute__ ((visibility ("default"))) TestStruct {
- static void Init();
-};
-__attribute__ ((visibility ("default"))) void TestFunc() {
- TestStruct::Init();
-}
-EOF
- ac_cv_have_visibility_class_bug=no
- if ! ${CXX-g++} ${CXXFLAGS} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -S -o conftest.S conftest.c > /dev/null 2>&1 ; then
- ac_cv_have_visibility_class_bug=yes
- else
- if test `egrep -c '@PLT|\\$stub' conftest.S` = 0; then
- ac_cv_have_visibility_class_bug=yes
- fi
- fi
- rm -rf conftest.{c,S}
- ])
-
- AC_CACHE_CHECK(For x86_64 gcc visibility bug with builtins (GCC bug 20297),
- ac_cv_have_visibility_builtin_bug,
- [cat > conftest.c <<EOF
-#pragma GCC visibility push(hidden)
-#pragma GCC visibility push(default)
-#include <string.h>
-#pragma GCC visibility pop
-
-__attribute__ ((visibility ("default"))) void Func() {
- char c[[100]];
- memset(c, 0, sizeof(c));
-}
-EOF
- ac_cv_have_visibility_builtin_bug=no
- if ! ${CC-cc} ${CFLAGS} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -O2 -S -o conftest.S conftest.c > /dev/null 2>&1 ; then
- ac_cv_have_visibility_builtin_bug=yes
- else
- if test `grep -c "@PLT" conftest.S` = 0; then
- ac_cv_visibility_builtin_bug=yes
- fi
- fi
- rm -f conftest.{c,S}
- ])
- if test "$ac_cv_have_visibility_builtin_bug" = "no" -a \
- "$ac_cv_have_visibility_class_bug" = "no"; then
- VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h'
- WRAP_SYSTEM_INCLUDES=1
- STL_FLAGS='-I$(DIST)/stl_wrappers'
- WRAP_STL_INCLUDES=1
- else
- VISIBILITY_FLAGS='-fvisibility=hidden'
- fi # have visibility pragma bug
- fi # have visibility pragma
- fi # have visibility(default) attribute
- fi # have visibility(hidden) attribute
-fi # GNU_CC
-
-# visibility hidden flag for Sun Studio on Solaris
-if test "$SOLARIS_SUNPRO_CC"; then
-VISIBILITY_FLAGS='-xldscope=hidden'
-fi # Sun Studio on Solaris
-
-AC_SUBST(WRAP_SYSTEM_INCLUDES)
-AC_SUBST(VISIBILITY_FLAGS)
-
-MOZ_GCC_PR49911
-MOZ_GCC_PR39608
-if test "$OS_TARGET" != WINNT; then
- # Only run this test with clang on non-Windows platforms, because clang
- # cannot do enough code gen for now to make this test work correctly.
- MOZ_LLVM_PR8927
-fi
-
-dnl Check for __force_align_arg_pointer__ for SSE2 on gcc
-dnl ========================================================
-if test "$GNU_CC"; then
- CFLAGS_save="${CFLAGS}"
- CFLAGS="${CFLAGS} -Werror"
- AC_CACHE_CHECK(for __force_align_arg_pointer__ attribute,
- ac_cv_force_align_arg_pointer,
- [AC_TRY_COMPILE([__attribute__ ((__force_align_arg_pointer__)) void test() {}],
- [],
- ac_cv_force_align_arg_pointer="yes",
- ac_cv_force_align_arg_pointer="no")])
- CFLAGS="${CFLAGS_save}"
- if test "$ac_cv_force_align_arg_pointer" = "yes"; then
- HAVE_GCC_ALIGN_ARG_POINTER=1
- else
- HAVE_GCC_ALIGN_ARG_POINTER=
- fi
-fi
-AC_SUBST(HAVE_GCC_ALIGN_ARG_POINTER)
-
-dnl Checks for header files.
-dnl ========================================================
-AC_HEADER_DIRENT
-case "$target_os" in
-freebsd*|openbsd*)
-# for stuff like -lXshm
- CPPFLAGS="${CPPFLAGS} ${X_CFLAGS}"
- ;;
-esac
-MOZ_CHECK_COMMON_HEADERS
-
-dnl These are all the places some variant of statfs can be hiding.
-MOZ_CHECK_HEADERS(sys/statvfs.h sys/statfs.h sys/vfs.h sys/mount.h)
-
-dnl Quota support
-MOZ_CHECK_HEADERS(sys/quota.h sys/sysmacros.h)
-MOZ_CHECK_HEADERS([linux/quota.h],,,[#include <sys/socket.h>])
-
-dnl SCTP support - needs various network include headers
-MOZ_CHECK_HEADERS([linux/if_addr.h linux/rtnetlink.h],,,[#include <sys/socket.h>])
-
-MOZ_CHECK_HEADERS(sys/types.h netinet/in.h byteswap.h)
-
-dnl Check for sin_len and sin6_len - used by SCTP; only appears in Mac/*BSD generally
-AC_CACHE_CHECK(for sockaddr_in.sin_len,
- ac_cv_sockaddr_in_sin_len,
- [AC_TRY_COMPILE([#ifdef HAVE_SYS_TYPES_H
- #include <sys/types.h>
- #endif
- #include <netinet/in.h>
- struct sockaddr_in x;
- void *foo = (void*) &x.sin_len;],
- [],
- [ac_cv_sockaddr_in_sin_len=true],
- [ac_cv_sockaddr_in_sin_len=false])])
-if test "$ac_cv_sockaddr_in_sin_len" = true ; then
- AC_DEFINE(HAVE_SIN_LEN)
-dnl HAVE_CONN_LEN must be the same as HAVE_SIN_LEN (and HAVE_SIN6_LEN too)
- AC_DEFINE(HAVE_SCONN_LEN)
-fi
-
-AC_CACHE_CHECK(for sockaddr_in6.sin6_len,
- ac_cv_sockaddr_in6_sin6_len,
- [AC_TRY_COMPILE([#ifdef HAVE_SYS_TYPES_H
- #include <sys/types.h>
- #endif
- #include <netinet/in.h>
- struct sockaddr_in6 x;
- void *foo = (void*) &x.sin6_len;],
- [],
- [ac_cv_sockaddr_in6_sin6_len=true],
- [ac_cv_sockaddr_in6_sin6_len=false])])
-if test "$ac_cv_sockaddr_in6_sin6_len" = true ; then
- AC_DEFINE(HAVE_SIN6_LEN)
-fi
-
-AC_CACHE_CHECK(for sockaddr.sa_len,
- ac_cv_sockaddr_sa_len,
- [AC_TRY_COMPILE([#ifdef HAVE_SYS_TYPES_H
- #include <sys/types.h>
- #endif
- #include <sys/socket.h>
- struct sockaddr x;
- void *foo = (void*) &x.sa_len;],
- [],
- [ac_cv_sockaddr_sa_len=true],
- [ac_cv_sockaddr_sa_len=false])])
-if test "$ac_cv_sockaddr_sa_len" = true ; then
- AC_DEFINE(HAVE_SA_LEN)
-fi
-
-dnl Check whether the compiler supports the new-style C++ standard
-dnl library headers (i.e. <new>) or needs the old "new.h"
-AC_LANG_CPLUSPLUS
-NEW_H=new.h
-MOZ_CHECK_HEADER(new, [NEW_H=new])
-AC_DEFINE_UNQUOTED(NEW_H, <$NEW_H>)
-AC_LANG_C
-
-AC_ARG_ENABLE(dtrace,
- [ --enable-dtrace build with dtrace support if available (default=no)],
- [enable_dtrace="yes"],)
-if test "x$enable_dtrace" = "xyes"; then
- MOZ_CHECK_HEADER(sys/sdt.h, HAVE_DTRACE=1)
- if test -n "$HAVE_DTRACE"; then
- AC_DEFINE(INCLUDE_MOZILLA_DTRACE)
- else
- AC_MSG_ERROR([dtrace enabled but sys/sdt.h not found]);
- fi
-fi
-AC_SUBST(HAVE_DTRACE)
-
-case $target in
-*-aix4.3*|*-aix5*)
- ;;
-*)
- MOZ_CHECK_HEADERS(sys/cdefs.h)
- ;;
-esac
-
-MOZ_LINUX_PERF_EVENT
-
-dnl Checks for libraries.
-dnl ========================================================
-case $target in
-*-hpux11.*)
- ;;
-*)
- AC_CHECK_LIB(c_r, gethostbyname_r)
- ;;
-esac
-
-dnl We don't want to link with libdl even if it's present on OS X, since
-dnl it's not used and not part of the default installation. OS/2 has dlfcn
-dnl in libc.
-dnl We don't want to link against libm or libpthread on Darwin since
-dnl they both are just symlinks to libSystem and explicitly linking
-dnl against libSystem causes issues when debugging (see bug 299601).
-case $target in
-*-darwin*)
- ;;
-*-os2*)
- ;;
-*)
- AC_SEARCH_LIBS(dlopen, dl,
- MOZ_CHECK_HEADER(dlfcn.h,
- AC_DEFINE(HAVE_DLOPEN)))
- ;;
-esac
-
-_SAVE_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS -D_GNU_SOURCE"
-AC_CHECK_FUNCS(dladdr memmem)
-CFLAGS="$_SAVE_CFLAGS"
-
-if test ! "$GNU_CXX"; then
-
- case $target in
- *-aix*)
- AC_CHECK_LIB(C_r, demangle)
- ;;
- *)
- AC_CHECK_LIB(C, demangle)
- ;;
- esac
-fi
-
-dnl OS/2 has socket in libc.
-case $target in
-*-os2*)
- ;;
-*)
- AC_CHECK_LIB(socket, socket)
-esac
-
-XLDFLAGS="$X_LIBS"
-XLIBS="$X_EXTRA_LIBS"
-
-dnl ========================================================
-dnl Checks for X libraries.
-dnl Ordering is important.
-dnl Xt is dependent upon SM as of X11R6
-dnl ========================================================
-if test "$no_x" = "yes"; then
- AC_DEFINE(NO_X11)
-else
- AC_DEFINE_UNQUOTED(FUNCPROTO,15)
- XLIBS="-lX11 $XLIBS"
- _SAVE_LDFLAGS="$LDFLAGS"
- LDFLAGS="$XLDFLAGS $LDFLAGS"
- AC_CHECK_LIB(X11, XDrawLines, [X11_LIBS="-lX11"],
- [MISSING_X="$MISSING_X -lX11"], $XLIBS)
- AC_CHECK_LIB(Xext, XextAddDisplay, [XEXT_LIBS="-lXext"],
- [MISSING_X="$MISSING_X -lXext"], $XLIBS)
-
- AC_CHECK_LIB(Xt, XtFree, [ XT_LIBS="-lXt"], [
- unset ac_cv_lib_Xt_XtFree
- AC_CHECK_LIB(ICE, IceFlush, [XT_LIBS="-lICE $XT_LIBS"],, $XT_LIBS $XLIBS)
- AC_CHECK_LIB(SM, SmcCloseConnection, [XT_LIBS="-lSM $XT_LIBS"],, $XT_LIBS $XLIBS)
- AC_CHECK_LIB(Xt, XtFree, [ XT_LIBS="-lXt $XT_LIBS"],
- [MISSING_X="$MISSING_X -lXt"], $X_PRE_LIBS $XT_LIBS $XLIBS)
- ])
-
- # AIX needs the motif library linked before libXt to prevent
- # crashes in plugins linked against Motif - Bug #98892
- case "${target_os}" in
- aix*)
- XT_LIBS="-lXm $XT_LIBS"
- ;;
- esac
-
- dnl ========================================================
- dnl = Check for XShm
- dnl ========================================================
- AC_CHECK_LIB(Xext, XShmCreateImage, _HAVE_XSHM_XEXT=1,,
- $XLIBS $XEXT_LIBS)
-
- dnl ========================================================
- dnl = Check for Xss
- dnl ========================================================
- MOZ_CHECK_HEADER(X11/extensions/scrnsaver.h,
- AC_CHECK_LIB(Xss, XScreenSaverQueryInfo,
- [XSS_LIBS="-lXss $XEXT_LIBS $XLIBS"
- AC_DEFINE(HAVE_LIBXSS)],, $XEXT_LIBS $XLIBS))
-
- LDFLAGS="$_SAVE_LDFLAGS"
-fi # $no_x
-
-AC_SUBST(XCFLAGS)
-AC_SUBST(XLDFLAGS)
-AC_SUBST(XLIBS)
-AC_SUBST(XEXT_LIBS)
-AC_SUBST(XT_LIBS)
-AC_SUBST(XSS_LIBS)
-
-dnl ========================================================
-dnl = pthread support
-dnl = Start by checking whether the system support pthreads
-dnl ========================================================
-case "$target_os" in
-darwin*)
- MOZ_USE_PTHREADS=1
- ;;
-*)
- MOZ_CHECK_PTHREADS(pthreads,
- MOZ_USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lpthreads",
- MOZ_CHECK_PTHREADS(pthread,
- MOZ_USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lpthread",
- MOZ_CHECK_PTHREADS(c_r,
- MOZ_USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lc_r",
- MOZ_CHECK_PTHREADS(c,
- MOZ_USE_PTHREADS=1
- )
- )
- )
- )
- ;;
-esac
-
-dnl ========================================================
-dnl Check the command line for --with-pthreads
-dnl ========================================================
-MOZ_ARG_WITH_BOOL(pthreads,
-[ --with-pthreads Force use of system pthread library with NSPR ],
-[ if test "$MOZ_USE_PTHREADS"x = x; then
- AC_MSG_ERROR([ --with-pthreads specified for a system without pthread support ]);
-fi],
- MOZ_USE_PTHREADS=
- _PTHREAD_LDFLAGS=
-)
-
-dnl ========================================================
-dnl Do the platform specific pthread hackery
-dnl ========================================================
-if test "$MOZ_USE_PTHREADS"x != x
-then
- dnl
- dnl See if -pthread is supported.
- dnl
- rm -f conftest*
- ac_cv_have_dash_pthread=no
- AC_MSG_CHECKING(whether ${CC-cc} accepts -pthread)
- echo 'int main() { return 0; }' | cat > conftest.c
- ${CC-cc} -pthread -o conftest conftest.c > conftest.out 2>&1
- if test $? -eq 0; then
- if test -z "`egrep -i '(unrecognize|unknown)' conftest.out | grep pthread`" -a -z "`egrep -i '(error|incorrect)' conftest.out`" ; then
- ac_cv_have_dash_pthread=yes
- case "$target_os" in
- freebsd*)
-# Freebsd doesn't use -pthread for compiles, it uses them for linking
- ;;
- *)
- CFLAGS="$CFLAGS -pthread"
- CXXFLAGS="$CXXFLAGS -pthread"
- ;;
- esac
- fi
- fi
- rm -f conftest*
- AC_MSG_RESULT($ac_cv_have_dash_pthread)
-
- dnl
- dnl See if -pthreads is supported.
- dnl
- ac_cv_have_dash_pthreads=no
- if test "$ac_cv_have_dash_pthread" = "no"; then
- AC_MSG_CHECKING(whether ${CC-cc} accepts -pthreads)
- echo 'int main() { return 0; }' | cat > conftest.c
- ${CC-cc} -pthreads -o conftest conftest.c > conftest.out 2>&1
- if test $? -eq 0; then
- if test -z "`egrep -i '(unrecognize|unknown)' conftest.out | grep pthreads`" -a -z "`egrep -i '(error|incorrect)' conftest.out`" ; then
- ac_cv_have_dash_pthreads=yes
- CFLAGS="$CFLAGS -pthreads"
- CXXFLAGS="$CXXFLAGS -pthreads"
- fi
- fi
- rm -f conftest*
- AC_MSG_RESULT($ac_cv_have_dash_pthreads)
- fi
-
- case "$target" in
- *-*-freebsd*)
- AC_DEFINE(_REENTRANT)
- AC_DEFINE(_THREAD_SAFE)
- dnl -pthread links in -lpthread, so don't specify it explicitly.
- if test "$ac_cv_have_dash_pthread" = "yes"; then
- _PTHREAD_LDFLAGS="-pthread"
- fi
- ;;
-
- *-*-openbsd*|*-*-bsdi*)
- AC_DEFINE(_REENTRANT)
- AC_DEFINE(_THREAD_SAFE)
- dnl -pthread links in -lc_r, so don't specify it explicitly.
- if test "$ac_cv_have_dash_pthread" = "yes"; then
- _PTHREAD_LDFLAGS="-pthread"
- fi
- ;;
-
- *-*-linux*|*-*-kfreebsd*-gnu|*-*-gnu*)
- AC_DEFINE(_REENTRANT)
- ;;
-
- *-aix4.3*|*-aix5*)
- AC_DEFINE(_REENTRANT)
- ;;
-
- *-hpux11.*)
- AC_DEFINE(_REENTRANT)
- ;;
-
- *-*-solaris*)
- AC_DEFINE(_REENTRANT)
- if test "$SOLARIS_SUNPRO_CC"; then
- CFLAGS="$CFLAGS -mt"
- CXXFLAGS="$CXXFLAGS -mt"
- fi
- ;;
- esac
- LDFLAGS="${_PTHREAD_LDFLAGS} ${LDFLAGS}"
- AC_SUBST(MOZ_USE_PTHREADS)
-fi
-
-
-dnl Checks for library functions.
-dnl ========================================================
-AC_PROG_GCC_TRADITIONAL
-AC_FUNC_MEMCMP
-AC_CHECK_FUNCS(random strerror lchown fchmod snprintf memmove rint stat64 lstat64 truncate64 setbuf isatty)
-AC_CHECK_FUNCS(statvfs64 statvfs statfs64 statfs)
-AC_CHECK_FUNCS(flockfile getpagesize)
-AC_CHECK_FUNCS(localtime_r strtok_r)
-
-dnl check for clock_gettime(), the CLOCK_MONOTONIC clock
-AC_CACHE_CHECK(for clock_gettime(CLOCK_MONOTONIC),
- ac_cv_clock_monotonic,
- [for libs in "" -lrt; do
- _SAVE_LIBS="$LIBS"
- LIBS="$LIBS $libs"
- AC_TRY_LINK([#include <time.h>],
- [ struct timespec ts;
- clock_gettime(CLOCK_MONOTONIC, &ts); ],
- ac_cv_clock_monotonic=$libs
- LIBS="$_SAVE_LIBS"
- break,
- ac_cv_clock_monotonic=no)
- LIBS="$_SAVE_LIBS"
- done])
-if test "$ac_cv_clock_monotonic" != "no"; then
- HAVE_CLOCK_MONOTONIC=1
- REALTIME_LIBS=$ac_cv_clock_monotonic
- AC_DEFINE(HAVE_CLOCK_MONOTONIC)
- AC_SUBST(HAVE_CLOCK_MONOTONIC)
- AC_SUBST(REALTIME_LIBS)
-fi
-
-dnl check for wcrtomb/mbrtowc
-dnl =======================================================================
-if test -z "$MACOS_DEPLOYMENT_TARGET" || test "$MACOS_DEPLOYMENT_TARGET" -ge "100300"; then
-AC_LANG_SAVE
-AC_LANG_CPLUSPLUS
-AC_CACHE_CHECK(for wcrtomb,
- ac_cv_have_wcrtomb,
- [AC_TRY_LINK([#include <wchar.h>],
- [mbstate_t ps={0};wcrtomb(0,'f',&ps);],
- ac_cv_have_wcrtomb="yes",
- ac_cv_have_wcrtomb="no")])
-if test "$ac_cv_have_wcrtomb" = "yes"; then
- AC_DEFINE(HAVE_WCRTOMB)
-fi
-AC_CACHE_CHECK(for mbrtowc,
- ac_cv_have_mbrtowc,
- [AC_TRY_LINK([#include <wchar.h>],
- [mbstate_t ps={0};mbrtowc(0,0,0,&ps);],
- ac_cv_have_mbrtowc="yes",
- ac_cv_have_mbrtowc="no")])
-if test "$ac_cv_have_mbrtowc" = "yes"; then
- AC_DEFINE(HAVE_MBRTOWC)
-fi
-AC_LANG_RESTORE
-fi
-
-AC_CACHE_CHECK(
- [for res_ninit()],
- ac_cv_func_res_ninit,
- [AC_TRY_LINK([
- #ifdef linux
- #define _BSD_SOURCE 1
- #endif
- #include <resolv.h>
- ],
- [int foo = res_ninit(&_res);],
- [ac_cv_func_res_ninit=yes],
- [ac_cv_func_res_ninit=no])
- ])
-
-if test "$ac_cv_func_res_ninit" = "yes"; then
- AC_DEFINE(HAVE_RES_NINIT)
-dnl must add the link line we do something as foolish as this... dougt
-dnl else
-dnl AC_CHECK_LIB(bind, res_ninit, AC_DEFINE(HAVE_RES_NINIT),
-dnl AC_CHECK_LIB(resolv, res_ninit, AC_DEFINE(HAVE_RES_NINIT)))
-fi
-
-AC_LANG_CPLUSPLUS
-AC_CACHE_CHECK(
- [for gnu_get_libc_version()],
- ac_cv_func_gnu_get_libc_version,
- [AC_TRY_LINK([
- #ifdef HAVE_GNU_LIBC_VERSION_H
- #include <gnu/libc-version.h>
- #endif
- ],
- [const char *glibc_version = gnu_get_libc_version();],
- [ac_cv_func_gnu_get_libc_version=yes],
- [ac_cv_func_gnu_get_libc_version=no]
- )]
- )
-
-if test "$ac_cv_func_gnu_get_libc_version" = "yes"; then
- AC_DEFINE(HAVE_GNU_GET_LIBC_VERSION)
-fi
-
-case $target_os in
- darwin*|mingw*|os2*)
- ;;
- *)
-
-AC_CHECK_LIB(c, iconv, [_ICONV_LIBS="$_ICONV_LIBS"],
- AC_CHECK_LIB(iconv, iconv, [_ICONV_LIBS="$_ICONV_LIBS -liconv"],
- AC_CHECK_LIB(iconv, libiconv, [_ICONV_LIBS="$_ICONV_LIBS -liconv"])))
-_SAVE_LIBS=$LIBS
-LIBS="$LIBS $_ICONV_LIBS"
-AC_CACHE_CHECK(
- [for iconv()],
- ac_cv_func_iconv,
- [AC_TRY_LINK([
- #include <stdlib.h>
- #include <iconv.h>
- ],
- [
- iconv_t h = iconv_open("", "");
- iconv(h, NULL, NULL, NULL, NULL);
- iconv_close(h);
- ],
- [ac_cv_func_iconv=yes],
- [ac_cv_func_iconv=no]
- )]
- )
-if test "$ac_cv_func_iconv" = "yes"; then
- AC_DEFINE(HAVE_ICONV)
- DYNAMIC_XPCOM_LIBS="$DYNAMIC_XPCOM_LIBS $_ICONV_LIBS"
- LIBXUL_LIBS="$LIBXUL_LIBS $_ICONV_LIBS"
- LIBICONV="$_ICONV_LIBS"
- AC_CACHE_CHECK(
- [for iconv() with const input],
- ac_cv_func_const_iconv,
- [AC_TRY_COMPILE([
- #include <stdlib.h>
- #include <iconv.h>
- ],
- [
- const char *input = "testing";
- iconv_t h = iconv_open("", "");
- iconv(h, &input, NULL, NULL, NULL);
- iconv_close(h);
- ],
- [ac_cv_func_const_iconv=yes],
- [ac_cv_func_const_iconv=no]
- )]
- )
- if test "$ac_cv_func_const_iconv" = "yes"; then
- AC_DEFINE(HAVE_ICONV_WITH_CONST_INPUT)
- fi
-fi
-LIBS=$_SAVE_LIBS
-
- ;;
-esac
-
-AM_LANGINFO_CODESET
-
-AC_LANG_C
-
-dnl **********************
-dnl *** va_copy checks ***
-dnl **********************
-dnl we currently check for all three va_copy possibilities, so we get
-dnl all results in config.log for bug reports.
-AC_MSG_CHECKING(for an implementation of va_copy())
-AC_CACHE_VAL(ac_cv_va_copy,[
- AC_TRY_RUN([
- #include <stdarg.h>
- void f (int i, ...) {
- va_list args1, args2;
- va_start (args1, i);
- va_copy (args2, args1);
- if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
- exit (1);
- va_end (args1); va_end (args2);
- }
- int main() { f (0, 42); return 0; }],
- ac_cv_va_copy=yes,
- ac_cv_va_copy=no,
- ac_cv_va_copy=no
- )
-])
-AC_MSG_RESULT($ac_cv_va_copy)
-AC_MSG_CHECKING(for an implementation of __va_copy())
-AC_CACHE_VAL(ac_cv___va_copy,[
- AC_TRY_RUN([
- #include <stdarg.h>
- void f (int i, ...) {
- va_list args1, args2;
- va_start (args1, i);
- __va_copy (args2, args1);
- if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
- exit (1);
- va_end (args1); va_end (args2);
- }
- int main() { f (0, 42); return 0; }],
- ac_cv___va_copy=yes,
- ac_cv___va_copy=no,
- ac_cv___va_copy=no
- )
-])
-AC_MSG_RESULT($ac_cv___va_copy)
-AC_MSG_CHECKING(whether va_lists can be copied by value)
-AC_CACHE_VAL(ac_cv_va_val_copy,[
- AC_TRY_RUN([
- #include <stdarg.h>
- void f (int i, ...) {
- va_list args1, args2;
- va_start (args1, i);
- args2 = args1;
- if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
- exit (1);
- va_end (args1); va_end (args2);
- }
- int main() { f (0, 42); return 0; }],
- ac_cv_va_val_copy=yes,
- ac_cv_va_val_copy=no,
- ac_cv_va_val_copy=yes
- )
-])
-if test "x$ac_cv_va_copy" = "xyes"; then
- AC_DEFINE(VA_COPY, va_copy)
- AC_DEFINE(HAVE_VA_COPY)
-elif test "x$ac_cv___va_copy" = "xyes"; then
- AC_DEFINE(VA_COPY, __va_copy)
- AC_DEFINE(HAVE_VA_COPY)
-fi
-
-if test "x$ac_cv_va_val_copy" = "xno"; then
- AC_DEFINE(HAVE_VA_LIST_AS_ARRAY)
-fi
-AC_MSG_RESULT($ac_cv_va_val_copy)
-
-dnl ===================================================================
-dnl ========================================================
-dnl Put your C++ language/feature checks below
-dnl ========================================================
-AC_LANG_CPLUSPLUS
-
-ARM_ABI_PREFIX=
-if test "$GNU_CC"; then
- if test "$CPU_ARCH" = "arm" ; then
- AC_CACHE_CHECK(for ARM EABI,
- ac_cv_gcc_arm_eabi,
- [AC_TRY_COMPILE([],
- [
-#if defined(__ARM_EABI__)
- return 0;
-#else
-#error Not ARM EABI.
-#endif
- ],
- ac_cv_gcc_arm_eabi="yes",
- ac_cv_gcc_arm_eabi="no")])
- if test "$ac_cv_gcc_arm_eabi" = "yes"; then
- HAVE_ARM_EABI=1
- ARM_ABI_PREFIX=eabi-
- else
- ARM_ABI_PREFIX=oabi-
- fi
- fi
-
- TARGET_COMPILER_ABI="${TARGET_COMPILER_ABI-${ARM_ABI_PREFIX}gcc3}"
-fi
-
-dnl Check to see if we can resolve ambiguity with |using|.
-AC_CACHE_CHECK(whether the C++ \"using\" keyword resolves ambiguity,
- ac_cv_cpp_ambiguity_resolving_using,
- [AC_TRY_COMPILE(class X {
- public: int go(const X&) {return 3;}
- int jo(const X&) {return 3;}
- };
- class Y : public X {
- public: int go(int) {return 2;}
- int jo(int) {return 2;}
- using X::jo;
- private: using X::go;
- };,
- X x; Y y; y.jo(x);,
- ac_cv_cpp_ambiguity_resolving_using=yes,
- ac_cv_cpp_ambiguity_resolving_using=no)])
-if test "$ac_cv_cpp_ambiguity_resolving_using" = yes ; then
- AC_DEFINE(HAVE_CPP_AMBIGUITY_RESOLVING_USING)
-fi
-
-dnl See if a dynamic_cast to void* gives the most derived object.
-AC_CACHE_CHECK(for C++ dynamic_cast to void*,
- ac_cv_cpp_dynamic_cast_void_ptr,
- [AC_TRY_RUN([class X { int i; public: virtual ~X() { } };
- class Y { int j; public: virtual ~Y() { } };
- class Z : public X, public Y { int k; };
-
- int main() {
- Z mdo;
- X *subx = (X*)&mdo;
- Y *suby = (Y*)&mdo;
- return !((((void*)&mdo != (void*)subx) &&
- ((void*)&mdo == dynamic_cast<void*>(subx))) ||
- (((void*)&mdo != (void*)suby) &&
- ((void*)&mdo == dynamic_cast<void*>(suby))));
- }],
- ac_cv_cpp_dynamic_cast_void_ptr=yes,
- ac_cv_cpp_dynamic_cast_void_ptr=no,
- ac_cv_cpp_dynamic_cast_void_ptr=no)])
-if test "$ac_cv_cpp_dynamic_cast_void_ptr" = yes ; then
- AC_DEFINE(HAVE_CPP_DYNAMIC_CAST_TO_VOID_PTR)
-fi
-
-
-dnl note that this one is reversed - if the test fails, then
-dnl we require implementations of unused virtual methods. Which
-dnl really blows because it means we'll have useless vtable
-dnl bloat.
-AC_CACHE_CHECK(whether C++ requires implementation of unused virtual methods,
- ac_cv_cpp_unused_required,
- [AC_TRY_LINK(class X {private: virtual void never_called();};,
- X x;,
- ac_cv_cpp_unused_required=no,
- ac_cv_cpp_unused_required=yes)])
-if test "$ac_cv_cpp_unused_required" = yes ; then
- AC_DEFINE(NEED_CPP_UNUSED_IMPLEMENTATIONS)
-fi
-
-
-dnl Some compilers have trouble comparing a constant reference to a templatized
-dnl class to zero, and require an explicit operator==() to be defined that takes
-dnl an int. This test separates the strong from the weak.
-
-AC_CACHE_CHECK(for trouble comparing to zero near std::operator!=(),
- ac_cv_trouble_comparing_to_zero,
- [AC_TRY_COMPILE([#include <algorithm>
- template <class T> class Foo {};
- class T2;
- template <class T> int operator==(const T2*, const T&) { return 0; }
- template <class T> int operator!=(const T2*, const T&) { return 0; }],
- [Foo<int> f; return (0 != f);],
- ac_cv_trouble_comparing_to_zero=no,
- ac_cv_trouble_comparing_to_zero=yes)])
-if test "$ac_cv_trouble_comparing_to_zero" = yes ; then
- AC_DEFINE(HAVE_CPP_TROUBLE_COMPARING_TO_ZERO)
-fi
-
-# try harder, when checking for __thread support, see bug 521750 comment #33 and below
-# We pass MOZ_OPTIMIZE_LDFLAGS to the linker because if dead_strip is
-# enabled, the linker in xcode 4.1 will crash. Without this it would crash when
-# linking XUL.
-_SAVE_LDFLAGS=$LDFLAGS
-LDFLAGS="$LDFLAGS $DSO_PIC_CFLAGS $DSO_LDOPTS $MOZ_OPTIMIZE_LDFLAGS"
-AC_CACHE_CHECK(for __thread keyword for TLS variables,
- ac_cv_thread_keyword,
- [AC_TRY_LINK([__thread bool tlsIsMainThread = false;],
- [return tlsIsMainThread;],
- ac_cv_thread_keyword=yes,
- ac_cv_thread_keyword=no)])
-LDFLAGS=$_SAVE_LDFLAGS
-# The custom dynamic linker doesn't support TLS variables
-MOZ_TLS=
-if test "$ac_cv_thread_keyword" = yes -a "$MOZ_LINKER" != 1; then
- # mips builds fail with TLS variables because of a binutils bug.
- # See bug 528687
- # OpenBSD doesn't have TLS support, and the test succeeds with clang++
- case "${target}" in
- mips*-*)
- :
- ;;
- *-android*|*-linuxandroid*)
- :
- ;;
- *-openbsd*)
- :
- ;;
- *)
- AC_DEFINE(HAVE_THREAD_TLS_KEYWORD)
- MOZ_TLS=1
- ;;
- esac
-fi
-
-dnl Using the custom linker on ARMv6 requires 16k alignment of ELF segments.
-if test -n "$MOZ_LINKER"; then
- if test "$CPU_ARCH" = arm; then
- dnl When building for < ARMv7, we need to ensure 16k alignment of ELF segments
- if test -n "$ARM_ARCH" && test "$ARM_ARCH" -lt 7; then
- LDFLAGS="$LDFLAGS -Wl,-z,max-page-size=0x4000 -Wl,-z,common-page-size=0x4000"
- _SUBDIR_LDFLAGS="$_SUBDIR_LDFLAGS -Wl,-z,max-page-size=0x4000 -Wl,-z,common-page-size=0x4000"
- fi
- fi
-fi
-
-dnl The custom linker doesn't support text relocations, but NDK >= r6b
-dnl creates some (http://code.google.com/p/android/issues/detail?id=23203)
-dnl We however want to avoid these text relocations, and this can be done
-dnl by making gcc not link crtbegin and crtend. In the broken NDKs, crtend
-dnl doesn't contain anything at all, beside placeholders for some sections,
-dnl and crtbegin only contains a finalizer function that calls
-dnl __cxa_finalize. The custom linker actually takes care of calling
-dnl __cxa_finalize when the library doesn't call it itself, which makes it
-dnl safe not to link crtbegin. Besides, previous versions of the NDK didn't
-dnl link crtbegin and crtend at all.
-if test -n "$MOZ_LINKER" -a "$OS_TARGET" = "Android"; then
- AC_CACHE_CHECK([whether the CRT objects have text relocations],
- ac_cv_crt_has_text_relocations,
- [echo 'int foo() { return 0; }' > conftest.cpp
- if AC_TRY_COMMAND(${CXX-g++} -o conftest${DLL_SUFFIX} $CXXFLAGS $DSO_LDOPTS $LDFLAGS conftest.cpp $LIBS 1>&5) &&
- test -s conftest${DLL_SUFFIX}; then
- if ${TOOLCHAIN_PREFIX}readelf -d conftest${DLL_SUFFIX} | grep TEXTREL > /dev/null; then
- ac_cv_crt_has_text_relocations=yes
- else
- ac_cv_crt_has_text_relocations=no
- fi
- else
- AC_ERROR([couldn't compile a simple C file])
- fi
- rm -rf conftest*])
- if test "$ac_cv_crt_has_text_relocations" = yes; then
- dnl While we want libraries to skip the CRT files, we don't want
- dnl executables to be treated the same way. We thus set the flag
- dnl in DSO_LDOPTS and not LDFLAGS. However, to pass it to nspr,
- dnl we need to use LDFLAGS because nspr doesn't inherit DSO_LDOPTS.
- dnl Using LDFLAGS in nspr is safe, since we only really build
- dnl libraries there.
- DSO_LDOPTS="$DSO_LDOPTS -nostartfiles"
- NSPR_LDFLAGS="$NSPR_LDFLAGS -nostartfiles"
- fi
-fi
-
-dnl Check for the existence of various allocation headers/functions
-
-MALLOC_HEADERS="malloc.h malloc_np.h malloc/malloc.h sys/malloc.h"
-MALLOC_H=
-
-for file in $MALLOC_HEADERS; do
- MOZ_CHECK_HEADER($file, [MALLOC_H=$file])
- if test "$MALLOC_H" != ""; then
- AC_DEFINE_UNQUOTED(MALLOC_H, <$MALLOC_H>)
- break
- fi
-done
-
-MOZ_ALLOCATING_FUNCS="strndup posix_memalign memalign valloc"
-AC_CHECK_FUNCS(strndup posix_memalign memalign valloc)
-
-AC_CHECK_FUNCS(malloc_usable_size)
-
-dnl See if compiler supports some gcc-style attributes
-
-AC_CACHE_CHECK(for __attribute__((always_inline)),
- ac_cv_attribute_always_inline,
- [AC_TRY_COMPILE([inline void f(void) __attribute__((always_inline));],
- [],
- ac_cv_attribute_always_inline=yes,
- ac_cv_attribute_always_inline=no)])
-
-AC_CACHE_CHECK(for __attribute__((malloc)),
- ac_cv_attribute_malloc,
- [AC_TRY_COMPILE([void* f(int) __attribute__((malloc));],
- [],
- ac_cv_attribute_malloc=yes,
- ac_cv_attribute_malloc=no)])
-
-AC_CACHE_CHECK(for __attribute__((warn_unused_result)),
- ac_cv_attribute_warn_unused,
- [AC_TRY_COMPILE([int f(void) __attribute__((warn_unused_result));],
- [],
- ac_cv_attribute_warn_unused=yes,
- ac_cv_attribute_warn_unused=no)])
-
-dnl End of C++ language/feature checks
-AC_LANG_C
-
-dnl ========================================================
-dnl = Internationalization checks
-dnl ========================================================
-dnl
-dnl Internationalization and Locale support is different
-dnl on various UNIX platforms. Checks for specific i18n
-dnl features go here.
-
-dnl check for LC_MESSAGES
-AC_CACHE_CHECK(for LC_MESSAGES,
- ac_cv_i18n_lc_messages,
- [AC_TRY_COMPILE([#include <locale.h>],
- [int category = LC_MESSAGES;],
- ac_cv_i18n_lc_messages=yes,
- ac_cv_i18n_lc_messages=no)])
-if test "$ac_cv_i18n_lc_messages" = yes; then
- AC_DEFINE(HAVE_I18N_LC_MESSAGES)
-fi
-
-AC_HAVE_FUNCS(localeconv)
-fi # ! SKIP_COMPILER_CHECKS
-
-TARGET_XPCOM_ABI=
-if test -n "${CPU_ARCH}" -a -n "${TARGET_COMPILER_ABI}"; then
- TARGET_XPCOM_ABI="${CPU_ARCH}-${TARGET_COMPILER_ABI}"
-fi
-
-dnl Mozilla specific options
-dnl ========================================================
-dnl The macros used for command line options
-dnl are defined in build/autoconf/altoptions.m4.
-
-dnl If the compiler supports these attributes, define them as
-dnl convenience macros.
-if test "$ac_cv_attribute_malloc" = yes ; then
- AC_DEFINE(NS_ATTR_MALLOC, [__attribute__((malloc))])
-else
- AC_DEFINE(NS_ATTR_MALLOC,)
-fi
-
-if test "$ac_cv_attribute_warn_unused" = yes ; then
- AC_DEFINE(NS_WARN_UNUSED_RESULT, [__attribute__((warn_unused_result))])
-else
- AC_DEFINE(NS_WARN_UNUSED_RESULT,)
-fi
-
-dnl We can't run TRY_COMPILE tests on Windows, so hard-code some
-dnl features that Windows actually does support.
-
-if test -n "$SKIP_COMPILER_CHECKS"; then
- dnl Windows has malloc.h
- AC_DEFINE(MALLOC_H, [<malloc.h>])
- AC_DEFINE(HAVE_FORCEINLINE)
- AC_DEFINE(HAVE_LOCALECONV)
-fi # SKIP_COMPILER_CHECKS
-
-dnl ========================================================
-dnl =
-dnl = Check for external package dependencies
-dnl =
-dnl ========================================================
-MOZ_ARG_HEADER(External Packages)
-
-MOZ_ARG_WITH_STRING(libxul-sdk,
-[ --with-libxul-sdk=PFX Use the libXUL SDK at <PFX>],
- LIBXUL_SDK_DIR=$withval)
-
-if test "$LIBXUL_SDK_DIR" = "yes"; then
- AC_MSG_ERROR([--with-libxul-sdk must specify a path])
-elif test -n "$LIBXUL_SDK_DIR" -a "$LIBXUL_SDK_DIR" != "no"; then
- LIBXUL_SDK=`cd "$LIBXUL_SDK_DIR" && pwd`
-
- if test ! -f "$LIBXUL_SDK/include/xpcom-config.h"; then
- AC_MSG_ERROR([$LIBXUL_SDK/include/xpcom-config.h doesn't exist])
- fi
-
-fi
-AC_SUBST(LIBXUL_SDK)
-
-if test -n "$LIBXUL_SDK"; then
- LIBXUL_DIST="$LIBXUL_SDK"
-else
- LIBXUL_DIST="$MOZ_BUILD_ROOT/dist"
-fi
-AC_SUBST(LIBXUL_DIST)
-
-SYSTEM_LIBXUL=
-
-MOZ_ARG_WITH_BOOL(system-libxul,
-[ --with-system-libxul Use system installed libxul SDK],
- SYSTEM_LIBXUL=1)
-
-dnl ========================================================
-dnl = If NSPR was not detected in the system,
-dnl = use the one in the source tree (mozilla/nsprpub)
-dnl ========================================================
-MOZ_ARG_WITH_BOOL(system-nspr,
-[ --with-system-nspr Use system installed NSPR],
- _USE_SYSTEM_NSPR=1 )
-
-if test -n "$_USE_SYSTEM_NSPR"; then
- AM_PATH_NSPR(4.10.2, [MOZ_NATIVE_NSPR=1], [AC_MSG_ERROR([your don't have NSPR installed or your version is too old])])
-fi
-
-if test -n "$MOZ_NATIVE_NSPR"; then
- _SAVE_CFLAGS=$CFLAGS
- CFLAGS="$CFLAGS $NSPR_CFLAGS"
- AC_TRY_COMPILE([#include "prtypes.h"],
- [#ifndef PR_STATIC_ASSERT
- #error PR_STATIC_ASSERT not defined or requires including prtypes.h
- #endif],
- [MOZ_NATIVE_NSPR=1],
- AC_MSG_ERROR([system NSPR does not support PR_STATIC_ASSERT or including prtypes.h does not provide it]))
- AC_TRY_COMPILE([#include "prtypes.h"],
- [#ifndef PR_UINT64
- #error PR_UINT64 not defined or requires including prtypes.h
- #endif],
- [MOZ_NATIVE_NSPR=1],
- AC_MSG_ERROR([system NSPR does not support PR_UINT64 or including prtypes.h does not provide it]))
- CFLAGS=$_SAVE_CFLAGS
-else
- if test -z "$LIBXUL_SDK"; then
- NSPR_CFLAGS="-I${LIBXUL_DIST}/include/nspr"
- if test -n "$GNU_CC"; then
- NSPR_LIBS="-L${LIBXUL_DIST}/lib -lnspr${NSPR_VERSION} -lplc${NSPR_VERSION} -lplds${NSPR_VERSION}"
- else
- NSPR_LIBS="${LIBXUL_DIST}/lib/nspr${NSPR_VERSION}.lib ${LIBXUL_DIST}/lib/plc${NSPR_VERSION}.lib ${LIBXUL_DIST}/lib/plds${NSPR_VERSION}.lib "
- fi
- else
- NSPR_CFLAGS=`"${LIBXUL_DIST}"/sdk/bin/nspr-config --prefix="${LIBXUL_DIST}" --includedir="${LIBXUL_DIST}/include/nspr" --cflags`
- NSPR_LIBS=`"${LIBXUL_DIST}"/sdk/bin/nspr-config --prefix="${LIBXUL_DIST}" --libdir="${LIBXUL_DIST}"/lib --libs`
- fi
-fi
-
-dnl set GRE_MILESTONE
-dnl ========================================================
-if test -n "$LIBXUL_SDK"; then
- GRE_MILESTONE=`$PYTHON "$_topsrcdir"/config/printconfigsetting.py "$LIBXUL_DIST"/bin/platform.ini Build Milestone`
-else
- GRE_MILESTONE=`tail -n 1 "$_topsrcdir"/config/milestone.txt 2>/dev/null || tail -1 "$_topsrcdir"/config/milestone.txt`
-fi
-AC_SUBST(GRE_MILESTONE)
-
-# set RELEASE_BUILD and NIGHTLY_BUILD variables depending on the cycle we're in
-# The logic works like this:
-# - if we have "a1" in GRE_MILESTONE, we're building Nightly (define NIGHTLY_BUILD)
-# - otherwise, if we have "a" in GRE_MILESTONE, we're building Nightly or Aurora
-# - otherwise, we're building Release/Beta (define RELEASE_BUILD)
-case "$GRE_MILESTONE" in
- *a1*)
- NIGHTLY_BUILD=1
- AC_DEFINE(NIGHTLY_BUILD)
- ;;
- *a*)
- ;;
- *)
- RELEASE_BUILD=1
- AC_DEFINE(RELEASE_BUILD)
- ;;
-esac
-AC_SUBST(NIGHTLY_BUILD)
-AC_SUBST(RELEASE_BUILD)
-
-dnl system libevent Support
-dnl ========================================================
-MOZ_ARG_WITH_STRING(system-libevent,
-[ --with-system-libevent[=PFX]
- Use system libevent [installed at prefix PFX]],
- LIBEVENT_DIR=$withval)
-
-_SAVE_CFLAGS=$CFLAGS
-_SAVE_LDFLAGS=$LDFLAGS
-_SAVE_LIBS=$LIBS
-if test "$LIBEVENT_DIR" = yes; then
- PKG_CHECK_MODULES(MOZ_LIBEVENT, libevent,
- MOZ_NATIVE_LIBEVENT=1,
- LIBEVENT_DIR=/usr)
-fi
-if test -z "$LIBEVENT_DIR" -o "$LIBEVENT_DIR" = no; then
- MOZ_NATIVE_LIBEVENT=
-elif test -z "$MOZ_NATIVE_LIBEVENT"; then
- CFLAGS="-I${LIBEVENT_DIR}/include $CFLAGS"
- LDFLAGS="-L${LIBEVENT_DIR}/lib $LDFLAGS"
- MOZ_CHECK_HEADER(event.h,
- [if test ! -f "${LIBEVENT_DIR}/include/event.h"; then
- AC_MSG_ERROR([event.h found, but is not in ${LIBEVENT_DIR}/include])
- fi],
- AC_MSG_ERROR([--with-system-libevent requested but event.h not found]))
- AC_CHECK_LIB(event, event_init,
- [MOZ_NATIVE_LIBEVENT=1
- MOZ_LIBEVENT_CFLAGS="-I${LIBEVENT_DIR}/include"
- MOZ_LIBEVENT_LIBS="-L${LIBEVENT_DIR}/lib -levent"],
- [MOZ_NATIVE_LIBEVENT= MOZ_LIBEVENT_CFLAGS= MOZ_LIBEVENT_LIBS=])
-fi
-CFLAGS=$_SAVE_CFLAGS
-LDFLAGS=$_SAVE_LDFLAGS
-LIBS=$_SAVE_LIBS
-
-AC_SUBST(MOZ_NATIVE_LIBEVENT)
-AC_SUBST(MOZ_LIBEVENT_CFLAGS)
-AC_SUBST(MOZ_LIBEVENT_LIBS)
-
-dnl ========================================================
-dnl = If NSS was not detected in the system,
-dnl = use the one in the source tree (mozilla/security/nss)
-dnl ========================================================
-
-MOZ_ARG_WITH_BOOL(system-nss,
-[ --with-system-nss Use system installed NSS],
- _USE_SYSTEM_NSS=1 )
-
-if test -n "$_USE_SYSTEM_NSS"; then
- AM_PATH_NSS(3.15.4, [MOZ_NATIVE_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])])
-fi
-
-if test -n "$MOZ_NATIVE_NSS"; then
- NSS_LIBS="$NSS_LIBS -lcrmf"
-else
- NSS_CFLAGS='-I$(LIBXUL_DIST)/include/nss'
-
- if test -z "$GNU_CC" -a "$OS_ARCH" = "WINNT" -o "$OS_ARCH" = "OS2"; then
- NSS_LIBS="\
- \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)crmf.\$(LIB_SUFFIX) \
- \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)smime$NSS_VERSION.\$(LIB_SUFFIX) \
- \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)ssl$NSS_VERSION.\$(LIB_SUFFIX) \
- \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)nss$NSS_VERSION.\$(LIB_SUFFIX) \
- \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)nssutil$NSS_VERSION.\$(LIB_SUFFIX)"
- else
- NSS_LIBS='$(LIBS_DIR)'" -lcrmf -lsmime$NSS_VERSION -lssl$NSS_VERSION -lnss$NSS_VERSION -lnssutil$NSS_VERSION"
- fi
-fi
-
-dnl ======================
-dnl Detect yasm
-dnl ======================
-
-AC_MSG_CHECKING([for YASM assembler])
-AC_CHECK_PROGS(YASM, yasm, "")
-
-if test -n "$YASM"; then
- dnl Pull out yasm's version string
- YASM_VERSION=`yasm --version | $AWK '/^yasm/ { print $2 }'`
- _YASM_MAJOR_VERSION=`echo ${YASM_VERSION} | $AWK -F\. '{ print $1 }'`
- _YASM_MINOR_VERSION=`echo ${YASM_VERSION} | $AWK -F\. '{ print $2 }'`
- _YASM_RELEASE=` echo ${YASM_VERSION} | $AWK -F\. '{ print $3 }'`
- _YASM_BUILD=` echo ${YASM_VERSION} | $AWK -F\. '{ print $4 }'`
-fi
-
-if test -z "$SKIP_LIBRARY_CHECKS"; then
-dnl system JPEG support
-dnl ========================================================
-MOZ_ARG_WITH_STRING(system-jpeg,
-[ --with-system-jpeg[=PFX]
- Use system libjpeg [installed at prefix PFX]],
- JPEG_DIR=$withval)
-
-_SAVE_CFLAGS=$CFLAGS
-_SAVE_LDFLAGS=$LDFLAGS
-_SAVE_LIBS=$LIBS
-if test -n "${JPEG_DIR}" -a "${JPEG_DIR}" != "yes"; then
- CFLAGS="-I${JPEG_DIR}/include $CFLAGS"
- LDFLAGS="-L${JPEG_DIR}/lib $LDFLAGS"
-fi
-if test -z "$JPEG_DIR" -o "$JPEG_DIR" = no; then
- MOZ_NATIVE_JPEG=
-else
- AC_CHECK_LIB(jpeg, jpeg_destroy_compress, [MOZ_NATIVE_JPEG=1 MOZ_JPEG_LIBS="-ljpeg"], MOZ_NATIVE_JPEG=)
-fi
-
-if test "$MOZ_NATIVE_JPEG" = 1; then
- AC_TRY_COMPILE([ #include <stdio.h>
- #include <sys/types.h>
- #include <jpeglib.h> ],
- [ #if JPEG_LIB_VERSION < $MOZJPEG
- #error "Insufficient JPEG library version ($MOZJPEG required)."
- #endif
- #ifndef JCS_EXTENSIONS
- #error "libjpeg-turbo JCS_EXTENSIONS required"
- #endif
- ],
- MOZ_NATIVE_JPEG=1,
- AC_MSG_ERROR([Insufficient JPEG library version for --with-system-jpeg]))
-fi
-CFLAGS=$_SAVE_CFLAGS
-LDFLAGS=$_SAVE_LDFLAGS
-LIBS=$_SAVE_LIBS
-
-if test -n "${JPEG_DIR}" -a -d "${JPEG_DIR}" -a "$MOZ_NATIVE_JPEG" = 1; then
- MOZ_JPEG_CFLAGS="-I${JPEG_DIR}/include"
- MOZ_JPEG_LIBS="-L${JPEG_DIR}/lib ${MOZ_JPEG_LIBS}"
-fi
-fi # SKIP_LIBRARY_CHECKS
-
-dnl system ZLIB support
-dnl ========================================================
-MOZ_ZLIB_CHECK([1.2.3])
-
-if test "$MOZ_NATIVE_ZLIB" != 1; then
- MOZ_ZLIB_CFLAGS=
- MOZ_ZLIB_LIBS='$(call EXPAND_LIBNAME_PATH,mozz,'"$MOZ_BUILD_ROOT"'/modules/zlib/src)'
-fi
-
-if test "$MOZ_LINKER" = 1 -a "$MOZ_NATIVE_ZLIB" != 1; then
- AC_MSG_ERROR([Custom dynamic linker requires --with-system-zlib])
-fi
-
-if test -z "$SKIP_LIBRARY_CHECKS"; then
-dnl system BZIP2 Support
-dnl ========================================================
-MOZ_ARG_WITH_STRING(system-bz2,
-[ --with-system-bz2[=PFX]
- Use system libbz2 [installed at prefix PFX]],
- BZ2_DIR=$withval)
-
-_SAVE_CFLAGS=$CFLAGS
-_SAVE_LDFLAGS=$LDFLAGS
-_SAVE_LIBS=$LIBS
-if test -n "${BZ2_DIR}" -a "${BZ2_DIR}" != "yes"; then
- CFLAGS="-I${BZ2_DIR}/include $CFLAGS"
- LDFLAGS="-L${BZ2_DIR}/lib $LDFLAGS"
-fi
-if test -z "$BZ2_DIR" -o "$BZ2_DIR" = no; then
- MOZ_NATIVE_BZ2=
-else
- AC_CHECK_LIB(bz2, BZ2_bzread, [MOZ_NATIVE_BZ2=1 MOZ_BZ2_LIBS="-lbz2"],
- [MOZ_NATIVE_BZ2= MOZ_BZ2_CFLAGS= MOZ_BZ2_LIBS=])
-fi
-CFLAGS=$_SAVE_CFLAGS
-LDFLAGS=$_SAVE_LDFLAGS
-LIBS=$_SAVE_LIBS
-
-if test "${BZ2_DIR}" -a -d "${BZ2_DIR}" -a "$MOZ_NATIVE_BZ2" = 1; then
- MOZ_BZ2_CFLAGS="-I${BZ2_DIR}/include"
- MOZ_BZ2_LIBS="-L${BZ2_DIR}/lib ${MOZ_BZ2_LIBS}"
-fi
-
-dnl system PNG Support
-dnl ========================================================
-MOZ_ARG_WITH_STRING(system-png,
-[ --with-system-png[=PFX]
- Use system libpng [installed at prefix PFX]],
- PNG_DIR=$withval)
-
-_SAVE_CFLAGS=$CFLAGS
-_SAVE_LDFLAGS=$LDFLAGS
-_SAVE_LIBS=$LIBS
-if test -n "${PNG_DIR}" -a "${PNG_DIR}" != "yes"; then
- CFLAGS="-I${PNG_DIR}/include $CFLAGS"
- LDFLAGS="-L${PNG_DIR}/lib $LDFLAGS"
-fi
-if test -z "$PNG_DIR" -o "$PNG_DIR" = no; then
- MOZ_NATIVE_PNG=
-else
- AC_CHECK_LIB(png, png_get_valid, [MOZ_NATIVE_PNG=1 MOZ_PNG_LIBS="-lpng"],
- AC_MSG_ERROR([--with-system-png requested but no working libpng found]))
- AC_CHECK_LIB(png, png_get_acTL, ,
- AC_MSG_ERROR([--with-system-png won't work because the system's libpng doesn't have APNG support]))
-fi
-if test "$MOZ_NATIVE_PNG" = 1; then
- AC_TRY_COMPILE([ #include <stdio.h>
- #include <sys/types.h>
- #include <png.h> ],
- [ #if PNG_LIBPNG_VER < $MOZPNG
- #error "Insufficient libpng version ($MOZPNG required)."
- #endif
- #ifndef PNG_UINT_31_MAX
- #error "Insufficient libpng version."
- #endif ],
- MOZ_NATIVE_PNG=1,
- AC_MSG_ERROR([--with-system-png requested but no working libpng found]))
-fi
-CFLAGS=$_SAVE_CFLAGS
-LDFLAGS=$_SAVE_LDFLAGS
-LIBS=$_SAVE_LIBS
-
-if test "${PNG_DIR}" -a -d "${PNG_DIR}" -a "$MOZ_NATIVE_PNG" = 1; then
- MOZ_PNG_CFLAGS="-I${PNG_DIR}/include"
- MOZ_PNG_LIBS="-L${PNG_DIR}/lib ${MOZ_PNG_LIBS}"
-fi
-
-fi # SKIP_LIBRARY_CHECKS
-
-dnl system HunSpell Support
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(system-hunspell,
-[ --enable-system-hunspell
- Use system hunspell (located with pkgconfig)],
- MOZ_NATIVE_HUNSPELL=1 )
-
-if test -n "$MOZ_NATIVE_HUNSPELL"; then
- PKG_CHECK_MODULES(MOZ_HUNSPELL, hunspell)
-fi
-
-AC_SUBST(MOZ_NATIVE_HUNSPELL)
-
-dnl ========================================================
-dnl system libffi Support
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(system-ffi,
-[ --enable-system-ffi Use system libffi (located with pkgconfig)],
- MOZ_NATIVE_FFI=1 )
-
-if test -n "$MOZ_NATIVE_FFI"; then
- # Vanilla libffi 3.0.9 needs a few patches from upcoming version 3.0.10
- # for non-GCC compilers.
- if test -z "$GNU_CC"; then
- PKG_CHECK_MODULES(MOZ_FFI, libffi > 3.0.9)
- else
- PKG_CHECK_MODULES(MOZ_FFI, libffi >= 3.0.9)
- fi
- MOZ_JS_STATIC_LIBS="$MOZ_JS_STATIC_LIBS $MOZ_FFI_LIBS"
-fi
-
-dnl ========================================================
-dnl Java SDK support
-dnl ========================================================
-
-JAVA_BIN_PATH=
-MOZ_ARG_WITH_STRING(java-bin-path,
-[ --with-java-bin-path=dir
- Location of Java binaries (java, javac, jar)],
- JAVA_BIN_PATH=$withval)
-
-dnl ========================================================
-dnl =
-dnl = Application
-dnl =
-dnl ========================================================
-
-MOZ_ARG_HEADER(Application)
-
-ENABLE_TESTS=1
-ENABLE_SYSTEM_EXTENSION_DIRS=1
-MOZ_BRANDING_DIRECTORY=
-MOZ_OFFICIAL_BRANDING=
-MOZ_FEEDS=1
-MOZ_WEBAPP_RUNTIME=
-MOZ_JSDEBUGGER=1
-MOZ_AUTH_EXTENSION=1
-MOZ_OGG=1
-MOZ_RAW=
-MOZ_SPEEX_RESAMPLER=1
-MOZ_SOUNDTOUCH=1
-MOZ_CUBEB=
-MOZ_VORBIS=
-MOZ_TREMOR=
-MOZ_WAVE=1
-MOZ_SAMPLE_TYPE_FLOAT32=
-MOZ_SAMPLE_TYPE_S16=
-MOZ_OPUS=1
-MOZ_WEBM=1
-MOZ_DASH=
-MOZ_WMF=
-MOZ_WEBRTC=1
-MOZ_PEERCONNECTION=
-MOZ_SRTP=
-MOZ_WEBRTC_SIGNALING=
-MOZ_WEBRTC_IN_LIBXUL=
-MOZ_WEBRTC_ASSERT_ALWAYS=1
-MOZ_SCTP=
-MOZ_MEDIA_PLUGINS=
-MOZ_MEDIA_NAVIGATOR=
-MOZ_OMX_PLUGIN=
-MOZ_VP8=
-MOZ_VP8_ERROR_CONCEALMENT=
-MOZ_VP8_ENCODER=
-MOZ_WEBSPEECH=1
-VPX_AS=
-VPX_ASFLAGS=
-VPX_AS_DASH_C_FLAG=
-VPX_AS_CONVERSION=
-VPX_ASM_SUFFIX=
-VPX_X86_ASM=
-VPX_ARM_ASM=
-LIBJPEG_TURBO_AS=
-LIBJPEG_TURBO_ASFLAGS=
-LIBJPEG_TURBO_X86_ASM=
-LIBJPEG_TURBO_X64_ASM=
-LIBJPEG_TURBO_ARM_ASM=
-MOZ_PANGO=1
-MOZ_PERMISSIONS=1
-MOZ_PLACES=1
-MOZ_SOCIAL=1
-MOZ_PREF_EXTENSIONS=1
-MOZ_PROFILELOCKING=1
-MOZ_PSM=1
-MOZ_REFLOW_PERF=
-MOZ_SAFE_BROWSING=
-MOZ_HELP_VIEWER=
-MOZ_SPELLCHECK=1
-MOZ_ANDROID_OMTC=
-MOZ_ONLY_TOUCH_EVENTS=
-MOZ_TOOLKIT_SEARCH=1
-MOZ_UI_LOCALE=en-US
-MOZ_UNIVERSALCHARDET=1
-MOZ_URL_CLASSIFIER=
-MOZ_XUL=1
-MOZ_ZIPWRITER=1
-NS_PRINTING=1
-MOZ_PDF_PRINTING=
-MOZ_DISABLE_CRYPTOLEGACY=
-NSS_DISABLE_DBM=
-NECKO_WIFI=1
-NECKO_COOKIES=1
-NECKO_PROTOCOLS_DEFAULT="about data file ftp http res viewsource websocket wyciwyg device"
-USE_ARM_KUSER=
-BUILD_CTYPES=1
-MOZ_USE_NATIVE_POPUP_WINDOWS=
-MOZ_ANDROID_HISTORY=
-MOZ_WEBSMS_BACKEND=
-MOZ_ANDROID_WALLPAPER=
-MOZ_ANDROID_BEAM=
-ACCESSIBILITY=1
-MOZ_TIME_MANAGER=
-MOZ_PAY=
-MOZ_AUDIO_CHANNEL_MANAGER=
-NSS_NO_LIBPKIX=
-
-case "$target_os" in
- mingw*)
- NS_ENABLE_TSF=1
- AC_DEFINE(NS_ENABLE_TSF)
- ;;
-esac
-
-case "${target}" in
- *-android*|*-linuxandroid*)
- if test "$CPU_ARCH" = "arm" ; then
- USE_ARM_KUSER=1
- fi
-
- NSS_DISABLE_DBM=1
- if test -z "$gonkdir"; then
- NECKO_WIFI=
- else
- NECKO_WIFI=1
- fi
- MOZ_THEME_FASTSTRIPE=1
- MOZ_TREE_FREETYPE=1
- MOZ_MEMORY=1
- MOZ_RAW=1
- ;;
-
-esac
-
-MOZ_ARG_WITH_STRING(external-source-dir,
-[ --with-external-source-dir=dir
- External directory containing additional build files.],
-[ EXTERNAL_SOURCE_DIR=$withval])
-AC_SUBST(EXTERNAL_SOURCE_DIR)
-
-MOZ_ARG_ENABLE_STRING(application,
-[ --enable-application=APP
- Options include:
- browser (Firefox)
- xulrunner
- tools/update-packaging (AUS-related packaging tools)],
-[ MOZ_BUILD_APP=$enableval ] )
-
-MOZ_ARG_WITH_STRING(xulrunner-stub-name,
-[ --with-xulrunner-stub-name=appname Create the xulrunner stub with the given name],
- XULRUNNER_STUB_NAME=$withval)
-
-if test -z "$XULRUNNER_STUB_NAME"; then
- case "$target_os" in
- darwin*)
- XULRUNNER_STUB_NAME=xulrunner
- ;;
- *)
- XULRUNNER_STUB_NAME=xulrunner-stub
- esac
-fi
-AC_SUBST(XULRUNNER_STUB_NAME)
-
-AC_MSG_CHECKING([for application to build])
-if test -z "$MOZ_BUILD_APP"; then
- AC_MSG_RESULT([browser])
- MOZ_BUILD_APP=browser
-else
- # "mobile" no longer exists.
- if test "$MOZ_BUILD_APP" = "mobile" ; then
- AC_MSG_RESULT([none])
- AC_MSG_ERROR([--enable-application=mobile is no longer supported.])
- fi
- # We have a valid application only if it has a build.mk file in its top
- # directory.
- if test ! -f "${srcdir}/${MOZ_BUILD_APP}/build.mk" ; then
- AC_MSG_RESULT([none])
- AC_MSG_ERROR([--enable-application value not recognized (${MOZ_BUILD_APP}/build.mk does not exist).])
- else
- AC_MSG_RESULT([$MOZ_BUILD_APP])
- fi
-fi
-
-# The app update channel is 'default' when not supplied. The value is used in
-# the application's confvars.sh so it must be set before confvars.sh is called.
-MOZ_ARG_ENABLE_STRING([update-channel],
-[ --enable-update-channel=CHANNEL
- Select application update channel (default=default)],
- MOZ_UPDATE_CHANNEL=`echo $enableval | tr A-Z a-z`)
-
-if test -z "$MOZ_UPDATE_CHANNEL"; then
- MOZ_UPDATE_CHANNEL=default
-fi
-AC_DEFINE_UNQUOTED(MOZ_UPDATE_CHANNEL, $MOZ_UPDATE_CHANNEL)
-AC_SUBST(MOZ_UPDATE_CHANNEL)
-
-# Allow to specify a Google API key file that contains the secret key to be
-# used for various Google API requests.
-MOZ_ARG_WITH_STRING(google-api-keyfile,
-[ --with-google-api-keyfile=file Use the secret key contained in the given keyfile for Google API requests],
- MOZ_GOOGLE_API_KEY=`cat $withval`)
-if test -z "$MOZ_GOOGLE_API_KEY"; then
- MOZ_GOOGLE_API_KEY=no-google-api-key
-fi
-AC_DEFINE_UNQUOTED(MOZ_GOOGLE_API_KEY, $MOZ_GOOGLE_API_KEY)
-
-# Allow the application to influence configure with a confvars.sh script.
-AC_MSG_CHECKING([if app-specific confvars.sh exists])
-if test -f "${srcdir}/${MOZ_BUILD_APP}/confvars.sh" ; then
- AC_MSG_RESULT([${srcdir}/${MOZ_BUILD_APP}/confvars.sh])
- . "${srcdir}/${MOZ_BUILD_APP}/confvars.sh"
-else
- AC_MSG_RESULT([no])
-fi
-
-# Allow influencing configure with a defines.sh script.
-. "${srcdir}/build/defines.sh"
-
-# If we're not building a release build, define EARLY_BETA_OR_EARLIER if it is
-# set in defines.sh
-if test "$BUILDING_RELEASE"; then
- # Override value in defines.sh, if any
- EARLY_BETA_OR_EARLIER=
-elif test "$EARLY_BETA_OR_EARLIER"; then
- AC_DEFINE(EARLY_BETA_OR_EARLIER)
-fi
-AC_SUBST(EARLY_BETA_OR_EARLIER)
-
-# Allow the application to provide a subconfigure script
-if test -f "${srcdir}/${MOZ_BUILD_APP}/configure.in" ; then
- do_output_subdirs() {
- if test -n "$_subconfigure_subdirs"; then
- AC_MSG_ERROR([Cannot specify more than one sub-sub-configure])
- fi
- _subconfigure_subdir="$1"
- _subconfigure_config_args="$ac_configure_args"
- }
- tmpscript=`$PYTHON -c 'import os, tempfile; print tempfile.mktemp(prefix="subscript.").replace(os.sep, "/")'` || exit 1
- m4 "${srcdir}/build/autoconf/subconfigure.m4" \
- "${srcdir}/build/autoconf/altoptions.m4" \
- "${srcdir}/${MOZ_BUILD_APP}/configure.in" > $tmpscript
- . $tmpscript
- rm -f $tmpscript
-fi
-
-# Allow someone to change MOZ_APP_NAME and MOZ_APP_BASENAME in mozconfig
-MOZ_ARG_WITH_STRING(app-name,
-[--with-app-name=APPNAME sets MOZ_APP_NAME to APPNAME],
-WITH_APP_NAME=$withval,
-)
-
-if test -n "$WITH_APP_NAME" ; then
- MOZ_APP_NAME="$WITH_APP_NAME"
-fi
-
-MOZ_ARG_WITH_STRING(app-basename,
-[--with-app-basename=BASENAME sets MOZ_APP_BASENAME to BASENAME],
-WITH_APP_BASENAME=$withval,
-)
-
-if test -n "$WITH_APP_BASENAME" ; then
- MOZ_APP_BASENAME="$WITH_APP_BASENAME"
-fi
-
-# Now is a good time to test for logic errors, define mismatches, etc.
-case "$MOZ_BUILD_APP" in
-xulrunner)
- if test "$LIBXUL_SDK"; then
- AC_MSG_ERROR([Building XULRunner --with-libxul-sdk doesn't make sense; XULRunner provides the libxul SDK.])
- fi
- ;;
-esac
-
-# Special cases where we need to AC_DEFINE something. Also a holdover for apps
-# that haven't made a confvars.sh yet. Don't add new stuff here, use
-# MOZ_BUILD_APP.
-case "$MOZ_BUILD_APP" in
-browser)
- AC_DEFINE(MOZ_PHOENIX)
- ;;
-
-xulrunner)
- AC_DEFINE(MOZ_XULRUNNER)
- ;;
-b2g)
- AC_DEFINE(MOZ_B2G)
- ;;
-esac
-
-AC_SUBST(MOZ_BUILD_APP)
-AC_SUBST(MOZ_PHOENIX)
-AC_SUBST(MOZ_XULRUNNER)
-AC_SUBST(MOZ_B2G)
-
-AC_DEFINE_UNQUOTED(MOZ_BUILD_APP,$MOZ_BUILD_APP)
-
-dnl ========================================================
-dnl Check android sdk version depending on mobile target
-dnl ========================================================
-
-if test -z "$gonkdir" ; then
- # Minimum Android SDK API Level we require.
- case "$MOZ_BUILD_APP" in
- mobile/android)
- android_min_api_level=16
- ;;
- esac
-
- MOZ_ANDROID_SDK($android_min_api_level)
-fi
-
-dnl ========================================================
-dnl =
-dnl = Toolkit Options
-dnl =
-dnl ========================================================
-MOZ_ARG_HEADER(Toolkit Options)
-
- dnl ========================================================
- dnl = Select the default toolkit
- dnl ========================================================
- MOZ_ARG_ENABLE_STRING(default-toolkit,
- [ --enable-default-toolkit=TK
- Select default toolkit
- Platform specific defaults:
- Mac OS X - cairo-cocoa
- OS/2 - cairo-os2
- Win32 - cairo-windows
- * - cairo-gtk2
- * - cairo-gtk3
- * - cairo-qt],
- [ _DEFAULT_TOOLKIT=$enableval ],
- [ _DEFAULT_TOOLKIT=$_PLATFORM_DEFAULT_TOOLKIT])
-
- if test "$_DEFAULT_TOOLKIT" = "cairo-windows" \
- -o "$_DEFAULT_TOOLKIT" = "cairo-gtk2" \
- -o "$_DEFAULT_TOOLKIT" = "cairo-gtk2-x11" \
- -o "$_DEFAULT_TOOLKIT" = "cairo-gtk3" \
- -o "$_DEFAULT_TOOLKIT" = "cairo-qt" \
- -o "$_DEFAULT_TOOLKIT" = "cairo-os2" \
- -o "$_DEFAULT_TOOLKIT" = "cairo-cocoa" \
- -o "$_DEFAULT_TOOLKIT" = "cairo-uikit" \
- -o "$_DEFAULT_TOOLKIT" = "cairo-android" \
- -o "$_DEFAULT_TOOLKIT" = "cairo-gonk"
- then
- dnl nglayout only supports building with one toolkit,
- dnl so ignore everything after the first comma (",").
- MOZ_WIDGET_TOOLKIT=`echo "$_DEFAULT_TOOLKIT" | sed -e "s/,.*$//"`
- else
- AC_MSG_ERROR([You must specify a default toolkit (perhaps $_PLATFORM_DEFAULT_TOOLKIT).])
- fi
-
-MOZ_ARG_WITHOUT_BOOL(x,
-[ --without-x Build without X11],
- WITHOUT_X11=1)
-
-dnl ========================================================
-dnl = Enable the toolkit as needed =
-dnl ========================================================
-
-MOZ_WIDGET_GTK=
-
-case "$MOZ_WIDGET_TOOLKIT" in
-
-cairo-windows)
- MOZ_WIDGET_TOOLKIT=windows
- MOZ_WEBGL=1
- MOZ_PDF_PRINTING=1
- MOZ_INSTRUMENT_EVENT_LOOP=1
- if test -n "$GNU_CC"; then
- MOZ_FOLD_LIBS=
- fi
- ;;
-
-cairo-gtk3)
- MOZ_WIDGET_TOOLKIT=gtk3
- MOZ_ENABLE_GTK=1
- MOZ_ENABLE_GTK3=1
- MOZ_ENABLE_XREMOTE=1
- MOZ_WEBGL=1
- MOZ_GL_DEFAULT_PROVIDER=GLX
-
- AC_DEFINE(MOZ_X11)
- MOZ_X11=1
- USE_FC_FREETYPE=1
-
- TK_CFLAGS='$(MOZ_GTK3_CFLAGS)'
- TK_LIBS='$(MOZ_GTK3_LIBS)'
- MOZ_WIDGET_GTK=3
- AC_DEFINE_UNQUOTED(MOZ_WIDGET_GTK,$MOZ_WIDGET_GTK)
- MOZ_PDF_PRINTING=1
- MOZ_INSTRUMENT_EVENT_LOOP=1
- ;;
-
-cairo-gtk2|cairo-gtk2-x11)
- MOZ_WIDGET_TOOLKIT=gtk2
- MOZ_ENABLE_GTK=1
- MOZ_ENABLE_GTK2=1
- MOZ_ENABLE_XREMOTE=1
- MOZ_WEBGL=1
- MOZ_GL_DEFAULT_PROVIDER=GLX
-
- AC_DEFINE(MOZ_X11)
- MOZ_X11=1
- USE_FC_FREETYPE=1
-
- TK_CFLAGS='$(MOZ_GTK2_CFLAGS)'
- TK_LIBS='$(MOZ_GTK2_LIBS)'
- AC_DEFINE(MOZ_WIDGET_GTK2)
- MOZ_WIDGET_GTK=2
- AC_DEFINE_UNQUOTED(MOZ_WIDGET_GTK,$MOZ_WIDGET_GTK)
- MOZ_PDF_PRINTING=1
- MOZ_INSTRUMENT_EVENT_LOOP=1
- ;;
-
-cairo-qt)
- MOZ_WIDGET_TOOLKIT=qt
- MOZ_ENABLE_QT=1
- if test -z "$WITHOUT_X11"; then
- MOZ_ENABLE_XREMOTE=1
- MOZ_GL_DEFAULT_PROVIDER=GLX
- MOZ_X11=1
- AC_DEFINE(MOZ_X11)
- XT_LIBS=
- fi
-
- MOZ_WEBGL=1
- USE_ELF_DYNSTR_GC=
- USE_FC_FREETYPE=1
- TK_CFLAGS='$(MOZ_QT_CFLAGS)'
- TK_LIBS='$(MOZ_QT_LIBS)'
- AC_DEFINE(MOZ_WIDGET_QT)
- MOZ_PDF_PRINTING=1
- AC_DEFINE(QT_NO_KEYWORDS)
- ;;
-
-cairo-os2)
- MOZ_WIDGET_TOOLKIT=os2
- USE_FC_FREETYPE=1
- TK_CFLAGS='$(MOZ_CAIRO_CFLAGS) $(MOZ_PIXMAN_CFLAGS)'
- TK_LIBS='$(MOZ_CAIRO_LIBS) $(MOZ_PIXMAN_LIBS)'
- MOZ_PDF_PRINTING=1
- ;;
-
-cairo-cocoa)
- MOZ_WIDGET_TOOLKIT=cocoa
- AC_DEFINE(MOZ_WIDGET_COCOA)
- LDFLAGS="$LDFLAGS -framework Cocoa -lobjc"
- TK_LIBS='-framework QuartzCore -framework Carbon -framework CoreAudio -framework AudioToolbox -framework AudioUnit -framework AddressBook -framework OpenGL'
- TK_CFLAGS="-DNO_X11"
- CFLAGS="$CFLAGS $TK_CFLAGS"
- CXXFLAGS="$CXXFLAGS $TK_CFLAGS"
- DYNAMIC_XPCOM_LIBS='$(LIBXUL_DIST)/bin/XUL -lxpcom_core -lmozalloc'
- XPCOM_FROZEN_LDOPTS='$(LIBXUL_DIST)/bin/XUL -lmozalloc'
- MOZ_USER_DIR="Mozilla"
- MOZ_FS_LAYOUT=bundle
- MOZ_WEBGL=1
- MOZ_INSTRUMENT_EVENT_LOOP=1
- ;;
-
-cairo-uikit)
- MOZ_WIDGET_TOOLKIT=uikit
- AC_DEFINE(MOZ_WIDGET_UIKIT)
- LDFLAGS="$LDFLAGS -framework UIKit -lobjc"
- TK_CFLAGS="-DNO_X11"
- TK_LIBS='-framework Foundation -framework CoreFoundation -framework CoreGraphics -framework CoreText'
- CFLAGS="$CFLAGS $TK_CFLAGS"
- CXXFLAGS="$CXXFLAGS $TK_CFLAGS"
- DYNAMIC_XPCOM_LIBS='$(LIBXUL_DIST)/bin/XUL -lxpcom_core -lmozalloc'
- XPCOM_FROZEN_LDOPTS='$(LIBXUL_DIST)/bin/XUL -lmozalloc'
- MOZ_USER_DIR="Mozilla"
- MOZ_FS_LAYOUT=bundle
- ;;
-
-cairo-android)
- AC_DEFINE(MOZ_WIDGET_ANDROID)
- MOZ_WIDGET_TOOLKIT=android
- TK_CFLAGS='$(MOZ_CAIRO_CFLAGS) $(MOZ_PIXMAN_CFLAGS)'
- TK_LIBS='$(MOZ_CAIRO_LIBS) $(MOZ_PIXMAN_LIBS)'
- MOZ_WEBGL=1
- MOZ_PDF_PRINTING=1
- MOZ_INSTRUMENT_EVENT_LOOP=1
- ;;
-
-cairo-gonk)
- AC_DEFINE(MOZ_WIDGET_GONK)
- AC_DEFINE(MOZ_TOUCH)
- MOZ_WIDGET_TOOLKIT=gonk
- TK_CFLAGS='$(MOZ_CAIRO_CFLAGS) $(MOZ_PIXMAN_CFLAGS)'
- TK_LIBS='$(MOZ_CAIRO_LIBS) $(MOZ_PIXMAN_LIBS)'
- MOZ_WEBGL=1
- MOZ_PDF_PRINTING=1
- MOZ_TOUCH=1
- ;;
-
-esac
-
-AC_SUBST(MOZ_PDF_PRINTING)
-if test "$MOZ_PDF_PRINTING"; then
- PDF_SURFACE_FEATURE="#define CAIRO_HAS_PDF_SURFACE 1"
- AC_DEFINE(MOZ_PDF_PRINTING)
-fi
-
-if test "$MOZ_ENABLE_XREMOTE"; then
- AC_DEFINE(MOZ_ENABLE_XREMOTE)
-fi
-
-if test "$MOZ_INSTRUMENT_EVENT_LOOP"; then
- AC_DEFINE(MOZ_INSTRUMENT_EVENT_LOOP)
-fi
-
-if test "$COMPILE_ENVIRONMENT"; then
- if test "$MOZ_ENABLE_GTK3"; then
- PKG_CHECK_MODULES(MOZ_GTK3, gtk+-3.0 >= $GTK3_VERSION gtk+-unix-print-3.0 glib-2.0 gobject-2.0 $GDK_PACKAGES)
- fi
- if test "$MOZ_ENABLE_GTK2"; then
- if test "$MOZ_X11"; then
- GDK_PACKAGES=gdk-x11-2.0
- fi
-
- PKG_CHECK_MODULES(MOZ_GTK2, gtk+-2.0 >= $GTK2_VERSION gtk+-unix-print-2.0 glib-2.0 gobject-2.0 $GDK_PACKAGES)
- fi
-
-fi # COMPILE_ENVIRONMENT
-
-AC_SUBST(MOZ_FS_LAYOUT)
-
-dnl ========================================================
-dnl Use ARM userspace kernel helpers; tell NSPR to enable
-dnl their usage and use them in spidermonkey.
-dnl ========================================================
-MOZ_ARG_WITH_BOOL(arm-kuser,
-[ --with-arm-kuser Use kuser helpers (Linux/ARM only -- requires kernel 2.6.13 or later)],
- USE_ARM_KUSER=1,)
-if test -n "$USE_ARM_KUSER"; then
- AC_DEFINE(USE_ARM_KUSER)
-fi
-
-dnl ========================================================
-dnl = startup-notification support module
-dnl ========================================================
-
-if test "$MOZ_ENABLE_GTK"
-then
- MOZ_ENABLE_STARTUP_NOTIFICATION=
-
- MOZ_ARG_ENABLE_BOOL(startup-notification,
- [ --enable-startup-notification
- Enable startup-notification support (default: disabled) ],
- MOZ_ENABLE_STARTUP_NOTIFICATION=force,
- MOZ_ENABLE_STARTUP_NOTIFICATION=)
- if test "$MOZ_ENABLE_STARTUP_NOTIFICATION"
- then
- PKG_CHECK_MODULES(MOZ_STARTUP_NOTIFICATION,
- libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_VERSION,
- [MOZ_ENABLE_STARTUP_NOTIFICATION=1], [
- if test "$MOZ_ENABLE_STARTUP_NOTIFICATION" = "force"
- then
- AC_MSG_ERROR([* * * Could not find startup-notification >= $STARTUP_NOTIFICATION_VERSION])
- fi
- MOZ_ENABLE_STARTUP_NOTIFICATION=
- ])
- fi
-
- if test "$MOZ_ENABLE_STARTUP_NOTIFICATION"; then
- AC_DEFINE(MOZ_ENABLE_STARTUP_NOTIFICATION)
- fi
-
- TK_LIBS="$TK_LIBS $MOZ_STARTUP_NOTIFICATION_LIBS"
-fi
-AC_SUBST(MOZ_ENABLE_STARTUP_NOTIFICATION)
-AC_SUBST(MOZ_STARTUP_NOTIFICATION_CFLAGS)
-AC_SUBST(MOZ_STARTUP_NOTIFICATION_LIBS)
-
-dnl ========================================================
-dnl = QT support
-dnl ========================================================
-if test "$MOZ_ENABLE_QT"
-then
- MOZ_ARG_WITH_STRING(qtdir,
- [ --with-qtdir=\$dir Specify Qt directory ],
- [ QTDIR=$withval])
-
- if test -z "$QTDIR"; then
- AC_CHECK_PROGS(HOST_QMAKE, $HOST_QMAKE qmake, "")
- else
- HOST_QMAKE="$QTDIR/bin/qmake"
- fi
- QT_VERSION=`$HOST_QMAKE -v | grep 'Using Qt version' | egrep -o '[[0-9]]+\.[[0-9]]+\.[[0-9]]+'`
-
- if test -z "$QTDIR"; then
- case $QT_VERSION in
- 5.*)
- AC_MSG_RESULT("Using qt5: $QT_VERSION")
- PKG_CHECK_MODULES(MOZ_QT, Qt5Gui Qt5Network Qt5Core Qt5OpenGL Qt5Widgets Qt5PrintSupport, ,
- [
- AC_MSG_ERROR([$MOZ_QT_PKG_ERRORS Need qtbase development packages, (On Ubuntu, you might try installing the packages qtbase5-dev libqt5opengl5-dev.)])
- ])
- QT5INCDIR=`pkg-config --variable=includedir Qt5Gui`
- MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QT5INCDIR/QtGui/$QT_VERSION/QtGui"
- ;;
- 4.*)
- AC_MSG_RESULT("Using qt4: $QT_VERSION")
- PKG_CHECK_MODULES(MOZ_QT, QtGui QtNetwork QtCore QtOpenGL, ,
- [
- AC_MSG_ERROR([$MOZ_QT_PKG_ERRORS Need qt4 development package, (On Ubuntu, you might try installing the packages libqt4-dev libqt4-opengl-dev.)])
- ])
- ;;
- *)
- AC_MSG_ERROR([* * * Unsupported Qt Version: $QT_VERSION])
- ;;
- esac
-
- AC_CHECK_PROGS(HOST_MOC, $MOC moc, "")
- AC_CHECK_PROGS(HOST_RCC, $RCC rcc, "")
- else
- MOZ_QT_CFLAGS="-DQT_SHARED"
- MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include"
- MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtGui"
- MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtCore"
- MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtNetwork"
- MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtXml"
- MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtDeclarative"
-
- case $QT_VERSION in
- 5.*)
- AC_MSG_RESULT("Using qt5: $QT_VERSION")
- MOZ_QT_LIBS="-L$QTDIR/lib/ -lQt5Gui -lQt5Network -lQt5Core -lQt5Xml -lQt5OpenGL"
- MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtGui/$QT_VERSION/QtGui"
- MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtWidgets"
- MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtPrintSupport"
- MOZ_QT_LIBS="$MOZ_QT_LIBS -lQt5Widgets -lQt5PrintSupport"
- ;;
- 4.*)
- AC_MSG_RESULT("Using qt4: $QT_VERSION")
- MOZ_QT_LIBS="-L$QTDIR/lib/ -lQtGui -lQtNetwork -lQtCore -lQtXml -lQtOpenGL"
- MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/Qt"
- ;;
- *)
- AC_MSG_ERROR([* * * Unsupported Qt Version: $QT_VERSION])
- ;;
- esac
-
- HOST_MOC="$QTDIR/bin/moc"
- HOST_RCC="$QTDIR/bin/rcc"
- fi
- if test -z "$HOST_MOC"; then
- AC_MSG_ERROR([No acceptable moc preprocessor found. Qt SDK is not installed or --with-qt is
-incorrect])
- fi
- if test -z "$HOST_RCC"; then
- AC_MSG_ERROR([No acceptable rcc preprocessor found. Qt SDK is not installed or --with-qt is
-incorrect])
- fi
-
- MOC=$HOST_MOC
- RCC=$HOST_RCC
-
- MOZ_ENABLE_QMSYSTEM2=
- PKG_CHECK_MODULES(_QMSYSTEM2, qmsystem2,
- MOZ_ENABLE_QMSYSTEM2=1,
- MOZ_ENABLE_QMSYSTEM2=)
-
- if test "$MOZ_ENABLE_QMSYSTEM2"; then
- MOZ_ENABLE_QMSYSTEM2=1
- MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS $_QMSYSTEM2_CFLAGS"
- MOZ_QT_LIBS="$MOZ_QT_LIBS $_QMSYSTEM2_LIBS"
- AC_DEFINE(MOZ_ENABLE_QMSYSTEM2)
- fi
-
- MOZ_ENABLE_QTNETWORK=
- PKG_CHECK_MODULES(_QTNETWORK, QtNetwork >= 4.7,
- MOZ_ENABLE_QTNETWORK=1,
- MOZ_ENABLE_QTNETWORK=)
-
- if test "$MOZ_ENABLE_QTNETWORK"; then
- MOZ_ENABLE_QTNETWORK=1
- AC_DEFINE(MOZ_ENABLE_QTNETWORK)
- fi
-
- MOZ_ENABLE_QTMOBILITY=
- PKG_CHECK_MODULES(_QTMOBILITY, QtSensors QtFeedback QtLocation,
- MOZ_ENABLE_QTMOBILITY=1,
- MOZ_ENABLE_QTMOBILITY=)
- if test "$MOZ_ENABLE_QTMOBILITY"; then
- MOZ_ENABLE_QTMOBILITY=1
- MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS $_QTMOBILITY_CFLAGS"
- MOZ_QT_LIBS="$MOZ_QT_LIBS $_QTMOBILITY_LIBS"
- else
- AC_CHECK_LIB(QtSensors, main, [
- MOZ_ENABLE_QTMOBILITY=1
- MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtMobility"
- MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtSensors"
- MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtFeedback"
- MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtLocation"
- MOZ_QT_LIBS="$MOZ_QT_LIBS -lQtSensors -lQtFeedback -lQtLocation"
- ])
- fi
- if test "$MOZ_ENABLE_QTMOBILITY"; then
- AC_DEFINE(MOZ_ENABLE_QTMOBILITY)
- fi
-fi
-
-AC_SUBST(GTK_CONFIG)
-AC_SUBST(TK_CFLAGS)
-AC_SUBST(TK_LIBS)
-
-AC_SUBST(MOZ_ENABLE_GTK2)
-AC_SUBST(MOZ_ENABLE_GTK3)
-AC_SUBST(MOZ_ENABLE_GTK)
-AC_SUBST(MOZ_ENABLE_QT)
-AC_SUBST(MOZ_ENABLE_QTNETWORK)
-AC_SUBST(MOZ_ENABLE_QMSYSTEM2)
-AC_SUBST(MOZ_ENABLE_QTMOBILITY)
-AC_SUBST(MOZ_ENABLE_XREMOTE)
-AC_SUBST(MOZ_GTK2_CFLAGS)
-AC_SUBST(MOZ_GTK2_LIBS)
-AC_SUBST(MOZ_GTK3_CFLAGS)
-AC_SUBST(MOZ_GTK3_LIBS)
-AC_SUBST(MOZ_WIDGET_GTK)
-AC_SUBST(MOZ_QT_CFLAGS)
-AC_SUBST(MOZ_QT_LIBS)
-
-AC_SUBST(MOC)
-AC_SUBST(RCC)
-
-AC_SUBST(MOZ_X11)
-
-dnl ========================================================
-dnl =
-dnl = Components & Features
-dnl =
-dnl ========================================================
-MOZ_ARG_HEADER(Components and Features)
-
-dnl ========================================================
-dnl = Localization
-dnl ========================================================
-MOZ_ARG_ENABLE_STRING(ui-locale,
-[ --enable-ui-locale=ab-CD
- Select the user interface locale (default: en-US)],
- MOZ_UI_LOCALE=$enableval )
-AC_SUBST(MOZ_UI_LOCALE)
-
-dnl ========================================================
-dnl = Trademarked Branding
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(official-branding,
-[ --enable-official-branding
- Enable Official mozilla.org Branding
- Do not distribute builds with
- --enable-official-branding unless you have
- permission to use trademarks per
- http://www.mozilla.org/foundation/trademarks/ .],
-[
- if test -z "$MOZ_OFFICIAL_BRANDING_DIRECTORY"; then
- AC_MSG_ERROR([You must specify MOZ_OFFICIAL_BRANDING_DIRECTORY to use --enable-official-branding.])
- else
- MOZ_BRANDING_DIRECTORY=${MOZ_OFFICIAL_BRANDING_DIRECTORY}
- MOZ_OFFICIAL_BRANDING=1
- fi
-], MOZ_OFFICIAL_BRANDING=)
-
-AC_SUBST(MOZ_OFFICIAL_BRANDING)
-if test -n "$MOZ_OFFICIAL_BRANDING"; then
- AC_DEFINE(MOZ_OFFICIAL_BRANDING)
-fi
-
-MOZ_ARG_WITH_STRING(branding,
-[ --with-branding=dir Use branding from the specified directory.],
- MOZ_BRANDING_DIRECTORY=$withval)
-
-REAL_BRANDING_DIRECTORY="${MOZ_BRANDING_DIRECTORY}"
-if test -z "$REAL_BRANDING_DIRECTORY"; then
- REAL_BRANDING_DIRECTORY=${MOZ_BUILD_APP}/branding/nightly
-fi
-
-if test -f "${_topsrcdir}/$REAL_BRANDING_DIRECTORY/configure.sh"; then
- . "${_topsrcdir}/$REAL_BRANDING_DIRECTORY/configure.sh"
-fi
-
-AC_SUBST(MOZ_BRANDING_DIRECTORY)
-
-dnl ========================================================
-dnl = Distribution ID
-dnl ========================================================
-MOZ_ARG_WITH_STRING(distribution-id,
-[ --with-distribution-id=ID
- Set distribution-specific id (default=org.mozilla)],
-[ val=`echo $withval`
- MOZ_DISTRIBUTION_ID="$val"])
-
-if test -z "$MOZ_DISTRIBUTION_ID"; then
- MOZ_DISTRIBUTION_ID="org.mozilla"
-fi
-
-AC_DEFINE_UNQUOTED(MOZ_DISTRIBUTION_ID,"$MOZ_DISTRIBUTION_ID")
-AC_SUBST(MOZ_DISTRIBUTION_ID)
-
-
-dnl ========================================================
-dnl complex text support off by default
-dnl ========================================================
-MOZ_ARG_DISABLE_BOOL(pango,
-[ --disable-pango Disable usage of Pango ],
- MOZ_PANGO=,
- MOZ_PANGO=1)
-
-dnl ========================================================
-dnl = Pango
-dnl ========================================================
-if test "$MOZ_ENABLE_GTK" -o "$MOZ_ENABLE_QT"
-then
- AC_SUBST(MOZ_PANGO)
-
- if test "$MOZ_PANGO"
- then
- PKG_CHECK_MODULES(_PANGOCHK, pango >= $PANGO_VERSION)
-
- PKG_CHECK_MODULES(MOZ_PANGO, pango >= $PANGO_VERSION pangoft2 >= $PANGO_VERSION pangocairo >= $PANGO_VERSION)
- AC_SUBST(MOZ_PANGO_CFLAGS)
- AC_SUBST(MOZ_PANGO_LIBS)
- AC_DEFINE(MOZ_PANGO)
- else
- PKG_CHECK_MODULES(FT2, freetype2 > 6.1.0)
- AC_SUBST(FT2_CFLAGS)
- AC_SUBST(FT2_LIBS)
- fi
-fi
-
-dnl ========================================================
-dnl = GnomeVFS, GIO and GConf support module
-dnl ========================================================
-
-if test "$MOZ_X11"
-then
- dnl build the GIO extension by default only when the
- dnl GTK2 toolkit is in use.
- if test "$MOZ_ENABLE_GTK"
- then
- MOZ_ENABLE_GIO=1
- MOZ_ENABLE_GCONF=1
- fi
-
- dnl ========================================================
- dnl = GnomeVFS support module
- dnl ========================================================
- MOZ_ARG_ENABLE_BOOL(gnomevfs,
- [ --enable-gnomevfs Enable GnomeVFS support (default: disabled)],
- MOZ_ENABLE_GNOMEVFS=force,
- MOZ_ENABLE_GNOMEVFS=)
-
- if test "$MOZ_ENABLE_GNOMEVFS"
- then
- PKG_CHECK_MODULES(MOZ_GNOMEVFS, gnome-vfs-2.0 >= $GNOMEVFS_VERSION gnome-vfs-module-2.0 >= $GNOMEVFS_VERSION,[
- MOZ_GNOMEVFS_LIBS=`echo $MOZ_GNOMEVFS_LIBS | sed 's/-llinc\>//'`
- MOZ_ENABLE_GNOMEVFS=1
- AC_DEFINE(MOZ_ENABLE_GNOMEVFS)
- ],[
- if test "$MOZ_ENABLE_GNOMEVFS" = "force"
- then
- AC_MSG_ERROR([* * * Could not find gnome-vfs-module-2.0 >= $GNOMEVFS_VERSION])
- fi
- MOZ_ENABLE_GNOMEVFS=
- ])
- fi
-
- AC_SUBST(MOZ_ENABLE_GNOMEVFS)
- AC_SUBST(MOZ_GNOMEVFS_CFLAGS)
- AC_SUBST(MOZ_GNOMEVFS_LIBS)
-
- dnl ========================================================
- dnl = GIO support module
- dnl ========================================================
- MOZ_ARG_DISABLE_BOOL(gio,
- [ --disable-gio Disable GIO support],
- MOZ_ENABLE_GIO=,
- MOZ_ENABLE_GIO=force)
-
- if test "$MOZ_ENABLE_GIO" -a "$MOZ_ENABLE_GTK"
- then
- PKG_CHECK_MODULES(_GTKCHECK, gtk+-2.0 >= 2.14, ,
- [AC_MSG_ERROR([* * * Could not find gtk+-2.0 > 2.14. Required for build with gio.])])
- PKG_CHECK_MODULES(MOZ_GIO, gio-2.0 >= $GIO_VERSION,[
- MOZ_GIO_LIBS=`echo $MOZ_GIO_LIBS | sed 's/-llinc\>//'`
- MOZ_ENABLE_GIO=1
- AC_DEFINE(MOZ_ENABLE_GIO)
- ],[
- if test "$MOZ_ENABLE_GIO" = "force"
- then
- AC_MSG_ERROR([* * * Could not find gio-2.0 >= $GIO_VERSION])
- fi
- MOZ_ENABLE_GIO=
- ])
- fi
-
- AC_SUBST(MOZ_ENABLE_GIO)
- AC_SUBST(MOZ_GIO_CFLAGS)
- AC_SUBST(MOZ_GIO_LIBS)
-
- dnl ========================================================
- dnl = GConf support module
- dnl ========================================================
- MOZ_ARG_DISABLE_BOOL(gconf,
- [ --disable-gconf Disable Gconf support ],
- MOZ_ENABLE_GCONF=,
- MOZ_ENABLE_GCONF=force)
-
- if test "$MOZ_ENABLE_GCONF"
- then
- PKG_CHECK_MODULES(MOZ_GCONF, gconf-2.0 >= $GCONF_VERSION gobject-2.0 ,[
- MOZ_GCONF_LIBS=`$PKG_CONFIG --libs gobject-2.0`
- MOZ_ENABLE_GCONF=1
- ],[
- if test "$MOZ_ENABLE_GCONF" = "force"
- then
- AC_MSG_ERROR([* * * Could not find gconf-2.0 ])
- fi
- MOZ_ENABLE_GCONF=
- ])
- fi
-
- if test "$MOZ_ENABLE_GCONF"; then
- AC_DEFINE(MOZ_ENABLE_GCONF)
- fi
-
- AC_SUBST(MOZ_ENABLE_GCONF)
- AC_SUBST(MOZ_GCONF_CFLAGS)
- AC_SUBST(MOZ_GCONF_LIBS)
-fi
-
-dnl ========================================================
-dnl = libproxy support
-dnl ========================================================
-
-if test "$MOZ_ENABLE_GTK" -o "$MOZ_ENABLE_QT"
-then
- MOZ_ENABLE_LIBPROXY=
-
- MOZ_ARG_ENABLE_BOOL(libproxy,
- [ --enable-libproxy Enable libproxy support ],
- MOZ_ENABLE_LIBPROXY=1,
- MOZ_ENABLE_LIBPROXY=)
-
- if test "$MOZ_ENABLE_LIBPROXY"
- then
- PKG_CHECK_MODULES(MOZ_LIBPROXY, libproxy-1.0)
- AC_DEFINE(MOZ_ENABLE_LIBPROXY)
- fi
-fi
-AC_SUBST(MOZ_ENABLE_LIBPROXY)
-AC_SUBST(MOZ_LIBPROXY_CFLAGS)
-AC_SUBST(MOZ_LIBPROXY_LIBS)
-
-dnl ========================================================
-dnl = GNOME component (mozgnome)
-dnl ========================================================
-
-if test "$MOZ_ENABLE_GTK2"
-then
- MOZ_ENABLE_GNOME_COMPONENT=1
-fi
-AC_SUBST(MOZ_ENABLE_GNOME_COMPONENT)
-
-dnl ========================================================
-dnl = libgnomeui support module
-dnl ========================================================
-
-if test "$MOZ_ENABLE_GTK"
-then
- MOZ_ARG_ENABLE_BOOL(gnomeui,
- [ --enable-gnomeui Enable libgnomeui instead of GIO & GTK for icon theme support ],
- MOZ_ENABLE_GNOMEUI=force,
- MOZ_ENABLE_GNOMEUI=)
-
- if test "$MOZ_ENABLE_GNOMEUI"
- then
- PKG_CHECK_MODULES(MOZ_GNOMEUI, libgnomeui-2.0 >= $GNOMEUI_VERSION,
- [
- MOZ_ENABLE_GNOMEUI=1
- ],[
- if test "$MOZ_ENABLE_GNOMEUI" = "force"
- then
- AC_MSG_ERROR([* * * Could not find libgnomeui-2.0 >= $GNOMEUI_VERSION])
- fi
- MOZ_ENABLE_GNOMEUI=
- ])
- fi
-
- if test "$MOZ_ENABLE_GNOMEUI"; then
- AC_DEFINE(MOZ_ENABLE_GNOMEUI)
- fi
-fi
-
-AC_SUBST(MOZ_ENABLE_GNOMEUI)
-AC_SUBST(MOZ_GNOMEUI_CFLAGS)
-
-dnl ========================================================
-dnl = dbus support
-dnl ========================================================
-
-if test "$MOZ_ENABLE_GTK" -o "$MOZ_ENABLE_QT"
-then
- MOZ_ENABLE_DBUS=1
-
- MOZ_ARG_DISABLE_BOOL(dbus,
- [ --disable-dbus Disable dbus support ],
- MOZ_ENABLE_DBUS=,
- MOZ_ENABLE_DBUS=1)
-
- if test "$MOZ_ENABLE_DBUS"
- then
- PKG_CHECK_MODULES(MOZ_DBUS, dbus-1 >= $DBUS_VERSION)
- PKG_CHECK_MODULES(MOZ_DBUS_GLIB, dbus-glib-1 >= $DBUS_VERSION)
- AC_DEFINE(MOZ_ENABLE_DBUS)
- fi
-fi
-AC_SUBST(MOZ_ENABLE_DBUS)
-AC_SUBST(MOZ_DBUS_CFLAGS)
-AC_SUBST(MOZ_DBUS_LIBS)
-AC_SUBST(MOZ_DBUS_GLIB_CFLAGS)
-AC_SUBST(MOZ_DBUS_GLIB_LIBS)
-
-dnl ========================================================
-dnl = Enable Android History instead of Places
-dnl ========================================================
-if test -n "$MOZ_ANDROID_HISTORY"; then
- if test -z "$MOZ_PLACES"; then
- AC_DEFINE(MOZ_ANDROID_HISTORY)
- else
- AC_MSG_ERROR([Cannot use MOZ_ANDROID_HISTORY alongside MOZ_PLACES.])
- fi
-fi
-
-dnl ========================================================
-dnl = Build with the Android compositor
-dnl ========================================================
-if test -n "$MOZ_ANDROID_OMTC"; then
- dnl Do this if defined in confvars.sh
- AC_DEFINE(MOZ_ANDROID_OMTC)
-fi
-
-dnl ========================================================
-dnl = Disable WebSMS backend
-dnl ========================================================
-MOZ_ARG_DISABLE_BOOL(websms-backend,
-[ --disable-websms-backend
- Disable WebSMS backend],
- MOZ_WEBSMS_BACKEND=,
- MOZ_WEBSMS_BACKEND=1)
-
-if test -n "$MOZ_WEBSMS_BACKEND"; then
- AC_DEFINE(MOZ_WEBSMS_BACKEND)
-fi
-
-dnl ========================================================
-dnl = Enable SET_WALLPAPER permission on Android
-dnl ========================================================
-if test -n "$MOZ_ANDROID_WALLPAPER"; then
- AC_DEFINE(MOZ_ANDROID_WALLPAPER)
-fi
-
-dnl ========================================================
-dnl = Enable NFC permission on Android
-dnl ========================================================
-if test -n "$MOZ_ANDROID_BEAM"; then
- AC_DEFINE(MOZ_ANDROID_BEAM)
-fi
-
-dnl ========================================================
-dnl = Build Personal Security Manager
-dnl ========================================================
-MOZ_ARG_DISABLE_BOOL(crypto,
-[ --disable-crypto Disable crypto support (Personal Security Manager)],
- MOZ_PSM=,
- MOZ_PSM=1 )
-
-dnl ========================================================
-dnl = JS Debugger XPCOM component (js/jsd)
-dnl ========================================================
-MOZ_ARG_DISABLE_BOOL(jsd,
-[ --disable-jsd Disable JavaScript debug library],
- MOZ_JSDEBUGGER=,
- MOZ_JSDEBUGGER=1)
-
-
-dnl ========================================================
-dnl = Enable IPDL's "expensive" unit tests
-dnl ========================================================
-MOZ_IPDL_TESTS=
-
-MOZ_ARG_ENABLE_BOOL(ipdl-tests,
-[ --enable-ipdl-tests Enable expensive IPDL tests],
- MOZ_IPDL_TESTS=1,
- MOZ_IPDL_TESTS=)
-
-if test -n "$MOZ_IPDL_TESTS"; then
- AC_DEFINE(MOZ_IPDL_TESTS)
-fi
-
-AC_SUBST(MOZ_IPDL_TESTS)
-
-dnl ========================================================
-dnl = Disable building dbm
-dnl ========================================================
-MOZ_ARG_DISABLE_BOOL(dbm,
-[ --disable-dbm Disable building dbm],
- NSS_DISABLE_DBM=1,
- NSS_DISABLE_DBM=)
-
-dnl bi-directional support always on
-IBMBIDI=1
-AC_DEFINE(IBMBIDI)
-
-dnl ========================================================
-dnl accessibility support on by default on all platforms
-dnl ========================================================
-MOZ_ARG_DISABLE_BOOL(accessibility,
-[ --disable-accessibility Disable accessibility support],
- ACCESSIBILITY=,
- ACCESSIBILITY=1 )
-if test "$ACCESSIBILITY"; then
- case "$target" in
- *-mingw*)
- if test -z "$MIDL"; then
- if test "$GCC" != "yes"; then
- AC_MSG_ERROR([MIDL could not be found. Building accessibility without MIDL is not supported.])
- else
- AC_MSG_ERROR([You have accessibility enabled, but widl could not be found. Add --disable-accessibility to your mozconfig or install widl. See https://developer.mozilla.org/en-US/docs/Cross_Compile_Mozilla_for_Mingw32 for details.])
- fi
- fi
- esac
- AC_DEFINE(ACCESSIBILITY)
-fi
-
-dnl ========================================================
-dnl Accessibility is required for the linuxgl widget
-dnl backend
-dnl ========================================================
-if test "${MOZ_WIDGET_TOOLKIT}" = "linuxgl" -a "$ACCESSIBILITY" != "1"; then
- AC_MSG_ERROR(["Accessibility is required for the linuxgl widget backend"])
-fi
-
-dnl ========================================================
-dnl Disable printing
-dnl ========================================================
-MOZ_ARG_DISABLE_BOOL(printing,
-[ --disable-printing Disable printing support],
- NS_PRINTING=,
- NS_PRINTING=1)
-
-if test "$NS_PRINTING"; then
- AC_DEFINE(NS_PRINTING)
- AC_DEFINE(NS_PRINT_PREVIEW)
-fi
-
-dnl Turn off webrtc for OS's we don't handle yet, but allow
-dnl --enable-webrtc to override. Can disable for everything in
-dnl the master list above.
-if test -n "$MOZ_WEBRTC"; then
- case "$target" in
- *-linux*|*-mingw*|*-darwin*|*-android*|*-linuxandroid*)
- dnl Leave enabled
- ;;
- *)
- dnl default to disabled for all others
- MOZ_WEBRTC=
- ;;
- esac
-fi
-
-# target_arch is from {ia32|x64|arm|ppc}
-case "$CPU_ARCH" in
-x86_64)
- WEBRTC_TARGET_ARCH=x64
- ;;
-
-arm*)
- WEBRTC_TARGET_ARCH=arm
- ;;
-
-x86)
- WEBRTC_TARGET_ARCH=ia32
- ;;
-
-ppc*)
- WEBRTC_TARGET_ARCH=ppc
- ;;
-ia64)
- WEBRTC_TARGET_ARCH=ia64
- ;;
-*)
-# unsupported arch for webrtc
- WEBRTC_TARGET_ARCH=unknown
- MOZ_WEBRTC=
- ;;
-
-esac
-
-dnl ========================================================
-dnl = Disable WebRTC code
-dnl ========================================================
-MOZ_ARG_DISABLE_BOOL(webrtc,
-[ --disable-webrtc Disable support for WebRTC],
- MOZ_WEBRTC=,
- MOZ_WEBRTC=1)
-
-if test -n "$MOZ_WEBRTC"; then
- AC_DEFINE(MOZ_WEBRTC)
- dnl MOZ_WEBRTC_ASSERT_ALWAYS turns on a number of safety asserts in
- dnl opt/production builds (via MOZ_CRASH())
- AC_DEFINE(MOZ_WEBRTC_ASSERT_ALWAYS)
- MOZ_RAW=1
- MOZ_VP8=1
- MOZ_VP8_ENCODER=1
- MOZ_VP8_ERROR_CONCEALMENT=1
-
-dnl enable once Signaling lands
- MOZ_WEBRTC_SIGNALING=1
- AC_DEFINE(MOZ_WEBRTC_SIGNALING)
- if test "${OS_TARGET}" = "WINNT"; then
- MOZ_WEBRTC_IN_LIBXUL=1
- fi
-dnl enable once PeerConnection lands
- MOZ_PEERCONNECTION=1
- AC_DEFINE(MOZ_PEERCONNECTION)
- MOZ_SCTP=1
- MOZ_SRTP=1
- AC_DEFINE(MOZ_SCTP)
- AC_DEFINE(MOZ_SRTP)
-fi
-
-AC_SUBST(MOZ_WEBRTC)
-AC_SUBST(MOZ_WEBRTC_LEAKING_TESTS)
-AC_SUBST(MOZ_WEBRTC_SIGNALING)
-AC_SUBST(MOZ_PEERCONNECTION)
-AC_SUBST(MOZ_WEBRTC_IN_LIBXUL)
-AC_SUBST(MOZ_WEBRTC_ASSERT_ALWAYS)
-AC_SUBST(MOZ_SCTP)
-AC_SUBST(MOZ_SRTP)
-
-dnl Use integers over floats for audio on B2G and Android, because audio
-dnl backends for those platforms don't support floats.
-if test "$OS_TARGET" = "Android"; then
- MOZ_SAMPLE_TYPE_S16=1
- AC_DEFINE(MOZ_SAMPLE_TYPE_S16)
- AC_SUBST(MOZ_SAMPLE_TYPE_S16)
-else
- MOZ_SAMPLE_TYPE_FLOAT32=1
- AC_DEFINE(MOZ_SAMPLE_TYPE_FLOAT32)
- AC_SUBST(MOZ_SAMPLE_TYPE_FLOAT32)
-fi
-
-dnl ========================================================
-dnl = Disable Speech API code
-dnl ========================================================
-MOZ_ARG_DISABLE_BOOL(webspeech,
-[ --disable-webspeech Disable support for HTML Speech API],
- MOZ_WEBSPEECH=,
- MOZ_WEBSPEECH=1)
-
-if test -n "$MOZ_WEBSPEECH"; then
- AC_DEFINE(MOZ_WEBSPEECH)
-fi
-
-AC_SUBST(MOZ_WEBSPEECH)
-
-dnl ========================================================
-dnl = Enable Raw Codecs
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(raw,
-[ --enable-raw Enable support for RAW media],
- MOZ_RAW=1,
- MOZ_RAW=)
-
-if test -n "$MOZ_RAW"; then
- AC_DEFINE(MOZ_RAW)
-fi
-
-AC_SUBST(MOZ_RAW)
-
-dnl ========================================================
-dnl = Disable Ogg Codecs
-dnl ========================================================
-MOZ_ARG_DISABLE_BOOL(ogg,
-[ --disable-ogg Disable support for OGG media (Theora video and Vorbis audio)],
- MOZ_OGG=,
- MOZ_OGG=1)
-
-if test -n "$MOZ_OGG"; then
- AC_DEFINE(MOZ_OGG)
- MOZ_CUBEB=1
-
- dnl Checks for __attribute__(aligned()) directive
- AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
- [ac_cv_c_attribute_aligned],
- [ac_cv_c_attribute_aligned=0
- CFLAGS_save="${CFLAGS}"
- CFLAGS="${CFLAGS} -Werror"
- for ac_cv_c_attr_align_try in 64 32 16 8; do
- echo "trying $ac_cv_c_attr_align_try"
- AC_TRY_COMPILE([],
- [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
- [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
- if test "$ac_cv_c_attribute_aligned" != 0; then
- break;
- fi
- done
- CFLAGS="${CFLAGS_save}"])
- if test "${ac_cv_c_attribute_aligned}" != "0"; then
- AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
- [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
- fi
-fi
-
-dnl ========================================================
-dnl = Disable Opus audio codec support
-dnl ========================================================
-MOZ_ARG_DISABLE_BOOL(opus,
-[ --disable-opus Disable support for Opus audio],
- MOZ_OPUS=,
- MOZ_OPUS=1)
-
-dnl ========================================================
-dnl = Disable VP8 decoder support
-dnl ========================================================
-MOZ_ARG_DISABLE_BOOL(webm,
-[ --disable-webm Disable support for WebM media (VP8 video and Vorbis audio)],
- MOZ_WEBM=,
- MOZ_WEBM=1)
-
-if test -n "$MOZ_WEBM"; then
- AC_DEFINE(MOZ_WEBM)
- MOZ_VP8=1
-fi;
-
-dnl ========================================================
-dnl = Windows Media Foundation support
-dnl ========================================================
-if test "$OS_ARCH" = "WINNT"; then
- dnl Enable Windows Media Foundation support by default.
- dnl Note our minimum SDK version is Windows 7 SDK, so we are (currently)
- dnl guaranteed to have a recent-enough SDK to build WMF.
- MOZ_WMF=1
-fi
-
-MOZ_ARG_DISABLE_BOOL(wmf,
-[ --disable-wmf Disable support for Windows Media Foundation],
- MOZ_WMF=,
- MOZ_WMF=1)
-
-if test -n "$MOZ_WMF"; then
- AC_DEFINE(MOZ_WMF)
- MOZ_CUBEB=1
-fi;
-
-dnl ========================================================
-dnl = Enable media plugin support
-dnl ========================================================
-if test "$OS_TARGET" = Android -a x"$MOZ_WIDGET_TOOLKIT" != x"gonk"; then
- dnl Enable support on android by default
- MOZ_MEDIA_PLUGINS=1
-fi
-
-MOZ_ARG_ENABLE_BOOL(media-plugins,
-[ --enable-media-plugins Enable support for media plugins],
- MOZ_MEDIA_PLUGINS=1,
- MOZ_MEDIA_PLUGINS=)
-
-if test -n "$MOZ_MEDIA_PLUGINS"; then
- AC_DEFINE(MOZ_MEDIA_PLUGINS)
-fi
-
-dnl ========================================================
-dnl = Enable getUserMedia support
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(media-navigator,
-[ --enable-media-navigator Enable support for getUserMedia],
- MOZ_MEDIA_NAVIGATOR=1,
- MOZ_MEDIA_NAVIGATOR=)
-
-if test -n "$MOZ_MEDIA_NAVIGATOR"; then
- AC_DEFINE(MOZ_MEDIA_NAVIGATOR)
-fi
-
-dnl ========================================================
-dnl = Enable building OMX media plugin (B2G or Android)
-dnl ========================================================
-if test "$OS_TARGET" = Android -a x"$MOZ_WIDGET_TOOLKIT" != x"gonk"; then
- dnl Enable support on android by default
- MOZ_OMX_PLUGIN=1
-fi
-
-MOZ_ARG_ENABLE_BOOL(omx-plugin,
-[ --enable-omx-plugin Enable building OMX plugin (B2G)],
- MOZ_OMX_PLUGIN=1,
- MOZ_OMX_PLUGIN=)
-
-if test -n "$MOZ_OMX_PLUGIN"; then
- if test "$OS_TARGET" = "Android"; then
- dnl Only allow building OMX plugin on Gonk (B2G) or Android
- AC_DEFINE(MOZ_OMX_PLUGIN)
- else
- dnl fail if we're not building on Gonk or Android
- AC_MSG_ERROR([OMX media plugin can only be built on B2G or Android])
- fi
-fi
-
-dnl system libvpx Support
-dnl ========================================================
-MOZ_ARG_WITH_BOOL(system-libvpx,
-[ --with-system-libvpx Use system libvpx (located with pkgconfig)],
- MOZ_NATIVE_LIBVPX=1)
-
-MOZ_LIBVPX_CFLAGS=
-MOZ_LIBVPX_LIBS=
-
-if test -n "$MOZ_VP8"; then
- AC_DEFINE(MOZ_VP8)
- if test -n "$MOZ_VP8_ERROR_CONCEALMENT" ; then
- AC_DEFINE(MOZ_VP8_ERROR_CONCEALMENT)
- fi
- if test -n "$MOZ_VP8_ENCODER" ; then
- AC_DEFINE(MOZ_VP8_ENCODER)
- fi
-
- if test -n "$MOZ_NATIVE_LIBVPX"; then
- dnl ============================
- dnl === libvpx Version check ===
- dnl ============================
- dnl Check to see if we have a system libvpx package.
- PKG_CHECK_MODULES(MOZ_LIBVPX, vpx >= 1.0.0)
-
- MOZ_CHECK_HEADER([vpx/vpx_decoder.h], [],
- [AC_MSG_ERROR([Couldn't find vpx/vpx_decoder.h which is required for build with system libvpx. Use --without-system-libvpx to build with in-tree libvpx.])])
-
- _SAVE_LIBS=$LIBS
- AC_CHECK_LIB(vpx, vpx_codec_dec_init_ver, [],
- [AC_MSG_ERROR([--with-system-libvpx requested but symbol vpx_codec_dec_init_ver not found])])
- LIBS=$_SAVE_LIBS
- fi
-fi
-
-AC_SUBST(MOZ_NATIVE_LIBVPX)
-AC_SUBST(MOZ_LIBVPX_CFLAGS)
-AC_SUBST(MOZ_LIBVPX_LIBS)
-
-if test "$MOZ_WEBM"; then
- MOZ_CUBEB=1
- if test "$MOZ_SAMPLE_TYPE_FLOAT32"; then
- MOZ_VORBIS=1
- else
- MOZ_TREMOR=1
- fi
-fi
-
-if test -n "$MOZ_VP8" -a -z "$MOZ_NATIVE_LIBVPX"; then
-
- dnl Detect if we can use an assembler to compile optimized assembly for libvpx.
- dnl We currently require yasm on all x86 platforms and require yasm 1.1.0 on Win32.
- dnl We currently require gcc on all arm platforms.
- VPX_AS=$YASM
- VPX_ASM_SUFFIX=asm
- VPX_NEED_OBJ_INT_EXTRACT=
-
- dnl See if we have assembly on this platform.
- case "$OS_ARCH:$CPU_ARCH" in
- Darwin:x86)
- VPX_ASFLAGS="-f macho32 -rnasm -pnasm -DPIC"
- VPX_X86_ASM=1
- ;;
- Darwin:x86_64)
- VPX_ASFLAGS="-f macho64 -rnasm -pnasm -DPIC"
- VPX_X86_ASM=1
- ;;
- WINNT:x86_64)
- VPX_ASFLAGS="-f x64 -rnasm -pnasm"
- VPX_X86_ASM=1
- ;;
- WINNT:x86)
- dnl Check for yasm 1.1 or greater.
- if test -n "$COMPILE_ENVIRONMENT" -a -z "$YASM"; then
- AC_MSG_ERROR([yasm 1.1 or greater is required to build libvpx on Win32, but it appears not to be installed. Install it (included in MozillaBuild 1.5.1 and newer) or configure with --disable-webm (which disables the WebM video format). See https://developer.mozilla.org/en/YASM for more details.])
- elif test -n "$COMPILE_ENVIRONMENT" -a "$_YASM_MAJOR_VERSION" -lt "1" -o \( "$_YASM_MAJOR_VERSION" -eq "1" -a "$_YASM_MINOR_VERSION" -lt "1" \) ; then
- AC_MSG_ERROR([yasm 1.1 or greater is required to build libvpx on Win32, but you appear to have version $_YASM_MAJOR_VERSION.$_YASM_MINOR_VERSION. Upgrade to the newest version (included in MozillaBuild 1.5.1 and newer) or configure with --disable-webm (which disables the WebM video format). See https://developer.mozilla.org/en/YASM for more details.])
- else
- VPX_ASFLAGS="-f win32 -rnasm -pnasm -DPIC"
- VPX_X86_ASM=1
- dnl The encoder needs obj_int_extract to get asm offsets.
- fi
- ;;
- *:arm*)
- if test -n "$GNU_AS" ; then
- VPX_AS=$AS
- dnl These flags are a lie; they're just used to enable the requisite
- dnl opcodes; actual arch detection is done at runtime.
- VPX_ASFLAGS="-march=armv7-a -mfpu=neon"
- VPX_DASH_C_FLAG="-c"
- VPX_AS_CONVERSION='$(PERL) $(topsrcdir)/media/libvpx/build/make/ads2gas.pl'
- VPX_ASM_SUFFIX="$ASM_SUFFIX"
- VPX_ARM_ASM=1
- fi
- ;;
- *:x86)
- if $CC -E -dM -</dev/null | grep -q __ELF__; then
- VPX_ASFLAGS="-f elf32 -rnasm -pnasm"
- VPX_X86_ASM=1
- fi
- ;;
- *:x86_64)
- if $CC -E -dM -</dev/null | grep -q __ELF__; then
- VPX_ASFLAGS="-f elf64 -rnasm -pnasm -DPIC"
- VPX_X86_ASM=1
- fi
- ;;
- esac
-
- if test -n "$COMPILE_ENVIRONMENT" -a -n "$VPX_X86_ASM" -a -z "$VPX_AS"; then
- AC_MSG_ERROR([yasm is a required build tool for this architecture when webm is enabled. You may either install yasm or --disable-webm (which disables the WebM video format). See https://developer.mozilla.org/en/YASM for more details.])
- fi
-
- if test -n "$MOZ_VP8_ENCODER" -a \
- -z "$GNU_CC" -a -z "$INTEL_CC" -a -z "$CLANG_CC" ; then
- dnl We prefer to get asm offsets using inline assembler, which the above
- dnl compilers can do. When we're not using one of those, we have to fall
- dnl back to obj_int_extract, which reads them from a compiled object
- dnl file. Unfortunately, that only works if we're compiling on a system
- dnl with the header files for the appropriate object file format.
- VPX_NEED_OBJ_INT_EXTRACT=1
- fi
-
- if test -n "$VPX_X86_ASM"; then
- AC_DEFINE(VPX_X86_ASM)
- elif test -n "$VPX_ARM_ASM"; then
- AC_DEFINE(VPX_ARM_ASM)
- else
- AC_MSG_WARN([No assembler or assembly support for libvpx. Using unoptimized C routines.])
- fi
-fi
-
-dnl ========================================================
-dnl = Disable Wave decoder support
-dnl ========================================================
-MOZ_ARG_DISABLE_BOOL(wave,
-[ --disable-wave Disable Wave decoder support],
- MOZ_WAVE=,
- MOZ_WAVE=1)
-
-if test -n "$MOZ_WAVE"; then
- AC_DEFINE(MOZ_WAVE)
- MOZ_CUBEB=1
-fi
-
-dnl ========================================================
-dnl = Handle dependent CUBEB and MEDIA defines
-dnl ========================================================
-
-if test -n "$MOZ_SPEEX_RESAMPLER"; then
- AC_DEFINE(MOZ_SPEEX_RESAMPLER)
-fi
-
-if test -n "$MOZ_SOUNDTOUCH"; then
- AC_DEFINE(MOZ_SOUNDTOUCH)
-fi
-
-if test -n "$MOZ_CUBEB"; then
- AC_DEFINE(MOZ_CUBEB)
-fi
-
-if test -n "$MOZ_VORBIS" -a -n "$MOZ_TREMOR"; then
- AC_MSG_ERROR([MOZ_VORBIS and MOZ_TREMOR are mutually exclusive! The build system should not allow them both to be set, but they are. Please file a bug at https://bugzilla.mozilla.org/])
-fi
-
-if test -n "$MOZ_VORBIS"; then
- AC_DEFINE(MOZ_VORBIS)
-fi
-
-if test -n "$MOZ_TREMOR"; then
- AC_DEFINE(MOZ_TREMOR)
-fi
-
-if test -n "$MOZ_OPUS"; then
- AC_DEFINE(MOZ_OPUS)
-fi
-
-dnl ========================================================
-dnl = Check alsa availability on Linux if using sydneyaudio
-dnl ========================================================
-
-dnl If using sydneyaudio with Linux, ensure that the alsa library is available
-if test -n "$MOZ_CUBEB" -a "$OS_TARGET" = "Linux"; then
- MOZ_ALSA=1
-fi
-
-MOZ_ARG_ENABLE_BOOL(alsa,
-[ --enable-alsa Enable Alsa support (default on Linux)],
-MOZ_ALSA=1,
-MOZ_ALSA=)
-
-if test -n "$MOZ_ALSA"; then
- AC_DEFINE(MOZ_CUBEB)
- PKG_CHECK_MODULES(MOZ_ALSA, alsa, ,
- [echo "$MOZ_ALSA_PKG_ERRORS"
- AC_MSG_ERROR([Need alsa for Ogg, Wave or WebM decoding on Linux. Disable with --disable-ogg --disable-wave --disable-webm. (On Ubuntu, you might try installing the package libasound2-dev.)])])
-fi
-
-AC_SUBST(MOZ_ALSA)
-AC_SUBST(MOZ_ALSA_CFLAGS)
-AC_SUBST(MOZ_ALSA_LIBS)
-
-dnl ========================================================
-dnl = Enable PulseAudio
-dnl ========================================================
-
-MOZ_ARG_ENABLE_BOOL(pulseaudio,
-[ --enable-pulseaudio Enable PulseAudio support (experimental)],
-MOZ_PULSEAUDIO=1,
-MOZ_PULSEAUDIO=)
-
-if test -n "$MOZ_PULSEAUDIO"; then
- AC_DEFINE(MOZ_CUBEB)
- PKG_CHECK_MODULES(MOZ_PULSEAUDIO, libpulse, ,
- [echo "$MOZ_PULSEAUDIO_PKG_ERRORS"
- AC_MSG_ERROR([pulseaudio audio backend requires libpulse package])])
-fi
-
-AC_SUBST(MOZ_PULSEAUDIO)
-AC_SUBST(MOZ_PULSEAUDIO_CFLAGS)
-AC_SUBST(MOZ_PULSEAUDIO_LIBS)
-
-dnl ========================================================
-dnl = Enable GStreamer
-dnl ========================================================
-if test "$OS_TARGET" = "Linux"; then
- MOZ_GSTREAMER=1
-fi
-
-MOZ_ARG_ENABLE_BOOL(gstreamer,
-[ --enable-gstreamer Enable GStreamer support],
-MOZ_GSTREAMER=1,
-MOZ_GSTREAMER=)
-
-if test "$MOZ_GSTREAMER"; then
- # API version, eg 0.10, 1.0 etc
- GST_API_VERSION=0.10
- # core/base release number
- GST_VERSION=0.10.25
- PKG_CHECK_MODULES(GSTREAMER,
- gstreamer-$GST_API_VERSION >= $GST_VERSION
- gstreamer-app-$GST_API_VERSION
- gstreamer-plugins-base-$GST_API_VERSION, ,
- AC_MSG_ERROR([gstreamer and gstreamer-plugins-base development packages are needed to build gstreamer backend. Install them or disable gstreamer support with --disable-gstreamer]))
- if test -n "$GSTREAMER_LIBS"; then
- _SAVE_LDFLAGS=$LDFLAGS
- LDFLAGS="$LDFLAGS $GSTREAMER_LIBS -lgstvideo-$GST_API_VERSION"
- AC_TRY_LINK(,[return 0;],_HAVE_LIBGSTVIDEO=1,_HAVE_LIBGSTVIDEO=)
- if test -n "$_HAVE_LIBGSTVIDEO" ; then
- GSTREAMER_LIBS="$GSTREAMER_LIBS -lgstvideo-$GST_API_VERSION"
- else
- AC_MSG_ERROR([gstreamer-plugins-base found, but no libgstvideo. Something has gone terribly wrong. Try reinstalling gstreamer-plugins-base; failing that, disable the gstreamer backend with --disable-gstreamer.])
- fi
- LDFLAGS=$_SAVE_LDFLAGS
- else
- AC_MSG_ERROR([gstreamer and gstreamer-plugins-base development packages are needed to build gstreamer backend. Install them or disable gstreamer support with --disable-gstreamer])
- fi
-fi
-AC_SUBST(GSTREAMER_CFLAGS)
-AC_SUBST(GSTREAMER_LIBS)
-AC_SUBST(MOZ_GSTREAMER)
-
-if test -n "$MOZ_GSTREAMER"; then
- AC_DEFINE(MOZ_GSTREAMER)
-fi
-
-
-dnl ========================================================
-dnl Permissions System
-dnl ========================================================
-MOZ_ARG_DISABLE_BOOL(permissions,
-[ --disable-permissions Disable permissions (popup and cookie blocking)],
- MOZ_PERMISSIONS=,
- MOZ_PERMISSIONS=1
-)
-
-dnl ========================================================
-dnl NegotiateAuth
-dnl ========================================================
-MOZ_ARG_DISABLE_BOOL(negotiateauth,
-[ --disable-negotiateauth Disable GSS-API negotiation ],
- MOZ_AUTH_EXTENSION=,
- MOZ_AUTH_EXTENSION=1 )
-
-dnl ========================================================
-dnl Pref extensions (autoconfig)
-dnl ========================================================
-MOZ_ARG_DISABLE_BOOL(pref-extensions,
-[ --disable-pref-extensions
- Disable pref extensions such as autoconfig],
- MOZ_PREF_EXTENSIONS=,
- MOZ_PREF_EXTENSIONS=1 )
-
-dnl ========================================================
-dnl Searching of system directories for extensions.
-dnl Note: this switch is meant to be used for test builds
-dnl whose behavior should not depend on what happens to be
-dnl installed on the local machine.
-dnl ========================================================
-MOZ_ARG_DISABLE_BOOL(system-extension-dirs,
-[ --disable-system-extension-dirs
- Disable searching system- and account-global
- directories for extensions of any kind; use
- only profile-specific extension directories],
- ENABLE_SYSTEM_EXTENSION_DIRS=,
- ENABLE_SYSTEM_EXTENSION_DIRS=1 )
-if test "$ENABLE_SYSTEM_EXTENSION_DIRS"; then
- AC_DEFINE(ENABLE_SYSTEM_EXTENSION_DIRS)
-fi
-
-dnl ========================================================
-dnl = Universalchardet
-dnl ========================================================
-MOZ_ARG_DISABLE_BOOL(universalchardet,
-[ --disable-universalchardet
- Disable universal encoding detection],
- MOZ_UNIVERSALCHARDET=,
- MOZ_UNIVERSALCHARDET=1 )
-
-if test -n "${JAVA_BIN_PATH}"; then
- dnl Look for javac and jar in the specified path.
- JAVA_PATH="$JAVA_BIN_PATH"
-else
- dnl No path specified, so look for javac and jar in $JAVA_HOME & $PATH.
- JAVA_PATH="$JAVA_HOME/bin:$PATH"
-fi
-
-MOZ_PATH_PROG(JAVA, java, :, [$JAVA_PATH])
-MOZ_PATH_PROG(JAVAC, javac, :, [$JAVA_PATH])
-MOZ_PATH_PROG(JAVAH, javah, :, [$JAVA_PATH])
-MOZ_PATH_PROG(JAR, jar, :, [$JAVA_PATH])
-
-if test -n "${JAVA_BIN_PATH}" -o \
- \( "$OS_TARGET" = Android -a x"$MOZ_WIDGET_TOOLKIT" != x"gonk" \); then
- if test -z "$JAVA" -o "$JAVA" = ":" -o -z "$JAVAC" -o "$JAVAC" = ":" -o -z "$JAVAH" -o "$JAVAH" = ":" -o -z "$JAR" -o "$JAR" = ":"; then
- AC_MSG_ERROR([The programs java, javac, javah and jar were not found. Set \$JAVA_HOME to your java sdk directory or use --with-java-bin-path={java-bin-dir}])
- fi
-fi
-
-dnl ========================================================
-dnl = ANGLE OpenGL->D3D translator for WebGL
-dnl = * only applies to win32
-dnl = * enabled by default (shipping build); requires explicit --disable to disable
-dnl ========================================================
-MOZ_ANGLE_RENDERER=
-MOZ_DIRECTX_SDK_PATH=
-MOZ_DIRECTX_SDK_CPU_SUFFIX=
-MOZ_D3DCOMPILER_CAB=
-MOZ_D3DCOMPILER_DLL=
-case "$target_os" in
-*mingw*)
- MOZ_ANGLE_RENDERER=1
- ;;
-esac
-
-# The DirectX SDK libraries are split into x86 and x64 sub-directories
-case "${target_cpu}" in
-i*86)
- MOZ_DIRECTX_SDK_CPU_SUFFIX=x86
- ;;
-x86_64)
- MOZ_DIRECTX_SDK_CPU_SUFFIX=x64
- ;;
-esac
-
-MOZ_ARG_DISABLE_BOOL(webgl,
-[ --disable-webgl Disable building of the WebGL implementation],
- MOZ_WEBGL_DISABLED=1,
- MOZ_WEBGL_DISABLED=)
-
-if test -n "$MOZ_WEBGL_DISABLED"; then
- MOZ_WEBGL=
- MOZ_ANGLE_RENDERER=
-fi
-
-# Locate a DirectX SDK here so we can use it for both ANGLE and
-# Joystick support.
-if test "$OS_TARGET" = "WINNT" -a -z "$CROSS_COMPILE"; then
- # Get the SDK path from the registry.
- # First try to get the June 2010 SDK
- MOZ_DIRECTX_SDK_REG_KEY=`reg query 'HKLM\Software\Microsoft\DirectX' //s | grep 'Microsoft DirectX SDK (June 2010)' | head -n 1`
- if test -z "$MOZ_DIRECTX_SDK_REG_KEY" ; then
- # Otherwise just take whatever comes first
- MOZ_DIRECTX_SDK_REG_KEY=`reg query 'HKLM\Software\Microsoft\DirectX' //s | grep 'Microsoft DirectX SDK' | head -n 1`
- fi
- MOZ_DIRECTX_SDK_PATH=`reg query "$MOZ_DIRECTX_SDK_REG_KEY" //v InstallPath | grep REG_SZ | sed 's/.*\([[a-zA-Z]]\)\\:\\\\/\\1\\:\\\\/' | sed 's,\\\\,/,g'`
-fi
-
-if test -n "$MOZ_ANGLE_RENDERER" -a -z "$CROSS_COMPILE"; then
- if test -n "`echo $MOZ_DIRECTX_SDK_REG_KEY | grep 'February 2010'`" ; then
- AC_MSG_ERROR([Found the February 2010 DirectX SDK. Need the June 2010 DirectX SDK, or newer. Upgrade your SDK or reconfigure with --disable-webgl.])
- fi
-
- if test -n "$MOZ_DIRECTX_SDK_PATH" &&
- test -f "$MOZ_DIRECTX_SDK_PATH"/include/d3dx9.h &&
- test -f "$MOZ_DIRECTX_SDK_PATH"/lib/$MOZ_DIRECTX_SDK_CPU_SUFFIX/dxguid.lib ; then
- AC_MSG_RESULT([Found DirectX SDK via registry, using $MOZ_DIRECTX_SDK_PATH])
- else
- AC_MSG_ERROR([Couldn't find the DirectX SDK, needed for WebGL. Either install it (June 2010 version or newer), or reconfigure with --disable-webgl.])
- fi
-
- # Get the SDK numeric version (e.g. 43) by looking at the dependencies of d3dx9.lib
- MOZ_D3DX9_VERSION=`dumpbin //headers "$MOZ_DIRECTX_SDK_PATH"/lib/$MOZ_DIRECTX_SDK_CPU_SUFFIX/d3dx9.lib | egrep d3dx9_[[0-9]][[0-9]]\.dll | head -n1 | sed 's/.*\([[0-9]][[0-9]]\).*/\\1/g'`
-
- if test -z "$MOZ_D3DX9_VERSION" ; then
- AC_MSG_ERROR([Couldn't determine the D3DX9 version, needed for WebGL. Either reinstall the DirectX SDK (June 2010 version or newer), or reconfigure with --disable-webgl.])
- fi
-
- MOZ_D3DCOMPILER_CAB=`find "$MOZ_DIRECTX_SDK_PATH"/Redist -name *D3DCompiler_${MOZ_D3DX9_VERSION}_${MOZ_DIRECTX_SDK_CPU_SUFFIX}.cab | head -n1`
-
- if test -z "$MOZ_D3DCOMPILER_CAB"; then
- AC_MSG_ERROR([Couldn't find the DirectX redistributable files. Either reinstall the DirectX SDK (making sure the "DirectX Redistributable Files" option is selected), or reconfigure with --disable-webgl.])
- fi
-
- MOZ_D3DCOMPILER_DLL=D3DCompiler_$MOZ_D3DX9_VERSION.dll
-fi
-
-dnl ========================================================
-dnl Gamepad support
-dnl ========================================================
-MOZ_GAMEPAD=
-MOZ_GAMEPAD_BACKEND=stub
-
-# Gamepad DOM is built on supported platforms by default.
-case "$OS_TARGET" in
- Darwin|WINNT|Linux)
- MOZ_GAMEPAD=1
- ;;
- *)
- ;;
-esac
-
-MOZ_ARG_DISABLE_BOOL(gamepad,
-[ --disable-gamepad Disable gamepad support],
- MOZ_GAMEPAD=,
- MOZ_GAMEPAD=1)
-
-if test "$MOZ_GAMEPAD"; then
- case "$OS_TARGET" in
- Darwin)
- MOZ_GAMEPAD_BACKEND=cocoa
- ;;
- WINNT)
- if test -n "$MOZ_DIRECTX_SDK_PATH" ; then
- if ! test -f "$MOZ_DIRECTX_SDK_PATH"/lib/$MOZ_DIRECTX_SDK_CPU_SUFFIX/dxguid.lib ; then
- MOZ_GAMEPAD=
- fi
- elif test "$GCC" != "yes"; then
- MOZ_GAMEPAD=
- fi
- if test -z "$MOZ_GAMEPAD"; then
- AC_MSG_ERROR([Couldn't find the DirectX SDK, needed for gamepad support. Please install it or, reconfigure with --disable-gamepad to disable gamepad support.])
- fi
- MOZ_GAMEPAD_BACKEND=windows
- ;;
- Linux)
- MOZ_CHECK_HEADER([linux/joystick.h])
- if test "$ac_cv_header_linux_joystick_h" != "yes"; then
- AC_MSG_ERROR([Can't find header linux/joystick.h, needed for gamepad support. Please install Linux kernel headers or reconfigure with --disable-gamepad to disable gamepad support.])
- fi
- MOZ_GAMEPAD_BACKEND=linux
- ;;
- *)
- ;;
- esac
-
- AC_DEFINE(MOZ_GAMEPAD)
-fi
-AC_SUBST(MOZ_GAMEPAD)
-AC_SUBST(MOZ_GAMEPAD_BACKEND)
-
-dnl ========================================================
-dnl = Breakpad crash reporting (on by default on supported platforms)
-dnl ========================================================
-
-case $target in
-i?86-*-mingw*|x86_64-*-mingw*)
- MOZ_CRASHREPORTER=1
- ;;
-i?86-apple-darwin*|x86_64-apple-darwin*)
- MOZ_CRASHREPORTER=1
- ;;
-i?86-*-linux*|x86_64-*-linux*|arm-*-linux*)
- if test "$MOZ_ENABLE_GTK"; then
- MOZ_CRASHREPORTER=1
- fi
- ;;
-*-android*|*-linuxandroid*)
- MOZ_CRASHREPORTER=1
- ;;
-*solaris*)
- MOZ_CRASHREPORTER=1
- ;;
-esac
-
-MOZ_ARG_DISABLE_BOOL(crashreporter,
-[ --disable-crashreporter Disable breakpad crash reporting],
- MOZ_CRASHREPORTER=,
- MOZ_CRASHREPORTER=1)
-
-if test -n "$MOZ_CRASHREPORTER"; then
- AC_DEFINE(MOZ_CRASHREPORTER)
-
- if test "$OS_TARGET" = "Linux" -o "$OS_ARCH" = "SunOS" && \
- test -z "$SKIP_LIBRARY_CHECKS"; then
- PKG_CHECK_MODULES(MOZ_GTHREAD, gthread-2.0)
- AC_SUBST(MOZ_GTHREAD_CFLAGS)
- AC_SUBST(MOZ_GTHREAD_LIBS)
- fi
-
- if test "$OS_ARCH" != "$HOST_OS_ARCH" -a "$OS_ARCH" != "WINNT"; then
- AC_MSG_ERROR([Breakpad tools do not support compiling on $HOST_OS_ARCH while targeting $OS_ARCH. Use --disable-crashreporter.])
- fi
-
- if test "$OS_ARCH" = "WINNT"; then
- if test -z "$HAVE_64BIT_OS"; then
- MOZ_CRASHREPORTER_INJECTOR=1
- AC_DEFINE(MOZ_CRASHREPORTER_INJECTOR)
- fi
- fi
-fi
-AC_DEFINE_UNQUOTED(BREAKPAD_CUSTOM_STDINT_H, "mozilla/StandardInteger.h")
-
-MOZ_ARG_WITH_STRING(crashreporter-enable-percent,
-[ --with-crashreporter-enable-percent=NN
- Enable sending crash reports by default on NN% of users. (default=100)],
-[ val=`echo $withval | sed 's/[^0-9]//g'`
- MOZ_CRASHREPORTER_ENABLE_PERCENT="$val"])
-
-if test -z "$MOZ_CRASHREPORTER_ENABLE_PERCENT"; then
- MOZ_CRASHREPORTER_ENABLE_PERCENT=100
-fi
-AC_DEFINE_UNQUOTED(MOZ_CRASHREPORTER_ENABLE_PERCENT, $MOZ_CRASHREPORTER_ENABLE_PERCENT)
-
-dnl ========================================================
-dnl = libjpeg-turbo configuration
-dnl ========================================================
-MOZ_LIBJPEG_TURBO=
-if test -z "$MOZ_NATIVE_JPEG"; then
- MOZ_LIBJPEG_TURBO=1
-fi
-
-MOZ_ARG_DISABLE_BOOL(libjpeg_turbo,
-[ --disable-libjpeg-turbo Disable optimized jpeg decoding routines],
- MOZ_LIBJPEG_TURBO=,
- MOZ_LIBJPEG_TURBO=1)
-
-if test "$MOZ_NATIVE_JPEG" = 1 -a "$MOZ_LIBJPEG_TURBO" = 1; then
- AC_MSG_ERROR([cannot use --with-system-jpeg with --enable-libjpeg-turbo.])
-fi
-
-dnl Detect if we can use yasm to compile libjpeg-turbo's optimized assembly
-dnl files.
-
-if test -n "$MOZ_LIBJPEG_TURBO"; then
-
- dnl Do we support libjpeg-turbo on this platform?
- case "$OS_ARCH:$OS_TEST" in
- Darwin:i?86)
- LIBJPEG_TURBO_ASFLAGS="-f macho32 -rnasm -pnasm -DPIC -DMACHO"
- LIBJPEG_TURBO_X86_ASM=1
- ;;
- Darwin:x86_64)
- LIBJPEG_TURBO_ASFLAGS="-f macho64 -rnasm -pnasm -D__x86_64__ -DPIC -DMACHO"
- LIBJPEG_TURBO_X64_ASM=1
- ;;
- WINNT:x86|WINNT:i?86)
- LIBJPEG_TURBO_ASFLAGS="-f win32 -rnasm -pnasm -DPIC -DWIN32"
- LIBJPEG_TURBO_X86_ASM=1
- ;;
- WINNT:x86_64)
- LIBJPEG_TURBO_ASFLAGS="-f win64 -rnasm -pnasm -D__x86_64__ -DPIC -DWIN64 -DMSVC"
- LIBJPEG_TURBO_X64_ASM=1
- ;;
- *:arm*)
- LIBJPEG_TURBO_ASFLAGS="-march=armv7-a -mfpu=neon"
- LIBJPEG_TURBO_ARM_ASM=1
- ;;
- *:x86|*:i?86)
- if $CC -E -dM -</dev/null | grep -q __ELF__; then
- LIBJPEG_TURBO_ASFLAGS="-f elf32 -rnasm -pnasm -DPIC -DELF"
- LIBJPEG_TURBO_X86_ASM=1
- fi
- ;;
- *:x86_64)
- if $CC -E -dM -</dev/null | grep -q __ELF__; then
- LIBJPEG_TURBO_ASFLAGS="-f elf64 -rnasm -pnasm -D__x86_64__ -DPIC -DELF"
- LIBJPEG_TURBO_X64_ASM=1
- fi
- ;;
- esac
-
-fi
-
-dnl If we're on an x86 or x64 system which supports libjpeg-turbo's asm routines
-dnl and --disable-libjpeg-turbo wasn't passed, check for Yasm, and error out if
-dnl it doesn't exist or we have too old of a version.
-if test -n "$LIBJPEG_TURBO_X86_ASM" -o -n "$LIBJPEG_TURBO_X64_ASM" ; then
- LIBJPEG_TURBO_AS=$YASM
-
- if test -z "$LIBJPEG_TURBO_AS" ; then
- AC_MSG_ERROR([Yasm is required to build with libjpeg-turbo's optimized JPEG decoding routines, but you do not appear to have Yasm installed. Either install it or configure with --disable-libjpeg-turbo to use the pure C JPEG decoder. See https://developer.mozilla.org/en/YASM for more details.])
- fi
-
- dnl Check that we have the right yasm version. We require 1.0.1 or newer
- dnl on Linux and 1.1 or newer everywhere else.
- if test "$OS_ARCH" = "Linux" ; then
- if test "$_YASM_MAJOR_VERSION" -lt "1" -o \( "$_YASM_MAJOR_VERSION" -eq "1" -a "$_YASM_MINOR_VERSION" -eq "0" -a "$_YASM_RELEASE" -lt "1" \) ; then
- AC_MSG_ERROR([Yasm 1.0.1 or greater is required to build with libjpeg-turbo's optimized JPEG decoding routines, but you appear to have version $_YASM_MAJOR_VERSION.$_YASM_MINOR_VERSION.$_YASM_RELEASE. Upgrade to the newest version or configure with --disable-libjpeg-turbo to use the pure C JPEG decoder. See https://developer.mozilla.org/en/YASM for more details.])
- fi
- else
- if test "$_YASM_MAJOR_VERSION" -lt "1" -o \( "$_YASM_MAJOR_VERSION" -eq "1" -a "$_YASM_MINOR_VERSION" -lt "1" \) ; then
- AC_MSG_ERROR([Yasm 1.1 or greater is required to build with libjpeg-turbo's optimized JPEG decoding routines, but you appear to have version $_YASM_MAJOR_VERSION.$_YASM_MINOR_VERSION. Upgrade to the newest version or configure with --disable-libjpeg-turbo to use the pure C JPEG decoder. See https://developer.mozilla.org/en/YASM for more details.])
- fi
- fi
-fi
-
-dnl If we're on an ARM system which supports libjpeg-turbo's asm routines and
-dnl --disable-libjpeg-turbo wasn't passed, use the C compiler as the assembler.
-if test -n "$LIBJPEG_TURBO_ARM_ASM" ; then
- echo "Using $AS as the assembler for ARM code."
- LIBJPEG_TURBO_AS=$AS
-fi
-
-if test -n "$LIBJPEG_TURBO_X86_ASM"; then
- AC_DEFINE(LIBJPEG_TURBO_X86_ASM)
-elif test -n "$LIBJPEG_TURBO_X64_ASM"; then
- AC_DEFINE(LIBJPEG_TURBO_X64_ASM)
-elif test -n "$LIBJPEG_TURBO_ARM_ASM"; then
- AC_DEFINE(LIBJPEG_TURBO_ARM_ASM)
-elif test -n "$MOZ_LIBJPEG_TURBO"; then
- dnl Warn if we're not building the optimized routines, even though the user
- dnl didn't specify --disable-libjpeg-turbo.
- AC_MSG_WARN([No assembler or assembly support for libjpeg-turbo. Using unoptimized C routines.])
-fi
-
-dnl ========================================================
-dnl = Enable compilation of specific extension modules
-dnl ========================================================
-
-MOZ_ARG_ENABLE_STRING(extensions,
-[ --enable-extensions Enable extensions],
-[ for option in `echo $enableval | sed 's/,/ /g'`; do
- if test "$option" = "yes" -o "$option" = "all"; then
- AC_MSG_ERROR([--enable-extensions=$option is no longer supported.])
- elif test "$option" = "no" -o "$option" = "none"; then
- MOZ_EXTENSIONS=""
- elif test "$option" = "default"; then
- MOZ_EXTENSIONS="$MOZ_EXTENSIONS $MOZ_EXTENSIONS_DEFAULT"
- elif test `echo "$option" | grep -c \^-` != 0; then
- option=`echo $option | sed 's/^-//'`
- MOZ_EXTENSIONS=`echo "$MOZ_EXTENSIONS" | sed "s/ ${option}//"`
- else
- MOZ_EXTENSIONS="$MOZ_EXTENSIONS $option"
- fi
-done],
- MOZ_EXTENSIONS="$MOZ_EXTENSIONS_DEFAULT")
-
-if test -z "$MOZ_ENABLE_GNOMEVFS" -a `echo "$MOZ_EXTENSIONS" | grep -c gnomevfs` -ne 0; then
- # Suppress warning on non-X11 platforms
- if test -n "$MOZ_X11"; then
- AC_MSG_WARN([Removing gnomevfs from MOZ_EXTENSIONS due to no --enable-gnomevfs.])
- fi
- MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|gnomevfs||'`
-fi
-
-dnl Do not build gnomevfs with libxul based apps
-if test -n "$LIBXUL_SDK_DIR" -a `echo "$MOZ_EXTENSIONS" | grep -c gnomevfs` -ne 0; then
- MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|gnomevfs||'`
-fi
-
-if test -z "$MOZ_ENABLE_GIO" -a `echo "$MOZ_EXTENSIONS" | grep -c gio` -ne 0; then
- # Suppress warning on non-X11 platforms
- if test -n "$MOZ_X11"; then
- AC_MSG_WARN([Removing gio from MOZ_EXTENSIONS due to --disable-gio.])
- fi
- MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|gio||'`
-fi
-
-dnl Do not build gio with libxul based apps
-if test -n "$LIBXUL_SDK_DIR" -a `echo "$MOZ_EXTENSIONS" | grep -c gio` -ne 0; then
- MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|gio||'`
-fi
-
-if test `echo "$MOZ_EXTENSIONS" | grep -c gio` -ne 0; then
- MOZ_GIO_COMPONENT=1
- MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|gio||'`
-fi
-AC_SUBST(MOZ_GIO_COMPONENT)
-
-if test -z "$MOZ_JSDEBUGGER" -a `echo "$MOZ_EXTENSIONS" | grep -c venkman` -ne 0; then
- AC_MSG_WARN([Cannot build venkman without JavaScript debug library. Removing venkman from MOZ_EXTENSIONS.])
- MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|venkman||'`
-fi
-
-dnl Remove dupes
-MOZ_EXTENSIONS=`${PERL} ${srcdir}/build/unix/uniq.pl ${MOZ_EXTENSIONS}`
-
-dnl Ensure every extension exists, to avoid mostly-inscrutable error messages
-dnl when trying to build a nonexistent extension.
-for extension in $MOZ_EXTENSIONS; do
- if test ! -d "${srcdir}/extensions/${extension}"; then
- AC_MSG_ERROR([Unrecognized extension provided to --enable-extensions: ${extension}.])
- fi
-done
-
-if test -n "$MOZ_USE_NATIVE_POPUP_WINDOWS"; then
- AC_DEFINE(MOZ_USE_NATIVE_POPUP_WINDOWS)
-fi
-
-dnl ========================================================
-dnl Build Freetype in the tree
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(tree-freetype,
-[ --enable-tree-freetype Enable Tree FreeType],
- MOZ_TREE_FREETYPE=1,
- MOZ_TREE_FREETYPE= )
-if test -n "$MOZ_TREE_FREETYPE"; then
- if test -n "$_WIN32_MSVC"; then
- AC_ERROR("building with in-tree freetype is not supported on MSVC")
- fi
- AC_DEFINE(MOZ_TREE_FREETYPE)
- AC_SUBST(MOZ_TREE_FREETYPE)
- MOZ_ENABLE_CAIRO_FT=1
- FT_FONT_FEATURE="#define CAIRO_HAS_FT_FONT 1"
- FT2_CFLAGS='-I$(topsrcdir)/modules/freetype2/include'
- CAIRO_FT_CFLAGS='-I$(topsrcdir)/modules/freetype2/include'
- FT2_LIBS='$(call EXPAND_LIBNAME_PATH,freetype,$(DEPTH)/modules/freetype2/.libs)'
- CAIRO_FT_OSLIBS=''
- CAIRO_FT_LIBS='$(call EXPAND_LIBNAME_PATH,freetype,$(DEPTH)/modules/freetype2/.libs)'
- AC_DEFINE(HAVE_FT_BITMAP_SIZE_Y_PPEM)
- AC_DEFINE(HAVE_FT_GLYPHSLOT_EMBOLDEN)
- AC_DEFINE(HAVE_FT_LOAD_SFNT_TABLE)
- AC_SUBST(CAIRO_FT_CFLAGS)
-fi
-
-dnl ========================================================
-dnl Installer
-dnl ========================================================
-dnl Abort Windows build if the required major version and
-dnl minimum minor version of Unicode NSIS isn't in the path
-dnl (unless in case of cross compiling, for which Unicode
-dnl is not yet sufficient).
-if test "$OS_ARCH" = "WINNT"; then
- REQ_NSIS_MAJOR_VER=2
- MIN_NSIS_MINOR_VER=46
- MOZ_PATH_PROGS(MAKENSISU, $MAKENSISU makensisu-2.46 makensis)
- if test -n "$MAKENSISU" -a "$MAKENSISU" != ":"; then
- AC_MSG_RESULT([yes])
- changequote(,)
- MAKENSISU_VER=`"$MAKENSISU" -version 2>/dev/null | sed -e '/-Unicode/!s/.*//g' -e 's/^v\([0-9]\+\.[0-9]\+\).*\-Unicode$/\1/g'`
- changequote([,])
- if test ! "$MAKENSISU_VER" = ""; then
- MAKENSISU_MAJOR_VER=`echo $MAKENSISU_VER | $AWK -F\. '{ print $1 }'`
- MAKENSISU_MINOR_VER=`echo $MAKENSISU_VER | $AWK -F\. '{ print $2 }'`
- fi
- AC_MSG_CHECKING([for Unicode NSIS with major version == $REQ_NSIS_MAJOR_VER and minor version >= $MIN_NSIS_MINOR_VER])
- if test "$MAKENSISU_VER" = "" || \
- test ! "$MAKENSISU_MAJOR_VER" = "$REQ_NSIS_MAJOR_VER" -o \
- ! "$MAKENSISU_MINOR_VER" -ge $MIN_NSIS_MINOR_VER; then
- AC_MSG_RESULT([no])
- if test -z "$CROSS_COMPILE"; then
- AC_MSG_ERROR([To build the installer you must have the latest MozillaBuild or Unicode NSIS with a major version of $REQ_NSIS_MAJOR_VER and a minimum minor version of $MIN_NSIS_MINOR_VER in your path.])
- else
- MAKENSISU=
- fi
- fi
- elif test -z "$CROSS_COMPILE"; then
- AC_MSG_ERROR([To build the installer you must have the latest MozillaBuild or Unicode NSIS with a major version of $REQ_NSIS_MAJOR_VER and a minimum minor version of $MIN_NSIS_MINOR_VER in your path.])
- else
- MAKENSISU=
- fi
-fi
-
-dnl ========================================================
-dnl Web App Runtime
-dnl ========================================================
-MOZ_ARG_DISABLE_BOOL(webapp-runtime,
-[ --disable-webapp-runtime Disable Web App Runtime],
- MOZ_WEBAPP_RUNTIME=,
- MOZ_WEBAPP_RUNTIME=1)
-if test "$MOZ_WIDGET_TOOLKIT" != "windows" -a "$MOZ_WIDGET_TOOLKIT" != "cocoa" -a "$MOZ_WIDGET_TOOLKIT" != "gtk2"; then
- MOZ_WEBAPP_RUNTIME=
-fi
-if test "$OS_ARCH" = "WINNT" -a -z "$MAKENSISU" -a -n "$CROSS_COMPILE"; then
- MOZ_WEBAPP_RUNTIME=
-fi
-AC_SUBST(MOZ_WEBAPP_RUNTIME)
-if test "$MOZ_WEBAPP_RUNTIME"; then
- AC_DEFINE(MOZ_WEBAPP_RUNTIME)
-fi
-
-AC_MSG_CHECKING([for tar archiver])
-AC_CHECK_PROGS(TAR, gnutar gtar tar, "")
-if test -z "$TAR"; then
- AC_MSG_ERROR([no tar archiver found in \$PATH])
-fi
-AC_MSG_RESULT([$TAR])
-AC_SUBST(TAR)
-
-AC_MSG_CHECKING([for wget])
-AC_CHECK_PROGS(WGET, wget, "")
-AC_MSG_RESULT([$WGET])
-AC_SUBST(WGET)
-
-dnl ========================================================
-dnl Signing
-dnl ========================================================
-
-if test -n "$MOZ_SIGN_CMD"; then
- AC_DEFINE(MOZ_SIGNING)
-fi
-
-dnl ========================================================
-dnl Maintenance Service
-dnl ========================================================
-
-MOZ_ARG_ENABLE_BOOL(maintenance-service,
-[ --enable-maintenance-service Enable building of maintenanceservice],
- MOZ_MAINTENANCE_SERVICE=1,
- MOZ_MAINTENANCE_SERVICE= )
-
-if test -n "$MOZ_MAINTENANCE_SERVICE"; then
- if test "$OS_ARCH" = "WINNT"; then
- AC_DEFINE(MOZ_MAINTENANCE_SERVICE)
- else
- AC_MSG_ERROR([Can only build with --enable-maintenance-service with a Windows target])
- fi
-fi
-
-dnl ========================================================
-dnl Verify MAR signatures
-dnl ========================================================
-
-MOZ_ARG_ENABLE_BOOL(verify-mar,
-[ --enable-verify-mar Enable verifying MAR signatures],
- MOZ_VERIFY_MAR_SIGNATURE=1,
- MOZ_VERIFY_MAR_SIGNATURE= )
-
-if test -n "$MOZ_VERIFY_MAR_SIGNATURE"; then
- if test "$OS_ARCH" = "WINNT"; then
- AC_DEFINE(MOZ_VERIFY_MAR_SIGNATURE)
- else
- AC_MSG_ERROR([Can only build with --enable-verify-mar with a Windows target])
- fi
-fi
-
-dnl ========================================================
-dnl Enable building the signmar program.
-dnl This option is much different than the --enable-verify-mar option.
-dnl --enable-verify-mar is for enabling the verification check on MAR
-dnl files in the updater. The --enable-signmar option is for building
-dnl the signmar program.
-dnl ========================================================
-
-MOZ_ARG_ENABLE_BOOL(signmar,
-[ --enable-signmar Enable building the signmar program],
- MOZ_ENABLE_SIGNMAR=1,
- MOZ_ENABLE_SIGNMAR= )
-
-if test -n "$MOZ_ENABLE_SIGNMAR"; then
- AC_DEFINE(MOZ_ENABLE_SIGNMAR)
-fi
-
-dnl ========================================================
-dnl Updater
-dnl ========================================================
-
-MOZ_ARG_DISABLE_BOOL(updater,
-[ --disable-updater Disable building of updater],
- MOZ_UPDATER=,
- MOZ_UPDATER=1 )
-
-if test -n "$MOZ_UPDATER"; then
- AC_DEFINE(MOZ_UPDATER)
-fi
-
-# tools/update-packaging is not checked out by default.
-MOZ_ARG_ENABLE_BOOL(update-packaging,
-[ --enable-update-packaging
- Enable tools/update-packaging],
- MOZ_UPDATE_PACKAGING=1,
- MOZ_UPDATE_PACKAGING= )
-AC_SUBST(MOZ_UPDATE_PACKAGING)
-
-dnl ========================================================
-dnl build the tests by default
-dnl ========================================================
-MOZ_ARG_DISABLE_BOOL(tests,
-[ --disable-tests Do not build test libraries & programs],
- ENABLE_TESTS=,
- ENABLE_TESTS=1 )
-
-if test -n "$ENABLE_TESTS"; then
- MOZ_ENABLE_GTEST=1
- GTEST_HAS_RTTI=0
- AC_DEFINE(MOZ_ENABLE_GTEST)
- AC_DEFINE_UNQUOTED(GTEST_HAS_RTTI, 0)
- AC_SUBST(MOZ_ENABLE_GTEST)
- AC_SUBST(GTEST_HAS_RTTI)
- if test -n "$_WIN32_MSVC"; then
- AC_DEFINE_UNQUOTED(_VARIADIC_MAX, 10)
- fi
- if test "${OS_TARGET}" = "Android"; then
- AC_DEFINE(GTEST_OS_LINUX_ANDROID)
- AC_DEFINE(GTEST_USE_OWN_TR1_TUPLE)
- AC_DEFINE_UNQUOTED(GTEST_HAS_CLONE, 0)
- AC_SUBST(GTEST_OS_LINUX_ANDROID)
- AC_SUBST(GTEST_USE_OWN_TR1_TUPLE)
- AC_SUBST(GTEST_HAS_CLONE)
- fi
-fi
-
-dnl ========================================================
-dnl parental controls (for Windows Vista)
-dnl ========================================================
-MOZ_ARG_DISABLE_BOOL(parental-controls,
-[ --disable-parental-controls
- Do not build parental controls],
- MOZ_DISABLE_PARENTAL_CONTROLS=1,
- MOZ_DISABLE_PARENTAL_CONTROLS=)
-if test -n "$MOZ_DISABLE_PARENTAL_CONTROLS"; then
- AC_DEFINE(MOZ_DISABLE_PARENTAL_CONTROLS)
-fi
-
-AC_SUBST(MOZ_DISABLE_PARENTAL_CONTROLS)
-
-dnl ========================================================
-dnl = Disable DOMCrypto
-dnl ========================================================
-if test -n "$MOZ_DISABLE_CRYPTOLEGACY"; then
- AC_DEFINE(MOZ_DISABLE_CRYPTOLEGACY)
-fi
-AC_SUBST(MOZ_DISABLE_CRYPTOLEGACY)
-
-dnl ========================================================
-dnl = Disable libpkix
-dnl ========================================================
-if test -n "$NSS_NO_LIBPKIX"; then
- AC_DEFINE(NSS_NO_LIBPKIX)
-fi
-AC_SUBST(NSS_NO_LIBPKIX)
-
-
-dnl ========================================================
-dnl =
-dnl = Module specific options
-dnl =
-dnl ========================================================
-MOZ_ARG_HEADER(Individual module options)
-
-dnl ========================================================
-dnl = Disable feed handling components
-dnl ========================================================
-MOZ_ARG_DISABLE_BOOL(feeds,
-[ --disable-feeds Disable feed handling and processing components],
- MOZ_FEEDS=,
- MOZ_FEEDS=1 )
-if test -n "$MOZ_FEEDS"; then
- AC_DEFINE(MOZ_FEEDS)
-else
- if test "$MOZ_BUILD_APP" = "browser"; then
- AC_MSG_ERROR([Cannot build Firefox with --disable-feeds.])
- fi
-fi
-
-dnl ========================================================
-dnl Check for sqlite
-dnl ========================================================
-
-MOZ_NATIVE_SQLITE=
-MOZ_ARG_ENABLE_BOOL(system-sqlite,
-[ --enable-system-sqlite Use system sqlite (located with pkgconfig)],
-MOZ_NATIVE_SQLITE=1,
-MOZ_NATIVE_SQLITE= )
-
-if test -z "$MOZ_NATIVE_SQLITE"
-then
- SQLITE_CFLAGS=
- SQLITE_LIBS='$(call EXPAND_LIBNAME_PATH,mozsqlite3,$(DIST)/lib)'
-else
- dnl ============================
- dnl === SQLite Version check ===
- dnl ============================
- dnl Check to see if the system SQLite package is new enough.
- PKG_CHECK_MODULES(SQLITE, sqlite3 >= $SQLITE_VERSION)
-
- dnl ==================================
- dnl === SQLITE_SECURE_DELETE check ===
- dnl ==================================
- dnl Check to see if the system SQLite package is compiled with
- dnl SQLITE_SECURE_DELETE enabled.
- AC_MSG_CHECKING(for SQLITE_SECURE_DELETE support in system SQLite)
- _SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS $SQLITE_CFLAGS"
- _SAVE_LIBS="$LIBS"
- LIBS="$LIBS $SQLITE_LIBS"
- AC_CACHE_VAL(ac_cv_sqlite_secure_delete,[
- AC_TRY_RUN([
- #include "sqlite3.h"
-
- int main(int argc, char **argv){
- return !sqlite3_compileoption_used("SQLITE_SECURE_DELETE");
- }],
- ac_cv_sqlite_secure_delete=yes,
- ac_cv_sqlite_secure_delete=no,
- ac_cv_sqlite_secure_delete=no
- )
- ])
- AC_MSG_RESULT($ac_cv_sqlite_secure_delete)
- CFLAGS="$_SAVE_CFLAGS"
- LIBS="$_SAVE_LIBS"
- if test "x$ac_cv_sqlite_secure_delete" = "xno"; then
- AC_MSG_ERROR([System SQLite library is not compiled with SQLITE_SECURE_DELETE.])
- fi
-
- dnl ===============================
- dnl === SQLITE_THREADSAFE check ===
- dnl ===============================
- dnl Check to see if the system SQLite package is compiled with
- dnl SQLITE_THREADSAFE enabled.
- AC_MSG_CHECKING(for SQLITE_THREADSAFE support in system SQLite)
- _SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS $SQLITE_CFLAGS"
- _SAVE_LIBS="$LIBS"
- LIBS="$LIBS $SQLITE_LIBS"
- AC_CACHE_VAL(ac_cv_sqlite_threadsafe,[
- AC_TRY_RUN([
- #include "sqlite3.h"
-
- int main(int argc, char **argv){
- return !sqlite3_compileoption_used("SQLITE_THREADSAFE=1");
- }],
- ac_cv_sqlite_threadsafe=yes,
- ac_cv_sqlite_threadsafe=no,
- ac_cv_sqlite_threadsafe=no
- )
- ])
- AC_MSG_RESULT($ac_cv_sqlite_threadsafe)
- CFLAGS="$_SAVE_CFLAGS"
- LIBS="$_SAVE_LIBS"
- if test "x$ac_cv_sqlite_threadsafe" = "xno"; then
- AC_MSG_ERROR([System SQLite library is not compiled with SQLITE_THREADSAFE.])
- fi
-
- dnl ================================
- dnl === SQLITE_ENABLE_FTS3 check ===
- dnl ================================
- dnl check to see if the system SQLite package is compiled with
- dnl SQLITE_ENABLE_FTS3 enabled.
- AC_MSG_CHECKING(for SQLITE_ENABLE_FTS3 support in system SQLite)
- _SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS $SQLITE_CFLAGS"
- _SAVE_LIBS="$LIBS"
- LIBS="$LIBS $SQLITE_LIBS"
- AC_CACHE_VAL(ac_cv_sqlite_enable_fts3,[
- AC_TRY_RUN([
- #include "sqlite3.h"
-
- int main(int argc, char **argv){
- return !sqlite3_compileoption_used("SQLITE_ENABLE_FTS3");
- }],
- ac_cv_sqlite_enable_fts3=yes,
- ac_cv_sqlite_enable_fts3=no,
- ac_cv_sqlite_enable_fts3=no
- )
- ])
- AC_MSG_RESULT($ac_cv_sqlite_enable_fts3)
- CFLAGS="$_SAVE_CFLAGS"
- LIBS="$_SAVE_LIBS"
- if test "x$ac_cv_sqlite_enable_fts3" = "xno"; then
- AC_MSG_ERROR([System SQLite library is not compiled with SQLITE_ENABLE_FTS3.])
- fi
-
- dnl =========================================
- dnl === SQLITE_ENABLE_UNLOCK_NOTIFY check ===
- dnl =========================================
- dnl check to see if the system SQLite package is compiled with
- dnl SQLITE_ENABLE_UNLOCK_NOTIFY enabled.
- AC_MSG_CHECKING(for SQLITE_ENABLE_UNLOCK_NOTIFY support in system SQLite)
- _SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS $SQLITE_CFLAGS"
- _SAVE_LIBS="$LIBS"
- LIBS="$LIBS $SQLITE_LIBS"
- AC_CACHE_VAL(ac_cv_sqlite_enable_unlock_notify,[
- AC_TRY_RUN([
- #include "sqlite3.h"
-
- int main(int argc, char **argv){
- return !sqlite3_compileoption_used("SQLITE_ENABLE_UNLOCK_NOTIFY");
- }],
- ac_cv_sqlite_enable_unlock_notify=yes,
- ac_cv_sqlite_enable_unlock_notify=no,
- ac_cv_sqlite_enable_unlock_notify=no
- )
- ])
- AC_MSG_RESULT($ac_cv_sqlite_enable_unlock_notify)
- CFLAGS="$_SAVE_CFLAGS"
- LIBS="$_SAVE_LIBS"
- if test "x$ac_cv_sqlite_enable_unlock_notify" = "xno"; then
- AC_MSG_ERROR([System SQLite library is not compiled with SQLITE_ENABLE_UNLOCK_NOTIFY.])
- fi
-fi
-
-if test -n "$MOZ_NATIVE_SQLITE"; then
- AC_DEFINE(MOZ_NATIVE_SQLITE)
-fi
-AC_SUBST(MOZ_NATIVE_SQLITE)
-
-dnl ========================================================
-dnl = Enable help viewer (off by default)
-dnl ========================================================
-if test -n "$MOZ_HELP_VIEWER"; then
- dnl Do this if defined in confvars.sh
- AC_DEFINE(MOZ_HELP_VIEWER)
-fi
-
-dnl ========================================================
-dnl = Enable safe browsing (anti-phishing)
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(safe-browsing,
-[ --enable-safe-browsing Enable safe browsing (anti-phishing) implementation],
- MOZ_SAFE_BROWSING=1,
- MOZ_SAFE_BROWSING= )
-if test -n "$MOZ_SAFE_BROWSING"; then
- AC_DEFINE(MOZ_SAFE_BROWSING)
-fi
-AC_SUBST(MOZ_SAFE_BROWSING)
-
-dnl ========================================================
-dnl = Enable url-classifier
-dnl ========================================================
-dnl Implicitly enabled by default if building with safe-browsing
-if test -n "$MOZ_SAFE_BROWSING"; then
- MOZ_URL_CLASSIFIER=1
-fi
-MOZ_ARG_ENABLE_BOOL(url-classifier,
-[ --enable-url-classifier Enable url classifier module],
- MOZ_URL_CLASSIFIER=1,
- MOZ_URL_CLASSIFIER= )
-if test -n "$MOZ_URL_CLASSIFIER"; then
- AC_DEFINE(MOZ_URL_CLASSIFIER)
-fi
-AC_SUBST(MOZ_URL_CLASSIFIER)
-
-dnl ========================================================
-dnl = Disable zipwriter
-dnl ========================================================
-MOZ_ARG_DISABLE_BOOL(zipwriter,
-[ --disable-zipwriter Disable zipwriter component],
- MOZ_ZIPWRITER=,
- MOZ_ZIPWRITER=1 )
-AC_SUBST(MOZ_ZIPWRITER)
-
-dnl ========================================================
-dnl = libconic
-dnl ========================================================
-dnl superseded by QtNetwork starting from 4.7
-MOZ_ENABLE_LIBCONIC=1
-
-if test -n "$MOZ_ENABLE_QT"; then
- if test "$MOZ_ENABLE_QTNETWORK"; then
- MOZ_ENABLE_LIBCONIC=
- fi
-fi
-
-MOZ_ARG_DISABLE_BOOL(libconic,
-[ --disable-libconic Disable libconic],
- MOZ_ENABLE_LIBCONIC=,
- MOZ_ENABLE_LIBCONIC=1 )
-
-if test -n "$MOZ_ENABLE_LIBCONIC"; then
- PKG_CHECK_MODULES(LIBCONIC, conic,
- MOZ_ENABLE_LIBCONIC=1,
- MOZ_ENABLE_LIBCONIC=)
-fi
-if test "$MOZ_ENABLE_LIBCONIC"; then
- AC_DEFINE(MOZ_ENABLE_LIBCONIC)
-fi
-
-AC_SUBST(MOZ_ENABLE_LIBCONIC)
-AC_SUBST(LIBCONIC_CFLAGS)
-AC_SUBST(LIBCONIC_LIBS)
-
-dnl ========================================================
-dnl = Maemo checks
-dnl ========================================================
-
-MAEMO_SDK_TARGET_VER=-1
-
-MOZ_ARG_WITH_STRING(maemo-version,
-[ --with-maemo-version=MAEMO_SDK_TARGET_VER
- Maemo SDK Version],
- MAEMO_SDK_TARGET_VER=$withval)
-
-case "$MAEMO_SDK_TARGET_VER" in
-5)
- MOZ_PLATFORM_MAEMO=5
- ;;
-
-6)
- MOZ_PLATFORM_MAEMO=6
- ;;
-
--1)
- dnl We aren't compiling for Maemo, move on.
- ;;
-*)
- AC_MSG_ERROR([Unknown Maemo Version. Try setting --with-maemo-version to 5 or 6.])
- ;;
-esac
-
-if test $MOZ_PLATFORM_MAEMO; then
- AC_DEFINE_UNQUOTED([MOZ_PLATFORM_MAEMO], $MOZ_PLATFORM_MAEMO)
-
- if test -z "$MOZ_ENABLE_DBUS"; then
- AC_MSG_ERROR([DBus is required when building for Maemo])
- fi
-
- MOZ_GFX_OPTIMIZE_MOBILE=1
- MOZ_GL_DEFAULT_PROVIDER=EGL
- MOZ_MAEMO_LIBLOCATION=
-
- if test $MOZ_PLATFORM_MAEMO = 5; then
- dnl if we have Xcomposite we should also have Xdamage and Xfixes
- MOZ_CHECK_HEADERS([X11/extensions/Xdamage.h], [],
- [AC_MSG_ERROR([Couldn't find X11/extensions/Xdamage.h which is required for composited plugins.])])
- AC_CHECK_LIB(Xcomposite, XCompositeRedirectWindow, [XCOMPOSITE_LIBS="-lXcomposite -lXdamage -lXfixes"],
- [MISSING_X="$MISSING_X -lXcomposite"], $XLIBS)
-
- AC_SUBST(XCOMPOSITE_LIBS)
-
- PKG_CHECK_MODULES(LIBHILDONMIME,libhildonmime, _LIB_FOUND=1, _LIB_FOUND=)
- MOZ_PLATFORM_MAEMO_LIBS="$MOZ_PLATFORM_MAEMO_LIBS $LIBHILDONMIME_LIBS"
- MOZ_PLATFORM_MAEMO_CFLAGS="$MOZ_PLATFORM_MAEMO_CFLAGS $LIBHILDONMIME_CFLAGS"
- if test -z "$_LIB_FOUND"; then
- AC_MSG_ERROR([Hildon Mime is required when building for Maemo])
- fi
-
-
- PKG_CHECK_MODULES(LIBOSSO,libosso, _LIB_FOUND=1, _LIB_FOUND=)
- MOZ_PLATFORM_MAEMO_LIBS="$MOZ_PLATFORM_MAEMO_LIBS $LIBOSSO_LIBS"
- MOZ_PLATFORM_MAEMO_CFLAGS="$MOZ_PLATFORM_MAEMO_CFLAGS $LIBOSSO_CFLAGS"
- if test -z "$_LIB_FOUND"; then
- AC_MSG_ERROR([LibOSSO is required when building for Maemo])
- fi
-
- PKG_CHECK_MODULES(LIBHILDONFM,hildon-fm-2, _LIB_FOUND=1, _LIB_FOUND=)
- MOZ_PLATFORM_MAEMO_LIBS="$MOZ_PLATFORM_MAEMO_LIBS $LIBHILDONFM_LIBS"
- MOZ_PLATFORM_MAEMO_CFLAGS="$MOZ_PLATFORM_MAEMO_CFLAGS $LIBHILDONFM_CFLAGS"
- if test -z "$_LIB_FOUND"; then
- AC_MSG_ERROR([Hildon FM-2 is required when building for Maemo])
- fi
-
- fi
- if test $MOZ_PLATFORM_MAEMO = 6; then
-
- PKG_CHECK_MODULES(LIBCONTENTMANAGER, ContentManager QtSparql,
- _LIB_FOUND=1,
- _LIB_FOUND=)
- if test "$_LIB_FOUND"; then
- MOZ_PLATFORM_MAEMO_LIBS="$MOZ_PLATFORM_MAEMO_LIBS $LIBCONTENTMANAGER_LIBS"
- MOZ_PLATFORM_MAEMO_CFLAGS="$MOZ_PLATFORM_MAEMO_CFLAGS $LIBCONTENTMANAGER_CFLAGS"
- MOZ_ENABLE_CONTENTMANAGER=1
- AC_DEFINE(MOZ_ENABLE_CONTENTMANAGER)
- else
- AC_MSG_WARN([Cannot find libcontentmanager and or QtSparql building for Maemo 6])
- fi
- AC_SUBST(MOZ_ENABLE_CONTENTMANAGER)
-
- dnl ========================================================
- dnl = Enable meego libcontentaction
- dnl ========================================================
- MOZ_ARG_ENABLE_BOOL(meegocontentaction,
- [ --enable-meegocontentaction Enable meegocontentaction support],
- MOZ_MEEGOCONTENTACTION=1,
- MOZ_MEEGOCONTENTACTION=)
-
- if test -n "$MOZ_MEEGOCONTENTACTION"; then
-
- PKG_CHECK_MODULES(LIBCONTENTACTION, contentaction-0.1, _LIB_FOUND=1, _LIB_FOUND=)
- if test "$_LIB_FOUND"; then
- MOZ_PLATFORM_MAEMO_LIBS="$MOZ_PLATFORM_MAEMO_LIBS $LIBCONTENTACTION_LIBS"
- MOZ_PLATFORM_MAEMO_CFLAGS="$MOZ_PLATFORM_MAEMO_CFLAGS $LIBCONTENTACTION_CFLAGS"
- MOZ_ENABLE_CONTENTACTION=1
- AC_DEFINE(MOZ_ENABLE_CONTENTACTION)
- AC_SUBST(MOZ_ENABLE_CONTENTACTION)
- fi
- fi
-
- MOZ_ARG_ENABLE_BOOL(meegotouch,
- [ --enable-meegotouch Enable meegotouch support],
- MOZ_MEEGOTOUCHENABLED=1,
- MOZ_MEEGOTOUCHENABLED=)
-
- if test -n "$MOZ_MEEGOTOUCHENABLED"; then
- PKG_CHECK_MODULES(MOZ_MEEGOTOUCH, meegotouchcore, _LIB_FOUND=1, _LIB_FOUND=)
- if test "$_LIB_FOUND"; then
- MOZ_QT_CFLAGS="$MOZ_MEEGOTOUCH_CFLAGS $MOZ_QT_CFLAGS"
- MOZ_QT_LIBS="$MOZ_MEEGOTOUCH_LIBS $MOZ_QT_LIBS"
- AC_DEFINE(MOZ_ENABLE_MEEGOTOUCH)
- else
- AC_MSG_WARN([Cannot meegotouchcore-dev. Disabling Meegotouch support.])
- fi
- fi
- fi
-
- PKG_CHECK_MODULES(LIBLOCATION,liblocation, _LIB_FOUND=1, _LIB_FOUND=)
- MOZ_PLATFORM_MAEMO_LIBS="$MOZ_PLATFORM_MAEMO_LIBS $LIBLOCATION_LIBS"
- MOZ_PLATFORM_MAEMO_CFLAGS="$MOZ_PLATFORM_MAEMO_CFLAGS $LIBLOCATION_CFLAGS"
- if test "$_LIB_FOUND"; then
- MOZ_MAEMO_LIBLOCATION=1
- AC_DEFINE(MOZ_MAEMO_LIBLOCATION)
- else
- AC_MSG_WARN([Cannot liblocation-dev. Disabling Maemo geolocation.])
- fi
- AC_SUBST(MOZ_MAEMO_LIBLOCATION)
-
- PKG_CHECK_MODULES(LIBMEEGOTOUCHSHARE, ShareUiInterface-maemo-meegotouch >= 0.3.31 mdatauri, _LIB_FOUND=1, _LIB_FOUND=)
- MOZ_PLATFORM_MAEMO_LIBS="$MOZ_PLATFORM_MAEMO_LIBS $LIBMEEGOTOUCHSHARE_LIBS"
- MOZ_PLATFORM_MAEMO_CFLAGS="$MOZ_PLATFORM_MAEMO_CFLAGS $LIBMEEGOTOUCHSHARE_CFLAGS"
- if test "$_LIB_FOUND"; then
- MOZ_ENABLE_MEEGOTOUCHSHARE=1
- AC_DEFINE(MOZ_ENABLE_MEEGOTOUCHSHARE)
- else
- AC_MSG_WARN([Cannot find maemo-meegotouch-interfaces-dev or libmdatauri-dev. Disabling meegotouch share ui.])
- fi
- AC_SUBST(MOZ_ENABLE_MEEGOTOUCHSHARE)
-
- AC_SUBST(MOZ_PLATFORM_MAEMO_LIBS)
- AC_SUBST(MOZ_PLATFORM_MAEMO_CFLAGS)
-fi
-
-dnl ========================================================
-dnl GL provider
-dnl ========================================================
-MOZ_GL_PROVIDER=
-MOZ_ARG_WITH_STRING(gl-provider,
-[ --with-gl-provider=ID
- Set GL provider backend type],
-[ val=`echo $withval`
- MOZ_GL_PROVIDER="$val"])
-
-if test -n "$MOZ_GL_PROVIDER"; then
-MOZ_GL_DEFAULT_PROVIDER=$MOZ_GL_PROVIDER
-AC_SUBST(MOZ_GL_PROVIDER)
-AC_DEFINE_UNQUOTED(MOZ_GL_PROVIDER, GLContextProvider$MOZ_GL_PROVIDER)
-fi
-AC_SUBST(MOZ_GL_DEFAULT_PROVIDER)
-AC_DEFINE_UNQUOTED(GL_PROVIDER_$MOZ_GL_DEFAULT_PROVIDER)
-
-dnl ========================================================
-dnl = faststripe theme
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(faststripe,
-[ --enable-faststripe Use faststripe theme],
- MOZ_THEME_FASTSTRIPE=1,
- MOZ_THEME_FASTSTRIPE= )
-AC_SUBST(MOZ_THEME_FASTSTRIPE)
-
-dnl ========================================================
-dnl =
-dnl = Feature options that require extra sources to be pulled
-dnl =
-dnl ========================================================
-dnl MOZ_ARG_HEADER(Features that require extra sources)
-
-dnl ========================================================
-dnl =
-dnl = Debugging Options
-dnl =
-dnl ========================================================
-MOZ_ARG_HEADER(Debugging and Optimizations)
-
-dnl ========================================================
-dnl = Disable building with debug info.
-dnl = Debugging is OFF by default
-dnl ========================================================
-if test -z "$MOZ_DEBUG_FLAGS"; then
- MOZ_DEBUG_FLAGS="-g"
-fi
-
-MOZ_ARG_ENABLE_STRING(debug,
-[ --enable-debug[=DBG] Enable building with developer debug info
- (using compiler flags DBG)],
-[ if test "$enableval" != "no"; then
- MOZ_DEBUG=1
- if test -n "$enableval" -a "$enableval" != "yes"; then
- MOZ_DEBUG_FLAGS=`echo $enableval | sed -e 's|\\\ | |g'`
- _MOZ_DEBUG_FLAGS_SET=1
- fi
- else
- MOZ_DEBUG=
- fi ],
- MOZ_DEBUG=)
-
-MOZ_DEBUG_ENABLE_DEFS="-DDEBUG -D_DEBUG -DTRACING"
-MOZ_ARG_WITH_STRING(debug-label,
-[ --with-debug-label=LABELS
- Define DEBUG_<value> for each comma-separated
- value given.],
-[ for option in `echo $withval | sed 's/,/ /g'`; do
- MOZ_DEBUG_ENABLE_DEFS="$MOZ_DEBUG_ENABLE_DEFS -DDEBUG_${option}"
-done])
-
-MOZ_DEBUG_DISABLE_DEFS="-DNDEBUG -DTRIMMED"
-
-if test -n "$MOZ_DEBUG"; then
- AC_MSG_CHECKING([for valid debug flags])
- _SAVE_CFLAGS=$CFLAGS
- CFLAGS="$CFLAGS $MOZ_DEBUG_FLAGS"
- AC_TRY_COMPILE([#include <stdio.h>],
- [printf("Hello World\n");],
- _results=yes,
- _results=no)
- AC_MSG_RESULT([$_results])
- if test "$_results" = "no"; then
- AC_MSG_ERROR([These compiler flags are invalid: $MOZ_DEBUG_FLAGS])
- fi
- CFLAGS=$_SAVE_CFLAGS
-fi
-
-dnl ========================================================
-dnl enable mobile optimizations
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(mobile-optimize,
-[ --enable-mobile-optimize
- Enable mobile optimizations],
- MOZ_GFX_OPTIMIZE_MOBILE=1)
-
-AC_SUBST(MOZ_GFX_OPTIMIZE_MOBILE)
-
-if test "$MOZ_GFX_OPTIMIZE_MOBILE"; then
- AC_DEFINE(MOZ_GFX_OPTIMIZE_MOBILE)
-fi
-
-dnl ========================================================
-dnl = Enable code optimization. ON by default.
-dnl ========================================================
-if test -z "$MOZ_OPTIMIZE_FLAGS"; then
- MOZ_OPTIMIZE_FLAGS="-O"
-fi
-
-MOZ_ARG_ENABLE_STRING(optimize,
-[ --disable-optimize Disable compiler optimization
- --enable-optimize=[OPT] Specify compiler optimization flags [OPT=-O]],
-[ if test "$enableval" != "no"; then
- MOZ_OPTIMIZE=1
- if test -n "$enableval" -a "$enableval" != "yes"; then
- MOZ_OPTIMIZE_FLAGS=`echo "$enableval" | sed -e 's|\\\ | |g'`
- MOZ_OPTIMIZE=2
- fi
-else
- MOZ_OPTIMIZE=
-fi ], MOZ_OPTIMIZE=1)
-
-MOZ_SET_FRAMEPTR_FLAGS
-
-if test "$COMPILE_ENVIRONMENT"; then
-if test -n "$MOZ_OPTIMIZE"; then
- AC_MSG_CHECKING([for valid optimization flags])
- _SAVE_CFLAGS=$CFLAGS
- CFLAGS="$CFLAGS $MOZ_OPTIMIZE_FLAGS"
- AC_TRY_COMPILE([#include <stdio.h>],
- [printf("Hello World\n");],
- _results=yes,
- _results=no)
- AC_MSG_RESULT([$_results])
- if test "$_results" = "no"; then
- AC_MSG_ERROR([These compiler flags are invalid: $MOZ_OPTIMIZE_FLAGS])
- fi
- CFLAGS=$_SAVE_CFLAGS
-fi
-fi # COMPILE_ENVIRONMENT
-
-AC_SUBST(MOZ_OPTIMIZE)
-AC_SUBST(MOZ_FRAMEPTR_FLAGS)
-AC_SUBST(MOZ_OPTIMIZE_FLAGS)
-AC_SUBST(MOZ_OPTIMIZE_LDFLAGS)
-AC_SUBST(MOZ_ALLOW_HEAP_EXECUTE_FLAGS)
-AC_SUBST(MOZ_OPTIMIZE_SIZE_TWEAK)
-AC_SUBST(MOZ_PGO_OPTIMIZE_FLAGS)
-
-dnl ========================================================
-dnl = Enable generation of debug symbols
-dnl ========================================================
-MOZ_ARG_ENABLE_STRING(debug-symbols,
-[ --enable-debug-symbols[=DBG]
- Enable debugging symbols (using compiler flags DBG)],
-[ if test "$enableval" != "no"; then
- MOZ_DEBUG_SYMBOLS=1
- if test -n "$enableval" -a "$enableval" != "yes"; then
- if test -z "$_MOZ_DEBUG_FLAGS_SET"; then
- MOZ_DEBUG_FLAGS=`echo $enableval | sed -e 's|\\\ | |g'`
- else
- AC_MSG_ERROR([--enable-debug-symbols flags cannot be used with --enable-debug flags])
- fi
- fi
- else
- MOZ_DEBUG_SYMBOLS=
- fi ],
- MOZ_DEBUG_SYMBOLS=1)
-
-if test -n "$MOZ_DEBUG" -o -n "$MOZ_DEBUG_SYMBOLS"; then
- AC_DEFINE(MOZ_DEBUG_SYMBOLS)
- export MOZ_DEBUG_SYMBOLS
-fi
-
-dnl ========================================================
-dnl = Enable any treating of compile warnings as errors
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(warnings-as-errors,
-[ --enable-warnings-as-errors
- Enable treating of warnings as errors],
- MOZ_ENABLE_WARNINGS_AS_ERRORS=1,
- MOZ_ENABLE_WARNINGS_AS_ERRORS=)
-if test -z "$MOZ_ENABLE_WARNINGS_AS_ERRORS"; then
- WARNINGS_AS_ERRORS=''
-fi
-
-dnl ========================================================
-dnl = Disable runtime logging checks
-dnl ========================================================
-MOZ_ARG_DISABLE_BOOL(logging,
-[ --disable-logging Disable logging facilities],
- NS_DISABLE_LOGGING=1,
- NS_DISABLE_LOGGING= )
-if test "$NS_DISABLE_LOGGING"; then
- AC_DEFINE(NS_DISABLE_LOGGING)
-else
- AC_DEFINE(MOZ_LOGGING)
-fi
-
-dnl ========================================================
-dnl = This will enable logging of addref, release, ctor, dtor.
-dnl ========================================================
-_ENABLE_LOGREFCNT=42
-MOZ_ARG_ENABLE_BOOL(logrefcnt,
-[ --enable-logrefcnt Enable logging of refcounts (default=debug) ],
- _ENABLE_LOGREFCNT=1,
- _ENABLE_LOGREFCNT= )
-if test "$_ENABLE_LOGREFCNT" = "1"; then
- AC_DEFINE(FORCE_BUILD_REFCNT_LOGGING)
-elif test -z "$_ENABLE_LOGREFCNT"; then
- AC_DEFINE(NO_BUILD_REFCNT_LOGGING)
-fi
-
-dnl ========================================================
-dnl moz_dump_painting
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(dump-painting,
-[ --enable-dump-painting Enable paint debugging.],
- MOZ_DUMP_PAINTING=1,
- MOZ_DUMP_PAINTING= )
-if test -n "$MOZ_DUMP_PAINTING"; then
- AC_DEFINE(MOZ_DUMP_PAINTING)
- AC_DEFINE(MOZ_LAYERS_HAVE_LOG)
-fi
-if test -n "$MOZ_DEBUG"; then
- AC_DEFINE(MOZ_DUMP_PAINTING)
-fi
-
-dnl ========================================================
-dnl = Enable trace malloc
-dnl ========================================================
-NS_TRACE_MALLOC=${MOZ_TRACE_MALLOC}
-MOZ_ARG_ENABLE_BOOL(trace-malloc,
-[ --enable-trace-malloc Enable malloc tracing; also disables DMD and jemalloc],
- NS_TRACE_MALLOC=1,
- NS_TRACE_MALLOC= )
-if test "$NS_TRACE_MALLOC"; then
- # Please, Mr. Linker Man, don't take away our symbol names
- MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS=
- USE_ELF_DYNSTR_GC=
- AC_DEFINE(NS_TRACE_MALLOC)
-fi
-AC_SUBST(NS_TRACE_MALLOC)
-
-dnl ========================================================
-dnl = Enable DMD
-dnl ========================================================
-
-MOZ_ARG_ENABLE_BOOL(dmd,
-[ --enable-dmd Enable DMD; also enables jemalloc and replace-malloc],
- MOZ_DMD=1,
- MOZ_DMD= )
-
-if test "$NS_TRACE_MALLOC"; then # trace-malloc disables DMD
- MOZ_DMD=
-fi
-if test "$MOZ_DMD"; then
- USE_ELF_DYNSTR_GC=
- AC_DEFINE(MOZ_DMD)
-
- if test "${CPU_ARCH}" = "arm"; then
- CFLAGS="$CFLAGS -funwind-tables"
- CXXFLAGS="$CXXFLAGS -funwind-tables"
- fi
-
- MOZ_MEMORY=1 # DMD enables jemalloc
- MOZ_REPLACE_MALLOC=1 # DMD enables replace-malloc
-fi
-AC_SUBST(MOZ_DMD)
-
-dnl ========================================================
-dnl = Enable jemalloc
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(jemalloc,
-[ --enable-jemalloc Replace memory allocator with jemalloc],
- MOZ_MEMORY=1,
- MOZ_MEMORY=)
-
-if test "$NS_TRACE_MALLOC"; then
- MOZ_MEMORY=
-fi
-
-if test "${OS_TARGET}" = "Android"; then
- dnl On Android, we use WRAP_LDFLAGS to link everything to mozglue
- :
-elif test "${OS_TARGET}" = "WINNT" -o "${OS_TARGET}" = "Darwin" -o "${OS_TARGET}" = "OS2"; then
- dnl On Windows, OSX and OS2, we want to link all our binaries against mozglue
- if test -z "$GNU_CC"; then
- MOZ_GLUE_LDFLAGS='$(call EXPAND_LIBNAME_PATH,mozglue,$(LIBXUL_DIST)/lib)'
- else
- MOZ_GLUE_LDFLAGS='-L$(LIBXUL_DIST)/lib $(call EXPAND_LIBNAME,mozglue)'
- fi
-else
- dnl On other Unix systems, we only want to link executables against mozglue
- MOZ_GLUE_PROGRAM_LDFLAGS='$(MKSHLIB_FORCE_ALL) $(call EXPAND_LIBNAME_PATH,mozglue,$(LIBXUL_DIST)/lib)'
- dnl On other Unix systems, where mozglue is a static library, jemalloc is
- dnl separated for the SDK, so we need to add it here.
- if test "$MOZ_MEMORY" = 1 -o \( "$LIBXUL_SDK" -a -f "$LIBXUL_SDK/lib/${LIB_PREFIX}memory.${LIB_SUFFIX}" \); then
- MOZ_GLUE_PROGRAM_LDFLAGS="$MOZ_GLUE_PROGRAM_LDFLAGS "'$(call EXPAND_LIBNAME_PATH,memory,$(LIBXUL_DIST)/lib)'
- fi
- MOZ_GLUE_PROGRAM_LDFLAGS="$MOZ_GLUE_PROGRAM_LDFLAGS "'$(MKSHLIB_UNFORCE_ALL)'
- if test -n "$GNU_CC"; then
- dnl And we need mozglue symbols to be exported.
- MOZ_GLUE_PROGRAM_LDFLAGS="$MOZ_GLUE_PROGRAM_LDFLAGS -rdynamic"
- fi
- if test "$MOZ_LINKER" = 1; then
- MOZ_GLUE_PROGRAM_LDFLAGS="$MOZ_GLUE_PROGRAM_LDFLAGS $MOZ_ZLIB_LIBS"
- fi
-fi
-
-dnl ========================================================
-dnl = Enable dynamic replacement of malloc implementation
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(replace-malloc,
-[ --enable-replace-malloc Enable ability to dynamically replace the malloc implementation],
- MOZ_REPLACE_MALLOC=1,
- MOZ_REPLACE_MALLOC= )
-
-if test -n "$MOZ_REPLACE_MALLOC" -a -z "$MOZ_MEMORY"; then
- dnl We don't want to enable jemalloc unconditionally because it may be a
- dnl deliberate choice not to enable it (bug 702250, for instance)
- AC_MSG_ERROR([--enable-replace-malloc requires --enable-jemalloc])
-elif test -n "$MOZ_REPLACE_MALLOC"; then
- MOZ_NATIVE_JEMALLOC=
-
- dnl Replace-malloc Mac linkage quirks
- if test -n "$MACOSX_DEPLOYMENT_TARGET"; then
- AC_CACHE_CHECK([how to do weak dynamic linking],
- ac_cv_weak_dynamic_linking,
- [echo 'extern void foo() __attribute__((weak_import));int bar() { if (foo) foo(); return 0; }' > conftest.c
- if AC_TRY_COMMAND([${CC-cc} -o conftest${DLL_SUFFIX} $CFLAGS -dynamiclib $LDFLAGS -Wl,-U,_foo conftest.c $LIBS 1>&5]) &&
- test -s conftest${DLL_SUFFIX}; then
- dnl There are several ways the linker can put link edit rules in a binary:
- dnl - classic info only (for OSX < 10.6)
- dnl - dyld info only
- dnl - both
- if otool -l conftest${DLL_SUFFIX} 2> /dev/null | grep "LC_DYLD_INFO_ONLY" > /dev/null; then
- _CLASSIC_INFO=
- else
- _CLASSIC_INFO=1
- fi
- if otool -l conftest${DLL_SUFFIX} 2> /dev/null | grep "LC_DYLD_INFO" > /dev/null; then
- _DYLD_INFO=1
- else
- _DYLD_INFO=
- fi
- dnl With classic info, we need to build with -flat_namespace.
- dnl With dyld info, Xcode 4.5 does the right thing without additional flags,
- dnl but Xcode < 4.5 requires a dummy library and -flat_namespace because it
- dnl forgets to set the weak flag in the dyld info.
- dnl See http://glandium.org/blog/?p=2764 for more details.
- dnl
- dnl Values for ac_cv_weak_dynamic_linking, and subsequently
- dnl MOZ_REPLACE_MALLOC_LINKAGE are thus:
- dnl - "flat namespace" when -flat_namespace alone is needed
- dnl - "dummy library" when a dummy library and -flat_namespace are needed
- dnl - "compiler support" when nothing is needed
- if test -n "$_DYLD_INFO" && dyldinfo -bind conftest${DLL_SUFFIX} 2> /dev/null | grep "_foo (weak import)" > /dev/null; then
- if test -n "$_CLASSIC_INFO"; then
- ac_cv_weak_dynamic_linking="flat namespace"
- else
- ac_cv_weak_dynamic_linking="compiler support"
- fi
- else
- if test -n "$_DYLD_INFO"; then
- ac_cv_weak_dynamic_linking="dummy library"
- else
- ac_cv_weak_dynamic_linking="flat namespace"
- fi
- fi
- else
- AC_ERROR([couldn't compile a simple C file])
- fi
- rm -rf conftest*])
- MOZ_REPLACE_MALLOC_LINKAGE="$ac_cv_weak_dynamic_linking"
- fi
-fi
-AC_SUBST(MOZ_REPLACE_MALLOC)
-AC_SUBST(MOZ_REPLACE_MALLOC_LINKAGE)
-
-dnl ========================================================
-dnl = Jemalloc build setup
-dnl ========================================================
-if test -z "$MOZ_MEMORY"; then
- if test -n "$MOZ_JEMALLOC3" -a -z "$MOZ_REPLACE_MALLOC"; then
- MOZ_NATIVE_JEMALLOC=1
- AC_CHECK_FUNCS(mallctl nallocm,,
- [MOZ_NATIVE_JEMALLOC=
- break])
- if test -n "$MOZ_NATIVE_JEMALLOC"; then
- MOZ_MEMORY=1
- AC_DEFINE(MOZ_MEMORY)
- AC_DEFINE(MOZ_JEMALLOC3)
- AC_DEFINE(MOZ_NATIVE_JEMALLOC)
- fi
- fi
- case "${target}" in
- *-mingw*)
- if test -z "$WIN32_REDIST_DIR" -a -z "$MOZ_DEBUG"; then
- AC_MSG_WARN([When not building jemalloc, you need to set WIN32_REDIST_DIR to the path to the Visual C++ Redist (usually VCINSTALLDIR\redist\x86\Microsoft.VC80.CRT, for VC++ v8) if you intend to distribute your build.])
- fi
- ;;
- esac
-else
- dnl Don't try to run compiler tests on Windows
- if test "$OS_ARCH" = "WINNT"; then
- if test -z "$HAVE_64BIT_OS"; then
- AC_DEFINE_UNQUOTED([MOZ_MEMORY_SIZEOF_PTR_2POW], 2)
- else
- AC_DEFINE_UNQUOTED([MOZ_MEMORY_SIZEOF_PTR_2POW], 3)
- fi
- else
- AC_CHECK_SIZEOF([int *], [4])
- case "${ac_cv_sizeof_int_p}" in
- 4)
- AC_DEFINE_UNQUOTED([MOZ_MEMORY_SIZEOF_PTR_2POW], 2)
- ;;
- 8)
- AC_DEFINE_UNQUOTED([MOZ_MEMORY_SIZEOF_PTR_2POW], 3)
- ;;
- *)
- AC_MSG_ERROR([Unexpected pointer size])
- ;;
- esac
- fi
-
- AC_DEFINE(MOZ_MEMORY)
- if test -n "$MOZ_JEMALLOC3"; then
- AC_DEFINE(MOZ_JEMALLOC3)
- fi
- if test "x$MOZ_DEBUG" = "x1"; then
- AC_DEFINE(MOZ_MEMORY_DEBUG)
- fi
- dnl The generic feature tests that determine how to compute ncpus are long and
- dnl complicated. Therefore, simply define special cpp variables for the
- dnl platforms we have special knowledge of.
- case "${target}" in
- *-darwin*)
- AC_DEFINE(MOZ_MEMORY_DARWIN)
- ;;
- *-*freebsd*)
- AC_DEFINE(MOZ_MEMORY_BSD)
- ;;
- *-android*|*-linuxandroid*)
- AC_DEFINE(MOZ_MEMORY_LINUX)
- AC_DEFINE(MOZ_MEMORY_ANDROID)
- if test -z "$gonkdir"; then
- _WRAP_MALLOC=1
- else
- AC_DEFINE(MOZ_MEMORY_GONK)
- fi
- MOZ_GLUE_LDFLAGS=
- ;;
- *-*linux*)
- AC_DEFINE(MOZ_MEMORY_LINUX)
- ;;
- *-netbsd*)
- AC_DEFINE(MOZ_MEMORY_BSD)
- ;;
- *-solaris*)
- AC_DEFINE(MOZ_MEMORY_SOLARIS)
- ;;
- *-mingw*)
- AC_DEFINE(MOZ_MEMORY_WINDOWS)
- if test -z "$MOZ_DEBUG"; then
- WIN32_CRT_LIBS="msvcrt.lib msvcprt.lib"
- else
- WIN32_CRT_LIBS="msvcrtd.lib msvcprtd.lib"
- fi
- dnl Look for a broken crtdll.obj
- WIN32_CRTDLL_FULLPATH=`lib -nologo -list $WIN32_CRT_LIBS | grep crtdll\\.obj`
- lib -NOLOGO -OUT:crtdll.obj $WIN32_CRT_LIBS -EXTRACT:$WIN32_CRTDLL_FULLPATH
- if grep -q '__imp__\{0,1\}free' crtdll.obj; then
- MOZ_GLUE_LDFLAGS='-LIBPATH:$(DIST)/lib -NODEFAULTLIB:msvcrt -NODEFAULTLIB:msvcrtd -NODEFAULTLIB:msvcprt -NODEFAULTLIB:msvcprtd -DEFAULTLIB:mozcrt'
- dnl Also pass this to NSPR/NSS
- DLLFLAGS="$DLLFLAGS $MOZ_GLUE_LDFLAGS"
- else
- DLLFLAGS="$DLLFLAGS -LIBPATH:\$(DIST)/lib -DEFAULTLIB:mozglue"
- fi
- rm crtdll.obj
-
- export DLLFLAGS
- ;;
- *)
- AC_MSG_ERROR([--enable-jemalloc not supported on ${target}])
- ;;
- esac
-fi # MOZ_MEMORY
-AC_SUBST(MOZ_MEMORY)
-AC_SUBST(MOZ_JEMALLOC3)
-AC_SUBST(MOZ_NATIVE_JEMALLOC)
-AC_SUBST(MOZ_GLUE_LDFLAGS)
-AC_SUBST(MOZ_GLUE_PROGRAM_LDFLAGS)
-AC_SUBST(WIN32_CRT_LIBS)
-dnl Need to set this for make because NSS doesn't have configure
-AC_SUBST(DLLFLAGS)
-
-dnl We need to wrap dlopen and related functions on Android because we use
-dnl our own linker.
-if test "$OS_TARGET" = Android; then
- WRAP_LDFLAGS="${WRAP_LDFLAGS} -L$_objdir/dist/lib -lmozglue"
- WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=getaddrinfo,--wrap=freeaddrinfo,--wrap=gai_strerror"
- WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=PR_GetEnv,--wrap=PR_SetEnv"
- if test -z "$gonkdir"; then
- WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=fork,--wrap=pthread_atfork,--wrap=raise"
- WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=memccpy,--wrap=memchr,--wrap=memrchr,--wrap=memcmp,--wrap=memcpy,--wrap=memmove,--wrap=memset,--wrap=memmem,--wrap=memswap,--wrap=index,--wrap=strchr,--wrap=strrchr,--wrap=strlen,--wrap=strcmp,--wrap=strcpy,--wrap=strcat,--wrap=strcasecmp,--wrap=strncasecmp,--wrap=strstr,--wrap=strcasestr,--wrap=strtok,--wrap=strtok_r,--wrap=strerror,--wrap=strerror_r,--wrap=strnlen,--wrap=strncat,--wrap=strncmp,--wrap=strncpy,--wrap=strlcat,--wrap=strlcpy,--wrap=strcspn,--wrap=strpbrk,--wrap=strsep,--wrap=strspn,--wrap=strcoll,--wrap=strxfrm"
- fi
-fi
-
-dnl ========================================================
-dnl = Use malloc wrapper lib
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(wrap-malloc,
-[ --enable-wrap-malloc Wrap malloc calls (gnu linker only)],
- _WRAP_MALLOC=1,
- _WRAP_MALLOC= )
-
-if test -n "$_WRAP_MALLOC"; then
- if test -n "$GNU_CC"; then
- WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=malloc,--wrap=calloc,--wrap=valloc,--wrap=free,--wrap=realloc,--wrap=memalign"
- WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=__builtin_new,--wrap=__builtin_vec_new,--wrap=__builtin_delete,--wrap=__builtin_vec_delete"
- WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=strdup,--wrap=strndup"
- WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=posix_memalign,--wrap=malloc_usable_size"
- dnl Wrap operator new and operator delete on Android.
- if test "$OS_TARGET" = "Android"; then
- WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=_Znwj,--wrap=_Znaj,--wrap=_ZdlPv,--wrap=_ZdaPv"
- dnl Wrap the nothrow variants too.
- WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=_ZnwjRKSt9nothrow_t,--wrap=_ZnajRKSt9nothrow_t,--wrap=_ZdlPvRKSt9nothrow_t,--wrap=_ZdaPvRKSt9nothrow_t"
- fi
- else
- AC_MSG_ERROR([--enable-wrap-malloc is not supported for non-GNU toolchains])
- fi
-fi
-
-dnl ========================================================
-dnl = Location of malloc wrapper lib
-dnl ========================================================
-MOZ_ARG_WITH_STRING(wrap-malloc,
-[ --with-wrap-malloc=DIR Location of malloc wrapper library],
- WRAP_LDFLAGS="${WRAP_LDFLAGS} $withval")
-
-dnl ========================================================
-dnl = Use JS Call tracing
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(trace-jscalls,
-[ --enable-trace-jscalls Enable JS call enter/exit callback (default=no)],
- MOZ_TRACE_JSCALLS=1,
- MOZ_TRACE_JSCALLS= )
-if test -n "$MOZ_TRACE_JSCALLS"; then
- AC_DEFINE(MOZ_TRACE_JSCALLS)
-fi
-
-dnl ========================================================
-dnl = Use incremental GC
-dnl ========================================================
-JSGC_INCREMENTAL=1
-MOZ_ARG_DISABLE_BOOL(gcincremental,
-[ --disable-gcincremental Disable incremental GC],
- JSGC_INCREMENTAL= )
-if test -n "$JSGC_INCREMENTAL"; then
- AC_DEFINE(JSGC_INCREMENTAL)
-fi
-
-dnl ========================================================
-dnl Zealous JavaScript GC
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(gczeal,
-[ --enable-gczeal Enable zealous JavaScript GCing],
- JS_GC_ZEAL=1,
- JS_GC_ZEAL= )
-if test -n "$JS_GC_ZEAL"; then
- AC_DEFINE(JS_GC_ZEAL)
-fi
-
-dnl ========================================================
-dnl JS opt-mode assertions and minidump instrumentation
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(js-diagnostics,
-[ --enable-js-diagnostics
- Enable JS diagnostic assertions and breakpad data],
- JS_CRASH_DIAGNOSTICS=1,
- JS_CRASH_DIAGNOSTICS= )
-if test -n "$JS_CRASH_DIAGNOSTICS"; then
- AC_DEFINE(JS_CRASH_DIAGNOSTICS)
-fi
-
-MOZ_CHECK_CCACHE
-MOZ_CHECK_COMPILER_WRAPPER
-
-dnl ========================================================
-dnl = Enable static checking using gcc-dehydra
-dnl ========================================================
-
-MOZ_ARG_WITH_STRING(static-checking,
-[ --with-static-checking=path/to/gcc_dehydra.so
- Enable static checking of code using GCC-dehydra],
- DEHYDRA_PATH=$withval,
- DEHYDRA_PATH= )
-
-if test -n "$DEHYDRA_PATH"; then
- if test ! -f "$DEHYDRA_PATH"; then
- AC_MSG_ERROR([The dehydra plugin is not at the specified path.])
- fi
- AC_DEFINE(NS_STATIC_CHECKING)
-fi
-AC_SUBST(DEHYDRA_PATH)
-
-dnl ========================================================
-dnl = Enable using the clang plugin to build
-dnl ========================================================
-
-MOZ_ARG_ENABLE_BOOL(clang-plugin,
-[ --enable-clang-plugin Enable building with the mozilla clang plugin ],
- ENABLE_CLANG_PLUGIN=1,
- ENABLE_CLANG_PLUGIN= )
-if test -n "$ENABLE_CLANG_PLUGIN"; then
- if test -z "$CLANG_CC"; then
- AC_MSG_ERROR([Can't use clang plugin without clang.])
- fi
- AC_DEFINE(MOZ_CLANG_PLUGIN)
-fi
-
-AC_SUBST(ENABLE_CLANG_PLUGIN)
-
-dnl ========================================================
-dnl = Enable stripping of libs & executables
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(strip,
-[ --enable-strip Enable stripping of libs & executables ],
- ENABLE_STRIP=1,
- ENABLE_STRIP= )
-
-dnl ========================================================
-dnl = Enable stripping of libs & executables when packaging
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(install-strip,
-[ --enable-install-strip Enable stripping of libs & executables when packaging ],
- PKG_SKIP_STRIP= ,
- PKG_SKIP_STRIP=1)
-
-dnl ========================================================
-dnl = --enable-elf-dynstr-gc
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(elf-dynstr-gc,
-[ --enable-elf-dynstr-gc Enable elf dynstr garbage collector (opt builds only)],
- USE_ELF_DYNSTR_GC=1,
- USE_ELF_DYNSTR_GC= )
-
-dnl ========================================================
-dnl = --disable-elf-hack
-dnl ========================================================
-
-USE_ELF_HACK=1
-MOZ_ARG_DISABLE_BOOL(elf-hack,
-[ --disable-elf-hack Disable elf hacks],
- [USE_ELF_HACK=],
- [USE_ELF_HACK=F # Force enable elf-hack])
-
-# Disable elf hack for profiling because the built in profiler
-# doesn't read the segments properly with elf hack. This is
-# temporary and should be fixed soon in the profiler.
-if test "$MOZ_PROFILING" = 1; then
- if test "$USE_ELF_HACK" = F; then
- AC_ERROR([--enable-elf-hack is not compatible with --enable-profiling])
- fi
- USE_ELF_HACK=
-fi
-
-# Only enable elfhack where supported
-if test "$USE_ELF_HACK" = 1; then
- case "${HOST_OS_ARCH},${OS_ARCH}" in
- Linux,Linux)
- case "${CPU_ARCH}" in
- arm | x86 | x86_64)
- USE_ELF_HACK=1
- ;;
- *)
- USE_ELF_HACK=
- ;;
- esac
- ;;
- *)
- USE_ELF_HACK=
- ;;
- esac
-fi
-
-if test -n "$USE_ELF_HACK"; then
- dnl PT_GNU_RELRO segment makes the dynamic linker set a read-only flag on
- dnl memory addresses it maps to. The result is that by the time elfhack
- dnl kicks in, it is not possible to apply relocations because of that,
- dnl thus elfhack effectively skips relocations inside the PT_GNU_RELRO
- dnl segment. It makes elfhack mostly useless, so considering the problems
- dnl we have we PT_GNU_RELRO (e.g. bug 664366), and until elfhack can deal
- dnl with PT_GNU_RELRO segments, it's just simpler to disable elfhack when
- dnl the linker creates PT_GNU_RELRO segments. However, when we do want
- dnl elfhack enabled, disable PT_GNU_RELRO instead.
- AC_CACHE_CHECK([whether linker creates PT_GNU_RELRO segments],
- LINK_WITH_PT_GNU_RELRO,
- [echo "int main() {return 0;}" > conftest.${ac_ext}
- if AC_TRY_COMMAND(${CC-cc} -o conftest${ac_exeext} $LDFLAGS conftest.${ac_ext} $LIBS 1>&2) &&
- test -s conftest${ac_exeext}; then
- if ${TOOLCHAIN_PREFIX}readelf -l conftest${ac_exeext} | grep GNU_RELRO > /dev/null; then
- LINK_WITH_PT_GNU_RELRO=yes
- else
- LINK_WITH_PT_GNU_RELRO=no
- fi
- else
- dnl We really don't expect to get here, but just in case
- AC_ERROR([couldn't compile a simple C file])
- fi
- rm -rf conftest*])
- if test "$LINK_WITH_PT_GNU_RELRO" = yes; then
- if test "$USE_ELF_HACK" = F; then
- AC_MSG_CHECKING([for -z norelro option to ld])
- _SAVE_LDFLAGS=$LDFLAGS
- LDFLAGS="$LDFLAGS -Wl,-z,norelro"
- AC_TRY_LINK(,,AC_MSG_RESULT([yes])
- [NSPR_LDFLAGS="$NSPR_LDFLAGS -Wl,-z,norelro"],
- AC_ERROR([--enable-elf-hack is not compatible with a linker creating a PT_GNU_RELRO segment and that doesn't support the "-z norelro" option.]))
- USE_ELF_HACK=1
- else
- AC_MSG_WARN([Disabling elfhack])
- USE_ELF_HACK=
- fi
- fi
-fi
-
-dnl ========================================================
-dnl = libstdc++ compatibility hacks
-dnl ========================================================
-
-STDCXX_COMPAT=
-MOZ_ARG_ENABLE_BOOL(stdcxx-compat,
-[ --enable-stdcxx-compat Enable compatibility with older libstdc++],
- STDCXX_COMPAT=1)
-
-AC_SUBST(STDCXX_COMPAT)
-
-if test -n "$STDCXX_COMPAT"; then
- eval $(CXX="$CXX" $PYTHON $_topsrcdir/build/autoconf/libstdcxx.py)
- AC_SUBST(MOZ_LIBSTDCXX_TARGET_VERSION)
- AC_SUBST(MOZ_LIBSTDCXX_HOST_VERSION)
-fi
-
-dnl ========================================================
-dnl =
-dnl = Profiling and Instrumenting
-dnl =
-dnl ========================================================
-MOZ_ARG_HEADER(Profiling and Instrumenting)
-
-dnl ========================================================
-dnl = Enable runtime visual profiling logger
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(visual-event-tracer,
-[ --enable-visual-event-tracer Enable visual event tracer instrumentation],
- MOZ_VISUAL_EVENT_TRACER=1,
- MOZ_VISUAL_EVENT_TRACER=)
-if test -n "$MOZ_VISUAL_EVENT_TRACER"; then
- AC_DEFINE(MOZ_VISUAL_EVENT_TRACER)
-fi
-
-dnl ========================================================
-dnl Turn on reflow counting
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(reflow-perf,
-[ --enable-reflow-perf Enable reflow performance tracing],
- MOZ_REFLOW_PERF=1,
- MOZ_REFLOW_PERF= )
-if test -n "$MOZ_REFLOW_PERF"; then
- AC_DEFINE(MOZ_REFLOW_PERF)
-fi
-
-dnl ========================================================
-dnl Enable code size metrics.
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(codesighs,
-[ --enable-codesighs Enable code size analysis tools],
- _ENABLE_CODESIGHS=1,
- _ENABLE_CODESIGHS= )
-if test -n "$_ENABLE_CODESIGHS"; then
- if test -d $srcdir/tools/codesighs; then
- MOZ_MAPINFO=1
- else
- AC_MSG_ERROR([Codesighs directory $srcdir/tools/codesighs required.])
- fi
-fi
-
-dnl ========================================================
-dnl = Enable Radio Interface for B2G (Gonk usually)
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(b2g-ril,
-[ --enable-b2g-ril Set compile flags necessary for testing B2G Radio Interface Layer via network sockets ],
- MOZ_B2G_RIL=1,
- MOZ_B2G_RIL= )
-if test -n "$MOZ_B2G_RIL"; then
- AC_DEFINE(MOZ_B2G_RIL)
-fi
-AC_SUBST(MOZ_B2G_RIL)
-
-dnl ========================================================
-dnl = Enable Radio FM for B2G (Gonk usually)
-dnl ========================================================
-if test -n "$MOZ_B2G_FM"; then
- AC_DEFINE(MOZ_B2G_FM)
-fi
-AC_SUBST(MOZ_B2G_FM)
-
-dnl ========================================================
-dnl = Enable Bluetooth Interface for B2G (Gonk usually)
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(b2g-bt,
-[ --enable-b2g-bt Set compile flags necessary for compiling Bluetooth API for B2G ],
- MOZ_B2G_BT=1,
- MOZ_B2G_BT= )
-if test -n "$MOZ_B2G_BT"; then
- AC_DEFINE(MOZ_B2G_BT)
-fi
-AC_SUBST(MOZ_B2G_BT)
-
-dnl ========================================================
-dnl = Enable Support for Time Manager API
-dnl ========================================================
-if test -n "$MOZ_TIME_MANAGER"; then
- AC_DEFINE(MOZ_TIME_MANAGER)
-fi
-AC_SUBST(MOZ_TIME_MANAGER)
-
-dnl ========================================================
-dnl = Enable Camera Interface for B2G (Gonk usually)
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(b2g-camera,
-[ --enable-b2g-camera Set compile flags necessary for compiling camera API for B2G ],
- MOZ_B2G_CAMERA=1,
- MOZ_B2G_CAMERA= )
-if test -n "$MOZ_B2G_CAMERA"; then
- AC_DEFINE(MOZ_B2G_CAMERA)
-fi
-AC_SUBST(MOZ_B2G_CAMERA)
-
-dnl ========================================================
-dnl = Enable Support B2G-specific changes to the NSS
-dnl = certificate trust database.
-dnl ========================================================
-if test -n "$MOZ_B2G_CERTDATA"; then
- AC_DEFINE(MOZ_B2G_CERTDATA)
-fi
-AC_SUBST(MOZ_B2G_CERTDATA)
-
-dnl ========================================================
-dnl = Enable Support for Payment API
-dnl ========================================================
-if test -n "$MOZ_PAY"; then
- AC_DEFINE(MOZ_PAY)
-fi
-AC_SUBST(MOZ_PAY)
-
-dnl ========================================================
-dnl = Enable Support for AudioChannelManager API
-dnl ========================================================
-if test -n "$MOZ_AUDIO_CHANNEL_MANAGER"; then
- AC_DEFINE(MOZ_AUDIO_CHANNEL_MANAGER)
-fi
-AC_SUBST(MOZ_AUDIO_CHANNEL_MANAGER)
-
-dnl ========================================================
-dnl = Support for demangling undefined symbols
-dnl ========================================================
-if test -z "$SKIP_LIBRARY_CHECKS"; then
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- AC_CHECK_FUNCS(__cxa_demangle, HAVE_DEMANGLE=1, HAVE_DEMANGLE=)
- AC_LANG_RESTORE
-fi
-
-# Demangle only for debug or trace-malloc or DMD builds
-MOZ_DEMANGLE_SYMBOLS=
-if test "$HAVE_DEMANGLE" && test "$MOZ_DEBUG" -o "$NS_TRACE_MALLOC" -o "$MOZ_DMD"; then
- MOZ_DEMANGLE_SYMBOLS=1
- AC_DEFINE(MOZ_DEMANGLE_SYMBOLS)
-fi
-AC_SUBST(MOZ_DEMANGLE_SYMBOLS)
-
-dnl ========================================================
-dnl = Support for gcc stack unwinding (from gcc 3.3)
-dnl ========================================================
-if test -z "$SKIP_LIBRARY_CHECKS"; then
- MOZ_CHECK_HEADER(unwind.h, AC_CHECK_FUNCS(_Unwind_Backtrace))
-fi
-
-dnl ========================================================
-dnl JIT observers
-dnl ========================================================
-
-MOZ_ARG_WITH_STRING(jitreport-granularity,
-[ --jitreport-granularity=N
- Default granularity at which to report JIT code
- to external tools
- 0 - no info
- 1 - code ranges for whole functions only
- 2 - per-line information
- 3 - per-op information],
- JITREPORT_GRANULARITY=$withval,
- JITREPORT_GRANULARITY=3)
-
-AC_DEFINE_UNQUOTED(JS_DEFAULT_JITREPORT_GRANULARITY, $JITREPORT_GRANULARITY)
-
-dnl ========================================================
-dnl =
-dnl = Misc. Options
-dnl =
-dnl ========================================================
-MOZ_ARG_HEADER(Misc. Options)
-
-dnl ========================================================
-dnl update xterm title
-dnl ========================================================
-MOZ_ARG_ENABLE_BOOL(xterm-updates,
-[ --enable-xterm-updates Update XTERM titles with current command.],
- MOZ_UPDATE_XTERM=1,
- MOZ_UPDATE_XTERM= )
-
-dnl =========================================================
-dnl = Chrome format
-dnl =========================================================
-MOZ_ARG_ENABLE_STRING([chrome-format],
-[ --enable-chrome-format=jar|flat|omni
- Select FORMAT of chrome files during packaging],
- MOZ_CHROME_FILE_FORMAT=`echo $enableval | tr A-Z a-z`)
-
-if test -z "$MOZ_CHROME_FILE_FORMAT"; then
- MOZ_CHROME_FILE_FORMAT=jar
-fi
-
-if test "$MOZ_CHROME_FILE_FORMAT" = "symlink"; then
- AC_MSG_ERROR([--enable-chrome-format=symlink has been deprecated. It is now used by default in $DIST/bin on platforms that support it])
-fi
-
-if test "$MOZ_CHROME_FILE_FORMAT" != "jar" &&
- test "$MOZ_CHROME_FILE_FORMAT" != "flat" &&
- test "$MOZ_CHROME_FILE_FORMAT" != "omni"; then
- AC_MSG_ERROR([--enable-chrome-format must be set to either jar, flat, or omni])
-fi
-
-dnl =========================================================
-dnl Omnijar packaging (bug 552121)
-dnl =========================================================
-dnl Omnijar packaging is compatible with flat packaging.
-dnl In unpackaged builds, omnijar looks for files as if
-dnl things were flat packaged. After packaging, all files
-dnl are loaded from a single jar. MOZ_CHROME_FILE_FORMAT
-dnl is set to flat since putting files into jars is only
-dnl done during packaging with omnijar.
-if test "$MOZ_CHROME_FILE_FORMAT" = "omni"; then
- MOZ_OMNIJAR=1
- AC_DEFINE(MOZ_OMNIJAR)
-fi
-MOZ_PACKAGER_FORMAT="$MOZ_CHROME_FILE_FORMAT"
-if test "$OS_ARCH" = "WINNT" -o "$OS_ARCH" = "OS2" -o "$MOZ_WIDGET_TOOLKIT" = "android"; then
- MOZ_CHROME_FILE_FORMAT=flat
-else
- MOZ_CHROME_FILE_FORMAT=symlink
-fi
-
-if test "$MOZ_WIDGET_TOOLKIT" = "android"; then
- dnl Fennec's static resources live in the assets/ folder of the
- dnl APK. Adding a path to the name here works because we only
- dnl have one omnijar file in the final package (which is not the
- dnl case on desktop), and necessitates some contortions during
- dnl packaging so that the resources in the omnijar are considered
- dnl as rooted at / and not as rooted at assets/ (which again is
- dnl not the case on desktop: there are omnijars rooted at webrtc/,
- dnl etc). packager.mk handles changing the rooting of the single
- dnl omnijar.
- OMNIJAR_NAME=assets/omni.ja
-else
- OMNIJAR_NAME=omni.ja
-fi
-
-AC_SUBST(OMNIJAR_NAME)
-AC_SUBST(MOZ_OMNIJAR)
-AC_SUBST(MOZ_PACKAGER_FORMAT)
-
-dnl ========================================================
-dnl = Define default location for MOZILLA_FIVE_HOME
-dnl ========================================================
-MOZ_ARG_WITH_STRING(default-mozilla-five-home,
-[ --with-default-mozilla-five-home
- Set the default value for MOZILLA_FIVE_HOME],
-[ val=`echo $withval`
- AC_DEFINE_UNQUOTED(MOZ_DEFAULT_MOZILLA_FIVE_HOME,"$val") ])
-
-dnl ========================================================
-dnl = Location of the mozilla user directory (default is ~/.mozilla).],
-dnl ========================================================
-MOZ_ARG_WITH_STRING(user-appdir,
-[ --with-user-appdir=DIR Set user-specific appdir (default=.mozilla)],
-[ val=`echo $withval`
-if echo "$val" | grep "\/" >/dev/null; then
- AC_MSG_ERROR("Homedir must be single relative path.")
-else
- MOZ_USER_DIR="$val"
-fi])
-
-AC_DEFINE_UNQUOTED(MOZ_USER_DIR,"$MOZ_USER_DIR")
-
-dnl ========================================================
-dnl = Doxygen configuration
-dnl ========================================================
-dnl Use commas to specify multiple dirs to this arg
-MOZ_DOC_INPUT_DIRS='./dist/include ./dist/idl'
-MOZ_ARG_WITH_STRING(doc-input-dirs,
-[ --with-doc-input-dirs=DIRS
- Header/idl dirs to create docs from],
-[ MOZ_DOC_INPUT_DIRS=`echo "$withval" | sed "s/,/ /g"` ] )
-AC_SUBST(MOZ_DOC_INPUT_DIRS)
-
-dnl Use commas to specify multiple dirs to this arg
-MOZ_DOC_INCLUDE_DIRS='./dist/include ./dist/include/nspr'
-MOZ_ARG_WITH_STRING(doc-include-dirs,
-[ --with-doc-include-dirs=DIRS
- Include dirs to preprocess doc headers],
-[ MOZ_DOC_INCLUDE_DIRS=`echo "$withval" | sed "s/,/ /g"` ] )
-AC_SUBST(MOZ_DOC_INCLUDE_DIRS)
-
-MOZ_DOC_OUTPUT_DIR='./dist/docs'
-MOZ_ARG_WITH_STRING(doc-output-dir,
-[ --with-doc-output-dir=DIR
- Dir to generate docs into],
-[ MOZ_DOC_OUTPUT_DIR=$withval ] )
-AC_SUBST(MOZ_DOC_OUTPUT_DIR)
-
-if test -z "$SKIP_COMPILER_CHECKS"; then
-dnl ========================================================
-dnl =
-dnl = Compiler Options
-dnl =
-dnl ========================================================
-MOZ_ARG_HEADER(Compiler Options)
-
-dnl ========================================================
-dnl Check for gcc -pipe support
-dnl ========================================================
-AC_MSG_CHECKING([for -pipe support])
-if test -n "$GNU_CC" -a -n "$GNU_CXX"; then
- dnl Any gcc that supports firefox supports -pipe.
- CFLAGS="$CFLAGS -pipe"
- CXXFLAGS="$CXXFLAGS -pipe"
- AC_MSG_RESULT([yes])
-else
- AC_MSG_RESULT([no])
-fi
-
-dnl ========================================================
-dnl Profile guided optimization (gcc checks)
-dnl ========================================================
-dnl Test for profiling options
-dnl Under gcc 3.4+, use -fprofile-generate/-fprofile-use
-
-_SAVE_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS -fprofile-generate -fprofile-correction"
-
-AC_MSG_CHECKING([whether C compiler supports -fprofile-generate])
-AC_TRY_COMPILE([], [return 0;],
- [ PROFILE_GEN_CFLAGS="-fprofile-generate"
- result="yes" ], result="no")
-AC_MSG_RESULT([$result])
-
-if test $result = "yes"; then
- PROFILE_GEN_LDFLAGS="-fprofile-generate"
- PROFILE_USE_CFLAGS="-fprofile-use -fprofile-correction -Wcoverage-mismatch"
- PROFILE_USE_LDFLAGS="-fprofile-use"
-fi
-
-CFLAGS="$_SAVE_CFLAGS"
-
-if test -n "$INTEL_CC"; then
- PROFILE_GEN_CFLAGS="-prof-gen -prof-dir ."
- PROFILE_GEN_LDFLAGS=
- PROFILE_USE_CFLAGS="-prof-use -prof-dir ."
- PROFILE_USE_LDFLAGS=
-fi
-
-dnl Sun Studio on Solaris
-if test "$SOLARIS_SUNPRO_CC"; then
- PROFILE_GEN_CFLAGS="-xprofile=collect:$_objdir/$enable_application"
- PROFILE_GEN_LDFLAGS="-xprofile=collect:$_objdir/$enable_application"
- PROFILE_USE_CFLAGS="-xprofile=use:$_objdir/$enable_application"
- PROFILE_USE_LDFLAGS="-xprofile=use:$_objdir/$enable_application"
-fi
-
-AC_SUBST(PROFILE_GEN_CFLAGS)
-AC_SUBST(PROFILE_GEN_LDFLAGS)
-AC_SUBST(PROFILE_USE_CFLAGS)
-AC_SUBST(PROFILE_USE_LDFLAGS)
-
-AC_LANG_CPLUSPLUS
-
-dnl ========================================================
-dnl Autoconf test for gcc 2.7.2.x (and maybe others?) so that we don't
-dnl provide non-const forms of the operator== for comparing nsCOMPtrs to
-dnl raw pointers in nsCOMPtr.h. (VC++ has the same bug.)
-dnl ========================================================
-_SAVE_CXXFLAGS=$CXXFLAGS
-CXXFLAGS="$CXXFLAGS ${_WARNINGS_CXXFLAGS}"
-AC_CACHE_CHECK(for correct overload resolution with const and templates,
- ac_nscap_nonconst_opeq_bug,
- [AC_TRY_COMPILE([
- template <class T>
- class Pointer
- {
- public:
- T* myPtr;
- };
-
- template <class T, class U>
- int operator==(const Pointer<T>& rhs, U* lhs)
- {
- return rhs.myPtr == lhs;
- }
-
- template <class T, class U>
- int operator==(const Pointer<T>& rhs, const U* lhs)
- {
- return rhs.myPtr == lhs;
- }
- ],
- [
- Pointer<int> foo;
- const int* bar;
- return foo == bar;
- ],
- ac_nscap_nonconst_opeq_bug="no",
- ac_nscap_nonconst_opeq_bug="yes")])
-CXXFLAGS="$_SAVE_CXXFLAGS"
-
-if test "$ac_nscap_nonconst_opeq_bug" = "yes" ; then
- AC_DEFINE(NSCAP_DONT_PROVIDE_NONCONST_OPEQ)
-fi
-fi # ! SKIP_COMPILER_CHECKS
-
-AC_DEFINE(CPP_THROW_NEW, [throw()])
-AC_LANG_C
-
-if test "$COMPILE_ENVIRONMENT"; then
-MOZ_EXPAND_LIBS
-fi # COMPILE_ENVIRONMENT
-
-dnl ========================================================
-dnl =
-dnl = Build depencency options
-dnl =
-dnl ========================================================
-MOZ_ARG_HEADER(Build dependencies)
-
-if test "$GNU_CC" -a "$GNU_CXX"; then
- _DEPEND_CFLAGS='-MD -MP -MF $(MDDEPDIR)/$(@F).pp'
-dnl Sun Studio on Solaris use -xM instead of -MD, see config/rules.mk
-elif test "$SOLARIS_SUNPRO_CC"; then
- _DEPEND_CFLAGS=
-else
- dnl Don't override this for MSVC
- if test -z "$_WIN32_MSVC"; then
- _USE_CPP_INCLUDE_FLAG=
- _DEFINES_CFLAGS='$(ACDEFINES) -D_MOZILLA_CONFIG_H_ -DMOZILLA_CLIENT'
- _DEFINES_CXXFLAGS='$(ACDEFINES) -D_MOZILLA_CONFIG_H_ -DMOZILLA_CLIENT'
- else
- echo '#include <stdio.h>' > dummy-hello.c
- changequote(,)
- CL_INCLUDES_PREFIX=`${CC} -showIncludes -c -Fonul dummy-hello.c 2>&1 | sed -ne 's/^\([^:]*:[^:]*:\).*stdio.h$/\1/p'`
- changequote([,])
- if test -z "$CL_INCLUDES_PREFIX"; then
- AC_MSG_ERROR([Cannot find cl -showIncludes prefix.])
- fi
- AC_SUBST(CL_INCLUDES_PREFIX)
- rm -f dummy-hello.c
- fi
-fi
-
-dnl ========================================================
-dnl =
-dnl = Static Build Options
-dnl =
-dnl ========================================================
-MOZ_ARG_HEADER(Static build options)
-
-# split JS out by default to avoid VS2005 PGO crash (bug 591836).
-if test "$OS_ARCH" = "WINNT"; then
- ENABLE_SHARED_JS=1
-fi
-
-MOZ_ARG_ENABLE_BOOL(shared-js,
-[ --enable-shared-js
- Create a shared JavaScript library.],
- ENABLE_SHARED_JS=1,
- ENABLE_SHARED_JS=)
-
-if test -n "$ENABLE_SHARED_JS"; then
- JS_SHARED_LIBRARY=1
- MOZ_JS_LIBS="$MOZ_JS_SHARED_LIBS"
-else
- MOZ_JS_LIBS="$MOZ_JS_STATIC_LIBS"
- AC_DEFINE(MOZ_STATIC_JS)
-fi
-AC_SUBST(JS_SHARED_LIBRARY)
-
-AC_SUBST(LIBXUL_LIBS)
-XPCOM_LIBS="$LIBXUL_LIBS"
-
-dnl ========================================================
-dnl =
-dnl = Standalone module options
-dnl =
-dnl ========================================================
-MOZ_ARG_HEADER(Standalone module options (Not for building Mozilla))
-
-dnl Check for GLib.
-dnl ========================================================
-
-if test -z "$SKIP_PATH_CHECKS"; then
-if test -z "${GLIB_CFLAGS}" -o -z "${GLIB_LIBS}" ; then
- if test "$MOZ_ENABLE_GTK2" -o "$USE_ELF_DYNSTR_GC" ; then
- PKG_CHECK_MODULES(GLIB, glib-2.0 >= 1.3.7 gobject-2.0)
- fi
-fi
-fi
-
-if test -z "${GLIB_GMODULE_LIBS}" \
- -a -n "${GLIB_CONFIG}"\
- -a "${GLIB_CONFIG}" != no\
-; then
- GLIB_GMODULE_LIBS=`$GLIB_CONFIG gmodule --libs`
-fi
-
-AC_SUBST(GLIB_CFLAGS)
-AC_SUBST(GLIB_LIBS)
-AC_SUBST(GLIB_GMODULE_LIBS)
-
-dnl ========================================================
-dnl Graphics checks.
-dnl ========================================================
-
-if test "${OS_TARGET}" = "WINNT" -o "${OS_ARCH}" = "Darwin" -o "${MOZ_WIDGET_TOOLKIT}" = "android" -o "${MOZ_WIDGET_TOOLKIT}" = "gtk2"; then
-MOZ_ENABLE_SKIA=1
-else
-MOZ_ENABLE_SKIA=
-fi
-
-MOZ_ARG_ENABLE_BOOL(skia,
-[ --enable-skia Enable use of Skia],
-MOZ_ENABLE_SKIA=1,
-MOZ_ENABLE_SKIA=)
-
-if test "$USE_FC_FREETYPE"; then
- if test "$COMPILE_ENVIRONMENT"; then
- dnl ========================================================
- dnl = Check for freetype2 and its functionality
- dnl ========================================================
- PKG_CHECK_MODULES(FT2, freetype2 >= 6.1.0, _HAVE_FREETYPE2=1, _HAVE_FREETYPE2=)
-
- if test "$_HAVE_FREETYPE2"; then
- _SAVE_LIBS="$LIBS"
- _SAVE_CFLAGS="$CFLAGS"
- LIBS="$LIBS $FT2_LIBS"
- CFLAGS="$CFLAGS $FT2_CFLAGS"
-
- AC_CACHE_CHECK(for FT_Bitmap_Size.y_ppem,
- ac_cv_member_FT_Bitmap_Size_y_ppem,
- [AC_TRY_COMPILE([#include <ft2build.h>
- #include FT_FREETYPE_H],
- [FT_Bitmap_Size s;
- if (sizeof s.y_ppem) return 0;
- return 1],
- ac_cv_member_FT_Bitmap_Size_y_ppem=yes,
- ac_cv_member_FT_Bitmap_Size_y_ppem=no)])
- if test "$ac_cv_member_FT_Bitmap_Size_y_ppem" = yes; then
- HAVE_FT_BITMAP_SIZE_Y_PPEM=1
- else
- HAVE_FT_BITMAP_SIZE_Y_PPEM=0
- fi
- AC_DEFINE_UNQUOTED(HAVE_FT_BITMAP_SIZE_Y_PPEM,
- $HAVE_FT_BITMAP_SIZE_Y_PPEM,
- [FT_Bitmap_Size structure includes y_ppem field])
-
- AC_CHECK_FUNCS(FT_GlyphSlot_Embolden FT_Load_Sfnt_Table FT_Select_Size)
-
- LIBS="$_SAVE_LIBS"
- CFLAGS="$_SAVE_CFLAGS"
- fi
-
- _SAVE_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS $FT2_CFLAGS $XCFLAGS"
- MOZ_CHECK_HEADERS([fontconfig/fcfreetype.h], ,
- [AC_MSG_ERROR(Can't find header fontconfig/fcfreetype.h.)], [#include <fontconfig/fontconfig.h>])
- CPPFLAGS="$_SAVE_CPPFLAGS"
- else
- AC_DEFINE(HAVE_FONTCONFIG_FCFREETYPE_H)
- fi
-
- PKG_CHECK_MODULES(_FONTCONFIG, fontconfig,
- [
- if test "$MOZ_PANGO"; then
- MOZ_PANGO_CFLAGS="$MOZ_PANGO_CFLAGS $_FONTCONFIG_CFLAGS"
- MOZ_PANGO_LIBS="$MOZ_PANGO_LIBS $_FONTCONFIG_LIBS"
- else
- FT2_CFLAGS="$FT2_CFLAGS $_FONTCONFIG_CFLAGS"
- FT2_LIBS="$FT2_LIBS $_FONTCONFIG_LIBS"
- fi
- ])
-fi
-
-dnl ========================================================
-dnl Check for pixman and cairo
-dnl ========================================================
-
-MOZ_TREE_CAIRO=1
-MOZ_ARG_ENABLE_BOOL(system-cairo,
-[ --enable-system-cairo Use system cairo (located with pkgconfig)],
-MOZ_TREE_CAIRO=,
-MOZ_TREE_CAIRO=1 )
-
-MOZ_TREE_PIXMAN=1
-MOZ_ARG_ENABLE_BOOL(system-pixman,
-[ --enable-system-pixman Use system pixman (located with pkgconfig)],
-MOZ_TREE_PIXMAN=,
-MOZ_TREE_PIXMAN=force,
-MOZ_TREE_PIXMAN=1 )
-
-# System cairo depends on system pixman
-if test "$MOZ_TREE_PIXMAN" = "force"; then
- if test -z "$MOZ_TREE_CAIRO"; then
- AC_MSG_ERROR([--disable-system-pixman is incompatible with --enable-system-cairo.])
- else
- MOZ_TREE_PIXMAN=1
- fi
-elif test -z "$MOZ_TREE_CAIRO"; then
- MOZ_TREE_PIXMAN=
-fi
-
-if test "$MOZ_TREE_PIXMAN"; then
- AC_DEFINE(MOZ_TREE_PIXMAN)
- MOZ_PIXMAN_CFLAGS=""
- MOZ_PIXMAN_LIBS='$(call EXPAND_LIBNAME_PATH,mozlibpixman,$(DEPTH)/gfx/cairo/libpixman/src)'
-else
- PKG_CHECK_MODULES(PIXMAN, pixman-1 >= 0.19.2)
- MOZ_PIXMAN_CFLAGS="$PIXMAN_CFLAGS"
- MOZ_PIXMAN_LIBS="$PIXMAN_LIBS"
-fi
-AC_SUBST(MOZ_PIXMAN_CFLAGS)
-AC_SUBST(MOZ_PIXMAN_LIBS)
-
-# Check for headers defining standard int types.
-MOZ_CHECK_HEADERS(stdint.h inttypes.h sys/int_types.h)
-
-if test "$MOZ_TREE_CAIRO"; then
- MOZ_CAIRO_CFLAGS='-I$(LIBXUL_DIST)/include/cairo'
- AC_DEFINE(MOZ_TREE_CAIRO)
-
- # For now we assume that we will have a uint64_t available through
- # one of the above headers or mozstdint.h.
- AC_DEFINE(HAVE_UINT64_T)
-
- # Define macros for cairo-features.h
- TEE_SURFACE_FEATURE="#define CAIRO_HAS_TEE_SURFACE 1"
- if test "$MOZ_X11"; then
- XLIB_SURFACE_FEATURE="#define CAIRO_HAS_XLIB_SURFACE 1"
- XLIB_XRENDER_SURFACE_FEATURE="#define CAIRO_HAS_XLIB_XRENDER_SURFACE 1"
- PS_SURFACE_FEATURE="#define CAIRO_HAS_PS_SURFACE 1"
- FT_FONT_FEATURE="#define CAIRO_HAS_FT_FONT 1"
- MOZ_ENABLE_CAIRO_FT=1
- CAIRO_FT_CFLAGS="$FT2_CFLAGS"
- fi
- case "$MOZ_WIDGET_TOOLKIT" in
- qt)
- QT_SURFACE_FEATURE="#define CAIRO_HAS_QT_SURFACE 1"
- ;;
- cocoa | uikit)
- QUARTZ_SURFACE_FEATURE="#define CAIRO_HAS_QUARTZ_SURFACE 1"
- QUARTZ_IMAGE_SURFACE_FEATURE="#define CAIRO_HAS_QUARTZ_IMAGE_SURFACE 1"
- QUARTZ_FONT_FEATURE="#define CAIRO_HAS_QUARTZ_FONT 1"
- ;;
- windows)
- WIN32_SURFACE_FEATURE="#define CAIRO_HAS_WIN32_SURFACE 1"
- WIN32_FONT_FEATURE="#define CAIRO_HAS_WIN32_FONT 1"
- if test "$MOZ_WINSDK_TARGETVER" -ge "06010000"; then
- WIN32_DWRITE_FONT_FEATURE="#define CAIRO_HAS_DWRITE_FONT 1"
- WIN32_D2D_SURFACE_FEATURE="#define CAIRO_HAS_D2D_SURFACE 1"
- MOZ_ENABLE_D2D_SURFACE=1
- MOZ_ENABLE_DWRITE_FONT=1
- else
- WIN32_DWRITE_FONT_FEATURE=
- WIN32_D2D_SURFACE_FEATURE=
- fi
-
- MOZ_CHECK_HEADER(d3d9.h, MOZ_ENABLE_D3D9_LAYER=1)
-
- dnl D3D10 Layers depend on D2D Surfaces.
- if test -n "$WIN32_D2D_SURFACE_FEATURE"; then
- MOZ_CHECK_HEADER(d3d10.h, MOZ_ENABLE_D3D10_LAYER=1)
- fi
- ;;
- os2)
- OS2_SURFACE_FEATURE="#define CAIRO_HAS_OS2_SURFACE 1"
- FT_FONT_FEATURE="#define CAIRO_HAS_FT_FONT 1"
- MOZ_ENABLE_CAIRO_FT=1
- CAIRO_FT_CFLAGS="-I${MZFTCFGFT2}/include"
- CAIRO_FT_OSLIBS="-L${MZFTCFGFT2}/lib -lmozft -lmzfntcfg"
- CAIRO_FT_LIBS=""
- ;;
- esac
- if test "$USE_FC_FREETYPE"; then
- FC_FONT_FEATURE="#define CAIRO_HAS_FC_FONT 1"
- fi
- AC_SUBST(MOZ_ENABLE_CAIRO_FT)
- AC_SUBST(MOZ_ENABLE_DWRITE_FONT)
- AC_SUBST(MOZ_ENABLE_D2D_SURFACE)
- AC_SUBST(MOZ_ENABLE_D3D9_LAYER)
- AC_SUBST(MOZ_ENABLE_D3D10_LAYER)
- AC_SUBST(CAIRO_FT_CFLAGS)
-
- AC_SUBST(PS_SURFACE_FEATURE)
- AC_SUBST(PDF_SURFACE_FEATURE)
- AC_SUBST(SVG_SURFACE_FEATURE)
- AC_SUBST(XLIB_SURFACE_FEATURE)
- AC_SUBST(XLIB_XRENDER_SURFACE_FEATURE)
- AC_SUBST(QUARTZ_SURFACE_FEATURE)
- AC_SUBST(QUARTZ_IMAGE_SURFACE_FEATURE)
- AC_SUBST(WIN32_SURFACE_FEATURE)
- AC_SUBST(OS2_SURFACE_FEATURE)
- AC_SUBST(DIRECTFB_SURFACE_FEATURE)
- AC_SUBST(FT_FONT_FEATURE)
- AC_SUBST(FC_FONT_FEATURE)
- AC_SUBST(WIN32_FONT_FEATURE)
- AC_SUBST(WIN32_DWRITE_FONT_FEATURE)
- AC_SUBST(WIN32_D2D_SURFACE_FEATURE)
- AC_SUBST(QUARTZ_FONT_FEATURE)
- AC_SUBST(PNG_FUNCTIONS_FEATURE)
- AC_SUBST(QT_SURFACE_FEATURE)
- AC_SUBST(TEE_SURFACE_FEATURE)
-
- MOZ_CAIRO_LIBS='$(call EXPAND_LIBNAME_PATH,mozcairo,$(DEPTH)/gfx/cairo/cairo/src)'" $CAIRO_FT_LIBS"
- MOZ_CAIRO_OSLIBS='${CAIRO_FT_OSLIBS}'
-
- if test "$MOZ_X11"; then
- MOZ_CAIRO_OSLIBS="$MOZ_CAIRO_OSLIBS $XLDFLAGS -lXrender"
- fi
-
- CAIRO_FEATURES_H=gfx/cairo/cairo/src/cairo-features.h
-else
- PKG_CHECK_MODULES(CAIRO, cairo >= $CAIRO_VERSION)
- MOZ_CAIRO_CFLAGS="$CAIRO_CFLAGS"
- MOZ_CAIRO_LIBS="$CAIRO_LIBS"
- PKG_CHECK_MODULES(CAIRO_TEE, cairo-tee >= $CAIRO_VERSION)
- if test "$MOZ_X11"; then
- PKG_CHECK_MODULES(CAIRO_XRENDER, cairo-xlib-xrender >= $CAIRO_VERSION)
- MOZ_CAIRO_LIBS="$MOZ_CAIRO_LIBS $XLDFLAGS $CAIRO_XRENDER_LIBS"
- MOZ_CAIRO_OSLIBS="$MOZ_CAIRO_LIBS"
- MOZ_CAIRO_CFLAGS="$MOZ_CAIRO_CFLAGS $CAIRO_XRENDER_CFLAGS"
- fi
-fi
-
-AC_SUBST(MOZ_TREE_CAIRO)
-AC_SUBST(MOZ_CAIRO_CFLAGS)
-AC_SUBST(MOZ_CAIRO_LIBS)
-AC_SUBST(MOZ_CAIRO_OSLIBS)
-AC_SUBST(MOZ_TREE_PIXMAN)
-
-dnl ========================================================
-dnl qcms
-dnl ========================================================
-
-QCMS_LIBS='$(DEPTH)/gfx/qcms/$(LIB_PREFIX)mozqcms.$(LIB_SUFFIX)'
-AC_SUBST(QCMS_LIBS)
-
-dnl ========================================================
-dnl HarfBuzz
-dnl ========================================================
-MOZ_HARFBUZZ_LIBS='$(DEPTH)/gfx/harfbuzz/src/$(LIB_PREFIX)mozharfbuzz.$(LIB_SUFFIX)'
-AC_SUBST(MOZ_HARFBUZZ_LIBS)
-
-dnl ========================================================
-dnl SIL Graphite
-dnl ========================================================
-MOZ_GRAPHITE_LIBS='$(DEPTH)/gfx/graphite2/src/$(LIB_PREFIX)mozgraphite2.$(LIB_SUFFIX)'
-AC_SUBST(MOZ_GRAPHITE_LIBS)
-
-dnl ========================================================
-dnl OTS
-dnl ========================================================
-MOZ_OTS_LIBS='$(DEPTH)/gfx/ots/src/$(LIB_PREFIX)mozots.$(LIB_SUFFIX)'
-AC_SUBST(MOZ_OTS_LIBS)
-
-dnl ========================================================
-dnl Skia
-dnl ========================================================
-if test "$MOZ_ENABLE_SKIA"; then
- MOZ_SKIA_LIBS='$(DEPTH)/gfx/skia/$(LIB_PREFIX)skia.$(LIB_SUFFIX)'
- AC_DEFINE(MOZ_ENABLE_SKIA)
- AC_DEFINE(USE_SKIA)
- if test "${MOZ_WIDGET_TOOLKIT}" = "android" -o x"$MOZ_WIDGET_TOOLKIT" = x"gonk"; then
- AC_DEFINE(SK_BUILD_FOR_ANDROID_NDK)
- elif test "$OS_ARCH" = "WINNT"; then
- AC_DEFINE(SKIA_DLL)
- AC_DEFINE(GR_DLL)
- fi
-
- if test "${CPU_ARCH}" != "ppc" -a "${CPU_ARCH}" != "ppc64"; then
- MOZ_ENABLE_SKIA_GPU=1
- AC_DEFINE(USE_SKIA_GPU)
- AC_SUBST(MOZ_ENABLE_SKIA_GPU)
- fi
-else
- MOZ_SKIA_LIBS=
-fi
-AC_SUBST(MOZ_ENABLE_SKIA)
-AC_SUBST(MOZ_SKIA_LIBS)
-
-dnl ========================================================
-dnl disable xul
-dnl ========================================================
-MOZ_ARG_DISABLE_BOOL(xul,
-[ --disable-xul Disable XUL],
- MOZ_XUL= )
-if test "$MOZ_XUL"; then
- AC_DEFINE(MOZ_XUL)
-else
- dnl remove extensions that require XUL
- MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's/inspector//' -e 's/venkman//' -e 's/irc//' -e 's/tasks//'`
-fi
-
-AC_SUBST(MOZ_XUL)
-
-dnl ========================================================
-dnl disable profile locking
-dnl do no use this in applications that can have more than
-dnl one process accessing the profile directory.
-dnl ========================================================
-MOZ_ARG_DISABLE_BOOL(profilelocking,
-[ --disable-profilelocking
- Disable profile locking],
- MOZ_PROFILELOCKING=,
- MOZ_PROFILELOCKING=1 )
-if test "$MOZ_PROFILELOCKING"; then
- AC_DEFINE(MOZ_PROFILELOCKING)
-fi
-
-dnl ========================================================
-dnl necko configuration options
-dnl ========================================================
-
-dnl
-dnl option to disable various necko protocols
-dnl
-MOZ_ARG_ENABLE_STRING(necko-protocols,
-[ --enable-necko-protocols[={http,ftp,default,all,none}]
- Enable/disable specific protocol handlers],
-[ for option in `echo $enableval | sed 's/,/ /g'`; do
- if test "$option" = "yes" -o "$option" = "all"; then
- NECKO_PROTOCOLS="$NECKO_PROTOCOLS $NECKO_PROTOCOLS_DEFAULT"
- elif test "$option" = "no" -o "$option" = "none"; then
- NECKO_PROTOCOLS=""
- elif test "$option" = "default"; then
- NECKO_PROTOCOLS="$NECKO_PROTOCOLS $NECKO_PROTOCOLS_DEFAULT"
- elif test `echo "$option" | grep -c \^-` != 0; then
- option=`echo $option | sed 's/^-//'`
- NECKO_PROTOCOLS=`echo "$NECKO_PROTOCOLS" | sed "s/ ${option}//"`
- else
- NECKO_PROTOCOLS="$NECKO_PROTOCOLS $option"
- fi
-done],
- NECKO_PROTOCOLS="$NECKO_PROTOCOLS_DEFAULT")
-dnl Remove dupes
-NECKO_PROTOCOLS=`${PERL} ${srcdir}/build/unix/uniq.pl ${NECKO_PROTOCOLS}`
-AC_SUBST(NECKO_PROTOCOLS)
-for p in $NECKO_PROTOCOLS; do
- AC_DEFINE_UNQUOTED(NECKO_PROTOCOL_$p)
- _NON_GLOBAL_ACDEFINES="$_NON_GLOBAL_ACDEFINES NECKO_PROTOCOL_$p"
-done
-
-dnl
-dnl option to disable necko's wifi scanner
-dnl
-MOZ_ARG_DISABLE_BOOL(necko-wifi,
-[ --disable-necko-wifi Disable necko wifi scanner],
- NECKO_WIFI=,
- NECKO_WIFI=1)
-
-if test "$OS_ARCH" = "OS2"; then
- dnl OS/2 implementation of Necko-WiFi support will be added in bug 506566
- NECKO_WIFI=
-fi
-if test "$NECKO_WIFI" -a \
- "$OS_ARCH" != "Linux" -a \
- "$OS_ARCH" != "Darwin" -a \
- "$OS_ARCH" != "SunOS" -a \
- "$OS_ARCH" != "WINNT"; then
- AC_MSG_ERROR([Necko WiFi scanning not supported on your platform, use --disable-necko-wifi])
-fi
-
-if test "$NECKO_WIFI"; then
- AC_DEFINE(NECKO_WIFI)
- _NON_GLOBAL_ACDEFINES="$_NON_GLOBAL_ACDEFINES NECKO_WIFI"
-fi
-AC_SUBST(NECKO_WIFI)
-
-dnl
-dnl option to disable cookies
-dnl
-MOZ_ARG_DISABLE_BOOL(cookies,
-[ --disable-cookies Disable cookie support],
- NECKO_COOKIES=,
- NECKO_COOKIES=1)
-AC_SUBST(NECKO_COOKIES)
-if test "$NECKO_COOKIES"; then
- AC_DEFINE(NECKO_COOKIES)
- _NON_GLOBAL_ACDEFINES="$_NON_GLOBAL_ACDEFINES NECKO_COOKIES"
-fi
-
-dnl
-dnl Build jsctypes on the platforms we can, unless it's explicitly disabled.
-dnl
-MOZ_ARG_DISABLE_BOOL(ctypes,
-[ --disable-ctypes Disable js-ctypes],
- BUILD_CTYPES=,
- BUILD_CTYPES=1)
-AC_SUBST(BUILD_CTYPES)
-if test "$BUILD_CTYPES"; then
- AC_DEFINE(BUILD_CTYPES)
-fi
-
-dnl Build Places if required
-if test "$MOZ_PLACES"; then
- AC_DEFINE(MOZ_PLACES)
-fi
-
-dnl Build SocialAPI if required
-if test "$MOZ_SOCIAL"; then
- AC_DEFINE(MOZ_SOCIAL)
-fi
-
-dnl Build Common JS modules provided by services.
-AC_SUBST(MOZ_SERVICES_COMMON)
-if test -n "$MOZ_SERVICES_COMMON"; then
- AC_DEFINE(MOZ_SERVICES_COMMON)
-fi
-
-dnl Build Services crypto component (used by Sync)
-AC_SUBST(MOZ_SERVICES_CRYPTO)
-if test -n "$MOZ_SERVICES_CRYPTO"; then
- AC_DEFINE(MOZ_SERVICES_CRYPTO)
-fi
-
-dnl Build Firefox Health Reporter Service
-AC_SUBST(MOZ_SERVICES_HEALTHREPORT)
-if test -n "$MOZ_SERVICES_HEALTHREPORT"; then
- AC_DEFINE(MOZ_SERVICES_HEALTHREPORT)
-fi
-
-dnl Build Services metrics component
-AC_SUBST(MOZ_SERVICES_METRICS)
-if test -n "$MOZ_SERVICES_METRICS"; then
- AC_DEFINE(MOZ_SERVICES_METRICS)
-fi
-
-dnl Build Notifications if required
-AC_SUBST(MOZ_SERVICES_NOTIFICATIONS)
-if test -n "$MOZ_SERVICES_NOTIFICATIONS"; then
- AC_DEFINE(MOZ_SERVICES_NOTIFICATIONS)
-fi
-
-dnl Build Sync Services if required
-AC_SUBST(MOZ_SERVICES_SYNC)
-if test -n "$MOZ_SERVICES_SYNC"; then
- AC_DEFINE(MOZ_SERVICES_SYNC)
-fi
-
-dnl Build Captive Portal Detector if required
-AC_SUBST(MOZ_CAPTIVEDETECT)
-if test -n "$MOZ_CAPTIVEDETECT"; then
- AC_DEFINE(MOZ_CAPTIVEDETECT)
-fi
-
-dnl Build WBMP decoder if required
-AC_SUBST(MOZ_WBMP)
-if test -n "$MOZ_WBMP"; then
- AC_DEFINE(MOZ_WBMP)
-fi
-
-dnl ========================================================
-if test "$MOZ_DEBUG" -o "$NS_TRACE_MALLOC" -o "$MOZ_DMD"; then
- MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS=
-fi
-
-if test "$MOZ_APP_COMPONENT_INCLUDE"; then
- AC_DEFINE_UNQUOTED(MOZ_APP_COMPONENT_INCLUDE, "$MOZ_APP_COMPONENT_INCLUDE")
-fi
-
-if test "$MOZ_APP_COMPONENT_MODULES"; then
- AC_DEFINE_UNQUOTED(MOZ_APP_COMPONENT_MODULES, $MOZ_APP_COMPONENT_MODULES)
-fi
-
-dnl ========================================================
-dnl =
-dnl = Maintainer debug option (no --enable equivalent)
-dnl =
-dnl ========================================================
-
-AC_SUBST(AR)
-AC_SUBST(AR_FLAGS)
-AC_SUBST(AR_LIST)
-AC_SUBST(AR_EXTRACT)
-AC_SUBST(AR_DELETE)
-AC_SUBST(AS)
-AC_SUBST(ASFLAGS)
-AC_SUBST(AS_DASH_C_FLAG)
-AC_SUBST(LD)
-AC_SUBST(RC)
-AC_SUBST(RCFLAGS)
-AC_SUBST(MC)
-AC_SUBST(WINDRES)
-AC_SUBST(IMPLIB)
-AC_SUBST(FILTER)
-AC_SUBST(BIN_FLAGS)
-AC_SUBST(MOZ_WIDGET_TOOLKIT)
-AC_SUBST(MOZ_UPDATE_XTERM)
-AC_SUBST(MOZ_PLATFORM_MAEMO)
-AC_SUBST(MOZ_AUTH_EXTENSION)
-AC_SUBST(MOZ_PERMISSIONS)
-AC_SUBST(MOZ_PREF_EXTENSIONS)
-AC_SUBST(MOZ_JS_LIBS)
-AC_SUBST(MOZ_PSM)
-AC_SUBST(MOZ_DEBUG)
-AC_SUBST(MOZ_DEBUG_SYMBOLS)
-AC_SUBST(MOZ_DEBUG_ENABLE_DEFS)
-AC_SUBST(MOZ_DEBUG_DISABLE_DEFS)
-AC_SUBST(MOZ_DEBUG_FLAGS)
-AC_SUBST(MOZ_DEBUG_LDFLAGS)
-AC_SUBST(WARNINGS_AS_ERRORS)
-AC_SUBST(MOZ_EXTENSIONS)
-AC_SUBST(MOZ_JSDEBUGGER)
-AC_SUBST(MOZ_ENABLE_PROFILER_SPS)
-AC_SUBST(MOZ_JPROF)
-AC_SUBST(MOZ_SHARK)
-AC_SUBST(MOZ_INSTRUMENTS)
-AC_SUBST(MOZ_CALLGRIND)
-AC_SUBST(MOZ_VTUNE)
-AC_SUBST(MOZ_PROFILING)
-AC_SUBST(LIBICONV)
-AC_SUBST(MOZ_PLACES)
-AC_SUBST(MOZ_SOCIAL)
-AC_SUBST(MOZ_TOOLKIT_SEARCH)
-AC_SUBST(MOZ_FEEDS)
-AC_SUBST(NS_PRINTING)
-AC_SUBST(MOZ_WEBGL)
-AC_SUBST(MOZ_HELP_VIEWER)
-AC_SUBST(TOOLCHAIN_PREFIX)
-
-AC_SUBST(JAVA)
-AC_SUBST(JAVAC)
-AC_SUBST(JAVAH)
-AC_SUBST(JAR)
-
-AC_SUBST(MOZ_PROFILELOCKING)
-
-AC_SUBST(ENABLE_TESTS)
-AC_SUBST(ENABLE_MARIONETTE)
-AC_SUBST(IBMBIDI)
-AC_SUBST(MOZ_UNIVERSALCHARDET)
-AC_SUBST(ACCESSIBILITY)
-AC_SUBST(MOZ_SPELLCHECK)
-AC_SUBST(MOZ_ANDROID_OMTC)
-AC_SUBST(MOZ_ANDROID_ANR_REPORTER)
-AC_SUBST(MOZ_ONLY_TOUCH_EVENTS)
-AC_SUBST(MOZ_CRASHREPORTER)
-AC_SUBST(MOZ_CRASHREPORTER_INJECTOR)
-AC_SUBST(MOZ_CRASHREPORTER_UPLOAD_FULL_SYMBOLS)
-AC_SUBST(MOZ_MAINTENANCE_SERVICE)
-AC_SUBST(MOZ_STUB_INSTALLER)
-AC_SUBST(MOZ_VERIFY_MAR_SIGNATURE)
-AC_SUBST(MOZ_ENABLE_SIGNMAR)
-AC_SUBST(MOZ_UPDATER)
-AC_SUBST(MOZ_ANGLE_RENDERER)
-AC_SUBST(MOZ_DIRECTX_SDK_PATH)
-AC_SUBST(MOZ_DIRECTX_SDK_CPU_SUFFIX)
-AC_SUBST(MOZ_D3DX9_VERSION)
-AC_SUBST(MOZ_D3DCOMPILER_CAB)
-AC_SUBST(MOZ_D3DCOMPILER_DLL)
-AC_SUBST(MOZ_METRO)
-
-AC_SUBST(MOZ_ANDROID_HISTORY)
-AC_SUBST(MOZ_WEBSMS_BACKEND)
-AC_SUBST(MOZ_ANDROID_WALLPAPER)
-AC_SUBST(MOZ_ANDROID_BEAM)
-AC_SUBST(ENABLE_STRIP)
-AC_SUBST(PKG_SKIP_STRIP)
-AC_SUBST(STRIP_FLAGS)
-AC_SUBST(USE_ELF_DYNSTR_GC)
-AC_SUBST(USE_ELF_HACK)
-AC_SUBST(INCREMENTAL_LINKER)
-AC_SUBST(MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS)
-AC_SUBST(MOZ_COMPONENT_NSPR_LIBS)
-
-AC_SUBST(MOZ_FIX_LINK_PATHS)
-AC_SUBST(XPCOM_LIBS)
-AC_SUBST(XPCOM_FROZEN_LDOPTS)
-AC_SUBST(XPCOM_GLUE_LDOPTS)
-AC_SUBST(XPCOM_STANDALONE_GLUE_LDOPTS)
-AC_SUBST(XPCOM_STATICRUNTIME_GLUE_LDOPTS)
-AC_SUBST(XPCOM_STANDALONE_STATICRUNTIME_GLUE_LDOPTS)
-
-AC_SUBST(USE_DEPENDENT_LIBS)
-
-AC_SUBST(MOZ_BUILD_ROOT)
-AC_SUBST(MOZ_OS2_TOOLS)
-
-AC_SUBST(MOZ_POST_DSO_LIB_COMMAND)
-AC_SUBST(MOZ_POST_PROGRAM_COMMAND)
-AC_SUBST(MOZ_LINKER_EXTRACT)
-
-dnl ========================================================
-dnl = Mac bundle name prefix
-dnl ========================================================
-MOZ_ARG_WITH_STRING(macbundlename-prefix,
-[ --with-macbundlename-prefix=prefix
- Prefix for MOZ_MACBUNDLE_NAME],
-[ MOZ_MACBUNDLE_NAME_PREFIX="$withval"])
-
-MOZ_MACBUNDLE_NAME=`echo $MOZ_APP_DISPLAYNAME | tr -d ' '`
-if test "$MOZ_MACBUNDLE_NAME_PREFIX"; then
- MOZ_MACBUNDLE_NAME="${MOZ_MACBUNDLE_NAME_PREFIX}${MOZ_MACBUNDLE_NAME}"
-fi
-
-if test "$MOZ_DEBUG"; then
- MOZ_MACBUNDLE_NAME=${MOZ_MACBUNDLE_NAME}Debug.app
-else
- MOZ_MACBUNDLE_NAME=${MOZ_MACBUNDLE_NAME}.app
-fi
-AC_SUBST(MOZ_MACBUNDLE_NAME)
-
-dnl Mac bundle identifier (based on MOZ_APP_DISPLAYNAME)
-MOZ_MACBUNDLE_ID=`echo $MOZ_APP_DISPLAYNAME | tr '[A-Z]' '[a-z]'`
-MOZ_MACBUNDLE_ID=${MOZ_DISTRIBUTION_ID}.${MOZ_MACBUNDLE_ID}
-if test "$MOZ_DEBUG"; then
- MOZ_MACBUNDLE_ID=${MOZ_MACBUNDLE_ID}debug
-fi
-
-AC_DEFINE_UNQUOTED(MOZ_MACBUNDLE_ID,$MOZ_MACBUNDLE_ID)
-AC_SUBST(MOZ_MACBUNDLE_ID)
-
-dnl ========================================================
-dnl = Child Process Name for IPC
-dnl ========================================================
-if test "$MOZ_WIDGET_TOOLKIT" != "android"; then
- MOZ_CHILD_PROCESS_NAME="plugin-container${BIN_SUFFIX}"
-else
- # We want to let Android unpack the file at install time, but it only does
- # so if the file is named libsomething.so. The lib/ path is also required
- # because the unpacked file will be under the lib/ subdirectory and will
- # need to be executed from that path.
- MOZ_CHILD_PROCESS_NAME="lib/libplugin-container.so"
-fi
-MOZ_CHILD_PROCESS_BUNDLE="plugin-container.app/Contents/MacOS/"
-
-AC_SUBST(MOZ_CHILD_PROCESS_NAME)
-AC_SUBST(MOZ_CHILD_PROCESS_BUNDLE)
-
-# The following variables are available to branding and application
-# configuration ($BRANDING/configure.sh and $APPLICATION/confvars.sh):
-# - MOZ_APP_VENDOR: Used for application.ini's "Vendor" field, which also
-# impacts profile location and user-visible fields.
-# - MOZ_APP_BASENAME: Typically stays consistent for multiple branded
-# versions of a given application (e.g. Aurora and Firefox both use
-# "Firefox"), but may vary for full rebrandings (e.g. Iceweasel). Used
-# for application.ini's "Name" field, which controls profile location in
-# the absence of a "Profile" field (see below), and various system
-# integration hooks (Unix remoting, Windows MessageWindow name, etc.)
-# - MOZ_APP_DISPLAYNAME: Used in user-visible fields (DLL properties,
-# Mac Bundle name, Updater, Installer), it is typically used for nightly
-# builds (e.g. Aurora for Firefox).
-# - MOZ_APP_VERSION: Defines the application version number.
-# - MOZ_APP_NAME: Used for e.g. the binary program file name. If not set,
-# defaults to a lowercase form of MOZ_APP_BASENAME.
-# - MOZ_APP_PROFILE: When set, used for application.ini's
-# "Profile" field, which controls profile location.
-# - MOZ_APP_ID: When set, used for application.ini's "ID" field, and
-# crash reporter server url.
-# - MOZ_PROFILE_MIGRATOR: When set, enables profile migrator.
-# - MOZ_EXTENSION_MANAGER: When set, enabled extension manager.
-
-if test -z "$MOZ_APP_NAME"; then
- MOZ_APP_NAME=`echo $MOZ_APP_BASENAME | tr A-Z a-z`
-fi
-
-# For extensions and langpacks, we require a max version that is compatible
-# across security releases. MOZ_APP_MAXVERSION is our method for doing that.
-# 24.0a1 and 24.0a2 aren't affected
-# 24.0 becomes 24.*
-# 24.1.1 becomes 24.*
-IS_ALPHA=`echo $MOZ_APP_VERSION | grep a`
-if test -z "$IS_ALPHA"; then
- changequote(,)
- MOZ_APP_MAXVERSION=`echo $MOZ_APP_VERSION | sed "s|\(^[0-9]*\).*|\1|"`.*
- changequote([,])
-else
- MOZ_APP_MAXVERSION=$MOZ_APP_VERSION
-fi
-
-MOZ_B2G_VERSION=${MOZ_B2G_VERSION:-"1.0.0"}
-AC_DEFINE_UNQUOTED(MOZ_B2G_VERSION,"$MOZ_B2G_VERSION")
-AC_DEFINE_UNQUOTED(MOZ_B2G_OS_NAME,"$MOZ_B2G_OS_NAME")
-
-AC_SUBST(MOZ_APP_NAME)
-AC_SUBST(MOZ_APP_DISPLAYNAME)
-AC_SUBST(MOZ_APP_BASENAME)
-AC_SUBST(MOZ_APP_VENDOR)
-AC_SUBST(MOZ_APP_PROFILE)
-AC_SUBST(MOZ_APP_ID)
-AC_SUBST(MAR_CHANNEL_ID)
-AC_SUBST(ACCEPTED_MAR_CHANNEL_IDS)
-AC_SUBST(MOZ_PROFILE_MIGRATOR)
-AC_SUBST(MOZ_EXTENSION_MANAGER)
-AC_DEFINE_UNQUOTED(MOZ_APP_UA_NAME, "$MOZ_APP_UA_NAME")
-AC_SUBST(MOZ_APP_UA_NAME)
-AC_DEFINE_UNQUOTED(MOZ_APP_UA_VERSION, "$MOZ_APP_VERSION")
-AC_SUBST(MOZ_APP_VERSION)
-AC_SUBST(MOZ_APP_MAXVERSION)
-AC_DEFINE_UNQUOTED(FIREFOX_VERSION,$FIREFOX_VERSION)
-AC_SUBST(FIREFOX_VERSION)
-AC_SUBST(MOZ_UA_OS_AGNOSTIC)
-if test -n "$MOZ_UA_OS_AGNOSTIC"; then
- AC_DEFINE(MOZ_UA_OS_AGNOSTIC)
-fi
-AC_DEFINE_UNQUOTED(MOZ_UA_BUILDID, "$MOZ_UA_BUILDID")
-AC_SUBST(MOZ_UA_BUILDID)
-
-AC_SUBST(MOZ_APP_STATIC_INI)
-
-AC_SUBST(MOZ_PKG_SPECIAL)
-
-AC_SUBST(MOZILLA_OFFICIAL)
-
-AC_DEFINE_UNQUOTED(MOZ_TELEMETRY_DISPLAY_REV, 2)
-AC_SUBST(MOZ_TELEMETRY_DISPLAY_REV)
-
-if test "$MOZ_TELEMETRY_REPORTING"; then
- AC_DEFINE(MOZ_TELEMETRY_REPORTING)
-
- # Enable Telemetry by default for nightly and aurora channels
- if test "$MOZ_UPDATE_CHANNEL" = "nightly" -o \
- "$MOZ_UPDATE_CHANNEL" = "aurora"; then
- AC_DEFINE(MOZ_TELEMETRY_ON_BY_DEFAULT)
- fi
-fi
-
-dnl If we have any service that uploads data (and requires data submission
-dnl policy alert), set MOZ_DATA_REPORTING.
-dnl We need SUBST for build system and DEFINE for xul preprocessor.
-if test -n "$MOZ_TELEMETRY_REPORTING" || test -n "$MOZ_SERVICES_HEALTHREPORT" || test -n "$MOZ_CRASHREPORTER"; then
- MOZ_DATA_REPORTING=1
- AC_DEFINE(MOZ_DATA_REPORTING)
- AC_SUBST(MOZ_DATA_REPORTING)
-fi
-
-dnl win32 options
-AC_SUBST(MOZ_MAPINFO)
-AC_SUBST(MOZ_BROWSE_INFO)
-AC_SUBST(MOZ_TOOLS_DIR)
-AC_SUBST(WIN32_REDIST_DIR)
-AC_SUBST(MAKENSISU)
-
-dnl Echo the CFLAGS to remove extra whitespace.
-CFLAGS=`echo \
- $_WARNINGS_CFLAGS \
- $CFLAGS`
-
-CXXFLAGS=`echo \
- $_WARNINGS_CXXFLAGS \
- $CXXFLAGS`
-
-COMPILE_CFLAGS=`echo \
- $_DEFINES_CFLAGS \
- $_DEPEND_CFLAGS \
- $COMPILE_CFLAGS`
-
-COMPILE_CXXFLAGS=`echo \
- $_DEFINES_CXXFLAGS \
- $_DEPEND_CFLAGS \
- $COMPILE_CXXFLAGS`
-
-AC_SUBST(SYSTEM_LIBXUL)
-AC_SUBST(MOZ_NATIVE_JPEG)
-AC_SUBST(MOZ_NATIVE_PNG)
-AC_SUBST(MOZ_NATIVE_BZ2)
-
-AC_SUBST(MOZ_JPEG_CFLAGS)
-AC_SUBST(MOZ_JPEG_LIBS)
-AC_SUBST(MOZ_BZ2_CFLAGS)
-AC_SUBST(MOZ_BZ2_LIBS)
-AC_SUBST(MOZ_PNG_CFLAGS)
-AC_SUBST(MOZ_PNG_LIBS)
-
-AC_SUBST(NSPR_CFLAGS)
-AC_SUBST(NSPR_LIBS)
-AC_SUBST(MOZ_NATIVE_NSPR)
-
-AC_SUBST(NSS_CFLAGS)
-AC_SUBST(NSS_LIBS)
-AC_SUBST(MOZ_NATIVE_NSS)
-AC_SUBST(NSS_DISABLE_DBM)
-
-OS_CFLAGS="$CFLAGS"
-OS_CXXFLAGS="$CXXFLAGS"
-OS_CPPFLAGS="$CPPFLAGS"
-OS_COMPILE_CFLAGS="$COMPILE_CFLAGS"
-OS_COMPILE_CXXFLAGS="$COMPILE_CXXFLAGS"
-OS_LDFLAGS="$LDFLAGS"
-OS_LIBS="$LIBS"
-AC_SUBST(OS_CFLAGS)
-AC_SUBST(OS_CXXFLAGS)
-AC_SUBST(OS_CPPFLAGS)
-AC_SUBST(OS_COMPILE_CFLAGS)
-AC_SUBST(OS_COMPILE_CXXFLAGS)
-AC_SUBST(OS_LDFLAGS)
-AC_SUBST(OS_LIBS)
-AC_SUBST(CROSS_COMPILE)
-AC_SUBST(WCHAR_CFLAGS)
-
-AC_SUBST(HOST_CC)
-AC_SUBST(HOST_CXX)
-AC_SUBST(HOST_CFLAGS)
-AC_SUBST(HOST_CXXFLAGS)
-AC_SUBST(HOST_LDFLAGS)
-AC_SUBST(HOST_OPTIMIZE_FLAGS)
-AC_SUBST(HOST_AR)
-AC_SUBST(HOST_AR_FLAGS)
-AC_SUBST(HOST_LD)
-AC_SUBST(HOST_RANLIB)
-AC_SUBST(HOST_NSPR_MDCPUCFG)
-AC_SUBST(HOST_BIN_SUFFIX)
-AC_SUBST(HOST_OS_ARCH)
-
-AC_SUBST(TARGET_CPU)
-AC_SUBST(TARGET_VENDOR)
-AC_SUBST(TARGET_OS)
-AC_SUBST(TARGET_NSPR_MDCPUCFG)
-AC_SUBST(TARGET_MD_ARCH)
-AC_SUBST(TARGET_XPCOM_ABI)
-AC_SUBST(OS_TARGET)
-AC_SUBST(OS_ARCH)
-AC_SUBST(OS_RELEASE)
-AC_SUBST(OS_TEST)
-AC_SUBST(CPU_ARCH)
-AC_SUBST(INTEL_ARCHITECTURE)
-
-AC_SUBST(MOZ_CHROME_FILE_FORMAT)
-
-AC_SUBST(WRAP_LDFLAGS)
-AC_SUBST(MKSHLIB)
-AC_SUBST(MKCSHLIB)
-AC_SUBST(MKSHLIB_FORCE_ALL)
-AC_SUBST(MKSHLIB_UNFORCE_ALL)
-AC_SUBST(DSO_CFLAGS)
-AC_SUBST(DSO_PIC_CFLAGS)
-AC_SUBST(DSO_LDOPTS)
-AC_SUBST(LIB_PREFIX)
-AC_SUBST(DLL_PREFIX)
-AC_SUBST(DLL_SUFFIX)
-AC_DEFINE_UNQUOTED(MOZ_DLL_SUFFIX, "$DLL_SUFFIX")
-AC_SUBST(LIB_SUFFIX)
-AC_SUBST(OBJ_SUFFIX)
-AC_SUBST(BIN_SUFFIX)
-AC_SUBST(ASM_SUFFIX)
-AC_SUBST(IMPORT_LIB_SUFFIX)
-AC_SUBST(USE_N32)
-AC_SUBST(CC_VERSION)
-AC_SUBST(CXX_VERSION)
-AC_SUBST(MSMANIFEST_TOOL)
-AC_SUBST(NS_ENABLE_TSF)
-AC_SUBST(MOZ_NSS_PATCH)
-AC_SUBST(MOZ_APP_COMPONENT_LIBS)
-AC_SUBST(MOZ_APP_EXTRA_LIBS)
-
-AC_SUBST(MOZ_SPEEX_RESAMPLER)
-AC_SUBST(MOZ_SOUNDTOUCH)
-AC_SUBST(MOZ_CUBEB)
-AC_SUBST(MOZ_WAVE)
-AC_SUBST(MOZ_VORBIS)
-AC_SUBST(MOZ_TREMOR)
-AC_SUBST(MOZ_OPUS)
-AC_SUBST(MOZ_WEBM)
-AC_SUBST(MOZ_DASH)
-AC_SUBST(MOZ_WMF)
-AC_SUBST(MOZ_MEDIA_PLUGINS)
-AC_SUBST(MOZ_OMX_PLUGIN)
-AC_SUBST(MOZ_VP8_ERROR_CONCEALMENT)
-AC_SUBST(MOZ_VP8_ENCODER)
-AC_SUBST(MOZ_VP8)
-AC_SUBST(MOZ_OGG)
-AC_SUBST(VPX_AS)
-AC_SUBST(VPX_ASFLAGS)
-AC_SUBST(VPX_DASH_C_FLAG)
-AC_SUBST(VPX_AS_CONVERSION)
-AC_SUBST(VPX_ASM_SUFFIX)
-AC_SUBST(VPX_X86_ASM)
-AC_SUBST(VPX_ARM_ASM)
-AC_SUBST(VPX_NEED_OBJ_INT_EXTRACT)
-AC_SUBST(MOZ_INSTRUMENT_EVENT_LOOP)
-AC_SUBST(LIBJPEG_TURBO_AS)
-AC_SUBST(LIBJPEG_TURBO_ASFLAGS)
-AC_SUBST(LIBJPEG_TURBO_X86_ASM)
-AC_SUBST(LIBJPEG_TURBO_X64_ASM)
-AC_SUBST(LIBJPEG_TURBO_ARM_ASM)
-
-AC_SUBST(MOZ_PACKAGE_JSSHELL)
-AC_SUBST(MOZ_FOLD_LIBS)
-
-AC_SUBST(MOZ_ENABLE_SZIP)
-AC_SUBST(MOZ_SZIP_FLAGS)
-
-AC_MSG_CHECKING([for posix_fallocate])
-AC_TRY_LINK([#define _XOPEN_SOURCE 600
- #include <fcntl.h>],
- [posix_fallocate(0, 0, 0);],
- [ac_cv___posix_fallocate=true],
- [ac_cv___posix_fallocate=false])
-
-if test "$ac_cv___posix_fallocate" = true ; then
- AC_DEFINE(HAVE_POSIX_FALLOCATE)
- AC_MSG_RESULT(yes)
-else
- AC_MSG_RESULT(no)
-fi
-
-dnl Check for missing components
-if test "$COMPILE_ENVIRONMENT"; then
-if test "$MOZ_X11"; then
- if test "$WITHOUT_X11"; then
- AC_MSG_ERROR([--without-x specified and MOZ_X11 still defined])
- fi
- dnl ====================================================
- dnl = Check if X headers exist
- dnl ====================================================
- _SAVE_CFLAGS=$CFLAGS
- CFLAGS="$CFLAGS $XCFLAGS"
- AC_TRY_COMPILE([
- #include <stdio.h>
- #include <stdlib.h>
- #include <X11/Xlib.h>
- #include <X11/Intrinsic.h>
- #include <X11/extensions/XShm.h>
- ],
- [
- Display *dpy = 0;
- if ((dpy = XOpenDisplay(NULL)) == NULL) {
- fprintf(stderr, ": can't open %s\n", XDisplayName(NULL));
- exit(1);
- }
- ], [],
- [ AC_MSG_ERROR([Could not compile basic X program.]) ])
- CFLAGS="$_SAVE_CFLAGS"
-
- if test -n "$MISSING_X"; then
- AC_MSG_ERROR([ Could not find the following X libraries: $MISSING_X ]);
- fi
-
-fi # MOZ_X11
-
-dnl Check for headers, etc. needed by WebGL.
-if test "$MOZ_GL_DEFAULT_PROVIDER" = "GLX"; then
- MOZ_CHECK_HEADER(GL/glx.h)
- if test "$ac_cv_header_GL_glx_h" != "yes"; then
- AC_MSG_ERROR([Can't find header GL/glx.h for WebGL (install mesa-common-dev (Ubuntu), mesa-libGL-devel (Fedora), or Mesa-devel (openSUSE))])
- fi
-fi # MOZ_GL_DEFAULT_PROVIDER=GLX
-fi # COMPILE_ENVIRONMENT
-
-dnl Set various defines and substitutions
-dnl ========================================================
-
-if test "$OS_ARCH" = "Darwin"; then
- AC_DEFINE(XP_UNIX)
-elif test "$OS_ARCH" != "WINNT" -a "$OS_ARCH" != "OS2"; then
- AC_DEFINE(XP_UNIX)
-fi
-
-if test "$MOZ_DEBUG"; then
- AC_DEFINE(MOZ_REFLOW_PERF)
- AC_DEFINE(MOZ_REFLOW_PERF_DSP)
-fi
-
-if test "$ACCESSIBILITY" -a "$MOZ_ENABLE_GTK" ; then
- AC_DEFINE(MOZ_ACCESSIBILITY_ATK)
- ATK_FULL_VERSION=`$PKG_CONFIG --modversion atk`
- ATK_MAJOR_VERSION=`echo ${ATK_FULL_VERSION} | $AWK -F\. '{ print $1 }'`
- ATK_MINOR_VERSION=`echo ${ATK_FULL_VERSION} | $AWK -F\. '{ print $2 }'`
- ATK_REV_VERSION=`echo ${ATK_FULL_VERSION} | $AWK -F\. '{ print $3 }'`
- AC_DEFINE_UNQUOTED(ATK_MAJOR_VERSION, $ATK_MAJOR_VERSION)
- AC_DEFINE_UNQUOTED(ATK_MINOR_VERSION, $ATK_MINOR_VERSION)
- AC_DEFINE_UNQUOTED(ATK_REV_VERSION, $ATK_REV_VERSION)
-fi
-
-AC_SUBST(MOZILLA_VERSION)
-
-AC_SUBST(ac_configure_args)
-
-dnl Spit out some output
-dnl ========================================================
-
-dnl The following defines are used by xpcom
-_NON_GLOBAL_ACDEFINES="$_NON_GLOBAL_ACDEFINES
-CPP_THROW_NEW
-HAVE_CPP_2BYTE_WCHAR_T
-HAVE_CPP_AMBIGUITY_RESOLVING_USING
-HAVE_CPP_CHAR16_T
-HAVE_CPP_DYNAMIC_CAST_TO_VOID_PTR
-HAVE_CPP_PARTIAL_SPECIALIZATION
-HAVE_CPP_TROUBLE_COMPARING_TO_ZERO
-NEED_CPP_UNUSED_IMPLEMENTATIONS
-NEW_H
-HAVE_GETPAGESIZE
-HAVE_ICONV
-HAVE_ICONV_WITH_CONST_INPUT
-HAVE_MBRTOWC
-HAVE_WCRTOMB
-HAVE_STATVFS64
-HAVE_STATVFS
-HAVE_STATFS64
-HAVE_STATFS
-HAVE_SYS_STATVFS_H
-HAVE_SYS_STATFS_H
-HAVE_SYS_VFS_H
-HAVE_SYS_MOUNT_H
-"
-
-# FUTURE? Consider moving all these to moz.build files.
-AC_CONFIG_HEADER(
-netwerk/necko-config.h
-xpcom/xpcom-config.h
-xpcom/xpcom-private.h
-)
-
-AC_OUTPUT([mozilla-config.h])
-
-# Hack around an Apple bug that affects the egrep that comes with OS X 10.7.
-# "env ARCHPREFERENCE=i386,x86_64 arch egrep" first tries to use the 32-bit
-# Intel part of the egrep fat binary, even on 64-bit systems, and falls back on
-# the 64-bit part if it's not a fat binary, as can happen with MacPorts. We
-# (apparently) only need this hack when egrep's "pattern" is particularly long
-# (as in the following code) and the first egrep on our $PATH is Apple's. See
-# bug 655339.
-case "$host" in
-*-apple-darwin11*)
- FIXED_EGREP="env ARCHPREFERENCE=i386,x86_64 arch egrep"
- ;;
-*)
- FIXED_EGREP="egrep"
- ;;
-esac
-
-# Generate Makefiles for WebRTC directly from .gyp files
-if test "${OS_TARGET}" = "WINNT"; then
- if test "$HAVE_64BIT_OS"; then
- OS_BITS=64
- else
- OS_BITS=32
- fi
- EXTRA_GYP_DEFINES="-D MSVS_VERSION=${_MSVS_VERSION} -D MSVS_OS_BITS=${OS_BITS}"
-
-elif test "${OS_TARGET}" = "Android"; then
- if test "${MOZ_WIDGET_TOOLKIT}" = "gonk"; then
- EXTRA_GYP_DEFINES="-G os=linux "
- else
- EXTRA_GYP_DEFINES="-D gtest_target_type=executable -D android_toolchain=${android_toolchain} -G os=android "
- fi
-fi
-
-if test -n "$ARM_ARCH"; then
- if test "$ARM_ARCH" -lt 7; then
- EXTRA_GYP_DEFINES="${EXTRA_GYP_DEFINES} -D armv7=0 "
- else
- if test "${OS_TARGET}" = "Android"; then
- EXTRA_GYP_DEFINES="${EXTRA_GYP_DEFINES} -D armv7=1 "
- else
- dnl CPU detection for ARM works on Android only. armv7 always uses CPU detection, so
- dnl we have to set armv7=0 for non-Android target
- EXTRA_GYP_DEFINES="${EXTRA_GYP_DEFINES} -D armv7=0 "
- fi
- fi
-fi
-
-# Keep libcubeb and audio_device backends in sync
-if test -n "$MOZ_ALSA"; then
- EXTRA_GYP_DEFINES="$EXTRA_GYP_DEFINES -D include_alsa_audio=1"
-else
- EXTRA_GYP_DEFINES="$EXTRA_GYP_DEFINES -D include_alsa_audio=0"
-fi
-if test -n "$MOZ_PULSEAUDIO"; then
- EXTRA_GYP_DEFINES="$EXTRA_GYP_DEFINES -D include_pulse_audio=1"
-else
- EXTRA_GYP_DEFINES="$EXTRA_GYP_DEFINES -D include_pulse_audio=0"
-fi
-
-# Don't try to compile ssse3/sse4.1 code if toolchain doesn't support
-if test -z "$HAVE_TOOLCHAIN_SUPPORT_SSSE3" || test -z "$HAVE_TOOLCHAIN_SUPPORT_MSSE4_1"; then
- EXTRA_GYP_DEFINES="$EXTRA_GYP_DEFINES -D yuv_disable_asm=1"
-fi
-
-if test -n "$MOZ_WEBRTC"; then
- AC_MSG_RESULT("generating WebRTC Makefiles...")
-
- if test "${MOZ_WIDGET_TOOLKIT}" = "gonk"; then
- EXTRA_GYP_DEFINES="${EXTRA_GYP_DEFINES} -D build_with_gonk=1 -D include_internal_audio_device=0"
- fi
-
-dnl Any --include files must also appear in -D FORCED_INCLUDE_FILE= entries
-dnl so that regeneration via dependencies works correctly
- WEBRTC_CONFIG="-D build_with_mozilla=1 -D build_with_chromium=0 --include ${srcdir}/media/webrtc/webrtc_config.gypi -D FORCED_INCLUDE_FILE=${srcdir}/media/webrtc/webrtc_config.gypi"
-
- if test -n HAVE_CLOCK_MONOTONIC; then
- WEBRTC_CONFIG="${WEBRTC_CONFIG} -D have_clock_monotonic=1"
- else
- WEBRTC_CONFIG="${WEBRTC_CONFIG} -D have_clock_monotonic=0"
- fi
-
- GYP_WEBRTC_OPTIONS="--format=mozmake ${WEBRTC_CONFIG} -D target_arch=${WEBRTC_TARGET_ARCH} ${EXTRA_GYP_DEFINES} --depth=${srcdir}/media/webrtc/trunk --toplevel-dir=${srcdir} -G OBJDIR=${_objdir}"
-
- $PYTHON ${srcdir}/media/webrtc/trunk/build/gyp_chromium \
- $GYP_WEBRTC_OPTIONS \
- --generator-output=${_objdir}/media/webrtc/trunk \
- ${srcdir}/media/webrtc/trunk/peerconnection.gyp
- if test "$?" != 0; then
- AC_MSG_ERROR([failed to generate WebRTC Makefiles])
- fi
-
- # XXX disable until we land the tranche with signaling
- if test -n "$MOZ_WEBRTC_SIGNALING"; then
- AC_MSG_RESULT("generating WebRTC/Signaling Makefiles...")
- $PYTHON ${srcdir}/media/webrtc/trunk/build/gyp_chromium \
- $GYP_WEBRTC_OPTIONS \
- -D build_for_test=0 \
- --generator-output=${_objdir}/media/webrtc/signaling \
- ${srcdir}/media/webrtc/signaling/signaling.gyp
- if test "$?" != 0; then
- AC_MSG_ERROR([failed to generate WebRTC/Signaling Makefiles])
- fi
-
- AC_MSG_RESULT("generating WebRTC/SignalingTest Makefiles...")
- $PYTHON ${srcdir}/media/webrtc/trunk/build/gyp_chromium --format=mozmake \
- $GYP_WEBRTC_OPTIONS \
- -D build_for_test=1 \
- --generator-output=${_objdir}/media/webrtc/signalingtest \
- ${srcdir}/media/webrtc/signaling/signaling.gyp
- if test "$?" != 0; then
- AC_MSG_ERROR([failed to generate WebRTC/SignalingTest Makefiles])
- fi
- fi
-
- AC_MSG_RESULT("generating gtest Makefiles...")
- # Ok to pass some extra -D's that are ignored here
- $PYTHON ${srcdir}/media/webrtc/trunk/build/gyp_chromium \
- $GYP_WEBRTC_OPTIONS \
- --generator-output=${_objdir}/media/webrtc/trunk/testing/ \
- ${srcdir}/media/webrtc/trunk/testing/gtest.gyp
- if test "$?" != 0; then
- AC_MSG_ERROR([failed to generate gtest Makefiles])
- fi
-
- AC_MSG_RESULT("generating nrappkit Makefiles...")
- $PYTHON ${srcdir}/media/webrtc/trunk/build/gyp_chromium --format=mozmake \
- $GYP_WEBRTC_OPTIONS \
- --generator-output=${_objdir}/media/mtransport/third_party/nrappkit \
- ${srcdir}/media/mtransport/third_party/nrappkit/nrappkit.gyp
- if test "$?" != 0; then
- AC_MSG_ERROR([failed to generate nrappkit Makefiles])
- fi
-
- AC_MSG_RESULT("generating nICEr Makefiles...")
- $PYTHON ${srcdir}/media/webrtc/trunk/build/gyp_chromium --format=mozmake \
- $GYP_WEBRTC_OPTIONS \
- --generator-output=${_objdir}/media/mtransport/third_party/nICEr \
- ${srcdir}/media/mtransport/third_party/nICEr/nicer.gyp
- if test "$?" != 0; then
- AC_MSG_ERROR([failed to generate nICEr Makefiles])
- fi
-fi
-
-# Generate a JSON config file for unittest harnesses etc to read
-# build configuration details from in a standardized way.
-OS_TARGET=${OS_TARGET} \
-TARGET_CPU=${TARGET_CPU} \
-MOZ_DEBUG=${MOZ_DEBUG} \
-MOZ_WIDGET_TOOLKIT=${MOZ_WIDGET_TOOLKIT} \
-UNIVERSAL_BINARY=${UNIVERSAL_BINARY} \
-MOZ_CRASHREPORTER=${MOZ_CRASHREPORTER} \
-MOZ_APP_NAME=${MOZ_APP_NAME} \
-TOPSRCDIR=${_topsrcdir} \
-MOZ_ASAN=${MOZ_ASAN} \
- $PYTHON ${_topsrcdir}/config/writemozinfo.py ./mozinfo.json.tmp
-if cmp -s ./mozinfo.json.tmp ./mozinfo.json; then
- rm ./mozinfo.json.tmp
-else
- mv -f ./mozinfo.json.tmp ./mozinfo.json
-fi
-
-# Run jemalloc configure script
-
-if test -z "$MOZ_NATIVE_JEMALLOC" -a "$MOZ_MEMORY" && test -n "$MOZ_JEMALLOC3" -o -n "$MOZ_REPLACE_MALLOC"; then
- ac_configure_args="$_SUBDIR_CONFIG_ARGS --build=$build --host=$target --enable-stats --with-jemalloc-prefix=je_"
- if test -n "$MOZ_REPLACE_MALLOC"; then
- # When using replace_malloc, we always want memalign and valloc exported from jemalloc.
- ac_configure_args="$ac_configure_args ac_cv_func_memalign=yes"
- ac_configure_args="$ac_configure_args ac_cv_func_valloc=yes"
- fi
- if test -n "$MOZ_JEMALLOC3"; then
- case "${OS_ARCH}" in
- WINNT|Darwin)
- # We want jemalloc functions to be kept hidden on both Mac and Windows
- # See memory/build/mozmemory_wrap.h for details.
- ac_configure_args="$ac_configure_args --without-export"
- ;;
- esac
- elif test "${OS_ARCH}" = Darwin; then
- # When building as a replace-malloc lib, disabling the zone allocator
- # forces to use pthread_atfork.
- ac_configure_args="$ac_configure_args --disable-zone-allocator"
- fi
- _MANGLE="malloc posix_memalign aligned_alloc calloc realloc free memalign valloc malloc_usable_size"
- JEMALLOC_WRAPPER=
- if test -z "$MOZ_REPLACE_MALLOC"; then
- case "$OS_ARCH" in
- Linux|DragonFly|FreeBSD|NetBSD|OpenBSD)
- MANGLE=$_MANGLE
- ;;
- esac
- elif test -z "$MOZ_JEMALLOC3"; then
- MANGLE=$_MANGLE
- JEMALLOC_WRAPPER=replace_
- fi
- if test -n "$MANGLE"; then
- MANGLED=
- if test -n "$_WRAP_MALLOC" -a -z "$JEMALLOC_WRAPPER"; then
- JEMALLOC_WRAPPER=__wrap_
- fi
- for mangle in ${MANGLE}; do
- if test -n "$MANGLED"; then
- MANGLED="$mangle:$JEMALLOC_WRAPPER$mangle,$MANGLED"
- else
- MANGLED="$mangle:$JEMALLOC_WRAPPER$mangle"
- fi
- done
- ac_configure_args="$ac_configure_args --with-mangling=$MANGLED"
- fi
- unset CONFIG_FILES
- if test -z "$MOZ_TLS"; then
- ac_configure_args="$ac_configure_args --disable-tls"
- fi
- EXTRA_CFLAGS="$CFLAGS"
- for var in AS CC CXX CPP LD AR RANLIB STRIP CPPFLAGS EXTRA_CFLAGS LDFLAGS; do
- ac_configure_args="$ac_configure_args $var='`eval echo \\${${var}}`'"
- done
- if test "$CROSS_COMPILE"; then
- ac_configure_args="$ac_configure_args je_cv_static_page_shift=12"
- fi
- _save_cache_file="$cache_file"
- cache_file=$_objdir/memory/jemalloc/src/config.cache
-
- if ! test -e memory/jemalloc; then
- mkdir -p memory/jemalloc
- fi
-
- AC_OUTPUT_SUBDIRS(memory/jemalloc/src)
- cache_file="$_save_cache_file"
- ac_configure_args="$_SUBDIR_CONFIG_ARGS"
-fi
-
-# Run freetype configure script
-
-if test "$MOZ_TREE_FREETYPE"; then
- export CFLAGS="$CFLAGS $MOZ_DEBUG_FLAGS -std=c99"
- export CPPFLAGS="$CPPFLAGS $MOZ_DEBUG_FLAGS"
- export CXXFLAGS="$CXXFLAGS $MOZ_DEBUG_FLAGS"
- export LDFLAGS="$LDFLAGS $MOZ_DEBUG_LDFLAGS"
- export CONFIG_FILES="unix-cc.mk:unix-cc.in unix-def.mk:unix-def.in freetype-config freetype2.pc:freetype2.in"
- ac_configure_args="$ac_configure_args --host=$target --disable-shared --with-pic=yes"
-
- if ! test -e modules; then
- mkdir modules
- fi
-
- AC_OUTPUT_SUBDIRS(modules/freetype2)
-fi
-
-if test -z "$direct_nspr_config"; then
- dnl ========================================================
- dnl = Setup a nice relatively clean build environment for
- dnl = sub-configures.
- dnl ========================================================
- CC="$_SUBDIR_CC"
- CXX="$_SUBDIR_CXX"
- CFLAGS="$_SUBDIR_CFLAGS"
- CPPFLAGS="$_SUBDIR_CPPFLAGS"
- CXXFLAGS="$_SUBDIR_CXXFLAGS"
- LDFLAGS="$_SUBDIR_LDFLAGS"
- HOST_CC="$_SUBDIR_HOST_CC"
- HOST_CFLAGS="$_SUBDIR_HOST_CFLAGS"
- HOST_LDFLAGS="$_SUBDIR_HOST_LDFLAGS"
- RC=
-fi
-
-unset MAKEFILES
-unset CONFIG_FILES
-
-# Run all configure scripts specified by a subconfigure
-if test -n "$_subconfigure_subdir"; then
- _save_ac_configure_args="$ac_configure_args"
- ac_configure_args="$_subconfigure_config_args"
- AC_OUTPUT_SUBDIRS("$_subconfigure_subdir")
- ac_configure_args="$_save_ac_configure_args"
-fi
-
-# No need to run subconfigures when building with LIBXUL_SDK_DIR
-if test "$COMPILE_ENVIRONMENT" -a -z "$LIBXUL_SDK_DIR"; then
-
-export WRAP_LDFLAGS
-
-if test -n "$_WRAP_MALLOC"; then
- # Avoid doubling wrap malloc arguments
- _SUBDIR_CONFIG_ARGS="`echo $_SUBDIR_CONFIG_ARGS | sed -e 's/--enable-wrap-malloc *//'`"
-fi
-
-if test -z "$MOZ_NATIVE_NSPR"; then
- ac_configure_args="$_SUBDIR_CONFIG_ARGS --with-dist-prefix=$MOZ_BUILD_ROOT/dist --with-mozilla"
- if test -z "$MOZ_DEBUG"; then
- ac_configure_args="$ac_configure_args --disable-debug"
- else
- ac_configure_args="$ac_configure_args --enable-debug"
- fi
- if test "$MOZ_OPTIMIZE" = "1"; then
- ac_configure_args="$ac_configure_args --enable-optimize"
- elif test -z "$MOZ_OPTIMIZE"; then
- ac_configure_args="$ac_configure_args --disable-optimize"
- fi
- if test -n "$HAVE_64BIT_OS"; then
- ac_configure_args="$ac_configure_args --enable-64bit"
- fi
- if test -n "$USE_ARM_KUSER"; then
- ac_configure_args="$ac_configure_args --with-arm-kuser"
- fi
- ac_configure_args="$ac_configure_args $NSPR_CONFIGURE_ARGS"
-
- # Save these, so we can mess with them for the subconfigure ..
- _SAVE_CFLAGS="$CFLAGS"
- _SAVE_CPPFLAGS="$CPPFLAGS"
- _SAVE_LDFLAGS="$LDFLAGS"
-
- if test -n "$MOZ_LINKER" -a "$ac_cv_func_dladdr" = no ; then
- # dladdr is supported by the new linker, even when the system linker doesn't
- # support it. Trick nspr into using dladdr when it's not supported.
- export CPPFLAGS="-include $_topsrcdir/mozglue/linker/dladdr.h $CPPFLAGS"
- fi
- export LDFLAGS="$LDFLAGS $NSPR_LDFLAGS"
- export CFLAGS="$CFLAGS $MOZ_FRAMEPTR_FLAGS"
-
- AC_OUTPUT_SUBDIRS(nsprpub)
-
- # .. and restore them
- unset CFLAGS
- unset CPPFLAGS
- unset LDFLAGS
- CFLAGS="$_SAVE_CFLAGS"
- CPPFLAGS="$_SAVE_CPPFLAGS"
- LDFLAGS="$_SAVE_LDFLAGS"
-
- ac_configure_args="$_SUBDIR_CONFIG_ARGS"
-fi
-
-dnl ========================================================
-dnl = Setup a nice relatively clean build environment for
-dnl = sub-configures.
-dnl ========================================================
-CC="$_SUBDIR_CC"
-CXX="$_SUBDIR_CXX"
-CFLAGS="$_SUBDIR_CFLAGS"
-CPPFLAGS="$_SUBDIR_CPPFLAGS"
-CXXFLAGS="$_SUBDIR_CXXFLAGS"
-LDFLAGS="$_SUBDIR_LDFLAGS"
-HOST_CC="$_SUBDIR_HOST_CC"
-HOST_CFLAGS="$_SUBDIR_HOST_CFLAGS"
-HOST_LDFLAGS="$_SUBDIR_HOST_LDFLAGS"
-RC=
-
-if test -n "$ENABLE_CLANG_PLUGIN"; then
- ac_configure_args="$_SUBDIR_CONFIG_ARGS"
- AC_OUTPUT_SUBDIRS(build/clang-plugin)
-fi
-
-
-# Run the SpiderMonkey 'configure' script.
-dist=$MOZ_BUILD_ROOT/dist
-ac_configure_args="$_SUBDIR_CONFIG_ARGS"
-ac_configure_args="$ac_configure_args --enable-threadsafe"
-if test "$BUILD_CTYPES"; then
- # Build js-ctypes on the platforms we can.
- ac_configure_args="$ac_configure_args --enable-ctypes"
-fi
-if test -z "$JS_SHARED_LIBRARY" ; then
- ac_configure_args="$ac_configure_args --disable-shared-js"
-fi
-if test -z "$MOZ_NATIVE_NSPR"; then
- ac_configure_args="$ac_configure_args --with-nspr-cflags='$NSPR_CFLAGS'"
- ac_configure_args="$ac_configure_args --with-nspr-libs='$NSPR_LIBS'"
-fi
-ac_configure_args="$ac_configure_args --with-dist-dir=../../dist"
-ac_configure_args="$ac_configure_args --prefix=$dist"
-if test "$MOZ_MEMORY"; then
- ac_configure_args="$ac_configure_args --enable-jemalloc"
-fi
-if test -n "$MOZ_GLUE_LDFLAGS"; then
- export MOZ_GLUE_LDFLAGS
-fi
-if test -n "$MOZ_GLUE_PROGRAM_LDFLAGS"; then
- export MOZ_GLUE_PROGRAM_LDFLAGS
-fi
-if test "$MOZ_NATIVE_ZLIB" != 1 -a "$OS_ARCH" = "WINNT"; then
- MOZ_ZLIB_LIBS=
-fi
-export MOZ_NATIVE_ZLIB
-export MOZ_ZLIB_CFLAGS
-export MOZ_ZLIB_LIBS
-export MOZ_APP_NAME
-export DONT_POPULATE_VIRTUALENV=1
-export PYTHON
-export MOZILLA_CENTRAL_PATH=$_topsrcdir
-export STLPORT_CPPFLAGS
-export STLPORT_LDFLAGS
-export STLPORT_LIBS
-export JS_STANDALONE=no
-
-if ! test -e js; then
- mkdir js
-fi
-
-AC_OUTPUT_SUBDIRS(js/src)
-ac_configure_args="$_SUBDIR_CONFIG_ARGS"
-
-fi # COMPILE_ENVIRONMENT && !LIBXUL_SDK_DIR
+
+dnl -*- Mode: Autoconf; tab-width: 4; indent-tabs-mode: nil; -*-
+dnl vi: set tabstop=4 shiftwidth=4 expandtab syntax=m4:
+dnl This Source Code Form is subject to the terms of the Mozilla Public
+dnl License, v. 2.0. If a copy of the MPL was not distributed with this
+dnl file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+dnl Process this file with autoconf to produce a configure script.
+dnl ========================================================
+
+AC_PREREQ(2.13)
+AC_INIT(config/config.mk)
+AC_CONFIG_AUX_DIR(${srcdir}/build/autoconf)
+AC_CANONICAL_SYSTEM
+TARGET_CPU="${target_cpu}"
+TARGET_VENDOR="${target_vendor}"
+TARGET_OS="${target_os}"
+
+dnl ========================================================
+dnl =
+dnl = Don't change the following two lines. Doing so breaks:
+dnl =
+dnl = CFLAGS="-foo" ./configure
+dnl =
+dnl ========================================================
+CFLAGS="${CFLAGS=}"
+CPPFLAGS="${CPPFLAGS=}"
+CXXFLAGS="${CXXFLAGS=}"
+LDFLAGS="${LDFLAGS=}"
+HOST_CFLAGS="${HOST_CFLAGS=}"
+HOST_CXXFLAGS="${HOST_CXXFLAGS=}"
+HOST_LDFLAGS="${HOST_LDFLAGS=}"
+
+dnl ========================================================
+dnl = Preserve certain environment flags passed to configure
+dnl = We want sub projects to receive the same flags
+dnl = untainted by this configure script
+dnl ========================================================
+_SUBDIR_CC="$CC"
+_SUBDIR_CXX="$CXX"
+_SUBDIR_CFLAGS="$CFLAGS"
+_SUBDIR_CPPFLAGS="$CPPFLAGS"
+_SUBDIR_CXXFLAGS="$CXXFLAGS"
+_SUBDIR_LDFLAGS="$LDFLAGS"
+_SUBDIR_HOST_CC="$HOST_CC"
+_SUBDIR_HOST_CFLAGS="$HOST_CFLAGS"
+_SUBDIR_HOST_CXXFLAGS="$HOST_CXXFLAGS"
+_SUBDIR_HOST_LDFLAGS="$HOST_LDFLAGS"
+_SUBDIR_CONFIG_ARGS="$ac_configure_args"
+
+dnl Set the version number of the libs included with mozilla
+dnl ========================================================
+MOZJPEG=62
+MOZPNG=10513
+NSPR_VERSION=4
+NSS_VERSION=3
+
+dnl Set the minimum version of toolkit libs used by mozilla
+dnl ========================================================
+GLIB_VERSION=1.2.0
+PERL_VERSION=5.006
+CAIRO_VERSION=1.10
+PANGO_VERSION=1.14.0
+GTK2_VERSION=2.10.0
+GTK3_VERSION=3.0.0
+WINDRES_VERSION=2.14.90
+W32API_VERSION=3.14
+GNOMEVFS_VERSION=2.0
+GNOMEUI_VERSION=2.2.0
+GCONF_VERSION=1.2.1
+GIO_VERSION=2.20
+STARTUP_NOTIFICATION_VERSION=0.8
+DBUS_VERSION=0.60
+SQLITE_VERSION=3.7.17
+
+MSMANIFEST_TOOL=
+
+dnl Set various checks
+dnl ========================================================
+MISSING_X=
+AC_PROG_AWK
+
+dnl Initialize the Pthread test variables early so they can be
+dnl overridden by each platform.
+dnl ========================================================
+MOZ_USE_PTHREADS=
+_PTHREAD_LDFLAGS=""
+
+dnl Do not allow a separate objdir build if a srcdir build exists.
+dnl ==============================================================
+_topsrcdir=`cd \`dirname $0\`; pwd`
+_objdir=`pwd`
+
+if test "$_topsrcdir" != "$_objdir"
+then
+ # Check for a couple representative files in the source tree
+ _conflict_files=
+ for file in $_topsrcdir/Makefile $_topsrcdir/config/autoconf.mk; do
+ if test -f $file; then
+ _conflict_files="$_conflict_files $file"
+ fi
+ done
+ if test "$_conflict_files"; then
+ echo "***"
+ echo "* Your source tree contains these files:"
+ for file in $_conflict_files; do
+ echo "* $file"
+ done
+ cat 1>&2 <<-EOF
+ * This indicates that you previously built in the source tree.
+ * A source tree build can confuse the separate objdir build.
+ *
+ * To clean up the source tree:
+ * 1. cd $_topsrcdir
+ * 2. gmake distclean
+ ***
+ EOF
+ exit 1
+ break
+ fi
+fi
+MOZ_BUILD_ROOT=`pwd`
+
+MOZ_PYTHON
+
+MOZ_DEFAULT_COMPILER
+
+COMPILE_ENVIRONMENT=1
+MOZ_ARG_DISABLE_BOOL(compile-environment,
+[ --disable-compile-environment
+ Disable compiler/library checks.],
+ COMPILE_ENVIRONMENT= )
+AC_SUBST(COMPILE_ENVIRONMENT)
+
+MOZ_ARG_WITH_STRING(l10n-base,
+[ --with-l10n-base=DIR path to l10n repositories],
+ L10NBASEDIR=$withval)
+if test -n "$L10NBASEDIR"; then
+ if test "$L10NBASEDIR" = "yes" -o "$L10NBASEDIR" = "no"; then
+ AC_MSG_ERROR([--with-l10n-base must specify a path])
+ elif test -d "$L10NBASEDIR"; then
+ L10NBASEDIR=`cd "$L10NBASEDIR" && pwd`
+ else
+ AC_MSG_ERROR([Invalid value --with-l10n-base, $L10NBASEDIR doesn't exist])
+ fi
+fi
+AC_SUBST(L10NBASEDIR)
+
+dnl Check for Perl first -- needed for win32 SDK checks
+MOZ_PATH_PROGS(PERL, $PERL perl5 perl )
+if test -z "$PERL" -o "$PERL" = ":"; then
+ AC_MSG_ERROR([perl not found in \$PATH])
+fi
+
+AC_SUBST(GAIADIR)
+if test -n "$GAIADIR" ; then
+ AC_DEFINE(PACKAGE_GAIA)
+fi
+
+MOZ_ARG_WITH_STRING(gonk,
+[ --with-gonk=DIR
+ location of gonk dir],
+ gonkdir=$withval)
+
+MOZ_ARG_WITH_STRING(gonk-toolchain-prefix,
+[ --with-gonk-toolchain-prefix=DIR
+ prefix to gonk toolchain commands],
+ gonk_toolchain_prefix=$withval)
+
+if test -n "$gonkdir" ; then
+ kernel_name=`uname -s | tr "[[:upper:]]" "[[:lower:]]"`
+ android_source="$gonkdir"
+ ANDROID_SOURCE="$android_source"
+ ANDROID_NDK="${ANDROID_SOURCE}/ndk"
+ dnl Default to ICS
+ ANDROID_VERSION=15
+ if test -n "${PLATFORM_SDK_VERSION}"; then
+ ANDROID_VERSION="${PLATFORM_SDK_VERSION}"
+ fi
+
+ dnl set up compilers
+ TOOLCHAIN_PREFIX="$gonk_toolchain_prefix"
+ AS="$gonk_toolchain_prefix"as
+ CC="$gonk_toolchain_prefix"gcc
+ CXX="$gonk_toolchain_prefix"g++
+ CPP="$gonk_toolchain_prefix"cpp
+ LD="$gonk_toolchain_prefix"ld
+ AR="$gonk_toolchain_prefix"ar
+ RANLIB="$gonk_toolchain_prefix"ranlib
+ STRIP="$gonk_toolchain_prefix"strip
+ OBJCOPY="$gonk_toolchain_prefix"objcopy
+
+ STLPORT_CPPFLAGS="-I$gonkdir/ndk/sources/cxx-stl/stlport/stlport/ -I$gonkdir/external/stlport/stlport/"
+ STLPORT_LIBS="-lstlport"
+
+ case "$target_cpu" in
+ arm)
+ ARCH_DIR=arch-arm
+ ;;
+ i?86)
+ ARCH_DIR=arch-x86
+ ;;
+ esac
+
+ case "$ANDROID_VERSION" in
+ 15)
+ GONK_INCLUDES="-I$gonkdir/frameworks/base/opengl/include -I$gonkdir/frameworks/base/native/include -I$gonkdir/frameworks/base/include -I$gonkdir/frameworks/base/services/camera -I$gonkdir/frameworks/base/include/media/stagefright -I$gonkdir/frameworks/base/include/media/stagefright/openmax -I$gonkdir/frameworks/base/media/libstagefright/rtsp -I$gonkdir/frameworks/base/media/libstagefright/include -I$gonkdir/external/dbus -I$gonkdir/external/bluetooth/bluez/lib -I$gonkdir/dalvik/libnativehelper/include/nativehelper"
+ MOZ_B2G_BT=1
+ MOZ_B2G_CAMERA=1
+ MOZ_OMX_DECODER=1
+ AC_DEFINE(MOZ_OMX_DECODER)
+ AC_SUBST(MOZ_OMX_DECODER)
+ ;;
+ 17)
+ GONK_INCLUDES="-I$gonkdir/frameworks/native/include"
+ ;;
+ *)
+ AC_MSG_ERROR([Unsupported platform version: $ANDROID_VERSION])
+ ;;
+ esac
+ CPPFLAGS="-DANDROID -isystem $gonkdir/bionic/libc/$ARCH_DIR/include -isystem $gonkdir/bionic/libc/include/ -isystem $gonkdir/bionic/libc/kernel/common -isystem $gonkdir/bionic/libc/kernel/$ARCH_DIR -isystem $gonkdir/bionic/libm/include -I$gonkdir/system -I$gonkdir/system/core/include -isystem $gonkdir/bionic -I$gonkdir/hardware/libhardware/include -I$gonkdir/external/valgrind/fxos-include $GONK_INCLUDES $CPPFLAGS"
+ CFLAGS="-mandroid -fno-short-enums -fno-exceptions $CFLAGS"
+ CXXFLAGS="-mandroid -fno-short-enums -fno-exceptions -Wno-psabi $CXXFLAGS $STLPORT_CPPFLAGS"
+ dnl Add -llog by default, since we use it all over the place.
+ LIBS="$LIBS -llog $STLPORT_LIBS"
+
+ LDFLAGS="-mandroid -L$gonkdir/out/target/product/$GONK_PRODUCT/obj/lib -Wl,-rpath-link=$gonkdir/out/target/product/$GONK_PRODUCT/obj/lib --sysroot=$gonkdir/out/target/product/$GONK_PRODUCT/obj/ $LDFLAGS"
+
+ dnl prevent cross compile section from using these flags as host flags
+ if test -z "$HOST_CPPFLAGS" ; then
+ HOST_CPPFLAGS=" "
+ fi
+ if test -z "$HOST_CFLAGS" ; then
+ HOST_CFLAGS=" "
+ fi
+ if test -z "$HOST_CXXFLAGS" ; then
+ HOST_CXXFLAGS=" "
+ fi
+ if test -z "$HOST_LDFLAGS" ; then
+ HOST_LDFLAGS=" "
+ fi
+
+ AC_DEFINE(ANDROID)
+ AC_DEFINE_UNQUOTED(ANDROID_VERSION, $ANDROID_VERSION)
+ AC_SUBST(ANDROID_VERSION)
+ AC_DEFINE(HAVE_SYS_UIO_H)
+ AC_DEFINE(HAVE_PTHREADS)
+ CROSS_COMPILE=1
+ MOZ_CHROME_FILE_FORMAT=omni
+ direct_nspr_config=1
+else
+ MOZ_ANDROID_NDK
+
+ case "$target" in
+ *-android*|*-linuxandroid*)
+ if test -z "$ANDROID_PACKAGE_NAME" ; then
+ ANDROID_PACKAGE_NAME='org.mozilla.$(MOZ_APP_NAME)'
+ fi
+ MOZ_CHROME_FILE_FORMAT=omni
+ ZLIB_DIR=yes
+ ;;
+ *-linux*)
+ AC_PATH_PROG(OBJCOPY,objcopy)
+ ;;
+ esac
+fi
+
+AC_SUBST(ANDROID_SOURCE)
+AC_SUBST(ANDROID_PACKAGE_NAME)
+AC_SUBST(OBJCOPY)
+
+dnl ========================================================
+dnl Checks for compilers.
+dnl ========================================================
+dnl Set CROSS_COMPILE in the environment when running configure
+dnl to use the cross-compile setup for now
+dnl ========================================================
+
+dnl AR_FLAGS set here so HOST_AR_FLAGS can be set correctly (see bug 538269)
+AR_FLAGS='cr $@'
+
+if test "$COMPILE_ENVIRONMENT"; then
+
+if test -n "$CROSS_COMPILE" -a "$target" != "$host"; then
+ echo "cross compiling from $host to $target"
+ cross_compiling=yes
+
+ _SAVE_CC="$CC"
+ _SAVE_CFLAGS="$CFLAGS"
+ _SAVE_LDFLAGS="$LDFLAGS"
+
+ AC_MSG_CHECKING([for host c compiler])
+ AC_CHECK_PROGS(HOST_CC, $HOST_CC cc gcc /usr/ucb/cc cl icc, "")
+ if test -z "$HOST_CC"; then
+ AC_MSG_ERROR([no acceptable c compiler found in \$PATH])
+ fi
+ AC_MSG_RESULT([$HOST_CC])
+ AC_MSG_CHECKING([for host c++ compiler])
+ AC_CHECK_PROGS(HOST_CXX, $HOST_CXX $CCC c++ g++ gcc CC cxx cc++ cl icc, "")
+ if test -z "$HOST_CXX"; then
+ AC_MSG_ERROR([no acceptable c++ compiler found in \$PATH])
+ fi
+ AC_MSG_RESULT([$HOST_CXX])
+
+ if test -z "$HOST_CFLAGS"; then
+ HOST_CFLAGS="$CFLAGS"
+ fi
+ if test -z "$HOST_CXXFLAGS"; then
+ HOST_CXXFLAGS="$CXXFLAGS"
+ fi
+ if test -z "$HOST_LDFLAGS"; then
+ HOST_LDFLAGS="$LDFLAGS"
+ fi
+ if test -z "$HOST_AR_FLAGS"; then
+ HOST_AR_FLAGS="$AR_FLAGS"
+ fi
+ AC_CHECK_PROGS(HOST_RANLIB, $HOST_RANLIB ranlib, ranlib, :)
+ AC_CHECK_PROGS(HOST_AR, $HOST_AR ar, ar, :)
+ CC="$HOST_CC"
+ CFLAGS="$HOST_CFLAGS"
+ LDFLAGS="$HOST_LDFLAGS"
+
+ AC_MSG_CHECKING([whether the host c compiler ($HOST_CC $HOST_CFLAGS $HOST_LDFLAGS) works])
+ AC_TRY_COMPILE([], [return(0);],
+ [ac_cv_prog_hostcc_works=1 AC_MSG_RESULT([yes])],
+ AC_MSG_ERROR([installation or configuration problem: host compiler $HOST_CC cannot create executables.]) )
+
+ CC="$HOST_CXX"
+ CFLAGS="$HOST_CXXFLAGS"
+
+ AC_MSG_CHECKING([whether the host c++ compiler ($HOST_CXX $HOST_CXXFLAGS $HOST_LDFLAGS) works])
+ AC_TRY_COMPILE([], [return(0);],
+ [ac_cv_prog_hostcxx_works=1 AC_MSG_RESULT([yes])],
+ AC_MSG_ERROR([installation or configuration problem: host compiler $HOST_CXX cannot create executables.]) )
+
+ CC=$_SAVE_CC
+ CFLAGS=$_SAVE_CFLAGS
+ LDFLAGS=$_SAVE_LDFLAGS
+
+ AC_CHECK_PROGS(CC, $CC "${target_alias}-gcc" "${target}-gcc", :)
+ unset ac_cv_prog_CC
+ AC_PROG_CC
+ AC_CHECK_PROGS(CXX, $CXX "${target_alias}-g++" "${target}-g++", :)
+ unset ac_cv_prog_CXX
+ AC_PROG_CXX
+
+ AC_CHECK_PROGS(RANLIB, $RANLIB "${target_alias}-ranlib" "${target}-ranlib", :)
+ AC_CHECK_PROGS(AR, $AR "${target_alias}-ar" "${target}-ar", :)
+ MOZ_PATH_PROGS(AS, $AS "${target_alias}-as" "${target}-as", :)
+ AC_CHECK_PROGS(LD, $LD "${target_alias}-ld" "${target}-ld", :)
+ AC_CHECK_PROGS(STRIP, $STRIP "${target_alias}-strip" "${target}-strip", :)
+ AC_CHECK_PROGS(WINDRES, $WINDRES "${target_alias}-windres" "${target}-windres", :)
+ AC_DEFINE(CROSS_COMPILE)
+else
+ AC_PROG_CC
+ case "$target" in
+ *-mingw*)
+ # Work around the conftest.exe access problem on Windows
+ sleep 2
+ esac
+ AC_PROG_CXX
+ AC_PROG_RANLIB
+ MOZ_PATH_PROGS(AS, $AS as, $CC)
+ AC_CHECK_PROGS(AR, ar, :)
+ AC_CHECK_PROGS(LD, ld, :)
+ AC_CHECK_PROGS(STRIP, strip, :)
+ AC_CHECK_PROGS(WINDRES, windres, :)
+ if test -z "$HOST_CC"; then
+ HOST_CC="$CC"
+ fi
+ if test -z "$HOST_CFLAGS"; then
+ HOST_CFLAGS="$CFLAGS"
+ fi
+ if test -z "$HOST_CXX"; then
+ HOST_CXX="$CXX"
+ fi
+ if test -z "$HOST_CXXFLAGS"; then
+ HOST_CXXFLAGS="$CXXFLAGS"
+ fi
+ if test -z "$HOST_LDFLAGS"; then
+ HOST_LDFLAGS="$LDFLAGS"
+ fi
+ if test -z "$HOST_RANLIB"; then
+ HOST_RANLIB="$RANLIB"
+ fi
+ if test -z "$HOST_AR"; then
+ HOST_AR="$AR"
+ fi
+ if test -z "$HOST_AR_FLAGS"; then
+ HOST_AR_FLAGS="$AR_FLAGS"
+ fi
+fi
+
+if test -n "$MOZ_WINCONSOLE"; then
+ AC_DEFINE(MOZ_WINCONSOLE)
+fi
+
+MOZ_TOOL_VARIABLES
+
+if test -n "$GNU_CC" -a -z "$CLANG_CC" ; then
+ if test "$GCC_MAJOR_VERSION" -eq 4 -a "$GCC_MINOR_VERSION" -lt 4 ||
+ test "$GCC_MAJOR_VERSION" -lt 4; then
+ AC_MSG_ERROR([Only GCC 4.4 or newer supported])
+ fi
+fi
+
+dnl ========================================================
+dnl Special win32 checks
+dnl ========================================================
+
+MOZ_ARG_ENABLE_BOOL(metro,
+[ --enable-metro Enable Windows Metro build targets],
+ MOZ_METRO=1,
+ MOZ_METRO=)
+if test -n "$MOZ_METRO"; then
+ AC_DEFINE(MOZ_METRO)
+ # Target the Windows 8 Kit
+ WINSDK_TARGETVER=602
+ WINVER=502
+ # toolkit/library/makefile.in needs these, see nsDllMain.
+ CRTDLLVERSION=110
+ CRTEXPDLLVERSION=1-1-0
+else
+ # Target the Windows 7 SDK by default
+ WINSDK_TARGETVER=601
+ WINVER=502
+fi
+
+AC_SUBST(CRTDLLVERSION)
+AC_SUBST(CRTEXPDLLVERSION)
+
+MOZ_ARG_WITH_STRING(windows-version,
+[ --with-windows-version=WINSDK_TARGETVER
+ Windows SDK version to target. Lowest version
+ currently allowed is 601 (Win7), highest is 602 (Win8)],
+ WINSDK_TARGETVER=$withval)
+
+# Currently only two sdk versions allowed, 601 and 602
+case "$WINSDK_TARGETVER" in
+601|602)
+ MOZ_WINSDK_TARGETVER=0${WINSDK_TARGETVER}0000
+ ;;
+
+*)
+ AC_MSG_ERROR([Invalid value for --with-windows-version ($WINSDK_TARGETVER)]);
+ ;;
+esac
+
+case "$target" in
+*-mingw*)
+ if test "$GCC" != "yes" -a -z "$CLANG_CC"; then
+ # Check to see if we are really running in a msvc environemnt
+ _WIN32_MSVC=1
+ AC_CHECK_PROGS(MIDL, midl)
+
+ # Make sure compilers are valid
+ CFLAGS="$CFLAGS -TC -nologo"
+ CXXFLAGS="$CXXFLAGS -TP -nologo"
+ AC_LANG_SAVE
+ AC_LANG_C
+ AC_TRY_COMPILE([#include <stdio.h>],
+ [ printf("Hello World\n"); ],,
+ AC_MSG_ERROR([\$(CC) test failed. You must have MS VC++ in your path to build.]) )
+
+ AC_LANG_CPLUSPLUS
+ AC_TRY_COMPILE([#include <new.h>],
+ [ unsigned *test = new unsigned(42); ],,
+ AC_MSG_ERROR([\$(CXX) test failed. You must have MS VC++ in your path to build.]) )
+ AC_LANG_RESTORE
+
+ changequote(,)
+ _MSVC_VER_FILTER='s|.*[^!-~]([0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+)?).*|\1|p'
+ changequote([,])
+
+ # Determine compiler version
+ CC_VERSION=`"${CC}" -v 2>&1 | sed -nre "$_MSVC_VER_FILTER"`
+ _CC_MAJOR_VERSION=`echo ${CC_VERSION} | $AWK -F\. '{ print $1 }'`
+ _CC_MINOR_VERSION=`echo ${CC_VERSION} | $AWK -F\. '{ print $2 }'`
+ _CC_RELEASE=`echo ${CC_VERSION} | $AWK -F\. '{ print $3 }'`
+ _CC_BUILD=`echo ${CC_VERSION} | $AWK -F\. '{ print $4 }'`
+ _MSC_VER=${_CC_MAJOR_VERSION}${_CC_MINOR_VERSION}
+
+ CXX_VERSION=`"${CXX}" -v 2>&1 | sed -nre "$_MSVC_VER_FILTER"`
+ _CXX_MAJOR_VERSION=`echo ${CXX_VERSION} | $AWK -F\. '{ print $1 }'`
+
+ if test "$_CC_MAJOR_VERSION" != "$_CXX_MAJOR_VERSION"; then
+ AC_MSG_ERROR([The major versions of \$CC and \$CXX do not match.])
+ fi
+
+ if test "$_CC_MAJOR_VERSION" = "16"; then
+ _CC_SUITE=10
+ _MSVS_VERSION=2010
+ AC_DEFINE(_CRT_SECURE_NO_WARNINGS)
+ AC_DEFINE(_CRT_NONSTDC_NO_WARNINGS)
+ elif test "$_CC_MAJOR_VERSION" = "17"; then
+ _CC_SUITE=11
+ _MSVS_VERSION=2012
+ AC_DEFINE(_CRT_SECURE_NO_WARNINGS)
+ AC_DEFINE(_CRT_NONSTDC_NO_WARNINGS)
+ else
+ AC_MSG_ERROR([This version ($CC_VERSION) of the MSVC compiler is unsupported. See https://developer.mozilla.org/en/Windows_Build_Prerequisites.])
+ fi
+
+ AC_DEFINE(HAVE_SEH_EXCEPTIONS)
+
+ if test -n "$WIN32_REDIST_DIR"; then
+ if test ! -d "$WIN32_REDIST_DIR"; then
+ AC_MSG_ERROR([Invalid Win32 Redist directory: ${WIN32_REDIST_DIR}])
+ fi
+ WIN32_REDIST_DIR=`cd "$WIN32_REDIST_DIR" && pwd`
+ fi
+
+ dnl Confirm we have the pri tools on win8 builds
+ if test -n "$MOZ_METRO"; then
+ AC_MSG_CHECKING([for makepri])
+ AC_CHECK_PROGS(MAKEPRI, makepri, "")
+ if test -z "MAKEPRI" ; then
+ AC_MSG_ERROR([makepri.exe is required for generating metro browser install components. It should be in the Win8 SDK.])
+ fi
+ AC_SUBST(MAKEPRI)
+ fi
+
+ dnl Ensure that mt.exe is 'Microsoft (R) Manifest Tool',
+ dnl not something else like "magnetic tape manipulation utility".
+ MSMT_TOOL=`mt 2>&1|grep 'Microsoft (R) Manifest Tool'`
+ if test -z "$MSMT_TOOL"; then
+ AC_MSG_ERROR([Microsoft (R) Manifest Tool must be in your \$PATH.])
+ fi
+
+ changequote(,)
+ _MSMT_VER_FILTER='s|.*[^!-~]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*|\1|p'
+ changequote([,])
+ MSMANIFEST_TOOL_VERSION=`echo ${MSMT_TOOL}|sed -ne "$_MSMT_VER_FILTER"`
+ if test -z "$MSMANIFEST_TOOL_VERSION"; then
+ AC_MSG_WARN([Unknown version of the Microsoft (R) Manifest Tool.])
+ fi
+
+ MSMANIFEST_TOOL=1
+ unset MSMT_TOOL
+
+ # Check linker version
+ _LD_FULL_VERSION=`"${LD}" -v 2>&1 | sed -nre "$_MSVC_VER_FILTER"`
+ _LD_MAJOR_VERSION=`echo ${_LD_FULL_VERSION} | $AWK -F\. '{ print $1 }'`
+ if test "$_LD_MAJOR_VERSION" != "$_CC_SUITE"; then
+ AC_MSG_ERROR([The linker major version, $_LD_FULL_VERSION, does not match the compiler suite version, $_CC_SUITE.])
+ fi
+
+ INCREMENTAL_LINKER=1
+
+ # Check midl version
+ _MIDL_FULL_VERSION=`"${MIDL}" -v 2>&1 | sed -nre "$_MSVC_VER_FILTER"`
+ _MIDL_MAJOR_VERSION=`echo ${_MIDL_FULL_VERSION} | $AWK -F\. '{ print $1 }'`
+ _MIDL_MINOR_VERSION=`echo ${_MIDL_FULL_VERSION} | $AWK -F\. '{ print $2 }'`
+ _MIDL_REV_VERSION=`echo ${_MIDL_FULL_VERSION} | $AWK -F\. '{ print $3 }'`
+ # Add flags if necessary
+ AC_MSG_CHECKING([for midl flags])
+ case "$target" in
+ i*86-*)
+ if test \( "$_MIDL_MAJOR_VERSION" = "7" -a "$_MIDL_MINOR_VERSION" = "00" -a "$_MIDL_REV_VERSION" = "0499" \); then
+ # MIDL version 7.00.0499 defaults /env win64 on x64 platforms.
+ # MIDL version 7.00.0500 or later has no problem.
+ MIDL_FLAGS="${MIDL_FLAGS} -env win32"
+ AC_MSG_RESULT([need -env win32])
+ else
+ AC_MSG_RESULT([none needed])
+ fi
+ ;;
+ x86_64-*)
+ MIDL_FLAGS="${MIDL_FLAGS} -env x64"
+ ;;
+ *)
+ AC_MSG_RESULT([none needed])
+ ;;
+ esac
+
+ unset _MSVC_VER_FILTER
+
+ AC_CACHE_CHECK(for std::_Throw, ac_cv_have_std__Throw,
+ [
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ _SAVE_CXXFLAGS="$CXXFLAGS"
+ CXXFLAGS="${CXXFLAGS} -D_HAS_EXCEPTIONS=0"
+ AC_TRY_COMPILE([#include <exception>],
+ [std::_Throw(std::exception()); return 0;],
+ ac_cv_have_std__Throw="yes",
+ ac_cv_have_std__Throw="no")
+ CXXFLAGS="$_SAVE_CXXFLAGS"
+ AC_LANG_RESTORE
+ ])
+
+ if test "$ac_cv_have_std__Throw" = "yes"; then
+ AC_CACHE_CHECK(for |class __declspec(dllimport) exception| bug,
+ ac_cv_have_dllimport_exception_bug,
+ [
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ _SAVE_CXXFLAGS="$CXXFLAGS"
+ CXXFLAGS="${CXXFLAGS} -D_HAS_EXCEPTIONS=0"
+ AC_TRY_LINK([#include <vector>],
+ [std::vector<int> v; return v.at(1);],
+ ac_cv_have_dllimport_exception_bug="no",
+ ac_cv_have_dllimport_exception_bug="yes")
+ CXXFLAGS="$_SAVE_CXXFLAGS"
+ AC_LANG_RESTORE
+ ])
+ if test "$ac_cv_have_dllimport_exception_bug" = "no"; then
+ WRAP_STL_INCLUDES=1
+ MOZ_MSVC_STL_WRAP__Throw=1
+ AC_DEFINE(MOZ_MSVC_STL_WRAP__Throw)
+ fi
+ else
+ AC_CACHE_CHECK(for overridable _RAISE,
+ ac_cv_have__RAISE,
+ [
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ _SAVE_CXXFLAGS="$CXXFLAGS"
+ CXXFLAGS="${CXXFLAGS} -D_HAS_EXCEPTIONS=0"
+ AC_TRY_COMPILE([#include <xstddef>
+ #undef _RAISE
+ #define _RAISE(x) externallyDefinedFunction((x).what())
+ #include <vector>
+ ],
+ [std::vector<int> v; return v.at(1);],
+ ac_cv_have__RAISE="no",
+ ac_cv_have__RAISE="yes")
+ CXXFLAGS="$_SAVE_CXXFLAGS"
+ AC_LANG_RESTORE
+ ])
+ if test "$ac_cv_have__RAISE" = "yes"; then
+ WRAP_STL_INCLUDES=1
+ MOZ_MSVC_STL_WRAP__RAISE=1
+ AC_DEFINE(MOZ_MSVC_STL_WRAP__RAISE)
+ else
+ AC_MSG_ERROR([Gecko exception wrapping doesn't understand your your MSVC/SDK. Please file a bug describing this error and your build configuration.])
+ fi
+ fi
+
+ if test "$WRAP_STL_INCLUDES" = "1"; then
+ STL_FLAGS='-D_HAS_EXCEPTIONS=0 -I$(DIST)/stl_wrappers'
+ fi
+ elif test -z "$CLANG_CC"; then
+ # Check w32api version
+ _W32API_MAJOR_VERSION=`echo $W32API_VERSION | $AWK -F\. '{ print $1 }'`
+ _W32API_MINOR_VERSION=`echo $W32API_VERSION | $AWK -F\. '{ print $2 }'`
+ AC_MSG_CHECKING([for w32api version >= $W32API_VERSION])
+ AC_TRY_COMPILE([#include <w32api.h>],
+ #if (__W32API_MAJOR_VERSION < $_W32API_MAJOR_VERSION) || \
+ (__W32API_MAJOR_VERSION == $_W32API_MAJOR_VERSION && \
+ __W32API_MINOR_VERSION < $_W32API_MINOR_VERSION)
+ #error "test failed."
+ #endif
+ , [ res=yes ], [ res=no ])
+ AC_MSG_RESULT([$res])
+ if test "$res" != "yes"; then
+ AC_MSG_ERROR([w32api version $W32API_VERSION or higher required.])
+ fi
+ # Check windres version
+ AC_MSG_CHECKING([for windres version >= $WINDRES_VERSION])
+ _WINDRES_VERSION=`${WINDRES} --version 2>&1 | grep -i windres 2>/dev/null | $AWK '{ print $3 }'`
+ AC_MSG_RESULT([$_WINDRES_VERSION])
+ _WINDRES_MAJOR_VERSION=`echo $_WINDRES_VERSION | $AWK -F\. '{ print $1 }'`
+ _WINDRES_MINOR_VERSION=`echo $_WINDRES_VERSION | $AWK -F\. '{ print $2 }'`
+ _WINDRES_RELEASE_VERSION=`echo $_WINDRES_VERSION | $AWK -F\. '{ print $3 }'`
+ WINDRES_MAJOR_VERSION=`echo $WINDRES_VERSION | $AWK -F\. '{ print $1 }'`
+ WINDRES_MINOR_VERSION=`echo $WINDRES_VERSION | $AWK -F\. '{ print $2 }'`
+ WINDRES_RELEASE_VERSION=`echo $WINDRES_VERSION | $AWK -F\. '{ print $3 }'`
+ if test "$_WINDRES_MAJOR_VERSION" -lt "$WINDRES_MAJOR_VERSION" -o \
+ "$_WINDRES_MAJOR_VERSION" -eq "$WINDRES_MAJOR_VERSION" -a \
+ "$_WINDRES_MINOR_VERSION" -lt "$WINDRES_MINOR_VERSION" -o \
+ "$_WINDRES_MAJOR_VERSION" -eq "$WINDRES_MAJOR_VERSION" -a \
+ "$_WINDRES_MINOR_VERSION" -eq "$WINDRES_MINOR_VERSION" -a \
+ "$_WINDRES_RELEASE_VERSION" -lt "$WINDRES_RELEASE_VERSION"
+ then
+ AC_MSG_ERROR([windres version $WINDRES_VERSION or higher is required to build.])
+ fi
+
+ AC_CHECK_PROGS(MIDL, $target-widl widl)
+ if test -n "$MIDL"; then
+ case "$target" in
+ i*86-*)
+ MIDL_FLAGS="$MIDL_FLAGS --win32 -m32"
+ ;;
+ x86_64-*)
+ MIDL_FLAGS="$MIDL_FLAGS --win64 -m64"
+ ;;
+ esac
+ fi
+
+ MOZ_WINSDK_MAXVER=0x06020000
+ fi # !GNU_CC
+
+ # If MSVC or clang
+ if test "$GCC" != "yes" -o -n "$CLANG_CC" ; then
+ MOZ_FIND_WINSDK_VERSION
+ fi
+
+ AC_DEFINE_UNQUOTED(WINVER,0x$WINVER)
+ AC_DEFINE_UNQUOTED(_WIN32_WINNT,0x$WINVER)
+ # Require OS features provided by IE 6.0 SP2 (XP SP2)
+ AC_DEFINE_UNQUOTED(_WIN32_IE,0x0603)
+
+ # If the maximum version supported by this SDK is lower than the target
+ # version, error out
+ AC_MSG_CHECKING([for Windows SDK being recent enough])
+ if $PERL -e "exit(0x$MOZ_WINSDK_TARGETVER > $MOZ_WINSDK_MAXVER)"; then
+ AC_MSG_RESULT("yes")
+ else
+ AC_MSG_RESULT("no")
+ AC_MSG_ERROR([You are targeting Windows version 0x$MOZ_WINSDK_TARGETVER, but your SDK only supports up to version $MOZ_WINSDK_MAXVER. Install and use an updated SDK, or target a lower version using --with-windows-version. Alternatively, try running the Windows SDK Configuration Tool and selecting a newer SDK. See https://developer.mozilla.org/En/Windows_SDK_versions for more details on fixing this.])
+ fi
+
+ AC_DEFINE_UNQUOTED(MOZ_WINSDK_TARGETVER,0x$MOZ_WINSDK_TARGETVER)
+ # Definitions matching sdkddkver.h
+ AC_DEFINE_UNQUOTED(MOZ_NTDDI_WIN7, 0x06010000)
+ AC_DEFINE_UNQUOTED(MOZ_WINSDK_MAXVER,$MOZ_WINSDK_MAXVER)
+ AC_SUBST(MOZ_WINSDK_MAXVER)
+ ;;
+esac
+
+AC_PROG_CPP
+AC_PROG_CXXCPP
+
+if test -n "$_WIN32_MSVC"; then
+ SKIP_PATH_CHECKS=1
+ SKIP_COMPILER_CHECKS=1
+ SKIP_LIBRARY_CHECKS=1
+
+ # Since we're skipping compiler and library checks, hard-code
+ # some facts here.
+ AC_DEFINE(HAVE_IO_H)
+ AC_DEFINE(HAVE_SETBUF)
+ AC_DEFINE(HAVE_ISATTY)
+fi
+
+fi # COMPILE_ENVIRONMENT
+
+AC_SUBST(MIDL_FLAGS)
+AC_SUBST(_MSC_VER)
+
+AC_SUBST(GNU_AS)
+AC_SUBST(GNU_LD)
+AC_SUBST(GNU_CC)
+AC_SUBST(GNU_CXX)
+AC_SUBST(INTEL_CC)
+AC_SUBST(INTEL_CXX)
+
+AC_SUBST(STL_FLAGS)
+AC_SUBST(WRAP_STL_INCLUDES)
+AC_SUBST(MOZ_MSVC_STL_WRAP__Throw)
+AC_SUBST(MOZ_MSVC_STL_WRAP__RAISE)
+
+dnl ========================================================
+dnl Checks for programs.
+dnl ========================================================
+AC_PROG_INSTALL
+AC_PROG_LN_S
+
+if test -z "$TINDERBOX_SKIP_PERL_VERSION_CHECK"; then
+AC_MSG_CHECKING([for minimum required perl version >= $PERL_VERSION])
+_perl_version=`PERL_VERSION=$PERL_VERSION $PERL -e 'print "$]"; if ($] >= $ENV{PERL_VERSION}) { exit(0); } else { exit(1); }' 2>&5`
+_perl_res=$?
+AC_MSG_RESULT([$_perl_version])
+
+if test "$_perl_res" != 0; then
+ AC_MSG_ERROR([Perl $PERL_VERSION or higher is required.])
+fi
+fi
+
+AC_MSG_CHECKING([for full perl installation])
+_perl_archlib=`$PERL -e 'use Config; if ( -d $Config{archlib} ) { exit(0); } else { exit(1); }' 2>&5`
+_perl_res=$?
+if test "$_perl_res" != 0; then
+ AC_MSG_RESULT([no])
+ AC_MSG_ERROR([Cannot find Config.pm or \$Config{archlib}. A full perl installation is required.])
+else
+ AC_MSG_RESULT([yes])
+fi
+
+MOZ_ARG_WITH_BOOL(system-ply,
+[ --with-system-ply Use system installed python ply library],
+ [if $PYTHON -c 'import ply' 2>&5; then
+ MOZ_SYSTEM_PLY=1
+ else
+ AC_MSG_ERROR([python ply library is not found but --with-system-ply was requested])
+ fi])
+
+AC_SUBST(MOZ_SYSTEM_PLY)
+
+if test -z "$COMPILE_ENVIRONMENT"; then
+ NSINSTALL_BIN='$(PYTHON) $(topsrcdir)/config/nsinstall.py'
+fi
+AC_SUBST(NSINSTALL_BIN)
+
+MOZ_PATH_PROG(DOXYGEN, doxygen, :)
+MOZ_PATH_PROG(AUTOCONF, autoconf, :)
+MOZ_PATH_PROGS(UNZIP, unzip)
+if test -z "$UNZIP" -o "$UNZIP" = ":"; then
+ AC_MSG_ERROR([unzip not found in \$PATH])
+fi
+MOZ_PATH_PROGS(ZIP, zip)
+if test -z "$ZIP" -o "$ZIP" = ":"; then
+ AC_MSG_ERROR([zip not found in \$PATH])
+fi
+MOZ_PATH_PROG(XARGS, xargs)
+if test -z "$XARGS" -o "$XARGS" = ":"; then
+ AC_MSG_ERROR([xargs not found in \$PATH .])
+fi
+
+MOZ_PATH_PROG(RPMBUILD, rpmbuild, :)
+AC_SUBST(RPMBUILD)
+
+if test "$COMPILE_ENVIRONMENT"; then
+
+dnl ========================================================
+dnl = Mac OS X toolchain support
+dnl ========================================================
+
+dnl The universal machinery sets UNIVERSAL_BINARY to inform packager.mk
+dnl that a universal binary is being produced and MOZ_CAN_RUN_PROGRAMS
+dnl when we can run target binaries.
+AC_SUBST(UNIVERSAL_BINARY)
+AC_SUBST(MOZ_CAN_RUN_PROGRAMS)
+
+MOZ_ARG_WITH_STRING(unify-dist,
+[ --with-unify-dist=dir Location of the dist directory to unify with at packaging time (Mac OS X universal build only)],
+ UNIFY_DIST=$withval)
+if test -n "$UNIVERSAL_BINARY"; then
+ if test -z "$UNIFY_DIST"; then
+ AC_MSG_ERROR([You need to provide the --with-unify-dist=dir argument when performing a universal build])
+ fi
+ case "$UNIFY_DIST" in
+ /*)
+ ;;
+ *)
+ UNIFY_DIST="${MOZ_BUILD_ROOT}/${UNIFY_DIST}"
+ ;;
+ esac
+fi
+AC_SUBST(UNIFY_DIST)
+
+dnl ========================================================
+dnl Check for MacOS deployment target version
+dnl ========================================================
+
+MOZ_ARG_ENABLE_STRING(macos-target,
+ [ --enable-macos-target=VER (default=10.6)
+ Set the minimum MacOS version needed at runtime],
+ [_MACOSX_DEPLOYMENT_TARGET=$enableval])
+
+case "$target" in
+*-darwin*)
+ if test -n "$_MACOSX_DEPLOYMENT_TARGET" ; then
+ dnl Use the specified value
+ export MACOSX_DEPLOYMENT_TARGET=$_MACOSX_DEPLOYMENT_TARGET
+ else
+ dnl No value specified on the command line or in the environment,
+ dnl use architecture minimum.
+ export MACOSX_DEPLOYMENT_TARGET=10.6
+ fi
+ ;;
+esac
+
+AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
+
+dnl ========================================================
+dnl = Mac OS X SDK support
+dnl ========================================================
+MACOS_SDK_DIR=
+NEXT_ROOT=
+MOZ_ARG_WITH_STRING(macos-sdk,
+[ --with-macos-sdk=dir Location of platform SDK to use (Mac OS X only)],
+ MACOS_SDK_DIR=$withval)
+
+dnl MACOS_SDK_DIR will be set to the SDK location whenever one is in use.
+dnl NEXT_ROOT will be set and exported only if it's needed.
+AC_SUBST(MACOS_SDK_DIR)
+AC_SUBST(NEXT_ROOT)
+
+if test "$MACOS_SDK_DIR"; then
+ dnl Sync this section with the ones in NSPR and NSS.
+ dnl Changes to the cross environment here need to be accounted for in
+ dnl the libIDL checks (below) and xpidl build.
+
+ if test ! -d "$MACOS_SDK_DIR"; then
+ AC_MSG_ERROR([SDK not found. When using --with-macos-sdk, you must
+specify a valid SDK. SDKs are installed when the optional cross-development
+tools are selected during the Xcode/Developer Tools installation.])
+ fi
+
+ CFLAGS="$CFLAGS -isysroot ${MACOS_SDK_DIR}"
+ CXXFLAGS="$CXXFLAGS -isysroot ${MACOS_SDK_DIR}"
+
+ dnl CPP/CXXCPP needs to be set for MOZ_CHECK_HEADER.
+ CPP="$CPP -isysroot ${MACOS_SDK_DIR}"
+ CXXCPP="$CXXCPP -isysroot ${MACOS_SDK_DIR}"
+
+ AC_LANG_SAVE
+ AC_MSG_CHECKING([for valid compiler/Mac OS X SDK combination])
+ AC_LANG_CPLUSPLUS
+ AC_TRY_COMPILE([#include <new>],[],
+ result=yes,
+ result=no)
+ AC_LANG_RESTORE
+ AC_MSG_RESULT($result)
+
+ if test "$result" = "no" ; then
+ AC_MSG_ERROR([The selected compiler and Mac OS X SDK are incompatible.])
+ fi
+fi
+
+fi # COMPILE_ENVIRONMENT
+
+AC_MSG_CHECKING([compiler version])
+# Just print it so it shows up in the logs.
+cc_version=$($CC --version)
+AC_MSG_RESULT([$cc_version])
+
+if test -n "$MAKE"; then
+ if test `echo $MAKE | grep -c make.py` != 1; then
+ NOT_PYMAKE=$MAKE
+ fi
+fi
+
+case "$host_os" in
+mingw*)
+ MOZ_PATH_PROGS(GMAKE, $GMAKE $NOT_PYMAKE make gmake, :)
+ ;;
+*)
+ MOZ_PATH_PROGS(GMAKE, $GMAKE $NOT_PYMAKE gmake make, :)
+ ;;
+esac
+if test "$GMAKE" = ":"; then
+ AC_MSG_ERROR([GNU make not found])
+fi
+AC_SUBST(GMAKE)
+
+if test -z "$MAKE"; then
+ MAKE=$GMAKE
+fi
+
+if test "$COMPILE_ENVIRONMENT"; then
+
+AC_PATH_XTRA
+
+XCFLAGS="$X_CFLAGS"
+
+fi # COMPILE_ENVIRONMENT
+
+dnl ========================================================
+dnl set the defaults first
+dnl ========================================================
+AS_BIN=$AS
+AR_LIST='$(AR) t'
+AR_EXTRACT='$(AR) x'
+AR_DELETE='$(AR) d'
+AS='$(CC)'
+AS_DASH_C_FLAG='-c'
+DLL_PREFIX=lib
+LIB_PREFIX=lib
+DLL_SUFFIX=.so
+OBJ_SUFFIX=o
+LIB_SUFFIX=a
+ASM_SUFFIX=s
+IMPORT_LIB_SUFFIX=
+TARGET_MD_ARCH=unix
+DIRENT_INO=d_ino
+MOZ_USER_DIR=".mozilla"
+
+MOZ_JPEG_CFLAGS=
+MOZ_JPEG_LIBS='$(call EXPAND_LIBNAME_PATH,mozjpeg,$(DEPTH)/media/libjpeg)'
+MOZ_BZ2_CFLAGS=
+MOZ_BZ2_LIBS='$(call EXPAND_LIBNAME_PATH,bz2,$(DEPTH)/modules/libbz2/src)'
+MOZ_PNG_CFLAGS=
+MOZ_PNG_LIBS='$(call EXPAND_LIBNAME_PATH,mozpng,$(DEPTH)/media/libpng)'
+
+MOZ_JS_STATIC_LIBS='$(call EXPAND_LIBNAME_PATH,js_static,$(LIBXUL_DIST)/lib)'
+MOZ_JS_SHARED_LIBS='$(call EXPAND_LIBNAME_PATH,mozjs,$(LIBXUL_DIST)/lib)'
+DYNAMIC_XPCOM_LIBS='-L$(LIBXUL_DIST)/bin -lxul -lxpcom_core -lmozalloc'
+MOZ_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin -Wl,-rpath-link,$(prefix)/lib'
+XPCOM_FROZEN_LDOPTS='-L$(LIBXUL_DIST)/bin -lxul -lmozalloc'
+LIBXUL_LIBS='$(XPCOM_FROZEN_LDOPTS)'
+XPCOM_GLUE_LDOPTS='$(LIBXUL_DIST)/lib/$(LIB_PREFIX)xpcomglue_s.$(LIB_SUFFIX) $(XPCOM_FROZEN_LDOPTS)'
+XPCOM_STANDALONE_GLUE_LDOPTS='$(LIBXUL_DIST)/lib/$(LIB_PREFIX)xpcomglue.$(LIB_SUFFIX)'
+
+# These are specially defined on Windows only
+case "$target" in
+*-mingw*)
+ XPCOM_STATICRUNTIME_GLUE_LDOPTS='$(LIBXUL_DIST)/lib/$(LIB_PREFIX)xpcomglue_staticruntime_s.$(LIB_SUFFIX) $(XPCOM_FROZEN_LDOPTS)'
+ XPCOM_STANDALONE_STATICRUNTIME_GLUE_LDOPTS='$(LIBXUL_DIST)/lib/$(LIB_PREFIX)xpcomglue_staticruntime.$(LIB_SUFFIX)'
+ ;;
+*)
+ XPCOM_STATICRUNTIME_GLUE_LDOPTS=$XPCOM_GLUE_LDOPTS
+ XPCOM_STANDALONE_STATICRUNTIME_GLUE_LDOPTS=$XPCOM_STANDALONE_GLUE_LDOPTS
+ ;;
+esac
+
+MOZ_FS_LAYOUT=unix
+
+MOZ_COMPONENT_NSPR_LIBS='-L$(LIBXUL_DIST)/bin $(NSPR_LIBS)'
+
+USE_DEPENDENT_LIBS=1
+
+_PLATFORM_DEFAULT_TOOLKIT=cairo-gtk2
+
+if test -n "$CROSS_COMPILE"; then
+ OS_TARGET="${target_os}"
+ OS_ARCH=`echo $target_os | sed -e 's|/|_|g'`
+ OS_RELEASE=
+ case "${target_os}" in
+ linux*) OS_ARCH=Linux OS_TARGET=Linux ;;
+ kfreebsd*-gnu) OS_ARCH=GNU_kFreeBSD OS_TARGET=GNU_kFreeBSD ;;
+ gnu*) OS_ARCH=GNU ;;
+ solaris*) OS_ARCH=SunOS OS_RELEASE=5 ;;
+ mingw*) OS_ARCH=WINNT OS_TARGET=WINNT ;;
+ darwin*) OS_ARCH=Darwin OS_TARGET=Darwin ;;
+ esac
+ case "${target}" in
+ *-android*|*-linuxandroid*) OS_ARCH=Linux OS_TARGET=Android ;;
+ esac
+else
+ OS_TARGET=`uname -s`
+ OS_ARCH=`uname -s | sed -e 's|/|_|g'`
+ OS_RELEASE=`uname -r`
+fi
+
+# Before this used `uname -m` when not cross compiling
+# but that breaks when you have a 64 bit kernel with a 32 bit userland.
+OS_TEST="${target_cpu}"
+
+HOST_OS_ARCH=`echo $host_os | sed -e 's|/|_|g'`
+
+#######################################################################
+# Master "Core Components" macros for getting the OS target #
+#######################################################################
+
+#
+# If OS_TARGET is not specified, it defaults to $(OS_ARCH), i.e., no
+# cross-compilation.
+#
+
+#
+# Define and override various archtecture-specific variables, including
+# HOST_OS_ARCH
+# OS_ARCH
+# OS_TEST
+# OS_TARGET
+# OS_RELEASE
+# OS_MINOR_RELEASE
+#
+
+case "$HOST_OS_ARCH" in
+mingw*)
+ HOST_OS_ARCH=WINNT
+ ;;
+darwin*)
+ HOST_OS_ARCH=Darwin
+ ;;
+linux*)
+ HOST_OS_ARCH=Linux
+ ;;
+solaris*)
+ HOST_OS_ARCH=SunOS
+ SOLARIS_SUNPRO_CC=
+ SOLARIS_SUNPRO_CXX=
+ if test -z "$GNU_CC"; then
+ if test "`$CC -V 2>&1 | egrep -c 'Sun.*C '`" != "0"; then
+ SOLARIS_SUNPRO_CC=1
+ fi
+ fi
+
+ if test -z "$GNU_CXX"; then
+ if test "`$CXX -V 2>&1 | egrep -c 'Sun.*C\+\+ '`" != "0"; then
+ SOLARIS_SUNPRO_CXX=1
+ fi
+ fi
+ AC_SUBST(SOLARIS_SUNPRO_CC)
+ AC_SUBST(SOLARIS_SUNPRO_CXX)
+ ;;
+OS_2)
+ HOST_OS_ARCH=OS2
+ ;;
+esac
+
+case "$OS_ARCH" in
+WINNT)
+ if test -z "$CROSS_COMPILE" ; then
+ OS_TEST=`uname -p`
+ fi
+ ;;
+Windows_NT)
+#
+# If uname -s returns "Windows_NT", we assume that we are using
+# the uname.exe in MKS toolkit.
+#
+# The -r option of MKS uname only returns the major version number.
+# So we need to use its -v option to get the minor version number.
+# Moreover, it doesn't have the -p option, so we need to use uname -m.
+#
+ OS_ARCH=WINNT
+ OS_TARGET=WINNT
+ OS_MINOR_RELEASE=`uname -v`
+ if test "$OS_MINOR_RELEASE" = "00"; then
+ OS_MINOR_RELEASE=0
+ fi
+ OS_RELEASE="${OS_RELEASE}.${OS_MINOR_RELEASE}"
+ ;;
+MINGW*_NT*)
+#
+# If uname -s returns MINGW32_NT-5.1, we assume that we are using
+# the uname.exe in the MSYS tools.
+#
+ OS_RELEASE=`expr $OS_ARCH : '.*NT-\(.*\)'`
+ OS_ARCH=WINNT
+ OS_TARGET=WINNT
+ ;;
+AIX)
+ OS_RELEASE=`uname -v`.`uname -r`
+ OS_TEST=${target_cpu}
+ ;;
+OS_2)
+ OS_ARCH=OS2
+ OS_TARGET=OS2
+ OS_RELEASE=`uname -v`
+ ;;
+Darwin)
+ case "${target_cpu}" in
+ powerpc*)
+ OS_TEST=ppc
+ ;;
+ i*86*)
+ OS_TEST=i386
+ ;;
+ x86_64)
+ OS_TEST=x86_64
+ ;;
+ *)
+ if test -z "$CROSS_COMPILE" ; then
+ OS_TEST=`uname -p`
+ fi
+ ;;
+ esac
+ ;;
+esac
+
+# Only set CPU_ARCH if we recognize the value of OS_TEST
+
+case "$OS_TEST" in
+*86 | i86pc)
+ CPU_ARCH=x86
+ ;;
+
+powerpc64 | ppc64)
+ CPU_ARCH=ppc64
+ ;;
+
+powerpc | ppc | rs6000)
+ CPU_ARCH=ppc
+ ;;
+
+Alpha | alpha | ALPHA)
+ CPU_ARCH=Alpha
+ ;;
+
+s390)
+ CPU_ARCH=s390
+ ;;
+
+s390x)
+ CPU_ARCH=s390x
+ ;;
+
+hppa* | parisc)
+ CPU_ARCH=hppa
+ ;;
+
+sun4u | sparc*)
+ CPU_ARCH=sparc
+ ;;
+
+x86_64 | ia64)
+ CPU_ARCH="$OS_TEST"
+ ;;
+
+arm*)
+ CPU_ARCH=arm
+ ;;
+
+mips|mipsel)
+ CPU_ARCH="mips"
+ ;;
+esac
+
+if test -z "$OS_TARGET"; then
+ OS_TARGET=$OS_ARCH
+fi
+OS_CONFIG="${OS_TARGET}${OS_RELEASE}"
+
+dnl Set INTEL_ARCHITECTURE if we're compiling for x86-32 or x86-64.
+dnl ===============================================================
+INTEL_ARCHITECTURE=
+case "$OS_TEST" in
+ x86_64|i?86)
+ INTEL_ARCHITECTURE=1
+esac
+
+dnl Configure platform-specific CPU architecture compiler options.
+dnl ==============================================================
+MOZ_ARCH_OPTS
+
+dnl =================================================================
+dnl Set up and test static assertion macros used to avoid AC_TRY_RUN,
+dnl which is bad when cross compiling.
+dnl =================================================================
+if test "$COMPILE_ENVIRONMENT"; then
+configure_static_assert_macros='
+#define CONFIGURE_STATIC_ASSERT(condition) CONFIGURE_STATIC_ASSERT_IMPL(condition, __LINE__)
+#define CONFIGURE_STATIC_ASSERT_IMPL(condition, line) CONFIGURE_STATIC_ASSERT_IMPL2(condition, line)
+#define CONFIGURE_STATIC_ASSERT_IMPL2(condition, line) typedef int static_assert_line_##line[(condition) ? 1 : -1]
+'
+
+dnl test that the macros actually work:
+AC_MSG_CHECKING(that static assertion macros used in autoconf tests work)
+AC_CACHE_VAL(ac_cv_static_assertion_macros_work,
+ [AC_LANG_SAVE
+ AC_LANG_C
+ ac_cv_static_assertion_macros_work="yes"
+ AC_TRY_COMPILE([$configure_static_assert_macros],
+ [CONFIGURE_STATIC_ASSERT(1)],
+ ,
+ ac_cv_static_assertion_macros_work="no")
+ AC_TRY_COMPILE([$configure_static_assert_macros],
+ [CONFIGURE_STATIC_ASSERT(0)],
+ ac_cv_static_assertion_macros_work="no",
+ )
+ AC_LANG_CPLUSPLUS
+ AC_TRY_COMPILE([$configure_static_assert_macros],
+ [CONFIGURE_STATIC_ASSERT(1)],
+ ,
+ ac_cv_static_assertion_macros_work="no")
+ AC_TRY_COMPILE([$configure_static_assert_macros],
+ [CONFIGURE_STATIC_ASSERT(0)],
+ ac_cv_static_assertion_macros_work="no",
+ )
+ AC_LANG_RESTORE
+ ])
+AC_MSG_RESULT("$ac_cv_static_assertion_macros_work")
+if test "$ac_cv_static_assertion_macros_work" = "no"; then
+ AC_MSG_ERROR([Compiler cannot compile macros used in autoconf tests.])
+fi
+fi # COMPILE_ENVIRONMENT
+
+dnl ========================================================
+dnl Android libstdc++, placed here so it can use MOZ_ARCH
+dnl computed above.
+dnl ========================================================
+
+MOZ_ANDROID_STLPORT
+
+dnl ========================================================
+dnl Suppress Clang Argument Warnings
+dnl ========================================================
+if test -n "$CLANG_CC"; then
+ _WARNINGS_CFLAGS="-Qunused-arguments ${_WARNINGS_CFLAGS}"
+ CPPFLAGS="-Qunused-arguments ${CPPFLAGS}"
+fi
+if test -n "$CLANG_CXX"; then
+ _WARNINGS_CXXFLAGS="-Qunused-arguments ${_WARNINGS_CXXFLAGS}"
+fi
+
+dnl ========================================================
+dnl = Use Address Sanitizer
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(address-sanitizer,
+[ --enable-address-sanitizer Enable Address Sanitizer (default=no)],
+ MOZ_ASAN=1,
+ MOZ_ASAN= )
+if test -n "$MOZ_ASAN"; then
+ MOZ_LLVM_HACKS=1
+ AC_DEFINE(MOZ_ASAN)
+fi
+AC_SUBST(MOZ_ASAN)
+
+dnl ========================================================
+dnl = Enable hacks required for LLVM instrumentations
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(llvm-hacks,
+[ --enable-llvm-hacks Enable workarounds required for several LLVM instrumentations (default=no)],
+ MOZ_LLVM_HACKS=1,
+ MOZ_LLVM_HACKS= )
+if test -n "$MOZ_LLVM_HACKS"; then
+ MOZ_NO_WLZDEFS=1
+ MOZ_CFLAGS_NSS=1
+fi
+AC_SUBST(MOZ_NO_WLZDEFS)
+AC_SUBST(MOZ_CFLAGS_NSS)
+
+dnl ========================================================
+dnl GNU specific defaults
+dnl ========================================================
+if test "$GNU_CC"; then
+ # Per bug 719659 comment 2, some of the headers on ancient build machines
+ # may require gnu89 inline semantics. But otherwise, we use C99.
+ # But on OS X we just use C99 plus GNU extensions, in order to fix
+ # bug 917526.
+ CFLAGS="$CFLAGS -std=gnu99"
+ if test "${OS_ARCH}" != Darwin; then
+ CFLAGS="$CFLAGS -fgnu89-inline"
+ fi
+ # FIXME: Let us build with strict aliasing. bug 414641.
+ CFLAGS="$CFLAGS -fno-strict-aliasing"
+ MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-h,$(notdir $@) -o $@'
+ MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-h,$(notdir $@) -o $@'
+ DSO_LDOPTS='-shared'
+ if test "$GCC_USE_GNU_LD"; then
+ # Some tools like ASan use a runtime library that is only
+ # linked against executables, so we must allow undefined
+ # symbols for shared objects in some cases.
+ if test -z "$MOZ_NO_WLZDEFS"; then
+ # Don't allow undefined symbols in libraries
+ DSO_LDOPTS="$DSO_LDOPTS -Wl,-z,defs"
+ fi
+ fi
+ WARNINGS_AS_ERRORS='-Werror'
+ # Don't treat -Wuninitialized as error b/c it has lots of false positives.
+ WARNINGS_AS_ERRORS="$WARNINGS_AS_ERRORS -Wno-error=uninitialized"
+ # Don't treat -Wdeprecated-declarations as error b/c we don't want our
+ # builds held hostage when a platform-specific API is suddenly deprecated.
+ WARNINGS_AS_ERRORS="$WARNINGS_AS_ERRORS -Wno-error=deprecated-declarations"
+ DSO_CFLAGS=''
+ DSO_PIC_CFLAGS='-fPIC'
+ ASFLAGS="$ASFLAGS -fPIC"
+ AC_MSG_CHECKING([for --noexecstack option to as])
+ _SAVE_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS -Wa,--noexecstack"
+ AC_TRY_COMPILE(,,AC_MSG_RESULT([yes])
+ [ASFLAGS="$ASFLAGS -Wa,--noexecstack"],
+ AC_MSG_RESULT([no]))
+ CFLAGS=$_SAVE_CFLAGS
+ AC_MSG_CHECKING([for -z noexecstack option to ld])
+ _SAVE_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS -Wl,-z,noexecstack"
+ AC_TRY_LINK(,,AC_MSG_RESULT([yes]),
+ AC_MSG_RESULT([no])
+ LDFLAGS=$_SAVE_LDFLAGS)
+ AC_MSG_CHECKING([for --build-id option to ld])
+ _SAVE_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS -Wl,--build-id"
+ AC_TRY_LINK(,,AC_MSG_RESULT([yes])
+ [NSPR_LDFLAGS="$NSPR_LDFLAGS -Wl,--build-id"],
+ AC_MSG_RESULT([no])
+ LDFLAGS=$_SAVE_LDFLAGS)
+
+
+ # Check for -mssse3 on $CC
+ AC_MSG_CHECKING([if toolchain supports -mssse3 option])
+ HAVE_TOOLCHAIN_SUPPORT_MSSSE3=
+ _SAVE_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS -mssse3"
+ AC_TRY_COMPILE([asm ("pmaddubsw %xmm2,%xmm3");],,AC_MSG_RESULT([yes])
+ [HAVE_TOOLCHAIN_SUPPORT_MSSSE3=1],
+ AC_MSG_RESULT([no]))
+ CFLAGS=$_SAVE_CFLAGS
+ AC_SUBST(HAVE_TOOLCHAIN_SUPPORT_MSSSE3)
+
+ # Check for -msse4.1 on $CC
+ AC_MSG_CHECKING([if toolchain supports -msse4.1 option])
+ HAVE_TOOLCHAIN_SUPPORT_MSSE4_1=
+ _SAVE_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS -msse4.1"
+ AC_TRY_COMPILE([asm ("pmulld %xmm6,%xmm0");],,AC_MSG_RESULT([yes])
+ [HAVE_TOOLCHAIN_SUPPORT_MSSE4_1=1],
+ AC_MSG_RESULT([no]))
+ CFLAGS=$_SAVE_CFLAGS
+ AC_SUBST(HAVE_TOOLCHAIN_SUPPORT_MSSE4_1)
+
+ # Turn on GNU-specific warnings:
+ # -Wall - turn on a lot of warnings
+ # -Wpointer-arith - good to have
+ # -Wdeclaration-after-statement - MSVC doesn't like these
+ # -Werror=return-type - catches missing returns, zero false positives
+ # -Wtype-limits - catches overflow bugs, few false positives
+ # -Wempty-body - catches bugs, e.g. "if (c); foo();", few false positives
+ # -Wsign-compare - catches comparison of signed and unsigned types
+ #
+ _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wall -Wpointer-arith -Wdeclaration-after-statement"
+ MOZ_C_SUPPORTS_WARNING(-W, error=return-type, ac_c_has_werror_return_type)
+ MOZ_C_SUPPORTS_WARNING(-W, type-limits, ac_c_has_wtype_limits)
+ MOZ_C_SUPPORTS_WARNING(-W, empty-body, ac_c_has_wempty_body)
+ MOZ_C_SUPPORTS_WARNING(-W, sign-compare, ac_c_has_sign_compare)
+
+ # Turn off the following warnings that -Wall turns on:
+ # -Wno-unused - lots of violations in third-party code
+ #
+ _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wno-unused"
+
+ if test -z "$INTEL_CC" -a -z "$CLANG_CC"; then
+ # Don't use -Wcast-align with ICC or clang
+ case "$CPU_ARCH" in
+ # And don't use it on hppa, ia64, sparc, arm, since it's noisy there
+ hppa | ia64 | sparc | arm)
+ ;;
+ *)
+ _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wcast-align"
+ ;;
+ esac
+ fi
+
+ _DEFINES_CFLAGS='-include $(DEPTH)/mozilla-config.h -DMOZILLA_CLIENT'
+ _USE_CPP_INCLUDE_FLAG=1
+ ASFLAGS="$ASFLAGS $_DEFINES_CFLAGS"
+
+elif test "$SOLARIS_SUNPRO_CC"; then
+ DSO_CFLAGS=''
+ if test "$CPU_ARCH" = "sparc"; then
+ # for Sun Studio on Solaris/SPARC
+ DSO_PIC_CFLAGS='-xcode=pic32'
+ else
+ DSO_PIC_CFLAGS='-KPIC'
+ fi
+ _DEFINES_CFLAGS='$(ACDEFINES) -D_MOZILLA_CONFIG_H_ -DMOZILLA_CLIENT'
+else
+ MKSHLIB='$(LD) $(DSO_LDOPTS) -h $(notdir $@) -o $@'
+ MKCSHLIB='$(LD) $(DSO_LDOPTS) -h $(notdir $@) -o $@'
+
+ DSO_LDOPTS='-shared'
+ if test "$GNU_LD"; then
+ # Don't allow undefined symbols in libraries
+ DSO_LDOPTS="$DSO_LDOPTS -z defs"
+ fi
+
+ DSO_CFLAGS=''
+ DSO_PIC_CFLAGS='-KPIC'
+ _DEFINES_CFLAGS='$(ACDEFINES) -D_MOZILLA_CONFIG_H_ -DMOZILLA_CLIENT'
+fi
+
+if test "$GNU_CXX"; then
+ # FIXME: Let us build with strict aliasing. bug 414641.
+ CXXFLAGS="$CXXFLAGS -fno-exceptions -fno-strict-aliasing"
+
+ # Turn on GNU-specific warnings:
+ # -Wall - turn on a lot of warnings
+ # -Wpointer-arith - good to have
+ # -Woverloaded-virtual - ???
+ # -Werror=return-type - catches missing returns, zero false positives
+ # -Wtype-limits - catches overflow bugs, few false positives
+ # -Wempty-body - catches bugs, e.g. "if (c); foo();", few false positives
+ # -Wsign-compare - catches comparison of signed and unsigned types
+ #
+ _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wall -Wpointer-arith -Woverloaded-virtual"
+ MOZ_CXX_SUPPORTS_WARNING(-W, error=return-type, ac_cxx_has_werror_return_type)
+ MOZ_CXX_SUPPORTS_WARNING(-W, type-limits, ac_cxx_has_wtype_limits)
+ MOZ_CXX_SUPPORTS_WARNING(-W, empty-body, ac_cxx_has_wempty_body)
+ MOZ_CXX_SUPPORTS_WARNING(-W, sign-compare, ac_cxx_has_sign_compare)
+
+ # Turn off the following warnings that -Wall turns on:
+ # -Wno-invalid-offsetof - we use offsetof on non-POD types frequently
+ #
+ MOZ_CXX_SUPPORTS_WARNING(-Wno-, invalid-offsetof, ac_cxx_has_wno_invalid_offsetof)
+
+ if test -z "$INTEL_CXX" -a -z "$CLANG_CXX"; then
+ # Don't use -Wcast-align with ICC or clang
+ case "$CPU_ARCH" in
+ # And don't use it on hppa, ia64, sparc, arm, since it's noisy there
+ hppa | ia64 | sparc | arm)
+ ;;
+ *)
+ _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wcast-align"
+ ;;
+ esac
+ fi
+
+ _DEFINES_CXXFLAGS='-DMOZILLA_CLIENT -include $(DEPTH)/mozilla-config.h'
+ _USE_CPP_INCLUDE_FLAG=1
+
+ # Recent clang and gcc support C++11 deleted functions without warnings if
+ # compiling with -std=c++0x or -std=gnu++0x (or c++11 or gnu++11 in very new
+ # versions). We can't use -std=c++0x yet, so gcc's support must remain
+ # unused. But clang's warning can be disabled, so when compiling with clang
+ # we use it to opt out of the warning, enabling (macro-encapsulated) use of
+ # deleted function syntax.
+ if test "$CLANG_CXX"; then
+ _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wno-c++0x-extensions"
+ MOZ_CXX_SUPPORTS_WARNING(-Wno-, extended-offsetof, ac_cxx_has_wno_extended_offsetof)
+ fi
+
+else
+ _DEFINES_CXXFLAGS='-DMOZILLA_CLIENT -D_MOZILLA_CONFIG_H_ $(ACDEFINES)'
+fi
+
+dnl gcc can come with its own linker so it is better to use the pass-thru calls
+dnl MKSHLIB_FORCE_ALL is used to force the linker to include all object
+dnl files present in an archive. MKSHLIB_UNFORCE_ALL reverts the linker to
+dnl normal behavior.
+dnl ========================================================
+MKSHLIB_FORCE_ALL=
+MKSHLIB_UNFORCE_ALL=
+
+if test "$COMPILE_ENVIRONMENT"; then
+if test "$GNU_CC"; then
+ AC_MSG_CHECKING(whether ld has archive extraction flags)
+ AC_CACHE_VAL(ac_cv_mkshlib_force_and_unforce,
+ [_SAVE_LDFLAGS=$LDFLAGS; _SAVE_LIBS=$LIBS
+ ac_cv_mkshlib_force_and_unforce="no"
+ exec 3<&0 <<LOOP_INPUT
+ force="-Wl,--whole-archive"; unforce="-Wl,--no-whole-archive"
+ force="-Wl,-z -Wl,allextract"; unforce="-Wl,-z -Wl,defaultextract"
+ force="-Wl,-all"; unforce="-Wl,-none"
+LOOP_INPUT
+ while read line
+ do
+ eval $line
+ LDFLAGS=$force
+ LIBS=$unforce
+ AC_TRY_LINK(,, ac_cv_mkshlib_force_and_unforce=$line; break)
+ done
+ exec 0<&3 3<&-
+ LDFLAGS=$_SAVE_LDFLAGS; LIBS=$_SAVE_LIBS
+ ])
+ if test "$ac_cv_mkshlib_force_and_unforce" = "no"; then
+ AC_MSG_RESULT(no)
+ else
+ AC_MSG_RESULT(yes)
+ eval $ac_cv_mkshlib_force_and_unforce
+ MKSHLIB_FORCE_ALL=$force
+ MKSHLIB_UNFORCE_ALL=$unforce
+ fi
+fi # GNU_CC
+fi # COMPILE_ENVIRONMENT
+
+dnl ========================================================
+dnl Checking for 64-bit OS
+dnl ========================================================
+if test "$COMPILE_ENVIRONMENT"; then
+AC_LANG_SAVE
+AC_LANG_C
+AC_MSG_CHECKING(for 64-bit OS)
+AC_TRY_COMPILE([$configure_static_assert_macros],
+ [CONFIGURE_STATIC_ASSERT(sizeof(void*) == 8)],
+ result="yes", result="no")
+AC_MSG_RESULT("$result")
+if test "$result" = "yes"; then
+ AC_DEFINE(HAVE_64BIT_OS)
+ HAVE_64BIT_OS=1
+fi
+AC_SUBST(HAVE_64BIT_OS)
+AC_LANG_RESTORE
+fi # COMPILE_ENVIRONMENT
+
+dnl ========================================================
+dnl Enable high-memory support on OS/2 by default.
+dnl ========================================================
+MOZ_OS2_HIGH_MEMORY=1
+MOZ_ARG_DISABLE_BOOL(os2-high-mem,
+[ --disable-os2-high-mem Disable high-memory support on OS/2],
+ MOZ_OS2_HIGH_MEMORY=,
+ MOZ_OS2_HIGH_MEMORY=1 )
+AC_SUBST(MOZ_OS2_HIGH_MEMORY)
+
+dnl ========================================================
+dnl = Use profiling compile flags
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(profiling,
+[ --enable-profiling Set compile flags necessary for using sampling profilers (e.g. shark, perf)],
+ MOZ_PROFILING=1,
+ MOZ_PROFILING= )
+
+# For profiling builds keep the symbol information
+if test "$MOZ_PROFILING" -a -z "$STRIP_FLAGS"; then
+ case "$OS_TARGET" in
+ Linux|DragonFly|FreeBSD|NetBSD|OpenBSD)
+ STRIP_FLAGS="--strip-debug"
+ ;;
+ esac
+fi
+
+dnl ========================================================
+dnl = Use incremental GC
+dnl ========================================================
+JSGC_INCREMENTAL=1
+MOZ_ARG_DISABLE_BOOL(gcincremental,
+[ --disable-gcincremental Disable incremental GC],
+ JSGC_INCREMENTAL= )
+if test -n "$JSGC_INCREMENTAL"; then
+ AC_DEFINE(JSGC_INCREMENTAL)
+fi
+
+dnl ========================================================
+dnl = Use generational GC
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(gcgenerational,
+[ --enable-gcgenerational Enable generational GC],
+ JSGC_GENERATIONAL=1,
+ JSGC_GENERATIONAL= )
+if test -n "$JSGC_GENERATIONAL"; then
+ AC_DEFINE(JSGC_GENERATIONAL)
+fi
+
+dnl ========================================================
+dnl = Perform moving GC stack rooting analysis
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(root-analysis,
+[ --enable-root-analysis Enable moving GC stack root analysis],
+ JSGC_ROOT_ANALYSIS=1,
+ JSGC_ROOT_ANALYSIS= )
+if test -n "$JSGC_ROOT_ANALYSIS"; then
+ AC_DEFINE(JSGC_ROOT_ANALYSIS)
+fi
+
+dnl ========================================================
+dnl = Use exact stack rooting for GC
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(exact-rooting,
+[ --enable-exact-rooting Enable use of exact stack roots for GC],
+ JSGC_USE_EXACT_ROOTING=1,
+ JSGC_USE_EXACT_ROOTING= )
+if test -n "$JSGC_USE_EXACT_ROOTING"; then
+ AC_DEFINE(JSGC_USE_EXACT_ROOTING)
+fi
+
+dnl ========================================================
+dnl = Use Valgrind
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(valgrind,
+[ --enable-valgrind Enable Valgrind integration hooks (default=no)],
+ MOZ_VALGRIND=1,
+ MOZ_VALGRIND= )
+if test -n "$MOZ_VALGRIND"; then
+ MOZ_CHECK_HEADER([valgrind/valgrind.h], [],
+ AC_MSG_ERROR(
+ [--enable-valgrind specified but Valgrind is not installed]))
+ AC_DEFINE(MOZ_VALGRIND)
+fi
+AC_SUBST(MOZ_VALGRIND)
+
+dnl ========================================================
+dnl jprof
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(jprof,
+[ --enable-jprof Enable jprof profiling tool (needs mozilla/tools/jprof). Implies --enable-profiling.],
+ MOZ_JPROF=1,
+ MOZ_JPROF= )
+if test -n "$MOZ_JPROF"; then
+ MOZ_PROFILING=1
+ AC_DEFINE(MOZ_JPROF)
+fi
+
+dnl ========================================================
+dnl SPS Profiler
+dnl ========================================================
+MOZ_ENABLE_PROFILER_SPS=1
+
+case "${OS_TARGET}" in
+Android)
+ case "${CPU_ARCH}" in
+ x86 | arm) ;;
+ *)
+ MOZ_ENABLE_PROFILER_SPS=
+ esac
+ ;;
+Linux)
+ case "${CPU_ARCH}" in
+ x86 | x86_64) ;;
+ *)
+ MOZ_ENABLE_PROFILER_SPS=
+ esac
+ ;;
+WINNT|Darwin) ;;
+*)
+ MOZ_ENABLE_PROFILER_SPS=
+ ;;
+esac
+
+if test -n "$MOZ_ENABLE_PROFILER_SPS"; then
+ AC_DEFINE(MOZ_ENABLE_PROFILER_SPS)
+fi
+
+dnl ========================================================
+dnl shark
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(shark,
+[ --enable-shark Enable shark remote profiling. Implies --enable-profiling.],
+ MOZ_SHARK=1,
+ MOZ_SHARK= )
+if test -n "$MOZ_SHARK"; then
+ MOZ_PROFILING=1
+ AC_DEFINE(MOZ_SHARK)
+fi
+
+dnl ========================================================
+dnl instruments
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(instruments,
+[ --enable-instruments Enable instruments remote profiling. Implies --enable-profiling.],
+ MOZ_INSTRUMENTS=1,
+ MOZ_INSTRUMENTS= )
+if test -n "$MOZ_INSTRUMENTS"; then
+ MOZ_PROFILING=1
+ AC_DEFINE(MOZ_INSTRUMENTS)
+fi
+
+dnl ========================================================
+dnl callgrind
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(callgrind,
+[ --enable-callgrind Enable callgrind profiling. Implies --enable-profiling.],
+ MOZ_CALLGRIND=1,
+ MOZ_CALLGRIND= )
+if test -n "$MOZ_CALLGRIND"; then
+ MOZ_PROFILING=1
+ AC_DEFINE(MOZ_CALLGRIND)
+fi
+
+dnl ========================================================
+dnl vtune
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(vtune,
+[ --enable-vtune Enable vtune profiling. Implies --enable-profiling.],
+ MOZ_VTUNE=1,
+ MOZ_VTUNE= )
+if test -n "$MOZ_VTUNE"; then
+ MOZ_PROFILING=1
+ AC_DEFINE(MOZ_VTUNE)
+fi
+
+dnl ========================================================
+dnl Profiling
+dnl ========================================================
+if test -n "$MOZ_PROFILING"; then
+ AC_DEFINE(MOZ_PROFILING)
+fi
+
+dnl ========================================================
+dnl System overrides of the defaults for host
+dnl ========================================================
+case "$host" in
+*mingw*)
+ if test -n "$_WIN32_MSVC"; then
+ HOST_AR=lib
+ HOST_AR_FLAGS='-NOLOGO -OUT:"$@"'
+ HOST_CFLAGS="$HOST_CFLAGS -TC -nologo -Fd\$(HOST_PDBFILE)"
+ HOST_RANLIB='echo ranlib'
+ else
+ HOST_CFLAGS="$HOST_CFLAGS -mwindows"
+ fi
+ HOST_CFLAGS="$HOST_CFLAGS -DXP_WIN32 -DXP_WIN -DWIN32 -D_WIN32 -DNO_X11 -D_CRT_SECURE_NO_WARNINGS"
+ HOST_NSPR_MDCPUCFG='\"md/_winnt.cfg\"'
+ HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}"
+ HOST_BIN_SUFFIX=.exe
+ case "$host" in
+ *mingw*)
+ PERL="/bin/sh ${_topsrcdir}/build/msys-perl-wrapper"
+ ;;
+ esac
+
+ case "${host_cpu}" in
+ i*86)
+ if test -n "$_WIN32_MSVC"; then
+ HOST_LDFLAGS="$HOST_LDFLAGS -MACHINE:X86"
+ fi
+ ;;
+ x86_64)
+ if test -n "$_WIN32_MSVC"; then
+ HOST_LDFLAGS="$HOST_LDFLAGS -MACHINE:X64"
+ fi
+ HOST_CFLAGS="$HOST_CFLAGS -D_AMD64_"
+ ;;
+ esac
+ ;;
+
+*-darwin*)
+ HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX -DXP_MACOSX -DNO_X11"
+ HOST_NSPR_MDCPUCFG='\"md/_darwin.cfg\"'
+ HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}"
+ ;;
+
+*-linux*|*-kfreebsd*-gnu|*-gnu*)
+ HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
+ HOST_NSPR_MDCPUCFG='\"md/_linux.cfg\"'
+ HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}"
+ ;;
+
+*os2*)
+ HOST_CFLAGS="$HOST_CFLAGS -DXP_OS2 -DNO_X11 -Zomf"
+ HOST_NSPR_MDCPUCFG='\"md/_os2.cfg\"'
+ HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}"
+ HOST_BIN_SUFFIX=.exe
+ MOZ_FIX_LINK_PATHS=
+ ;;
+
+*)
+ HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
+ HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}"
+ ;;
+esac
+
+dnl Check for using a custom <stdint.h> implementation
+dnl ========================================================
+AC_MSG_CHECKING(for custom <stdint.h> implementation)
+if test "$MOZ_CUSTOM_STDINT_H"; then
+ AC_DEFINE_UNQUOTED(MOZ_CUSTOM_STDINT_H, "$MOZ_CUSTOM_STDINT_H")
+ AC_MSG_RESULT(using $MOZ_CUSTOM_STDINT_H)
+else
+ AC_MSG_RESULT(none specified)
+fi
+
+dnl Get mozilla version from central milestone file
+MOZILLA_VERSION=`$PERL $srcdir/config/milestone.pl -topsrcdir $srcdir`
+MOZILLA_UAVERSION=`$PERL $srcdir/config/milestone.pl -topsrcdir $srcdir -uaversion`
+MOZILLA_SYMBOLVERSION=`$PERL $srcdir/config/milestone.pl -topsrcdir $srcdir -symbolversion`
+
+dnl Get version of various core apps from the version files.
+FIREFOX_VERSION=`cat $_topsrcdir/browser/config/version.txt`
+
+if test -z "$FIREFOX_VERSION"; then
+ AC_MSG_ERROR([FIREFOX_VERSION is unexpectedly blank.])
+fi
+
+AC_DEFINE_UNQUOTED(MOZILLA_VERSION,"$MOZILLA_VERSION")
+AC_DEFINE_UNQUOTED(MOZILLA_VERSION_U,$MOZILLA_VERSION)
+AC_DEFINE_UNQUOTED(MOZILLA_UAVERSION,"$MOZILLA_UAVERSION")
+AC_SUBST(MOZILLA_SYMBOLVERSION)
+
+MOZ_DOING_LTO(lto_is_enabled)
+
+dnl ========================================================
+dnl System overrides of the defaults for target
+dnl ========================================================
+
+case "$target" in
+*-aix*)
+ AC_DEFINE(AIX)
+ if test ! "$GNU_CC"; then
+ if test ! "$HAVE_64BIT_OS"; then
+ # Compiling with Visual Age C++ object model compat is the
+ # default. To compile with object model ibm, add
+ # AIX_OBJMODEL=ibm to .mozconfig.
+ if test "$AIX_OBJMODEL" = "ibm"; then
+ CXXFLAGS="$CXXFLAGS -qobjmodel=ibm"
+ else
+ AIX_OBJMODEL=compat
+ fi
+ else
+ AIX_OBJMODEL=compat
+ fi
+ AC_SUBST(AIX_OBJMODEL)
+ DSO_LDOPTS='-qmkshrobj=1'
+ DSO_CFLAGS='-qflag=w:w'
+ DSO_PIC_CFLAGS=
+ LDFLAGS="$LDFLAGS -Wl,-brtl -blibpath:/usr/lib:/lib"
+ MOZ_FIX_LINK_PATHS=
+ MKSHLIB='$(CXX) $(DSO_LDOPTS) -o $@'
+ MKCSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
+ if test "$COMPILE_ENVIRONMENT"; then
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ AC_MSG_CHECKING([for IBM XLC/C++ compiler version >= 9.0.0.7])
+ AC_TRY_COMPILE([],
+ [#if (__IBMCPP__ < 900)
+ #error "Bad compiler"
+ #endif],
+ _BAD_COMPILER=,_BAD_COMPILER=1)
+ if test -n "$_BAD_COMPILER"; then
+ AC_MSG_RESULT([no])
+ AC_MSG_ERROR([IBM XLC/C++ 9.0.0.7 or higher is required to build.])
+ else
+ AC_MSG_RESULT([yes])
+ fi
+ AC_LANG_RESTORE
+ TARGET_COMPILER_ABI="ibmc"
+ CC_VERSION=`lslpp -Lcq vac.C 2>/dev/null | awk -F: '{ print $3 }'`
+ CXX_VERSION=`lslpp -Lcq vacpp.cmp.core 2>/dev/null | awk -F: '{ print $3 }'`
+ fi
+ fi
+ case "${target_os}" in
+ aix4.1*)
+ DLL_SUFFIX='_shr.a'
+ ;;
+ esac
+ if test "$COMPILE_ENVIRONMENT"; then
+ MOZ_CHECK_HEADERS(sys/inttypes.h)
+ fi
+ AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
+ ;;
+
+*-darwin*)
+ MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
+ MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
+ MOZ_OPTIMIZE_FLAGS="-O3"
+ # Statically disable jemalloc on 10.5 and 32-bit 10.6. See bug 702250.
+ if test "$HAVE_64BIT_OS"; then
+ MOZ_MEMORY=1
+ fi
+ DLL_SUFFIX=".dylib"
+ DSO_LDOPTS=''
+ STRIP_FLAGS="$STRIP_FLAGS -x -S"
+ # Check whether we're targeting OS X or iOS
+ AC_CACHE_CHECK(for iOS target,
+ ac_cv_ios_target,
+ [AC_TRY_COMPILE([#include <TargetConditionals.h>
+#if !(TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR)
+#error not iOS
+#endif],
+ [],
+ ac_cv_ios_target="yes",
+ ac_cv_ios_target="no")])
+ if test "$ac_cv_ios_target" = "yes"; then
+ AC_DEFINE(XP_IOS)
+ AC_DEFINE(XP_DARWIN)
+ _PLATFORM_DEFAULT_TOOLKIT='cairo-uikit'
+ else
+ AC_DEFINE(XP_MACOSX)
+ AC_DEFINE(XP_DARWIN)
+ _PLATFORM_DEFAULT_TOOLKIT='cairo-cocoa'
+ # The ExceptionHandling framework is needed for Objective-C exception
+ # logging code in nsObjCExceptions.h. Currently we only use that in debug
+ # builds.
+ MOZ_DEBUG_LDFLAGS="$MOZ_DEBUG_LDFLAGS -framework ExceptionHandling";
+ fi
+ TARGET_NSPR_MDCPUCFG='\"md/_darwin.cfg\"'
+
+
+ if test "x$lto_is_enabled" = "xyes"; then
+ echo "Skipping -dead_strip because lto is enabled."
+ dnl DTrace and -dead_strip don't interact well. See bug 403132.
+ dnl ===================================================================
+ elif test "x$enable_dtrace" = "xyes"; then
+ echo "Skipping -dead_strip because DTrace is enabled. See bug 403132."
+ else
+ dnl check for the presence of the -dead_strip linker flag
+ AC_MSG_CHECKING([for -dead_strip option to ld])
+ _SAVE_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS -Wl,-dead_strip"
+ AC_TRY_LINK(,[return 0;],_HAVE_DEAD_STRIP=1,_HAVE_DEAD_STRIP=)
+ if test -n "$_HAVE_DEAD_STRIP" ; then
+ AC_MSG_RESULT([yes])
+ MOZ_OPTIMIZE_LDFLAGS="-Wl,-dead_strip"
+ else
+ AC_MSG_RESULT([no])
+ fi
+
+ LDFLAGS=$_SAVE_LDFLAGS
+ fi
+
+ dnl With newer linkers we need to pass -allow_heap_execute because of
+ dnl Microsoft Silverlight (5.1.10411.0 at least).
+ AC_MSG_CHECKING([for -allow_heap_execute option to ld])
+ _SAVE_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS -Wl,-allow_heap_execute"
+ AC_TRY_LINK(,[return 0;],_HAVE_ALLOW_HEAP_EXECUTE=1,
+ _HAVE_ALLOW_HEAP_EXECUTE=)
+ if test -n "$_HAVE_ALLOW_HEAP_EXECUTE" ; then
+ AC_MSG_RESULT([yes])
+ MOZ_ALLOW_HEAP_EXECUTE_FLAGS="-Wl,-allow_heap_execute"
+ else
+ AC_MSG_RESULT([no])
+ fi
+ LDFLAGS=$_SAVE_LDFLAGS
+
+ MOZ_FIX_LINK_PATHS='-Wl,-executable_path,$(LIBXUL_DIST)/bin'
+ ;;
+
+ia64*-hpux*)
+ DLL_SUFFIX=".so"
+ if test ! "$GNU_CC"; then
+ DSO_LDOPTS='-b'
+ DSO_CFLAGS=""
+ DSO_PIC_CFLAGS=
+ MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -o $@'
+ MKCSHLIB='$(CC) $(CFLAGS) $(DSO_LDOPTS) -o $@'
+ CXXFLAGS="$CXXFLAGS -Wc,-ansi_for_scope,on"
+ else
+ DSO_LDOPTS='-b -E'
+ MKSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
+ MKCSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
+ fi
+ MOZ_FIX_LINK_PATHS=
+ AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
+ AC_DEFINE(_LARGEFILE64_SOURCE)
+ ;;
+
+*-hpux*)
+ DLL_SUFFIX=".sl"
+ if test ! "$GNU_CC"; then
+ DSO_LDOPTS='-b -Wl,+s'
+ DSO_CFLAGS=""
+ DSO_PIC_CFLAGS="+Z"
+ MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -L$(LIBXUL_DIST)/bin -o $@'
+ MKCSHLIB='$(LD) -b +s -L$(LIBXUL_DIST)/bin -o $@'
+ CXXFLAGS="$CXXFLAGS -Wc,-ansi_for_scope,on"
+ else
+ DSO_LDOPTS='-b -E +s'
+ MKSHLIB='$(LD) $(DSO_LDOPTS) -L$(LIBXUL_DIST)/bin -L$(LIBXUL_DIST)/lib -o $@'
+ MKCSHLIB='$(LD) $(DSO_LDOPTS) -L$(LIBXUL_DIST)/bin -L$(LIBXUL_DIST)/lib -o $@'
+ fi
+ MOZ_POST_PROGRAM_COMMAND='chatr +s enable'
+ AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
+ ;;
+
+*-android*|*-linuxandroid*)
+ AC_DEFINE(NO_PW_GECOS)
+ no_x=yes
+ if test -n "$gonkdir"; then
+ _PLATFORM_DEFAULT_TOOLKIT=cairo-gonk
+ MOZ_B2G_RIL=1
+ MOZ_B2G_FM=1
+ else
+ _PLATFORM_DEFAULT_TOOLKIT=cairo-android
+ MOZ_LINKER=1
+ fi
+ TARGET_NSPR_MDCPUCFG='\"md/_linux.cfg\"'
+
+ MOZ_GFX_OPTIMIZE_MOBILE=1
+ MOZ_OPTIMIZE_FLAGS="-Os -freorder-blocks -fno-reorder-functions"
+ ;;
+
+*-*linux*)
+ # Note: both GNU_CC and INTEL_CC are set when using Intel's C compiler.
+ # Similarly for GNU_CXX and INTEL_CXX.
+ if test "$INTEL_CC" -o "$INTEL_CXX"; then
+ # -Os has been broken on Intel's C/C++ compilers for quite a
+ # while; Intel recommends against using it.
+ MOZ_OPTIMIZE_FLAGS="-O2"
+ MOZ_DEBUG_FLAGS="-g"
+ elif test "$GNU_CC" -o "$GNU_CXX"; then
+ case $GCC_VERSION in
+ 4.5.*)
+ # -Os is broken on gcc 4.5.x we need to tweak it to get good results.
+ MOZ_OPTIMIZE_SIZE_TWEAK="-finline-limit=50"
+ esac
+ MOZ_PGO_OPTIMIZE_FLAGS="-O3"
+ MOZ_OPTIMIZE_FLAGS="-Os -freorder-blocks $MOZ_OPTIMIZE_SIZE_TWEAK"
+ MOZ_DEBUG_FLAGS="-g"
+ fi
+
+ TARGET_NSPR_MDCPUCFG='\"md/_linux.cfg\"'
+
+ MOZ_MEMORY=1
+
+ case "${target_cpu}" in
+ alpha*)
+ CFLAGS="$CFLAGS -mieee"
+ CXXFLAGS="$CXXFLAGS -mieee"
+ ;;
+ i*86)
+ USE_ELF_DYNSTR_GC=1
+ ;;
+ mips*)
+ MOZ_DEBUG_FLAGS="-g" # We want inlining
+ ;;
+ esac
+
+ if test -z "$MC"; then
+ MC=mc.exe
+ fi
+ ;;
+*-mingw*)
+ DSO_CFLAGS=
+ DSO_PIC_CFLAGS=
+ DLL_SUFFIX=.dll
+ RC=rc.exe
+ MC=mc.exe
+ # certain versions of cygwin's makedepend barf on the
+ # #include <string> vs -I./dist/include/string issue so don't use it
+ if test -n "$GNU_CC" -o -n "$CLANG_CC"; then
+ CC="$CC -mwindows"
+ CXX="$CXX -mwindows"
+ CPP="$CPP -mwindows"
+ CFLAGS="$CFLAGS -mms-bitfields"
+ CXXFLAGS="$CXXFLAGS -mms-bitfields"
+ DSO_LDOPTS='-shared'
+ MKSHLIB='$(CXX) $(DSO_LDOPTS) -o $@'
+ MKCSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
+ RC='$(WINDRES)'
+ # Use static libgcc and libstdc++
+ LDFLAGS="$LDFLAGS -static-libgcc -static-libstdc++"
+ NSPR_LDFLAGS="$NSPR_LDFLAGS -static-libgcc"
+ # Use temp file for windres (bug 213281)
+ RCFLAGS='-O coff --use-temp-file'
+ # mingw doesn't require kernel32, user32, and advapi32 explicitly
+ LIBS="$LIBS -luuid -lgdi32 -lwinmm -lwsock32 -luserenv -lsecur32 -lnetapi32"
+ MOZ_FIX_LINK_PATHS=
+ DYNAMIC_XPCOM_LIBS='-L$(LIBXUL_DIST)/lib -lxul -lxpcom_core -lmozalloc'
+ XPCOM_FROZEN_LDOPTS='-L$(LIBXUL_DIST)/lib -lxul -lmozalloc'
+ DLL_PREFIX=
+ IMPORT_LIB_SUFFIX=dll.a
+
+ # We use mix of both POSIX and Win32 printf format across the tree, so format
+ # warnings are useless on mingw.
+ MOZ_C_SUPPORTS_WARNING(-Wno-, format, ac_c_has_wno_format)
+ MOZ_CXX_SUPPORTS_WARNING(-Wno-, format, ac_cxx_has_wno_format)
+ else
+ TARGET_COMPILER_ABI=msvc
+ HOST_CC='$(CC)'
+ HOST_CXX='$(CXX)'
+ HOST_LD='$(LD)'
+ if test "$AS_BIN"; then
+ AS="$(basename "$AS_BIN")"
+ fi
+ AR='lib'
+ AR_FLAGS='-NOLOGO -OUT:"$@"'
+ AR_EXTRACT=
+ RANLIB='echo not_ranlib'
+ STRIP='echo not_strip'
+ PKG_SKIP_STRIP=1
+ XARGS=xargs
+ ZIP=zip
+ UNZIP=unzip
+ DOXYGEN=:
+ ASM_SUFFIX=asm
+ OBJ_SUFFIX=obj
+ LIB_SUFFIX=lib
+ DLL_PREFIX=
+ LIB_PREFIX=
+ IMPORT_LIB_SUFFIX=lib
+ MKSHLIB='$(LD) -NOLOGO -DLL -OUT:$@ -PDB:$(LINK_PDBFILE) $(DSO_LDOPTS)'
+ MKCSHLIB='$(LD) -NOLOGO -DLL -OUT:$@ -PDB:$(LINK_PDBFILE) $(DSO_LDOPTS)'
+ MKSHLIB_FORCE_ALL=
+ MKSHLIB_UNFORCE_ALL=
+ DSO_LDOPTS=-SUBSYSTEM:WINDOWS,5.01
+ _USE_CPP_INCLUDE_FLAG=1
+ _DEFINES_CFLAGS='-FI $(DEPTH)/dist/include/mozilla-config.h -DMOZILLA_CLIENT'
+ _DEFINES_CXXFLAGS='-FI $(DEPTH)/dist/include/mozilla-config.h -DMOZILLA_CLIENT'
+ CFLAGS="$CFLAGS -W3 -Gy -Fd\$(COMPILE_PDBFILE)"
+ CXXFLAGS="$CXXFLAGS -W3 -Gy -Fd\$(COMPILE_PDBFILE)"
+ # khuey says we can safely ignore MSVC warning C4251
+ # MSVC warning C4244 (implicit type conversion may lose data) warns
+ # and requires workarounds for perfectly valid code. Also, GCC/clang
+ # don't warn about it by default. So for consistency/sanity, we turn
+ # it off on MSVC, too.
+ # MSVC warning C4345 warns of newly conformant behavior as of VS2003.
+ # MSVC warning C4351 warns of newly conformant behavior as of VS2005.
+ # MSVC warning C4482 warns when an enum value is refered specifing the
+ # name of the enum itself. This behavior is allowed in C++11, and the
+ # warning has been removed in VS2012.
+ # MSVC warning C4800 warns when a value is implicitly cast to bool,
+ # because this also forces narrowing to a single byte, which can be a
+ # perf hit. But this matters so little in practice (and often we want
+ # that behavior) that it's better to turn it off.
+ # MSVC warning C4819 warns some UTF-8 characters (e.g. copyright sign)
+ # on non-Western system locales even if it is in a comment.
+ CFLAGS="$CFLAGS -wd4244 -wd4819 -wd4267"
+ CXXFLAGS="$CXXFLAGS -wd4251 -wd4244 -wd4345 -wd4351 -wd4482 -wd4800 -wd4819 -wd4267"
+ # make 'foo == bar;' error out
+ CFLAGS="$CFLAGS -we4553"
+ CXXFLAGS="$CXXFLAGS -we4553"
+ LIBS="$LIBS kernel32.lib user32.lib gdi32.lib winmm.lib wsock32.lib advapi32.lib secur32.lib netapi32.lib"
+ MOZ_DEBUG_FLAGS='-Zi'
+ MOZ_DEBUG_LDFLAGS='-DEBUG -DEBUGTYPE:CV'
+ WARNINGS_AS_ERRORS='-WX'
+ MOZ_OPTIMIZE_FLAGS='-O1'
+ MOZ_FIX_LINK_PATHS=
+ DYNAMIC_XPCOM_LIBS='$(LIBXUL_DIST)/lib/xul.lib $(LIBXUL_DIST)/lib/xpcom_core.lib $(LIBXUL_DIST)/lib/mozalloc.lib'
+ XPCOM_FROZEN_LDOPTS='$(LIBXUL_DIST)/lib/xul.lib $(LIBXUL_DIST)/lib/mozalloc.lib'
+ LIBXUL_LIBS='$(LIBXUL_DIST)/lib/xul.lib $(LIBXUL_DIST)/lib/mozalloc.lib'
+ MOZ_COMPONENT_NSPR_LIBS='$(NSPR_LIBS)'
+ LDFLAGS="$LDFLAGS -LARGEADDRESSAWARE -NXCOMPAT -OPT:REF -OPT:ICF=15"
+ dnl For profile-guided optimization
+ PROFILE_GEN_CFLAGS="-GL"
+ PROFILE_GEN_LDFLAGS="-LTCG:PGINSTRUMENT"
+ dnl XXX: PGO builds can fail with warnings treated as errors,
+ dnl specifically "no profile data available" appears to be
+ dnl treated as an error sometimes. This might be a consequence
+ dnl of using WARNINGS_AS_ERRORS in some modules, combined
+ dnl with the linker doing most of the work in the whole-program
+ dnl optimization/PGO case. I think it's probably a compiler bug,
+ dnl but we work around it here.
+ PROFILE_USE_CFLAGS="-GL -wd4624 -wd4952"
+ dnl XXX: should be -LTCG:PGOPTIMIZE, but that fails on libxul.
+ dnl Probably also a compiler bug, but what can you do?
+ PROFILE_USE_LDFLAGS="-LTCG:PGUPDATE"
+ LDFLAGS="$LDFLAGS -DYNAMICBASE"
+ if test "$_MSC_VER" -ge 1500; then
+ dnl VS2008 or later supports SSSE3
+ HAVE_TOOLCHAIN_SUPPORT_MSSSE3=1
+ AC_SUBST(HAVE_TOOLCHAIN_SUPPORT_MSSSE3)
+ fi
+ fi
+ AC_DEFINE(HAVE_SNPRINTF)
+ AC_DEFINE(_WINDOWS)
+ AC_DEFINE(WIN32)
+ AC_DEFINE(XP_WIN)
+ AC_DEFINE(XP_WIN32)
+ AC_DEFINE(HW_THREADS)
+ AC_DEFINE(STDC_HEADERS)
+ AC_DEFINE(NEW_H, <new>)
+ AC_DEFINE(WIN32_LEAN_AND_MEAN)
+ TARGET_MD_ARCH=win32
+ _PLATFORM_DEFAULT_TOOLKIT='cairo-windows'
+ BIN_SUFFIX='.exe'
+ MOZ_USER_DIR="Mozilla"
+
+ dnl Hardcode to win95 for now - cls
+ TARGET_NSPR_MDCPUCFG='\"md/_win95.cfg\"'
+
+ dnl set NO_X11 defines here as the general check is skipped on win32
+ no_x=yes
+ AC_DEFINE(NO_X11)
+
+ case "$host" in
+ *-mingw*)
+ MOZ_BUILD_ROOT=`cd $MOZ_BUILD_ROOT && pwd -W`
+ if test -n "$L10NBASEDIR"; then
+ L10NBASEDIR=`cd $L10NBASEDIR && pwd -W`
+ fi
+ ;;
+ esac
+
+ case "$host" in
+ *-mingw*)
+ if test -z "$MOZ_TOOLS"; then
+ AC_MSG_ERROR([MOZ_TOOLS is not set])
+ fi
+ MOZ_TOOLS_DIR=`cd $MOZ_TOOLS && pwd -W`
+ if test "$?" != "0" -o -z "$MOZ_TOOLS_DIR"; then
+ AC_MSG_ERROR([cd \$MOZ_TOOLS failed. MOZ_TOOLS ==? $MOZ_TOOLS])
+ fi
+ MOZ_TOOLS_BIN_DIR="$(cd "$MOZ_TOOLS_DIR/bin" && pwd)"
+ if test `echo ${PATH}: | grep -ic "$MOZ_TOOLS_BINDIR:"` = 0; then
+ AC_MSG_ERROR([\$MOZ_TOOLS\\bin must be in your path.])
+ fi
+ ;;
+ esac
+
+ case "$host_os" in
+ cygwin*|msvc*|mks*)
+ AC_MSG_ERROR([Using a Cygwin build environment is unsupported. Configure cannot check for presence of necessary headers. Please upgrade to MozillaBuild; see https://developer.mozilla.org/en/Windows_Build_Prerequisites.])
+ ;;
+ esac
+
+ case "$target" in
+ i*86-*)
+ if test "$HAVE_64BIT_OS"; then
+ AC_MSG_ERROR([You are targeting i386 but using the 64-bit compiler.])
+ fi
+
+ if test -n "$GNU_CC"; then
+ CFLAGS="$CFLAGS -mstackrealign -fno-keep-inline-dllexport"
+ CXXFLAGS="$CXXFLAGS -mstackrealign -fno-keep-inline-dllexport"
+ LDFLAGS="$LDFLAGS -Wl,--enable-stdcall-fixup -Wl,--large-address-aware"
+ else
+ AC_DEFINE(HAVE_STDCALL)
+ DSO_LDOPTS="$DSO_LDOPTS -MACHINE:X86"
+ LDFLAGS="$LDFLAGS -SAFESEH"
+ fi
+
+ AC_DEFINE(_X86_)
+ ;;
+ x86_64-*)
+ if test -n "$_WIN32_MSVC"; then
+ DSO_LDOPTS="$DSO_LDOPTS -MACHINE:X64"
+ fi
+ AC_DEFINE(_AMD64_)
+ ;;
+ *)
+ AC_DEFINE(_CPU_ARCH_NOT_DEFINED)
+ ;;
+ esac
+ ;;
+
+*-netbsd*)
+ DSO_CFLAGS=''
+ CFLAGS="$CFLAGS -Dunix"
+ CXXFLAGS="$CXXFLAGS -Dunix"
+ if $CC -E - -dM </dev/null | grep __ELF__ >/dev/null; then
+ DLL_SUFFIX=".so"
+ DSO_PIC_CFLAGS='-fPIC -DPIC'
+ DSO_LDOPTS='-shared'
+ BIN_FLAGS='-Wl,--export-dynamic'
+ else
+ DSO_PIC_CFLAGS='-fPIC -DPIC'
+ DLL_SUFFIX=".so.1.0"
+ DSO_LDOPTS='-shared'
+ fi
+ # This will fail on a.out systems prior to 1.5.1_ALPHA.
+ MKSHLIB_FORCE_ALL='-Wl,--whole-archive'
+ MKSHLIB_UNFORCE_ALL='-Wl,--no-whole-archive'
+ if test "$LIBRUNPATH"; then
+ DSO_LDOPTS="-Wl,-R$LIBRUNPATH $DSO_LDOPTS"
+ fi
+ MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,$(notdir $@) -o $@'
+ MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,$(notdir $@)) -o $@'
+ ;;
+
+*-openbsd*)
+ if test "$SO_VERSION"; then
+ DLL_SUFFIX=".so.$SO_VERSION"
+ else
+ DLL_SUFFIX=".so.1.0"
+ fi
+ MOZ_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin -Wl,-rpath-link,$(prefix)/lib -Wl,-rpath-link,$(if $(X11BASE),$(X11BASE),/usr/X11R6)/lib'
+ DSO_CFLAGS=''
+ DSO_PIC_CFLAGS='-fPIC'
+ DSO_LDOPTS='-shared -fPIC'
+ if test "$LIBRUNPATH"; then
+ DSO_LDOPTS="-R$LIBRUNPATH $DSO_LDOPTS"
+ fi
+ ;;
+
+*-os2*)
+ MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
+ MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
+ AC_DEFINE(OS2)
+ AC_DEFINE(XP_OS2)
+ AC_DEFINE(OS2EMX_PLAIN_CHAR)
+ AC_DEFINE(TCPV40HDRS)
+ DLL_PREFIX=
+ LIB_PREFIX=
+ LIB_SUFFIX=lib
+ BIN_SUFFIX=".exe"
+ DLL_SUFFIX=".dll"
+ IMPORT_LIB_SUFFIX=lib
+ DSO_PIC_CFLAGS=
+ AR=emxomfar
+ AR_FLAGS='r $@'
+ CFLAGS="$CFLAGS -Zomf"
+ CXXFLAGS="$CXXFLAGS -Zomf"
+ DSO_LDOPTS='-Zdll'
+ BIN_FLAGS='-Zlinker /ST:0x100000'
+ IMPLIB='emximp -o'
+ FILTER='true'
+ LDFLAGS='-Zmap'
+ WARNINGS_AS_ERRORS='-Werror'
+ MOZ_DEBUG_FLAGS="-g -fno-inline"
+ MOZ_OPTIMIZE_FLAGS="-O2"
+ MOZ_OPTIMIZE_LDFLAGS="-s -Zlinker /EXEPACK:2 -Zlinker /PACKCODE -Zlinker /PACKDATA"
+ DYNAMIC_XPCOM_LIBS='-L$(LIBXUL_DIST)/lib $(LIBXUL_DIST)/lib/xul.lib $(LIBXUL_DIST)/lib/xpcom_core.lib $(LIBXUL_DIST)/lib/mozalloc.lib'
+ LIBXUL_LIBS='-L$(LIBXUL_DIST)/lib $(LIBXUL_DIST)/lib/xul.lib $(LIBXUL_DIST)/lib/mozalloc.lib'
+ TARGET_MD_ARCH=os2
+ _PLATFORM_DEFAULT_TOOLKIT="cairo-os2"
+ RC=rc.exe
+ MC=mc.exe
+ RCFLAGS='-n'
+ MOZ_USER_DIR="Mozilla"
+ ZIP="$ZIP -X"
+ STRIP=lxlite
+ STRIP_FLAGS="/yua /ydd /yxd /ynl /anp /b- /cs+ /d /i- /ml1 /mr2 /mf2 /r+ /u+ /x- /zs:0 /zx /zd"
+
+ if test "$MOZTOOLS"; then
+ MOZ_TOOLS_DIR=`echo $MOZTOOLS | sed -e 's|\\\\|/|g'`
+ else
+ AC_MSG_ERROR([MOZTOOLS is not set])
+ fi
+ if test -n "$MOZ_OS2_HIGH_MEMORY"; then
+ DSO_LDOPTS="$DSO_LDOPTS -Zhigh-mem"
+ LDFLAGS="$LDFLAGS -Zhigh-mem"
+ MOZ_OPTIMIZE_LDFLAGS="$MOZ_OPTIMIZE_LDFLAGS -Zhigh-mem"
+ AC_DEFINE(MOZ_OS2_HIGH_MEMORY)
+ fi
+
+ # GCC for OS/2 currently predefines these, but we don't want them
+ _DEFINES_CFLAGS="$_DEFINES_CFLAGS -Uunix -U__unix -U__unix__"
+ _DEFINES_CXXFLAGS="$_DEFINES_CXXFLAGS -Uunix -U__unix -U__unix__"
+
+ AC_CACHE_CHECK(for __declspec(dllexport),
+ ac_os2_declspec,
+ [AC_TRY_COMPILE([__declspec(dllexport) void ac_os2_declspec(void) {}],
+ [return 0;],
+ ac_os2_declspec="yes",
+ ac_os2_declspec="no")])
+ if test "$ac_os2_declspec" != "yes"; then
+ AC_MSG_ERROR([Compiler does not support __declspec(dllexport), install GCC-4.3.2 or newer])
+ fi
+ ;;
+
+*-solaris*)
+ AC_DEFINE(SOLARIS)
+ TARGET_NSPR_MDCPUCFG='\"md/_solaris.cfg\"'
+ MOZ_FIX_LINK_PATHS=
+ # $ORIGIN/.. is for shared libraries under components/ to locate shared
+ # libraries one level up (e.g. libnspr4.so)
+ if test "$SOLARIS_SUNPRO_CC"; then
+ LDFLAGS="$LDFLAGS -z ignore -R '\$\$ORIGIN:\$\$ORIGIN/..' -z lazyload -z combreloc -z muldefs"
+ LIBS="-lCrun -lCstd -lc $LIBS"
+ AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
+ CFLAGS="$CFLAGS -xlibmieee -xstrconst -xbuiltin=%all -D__FUNCTION__=__func__"
+ CXXFLAGS="$CXXFLAGS -xlibmieee -xbuiltin=%all -features=tmplife,tmplrefstatic,extensions,no%except -norunpath -D__FUNCTION__=__func__ -template=no%extdef"
+ LDFLAGS="-xildoff $LDFLAGS"
+ if test -z "$CROSS_COMPILE" -a -f /usr/lib/ld/map.noexstk; then
+ _SAVE_LDFLAGS=$LDFLAGS
+ LDFLAGS="-M /usr/lib/ld/map.noexstk $LDFLAGS"
+ AC_TRY_LINK([#include <stdio.h>],
+ [printf("Hello World\n");],
+ ,
+ [LDFLAGS=$_SAVE_LDFLAGS])
+ fi
+ MOZ_OPTIMIZE_FLAGS="-xO4"
+ MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_FLAGS) $(DSO_LDOPTS) -h $(notdir $@) -o $@'
+ MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_FLAGS) $(DSO_LDOPTS) -h $(notdir $@) -o $@'
+ MKSHLIB_FORCE_ALL='-z allextract'
+ MKSHLIB_UNFORCE_ALL='-z defaultextract'
+ DSO_LDOPTS='-G'
+ AR_LIST="$AR t"
+ AR_EXTRACT="$AR x"
+ AR_DELETE="$AR d"
+ AR='$(CXX) -xar'
+ AR_FLAGS='-o $@'
+ AS='/usr/ccs/bin/as'
+ ASFLAGS="$ASFLAGS -K PIC -L -P -D_ASM -D__STDC__=0"
+ AS_DASH_C_FLAG=''
+ TARGET_COMPILER_ABI="sunc"
+ CC_VERSION=`$CC -V 2>&1 | grep '^cc:' 2>/dev/null | $AWK -F\: '{ print $2 }'`
+ CXX_VERSION=`$CXX -V 2>&1 | grep '^CC:' 2>/dev/null | $AWK -F\: '{ print $2 }'`
+ AC_MSG_CHECKING([for Sun C++ compiler version >= 5.9])
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ AC_TRY_COMPILE([],
+ [#if (__SUNPRO_CC < 0x590)
+ #error "Denied"
+ #endif],
+ _BAD_COMPILER=,_BAD_COMPILER=1)
+ if test -n "$_BAD_COMPILER"; then
+ _res="no"
+ AC_MSG_ERROR([Sun C++ 5.9 (Sun Studio 12) or higher is required to build. Your compiler version is $CXX_VERSION .])
+ else
+ _res="yes"
+ fi
+ AC_TRY_COMPILE([],
+ [#if (__SUNPRO_CC >= 0x5100)
+ #error "Sun C++ 5.10 or above"
+ #endif],
+ _ABOVE_SS12U1=,_ABOVE_SS12U1=1)
+ if test "$_ABOVE_SS12U1"; then
+ # disable xannotate
+ CXXFLAGS="$CXXFLAGS -xannotate=no"
+ fi
+ AC_MSG_RESULT([$_res])
+ AC_LANG_RESTORE
+ else
+ LDFLAGS="$LDFLAGS -Wl,-z,ignore -Wl,-R,'\$\$ORIGIN:\$\$ORIGIN/..' -Wl,-z,lazyload -Wl,-z,combreloc -Wl,-z,muldefs"
+ LIBS="-lc $LIBS"
+ MKSHLIB_FORCE_ALL='-Wl,-z -Wl,allextract'
+ MKSHLIB_UNFORCE_ALL='-Wl,-z -Wl,defaultextract'
+ ASFLAGS="$ASFLAGS -fPIC"
+ DSO_LDOPTS='-shared'
+ WARNINGS_AS_ERRORS='-Werror'
+ _WARNINGS_CFLAGS=''
+ _WARNINGS_CXXFLAGS=''
+ if test "$OS_RELEASE" = "5.3"; then
+ AC_DEFINE(MUST_UNDEF_HAVE_BOOLEAN_AFTER_INCLUDES)
+ fi
+ fi
+ if test "$OS_RELEASE" = "5.5.1"; then
+ AC_DEFINE(NEED_USLEEP_PROTOTYPE)
+ fi
+ ;;
+
+*-sunos*)
+ DSO_LDOPTS='-Bdynamic'
+ MKSHLIB='-$(LD) $(DSO_LDOPTS) -o $@'
+ MKCSHLIB='-$(LD) $(DSO_LDOPTS) -o $@'
+ AC_DEFINE(SUNOS4)
+ AC_DEFINE(SPRINTF_RETURNS_STRING)
+ case "$(target_os)" in
+ sunos4.1*)
+ DLL_SUFFIX='.so.1.0'
+ ;;
+ esac
+ ;;
+
+*-os2*)
+ HOST_NSPR_MDCPUCFG='\"md/_os2.cfg\"'
+ ;;
+
+esac
+
+AC_SUBST(MOZ_LINKER)
+if test -n "$MOZ_LINKER"; then
+ AC_DEFINE(MOZ_LINKER)
+fi
+
+dnl Only one oddball right now (QNX), but this gives us flexibility
+dnl if any other platforms need to override this in the future.
+AC_DEFINE_UNQUOTED(D_INO,$DIRENT_INO)
+
+dnl ========================================================
+dnl Any platform that doesn't have MKSHLIB_FORCE_ALL defined
+dnl by now will not have any way to link most binaries (tests
+dnl as well as viewer, apprunner, etc.), because some symbols
+dnl will be left out of the "composite" .so's by ld as unneeded.
+dnl So, by defining NO_LD_ARCHIVE_FLAGS for these platforms,
+dnl they can link in the static libs that provide the missing
+dnl symbols.
+dnl ========================================================
+NO_LD_ARCHIVE_FLAGS=
+if test -z "$MKSHLIB_FORCE_ALL" -o -z "$MKSHLIB_UNFORCE_ALL"; then
+ NO_LD_ARCHIVE_FLAGS=1
+fi
+case "$target" in
+*-os2*)
+ NO_LD_ARCHIVE_FLAGS=
+ ;;
+*-aix4.3*|*-aix5*)
+ NO_LD_ARCHIVE_FLAGS=
+ ;;
+*-mingw*)
+ if test -z "$GNU_CC"; then
+ NO_LD_ARCHIVE_FLAGS=
+ fi
+ ;;
+esac
+AC_SUBST(NO_LD_ARCHIVE_FLAGS)
+
+dnl ========================================================
+dnl = Flags to strip unused symbols from .so components and
+dnl = to export jemalloc symbols when linking a program
+dnl ========================================================
+case "$target" in
+ *-linux*|*-kfreebsd*-gnu|*-gnu*)
+ MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,--version-script -Wl,$(BUILD_TOOLS)/gnu-ld-scripts/components-version-script'
+ ;;
+ *-solaris*)
+ if test -z "$GNU_CC"; then
+ MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-M $(BUILD_TOOLS)/gnu-ld-scripts/components-mapfile'
+ else
+ if test -z "$GCC_USE_GNU_LD"; then
+ MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,-M -Wl,$(BUILD_TOOLS)/gnu-ld-scripts/components-mapfile'
+ else
+ MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,--version-script -Wl,$(BUILD_TOOLS)/gnu-ld-scripts/components-version-script'
+ fi
+ fi
+ ;;
+ *-darwin*)
+ MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,-exported_symbols_list -Wl,$(BUILD_TOOLS)/gnu-ld-scripts/components-export-list'
+ ;;
+ *-mingw*)
+ if test -n "$GNU_CC"; then
+ MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,--version-script,$(BUILD_TOOLS)/gnu-ld-scripts/components-version-script'
+ fi
+ ;;
+esac
+
+if test -z "$COMPILE_ENVIRONMENT"; then
+ SKIP_COMPILER_CHECKS=1
+ SKIP_LIBRARY_CHECKS=1
+fi
+
+MOZ_COMPILER_OPTS
+if test -z "$SKIP_COMPILER_CHECKS"; then
+dnl Checks for typedefs, structures, and compiler characteristics.
+dnl ========================================================
+AC_HEADER_STDC
+AC_C_CONST
+AC_TYPE_MODE_T
+AC_TYPE_OFF_T
+AC_TYPE_PID_T
+AC_TYPE_SIZE_T
+AC_LANG_CPLUSPLUS
+AC_MSG_CHECKING(for __stdcall)
+AC_CACHE_VAL(ac_cv___stdcall,
+ [AC_TRY_COMPILE([template <typename Method> struct foo;
+ template <> struct foo<void (*)()> {};
+ template <> struct foo<void (__stdcall*)()> {};],
+ [],
+ [ac_cv___stdcall=true],
+ [ac_cv___stdcall=false])])
+if test "$ac_cv___stdcall" = true ; then
+ AC_DEFINE(HAVE_STDCALL)
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_RESULT(no)
+fi
+AC_LANG_C
+AC_MSG_CHECKING(for ssize_t)
+AC_CACHE_VAL(ac_cv_type_ssize_t,
+ [AC_TRY_COMPILE([#include <stdio.h>
+ #include <sys/types.h>],
+ [ssize_t foo = 0;],
+ [ac_cv_type_ssize_t=true],
+ [ac_cv_type_ssize_t=false])])
+if test "$ac_cv_type_ssize_t" = true ; then
+ AC_DEFINE(HAVE_SSIZE_T)
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_RESULT(no)
+fi
+AC_STRUCT_ST_BLKSIZE
+AC_MSG_CHECKING(for siginfo_t)
+AC_CACHE_VAL(ac_cv_siginfo_t,
+ [AC_TRY_COMPILE([#define _POSIX_C_SOURCE 199506L
+ #include <signal.h>],
+ [siginfo_t* info;],
+ [ac_cv_siginfo_t=true],
+ [ac_cv_siginfo_t=false])])
+if test "$ac_cv_siginfo_t" = true ; then
+ AC_DEFINE(HAVE_SIGINFO_T)
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_RESULT(no)
+fi
+
+dnl Check for int64, uint, and uint_t.
+dnl ========================================================
+AC_MSG_CHECKING(for int64)
+AC_CACHE_VAL(ac_cv_int64,
+ [AC_TRY_COMPILE([#include <stdio.h>
+ #include <sys/types.h>],
+ [int64 foo = 0;],
+ [ac_cv_int64=true],
+ [ac_cv_int64=false])])
+if test "$ac_cv_int64" = true ; then
+ AC_DEFINE(HAVE_INT64)
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_RESULT(no)
+fi
+AC_MSG_CHECKING(for uint)
+AC_CACHE_VAL(ac_cv_uint,
+ [AC_TRY_COMPILE([#include <stdio.h>
+ #include <sys/types.h>],
+ [uint foo = 0;],
+ [ac_cv_uint=true],
+ [ac_cv_uint=false])])
+if test "$ac_cv_uint" = true ; then
+ AC_DEFINE(HAVE_UINT)
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_RESULT(no)
+fi
+AC_MSG_CHECKING(for uint_t)
+AC_CACHE_VAL(ac_cv_uint_t,
+ [AC_TRY_COMPILE([#include <stdio.h>
+ #include <sys/types.h>],
+ [uint_t foo = 0;],
+ [ac_cv_uint_t=true],
+ [ac_cv_uint_t=false])])
+if test "$ac_cv_uint_t" = true ; then
+ AC_DEFINE(HAVE_UINT_T)
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_RESULT(no)
+fi
+
+dnl On the gcc trunk (as of 2001-02-09) _GNU_SOURCE, and thus __USE_GNU,
+dnl are defined when compiling C++ but not C. Since the result of this
+dnl test is used only in C++, do it in C++.
+AC_LANG_CPLUSPLUS
+
+AC_MSG_CHECKING(for uname.domainname)
+AC_CACHE_VAL(ac_cv_have_uname_domainname_field,
+ [AC_TRY_COMPILE([#include <sys/utsname.h>],
+ [ struct utsname *res; char *domain;
+ (void)uname(res); if (res != 0) { domain = res->domainname; } ],
+ [ac_cv_have_uname_domainname_field=true],
+ [ac_cv_have_uname_domainname_field=false])])
+
+if test "$ac_cv_have_uname_domainname_field" = "true"; then
+ AC_DEFINE(HAVE_UNAME_DOMAINNAME_FIELD)
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_RESULT(no)
+fi
+
+AC_MSG_CHECKING(for uname.__domainname)
+AC_CACHE_VAL(ac_cv_have_uname_us_domainname_field,
+ [AC_TRY_COMPILE([#include <sys/utsname.h>],
+ [ struct utsname *res; char *domain;
+ (void)uname(res); if (res != 0) { domain = res->__domainname; } ],
+ [ac_cv_have_uname_us_domainname_field=true],
+ [ac_cv_have_uname_us_domainname_field=false])])
+
+if test "$ac_cv_have_uname_us_domainname_field" = "true"; then
+ AC_DEFINE(HAVE_UNAME_US_DOMAINNAME_FIELD)
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_RESULT(no)
+fi
+
+dnl Check whether we can use gcc's c++0x mode
+AC_LANG_CPLUSPLUS
+
+if test "$GNU_CXX"; then
+ _SAVE_CXXFLAGS=$CXXFLAGS
+ CXXFLAGS="$CXXFLAGS -std=gnu++0x"
+
+ AC_CACHE_CHECK(for gcc c++0x headers bug without rtti,
+ ac_cv_cxx0x_headers_bug,
+ [AC_TRY_COMPILE([#include <memory>], [],
+ ac_cv_cxx0x_headers_bug="no",
+ ac_cv_cxx0x_headers_bug="yes")])
+
+ if test "$CLANG_CXX" -a "$ac_cv_cxx0x_headers_bug" = "yes"; then
+ CXXFLAGS="$CXXFLAGS -I$_topsrcdir/build/unix/headers"
+ AC_CACHE_CHECK(whether workaround for gcc c++0x headers conflict with clang works,
+ ac_cv_cxx0x_clang_workaround,
+ [AC_TRY_COMPILE([#include <memory>], [],
+ ac_cv_cxx0x_clang_workaround="yes",
+ ac_cv_cxx0x_clang_workaround="no")])
+
+ if test "ac_cv_cxx0x_clang_workaround" = "no"; then
+ CXXFLAGS="$_SAVE_CXXFLAGS"
+ fi
+ elif test "$ac_cv_cxx0x_headers_bug" = "yes"; then
+ CXXFLAGS="$_SAVE_CXXFLAGS"
+ fi
+fi
+
+dnl Check for usable char16_t (2 bytes, unsigned)
+dnl (we might not need the unsignedness check anymore)
+AC_CACHE_CHECK(for usable char16_t (2 bytes, unsigned),
+ ac_cv_have_usable_char16_t,
+ [AC_TRY_COMPILE([$configure_static_assert_macros],
+ [CONFIGURE_STATIC_ASSERT(sizeof(char16_t) == 2);
+ CONFIGURE_STATIC_ASSERT(char16_t(-1) > char16_t(0));
+ CONFIGURE_STATIC_ASSERT(sizeof((u"hello")[0]) == 2);
+ CONFIGURE_STATIC_ASSERT(sizeof(u'a') == 2);
+ CONFIGURE_STATIC_ASSERT(u'\xFFFF' > u'\x0')],
+ ac_cv_have_usable_char16_t="yes",
+ ac_cv_have_usable_char16_t="no")])
+if test "$ac_cv_have_usable_char16_t" = "yes"; then
+ AC_DEFINE(HAVE_CPP_CHAR16_T)
+ HAVE_CPP_CHAR16_T=1
+elif test "$GNU_CXX"; then
+ CXXFLAGS="$_SAVE_CXXFLAGS"
+fi
+
+dnl Check for usable wchar_t (2 bytes, unsigned)
+dnl (we really don't need the unsignedness check anymore)
+dnl ========================================================
+
+AC_CACHE_CHECK(for usable wchar_t (2 bytes, unsigned),
+ ac_cv_have_usable_wchar_v2,
+ [AC_TRY_COMPILE([#include <stddef.h>
+ $configure_static_assert_macros],
+ [CONFIGURE_STATIC_ASSERT(sizeof(wchar_t) == 2);
+ CONFIGURE_STATIC_ASSERT((wchar_t)-1 > (wchar_t) 0)],
+ ac_cv_have_usable_wchar_v2="yes",
+ ac_cv_have_usable_wchar_v2="no")])
+if test "$ac_cv_have_usable_wchar_v2" = "yes"; then
+ AC_DEFINE(HAVE_CPP_2BYTE_WCHAR_T)
+ HAVE_CPP_2BYTE_WCHAR_T=1
+elif test "$ac_cv_have_usable_char16_t" != "yes"; then
+dnl This is really gcc-only
+dnl Do this test using CXX only since some versions of gcc
+dnl 2.95-2.97 have a signed wchar_t in c++ only and some versions
+dnl only have short-wchar support for c++.
+dnl Note that we assume that mac & win32 have short wchar (see nscore.h)
+
+ _SAVE_CXXFLAGS=$CXXFLAGS
+ CXXFLAGS="$CXXFLAGS -fshort-wchar"
+
+ AC_CACHE_CHECK(for compiler -fshort-wchar option,
+ ac_cv_have_usable_wchar_option_v2,
+ [AC_TRY_LINK([#include <stddef.h>
+ $configure_static_assert_macros],
+ [CONFIGURE_STATIC_ASSERT(sizeof(wchar_t) == 2);
+ CONFIGURE_STATIC_ASSERT((wchar_t)-1 > (wchar_t) 0)],
+ ac_cv_have_usable_wchar_option_v2="yes",
+ ac_cv_have_usable_wchar_option_v2="no")])
+
+ if test "$ac_cv_have_usable_wchar_option_v2" = "yes"; then
+ AC_DEFINE(HAVE_CPP_2BYTE_WCHAR_T)
+ HAVE_CPP_2BYTE_WCHAR_T=1
+ if test "$OS_TARGET" = Android; then
+ WCHAR_CFLAGS="-fshort-wchar -Wl,--no-wchar-size-warning"
+ CXXFLAGS="$CXXFLAGS -Wl,--no-wchar-size-warning"
+ CFLAGS="$CFLAGS -Wl,--no-wchar-size-warning"
+ DSO_LDOPTS="$DSO_LDOPTS -Wl,--no-wchar-size-warning"
+ else
+ WCHAR_CFLAGS="-fshort-wchar"
+ fi
+ else
+ CXXFLAGS=$_SAVE_CXXFLAGS
+ fi
+fi
+
+AC_LANG_C
+
+dnl Check for .hidden assembler directive and visibility attribute.
+dnl Borrowed from glibc configure.in
+dnl ===============================================================
+if test "$GNU_CC"; then
+ AC_CACHE_CHECK(for visibility(hidden) attribute,
+ ac_cv_visibility_hidden,
+ [cat > conftest.c <<EOF
+ int foo __attribute__ ((visibility ("hidden"))) = 1;
+EOF
+ ac_cv_visibility_hidden=no
+ if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
+ if egrep '\.(hidden|private_extern).*foo' conftest.s >/dev/null; then
+ ac_cv_visibility_hidden=yes
+ fi
+ fi
+ rm -f conftest.[cs]
+ ])
+ if test "$ac_cv_visibility_hidden" = "yes"; then
+ AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE)
+
+ AC_CACHE_CHECK(for visibility(default) attribute,
+ ac_cv_visibility_default,
+ [cat > conftest.c <<EOF
+ int foo __attribute__ ((visibility ("default"))) = 1;
+EOF
+ ac_cv_visibility_default=no
+ if ${CC-cc} -fvisibility=hidden -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
+ if ! egrep '\.(hidden|private_extern).*foo' conftest.s >/dev/null; then
+ ac_cv_visibility_default=yes
+ fi
+ fi
+ rm -f conftest.[cs]
+ ])
+ if test "$ac_cv_visibility_default" = "yes"; then
+ AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
+
+ AC_CACHE_CHECK(for visibility pragma support,
+ ac_cv_visibility_pragma,
+ [cat > conftest.c <<EOF
+#pragma GCC visibility push(hidden)
+ int foo_hidden = 1;
+#pragma GCC visibility push(default)
+ int foo_default = 1;
+EOF
+ ac_cv_visibility_pragma=no
+ if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
+ if egrep '\.(hidden|private_extern).*foo_hidden' conftest.s >/dev/null; then
+ if ! egrep '\.(hidden|private_extern).*foo_default' conftest.s > /dev/null; then
+ ac_cv_visibility_pragma=yes
+ fi
+ fi
+ fi
+ rm -f conftest.[cs]
+ ])
+ if test "$ac_cv_visibility_pragma" = "yes"; then
+ AC_CACHE_CHECK(For gcc visibility bug with class-level attributes (GCC bug 26905),
+ ac_cv_have_visibility_class_bug,
+ [cat > conftest.c <<EOF
+#pragma GCC visibility push(hidden)
+struct __attribute__ ((visibility ("default"))) TestStruct {
+ static void Init();
+};
+__attribute__ ((visibility ("default"))) void TestFunc() {
+ TestStruct::Init();
+}
+EOF
+ ac_cv_have_visibility_class_bug=no
+ if ! ${CXX-g++} ${CXXFLAGS} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -S -o conftest.S conftest.c > /dev/null 2>&1 ; then
+ ac_cv_have_visibility_class_bug=yes
+ else
+ if test `egrep -c '@PLT|\\$stub' conftest.S` = 0; then
+ ac_cv_have_visibility_class_bug=yes
+ fi
+ fi
+ rm -rf conftest.{c,S}
+ ])
+
+ AC_CACHE_CHECK(For x86_64 gcc visibility bug with builtins (GCC bug 20297),
+ ac_cv_have_visibility_builtin_bug,
+ [cat > conftest.c <<EOF
+#pragma GCC visibility push(hidden)
+#pragma GCC visibility push(default)
+#include <string.h>
+#pragma GCC visibility pop
+
+__attribute__ ((visibility ("default"))) void Func() {
+ char c[[100]];
+ memset(c, 0, sizeof(c));
+}
+EOF
+ ac_cv_have_visibility_builtin_bug=no
+ if ! ${CC-cc} ${CFLAGS} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -O2 -S -o conftest.S conftest.c > /dev/null 2>&1 ; then
+ ac_cv_have_visibility_builtin_bug=yes
+ else
+ if test `grep -c "@PLT" conftest.S` = 0; then
+ ac_cv_visibility_builtin_bug=yes
+ fi
+ fi
+ rm -f conftest.{c,S}
+ ])
+ if test "$ac_cv_have_visibility_builtin_bug" = "no" -a \
+ "$ac_cv_have_visibility_class_bug" = "no"; then
+ VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h'
+ WRAP_SYSTEM_INCLUDES=1
+ STL_FLAGS='-I$(DIST)/stl_wrappers'
+ WRAP_STL_INCLUDES=1
+ else
+ VISIBILITY_FLAGS='-fvisibility=hidden'
+ fi # have visibility pragma bug
+ fi # have visibility pragma
+ fi # have visibility(default) attribute
+ fi # have visibility(hidden) attribute
+fi # GNU_CC
+
+# visibility hidden flag for Sun Studio on Solaris
+if test "$SOLARIS_SUNPRO_CC"; then
+VISIBILITY_FLAGS='-xldscope=hidden'
+fi # Sun Studio on Solaris
+
+AC_SUBST(WRAP_SYSTEM_INCLUDES)
+AC_SUBST(VISIBILITY_FLAGS)
+
+MOZ_GCC_PR49911
+MOZ_GCC_PR39608
+if test "$OS_TARGET" != WINNT; then
+ # Only run this test with clang on non-Windows platforms, because clang
+ # cannot do enough code gen for now to make this test work correctly.
+ MOZ_LLVM_PR8927
+fi
+
+dnl Check for __force_align_arg_pointer__ for SSE2 on gcc
+dnl ========================================================
+if test "$GNU_CC"; then
+ CFLAGS_save="${CFLAGS}"
+ CFLAGS="${CFLAGS} -Werror"
+ AC_CACHE_CHECK(for __force_align_arg_pointer__ attribute,
+ ac_cv_force_align_arg_pointer,
+ [AC_TRY_COMPILE([__attribute__ ((__force_align_arg_pointer__)) void test() {}],
+ [],
+ ac_cv_force_align_arg_pointer="yes",
+ ac_cv_force_align_arg_pointer="no")])
+ CFLAGS="${CFLAGS_save}"
+ if test "$ac_cv_force_align_arg_pointer" = "yes"; then
+ HAVE_GCC_ALIGN_ARG_POINTER=1
+ else
+ HAVE_GCC_ALIGN_ARG_POINTER=
+ fi
+fi
+AC_SUBST(HAVE_GCC_ALIGN_ARG_POINTER)
+
+dnl Checks for header files.
+dnl ========================================================
+AC_HEADER_DIRENT
+case "$target_os" in
+freebsd*|openbsd*)
+# for stuff like -lXshm
+ CPPFLAGS="${CPPFLAGS} ${X_CFLAGS}"
+ ;;
+esac
+MOZ_CHECK_COMMON_HEADERS
+
+dnl These are all the places some variant of statfs can be hiding.
+MOZ_CHECK_HEADERS(sys/statvfs.h sys/statfs.h sys/vfs.h sys/mount.h)
+
+dnl Quota support
+MOZ_CHECK_HEADERS(sys/quota.h sys/sysmacros.h)
+MOZ_CHECK_HEADERS([linux/quota.h],,,[#include <sys/socket.h>])
+
+dnl SCTP support - needs various network include headers
+MOZ_CHECK_HEADERS([linux/if_addr.h linux/rtnetlink.h],,,[#include <sys/socket.h>])
+
+MOZ_CHECK_HEADERS(sys/types.h netinet/in.h byteswap.h)
+
+dnl Check for sin_len and sin6_len - used by SCTP; only appears in Mac/*BSD generally
+AC_CACHE_CHECK(for sockaddr_in.sin_len,
+ ac_cv_sockaddr_in_sin_len,
+ [AC_TRY_COMPILE([#ifdef HAVE_SYS_TYPES_H
+ #include <sys/types.h>
+ #endif
+ #include <netinet/in.h>
+ struct sockaddr_in x;
+ void *foo = (void*) &x.sin_len;],
+ [],
+ [ac_cv_sockaddr_in_sin_len=true],
+ [ac_cv_sockaddr_in_sin_len=false])])
+if test "$ac_cv_sockaddr_in_sin_len" = true ; then
+ AC_DEFINE(HAVE_SIN_LEN)
+dnl HAVE_CONN_LEN must be the same as HAVE_SIN_LEN (and HAVE_SIN6_LEN too)
+ AC_DEFINE(HAVE_SCONN_LEN)
+fi
+
+AC_CACHE_CHECK(for sockaddr_in6.sin6_len,
+ ac_cv_sockaddr_in6_sin6_len,
+ [AC_TRY_COMPILE([#ifdef HAVE_SYS_TYPES_H
+ #include <sys/types.h>
+ #endif
+ #include <netinet/in.h>
+ struct sockaddr_in6 x;
+ void *foo = (void*) &x.sin6_len;],
+ [],
+ [ac_cv_sockaddr_in6_sin6_len=true],
+ [ac_cv_sockaddr_in6_sin6_len=false])])
+if test "$ac_cv_sockaddr_in6_sin6_len" = true ; then
+ AC_DEFINE(HAVE_SIN6_LEN)
+fi
+
+AC_CACHE_CHECK(for sockaddr.sa_len,
+ ac_cv_sockaddr_sa_len,
+ [AC_TRY_COMPILE([#ifdef HAVE_SYS_TYPES_H
+ #include <sys/types.h>
+ #endif
+ #include <sys/socket.h>
+ struct sockaddr x;
+ void *foo = (void*) &x.sa_len;],
+ [],
+ [ac_cv_sockaddr_sa_len=true],
+ [ac_cv_sockaddr_sa_len=false])])
+if test "$ac_cv_sockaddr_sa_len" = true ; then
+ AC_DEFINE(HAVE_SA_LEN)
+fi
+
+dnl Check whether the compiler supports the new-style C++ standard
+dnl library headers (i.e. <new>) or needs the old "new.h"
+AC_LANG_CPLUSPLUS
+NEW_H=new.h
+MOZ_CHECK_HEADER(new, [NEW_H=new])
+AC_DEFINE_UNQUOTED(NEW_H, <$NEW_H>)
+AC_LANG_C
+
+AC_ARG_ENABLE(dtrace,
+ [ --enable-dtrace build with dtrace support if available (default=no)],
+ [enable_dtrace="yes"],)
+if test "x$enable_dtrace" = "xyes"; then
+ MOZ_CHECK_HEADER(sys/sdt.h, HAVE_DTRACE=1)
+ if test -n "$HAVE_DTRACE"; then
+ AC_DEFINE(INCLUDE_MOZILLA_DTRACE)
+ else
+ AC_MSG_ERROR([dtrace enabled but sys/sdt.h not found]);
+ fi
+fi
+AC_SUBST(HAVE_DTRACE)
+
+case $target in
+*-aix4.3*|*-aix5*)
+ ;;
+*)
+ MOZ_CHECK_HEADERS(sys/cdefs.h)
+ ;;
+esac
+
+MOZ_LINUX_PERF_EVENT
+
+dnl Checks for libraries.
+dnl ========================================================
+case $target in
+*-hpux11.*)
+ ;;
+*)
+ AC_CHECK_LIB(c_r, gethostbyname_r)
+ ;;
+esac
+
+dnl We don't want to link with libdl even if it's present on OS X, since
+dnl it's not used and not part of the default installation. OS/2 has dlfcn
+dnl in libc.
+dnl We don't want to link against libm or libpthread on Darwin since
+dnl they both are just symlinks to libSystem and explicitly linking
+dnl against libSystem causes issues when debugging (see bug 299601).
+case $target in
+*-darwin*)
+ ;;
+*-os2*)
+ ;;
+*)
+ AC_SEARCH_LIBS(dlopen, dl,
+ MOZ_CHECK_HEADER(dlfcn.h,
+ AC_DEFINE(HAVE_DLOPEN)))
+ ;;
+esac
+
+_SAVE_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS -D_GNU_SOURCE"
+AC_CHECK_FUNCS(dladdr memmem)
+CFLAGS="$_SAVE_CFLAGS"
+
+if test ! "$GNU_CXX"; then
+
+ case $target in
+ *-aix*)
+ AC_CHECK_LIB(C_r, demangle)
+ ;;
+ *)
+ AC_CHECK_LIB(C, demangle)
+ ;;
+ esac
+fi
+
+dnl OS/2 has socket in libc.
+case $target in
+*-os2*)
+ ;;
+*)
+ AC_CHECK_LIB(socket, socket)
+esac
+
+XLDFLAGS="$X_LIBS"
+XLIBS="$X_EXTRA_LIBS"
+
+dnl ========================================================
+dnl Checks for X libraries.
+dnl Ordering is important.
+dnl Xt is dependent upon SM as of X11R6
+dnl ========================================================
+if test "$no_x" = "yes"; then
+ AC_DEFINE(NO_X11)
+else
+ AC_DEFINE_UNQUOTED(FUNCPROTO,15)
+ XLIBS="-lX11 $XLIBS"
+ _SAVE_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$XLDFLAGS $LDFLAGS"
+ AC_CHECK_LIB(X11, XDrawLines, [X11_LIBS="-lX11"],
+ [MISSING_X="$MISSING_X -lX11"], $XLIBS)
+ AC_CHECK_LIB(Xext, XextAddDisplay, [XEXT_LIBS="-lXext"],
+ [MISSING_X="$MISSING_X -lXext"], $XLIBS)
+
+ AC_CHECK_LIB(Xt, XtFree, [ XT_LIBS="-lXt"], [
+ unset ac_cv_lib_Xt_XtFree
+ AC_CHECK_LIB(ICE, IceFlush, [XT_LIBS="-lICE $XT_LIBS"],, $XT_LIBS $XLIBS)
+ AC_CHECK_LIB(SM, SmcCloseConnection, [XT_LIBS="-lSM $XT_LIBS"],, $XT_LIBS $XLIBS)
+ AC_CHECK_LIB(Xt, XtFree, [ XT_LIBS="-lXt $XT_LIBS"],
+ [MISSING_X="$MISSING_X -lXt"], $X_PRE_LIBS $XT_LIBS $XLIBS)
+ ])
+
+ # AIX needs the motif library linked before libXt to prevent
+ # crashes in plugins linked against Motif - Bug #98892
+ case "${target_os}" in
+ aix*)
+ XT_LIBS="-lXm $XT_LIBS"
+ ;;
+ esac
+
+ dnl ========================================================
+ dnl = Check for XShm
+ dnl ========================================================
+ AC_CHECK_LIB(Xext, XShmCreateImage, _HAVE_XSHM_XEXT=1,,
+ $XLIBS $XEXT_LIBS)
+
+ dnl ========================================================
+ dnl = Check for Xss
+ dnl ========================================================
+ MOZ_CHECK_HEADER(X11/extensions/scrnsaver.h,
+ AC_CHECK_LIB(Xss, XScreenSaverQueryInfo,
+ [XSS_LIBS="-lXss $XEXT_LIBS $XLIBS"
+ AC_DEFINE(HAVE_LIBXSS)],, $XEXT_LIBS $XLIBS))
+
+ LDFLAGS="$_SAVE_LDFLAGS"
+fi # $no_x
+
+AC_SUBST(XCFLAGS)
+AC_SUBST(XLDFLAGS)
+AC_SUBST(XLIBS)
+AC_SUBST(XEXT_LIBS)
+AC_SUBST(XT_LIBS)
+AC_SUBST(XSS_LIBS)
+
+dnl ========================================================
+dnl = pthread support
+dnl = Start by checking whether the system support pthreads
+dnl ========================================================
+case "$target_os" in
+darwin*)
+ MOZ_USE_PTHREADS=1
+ ;;
+*)
+ MOZ_CHECK_PTHREADS(pthreads,
+ MOZ_USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lpthreads",
+ MOZ_CHECK_PTHREADS(pthread,
+ MOZ_USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lpthread",
+ MOZ_CHECK_PTHREADS(c_r,
+ MOZ_USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lc_r",
+ MOZ_CHECK_PTHREADS(c,
+ MOZ_USE_PTHREADS=1
+ )
+ )
+ )
+ )
+ ;;
+esac
+
+dnl ========================================================
+dnl Check the command line for --with-pthreads
+dnl ========================================================
+MOZ_ARG_WITH_BOOL(pthreads,
+[ --with-pthreads Force use of system pthread library with NSPR ],
+[ if test "$MOZ_USE_PTHREADS"x = x; then
+ AC_MSG_ERROR([ --with-pthreads specified for a system without pthread support ]);
+fi],
+ MOZ_USE_PTHREADS=
+ _PTHREAD_LDFLAGS=
+)
+
+dnl ========================================================
+dnl Do the platform specific pthread hackery
+dnl ========================================================
+if test "$MOZ_USE_PTHREADS"x != x
+then
+ dnl
+ dnl See if -pthread is supported.
+ dnl
+ rm -f conftest*
+ ac_cv_have_dash_pthread=no
+ AC_MSG_CHECKING(whether ${CC-cc} accepts -pthread)
+ echo 'int main() { return 0; }' | cat > conftest.c
+ ${CC-cc} -pthread -o conftest conftest.c > conftest.out 2>&1
+ if test $? -eq 0; then
+ if test -z "`egrep -i '(unrecognize|unknown)' conftest.out | grep pthread`" -a -z "`egrep -i '(error|incorrect)' conftest.out`" ; then
+ ac_cv_have_dash_pthread=yes
+ case "$target_os" in
+ freebsd*)
+# Freebsd doesn't use -pthread for compiles, it uses them for linking
+ ;;
+ *)
+ CFLAGS="$CFLAGS -pthread"
+ CXXFLAGS="$CXXFLAGS -pthread"
+ ;;
+ esac
+ fi
+ fi
+ rm -f conftest*
+ AC_MSG_RESULT($ac_cv_have_dash_pthread)
+
+ dnl
+ dnl See if -pthreads is supported.
+ dnl
+ ac_cv_have_dash_pthreads=no
+ if test "$ac_cv_have_dash_pthread" = "no"; then
+ AC_MSG_CHECKING(whether ${CC-cc} accepts -pthreads)
+ echo 'int main() { return 0; }' | cat > conftest.c
+ ${CC-cc} -pthreads -o conftest conftest.c > conftest.out 2>&1
+ if test $? -eq 0; then
+ if test -z "`egrep -i '(unrecognize|unknown)' conftest.out | grep pthreads`" -a -z "`egrep -i '(error|incorrect)' conftest.out`" ; then
+ ac_cv_have_dash_pthreads=yes
+ CFLAGS="$CFLAGS -pthreads"
+ CXXFLAGS="$CXXFLAGS -pthreads"
+ fi
+ fi
+ rm -f conftest*
+ AC_MSG_RESULT($ac_cv_have_dash_pthreads)
+ fi
+
+ case "$target" in
+ *-*-freebsd*)
+ AC_DEFINE(_REENTRANT)
+ AC_DEFINE(_THREAD_SAFE)
+ dnl -pthread links in -lpthread, so don't specify it explicitly.
+ if test "$ac_cv_have_dash_pthread" = "yes"; then
+ _PTHREAD_LDFLAGS="-pthread"
+ fi
+ ;;
+
+ *-*-openbsd*|*-*-bsdi*)
+ AC_DEFINE(_REENTRANT)
+ AC_DEFINE(_THREAD_SAFE)
+ dnl -pthread links in -lc_r, so don't specify it explicitly.
+ if test "$ac_cv_have_dash_pthread" = "yes"; then
+ _PTHREAD_LDFLAGS="-pthread"
+ fi
+ ;;
+
+ *-*-linux*|*-*-kfreebsd*-gnu|*-*-gnu*)
+ AC_DEFINE(_REENTRANT)
+ ;;
+
+ *-aix4.3*|*-aix5*)
+ AC_DEFINE(_REENTRANT)
+ ;;
+
+ *-hpux11.*)
+ AC_DEFINE(_REENTRANT)
+ ;;
+
+ *-*-solaris*)
+ AC_DEFINE(_REENTRANT)
+ if test "$SOLARIS_SUNPRO_CC"; then
+ CFLAGS="$CFLAGS -mt"
+ CXXFLAGS="$CXXFLAGS -mt"
+ fi
+ ;;
+ esac
+ LDFLAGS="${_PTHREAD_LDFLAGS} ${LDFLAGS}"
+ AC_SUBST(MOZ_USE_PTHREADS)
+fi
+
+
+dnl Checks for library functions.
+dnl ========================================================
+AC_PROG_GCC_TRADITIONAL
+AC_FUNC_MEMCMP
+AC_CHECK_FUNCS(random strerror lchown fchmod snprintf memmove rint stat64 lstat64 truncate64 setbuf isatty)
+AC_CHECK_FUNCS(statvfs64 statvfs statfs64 statfs)
+AC_CHECK_FUNCS(flockfile getpagesize)
+AC_CHECK_FUNCS(localtime_r strtok_r)
+
+dnl check for clock_gettime(), the CLOCK_MONOTONIC clock
+AC_CACHE_CHECK(for clock_gettime(CLOCK_MONOTONIC),
+ ac_cv_clock_monotonic,
+ [for libs in "" -lrt; do
+ _SAVE_LIBS="$LIBS"
+ LIBS="$LIBS $libs"
+ AC_TRY_LINK([#include <time.h>],
+ [ struct timespec ts;
+ clock_gettime(CLOCK_MONOTONIC, &ts); ],
+ ac_cv_clock_monotonic=$libs
+ LIBS="$_SAVE_LIBS"
+ break,
+ ac_cv_clock_monotonic=no)
+ LIBS="$_SAVE_LIBS"
+ done])
+if test "$ac_cv_clock_monotonic" != "no"; then
+ HAVE_CLOCK_MONOTONIC=1
+ REALTIME_LIBS=$ac_cv_clock_monotonic
+ AC_DEFINE(HAVE_CLOCK_MONOTONIC)
+ AC_SUBST(HAVE_CLOCK_MONOTONIC)
+ AC_SUBST(REALTIME_LIBS)
+fi
+
+dnl check for wcrtomb/mbrtowc
+dnl =======================================================================
+if test -z "$MACOS_DEPLOYMENT_TARGET" || test "$MACOS_DEPLOYMENT_TARGET" -ge "100300"; then
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+AC_CACHE_CHECK(for wcrtomb,
+ ac_cv_have_wcrtomb,
+ [AC_TRY_LINK([#include <wchar.h>],
+ [mbstate_t ps={0};wcrtomb(0,'f',&ps);],
+ ac_cv_have_wcrtomb="yes",
+ ac_cv_have_wcrtomb="no")])
+if test "$ac_cv_have_wcrtomb" = "yes"; then
+ AC_DEFINE(HAVE_WCRTOMB)
+fi
+AC_CACHE_CHECK(for mbrtowc,
+ ac_cv_have_mbrtowc,
+ [AC_TRY_LINK([#include <wchar.h>],
+ [mbstate_t ps={0};mbrtowc(0,0,0,&ps);],
+ ac_cv_have_mbrtowc="yes",
+ ac_cv_have_mbrtowc="no")])
+if test "$ac_cv_have_mbrtowc" = "yes"; then
+ AC_DEFINE(HAVE_MBRTOWC)
+fi
+AC_LANG_RESTORE
+fi
+
+AC_CACHE_CHECK(
+ [for res_ninit()],
+ ac_cv_func_res_ninit,
+ [AC_TRY_LINK([
+ #ifdef linux
+ #define _BSD_SOURCE 1
+ #endif
+ #include <resolv.h>
+ ],
+ [int foo = res_ninit(&_res);],
+ [ac_cv_func_res_ninit=yes],
+ [ac_cv_func_res_ninit=no])
+ ])
+
+if test "$ac_cv_func_res_ninit" = "yes"; then
+ AC_DEFINE(HAVE_RES_NINIT)
+dnl must add the link line we do something as foolish as this... dougt
+dnl else
+dnl AC_CHECK_LIB(bind, res_ninit, AC_DEFINE(HAVE_RES_NINIT),
+dnl AC_CHECK_LIB(resolv, res_ninit, AC_DEFINE(HAVE_RES_NINIT)))
+fi
+
+AC_LANG_CPLUSPLUS
+AC_CACHE_CHECK(
+ [for gnu_get_libc_version()],
+ ac_cv_func_gnu_get_libc_version,
+ [AC_TRY_LINK([
+ #ifdef HAVE_GNU_LIBC_VERSION_H
+ #include <gnu/libc-version.h>
+ #endif
+ ],
+ [const char *glibc_version = gnu_get_libc_version();],
+ [ac_cv_func_gnu_get_libc_version=yes],
+ [ac_cv_func_gnu_get_libc_version=no]
+ )]
+ )
+
+if test "$ac_cv_func_gnu_get_libc_version" = "yes"; then
+ AC_DEFINE(HAVE_GNU_GET_LIBC_VERSION)
+fi
+
+case $target_os in
+ darwin*|mingw*|os2*)
+ ;;
+ *)
+
+AC_CHECK_LIB(c, iconv, [_ICONV_LIBS="$_ICONV_LIBS"],
+ AC_CHECK_LIB(iconv, iconv, [_ICONV_LIBS="$_ICONV_LIBS -liconv"],
+ AC_CHECK_LIB(iconv, libiconv, [_ICONV_LIBS="$_ICONV_LIBS -liconv"])))
+_SAVE_LIBS=$LIBS
+LIBS="$LIBS $_ICONV_LIBS"
+AC_CACHE_CHECK(
+ [for iconv()],
+ ac_cv_func_iconv,
+ [AC_TRY_LINK([
+ #include <stdlib.h>
+ #include <iconv.h>
+ ],
+ [
+ iconv_t h = iconv_open("", "");
+ iconv(h, NULL, NULL, NULL, NULL);
+ iconv_close(h);
+ ],
+ [ac_cv_func_iconv=yes],
+ [ac_cv_func_iconv=no]
+ )]
+ )
+if test "$ac_cv_func_iconv" = "yes"; then
+ AC_DEFINE(HAVE_ICONV)
+ DYNAMIC_XPCOM_LIBS="$DYNAMIC_XPCOM_LIBS $_ICONV_LIBS"
+ LIBXUL_LIBS="$LIBXUL_LIBS $_ICONV_LIBS"
+ LIBICONV="$_ICONV_LIBS"
+ AC_CACHE_CHECK(
+ [for iconv() with const input],
+ ac_cv_func_const_iconv,
+ [AC_TRY_COMPILE([
+ #include <stdlib.h>
+ #include <iconv.h>
+ ],
+ [
+ const char *input = "testing";
+ iconv_t h = iconv_open("", "");
+ iconv(h, &input, NULL, NULL, NULL);
+ iconv_close(h);
+ ],
+ [ac_cv_func_const_iconv=yes],
+ [ac_cv_func_const_iconv=no]
+ )]
+ )
+ if test "$ac_cv_func_const_iconv" = "yes"; then
+ AC_DEFINE(HAVE_ICONV_WITH_CONST_INPUT)
+ fi
+fi
+LIBS=$_SAVE_LIBS
+
+ ;;
+esac
+
+AM_LANGINFO_CODESET
+
+AC_LANG_C
+
+dnl **********************
+dnl *** va_copy checks ***
+dnl **********************
+dnl we currently check for all three va_copy possibilities, so we get
+dnl all results in config.log for bug reports.
+AC_MSG_CHECKING(for an implementation of va_copy())
+AC_CACHE_VAL(ac_cv_va_copy,[
+ AC_TRY_RUN([
+ #include <stdarg.h>
+ void f (int i, ...) {
+ va_list args1, args2;
+ va_start (args1, i);
+ va_copy (args2, args1);
+ if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
+ exit (1);
+ va_end (args1); va_end (args2);
+ }
+ int main() { f (0, 42); return 0; }],
+ ac_cv_va_copy=yes,
+ ac_cv_va_copy=no,
+ ac_cv_va_copy=no
+ )
+])
+AC_MSG_RESULT($ac_cv_va_copy)
+AC_MSG_CHECKING(for an implementation of __va_copy())
+AC_CACHE_VAL(ac_cv___va_copy,[
+ AC_TRY_RUN([
+ #include <stdarg.h>
+ void f (int i, ...) {
+ va_list args1, args2;
+ va_start (args1, i);
+ __va_copy (args2, args1);
+ if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
+ exit (1);
+ va_end (args1); va_end (args2);
+ }
+ int main() { f (0, 42); return 0; }],
+ ac_cv___va_copy=yes,
+ ac_cv___va_copy=no,
+ ac_cv___va_copy=no
+ )
+])
+AC_MSG_RESULT($ac_cv___va_copy)
+AC_MSG_CHECKING(whether va_lists can be copied by value)
+AC_CACHE_VAL(ac_cv_va_val_copy,[
+ AC_TRY_RUN([
+ #include <stdarg.h>
+ void f (int i, ...) {
+ va_list args1, args2;
+ va_start (args1, i);
+ args2 = args1;
+ if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
+ exit (1);
+ va_end (args1); va_end (args2);
+ }
+ int main() { f (0, 42); return 0; }],
+ ac_cv_va_val_copy=yes,
+ ac_cv_va_val_copy=no,
+ ac_cv_va_val_copy=yes
+ )
+])
+if test "x$ac_cv_va_copy" = "xyes"; then
+ AC_DEFINE(VA_COPY, va_copy)
+ AC_DEFINE(HAVE_VA_COPY)
+elif test "x$ac_cv___va_copy" = "xyes"; then
+ AC_DEFINE(VA_COPY, __va_copy)
+ AC_DEFINE(HAVE_VA_COPY)
+fi
+
+if test "x$ac_cv_va_val_copy" = "xno"; then
+ AC_DEFINE(HAVE_VA_LIST_AS_ARRAY)
+fi
+AC_MSG_RESULT($ac_cv_va_val_copy)
+
+dnl ===================================================================
+dnl ========================================================
+dnl Put your C++ language/feature checks below
+dnl ========================================================
+AC_LANG_CPLUSPLUS
+
+ARM_ABI_PREFIX=
+if test "$GNU_CC"; then
+ if test "$CPU_ARCH" = "arm" ; then
+ AC_CACHE_CHECK(for ARM EABI,
+ ac_cv_gcc_arm_eabi,
+ [AC_TRY_COMPILE([],
+ [
+#if defined(__ARM_EABI__)
+ return 0;
+#else
+#error Not ARM EABI.
+#endif
+ ],
+ ac_cv_gcc_arm_eabi="yes",
+ ac_cv_gcc_arm_eabi="no")])
+ if test "$ac_cv_gcc_arm_eabi" = "yes"; then
+ HAVE_ARM_EABI=1
+ ARM_ABI_PREFIX=eabi-
+ else
+ ARM_ABI_PREFIX=oabi-
+ fi
+ fi
+
+ TARGET_COMPILER_ABI="${TARGET_COMPILER_ABI-${ARM_ABI_PREFIX}gcc3}"
+fi
+
+dnl Check to see if we can resolve ambiguity with |using|.
+AC_CACHE_CHECK(whether the C++ \"using\" keyword resolves ambiguity,
+ ac_cv_cpp_ambiguity_resolving_using,
+ [AC_TRY_COMPILE(class X {
+ public: int go(const X&) {return 3;}
+ int jo(const X&) {return 3;}
+ };
+ class Y : public X {
+ public: int go(int) {return 2;}
+ int jo(int) {return 2;}
+ using X::jo;
+ private: using X::go;
+ };,
+ X x; Y y; y.jo(x);,
+ ac_cv_cpp_ambiguity_resolving_using=yes,
+ ac_cv_cpp_ambiguity_resolving_using=no)])
+if test "$ac_cv_cpp_ambiguity_resolving_using" = yes ; then
+ AC_DEFINE(HAVE_CPP_AMBIGUITY_RESOLVING_USING)
+fi
+
+dnl See if a dynamic_cast to void* gives the most derived object.
+AC_CACHE_CHECK(for C++ dynamic_cast to void*,
+ ac_cv_cpp_dynamic_cast_void_ptr,
+ [AC_TRY_RUN([class X { int i; public: virtual ~X() { } };
+ class Y { int j; public: virtual ~Y() { } };
+ class Z : public X, public Y { int k; };
+
+ int main() {
+ Z mdo;
+ X *subx = (X*)&mdo;
+ Y *suby = (Y*)&mdo;
+ return !((((void*)&mdo != (void*)subx) &&
+ ((void*)&mdo == dynamic_cast<void*>(subx))) ||
+ (((void*)&mdo != (void*)suby) &&
+ ((void*)&mdo == dynamic_cast<void*>(suby))));
+ }],
+ ac_cv_cpp_dynamic_cast_void_ptr=yes,
+ ac_cv_cpp_dynamic_cast_void_ptr=no,
+ ac_cv_cpp_dynamic_cast_void_ptr=no)])
+if test "$ac_cv_cpp_dynamic_cast_void_ptr" = yes ; then
+ AC_DEFINE(HAVE_CPP_DYNAMIC_CAST_TO_VOID_PTR)
+fi
+
+
+dnl note that this one is reversed - if the test fails, then
+dnl we require implementations of unused virtual methods. Which
+dnl really blows because it means we'll have useless vtable
+dnl bloat.
+AC_CACHE_CHECK(whether C++ requires implementation of unused virtual methods,
+ ac_cv_cpp_unused_required,
+ [AC_TRY_LINK(class X {private: virtual void never_called();};,
+ X x;,
+ ac_cv_cpp_unused_required=no,
+ ac_cv_cpp_unused_required=yes)])
+if test "$ac_cv_cpp_unused_required" = yes ; then
+ AC_DEFINE(NEED_CPP_UNUSED_IMPLEMENTATIONS)
+fi
+
+
+dnl Some compilers have trouble comparing a constant reference to a templatized
+dnl class to zero, and require an explicit operator==() to be defined that takes
+dnl an int. This test separates the strong from the weak.
+
+AC_CACHE_CHECK(for trouble comparing to zero near std::operator!=(),
+ ac_cv_trouble_comparing_to_zero,
+ [AC_TRY_COMPILE([#include <algorithm>
+ template <class T> class Foo {};
+ class T2;
+ template <class T> int operator==(const T2*, const T&) { return 0; }
+ template <class T> int operator!=(const T2*, const T&) { return 0; }],
+ [Foo<int> f; return (0 != f);],
+ ac_cv_trouble_comparing_to_zero=no,
+ ac_cv_trouble_comparing_to_zero=yes)])
+if test "$ac_cv_trouble_comparing_to_zero" = yes ; then
+ AC_DEFINE(HAVE_CPP_TROUBLE_COMPARING_TO_ZERO)
+fi
+
+# try harder, when checking for __thread support, see bug 521750 comment #33 and below
+# We pass MOZ_OPTIMIZE_LDFLAGS to the linker because if dead_strip is
+# enabled, the linker in xcode 4.1 will crash. Without this it would crash when
+# linking XUL.
+_SAVE_LDFLAGS=$LDFLAGS
+LDFLAGS="$LDFLAGS $DSO_PIC_CFLAGS $DSO_LDOPTS $MOZ_OPTIMIZE_LDFLAGS"
+AC_CACHE_CHECK(for __thread keyword for TLS variables,
+ ac_cv_thread_keyword,
+ [AC_TRY_LINK([__thread bool tlsIsMainThread = false;],
+ [return tlsIsMainThread;],
+ ac_cv_thread_keyword=yes,
+ ac_cv_thread_keyword=no)])
+LDFLAGS=$_SAVE_LDFLAGS
+# The custom dynamic linker doesn't support TLS variables
+MOZ_TLS=
+if test "$ac_cv_thread_keyword" = yes -a "$MOZ_LINKER" != 1; then
+ # mips builds fail with TLS variables because of a binutils bug.
+ # See bug 528687
+ # OpenBSD doesn't have TLS support, and the test succeeds with clang++
+ case "${target}" in
+ mips*-*)
+ :
+ ;;
+ *-android*|*-linuxandroid*)
+ :
+ ;;
+ *-openbsd*)
+ :
+ ;;
+ *)
+ AC_DEFINE(HAVE_THREAD_TLS_KEYWORD)
+ MOZ_TLS=1
+ ;;
+ esac
+fi
+
+dnl Using the custom linker on ARMv6 requires 16k alignment of ELF segments.
+if test -n "$MOZ_LINKER"; then
+ if test "$CPU_ARCH" = arm; then
+ dnl When building for < ARMv7, we need to ensure 16k alignment of ELF segments
+ if test -n "$ARM_ARCH" && test "$ARM_ARCH" -lt 7; then
+ LDFLAGS="$LDFLAGS -Wl,-z,max-page-size=0x4000 -Wl,-z,common-page-size=0x4000"
+ _SUBDIR_LDFLAGS="$_SUBDIR_LDFLAGS -Wl,-z,max-page-size=0x4000 -Wl,-z,common-page-size=0x4000"
+ fi
+ fi
+fi
+
+dnl The custom linker doesn't support text relocations, but NDK >= r6b
+dnl creates some (http://code.google.com/p/android/issues/detail?id=23203)
+dnl We however want to avoid these text relocations, and this can be done
+dnl by making gcc not link crtbegin and crtend. In the broken NDKs, crtend
+dnl doesn't contain anything at all, beside placeholders for some sections,
+dnl and crtbegin only contains a finalizer function that calls
+dnl __cxa_finalize. The custom linker actually takes care of calling
+dnl __cxa_finalize when the library doesn't call it itself, which makes it
+dnl safe not to link crtbegin. Besides, previous versions of the NDK didn't
+dnl link crtbegin and crtend at all.
+if test -n "$MOZ_LINKER" -a "$OS_TARGET" = "Android"; then
+ AC_CACHE_CHECK([whether the CRT objects have text relocations],
+ ac_cv_crt_has_text_relocations,
+ [echo 'int foo() { return 0; }' > conftest.cpp
+ if AC_TRY_COMMAND(${CXX-g++} -o conftest${DLL_SUFFIX} $CXXFLAGS $DSO_LDOPTS $LDFLAGS conftest.cpp $LIBS 1>&5) &&
+ test -s conftest${DLL_SUFFIX}; then
+ if ${TOOLCHAIN_PREFIX}readelf -d conftest${DLL_SUFFIX} | grep TEXTREL > /dev/null; then
+ ac_cv_crt_has_text_relocations=yes
+ else
+ ac_cv_crt_has_text_relocations=no
+ fi
+ else
+ AC_ERROR([couldn't compile a simple C file])
+ fi
+ rm -rf conftest*])
+ if test "$ac_cv_crt_has_text_relocations" = yes; then
+ dnl While we want libraries to skip the CRT files, we don't want
+ dnl executables to be treated the same way. We thus set the flag
+ dnl in DSO_LDOPTS and not LDFLAGS. However, to pass it to nspr,
+ dnl we need to use LDFLAGS because nspr doesn't inherit DSO_LDOPTS.
+ dnl Using LDFLAGS in nspr is safe, since we only really build
+ dnl libraries there.
+ DSO_LDOPTS="$DSO_LDOPTS -nostartfiles"
+ NSPR_LDFLAGS="$NSPR_LDFLAGS -nostartfiles"
+ fi
+fi
+
+dnl Check for the existence of various allocation headers/functions
+
+MALLOC_HEADERS="malloc.h malloc_np.h malloc/malloc.h sys/malloc.h"
+MALLOC_H=
+
+for file in $MALLOC_HEADERS; do
+ MOZ_CHECK_HEADER($file, [MALLOC_H=$file])
+ if test "$MALLOC_H" != ""; then
+ AC_DEFINE_UNQUOTED(MALLOC_H, <$MALLOC_H>)
+ break
+ fi
+done
+
+MOZ_ALLOCATING_FUNCS="strndup posix_memalign memalign valloc"
+AC_CHECK_FUNCS(strndup posix_memalign memalign valloc)
+
+AC_CHECK_FUNCS(malloc_usable_size)
+
+dnl See if compiler supports some gcc-style attributes
+
+AC_CACHE_CHECK(for __attribute__((always_inline)),
+ ac_cv_attribute_always_inline,
+ [AC_TRY_COMPILE([inline void f(void) __attribute__((always_inline));],
+ [],
+ ac_cv_attribute_always_inline=yes,
+ ac_cv_attribute_always_inline=no)])
+
+AC_CACHE_CHECK(for __attribute__((malloc)),
+ ac_cv_attribute_malloc,
+ [AC_TRY_COMPILE([void* f(int) __attribute__((malloc));],
+ [],
+ ac_cv_attribute_malloc=yes,
+ ac_cv_attribute_malloc=no)])
+
+AC_CACHE_CHECK(for __attribute__((warn_unused_result)),
+ ac_cv_attribute_warn_unused,
+ [AC_TRY_COMPILE([int f(void) __attribute__((warn_unused_result));],
+ [],
+ ac_cv_attribute_warn_unused=yes,
+ ac_cv_attribute_warn_unused=no)])
+
+dnl End of C++ language/feature checks
+AC_LANG_C
+
+dnl ========================================================
+dnl = Internationalization checks
+dnl ========================================================
+dnl
+dnl Internationalization and Locale support is different
+dnl on various UNIX platforms. Checks for specific i18n
+dnl features go here.
+
+dnl check for LC_MESSAGES
+AC_CACHE_CHECK(for LC_MESSAGES,
+ ac_cv_i18n_lc_messages,
+ [AC_TRY_COMPILE([#include <locale.h>],
+ [int category = LC_MESSAGES;],
+ ac_cv_i18n_lc_messages=yes,
+ ac_cv_i18n_lc_messages=no)])
+if test "$ac_cv_i18n_lc_messages" = yes; then
+ AC_DEFINE(HAVE_I18N_LC_MESSAGES)
+fi
+
+AC_HAVE_FUNCS(localeconv)
+fi # ! SKIP_COMPILER_CHECKS
+
+TARGET_XPCOM_ABI=
+if test -n "${CPU_ARCH}" -a -n "${TARGET_COMPILER_ABI}"; then
+ TARGET_XPCOM_ABI="${CPU_ARCH}-${TARGET_COMPILER_ABI}"
+fi
+
+dnl Mozilla specific options
+dnl ========================================================
+dnl The macros used for command line options
+dnl are defined in build/autoconf/altoptions.m4.
+
+dnl If the compiler supports these attributes, define them as
+dnl convenience macros.
+if test "$ac_cv_attribute_malloc" = yes ; then
+ AC_DEFINE(NS_ATTR_MALLOC, [__attribute__((malloc))])
+else
+ AC_DEFINE(NS_ATTR_MALLOC,)
+fi
+
+if test "$ac_cv_attribute_warn_unused" = yes ; then
+ AC_DEFINE(NS_WARN_UNUSED_RESULT, [__attribute__((warn_unused_result))])
+else
+ AC_DEFINE(NS_WARN_UNUSED_RESULT,)
+fi
+
+dnl We can't run TRY_COMPILE tests on Windows, so hard-code some
+dnl features that Windows actually does support.
+
+if test -n "$SKIP_COMPILER_CHECKS"; then
+ dnl Windows has malloc.h
+ AC_DEFINE(MALLOC_H, [<malloc.h>])
+ AC_DEFINE(HAVE_FORCEINLINE)
+ AC_DEFINE(HAVE_LOCALECONV)
+fi # SKIP_COMPILER_CHECKS
+
+dnl ========================================================
+dnl =
+dnl = Check for external package dependencies
+dnl =
+dnl ========================================================
+MOZ_ARG_HEADER(External Packages)
+
+MOZ_ARG_WITH_STRING(libxul-sdk,
+[ --with-libxul-sdk=PFX Use the libXUL SDK at <PFX>],
+ LIBXUL_SDK_DIR=$withval)
+
+if test "$LIBXUL_SDK_DIR" = "yes"; then
+ AC_MSG_ERROR([--with-libxul-sdk must specify a path])
+elif test -n "$LIBXUL_SDK_DIR" -a "$LIBXUL_SDK_DIR" != "no"; then
+ LIBXUL_SDK=`cd "$LIBXUL_SDK_DIR" && pwd`
+
+ if test ! -f "$LIBXUL_SDK/include/xpcom-config.h"; then
+ AC_MSG_ERROR([$LIBXUL_SDK/include/xpcom-config.h doesn't exist])
+ fi
+
+fi
+AC_SUBST(LIBXUL_SDK)
+
+if test -n "$LIBXUL_SDK"; then
+ LIBXUL_DIST="$LIBXUL_SDK"
+else
+ LIBXUL_DIST="$MOZ_BUILD_ROOT/dist"
+fi
+AC_SUBST(LIBXUL_DIST)
+
+SYSTEM_LIBXUL=
+
+MOZ_ARG_WITH_BOOL(system-libxul,
+[ --with-system-libxul Use system installed libxul SDK],
+ SYSTEM_LIBXUL=1)
+
+dnl ========================================================
+dnl = If NSPR was not detected in the system,
+dnl = use the one in the source tree (mozilla/nsprpub)
+dnl ========================================================
+MOZ_ARG_WITH_BOOL(system-nspr,
+[ --with-system-nspr Use system installed NSPR],
+ _USE_SYSTEM_NSPR=1 )
+
+if test -n "$_USE_SYSTEM_NSPR"; then
+ AM_PATH_NSPR(4.10.2, [MOZ_NATIVE_NSPR=1], [AC_MSG_ERROR([your don't have NSPR installed or your version is too old])])
+fi
+
+if test -n "$MOZ_NATIVE_NSPR"; then
+ _SAVE_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS $NSPR_CFLAGS"
+ AC_TRY_COMPILE([#include "prtypes.h"],
+ [#ifndef PR_STATIC_ASSERT
+ #error PR_STATIC_ASSERT not defined or requires including prtypes.h
+ #endif],
+ [MOZ_NATIVE_NSPR=1],
+ AC_MSG_ERROR([system NSPR does not support PR_STATIC_ASSERT or including prtypes.h does not provide it]))
+ AC_TRY_COMPILE([#include "prtypes.h"],
+ [#ifndef PR_UINT64
+ #error PR_UINT64 not defined or requires including prtypes.h
+ #endif],
+ [MOZ_NATIVE_NSPR=1],
+ AC_MSG_ERROR([system NSPR does not support PR_UINT64 or including prtypes.h does not provide it]))
+ CFLAGS=$_SAVE_CFLAGS
+else
+ if test -z "$LIBXUL_SDK"; then
+ NSPR_CFLAGS="-I${LIBXUL_DIST}/include/nspr"
+ if test -n "$GNU_CC"; then
+ NSPR_LIBS="-L${LIBXUL_DIST}/lib -lnspr${NSPR_VERSION} -lplc${NSPR_VERSION} -lplds${NSPR_VERSION}"
+ else
+ NSPR_LIBS="${LIBXUL_DIST}/lib/nspr${NSPR_VERSION}.lib ${LIBXUL_DIST}/lib/plc${NSPR_VERSION}.lib ${LIBXUL_DIST}/lib/plds${NSPR_VERSION}.lib "
+ fi
+ else
+ NSPR_CFLAGS=`"${LIBXUL_DIST}"/sdk/bin/nspr-config --prefix="${LIBXUL_DIST}" --includedir="${LIBXUL_DIST}/include/nspr" --cflags`
+ NSPR_LIBS=`"${LIBXUL_DIST}"/sdk/bin/nspr-config --prefix="${LIBXUL_DIST}" --libdir="${LIBXUL_DIST}"/lib --libs`
+ fi
+fi
+
+dnl set GRE_MILESTONE
+dnl ========================================================
+if test -n "$LIBXUL_SDK"; then
+ GRE_MILESTONE=`$PYTHON "$_topsrcdir"/config/printconfigsetting.py "$LIBXUL_DIST"/bin/platform.ini Build Milestone`
+else
+ GRE_MILESTONE=`tail -n 1 "$_topsrcdir"/config/milestone.txt 2>/dev/null || tail -1 "$_topsrcdir"/config/milestone.txt`
+fi
+AC_SUBST(GRE_MILESTONE)
+
+# set RELEASE_BUILD and NIGHTLY_BUILD variables depending on the cycle we're in
+# The logic works like this:
+# - if we have "a1" in GRE_MILESTONE, we're building Nightly (define NIGHTLY_BUILD)
+# - otherwise, if we have "a" in GRE_MILESTONE, we're building Nightly or Aurora
+# - otherwise, we're building Release/Beta (define RELEASE_BUILD)
+case "$GRE_MILESTONE" in
+ *a1*)
+ NIGHTLY_BUILD=1
+ AC_DEFINE(NIGHTLY_BUILD)
+ ;;
+ *a*)
+ ;;
+ *)
+ RELEASE_BUILD=1
+ AC_DEFINE(RELEASE_BUILD)
+ ;;
+esac
+AC_SUBST(NIGHTLY_BUILD)
+AC_SUBST(RELEASE_BUILD)
+
+dnl system libevent Support
+dnl ========================================================
+MOZ_ARG_WITH_STRING(system-libevent,
+[ --with-system-libevent[=PFX]
+ Use system libevent [installed at prefix PFX]],
+ LIBEVENT_DIR=$withval)
+
+_SAVE_CFLAGS=$CFLAGS
+_SAVE_LDFLAGS=$LDFLAGS
+_SAVE_LIBS=$LIBS
+if test "$LIBEVENT_DIR" = yes; then
+ PKG_CHECK_MODULES(MOZ_LIBEVENT, libevent,
+ MOZ_NATIVE_LIBEVENT=1,
+ LIBEVENT_DIR=/usr)
+fi
+if test -z "$LIBEVENT_DIR" -o "$LIBEVENT_DIR" = no; then
+ MOZ_NATIVE_LIBEVENT=
+elif test -z "$MOZ_NATIVE_LIBEVENT"; then
+ CFLAGS="-I${LIBEVENT_DIR}/include $CFLAGS"
+ LDFLAGS="-L${LIBEVENT_DIR}/lib $LDFLAGS"
+ MOZ_CHECK_HEADER(event.h,
+ [if test ! -f "${LIBEVENT_DIR}/include/event.h"; then
+ AC_MSG_ERROR([event.h found, but is not in ${LIBEVENT_DIR}/include])
+ fi],
+ AC_MSG_ERROR([--with-system-libevent requested but event.h not found]))
+ AC_CHECK_LIB(event, event_init,
+ [MOZ_NATIVE_LIBEVENT=1
+ MOZ_LIBEVENT_CFLAGS="-I${LIBEVENT_DIR}/include"
+ MOZ_LIBEVENT_LIBS="-L${LIBEVENT_DIR}/lib -levent"],
+ [MOZ_NATIVE_LIBEVENT= MOZ_LIBEVENT_CFLAGS= MOZ_LIBEVENT_LIBS=])
+fi
+CFLAGS=$_SAVE_CFLAGS
+LDFLAGS=$_SAVE_LDFLAGS
+LIBS=$_SAVE_LIBS
+
+AC_SUBST(MOZ_NATIVE_LIBEVENT)
+AC_SUBST(MOZ_LIBEVENT_CFLAGS)
+AC_SUBST(MOZ_LIBEVENT_LIBS)
+
+dnl ========================================================
+dnl = If NSS was not detected in the system,
+dnl = use the one in the source tree (mozilla/security/nss)
+dnl ========================================================
+
+MOZ_ARG_WITH_BOOL(system-nss,
+[ --with-system-nss Use system installed NSS],
+ _USE_SYSTEM_NSS=1 )
+
+if test -n "$_USE_SYSTEM_NSS"; then
+ AM_PATH_NSS(3.15.4, [MOZ_NATIVE_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])])
+fi
+
+if test -n "$MOZ_NATIVE_NSS"; then
+ NSS_LIBS="$NSS_LIBS -lcrmf"
+else
+ NSS_CFLAGS='-I$(LIBXUL_DIST)/include/nss'
+
+ if test -z "$GNU_CC" -a "$OS_ARCH" = "WINNT" -o "$OS_ARCH" = "OS2"; then
+ NSS_LIBS="\
+ \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)crmf.\$(LIB_SUFFIX) \
+ \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)smime$NSS_VERSION.\$(LIB_SUFFIX) \
+ \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)ssl$NSS_VERSION.\$(LIB_SUFFIX) \
+ \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)nss$NSS_VERSION.\$(LIB_SUFFIX) \
+ \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)nssutil$NSS_VERSION.\$(LIB_SUFFIX)"
+ else
+ NSS_LIBS='$(LIBS_DIR)'" -lcrmf -lsmime$NSS_VERSION -lssl$NSS_VERSION -lnss$NSS_VERSION -lnssutil$NSS_VERSION"
+ fi
+fi
+
+dnl ======================
+dnl Detect yasm
+dnl ======================
+
+AC_MSG_CHECKING([for YASM assembler])
+AC_CHECK_PROGS(YASM, yasm, "")
+
+if test -n "$YASM"; then
+ dnl Pull out yasm's version string
+ YASM_VERSION=`yasm --version | $AWK '/^yasm/ { print $2 }'`
+ _YASM_MAJOR_VERSION=`echo ${YASM_VERSION} | $AWK -F\. '{ print $1 }'`
+ _YASM_MINOR_VERSION=`echo ${YASM_VERSION} | $AWK -F\. '{ print $2 }'`
+ _YASM_RELEASE=` echo ${YASM_VERSION} | $AWK -F\. '{ print $3 }'`
+ _YASM_BUILD=` echo ${YASM_VERSION} | $AWK -F\. '{ print $4 }'`
+fi
+
+if test -z "$SKIP_LIBRARY_CHECKS"; then
+dnl system JPEG support
+dnl ========================================================
+MOZ_ARG_WITH_STRING(system-jpeg,
+[ --with-system-jpeg[=PFX]
+ Use system libjpeg [installed at prefix PFX]],
+ JPEG_DIR=$withval)
+
+_SAVE_CFLAGS=$CFLAGS
+_SAVE_LDFLAGS=$LDFLAGS
+_SAVE_LIBS=$LIBS
+if test -n "${JPEG_DIR}" -a "${JPEG_DIR}" != "yes"; then
+ CFLAGS="-I${JPEG_DIR}/include $CFLAGS"
+ LDFLAGS="-L${JPEG_DIR}/lib $LDFLAGS"
+fi
+if test -z "$JPEG_DIR" -o "$JPEG_DIR" = no; then
+ MOZ_NATIVE_JPEG=
+else
+ AC_CHECK_LIB(jpeg, jpeg_destroy_compress, [MOZ_NATIVE_JPEG=1 MOZ_JPEG_LIBS="-ljpeg"], MOZ_NATIVE_JPEG=)
+fi
+
+if test "$MOZ_NATIVE_JPEG" = 1; then
+ AC_TRY_COMPILE([ #include <stdio.h>
+ #include <sys/types.h>
+ #include <jpeglib.h> ],
+ [ #if JPEG_LIB_VERSION < $MOZJPEG
+ #error "Insufficient JPEG library version ($MOZJPEG required)."
+ #endif
+ #ifndef JCS_EXTENSIONS
+ #error "libjpeg-turbo JCS_EXTENSIONS required"
+ #endif
+ ],
+ MOZ_NATIVE_JPEG=1,
+ AC_MSG_ERROR([Insufficient JPEG library version for --with-system-jpeg]))
+fi
+CFLAGS=$_SAVE_CFLAGS
+LDFLAGS=$_SAVE_LDFLAGS
+LIBS=$_SAVE_LIBS
+
+if test -n "${JPEG_DIR}" -a -d "${JPEG_DIR}" -a "$MOZ_NATIVE_JPEG" = 1; then
+ MOZ_JPEG_CFLAGS="-I${JPEG_DIR}/include"
+ MOZ_JPEG_LIBS="-L${JPEG_DIR}/lib ${MOZ_JPEG_LIBS}"
+fi
+fi # SKIP_LIBRARY_CHECKS
+
+dnl system ZLIB support
+dnl ========================================================
+MOZ_ZLIB_CHECK([1.2.3])
+
+if test "$MOZ_NATIVE_ZLIB" != 1; then
+ MOZ_ZLIB_CFLAGS=
+ MOZ_ZLIB_LIBS='$(call EXPAND_LIBNAME_PATH,mozz,'"$MOZ_BUILD_ROOT"'/modules/zlib/src)'
+fi
+
+if test "$MOZ_LINKER" = 1 -a "$MOZ_NATIVE_ZLIB" != 1; then
+ AC_MSG_ERROR([Custom dynamic linker requires --with-system-zlib])
+fi
+
+if test -z "$SKIP_LIBRARY_CHECKS"; then
+dnl system BZIP2 Support
+dnl ========================================================
+MOZ_ARG_WITH_STRING(system-bz2,
+[ --with-system-bz2[=PFX]
+ Use system libbz2 [installed at prefix PFX]],
+ BZ2_DIR=$withval)
+
+_SAVE_CFLAGS=$CFLAGS
+_SAVE_LDFLAGS=$LDFLAGS
+_SAVE_LIBS=$LIBS
+if test -n "${BZ2_DIR}" -a "${BZ2_DIR}" != "yes"; then
+ CFLAGS="-I${BZ2_DIR}/include $CFLAGS"
+ LDFLAGS="-L${BZ2_DIR}/lib $LDFLAGS"
+fi
+if test -z "$BZ2_DIR" -o "$BZ2_DIR" = no; then
+ MOZ_NATIVE_BZ2=
+else
+ AC_CHECK_LIB(bz2, BZ2_bzread, [MOZ_NATIVE_BZ2=1 MOZ_BZ2_LIBS="-lbz2"],
+ [MOZ_NATIVE_BZ2= MOZ_BZ2_CFLAGS= MOZ_BZ2_LIBS=])
+fi
+CFLAGS=$_SAVE_CFLAGS
+LDFLAGS=$_SAVE_LDFLAGS
+LIBS=$_SAVE_LIBS
+
+if test "${BZ2_DIR}" -a -d "${BZ2_DIR}" -a "$MOZ_NATIVE_BZ2" = 1; then
+ MOZ_BZ2_CFLAGS="-I${BZ2_DIR}/include"
+ MOZ_BZ2_LIBS="-L${BZ2_DIR}/lib ${MOZ_BZ2_LIBS}"
+fi
+
+dnl system PNG Support
+dnl ========================================================
+MOZ_ARG_WITH_STRING(system-png,
+[ --with-system-png[=PFX]
+ Use system libpng [installed at prefix PFX]],
+ PNG_DIR=$withval)
+
+_SAVE_CFLAGS=$CFLAGS
+_SAVE_LDFLAGS=$LDFLAGS
+_SAVE_LIBS=$LIBS
+if test -n "${PNG_DIR}" -a "${PNG_DIR}" != "yes"; then
+ CFLAGS="-I${PNG_DIR}/include $CFLAGS"
+ LDFLAGS="-L${PNG_DIR}/lib $LDFLAGS"
+fi
+if test -z "$PNG_DIR" -o "$PNG_DIR" = no; then
+ MOZ_NATIVE_PNG=
+else
+ AC_CHECK_LIB(png, png_get_valid, [MOZ_NATIVE_PNG=1 MOZ_PNG_LIBS="-lpng"],
+ AC_MSG_ERROR([--with-system-png requested but no working libpng found]))
+ AC_CHECK_LIB(png, png_get_acTL, ,
+ AC_MSG_ERROR([--with-system-png won't work because the system's libpng doesn't have APNG support]))
+fi
+if test "$MOZ_NATIVE_PNG" = 1; then
+ AC_TRY_COMPILE([ #include <stdio.h>
+ #include <sys/types.h>
+ #include <png.h> ],
+ [ #if PNG_LIBPNG_VER < $MOZPNG
+ #error "Insufficient libpng version ($MOZPNG required)."
+ #endif
+ #ifndef PNG_UINT_31_MAX
+ #error "Insufficient libpng version."
+ #endif ],
+ MOZ_NATIVE_PNG=1,
+ AC_MSG_ERROR([--with-system-png requested but no working libpng found]))
+fi
+CFLAGS=$_SAVE_CFLAGS
+LDFLAGS=$_SAVE_LDFLAGS
+LIBS=$_SAVE_LIBS
+
+if test "${PNG_DIR}" -a -d "${PNG_DIR}" -a "$MOZ_NATIVE_PNG" = 1; then
+ MOZ_PNG_CFLAGS="-I${PNG_DIR}/include"
+ MOZ_PNG_LIBS="-L${PNG_DIR}/lib ${MOZ_PNG_LIBS}"
+fi
+
+fi # SKIP_LIBRARY_CHECKS
+
+dnl system HunSpell Support
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(system-hunspell,
+[ --enable-system-hunspell
+ Use system hunspell (located with pkgconfig)],
+ MOZ_NATIVE_HUNSPELL=1 )
+
+if test -n "$MOZ_NATIVE_HUNSPELL"; then
+ PKG_CHECK_MODULES(MOZ_HUNSPELL, hunspell)
+fi
+
+AC_SUBST(MOZ_NATIVE_HUNSPELL)
+
+dnl ========================================================
+dnl system libffi Support
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(system-ffi,
+[ --enable-system-ffi Use system libffi (located with pkgconfig)],
+ MOZ_NATIVE_FFI=1 )
+
+if test -n "$MOZ_NATIVE_FFI"; then
+ # Vanilla libffi 3.0.9 needs a few patches from upcoming version 3.0.10
+ # for non-GCC compilers.
+ if test -z "$GNU_CC"; then
+ PKG_CHECK_MODULES(MOZ_FFI, libffi > 3.0.9)
+ else
+ PKG_CHECK_MODULES(MOZ_FFI, libffi >= 3.0.9)
+ fi
+ MOZ_JS_STATIC_LIBS="$MOZ_JS_STATIC_LIBS $MOZ_FFI_LIBS"
+fi
+
+dnl ========================================================
+dnl Java SDK support
+dnl ========================================================
+
+JAVA_BIN_PATH=
+MOZ_ARG_WITH_STRING(java-bin-path,
+[ --with-java-bin-path=dir
+ Location of Java binaries (java, javac, jar)],
+ JAVA_BIN_PATH=$withval)
+
+dnl ========================================================
+dnl =
+dnl = Application
+dnl =
+dnl ========================================================
+
+MOZ_ARG_HEADER(Application)
+
+ENABLE_TESTS=1
+ENABLE_SYSTEM_EXTENSION_DIRS=1
+MOZ_BRANDING_DIRECTORY=
+MOZ_OFFICIAL_BRANDING=
+MOZ_FEEDS=1
+MOZ_WEBAPP_RUNTIME=
+MOZ_JSDEBUGGER=1
+MOZ_AUTH_EXTENSION=1
+MOZ_OGG=1
+MOZ_RAW=
+MOZ_SPEEX_RESAMPLER=1
+MOZ_SOUNDTOUCH=1
+MOZ_CUBEB=
+MOZ_VORBIS=
+MOZ_TREMOR=
+MOZ_WAVE=1
+MOZ_SAMPLE_TYPE_FLOAT32=
+MOZ_SAMPLE_TYPE_S16=
+MOZ_OPUS=1
+MOZ_WEBM=1
+MOZ_DASH=
+MOZ_WMF=
+MOZ_WEBRTC=1
+MOZ_PEERCONNECTION=
+MOZ_SRTP=
+MOZ_WEBRTC_SIGNALING=
+MOZ_WEBRTC_IN_LIBXUL=
+MOZ_WEBRTC_ASSERT_ALWAYS=1
+MOZ_SCTP=
+MOZ_MEDIA_PLUGINS=
+MOZ_MEDIA_NAVIGATOR=
+MOZ_OMX_PLUGIN=
+MOZ_VP8=
+MOZ_VP8_ERROR_CONCEALMENT=
+MOZ_VP8_ENCODER=
+MOZ_WEBSPEECH=1
+VPX_AS=
+VPX_ASFLAGS=
+VPX_AS_DASH_C_FLAG=
+VPX_AS_CONVERSION=
+VPX_ASM_SUFFIX=
+VPX_X86_ASM=
+VPX_ARM_ASM=
+LIBJPEG_TURBO_AS=
+LIBJPEG_TURBO_ASFLAGS=
+LIBJPEG_TURBO_X86_ASM=
+LIBJPEG_TURBO_X64_ASM=
+LIBJPEG_TURBO_ARM_ASM=
+MOZ_PANGO=1
+MOZ_PERMISSIONS=1
+MOZ_PLACES=1
+MOZ_SOCIAL=1
+MOZ_PREF_EXTENSIONS=1
+MOZ_PROFILELOCKING=1
+MOZ_PSM=1
+MOZ_REFLOW_PERF=
+MOZ_SAFE_BROWSING=
+MOZ_HELP_VIEWER=
+MOZ_SPELLCHECK=1
+MOZ_ANDROID_OMTC=
+MOZ_ONLY_TOUCH_EVENTS=
+MOZ_TOOLKIT_SEARCH=1
+MOZ_UI_LOCALE=en-US
+MOZ_UNIVERSALCHARDET=1
+MOZ_URL_CLASSIFIER=
+MOZ_XUL=1
+MOZ_ZIPWRITER=1
+NS_PRINTING=1
+MOZ_PDF_PRINTING=
+MOZ_DISABLE_CRYPTOLEGACY=
+NSS_DISABLE_DBM=
+NECKO_WIFI=1
+NECKO_COOKIES=1
+NECKO_PROTOCOLS_DEFAULT="about data file ftp http res viewsource websocket wyciwyg device"
+USE_ARM_KUSER=
+BUILD_CTYPES=1
+MOZ_USE_NATIVE_POPUP_WINDOWS=
+MOZ_ANDROID_HISTORY=
+MOZ_WEBSMS_BACKEND=
+MOZ_ANDROID_WALLPAPER=
+MOZ_ANDROID_BEAM=
+ACCESSIBILITY=1
+MOZ_TIME_MANAGER=
+MOZ_PAY=
+MOZ_AUDIO_CHANNEL_MANAGER=
+NSS_NO_LIBPKIX=
+
+case "$target_os" in
+ mingw*)
+ NS_ENABLE_TSF=1
+ AC_DEFINE(NS_ENABLE_TSF)
+ ;;
+esac
+
+case "${target}" in
+ *-android*|*-linuxandroid*)
+ if test "$CPU_ARCH" = "arm" ; then
+ USE_ARM_KUSER=1
+ fi
+
+ NSS_DISABLE_DBM=1
+ if test -z "$gonkdir"; then
+ NECKO_WIFI=
+ else
+ NECKO_WIFI=1
+ fi
+ MOZ_THEME_FASTSTRIPE=1
+ MOZ_TREE_FREETYPE=1
+ MOZ_MEMORY=1
+ MOZ_RAW=1
+ ;;
+
+esac
+
+MOZ_ARG_WITH_STRING(external-source-dir,
+[ --with-external-source-dir=dir
+ External directory containing additional build files.],
+[ EXTERNAL_SOURCE_DIR=$withval])
+AC_SUBST(EXTERNAL_SOURCE_DIR)
+
+MOZ_ARG_ENABLE_STRING(application,
+[ --enable-application=APP
+ Options include:
+ browser (Firefox)
+ xulrunner
+ tools/update-packaging (AUS-related packaging tools)],
+[ MOZ_BUILD_APP=$enableval ] )
+
+MOZ_ARG_WITH_STRING(xulrunner-stub-name,
+[ --with-xulrunner-stub-name=appname Create the xulrunner stub with the given name],
+ XULRUNNER_STUB_NAME=$withval)
+
+if test -z "$XULRUNNER_STUB_NAME"; then
+ case "$target_os" in
+ darwin*)
+ XULRUNNER_STUB_NAME=xulrunner
+ ;;
+ *)
+ XULRUNNER_STUB_NAME=xulrunner-stub
+ esac
+fi
+AC_SUBST(XULRUNNER_STUB_NAME)
+
+AC_MSG_CHECKING([for application to build])
+if test -z "$MOZ_BUILD_APP"; then
+ AC_MSG_RESULT([browser])
+ MOZ_BUILD_APP=browser
+else
+ # "mobile" no longer exists.
+ if test "$MOZ_BUILD_APP" = "mobile" ; then
+ AC_MSG_RESULT([none])
+ AC_MSG_ERROR([--enable-application=mobile is no longer supported.])
+ fi
+ # We have a valid application only if it has a build.mk file in its top
+ # directory.
+ if test ! -f "${srcdir}/${MOZ_BUILD_APP}/build.mk" ; then
+ AC_MSG_RESULT([none])
+ AC_MSG_ERROR([--enable-application value not recognized (${MOZ_BUILD_APP}/build.mk does not exist).])
+ else
+ AC_MSG_RESULT([$MOZ_BUILD_APP])
+ fi
+fi
+
+# The app update channel is 'default' when not supplied. The value is used in
+# the application's confvars.sh so it must be set before confvars.sh is called.
+MOZ_ARG_ENABLE_STRING([update-channel],
+[ --enable-update-channel=CHANNEL
+ Select application update channel (default=default)],
+ MOZ_UPDATE_CHANNEL=`echo $enableval | tr A-Z a-z`)
+
+if test -z "$MOZ_UPDATE_CHANNEL"; then
+ MOZ_UPDATE_CHANNEL=default
+fi
+AC_DEFINE_UNQUOTED(MOZ_UPDATE_CHANNEL, $MOZ_UPDATE_CHANNEL)
+AC_SUBST(MOZ_UPDATE_CHANNEL)
+
+# Allow to specify a Google API key file that contains the secret key to be
+# used for various Google API requests.
+MOZ_ARG_WITH_STRING(google-api-keyfile,
+[ --with-google-api-keyfile=file Use the secret key contained in the given keyfile for Google API requests],
+ MOZ_GOOGLE_API_KEY=`cat $withval`)
+if test -z "$MOZ_GOOGLE_API_KEY"; then
+ MOZ_GOOGLE_API_KEY=no-google-api-key
+fi
+AC_DEFINE_UNQUOTED(MOZ_GOOGLE_API_KEY, $MOZ_GOOGLE_API_KEY)
+
+# Allow the application to influence configure with a confvars.sh script.
+AC_MSG_CHECKING([if app-specific confvars.sh exists])
+if test -f "${srcdir}/${MOZ_BUILD_APP}/confvars.sh" ; then
+ AC_MSG_RESULT([${srcdir}/${MOZ_BUILD_APP}/confvars.sh])
+ . "${srcdir}/${MOZ_BUILD_APP}/confvars.sh"
+else
+ AC_MSG_RESULT([no])
+fi
+
+# Allow influencing configure with a defines.sh script.
+. "${srcdir}/build/defines.sh"
+
+# If we're not building a release build, define EARLY_BETA_OR_EARLIER if it is
+# set in defines.sh
+if test "$BUILDING_RELEASE"; then
+ # Override value in defines.sh, if any
+ EARLY_BETA_OR_EARLIER=
+elif test "$EARLY_BETA_OR_EARLIER"; then
+ AC_DEFINE(EARLY_BETA_OR_EARLIER)
+fi
+AC_SUBST(EARLY_BETA_OR_EARLIER)
+
+# Allow the application to provide a subconfigure script
+if test -f "${srcdir}/${MOZ_BUILD_APP}/configure.in" ; then
+ do_output_subdirs() {
+ if test -n "$_subconfigure_subdirs"; then
+ AC_MSG_ERROR([Cannot specify more than one sub-sub-configure])
+ fi
+ _subconfigure_subdir="$1"
+ _subconfigure_config_args="$ac_configure_args"
+ }
+ tmpscript=`$PYTHON -c 'import os, tempfile; print tempfile.mktemp(prefix="subscript.").replace(os.sep, "/")'` || exit 1
+ m4 "${srcdir}/build/autoconf/subconfigure.m4" \
+ "${srcdir}/build/autoconf/altoptions.m4" \
+ "${srcdir}/${MOZ_BUILD_APP}/configure.in" > $tmpscript
+ . $tmpscript
+ rm -f $tmpscript
+fi
+
+# Allow someone to change MOZ_APP_NAME and MOZ_APP_BASENAME in mozconfig
+MOZ_ARG_WITH_STRING(app-name,
+[--with-app-name=APPNAME sets MOZ_APP_NAME to APPNAME],
+WITH_APP_NAME=$withval,
+)
+
+if test -n "$WITH_APP_NAME" ; then
+ MOZ_APP_NAME="$WITH_APP_NAME"
+fi
+
+MOZ_ARG_WITH_STRING(app-basename,
+[--with-app-basename=BASENAME sets MOZ_APP_BASENAME to BASENAME],
+WITH_APP_BASENAME=$withval,
+)
+
+if test -n "$WITH_APP_BASENAME" ; then
+ MOZ_APP_BASENAME="$WITH_APP_BASENAME"
+fi
+
+# Now is a good time to test for logic errors, define mismatches, etc.
+case "$MOZ_BUILD_APP" in
+xulrunner)
+ if test "$LIBXUL_SDK"; then
+ AC_MSG_ERROR([Building XULRunner --with-libxul-sdk doesn't make sense; XULRunner provides the libxul SDK.])
+ fi
+ ;;
+esac
+
+# Special cases where we need to AC_DEFINE something. Also a holdover for apps
+# that haven't made a confvars.sh yet. Don't add new stuff here, use
+# MOZ_BUILD_APP.
+case "$MOZ_BUILD_APP" in
+browser)
+ AC_DEFINE(MOZ_PHOENIX)
+ ;;
+
+xulrunner)
+ AC_DEFINE(MOZ_XULRUNNER)
+ ;;
+b2g)
+ AC_DEFINE(MOZ_B2G)
+ ;;
+esac
+
+AC_SUBST(MOZ_BUILD_APP)
+AC_SUBST(MOZ_PHOENIX)
+AC_SUBST(MOZ_XULRUNNER)
+AC_SUBST(MOZ_B2G)
+
+AC_DEFINE_UNQUOTED(MOZ_BUILD_APP,$MOZ_BUILD_APP)
+
+dnl ========================================================
+dnl Check android sdk version depending on mobile target
+dnl ========================================================
+
+if test -z "$gonkdir" ; then
+ # Minimum Android SDK API Level we require.
+ case "$MOZ_BUILD_APP" in
+ mobile/android)
+ android_min_api_level=16
+ ;;
+ esac
+
+ MOZ_ANDROID_SDK($android_min_api_level)
+fi
+
+dnl ========================================================
+dnl =
+dnl = Toolkit Options
+dnl =
+dnl ========================================================
+MOZ_ARG_HEADER(Toolkit Options)
+
+ dnl ========================================================
+ dnl = Select the default toolkit
+ dnl ========================================================
+ MOZ_ARG_ENABLE_STRING(default-toolkit,
+ [ --enable-default-toolkit=TK
+ Select default toolkit
+ Platform specific defaults:
+ Mac OS X - cairo-cocoa
+ OS/2 - cairo-os2
+ Win32 - cairo-windows
+ * - cairo-gtk2
+ * - cairo-gtk3
+ * - cairo-qt],
+ [ _DEFAULT_TOOLKIT=$enableval ],
+ [ _DEFAULT_TOOLKIT=$_PLATFORM_DEFAULT_TOOLKIT])
+
+ if test "$_DEFAULT_TOOLKIT" = "cairo-windows" \
+ -o "$_DEFAULT_TOOLKIT" = "cairo-gtk2" \
+ -o "$_DEFAULT_TOOLKIT" = "cairo-gtk2-x11" \
+ -o "$_DEFAULT_TOOLKIT" = "cairo-gtk3" \
+ -o "$_DEFAULT_TOOLKIT" = "cairo-qt" \
+ -o "$_DEFAULT_TOOLKIT" = "cairo-os2" \
+ -o "$_DEFAULT_TOOLKIT" = "cairo-cocoa" \
+ -o "$_DEFAULT_TOOLKIT" = "cairo-uikit" \
+ -o "$_DEFAULT_TOOLKIT" = "cairo-android" \
+ -o "$_DEFAULT_TOOLKIT" = "cairo-gonk"
+ then
+ dnl nglayout only supports building with one toolkit,
+ dnl so ignore everything after the first comma (",").
+ MOZ_WIDGET_TOOLKIT=`echo "$_DEFAULT_TOOLKIT" | sed -e "s/,.*$//"`
+ else
+ AC_MSG_ERROR([You must specify a default toolkit (perhaps $_PLATFORM_DEFAULT_TOOLKIT).])
+ fi
+
+MOZ_ARG_WITHOUT_BOOL(x,
+[ --without-x Build without X11],
+ WITHOUT_X11=1)
+
+dnl ========================================================
+dnl = Enable the toolkit as needed =
+dnl ========================================================
+
+MOZ_WIDGET_GTK=
+
+case "$MOZ_WIDGET_TOOLKIT" in
+
+cairo-windows)
+ MOZ_WIDGET_TOOLKIT=windows
+ MOZ_WEBGL=1
+ MOZ_PDF_PRINTING=1
+ MOZ_INSTRUMENT_EVENT_LOOP=1
+ if test -n "$GNU_CC"; then
+ MOZ_FOLD_LIBS=
+ fi
+ ;;
+
+cairo-gtk3)
+ MOZ_WIDGET_TOOLKIT=gtk3
+ MOZ_ENABLE_GTK=1
+ MOZ_ENABLE_GTK3=1
+ MOZ_ENABLE_XREMOTE=1
+ MOZ_WEBGL=1
+ MOZ_GL_DEFAULT_PROVIDER=GLX
+
+ AC_DEFINE(MOZ_X11)
+ MOZ_X11=1
+ USE_FC_FREETYPE=1
+
+ TK_CFLAGS='$(MOZ_GTK3_CFLAGS)'
+ TK_LIBS='$(MOZ_GTK3_LIBS)'
+ MOZ_WIDGET_GTK=3
+ AC_DEFINE_UNQUOTED(MOZ_WIDGET_GTK,$MOZ_WIDGET_GTK)
+ MOZ_PDF_PRINTING=1
+ MOZ_INSTRUMENT_EVENT_LOOP=1
+ ;;
+
+cairo-gtk2|cairo-gtk2-x11)
+ MOZ_WIDGET_TOOLKIT=gtk2
+ MOZ_ENABLE_GTK=1
+ MOZ_ENABLE_GTK2=1
+ MOZ_ENABLE_XREMOTE=1
+ MOZ_WEBGL=1
+ MOZ_GL_DEFAULT_PROVIDER=GLX
+
+ AC_DEFINE(MOZ_X11)
+ MOZ_X11=1
+ USE_FC_FREETYPE=1
+
+ TK_CFLAGS='$(MOZ_GTK2_CFLAGS)'
+ TK_LIBS='$(MOZ_GTK2_LIBS)'
+ AC_DEFINE(MOZ_WIDGET_GTK2)
+ MOZ_WIDGET_GTK=2
+ AC_DEFINE_UNQUOTED(MOZ_WIDGET_GTK,$MOZ_WIDGET_GTK)
+ MOZ_PDF_PRINTING=1
+ MOZ_INSTRUMENT_EVENT_LOOP=1
+ ;;
+
+cairo-qt)
+ MOZ_WIDGET_TOOLKIT=qt
+ MOZ_ENABLE_QT=1
+ if test -z "$WITHOUT_X11"; then
+ MOZ_ENABLE_XREMOTE=1
+ MOZ_GL_DEFAULT_PROVIDER=GLX
+ MOZ_X11=1
+ AC_DEFINE(MOZ_X11)
+ XT_LIBS=
+ fi
+
+ MOZ_WEBGL=1
+ USE_ELF_DYNSTR_GC=
+ USE_FC_FREETYPE=1
+ TK_CFLAGS='$(MOZ_QT_CFLAGS)'
+ TK_LIBS='$(MOZ_QT_LIBS)'
+ AC_DEFINE(MOZ_WIDGET_QT)
+ MOZ_PDF_PRINTING=1
+ AC_DEFINE(QT_NO_KEYWORDS)
+ ;;
+
+cairo-os2)
+ MOZ_WIDGET_TOOLKIT=os2
+ USE_FC_FREETYPE=1
+ TK_CFLAGS='$(MOZ_CAIRO_CFLAGS) $(MOZ_PIXMAN_CFLAGS)'
+ TK_LIBS='$(MOZ_CAIRO_LIBS) $(MOZ_PIXMAN_LIBS)'
+ MOZ_PDF_PRINTING=1
+ ;;
+
+cairo-cocoa)
+ MOZ_WIDGET_TOOLKIT=cocoa
+ AC_DEFINE(MOZ_WIDGET_COCOA)
+ LDFLAGS="$LDFLAGS -framework Cocoa -lobjc"
+ TK_LIBS='-framework QuartzCore -framework Carbon -framework CoreAudio -framework AudioToolbox -framework AudioUnit -framework AddressBook -framework OpenGL'
+ TK_CFLAGS="-DNO_X11"
+ CFLAGS="$CFLAGS $TK_CFLAGS"
+ CXXFLAGS="$CXXFLAGS $TK_CFLAGS"
+ DYNAMIC_XPCOM_LIBS='$(LIBXUL_DIST)/bin/XUL -lxpcom_core -lmozalloc'
+ XPCOM_FROZEN_LDOPTS='$(LIBXUL_DIST)/bin/XUL -lmozalloc'
+ MOZ_USER_DIR="Mozilla"
+ MOZ_FS_LAYOUT=bundle
+ MOZ_WEBGL=1
+ MOZ_INSTRUMENT_EVENT_LOOP=1
+ ;;
+
+cairo-uikit)
+ MOZ_WIDGET_TOOLKIT=uikit
+ AC_DEFINE(MOZ_WIDGET_UIKIT)
+ LDFLAGS="$LDFLAGS -framework UIKit -lobjc"
+ TK_CFLAGS="-DNO_X11"
+ TK_LIBS='-framework Foundation -framework CoreFoundation -framework CoreGraphics -framework CoreText'
+ CFLAGS="$CFLAGS $TK_CFLAGS"
+ CXXFLAGS="$CXXFLAGS $TK_CFLAGS"
+ DYNAMIC_XPCOM_LIBS='$(LIBXUL_DIST)/bin/XUL -lxpcom_core -lmozalloc'
+ XPCOM_FROZEN_LDOPTS='$(LIBXUL_DIST)/bin/XUL -lmozalloc'
+ MOZ_USER_DIR="Mozilla"
+ MOZ_FS_LAYOUT=bundle
+ ;;
+
+cairo-android)
+ AC_DEFINE(MOZ_WIDGET_ANDROID)
+ MOZ_WIDGET_TOOLKIT=android
+ TK_CFLAGS='$(MOZ_CAIRO_CFLAGS) $(MOZ_PIXMAN_CFLAGS)'
+ TK_LIBS='$(MOZ_CAIRO_LIBS) $(MOZ_PIXMAN_LIBS)'
+ MOZ_WEBGL=1
+ MOZ_PDF_PRINTING=1
+ MOZ_INSTRUMENT_EVENT_LOOP=1
+ ;;
+
+cairo-gonk)
+ AC_DEFINE(MOZ_WIDGET_GONK)
+ AC_DEFINE(MOZ_TOUCH)
+ MOZ_WIDGET_TOOLKIT=gonk
+ TK_CFLAGS='$(MOZ_CAIRO_CFLAGS) $(MOZ_PIXMAN_CFLAGS)'
+ TK_LIBS='$(MOZ_CAIRO_LIBS) $(MOZ_PIXMAN_LIBS)'
+ MOZ_WEBGL=1
+ MOZ_PDF_PRINTING=1
+ MOZ_TOUCH=1
+ ;;
+
+esac
+
+AC_SUBST(MOZ_PDF_PRINTING)
+if test "$MOZ_PDF_PRINTING"; then
+ PDF_SURFACE_FEATURE="#define CAIRO_HAS_PDF_SURFACE 1"
+ AC_DEFINE(MOZ_PDF_PRINTING)
+fi
+
+if test "$MOZ_ENABLE_XREMOTE"; then
+ AC_DEFINE(MOZ_ENABLE_XREMOTE)
+fi
+
+if test "$MOZ_INSTRUMENT_EVENT_LOOP"; then
+ AC_DEFINE(MOZ_INSTRUMENT_EVENT_LOOP)
+fi
+
+if test "$COMPILE_ENVIRONMENT"; then
+ if test "$MOZ_ENABLE_GTK3"; then
+ PKG_CHECK_MODULES(MOZ_GTK3, gtk+-3.0 >= $GTK3_VERSION gtk+-unix-print-3.0 glib-2.0 gobject-2.0 $GDK_PACKAGES)
+ fi
+ if test "$MOZ_ENABLE_GTK2"; then
+ if test "$MOZ_X11"; then
+ GDK_PACKAGES=gdk-x11-2.0
+ fi
+
+ PKG_CHECK_MODULES(MOZ_GTK2, gtk+-2.0 >= $GTK2_VERSION gtk+-unix-print-2.0 glib-2.0 gobject-2.0 $GDK_PACKAGES)
+ fi
+
+fi # COMPILE_ENVIRONMENT
+
+AC_SUBST(MOZ_FS_LAYOUT)
+
+dnl ========================================================
+dnl Use ARM userspace kernel helpers; tell NSPR to enable
+dnl their usage and use them in spidermonkey.
+dnl ========================================================
+MOZ_ARG_WITH_BOOL(arm-kuser,
+[ --with-arm-kuser Use kuser helpers (Linux/ARM only -- requires kernel 2.6.13 or later)],
+ USE_ARM_KUSER=1,)
+if test -n "$USE_ARM_KUSER"; then
+ AC_DEFINE(USE_ARM_KUSER)
+fi
+
+dnl ========================================================
+dnl = startup-notification support module
+dnl ========================================================
+
+if test "$MOZ_ENABLE_GTK"
+then
+ MOZ_ENABLE_STARTUP_NOTIFICATION=
+
+ MOZ_ARG_ENABLE_BOOL(startup-notification,
+ [ --enable-startup-notification
+ Enable startup-notification support (default: disabled) ],
+ MOZ_ENABLE_STARTUP_NOTIFICATION=force,
+ MOZ_ENABLE_STARTUP_NOTIFICATION=)
+ if test "$MOZ_ENABLE_STARTUP_NOTIFICATION"
+ then
+ PKG_CHECK_MODULES(MOZ_STARTUP_NOTIFICATION,
+ libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_VERSION,
+ [MOZ_ENABLE_STARTUP_NOTIFICATION=1], [
+ if test "$MOZ_ENABLE_STARTUP_NOTIFICATION" = "force"
+ then
+ AC_MSG_ERROR([* * * Could not find startup-notification >= $STARTUP_NOTIFICATION_VERSION])
+ fi
+ MOZ_ENABLE_STARTUP_NOTIFICATION=
+ ])
+ fi
+
+ if test "$MOZ_ENABLE_STARTUP_NOTIFICATION"; then
+ AC_DEFINE(MOZ_ENABLE_STARTUP_NOTIFICATION)
+ fi
+
+ TK_LIBS="$TK_LIBS $MOZ_STARTUP_NOTIFICATION_LIBS"
+fi
+AC_SUBST(MOZ_ENABLE_STARTUP_NOTIFICATION)
+AC_SUBST(MOZ_STARTUP_NOTIFICATION_CFLAGS)
+AC_SUBST(MOZ_STARTUP_NOTIFICATION_LIBS)
+
+dnl ========================================================
+dnl = QT support
+dnl ========================================================
+if test "$MOZ_ENABLE_QT"
+then
+ MOZ_ARG_WITH_STRING(qtdir,
+ [ --with-qtdir=\$dir Specify Qt directory ],
+ [ QTDIR=$withval])
+
+ if test -z "$QTDIR"; then
+ AC_CHECK_PROGS(HOST_QMAKE, $HOST_QMAKE qmake, "")
+ else
+ HOST_QMAKE="$QTDIR/bin/qmake"
+ fi
+ QT_VERSION=`$HOST_QMAKE -v | grep 'Using Qt version' | egrep -o '[[0-9]]+\.[[0-9]]+\.[[0-9]]+'`
+
+ if test -z "$QTDIR"; then
+ case $QT_VERSION in
+ 5.*)
+ AC_MSG_RESULT("Using qt5: $QT_VERSION")
+ PKG_CHECK_MODULES(MOZ_QT, Qt5Gui Qt5Network Qt5Core Qt5OpenGL Qt5Widgets Qt5PrintSupport, ,
+ [
+ AC_MSG_ERROR([$MOZ_QT_PKG_ERRORS Need qtbase development packages, (On Ubuntu, you might try installing the packages qtbase5-dev libqt5opengl5-dev.)])
+ ])
+ QT5INCDIR=`pkg-config --variable=includedir Qt5Gui`
+ MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QT5INCDIR/QtGui/$QT_VERSION/QtGui"
+ ;;
+ 4.*)
+ AC_MSG_RESULT("Using qt4: $QT_VERSION")
+ PKG_CHECK_MODULES(MOZ_QT, QtGui QtNetwork QtCore QtOpenGL, ,
+ [
+ AC_MSG_ERROR([$MOZ_QT_PKG_ERRORS Need qt4 development package, (On Ubuntu, you might try installing the packages libqt4-dev libqt4-opengl-dev.)])
+ ])
+ ;;
+ *)
+ AC_MSG_ERROR([* * * Unsupported Qt Version: $QT_VERSION])
+ ;;
+ esac
+
+ AC_CHECK_PROGS(HOST_MOC, $MOC moc, "")
+ AC_CHECK_PROGS(HOST_RCC, $RCC rcc, "")
+ else
+ MOZ_QT_CFLAGS="-DQT_SHARED"
+ MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include"
+ MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtGui"
+ MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtCore"
+ MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtNetwork"
+ MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtXml"
+ MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtDeclarative"
+
+ case $QT_VERSION in
+ 5.*)
+ AC_MSG_RESULT("Using qt5: $QT_VERSION")
+ MOZ_QT_LIBS="-L$QTDIR/lib/ -lQt5Gui -lQt5Network -lQt5Core -lQt5Xml -lQt5OpenGL"
+ MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtGui/$QT_VERSION/QtGui"
+ MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtWidgets"
+ MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtPrintSupport"
+ MOZ_QT_LIBS="$MOZ_QT_LIBS -lQt5Widgets -lQt5PrintSupport"
+ ;;
+ 4.*)
+ AC_MSG_RESULT("Using qt4: $QT_VERSION")
+ MOZ_QT_LIBS="-L$QTDIR/lib/ -lQtGui -lQtNetwork -lQtCore -lQtXml -lQtOpenGL"
+ MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/Qt"
+ ;;
+ *)
+ AC_MSG_ERROR([* * * Unsupported Qt Version: $QT_VERSION])
+ ;;
+ esac
+
+ HOST_MOC="$QTDIR/bin/moc"
+ HOST_RCC="$QTDIR/bin/rcc"
+ fi
+ if test -z "$HOST_MOC"; then
+ AC_MSG_ERROR([No acceptable moc preprocessor found. Qt SDK is not installed or --with-qt is
+incorrect])
+ fi
+ if test -z "$HOST_RCC"; then
+ AC_MSG_ERROR([No acceptable rcc preprocessor found. Qt SDK is not installed or --with-qt is
+incorrect])
+ fi
+
+ MOC=$HOST_MOC
+ RCC=$HOST_RCC
+
+ MOZ_ENABLE_QMSYSTEM2=
+ PKG_CHECK_MODULES(_QMSYSTEM2, qmsystem2,
+ MOZ_ENABLE_QMSYSTEM2=1,
+ MOZ_ENABLE_QMSYSTEM2=)
+
+ if test "$MOZ_ENABLE_QMSYSTEM2"; then
+ MOZ_ENABLE_QMSYSTEM2=1
+ MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS $_QMSYSTEM2_CFLAGS"
+ MOZ_QT_LIBS="$MOZ_QT_LIBS $_QMSYSTEM2_LIBS"
+ AC_DEFINE(MOZ_ENABLE_QMSYSTEM2)
+ fi
+
+ MOZ_ENABLE_QTNETWORK=
+ PKG_CHECK_MODULES(_QTNETWORK, QtNetwork >= 4.7,
+ MOZ_ENABLE_QTNETWORK=1,
+ MOZ_ENABLE_QTNETWORK=)
+
+ if test "$MOZ_ENABLE_QTNETWORK"; then
+ MOZ_ENABLE_QTNETWORK=1
+ AC_DEFINE(MOZ_ENABLE_QTNETWORK)
+ fi
+
+ MOZ_ENABLE_QTMOBILITY=
+ PKG_CHECK_MODULES(_QTMOBILITY, QtSensors QtFeedback QtLocation,
+ MOZ_ENABLE_QTMOBILITY=1,
+ MOZ_ENABLE_QTMOBILITY=)
+ if test "$MOZ_ENABLE_QTMOBILITY"; then
+ MOZ_ENABLE_QTMOBILITY=1
+ MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS $_QTMOBILITY_CFLAGS"
+ MOZ_QT_LIBS="$MOZ_QT_LIBS $_QTMOBILITY_LIBS"
+ else
+ AC_CHECK_LIB(QtSensors, main, [
+ MOZ_ENABLE_QTMOBILITY=1
+ MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtMobility"
+ MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtSensors"
+ MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtFeedback"
+ MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtLocation"
+ MOZ_QT_LIBS="$MOZ_QT_LIBS -lQtSensors -lQtFeedback -lQtLocation"
+ ])
+ fi
+ if test "$MOZ_ENABLE_QTMOBILITY"; then
+ AC_DEFINE(MOZ_ENABLE_QTMOBILITY)
+ fi
+fi
+
+AC_SUBST(GTK_CONFIG)
+AC_SUBST(TK_CFLAGS)
+AC_SUBST(TK_LIBS)
+
+AC_SUBST(MOZ_ENABLE_GTK2)
+AC_SUBST(MOZ_ENABLE_GTK3)
+AC_SUBST(MOZ_ENABLE_GTK)
+AC_SUBST(MOZ_ENABLE_QT)
+AC_SUBST(MOZ_ENABLE_QTNETWORK)
+AC_SUBST(MOZ_ENABLE_QMSYSTEM2)
+AC_SUBST(MOZ_ENABLE_QTMOBILITY)
+AC_SUBST(MOZ_ENABLE_XREMOTE)
+AC_SUBST(MOZ_GTK2_CFLAGS)
+AC_SUBST(MOZ_GTK2_LIBS)
+AC_SUBST(MOZ_GTK3_CFLAGS)
+AC_SUBST(MOZ_GTK3_LIBS)
+AC_SUBST(MOZ_WIDGET_GTK)
+AC_SUBST(MOZ_QT_CFLAGS)
+AC_SUBST(MOZ_QT_LIBS)
+
+AC_SUBST(MOC)
+AC_SUBST(RCC)
+
+AC_SUBST(MOZ_X11)
+
+dnl ========================================================
+dnl =
+dnl = Components & Features
+dnl =
+dnl ========================================================
+MOZ_ARG_HEADER(Components and Features)
+
+dnl ========================================================
+dnl = Localization
+dnl ========================================================
+MOZ_ARG_ENABLE_STRING(ui-locale,
+[ --enable-ui-locale=ab-CD
+ Select the user interface locale (default: en-US)],
+ MOZ_UI_LOCALE=$enableval )
+AC_SUBST(MOZ_UI_LOCALE)
+
+dnl ========================================================
+dnl = Trademarked Branding
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(official-branding,
+[ --enable-official-branding
+ Enable Official mozilla.org Branding
+ Do not distribute builds with
+ --enable-official-branding unless you have
+ permission to use trademarks per
+ http://www.mozilla.org/foundation/trademarks/ .],
+[
+ if test -z "$MOZ_OFFICIAL_BRANDING_DIRECTORY"; then
+ AC_MSG_ERROR([You must specify MOZ_OFFICIAL_BRANDING_DIRECTORY to use --enable-official-branding.])
+ else
+ MOZ_BRANDING_DIRECTORY=${MOZ_OFFICIAL_BRANDING_DIRECTORY}
+ MOZ_OFFICIAL_BRANDING=1
+ fi
+], MOZ_OFFICIAL_BRANDING=)
+
+AC_SUBST(MOZ_OFFICIAL_BRANDING)
+if test -n "$MOZ_OFFICIAL_BRANDING"; then
+ AC_DEFINE(MOZ_OFFICIAL_BRANDING)
+fi
+
+MOZ_ARG_WITH_STRING(branding,
+[ --with-branding=dir Use branding from the specified directory.],
+ MOZ_BRANDING_DIRECTORY=$withval)
+
+REAL_BRANDING_DIRECTORY="${MOZ_BRANDING_DIRECTORY}"
+if test -z "$REAL_BRANDING_DIRECTORY"; then
+ REAL_BRANDING_DIRECTORY=${MOZ_BUILD_APP}/branding/nightly
+fi
+
+if test -f "${_topsrcdir}/$REAL_BRANDING_DIRECTORY/configure.sh"; then
+ . "${_topsrcdir}/$REAL_BRANDING_DIRECTORY/configure.sh"
+fi
+
+AC_SUBST(MOZ_BRANDING_DIRECTORY)
+
+dnl ========================================================
+dnl = Distribution ID
+dnl ========================================================
+MOZ_ARG_WITH_STRING(distribution-id,
+[ --with-distribution-id=ID
+ Set distribution-specific id (default=org.mozilla)],
+[ val=`echo $withval`
+ MOZ_DISTRIBUTION_ID="$val"])
+
+if test -z "$MOZ_DISTRIBUTION_ID"; then
+ MOZ_DISTRIBUTION_ID="org.mozilla"
+fi
+
+AC_DEFINE_UNQUOTED(MOZ_DISTRIBUTION_ID,"$MOZ_DISTRIBUTION_ID")
+AC_SUBST(MOZ_DISTRIBUTION_ID)
+
+
+dnl ========================================================
+dnl complex text support off by default
+dnl ========================================================
+MOZ_ARG_DISABLE_BOOL(pango,
+[ --disable-pango Disable usage of Pango ],
+ MOZ_PANGO=,
+ MOZ_PANGO=1)
+
+dnl ========================================================
+dnl = Pango
+dnl ========================================================
+if test "$MOZ_ENABLE_GTK" -o "$MOZ_ENABLE_QT"
+then
+ AC_SUBST(MOZ_PANGO)
+
+ if test "$MOZ_PANGO"
+ then
+ PKG_CHECK_MODULES(_PANGOCHK, pango >= $PANGO_VERSION)
+
+ PKG_CHECK_MODULES(MOZ_PANGO, pango >= $PANGO_VERSION pangoft2 >= $PANGO_VERSION pangocairo >= $PANGO_VERSION)
+ AC_SUBST(MOZ_PANGO_CFLAGS)
+ AC_SUBST(MOZ_PANGO_LIBS)
+ AC_DEFINE(MOZ_PANGO)
+ else
+ PKG_CHECK_MODULES(FT2, freetype2 > 6.1.0)
+ AC_SUBST(FT2_CFLAGS)
+ AC_SUBST(FT2_LIBS)
+ fi
+fi
+
+dnl ========================================================
+dnl = GnomeVFS, GIO and GConf support module
+dnl ========================================================
+
+if test "$MOZ_X11"
+then
+ dnl build the GIO extension by default only when the
+ dnl GTK2 toolkit is in use.
+ if test "$MOZ_ENABLE_GTK"
+ then
+ MOZ_ENABLE_GIO=1
+ MOZ_ENABLE_GCONF=1
+ fi
+
+ dnl ========================================================
+ dnl = GnomeVFS support module
+ dnl ========================================================
+ MOZ_ARG_ENABLE_BOOL(gnomevfs,
+ [ --enable-gnomevfs Enable GnomeVFS support (default: disabled)],
+ MOZ_ENABLE_GNOMEVFS=force,
+ MOZ_ENABLE_GNOMEVFS=)
+
+ if test "$MOZ_ENABLE_GNOMEVFS"
+ then
+ PKG_CHECK_MODULES(MOZ_GNOMEVFS, gnome-vfs-2.0 >= $GNOMEVFS_VERSION gnome-vfs-module-2.0 >= $GNOMEVFS_VERSION,[
+ MOZ_GNOMEVFS_LIBS=`echo $MOZ_GNOMEVFS_LIBS | sed 's/-llinc\>//'`
+ MOZ_ENABLE_GNOMEVFS=1
+ AC_DEFINE(MOZ_ENABLE_GNOMEVFS)
+ ],[
+ if test "$MOZ_ENABLE_GNOMEVFS" = "force"
+ then
+ AC_MSG_ERROR([* * * Could not find gnome-vfs-module-2.0 >= $GNOMEVFS_VERSION])
+ fi
+ MOZ_ENABLE_GNOMEVFS=
+ ])
+ fi
+
+ AC_SUBST(MOZ_ENABLE_GNOMEVFS)
+ AC_SUBST(MOZ_GNOMEVFS_CFLAGS)
+ AC_SUBST(MOZ_GNOMEVFS_LIBS)
+
+ dnl ========================================================
+ dnl = GIO support module
+ dnl ========================================================
+ MOZ_ARG_DISABLE_BOOL(gio,
+ [ --disable-gio Disable GIO support],
+ MOZ_ENABLE_GIO=,
+ MOZ_ENABLE_GIO=force)
+
+ if test "$MOZ_ENABLE_GIO" -a "$MOZ_ENABLE_GTK"
+ then
+ PKG_CHECK_MODULES(_GTKCHECK, gtk+-2.0 >= 2.14, ,
+ [AC_MSG_ERROR([* * * Could not find gtk+-2.0 > 2.14. Required for build with gio.])])
+ PKG_CHECK_MODULES(MOZ_GIO, gio-2.0 >= $GIO_VERSION,[
+ MOZ_GIO_LIBS=`echo $MOZ_GIO_LIBS | sed 's/-llinc\>//'`
+ MOZ_ENABLE_GIO=1
+ AC_DEFINE(MOZ_ENABLE_GIO)
+ ],[
+ if test "$MOZ_ENABLE_GIO" = "force"
+ then
+ AC_MSG_ERROR([* * * Could not find gio-2.0 >= $GIO_VERSION])
+ fi
+ MOZ_ENABLE_GIO=
+ ])
+ fi
+
+ AC_SUBST(MOZ_ENABLE_GIO)
+ AC_SUBST(MOZ_GIO_CFLAGS)
+ AC_SUBST(MOZ_GIO_LIBS)
+
+ dnl ========================================================
+ dnl = GConf support module
+ dnl ========================================================
+ MOZ_ARG_DISABLE_BOOL(gconf,
+ [ --disable-gconf Disable Gconf support ],
+ MOZ_ENABLE_GCONF=,
+ MOZ_ENABLE_GCONF=force)
+
+ if test "$MOZ_ENABLE_GCONF"
+ then
+ PKG_CHECK_MODULES(MOZ_GCONF, gconf-2.0 >= $GCONF_VERSION gobject-2.0 ,[
+ MOZ_GCONF_LIBS=`$PKG_CONFIG --libs gobject-2.0`
+ MOZ_ENABLE_GCONF=1
+ ],[
+ if test "$MOZ_ENABLE_GCONF" = "force"
+ then
+ AC_MSG_ERROR([* * * Could not find gconf-2.0 ])
+ fi
+ MOZ_ENABLE_GCONF=
+ ])
+ fi
+
+ if test "$MOZ_ENABLE_GCONF"; then
+ AC_DEFINE(MOZ_ENABLE_GCONF)
+ fi
+
+ AC_SUBST(MOZ_ENABLE_GCONF)
+ AC_SUBST(MOZ_GCONF_CFLAGS)
+ AC_SUBST(MOZ_GCONF_LIBS)
+fi
+
+dnl ========================================================
+dnl = libproxy support
+dnl ========================================================
+
+if test "$MOZ_ENABLE_GTK" -o "$MOZ_ENABLE_QT"
+then
+ MOZ_ENABLE_LIBPROXY=
+
+ MOZ_ARG_ENABLE_BOOL(libproxy,
+ [ --enable-libproxy Enable libproxy support ],
+ MOZ_ENABLE_LIBPROXY=1,
+ MOZ_ENABLE_LIBPROXY=)
+
+ if test "$MOZ_ENABLE_LIBPROXY"
+ then
+ PKG_CHECK_MODULES(MOZ_LIBPROXY, libproxy-1.0)
+ AC_DEFINE(MOZ_ENABLE_LIBPROXY)
+ fi
+fi
+AC_SUBST(MOZ_ENABLE_LIBPROXY)
+AC_SUBST(MOZ_LIBPROXY_CFLAGS)
+AC_SUBST(MOZ_LIBPROXY_LIBS)
+
+dnl ========================================================
+dnl = GNOME component (mozgnome)
+dnl ========================================================
+
+if test "$MOZ_ENABLE_GTK2"
+then
+ MOZ_ENABLE_GNOME_COMPONENT=1
+fi
+AC_SUBST(MOZ_ENABLE_GNOME_COMPONENT)
+
+dnl ========================================================
+dnl = libgnomeui support module
+dnl ========================================================
+
+if test "$MOZ_ENABLE_GTK"
+then
+ MOZ_ARG_ENABLE_BOOL(gnomeui,
+ [ --enable-gnomeui Enable libgnomeui instead of GIO & GTK for icon theme support ],
+ MOZ_ENABLE_GNOMEUI=force,
+ MOZ_ENABLE_GNOMEUI=)
+
+ if test "$MOZ_ENABLE_GNOMEUI"
+ then
+ PKG_CHECK_MODULES(MOZ_GNOMEUI, libgnomeui-2.0 >= $GNOMEUI_VERSION,
+ [
+ MOZ_ENABLE_GNOMEUI=1
+ ],[
+ if test "$MOZ_ENABLE_GNOMEUI" = "force"
+ then
+ AC_MSG_ERROR([* * * Could not find libgnomeui-2.0 >= $GNOMEUI_VERSION])
+ fi
+ MOZ_ENABLE_GNOMEUI=
+ ])
+ fi
+
+ if test "$MOZ_ENABLE_GNOMEUI"; then
+ AC_DEFINE(MOZ_ENABLE_GNOMEUI)
+ fi
+fi
+
+AC_SUBST(MOZ_ENABLE_GNOMEUI)
+AC_SUBST(MOZ_GNOMEUI_CFLAGS)
+
+dnl ========================================================
+dnl = dbus support
+dnl ========================================================
+
+if test "$MOZ_ENABLE_GTK" -o "$MOZ_ENABLE_QT"
+then
+ MOZ_ENABLE_DBUS=1
+
+ MOZ_ARG_DISABLE_BOOL(dbus,
+ [ --disable-dbus Disable dbus support ],
+ MOZ_ENABLE_DBUS=,
+ MOZ_ENABLE_DBUS=1)
+
+ if test "$MOZ_ENABLE_DBUS"
+ then
+ PKG_CHECK_MODULES(MOZ_DBUS, dbus-1 >= $DBUS_VERSION)
+ PKG_CHECK_MODULES(MOZ_DBUS_GLIB, dbus-glib-1 >= $DBUS_VERSION)
+ AC_DEFINE(MOZ_ENABLE_DBUS)
+ fi
+fi
+AC_SUBST(MOZ_ENABLE_DBUS)
+AC_SUBST(MOZ_DBUS_CFLAGS)
+AC_SUBST(MOZ_DBUS_LIBS)
+AC_SUBST(MOZ_DBUS_GLIB_CFLAGS)
+AC_SUBST(MOZ_DBUS_GLIB_LIBS)
+
+dnl ========================================================
+dnl = Enable Android History instead of Places
+dnl ========================================================
+if test -n "$MOZ_ANDROID_HISTORY"; then
+ if test -z "$MOZ_PLACES"; then
+ AC_DEFINE(MOZ_ANDROID_HISTORY)
+ else
+ AC_MSG_ERROR([Cannot use MOZ_ANDROID_HISTORY alongside MOZ_PLACES.])
+ fi
+fi
+
+dnl ========================================================
+dnl = Build with the Android compositor
+dnl ========================================================
+if test -n "$MOZ_ANDROID_OMTC"; then
+ dnl Do this if defined in confvars.sh
+ AC_DEFINE(MOZ_ANDROID_OMTC)
+fi
+
+dnl ========================================================
+dnl = Disable WebSMS backend
+dnl ========================================================
+MOZ_ARG_DISABLE_BOOL(websms-backend,
+[ --disable-websms-backend
+ Disable WebSMS backend],
+ MOZ_WEBSMS_BACKEND=,
+ MOZ_WEBSMS_BACKEND=1)
+
+if test -n "$MOZ_WEBSMS_BACKEND"; then
+ AC_DEFINE(MOZ_WEBSMS_BACKEND)
+fi
+
+dnl ========================================================
+dnl = Enable SET_WALLPAPER permission on Android
+dnl ========================================================
+if test -n "$MOZ_ANDROID_WALLPAPER"; then
+ AC_DEFINE(MOZ_ANDROID_WALLPAPER)
+fi
+
+dnl ========================================================
+dnl = Enable NFC permission on Android
+dnl ========================================================
+if test -n "$MOZ_ANDROID_BEAM"; then
+ AC_DEFINE(MOZ_ANDROID_BEAM)
+fi
+
+dnl ========================================================
+dnl = Build Personal Security Manager
+dnl ========================================================
+MOZ_ARG_DISABLE_BOOL(crypto,
+[ --disable-crypto Disable crypto support (Personal Security Manager)],
+ MOZ_PSM=,
+ MOZ_PSM=1 )
+
+dnl ========================================================
+dnl = JS Debugger XPCOM component (js/jsd)
+dnl ========================================================
+MOZ_ARG_DISABLE_BOOL(jsd,
+[ --disable-jsd Disable JavaScript debug library],
+ MOZ_JSDEBUGGER=,
+ MOZ_JSDEBUGGER=1)
+
+
+dnl ========================================================
+dnl = Enable IPDL's "expensive" unit tests
+dnl ========================================================
+MOZ_IPDL_TESTS=
+
+MOZ_ARG_ENABLE_BOOL(ipdl-tests,
+[ --enable-ipdl-tests Enable expensive IPDL tests],
+ MOZ_IPDL_TESTS=1,
+ MOZ_IPDL_TESTS=)
+
+if test -n "$MOZ_IPDL_TESTS"; then
+ AC_DEFINE(MOZ_IPDL_TESTS)
+fi
+
+AC_SUBST(MOZ_IPDL_TESTS)
+
+dnl ========================================================
+dnl = Disable building dbm
+dnl ========================================================
+MOZ_ARG_DISABLE_BOOL(dbm,
+[ --disable-dbm Disable building dbm],
+ NSS_DISABLE_DBM=1,
+ NSS_DISABLE_DBM=)
+
+dnl bi-directional support always on
+IBMBIDI=1
+AC_DEFINE(IBMBIDI)
+
+dnl ========================================================
+dnl accessibility support on by default on all platforms
+dnl ========================================================
+MOZ_ARG_DISABLE_BOOL(accessibility,
+[ --disable-accessibility Disable accessibility support],
+ ACCESSIBILITY=,
+ ACCESSIBILITY=1 )
+if test "$ACCESSIBILITY"; then
+ case "$target" in
+ *-mingw*)
+ if test -z "$MIDL"; then
+ if test "$GCC" != "yes"; then
+ AC_MSG_ERROR([MIDL could not be found. Building accessibility without MIDL is not supported.])
+ else
+ AC_MSG_ERROR([You have accessibility enabled, but widl could not be found. Add --disable-accessibility to your mozconfig or install widl. See https://developer.mozilla.org/en-US/docs/Cross_Compile_Mozilla_for_Mingw32 for details.])
+ fi
+ fi
+ esac
+ AC_DEFINE(ACCESSIBILITY)
+fi
+
+dnl ========================================================
+dnl Accessibility is required for the linuxgl widget
+dnl backend
+dnl ========================================================
+if test "${MOZ_WIDGET_TOOLKIT}" = "linuxgl" -a "$ACCESSIBILITY" != "1"; then
+ AC_MSG_ERROR(["Accessibility is required for the linuxgl widget backend"])
+fi
+
+dnl ========================================================
+dnl Disable printing
+dnl ========================================================
+MOZ_ARG_DISABLE_BOOL(printing,
+[ --disable-printing Disable printing support],
+ NS_PRINTING=,
+ NS_PRINTING=1)
+
+if test "$NS_PRINTING"; then
+ AC_DEFINE(NS_PRINTING)
+ AC_DEFINE(NS_PRINT_PREVIEW)
+fi
+
+dnl Turn off webrtc for OS's we don't handle yet, but allow
+dnl --enable-webrtc to override. Can disable for everything in
+dnl the master list above.
+if test -n "$MOZ_WEBRTC"; then
+ case "$target" in
+ *-linux*|*-mingw*|*-darwin*|*-android*|*-linuxandroid*)
+ dnl Leave enabled
+ ;;
+ *)
+ dnl default to disabled for all others
+ MOZ_WEBRTC=
+ ;;
+ esac
+fi
+
+# target_arch is from {ia32|x64|arm|ppc}
+case "$CPU_ARCH" in
+x86_64)
+ WEBRTC_TARGET_ARCH=x64
+ ;;
+
+arm*)
+ WEBRTC_TARGET_ARCH=arm
+ ;;
+
+x86)
+ WEBRTC_TARGET_ARCH=ia32
+ ;;
+
+ppc*)
+ WEBRTC_TARGET_ARCH=ppc
+ ;;
+ia64)
+ WEBRTC_TARGET_ARCH=ia64
+ ;;
+*)
+# unsupported arch for webrtc
+ WEBRTC_TARGET_ARCH=unknown
+ MOZ_WEBRTC=
+ ;;
+
+esac
+
+dnl ========================================================
+dnl = Disable WebRTC code
+dnl ========================================================
+MOZ_ARG_DISABLE_BOOL(webrtc,
+[ --disable-webrtc Disable support for WebRTC],
+ MOZ_WEBRTC=,
+ MOZ_WEBRTC=1)
+
+if test -n "$MOZ_WEBRTC"; then
+ AC_DEFINE(MOZ_WEBRTC)
+ dnl MOZ_WEBRTC_ASSERT_ALWAYS turns on a number of safety asserts in
+ dnl opt/production builds (via MOZ_CRASH())
+ AC_DEFINE(MOZ_WEBRTC_ASSERT_ALWAYS)
+ MOZ_RAW=1
+ MOZ_VP8=1
+ MOZ_VP8_ENCODER=1
+ MOZ_VP8_ERROR_CONCEALMENT=1
+
+dnl enable once Signaling lands
+ MOZ_WEBRTC_SIGNALING=1
+ AC_DEFINE(MOZ_WEBRTC_SIGNALING)
+ if test "${OS_TARGET}" = "WINNT"; then
+ MOZ_WEBRTC_IN_LIBXUL=1
+ fi
+dnl enable once PeerConnection lands
+ MOZ_PEERCONNECTION=1
+ AC_DEFINE(MOZ_PEERCONNECTION)
+ MOZ_SCTP=1
+ MOZ_SRTP=1
+ AC_DEFINE(MOZ_SCTP)
+ AC_DEFINE(MOZ_SRTP)
+fi
+
+AC_SUBST(MOZ_WEBRTC)
+AC_SUBST(MOZ_WEBRTC_LEAKING_TESTS)
+AC_SUBST(MOZ_WEBRTC_SIGNALING)
+AC_SUBST(MOZ_PEERCONNECTION)
+AC_SUBST(MOZ_WEBRTC_IN_LIBXUL)
+AC_SUBST(MOZ_WEBRTC_ASSERT_ALWAYS)
+AC_SUBST(MOZ_SCTP)
+AC_SUBST(MOZ_SRTP)
+
+dnl Use integers over floats for audio on B2G and Android, because audio
+dnl backends for those platforms don't support floats.
+if test "$OS_TARGET" = "Android"; then
+ MOZ_SAMPLE_TYPE_S16=1
+ AC_DEFINE(MOZ_SAMPLE_TYPE_S16)
+ AC_SUBST(MOZ_SAMPLE_TYPE_S16)
+else
+ MOZ_SAMPLE_TYPE_FLOAT32=1
+ AC_DEFINE(MOZ_SAMPLE_TYPE_FLOAT32)
+ AC_SUBST(MOZ_SAMPLE_TYPE_FLOAT32)
+fi
+
+dnl ========================================================
+dnl = Disable Speech API code
+dnl ========================================================
+MOZ_ARG_DISABLE_BOOL(webspeech,
+[ --disable-webspeech Disable support for HTML Speech API],
+ MOZ_WEBSPEECH=,
+ MOZ_WEBSPEECH=1)
+
+if test -n "$MOZ_WEBSPEECH"; then
+ AC_DEFINE(MOZ_WEBSPEECH)
+fi
+
+AC_SUBST(MOZ_WEBSPEECH)
+
+dnl ========================================================
+dnl = Enable Raw Codecs
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(raw,
+[ --enable-raw Enable support for RAW media],
+ MOZ_RAW=1,
+ MOZ_RAW=)
+
+if test -n "$MOZ_RAW"; then
+ AC_DEFINE(MOZ_RAW)
+fi
+
+AC_SUBST(MOZ_RAW)
+
+dnl ========================================================
+dnl = Disable Ogg Codecs
+dnl ========================================================
+MOZ_ARG_DISABLE_BOOL(ogg,
+[ --disable-ogg Disable support for OGG media (Theora video and Vorbis audio)],
+ MOZ_OGG=,
+ MOZ_OGG=1)
+
+if test -n "$MOZ_OGG"; then
+ AC_DEFINE(MOZ_OGG)
+ MOZ_CUBEB=1
+
+ dnl Checks for __attribute__(aligned()) directive
+ AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
+ [ac_cv_c_attribute_aligned],
+ [ac_cv_c_attribute_aligned=0
+ CFLAGS_save="${CFLAGS}"
+ CFLAGS="${CFLAGS} -Werror"
+ for ac_cv_c_attr_align_try in 64 32 16 8; do
+ echo "trying $ac_cv_c_attr_align_try"
+ AC_TRY_COMPILE([],
+ [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
+ [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
+ if test "$ac_cv_c_attribute_aligned" != 0; then
+ break;
+ fi
+ done
+ CFLAGS="${CFLAGS_save}"])
+ if test "${ac_cv_c_attribute_aligned}" != "0"; then
+ AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
+ [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
+ fi
+fi
+
+dnl ========================================================
+dnl = Disable Opus audio codec support
+dnl ========================================================
+MOZ_ARG_DISABLE_BOOL(opus,
+[ --disable-opus Disable support for Opus audio],
+ MOZ_OPUS=,
+ MOZ_OPUS=1)
+
+dnl ========================================================
+dnl = Disable VP8 decoder support
+dnl ========================================================
+MOZ_ARG_DISABLE_BOOL(webm,
+[ --disable-webm Disable support for WebM media (VP8 video and Vorbis audio)],
+ MOZ_WEBM=,
+ MOZ_WEBM=1)
+
+if test -n "$MOZ_WEBM"; then
+ AC_DEFINE(MOZ_WEBM)
+ MOZ_VP8=1
+fi;
+
+dnl ========================================================
+dnl = Windows Media Foundation support
+dnl ========================================================
+if test "$OS_ARCH" = "WINNT"; then
+ dnl Enable Windows Media Foundation support by default.
+ dnl Note our minimum SDK version is Windows 7 SDK, so we are (currently)
+ dnl guaranteed to have a recent-enough SDK to build WMF.
+ MOZ_WMF=1
+fi
+
+MOZ_ARG_DISABLE_BOOL(wmf,
+[ --disable-wmf Disable support for Windows Media Foundation],
+ MOZ_WMF=,
+ MOZ_WMF=1)
+
+if test -n "$MOZ_WMF"; then
+ AC_DEFINE(MOZ_WMF)
+ MOZ_CUBEB=1
+fi;
+
+dnl ========================================================
+dnl = Enable media plugin support
+dnl ========================================================
+if test "$OS_TARGET" = Android -a x"$MOZ_WIDGET_TOOLKIT" != x"gonk"; then
+ dnl Enable support on android by default
+ MOZ_MEDIA_PLUGINS=1
+fi
+
+MOZ_ARG_ENABLE_BOOL(media-plugins,
+[ --enable-media-plugins Enable support for media plugins],
+ MOZ_MEDIA_PLUGINS=1,
+ MOZ_MEDIA_PLUGINS=)
+
+if test -n "$MOZ_MEDIA_PLUGINS"; then
+ AC_DEFINE(MOZ_MEDIA_PLUGINS)
+fi
+
+dnl ========================================================
+dnl = Enable getUserMedia support
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(media-navigator,
+[ --enable-media-navigator Enable support for getUserMedia],
+ MOZ_MEDIA_NAVIGATOR=1,
+ MOZ_MEDIA_NAVIGATOR=)
+
+if test -n "$MOZ_MEDIA_NAVIGATOR"; then
+ AC_DEFINE(MOZ_MEDIA_NAVIGATOR)
+fi
+
+dnl ========================================================
+dnl = Enable building OMX media plugin (B2G or Android)
+dnl ========================================================
+if test "$OS_TARGET" = Android -a x"$MOZ_WIDGET_TOOLKIT" != x"gonk"; then
+ dnl Enable support on android by default
+ MOZ_OMX_PLUGIN=1
+fi
+
+MOZ_ARG_ENABLE_BOOL(omx-plugin,
+[ --enable-omx-plugin Enable building OMX plugin (B2G)],
+ MOZ_OMX_PLUGIN=1,
+ MOZ_OMX_PLUGIN=)
+
+if test -n "$MOZ_OMX_PLUGIN"; then
+ if test "$OS_TARGET" = "Android"; then
+ dnl Only allow building OMX plugin on Gonk (B2G) or Android
+ AC_DEFINE(MOZ_OMX_PLUGIN)
+ else
+ dnl fail if we're not building on Gonk or Android
+ AC_MSG_ERROR([OMX media plugin can only be built on B2G or Android])
+ fi
+fi
+
+dnl system libvpx Support
+dnl ========================================================
+MOZ_ARG_WITH_BOOL(system-libvpx,
+[ --with-system-libvpx Use system libvpx (located with pkgconfig)],
+ MOZ_NATIVE_LIBVPX=1)
+
+MOZ_LIBVPX_CFLAGS=
+MOZ_LIBVPX_LIBS=
+
+if test -n "$MOZ_VP8"; then
+ AC_DEFINE(MOZ_VP8)
+ if test -n "$MOZ_VP8_ERROR_CONCEALMENT" ; then
+ AC_DEFINE(MOZ_VP8_ERROR_CONCEALMENT)
+ fi
+ if test -n "$MOZ_VP8_ENCODER" ; then
+ AC_DEFINE(MOZ_VP8_ENCODER)
+ fi
+
+ if test -n "$MOZ_NATIVE_LIBVPX"; then
+ dnl ============================
+ dnl === libvpx Version check ===
+ dnl ============================
+ dnl Check to see if we have a system libvpx package.
+ PKG_CHECK_MODULES(MOZ_LIBVPX, vpx >= 1.0.0)
+
+ MOZ_CHECK_HEADER([vpx/vpx_decoder.h], [],
+ [AC_MSG_ERROR([Couldn't find vpx/vpx_decoder.h which is required for build with system libvpx. Use --without-system-libvpx to build with in-tree libvpx.])])
+
+ _SAVE_LIBS=$LIBS
+ AC_CHECK_LIB(vpx, vpx_codec_dec_init_ver, [],
+ [AC_MSG_ERROR([--with-system-libvpx requested but symbol vpx_codec_dec_init_ver not found])])
+ LIBS=$_SAVE_LIBS
+ fi
+fi
+
+AC_SUBST(MOZ_NATIVE_LIBVPX)
+AC_SUBST(MOZ_LIBVPX_CFLAGS)
+AC_SUBST(MOZ_LIBVPX_LIBS)
+
+if test "$MOZ_WEBM"; then
+ MOZ_CUBEB=1
+ if test "$MOZ_SAMPLE_TYPE_FLOAT32"; then
+ MOZ_VORBIS=1
+ else
+ MOZ_TREMOR=1
+ fi
+fi
+
+if test -n "$MOZ_VP8" -a -z "$MOZ_NATIVE_LIBVPX"; then
+
+ dnl Detect if we can use an assembler to compile optimized assembly for libvpx.
+ dnl We currently require yasm on all x86 platforms and require yasm 1.1.0 on Win32.
+ dnl We currently require gcc on all arm platforms.
+ VPX_AS=$YASM
+ VPX_ASM_SUFFIX=asm
+ VPX_NEED_OBJ_INT_EXTRACT=
+
+ dnl See if we have assembly on this platform.
+ case "$OS_ARCH:$CPU_ARCH" in
+ Darwin:x86)
+ VPX_ASFLAGS="-f macho32 -rnasm -pnasm -DPIC"
+ VPX_X86_ASM=1
+ ;;
+ Darwin:x86_64)
+ VPX_ASFLAGS="-f macho64 -rnasm -pnasm -DPIC"
+ VPX_X86_ASM=1
+ ;;
+ WINNT:x86_64)
+ VPX_ASFLAGS="-f x64 -rnasm -pnasm"
+ VPX_X86_ASM=1
+ ;;
+ WINNT:x86)
+ dnl Check for yasm 1.1 or greater.
+ if test -n "$COMPILE_ENVIRONMENT" -a -z "$YASM"; then
+ AC_MSG_ERROR([yasm 1.1 or greater is required to build libvpx on Win32, but it appears not to be installed. Install it (included in MozillaBuild 1.5.1 and newer) or configure with --disable-webm (which disables the WebM video format). See https://developer.mozilla.org/en/YASM for more details.])
+ elif test -n "$COMPILE_ENVIRONMENT" -a "$_YASM_MAJOR_VERSION" -lt "1" -o \( "$_YASM_MAJOR_VERSION" -eq "1" -a "$_YASM_MINOR_VERSION" -lt "1" \) ; then
+ AC_MSG_ERROR([yasm 1.1 or greater is required to build libvpx on Win32, but you appear to have version $_YASM_MAJOR_VERSION.$_YASM_MINOR_VERSION. Upgrade to the newest version (included in MozillaBuild 1.5.1 and newer) or configure with --disable-webm (which disables the WebM video format). See https://developer.mozilla.org/en/YASM for more details.])
+ else
+ VPX_ASFLAGS="-f win32 -rnasm -pnasm -DPIC"
+ VPX_X86_ASM=1
+ dnl The encoder needs obj_int_extract to get asm offsets.
+ fi
+ ;;
+ *:arm*)
+ if test -n "$GNU_AS" ; then
+ VPX_AS=$AS
+ dnl These flags are a lie; they're just used to enable the requisite
+ dnl opcodes; actual arch detection is done at runtime.
+ VPX_ASFLAGS="-march=armv7-a -mfpu=neon"
+ VPX_DASH_C_FLAG="-c"
+ VPX_AS_CONVERSION='$(PERL) $(topsrcdir)/media/libvpx/build/make/ads2gas.pl'
+ VPX_ASM_SUFFIX="$ASM_SUFFIX"
+ VPX_ARM_ASM=1
+ fi
+ ;;
+ *:x86)
+ if $CC -E -dM -</dev/null | grep -q __ELF__; then
+ VPX_ASFLAGS="-f elf32 -rnasm -pnasm"
+ VPX_X86_ASM=1
+ fi
+ ;;
+ *:x86_64)
+ if $CC -E -dM -</dev/null | grep -q __ELF__; then
+ VPX_ASFLAGS="-f elf64 -rnasm -pnasm -DPIC"
+ VPX_X86_ASM=1
+ fi
+ ;;
+ esac
+
+ if test -n "$COMPILE_ENVIRONMENT" -a -n "$VPX_X86_ASM" -a -z "$VPX_AS"; then
+ AC_MSG_ERROR([yasm is a required build tool for this architecture when webm is enabled. You may either install yasm or --disable-webm (which disables the WebM video format). See https://developer.mozilla.org/en/YASM for more details.])
+ fi
+
+ if test -n "$MOZ_VP8_ENCODER" -a \
+ -z "$GNU_CC" -a -z "$INTEL_CC" -a -z "$CLANG_CC" ; then
+ dnl We prefer to get asm offsets using inline assembler, which the above
+ dnl compilers can do. When we're not using one of those, we have to fall
+ dnl back to obj_int_extract, which reads them from a compiled object
+ dnl file. Unfortunately, that only works if we're compiling on a system
+ dnl with the header files for the appropriate object file format.
+ VPX_NEED_OBJ_INT_EXTRACT=1
+ fi
+
+ if test -n "$VPX_X86_ASM"; then
+ AC_DEFINE(VPX_X86_ASM)
+ elif test -n "$VPX_ARM_ASM"; then
+ AC_DEFINE(VPX_ARM_ASM)
+ else
+ AC_MSG_WARN([No assembler or assembly support for libvpx. Using unoptimized C routines.])
+ fi
+fi
+
+dnl ========================================================
+dnl = Disable Wave decoder support
+dnl ========================================================
+MOZ_ARG_DISABLE_BOOL(wave,
+[ --disable-wave Disable Wave decoder support],
+ MOZ_WAVE=,
+ MOZ_WAVE=1)
+
+if test -n "$MOZ_WAVE"; then
+ AC_DEFINE(MOZ_WAVE)
+ MOZ_CUBEB=1
+fi
+
+dnl ========================================================
+dnl = Handle dependent CUBEB and MEDIA defines
+dnl ========================================================
+
+if test -n "$MOZ_SPEEX_RESAMPLER"; then
+ AC_DEFINE(MOZ_SPEEX_RESAMPLER)
+fi
+
+if test -n "$MOZ_SOUNDTOUCH"; then
+ AC_DEFINE(MOZ_SOUNDTOUCH)
+fi
+
+if test -n "$MOZ_CUBEB"; then
+ AC_DEFINE(MOZ_CUBEB)
+fi
+
+if test -n "$MOZ_VORBIS" -a -n "$MOZ_TREMOR"; then
+ AC_MSG_ERROR([MOZ_VORBIS and MOZ_TREMOR are mutually exclusive! The build system should not allow them both to be set, but they are. Please file a bug at https://bugzilla.mozilla.org/])
+fi
+
+if test -n "$MOZ_VORBIS"; then
+ AC_DEFINE(MOZ_VORBIS)
+fi
+
+if test -n "$MOZ_TREMOR"; then
+ AC_DEFINE(MOZ_TREMOR)
+fi
+
+if test -n "$MOZ_OPUS"; then
+ AC_DEFINE(MOZ_OPUS)
+fi
+
+dnl ========================================================
+dnl = Check alsa availability on Linux if using sydneyaudio
+dnl ========================================================
+
+dnl If using sydneyaudio with Linux, ensure that the alsa library is available
+if test -n "$MOZ_CUBEB" -a "$OS_TARGET" = "Linux"; then
+ MOZ_ALSA=1
+fi
+
+MOZ_ARG_ENABLE_BOOL(alsa,
+[ --enable-alsa Enable Alsa support (default on Linux)],
+MOZ_ALSA=1,
+MOZ_ALSA=)
+
+if test -n "$MOZ_ALSA"; then
+ AC_DEFINE(MOZ_CUBEB)
+ PKG_CHECK_MODULES(MOZ_ALSA, alsa, ,
+ [echo "$MOZ_ALSA_PKG_ERRORS"
+ AC_MSG_ERROR([Need alsa for Ogg, Wave or WebM decoding on Linux. Disable with --disable-ogg --disable-wave --disable-webm. (On Ubuntu, you might try installing the package libasound2-dev.)])])
+fi
+
+AC_SUBST(MOZ_ALSA)
+AC_SUBST(MOZ_ALSA_CFLAGS)
+AC_SUBST(MOZ_ALSA_LIBS)
+
+dnl ========================================================
+dnl = Enable PulseAudio
+dnl ========================================================
+
+MOZ_ARG_ENABLE_BOOL(pulseaudio,
+[ --enable-pulseaudio Enable PulseAudio support (experimental)],
+MOZ_PULSEAUDIO=1,
+MOZ_PULSEAUDIO=)
+
+if test -n "$MOZ_PULSEAUDIO"; then
+ AC_DEFINE(MOZ_CUBEB)
+ PKG_CHECK_MODULES(MOZ_PULSEAUDIO, libpulse, ,
+ [echo "$MOZ_PULSEAUDIO_PKG_ERRORS"
+ AC_MSG_ERROR([pulseaudio audio backend requires libpulse package])])
+fi
+
+AC_SUBST(MOZ_PULSEAUDIO)
+AC_SUBST(MOZ_PULSEAUDIO_CFLAGS)
+AC_SUBST(MOZ_PULSEAUDIO_LIBS)
+
+dnl ========================================================
+dnl = Enable GStreamer
+dnl ========================================================
+if test "$OS_TARGET" = "Linux"; then
+ MOZ_GSTREAMER=1
+fi
+
+MOZ_ARG_ENABLE_BOOL(gstreamer,
+[ --enable-gstreamer Enable GStreamer support],
+MOZ_GSTREAMER=1,
+MOZ_GSTREAMER=)
+
+if test "$MOZ_GSTREAMER"; then
+ # API version, eg 0.10, 1.0 etc
+ GST_API_VERSION=0.10
+ # core/base release number
+ GST_VERSION=0.10.25
+ PKG_CHECK_MODULES(GSTREAMER,
+ gstreamer-$GST_API_VERSION >= $GST_VERSION
+ gstreamer-app-$GST_API_VERSION
+ gstreamer-plugins-base-$GST_API_VERSION, ,
+ AC_MSG_ERROR([gstreamer and gstreamer-plugins-base development packages are needed to build gstreamer backend. Install them or disable gstreamer support with --disable-gstreamer]))
+ if test -n "$GSTREAMER_LIBS"; then
+ _SAVE_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS $GSTREAMER_LIBS -lgstvideo-$GST_API_VERSION"
+ AC_TRY_LINK(,[return 0;],_HAVE_LIBGSTVIDEO=1,_HAVE_LIBGSTVIDEO=)
+ if test -n "$_HAVE_LIBGSTVIDEO" ; then
+ GSTREAMER_LIBS="$GSTREAMER_LIBS -lgstvideo-$GST_API_VERSION"
+ else
+ AC_MSG_ERROR([gstreamer-plugins-base found, but no libgstvideo. Something has gone terribly wrong. Try reinstalling gstreamer-plugins-base; failing that, disable the gstreamer backend with --disable-gstreamer.])
+ fi
+ LDFLAGS=$_SAVE_LDFLAGS
+ else
+ AC_MSG_ERROR([gstreamer and gstreamer-plugins-base development packages are needed to build gstreamer backend. Install them or disable gstreamer support with --disable-gstreamer])
+ fi
+fi
+AC_SUBST(GSTREAMER_CFLAGS)
+AC_SUBST(GSTREAMER_LIBS)
+AC_SUBST(MOZ_GSTREAMER)
+
+if test -n "$MOZ_GSTREAMER"; then
+ AC_DEFINE(MOZ_GSTREAMER)
+fi
+
+
+dnl ========================================================
+dnl Permissions System
+dnl ========================================================
+MOZ_ARG_DISABLE_BOOL(permissions,
+[ --disable-permissions Disable permissions (popup and cookie blocking)],
+ MOZ_PERMISSIONS=,
+ MOZ_PERMISSIONS=1
+)
+
+dnl ========================================================
+dnl NegotiateAuth
+dnl ========================================================
+MOZ_ARG_DISABLE_BOOL(negotiateauth,
+[ --disable-negotiateauth Disable GSS-API negotiation ],
+ MOZ_AUTH_EXTENSION=,
+ MOZ_AUTH_EXTENSION=1 )
+
+dnl ========================================================
+dnl Pref extensions (autoconfig)
+dnl ========================================================
+MOZ_ARG_DISABLE_BOOL(pref-extensions,
+[ --disable-pref-extensions
+ Disable pref extensions such as autoconfig],
+ MOZ_PREF_EXTENSIONS=,
+ MOZ_PREF_EXTENSIONS=1 )
+
+dnl ========================================================
+dnl Searching of system directories for extensions.
+dnl Note: this switch is meant to be used for test builds
+dnl whose behavior should not depend on what happens to be
+dnl installed on the local machine.
+dnl ========================================================
+MOZ_ARG_DISABLE_BOOL(system-extension-dirs,
+[ --disable-system-extension-dirs
+ Disable searching system- and account-global
+ directories for extensions of any kind; use
+ only profile-specific extension directories],
+ ENABLE_SYSTEM_EXTENSION_DIRS=,
+ ENABLE_SYSTEM_EXTENSION_DIRS=1 )
+if test "$ENABLE_SYSTEM_EXTENSION_DIRS"; then
+ AC_DEFINE(ENABLE_SYSTEM_EXTENSION_DIRS)
+fi
+
+dnl ========================================================
+dnl = Universalchardet
+dnl ========================================================
+MOZ_ARG_DISABLE_BOOL(universalchardet,
+[ --disable-universalchardet
+ Disable universal encoding detection],
+ MOZ_UNIVERSALCHARDET=,
+ MOZ_UNIVERSALCHARDET=1 )
+
+if test -n "${JAVA_BIN_PATH}"; then
+ dnl Look for javac and jar in the specified path.
+ JAVA_PATH="$JAVA_BIN_PATH"
+else
+ dnl No path specified, so look for javac and jar in $JAVA_HOME & $PATH.
+ JAVA_PATH="$JAVA_HOME/bin:$PATH"
+fi
+
+MOZ_PATH_PROG(JAVA, java, :, [$JAVA_PATH])
+MOZ_PATH_PROG(JAVAC, javac, :, [$JAVA_PATH])
+MOZ_PATH_PROG(JAVAH, javah, :, [$JAVA_PATH])
+MOZ_PATH_PROG(JAR, jar, :, [$JAVA_PATH])
+
+if test -n "${JAVA_BIN_PATH}" -o \
+ \( "$OS_TARGET" = Android -a x"$MOZ_WIDGET_TOOLKIT" != x"gonk" \); then
+ if test -z "$JAVA" -o "$JAVA" = ":" -o -z "$JAVAC" -o "$JAVAC" = ":" -o -z "$JAVAH" -o "$JAVAH" = ":" -o -z "$JAR" -o "$JAR" = ":"; then
+ AC_MSG_ERROR([The programs java, javac, javah and jar were not found. Set \$JAVA_HOME to your java sdk directory or use --with-java-bin-path={java-bin-dir}])
+ fi
+fi
+
+dnl ========================================================
+dnl = ANGLE OpenGL->D3D translator for WebGL
+dnl = * only applies to win32
+dnl = * enabled by default (shipping build); requires explicit --disable to disable
+dnl ========================================================
+MOZ_ANGLE_RENDERER=
+MOZ_DIRECTX_SDK_PATH=
+MOZ_DIRECTX_SDK_CPU_SUFFIX=
+MOZ_D3DCOMPILER_CAB=
+MOZ_D3DCOMPILER_DLL=
+case "$target_os" in
+*mingw*)
+ MOZ_ANGLE_RENDERER=1
+ ;;
+esac
+
+# The DirectX SDK libraries are split into x86 and x64 sub-directories
+case "${target_cpu}" in
+i*86)
+ MOZ_DIRECTX_SDK_CPU_SUFFIX=x86
+ ;;
+x86_64)
+ MOZ_DIRECTX_SDK_CPU_SUFFIX=x64
+ ;;
+esac
+
+MOZ_ARG_DISABLE_BOOL(webgl,
+[ --disable-webgl Disable building of the WebGL implementation],
+ MOZ_WEBGL_DISABLED=1,
+ MOZ_WEBGL_DISABLED=)
+
+if test -n "$MOZ_WEBGL_DISABLED"; then
+ MOZ_WEBGL=
+ MOZ_ANGLE_RENDERER=
+fi
+
+# Locate a DirectX SDK here so we can use it for both ANGLE and
+# Joystick support.
+if test "$OS_TARGET" = "WINNT" -a -z "$CROSS_COMPILE"; then
+ # Get the SDK path from the registry.
+ # First try to get the June 2010 SDK
+ MOZ_DIRECTX_SDK_REG_KEY=`reg query 'HKLM\Software\Microsoft\DirectX' //s | grep 'Microsoft DirectX SDK (June 2010)' | head -n 1`
+ if test -z "$MOZ_DIRECTX_SDK_REG_KEY" ; then
+ # Otherwise just take whatever comes first
+ MOZ_DIRECTX_SDK_REG_KEY=`reg query 'HKLM\Software\Microsoft\DirectX' //s | grep 'Microsoft DirectX SDK' | head -n 1`
+ fi
+ MOZ_DIRECTX_SDK_PATH=`reg query "$MOZ_DIRECTX_SDK_REG_KEY" //v InstallPath | grep REG_SZ | sed 's/.*\([[a-zA-Z]]\)\\:\\\\/\\1\\:\\\\/' | sed 's,\\\\,/,g'`
+fi
+
+if test -n "$MOZ_ANGLE_RENDERER" -a -z "$CROSS_COMPILE"; then
+ if test -n "`echo $MOZ_DIRECTX_SDK_REG_KEY | grep 'February 2010'`" ; then
+ AC_MSG_ERROR([Found the February 2010 DirectX SDK. Need the June 2010 DirectX SDK, or newer. Upgrade your SDK or reconfigure with --disable-webgl.])
+ fi
+
+ if test -n "$MOZ_DIRECTX_SDK_PATH" &&
+ test -f "$MOZ_DIRECTX_SDK_PATH"/include/d3dx9.h &&
+ test -f "$MOZ_DIRECTX_SDK_PATH"/lib/$MOZ_DIRECTX_SDK_CPU_SUFFIX/dxguid.lib ; then
+ AC_MSG_RESULT([Found DirectX SDK via registry, using $MOZ_DIRECTX_SDK_PATH])
+ else
+ AC_MSG_ERROR([Couldn't find the DirectX SDK, needed for WebGL. Either install it (June 2010 version or newer), or reconfigure with --disable-webgl.])
+ fi
+
+ # Get the SDK numeric version (e.g. 43) by looking at the dependencies of d3dx9.lib
+ MOZ_D3DX9_VERSION=`dumpbin //headers "$MOZ_DIRECTX_SDK_PATH"/lib/$MOZ_DIRECTX_SDK_CPU_SUFFIX/d3dx9.lib | egrep d3dx9_[[0-9]][[0-9]]\.dll | head -n1 | sed 's/.*\([[0-9]][[0-9]]\).*/\\1/g'`
+
+ if test -z "$MOZ_D3DX9_VERSION" ; then
+ AC_MSG_ERROR([Couldn't determine the D3DX9 version, needed for WebGL. Either reinstall the DirectX SDK (June 2010 version or newer), or reconfigure with --disable-webgl.])
+ fi
+
+ MOZ_D3DCOMPILER_CAB=`find "$MOZ_DIRECTX_SDK_PATH"/Redist -name *D3DCompiler_${MOZ_D3DX9_VERSION}_${MOZ_DIRECTX_SDK_CPU_SUFFIX}.cab | head -n1`
+
+ if test -z "$MOZ_D3DCOMPILER_CAB"; then
+ AC_MSG_ERROR([Couldn't find the DirectX redistributable files. Either reinstall the DirectX SDK (making sure the "DirectX Redistributable Files" option is selected), or reconfigure with --disable-webgl.])
+ fi
+
+ MOZ_D3DCOMPILER_DLL=D3DCompiler_$MOZ_D3DX9_VERSION.dll
+fi
+
+dnl ========================================================
+dnl Gamepad support
+dnl ========================================================
+MOZ_GAMEPAD=
+MOZ_GAMEPAD_BACKEND=stub
+
+# Gamepad DOM is built on supported platforms by default.
+case "$OS_TARGET" in
+ Darwin|WINNT|Linux)
+ MOZ_GAMEPAD=1
+ ;;
+ *)
+ ;;
+esac
+
+MOZ_ARG_DISABLE_BOOL(gamepad,
+[ --disable-gamepad Disable gamepad support],
+ MOZ_GAMEPAD=,
+ MOZ_GAMEPAD=1)
+
+if test "$MOZ_GAMEPAD"; then
+ case "$OS_TARGET" in
+ Darwin)
+ MOZ_GAMEPAD_BACKEND=cocoa
+ ;;
+ WINNT)
+ if test -n "$MOZ_DIRECTX_SDK_PATH" ; then
+ if ! test -f "$MOZ_DIRECTX_SDK_PATH"/lib/$MOZ_DIRECTX_SDK_CPU_SUFFIX/dxguid.lib ; then
+ MOZ_GAMEPAD=
+ fi
+ elif test "$GCC" != "yes"; then
+ MOZ_GAMEPAD=
+ fi
+ if test -z "$MOZ_GAMEPAD"; then
+ AC_MSG_ERROR([Couldn't find the DirectX SDK, needed for gamepad support. Please install it or, reconfigure with --disable-gamepad to disable gamepad support.])
+ fi
+ MOZ_GAMEPAD_BACKEND=windows
+ ;;
+ Linux)
+ MOZ_CHECK_HEADER([linux/joystick.h])
+ if test "$ac_cv_header_linux_joystick_h" != "yes"; then
+ AC_MSG_ERROR([Can't find header linux/joystick.h, needed for gamepad support. Please install Linux kernel headers or reconfigure with --disable-gamepad to disable gamepad support.])
+ fi
+ MOZ_GAMEPAD_BACKEND=linux
+ ;;
+ *)
+ ;;
+ esac
+
+ AC_DEFINE(MOZ_GAMEPAD)
+fi
+AC_SUBST(MOZ_GAMEPAD)
+AC_SUBST(MOZ_GAMEPAD_BACKEND)
+
+dnl ========================================================
+dnl = Breakpad crash reporting (on by default on supported platforms)
+dnl ========================================================
+
+case $target in
+i?86-*-mingw*|x86_64-*-mingw*)
+ MOZ_CRASHREPORTER=1
+ ;;
+i?86-apple-darwin*|x86_64-apple-darwin*)
+ MOZ_CRASHREPORTER=1
+ ;;
+i?86-*-linux*|x86_64-*-linux*|arm-*-linux*)
+ if test "$MOZ_ENABLE_GTK"; then
+ MOZ_CRASHREPORTER=1
+ fi
+ ;;
+*-android*|*-linuxandroid*)
+ MOZ_CRASHREPORTER=1
+ ;;
+*solaris*)
+ MOZ_CRASHREPORTER=1
+ ;;
+esac
+
+MOZ_ARG_DISABLE_BOOL(crashreporter,
+[ --disable-crashreporter Disable breakpad crash reporting],
+ MOZ_CRASHREPORTER=,
+ MOZ_CRASHREPORTER=1)
+
+if test -n "$MOZ_CRASHREPORTER"; then
+ AC_DEFINE(MOZ_CRASHREPORTER)
+
+ if test "$OS_TARGET" = "Linux" -o "$OS_ARCH" = "SunOS" && \
+ test -z "$SKIP_LIBRARY_CHECKS"; then
+ PKG_CHECK_MODULES(MOZ_GTHREAD, gthread-2.0)
+ AC_SUBST(MOZ_GTHREAD_CFLAGS)
+ AC_SUBST(MOZ_GTHREAD_LIBS)
+ fi
+
+ if test "$OS_ARCH" != "$HOST_OS_ARCH" -a "$OS_ARCH" != "WINNT"; then
+ AC_MSG_ERROR([Breakpad tools do not support compiling on $HOST_OS_ARCH while targeting $OS_ARCH. Use --disable-crashreporter.])
+ fi
+
+ if test "$OS_ARCH" = "WINNT"; then
+ if test -z "$HAVE_64BIT_OS"; then
+ MOZ_CRASHREPORTER_INJECTOR=1
+ AC_DEFINE(MOZ_CRASHREPORTER_INJECTOR)
+ fi
+ fi
+fi
+AC_DEFINE_UNQUOTED(BREAKPAD_CUSTOM_STDINT_H, "mozilla/StandardInteger.h")
+
+MOZ_ARG_WITH_STRING(crashreporter-enable-percent,
+[ --with-crashreporter-enable-percent=NN
+ Enable sending crash reports by default on NN% of users. (default=100)],
+[ val=`echo $withval | sed 's/[^0-9]//g'`
+ MOZ_CRASHREPORTER_ENABLE_PERCENT="$val"])
+
+if test -z "$MOZ_CRASHREPORTER_ENABLE_PERCENT"; then
+ MOZ_CRASHREPORTER_ENABLE_PERCENT=100
+fi
+AC_DEFINE_UNQUOTED(MOZ_CRASHREPORTER_ENABLE_PERCENT, $MOZ_CRASHREPORTER_ENABLE_PERCENT)
+
+dnl ========================================================
+dnl = libjpeg-turbo configuration
+dnl ========================================================
+MOZ_LIBJPEG_TURBO=
+if test -z "$MOZ_NATIVE_JPEG"; then
+ MOZ_LIBJPEG_TURBO=1
+fi
+
+MOZ_ARG_DISABLE_BOOL(libjpeg_turbo,
+[ --disable-libjpeg-turbo Disable optimized jpeg decoding routines],
+ MOZ_LIBJPEG_TURBO=,
+ MOZ_LIBJPEG_TURBO=1)
+
+if test "$MOZ_NATIVE_JPEG" = 1 -a "$MOZ_LIBJPEG_TURBO" = 1; then
+ AC_MSG_ERROR([cannot use --with-system-jpeg with --enable-libjpeg-turbo.])
+fi
+
+dnl Detect if we can use yasm to compile libjpeg-turbo's optimized assembly
+dnl files.
+
+if test -n "$MOZ_LIBJPEG_TURBO"; then
+
+ dnl Do we support libjpeg-turbo on this platform?
+ case "$OS_ARCH:$OS_TEST" in
+ Darwin:i?86)
+ LIBJPEG_TURBO_ASFLAGS="-f macho32 -rnasm -pnasm -DPIC -DMACHO"
+ LIBJPEG_TURBO_X86_ASM=1
+ ;;
+ Darwin:x86_64)
+ LIBJPEG_TURBO_ASFLAGS="-f macho64 -rnasm -pnasm -D__x86_64__ -DPIC -DMACHO"
+ LIBJPEG_TURBO_X64_ASM=1
+ ;;
+ WINNT:x86|WINNT:i?86)
+ LIBJPEG_TURBO_ASFLAGS="-f win32 -rnasm -pnasm -DPIC -DWIN32"
+ LIBJPEG_TURBO_X86_ASM=1
+ ;;
+ WINNT:x86_64)
+ LIBJPEG_TURBO_ASFLAGS="-f win64 -rnasm -pnasm -D__x86_64__ -DPIC -DWIN64 -DMSVC"
+ LIBJPEG_TURBO_X64_ASM=1
+ ;;
+ *:arm*)
+ LIBJPEG_TURBO_ASFLAGS="-march=armv7-a -mfpu=neon"
+ LIBJPEG_TURBO_ARM_ASM=1
+ ;;
+ *:x86|*:i?86)
+ if $CC -E -dM -</dev/null | grep -q __ELF__; then
+ LIBJPEG_TURBO_ASFLAGS="-f elf32 -rnasm -pnasm -DPIC -DELF"
+ LIBJPEG_TURBO_X86_ASM=1
+ fi
+ ;;
+ *:x86_64)
+ if $CC -E -dM -</dev/null | grep -q __ELF__; then
+ LIBJPEG_TURBO_ASFLAGS="-f elf64 -rnasm -pnasm -D__x86_64__ -DPIC -DELF"
+ LIBJPEG_TURBO_X64_ASM=1
+ fi
+ ;;
+ esac
+
+fi
+
+dnl If we're on an x86 or x64 system which supports libjpeg-turbo's asm routines
+dnl and --disable-libjpeg-turbo wasn't passed, check for Yasm, and error out if
+dnl it doesn't exist or we have too old of a version.
+if test -n "$LIBJPEG_TURBO_X86_ASM" -o -n "$LIBJPEG_TURBO_X64_ASM" ; then
+ LIBJPEG_TURBO_AS=$YASM
+
+ if test -z "$LIBJPEG_TURBO_AS" ; then
+ AC_MSG_ERROR([Yasm is required to build with libjpeg-turbo's optimized JPEG decoding routines, but you do not appear to have Yasm installed. Either install it or configure with --disable-libjpeg-turbo to use the pure C JPEG decoder. See https://developer.mozilla.org/en/YASM for more details.])
+ fi
+
+ dnl Check that we have the right yasm version. We require 1.0.1 or newer
+ dnl on Linux and 1.1 or newer everywhere else.
+ if test "$OS_ARCH" = "Linux" ; then
+ if test "$_YASM_MAJOR_VERSION" -lt "1" -o \( "$_YASM_MAJOR_VERSION" -eq "1" -a "$_YASM_MINOR_VERSION" -eq "0" -a "$_YASM_RELEASE" -lt "1" \) ; then
+ AC_MSG_ERROR([Yasm 1.0.1 or greater is required to build with libjpeg-turbo's optimized JPEG decoding routines, but you appear to have version $_YASM_MAJOR_VERSION.$_YASM_MINOR_VERSION.$_YASM_RELEASE. Upgrade to the newest version or configure with --disable-libjpeg-turbo to use the pure C JPEG decoder. See https://developer.mozilla.org/en/YASM for more details.])
+ fi
+ else
+ if test "$_YASM_MAJOR_VERSION" -lt "1" -o \( "$_YASM_MAJOR_VERSION" -eq "1" -a "$_YASM_MINOR_VERSION" -lt "1" \) ; then
+ AC_MSG_ERROR([Yasm 1.1 or greater is required to build with libjpeg-turbo's optimized JPEG decoding routines, but you appear to have version $_YASM_MAJOR_VERSION.$_YASM_MINOR_VERSION. Upgrade to the newest version or configure with --disable-libjpeg-turbo to use the pure C JPEG decoder. See https://developer.mozilla.org/en/YASM for more details.])
+ fi
+ fi
+fi
+
+dnl If we're on an ARM system which supports libjpeg-turbo's asm routines and
+dnl --disable-libjpeg-turbo wasn't passed, use the C compiler as the assembler.
+if test -n "$LIBJPEG_TURBO_ARM_ASM" ; then
+ echo "Using $AS as the assembler for ARM code."
+ LIBJPEG_TURBO_AS=$AS
+fi
+
+if test -n "$LIBJPEG_TURBO_X86_ASM"; then
+ AC_DEFINE(LIBJPEG_TURBO_X86_ASM)
+elif test -n "$LIBJPEG_TURBO_X64_ASM"; then
+ AC_DEFINE(LIBJPEG_TURBO_X64_ASM)
+elif test -n "$LIBJPEG_TURBO_ARM_ASM"; then
+ AC_DEFINE(LIBJPEG_TURBO_ARM_ASM)
+elif test -n "$MOZ_LIBJPEG_TURBO"; then
+ dnl Warn if we're not building the optimized routines, even though the user
+ dnl didn't specify --disable-libjpeg-turbo.
+ AC_MSG_WARN([No assembler or assembly support for libjpeg-turbo. Using unoptimized C routines.])
+fi
+
+dnl ========================================================
+dnl = Enable compilation of specific extension modules
+dnl ========================================================
+
+MOZ_ARG_ENABLE_STRING(extensions,
+[ --enable-extensions Enable extensions],
+[ for option in `echo $enableval | sed 's/,/ /g'`; do
+ if test "$option" = "yes" -o "$option" = "all"; then
+ AC_MSG_ERROR([--enable-extensions=$option is no longer supported.])
+ elif test "$option" = "no" -o "$option" = "none"; then
+ MOZ_EXTENSIONS=""
+ elif test "$option" = "default"; then
+ MOZ_EXTENSIONS="$MOZ_EXTENSIONS $MOZ_EXTENSIONS_DEFAULT"
+ elif test `echo "$option" | grep -c \^-` != 0; then
+ option=`echo $option | sed 's/^-//'`
+ MOZ_EXTENSIONS=`echo "$MOZ_EXTENSIONS" | sed "s/ ${option}//"`
+ else
+ MOZ_EXTENSIONS="$MOZ_EXTENSIONS $option"
+ fi
+done],
+ MOZ_EXTENSIONS="$MOZ_EXTENSIONS_DEFAULT")
+
+if test -z "$MOZ_ENABLE_GNOMEVFS" -a `echo "$MOZ_EXTENSIONS" | grep -c gnomevfs` -ne 0; then
+ # Suppress warning on non-X11 platforms
+ if test -n "$MOZ_X11"; then
+ AC_MSG_WARN([Removing gnomevfs from MOZ_EXTENSIONS due to no --enable-gnomevfs.])
+ fi
+ MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|gnomevfs||'`
+fi
+
+dnl Do not build gnomevfs with libxul based apps
+if test -n "$LIBXUL_SDK_DIR" -a `echo "$MOZ_EXTENSIONS" | grep -c gnomevfs` -ne 0; then
+ MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|gnomevfs||'`
+fi
+
+if test -z "$MOZ_ENABLE_GIO" -a `echo "$MOZ_EXTENSIONS" | grep -c gio` -ne 0; then
+ # Suppress warning on non-X11 platforms
+ if test -n "$MOZ_X11"; then
+ AC_MSG_WARN([Removing gio from MOZ_EXTENSIONS due to --disable-gio.])
+ fi
+ MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|gio||'`
+fi
+
+dnl Do not build gio with libxul based apps
+if test -n "$LIBXUL_SDK_DIR" -a `echo "$MOZ_EXTENSIONS" | grep -c gio` -ne 0; then
+ MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|gio||'`
+fi
+
+if test `echo "$MOZ_EXTENSIONS" | grep -c gio` -ne 0; then
+ MOZ_GIO_COMPONENT=1
+ MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|gio||'`
+fi
+AC_SUBST(MOZ_GIO_COMPONENT)
+
+if test -z "$MOZ_JSDEBUGGER" -a `echo "$MOZ_EXTENSIONS" | grep -c venkman` -ne 0; then
+ AC_MSG_WARN([Cannot build venkman without JavaScript debug library. Removing venkman from MOZ_EXTENSIONS.])
+ MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|venkman||'`
+fi
+
+dnl Remove dupes
+MOZ_EXTENSIONS=`${PERL} ${srcdir}/build/unix/uniq.pl ${MOZ_EXTENSIONS}`
+
+dnl Ensure every extension exists, to avoid mostly-inscrutable error messages
+dnl when trying to build a nonexistent extension.
+for extension in $MOZ_EXTENSIONS; do
+ if test ! -d "${srcdir}/extensions/${extension}"; then
+ AC_MSG_ERROR([Unrecognized extension provided to --enable-extensions: ${extension}.])
+ fi
+done
+
+if test -n "$MOZ_USE_NATIVE_POPUP_WINDOWS"; then
+ AC_DEFINE(MOZ_USE_NATIVE_POPUP_WINDOWS)
+fi
+
+dnl ========================================================
+dnl Build Freetype in the tree
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(tree-freetype,
+[ --enable-tree-freetype Enable Tree FreeType],
+ MOZ_TREE_FREETYPE=1,
+ MOZ_TREE_FREETYPE= )
+if test -n "$MOZ_TREE_FREETYPE"; then
+ if test -n "$_WIN32_MSVC"; then
+ AC_ERROR("building with in-tree freetype is not supported on MSVC")
+ fi
+ AC_DEFINE(MOZ_TREE_FREETYPE)
+ AC_SUBST(MOZ_TREE_FREETYPE)
+ MOZ_ENABLE_CAIRO_FT=1
+ FT_FONT_FEATURE="#define CAIRO_HAS_FT_FONT 1"
+ FT2_CFLAGS='-I$(topsrcdir)/modules/freetype2/include'
+ CAIRO_FT_CFLAGS='-I$(topsrcdir)/modules/freetype2/include'
+ FT2_LIBS='$(call EXPAND_LIBNAME_PATH,freetype,$(DEPTH)/modules/freetype2/.libs)'
+ CAIRO_FT_OSLIBS=''
+ CAIRO_FT_LIBS='$(call EXPAND_LIBNAME_PATH,freetype,$(DEPTH)/modules/freetype2/.libs)'
+ AC_DEFINE(HAVE_FT_BITMAP_SIZE_Y_PPEM)
+ AC_DEFINE(HAVE_FT_GLYPHSLOT_EMBOLDEN)
+ AC_DEFINE(HAVE_FT_LOAD_SFNT_TABLE)
+ AC_SUBST(CAIRO_FT_CFLAGS)
+fi
+
+dnl ========================================================
+dnl Installer
+dnl ========================================================
+dnl Abort Windows build if the required major version and
+dnl minimum minor version of Unicode NSIS isn't in the path
+dnl (unless in case of cross compiling, for which Unicode
+dnl is not yet sufficient).
+if test "$OS_ARCH" = "WINNT"; then
+ REQ_NSIS_MAJOR_VER=2
+ MIN_NSIS_MINOR_VER=46
+ MOZ_PATH_PROGS(MAKENSISU, $MAKENSISU makensisu-2.46 makensis)
+ if test -n "$MAKENSISU" -a "$MAKENSISU" != ":"; then
+ AC_MSG_RESULT([yes])
+ changequote(,)
+ MAKENSISU_VER=`"$MAKENSISU" -version 2>/dev/null | sed -e '/-Unicode/!s/.*//g' -e 's/^v\([0-9]\+\.[0-9]\+\).*\-Unicode$/\1/g'`
+ changequote([,])
+ if test ! "$MAKENSISU_VER" = ""; then
+ MAKENSISU_MAJOR_VER=`echo $MAKENSISU_VER | $AWK -F\. '{ print $1 }'`
+ MAKENSISU_MINOR_VER=`echo $MAKENSISU_VER | $AWK -F\. '{ print $2 }'`
+ fi
+ AC_MSG_CHECKING([for Unicode NSIS with major version == $REQ_NSIS_MAJOR_VER and minor version >= $MIN_NSIS_MINOR_VER])
+ if test "$MAKENSISU_VER" = "" || \
+ test ! "$MAKENSISU_MAJOR_VER" = "$REQ_NSIS_MAJOR_VER" -o \
+ ! "$MAKENSISU_MINOR_VER" -ge $MIN_NSIS_MINOR_VER; then
+ AC_MSG_RESULT([no])
+ if test -z "$CROSS_COMPILE"; then
+ AC_MSG_ERROR([To build the installer you must have the latest MozillaBuild or Unicode NSIS with a major version of $REQ_NSIS_MAJOR_VER and a minimum minor version of $MIN_NSIS_MINOR_VER in your path.])
+ else
+ MAKENSISU=
+ fi
+ fi
+ elif test -z "$CROSS_COMPILE"; then
+ AC_MSG_ERROR([To build the installer you must have the latest MozillaBuild or Unicode NSIS with a major version of $REQ_NSIS_MAJOR_VER and a minimum minor version of $MIN_NSIS_MINOR_VER in your path.])
+ else
+ MAKENSISU=
+ fi
+fi
+
+dnl ========================================================
+dnl Web App Runtime
+dnl ========================================================
+MOZ_ARG_DISABLE_BOOL(webapp-runtime,
+[ --disable-webapp-runtime Disable Web App Runtime],
+ MOZ_WEBAPP_RUNTIME=,
+ MOZ_WEBAPP_RUNTIME=1)
+if test "$MOZ_WIDGET_TOOLKIT" != "windows" -a "$MOZ_WIDGET_TOOLKIT" != "cocoa" -a "$MOZ_WIDGET_TOOLKIT" != "gtk2"; then
+ MOZ_WEBAPP_RUNTIME=
+fi
+if test "$OS_ARCH" = "WINNT" -a -z "$MAKENSISU" -a -n "$CROSS_COMPILE"; then
+ MOZ_WEBAPP_RUNTIME=
+fi
+AC_SUBST(MOZ_WEBAPP_RUNTIME)
+if test "$MOZ_WEBAPP_RUNTIME"; then
+ AC_DEFINE(MOZ_WEBAPP_RUNTIME)
+fi
+
+AC_MSG_CHECKING([for tar archiver])
+AC_CHECK_PROGS(TAR, gnutar gtar tar, "")
+if test -z "$TAR"; then
+ AC_MSG_ERROR([no tar archiver found in \$PATH])
+fi
+AC_MSG_RESULT([$TAR])
+AC_SUBST(TAR)
+
+AC_MSG_CHECKING([for wget])
+AC_CHECK_PROGS(WGET, wget, "")
+AC_MSG_RESULT([$WGET])
+AC_SUBST(WGET)
+
+dnl ========================================================
+dnl Signing
+dnl ========================================================
+
+if test -n "$MOZ_SIGN_CMD"; then
+ AC_DEFINE(MOZ_SIGNING)
+fi
+
+dnl ========================================================
+dnl Maintenance Service
+dnl ========================================================
+
+MOZ_ARG_ENABLE_BOOL(maintenance-service,
+[ --enable-maintenance-service Enable building of maintenanceservice],
+ MOZ_MAINTENANCE_SERVICE=1,
+ MOZ_MAINTENANCE_SERVICE= )
+
+if test -n "$MOZ_MAINTENANCE_SERVICE"; then
+ if test "$OS_ARCH" = "WINNT"; then
+ AC_DEFINE(MOZ_MAINTENANCE_SERVICE)
+ else
+ AC_MSG_ERROR([Can only build with --enable-maintenance-service with a Windows target])
+ fi
+fi
+
+dnl ========================================================
+dnl Verify MAR signatures
+dnl ========================================================
+
+MOZ_ARG_ENABLE_BOOL(verify-mar,
+[ --enable-verify-mar Enable verifying MAR signatures],
+ MOZ_VERIFY_MAR_SIGNATURE=1,
+ MOZ_VERIFY_MAR_SIGNATURE= )
+
+if test -n "$MOZ_VERIFY_MAR_SIGNATURE"; then
+ if test "$OS_ARCH" = "WINNT"; then
+ AC_DEFINE(MOZ_VERIFY_MAR_SIGNATURE)
+ else
+ AC_MSG_ERROR([Can only build with --enable-verify-mar with a Windows target])
+ fi
+fi
+
+dnl ========================================================
+dnl Enable building the signmar program.
+dnl This option is much different than the --enable-verify-mar option.
+dnl --enable-verify-mar is for enabling the verification check on MAR
+dnl files in the updater. The --enable-signmar option is for building
+dnl the signmar program.
+dnl ========================================================
+
+MOZ_ARG_ENABLE_BOOL(signmar,
+[ --enable-signmar Enable building the signmar program],
+ MOZ_ENABLE_SIGNMAR=1,
+ MOZ_ENABLE_SIGNMAR= )
+
+if test -n "$MOZ_ENABLE_SIGNMAR"; then
+ AC_DEFINE(MOZ_ENABLE_SIGNMAR)
+fi
+
+dnl ========================================================
+dnl Updater
+dnl ========================================================
+
+MOZ_ARG_DISABLE_BOOL(updater,
+[ --disable-updater Disable building of updater],
+ MOZ_UPDATER=,
+ MOZ_UPDATER=1 )
+
+if test -n "$MOZ_UPDATER"; then
+ AC_DEFINE(MOZ_UPDATER)
+fi
+
+# tools/update-packaging is not checked out by default.
+MOZ_ARG_ENABLE_BOOL(update-packaging,
+[ --enable-update-packaging
+ Enable tools/update-packaging],
+ MOZ_UPDATE_PACKAGING=1,
+ MOZ_UPDATE_PACKAGING= )
+AC_SUBST(MOZ_UPDATE_PACKAGING)
+
+dnl ========================================================
+dnl build the tests by default
+dnl ========================================================
+MOZ_ARG_DISABLE_BOOL(tests,
+[ --disable-tests Do not build test libraries & programs],
+ ENABLE_TESTS=,
+ ENABLE_TESTS=1 )
+
+if test -n "$ENABLE_TESTS"; then
+ MOZ_ENABLE_GTEST=1
+ GTEST_HAS_RTTI=0
+ AC_DEFINE(MOZ_ENABLE_GTEST)
+ AC_DEFINE_UNQUOTED(GTEST_HAS_RTTI, 0)
+ AC_SUBST(MOZ_ENABLE_GTEST)
+ AC_SUBST(GTEST_HAS_RTTI)
+ if test -n "$_WIN32_MSVC"; then
+ AC_DEFINE_UNQUOTED(_VARIADIC_MAX, 10)
+ fi
+ if test "${OS_TARGET}" = "Android"; then
+ AC_DEFINE(GTEST_OS_LINUX_ANDROID)
+ AC_DEFINE(GTEST_USE_OWN_TR1_TUPLE)
+ AC_DEFINE_UNQUOTED(GTEST_HAS_CLONE, 0)
+ AC_SUBST(GTEST_OS_LINUX_ANDROID)
+ AC_SUBST(GTEST_USE_OWN_TR1_TUPLE)
+ AC_SUBST(GTEST_HAS_CLONE)
+ fi
+fi
+
+dnl ========================================================
+dnl parental controls (for Windows Vista)
+dnl ========================================================
+MOZ_ARG_DISABLE_BOOL(parental-controls,
+[ --disable-parental-controls
+ Do not build parental controls],
+ MOZ_DISABLE_PARENTAL_CONTROLS=1,
+ MOZ_DISABLE_PARENTAL_CONTROLS=)
+if test -n "$MOZ_DISABLE_PARENTAL_CONTROLS"; then
+ AC_DEFINE(MOZ_DISABLE_PARENTAL_CONTROLS)
+fi
+
+AC_SUBST(MOZ_DISABLE_PARENTAL_CONTROLS)
+
+dnl ========================================================
+dnl = Disable DOMCrypto
+dnl ========================================================
+if test -n "$MOZ_DISABLE_CRYPTOLEGACY"; then
+ AC_DEFINE(MOZ_DISABLE_CRYPTOLEGACY)
+fi
+AC_SUBST(MOZ_DISABLE_CRYPTOLEGACY)
+
+dnl ========================================================
+dnl = Disable libpkix
+dnl ========================================================
+if test -n "$NSS_NO_LIBPKIX"; then
+ AC_DEFINE(NSS_NO_LIBPKIX)
+fi
+AC_SUBST(NSS_NO_LIBPKIX)
+
+
+dnl ========================================================
+dnl =
+dnl = Module specific options
+dnl =
+dnl ========================================================
+MOZ_ARG_HEADER(Individual module options)
+
+dnl ========================================================
+dnl = Disable feed handling components
+dnl ========================================================
+MOZ_ARG_DISABLE_BOOL(feeds,
+[ --disable-feeds Disable feed handling and processing components],
+ MOZ_FEEDS=,
+ MOZ_FEEDS=1 )
+if test -n "$MOZ_FEEDS"; then
+ AC_DEFINE(MOZ_FEEDS)
+else
+ if test "$MOZ_BUILD_APP" = "browser"; then
+ AC_MSG_ERROR([Cannot build Firefox with --disable-feeds.])
+ fi
+fi
+
+dnl ========================================================
+dnl Check for sqlite
+dnl ========================================================
+
+MOZ_NATIVE_SQLITE=
+MOZ_ARG_ENABLE_BOOL(system-sqlite,
+[ --enable-system-sqlite Use system sqlite (located with pkgconfig)],
+MOZ_NATIVE_SQLITE=1,
+MOZ_NATIVE_SQLITE= )
+
+if test -z "$MOZ_NATIVE_SQLITE"
+then
+ SQLITE_CFLAGS=
+ SQLITE_LIBS='$(call EXPAND_LIBNAME_PATH,mozsqlite3,$(DIST)/lib)'
+else
+ dnl ============================
+ dnl === SQLite Version check ===
+ dnl ============================
+ dnl Check to see if the system SQLite package is new enough.
+ PKG_CHECK_MODULES(SQLITE, sqlite3 >= $SQLITE_VERSION)
+
+ dnl ==================================
+ dnl === SQLITE_SECURE_DELETE check ===
+ dnl ==================================
+ dnl Check to see if the system SQLite package is compiled with
+ dnl SQLITE_SECURE_DELETE enabled.
+ AC_MSG_CHECKING(for SQLITE_SECURE_DELETE support in system SQLite)
+ _SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $SQLITE_CFLAGS"
+ _SAVE_LIBS="$LIBS"
+ LIBS="$LIBS $SQLITE_LIBS"
+ AC_CACHE_VAL(ac_cv_sqlite_secure_delete,[
+ AC_TRY_RUN([
+ #include "sqlite3.h"
+
+ int main(int argc, char **argv){
+ return !sqlite3_compileoption_used("SQLITE_SECURE_DELETE");
+ }],
+ ac_cv_sqlite_secure_delete=yes,
+ ac_cv_sqlite_secure_delete=no,
+ ac_cv_sqlite_secure_delete=no
+ )
+ ])
+ AC_MSG_RESULT($ac_cv_sqlite_secure_delete)
+ CFLAGS="$_SAVE_CFLAGS"
+ LIBS="$_SAVE_LIBS"
+ if test "x$ac_cv_sqlite_secure_delete" = "xno"; then
+ AC_MSG_ERROR([System SQLite library is not compiled with SQLITE_SECURE_DELETE.])
+ fi
+
+ dnl ===============================
+ dnl === SQLITE_THREADSAFE check ===
+ dnl ===============================
+ dnl Check to see if the system SQLite package is compiled with
+ dnl SQLITE_THREADSAFE enabled.
+ AC_MSG_CHECKING(for SQLITE_THREADSAFE support in system SQLite)
+ _SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $SQLITE_CFLAGS"
+ _SAVE_LIBS="$LIBS"
+ LIBS="$LIBS $SQLITE_LIBS"
+ AC_CACHE_VAL(ac_cv_sqlite_threadsafe,[
+ AC_TRY_RUN([
+ #include "sqlite3.h"
+
+ int main(int argc, char **argv){
+ return !sqlite3_compileoption_used("SQLITE_THREADSAFE=1");
+ }],
+ ac_cv_sqlite_threadsafe=yes,
+ ac_cv_sqlite_threadsafe=no,
+ ac_cv_sqlite_threadsafe=no
+ )
+ ])
+ AC_MSG_RESULT($ac_cv_sqlite_threadsafe)
+ CFLAGS="$_SAVE_CFLAGS"
+ LIBS="$_SAVE_LIBS"
+ if test "x$ac_cv_sqlite_threadsafe" = "xno"; then
+ AC_MSG_ERROR([System SQLite library is not compiled with SQLITE_THREADSAFE.])
+ fi
+
+ dnl ================================
+ dnl === SQLITE_ENABLE_FTS3 check ===
+ dnl ================================
+ dnl check to see if the system SQLite package is compiled with
+ dnl SQLITE_ENABLE_FTS3 enabled.
+ AC_MSG_CHECKING(for SQLITE_ENABLE_FTS3 support in system SQLite)
+ _SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $SQLITE_CFLAGS"
+ _SAVE_LIBS="$LIBS"
+ LIBS="$LIBS $SQLITE_LIBS"
+ AC_CACHE_VAL(ac_cv_sqlite_enable_fts3,[
+ AC_TRY_RUN([
+ #include "sqlite3.h"
+
+ int main(int argc, char **argv){
+ return !sqlite3_compileoption_used("SQLITE_ENABLE_FTS3");
+ }],
+ ac_cv_sqlite_enable_fts3=yes,
+ ac_cv_sqlite_enable_fts3=no,
+ ac_cv_sqlite_enable_fts3=no
+ )
+ ])
+ AC_MSG_RESULT($ac_cv_sqlite_enable_fts3)
+ CFLAGS="$_SAVE_CFLAGS"
+ LIBS="$_SAVE_LIBS"
+ if test "x$ac_cv_sqlite_enable_fts3" = "xno"; then
+ AC_MSG_ERROR([System SQLite library is not compiled with SQLITE_ENABLE_FTS3.])
+ fi
+
+ dnl =========================================
+ dnl === SQLITE_ENABLE_UNLOCK_NOTIFY check ===
+ dnl =========================================
+ dnl check to see if the system SQLite package is compiled with
+ dnl SQLITE_ENABLE_UNLOCK_NOTIFY enabled.
+ AC_MSG_CHECKING(for SQLITE_ENABLE_UNLOCK_NOTIFY support in system SQLite)
+ _SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $SQLITE_CFLAGS"
+ _SAVE_LIBS="$LIBS"
+ LIBS="$LIBS $SQLITE_LIBS"
+ AC_CACHE_VAL(ac_cv_sqlite_enable_unlock_notify,[
+ AC_TRY_RUN([
+ #include "sqlite3.h"
+
+ int main(int argc, char **argv){
+ return !sqlite3_compileoption_used("SQLITE_ENABLE_UNLOCK_NOTIFY");
+ }],
+ ac_cv_sqlite_enable_unlock_notify=yes,
+ ac_cv_sqlite_enable_unlock_notify=no,
+ ac_cv_sqlite_enable_unlock_notify=no
+ )
+ ])
+ AC_MSG_RESULT($ac_cv_sqlite_enable_unlock_notify)
+ CFLAGS="$_SAVE_CFLAGS"
+ LIBS="$_SAVE_LIBS"
+ if test "x$ac_cv_sqlite_enable_unlock_notify" = "xno"; then
+ AC_MSG_ERROR([System SQLite library is not compiled with SQLITE_ENABLE_UNLOCK_NOTIFY.])
+ fi
+fi
+
+if test -n "$MOZ_NATIVE_SQLITE"; then
+ AC_DEFINE(MOZ_NATIVE_SQLITE)
+fi
+AC_SUBST(MOZ_NATIVE_SQLITE)
+
+dnl ========================================================
+dnl = Enable help viewer (off by default)
+dnl ========================================================
+if test -n "$MOZ_HELP_VIEWER"; then
+ dnl Do this if defined in confvars.sh
+ AC_DEFINE(MOZ_HELP_VIEWER)
+fi
+
+dnl ========================================================
+dnl = Enable safe browsing (anti-phishing)
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(safe-browsing,
+[ --enable-safe-browsing Enable safe browsing (anti-phishing) implementation],
+ MOZ_SAFE_BROWSING=1,
+ MOZ_SAFE_BROWSING= )
+if test -n "$MOZ_SAFE_BROWSING"; then
+ AC_DEFINE(MOZ_SAFE_BROWSING)
+fi
+AC_SUBST(MOZ_SAFE_BROWSING)
+
+dnl ========================================================
+dnl = Enable url-classifier
+dnl ========================================================
+dnl Implicitly enabled by default if building with safe-browsing
+if test -n "$MOZ_SAFE_BROWSING"; then
+ MOZ_URL_CLASSIFIER=1
+fi
+MOZ_ARG_ENABLE_BOOL(url-classifier,
+[ --enable-url-classifier Enable url classifier module],
+ MOZ_URL_CLASSIFIER=1,
+ MOZ_URL_CLASSIFIER= )
+if test -n "$MOZ_URL_CLASSIFIER"; then
+ AC_DEFINE(MOZ_URL_CLASSIFIER)
+fi
+AC_SUBST(MOZ_URL_CLASSIFIER)
+
+dnl ========================================================
+dnl = Disable zipwriter
+dnl ========================================================
+MOZ_ARG_DISABLE_BOOL(zipwriter,
+[ --disable-zipwriter Disable zipwriter component],
+ MOZ_ZIPWRITER=,
+ MOZ_ZIPWRITER=1 )
+AC_SUBST(MOZ_ZIPWRITER)
+
+dnl ========================================================
+dnl = libconic
+dnl ========================================================
+dnl superseded by QtNetwork starting from 4.7
+MOZ_ENABLE_LIBCONIC=1
+
+if test -n "$MOZ_ENABLE_QT"; then
+ if test "$MOZ_ENABLE_QTNETWORK"; then
+ MOZ_ENABLE_LIBCONIC=
+ fi
+fi
+
+MOZ_ARG_DISABLE_BOOL(libconic,
+[ --disable-libconic Disable libconic],
+ MOZ_ENABLE_LIBCONIC=,
+ MOZ_ENABLE_LIBCONIC=1 )
+
+if test -n "$MOZ_ENABLE_LIBCONIC"; then
+ PKG_CHECK_MODULES(LIBCONIC, conic,
+ MOZ_ENABLE_LIBCONIC=1,
+ MOZ_ENABLE_LIBCONIC=)
+fi
+if test "$MOZ_ENABLE_LIBCONIC"; then
+ AC_DEFINE(MOZ_ENABLE_LIBCONIC)
+fi
+
+AC_SUBST(MOZ_ENABLE_LIBCONIC)
+AC_SUBST(LIBCONIC_CFLAGS)
+AC_SUBST(LIBCONIC_LIBS)
+
+dnl ========================================================
+dnl = Maemo checks
+dnl ========================================================
+
+MAEMO_SDK_TARGET_VER=-1
+
+MOZ_ARG_WITH_STRING(maemo-version,
+[ --with-maemo-version=MAEMO_SDK_TARGET_VER
+ Maemo SDK Version],
+ MAEMO_SDK_TARGET_VER=$withval)
+
+case "$MAEMO_SDK_TARGET_VER" in
+5)
+ MOZ_PLATFORM_MAEMO=5
+ ;;
+
+6)
+ MOZ_PLATFORM_MAEMO=6
+ ;;
+
+-1)
+ dnl We aren't compiling for Maemo, move on.
+ ;;
+*)
+ AC_MSG_ERROR([Unknown Maemo Version. Try setting --with-maemo-version to 5 or 6.])
+ ;;
+esac
+
+if test $MOZ_PLATFORM_MAEMO; then
+ AC_DEFINE_UNQUOTED([MOZ_PLATFORM_MAEMO], $MOZ_PLATFORM_MAEMO)
+
+ if test -z "$MOZ_ENABLE_DBUS"; then
+ AC_MSG_ERROR([DBus is required when building for Maemo])
+ fi
+
+ MOZ_GFX_OPTIMIZE_MOBILE=1
+ MOZ_GL_DEFAULT_PROVIDER=EGL
+ MOZ_MAEMO_LIBLOCATION=
+
+ if test $MOZ_PLATFORM_MAEMO = 5; then
+ dnl if we have Xcomposite we should also have Xdamage and Xfixes
+ MOZ_CHECK_HEADERS([X11/extensions/Xdamage.h], [],
+ [AC_MSG_ERROR([Couldn't find X11/extensions/Xdamage.h which is required for composited plugins.])])
+ AC_CHECK_LIB(Xcomposite, XCompositeRedirectWindow, [XCOMPOSITE_LIBS="-lXcomposite -lXdamage -lXfixes"],
+ [MISSING_X="$MISSING_X -lXcomposite"], $XLIBS)
+
+ AC_SUBST(XCOMPOSITE_LIBS)
+
+ PKG_CHECK_MODULES(LIBHILDONMIME,libhildonmime, _LIB_FOUND=1, _LIB_FOUND=)
+ MOZ_PLATFORM_MAEMO_LIBS="$MOZ_PLATFORM_MAEMO_LIBS $LIBHILDONMIME_LIBS"
+ MOZ_PLATFORM_MAEMO_CFLAGS="$MOZ_PLATFORM_MAEMO_CFLAGS $LIBHILDONMIME_CFLAGS"
+ if test -z "$_LIB_FOUND"; then
+ AC_MSG_ERROR([Hildon Mime is required when building for Maemo])
+ fi
+
+
+ PKG_CHECK_MODULES(LIBOSSO,libosso, _LIB_FOUND=1, _LIB_FOUND=)
+ MOZ_PLATFORM_MAEMO_LIBS="$MOZ_PLATFORM_MAEMO_LIBS $LIBOSSO_LIBS"
+ MOZ_PLATFORM_MAEMO_CFLAGS="$MOZ_PLATFORM_MAEMO_CFLAGS $LIBOSSO_CFLAGS"
+ if test -z "$_LIB_FOUND"; then
+ AC_MSG_ERROR([LibOSSO is required when building for Maemo])
+ fi
+
+ PKG_CHECK_MODULES(LIBHILDONFM,hildon-fm-2, _LIB_FOUND=1, _LIB_FOUND=)
+ MOZ_PLATFORM_MAEMO_LIBS="$MOZ_PLATFORM_MAEMO_LIBS $LIBHILDONFM_LIBS"
+ MOZ_PLATFORM_MAEMO_CFLAGS="$MOZ_PLATFORM_MAEMO_CFLAGS $LIBHILDONFM_CFLAGS"
+ if test -z "$_LIB_FOUND"; then
+ AC_MSG_ERROR([Hildon FM-2 is required when building for Maemo])
+ fi
+
+ fi
+ if test $MOZ_PLATFORM_MAEMO = 6; then
+
+ PKG_CHECK_MODULES(LIBCONTENTMANAGER, ContentManager QtSparql,
+ _LIB_FOUND=1,
+ _LIB_FOUND=)
+ if test "$_LIB_FOUND"; then
+ MOZ_PLATFORM_MAEMO_LIBS="$MOZ_PLATFORM_MAEMO_LIBS $LIBCONTENTMANAGER_LIBS"
+ MOZ_PLATFORM_MAEMO_CFLAGS="$MOZ_PLATFORM_MAEMO_CFLAGS $LIBCONTENTMANAGER_CFLAGS"
+ MOZ_ENABLE_CONTENTMANAGER=1
+ AC_DEFINE(MOZ_ENABLE_CONTENTMANAGER)
+ else
+ AC_MSG_WARN([Cannot find libcontentmanager and or QtSparql building for Maemo 6])
+ fi
+ AC_SUBST(MOZ_ENABLE_CONTENTMANAGER)
+
+ dnl ========================================================
+ dnl = Enable meego libcontentaction
+ dnl ========================================================
+ MOZ_ARG_ENABLE_BOOL(meegocontentaction,
+ [ --enable-meegocontentaction Enable meegocontentaction support],
+ MOZ_MEEGOCONTENTACTION=1,
+ MOZ_MEEGOCONTENTACTION=)
+
+ if test -n "$MOZ_MEEGOCONTENTACTION"; then
+
+ PKG_CHECK_MODULES(LIBCONTENTACTION, contentaction-0.1, _LIB_FOUND=1, _LIB_FOUND=)
+ if test "$_LIB_FOUND"; then
+ MOZ_PLATFORM_MAEMO_LIBS="$MOZ_PLATFORM_MAEMO_LIBS $LIBCONTENTACTION_LIBS"
+ MOZ_PLATFORM_MAEMO_CFLAGS="$MOZ_PLATFORM_MAEMO_CFLAGS $LIBCONTENTACTION_CFLAGS"
+ MOZ_ENABLE_CONTENTACTION=1
+ AC_DEFINE(MOZ_ENABLE_CONTENTACTION)
+ AC_SUBST(MOZ_ENABLE_CONTENTACTION)
+ fi
+ fi
+
+ MOZ_ARG_ENABLE_BOOL(meegotouch,
+ [ --enable-meegotouch Enable meegotouch support],
+ MOZ_MEEGOTOUCHENABLED=1,
+ MOZ_MEEGOTOUCHENABLED=)
+
+ if test -n "$MOZ_MEEGOTOUCHENABLED"; then
+ PKG_CHECK_MODULES(MOZ_MEEGOTOUCH, meegotouchcore, _LIB_FOUND=1, _LIB_FOUND=)
+ if test "$_LIB_FOUND"; then
+ MOZ_QT_CFLAGS="$MOZ_MEEGOTOUCH_CFLAGS $MOZ_QT_CFLAGS"
+ MOZ_QT_LIBS="$MOZ_MEEGOTOUCH_LIBS $MOZ_QT_LIBS"
+ AC_DEFINE(MOZ_ENABLE_MEEGOTOUCH)
+ else
+ AC_MSG_WARN([Cannot meegotouchcore-dev. Disabling Meegotouch support.])
+ fi
+ fi
+ fi
+
+ PKG_CHECK_MODULES(LIBLOCATION,liblocation, _LIB_FOUND=1, _LIB_FOUND=)
+ MOZ_PLATFORM_MAEMO_LIBS="$MOZ_PLATFORM_MAEMO_LIBS $LIBLOCATION_LIBS"
+ MOZ_PLATFORM_MAEMO_CFLAGS="$MOZ_PLATFORM_MAEMO_CFLAGS $LIBLOCATION_CFLAGS"
+ if test "$_LIB_FOUND"; then
+ MOZ_MAEMO_LIBLOCATION=1
+ AC_DEFINE(MOZ_MAEMO_LIBLOCATION)
+ else
+ AC_MSG_WARN([Cannot liblocation-dev. Disabling Maemo geolocation.])
+ fi
+ AC_SUBST(MOZ_MAEMO_LIBLOCATION)
+
+ PKG_CHECK_MODULES(LIBMEEGOTOUCHSHARE, ShareUiInterface-maemo-meegotouch >= 0.3.31 mdatauri, _LIB_FOUND=1, _LIB_FOUND=)
+ MOZ_PLATFORM_MAEMO_LIBS="$MOZ_PLATFORM_MAEMO_LIBS $LIBMEEGOTOUCHSHARE_LIBS"
+ MOZ_PLATFORM_MAEMO_CFLAGS="$MOZ_PLATFORM_MAEMO_CFLAGS $LIBMEEGOTOUCHSHARE_CFLAGS"
+ if test "$_LIB_FOUND"; then
+ MOZ_ENABLE_MEEGOTOUCHSHARE=1
+ AC_DEFINE(MOZ_ENABLE_MEEGOTOUCHSHARE)
+ else
+ AC_MSG_WARN([Cannot find maemo-meegotouch-interfaces-dev or libmdatauri-dev. Disabling meegotouch share ui.])
+ fi
+ AC_SUBST(MOZ_ENABLE_MEEGOTOUCHSHARE)
+
+ AC_SUBST(MOZ_PLATFORM_MAEMO_LIBS)
+ AC_SUBST(MOZ_PLATFORM_MAEMO_CFLAGS)
+fi
+
+dnl ========================================================
+dnl GL provider
+dnl ========================================================
+MOZ_GL_PROVIDER=
+MOZ_ARG_WITH_STRING(gl-provider,
+[ --with-gl-provider=ID
+ Set GL provider backend type],
+[ val=`echo $withval`
+ MOZ_GL_PROVIDER="$val"])
+
+if test -n "$MOZ_GL_PROVIDER"; then
+MOZ_GL_DEFAULT_PROVIDER=$MOZ_GL_PROVIDER
+AC_SUBST(MOZ_GL_PROVIDER)
+AC_DEFINE_UNQUOTED(MOZ_GL_PROVIDER, GLContextProvider$MOZ_GL_PROVIDER)
+fi
+AC_SUBST(MOZ_GL_DEFAULT_PROVIDER)
+AC_DEFINE_UNQUOTED(GL_PROVIDER_$MOZ_GL_DEFAULT_PROVIDER)
+
+dnl ========================================================
+dnl = faststripe theme
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(faststripe,
+[ --enable-faststripe Use faststripe theme],
+ MOZ_THEME_FASTSTRIPE=1,
+ MOZ_THEME_FASTSTRIPE= )
+AC_SUBST(MOZ_THEME_FASTSTRIPE)
+
+dnl ========================================================
+dnl =
+dnl = Feature options that require extra sources to be pulled
+dnl =
+dnl ========================================================
+dnl MOZ_ARG_HEADER(Features that require extra sources)
+
+dnl ========================================================
+dnl =
+dnl = Debugging Options
+dnl =
+dnl ========================================================
+MOZ_ARG_HEADER(Debugging and Optimizations)
+
+dnl ========================================================
+dnl = Disable building with debug info.
+dnl = Debugging is OFF by default
+dnl ========================================================
+if test -z "$MOZ_DEBUG_FLAGS"; then
+ MOZ_DEBUG_FLAGS="-g"
+fi
+
+MOZ_ARG_ENABLE_STRING(debug,
+[ --enable-debug[=DBG] Enable building with developer debug info
+ (using compiler flags DBG)],
+[ if test "$enableval" != "no"; then
+ MOZ_DEBUG=1
+ if test -n "$enableval" -a "$enableval" != "yes"; then
+ MOZ_DEBUG_FLAGS=`echo $enableval | sed -e 's|\\\ | |g'`
+ _MOZ_DEBUG_FLAGS_SET=1
+ fi
+ else
+ MOZ_DEBUG=
+ fi ],
+ MOZ_DEBUG=)
+
+MOZ_DEBUG_ENABLE_DEFS="-DDEBUG -D_DEBUG -DTRACING"
+MOZ_ARG_WITH_STRING(debug-label,
+[ --with-debug-label=LABELS
+ Define DEBUG_<value> for each comma-separated
+ value given.],
+[ for option in `echo $withval | sed 's/,/ /g'`; do
+ MOZ_DEBUG_ENABLE_DEFS="$MOZ_DEBUG_ENABLE_DEFS -DDEBUG_${option}"
+done])
+
+MOZ_DEBUG_DISABLE_DEFS="-DNDEBUG -DTRIMMED"
+
+if test -n "$MOZ_DEBUG"; then
+ AC_MSG_CHECKING([for valid debug flags])
+ _SAVE_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS $MOZ_DEBUG_FLAGS"
+ AC_TRY_COMPILE([#include <stdio.h>],
+ [printf("Hello World\n");],
+ _results=yes,
+ _results=no)
+ AC_MSG_RESULT([$_results])
+ if test "$_results" = "no"; then
+ AC_MSG_ERROR([These compiler flags are invalid: $MOZ_DEBUG_FLAGS])
+ fi
+ CFLAGS=$_SAVE_CFLAGS
+fi
+
+dnl ========================================================
+dnl enable mobile optimizations
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(mobile-optimize,
+[ --enable-mobile-optimize
+ Enable mobile optimizations],
+ MOZ_GFX_OPTIMIZE_MOBILE=1)
+
+AC_SUBST(MOZ_GFX_OPTIMIZE_MOBILE)
+
+if test "$MOZ_GFX_OPTIMIZE_MOBILE"; then
+ AC_DEFINE(MOZ_GFX_OPTIMIZE_MOBILE)
+fi
+
+dnl ========================================================
+dnl = Enable code optimization. ON by default.
+dnl ========================================================
+if test -z "$MOZ_OPTIMIZE_FLAGS"; then
+ MOZ_OPTIMIZE_FLAGS="-O"
+fi
+
+MOZ_ARG_ENABLE_STRING(optimize,
+[ --disable-optimize Disable compiler optimization
+ --enable-optimize=[OPT] Specify compiler optimization flags [OPT=-O]],
+[ if test "$enableval" != "no"; then
+ MOZ_OPTIMIZE=1
+ if test -n "$enableval" -a "$enableval" != "yes"; then
+ MOZ_OPTIMIZE_FLAGS=`echo "$enableval" | sed -e 's|\\\ | |g'`
+ MOZ_OPTIMIZE=2
+ fi
+else
+ MOZ_OPTIMIZE=
+fi ], MOZ_OPTIMIZE=1)
+
+MOZ_SET_FRAMEPTR_FLAGS
+
+if test "$COMPILE_ENVIRONMENT"; then
+if test -n "$MOZ_OPTIMIZE"; then
+ AC_MSG_CHECKING([for valid optimization flags])
+ _SAVE_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS $MOZ_OPTIMIZE_FLAGS"
+ AC_TRY_COMPILE([#include <stdio.h>],
+ [printf("Hello World\n");],
+ _results=yes,
+ _results=no)
+ AC_MSG_RESULT([$_results])
+ if test "$_results" = "no"; then
+ AC_MSG_ERROR([These compiler flags are invalid: $MOZ_OPTIMIZE_FLAGS])
+ fi
+ CFLAGS=$_SAVE_CFLAGS
+fi
+fi # COMPILE_ENVIRONMENT
+
+AC_SUBST(MOZ_OPTIMIZE)
+AC_SUBST(MOZ_FRAMEPTR_FLAGS)
+AC_SUBST(MOZ_OPTIMIZE_FLAGS)
+AC_SUBST(MOZ_OPTIMIZE_LDFLAGS)
+AC_SUBST(MOZ_ALLOW_HEAP_EXECUTE_FLAGS)
+AC_SUBST(MOZ_OPTIMIZE_SIZE_TWEAK)
+AC_SUBST(MOZ_PGO_OPTIMIZE_FLAGS)
+
+dnl ========================================================
+dnl = Enable generation of debug symbols
+dnl ========================================================
+MOZ_ARG_ENABLE_STRING(debug-symbols,
+[ --enable-debug-symbols[=DBG]
+ Enable debugging symbols (using compiler flags DBG)],
+[ if test "$enableval" != "no"; then
+ MOZ_DEBUG_SYMBOLS=1
+ if test -n "$enableval" -a "$enableval" != "yes"; then
+ if test -z "$_MOZ_DEBUG_FLAGS_SET"; then
+ MOZ_DEBUG_FLAGS=`echo $enableval | sed -e 's|\\\ | |g'`
+ else
+ AC_MSG_ERROR([--enable-debug-symbols flags cannot be used with --enable-debug flags])
+ fi
+ fi
+ else
+ MOZ_DEBUG_SYMBOLS=
+ fi ],
+ MOZ_DEBUG_SYMBOLS=1)
+
+if test -n "$MOZ_DEBUG" -o -n "$MOZ_DEBUG_SYMBOLS"; then
+ AC_DEFINE(MOZ_DEBUG_SYMBOLS)
+ export MOZ_DEBUG_SYMBOLS
+fi
+
+dnl ========================================================
+dnl = Enable any treating of compile warnings as errors
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(warnings-as-errors,
+[ --enable-warnings-as-errors
+ Enable treating of warnings as errors],
+ MOZ_ENABLE_WARNINGS_AS_ERRORS=1,
+ MOZ_ENABLE_WARNINGS_AS_ERRORS=)
+if test -z "$MOZ_ENABLE_WARNINGS_AS_ERRORS"; then
+ WARNINGS_AS_ERRORS=''
+fi
+
+dnl ========================================================
+dnl = Disable runtime logging checks
+dnl ========================================================
+MOZ_ARG_DISABLE_BOOL(logging,
+[ --disable-logging Disable logging facilities],
+ NS_DISABLE_LOGGING=1,
+ NS_DISABLE_LOGGING= )
+if test "$NS_DISABLE_LOGGING"; then
+ AC_DEFINE(NS_DISABLE_LOGGING)
+else
+ AC_DEFINE(MOZ_LOGGING)
+fi
+
+dnl ========================================================
+dnl = This will enable logging of addref, release, ctor, dtor.
+dnl ========================================================
+_ENABLE_LOGREFCNT=42
+MOZ_ARG_ENABLE_BOOL(logrefcnt,
+[ --enable-logrefcnt Enable logging of refcounts (default=debug) ],
+ _ENABLE_LOGREFCNT=1,
+ _ENABLE_LOGREFCNT= )
+if test "$_ENABLE_LOGREFCNT" = "1"; then
+ AC_DEFINE(FORCE_BUILD_REFCNT_LOGGING)
+elif test -z "$_ENABLE_LOGREFCNT"; then
+ AC_DEFINE(NO_BUILD_REFCNT_LOGGING)
+fi
+
+dnl ========================================================
+dnl moz_dump_painting
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(dump-painting,
+[ --enable-dump-painting Enable paint debugging.],
+ MOZ_DUMP_PAINTING=1,
+ MOZ_DUMP_PAINTING= )
+if test -n "$MOZ_DUMP_PAINTING"; then
+ AC_DEFINE(MOZ_DUMP_PAINTING)
+ AC_DEFINE(MOZ_LAYERS_HAVE_LOG)
+fi
+if test -n "$MOZ_DEBUG"; then
+ AC_DEFINE(MOZ_DUMP_PAINTING)
+fi
+
+dnl ========================================================
+dnl = Enable trace malloc
+dnl ========================================================
+NS_TRACE_MALLOC=${MOZ_TRACE_MALLOC}
+MOZ_ARG_ENABLE_BOOL(trace-malloc,
+[ --enable-trace-malloc Enable malloc tracing; also disables DMD and jemalloc],
+ NS_TRACE_MALLOC=1,
+ NS_TRACE_MALLOC= )
+if test "$NS_TRACE_MALLOC"; then
+ # Please, Mr. Linker Man, don't take away our symbol names
+ MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS=
+ USE_ELF_DYNSTR_GC=
+ AC_DEFINE(NS_TRACE_MALLOC)
+fi
+AC_SUBST(NS_TRACE_MALLOC)
+
+dnl ========================================================
+dnl = Enable DMD
+dnl ========================================================
+
+MOZ_ARG_ENABLE_BOOL(dmd,
+[ --enable-dmd Enable DMD; also enables jemalloc and replace-malloc],
+ MOZ_DMD=1,
+ MOZ_DMD= )
+
+if test "$NS_TRACE_MALLOC"; then # trace-malloc disables DMD
+ MOZ_DMD=
+fi
+if test "$MOZ_DMD"; then
+ USE_ELF_DYNSTR_GC=
+ AC_DEFINE(MOZ_DMD)
+
+ if test "${CPU_ARCH}" = "arm"; then
+ CFLAGS="$CFLAGS -funwind-tables"
+ CXXFLAGS="$CXXFLAGS -funwind-tables"
+ fi
+
+ MOZ_MEMORY=1 # DMD enables jemalloc
+ MOZ_REPLACE_MALLOC=1 # DMD enables replace-malloc
+fi
+AC_SUBST(MOZ_DMD)
+
+dnl ========================================================
+dnl = Enable jemalloc
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(jemalloc,
+[ --enable-jemalloc Replace memory allocator with jemalloc],
+ MOZ_MEMORY=1,
+ MOZ_MEMORY=)
+
+if test "$NS_TRACE_MALLOC"; then
+ MOZ_MEMORY=
+fi
+
+if test "${OS_TARGET}" = "Android"; then
+ dnl On Android, we use WRAP_LDFLAGS to link everything to mozglue
+ :
+elif test "${OS_TARGET}" = "WINNT" -o "${OS_TARGET}" = "Darwin" -o "${OS_TARGET}" = "OS2"; then
+ dnl On Windows, OSX and OS2, we want to link all our binaries against mozglue
+ if test -z "$GNU_CC"; then
+ MOZ_GLUE_LDFLAGS='$(call EXPAND_LIBNAME_PATH,mozglue,$(LIBXUL_DIST)/lib)'
+ else
+ MOZ_GLUE_LDFLAGS='-L$(LIBXUL_DIST)/lib $(call EXPAND_LIBNAME,mozglue)'
+ fi
+else
+ dnl On other Unix systems, we only want to link executables against mozglue
+ MOZ_GLUE_PROGRAM_LDFLAGS='$(MKSHLIB_FORCE_ALL) $(call EXPAND_LIBNAME_PATH,mozglue,$(LIBXUL_DIST)/lib)'
+ dnl On other Unix systems, where mozglue is a static library, jemalloc is
+ dnl separated for the SDK, so we need to add it here.
+ if test "$MOZ_MEMORY" = 1 -o \( "$LIBXUL_SDK" -a -f "$LIBXUL_SDK/lib/${LIB_PREFIX}memory.${LIB_SUFFIX}" \); then
+ MOZ_GLUE_PROGRAM_LDFLAGS="$MOZ_GLUE_PROGRAM_LDFLAGS "'$(call EXPAND_LIBNAME_PATH,memory,$(LIBXUL_DIST)/lib)'
+ fi
+ MOZ_GLUE_PROGRAM_LDFLAGS="$MOZ_GLUE_PROGRAM_LDFLAGS "'$(MKSHLIB_UNFORCE_ALL)'
+ if test -n "$GNU_CC"; then
+ dnl And we need mozglue symbols to be exported.
+ MOZ_GLUE_PROGRAM_LDFLAGS="$MOZ_GLUE_PROGRAM_LDFLAGS -rdynamic"
+ fi
+ if test "$MOZ_LINKER" = 1; then
+ MOZ_GLUE_PROGRAM_LDFLAGS="$MOZ_GLUE_PROGRAM_LDFLAGS $MOZ_ZLIB_LIBS"
+ fi
+fi
+
+dnl ========================================================
+dnl = Enable dynamic replacement of malloc implementation
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(replace-malloc,
+[ --enable-replace-malloc Enable ability to dynamically replace the malloc implementation],
+ MOZ_REPLACE_MALLOC=1,
+ MOZ_REPLACE_MALLOC= )
+
+if test -n "$MOZ_REPLACE_MALLOC" -a -z "$MOZ_MEMORY"; then
+ dnl We don't want to enable jemalloc unconditionally because it may be a
+ dnl deliberate choice not to enable it (bug 702250, for instance)
+ AC_MSG_ERROR([--enable-replace-malloc requires --enable-jemalloc])
+elif test -n "$MOZ_REPLACE_MALLOC"; then
+ MOZ_NATIVE_JEMALLOC=
+
+ dnl Replace-malloc Mac linkage quirks
+ if test -n "$MACOSX_DEPLOYMENT_TARGET"; then
+ AC_CACHE_CHECK([how to do weak dynamic linking],
+ ac_cv_weak_dynamic_linking,
+ [echo 'extern void foo() __attribute__((weak_import));int bar() { if (foo) foo(); return 0; }' > conftest.c
+ if AC_TRY_COMMAND([${CC-cc} -o conftest${DLL_SUFFIX} $CFLAGS -dynamiclib $LDFLAGS -Wl,-U,_foo conftest.c $LIBS 1>&5]) &&
+ test -s conftest${DLL_SUFFIX}; then
+ dnl There are several ways the linker can put link edit rules in a binary:
+ dnl - classic info only (for OSX < 10.6)
+ dnl - dyld info only
+ dnl - both
+ if otool -l conftest${DLL_SUFFIX} 2> /dev/null | grep "LC_DYLD_INFO_ONLY" > /dev/null; then
+ _CLASSIC_INFO=
+ else
+ _CLASSIC_INFO=1
+ fi
+ if otool -l conftest${DLL_SUFFIX} 2> /dev/null | grep "LC_DYLD_INFO" > /dev/null; then
+ _DYLD_INFO=1
+ else
+ _DYLD_INFO=
+ fi
+ dnl With classic info, we need to build with -flat_namespace.
+ dnl With dyld info, Xcode 4.5 does the right thing without additional flags,
+ dnl but Xcode < 4.5 requires a dummy library and -flat_namespace because it
+ dnl forgets to set the weak flag in the dyld info.
+ dnl See http://glandium.org/blog/?p=2764 for more details.
+ dnl
+ dnl Values for ac_cv_weak_dynamic_linking, and subsequently
+ dnl MOZ_REPLACE_MALLOC_LINKAGE are thus:
+ dnl - "flat namespace" when -flat_namespace alone is needed
+ dnl - "dummy library" when a dummy library and -flat_namespace are needed
+ dnl - "compiler support" when nothing is needed
+ if test -n "$_DYLD_INFO" && dyldinfo -bind conftest${DLL_SUFFIX} 2> /dev/null | grep "_foo (weak import)" > /dev/null; then
+ if test -n "$_CLASSIC_INFO"; then
+ ac_cv_weak_dynamic_linking="flat namespace"
+ else
+ ac_cv_weak_dynamic_linking="compiler support"
+ fi
+ else
+ if test -n "$_DYLD_INFO"; then
+ ac_cv_weak_dynamic_linking="dummy library"
+ else
+ ac_cv_weak_dynamic_linking="flat namespace"
+ fi
+ fi
+ else
+ AC_ERROR([couldn't compile a simple C file])
+ fi
+ rm -rf conftest*])
+ MOZ_REPLACE_MALLOC_LINKAGE="$ac_cv_weak_dynamic_linking"
+ fi
+fi
+AC_SUBST(MOZ_REPLACE_MALLOC)
+AC_SUBST(MOZ_REPLACE_MALLOC_LINKAGE)
+
+dnl ========================================================
+dnl = Jemalloc build setup
+dnl ========================================================
+if test -z "$MOZ_MEMORY"; then
+ if test -n "$MOZ_JEMALLOC3" -a -z "$MOZ_REPLACE_MALLOC"; then
+ MOZ_NATIVE_JEMALLOC=1
+ AC_CHECK_FUNCS(mallctl nallocm,,
+ [MOZ_NATIVE_JEMALLOC=
+ break])
+ if test -n "$MOZ_NATIVE_JEMALLOC"; then
+ MOZ_MEMORY=1
+ AC_DEFINE(MOZ_MEMORY)
+ AC_DEFINE(MOZ_JEMALLOC3)
+ AC_DEFINE(MOZ_NATIVE_JEMALLOC)
+ fi
+ fi
+ case "${target}" in
+ *-mingw*)
+ if test -z "$WIN32_REDIST_DIR" -a -z "$MOZ_DEBUG"; then
+ AC_MSG_WARN([When not building jemalloc, you need to set WIN32_REDIST_DIR to the path to the Visual C++ Redist (usually VCINSTALLDIR\redist\x86\Microsoft.VC80.CRT, for VC++ v8) if you intend to distribute your build.])
+ fi
+ ;;
+ esac
+else
+ dnl Don't try to run compiler tests on Windows
+ if test "$OS_ARCH" = "WINNT"; then
+ if test -z "$HAVE_64BIT_OS"; then
+ AC_DEFINE_UNQUOTED([MOZ_MEMORY_SIZEOF_PTR_2POW], 2)
+ else
+ AC_DEFINE_UNQUOTED([MOZ_MEMORY_SIZEOF_PTR_2POW], 3)
+ fi
+ else
+ AC_CHECK_SIZEOF([int *], [4])
+ case "${ac_cv_sizeof_int_p}" in
+ 4)
+ AC_DEFINE_UNQUOTED([MOZ_MEMORY_SIZEOF_PTR_2POW], 2)
+ ;;
+ 8)
+ AC_DEFINE_UNQUOTED([MOZ_MEMORY_SIZEOF_PTR_2POW], 3)
+ ;;
+ *)
+ AC_MSG_ERROR([Unexpected pointer size])
+ ;;
+ esac
+ fi
+
+ AC_DEFINE(MOZ_MEMORY)
+ if test -n "$MOZ_JEMALLOC3"; then
+ AC_DEFINE(MOZ_JEMALLOC3)
+ fi
+ if test "x$MOZ_DEBUG" = "x1"; then
+ AC_DEFINE(MOZ_MEMORY_DEBUG)
+ fi
+ dnl The generic feature tests that determine how to compute ncpus are long and
+ dnl complicated. Therefore, simply define special cpp variables for the
+ dnl platforms we have special knowledge of.
+ case "${target}" in
+ *-darwin*)
+ AC_DEFINE(MOZ_MEMORY_DARWIN)
+ ;;
+ *-*freebsd*)
+ AC_DEFINE(MOZ_MEMORY_BSD)
+ ;;
+ *-android*|*-linuxandroid*)
+ AC_DEFINE(MOZ_MEMORY_LINUX)
+ AC_DEFINE(MOZ_MEMORY_ANDROID)
+ if test -z "$gonkdir"; then
+ _WRAP_MALLOC=1
+ else
+ AC_DEFINE(MOZ_MEMORY_GONK)
+ fi
+ MOZ_GLUE_LDFLAGS=
+ ;;
+ *-*linux*)
+ AC_DEFINE(MOZ_MEMORY_LINUX)
+ ;;
+ *-netbsd*)
+ AC_DEFINE(MOZ_MEMORY_BSD)
+ ;;
+ *-solaris*)
+ AC_DEFINE(MOZ_MEMORY_SOLARIS)
+ ;;
+ *-mingw*)
+ AC_DEFINE(MOZ_MEMORY_WINDOWS)
+ if test -z "$MOZ_DEBUG"; then
+ WIN32_CRT_LIBS="msvcrt.lib msvcprt.lib"
+ else
+ WIN32_CRT_LIBS="msvcrtd.lib msvcprtd.lib"
+ fi
+ dnl Look for a broken crtdll.obj
+ WIN32_CRTDLL_FULLPATH=`lib -nologo -list $WIN32_CRT_LIBS | grep crtdll\\.obj`
+ lib -NOLOGO -OUT:crtdll.obj $WIN32_CRT_LIBS -EXTRACT:$WIN32_CRTDLL_FULLPATH
+ if grep -q '__imp__\{0,1\}free' crtdll.obj; then
+ MOZ_GLUE_LDFLAGS='-LIBPATH:$(DIST)/lib -NODEFAULTLIB:msvcrt -NODEFAULTLIB:msvcrtd -NODEFAULTLIB:msvcprt -NODEFAULTLIB:msvcprtd -DEFAULTLIB:mozcrt'
+ dnl Also pass this to NSPR/NSS
+ DLLFLAGS="$DLLFLAGS $MOZ_GLUE_LDFLAGS"
+ else
+ DLLFLAGS="$DLLFLAGS -LIBPATH:\$(DIST)/lib -DEFAULTLIB:mozglue"
+ fi
+ rm crtdll.obj
+
+ export DLLFLAGS
+ ;;
+ *)
+ AC_MSG_ERROR([--enable-jemalloc not supported on ${target}])
+ ;;
+ esac
+fi # MOZ_MEMORY
+AC_SUBST(MOZ_MEMORY)
+AC_SUBST(MOZ_JEMALLOC3)
+AC_SUBST(MOZ_NATIVE_JEMALLOC)
+AC_SUBST(MOZ_GLUE_LDFLAGS)
+AC_SUBST(MOZ_GLUE_PROGRAM_LDFLAGS)
+AC_SUBST(WIN32_CRT_LIBS)
+dnl Need to set this for make because NSS doesn't have configure
+AC_SUBST(DLLFLAGS)
+
+dnl We need to wrap dlopen and related functions on Android because we use
+dnl our own linker.
+if test "$OS_TARGET" = Android; then
+ WRAP_LDFLAGS="${WRAP_LDFLAGS} -L$_objdir/dist/lib -lmozglue"
+ WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=getaddrinfo,--wrap=freeaddrinfo,--wrap=gai_strerror"
+ WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=PR_GetEnv,--wrap=PR_SetEnv"
+ if test -z "$gonkdir"; then
+ WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=fork,--wrap=pthread_atfork,--wrap=raise"
+ WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=memccpy,--wrap=memchr,--wrap=memrchr,--wrap=memcmp,--wrap=memcpy,--wrap=memmove,--wrap=memset,--wrap=memmem,--wrap=memswap,--wrap=index,--wrap=strchr,--wrap=strrchr,--wrap=strlen,--wrap=strcmp,--wrap=strcpy,--wrap=strcat,--wrap=strcasecmp,--wrap=strncasecmp,--wrap=strstr,--wrap=strcasestr,--wrap=strtok,--wrap=strtok_r,--wrap=strerror,--wrap=strerror_r,--wrap=strnlen,--wrap=strncat,--wrap=strncmp,--wrap=strncpy,--wrap=strlcat,--wrap=strlcpy,--wrap=strcspn,--wrap=strpbrk,--wrap=strsep,--wrap=strspn,--wrap=strcoll,--wrap=strxfrm"
+ fi
+fi
+
+dnl ========================================================
+dnl = Use malloc wrapper lib
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(wrap-malloc,
+[ --enable-wrap-malloc Wrap malloc calls (gnu linker only)],
+ _WRAP_MALLOC=1,
+ _WRAP_MALLOC= )
+
+if test -n "$_WRAP_MALLOC"; then
+ if test -n "$GNU_CC"; then
+ WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=malloc,--wrap=calloc,--wrap=valloc,--wrap=free,--wrap=realloc,--wrap=memalign"
+ WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=__builtin_new,--wrap=__builtin_vec_new,--wrap=__builtin_delete,--wrap=__builtin_vec_delete"
+ WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=strdup,--wrap=strndup"
+ WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=posix_memalign,--wrap=malloc_usable_size"
+ dnl Wrap operator new and operator delete on Android.
+ if test "$OS_TARGET" = "Android"; then
+ WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=_Znwj,--wrap=_Znaj,--wrap=_ZdlPv,--wrap=_ZdaPv"
+ dnl Wrap the nothrow variants too.
+ WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=_ZnwjRKSt9nothrow_t,--wrap=_ZnajRKSt9nothrow_t,--wrap=_ZdlPvRKSt9nothrow_t,--wrap=_ZdaPvRKSt9nothrow_t"
+ fi
+ else
+ AC_MSG_ERROR([--enable-wrap-malloc is not supported for non-GNU toolchains])
+ fi
+fi
+
+dnl ========================================================
+dnl = Location of malloc wrapper lib
+dnl ========================================================
+MOZ_ARG_WITH_STRING(wrap-malloc,
+[ --with-wrap-malloc=DIR Location of malloc wrapper library],
+ WRAP_LDFLAGS="${WRAP_LDFLAGS} $withval")
+
+dnl ========================================================
+dnl = Use JS Call tracing
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(trace-jscalls,
+[ --enable-trace-jscalls Enable JS call enter/exit callback (default=no)],
+ MOZ_TRACE_JSCALLS=1,
+ MOZ_TRACE_JSCALLS= )
+if test -n "$MOZ_TRACE_JSCALLS"; then
+ AC_DEFINE(MOZ_TRACE_JSCALLS)
+fi
+
+dnl ========================================================
+dnl = Use incremental GC
+dnl ========================================================
+JSGC_INCREMENTAL=1
+MOZ_ARG_DISABLE_BOOL(gcincremental,
+[ --disable-gcincremental Disable incremental GC],
+ JSGC_INCREMENTAL= )
+if test -n "$JSGC_INCREMENTAL"; then
+ AC_DEFINE(JSGC_INCREMENTAL)
+fi
+
+dnl ========================================================
+dnl Zealous JavaScript GC
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(gczeal,
+[ --enable-gczeal Enable zealous JavaScript GCing],
+ JS_GC_ZEAL=1,
+ JS_GC_ZEAL= )
+if test -n "$JS_GC_ZEAL"; then
+ AC_DEFINE(JS_GC_ZEAL)
+fi
+
+dnl ========================================================
+dnl JS opt-mode assertions and minidump instrumentation
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(js-diagnostics,
+[ --enable-js-diagnostics
+ Enable JS diagnostic assertions and breakpad data],
+ JS_CRASH_DIAGNOSTICS=1,
+ JS_CRASH_DIAGNOSTICS= )
+if test -n "$JS_CRASH_DIAGNOSTICS"; then
+ AC_DEFINE(JS_CRASH_DIAGNOSTICS)
+fi
+
+MOZ_CHECK_CCACHE
+MOZ_CHECK_COMPILER_WRAPPER
+
+dnl ========================================================
+dnl = Enable static checking using gcc-dehydra
+dnl ========================================================
+
+MOZ_ARG_WITH_STRING(static-checking,
+[ --with-static-checking=path/to/gcc_dehydra.so
+ Enable static checking of code using GCC-dehydra],
+ DEHYDRA_PATH=$withval,
+ DEHYDRA_PATH= )
+
+if test -n "$DEHYDRA_PATH"; then
+ if test ! -f "$DEHYDRA_PATH"; then
+ AC_MSG_ERROR([The dehydra plugin is not at the specified path.])
+ fi
+ AC_DEFINE(NS_STATIC_CHECKING)
+fi
+AC_SUBST(DEHYDRA_PATH)
+
+dnl ========================================================
+dnl = Enable using the clang plugin to build
+dnl ========================================================
+
+MOZ_ARG_ENABLE_BOOL(clang-plugin,
+[ --enable-clang-plugin Enable building with the mozilla clang plugin ],
+ ENABLE_CLANG_PLUGIN=1,
+ ENABLE_CLANG_PLUGIN= )
+if test -n "$ENABLE_CLANG_PLUGIN"; then
+ if test -z "$CLANG_CC"; then
+ AC_MSG_ERROR([Can't use clang plugin without clang.])
+ fi
+ AC_DEFINE(MOZ_CLANG_PLUGIN)
+fi
+
+AC_SUBST(ENABLE_CLANG_PLUGIN)
+
+dnl ========================================================
+dnl = Enable stripping of libs & executables
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(strip,
+[ --enable-strip Enable stripping of libs & executables ],
+ ENABLE_STRIP=1,
+ ENABLE_STRIP= )
+
+dnl ========================================================
+dnl = Enable stripping of libs & executables when packaging
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(install-strip,
+[ --enable-install-strip Enable stripping of libs & executables when packaging ],
+ PKG_SKIP_STRIP= ,
+ PKG_SKIP_STRIP=1)
+
+dnl ========================================================
+dnl = --enable-elf-dynstr-gc
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(elf-dynstr-gc,
+[ --enable-elf-dynstr-gc Enable elf dynstr garbage collector (opt builds only)],
+ USE_ELF_DYNSTR_GC=1,
+ USE_ELF_DYNSTR_GC= )
+
+dnl ========================================================
+dnl = --disable-elf-hack
+dnl ========================================================
+
+USE_ELF_HACK=1
+MOZ_ARG_DISABLE_BOOL(elf-hack,
+[ --disable-elf-hack Disable elf hacks],
+ [USE_ELF_HACK=],
+ [USE_ELF_HACK=F # Force enable elf-hack])
+
+# Disable elf hack for profiling because the built in profiler
+# doesn't read the segments properly with elf hack. This is
+# temporary and should be fixed soon in the profiler.
+if test "$MOZ_PROFILING" = 1; then
+ if test "$USE_ELF_HACK" = F; then
+ AC_ERROR([--enable-elf-hack is not compatible with --enable-profiling])
+ fi
+ USE_ELF_HACK=
+fi
+
+# Only enable elfhack where supported
+if test "$USE_ELF_HACK" = 1; then
+ case "${HOST_OS_ARCH},${OS_ARCH}" in
+ Linux,Linux)
+ case "${CPU_ARCH}" in
+ arm | x86 | x86_64)
+ USE_ELF_HACK=1
+ ;;
+ *)
+ USE_ELF_HACK=
+ ;;
+ esac
+ ;;
+ *)
+ USE_ELF_HACK=
+ ;;
+ esac
+fi
+
+if test -n "$USE_ELF_HACK"; then
+ dnl PT_GNU_RELRO segment makes the dynamic linker set a read-only flag on
+ dnl memory addresses it maps to. The result is that by the time elfhack
+ dnl kicks in, it is not possible to apply relocations because of that,
+ dnl thus elfhack effectively skips relocations inside the PT_GNU_RELRO
+ dnl segment. It makes elfhack mostly useless, so considering the problems
+ dnl we have we PT_GNU_RELRO (e.g. bug 664366), and until elfhack can deal
+ dnl with PT_GNU_RELRO segments, it's just simpler to disable elfhack when
+ dnl the linker creates PT_GNU_RELRO segments. However, when we do want
+ dnl elfhack enabled, disable PT_GNU_RELRO instead.
+ AC_CACHE_CHECK([whether linker creates PT_GNU_RELRO segments],
+ LINK_WITH_PT_GNU_RELRO,
+ [echo "int main() {return 0;}" > conftest.${ac_ext}
+ if AC_TRY_COMMAND(${CC-cc} -o conftest${ac_exeext} $LDFLAGS conftest.${ac_ext} $LIBS 1>&2) &&
+ test -s conftest${ac_exeext}; then
+ if ${TOOLCHAIN_PREFIX}readelf -l conftest${ac_exeext} | grep GNU_RELRO > /dev/null; then
+ LINK_WITH_PT_GNU_RELRO=yes
+ else
+ LINK_WITH_PT_GNU_RELRO=no
+ fi
+ else
+ dnl We really don't expect to get here, but just in case
+ AC_ERROR([couldn't compile a simple C file])
+ fi
+ rm -rf conftest*])
+ if test "$LINK_WITH_PT_GNU_RELRO" = yes; then
+ if test "$USE_ELF_HACK" = F; then
+ AC_MSG_CHECKING([for -z norelro option to ld])
+ _SAVE_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS -Wl,-z,norelro"
+ AC_TRY_LINK(,,AC_MSG_RESULT([yes])
+ [NSPR_LDFLAGS="$NSPR_LDFLAGS -Wl,-z,norelro"],
+ AC_ERROR([--enable-elf-hack is not compatible with a linker creating a PT_GNU_RELRO segment and that doesn't support the "-z norelro" option.]))
+ USE_ELF_HACK=1
+ else
+ AC_MSG_WARN([Disabling elfhack])
+ USE_ELF_HACK=
+ fi
+ fi
+fi
+
+dnl ========================================================
+dnl = libstdc++ compatibility hacks
+dnl ========================================================
+
+STDCXX_COMPAT=
+MOZ_ARG_ENABLE_BOOL(stdcxx-compat,
+[ --enable-stdcxx-compat Enable compatibility with older libstdc++],
+ STDCXX_COMPAT=1)
+
+AC_SUBST(STDCXX_COMPAT)
+
+if test -n "$STDCXX_COMPAT"; then
+ eval $(CXX="$CXX" $PYTHON $_topsrcdir/build/autoconf/libstdcxx.py)
+ AC_SUBST(MOZ_LIBSTDCXX_TARGET_VERSION)
+ AC_SUBST(MOZ_LIBSTDCXX_HOST_VERSION)
+fi
+
+dnl ========================================================
+dnl =
+dnl = Profiling and Instrumenting
+dnl =
+dnl ========================================================
+MOZ_ARG_HEADER(Profiling and Instrumenting)
+
+dnl ========================================================
+dnl = Enable runtime visual profiling logger
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(visual-event-tracer,
+[ --enable-visual-event-tracer Enable visual event tracer instrumentation],
+ MOZ_VISUAL_EVENT_TRACER=1,
+ MOZ_VISUAL_EVENT_TRACER=)
+if test -n "$MOZ_VISUAL_EVENT_TRACER"; then
+ AC_DEFINE(MOZ_VISUAL_EVENT_TRACER)
+fi
+
+dnl ========================================================
+dnl Turn on reflow counting
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(reflow-perf,
+[ --enable-reflow-perf Enable reflow performance tracing],
+ MOZ_REFLOW_PERF=1,
+ MOZ_REFLOW_PERF= )
+if test -n "$MOZ_REFLOW_PERF"; then
+ AC_DEFINE(MOZ_REFLOW_PERF)
+fi
+
+dnl ========================================================
+dnl Enable code size metrics.
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(codesighs,
+[ --enable-codesighs Enable code size analysis tools],
+ _ENABLE_CODESIGHS=1,
+ _ENABLE_CODESIGHS= )
+if test -n "$_ENABLE_CODESIGHS"; then
+ if test -d $srcdir/tools/codesighs; then
+ MOZ_MAPINFO=1
+ else
+ AC_MSG_ERROR([Codesighs directory $srcdir/tools/codesighs required.])
+ fi
+fi
+
+dnl ========================================================
+dnl = Enable Radio Interface for B2G (Gonk usually)
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(b2g-ril,
+[ --enable-b2g-ril Set compile flags necessary for testing B2G Radio Interface Layer via network sockets ],
+ MOZ_B2G_RIL=1,
+ MOZ_B2G_RIL= )
+if test -n "$MOZ_B2G_RIL"; then
+ AC_DEFINE(MOZ_B2G_RIL)
+fi
+AC_SUBST(MOZ_B2G_RIL)
+
+dnl ========================================================
+dnl = Enable Radio FM for B2G (Gonk usually)
+dnl ========================================================
+if test -n "$MOZ_B2G_FM"; then
+ AC_DEFINE(MOZ_B2G_FM)
+fi
+AC_SUBST(MOZ_B2G_FM)
+
+dnl ========================================================
+dnl = Enable Bluetooth Interface for B2G (Gonk usually)
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(b2g-bt,
+[ --enable-b2g-bt Set compile flags necessary for compiling Bluetooth API for B2G ],
+ MOZ_B2G_BT=1,
+ MOZ_B2G_BT= )
+if test -n "$MOZ_B2G_BT"; then
+ AC_DEFINE(MOZ_B2G_BT)
+fi
+AC_SUBST(MOZ_B2G_BT)
+
+dnl ========================================================
+dnl = Enable Support for Time Manager API
+dnl ========================================================
+if test -n "$MOZ_TIME_MANAGER"; then
+ AC_DEFINE(MOZ_TIME_MANAGER)
+fi
+AC_SUBST(MOZ_TIME_MANAGER)
+
+dnl ========================================================
+dnl = Enable Camera Interface for B2G (Gonk usually)
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(b2g-camera,
+[ --enable-b2g-camera Set compile flags necessary for compiling camera API for B2G ],
+ MOZ_B2G_CAMERA=1,
+ MOZ_B2G_CAMERA= )
+if test -n "$MOZ_B2G_CAMERA"; then
+ AC_DEFINE(MOZ_B2G_CAMERA)
+fi
+AC_SUBST(MOZ_B2G_CAMERA)
+
+dnl ========================================================
+dnl = Enable Support B2G-specific changes to the NSS
+dnl = certificate trust database.
+dnl ========================================================
+if test -n "$MOZ_B2G_CERTDATA"; then
+ AC_DEFINE(MOZ_B2G_CERTDATA)
+fi
+AC_SUBST(MOZ_B2G_CERTDATA)
+
+dnl ========================================================
+dnl = Enable Support for Payment API
+dnl ========================================================
+if test -n "$MOZ_PAY"; then
+ AC_DEFINE(MOZ_PAY)
+fi
+AC_SUBST(MOZ_PAY)
+
+dnl ========================================================
+dnl = Enable Support for AudioChannelManager API
+dnl ========================================================
+if test -n "$MOZ_AUDIO_CHANNEL_MANAGER"; then
+ AC_DEFINE(MOZ_AUDIO_CHANNEL_MANAGER)
+fi
+AC_SUBST(MOZ_AUDIO_CHANNEL_MANAGER)
+
+dnl ========================================================
+dnl = Support for demangling undefined symbols
+dnl ========================================================
+if test -z "$SKIP_LIBRARY_CHECKS"; then
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ AC_CHECK_FUNCS(__cxa_demangle, HAVE_DEMANGLE=1, HAVE_DEMANGLE=)
+ AC_LANG_RESTORE
+fi
+
+# Demangle only for debug or trace-malloc or DMD builds
+MOZ_DEMANGLE_SYMBOLS=
+if test "$HAVE_DEMANGLE" && test "$MOZ_DEBUG" -o "$NS_TRACE_MALLOC" -o "$MOZ_DMD"; then
+ MOZ_DEMANGLE_SYMBOLS=1
+ AC_DEFINE(MOZ_DEMANGLE_SYMBOLS)
+fi
+AC_SUBST(MOZ_DEMANGLE_SYMBOLS)
+
+dnl ========================================================
+dnl = Support for gcc stack unwinding (from gcc 3.3)
+dnl ========================================================
+if test -z "$SKIP_LIBRARY_CHECKS"; then
+ MOZ_CHECK_HEADER(unwind.h, AC_CHECK_FUNCS(_Unwind_Backtrace))
+fi
+
+dnl ========================================================
+dnl JIT observers
+dnl ========================================================
+
+MOZ_ARG_WITH_STRING(jitreport-granularity,
+[ --jitreport-granularity=N
+ Default granularity at which to report JIT code
+ to external tools
+ 0 - no info
+ 1 - code ranges for whole functions only
+ 2 - per-line information
+ 3 - per-op information],
+ JITREPORT_GRANULARITY=$withval,
+ JITREPORT_GRANULARITY=3)
+
+AC_DEFINE_UNQUOTED(JS_DEFAULT_JITREPORT_GRANULARITY, $JITREPORT_GRANULARITY)
+
+dnl ========================================================
+dnl =
+dnl = Misc. Options
+dnl =
+dnl ========================================================
+MOZ_ARG_HEADER(Misc. Options)
+
+dnl ========================================================
+dnl update xterm title
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(xterm-updates,
+[ --enable-xterm-updates Update XTERM titles with current command.],
+ MOZ_UPDATE_XTERM=1,
+ MOZ_UPDATE_XTERM= )
+
+dnl =========================================================
+dnl = Chrome format
+dnl =========================================================
+MOZ_ARG_ENABLE_STRING([chrome-format],
+[ --enable-chrome-format=jar|flat|omni
+ Select FORMAT of chrome files during packaging],
+ MOZ_CHROME_FILE_FORMAT=`echo $enableval | tr A-Z a-z`)
+
+if test -z "$MOZ_CHROME_FILE_FORMAT"; then
+ MOZ_CHROME_FILE_FORMAT=jar
+fi
+
+if test "$MOZ_CHROME_FILE_FORMAT" = "symlink"; then
+ AC_MSG_ERROR([--enable-chrome-format=symlink has been deprecated. It is now used by default in $DIST/bin on platforms that support it])
+fi
+
+if test "$MOZ_CHROME_FILE_FORMAT" != "jar" &&
+ test "$MOZ_CHROME_FILE_FORMAT" != "flat" &&
+ test "$MOZ_CHROME_FILE_FORMAT" != "omni"; then
+ AC_MSG_ERROR([--enable-chrome-format must be set to either jar, flat, or omni])
+fi
+
+dnl =========================================================
+dnl Omnijar packaging (bug 552121)
+dnl =========================================================
+dnl Omnijar packaging is compatible with flat packaging.
+dnl In unpackaged builds, omnijar looks for files as if
+dnl things were flat packaged. After packaging, all files
+dnl are loaded from a single jar. MOZ_CHROME_FILE_FORMAT
+dnl is set to flat since putting files into jars is only
+dnl done during packaging with omnijar.
+if test "$MOZ_CHROME_FILE_FORMAT" = "omni"; then
+ MOZ_OMNIJAR=1
+ AC_DEFINE(MOZ_OMNIJAR)
+fi
+MOZ_PACKAGER_FORMAT="$MOZ_CHROME_FILE_FORMAT"
+if test "$OS_ARCH" = "WINNT" -o "$OS_ARCH" = "OS2" -o "$MOZ_WIDGET_TOOLKIT" = "android"; then
+ MOZ_CHROME_FILE_FORMAT=flat
+else
+ MOZ_CHROME_FILE_FORMAT=symlink
+fi
+
+if test "$MOZ_WIDGET_TOOLKIT" = "android"; then
+ dnl Fennec's static resources live in the assets/ folder of the
+ dnl APK. Adding a path to the name here works because we only
+ dnl have one omnijar file in the final package (which is not the
+ dnl case on desktop), and necessitates some contortions during
+ dnl packaging so that the resources in the omnijar are considered
+ dnl as rooted at / and not as rooted at assets/ (which again is
+ dnl not the case on desktop: there are omnijars rooted at webrtc/,
+ dnl etc). packager.mk handles changing the rooting of the single
+ dnl omnijar.
+ OMNIJAR_NAME=assets/omni.ja
+else
+ OMNIJAR_NAME=omni.ja
+fi
+
+AC_SUBST(OMNIJAR_NAME)
+AC_SUBST(MOZ_OMNIJAR)
+AC_SUBST(MOZ_PACKAGER_FORMAT)
+
+dnl ========================================================
+dnl = Define default location for MOZILLA_FIVE_HOME
+dnl ========================================================
+MOZ_ARG_WITH_STRING(default-mozilla-five-home,
+[ --with-default-mozilla-five-home
+ Set the default value for MOZILLA_FIVE_HOME],
+[ val=`echo $withval`
+ AC_DEFINE_UNQUOTED(MOZ_DEFAULT_MOZILLA_FIVE_HOME,"$val") ])
+
+dnl ========================================================
+dnl = Location of the mozilla user directory (default is ~/.mozilla).],
+dnl ========================================================
+MOZ_ARG_WITH_STRING(user-appdir,
+[ --with-user-appdir=DIR Set user-specific appdir (default=.mozilla)],
+[ val=`echo $withval`
+if echo "$val" | grep "\/" >/dev/null; then
+ AC_MSG_ERROR("Homedir must be single relative path.")
+else
+ MOZ_USER_DIR="$val"
+fi])
+
+AC_DEFINE_UNQUOTED(MOZ_USER_DIR,"$MOZ_USER_DIR")
+
+dnl ========================================================
+dnl = Doxygen configuration
+dnl ========================================================
+dnl Use commas to specify multiple dirs to this arg
+MOZ_DOC_INPUT_DIRS='./dist/include ./dist/idl'
+MOZ_ARG_WITH_STRING(doc-input-dirs,
+[ --with-doc-input-dirs=DIRS
+ Header/idl dirs to create docs from],
+[ MOZ_DOC_INPUT_DIRS=`echo "$withval" | sed "s/,/ /g"` ] )
+AC_SUBST(MOZ_DOC_INPUT_DIRS)
+
+dnl Use commas to specify multiple dirs to this arg
+MOZ_DOC_INCLUDE_DIRS='./dist/include ./dist/include/nspr'
+MOZ_ARG_WITH_STRING(doc-include-dirs,
+[ --with-doc-include-dirs=DIRS
+ Include dirs to preprocess doc headers],
+[ MOZ_DOC_INCLUDE_DIRS=`echo "$withval" | sed "s/,/ /g"` ] )
+AC_SUBST(MOZ_DOC_INCLUDE_DIRS)
+
+MOZ_DOC_OUTPUT_DIR='./dist/docs'
+MOZ_ARG_WITH_STRING(doc-output-dir,
+[ --with-doc-output-dir=DIR
+ Dir to generate docs into],
+[ MOZ_DOC_OUTPUT_DIR=$withval ] )
+AC_SUBST(MOZ_DOC_OUTPUT_DIR)
+
+if test -z "$SKIP_COMPILER_CHECKS"; then
+dnl ========================================================
+dnl =
+dnl = Compiler Options
+dnl =
+dnl ========================================================
+MOZ_ARG_HEADER(Compiler Options)
+
+dnl ========================================================
+dnl Check for gcc -pipe support
+dnl ========================================================
+AC_MSG_CHECKING([for -pipe support])
+if test -n "$GNU_CC" -a -n "$GNU_CXX"; then
+ dnl Any gcc that supports firefox supports -pipe.
+ CFLAGS="$CFLAGS -pipe"
+ CXXFLAGS="$CXXFLAGS -pipe"
+ AC_MSG_RESULT([yes])
+else
+ AC_MSG_RESULT([no])
+fi
+
+dnl ========================================================
+dnl Profile guided optimization (gcc checks)
+dnl ========================================================
+dnl Test for profiling options
+dnl Under gcc 3.4+, use -fprofile-generate/-fprofile-use
+
+_SAVE_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS -fprofile-generate -fprofile-correction"
+
+AC_MSG_CHECKING([whether C compiler supports -fprofile-generate])
+AC_TRY_COMPILE([], [return 0;],
+ [ PROFILE_GEN_CFLAGS="-fprofile-generate"
+ result="yes" ], result="no")
+AC_MSG_RESULT([$result])
+
+if test $result = "yes"; then
+ PROFILE_GEN_LDFLAGS="-fprofile-generate"
+ PROFILE_USE_CFLAGS="-fprofile-use -fprofile-correction -Wcoverage-mismatch"
+ PROFILE_USE_LDFLAGS="-fprofile-use"
+fi
+
+CFLAGS="$_SAVE_CFLAGS"
+
+if test -n "$INTEL_CC"; then
+ PROFILE_GEN_CFLAGS="-prof-gen -prof-dir ."
+ PROFILE_GEN_LDFLAGS=
+ PROFILE_USE_CFLAGS="-prof-use -prof-dir ."
+ PROFILE_USE_LDFLAGS=
+fi
+
+dnl Sun Studio on Solaris
+if test "$SOLARIS_SUNPRO_CC"; then
+ PROFILE_GEN_CFLAGS="-xprofile=collect:$_objdir/$enable_application"
+ PROFILE_GEN_LDFLAGS="-xprofile=collect:$_objdir/$enable_application"
+ PROFILE_USE_CFLAGS="-xprofile=use:$_objdir/$enable_application"
+ PROFILE_USE_LDFLAGS="-xprofile=use:$_objdir/$enable_application"
+fi
+
+AC_SUBST(PROFILE_GEN_CFLAGS)
+AC_SUBST(PROFILE_GEN_LDFLAGS)
+AC_SUBST(PROFILE_USE_CFLAGS)
+AC_SUBST(PROFILE_USE_LDFLAGS)
+
+AC_LANG_CPLUSPLUS
+
+dnl ========================================================
+dnl Autoconf test for gcc 2.7.2.x (and maybe others?) so that we don't
+dnl provide non-const forms of the operator== for comparing nsCOMPtrs to
+dnl raw pointers in nsCOMPtr.h. (VC++ has the same bug.)
+dnl ========================================================
+_SAVE_CXXFLAGS=$CXXFLAGS
+CXXFLAGS="$CXXFLAGS ${_WARNINGS_CXXFLAGS}"
+AC_CACHE_CHECK(for correct overload resolution with const and templates,
+ ac_nscap_nonconst_opeq_bug,
+ [AC_TRY_COMPILE([
+ template <class T>
+ class Pointer
+ {
+ public:
+ T* myPtr;
+ };
+
+ template <class T, class U>
+ int operator==(const Pointer<T>& rhs, U* lhs)
+ {
+ return rhs.myPtr == lhs;
+ }
+
+ template <class T, class U>
+ int operator==(const Pointer<T>& rhs, const U* lhs)
+ {
+ return rhs.myPtr == lhs;
+ }
+ ],
+ [
+ Pointer<int> foo;
+ const int* bar;
+ return foo == bar;
+ ],
+ ac_nscap_nonconst_opeq_bug="no",
+ ac_nscap_nonconst_opeq_bug="yes")])
+CXXFLAGS="$_SAVE_CXXFLAGS"
+
+if test "$ac_nscap_nonconst_opeq_bug" = "yes" ; then
+ AC_DEFINE(NSCAP_DONT_PROVIDE_NONCONST_OPEQ)
+fi
+fi # ! SKIP_COMPILER_CHECKS
+
+AC_DEFINE(CPP_THROW_NEW, [throw()])
+AC_LANG_C
+
+if test "$COMPILE_ENVIRONMENT"; then
+MOZ_EXPAND_LIBS
+fi # COMPILE_ENVIRONMENT
+
+dnl ========================================================
+dnl =
+dnl = Build depencency options
+dnl =
+dnl ========================================================
+MOZ_ARG_HEADER(Build dependencies)
+
+if test "$GNU_CC" -a "$GNU_CXX"; then
+ _DEPEND_CFLAGS='-MD -MP -MF $(MDDEPDIR)/$(@F).pp'
+dnl Sun Studio on Solaris use -xM instead of -MD, see config/rules.mk
+elif test "$SOLARIS_SUNPRO_CC"; then
+ _DEPEND_CFLAGS=
+else
+ dnl Don't override this for MSVC
+ if test -z "$_WIN32_MSVC"; then
+ _USE_CPP_INCLUDE_FLAG=
+ _DEFINES_CFLAGS='$(ACDEFINES) -D_MOZILLA_CONFIG_H_ -DMOZILLA_CLIENT'
+ _DEFINES_CXXFLAGS='$(ACDEFINES) -D_MOZILLA_CONFIG_H_ -DMOZILLA_CLIENT'
+ else
+ echo '#include <stdio.h>' > dummy-hello.c
+ changequote(,)
+ CL_INCLUDES_PREFIX=`${CC} -showIncludes -c -Fonul dummy-hello.c 2>&1 | sed -ne 's/^\([^:]*:[^:]*:\).*stdio.h$/\1/p'`
+ changequote([,])
+ if test -z "$CL_INCLUDES_PREFIX"; then
+ AC_MSG_ERROR([Cannot find cl -showIncludes prefix.])
+ fi
+ AC_SUBST(CL_INCLUDES_PREFIX)
+ rm -f dummy-hello.c
+ fi
+fi
+
+dnl ========================================================
+dnl =
+dnl = Static Build Options
+dnl =
+dnl ========================================================
+MOZ_ARG_HEADER(Static build options)
+
+# split JS out by default to avoid VS2005 PGO crash (bug 591836).
+if test "$OS_ARCH" = "WINNT"; then
+ ENABLE_SHARED_JS=1
+fi
+
+MOZ_ARG_ENABLE_BOOL(shared-js,
+[ --enable-shared-js
+ Create a shared JavaScript library.],
+ ENABLE_SHARED_JS=1,
+ ENABLE_SHARED_JS=)
+
+if test -n "$ENABLE_SHARED_JS"; then
+ JS_SHARED_LIBRARY=1
+ MOZ_JS_LIBS="$MOZ_JS_SHARED_LIBS"
+else
+ MOZ_JS_LIBS="$MOZ_JS_STATIC_LIBS"
+ AC_DEFINE(MOZ_STATIC_JS)
+fi
+AC_SUBST(JS_SHARED_LIBRARY)
+
+AC_SUBST(LIBXUL_LIBS)
+XPCOM_LIBS="$LIBXUL_LIBS"
+
+dnl ========================================================
+dnl =
+dnl = Standalone module options
+dnl =
+dnl ========================================================
+MOZ_ARG_HEADER(Standalone module options (Not for building Mozilla))
+
+dnl Check for GLib.
+dnl ========================================================
+
+if test -z "$SKIP_PATH_CHECKS"; then
+if test -z "${GLIB_CFLAGS}" -o -z "${GLIB_LIBS}" ; then
+ if test "$MOZ_ENABLE_GTK2" -o "$USE_ELF_DYNSTR_GC" ; then
+ PKG_CHECK_MODULES(GLIB, glib-2.0 >= 1.3.7 gobject-2.0)
+ fi
+fi
+fi
+
+if test -z "${GLIB_GMODULE_LIBS}" \
+ -a -n "${GLIB_CONFIG}"\
+ -a "${GLIB_CONFIG}" != no\
+; then
+ GLIB_GMODULE_LIBS=`$GLIB_CONFIG gmodule --libs`
+fi
+
+AC_SUBST(GLIB_CFLAGS)
+AC_SUBST(GLIB_LIBS)
+AC_SUBST(GLIB_GMODULE_LIBS)
+
+dnl ========================================================
+dnl Graphics checks.
+dnl ========================================================
+
+if test "${OS_TARGET}" = "WINNT" -o "${OS_ARCH}" = "Darwin" -o "${MOZ_WIDGET_TOOLKIT}" = "android" -o "${MOZ_WIDGET_TOOLKIT}" = "gtk2"; then
+MOZ_ENABLE_SKIA=1
+else
+MOZ_ENABLE_SKIA=
+fi
+
+MOZ_ARG_ENABLE_BOOL(skia,
+[ --enable-skia Enable use of Skia],
+MOZ_ENABLE_SKIA=1,
+MOZ_ENABLE_SKIA=)
+
+if test "$USE_FC_FREETYPE"; then
+ if test "$COMPILE_ENVIRONMENT"; then
+ dnl ========================================================
+ dnl = Check for freetype2 and its functionality
+ dnl ========================================================
+ PKG_CHECK_MODULES(FT2, freetype2 >= 6.1.0, _HAVE_FREETYPE2=1, _HAVE_FREETYPE2=)
+
+ if test "$_HAVE_FREETYPE2"; then
+ _SAVE_LIBS="$LIBS"
+ _SAVE_CFLAGS="$CFLAGS"
+ LIBS="$LIBS $FT2_LIBS"
+ CFLAGS="$CFLAGS $FT2_CFLAGS"
+
+ AC_CACHE_CHECK(for FT_Bitmap_Size.y_ppem,
+ ac_cv_member_FT_Bitmap_Size_y_ppem,
+ [AC_TRY_COMPILE([#include <ft2build.h>
+ #include FT_FREETYPE_H],
+ [FT_Bitmap_Size s;
+ if (sizeof s.y_ppem) return 0;
+ return 1],
+ ac_cv_member_FT_Bitmap_Size_y_ppem=yes,
+ ac_cv_member_FT_Bitmap_Size_y_ppem=no)])
+ if test "$ac_cv_member_FT_Bitmap_Size_y_ppem" = yes; then
+ HAVE_FT_BITMAP_SIZE_Y_PPEM=1
+ else
+ HAVE_FT_BITMAP_SIZE_Y_PPEM=0
+ fi
+ AC_DEFINE_UNQUOTED(HAVE_FT_BITMAP_SIZE_Y_PPEM,
+ $HAVE_FT_BITMAP_SIZE_Y_PPEM,
+ [FT_Bitmap_Size structure includes y_ppem field])
+
+ AC_CHECK_FUNCS(FT_GlyphSlot_Embolden FT_Load_Sfnt_Table FT_Select_Size)
+
+ LIBS="$_SAVE_LIBS"
+ CFLAGS="$_SAVE_CFLAGS"
+ fi
+
+ _SAVE_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $FT2_CFLAGS $XCFLAGS"
+ MOZ_CHECK_HEADERS([fontconfig/fcfreetype.h], ,
+ [AC_MSG_ERROR(Can't find header fontconfig/fcfreetype.h.)], [#include <fontconfig/fontconfig.h>])
+ CPPFLAGS="$_SAVE_CPPFLAGS"
+ else
+ AC_DEFINE(HAVE_FONTCONFIG_FCFREETYPE_H)
+ fi
+
+ PKG_CHECK_MODULES(_FONTCONFIG, fontconfig,
+ [
+ if test "$MOZ_PANGO"; then
+ MOZ_PANGO_CFLAGS="$MOZ_PANGO_CFLAGS $_FONTCONFIG_CFLAGS"
+ MOZ_PANGO_LIBS="$MOZ_PANGO_LIBS $_FONTCONFIG_LIBS"
+ else
+ FT2_CFLAGS="$FT2_CFLAGS $_FONTCONFIG_CFLAGS"
+ FT2_LIBS="$FT2_LIBS $_FONTCONFIG_LIBS"
+ fi
+ ])
+fi
+
+dnl ========================================================
+dnl Check for pixman and cairo
+dnl ========================================================
+
+MOZ_TREE_CAIRO=1
+MOZ_ARG_ENABLE_BOOL(system-cairo,
+[ --enable-system-cairo Use system cairo (located with pkgconfig)],
+MOZ_TREE_CAIRO=,
+MOZ_TREE_CAIRO=1 )
+
+MOZ_TREE_PIXMAN=1
+MOZ_ARG_ENABLE_BOOL(system-pixman,
+[ --enable-system-pixman Use system pixman (located with pkgconfig)],
+MOZ_TREE_PIXMAN=,
+MOZ_TREE_PIXMAN=force,
+MOZ_TREE_PIXMAN=1 )
+
+# System cairo depends on system pixman
+if test "$MOZ_TREE_PIXMAN" = "force"; then
+ if test -z "$MOZ_TREE_CAIRO"; then
+ AC_MSG_ERROR([--disable-system-pixman is incompatible with --enable-system-cairo.])
+ else
+ MOZ_TREE_PIXMAN=1
+ fi
+elif test -z "$MOZ_TREE_CAIRO"; then
+ MOZ_TREE_PIXMAN=
+fi
+
+if test "$MOZ_TREE_PIXMAN"; then
+ AC_DEFINE(MOZ_TREE_PIXMAN)
+ MOZ_PIXMAN_CFLAGS=""
+ MOZ_PIXMAN_LIBS='$(call EXPAND_LIBNAME_PATH,mozlibpixman,$(DEPTH)/gfx/cairo/libpixman/src)'
+else
+ PKG_CHECK_MODULES(PIXMAN, pixman-1 >= 0.19.2)
+ MOZ_PIXMAN_CFLAGS="$PIXMAN_CFLAGS"
+ MOZ_PIXMAN_LIBS="$PIXMAN_LIBS"
+fi
+AC_SUBST(MOZ_PIXMAN_CFLAGS)
+AC_SUBST(MOZ_PIXMAN_LIBS)
+
+# Check for headers defining standard int types.
+MOZ_CHECK_HEADERS(stdint.h inttypes.h sys/int_types.h)
+
+if test "$MOZ_TREE_CAIRO"; then
+ MOZ_CAIRO_CFLAGS='-I$(LIBXUL_DIST)/include/cairo'
+ AC_DEFINE(MOZ_TREE_CAIRO)
+
+ # For now we assume that we will have a uint64_t available through
+ # one of the above headers or mozstdint.h.
+ AC_DEFINE(HAVE_UINT64_T)
+
+ # Define macros for cairo-features.h
+ TEE_SURFACE_FEATURE="#define CAIRO_HAS_TEE_SURFACE 1"
+ if test "$MOZ_X11"; then
+ XLIB_SURFACE_FEATURE="#define CAIRO_HAS_XLIB_SURFACE 1"
+ XLIB_XRENDER_SURFACE_FEATURE="#define CAIRO_HAS_XLIB_XRENDER_SURFACE 1"
+ PS_SURFACE_FEATURE="#define CAIRO_HAS_PS_SURFACE 1"
+ FT_FONT_FEATURE="#define CAIRO_HAS_FT_FONT 1"
+ MOZ_ENABLE_CAIRO_FT=1
+ CAIRO_FT_CFLAGS="$FT2_CFLAGS"
+ fi
+ case "$MOZ_WIDGET_TOOLKIT" in
+ qt)
+ QT_SURFACE_FEATURE="#define CAIRO_HAS_QT_SURFACE 1"
+ ;;
+ cocoa | uikit)
+ QUARTZ_SURFACE_FEATURE="#define CAIRO_HAS_QUARTZ_SURFACE 1"
+ QUARTZ_IMAGE_SURFACE_FEATURE="#define CAIRO_HAS_QUARTZ_IMAGE_SURFACE 1"
+ QUARTZ_FONT_FEATURE="#define CAIRO_HAS_QUARTZ_FONT 1"
+ ;;
+ windows)
+ WIN32_SURFACE_FEATURE="#define CAIRO_HAS_WIN32_SURFACE 1"
+ WIN32_FONT_FEATURE="#define CAIRO_HAS_WIN32_FONT 1"
+ if test "$MOZ_WINSDK_TARGETVER" -ge "06010000"; then
+ WIN32_DWRITE_FONT_FEATURE="#define CAIRO_HAS_DWRITE_FONT 1"
+ WIN32_D2D_SURFACE_FEATURE="#define CAIRO_HAS_D2D_SURFACE 1"
+ MOZ_ENABLE_D2D_SURFACE=1
+ MOZ_ENABLE_DWRITE_FONT=1
+ else
+ WIN32_DWRITE_FONT_FEATURE=
+ WIN32_D2D_SURFACE_FEATURE=
+ fi
+
+ MOZ_CHECK_HEADER(d3d9.h, MOZ_ENABLE_D3D9_LAYER=1)
+
+ dnl D3D10 Layers depend on D2D Surfaces.
+ if test -n "$WIN32_D2D_SURFACE_FEATURE"; then
+ MOZ_CHECK_HEADER(d3d10.h, MOZ_ENABLE_D3D10_LAYER=1)
+ fi
+ ;;
+ os2)
+ OS2_SURFACE_FEATURE="#define CAIRO_HAS_OS2_SURFACE 1"
+ FT_FONT_FEATURE="#define CAIRO_HAS_FT_FONT 1"
+ MOZ_ENABLE_CAIRO_FT=1
+ CAIRO_FT_CFLAGS="-I${MZFTCFGFT2}/include"
+ CAIRO_FT_OSLIBS="-L${MZFTCFGFT2}/lib -lmozft -lmzfntcfg"
+ CAIRO_FT_LIBS=""
+ ;;
+ esac
+ if test "$USE_FC_FREETYPE"; then
+ FC_FONT_FEATURE="#define CAIRO_HAS_FC_FONT 1"
+ fi
+ AC_SUBST(MOZ_ENABLE_CAIRO_FT)
+ AC_SUBST(MOZ_ENABLE_DWRITE_FONT)
+ AC_SUBST(MOZ_ENABLE_D2D_SURFACE)
+ AC_SUBST(MOZ_ENABLE_D3D9_LAYER)
+ AC_SUBST(MOZ_ENABLE_D3D10_LAYER)
+ AC_SUBST(CAIRO_FT_CFLAGS)
+
+ AC_SUBST(PS_SURFACE_FEATURE)
+ AC_SUBST(PDF_SURFACE_FEATURE)
+ AC_SUBST(SVG_SURFACE_FEATURE)
+ AC_SUBST(XLIB_SURFACE_FEATURE)
+ AC_SUBST(XLIB_XRENDER_SURFACE_FEATURE)
+ AC_SUBST(QUARTZ_SURFACE_FEATURE)
+ AC_SUBST(QUARTZ_IMAGE_SURFACE_FEATURE)
+ AC_SUBST(WIN32_SURFACE_FEATURE)
+ AC_SUBST(OS2_SURFACE_FEATURE)
+ AC_SUBST(DIRECTFB_SURFACE_FEATURE)
+ AC_SUBST(FT_FONT_FEATURE)
+ AC_SUBST(FC_FONT_FEATURE)
+ AC_SUBST(WIN32_FONT_FEATURE)
+ AC_SUBST(WIN32_DWRITE_FONT_FEATURE)
+ AC_SUBST(WIN32_D2D_SURFACE_FEATURE)
+ AC_SUBST(QUARTZ_FONT_FEATURE)
+ AC_SUBST(PNG_FUNCTIONS_FEATURE)
+ AC_SUBST(QT_SURFACE_FEATURE)
+ AC_SUBST(TEE_SURFACE_FEATURE)
+
+ MOZ_CAIRO_LIBS='$(call EXPAND_LIBNAME_PATH,mozcairo,$(DEPTH)/gfx/cairo/cairo/src)'" $CAIRO_FT_LIBS"
+ MOZ_CAIRO_OSLIBS='${CAIRO_FT_OSLIBS}'
+
+ if test "$MOZ_X11"; then
+ MOZ_CAIRO_OSLIBS="$MOZ_CAIRO_OSLIBS $XLDFLAGS -lXrender"
+ fi
+
+ CAIRO_FEATURES_H=gfx/cairo/cairo/src/cairo-features.h
+else
+ PKG_CHECK_MODULES(CAIRO, cairo >= $CAIRO_VERSION)
+ MOZ_CAIRO_CFLAGS="$CAIRO_CFLAGS"
+ MOZ_CAIRO_LIBS="$CAIRO_LIBS"
+ PKG_CHECK_MODULES(CAIRO_TEE, cairo-tee >= $CAIRO_VERSION)
+ if test "$MOZ_X11"; then
+ PKG_CHECK_MODULES(CAIRO_XRENDER, cairo-xlib-xrender >= $CAIRO_VERSION)
+ MOZ_CAIRO_LIBS="$MOZ_CAIRO_LIBS $XLDFLAGS $CAIRO_XRENDER_LIBS"
+ MOZ_CAIRO_OSLIBS="$MOZ_CAIRO_LIBS"
+ MOZ_CAIRO_CFLAGS="$MOZ_CAIRO_CFLAGS $CAIRO_XRENDER_CFLAGS"
+ fi
+fi
+
+AC_SUBST(MOZ_TREE_CAIRO)
+AC_SUBST(MOZ_CAIRO_CFLAGS)
+AC_SUBST(MOZ_CAIRO_LIBS)
+AC_SUBST(MOZ_CAIRO_OSLIBS)
+AC_SUBST(MOZ_TREE_PIXMAN)
+
+dnl ========================================================
+dnl qcms
+dnl ========================================================
+
+QCMS_LIBS='$(DEPTH)/gfx/qcms/$(LIB_PREFIX)mozqcms.$(LIB_SUFFIX)'
+AC_SUBST(QCMS_LIBS)
+
+dnl ========================================================
+dnl HarfBuzz
+dnl ========================================================
+MOZ_HARFBUZZ_LIBS='$(DEPTH)/gfx/harfbuzz/src/$(LIB_PREFIX)mozharfbuzz.$(LIB_SUFFIX)'
+AC_SUBST(MOZ_HARFBUZZ_LIBS)
+
+dnl ========================================================
+dnl SIL Graphite
+dnl ========================================================
+MOZ_GRAPHITE_LIBS='$(DEPTH)/gfx/graphite2/src/$(LIB_PREFIX)mozgraphite2.$(LIB_SUFFIX)'
+AC_SUBST(MOZ_GRAPHITE_LIBS)
+
+dnl ========================================================
+dnl OTS
+dnl ========================================================
+MOZ_OTS_LIBS='$(DEPTH)/gfx/ots/src/$(LIB_PREFIX)mozots.$(LIB_SUFFIX)'
+AC_SUBST(MOZ_OTS_LIBS)
+
+dnl ========================================================
+dnl Skia
+dnl ========================================================
+if test "$MOZ_ENABLE_SKIA"; then
+ MOZ_SKIA_LIBS='$(DEPTH)/gfx/skia/$(LIB_PREFIX)skia.$(LIB_SUFFIX)'
+ AC_DEFINE(MOZ_ENABLE_SKIA)
+ AC_DEFINE(USE_SKIA)
+ if test "${MOZ_WIDGET_TOOLKIT}" = "android" -o x"$MOZ_WIDGET_TOOLKIT" = x"gonk"; then
+ AC_DEFINE(SK_BUILD_FOR_ANDROID_NDK)
+ elif test "$OS_ARCH" = "WINNT"; then
+ AC_DEFINE(SKIA_DLL)
+ AC_DEFINE(GR_DLL)
+ fi
+
+ if test "${CPU_ARCH}" != "ppc" -a "${CPU_ARCH}" != "ppc64"; then
+ MOZ_ENABLE_SKIA_GPU=1
+ AC_DEFINE(USE_SKIA_GPU)
+ AC_SUBST(MOZ_ENABLE_SKIA_GPU)
+ fi
+else
+ MOZ_SKIA_LIBS=
+fi
+AC_SUBST(MOZ_ENABLE_SKIA)
+AC_SUBST(MOZ_SKIA_LIBS)
+
+dnl ========================================================
+dnl disable xul
+dnl ========================================================
+MOZ_ARG_DISABLE_BOOL(xul,
+[ --disable-xul Disable XUL],
+ MOZ_XUL= )
+if test "$MOZ_XUL"; then
+ AC_DEFINE(MOZ_XUL)
+else
+ dnl remove extensions that require XUL
+ MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's/inspector//' -e 's/venkman//' -e 's/irc//' -e 's/tasks//'`
+fi
+
+AC_SUBST(MOZ_XUL)
+
+dnl ========================================================
+dnl disable profile locking
+dnl do no use this in applications that can have more than
+dnl one process accessing the profile directory.
+dnl ========================================================
+MOZ_ARG_DISABLE_BOOL(profilelocking,
+[ --disable-profilelocking
+ Disable profile locking],
+ MOZ_PROFILELOCKING=,
+ MOZ_PROFILELOCKING=1 )
+if test "$MOZ_PROFILELOCKING"; then
+ AC_DEFINE(MOZ_PROFILELOCKING)
+fi
+
+dnl ========================================================
+dnl necko configuration options
+dnl ========================================================
+
+dnl
+dnl option to disable various necko protocols
+dnl
+MOZ_ARG_ENABLE_STRING(necko-protocols,
+[ --enable-necko-protocols[={http,ftp,default,all,none}]
+ Enable/disable specific protocol handlers],
+[ for option in `echo $enableval | sed 's/,/ /g'`; do
+ if test "$option" = "yes" -o "$option" = "all"; then
+ NECKO_PROTOCOLS="$NECKO_PROTOCOLS $NECKO_PROTOCOLS_DEFAULT"
+ elif test "$option" = "no" -o "$option" = "none"; then
+ NECKO_PROTOCOLS=""
+ elif test "$option" = "default"; then
+ NECKO_PROTOCOLS="$NECKO_PROTOCOLS $NECKO_PROTOCOLS_DEFAULT"
+ elif test `echo "$option" | grep -c \^-` != 0; then
+ option=`echo $option | sed 's/^-//'`
+ NECKO_PROTOCOLS=`echo "$NECKO_PROTOCOLS" | sed "s/ ${option}//"`
+ else
+ NECKO_PROTOCOLS="$NECKO_PROTOCOLS $option"
+ fi
+done],
+ NECKO_PROTOCOLS="$NECKO_PROTOCOLS_DEFAULT")
+dnl Remove dupes
+NECKO_PROTOCOLS=`${PERL} ${srcdir}/build/unix/uniq.pl ${NECKO_PROTOCOLS}`
+AC_SUBST(NECKO_PROTOCOLS)
+for p in $NECKO_PROTOCOLS; do
+ AC_DEFINE_UNQUOTED(NECKO_PROTOCOL_$p)
+ _NON_GLOBAL_ACDEFINES="$_NON_GLOBAL_ACDEFINES NECKO_PROTOCOL_$p"
+done
+
+dnl
+dnl option to disable necko's wifi scanner
+dnl
+MOZ_ARG_DISABLE_BOOL(necko-wifi,
+[ --disable-necko-wifi Disable necko wifi scanner],
+ NECKO_WIFI=,
+ NECKO_WIFI=1)
+
+if test "$OS_ARCH" = "OS2"; then
+ dnl OS/2 implementation of Necko-WiFi support will be added in bug 506566
+ NECKO_WIFI=
+fi
+if test "$NECKO_WIFI" -a \
+ "$OS_ARCH" != "Linux" -a \
+ "$OS_ARCH" != "Darwin" -a \
+ "$OS_ARCH" != "SunOS" -a \
+ "$OS_ARCH" != "WINNT"; then
+ AC_MSG_ERROR([Necko WiFi scanning not supported on your platform, use --disable-necko-wifi])
+fi
+
+if test "$NECKO_WIFI"; then
+ AC_DEFINE(NECKO_WIFI)
+ _NON_GLOBAL_ACDEFINES="$_NON_GLOBAL_ACDEFINES NECKO_WIFI"
+fi
+AC_SUBST(NECKO_WIFI)
+
+dnl
+dnl option to disable cookies
+dnl
+MOZ_ARG_DISABLE_BOOL(cookies,
+[ --disable-cookies Disable cookie support],
+ NECKO_COOKIES=,
+ NECKO_COOKIES=1)
+AC_SUBST(NECKO_COOKIES)
+if test "$NECKO_COOKIES"; then
+ AC_DEFINE(NECKO_COOKIES)
+ _NON_GLOBAL_ACDEFINES="$_NON_GLOBAL_ACDEFINES NECKO_COOKIES"
+fi
+
+dnl
+dnl Build jsctypes on the platforms we can, unless it's explicitly disabled.
+dnl
+MOZ_ARG_DISABLE_BOOL(ctypes,
+[ --disable-ctypes Disable js-ctypes],
+ BUILD_CTYPES=,
+ BUILD_CTYPES=1)
+AC_SUBST(BUILD_CTYPES)
+if test "$BUILD_CTYPES"; then
+ AC_DEFINE(BUILD_CTYPES)
+fi
+
+dnl Build Places if required
+if test "$MOZ_PLACES"; then
+ AC_DEFINE(MOZ_PLACES)
+fi
+
+dnl Build SocialAPI if required
+if test "$MOZ_SOCIAL"; then
+ AC_DEFINE(MOZ_SOCIAL)
+fi
+
+dnl Build Common JS modules provided by services.
+AC_SUBST(MOZ_SERVICES_COMMON)
+if test -n "$MOZ_SERVICES_COMMON"; then
+ AC_DEFINE(MOZ_SERVICES_COMMON)
+fi
+
+dnl Build Services crypto component (used by Sync)
+AC_SUBST(MOZ_SERVICES_CRYPTO)
+if test -n "$MOZ_SERVICES_CRYPTO"; then
+ AC_DEFINE(MOZ_SERVICES_CRYPTO)
+fi
+
+dnl Build Firefox Health Reporter Service
+AC_SUBST(MOZ_SERVICES_HEALTHREPORT)
+if test -n "$MOZ_SERVICES_HEALTHREPORT"; then
+ AC_DEFINE(MOZ_SERVICES_HEALTHREPORT)
+fi
+
+dnl Build Services metrics component
+AC_SUBST(MOZ_SERVICES_METRICS)
+if test -n "$MOZ_SERVICES_METRICS"; then
+ AC_DEFINE(MOZ_SERVICES_METRICS)
+fi
+
+dnl Build Notifications if required
+AC_SUBST(MOZ_SERVICES_NOTIFICATIONS)
+if test -n "$MOZ_SERVICES_NOTIFICATIONS"; then
+ AC_DEFINE(MOZ_SERVICES_NOTIFICATIONS)
+fi
+
+dnl Build Sync Services if required
+AC_SUBST(MOZ_SERVICES_SYNC)
+if test -n "$MOZ_SERVICES_SYNC"; then
+ AC_DEFINE(MOZ_SERVICES_SYNC)
+fi
+
+dnl Build Captive Portal Detector if required
+AC_SUBST(MOZ_CAPTIVEDETECT)
+if test -n "$MOZ_CAPTIVEDETECT"; then
+ AC_DEFINE(MOZ_CAPTIVEDETECT)
+fi
+
+dnl Build WBMP decoder if required
+AC_SUBST(MOZ_WBMP)
+if test -n "$MOZ_WBMP"; then
+ AC_DEFINE(MOZ_WBMP)
+fi
+
+dnl ========================================================
+if test "$MOZ_DEBUG" -o "$NS_TRACE_MALLOC" -o "$MOZ_DMD"; then
+ MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS=
+fi
+
+if test "$MOZ_APP_COMPONENT_INCLUDE"; then
+ AC_DEFINE_UNQUOTED(MOZ_APP_COMPONENT_INCLUDE, "$MOZ_APP_COMPONENT_INCLUDE")
+fi
+
+if test "$MOZ_APP_COMPONENT_MODULES"; then
+ AC_DEFINE_UNQUOTED(MOZ_APP_COMPONENT_MODULES, $MOZ_APP_COMPONENT_MODULES)
+fi
+
+dnl ========================================================
+dnl =
+dnl = Maintainer debug option (no --enable equivalent)
+dnl =
+dnl ========================================================
+
+AC_SUBST(AR)
+AC_SUBST(AR_FLAGS)
+AC_SUBST(AR_LIST)
+AC_SUBST(AR_EXTRACT)
+AC_SUBST(AR_DELETE)
+AC_SUBST(AS)
+AC_SUBST(ASFLAGS)
+AC_SUBST(AS_DASH_C_FLAG)
+AC_SUBST(LD)
+AC_SUBST(RC)
+AC_SUBST(RCFLAGS)
+AC_SUBST(MC)
+AC_SUBST(WINDRES)
+AC_SUBST(IMPLIB)
+AC_SUBST(FILTER)
+AC_SUBST(BIN_FLAGS)
+AC_SUBST(MOZ_WIDGET_TOOLKIT)
+AC_SUBST(MOZ_UPDATE_XTERM)
+AC_SUBST(MOZ_PLATFORM_MAEMO)
+AC_SUBST(MOZ_AUTH_EXTENSION)
+AC_SUBST(MOZ_PERMISSIONS)
+AC_SUBST(MOZ_PREF_EXTENSIONS)
+AC_SUBST(MOZ_JS_LIBS)
+AC_SUBST(MOZ_PSM)
+AC_SUBST(MOZ_DEBUG)
+AC_SUBST(MOZ_DEBUG_SYMBOLS)
+AC_SUBST(MOZ_DEBUG_ENABLE_DEFS)
+AC_SUBST(MOZ_DEBUG_DISABLE_DEFS)
+AC_SUBST(MOZ_DEBUG_FLAGS)
+AC_SUBST(MOZ_DEBUG_LDFLAGS)
+AC_SUBST(WARNINGS_AS_ERRORS)
+AC_SUBST(MOZ_EXTENSIONS)
+AC_SUBST(MOZ_JSDEBUGGER)
+AC_SUBST(MOZ_ENABLE_PROFILER_SPS)
+AC_SUBST(MOZ_JPROF)
+AC_SUBST(MOZ_SHARK)
+AC_SUBST(MOZ_INSTRUMENTS)
+AC_SUBST(MOZ_CALLGRIND)
+AC_SUBST(MOZ_VTUNE)
+AC_SUBST(MOZ_PROFILING)
+AC_SUBST(LIBICONV)
+AC_SUBST(MOZ_PLACES)
+AC_SUBST(MOZ_SOCIAL)
+AC_SUBST(MOZ_TOOLKIT_SEARCH)
+AC_SUBST(MOZ_FEEDS)
+AC_SUBST(NS_PRINTING)
+AC_SUBST(MOZ_WEBGL)
+AC_SUBST(MOZ_HELP_VIEWER)
+AC_SUBST(TOOLCHAIN_PREFIX)
+
+AC_SUBST(JAVA)
+AC_SUBST(JAVAC)
+AC_SUBST(JAVAH)
+AC_SUBST(JAR)
+
+AC_SUBST(MOZ_PROFILELOCKING)
+
+AC_SUBST(ENABLE_TESTS)
+AC_SUBST(ENABLE_MARIONETTE)
+AC_SUBST(IBMBIDI)
+AC_SUBST(MOZ_UNIVERSALCHARDET)
+AC_SUBST(ACCESSIBILITY)
+AC_SUBST(MOZ_SPELLCHECK)
+AC_SUBST(MOZ_ANDROID_OMTC)
+AC_SUBST(MOZ_ANDROID_ANR_REPORTER)
+AC_SUBST(MOZ_ONLY_TOUCH_EVENTS)
+AC_SUBST(MOZ_CRASHREPORTER)
+AC_SUBST(MOZ_CRASHREPORTER_INJECTOR)
+AC_SUBST(MOZ_CRASHREPORTER_UPLOAD_FULL_SYMBOLS)
+AC_SUBST(MOZ_MAINTENANCE_SERVICE)
+AC_SUBST(MOZ_STUB_INSTALLER)
+AC_SUBST(MOZ_VERIFY_MAR_SIGNATURE)
+AC_SUBST(MOZ_ENABLE_SIGNMAR)
+AC_SUBST(MOZ_UPDATER)
+AC_SUBST(MOZ_ANGLE_RENDERER)
+AC_SUBST(MOZ_DIRECTX_SDK_PATH)
+AC_SUBST(MOZ_DIRECTX_SDK_CPU_SUFFIX)
+AC_SUBST(MOZ_D3DX9_VERSION)
+AC_SUBST(MOZ_D3DCOMPILER_CAB)
+AC_SUBST(MOZ_D3DCOMPILER_DLL)
+AC_SUBST(MOZ_METRO)
+
+AC_SUBST(MOZ_ANDROID_HISTORY)
+AC_SUBST(MOZ_WEBSMS_BACKEND)
+AC_SUBST(MOZ_ANDROID_WALLPAPER)
+AC_SUBST(MOZ_ANDROID_BEAM)
+AC_SUBST(ENABLE_STRIP)
+AC_SUBST(PKG_SKIP_STRIP)
+AC_SUBST(STRIP_FLAGS)
+AC_SUBST(USE_ELF_DYNSTR_GC)
+AC_SUBST(USE_ELF_HACK)
+AC_SUBST(INCREMENTAL_LINKER)
+AC_SUBST(MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS)
+AC_SUBST(MOZ_COMPONENT_NSPR_LIBS)
+
+AC_SUBST(MOZ_FIX_LINK_PATHS)
+AC_SUBST(XPCOM_LIBS)
+AC_SUBST(XPCOM_FROZEN_LDOPTS)
+AC_SUBST(XPCOM_GLUE_LDOPTS)
+AC_SUBST(XPCOM_STANDALONE_GLUE_LDOPTS)
+AC_SUBST(XPCOM_STATICRUNTIME_GLUE_LDOPTS)
+AC_SUBST(XPCOM_STANDALONE_STATICRUNTIME_GLUE_LDOPTS)
+
+AC_SUBST(USE_DEPENDENT_LIBS)
+
+AC_SUBST(MOZ_BUILD_ROOT)
+AC_SUBST(MOZ_OS2_TOOLS)
+
+AC_SUBST(MOZ_POST_DSO_LIB_COMMAND)
+AC_SUBST(MOZ_POST_PROGRAM_COMMAND)
+AC_SUBST(MOZ_LINKER_EXTRACT)
+
+dnl ========================================================
+dnl = Mac bundle name prefix
+dnl ========================================================
+MOZ_ARG_WITH_STRING(macbundlename-prefix,
+[ --with-macbundlename-prefix=prefix
+ Prefix for MOZ_MACBUNDLE_NAME],
+[ MOZ_MACBUNDLE_NAME_PREFIX="$withval"])
+
+MOZ_MACBUNDLE_NAME=`echo $MOZ_APP_DISPLAYNAME | tr -d ' '`
+if test "$MOZ_MACBUNDLE_NAME_PREFIX"; then
+ MOZ_MACBUNDLE_NAME="${MOZ_MACBUNDLE_NAME_PREFIX}${MOZ_MACBUNDLE_NAME}"
+fi
+
+if test "$MOZ_DEBUG"; then
+ MOZ_MACBUNDLE_NAME=${MOZ_MACBUNDLE_NAME}Debug.app
+else
+ MOZ_MACBUNDLE_NAME=${MOZ_MACBUNDLE_NAME}.app
+fi
+AC_SUBST(MOZ_MACBUNDLE_NAME)
+
+dnl Mac bundle identifier (based on MOZ_APP_DISPLAYNAME)
+MOZ_MACBUNDLE_ID=`echo $MOZ_APP_DISPLAYNAME | tr '[A-Z]' '[a-z]'`
+MOZ_MACBUNDLE_ID=${MOZ_DISTRIBUTION_ID}.${MOZ_MACBUNDLE_ID}
+if test "$MOZ_DEBUG"; then
+ MOZ_MACBUNDLE_ID=${MOZ_MACBUNDLE_ID}debug
+fi
+
+AC_DEFINE_UNQUOTED(MOZ_MACBUNDLE_ID,$MOZ_MACBUNDLE_ID)
+AC_SUBST(MOZ_MACBUNDLE_ID)
+
+dnl ========================================================
+dnl = Child Process Name for IPC
+dnl ========================================================
+if test "$MOZ_WIDGET_TOOLKIT" != "android"; then
+ MOZ_CHILD_PROCESS_NAME="plugin-container${BIN_SUFFIX}"
+else
+ # We want to let Android unpack the file at install time, but it only does
+ # so if the file is named libsomething.so. The lib/ path is also required
+ # because the unpacked file will be under the lib/ subdirectory and will
+ # need to be executed from that path.
+ MOZ_CHILD_PROCESS_NAME="lib/libplugin-container.so"
+fi
+MOZ_CHILD_PROCESS_BUNDLE="plugin-container.app/Contents/MacOS/"
+
+AC_SUBST(MOZ_CHILD_PROCESS_NAME)
+AC_SUBST(MOZ_CHILD_PROCESS_BUNDLE)
+
+# The following variables are available to branding and application
+# configuration ($BRANDING/configure.sh and $APPLICATION/confvars.sh):
+# - MOZ_APP_VENDOR: Used for application.ini's "Vendor" field, which also
+# impacts profile location and user-visible fields.
+# - MOZ_APP_BASENAME: Typically stays consistent for multiple branded
+# versions of a given application (e.g. Aurora and Firefox both use
+# "Firefox"), but may vary for full rebrandings (e.g. Iceweasel). Used
+# for application.ini's "Name" field, which controls profile location in
+# the absence of a "Profile" field (see below), and various system
+# integration hooks (Unix remoting, Windows MessageWindow name, etc.)
+# - MOZ_APP_DISPLAYNAME: Used in user-visible fields (DLL properties,
+# Mac Bundle name, Updater, Installer), it is typically used for nightly
+# builds (e.g. Aurora for Firefox).
+# - MOZ_APP_VERSION: Defines the application version number.
+# - MOZ_APP_NAME: Used for e.g. the binary program file name. If not set,
+# defaults to a lowercase form of MOZ_APP_BASENAME.
+# - MOZ_APP_PROFILE: When set, used for application.ini's
+# "Profile" field, which controls profile location.
+# - MOZ_APP_ID: When set, used for application.ini's "ID" field, and
+# crash reporter server url.
+# - MOZ_PROFILE_MIGRATOR: When set, enables profile migrator.
+# - MOZ_EXTENSION_MANAGER: When set, enabled extension manager.
+
+if test -z "$MOZ_APP_NAME"; then
+ MOZ_APP_NAME=`echo $MOZ_APP_BASENAME | tr A-Z a-z`
+fi
+
+# For extensions and langpacks, we require a max version that is compatible
+# across security releases. MOZ_APP_MAXVERSION is our method for doing that.
+# 24.0a1 and 24.0a2 aren't affected
+# 24.0 becomes 24.*
+# 24.1.1 becomes 24.*
+IS_ALPHA=`echo $MOZ_APP_VERSION | grep a`
+if test -z "$IS_ALPHA"; then
+ changequote(,)
+ MOZ_APP_MAXVERSION=`echo $MOZ_APP_VERSION | sed "s|\(^[0-9]*\).*|\1|"`.*
+ changequote([,])
+else
+ MOZ_APP_MAXVERSION=$MOZ_APP_VERSION
+fi
+
+MOZ_B2G_VERSION=${MOZ_B2G_VERSION:-"1.0.0"}
+AC_DEFINE_UNQUOTED(MOZ_B2G_VERSION,"$MOZ_B2G_VERSION")
+AC_DEFINE_UNQUOTED(MOZ_B2G_OS_NAME,"$MOZ_B2G_OS_NAME")
+
+AC_SUBST(MOZ_APP_NAME)
+AC_SUBST(MOZ_APP_DISPLAYNAME)
+AC_SUBST(MOZ_APP_BASENAME)
+AC_SUBST(MOZ_APP_VENDOR)
+AC_SUBST(MOZ_APP_PROFILE)
+AC_SUBST(MOZ_APP_ID)
+AC_SUBST(MAR_CHANNEL_ID)
+AC_SUBST(ACCEPTED_MAR_CHANNEL_IDS)
+AC_SUBST(MOZ_PROFILE_MIGRATOR)
+AC_SUBST(MOZ_EXTENSION_MANAGER)
+AC_DEFINE_UNQUOTED(MOZ_APP_UA_NAME, "$MOZ_APP_UA_NAME")
+AC_SUBST(MOZ_APP_UA_NAME)
+AC_DEFINE_UNQUOTED(MOZ_APP_UA_VERSION, "$MOZ_APP_VERSION")
+AC_SUBST(MOZ_APP_VERSION)
+AC_SUBST(MOZ_APP_MAXVERSION)
+AC_DEFINE_UNQUOTED(FIREFOX_VERSION,$FIREFOX_VERSION)
+AC_SUBST(FIREFOX_VERSION)
+AC_SUBST(MOZ_UA_OS_AGNOSTIC)
+if test -n "$MOZ_UA_OS_AGNOSTIC"; then
+ AC_DEFINE(MOZ_UA_OS_AGNOSTIC)
+fi
+AC_DEFINE_UNQUOTED(MOZ_UA_BUILDID, "$MOZ_UA_BUILDID")
+AC_SUBST(MOZ_UA_BUILDID)
+
+AC_SUBST(MOZ_APP_STATIC_INI)
+
+AC_SUBST(MOZ_PKG_SPECIAL)
+
+AC_SUBST(MOZILLA_OFFICIAL)
+
+AC_DEFINE_UNQUOTED(MOZ_TELEMETRY_DISPLAY_REV, 2)
+AC_SUBST(MOZ_TELEMETRY_DISPLAY_REV)
+
+if test "$MOZ_TELEMETRY_REPORTING"; then
+ AC_DEFINE(MOZ_TELEMETRY_REPORTING)
+
+ # Enable Telemetry by default for nightly and aurora channels
+ if test "$MOZ_UPDATE_CHANNEL" = "nightly" -o \
+ "$MOZ_UPDATE_CHANNEL" = "aurora"; then
+ AC_DEFINE(MOZ_TELEMETRY_ON_BY_DEFAULT)
+ fi
+fi
+
+dnl If we have any service that uploads data (and requires data submission
+dnl policy alert), set MOZ_DATA_REPORTING.
+dnl We need SUBST for build system and DEFINE for xul preprocessor.
+if test -n "$MOZ_TELEMETRY_REPORTING" || test -n "$MOZ_SERVICES_HEALTHREPORT" || test -n "$MOZ_CRASHREPORTER"; then
+ MOZ_DATA_REPORTING=1
+ AC_DEFINE(MOZ_DATA_REPORTING)
+ AC_SUBST(MOZ_DATA_REPORTING)
+fi
+
+dnl win32 options
+AC_SUBST(MOZ_MAPINFO)
+AC_SUBST(MOZ_BROWSE_INFO)
+AC_SUBST(MOZ_TOOLS_DIR)
+AC_SUBST(WIN32_REDIST_DIR)
+AC_SUBST(MAKENSISU)
+
+dnl Echo the CFLAGS to remove extra whitespace.
+CFLAGS=`echo \
+ $_WARNINGS_CFLAGS \
+ $CFLAGS`
+
+CXXFLAGS=`echo \
+ $_WARNINGS_CXXFLAGS \
+ $CXXFLAGS`
+
+COMPILE_CFLAGS=`echo \
+ $_DEFINES_CFLAGS \
+ $_DEPEND_CFLAGS \
+ $COMPILE_CFLAGS`
+
+COMPILE_CXXFLAGS=`echo \
+ $_DEFINES_CXXFLAGS \
+ $_DEPEND_CFLAGS \
+ $COMPILE_CXXFLAGS`
+
+AC_SUBST(SYSTEM_LIBXUL)
+AC_SUBST(MOZ_NATIVE_JPEG)
+AC_SUBST(MOZ_NATIVE_PNG)
+AC_SUBST(MOZ_NATIVE_BZ2)
+
+AC_SUBST(MOZ_JPEG_CFLAGS)
+AC_SUBST(MOZ_JPEG_LIBS)
+AC_SUBST(MOZ_BZ2_CFLAGS)
+AC_SUBST(MOZ_BZ2_LIBS)
+AC_SUBST(MOZ_PNG_CFLAGS)
+AC_SUBST(MOZ_PNG_LIBS)
+
+AC_SUBST(NSPR_CFLAGS)
+AC_SUBST(NSPR_LIBS)
+AC_SUBST(MOZ_NATIVE_NSPR)
+
+AC_SUBST(NSS_CFLAGS)
+AC_SUBST(NSS_LIBS)
+AC_SUBST(MOZ_NATIVE_NSS)
+AC_SUBST(NSS_DISABLE_DBM)
+
+OS_CFLAGS="$CFLAGS"
+OS_CXXFLAGS="$CXXFLAGS"
+OS_CPPFLAGS="$CPPFLAGS"
+OS_COMPILE_CFLAGS="$COMPILE_CFLAGS"
+OS_COMPILE_CXXFLAGS="$COMPILE_CXXFLAGS"
+OS_LDFLAGS="$LDFLAGS"
+OS_LIBS="$LIBS"
+AC_SUBST(OS_CFLAGS)
+AC_SUBST(OS_CXXFLAGS)
+AC_SUBST(OS_CPPFLAGS)
+AC_SUBST(OS_COMPILE_CFLAGS)
+AC_SUBST(OS_COMPILE_CXXFLAGS)
+AC_SUBST(OS_LDFLAGS)
+AC_SUBST(OS_LIBS)
+AC_SUBST(CROSS_COMPILE)
+AC_SUBST(WCHAR_CFLAGS)
+
+AC_SUBST(HOST_CC)
+AC_SUBST(HOST_CXX)
+AC_SUBST(HOST_CFLAGS)
+AC_SUBST(HOST_CXXFLAGS)
+AC_SUBST(HOST_LDFLAGS)
+AC_SUBST(HOST_OPTIMIZE_FLAGS)
+AC_SUBST(HOST_AR)
+AC_SUBST(HOST_AR_FLAGS)
+AC_SUBST(HOST_LD)
+AC_SUBST(HOST_RANLIB)
+AC_SUBST(HOST_NSPR_MDCPUCFG)
+AC_SUBST(HOST_BIN_SUFFIX)
+AC_SUBST(HOST_OS_ARCH)
+
+AC_SUBST(TARGET_CPU)
+AC_SUBST(TARGET_VENDOR)
+AC_SUBST(TARGET_OS)
+AC_SUBST(TARGET_NSPR_MDCPUCFG)
+AC_SUBST(TARGET_MD_ARCH)
+AC_SUBST(TARGET_XPCOM_ABI)
+AC_SUBST(OS_TARGET)
+AC_SUBST(OS_ARCH)
+AC_SUBST(OS_RELEASE)
+AC_SUBST(OS_TEST)
+AC_SUBST(CPU_ARCH)
+AC_SUBST(INTEL_ARCHITECTURE)
+
+AC_SUBST(MOZ_CHROME_FILE_FORMAT)
+
+AC_SUBST(WRAP_LDFLAGS)
+AC_SUBST(MKSHLIB)
+AC_SUBST(MKCSHLIB)
+AC_SUBST(MKSHLIB_FORCE_ALL)
+AC_SUBST(MKSHLIB_UNFORCE_ALL)
+AC_SUBST(DSO_CFLAGS)
+AC_SUBST(DSO_PIC_CFLAGS)
+AC_SUBST(DSO_LDOPTS)
+AC_SUBST(LIB_PREFIX)
+AC_SUBST(DLL_PREFIX)
+AC_SUBST(DLL_SUFFIX)
+AC_DEFINE_UNQUOTED(MOZ_DLL_SUFFIX, "$DLL_SUFFIX")
+AC_SUBST(LIB_SUFFIX)
+AC_SUBST(OBJ_SUFFIX)
+AC_SUBST(BIN_SUFFIX)
+AC_SUBST(ASM_SUFFIX)
+AC_SUBST(IMPORT_LIB_SUFFIX)
+AC_SUBST(USE_N32)
+AC_SUBST(CC_VERSION)
+AC_SUBST(CXX_VERSION)
+AC_SUBST(MSMANIFEST_TOOL)
+AC_SUBST(NS_ENABLE_TSF)
+AC_SUBST(MOZ_NSS_PATCH)
+AC_SUBST(MOZ_APP_COMPONENT_LIBS)
+AC_SUBST(MOZ_APP_EXTRA_LIBS)
+
+AC_SUBST(MOZ_SPEEX_RESAMPLER)
+AC_SUBST(MOZ_SOUNDTOUCH)
+AC_SUBST(MOZ_CUBEB)
+AC_SUBST(MOZ_WAVE)
+AC_SUBST(MOZ_VORBIS)
+AC_SUBST(MOZ_TREMOR)
+AC_SUBST(MOZ_OPUS)
+AC_SUBST(MOZ_WEBM)
+AC_SUBST(MOZ_DASH)
+AC_SUBST(MOZ_WMF)
+AC_SUBST(MOZ_MEDIA_PLUGINS)
+AC_SUBST(MOZ_OMX_PLUGIN)
+AC_SUBST(MOZ_VP8_ERROR_CONCEALMENT)
+AC_SUBST(MOZ_VP8_ENCODER)
+AC_SUBST(MOZ_VP8)
+AC_SUBST(MOZ_OGG)
+AC_SUBST(VPX_AS)
+AC_SUBST(VPX_ASFLAGS)
+AC_SUBST(VPX_DASH_C_FLAG)
+AC_SUBST(VPX_AS_CONVERSION)
+AC_SUBST(VPX_ASM_SUFFIX)
+AC_SUBST(VPX_X86_ASM)
+AC_SUBST(VPX_ARM_ASM)
+AC_SUBST(VPX_NEED_OBJ_INT_EXTRACT)
+AC_SUBST(MOZ_INSTRUMENT_EVENT_LOOP)
+AC_SUBST(LIBJPEG_TURBO_AS)
+AC_SUBST(LIBJPEG_TURBO_ASFLAGS)
+AC_SUBST(LIBJPEG_TURBO_X86_ASM)
+AC_SUBST(LIBJPEG_TURBO_X64_ASM)
+AC_SUBST(LIBJPEG_TURBO_ARM_ASM)
+
+AC_SUBST(MOZ_PACKAGE_JSSHELL)
+AC_SUBST(MOZ_FOLD_LIBS)
+
+AC_SUBST(MOZ_ENABLE_SZIP)
+AC_SUBST(MOZ_SZIP_FLAGS)
+
+AC_MSG_CHECKING([for posix_fallocate])
+AC_TRY_LINK([#define _XOPEN_SOURCE 600
+ #include <fcntl.h>],
+ [posix_fallocate(0, 0, 0);],
+ [ac_cv___posix_fallocate=true],
+ [ac_cv___posix_fallocate=false])
+
+if test "$ac_cv___posix_fallocate" = true ; then
+ AC_DEFINE(HAVE_POSIX_FALLOCATE)
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_RESULT(no)
+fi
+
+dnl Check for missing components
+if test "$COMPILE_ENVIRONMENT"; then
+if test "$MOZ_X11"; then
+ if test "$WITHOUT_X11"; then
+ AC_MSG_ERROR([--without-x specified and MOZ_X11 still defined])
+ fi
+ dnl ====================================================
+ dnl = Check if X headers exist
+ dnl ====================================================
+ _SAVE_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS $XCFLAGS"
+ AC_TRY_COMPILE([
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <X11/Xlib.h>
+ #include <X11/Intrinsic.h>
+ #include <X11/extensions/XShm.h>
+ ],
+ [
+ Display *dpy = 0;
+ if ((dpy = XOpenDisplay(NULL)) == NULL) {
+ fprintf(stderr, ": can't open %s\n", XDisplayName(NULL));
+ exit(1);
+ }
+ ], [],
+ [ AC_MSG_ERROR([Could not compile basic X program.]) ])
+ CFLAGS="$_SAVE_CFLAGS"
+
+ if test -n "$MISSING_X"; then
+ AC_MSG_ERROR([ Could not find the following X libraries: $MISSING_X ]);
+ fi
+
+fi # MOZ_X11
+
+dnl Check for headers, etc. needed by WebGL.
+if test "$MOZ_GL_DEFAULT_PROVIDER" = "GLX"; then
+ MOZ_CHECK_HEADER(GL/glx.h)
+ if test "$ac_cv_header_GL_glx_h" != "yes"; then
+ AC_MSG_ERROR([Can't find header GL/glx.h for WebGL (install mesa-common-dev (Ubuntu), mesa-libGL-devel (Fedora), or Mesa-devel (openSUSE))])
+ fi
+fi # MOZ_GL_DEFAULT_PROVIDER=GLX
+fi # COMPILE_ENVIRONMENT
+
+dnl Set various defines and substitutions
+dnl ========================================================
+
+if test "$OS_ARCH" = "Darwin"; then
+ AC_DEFINE(XP_UNIX)
+elif test "$OS_ARCH" != "WINNT" -a "$OS_ARCH" != "OS2"; then
+ AC_DEFINE(XP_UNIX)
+fi
+
+if test "$MOZ_DEBUG"; then
+ AC_DEFINE(MOZ_REFLOW_PERF)
+ AC_DEFINE(MOZ_REFLOW_PERF_DSP)
+fi
+
+if test "$ACCESSIBILITY" -a "$MOZ_ENABLE_GTK" ; then
+ AC_DEFINE(MOZ_ACCESSIBILITY_ATK)
+ ATK_FULL_VERSION=`$PKG_CONFIG --modversion atk`
+ ATK_MAJOR_VERSION=`echo ${ATK_FULL_VERSION} | $AWK -F\. '{ print $1 }'`
+ ATK_MINOR_VERSION=`echo ${ATK_FULL_VERSION} | $AWK -F\. '{ print $2 }'`
+ ATK_REV_VERSION=`echo ${ATK_FULL_VERSION} | $AWK -F\. '{ print $3 }'`
+ AC_DEFINE_UNQUOTED(ATK_MAJOR_VERSION, $ATK_MAJOR_VERSION)
+ AC_DEFINE_UNQUOTED(ATK_MINOR_VERSION, $ATK_MINOR_VERSION)
+ AC_DEFINE_UNQUOTED(ATK_REV_VERSION, $ATK_REV_VERSION)
+fi
+
+AC_SUBST(MOZILLA_VERSION)
+
+AC_SUBST(ac_configure_args)
+
+dnl Spit out some output
+dnl ========================================================
+
+dnl The following defines are used by xpcom
+_NON_GLOBAL_ACDEFINES="$_NON_GLOBAL_ACDEFINES
+CPP_THROW_NEW
+HAVE_CPP_2BYTE_WCHAR_T
+HAVE_CPP_AMBIGUITY_RESOLVING_USING
+HAVE_CPP_CHAR16_T
+HAVE_CPP_DYNAMIC_CAST_TO_VOID_PTR
+HAVE_CPP_PARTIAL_SPECIALIZATION
+HAVE_CPP_TROUBLE_COMPARING_TO_ZERO
+NEED_CPP_UNUSED_IMPLEMENTATIONS
+NEW_H
+HAVE_GETPAGESIZE
+HAVE_ICONV
+HAVE_ICONV_WITH_CONST_INPUT
+HAVE_MBRTOWC
+HAVE_WCRTOMB
+HAVE_STATVFS64
+HAVE_STATVFS
+HAVE_STATFS64
+HAVE_STATFS
+HAVE_SYS_STATVFS_H
+HAVE_SYS_STATFS_H
+HAVE_SYS_VFS_H
+HAVE_SYS_MOUNT_H
+"
+
+# FUTURE? Consider moving all these to moz.build files.
+AC_CONFIG_HEADER(
+netwerk/necko-config.h
+xpcom/xpcom-config.h
+xpcom/xpcom-private.h
+)
+
+AC_OUTPUT([mozilla-config.h])
+
+# Hack around an Apple bug that affects the egrep that comes with OS X 10.7.
+# "env ARCHPREFERENCE=i386,x86_64 arch egrep" first tries to use the 32-bit
+# Intel part of the egrep fat binary, even on 64-bit systems, and falls back on
+# the 64-bit part if it's not a fat binary, as can happen with MacPorts. We
+# (apparently) only need this hack when egrep's "pattern" is particularly long
+# (as in the following code) and the first egrep on our $PATH is Apple's. See
+# bug 655339.
+case "$host" in
+*-apple-darwin11*)
+ FIXED_EGREP="env ARCHPREFERENCE=i386,x86_64 arch egrep"
+ ;;
+*)
+ FIXED_EGREP="egrep"
+ ;;
+esac
+
+# Generate Makefiles for WebRTC directly from .gyp files
+if test "${OS_TARGET}" = "WINNT"; then
+ if test "$HAVE_64BIT_OS"; then
+ OS_BITS=64
+ else
+ OS_BITS=32
+ fi
+ EXTRA_GYP_DEFINES="-D MSVS_VERSION=${_MSVS_VERSION} -D MSVS_OS_BITS=${OS_BITS}"
+
+elif test "${OS_TARGET}" = "Android"; then
+ if test "${MOZ_WIDGET_TOOLKIT}" = "gonk"; then
+ EXTRA_GYP_DEFINES="-G os=linux "
+ else
+ EXTRA_GYP_DEFINES="-D gtest_target_type=executable -D android_toolchain=${android_toolchain} -G os=android "
+ fi
+fi
+
+if test -n "$ARM_ARCH"; then
+ if test "$ARM_ARCH" -lt 7; then
+ EXTRA_GYP_DEFINES="${EXTRA_GYP_DEFINES} -D armv7=0 "
+ else
+ if test "${OS_TARGET}" = "Android"; then
+ EXTRA_GYP_DEFINES="${EXTRA_GYP_DEFINES} -D armv7=1 "
+ else
+ dnl CPU detection for ARM works on Android only. armv7 always uses CPU detection, so
+ dnl we have to set armv7=0 for non-Android target
+ EXTRA_GYP_DEFINES="${EXTRA_GYP_DEFINES} -D armv7=0 "
+ fi
+ fi
+fi
+
+# Keep libcubeb and audio_device backends in sync
+if test -n "$MOZ_ALSA"; then
+ EXTRA_GYP_DEFINES="$EXTRA_GYP_DEFINES -D include_alsa_audio=1"
+else
+ EXTRA_GYP_DEFINES="$EXTRA_GYP_DEFINES -D include_alsa_audio=0"
+fi
+if test -n "$MOZ_PULSEAUDIO"; then
+ EXTRA_GYP_DEFINES="$EXTRA_GYP_DEFINES -D include_pulse_audio=1"
+else
+ EXTRA_GYP_DEFINES="$EXTRA_GYP_DEFINES -D include_pulse_audio=0"
+fi
+
+# Don't try to compile ssse3/sse4.1 code if toolchain doesn't support
+if test -z "$HAVE_TOOLCHAIN_SUPPORT_SSSE3" || test -z "$HAVE_TOOLCHAIN_SUPPORT_MSSE4_1"; then
+ EXTRA_GYP_DEFINES="$EXTRA_GYP_DEFINES -D yuv_disable_asm=1"
+fi
+
+if test -n "$MOZ_WEBRTC"; then
+ AC_MSG_RESULT("generating WebRTC Makefiles...")
+
+ if test "${MOZ_WIDGET_TOOLKIT}" = "gonk"; then
+ EXTRA_GYP_DEFINES="${EXTRA_GYP_DEFINES} -D build_with_gonk=1 -D include_internal_audio_device=0"
+ fi
+
+dnl Any --include files must also appear in -D FORCED_INCLUDE_FILE= entries
+dnl so that regeneration via dependencies works correctly
+ WEBRTC_CONFIG="-D build_with_mozilla=1 -D build_with_chromium=0 --include ${srcdir}/media/webrtc/webrtc_config.gypi -D FORCED_INCLUDE_FILE=${srcdir}/media/webrtc/webrtc_config.gypi"
+
+ if test -n HAVE_CLOCK_MONOTONIC; then
+ WEBRTC_CONFIG="${WEBRTC_CONFIG} -D have_clock_monotonic=1"
+ else
+ WEBRTC_CONFIG="${WEBRTC_CONFIG} -D have_clock_monotonic=0"
+ fi
+
+ GYP_WEBRTC_OPTIONS="--format=mozmake ${WEBRTC_CONFIG} -D target_arch=${WEBRTC_TARGET_ARCH} ${EXTRA_GYP_DEFINES} --depth=${srcdir}/media/webrtc/trunk --toplevel-dir=${srcdir} -G OBJDIR=${_objdir}"
+
+ $PYTHON ${srcdir}/media/webrtc/trunk/build/gyp_chromium \
+ $GYP_WEBRTC_OPTIONS \
+ --generator-output=${_objdir}/media/webrtc/trunk \
+ ${srcdir}/media/webrtc/trunk/peerconnection.gyp
+ if test "$?" != 0; then
+ AC_MSG_ERROR([failed to generate WebRTC Makefiles])
+ fi
+
+ # XXX disable until we land the tranche with signaling
+ if test -n "$MOZ_WEBRTC_SIGNALING"; then
+ AC_MSG_RESULT("generating WebRTC/Signaling Makefiles...")
+ $PYTHON ${srcdir}/media/webrtc/trunk/build/gyp_chromium \
+ $GYP_WEBRTC_OPTIONS \
+ -D build_for_test=0 \
+ --generator-output=${_objdir}/media/webrtc/signaling \
+ ${srcdir}/media/webrtc/signaling/signaling.gyp
+ if test "$?" != 0; then
+ AC_MSG_ERROR([failed to generate WebRTC/Signaling Makefiles])
+ fi
+
+ AC_MSG_RESULT("generating WebRTC/SignalingTest Makefiles...")
+ $PYTHON ${srcdir}/media/webrtc/trunk/build/gyp_chromium --format=mozmake \
+ $GYP_WEBRTC_OPTIONS \
+ -D build_for_test=1 \
+ --generator-output=${_objdir}/media/webrtc/signalingtest \
+ ${srcdir}/media/webrtc/signaling/signaling.gyp
+ if test "$?" != 0; then
+ AC_MSG_ERROR([failed to generate WebRTC/SignalingTest Makefiles])
+ fi
+ fi
+
+ AC_MSG_RESULT("generating gtest Makefiles...")
+ # Ok to pass some extra -D's that are ignored here
+ $PYTHON ${srcdir}/media/webrtc/trunk/build/gyp_chromium \
+ $GYP_WEBRTC_OPTIONS \
+ --generator-output=${_objdir}/media/webrtc/trunk/testing/ \
+ ${srcdir}/media/webrtc/trunk/testing/gtest.gyp
+ if test "$?" != 0; then
+ AC_MSG_ERROR([failed to generate gtest Makefiles])
+ fi
+
+ AC_MSG_RESULT("generating nrappkit Makefiles...")
+ $PYTHON ${srcdir}/media/webrtc/trunk/build/gyp_chromium --format=mozmake \
+ $GYP_WEBRTC_OPTIONS \
+ --generator-output=${_objdir}/media/mtransport/third_party/nrappkit \
+ ${srcdir}/media/mtransport/third_party/nrappkit/nrappkit.gyp
+ if test "$?" != 0; then
+ AC_MSG_ERROR([failed to generate nrappkit Makefiles])
+ fi
+
+ AC_MSG_RESULT("generating nICEr Makefiles...")
+ $PYTHON ${srcdir}/media/webrtc/trunk/build/gyp_chromium --format=mozmake \
+ $GYP_WEBRTC_OPTIONS \
+ --generator-output=${_objdir}/media/mtransport/third_party/nICEr \
+ ${srcdir}/media/mtransport/third_party/nICEr/nicer.gyp
+ if test "$?" != 0; then
+ AC_MSG_ERROR([failed to generate nICEr Makefiles])
+ fi
+fi
+
+# Generate a JSON config file for unittest harnesses etc to read
+# build configuration details from in a standardized way.
+OS_TARGET=${OS_TARGET} \
+TARGET_CPU=${TARGET_CPU} \
+MOZ_DEBUG=${MOZ_DEBUG} \
+MOZ_WIDGET_TOOLKIT=${MOZ_WIDGET_TOOLKIT} \
+UNIVERSAL_BINARY=${UNIVERSAL_BINARY} \
+MOZ_CRASHREPORTER=${MOZ_CRASHREPORTER} \
+MOZ_APP_NAME=${MOZ_APP_NAME} \
+TOPSRCDIR=${_topsrcdir} \
+MOZ_ASAN=${MOZ_ASAN} \
+ $PYTHON ${_topsrcdir}/config/writemozinfo.py ./mozinfo.json.tmp
+if cmp -s ./mozinfo.json.tmp ./mozinfo.json; then
+ rm ./mozinfo.json.tmp
+else
+ mv -f ./mozinfo.json.tmp ./mozinfo.json
+fi
+
+# Run jemalloc configure script
+
+if test -z "$MOZ_NATIVE_JEMALLOC" -a "$MOZ_MEMORY" && test -n "$MOZ_JEMALLOC3" -o -n "$MOZ_REPLACE_MALLOC"; then
+ ac_configure_args="$_SUBDIR_CONFIG_ARGS --build=$build --host=$target --enable-stats --with-jemalloc-prefix=je_"
+ if test -n "$MOZ_REPLACE_MALLOC"; then
+ # When using replace_malloc, we always want memalign and valloc exported from jemalloc.
+ ac_configure_args="$ac_configure_args ac_cv_func_memalign=yes"
+ ac_configure_args="$ac_configure_args ac_cv_func_valloc=yes"
+ fi
+ if test -n "$MOZ_JEMALLOC3"; then
+ case "${OS_ARCH}" in
+ WINNT|Darwin)
+ # We want jemalloc functions to be kept hidden on both Mac and Windows
+ # See memory/build/mozmemory_wrap.h for details.
+ ac_configure_args="$ac_configure_args --without-export"
+ ;;
+ esac
+ elif test "${OS_ARCH}" = Darwin; then
+ # When building as a replace-malloc lib, disabling the zone allocator
+ # forces to use pthread_atfork.
+ ac_configure_args="$ac_configure_args --disable-zone-allocator"
+ fi
+ _MANGLE="malloc posix_memalign aligned_alloc calloc realloc free memalign valloc malloc_usable_size"
+ JEMALLOC_WRAPPER=
+ if test -z "$MOZ_REPLACE_MALLOC"; then
+ case "$OS_ARCH" in
+ Linux|DragonFly|FreeBSD|NetBSD|OpenBSD)
+ MANGLE=$_MANGLE
+ ;;
+ esac
+ elif test -z "$MOZ_JEMALLOC3"; then
+ MANGLE=$_MANGLE
+ JEMALLOC_WRAPPER=replace_
+ fi
+ if test -n "$MANGLE"; then
+ MANGLED=
+ if test -n "$_WRAP_MALLOC" -a -z "$JEMALLOC_WRAPPER"; then
+ JEMALLOC_WRAPPER=__wrap_
+ fi
+ for mangle in ${MANGLE}; do
+ if test -n "$MANGLED"; then
+ MANGLED="$mangle:$JEMALLOC_WRAPPER$mangle,$MANGLED"
+ else
+ MANGLED="$mangle:$JEMALLOC_WRAPPER$mangle"
+ fi
+ done
+ ac_configure_args="$ac_configure_args --with-mangling=$MANGLED"
+ fi
+ unset CONFIG_FILES
+ if test -z "$MOZ_TLS"; then
+ ac_configure_args="$ac_configure_args --disable-tls"
+ fi
+ EXTRA_CFLAGS="$CFLAGS"
+ for var in AS CC CXX CPP LD AR RANLIB STRIP CPPFLAGS EXTRA_CFLAGS LDFLAGS; do
+ ac_configure_args="$ac_configure_args $var='`eval echo \\${${var}}`'"
+ done
+ if test "$CROSS_COMPILE"; then
+ ac_configure_args="$ac_configure_args je_cv_static_page_shift=12"
+ fi
+ _save_cache_file="$cache_file"
+ cache_file=$_objdir/memory/jemalloc/src/config.cache
+
+ if ! test -e memory/jemalloc; then
+ mkdir -p memory/jemalloc
+ fi
+
+ AC_OUTPUT_SUBDIRS(memory/jemalloc/src)
+ cache_file="$_save_cache_file"
+ ac_configure_args="$_SUBDIR_CONFIG_ARGS"
+fi
+
+# Run freetype configure script
+
+if test "$MOZ_TREE_FREETYPE"; then
+ export CFLAGS="$CFLAGS $MOZ_DEBUG_FLAGS -std=c99"
+ export CPPFLAGS="$CPPFLAGS $MOZ_DEBUG_FLAGS"
+ export CXXFLAGS="$CXXFLAGS $MOZ_DEBUG_FLAGS"
+ export LDFLAGS="$LDFLAGS $MOZ_DEBUG_LDFLAGS"
+ export CONFIG_FILES="unix-cc.mk:unix-cc.in unix-def.mk:unix-def.in freetype-config freetype2.pc:freetype2.in"
+ ac_configure_args="$ac_configure_args --host=$target --disable-shared --with-pic=yes"
+
+ if ! test -e modules; then
+ mkdir modules
+ fi
+
+ AC_OUTPUT_SUBDIRS(modules/freetype2)
+fi
+
+if test -z "$direct_nspr_config"; then
+ dnl ========================================================
+ dnl = Setup a nice relatively clean build environment for
+ dnl = sub-configures.
+ dnl ========================================================
+ CC="$_SUBDIR_CC"
+ CXX="$_SUBDIR_CXX"
+ CFLAGS="$_SUBDIR_CFLAGS"
+ CPPFLAGS="$_SUBDIR_CPPFLAGS"
+ CXXFLAGS="$_SUBDIR_CXXFLAGS"
+ LDFLAGS="$_SUBDIR_LDFLAGS"
+ HOST_CC="$_SUBDIR_HOST_CC"
+ HOST_CFLAGS="$_SUBDIR_HOST_CFLAGS"
+ HOST_LDFLAGS="$_SUBDIR_HOST_LDFLAGS"
+ RC=
+fi
+
+unset MAKEFILES
+unset CONFIG_FILES
+
+# Run all configure scripts specified by a subconfigure
+if test -n "$_subconfigure_subdir"; then
+ _save_ac_configure_args="$ac_configure_args"
+ ac_configure_args="$_subconfigure_config_args"
+ AC_OUTPUT_SUBDIRS("$_subconfigure_subdir")
+ ac_configure_args="$_save_ac_configure_args"
+fi
+
+# No need to run subconfigures when building with LIBXUL_SDK_DIR
+if test "$COMPILE_ENVIRONMENT" -a -z "$LIBXUL_SDK_DIR"; then
+
+export WRAP_LDFLAGS
+
+if test -n "$_WRAP_MALLOC"; then
+ # Avoid doubling wrap malloc arguments
+ _SUBDIR_CONFIG_ARGS="`echo $_SUBDIR_CONFIG_ARGS | sed -e 's/--enable-wrap-malloc *//'`"
+fi
+
+if test -z "$MOZ_NATIVE_NSPR"; then
+ ac_configure_args="$_SUBDIR_CONFIG_ARGS --with-dist-prefix=$MOZ_BUILD_ROOT/dist --with-mozilla"
+ if test -z "$MOZ_DEBUG"; then
+ ac_configure_args="$ac_configure_args --disable-debug"
+ else
+ ac_configure_args="$ac_configure_args --enable-debug"
+ fi
+ if test "$MOZ_OPTIMIZE" = "1"; then
+ ac_configure_args="$ac_configure_args --enable-optimize"
+ elif test -z "$MOZ_OPTIMIZE"; then
+ ac_configure_args="$ac_configure_args --disable-optimize"
+ fi
+ if test -n "$HAVE_64BIT_OS"; then
+ ac_configure_args="$ac_configure_args --enable-64bit"
+ fi
+ if test -n "$USE_ARM_KUSER"; then
+ ac_configure_args="$ac_configure_args --with-arm-kuser"
+ fi
+ ac_configure_args="$ac_configure_args $NSPR_CONFIGURE_ARGS"
+
+ # Save these, so we can mess with them for the subconfigure ..
+ _SAVE_CFLAGS="$CFLAGS"
+ _SAVE_CPPFLAGS="$CPPFLAGS"
+ _SAVE_LDFLAGS="$LDFLAGS"
+
+ if test -n "$MOZ_LINKER" -a "$ac_cv_func_dladdr" = no ; then
+ # dladdr is supported by the new linker, even when the system linker doesn't
+ # support it. Trick nspr into using dladdr when it's not supported.
+ export CPPFLAGS="-include $_topsrcdir/mozglue/linker/dladdr.h $CPPFLAGS"
+ fi
+ export LDFLAGS="$LDFLAGS $NSPR_LDFLAGS"
+ export CFLAGS="$CFLAGS $MOZ_FRAMEPTR_FLAGS"
+
+ AC_OUTPUT_SUBDIRS(nsprpub)
+
+ # .. and restore them
+ unset CFLAGS
+ unset CPPFLAGS
+ unset LDFLAGS
+ CFLAGS="$_SAVE_CFLAGS"
+ CPPFLAGS="$_SAVE_CPPFLAGS"
+ LDFLAGS="$_SAVE_LDFLAGS"
+
+ ac_configure_args="$_SUBDIR_CONFIG_ARGS"
+fi
+
+dnl ========================================================
+dnl = Setup a nice relatively clean build environment for
+dnl = sub-configures.
+dnl ========================================================
+CC="$_SUBDIR_CC"
+CXX="$_SUBDIR_CXX"
+CFLAGS="$_SUBDIR_CFLAGS"
+CPPFLAGS="$_SUBDIR_CPPFLAGS"
+CXXFLAGS="$_SUBDIR_CXXFLAGS"
+LDFLAGS="$_SUBDIR_LDFLAGS"
+HOST_CC="$_SUBDIR_HOST_CC"
+HOST_CFLAGS="$_SUBDIR_HOST_CFLAGS"
+HOST_LDFLAGS="$_SUBDIR_HOST_LDFLAGS"
+RC=
+
+if test -n "$ENABLE_CLANG_PLUGIN"; then
+ ac_configure_args="$_SUBDIR_CONFIG_ARGS"
+ AC_OUTPUT_SUBDIRS(build/clang-plugin)
+fi
+
+
+# Run the SpiderMonkey 'configure' script.
+dist=$MOZ_BUILD_ROOT/dist
+ac_configure_args="$_SUBDIR_CONFIG_ARGS"
+ac_configure_args="$ac_configure_args --enable-threadsafe"
+if test "$BUILD_CTYPES"; then
+ # Build js-ctypes on the platforms we can.
+ ac_configure_args="$ac_configure_args --enable-ctypes"
+fi
+if test -z "$JS_SHARED_LIBRARY" ; then
+ ac_configure_args="$ac_configure_args --disable-shared-js"
+fi
+if test -z "$MOZ_NATIVE_NSPR"; then
+ ac_configure_args="$ac_configure_args --with-nspr-cflags='$NSPR_CFLAGS'"
+ ac_configure_args="$ac_configure_args --with-nspr-libs='$NSPR_LIBS'"
+fi
+ac_configure_args="$ac_configure_args --with-dist-dir=../../dist"
+ac_configure_args="$ac_configure_args --prefix=$dist"
+if test "$MOZ_MEMORY"; then
+ ac_configure_args="$ac_configure_args --enable-jemalloc"
+fi
+if test -n "$MOZ_GLUE_LDFLAGS"; then
+ export MOZ_GLUE_LDFLAGS
+fi
+if test -n "$MOZ_GLUE_PROGRAM_LDFLAGS"; then
+ export MOZ_GLUE_PROGRAM_LDFLAGS
+fi
+if test "$MOZ_NATIVE_ZLIB" != 1 -a "$OS_ARCH" = "WINNT"; then
+ MOZ_ZLIB_LIBS=
+fi
+export MOZ_NATIVE_ZLIB
+export MOZ_ZLIB_CFLAGS
+export MOZ_ZLIB_LIBS
+export MOZ_APP_NAME
+export DONT_POPULATE_VIRTUALENV=1
+export PYTHON
+export MOZILLA_CENTRAL_PATH=$_topsrcdir
+export STLPORT_CPPFLAGS
+export STLPORT_LDFLAGS
+export STLPORT_LIBS
+export JS_STANDALONE=no
+
+if ! test -e js; then
+ mkdir js
+fi
+
+AC_OUTPUT_SUBDIRS(js/src)
+ac_configure_args="$_SUBDIR_CONFIG_ARGS"
+
+fi # COMPILE_ENVIRONMENT && !LIBXUL_SDK_DIR