diff options
author | Matt A. Tobin <email@mattatobin.com> | 2022-02-12 13:53:59 -0600 |
---|---|---|
committer | Matt A. Tobin <email@mattatobin.com> | 2022-02-12 13:53:59 -0600 |
commit | c054e324210895e7e2c5b3e84437cba43f201ec8 (patch) | |
tree | 00735055ed5ee588f71e147c5ae27363349f1687 /configure.in | |
parent | 5da550a67c876bf06690439192db5bef2c54cb20 (diff) | |
download | palemoon-gre-c054e324210895e7e2c5b3e84437cba43f201ec8.tar.gz |
Prep for GRE
Diffstat (limited to 'configure.in')
-rw-r--r-- | configure.in | 8938 |
1 files changed, 0 insertions, 8938 deletions
diff --git a/configure.in b/configure.in deleted file mode 100644 index 3073c0189..000000000 --- a/configure.in +++ /dev/null @@ -1,8938 +0,0 @@ -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 in-tree -dnl ======================================================== -MOZJPEG=62 -MOZPNG=10616 -MOZWEBP=043 -NSPR_VERSION=4 -NSPR_MINVER=4.15.0 -NSS_VERSION=3 - -dnl Set the minimum version of toolkit libs used by mozilla -dnl ======================================================== -GLIB_VERSION=2.22 -# 2_26 is the earliest version we can set GLIB_VERSION_MIN_REQUIRED. -# The macro won't be used when compiling with earlier versions anyway. -GLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26 -GIO_VERSION=2.22 -PERL_VERSION=5.006 -CAIRO_VERSION=1.10 -PANGO_VERSION=1.22.0 -GTK2_VERSION=2.18.0 -GTK3_VERSION=3.4.0 -WINDRES_VERSION=2.14.90 -W32API_VERSION=3.14 -GNOMEUI_VERSION=2.2.0 -GCONF_VERSION=1.2.1 -STARTUP_NOTIFICATION_VERSION=0.8 -DBUS_VERSION=0.60 -SQLITE_VERSION=3.21.0 - -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 objdir == srcdir builds. -dnl ============================================================== -_topsrcdir=`cd \`dirname $0\`; pwd` -_objdir=`pwd` - - -dnl TODO Don't exempt L10N builds once bug 842760 is resolved. -if test "$_topsrcdir" = "$_objdir" -a "${with_l10n_base+set}" != set; then - echo " ***" - echo " * Building directly in the main source directory is not allowed." - echo " *" - echo " * To build, you must run configure from a separate directory" - echo " * (referred to as an object directory)." - echo " *" - echo " * If you are building with a mozconfig, you will need to change your" - echo " * mozconfig to point to a different object directory." - echo " ***" - exit 1 -fi - -# 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 -MOZ_BUILD_ROOT=`pwd -W 2>/dev/null || 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 - -if test -n "$GAIADIR" -a ! -d "$GAIADIR" ; then - AC_MSG_ERROR([GAIADIR '$GAIADIR' isn't a valid directory]) -fi - -AC_SUBST(GAIADIR) -if test -n "$GAIADIR" ; then - AC_DEFINE(PACKAGE_GAIA) -fi - -if test -n "$FXOS_SIMULATOR" -a -z "$GAIADIR" ; then - AC_MSG_ERROR([FXOS_SIMULATOR=1 requires GAIADIR to be defined]) -fi - -if test -n "$FXOS_SIMULATOR" ; then - AC_DEFINE(FXOS_SIMULATOR) - AC_SUBST(FXOS_SIMULATOR) -fi - -if test -n "$MOZTTDIR" -a ! -d "$MOZTTDIR" ; then - AC_MSG_ERROR([MOZTTDIR '$MOZTTDIR' isn't a valid directory]) -fi - -AC_SUBST(MOZTTDIR) -if test -n "$MOZTTDIR" ; then - AC_DEFINE(PACKAGE_MOZTT) -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 - - if ! test -e "$gonkdir/ndk/sources/cxx-stl/stlport/src/iostream.cpp"; then - AC_MSG_ERROR([Couldn't find path to stlport sources in the gonk tree]) - fi - STLPORT_CPPFLAGS="-I$_topsrcdir/build/stlport/stlport -I$gonkdir/ndk/sources/cxx-stl/system/include" - - 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/ -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_BT_BLUEZ=1 - MOZ_NFC=1 - MOZ_B2G_CAMERA=1 - MOZ_OMX_DECODER=1 - AC_SUBST(MOZ_OMX_DECODER) - MOZ_RTSP=1 - MOZ_FMP4=1 - MOZ_SECUREELEMENT=1 - ;; - 17|18) - GONK_INCLUDES="-I$gonkdir/frameworks/native/include -I$gonkdir/frameworks/av/include -I$gonkdir/frameworks/av/include/media -I$gonkdir/frameworks/av/include/camera -I$gonkdir/frameworks/native/include/media/openmax -I$gonkdir/frameworks/av/media/libstagefright/include" - if test -d "$gonkdir/external/bluetooth/bluez"; then - GONK_INCLUDES="$GONK_INCLUDES -I$gonkdir/external/dbus -I$gonkdir/external/bluetooth/bluez/lib" - MOZ_B2G_BT=1 - MOZ_B2G_BT_BLUEZ=1 - elif test -d "$gonkdir/external/bluetooth/bluedroid"; then - MOZ_B2G_BT=1 - MOZ_B2G_BT_BLUEDROID=1 - if test -d "$gonkdir/system/bluetoothd"; then - MOZ_B2G_BT_DAEMON=1 - fi - fi - - MOZ_RTSP=1 - MOZ_NFC=1 - MOZ_B2G_CAMERA=1 - MOZ_OMX_DECODER=1 - AC_SUBST(MOZ_OMX_DECODER) - MOZ_OMX_ENCODER=1 - AC_SUBST(MOZ_OMX_ENCODER) - AC_DEFINE(MOZ_OMX_ENCODER) - MOZ_FMP4=1 - MOZ_SECUREELEMENT=1 - ;; - 19) - GONK_INCLUDES="-I$gonkdir/frameworks/native/include -I$gonkdir/frameworks/av/include -I$gonkdir/frameworks/av/include/media -I$gonkdir/frameworks/av/include/camera -I$gonkdir/frameworks/native/include/media/openmax -I$gonkdir/frameworks/av/media/libstagefright/include" - MOZ_B2G_CAMERA=1 - MOZ_B2G_BT=1 - MOZ_B2G_BT_BLUEDROID=1 - if test -d "$gonkdir/system/bluetoothd"; then - MOZ_B2G_BT_DAEMON=1 - fi - MOZ_NFC=1 - MOZ_RTSP=1 - MOZ_OMX_DECODER=1 - MOZ_OMX_ENCODER=1 - AC_DEFINE(MOZ_OMX_ENCODER) - MOZ_AUDIO_OFFLOAD=1 - MOZ_SECUREELEMENT=1 - AC_SUBST(MOZ_AUDIO_OFFLOAD) - AC_DEFINE(MOZ_AUDIO_OFFLOAD) - MOZ_FMP4=1 - ;; - 21) - GONK_INCLUDES="-I$gonkdir/frameworks/native/include -I$gonkdir/frameworks/av/include -I$gonkdir/frameworks/av/include/media -I$gonkdir/frameworks/av/include/camera -I$gonkdir/frameworks/native/include/media/openmax -I$gonkdir/frameworks/av/media/libstagefright/include" - MOZ_AUDIO_OFFLOAD=1 - MOZ_OMX_DECODER=1 - AC_SUBST(MOZ_AUDIO_OFFLOAD) - AC_DEFINE(MOZ_AUDIO_OFFLOAD) - MOZ_FMP4= - MOZ_B2G_CAMERA=1 - MOZ_B2G_BT=1 - MOZ_B2G_BT_BLUEDROID=1 - if test -d "$gonkdir/system/bluetoothd"; then - MOZ_B2G_BT_DAEMON=1 - fi - MOZ_NFC=1 - ;; - *) - AC_MSG_ERROR([Unsupported platform version: $ANDROID_VERSION]) - ;; - esac - CPPFLAGS="-DANDROID $TARGET_C_INCLUDES -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" - - 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) - 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 AR_FLAGS set here so HOST_AR_FLAGS can be set correctly (see bug 538269) -AR_FLAGS='crs $@' - -if test "$COMPILE_ENVIRONMENT"; then - -if test "$target" != "$host"; then - MOZ_CROSS_COMPILER -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, :) - AC_CHECK_PROGS(OTOOL, otool, :) - 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 - -MOZ_CHECK_COMPILER_WRAPPER - -dnl ======================================================== -dnl Special win32 checks -dnl ======================================================== - -# Target the Windows 8.1 SDK by default -WINSDK_TARGETVER=603 -WINVER=600 - -MOZ_ARG_WITH_STRING(windows-version, -[ --with-windows-version=WINSDK_TARGETVER - Windows SDK version to target. Win8.1 (603) is - currently the minimum supported version.], - WINSDK_TARGETVER=$withval) - -# Currently only version 603 is allowed -case "$WINSDK_TARGETVER" in -603) - 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"; 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_MAJOR_VERSION=`echo ${MSVC_VERSION_FULL} | cut -c 1-2` - _CC_MINOR_VERSION=`echo ${MSVC_VERSION_FULL} | cut -c 3-4` - _CC_BUILD_VERSION=`echo ${MSVC_VERSION_FULL} | cut -c 5-` - _MSC_VER=${CC_VERSION} - - _CXX_MAJOR_VERSION=`echo ${CXX_VERSION} | cut -c 1-2` - - if test "$_CC_MAJOR_VERSION" != "$_CXX_MAJOR_VERSION"; then - AC_MSG_ERROR([The major versions of \$CC and \$CXX do not match.]) - fi - - AC_DEFINE(_CRT_SECURE_NO_WARNINGS) - AC_DEFINE(_CRT_NONSTDC_NO_WARNINGS) - - if test "$_CC_MAJOR_VERSION" = "18" -a "$_CC_BUILD_VERSION" -ge "30723"; then - _CC_SUITE=12 - MSVS_VERSION=2013 - MSVC_REDIST_CRT_DIR=Microsoft.VC120.CRT - MSVC_C_RUNTIME_DLL=msvcr120.dll - MSVC_CXX_RUNTIME_DLL=msvcp120.dll - MSVC_REDIST_OPENMP_DIR=Microsoft.VC120.OPENMP - MSVC_OPENMP_DLL=vcomp120.dll - elif test "$_CC_MAJOR_VERSION" = "19"; then - _CC_SUITE=14 - MSVS_VERSION=2015 - MSVC_C_RUNTIME_DLL=vcruntime140.dll - MSVC_CXX_RUNTIME_DLL=msvcp140.dll - MSVC_APPCRT_DLL=appcrt140.dll - MSVC_DESKTOPCRT_DLL=desktopcrt140.dll - - # -Wv:18 disables all warnings introduced after VS2013 - # See http://blogs.msdn.com/b/vcblog/archive/2014/11/12/improvements-to-warnings-in-the-c-compiler.aspx - CFLAGS="$CFLAGS -Wv:18" - CXXFLAGS="$CXXFLAGS -Wv:18" - - # https://connect.microsoft.com/VisualStudio/feedback/details/888527/warnings-on-dbghelp-h - # for dbghelp.h, imagehlp.h, and shobj.h - # C4091: 'typedef ': ignored on left of '' when no variable is declared - CFLAGS="$CFLAGS -wd4091" - CXXFLAGS="$CXXFLAGS -wd4091" - else - AC_MSG_ERROR([This version (${_CC_MAJOR_VERSION}.${_CC_MINOR_VERSION}.${_CC_BUILD_VERSION}) of the MSVC compiler is unsupported. -You must install Visual C++ 2013 Update 3 or newer in order to build. -See https://developer.mozilla.org/en/Windows_Build_Prerequisites.]) - fi - AC_SUBST(MSVS_VERSION) - AC_SUBST(MSVC_REDIST_CRT_DIR) - AC_SUBST(MSVC_C_RUNTIME_DLL) - AC_SUBST(MSVC_CXX_RUNTIME_DLL) - AC_SUBST(MSVC_REDIST_OPENMP_DIR) - AC_SUBST(MSVC_OPENMP_DLL) - AC_SUBST(MSVC_APPCRT_DLL) - AC_SUBST(MSVC_DESKTOPCRT_DLL) - - # Disable SEH on clang-cl because it doesn't implement them yet. - if test -z "$CLANG_CL"; then - AC_DEFINE(HAVE_SEH_EXCEPTIONS) - else - # Send our CFLAGS to NSS - MOZ_CFLAGS_NSS=1 - AC_DEFINE_UNQUOTED(GTEST_HAS_SEH, 0) - fi - - 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 - - if test -f "$WIN32_REDIST_DIR/$MSVC_C_RUNTIME_DLL"; then - AC_MSG_ERROR([The Win32 Redist directory must be set to the directory above Microsoft.VCXX0.CRT]) - fi - WIN32_REDIST_DIR=`cd "$WIN32_REDIST_DIR" && pwd` - fi - - dnl Ensure that mt.exe is 'Microsoft (R) Manifest Tool', - dnl not something else like "magnetic tape manipulation utility". - MSMT_TOOL=`${MT-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 - - # Set midl environment - case "$target" in - i*86-*) - MIDL_FLAGS="${MIDL_FLAGS} -env win32" - ;; - x86_64-*) - MIDL_FLAGS="${MIDL_FLAGS} -env x64" - ;; - 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([Goanna 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='-I$(DIST)/stl_wrappers' - fi - CFLAGS="$CFLAGS -D_HAS_EXCEPTIONS=0" - CXXFLAGS="$CXXFLAGS -D_HAS_EXCEPTIONS=0" - - MOZ_FIND_WINSDK_VERSION - else - # 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 - - # strsafe.h on mingw uses macros for function deprecation that pollutes namespace - # causing problems with local implementations with the same name. - AC_DEFINE(STRSAFE_NO_DEPRECATE) - - MOZ_WINSDK_MAXVER=0x06030000 - fi # !GNU_CC - - 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 - -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 - -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 - -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= -MOZ_ARG_WITH_STRING(macos-sdk, -[ --with-macos-sdk=dir Location of platform SDK to use (Mac OS X only)], - MACOS_SDK_DIR=$withval) - -MACOS_PRIVATE_FRAMEWORKS_DIR_DEFAULTED= -MOZ_ARG_WITH_STRING(macos-private-frameworks, -[ --with-macos-private-frameworks=dir Location of private frameworks to use (Mac OS X only)], - MACOS_PRIVATE_FRAMEWORKS_DIR=$withval, - MACOS_PRIVATE_FRAMEWORKS_DIR=/System/Library/PrivateFrameworks - MACOS_PRIVATE_FRAMEWORKS_DEFAULTED=1) - -if test -z "${MACOS_PRIVATE_FRAMEWORKS_DEFAULTED}"; then - if test -z "$CROSS_COMPILE"; then - AC_MSG_WARN([You should only be using --with-macos-private-frameworks when cross-compiling.]) - fi - if test ! -d "$MACOS_PRIVATE_FRAMEWORKS_DIR"; then - AC_MSG_ERROR([PrivateFrameworks directory not found.]) - fi -fi - -dnl MACOS_SDK_DIR will be set to the SDK location whenever one is in use. -AC_SUBST(MACOS_SDK_DIR) -AC_SUBST(MACOS_PRIVATE_FRAMEWORKS_DIR) - -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 - -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_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin -Wl,-rpath-link,$(prefix)/lib' - -MOZ_FS_LAYOUT=unix - -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 ;; - dragonfly*) OS_ARCH=DragonFly OS_TARGET=DragonFly ;; - freebsd*) OS_ARCH=FreeBSD OS_TARGET=FreeBSD ;; - netbsd*) OS_ARCH=NetBSD OS_TARGET=NetBSD ;; - openbsd*) OS_ARCH=OpenBSD OS_TARGET=OpenBSD ;; - 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 - ;; -kfreebsd*-gnu) - HOST_OS_ARCH=GNU_kFreeBSD - ;; -gnu*) - HOST_OS_ARCH=GNU - ;; -dragonfly*) - HOST_OS_ARCH=DragonFly - ;; -freebsd*) - HOST_OS_ARCH=FreeBSD - ;; -netbsd*) - HOST_OS_ARCH=NetBSD - ;; -openbsd*) - HOST_OS_ARCH=OpenBSD - ;; -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) - ;; -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} - ;; -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 | powerpc64le | ppc64le) - 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" - ;; - -aarch64*) - CPU_ARCH=aarch64 - ;; -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}${CLANG_CL}"; then - _WARNINGS_CFLAGS="-Qunused-arguments ${_WARNINGS_CFLAGS}" - CPPFLAGS="-Qunused-arguments ${CPPFLAGS}" -fi -if test -n "${CLANG_CXX}${CLANG_CL}"; 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 - if test -n "$CLANG_CL"; then - # Look for clang_rt.asan_dynamic-i386.dll - MOZ_CLANG_RT_ASAN_LIB=clang_rt.asan_dynamic-i386.dll - # We use MOZ_PATH_PROG in order to get a Windows style path. - MOZ_PATH_PROG(MOZ_CLANG_RT_ASAN_LIB_PATH, $MOZ_CLANG_RT_ASAN_LIB) - if test -z "$MOZ_CLANG_RT_ASAN_LIB_PATH"; then - AC_MSG_ERROR([Couldn't find $MOZ_CLANG_RT_ASAN_LIB. It should be available in the same location as clang-cl.]) - fi - AC_SUBST(MOZ_CLANG_RT_ASAN_LIB_PATH) - fi - AC_DEFINE(MOZ_ASAN) - MOZ_PATH_PROG(LLVM_SYMBOLIZER, llvm-symbolizer) -fi -AC_SUBST(MOZ_ASAN) - -dnl ======================================================== -dnl = Use Memory Sanitizer -dnl ======================================================== -MOZ_ARG_ENABLE_BOOL(memory-sanitizer, -[ --enable-memory-sanitizer Enable Memory Sanitizer (default=no)], - MOZ_MSAN=1, - MOZ_MSAN= ) -if test -n "$MOZ_MSAN"; then - MOZ_LLVM_HACKS=1 - AC_DEFINE(MOZ_MSAN) - MOZ_PATH_PROG(LLVM_SYMBOLIZER, llvm-symbolizer) -fi -AC_SUBST(MOZ_MSAN) - -dnl ======================================================== -dnl = Use Thread Sanitizer -dnl ======================================================== -MOZ_ARG_ENABLE_BOOL(thread-sanitizer, -[ --enable-thread-sanitizer Enable Thread Sanitizer (default=no)], - MOZ_TSAN=1, - MOZ_TSAN= ) -if test -n "$MOZ_TSAN"; then - MOZ_LLVM_HACKS=1 - AC_DEFINE(MOZ_TSAN) - MOZ_PATH_PROG(LLVM_SYMBOLIZER, llvm-symbolizer) -fi -AC_SUBST(MOZ_TSAN) - -# The LLVM symbolizer is used by all sanitizers -AC_SUBST(LLVM_SYMBOLIZER) - -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 = Enable treating compiler warnings as errors -dnl ======================================================== -MOZ_ARG_ENABLE_BOOL(warnings-as-errors, -[ --enable-warnings-as-errors - Enable treating warnings as errors], - MOZ_ENABLE_WARNINGS_AS_ERRORS=1, - MOZ_ENABLE_WARNINGS_AS_ERRORS=) - -dnl ======================================================== -dnl GNU specific defaults -dnl ======================================================== -if test "$GNU_CC"; then - MMX_FLAGS="-mmmx" - SSE_FLAGS="-msse" - SSE2_FLAGS="-msse2" - # 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,$(DSO_SONAME) -o $@' - MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-h,$(DSO_SONAME) -o $@' - WARNINGS_AS_ERRORS='-Werror' - 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 -z text option to ld]) - _SAVE_LDFLAGS=$LDFLAGS - LDFLAGS="$LDFLAGS -Wl,-z,text" - AC_TRY_LINK(,,AC_MSG_RESULT([yes]) - [NSPR_LDFLAGS="$NSPR_LDFLAGS -Wl,-z,text"], - 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) - - AC_MSG_CHECKING([for --ignore-unresolved-symbol option to ld]) - HAVE_LINKER_SUPPORT_IGNORE_UNRESOLVED= - _SAVE_LDFLAGS=$LDFLAGS - LDFLAGS="$LDFLAGS -Wl,--ignore-unresolved-symbol,environ" - AC_TRY_LINK(,,AC_MSG_RESULT([yes]) - [HAVE_LINKER_SUPPORT_IGNORE_UNRESOLVED=1], - 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 - - # 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 - - case "${CPU_ARCH}" in - x86 | x86_64) - AC_MSG_CHECKING(for x86 AVX2 asm support in compiler) - AC_TRY_COMPILE([], - [asm volatile ("vpermq \$0xd8,%ymm0,%ymm0 \n");], - result="yes", result="no") - AC_MSG_RESULT("$result") - if test "$result" = "yes"; then - HAVE_X86_AVX2=1 - fi - esac - - 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" - - # BSDs need `environ' exposed for posix_spawn (bug 753046) - case "$OS_TARGET" in - DragonFly|FreeBSD|NetBSD|OpenBSD) - if test -n "$HAVE_LINKER_SUPPORT_IGNORE_UNRESOLVED"; then - DSO_LDOPTS="$DSO_LDOPTS -Wl,--ignore-unresolved-symbol,environ" - else - DSO_LDOPTS="$DSO_LDOPTS -Wl,--warn-unresolved-symbols" - fi - ;; - esac - fi - fi - - # Turn on gcc/clang warnings: - # https://gcc.gnu.org/onlinedocs/gcc-4.4.0/gcc/Warning-Options.html - # - # -Wall - turn on a lot of warnings - # -Wchar-subscripts - catches array index using signed char - # -Wcomment - catches nested comments - # -Wdeclaration-after-statement - MSVC doesn't like these - # -Wempty-body - catches bugs, e.g. "if (c); foo();", few false positives - # -Wendif-labels - catches `#else FOO` and `#endif FOO` not in comment - # -Wenum-compare - catches comparison of different enum types - # -Wignored-qualifiers - catches returns types with qualifiers like const - # -Wint-to-pointer-cast - catches cast to pointer from integer of different size - # -Wmultichar - catches multicharacter integer constants like 'THIS' - # -Wnon-literal-null-conversion - catches expressions used as a null pointer constant - # -Wnonnull - catches NULL used with functions arguments marked as non-null - # -Wpointer-arith - catches pointer arithmetic using NULL or sizeof(void) - # -Wpointer-sign - catches mixing pointers to signed and unsigned types - # -Wpointer-to-int-cast - catches casts from pointer to different sized int - # -Wreturn-type - catches missing returns, zero false positives - # -Wsequence-point - catches undefined order behavior like `a = a++` - # -Wsign-compare - catches comparison of signed and unsigned types - # -Wtrigraphs - catches unlikely use of trigraphs - # -Wtype-limits - catches overflow bugs, few false positives - # -Wunknown-pragmas - catches unexpected #pragma directives - # - _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wall" - _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wdeclaration-after-statement" - _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wempty-body" - _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wpointer-to-int-cast" - _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wsign-compare" - _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wtype-limits" - - # Treat some warnings as errors if --enable-warnings-as-errors: - if test "$MOZ_ENABLE_WARNINGS_AS_ERRORS"; then - _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Werror=char-subscripts" - _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Werror=comment" - _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Werror=endif-labels" - _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Werror=enum-compare" - _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Werror=ignored-qualifiers" - _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Werror=int-to-pointer-cast" - _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Werror=multichar" - _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Werror=nonnull" - _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Werror=pointer-arith" - _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Werror=pointer-sign" - _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Werror=return-type" - _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Werror=sequence-point" - _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Werror=trigraphs" - _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Werror=unknown-pragmas" - - MOZ_C_SUPPORTS_WARNING(-Werror=, non-literal-null-conversion, ac_c_has_werror_non_literal_null_conversion) - fi - - # 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 $(DSO_SONAME) -o $@' - MKCSHLIB='$(LD) $(DSO_LDOPTS) -h $(DSO_SONAME) -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 gcc/clang warnings: - # https://gcc.gnu.org/onlinedocs/gcc-4.4.0/gcc/Warning-Options.html - # - # -Wall - turn on a lot of warnings - # -Wempty-body - catches bugs, e.g. "if (c); foo();", few false positives - # -Wendif-labels - catches `#else FOO` and `#endif FOO` not in comment - # -Wint-to-pointer-cast - catches cast to pointer from integer of different size - # -Wmissing-braces - catches aggregate initializers missing nested braces - # -Wnon-literal-null-conversion - catches expressions used as a null pointer constant - # -Woverloaded-virtual - function declaration hides virtual function from base class - # -Wparentheses - catches `if (a=b)` and operator precedence bugs - # -Wpointer-arith - catches pointer arithmetic using NULL or sizeof(void) - # -Wreturn-type - catches missing returns, zero false positives - # -Wsequence-point - catches undefined order behavior like `a = a++` - # -Wsign-compare - catches comparison of signed and unsigned types - # -Wswitch - catches switches without all enum cases or default case - # -Wtrigraphs - catches unlikely use of trigraphs - # -Wtype-limits - catches overflow bugs, few false positives - # -Wunused-label - catches unused goto labels - # -Wwrite-strings - catches non-const char* pointers to string literals - # - _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wall" - _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wempty-body" - _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Woverloaded-virtual" - _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wsign-compare" - _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wwrite-strings" - - # Treat some warnings as errors if --enable-warnings-as-errors: - if test "$MOZ_ENABLE_WARNINGS_AS_ERRORS"; then - _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Werror=endif-labels" - _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Werror=int-to-pointer-cast" - _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Werror=missing-braces" - _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Werror=parentheses" - _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Werror=pointer-arith" - _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Werror=return-type" - _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Werror=sequence-point" - _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Werror=switch" - _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Werror=trigraphs" - _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Werror=type-limits" - _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Werror=unused-label" - - MOZ_CXX_SUPPORTS_WARNING(-Werror=, non-literal-null-conversion, ac_cxx_has_werror_non_literal_null_conversion) - fi - - # Turn off the following warnings that -Wall turns on: - # -Wno-invalid-offsetof - we use offsetof on non-POD types frequently - # -Wno-inline-new-delete - we inline 'new' and 'delete' in mozalloc - # for performance reasons, and because GCC and clang accept it (though - # clang warns about it). - # - _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wno-invalid-offsetof" - - MOZ_CXX_SUPPORTS_WARNING(-Wno-, inline-new-delete, ac_cxx_has_wno_inline_new_delete) - - 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 - -#FIXME: Work around breaking optimizations performed by GCC 6 -if test "$GCC_MAJOR_VERSION" -eq "6" ; then - CFLAGS="$CFLAGS -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2" - CXXFLAGS="$CXXFLAGS -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2" -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_BUILD) - HAVE_64BIT_BUILD=1 -fi -AC_SUBST(HAVE_64BIT_BUILD) -AC_LANG_RESTORE -fi # COMPILE_ENVIRONMENT - -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= ) - -dnl ======================================================== -dnl = Turn on systrace for android/b2g. -dnl ======================================================== -MOZ_ARG_ENABLE_BOOL(systrace, -[ --enable-systrace Set compile flags necessary for using sampling profilers (e.g. shark, perf)], - MOZ_USE_SYSTRACE=1, - MOZ_USE_SYSTRACE= ) -if test -n "$MOZ_USE_SYSTRACE"; then - AC_DEFINE(MOZ_USE_SYSTRACE) -fi - -# 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 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 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" - 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}" - ;; - -*) - HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX" - HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}" - ;; -esac - -dnl ============================================================== -dnl Get mozilla version from central milestone file -dnl ============================================================== -MOZILLA_VERSION=`$PYTHON $srcdir/python/mozbuild/mozbuild/milestone.py --topsrcdir $srcdir` -MOZILLA_UAVERSION=`$PYTHON $srcdir/python/mozbuild/mozbuild/milestone.py --topsrcdir $srcdir --uaversion` -MOZILLA_SYMBOLVERSION=`$PYTHON $srcdir/python/mozbuild/mozbuild/milestone.py --topsrcdir $srcdir --symbolversion` - -AC_DEFINE_UNQUOTED(MOZILLA_VERSION,"$MOZILLA_VERSION") -AC_DEFINE_UNQUOTED(MOZILLA_VERSION_U,$MOZILLA_VERSION) -AC_DEFINE_UNQUOTED(MOZILLA_UAVERSION,"$MOZILLA_UAVERSION") -AC_DEFINE_UNQUOTED(MOZILLA_UAVERSION_U,$MOZILLA_UAVERSION) -AC_SUBST(MOZILLA_SYMBOLVERSION) -AC_SUBST(MOZILLA_UAVERSION) -AC_SUBST(MOZILLA_UAVERSION_U) - -dnl ======================================================== -dnl Get Firefox compatibility version we claim in our UA -dnl ======================================================== -MOZILLA_COMPATVERSION=`tail -n 1 "$_topsrcdir"/config/compatversion.txt 2>/dev/null || tail -1 "$_topsrcdir"/config/compatversion.txt` -AC_DEFINE_UNQUOTED(MOZILLA_COMPATVERSION,"$MOZILLA_COMPATVERSION") -AC_DEFINE_UNQUOTED(MOZILLA_COMPATVERSION_U,$MOZILLA_COMPATVERSION) -AC_SUBST(MOZILLA_COMPATVERSION) -AC_SUBST(MOZILLA_COMPATVERSION_U) - -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_BUILD"; 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_BUILD"; 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 - _PLATFORM_HAVE_RIL=1 - MOZ_B2G_FM=1 - MOZ_SYNTH_PICO=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="-O2 -fno-reorder-functions" - if test -z "$CLANG_CC"; then - MOZ_OPTIMIZE_FLAGS="-freorder-blocks $MOZ_OPTIMIZE_FLAGS" - fi - ;; - -*-*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" - elif test "$GNU_CC" -o "$GNU_CXX"; then - MOZ_PGO_OPTIMIZE_FLAGS="-O3" - MOZ_OPTIMIZE_FLAGS="-O2" - if test -z "$CLANG_CC"; then - MOZ_OPTIMIZE_FLAGS="-freorder-blocks $MOZ_OPTIMIZE_FLAGS" - fi - fi - - TARGET_NSPR_MDCPUCFG='\"md/_linux.cfg\"' - - MOZ_MEMORY=1 - - case "${target_cpu}" in - alpha*) - CFLAGS="$CFLAGS -mieee" - CXXFLAGS="$CXXFLAGS -mieee" - ;; - 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" - 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= - DLL_PREFIX= - IMPORT_LIB_SUFFIX=a - - WIN32_CONSOLE_EXE_LDFLAGS=-mconsole - WIN32_GUI_EXE_LDFLAGS=-mwindows - - # 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= - dnl Set subsystem version 6. - WIN32_SUBSYSTEM_VERSION=6.00 - WIN32_CONSOLE_EXE_LDFLAGS=-SUBSYSTEM:CONSOLE,$WIN32_SUBSYSTEM_VERSION - WIN32_GUI_EXE_LDFLAGS=-SUBSYSTEM:WINDOWS,$WIN32_SUBSYSTEM_VERSION - DSO_LDOPTS=-SUBSYSTEM:WINDOWS,$WIN32_SUBSYSTEM_VERSION - _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" - CXXFLAGS="$CXXFLAGS -W3 -Gy" - dnl VS2013+ requires -FS when parallel building by make -jN. - dnl If nothing, compiler sometimes causes C1041 error. - CFLAGS="$CFLAGS -FS" - CXXFLAGS="$CXXFLAGS -FS" - # 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 C4267 warns for narrowing type conversions from size_t - # to 32-bit integer types on 64-bit platforms. Since this is virtually - # the same thing as C4244, we disable C4267, 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 -wd4267 -wd4819" - CXXFLAGS="$CXXFLAGS -wd4251 -wd4244 -wd4267 -wd4345 -wd4351 -wd4482 -wd4800 -wd4819" - if test -n "$CLANG_CL"; then - # Suppress the clang-cl warning for the inline 'new' and 'delete' in mozalloc - CXXFLAGS="$CXXFLAGS -Wno-inline-new-delete" - fi - # 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_LDFLAGS='-DEBUG -DEBUGTYPE:CV' - WARNINGS_AS_ERRORS='-WX' - MOZ_OPTIMIZE_FLAGS='-O1 -Oi' - MOZ_FIX_LINK_PATHS= - MOZ_COMPONENT_NSPR_LIBS='$(NSPR_LIBS)' - # Don't enable these flags on clang-cl since it doesn't ignore unknown arguments by default, and - # autoconf insists on passing $LDFLAGS to the compiler. - if test -z "$CLANG_CL"; then - LDFLAGS="$LDFLAGS -LARGEADDRESSAWARE -NXCOMPAT -OPT:REF -OPT:ICF=15" - if test -z "$DEVELOPER_OPTIONS"; then - LDFLAGS="$LDFLAGS -RELEASE" - fi - fi - 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 "$_CC_MAJOR_VERSION" = "18" -a "$_CC_BUILD_VERSION" = "31101"; then - dnl Use MaxILKSize as a workaround for LNK1248 in VS2013update4 - dnl See https://connect.microsoft.com/VisualStudio/feedback/details/1044914/fatal-error-lnk1248 - LDFLAGS="$LDFLAGS -MaxILKSize:0x7FF00000" - fi - dnl Minimum reqiurement of Goanna is VS2010 or later which supports - dnl both SSSE3 and SSE4.1. - HAVE_TOOLCHAIN_SUPPORT_MSSSE3=1 - HAVE_TOOLCHAIN_SUPPORT_MSSE4_1=1 - dnl allow AVX2 code from VS2012 - HAVE_X86_AVX2=1 - MOZ_MEMORY=1 - 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(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*) - 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_BUILD"; 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 - DSO_LDOPTS="$DSO_LDOPTS -MACHINE:X86" - # Disable this flag on clang-cl since it doesn't ignore unknown arguments by default, and - # autoconf insists on passing $LDFLAGS to the compiler. - if test -z "$CLANG_CL"; then - LDFLAGS="$LDFLAGS -SAFESEH" - fi - fi - - AC_DEFINE(_X86_) - ;; - x86_64-*) - if test -z "$HAVE_64BIT_BUILD"; then - AC_MSG_ERROR([You are targeting 64-bit but using the 32-bit compiler.]) - fi - 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,$(DSO_SONAME) -o $@' - MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,$(DSO_SONAME) -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 - ;; - -*-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" - MMX_FLAGS="-xarch=mmx -xO4" - SSE_FLAGS="-xarch=sse" - SSE2_FLAGS="-xarch=ssei2 -xO4" - 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 $(DSO_SONAME) -o $@' - MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_FLAGS) $(DSO_LDOPTS) -h $(DSO_SONAME) -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 - ;; - -esac - -AC_SUBST_LIST(MMX_FLAGS) -AC_SUBST_LIST(SSE_FLAGS) -AC_SUBST_LIST(SSE2_FLAGS) - -case "$target" in -*-*linux*) - # Includes linux-android - AC_DEFINE(XP_LINUX) - ;; -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 -*-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 -else - MOZ_COMPILER_OPTS -fi - -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_LANG_C - -AC_LANG_CPLUSPLUS - -MOZ_CXX11 - -AC_LANG_C - -dnl Check for .hidden assembler directive and visibility attribute. -dnl Borrowed from glibc configure.in -dnl =============================================================== -if test "$GNU_CC" -a "$OS_TARGET" != WINNT; then - AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE) - AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE) - case "$OS_TARGET" in - Darwin) - VISIBILITY_FLAGS='-fvisibility=hidden' - ;; - *) - VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(MOZILLA_DIR)/config/gcc_hidden.h' - WRAP_SYSTEM_INCLUDES=1 - ;; - esac -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 - -case "${OS_TARGET}" in -WINNT|Darwin|Android) - ;; -*) - STL_FLAGS='-I$(DIST)/stl_wrappers' - WRAP_STL_INCLUDES=1 - ;; -esac - -AC_SUBST(WRAP_SYSTEM_INCLUDES) -AC_SUBST(VISIBILITY_FLAGS) - -MOZ_LLVM_PR8927 - -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 - -MOZ_ARG_ENABLE_BOOL(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*) - ;; -*) - 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 - -AC_CHECK_LIB(socket, socket) - -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_LIST(XCFLAGS) -AC_SUBST_LIST(XLDFLAGS) -AC_SUBST_LIST(XLIBS) -AC_SUBST_LIST(XEXT_LIBS) -AC_SUBST_LIST(XT_LIBS) -AC_SUBST_LIST(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 - ;; -*) - AC_CHECK_LIB(pthreads, pthread_create, - MOZ_USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lpthreads", - AC_CHECK_LIB(pthread, pthread_create, - MOZ_USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lpthread", - AC_CHECK_LIB(c_r, pthread_create, - MOZ_USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lc_r", - AC_CHECK_LIB(c, pthread_create, - 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(stat64 lstat64 truncate64 statvfs64 statvfs statfs64 statfs getpagesize gmtime_r localtime_r arc4random arc4random_buf) - -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_LIST(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, - [if test "$OS_TARGET" = NetBSD -o "$OS_TARGET" = OpenBSD; then - dnl no need for res_ninit() on NetBSD and OpenBSD - ac_cv_func_res_ninit=no - else - AC_TRY_LINK([ - #ifdef linux - #define _BSD_SOURCE 1 - #endif - #include <sys/types.h> - #include <netinet/in.h> - #include <arpa/nameser.h> - #include <resolv.h> - ], - [int foo = res_ninit(&_res);], - [ac_cv_func_res_ninit=yes], - [ac_cv_func_res_ninit=no]) - fi - ]) - -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 - -ICONV_LIBS= - -case $target_os in - darwin*|mingw*) - ;; - *) - -AC_CHECK_LIB(c, iconv, [ICONV_LIBS=], - AC_CHECK_LIB(iconv, iconv, [ICONV_LIBS="-liconv"], - AC_CHECK_LIB(iconv, libiconv, [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) - 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 - -AC_SUBST_LIST(ICONV_LIBS) - -AM_LANGINFO_CODESET - -AC_LANG_C - -dnl ********************** -dnl *** va_copy checks *** -AC_CACHE_CHECK([for an implementation of va_copy()], - ac_cv_va_copy, - [AC_TRY_COMPILE([#include <stdarg.h> - #include <stdlib.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); - }], - [f(0, 42); return 0], - [ac_cv_va_copy=yes], - [ac_cv_va_copy=no] - )] -) -AC_CACHE_CHECK([whether va_list can be copied by value], - ac_cv_va_val_copy, - [AC_TRY_COMPILE([#include <stdarg.h> - #include <stdlib.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); - }], - [f(0, 42); return 0], - [ac_cv_va_val_copy=yes], - [ac_cv_va_val_copy=no], - )] -) -if 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 - -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 - - -# 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 - -dnl gold emits wrong sysv-style elf hash tables when building both sysv and -dnl style tables. https://sourceware.org/bugzilla/show_bug.cgi?id=13597 -dnl Since the linker only understands the sysv ones, no need to build the -dnl gnu style tables anyways. - LDFLAGS="$LDFLAGS -Wl,--hash-style=sysv" -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_CHECK_HEADERS(alloca.h) - -AC_CHECK_FUNCS(strndup posix_memalign memalign) - -AC_CHECK_FUNCS(malloc_usable_size) -MALLOC_USABLE_SIZE_CONST_PTR=const -MOZ_CHECK_HEADERS([malloc.h], [ - AC_MSG_CHECKING([whether malloc_usable_size definition can use const argument]) - AC_TRY_COMPILE([#include <malloc.h> - #include <stddef.h> - size_t malloc_usable_size(const void *ptr);], - [return malloc_usable_size(0);], - AC_MSG_RESULT([yes]), - AC_MSG_RESULT([no]) - MALLOC_USABLE_SIZE_CONST_PTR=) -]) -AC_DEFINE_UNQUOTED([MALLOC_USABLE_SIZE_CONST_PTR],[$MALLOC_USABLE_SIZE_CONST_PTR]) - - -dnl In newer bionic headers, valloc is built but not defined, -dnl so we check more carefully here. -AC_MSG_CHECKING([for valloc in malloc.h]) -AC_EGREP_HEADER(valloc, malloc.h, - AC_DEFINE(HAVE_VALLOC) - AC_MSG_RESULT([yes]), - AC_MSG_RESULT([no])) - -AC_MSG_CHECKING([for valloc in unistd.h]) -AC_EGREP_HEADER(valloc, unistd.h, - AC_DEFINE(HAVE_VALLOC) - AC_MSG_RESULT([yes]), - AC_MSG_RESULT([no])) - -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}" - AC_DEFINE_UNQUOTED(TARGET_XPCOM_ABI, ["${TARGET_XPCOM_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>], - AC_MSG_ERROR([--with-libxul-sdk is not supported anymore.])) - -LIBXUL_DIST="$MOZ_BUILD_ROOT/dist" -AC_SUBST(LIBXUL_DIST) - -MOZ_CONFIG_NSPR() - -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 ======================================================== -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) - -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.31.1, [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"; 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='-L$(LIBXUL_DIST)/lib'" -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_LINKER" = 1 -a "$MOZ_NATIVE_ZLIB" != 1; then - AC_MSG_ERROR([Custom dynamic linker requires --with-system-zlib]) -fi - -MOZ_PNG_ARM_NEON= - -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 WEBP Support -dnl ======================================================== -MOZ_ARG_WITH_STRING(system-webp, -[ --with-system-webp[=PFX] - Use system libwebp [installed at prefix PFX]], - WEBP_DIR=$withval) - -_SAVE_CFLAGS=$CFLAGS -_SAVE_LDFLAGS=$LDFLAGS -_SAVE_LIBS=$LIBS -if test -n "${WEBP_DIR}" -a "${WEBP_DIR}" != "yes"; then - CFLAGS="-I${WEBP_DIR}/include $CFLAGS" - LDFLAGS="-L${WEBP_DIR}/lib $LDFLAGS" -fi -if test -z "$WEBP_DIR" -o "$WEBP_DIR" = no; then - MOZ_NATIVE_WEBP= -else - AC_CHECK_LIB(webp, WebPGetDecoderVersion, [MOZ_NATIVE_WEBP=1 MOZ_WEBP_LIBS="-lwebp"], - [MOZ_NATIVE_WEBP= MOZ_WEBP_CFLAGS= MOZ_WEBP_LIBS=]) -fi -CFLAGS=$_SAVE_CFLAGS -LDFLAGS=$_SAVE_LDFLAGS -LIBS=$_SAVE_LIBS - -if test "${WEBP_DIR}" -a -d "${WEBP_DIR}" -a "$MOZ_NATIVE_WEBP" = 1; then - MOZ_WEBP_CFLAGS="-I${WEBP_DIR}/include" - MOZ_WEBP_LIBS="-L${WEBP_DIR}/lib ${MOZ_WEBP_LIBS}" -fi - -dnl ======================================================== -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 - -MOZ_PNG_ARM_NEON_CHECK= -if test "$MOZ_NATIVE_PNG" != 1 -a "$CPU_ARCH" = "arm" ; then - MOZ_ARG_ENABLE_STRING(png-arm-neon-support, - [ --enable-png-arm-neon-support=TYPE - Options include: - no - check (default) - nocheck (faster but unsafe)], - [MOZ_PNG_ARM_NEON_SUPPORT=$enableval ] ) - case "$MOZ_PNG_ARM_NEON_SUPPORT" in - no) - # enable-png-arm-neon-support = no - ;; - nocheck) - # enable-png-arm-neon-support = nocheck - MOZ_PNG_ARM_NEON=1 - ;; - *) - MOZ_PNG_ARM_NEON=1 - MOZ_PNG_ARM_NEON_CHECK=1 - ;; - esac -fi - -AC_SUBST(MOZ_PNG_ARM_NEON_CHECK) - -fi # SKIP_LIBRARY_CHECKS - -AC_SUBST(MOZ_PNG_ARM_NEON) - -dnl ======================================================== -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_CONFIG_FFI() - -MOZ_ARG_ENABLE_BOOL(shared-js, -[ --enable-shared-js - Create a shared JavaScript library.], - JS_SHARED_LIBRARY=1, - JS_SHARED_LIBRARY=) - -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= -MOZ_DISABLE_PARENTAL_CONTROLS=1 -ENABLE_SYSTEM_EXTENSION_DIRS=1 -MOZ_BRANDING_DIRECTORY= -MOZ_OFFICIAL_BRANDING= -MC_OFFICIAL=1 -MOZ_FEEDS=1 -MOZ_AUTH_EXTENSION=1 -MOZ_RAW= -MOZ_VORBIS= -MOZ_TREMOR= -MOZ_WAVE=1 -MOZ_SAMPLE_TYPE_FLOAT32= -MOZ_SAMPLE_TYPE_S16= -MOZ_WEBM=1 -MOZ_DIRECTSHOW= -MOZ_WMF= -if test -n "$MOZ_FMP4"; then - MOZ_FMP4=1 -else - MOZ_FMP4= -fi -MOZ_FFMPEG= -MOZ_WEBRTC= -MOZ_ANDROID_OMX= -MOZ_MEDIA_NAVIGATOR= -MOZ_OMX_PLUGIN= -MOZ_WEBP=1 -MOZ_NATIVE_LIBWEBP= -MOZ_VPX= -MOZ_VPX_ERROR_CONCEALMENT= -MOZ_WEBSPEECH=1 -MOZ_JXR=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= -LIBJPEG_TURBO_ARM64_ASM= -LIBJPEG_TURBO_MIPS_ASM= -MOZ_PERMISSIONS=1 -MOZ_PLACES=1 -MOZ_SOCIAL=1 -MOZ_PREF_EXTENSIONS=1 -MOZ_PROFILELOCKING=1 -MOZ_REFLOW_PERF= -MOZ_HELP_VIEWER= -MOZ_SPELLCHECK=1 -MOZ_ANDROID_APZ= -MOZ_TOOLKIT_SEARCH=1 -MOZ_UI_LOCALE=en-US -MOZ_UNIVERSALCHARDET=1 -MOZ_XUL=1 -MOZ_ZIPWRITER=1 -NS_PRINTING=1 -MOZ_PDF_PRINTING= -MOZ_NO_SMART_CARDS= -NSS_DISABLE_DBM= -NECKO_COOKIES=1 -NECKO_PROTOCOLS_DEFAULT="about app data file ftp http res viewsource websocket wyciwyg device" -if test -n "$MOZ_RTSP"; then - NECKO_PROTOCOLS_DEFAULT="$NECKO_PROTOCOLS_DEFAULT rtsp" -fi -USE_ARM_KUSER= -BUILD_CTYPES=1 -MOZ_USE_NATIVE_POPUP_WINDOWS= -MOZ_ANDROID_HISTORY= -MOZ_WEBSMS_BACKEND= -MOZ_ANDROID_BEAM= -MOZ_LOCALE_SWITCHER= -MOZ_ANDROID_READING_LIST_SERVICE= -MOZ_ANDROID_SEARCH_ACTIVITY= -MOZ_ANDROID_DOWNLOADS_INTEGRATION= -MOZ_ANDROID_MLS_STUMBLER= -MOZ_ANDROID_SHARE_OVERLAY= -ACCESSIBILITY= -MOZ_TIME_MANAGER= -MOZ_PAY= -MOZ_AUDIO_CHANNEL_MANAGER= -NSS_NO_LIBPKIX= -MOZ_CONTENT_SANDBOX= -MOZ_GMP_SANDBOX= -MOZ_SANDBOX= -MOZ_DEVTOOLS= - -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 - 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 - XULRUNNER_STUB_NAME=xulrunner-stub -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 - # Support comm-central. - if test -n "$EXTERNAL_SOURCE_DIR" ; then - MOZ_BUILD_APP="$EXTERNAL_SOURCE_DIR/$MOZ_BUILD_APP" - MOZ_BUILD_APP=`${PYTHON} -c "import mozpack.path as mozpath; print(mozpath.relpath(\"${MOZ_BUILD_APP}\", \"${srcdir}\"))"` - 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 Mozilla API key file that contains the secret key to be -# used for various Mozilla API requests. -MOZ_ARG_WITH_STRING(mozilla-api-keyfile, -[ --with-mozilla-api-keyfile=file Use the secret key contained in the given keyfile for Mozilla API requests], - MOZ_MOZILLA_API_KEY=`cat $withval`) -if test -z "$MOZ_MOZILLA_API_KEY"; then - MOZ_MOZILLA_API_KEY=no-mozilla-api-key -fi -AC_SUBST(MOZ_MOZILLA_API_KEY) - -# 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_SUBST(MOZ_GOOGLE_API_KEY) - -# Allow to specify a Google OAuth API key file that contains the client ID and -# the secret key to be used for various Google OAuth API requests. -MOZ_ARG_WITH_STRING(google-oauth-api-keyfile, -[ --with-google-oauth-api-keyfile=file Use the client id and secret key contained in the given keyfile for Google OAuth API requests], - [MOZ_GOOGLE_OAUTH_API_CLIENTID=`cat $withval | cut -f 1 -d " "` - MOZ_GOOGLE_OAUTH_API_KEY=`cat $withval | cut -f 2 -d " "`]) -if test -z "$MOZ_GOOGLE_OAUTH_API_CLIENTID"; then - MOZ_GOOGLE_OAUTH_API_CLIENTID=no-google-oauth-api-clientid - MOZ_GOOGLE_OAUTH_API_KEY=no-google-oauth-api-key -fi -AC_SUBST(MOZ_GOOGLE_OAUTH_API_CLIENTID) -AC_SUBST(MOZ_GOOGLE_OAUTH_API_KEY) - -# Allow specifying a Bing API key file that contains the client ID and the -# secret key to be used for the Bing Translation API requests. -MOZ_ARG_WITH_STRING(bing-api-keyfile, -[ --with-bing-api-keyfile=file Use the client id and secret key contained in the given keyfile for Bing API requests], - [MOZ_BING_API_CLIENTID=`cat $withval | cut -f 1 -d " "` - MOZ_BING_API_KEY=`cat $withval | cut -f 2 -d " "`]) -if test -z "$MOZ_BING_API_CLIENTID"; then - MOZ_BING_API_CLIENTID=no-bing-api-clientid - MOZ_BING_API_KEY=no-bing-api-key -fi -AC_SUBST(MOZ_BING_API_CLIENTID) -AC_SUBST(MOZ_BING_API_KEY) - -# Whether to include optional-but-large font files in the final APK. -# We want this in mobile/android/confvars.sh, so it goes early. -MOZ_ARG_DISABLE_BOOL(android-include-fonts, -[ --disable-android-include-fonts - Disable the inclusion of fonts into the final APK], - MOZ_ANDROID_EXCLUDE_FONTS=1) - -if test -n "$MOZ_ANDROID_EXCLUDE_FONTS"; then - AC_DEFINE(MOZ_ANDROID_EXCLUDE_FONTS) -fi -AC_SUBST(MOZ_ANDROID_EXCLUDE_FONTS) - -# Whether this APK is destined for resource constrained devices. -# We want this in mobile/android/confvars.sh, so it goes early. -MOZ_ARG_ENABLE_BOOL(android-resource-constrained, -[ --enable-android-resource-constrained - Exclude hi-res images and similar from the final APK], - MOZ_ANDROID_RESOURCE_CONSTRAINED=1) - -if test -n "$MOZ_ANDROID_RESOURCE_CONSTRAINED"; then - AC_DEFINE(MOZ_ANDROID_RESOURCE_CONSTRAINED) -fi -AC_SUBST(MOZ_ANDROID_RESOURCE_CONSTRAINED) - -# 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 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) - ;; -b2g/dev) - AC_DEFINE(MOZ_B2G) - AC_DEFINE(MOZ_MULET) - ;; -esac - -AC_SUBST(MOZ_BUILD_APP) -AC_SUBST(MOZ_PHOENIX) -AC_SUBST(MOZ_XULRUNNER) -AC_SUBST(MOZ_B2G) -AC_SUBST(MOZ_MULET) -AC_SUBST(MOZ_B2G_VERSION) - -AC_DEFINE_UNQUOTED(MOZ_BUILD_APP,$MOZ_BUILD_APP) - -case "$OS_TARGET" in -WINNT|Darwin|Android) - MOZ_FOLD_LIBS=1 - ;; -*) - MOZ_FOLD_LIBS= - ;; -esac - -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=20 - case "$target" in - *-android*|*-linuxandroid*) - : - ;; - *) - AC_MSG_ERROR([You must specify --target=arm-linux-androideabi (or some other valid android target) when building with --enable-application=mobile/android. See https://wiki.mozilla.org/Mobile/Fennec/Android#Setup_Fennec_mozconfig for more information about the necessary options]) - ;; - esac - ;; - 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 - 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-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_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_GL_DEFAULT_PROVIDER=GLX - - AC_DEFINE(MOZ_X11) - MOZ_X11=1 - USE_FC_FREETYPE=1 - - TK_CFLAGS='$(MOZ_GTK3_CFLAGS)' - 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_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 - - 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-cocoa) - MOZ_WIDGET_TOOLKIT=cocoa - AC_DEFINE(MOZ_WIDGET_COCOA) - LDFLAGS="$LDFLAGS -framework Cocoa -lobjc" - # Use -Wl as a trick to avoid -framework and framework names from - # being separated by AC_SUBST_LIST. - TK_LIBS='-Wl,-framework,CoreLocation -Wl,-framework,QuartzCore -Wl,-framework,Carbon -Wl,-framework,CoreAudio -Wl,-framework,AudioToolbox -Wl,-framework,AudioUnit -Wl,-framework,AddressBook -Wl,-framework,OpenGL' - TK_CFLAGS="-DNO_X11" - CFLAGS="$CFLAGS $TK_CFLAGS" - CXXFLAGS="$CXXFLAGS $TK_CFLAGS" - MOZ_USER_DIR="Mozilla" - MOZ_FS_LAYOUT=bundle - 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='-Wl,-framework,Foundation -Wl,-framework,CoreFoundation -Wl,-framework,CoreGraphics -Wl,-framework,CoreText' - CFLAGS="$CFLAGS $TK_CFLAGS" - CXXFLAGS="$CXXFLAGS $TK_CFLAGS" - 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_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_PDF_PRINTING=1 - MOZ_TOUCH=1 - MOZ_INSTRUMENT_EVENT_LOOP=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 atk-bridge-2.0 $GDK_PACKAGES) - MOZ_GTK3_CFLAGS="-I${_topsrcdir}/widget/gtk/compat-gtk3 $MOZ_GTK3_CFLAGS" - dnl Contrary to MOZ_GTK2_LIBS, MOZ_GTK3_LIBS needs to be literally added to TK_LIBS instead - dnl of a make reference because of how TK_LIBS is mangled in toolkit/library/moz.build - dnl for GTK+3 builds. - TK_LIBS=$MOZ_GTK3_LIBS - GLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_32 - fi - if test "$MOZ_ENABLE_GTK2"; then - GLIB_VERSION_MAX_ALLOWED=$GLIB_VERSION_MIN_REQUIRED - fi - if test "$MOZ_ENABLE_GTK"; then - if test "$MOZ_X11"; then - GDK_PACKAGES=gdk-x11-2.0 - fi - AC_DEFINE_UNQUOTED(GLIB_VERSION_MIN_REQUIRED,$GLIB_VERSION_MIN_REQUIRED) - AC_DEFINE_UNQUOTED(GLIB_VERSION_MAX_ALLOWED,$GLIB_VERSION_MAX_ALLOWED) - - PKG_CHECK_MODULES(MOZ_GTK2, gtk+-2.0 >= $GTK2_VERSION gtk+-unix-print-2.0 glib-2.0 >= $GLIB_VERSION gobject-2.0 $GDK_PACKAGES) - MOZ_GTK2_CFLAGS="-I${_topsrcdir}/widget/gtk/compat $MOZ_GTK2_CFLAGS" - 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) - -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 ======================================================== -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 Qt5Quick, , - [ - 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" - if test "$NS_PRINTING"; then - PKG_CHECK_MODULES(MOZ_QT_WIDGETS, Qt5PrintSupport, , - [ - AC_MSG_ERROR([$MOZ_QT_PKG_ERRORS Need qtbase widgets development package]) - ]) - MOZ_QT_LIBS="$MOZ_QT_LIBS $MOZ_QT_WIDGETS_LIBS" - MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS $MOZ_QT_WIDGETS_CFLAGS" - fi - ;; - *) - 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="$MOZ_QT_LIBS -L$QTDIR/lib/ -lQt5Gui -lQt5Network -lQt5Core -lQt5Xml" - MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtGui/$QT_VERSION/QtGui" - if test "$NS_PRINTING"; then - MOZ_QT_LIBS="$MOZ_QT_LIBS -lQt5Widgets -lQt5PrintSupport" - MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS -I$QTDIR/include/QtPrintSupport" - fi - ;; - *) - 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" - AC_DEFINE(MOZ_ENABLE_QTMOBILITY) - AC_SUBST(MOZ_ENABLE_QTMOBILITY) - 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 - - MOZ_ENABLE_QT5FEEDBACK= - PKG_CHECK_MODULES(_QT5FEEDBACK, Qt0Feedback, - MOZ_ENABLE_QT5FEEDBACK=1, - MOZ_ENABLE_QT5FEEDBACK=) - if test "$MOZ_ENABLE_QT5FEEDBACK"; then - MOZ_ENABLE_QT5FEEDBACK=1 - MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS $_QT5FEEDBACK_CFLAGS" - MOZ_QT_LIBS="$MOZ_QT_LIBS $_QT5FEEDBACK_LIBS" - AC_DEFINE(MOZ_ENABLE_QT5FEEDBACK) - AC_SUBST(MOZ_ENABLE_QT5FEEDBACK) - fi - - MOZ_ENABLE_QT5GEOPOSITION= - PKG_CHECK_MODULES(_QT5GEOPOSITION, Qt5Positioning, - MOZ_ENABLE_QT5GEOPOSITION=1, - MOZ_ENABLE_QT5GEOPOSITION=) - if test "$MOZ_ENABLE_QT5GEOPOSITION"; then - MOZ_ENABLE_QT5GEOPOSITION=1 - MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS $_QT5GEOPOSITION_CFLAGS" - MOZ_QT_LIBS="$MOZ_QT_LIBS $_QT5GEOPOSITION_LIBS" - AC_DEFINE(MOZ_ENABLE_QT5GEOPOSITION) - AC_SUBST(MOZ_ENABLE_QT5GEOPOSITION) - fi - - if test "$MOZ_ENABLE_CONTENTACTION"; then - MOZ_ENABLE_CONTENTACTION=1 - AC_DEFINE(MOZ_ENABLE_CONTENTACTION) - fi - - MOZ_ENABLE_CONTENTACTION= - PKG_CHECK_MODULES(LIBCONTENTACTION, contentaction-0.1, _LIB_FOUND=1, _LIB_FOUND=) - if test "$MOZ_ENABLE_CONTENTACTION"; then - MOZ_ENABLE_CONTENTACTION=1 - MOZ_QT_CFLAGS="$MOZ_QT_CFLAGS $_CONTENTACTION_CFLAGS" - MOZ_QT_LIBS="$MOZ_QT_LIBS $_CONTENTACTION_LIBS" - AC_DEFINE(MOZ_ENABLE_CONTENTACTION) - AC_SUBST(MOZ_ENABLE_CONTENTACTION) - fi -fi - -AC_SUBST(GTK_CONFIG) -AC_SUBST_LIST(TK_CFLAGS) -AC_SUBST_LIST(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_WIDGET_GTK) -AC_SUBST_LIST(MOZ_QT_CFLAGS) -AC_SUBST_LIST(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 = Vendor override -dnl ======================================================== -MOZ_ARG_DISABLE_BOOL(official-vendor, -[ --disable-official-vendor Disable the use of official vendor.], - MC_OFFICIAL=, - MC_OFFICIAL=1) - -dnl ======================================================== -dnl = Trademarked Branding -dnl ======================================================== -MOZ_ARG_ENABLE_BOOL(official-branding, -[ --enable-official-branding - Enable official branding - Do not distribute builds with - --enable-official-branding unless you have - permission to use the name/logo per - http://www.palemoon.org/redist.shtml .], -[ - 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 - MC_OFFICIAL=1 - fi -], MOZ_OFFICIAL_BRANDING=) - -AC_SUBST(MC_OFFICIAL) -if test -n "$MC_OFFICIAL"; then - AC_DEFINE(MC_OFFICIAL) -fi - -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" -elif test -f "${EXTERNAL_SOURCE_DIR}/$REAL_BRANDING_DIRECTORY/configure.sh"; then - . "${EXTERNAL_SOURCE_DIR}/$REAL_BRANDING_DIRECTORY/configure.sh" -fi - -AC_SUBST(MOZ_BRANDING_DIRECTORY) - -dnl ======================================================== -dnl = Private Build -dnl ======================================================== -MOZ_ARG_ENABLE_BOOL(private-build, -[ --enable-private-build Enable private builds - This allows you to build with official - branding for personal use only using any - build time configuration.], - MC_PRIVATE_BUILD=1, - MC_PRIVATE_BUILD=) - -AC_SUBST(MC_PRIVATE_BUILD) -if test -n "$MC_PRIVATE_BUILD"; then - AC_DEFINE(MC_PRIVATE_BUILD) -fi - -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 Google Play Services, placed here so it can depend on -dnl values set by configure.sh above. -dnl ======================================================== - -MOZ_ANDROID_GOOGLE_PLAY_SERVICES - - -dnl ======================================================== -dnl = Pango -dnl ======================================================== -if test "$MOZ_ENABLE_GTK" -o "$MOZ_ENABLE_QT" -then - PKG_CHECK_MODULES(_PANGOCHK, pango >= $PANGO_VERSION) - - PKG_CHECK_MODULES(MOZ_PANGO, pango >= $PANGO_VERSION pangoft2 >= $PANGO_VERSION pangocairo >= $PANGO_VERSION) -fi - -dnl ======================================================== -dnl = 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 = 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 - if test "$MOZ_ENABLE_GTK2" - 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.])]) - fi - 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) - - 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) -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) - -dnl ======================================================== -dnl = GNOME component (mozgnome) -dnl ======================================================== - -if test "$MOZ_ENABLE_GTK" -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) - -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) - -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 = Enable the C++ async pan/zoom code instead of the Java version -dnl ======================================================== -MOZ_ARG_ENABLE_BOOL(android-apz, -[ --enable-android-apz Switch to C++ pan/zoom code], - MOZ_ANDROID_APZ=1, - MOZ_ANDROID_APZ=) -if test -n "$MOZ_ANDROID_APZ"; then - dnl Do this if defined in confvars.sh - AC_DEFINE(MOZ_ANDROID_APZ) -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 runtime locale switching on Android -dnl ======================================================== -if test -n "$MOZ_LOCALE_SWITCHER"; then - AC_DEFINE(MOZ_LOCALE_SWITCHER) -fi - -dnl ======================================================== -dnl = Enable system download manager on Android -dnl ======================================================== -if test -n "$MOZ_ANDROID_DOWNLOADS_INTEGRATION"; then - AC_DEFINE(MOZ_ANDROID_DOWNLOADS_INTEGRATION) -fi - -dnl ======================================================== -dnl = Enable NFC permission on Android -dnl ======================================================== -if test -n "$MOZ_ANDROID_BEAM"; then - AC_DEFINE(MOZ_ANDROID_BEAM) -fi - -dnl ======================================================== -dnl = Include Search Activity on Android -dnl ======================================================== -if test -n "$MOZ_ANDROID_SEARCH_ACTIVITY"; then - AC_DEFINE(MOZ_ANDROID_SEARCH_ACTIVITY) -fi - -dnl ======================================================== -dnl = Include Reading List service on Android -dnl ======================================================== -if test -n "$MOZ_ANDROID_READING_LIST_SERVICE"; then - AC_DEFINE(MOZ_ANDROID_READING_LIST_SERVICE) -fi - -dnl ======================================================== -dnl = Include Mozilla Location Service Stumbler on Android -dnl ======================================================== -if test -n "$MOZ_ANDROID_MLS_STUMBLER"; then - AC_DEFINE(MOZ_ANDROID_MLS_STUMBLER) -fi - -dnl ======================================================== -dnl = Include share overlay on Android -dnl ======================================================== -if test -n "$MOZ_ANDROID_SHARE_OVERLAY"; then - AC_DEFINE(MOZ_ANDROID_SHARE_OVERLAY) -fi - -dnl = Include Tab Queue on Android -dnl = Temporary build flag to allow development in Nightly -dnl ======================================================== -if test -n "$MOZ_ANDROID_TAB_QUEUE"; then - AC_DEFINE(MOZ_ANDROID_TAB_QUEUE) -fi - -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 ======================================================== -dnl accessibility support off by default on all platforms -dnl ======================================================== -MOZ_ARG_ENABLE_BOOL(accessibility, -[ --enable-accessibility Enable accessibility support], - ACCESSIBILITY=1, - ACCESSIBILITY= ) -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 = Enable WebRTC code -dnl ======================================================== -MOZ_ARG_ENABLE_BOOL(webrtc, -[ --enable-webrtc Enable support for WebRTC], - MOZ_WEBRTC=1, - MOZ_WEBRTC=) - -if test -n "$MOZ_WEBRTC"; then - AC_ERROR("WebRTC is no longer supported. Please remove --enable-webrtc") -fi - -AC_SUBST(MOZ_WEBRTC) - -dnl ======================================================== - -dnl Use integers over floats for audio on B2G and Android -dnl (regarless of the CPU architecture, because audio -dnl backends for those platforms don't support floats. We also -dnl use integers on ARM with other OS, because it's more efficient. -if test "$OS_TARGET" = "Android" -o "$CPU_ARCH" = "arm"; 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 = Disable JPEG-XR (JXR) decoder support -dnl ======================================================== - -MOZ_ARG_DISABLE_BOOL(jxr, -[ --disable-jxr Disable support for JPEG-XR (JXR) image format], - MOZ_JXR=, - MOZ_JXR=1) - -if test -n "$MOZ_JXR"; then - AC_DEFINE(MOZ_JXR) -fi - -AC_SUBST(MOZ_JXR) - -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 Checks for __attribute__(aligned()) directive need by libogg -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 - -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_VPX=1 -fi; - -dnl ======================================================== -dnl = Apple platform decoder support -dnl ======================================================== -if test "$MOZ_WIDGET_TOOLKIT" = "cocoa"; then - MOZ_APPLEMEDIA=1 -fi - -if test -n "$MOZ_APPLEMEDIA"; then - AC_DEFINE(MOZ_APPLEMEDIA) - # hack in frameworks for fmp4 - see bug 1029974 - # We load VideoToolbox and CoreMedia dynamically, so they don't appear here. - LDFLAGS="$LDFLAGS -framework AudioToolbox" - dnl Verify CoreMedia is available. - AC_CHECK_HEADER([CoreMedia/CoreMedia.h], [], - [AC_MSG_ERROR([MacOS X 10.7 SDK or later is required])]) -fi - -dnl ======================================================== -dnl = DirectShow support -dnl ======================================================== -if test "$OS_ARCH" = "WINNT"; then - dnl Enable DirectShow support by default. - MOZ_DIRECTSHOW=1 -fi - -MOZ_ARG_DISABLE_BOOL(directshow, -[ --disable-directshow Disable support for DirectShow], - MOZ_DIRECTSHOW=, - MOZ_DIRECTSHOW=1) - -if test -n "$MOZ_DIRECTSHOW"; then - AC_DEFINE(MOZ_DIRECTSHOW) -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) -fi; - -dnl ======================================================== -dnl FFmpeg H264/AAC Decoding Support -dnl ======================================================== -case "$OS_TARGET" in -WINNT|Darwin|Android) - ;; -*) - MOZ_FFMPEG=1 - ;; -esac - -MOZ_ARG_DISABLE_BOOL(ffmpeg, -[ --disable-ffmpeg Disable FFmpeg for fragmented H264/AAC decoding], - MOZ_FFMPEG=, - MOZ_FFMPEG=1 -) - -if test -n "$MOZ_FFMPEG"; then - AC_DEFINE(MOZ_FFMPEG) -fi; - -dnl ======================================================== -dnl = Built-in fragmented MP4 support. -dnl ======================================================== - -if test "$OS_TARGET" = Android -a -z "$gonkdir"; then - MOZ_FMP4=1 -fi - -if test -n "$MOZ_WMF" -o -n "$MOZ_FFMPEG" -o -n "$MOZ_APPLEMEDIA"; then - dnl Enable fragmented MP4 parser on Windows by default. - dnl We will also need to enable it on other platforms as we implement - dnl platform decoder support there too. - MOZ_FMP4=1 -fi - -MOZ_ARG_DISABLE_BOOL(fmp4, -[ --disable-fmp4 Disable support for in built Fragmented MP4 parsing], - MOZ_FMP4=, - MOZ_FMP4=1) - -if test -n "$MOZ_FFMPEG" -a -z "$MOZ_FMP4"; then - AC_MSG_ERROR([Fragmented MP4 support must be enabled if using FFmpeg]) -fi - -if test -n "$MOZ_FMP4"; then - AC_DEFINE(MOZ_FMP4) -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_ANDROID_OMX=1 -fi - -MOZ_ARG_ENABLE_BOOL(android-omx, -[ --enable-android-omx Enable support for Android OMX media backend], - MOZ_ANDROID_OMX=1, - MOZ_ANDROID_OMX=) - -if test -n "$MOZ_ANDROID_OMX"; then - AC_DEFINE(MOZ_ANDROID_OMX) -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_VPX"; then - AC_DEFINE(MOZ_VPX) - if test -n "$MOZ_VPX_ERROR_CONCEALMENT" ; then - AC_DEFINE(MOZ_VPX_ERROR_CONCEALMENT) - fi - - _SAVE_CFLAGS=$CFLAGS - _SAVE_LIBS=$LIBS - 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.4.0) - - CFLAGS="$CFLAGS $MOZ_LIBVPX_CFLAGS" - LIBS="$LIBS $MOZ_LIBVPX_LIBS" - - 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.])]) - - 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])]) - fi - CFLAGS=$_SAVE_CFLAGS - LIBS=$_SAVE_LIBS -fi - -AC_SUBST(MOZ_NATIVE_LIBVPX) -AC_SUBST_LIST(MOZ_LIBVPX_CFLAGS) -AC_SUBST_LIST(MOZ_LIBVPX_LIBS) - -if test "$MOZ_WEBP"; then - AC_DEFINE(MOZ_WEBP) -fi - -if test "$MOZ_WEBM"; then - if test "$MOZ_SAMPLE_TYPE_FLOAT32"; then - MOZ_VORBIS=1 - else - MOZ_TREMOR=1 - fi -fi - -if test -n "$MOZ_VPX" -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 -DPIC" - 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 -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) -fi - -dnl ======================================================== -dnl = Handle dependent MEDIA defines -dnl ======================================================== - -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) - # Tremor doesn't have an encoder. - MOZ_WEBM_ENCODER= -fi - -if test -n "$MOZ_WEBM_ENCODER"; then - AC_DEFINE(MOZ_WEBM_ENCODER) -fi -AC_SUBST(MOZ_WEBM_ENCODER) - -dnl ================================== -dnl = Check alsa availability on Linux -dnl ================================== - -dnl If using Linux, ensure that the alsa library is available -if test "$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 - PKG_CHECK_MODULES(MOZ_ALSA, alsa, , - [echo "$MOZ_ALSA_PKG_ERRORS" - AC_MSG_ERROR([Need alsa for audio output on Linux. (On Ubuntu, you might try installing the package libasound2-dev.)])]) -fi - -AC_SUBST(MOZ_ALSA) - -dnl ======================================================== -dnl = Disable PulseAudio -dnl ======================================================== - -dnl If using Linux, ensure that the PA library is available -case "$OS_TARGET" in -WINNT|Darwin|Android|OpenBSD) - ;; -*) - if test -z "$MOZ_B2G"; then - MOZ_PULSEAUDIO=1 - fi - ;; -esac - -MOZ_ARG_DISABLE_BOOL(pulseaudio, -[ --disable-pulseaudio Disable PulseAudio support], - MOZ_PULSEAUDIO=, - MOZ_PULSEAUDIO=1) - -if test -n "$MOZ_PULSEAUDIO"; then - if test -z "$gonkdir"; then - PKG_CHECK_MODULES(MOZ_PULSEAUDIO, libpulse, , - [echo "$MOZ_PULSEAUDIO_PKG_ERRORS" - AC_MSG_ERROR([pulseaudio audio backend requires libpulse development package])]) - else - MOZ_PULSEAUDIO_CFLAGS="-I$gonkdir/external/pulseaudio/pulseaudio/src" - fi -fi - -AC_SUBST(MOZ_PULSEAUDIO) - -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 Child permissions, currently only used for b2g -dnl ======================================================== -if test -n "$MOZ_B2G"; then - if test -n "$MOZ_PERMISSIONS"; then - MOZ_CHILD_PERMISSIONS=1 - else - AC_MSG_ERROR([You need to enable MOZ_PERMISSIONS for MOZ_CHILD_PERMISSIONS]) - fi -fi -AC_SUBST(MOZ_CHILD_PERMISSIONS) - -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]) -MOZ_PATH_PROG(JARSIGNER, jarsigner, :, [$JAVA_PATH]) -MOZ_PATH_PROG(KEYTOOL, keytool, :, [$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" = ":"; then - AC_MSG_ERROR([The program java was not found. Set \$JAVA_HOME to your Java SDK directory or use --with-java-bin-path={java-bin-dir}]) - fi - if test -z "$JAVAC" -o "$JAVAC" = ":"; then - AC_MSG_ERROR([The program javac was not found. Set \$JAVA_HOME to your Java SDK directory or use --with-java-bin-path={java-bin-dir}]) - fi - if test -z "$JAVAH" -o "$JAVAH" = ":"; then - AC_MSG_ERROR([The program javah was not found. Set \$JAVA_HOME to your Java SDK directory or use --with-java-bin-path={java-bin-dir}]) - fi - if test -z "$JAR" -o "$JAR" = ":"; then - AC_MSG_ERROR([The program jar was not found. Set \$JAVA_HOME to your Java SDK directory or use --with-java-bin-path={java-bin-dir}]) - fi - if test -z "$JARSIGNER" -o "$JARSIGNER" = ":"; then - AC_MSG_ERROR([The program jarsigner was not found. Set \$JAVA_HOME to your Java SDK directory or use --with-java-bin-path={java-bin-dir}]) - fi - if test -z "$KEYTOOL" -o "$KEYTOOL" = ":"; then - AC_MSG_ERROR([The program keytool was not found. Set \$JAVA_HOME to your Java SDK directory or use --with-java-bin-path={java-bin-dir}]) - fi - - AC_MSG_CHECKING([for minimum required javac version >= 1.7]) - - dnl Javac spits out something like `javac 1.7.0`. This line cuts off the 'javac' - _javac_version=$($JAVAC -version 2>&1 | cut -d ' ' -f 2) - - dnl Here, we extract the major (1) and minor (7) version numbers from the - dnl acquired version string. - _javac_major_version=$(echo $_javac_version | cut -d '.' -f 1) - _javac_minor_version=$(echo $_javac_version | cut -d '.' -f 2) - - AC_MSG_RESULT([$_javac_version]) - - dnl Fail if we have a version other than 1.7.X - if test "$_javac_major_version" -ne "1" -o \ - \( "$_javac_minor_version" -lt "7" \); then - AC_MSG_ERROR([javac 1.7 or higher is required.]) - fi -fi - -dnl ======================================================== -dnl = ANGLE OpenGL->D3D translator for WebGL -dnl = * only applies to win32 -dnl ======================================================== - -MOZ_ANGLE_RENDERER= -MOZ_D3D_CPU_SUFFIX= -MOZ_HAS_WINSDK_WITH_D3D= -MOZ_D3DCOMPILER_VISTA_DLL= -MOZ_D3DCOMPILER_VISTA_DLL_PATH= - -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_D3D_CPU_SUFFIX=x86 - ;; -x86_64) - MOZ_D3D_CPU_SUFFIX=x64 - ;; -esac - -# This is potentially set in external mozconfig files; if it's set, -# then the build exposes the "webgl" context name, which is reserved -# for conformant implementations. -if test -n "$MOZ_WEBGL_CONFORMANT"; then - AC_DEFINE(MOZ_WEBGL_CONFORMANT) -fi - -dnl ======================================================== -dnl D3D compiler DLL -dnl ======================================================== -MOZ_FOUND_D3D_COMPILERS= - -if test -n "$MOZ_ANGLE_RENDERER"; then - if test -z "$MOZ_D3D_CPU_SUFFIX"; then - AC_MSG_ERROR([Couldn't determine MOZ_D3D_CPU_SUFFIX.]) - fi - - ###################################### - # Find _46+ for use by Vista+. - - # Find a D3D compiler DLL in a Windows SDK. - MOZ_D3DCOMPILER_VISTA_DLL= - case "$MOZ_WINSDK_MAXVER" in - 0x0603*) - MOZ_D3DCOMPILER_VISTA_DLL=d3dcompiler_47.dll - AC_MSG_RESULT([Found D3D compiler in Windows SDK 8.1.]) - ;; - esac - - if test -n "$MOZ_D3DCOMPILER_VISTA_DLL"; then - # We have a name, now track down the path. - if test -n "$WINDOWSSDKDIR"; then - MOZ_D3DCOMPILER_VISTA_DLL_PATH="$WINDOWSSDKDIR/Redist/D3D/$MOZ_D3D_CPU_SUFFIX/$MOZ_D3DCOMPILER_VISTA_DLL" - if test -f "$MOZ_D3DCOMPILER_VISTA_DLL_PATH"; then - AC_MSG_RESULT([Found MOZ_D3DCOMPILER_VISTA_DLL_PATH: $MOZ_D3DCOMPILER_VISTA_DLL_PATH]) - MOZ_HAS_WINSDK_WITH_D3D=1 - else - AC_MSG_RESULT([MOZ_D3DCOMPILER_VISTA_DLL_PATH doesn't exist: $MOZ_D3DCOMPILER_VISTA_DLL_PATH]) - AC_MSG_ERROR([Windows SDK at "$WINDOWSSDKDIR" appears broken. Try updating to MozillaBuild 1.9 final or higher.]) - MOZ_D3DCOMPILER_VISTA_DLL_PATH= - fi - else - AC_MSG_RESULT([Windows SDK not found.]) - fi - fi - - if test -z "$MOZ_D3DCOMPILER_VISTA_DLL_PATH"; then - MOZ_D3DCOMPILER_VISTA_DLL= - fi - - # On mingw, check if headers are provided by toolchain. - if test -n "$GNU_CC"; then - MOZ_CHECK_HEADER(d3d10.h, MOZ_HAS_WINSDK_WITH_D3D=1) - fi - - - ###################################### - # Check that we found what we needed. - MOZ_FOUND_A_D3D_COMPILER= - - if test -n "$MOZ_D3DCOMPILER_VISTA_DLL"; then - MOZ_FOUND_A_D3D_COMPILER=1 - AC_MSG_RESULT([Found d3dcompiler DLL for Vista+: $MOZ_D3DCOMPILER_VISTA_DLL]) - fi - - if test -z "$CROSS_COMPILE"; then - if test -z "MOZ_FOUND_A_D3D_COMPILER"; then - AC_MSG_ERROR([Couldn't find an acceptable D3D compiler DLL.]) - fi - fi -fi - - -dnl ======================================================== -dnl Gamepad support -dnl ======================================================== -MOZ_GAMEPAD= -MOZ_GAMEPAD_BACKEND=stub - -MOZ_ARG_ENABLE_BOOL(gamepad, -[ --enable-gamepad Enable gamepad support], - MOZ_GAMEPAD=1, - MOZ_GAMEPAD=) - -if test "$MOZ_GAMEPAD"; then - case "$OS_TARGET" in - Darwin) - MOZ_GAMEPAD_BACKEND=cocoa - ;; - WINNT) - 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 - ;; - Android) - MOZ_GAMEPAD_BACKEND=android - ;; - *) - ;; - esac - - AC_DEFINE(MOZ_GAMEPAD) -fi -AC_SUBST(MOZ_GAMEPAD) -AC_SUBST(MOZ_GAMEPAD_BACKEND) - -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 - ;; - *:aarch64*) - LIBJPEG_TURBO_ASFLAGS="-march=armv8-a" - LIBJPEG_TURBO_ARM64_ASM=1 - ;; - *:mips*) - LIBJPEG_TURBO_ASFLAGS="-mdspr2" - LIBJPEG_TURBO_MIPS_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_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) - -dnl Remove dupes -MOZ_EXTENSIONS=`$PYTHON ${srcdir}/build/unix/uniq.py ${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' - CAIRO_FT_OSLIBS='' - AC_DEFINE(HAVE_FT_BITMAP_SIZE_Y_PPEM) - AC_DEFINE(HAVE_FT_GLYPHSLOT_EMBOLDEN) - AC_DEFINE(HAVE_FT_LOAD_SFNT_TABLE) - AC_SUBST_LIST(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 - MIN_NSIS_MAJOR_VER=2 - MIN_NSIS_MINOR_VER=46 - MOZ_PATH_PROGS(MAKENSISU, $MAKENSISU makensisu-3.0a2.exe makensisu-2.46.exe makensis) - if test -n "$MAKENSISU" -a "$MAKENSISU" != ":"; then - AC_MSG_RESULT([yes]) - MAKENSISU_VER=`"$MAKENSISU" -version 2>/dev/null` - changequote(,) - MAKENSISU_PARSED_VER=`echo "$MAKENSISU_VER" | sed -e '/-Unicode/!s/.*//g' -e 's/^v\([0-9]\+\.[0-9]\+\).*\-Unicode$/\1/g'` - changequote([,]) - if test "$MAKENSISU_PARSED_VER" = ""; then - changequote(,) - MAKENSISU_PARSED_VER=`echo "$MAKENSISU_VER" | sed -e 's/^v\([0-9]\+\.[0-9]\+\).*$/\1/g'` - changequote([,]) - fi - MAKENSISU_MAJOR_VER=0 - MAKENSISU_MINOR_VER=0 - if test ! "$MAKENSISU_PARSED_VER" = ""; then - MAKENSISU_MAJOR_VER=`echo $MAKENSISU_PARSED_VER | $AWK -F\. '{ print $1 }'` - MAKENSISU_MINOR_VER=`echo $MAKENSISU_PARSED_VER | $AWK -F\. '{ print $2 }'` - fi - AC_MSG_CHECKING([for Unicode NSIS version $MIN_NSIS_MAJOR_VER.$MIN_NSIS_MINOR_VER or greater]) - if test "$MAKENSISU_MAJOR_VER" -eq $MIN_NSIS_MAJOR_VER -a \ - "$MAKENSISU_MINOR_VER" -ge $MIN_NSIS_MINOR_VER || - test "$MAKENSISU_MAJOR_VER" -gt $MIN_NSIS_MAJOR_VER; then - AC_MSG_RESULT([yes]) - else - 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 version $MIN_NSIS_MAJOR_VER.$MIN_NSIS_MINOR_VER or greater 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 version $MIN_NSIS_MAJOR_VER.$MIN_NSIS_MINOR_VER or greater in your path.]) - else - MAKENSISU= - fi -fi - -dnl ======================================================== -dnl GNU tar and wget -dnl ======================================================== - -AC_CHECK_PROGS(TAR, gnutar gtar tar, "") -if test -z "$TAR"; then - AC_MSG_ERROR([no tar archiver found in \$PATH]) -fi -AC_SUBST(TAR) - -AC_CHECK_PROGS(WGET, wget, "") -AC_SUBST(WGET) - -dnl ======================================================== -dnl Signing -dnl ======================================================== - -if test -n "$MOZ_SIGN_CMD"; then - AC_DEFINE(MOZ_SIGNING) -fi - -dnl ======================================================== -dnl Bundled fonts on desktop platforms -dnl ======================================================== - -MOZ_ARG_ENABLE_BOOL(bundled-fonts, -[ --enable-bundled-fonts Enable support for bundled fonts on desktop platforms], - MOZ_BUNDLED_FONTS=1, - MOZ_BUNDLED_FONTS=) - -if test -n "$MOZ_BUNDLED_FONTS"; then - AC_DEFINE(MOZ_BUNDLED_FONTS) -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 Do not build the tests by default -dnl ======================================================== -MOZ_ARG_ENABLE_BOOL(tests, -[ --enable-tests Build test libraries & programs], - ENABLE_TESTS=1, - ENABLE_TESTS= ) - -if test -n "$ENABLE_TESTS"; then - GTEST_HAS_RTTI=0 - AC_DEFINE(ENABLE_TESTS) - AC_DEFINE_UNQUOTED(GTEST_HAS_RTTI, 0) - 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_ENABLE_BOOL(parental-controls, -[ --enable-parental-controls - Build parental controls], - MOZ_DISABLE_PARENTAL_CONTROLS=, - MOZ_DISABLE_PARENTAL_CONTROLS=1) -if test -n "$MOZ_DISABLE_PARENTAL_CONTROLS"; then - AC_DEFINE(MOZ_DISABLE_PARENTAL_CONTROLS) -fi - -AC_SUBST(MOZ_DISABLE_PARENTAL_CONTROLS) - -dnl ======================================================== -dnl = Disable smartcard support -dnl ======================================================== -if test -n "$MOZ_NO_SMART_CARDS"; then - AC_DEFINE(MOZ_NO_SMART_CARDS) -fi -AC_SUBST(MOZ_NO_SMART_CARDS) - -dnl ======================================================== -dnl = Disable EV certificate verification -dnl ======================================================== -if test -n "$MOZ_NO_EV_CERTS"; then - AC_DEFINE(MOZ_NO_EV_CERTS) -fi -AC_SUBST(MOZ_NO_EV_CERTS) - -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 = Sandboxing support -dnl ======================================================== -MOZ_ARG_ENABLE_BOOL(sandbox, -[ --enable-sandbox Enable sandboxing support], - MOZ_SANDBOX=1, - MOZ_SANDBOX=) - -dnl ======================================================== -dnl = Content process sandboxing -dnl ======================================================== -if test -n "$gonkdir"; then - MOZ_CONTENT_SANDBOX=$MOZ_SANDBOX -fi - -case "$OS_TARGET:$NIGHTLY_BUILD" in -WINNT:1) - MOZ_CONTENT_SANDBOX=$MOZ_SANDBOX - ;; -Darwin:1) - MOZ_CONTENT_SANDBOX=$MOZ_SANDBOX - ;; -esac - -MOZ_ARG_ENABLE_BOOL(content-sandbox, -[ --enable-content-sandbox Enable sandboxing support for content-processes - --disable-content-sandbox Disable sandboxing support for content-processes], - MOZ_CONTENT_SANDBOX=1, - MOZ_CONTENT_SANDBOX=) - -if test -n "$MOZ_CONTENT_SANDBOX" -a -z "$MOZ_SANDBOX"; then - AC_MSG_ERROR([--enable-content-sandbox and --disable-sandbox are conflicting options]) -fi - -if test -n "$MOZ_CONTENT_SANDBOX"; then - AC_DEFINE(MOZ_CONTENT_SANDBOX) -fi - -AC_SUBST(MOZ_CONTENT_SANDBOX) - -dnl ======================================================== -dnl = Goanna Media Plugin sandboxing -dnl ======================================================== -case $OS_TARGET in -WINNT) - MOZ_GMP_SANDBOX=$MOZ_SANDBOX - ;; -Linux) - case $CPU_ARCH in - x86_64|x86) - MOZ_GMP_SANDBOX=$MOZ_SANDBOX - ;; - esac - ;; -Darwin) - MOZ_GMP_SANDBOX=$MOZ_SANDBOX - ;; -esac - -if test -n "$MOZ_GMP_SANDBOX"; then - AC_DEFINE(MOZ_GMP_SANDBOX) -fi - -AC_SUBST(MOZ_GMP_SANDBOX) - -if test -z "$MOZ_CONTENT_SANDBOX" -a -z "$MOZ_GMP_SANDBOX"; then - MOZ_SANDBOX= -fi - -if test -n "$MOZ_SANDBOX"; then - AC_DEFINE(MOZ_SANDBOX) -fi - -AC_SUBST(MOZ_SANDBOX) - - -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 -n "$MOZ_NATIVE_SQLITE" -then - 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 = Disable zipwriter -dnl ======================================================== -MOZ_ARG_DISABLE_BOOL(zipwriter, -[ --disable-zipwriter Disable zipwriter component], - MOZ_ZIPWRITER=, - MOZ_ZIPWRITER=1 ) -AC_SUBST(MOZ_ZIPWRITER) - -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 = Runtime debugging and Optimization Options -dnl = -dnl ======================================================== -MOZ_ARG_HEADER(Runtime debugging and Optimizations) - -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 - # We ignore paint will resample on mobile for performance. - # We may want to revisit this later. - MOZ_IGNORE_PAINT_WILL_RESAMPLE=1 - - AC_DEFINE(MOZ_GFX_OPTIMIZE_MOBILE) - AC_DEFINE(MOZ_IGNORE_PAINT_WILL_RESAMPLE) -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_PGO) -AC_SUBST(MOZ_PGO_OPTIMIZE_FLAGS) - -dnl ======================================================== -dnl = Enable NS_StackWalk. -dnl ======================================================== - -# On Windows, NS_StackWalk will only work correctly if we have frame pointers -# available. That will only be true for non-optimized builds, debug builds or -# builds with --enable-profiling in the .mozconfig (which is turned on in -# Nightly by default.) -case "$OS_TARGET" in -WINNT) - if test -z "$MOZ_OPTIMIZE" -o -n "$MOZ_PROFILING" -o -n "$MOZ_DEBUG"; then - MOZ_STACKWALKING=1 - else - MOZ_STACKWALKING= - fi - ;; -*) - MOZ_STACKWALKING=1 - ;; -esac - -if test -n "$MOZ_STACKWALKING"; then - AC_DEFINE(MOZ_STACKWALKING) -fi - -AC_SUBST(MOZ_STACKWALKING) - -dnl ======================================================== -dnl = Disable treating compiler warnings as errors -dnl ======================================================== -if test -z "$MOZ_ENABLE_WARNINGS_AS_ERRORS"; then - WARNINGS_AS_ERRORS='' -elif test "$GNU_CC"; then - # Prevent the following GCC warnings from being treated as errors: - # -Wuninitialized - too many false positives - # -Wmaybe-uninitialized - too many false positives - # -Wdeprecated-declarations - we don't want our builds held hostage when a - # platform-specific API becomes deprecated. - # -Warray-bounds - false positives depending on optimization - MOZ_C_SUPPORTS_WARNING(-W, no-error=uninitialized, ac_c_has_noerror_uninitialized) - MOZ_CXX_SUPPORTS_WARNING(-W, no-error=uninitialized, ac_cxx_has_noerror_uninitialized) - MOZ_C_SUPPORTS_WARNING(-W, no-error=maybe-uninitialized, ac_c_has_noerror_maybe_uninitialized) - MOZ_CXX_SUPPORTS_WARNING(-W, no-error=maybe-uninitialized, ac_cxx_has_noerror_maybe_uninitialized) - MOZ_C_SUPPORTS_WARNING(-W, no-error=deprecated-declarations, ac_c_has_noerror_deprecated_declarations) - MOZ_CXX_SUPPORTS_WARNING(-W, no-error=deprecated-declarations, ac_cxx_has_noerror_deprecated_declarations) - MOZ_C_SUPPORTS_WARNING(-W, no-error=array-bounds, ac_c_has_noerror_array_bounds) - MOZ_CXX_SUPPORTS_WARNING(-W, no-error=array-bounds, ac_cxx_has_noerror_array_bounds) - - if test -n "$MOZ_PGO"; then - MOZ_C_SUPPORTS_WARNING(-W, no-error=coverage-mismatch, ac_c_has_noerror_coverage_mismatch) - MOZ_CXX_SUPPORTS_WARNING(-W, no-error=coverage-mismatch, ac_cxx_has_noerror_coverage_mismatch) - fi -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) - AC_DEFINE(FORCE_PR_LOG) -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_aproximate_location -dnl ======================================================== -MOZ_ARG_ENABLE_BOOL(approximate_location, -[ --enable-approximate-location Enable approximate location ], - MOZ_APPROX_LOCATION=1, - MOZ_APPROX_LOCATION= ) -if test -n "$MOZ_APPROX_LOCATION"; then - AC_DEFINE(MOZ_APPROX_LOCATION) -fi - -dnl ======================================================== -dnl moz_gps_debug -dnl ======================================================== -MOZ_ARG_ENABLE_BOOL(gps_debug, -[ --enable-gps-debug Enable gps specific debug messages ], - MOZ_GPS_DEBUG=1, - MOZ_GPS_DEBUG= ) -if test -n "$MOZ_GPS_DEBUG"; then - AC_DEFINE(MOZ_GPS_DEBUG) -fi -if test -n "$MOZ_DEBUG"; then - AC_DEFINE(MOZ_GPS_DEBUG) -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 DMD -dnl ======================================================== - -MOZ_ARG_ENABLE_BOOL(dmd, -[ --enable-dmd Enable DMD; also enables jemalloc and replace-malloc], - MOZ_DMD=1, - MOZ_DMD= ) - -if test "$MOZ_DMD"; then - 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=) - -case "${OS_TARGET}" in -Android|WINNT|Darwin) - MOZ_GLUE_IN_PROGRAM= - ;; -*) - dnl On !Android !Windows !OSX, we only want to link executables against mozglue - MOZ_GLUE_IN_PROGRAM=1 - ;; -esac - -dnl ======================================================== -dnl = Enable full jemalloc lib -dnl ======================================================== -MOZ_ARG_ENABLE_BOOL(jemalloc-lib, -[ --enable-jemalloc-lib Use the full jemalloc lib], - MOZ_JEMALLOC3=1, - MOZ_JEMALLOC3= ) - -if test -n "$MOZ_JEMALLOC3" -a -z "$MOZ_MEMORY"; then - dnl We need jemalloc enabled to use jemalloc3 - AC_MSG_ERROR([--enable-jemalloc-lib requires --enable-jemalloc]) -fi - -dnl ======================================================== -dnl = Enable dynamic replacement of malloc implementation -dnl ======================================================== -if test -n "$NIGHTLY_BUILD" -a -n "$MOZ_MEMORY"; then - # Enable on central for the debugging opportunities it adds. - MOZ_REPLACE_MALLOC=1 -fi -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 - AC_DEFINE(MOZ_REPLACE_MALLOC) - 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 nallocx,, - [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 - 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 -n "$gonkdir"; then - AC_DEFINE(MOZ_MEMORY_GONK) - fi - ;; - *-*linux*) - AC_DEFINE(MOZ_MEMORY_LINUX) - ;; - *-netbsd*) - AC_DEFINE(MOZ_MEMORY_BSD) - ;; - *-solaris*) - AC_DEFINE(MOZ_MEMORY_SOLARIS) - ;; - *-mingw*) - AC_DEFINE(MOZ_MEMORY_WINDOWS) - export MOZ_NO_DEBUG_RTL=1 - WIN32_CRT_LIBS="msvcrt.lib msvcprt.lib" - 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_CRT=1 - fi - rm crtdll.obj - ;; - *) - 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_CRT) -export MOZ_CRT -AC_SUBST(MOZ_GLUE_IN_PROGRAM) -AC_SUBST_LIST(WIN32_CRT_LIBS) - -# Allow the application to provide a subconfigure script. -# This should be after 'export MOZ_NO_DEBUG_RTL=1' since -# ldap/c-sdk/configure refers to the enviroment value. -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 - -dnl We need to wrap dlopen and related functions on Android because we use -dnl our own linker. -if test "$OS_TARGET" = Android; then - MOZ_GLUE_WRAP_LDFLAGS="${MOZ_GLUE_WRAP_LDFLAGS} -Wl,--wrap=PR_GetEnv,--wrap=PR_SetEnv" - if test "$MOZ_WIDGET_TOOLKIT" = gonk -a -n "$MOZ_NUWA_PROCESS"; then - MOZ_GLUE_WRAP_LDFLAGS="${MOZ_GLUE_WRAP_LDFLAGS} -Wl,--wrap=pthread_create,--wrap=epoll_wait,--wrap=poll,--wrap=pthread_cond_timedwait,--wrap=pthread_cond_wait,--wrap=epoll_create,--wrap=epoll_ctl,--wrap=close,--wrap=pthread_key_create,--wrap=pthread_key_delete,--wrap=socketpair,--wrap=pthread_self,--wrap=pthread_mutex_lock,--wrap=pthread_mutex_trylock,--wrap=pthread_join,--wrap=pipe,--wrap=pipe2" - fi - if test "$MOZ_WIDGET_TOOLKIT" = android; then - MOZ_GLUE_WRAP_LDFLAGS="${MOZ_GLUE_WRAP_LDFLAGS} -Wl,--wrap=getaddrinfo,--wrap=freeaddrinfo,--wrap=gai_strerror" - fi -fi - -AC_SUBST_LIST(MOZ_GLUE_WRAP_LDFLAGS) -export MOZ_GLUE_WRAP_LDFLAGS - -dnl ======================================================== -dnl = Enable using the clang plugin to build -dnl ======================================================== - -MOZ_CONFIG_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 = --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=1]) - -# 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 "$COMPILE_ENVIRONMENT" -a -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) - -if test -n "$STDCXX_COMPAT"; then - eval $(CXX="$CXX" HOST_CXX="$HOST_CXX" $PYTHON -m mozbuild.configure.libstdcxx) - AC_SUBST(MOZ_LIBSTDCXX_TARGET_VERSION) - AC_SUBST(MOZ_LIBSTDCXX_HOST_VERSION) - CXXFLAGS="$CXXFLAGS -D_GLIBCXX_USE_CXX11_ABI=0" - HOST_CXXFLAGS="$HOST_CXXFLAGS -D_GLIBCXX_USE_CXX11_ABI=0" -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 = Enable TaskTracer -dnl ======================================================== -MOZ_ARG_ENABLE_BOOL(tasktracer, -[ --enable-tasktracer Set compile flags necessary for using TaskTracer], - MOZ_TASK_TRACER=1, - MOZ_TASK_TRACER= ) -if test "$MOZ_WIDGET_TOOLKIT" = "gonk" -a -n "$MOZ_TASK_TRACER"; then - AC_DEFINE(MOZ_TASK_TRACER) - AC_SUBST(MOZ_TASK_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 = Offer a way to disable the startup cache -dnl ======================================================== - -MOZ_ARG_DISABLE_BOOL(startupcache, -[ --disable-startupcache Disable startup cache ], - MOZ_DISABLE_STARTUPCACHE=1, - MOZ_DISABLE_STARTUPCACHE=) - -dnl bug 988880: disable startup cache on b2g -if test -n "$MOZ_B2G"; then - MOZ_DISABLE_STARTUPCACHE=1 -fi -if test -n "$MOZ_DISABLE_STARTUPCACHE"; then - AC_DEFINE(MOZ_DISABLE_STARTUPCACHE) -fi -AC_SUBST(MOZ_DISABLE_STARTUPCACHE) - -dnl ======================================================== -dnl = Don't precompile the startup cache -dnl ======================================================== -MOZ_DISABLE_PRECOMPILED_STARTUPCACHE= - -MOZ_ARG_DISABLE_BOOL(precompiled-startupcache, -[ --disable-precompiled-startupcache Don't precompile the startup cache ], - MOZ_DISABLE_PRECOMPILED_STARTUPCACHE=1, - MOZ_DISABLE_PRECOMPILED_STARTUPCACHE= ) - -if test -n "$MOZ_DISABLE_PRECOMPILED_STARTUPCACHE"; then - AC_DEFINE(MOZ_DISABLE_PRECOMPILED_STARTUPCACHE) -fi - -AC_SUBST(MOZ_DISABLE_PRECOMPILED_STARTUPCACHE) - -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=, - MOZ_B2G_RIL=$_PLATFORM_HAVE_RIL ) -if test -n "$MOZ_B2G_RIL"; then - if test -n "$_PLATFORM_HAVE_RIL"; then - AC_DEFINE(MOZ_B2G_RIL) - else - AC_MSG_ERROR([b2g-ril cannot be enabled because target platform doesn't support it.]) - fi -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) -AC_SUBST(MOZ_B2G_BT_BLUEZ) -AC_SUBST(MOZ_B2G_BT_BLUEDROID) -AC_SUBST(MOZ_B2G_BT_DAEMON) - -dnl ======================================================== -dnl = Enable NFC Interface for B2G (Gonk usually) -dnl ======================================================== -MOZ_ARG_ENABLE_BOOL(nfc, -[ --enable-nfc Set compile flags necessary for compiling NFC API ], - MOZ_NFC=1, - MOZ_NFC= ) -if test -n "$MOZ_NFC"; then - AC_DEFINE(MOZ_NFC) -fi -AC_SUBST(MOZ_NFC) - -dnl ======================================================== -dnl = Enable Pico Speech Synthesis (Gonk usually) -dnl ======================================================== -MOZ_ARG_ENABLE_BOOL(synth-pico, -[ --enable-synth-pico Set compile flags necessary for compiling Pico Web Speech API ], - MOZ_SYNTH_PICO=1, - MOZ_SYNTH_PICO= ) -if test -n "$MOZ_SYNTH_PICO"; then - AC_DEFINE(MOZ_SYNTH_PICO) -fi -AC_SUBST(MOZ_SYNTH_PICO) - -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 for Payment API -dnl ======================================================== -if test -n "$MOZ_PAY"; then - AC_DEFINE(MOZ_PAY) -fi -AC_SUBST(MOZ_PAY) - -dnl ======================================================== -dnl = Enable Browser Support for Activities -dnl ======================================================== -if test -n "$MOZ_ACTIVITIES"; then - AC_DEFINE(MOZ_ACTIVITIES) -fi -AC_SUBST(MOZ_ACTIVITIES) - -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 = Enable Support for Secure Element API -dnl ======================================================== - MOZ_SECUREELEMENT=1, -if test -n "$MOZ_SECUREELEMENT"; then - AC_DEFINE(MOZ_SECUREELEMENT) -fi - AC_SUBST(MOZ_SECUREELEMENT) - -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 DMD builds -MOZ_DEMANGLE_SYMBOLS= -if test "$HAVE_DEMANGLE" && test "$MOZ_DEBUG" -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 - AC_LANG_SAVE - AC_LANG_CPLUSPLUS - MOZ_CHECK_HEADER(unwind.h, AC_CHECK_FUNCS(_Unwind_Backtrace)) - AC_LANG_RESTORE -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 = Enable Mozilla Developer Tools (frontend) -dnl ======================================================== -MOZ_ARG_ENABLE_BOOL(devtools, -[ --enable-devtools Enable Mozilla Developer Tools], - MOZ_DEVTOOLS=1, - MOZ_DEVTOOLS=) - -if test -n "$MOZ_DEVTOOLS"; then - AC_DEFINE(MOZ_DEVTOOLS) -fi - -AC_SUBST(MOZ_DEVTOOLS) - -dnl ========================================================= -dnl Enable support for revamped devtools Performance Tools -dnl ========================================================= - -MOZ_ARG_ENABLE_BOOL(devtools-perf, -[ --enable-devtools-perf Set compile flags necessary for compiling devtools perftools], -MOZ_DEVTOOLS_PERFTOOLS=1, -MOZ_DEVTOOLS_PERFTOOLS= ) -if test -n "$MOZ_DEVTOOLS_PERFTOOLS"; then - AC_DEFINE(MOZ_DEVTOOLS_PERFTOOLS) -fi -AC_SUBST(MOZ_DEVTOOLS_PERFTOOLS) - -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 "$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) - -dnl ============================================= -dnl Support for -fno-integrated-as (recent clang) -dnl ============================================= -dnl Under clang 3.4+, use -fno-integrated-as to -dnl build libvpx's vp8_asm_enc_offsets.c - -_SAVE_CFLAGS="$CFLAGS" -CFLAGS="$CFLAGS -fno-integrated-as -S" - -AC_MSG_CHECKING([whether C compiler supports -fno-integrated-as]) -AC_TRY_COMPILE([], [return 0;], - [ NO_INTEGRATED_AS_CFLAGS="-fno-integrated-as" - result="yes" ], result="no") -AC_MSG_RESULT([$result]) - -CFLAGS="$_SAVE_CFLAGS" - -AC_SUBST(NO_INTEGRATED_AS_CFLAGS) - -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(,) - dnl This output is localized, split at the first double space or colon and space. - _CL_PREFIX_REGEX="^\([^:]*:.*[ :] \)\(.*\\\stdio.h\)$" - CL_INCLUDES_PREFIX=`${CC} -showIncludes -c -Fonul dummy-hello.c 2>&1 | sed -ne 's/'"$_CL_PREFIX_REGEX"'/\1/p'` - _CL_STDIO_PATH=`${CC} -showIncludes -c -Fonul dummy-hello.c 2>&1 | sed -ne 's/'"$_CL_PREFIX_REGEX"'/\2/p'` - changequote([,]) - if ! test -e "$_CL_STDIO_PATH"; then - AC_MSG_ERROR([Unable to parse cl -showIncludes prefix. This compiler's locale has an unsupported formatting.]) - fi - 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 - - dnl Make sure that the build system can handle non-ASCII characters - dnl in environment variables to prevent it from breaking silently on - dnl non-English systems. - NONASCII=$'\241\241' - AC_SUBST(NONASCII) - fi -fi - -dnl ======================================================== -dnl = -dnl = Static Build Options -dnl = -dnl ======================================================== -MOZ_ARG_HEADER(Static build options) - -if test "$OS_ARCH" = "WINNT"; then - GKMEDIAS_SHARED_LIBRARY=1 - AC_DEFINE(GKMEDIAS_SHARED_LIBRARY) -fi -AC_SUBST(GKMEDIAS_SHARED_LIBRARY) - -if test -z "$MOZ_NATIVE_ZLIB"; then -if test -n "$JS_SHARED_LIBRARY" -o "$GKMEDIAS_SHARED_LIBRARY"; then - ZLIB_IN_MOZGLUE=1 - AC_DEFINE(ZLIB_IN_MOZGLUE) -fi -fi - -AC_SUBST(ZLIB_IN_MOZGLUE) - -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_GTK" ; 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_LIST(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}" = "gonk" -o \ - "${MOZ_WIDGET_TOOLKIT}" = "gtk2" -o \ - "${MOZ_WIDGET_TOOLKIT}" = "gtk3"; then - case "${CPU_ARCH}" in - x86|x86_64|arm) - MOZ_ENABLE_SKIA=1 - ;; - *) - MOZ_ENABLE_SKIA= - ;; - esac -else -MOZ_ENABLE_SKIA= -fi - -MOZ_ARG_ENABLE_BOOL(skia, -[ --enable-skia Enable use of Skia], -MOZ_ENABLE_SKIA=1, -MOZ_ENABLE_SKIA=) - -MOZ_ARG_DISABLE_BOOL(skia-gpu, -[ --disable-skia-gpu Disable use of Skia-GPU], -MOZ_DISABLE_SKIA_GPU=1, -MOZ_DISABLE_SKIA_GPU=) - -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) - - 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 ======================================================== - -if test "$MOZ_WIDGET_TOOLKIT" = "gtk3" ; then - # cairo-gtk3 can be build with system-cairo only - MOZ_TREE_CAIRO= -else - MOZ_TREE_CAIRO=1 -fi - -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) -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_LIST(MOZ_PIXMAN_LIBS) - -# Check for headers defining standard int types. -if test -n "$COMPILE_ENVIRONMENT"; then - MOZ_CHECK_HEADERS(stdint.h inttypes.h sys/int_types.h) - - if test "${ac_cv_header_inttypes_h}" = "yes"; then - HAVE_INTTYPES_H=1 - fi -fi - -AC_SUBST(HAVE_INTTYPES_H) - -if test "$MOZ_TREE_CAIRO"; then - MOZ_CAIRO_CFLAGS='-I$(LIBXUL_DIST)/include/cairo' - AC_DEFINE(MOZ_TREE_CAIRO) - - if test "$OS_ARCH" = "WINNT"; then - # 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) - fi - - # 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" - fi - if test "$_HAVE_FREETYPE2"; then - 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_D2D_SURFACE_FEATURE="#define CAIRO_HAS_D2D_SURFACE 1" - WIN32_DWRITE_FONT_FEATURE="#define CAIRO_HAS_DWRITE_FONT 1" - WIN32_FONT_FEATURE="#define CAIRO_HAS_WIN32_FONT 1" - WIN32_SURFACE_FEATURE="#define CAIRO_HAS_WIN32_SURFACE 1" - MOZ_ENABLE_D2D_SURFACE=1 - MOZ_ENABLE_DWRITE_FONT=1 - - 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 - ;; - gtk3) - AC_MSG_ERROR([cairo-gtk3 toolkit is incompatible with in-tree cairo. Please add --enable-system-cairo to your build config.]) - ;; - 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(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_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_LIST(MOZ_CAIRO_CFLAGS) -AC_SUBST_LIST(MOZ_CAIRO_LIBS) -AC_SUBST_LIST(MOZ_CAIRO_OSLIBS) -AC_SUBST(MOZ_TREE_PIXMAN) - -dnl ======================================================== -dnl Skia -dnl ======================================================== -if test "$MOZ_ENABLE_SKIA"; then - 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) - fi - - if test "${CPU_ARCH}" != "ppc" -a "${CPU_ARCH}" != "ppc64" -a "${CPU_ARCH}" != "sparc" -a -z "$MOZ_DISABLE_SKIA_GPU" ; then - MOZ_ENABLE_SKIA_GPU=1 - AC_DEFINE(USE_SKIA_GPU) - AC_SUBST(MOZ_ENABLE_SKIA_GPU) - fi -fi -AC_SUBST(MOZ_ENABLE_SKIA) - -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/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=`$PYTHON ${srcdir}/build/unix/uniq.py ${NECKO_PROTOCOLS}` -AC_SUBST_SET(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 - -case "$OS_TARGET" in - Android) - if test -n "$gonkdir"; then - NECKO_WIFI=1 - fi - ;; - Darwin|DragonFly|FreeBSD|SunOS|WINNT) - NECKO_WIFI=1 - ;; - Linux) - NECKO_WIFI=1 - NECKO_WIFI_DBUS=1 - ;; -esac - -MOZ_ARG_DISABLE_BOOL(necko-wifi, -[ --disable-necko-wifi Disable necko wifi scanner], - NECKO_WIFI=, - NECKO_WIFI=1) - -if test "$NECKO_WIFI"; then - if test -z "$MOZ_ENABLE_DBUS" -a -n "$NECKO_WIFI_DBUS"; then - AC_MSG_ERROR([Necko WiFi scanning needs DBus on your platform, remove --disable-dbus or use --disable-necko-wifi]) - fi - AC_DEFINE(NECKO_WIFI) - _NON_GLOBAL_ACDEFINES="$_NON_GLOBAL_ACDEFINES NECKO_WIFI" -fi -AC_SUBST(NECKO_WIFI) -AC_SUBST(NECKO_WIFI_DBUS) - -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 Always build Marionette if not Android or B2G -dnl -if test "$OS_TARGET" != Android -a x"$MOZ_WIDGET_TOOLKIT" != x"gonk"; then - AC_DEFINE(ENABLE_MARIONETTE) -fi -AC_SUBST(ENABLE_MARIONETTE) -if test "$ENABLE_MARIONETTE"; then - AC_DEFINE(ENABLE_MARIONETTE) -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 Services/CloudSync if required -AC_SUBST(MOZ_SERVICES_CLOUDSYNC) -if test -n "$MOZ_SERVICES_CLOUDSYNC"; then - AC_DEFINE(MOZ_SERVICES_CLOUDSYNC) -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 second screen and casting features for external devices if required -AC_SUBST(MOZ_DEVICES) -if test -n "$MOZ_DEVICES"; then - AC_DEFINE(MOZ_DEVICES) -fi - -dnl ======================================================== -if test "$MOZ_DEBUG" -o "$MOZ_DMD"; then - MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS= -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_AUTH_EXTENSION) -AC_SUBST(MOZ_PERMISSIONS) -AC_SUBST(MOZ_PREF_EXTENSIONS) -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_LDFLAGS) -AC_SUBST(WARNINGS_AS_ERRORS) -AC_SUBST(MOZ_EXTENSIONS) -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_HELP_VIEWER) -AC_SUBST(TOOLCHAIN_PREFIX) - -AC_SUBST(JAVA) -AC_SUBST(JAVAC) -AC_SUBST(JAVAH) -AC_SUBST(JAR) -AC_SUBST(JARSIGNER) -AC_SUBST(KEYTOOL) - -AC_SUBST(MOZ_PROFILELOCKING) - -AC_SUBST(ENABLE_TESTS) -AC_SUBST(MOZ_UNIVERSALCHARDET) -AC_SUBST(ACCESSIBILITY) -AC_SUBST(MOZ_SPELLCHECK) -AC_SUBST(MOZ_ANDROID_APZ) -AC_SUBST(MOZ_ANDROID_ANR_REPORTER) -AC_SUBST(MOZ_VERIFY_MAR_SIGNATURE) -AC_SUBST(MOZ_ENABLE_SIGNMAR) -AC_SUBST(MOZ_UPDATER) - -AC_SUBST(MOZ_ANGLE_RENDERER) -AC_SUBST(MOZ_D3D_CPU_SUFFIX) -AC_SUBST(MOZ_HAS_WINSDK_WITH_D3D) -AC_SUBST(MOZ_D3DCOMPILER_VISTA_DLL) -AC_SUBST(MOZ_D3DCOMPILER_VISTA_DLL_PATH) - -AC_SUBST(MOZ_ANDROID_HISTORY) -AC_SUBST(MOZ_WEBSMS_BACKEND) -AC_SUBST(MOZ_ANDROID_BEAM) -AC_SUBST(MOZ_LOCALE_SWITCHER) -AC_SUBST(MOZ_DISABLE_GECKOVIEW) -AC_SUBST(MOZ_ANDROID_GECKOLIBS_AAR) -AC_SUBST(MOZ_ANDROID_READING_LIST_SERVICE) -AC_SUBST(MOZ_ANDROID_SEARCH_ACTIVITY) -AC_SUBST(MOZ_ANDROID_SHARE_OVERLAY) -AC_SUBST(MOZ_ANDROID_TAB_QUEUE) -AC_SUBST(MOZ_ANDROID_MLS_STUMBLER) -AC_SUBST(MOZ_ANDROID_DOWNLOADS_INTEGRATION) -AC_SUBST(ENABLE_STRIP) -AC_SUBST(PKG_SKIP_STRIP) -AC_SUBST(STRIP_FLAGS) -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(USE_DEPENDENT_LIBS) - -AC_SUBST(MOZ_BUILD_ROOT) - -AC_SUBST(MOZ_POST_DSO_LIB_COMMAND) -AC_SUBST(MOZ_POST_PROGRAM_COMMAND) -AC_SUBST(MOZ_LINKER_EXTRACT) - -AC_SUBST(MOZ_JSDOWNLOADS) -if test -n "$MOZ_JSDOWNLOADS"; then - AC_DEFINE(MOZ_JSDOWNLOADS) -fi - -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_REMOTINGNAME: Used for the internal program name, which affects -# profile name and remoting. If not set, defaults to MOZ_APP_NAME. -# - 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. -# - MOZ_PROFILE_MIGRATOR: When set, enables profile migrator. - -if test -z "$MOZ_APP_NAME"; then - MOZ_APP_NAME=`echo $MOZ_APP_BASENAME | tr A-Z a-z` -fi - -if test -z "$MOZ_APP_REMOTINGNAME"; then - MOZ_APP_REMOTINGNAME=$MOZ_APP_NAME -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(,) - if test "$(basename $MOZ_BUILD_APP)" = "suite"; then - MOZ_APP_MAXVERSION=`echo $MOZ_APP_VERSION | sed "s|\(^[0-9]*\.[0-9]*\).*|\1|"`.* - else - MOZ_APP_MAXVERSION=`echo $MOZ_APP_VERSION | sed "s|\(^[0-9]*\).*|\1|"`.* - fi - 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_REMOTINGNAME) -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_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) - -# Build revisions should always be present in official builds -if test "$MOZILLA_OFFICIAL"; then - MOZ_INCLUDE_SOURCE_INFO=1 -fi - -AC_SUBST(MOZ_INCLUDE_SOURCE_INFO) - -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 -z "$RELEASE_BUILD"; 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"; then - MOZ_DATA_REPORTING=1 - AC_DEFINE(MOZ_DATA_REPORTING) - AC_SUBST(MOZ_DATA_REPORTING) -fi - -dnl win32 options -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` - -HOST_CFLAGS=`echo \ - $HOST_CFLAGS \ - $_DEPEND_CFLAGS` - -HOST_CXXFLAGS=`echo \ - $HOST_CXXFLAGS \ - $_DEPEND_CFLAGS` - -AC_SUBST(MOZ_NATIVE_JPEG) -AC_SUBST(MOZ_NATIVE_PNG) -AC_SUBST(MOZ_NATIVE_BZ2) - -AC_SUBST(MOZ_JPEG_CFLAGS) -AC_SUBST_LIST(MOZ_JPEG_LIBS) -AC_SUBST(MOZ_BZ2_CFLAGS) -AC_SUBST_LIST(MOZ_BZ2_LIBS) -AC_SUBST(MOZ_PNG_CFLAGS) -AC_SUBST_LIST(MOZ_PNG_LIBS) - -if test "$MOZ_WIDGET_TOOLKIT" = gonk -a -n "$MOZ_NUWA_PROCESS"; then - export MOZ_NUWA_PROCESS - AC_DEFINE(MOZ_NUWA_PROCESS) -fi -AC_SUBST(MOZ_NUWA_PROCESS) -if test "$MOZ_WIDGET_TOOLKIT" = gonk -a -n "$MOZ_B2G_LOADER"; then - if test -z "$MOZ_NUWA_PROCESS"; then - AC_MSG_ERROR([B2G loader works with Nuwa]); - fi - export MOZ_B2G_LOADER - AC_DEFINE(MOZ_B2G_LOADER) -fi -AC_SUBST(MOZ_B2G_LOADER) - -AC_SUBST(NSPR_CFLAGS) -AC_SUBST(MOZ_NATIVE_NSPR) - -AC_SUBST(NSS_CFLAGS) -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(HAVE_TOOLCHAIN_SUPPORT_MSSSE3) -AC_SUBST(HAVE_TOOLCHAIN_SUPPORT_MSSE4_1) -AC_SUBST(HAVE_X86_AVX2) -AC_SUBST(GCC_USE_GNU_LD) - -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(WIN32_CONSOLE_EXE_LDFLAGS) -AC_SUBST(WIN32_GUI_EXE_LDFLAGS) - -AC_SUBST(MOZ_WAVE) -AC_SUBST(MOZ_VORBIS) -AC_SUBST(MOZ_TREMOR) -AC_SUBST(MOZ_WEBM) -AC_SUBST(MOZ_WMF) -AC_SUBST(MOZ_FFMPEG) -AC_SUBST(MOZ_FMP4) -AC_SUBST(MOZ_DIRECTSHOW) -AC_SUBST(MOZ_ANDROID_OMX) -AC_SUBST(MOZ_APPLEMEDIA) -AC_SUBST(MOZ_OMX_PLUGIN) -AC_SUBST(MOZ_VPX_ERROR_CONCEALMENT) -AC_SUBST(MOZ_VPX) -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(MOZ_CODE_COVERAGE) -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(LIBJPEG_TURBO_ARM64_ASM) -AC_SUBST(LIBJPEG_TURBO_MIPS_ASM) - -AC_SUBST(MOZ_PACKAGE_JSSHELL) -AC_SUBST(MOZ_FOLD_LIBS) -AC_SUBST(SOCORRO_SYMBOL_UPLOAD_TOKEN_FILE) - -AC_SUBST(MOZ_ENABLE_SZIP) -AC_SUBST(MOZ_SZIP_FLAGS) - -AC_DEFINE(MOZ_PHOENIX_EXTENSIONS) -AC_SUBST(MOZ_PHOENIX_EXTENSIONS) - -dnl Host JavaScript runtime, if any, to use during cross compiles. -AC_SUBST(JS_BINARY) - -if test "$MOZ_DEBUG"; then - MOZ_EM_DEBUG=1 -fi -AC_SUBST(MOZ_EM_DEBUG) - -AC_SUBST(NSS_EXTRA_SYMBOLS_FILE) - -if test -n "$COMPILE_ENVIRONMENT"; then -AC_CHECK_FUNCS(posix_fadvise posix_fallocate) - -dnl Check for missing components -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([Can't find X headers (install libxt-dev (Debian/Ubuntu), libXt-devel (Fedora), or xorg-x11-libXt-devel (SuSE)).]) ]) - 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 - -fi # COMPILE_ENVIRONMENT - -dnl Set various defines and substitutions -dnl ======================================================== - -if test "$OS_ARCH" != "WINNT"; 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 - -if test -n "$MOZ_DEV_EDITION"; then - AC_DEFINE(MOZ_DEV_EDITION) -fi - -if test "$MOZ_DEBUG"; then - A11Y_LOG=1 -fi -case "$MOZ_UPDATE_CHANNEL" in -aurora|beta|release|esr) - ;; -*) - A11Y_LOG=1 - ;; -esac -AC_SUBST(A11Y_LOG) -if test -n "$A11Y_LOG"; then - AC_DEFINE(A11Y_LOG) -fi - -AC_SUBST(MOZILLA_VERSION) - -AC_SUBST(ac_configure_args) - -dnl ======================================================== -dnl Directive 4 -dnl ======================================================== - -DIRECTIVE4_LIST="MOZ_OFFICIAL_BRANDING=$MOZ_OFFICIAL_BRANDING -MOZ_BRANDING_DIRECTORY=$MOZ_BRANDING_DIRECTORY -MOZ_PHOENIX=$MOZ_PHOENIX -MOZ_SANDBOX=$MOZ_SANDBOX -MOZ_NATIVE_LIBEVENT=$MOZ_NATIVE_LIBEVENT -MOZ_NATIVE_NSS=$MOZ_NATIVE_NSS -MOZ_NATIVE_NSPR=$MOZ_NATIVE_NSPR -MOZ_NATIVE_JPEG=$MOZ_NATIVE_JPEG -MOZ_NATIVE_ZLIB=$MOZ_NATIVE_ZLIB -MOZ_NATIVE_BZ2=$MOZ_NATIVE_BZ2 -MOZ_NATIVE_PNG=$MOZ_NATIVE_PNG -MOZ_NATIVE_LIBVPX=$MOZ_NATIVE_LIBVPX -MOZ_NATIVE_SQLITE=$MOZ_NATIVE_SQLITE -MOZ_NATIVE_JEMALLOC=$MOZ_NATIVE_JEMALLOC" - -DIRECTIVE4=`$PYTHON $_topsrcdir/build/directive4.py $DIRECTIVE4_LIST` - -if test -n "$DIRECTIVE4"; then - if test -n "$MC_PRIVATE_BUILD"; then - AC_MSG_WARN([Private Build - The configuration you have chosen to use with official branding deviates from official build configuration. Your build is thus for personal and private use only and must not be (re)distributed - Please see: http://www.palemoon.org/redist.shtml]) - else - AC_MSG_ERROR([Branding Violation - Please see: http://www.palemoon.org/redist.shtml]) - fi -fi - -AC_SUBST(DIRECTIVE4) - -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_AMBIGUITY_RESOLVING_USING -HAVE_CPP_DYNAMIC_CAST_TO_VOID_PTR -HAVE_CPP_PARTIAL_SPECIALIZATION -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 -" - -dnl ======================================================== -dnl ICU Support -dnl ======================================================== - -# Internationalization isn't built or exposed by default in non-desktop -# builds. Bugs to enable: -# -# Android: bug 864843 -# B2G: bug 866301 - -if test "$MOZ_WIDGET_TOOLKIT" = "android" || - test "$MOZ_BUILD_APP" = "b2g" || - test "$MOZ_BUILD_APP" = "b2g/dev"; then - _INTL_API=no -else - _INTL_API=yes -fi - -if test "$MOZ_WIDGET_TOOLKIT" = "cocoa"; then - USE_ICU=1 -fi - -if test "$OS_TARGET" = WINNT; then - MOZ_SHARED_ICU=1 -fi - -MOZ_CONFIG_ICU() - -if test -z "$JS_SHARED_LIBRARY"; then - AC_DEFINE(MOZ_STATIC_JS) -fi -AC_SUBST(JS_SHARED_LIBRARY) - -MOZ_CREATE_CONFIG_STATUS() - -# No need to run subconfigures when building with LIBXUL_SDK_DIR -if test "$COMPILE_ENVIRONMENT" -a -z "$LIBXUL_SDK_DIR"; then - MOZ_SUBCONFIGURE_ICU() - MOZ_SUBCONFIGURE_FFI() -fi - -# 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 - -# 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="--build=$build --host=$target --enable-stats --with-jemalloc-prefix=je_ --disable-valgrind" - 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= - 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 - # Force disable DSS support in jemalloc. - ac_configure_args="$ac_configure_args ac_cv_func_sbrk=false" - - # Make Linux builds munmap freed chunks instead of recycling them. - ac_configure_args="$ac_configure_args --enable-munmap" - - if ! test -e memory/jemalloc; then - mkdir -p memory/jemalloc - fi - - AC_OUTPUT_SUBDIRS(memory/jemalloc/src) - 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" - # Spaces in the *_CFLAGS and *_LIBS variables are intentionally placed - # to force freetype to use our settings rather than autodetecting - if test -n "$MOZ_NATIVE_PNG"; then - export LIBPNG_CFLAGS="$MOZ_PNG_CFLAGS " - else - export LIBPNG_CFLAGS="-I$_objdir/dist/include" - fi - export LIBPNG_LIBS="$MOZ_PNG_LIBS " - export ZLIB_CFLAGS="$MOZ_ZLIB_CFLAGS " - export ZLIB_LIBS="$MOZ_ZLIB_LIBS " - 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 --with-zlib=yes --without-bzip2 --with-png=yes --without-harfbuzz" - - if ! test -e modules; then - mkdir modules - fi - # Only export CC, CXX and RANLIB for the subconfigure, and avoid spilling - # that further down the road. - (export CC CXX RANLIB; - AC_OUTPUT_SUBDIRS(modules/freetype2) - ) || exit 1 -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_CXXFLAGS="$_SUBDIR_HOST_CXXFLAGS" - 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_srcdir="$srcdir" - srcdir="$srcdir/.." - _save_ac_configure_args="$ac_configure_args" - ac_configure_args="$_subconfigure_config_args" - AC_OUTPUT_SUBDIRS_NOW("$_subconfigure_subdir",$cache_file) - ac_configure_args="$_save_ac_configure_args" - srcdir="$_save_srcdir" -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 - -MOZ_SUBCONFIGURE_NSPR() - -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_CXXFLAGS="$_SUBDIR_HOST_CXXFLAGS" -HOST_LDFLAGS="$_SUBDIR_HOST_LDFLAGS" -RC= - -# Run the SpiderMonkey 'configure' script. -dist=$MOZ_BUILD_ROOT/dist -ac_configure_args="$_SUBDIR_CONFIG_ARGS" - -# --with-system-nspr will have been converted into the relevant $NSPR_CFLAGS -# and $NSPR_LIBS. -ac_configure_args="`echo $ac_configure_args | sed -e 's/--with-system-nspr\S* *//'`" - -ac_configure_args="$ac_configure_args --enable-threadsafe" - -if test "$_INTL_API" = no; then - ac_configure_args="$ac_configure_args --without-intl-api" -fi - -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" - if test -n "$MOZ_DISABLE_EXPORT_JS"; then - ac_configure_args="$ac_configure_args --disable-export-js" - fi -fi -if test -n "$NSPR_CFLAGS" -o -n "$NSPR_LIBS"; 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 --prefix=$dist" -if test "$MOZ_MEMORY"; then - ac_configure_args="$ac_configure_args --enable-jemalloc" -fi -if test -n "$MOZ_GLUE_IN_PROGRAM"; then - export MOZ_GLUE_IN_PROGRAM -fi -if test -n "$ZLIB_IN_MOZGLUE"; then - MOZ_ZLIB_LIBS= -fi -export MOZ_NATIVE_ZLIB -export MOZ_ZLIB_CFLAGS -export MOZ_ZLIB_LIBS -export MOZ_APP_NAME -export MOZ_APP_REMOTINGNAME -export DONT_POPULATE_VIRTUALENV=1 -export PYTHON -export MOZILLA_CENTRAL_PATH=$_topsrcdir -export STLPORT_CPPFLAGS -export STLPORT_LIBS -export JS_STANDALONE=no -export MOZ_LINKER -export ZLIB_IN_MOZGLUE - -if ! test -e js; then - mkdir js -fi - -AC_OUTPUT_SUBDIRS(js/src,$cache_file) -ac_configure_args="$_SUBDIR_CONFIG_ARGS" - -fi # COMPILE_ENVIRONMENT && !LIBXUL_SDK_DIR - -export WRITE_MOZINFO=1 -dnl we need to run config.status after js/src subconfigure because we're -dnl traversing its moz.build and we need its config.status for that. -dnl However, writing our own config.status needs to happen before -dnl subconfigures because the setup surrounding subconfigures alters -dnl many AC_SUBSTed variables. -MOZ_RUN_CONFIG_STATUS() -unset WRITE_MOZINFO |