summaryrefslogtreecommitdiffstats
path: root/old-configure.in
diff options
context:
space:
mode:
Diffstat (limited to 'old-configure.in')
-rw-r--r--old-configure.in2811
1 files changed, 2811 insertions, 0 deletions
diff --git a/old-configure.in b/old-configure.in
new file mode 100644
index 0000000000..0ac86af0c8
--- /dev/null
+++ b/old-configure.in
@@ -0,0 +1,2811 @@
+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
+
+dnl ========================================================
+dnl =
+dnl = Don't change the following lines. Doing so breaks:
+dnl =
+dnl = CFLAGS="-foo" ./configure
+dnl =
+dnl ========================================================
+CFLAGS="${CFLAGS=}"
+CPPFLAGS="${CPPFLAGS=}"
+CXXFLAGS="${CXXFLAGS=}"
+LDFLAGS="${LDFLAGS=}"
+HOST_CFLAGS="${HOST_CFLAGS=}"
+HOST_CXXFLAGS="${HOST_CXXFLAGS=}"
+HOST_LDFLAGS="${HOST_LDFLAGS=}"
+
+dnl ========================================================
+dnl = Preserve certain environment flags passed to configure
+dnl = We want sub projects to receive the same flags
+dnl = untainted by this configure script
+dnl ========================================================
+_SUBDIR_CC="$CC"
+_SUBDIR_CXX="$CXX"
+_SUBDIR_CFLAGS="$CFLAGS"
+_SUBDIR_CPPFLAGS="$CPPFLAGS"
+_SUBDIR_CXXFLAGS="$CXXFLAGS"
+_SUBDIR_LDFLAGS="$LDFLAGS"
+_SUBDIR_HOST_CC="$HOST_CC"
+_SUBDIR_HOST_CFLAGS="$HOST_CFLAGS"
+_SUBDIR_HOST_CXXFLAGS="$HOST_CXXFLAGS"
+_SUBDIR_HOST_LDFLAGS="$HOST_LDFLAGS"
+_SUBDIR_CONFIG_ARGS="$ac_configure_args"
+
+dnl Set the version number of the libs included with mozilla
+dnl ========================================================
+MOZPNG=10635
+
+dnl Set the minimum version of toolkit libs used by mozilla
+dnl ========================================================
+GLIB_VERSION=2.42
+GLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_42
+GLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_42
+CAIRO_VERSION=1.10
+GTK2_VERSION=2.18.0
+GTK3_VERSION=3.14.0
+GDK_VERSION_MAX_ALLOWED=GDK_VERSION_3_14
+W32API_VERSION=3.14
+DBUS_VERSION=0.60
+
+dnl Set various checks
+dnl ========================================================
+MISSING_X=
+
+dnl Initialize the Pthread test variables early so they can be
+dnl overridden by each platform.
+dnl ========================================================
+MOZ_USE_PTHREADS=
+_PTHREAD_LDFLAGS=""
+
+LDFLAGS="$LDFLAGS $LINKER_LDFLAGS"
+
+if test "$COMPILE_ENVIRONMENT"; then
+ MOZ_ANDROID_NDK
+fi # COMPILE_ENVIRONMENT
+
+case "$target" in
+*-android*|*-linuxandroid*)
+ ;;
+*-linux*)
+ AC_PATH_PROG(OBJCOPY,objcopy)
+ ;;
+esac
+
+AC_SUBST(OBJCOPY)
+
+dnl ========================================================
+dnl Checks for compilers.
+dnl ========================================================
+
+if test "$COMPILE_ENVIRONMENT"; then
+
+# Run some logic to figure out exe extensions (mostly for mingw's sake)
+AC_EXEEXT
+
+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
+ MOZ_PATH_PROGS(AS, $AS as, $CC)
+ AC_CHECK_PROGS(STRIP, strip, :)
+ AC_CHECK_PROGS(OTOOL, otool, :)
+fi
+
+MOZ_TOOL_VARIABLES
+
+dnl ========================================================
+dnl Special win32 checks
+dnl ========================================================
+
+WINVER=601
+
+case "$target" in
+*-mingw*)
+ if test "$GCC" != "yes"; then
+ # Check to see if we are really running in a msvc environemnt
+ _WIN32_MSVC=1
+
+ # Make sure compilers are valid
+ CXXFLAGS="$CXXFLAGS -TP"
+ 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([,])
+
+ AC_DEFINE(_CRT_SECURE_NO_WARNINGS)
+ AC_DEFINE(_CRT_NONSTDC_NO_WARNINGS)
+ AC_DEFINE(_USE_MATH_DEFINES) # Otherwise MSVC's math.h doesn't #define M_PI.
+
+ _CC_SUITE=14
+ MSVC_C_RUNTIME_DLL=vcruntime140.dll
+ MSVC_CXX_RUNTIME_DLL=msvcp140.dll
+
+ # -Zc:sizedDealloc- disables C++14 global sized deallocation (see bug 1160146)
+ CXXFLAGS="$CXXFLAGS -Zc:sizedDealloc-"
+
+ if test -n "$WIN_UCRT_REDIST_DIR"; then
+ if test ! -d "$WIN_UCRT_REDIST_DIR"; then
+ AC_MSG_ERROR([Invalid Windows UCRT Redist directory: ${WIN_UCRT_REDIST_DIR}])
+ fi
+ WIN_UCRT_REDIST_DIR=`cd "$WIN_UCRT_REDIST_DIR" && (pwd -W 2>/dev/null || pwd)`
+ fi
+
+ AC_SUBST(MSVC_C_RUNTIME_DLL)
+ AC_SUBST(MSVC_CXX_RUNTIME_DLL)
+
+ AC_DEFINE(HAVE_SEH_EXCEPTIONS)
+
+ if test -n "$WIN32_REDIST_DIR"; then
+ if test ! -d "$WIN32_REDIST_DIR"; then
+ AC_MSG_ERROR([Invalid Win32 Redist directory: ${WIN32_REDIST_DIR}])
+ fi
+ WIN32_REDIST_DIR=`cd "$WIN32_REDIST_DIR" && (pwd -W 2>/dev/null || pwd)`
+ fi
+
+ # Check linker version, except in lld builds
+ case "$LINKER" in
+ *lld*)
+ ;;
+ *)
+ _LD_FULL_VERSION=`"${LINKER}" -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
+ ;;
+ esac
+
+ INCREMENTAL_LINKER=1
+
+ unset _MSVC_VER_FILTER
+
+ WRAP_STL_INCLUDES=1
+ STL_FLAGS="-I${DIST}/stl_wrappers"
+ 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
+ # 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)
+ fi # !GNU_CC
+
+ CFLAGS="$CFLAGS -D_HAS_EXCEPTIONS=0"
+ CXXFLAGS="$CXXFLAGS -D_HAS_EXCEPTIONS=0"
+
+ AC_DEFINE_UNQUOTED(WINVER,0x$WINVER)
+ AC_DEFINE_UNQUOTED(_WIN32_WINNT,0x$WINVER)
+ # Require OS features provided by IE 8.0 (Win7)
+ AC_DEFINE_UNQUOTED(_WIN32_IE,0x0800)
+
+ ;;
+esac
+
+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_ISATTY)
+fi
+
+fi # COMPILE_ENVIRONMENT
+
+AC_SUBST(GNU_CC)
+AC_SUBST(GNU_CXX)
+
+AC_SUBST_LIST(STL_FLAGS)
+AC_SUBST(WRAP_STL_INCLUDES)
+
+dnl ========================================================
+dnl Checks for programs.
+dnl ========================================================
+if test "$COMPILE_ENVIRONMENT"; then
+
+AC_PATH_XTRA
+
+XCFLAGS="$X_CFLAGS"
+
+fi # COMPILE_ENVIRONMENT
+
+dnl ========================================================
+dnl set the defaults first
+dnl ========================================================
+MOZ_USER_DIR=".mozilla"
+
+MOZ_FIX_LINK_PATHS="-Wl,-rpath-link,${DIST}/bin -Wl,-rpath-link,${prefix}/lib"
+
+MOZ_FS_LAYOUT=unix
+
+dnl Configure platform-specific CPU architecture compiler options.
+dnl ==============================================================
+if test "$COMPILE_ENVIRONMENT"; then
+ MOZ_ARCH_OPTS
+fi # COMPILE_ENVIRONMENT
+
+dnl ========================================================
+dnl Android libstdc++
+dnl ========================================================
+
+MOZ_ANDROID_CPU_ARCH
+if test "$COMPILE_ENVIRONMENT"; then
+ MOZ_ANDROID_STLPORT
+fi # COMPILE_ENVIRONMENT
+
+dnl ========================================================
+dnl Suppress Clang Argument Warnings
+dnl ========================================================
+WARNINGS_CFLAGS="$_WARNINGS_CFLAGS"
+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
+
+if test -n "$COMPILE_ENVIRONMENT"; then
+ MOZ_CONFIG_SANITIZE
+fi
+
+dnl ========================================================
+dnl GNU specific defaults
+dnl ========================================================
+if test "$GNU_CC"; then
+ MMX_FLAGS="-mmmx"
+ SSE_FLAGS="-msse"
+ SSE2_FLAGS="-msse2"
+ SSSE3_FLAGS="-mssse3"
+ CFLAGS="$CFLAGS -fno-strict-aliasing"
+ DSO_CFLAGS=''
+
+ if test "$OS_ARCH" != "WINNT" -o -z "$CLANG_CC"; then
+ DSO_PIC_CFLAGS='-fPIC'
+ ASFLAGS="$ASFLAGS -fPIC"
+ fi
+
+ 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]),
+ AC_MSG_RESULT([no])
+ LDFLAGS=$_SAVE_LDFLAGS)
+
+ AC_MSG_CHECKING([for -z relro option to ld])
+ _SAVE_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS -Wl,-z,relro"
+ AC_TRY_LINK(,,AC_MSG_RESULT([yes]),
+ AC_MSG_RESULT([no])
+ LDFLAGS=$_SAVE_LDFLAGS)
+
+ AC_MSG_CHECKING([for -z nocopyreloc option to ld])
+ _SAVE_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS -Wl,-z,nocopyreloc"
+ AC_TRY_LINK(,,AC_MSG_RESULT([yes]),
+ AC_MSG_RESULT([no])
+ LDFLAGS=$_SAVE_LDFLAGS)
+
+ AC_MSG_CHECKING([for -Bsymbolic-functions option to ld])
+ _SAVE_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS -Wl,-Bsymbolic-functions"
+ AC_TRY_LINK(,,AC_MSG_RESULT([yes]),
+ AC_MSG_RESULT([no])
+ LDFLAGS=$_SAVE_LDFLAGS)
+
+ AC_MSG_CHECKING([for --build-id=sha1 option to ld])
+ _SAVE_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS -Wl,--build-id=sha1"
+ AC_TRY_LINK(,,AC_MSG_RESULT([yes]),
+ 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
+ ;;
+
+ ppc*)
+ AC_MSG_CHECKING([whether we can enable AltiVec support])
+ HAVE_ALTIVEC=
+ _SAVE_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS -maltivec"
+ AC_TRY_COMPILE(,,AC_MSG_RESULT([yes])
+ [HAVE_ALTIVEC=1],
+ AC_MSG_RESULT([no]))
+ CFLAGS=$_SAVE_CFLAGS
+ ;;
+ 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_ASAN$MOZ_MSAN$MOZ_UBSAN$MOZ_TSAN$FUZZING_INTERFACES"; 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
+
+ _DEFINES_CFLAGS="-include $_objdir/mozilla-config.h -DMOZILLA_CLIENT"
+
+ ASFLAGS="$ASFLAGS $_DEFINES_CFLAGS"
+fi
+
+if test "$GNU_CXX"; then
+ CXXFLAGS="$CXXFLAGS -fno-exceptions -fno-strict-aliasing"
+
+ _DEFINES_CXXFLAGS="-DMOZILLA_CLIENT -include $_objdir/mozilla-config.h"
+fi
+
+dnl ========================================================
+dnl = Enable DMD
+dnl ========================================================
+
+if test "$MOZ_DMD"; then
+ if test "${CPU_ARCH}" = "arm"; then
+ CFLAGS="$CFLAGS -funwind-tables"
+ CXXFLAGS="$CXXFLAGS -funwind-tables"
+ fi
+fi
+
+dnl ========================================================
+dnl System overrides of the defaults for host
+dnl ========================================================
+case "$host" in
+*mingw*)
+ if test -n "$_WIN32_MSVC"; then
+ HOST_CFLAGS="$HOST_CFLAGS"
+ else
+ HOST_CFLAGS="$HOST_CFLAGS -mwindows"
+ fi
+ HOST_CFLAGS="$HOST_CFLAGS -DXP_WIN -DWIN32 -D_WIN32 -D_CRT_SECURE_NO_WARNINGS"
+ HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}"
+ HOST_BIN_SUFFIX=.exe
+
+ 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"
+ HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}"
+ ;;
+
+*-linux*|*-kfreebsd*-gnu|*-gnu*)
+ HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
+ HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}"
+ ;;
+
+*)
+ HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
+ HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}"
+ ;;
+esac
+
+dnl ========================================================
+dnl System overrides of the defaults for target
+dnl ========================================================
+
+case "$target" in
+*-darwin*)
+ MOZ_OPTIMIZE_FLAGS="-O3"
+ CXXFLAGS="$CXXFLAGS -stdlib=libc++"
+ DSO_LDOPTS=''
+ # 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";
+
+ dnl DTrace and -dead_strip don't interact well. See bug 403132.
+ dnl ===================================================================
+ if 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
+
+ MOZ_FIX_LINK_PATHS="-Wl,-executable_path,${DIST}/bin"
+ ;;
+
+*-android*|*-linuxandroid*)
+ if test "$COMPILE_ENVIRONMENT" -a -n "$MOZ_MEMORY"; then
+ MOZ_LINKER=1
+ fi
+
+ if test -z "$CLANG_CC"; then
+ MOZ_OPTIMIZE_FLAGS="-freorder-blocks -fno-reorder-functions -Os"
+ else
+ # From https://github.com/android-ndk/ndk/issues/133#issuecomment-308549264
+ # -Oz is smaller than -Os on clang.
+ MOZ_OPTIMIZE_FLAGS="-Oz"
+ # Disable the outliner, which causes performance regressions, and is
+ # enabled on some platforms at -Oz.
+ if test -z "$MOZ_LTO"; then
+ DISABLE_OUTLINER="-mno-outline"
+ _SAVE_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS $DISABLE_OUTLINER"
+ AC_TRY_COMPILE(,,[MOZ_OPTIMIZE_FLAGS="$MOZ_OPTIMIZE_FLAGS $DISABLE_OUTLINER"])
+ CFLAGS="$_SAVE_CFLAGS"
+ else
+ DISABLE_OUTLINER="-Wl,-plugin-opt=-enable-machine-outliner=never"
+ _SAVE_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS $MOZ_LTO_LDFLAGS $DISABLE_OUTLINER"
+ AC_TRY_LINK(,,[MOZ_OPTIMIZE_LDFLAGS="$MOZ_OPTIMIZE_LDFLAGS $DISABLE_OUTLINER"])
+ LDFLAGS="$_SAVE_LDFLAGS"
+ fi
+ fi
+ ;;
+
+*-*linux*)
+ if test "$GNU_CC" -o "$GNU_CXX"; then
+ MOZ_PGO_OPTIMIZE_FLAGS="-O3"
+ if test -n "$MOZ_DEBUG"; then
+ MOZ_OPTIMIZE_FLAGS="-Os"
+ else
+ MOZ_OPTIMIZE_FLAGS="-O2"
+ fi
+ if test -z "$CLANG_CC"; then
+ MOZ_OPTIMIZE_FLAGS="-freorder-blocks $MOZ_OPTIMIZE_FLAGS"
+ fi
+ fi
+
+ case "${target_cpu}" in
+ alpha*)
+ CFLAGS="$CFLAGS -mieee"
+ CXXFLAGS="$CXXFLAGS -mieee"
+ ;;
+ esac
+ ;;
+*-mingw*)
+ DSO_CFLAGS=
+ DSO_PIC_CFLAGS=
+ # 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
+ # $GNU_CC will match gcc and clang; while $CLANG_CC will match only clang
+ if test -z "$CLANG_CC"; then
+ AC_MSG_ERROR(Firefox cannot be built with mingw-gcc and requires a mingw-clang toolchain to work)
+ fi
+
+ DSO_LDOPTS='-shared'
+ # mingw doesn't require kernel32, user32, and advapi32 explicitly
+ LIBS="$LIBS -luuid -lusp10 -lgdi32 -lwinmm -lwsock32 -luserenv -lsecur32"
+ MOZ_FIX_LINK_PATHS=
+
+ MOZ_OPTIMIZE_FLAGS="-O2"
+
+ WIN32_CONSOLE_EXE_LDFLAGS=-mconsole
+ WIN32_GUI_EXE_LDFLAGS=-mwindows
+
+ # Silence problematic clang warnings
+ CXXFLAGS="$CXXFLAGS -Wno-incompatible-ms-struct"
+ LDFLAGS="$LDFLAGS -Wl,--no-insert-timestamp"
+ else
+ TARGET_COMPILER_ABI=msvc
+ STRIP='echo not_strip'
+ # aarch64 doesn't support subsystems below 6.02
+ if test "$CPU_ARCH" = "aarch64"; then
+ WIN32_SUBSYSTEM_VERSION=6.02
+ else
+ WIN32_SUBSYSTEM_VERSION=6.01
+ fi
+ 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
+ _DEFINES_CFLAGS="-FI $_objdir/mozilla-config.h -DMOZILLA_CLIENT"
+ _DEFINES_CXXFLAGS="-FI $_objdir/mozilla-config.h -DMOZILLA_CLIENT"
+ CFLAGS="$CFLAGS -W3 -Gy -Zc:inline"
+ CXXFLAGS="$CXXFLAGS -W3 -Gy -Zc:inline"
+ if test -z "$CLANG_CL"; then
+ CPPFLAGS="$CPPFLAGS -utf-8"
+ fi
+ if test "$CPU_ARCH" = "x86"; then
+ dnl VS2012+ defaults to -arch:SSE2. We want to target nothing
+ dnl more recent, so set that explicitly here unless another
+ dnl target arch has already been set.
+ changequote(,)
+ if test -z `echo $CFLAGS | grep -i [-/]arch:`; then
+ CFLAGS="$CFLAGS -arch:SSE2"
+ fi
+ if test -z `echo $CXXFLAGS | grep -i [-/]arch:`; then
+ CXXFLAGS="$CXXFLAGS -arch:SSE2"
+ fi
+ changequote([,])
+ SSE_FLAGS="-arch:SSE"
+ SSE2_FLAGS="-arch:SSE2"
+ dnl MSVC allows the use of intrinsics without any flags
+ dnl and doesn't have a separate arch for SSSE3
+ SSSE3_FLAGS="-arch:SSE2"
+ fi
+ dnl clang-cl requires appropriate flags to enable SSSE3 support
+ dnl on all architectures.
+ if test -n "$CLANG_CL"; then
+ SSSE3_FLAGS="-mssse3"
+ fi
+ dnl VS2013+ supports -Gw for better linker optimizations.
+ dnl http://blogs.msdn.com/b/vcblog/archive/2013/09/11/introducing-gw-compiler-switch.aspx
+ dnl Disabled on ASan because it causes false-positive ODR violations.
+ if test -z "$MOZ_ASAN"; then
+ CFLAGS="$CFLAGS -Gw"
+ CXXFLAGS="$CXXFLAGS -Gw"
+ else
+ # String tail merging doesn't play nice with ASan's ODR checker.
+ LDFLAGS="$LDFLAGS -opt:nolldtailmerge"
+ fi
+ if test -n "$CLANG_CL"; then
+ # XXX We should combine some of these with our generic GCC-style
+ # warning checks.
+ #
+ # Suppress the clang-cl warning for the inline 'new' and 'delete' in mozalloc
+ CXXFLAGS="$CXXFLAGS -Wno-inline-new-delete"
+ # We use offsetof on non-POD objects all the time.
+ # We also suppress this warning on other platforms.
+ CXXFLAGS="$CXXFLAGS -Wno-invalid-offsetof"
+ # This warns for reasonable things like:
+ # enum { X = 0xffffffffU };
+ # which is annoying for IDL headers.
+ CXXFLAGS="$CXXFLAGS -Wno-microsoft-enum-value"
+ # This warns for cases that would be reached by the Microsoft
+ # #include rules, but also currently warns on cases that would
+ # *also* be reached by standard C++ include rules. That
+ # behavior doesn't seem useful, so we turn it off.
+ CXXFLAGS="$CXXFLAGS -Wno-microsoft-include"
+ # We normally error out on unknown pragmas, but since clang-cl
+ # claims to be MSVC, it would be difficult to add
+ # #if defined(_MSC_VER) && !defined(__clang__) everywhere we
+ # use such pragmas, so just ignore them.
+ CFLAGS="$CFLAGS -Wno-unknown-pragmas"
+ CXXFLAGS="$CXXFLAGS -Wno-unknown-pragmas"
+ # We get errors about various #pragma intrinsic directives from
+ # clang-cl, and we don't need to hear about those.
+ CFLAGS="$CFLAGS -Wno-ignored-pragmas"
+ CXXFLAGS="$CXXFLAGS -Wno-ignored-pragmas"
+ # clang-cl's Intrin.h marks things like _ReadWriteBarrier
+ # as __attribute((__deprecated__)). This is nice to know,
+ # but since we don't get the equivalent warning from MSVC,
+ # let's just ignore it.
+ CFLAGS="$CFLAGS -Wno-deprecated-declarations"
+ CXXFLAGS="$CXXFLAGS -Wno-deprecated-declarations"
+ # We use a function like:
+ # __declspec(noreturn) __inline void f() {}
+ # which -Winvalid-noreturn complains about. Again, MSVC seems
+ # OK with it, so let's silence the warning.
+ CFLAGS="$CFLAGS -Wno-invalid-noreturn"
+ CXXFLAGS="$CXXFLAGS -Wno-invalid-noreturn"
+ # Missing |override| on virtual function declarations isn't
+ # something that MSVC currently warns about.
+ CXXFLAGS="$CXXFLAGS -Wno-inconsistent-missing-override"
+ # We use -DHAS_EXCEPTIONS=0, which removes the |throw()|
+ # declaration on |operator delete(void*)|. However, clang-cl
+ # must internally declare |operator delete(void*)| differently,
+ # which causes this warning for virtually every file in the
+ # tree. clang-cl doesn't support -fno-exceptions or equivalent,
+ # so there doesn't seem to be any way to convince clang-cl to
+ # declare |delete| differently. Therefore, suppress this
+ # warning.
+ CXXFLAGS="$CXXFLAGS -Wno-implicit-exception-spec-mismatch"
+ # Macros like STDMETHOD() and IFACEMETHOD() can declare
+ # __attribute__((nothrow)) on their respective method declarations,
+ # while the definitions are left without the matching attribute.
+ CXXFLAGS="$CXXFLAGS -Wno-microsoft-exception-spec"
+ # At least one MSVC header and several headers in-tree have
+ # unused typedefs, so turn this on.
+ CXXFLAGS="$CXXFLAGS -Wno-unused-local-typedef"
+ # jemalloc uses __declspec(allocator) as a profiler hint,
+ # which clang-cl doesn't understand.
+ CXXFLAGS="$CXXFLAGS -Wno-ignored-attributes"
+ # __attribute__((unused)) really means "might be unused" and
+ # we use it to avoid warnings about things that are unused
+ # in some compilation units, but used in many others. This
+ # warning insists on complaining about the latter case, which
+ # is annoying, and rather noisy.
+ CXXFLAGS="$CXXFLAGS -Wno-used-but-marked-unused"
+ fi
+ # Silence VS2017 15.5+ TR1 deprecation warnings hit by older gtest versions
+ CXXFLAGS="$CXXFLAGS -D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING"
+ LIBS="$LIBS user32.lib gdi32.lib winmm.lib wsock32.lib advapi32.lib secur32.lib"
+ MOZ_DEBUG_LDFLAGS='-DEBUG'
+ if test "$HOST_OS_ARCH" != "WINNT"; then
+ # %_PDB% is a special signal to emit only the PDB basename. This
+ # avoids problems in Windows tools that don't like forward-slashes.
+ MOZ_DEBUG_LDFLAGS="$MOZ_DEBUG_LDFLAGS -PDBALTPATH:%_PDB%"
+ fi
+ # Use a higher optimization level for clang-cl, so we can come closer
+ # to MSVC's performance numbers (see bug 1443590).
+ if test -n "$CLANG_CL"; then
+ MOZ_OPTIMIZE_FLAGS='-O2'
+ else
+ MOZ_OPTIMIZE_FLAGS='-O1 -Oi'
+ fi
+ MOZ_FIX_LINK_PATHS=
+ LDFLAGS="$LDFLAGS -LARGEADDRESSAWARE"
+ if test -z "$DEVELOPER_OPTIONS"; then
+ LDFLAGS="$LDFLAGS -RELEASE"
+ fi
+ dnl Minimum reqiurement of Gecko is VS2015 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 VS2015
+ HAVE_X86_AVX2=1
+ fi
+ AC_DEFINE(WIN32_LEAN_AND_MEAN)
+ dnl See http://support.microsoft.com/kb/143208 to use STL
+ AC_DEFINE(NOMINMAX)
+ BIN_SUFFIX='.exe'
+ MOZ_USER_DIR="Mozilla"
+
+ 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 -n "$GNU_CC"; then
+ CFLAGS="$CFLAGS -mstackrealign"
+ CXXFLAGS="$CXXFLAGS -mstackrealign"
+ LDFLAGS="$LDFLAGS -Wl,--large-address-aware"
+ else
+ DSO_LDOPTS="$DSO_LDOPTS -MACHINE:X86"
+ LDFLAGS="$LDFLAGS -SAFESEH"
+ fi
+
+ AC_DEFINE(_X86_)
+ ;;
+ x86_64-*)
+ if test -n "$_WIN32_MSVC"; then
+ DSO_LDOPTS="$DSO_LDOPTS -MACHINE:X64"
+ fi
+ AC_DEFINE(_AMD64_)
+ ;;
+ aarch64-*)
+ if test -n "$_WIN32_MSVC"; then
+ DSO_LDOPTS="$DSO_LDOPTS -MACHINE:ARM64"
+ fi
+ AC_DEFINE(_ARM64_)
+ ;;
+ *)
+ 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
+ DSO_PIC_CFLAGS='-fPIC -DPIC'
+ DSO_LDOPTS='-shared'
+ MOZ_PROGRAM_LDFLAGS="$MOZ_PROGRAM_LDFLAGS -Wl,--export-dynamic"
+ else
+ DSO_PIC_CFLAGS='-fPIC -DPIC'
+ DSO_LDOPTS='-shared'
+ fi
+ # This will fail on a.out systems prior to 1.5.1_ALPHA.
+ if test "$LIBRUNPATH"; then
+ DSO_LDOPTS="-Wl,-R$LIBRUNPATH $DSO_LDOPTS"
+ fi
+ ;;
+
+*-openbsd*)
+ if test -z "$X11BASE"; then
+ X11BASE=/usr/X11R6
+ fi
+ MOZ_FIX_LINK_PATHS="$MOZ_FIX_LINK_PATHS -Wl,-rpath-link,${X11BASE}/lib"
+ DSO_CFLAGS=''
+ DSO_PIC_CFLAGS='-fPIC'
+ DSO_LDOPTS='-shared -fPIC'
+ if test "$LIBRUNPATH"; then
+ DSO_LDOPTS="-R$LIBRUNPATH $DSO_LDOPTS"
+ fi
+ ;;
+
+*-solaris*)
+ MOZ_FIX_LINK_PATHS="-L${DIST}/bin"
+ ;;
+
+esac
+
+if test -z "$MOZ_OPTIMIZE_FLAGS"; then
+ MOZ_OPTIMIZE_FLAGS="-O"
+fi
+
+AC_SUBST_LIST(MMX_FLAGS)
+AC_SUBST_LIST(SSE_FLAGS)
+AC_SUBST_LIST(SSE2_FLAGS)
+AC_SUBST_LIST(SSSE3_FLAGS)
+
+AC_SUBST(MOZ_LINKER)
+if test -n "$MOZ_LINKER"; then
+ AC_DEFINE(MOZ_LINKER)
+ MOZ_LINKER_EXTRACT=1
+ AC_CHECK_PROGS(XZ, xz)
+fi
+
+if test -z "$COMPILE_ENVIRONMENT"; then
+ SKIP_COMPILER_CHECKS=1
+ SKIP_LIBRARY_CHECKS=1
+ MOZ_DEBUGGING_OPTS
+else
+ MOZ_COMPILER_OPTS
+fi # COMPILE_ENVIRONMENT
+
+if test -z "$SKIP_COMPILER_CHECKS"; then
+dnl Checks for typedefs, structures, and compiler characteristics.
+dnl ========================================================
+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
+
+case "${OS_TARGET}" in
+Darwin)
+ ;;
+*)
+ STL_FLAGS="-I${DIST}/stl_wrappers"
+ WRAP_STL_INCLUDES=1
+ ;;
+esac
+
+if test "$MOZ_BUILD_APP" = "tools/crashreporter"; then
+ WRAP_STL_INCLUDES=
+fi
+
+dnl Checks for header files.
+dnl ========================================================
+AC_HEADER_DIRENT
+case "$target_os" in
+bitrig*|dragonfly*|freebsd*|openbsd*)
+# for stuff like -lXshm
+ CPPFLAGS="${CPPFLAGS} ${X_CFLAGS}"
+ ;;
+esac
+
+dnl Check for sin_len and sin6_len - used by SCTP; only appears in Mac/*BSD generally
+AC_CACHE_CHECK(for sockaddr_in.sin_len,
+ ac_cv_sockaddr_in_sin_len,
+ [AC_TRY_COMPILE([#ifdef HAVE_SYS_TYPES_H
+ #include <sys/types.h>
+ #endif
+ #include <netinet/in.h>
+ struct sockaddr_in x;
+ void *foo = (void*) &x.sin_len;],
+ [],
+ [ac_cv_sockaddr_in_sin_len=true],
+ [ac_cv_sockaddr_in_sin_len=false])])
+if test "$ac_cv_sockaddr_in_sin_len" = true ; then
+ AC_DEFINE(HAVE_SIN_LEN)
+dnl HAVE_CONN_LEN must be the same as HAVE_SIN_LEN (and HAVE_SIN6_LEN too)
+ AC_DEFINE(HAVE_SCONN_LEN)
+fi
+
+AC_CACHE_CHECK(for sockaddr_in6.sin6_len,
+ ac_cv_sockaddr_in6_sin6_len,
+ [AC_TRY_COMPILE([#ifdef HAVE_SYS_TYPES_H
+ #include <sys/types.h>
+ #endif
+ #include <netinet/in.h>
+ struct sockaddr_in6 x;
+ void *foo = (void*) &x.sin6_len;],
+ [],
+ [ac_cv_sockaddr_in6_sin6_len=true],
+ [ac_cv_sockaddr_in6_sin6_len=false])])
+if test "$ac_cv_sockaddr_in6_sin6_len" = true ; then
+ AC_DEFINE(HAVE_SIN6_LEN)
+fi
+
+AC_CACHE_CHECK(for sockaddr.sa_len,
+ ac_cv_sockaddr_sa_len,
+ [AC_TRY_COMPILE([#ifdef HAVE_SYS_TYPES_H
+ #include <sys/types.h>
+ #endif
+ #include <sys/socket.h>
+ struct sockaddr x;
+ void *foo = (void*) &x.sa_len;],
+ [],
+ [ac_cv_sockaddr_sa_len=true],
+ [ac_cv_sockaddr_sa_len=false])])
+if test "$ac_cv_sockaddr_sa_len" = true ; then
+ AC_DEFINE(HAVE_SA_LEN)
+fi
+
+dnl Checks for libraries.
+dnl ========================================================
+AC_CHECK_LIB(c_r, gethostbyname_r)
+
+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
+ AC_CHECK_LIB(C, demangle)
+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 -n "$MOZ_X11"; then
+ AC_DEFINE_UNQUOTED(FUNCPROTO,15)
+ _SAVE_LDFLAGS="$LDFLAGS"
+ _SAVE_LIBS="$LIBS"
+ LDFLAGS="$XLDFLAGS $LDFLAGS"
+ AC_CHECK_LIB(X11, XDrawLines, [XLIBS="-lX11 $XLIBS"],
+ [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)
+ ])
+
+ dnl ========================================================
+ dnl = Check for xcb
+ dnl ========================================================
+ AC_CHECK_LIB(xcb, xcb_connect, [XLIBS="-lxcb $XLIBS"],
+ [MISSING_X="$MISSING_X -lxcb"], $XLIBS)
+ AC_CHECK_LIB(xcb-shm, xcb_shm_query_version, [XLIBS="-lxcb-shm $XLIBS"],
+ [MISSING_X="$MISSING_X -lxcb-shm"], $XLIBS)
+ AC_CHECK_LIB(X11-xcb, XGetXCBConnection, [XLIBS="-lX11-xcb $XLIBS"],
+ [MISSING_X="$MISSING_X -lX11-xcb"], $XLIBS)
+
+ LDFLAGS="$_SAVE_LDFLAGS"
+ LIBS="$_SAVE_LIBS"
+fi # $MOZ_X11
+
+AC_SUBST_LIST(XCFLAGS)
+AC_SUBST_LIST(XLDFLAGS)
+AC_SUBST_LIST(XLIBS)
+AC_SUBST_LIST(XEXT_LIBS)
+AC_SUBST_LIST(XT_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 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)
+ ;;
+
+ esac
+ LDFLAGS="${_PTHREAD_LDFLAGS} ${LDFLAGS}"
+ AC_SUBST(MOZ_USE_PTHREADS)
+ MOZ_CHECK_HEADERS(pthread.h)
+fi
+
+
+dnl Checks for library functions.
+dnl ========================================================
+AC_CHECK_FUNCS(stat64 lstat64 truncate64 statvfs64 statvfs statfs64 statfs getpagesize gmtime_r localtime_r arc4random arc4random_buf mallinfo gettid lchown setpriority strerror syscall lutimes)
+
+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"
+ _SAVE_CFLAGS="$CFLAGS"
+ LIBS="$LIBS $libs"
+ CFLAGS="$CFLAGS $DSO_PIC_CFLAGS"
+dnl clock_gettime is available on OSX since 10.12, so depending on MACOSX_DEPLOYMENT_TARGET,
+dnl we should or not be able to use it. To detect if we can, we need to make the
+dnl availability attribute strict, so that compilation fails when the target is < 10.12.
+ AC_TRY_LINK([#define availability(os, ...) availability(os, strict, __VA_ARGS)
+ #include <time.h>],
+ [ struct timespec ts;
+ clock_gettime(CLOCK_MONOTONIC, &ts); ],
+ ac_cv_clock_monotonic=$libs
+ LIBS="$_SAVE_LIBS"
+ CFLAGS="$_SAVE_CFLAGS"
+ break,
+ ac_cv_clock_monotonic=no)
+ LIBS="$_SAVE_LIBS"
+ CFLAGS="$_SAVE_CFLAGS"
+ 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 Turn on warnings-as-errors to prevent implicit declaration of
+dnl pthread_cond_timedwait_monotonic_np, which can cause this test to
+dnl inadvertently pass even if the function does not really exist.
+_SAVE_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $WARNINGS_AS_ERRORS"
+AC_CACHE_CHECK(for pthread_cond_timedwait_monotonic_np,
+ ac_cv_pthread_cond_timedwait_monotonic_np,
+ AC_TRY_LINK([#include <pthread.h>],
+ [pthread_cond_timedwait_monotonic_np(0, 0, 0);],
+ ac_cv_pthread_cond_timewait_monotonic_np=yes,
+ ac_cv_pthread_cond_timewait_monotonic_np=no))
+if test "$ac_cv_pthread_cond_timewait_monotonic_np" != "no"; then
+ AC_DEFINE(HAVE_PTHREAD_COND_TIMEDWAIT_MONOTONIC)
+fi
+CFLAGS=$_SAVE_CFLAGS
+
+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_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
+
+# 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 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.
+
+AC_HAVE_FUNCS(localeconv)
+
+fi # ! SKIP_COMPILER_CHECKS
+
+if test -n "${COMPILE_ENVIRONMENT}"; then
+ MOZ_CHECK_ALLOCATOR
+fi
+
+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 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 Mozilla specific options
+dnl ========================================================
+dnl The macros used for command line options
+dnl are defined in build/autoconf/altoptions.m4.
+
+dnl ========================================================
+dnl =
+dnl = Check for external package dependencies
+dnl =
+dnl ========================================================
+MOZ_ARG_HEADER(External Packages)
+
+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_SYSTEM_LIBEVENT=1,
+ LIBEVENT_DIR=/usr)
+fi
+if test -z "$LIBEVENT_DIR" -o "$LIBEVENT_DIR" = no; then
+ MOZ_SYSTEM_LIBEVENT=
+elif test -z "$MOZ_SYSTEM_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_SYSTEM_LIBEVENT=1
+ MOZ_LIBEVENT_CFLAGS="-I${LIBEVENT_DIR}/include"
+ MOZ_LIBEVENT_LIBS="-L${LIBEVENT_DIR}/lib -levent"],
+ [MOZ_SYSTEM_LIBEVENT= MOZ_LIBEVENT_CFLAGS= MOZ_LIBEVENT_LIBS=])
+fi
+CFLAGS=$_SAVE_CFLAGS
+LDFLAGS=$_SAVE_LDFLAGS
+LIBS=$_SAVE_LIBS
+
+AC_SUBST(MOZ_SYSTEM_LIBEVENT)
+
+if test -z "$SKIP_LIBRARY_CHECKS"; then
+
+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_SYSTEM_PNG=
+else
+ AC_CHECK_LIB(png, png_get_valid, [MOZ_SYSTEM_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_SYSTEM_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_SYSTEM_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_SYSTEM_PNG" = 1; then
+ MOZ_PNG_CFLAGS="-I${PNG_DIR}/include"
+ MOZ_PNG_LIBS="-L${PNG_DIR}/lib ${MOZ_PNG_LIBS}"
+fi
+
+fi # SKIP_LIBRARY_CHECKS
+
+dnl ========================================================
+dnl =
+dnl = Application
+dnl =
+dnl ========================================================
+
+MOZ_ARG_HEADER(Application)
+
+ENABLE_SYSTEM_EXTENSION_DIRS=1
+MOZ_BRANDING_DIRECTORY=
+MOZ_OFFICIAL_BRANDING=
+MOZ_AUTH_EXTENSION=1
+MOZ_SPELLCHECK=1
+MOZ_UNIVERSALCHARDET=1
+MOZ_XUL=1
+MOZ_ZIPWRITER=1
+MOZ_NO_SMART_CARDS=
+MOZ_SANDBOX=1
+MOZ_BINARY_EXTENSIONS=
+MOZ_DEVTOOLS=server
+
+dnl ========================================================
+dnl = Trademarked Branding
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(official-branding,
+[ --enable-official-branding
+ Enable Official mozilla.org Branding
+ Do not distribute builds with
+ --enable-official-branding unless you have
+ permission to use trademarks per
+ http://www.mozilla.org/foundation/trademarks/ .],
+ MOZ_OFFICIAL_BRANDING=1,
+ MOZ_OFFICIAL_BRANDING=)
+
+# 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
+
+dnl ========================================================
+dnl Ensure Android SDK and build-tools versions depending on
+dnl mobile target.
+dnl ========================================================
+
+case "$MOZ_BUILD_APP" in
+mobile/android)
+ MOZ_ANDROID_SDK
+ ;;
+esac
+
+dnl ========================================================
+dnl =
+dnl = Toolkit Options
+dnl =
+dnl ========================================================
+MOZ_ARG_HEADER(Toolkit Options)
+
+dnl ========================================================
+dnl = Enable the toolkit as needed =
+dnl ========================================================
+
+case "$MOZ_WIDGET_TOOLKIT" in
+
+cocoa)
+ LDFLAGS="$LDFLAGS -framework Cocoa"
+ # Use -Wl as a trick to avoid -framework and framework names from
+ # being separated by AC_SUBST_LIST.
+ TK_LIBS='-Wl,-framework,Foundation -Wl,-framework,CoreFoundation -Wl,-framework,CoreLocation -Wl,-framework,QuartzCore -Wl,-framework,Carbon -Wl,-framework,CoreAudio -Wl,-framework,CoreVideo -Wl,-framework,AudioToolbox -Wl,-framework,AudioUnit -Wl,-framework,AddressBook -Wl,-framework,OpenGL -Wl,-framework,Security -Wl,-framework,ServiceManagement -Wl,-framework,CoreServices -Wl,-framework,ApplicationServices -Wl,-framework,AppKit'
+ TK_CFLAGS=""
+ CFLAGS="$CFLAGS $TK_CFLAGS"
+ CXXFLAGS="$CXXFLAGS $TK_CFLAGS"
+ MOZ_USER_DIR="Mozilla"
+ MOZ_FS_LAYOUT=bundle
+ ;;
+
+uikit)
+ LDFLAGS="$LDFLAGS -framework UIKit"
+ TK_CFLAGS=""
+ TK_LIBS='-Wl,-framework,Foundation -Wl,-framework,CoreFoundation -Wl,-framework,CoreGraphics -Wl,-framework,CoreText -Wl,-framework,AVFoundation -Wl,-framework,AudioToolbox -Wl,-framework,CoreMedia -Wl,-framework,CoreVideo -Wl,-framework,OpenGLES -Wl,-framework,QuartzCore'
+ CFLAGS="$CFLAGS $TK_CFLAGS"
+ CXXFLAGS="$CXXFLAGS $TK_CFLAGS"
+ MOZ_USER_DIR="Mozilla"
+ MOZ_FS_LAYOUT=bundle
+ ;;
+
+esac
+
+if test "$OS_TARGET" = Darwin; then
+ LDFLAGS="$LDFLAGS -lobjc"
+fi
+
+dnl there are a lot of tests on MOZ_ENABLE_GTK below, that are more convenient
+dnl to keep that way than testing against MOZ_WIDGET_TOOLKIT
+case "$MOZ_WIDGET_TOOLKIT" in
+gtk*)
+ MOZ_ENABLE_GTK=1
+ ;;
+esac
+
+if test "$COMPILE_ENVIRONMENT"; then
+ if test "$MOZ_WIDGET_TOOLKIT" = gtk; then
+ PKG_CHECK_MODULES(MOZ_GTK3, gtk+-3.0 >= $GTK3_VERSION gtk+-unix-print-3.0 glib-2.0 gobject-2.0 gio-unix-2.0 $GDK_PACKAGES)
+ MOZ_GTK3_CFLAGS="-I${_topsrcdir}/widget/gtk/compat-gtk3 $MOZ_GTK3_CFLAGS"
+ TK_CFLAGS=$MOZ_GTK3_CFLAGS
+ TK_LIBS=$MOZ_GTK3_LIBS
+ dnl GDK_VERSION_MIN_REQUIRED is not set here as GDK3 deprecated warnings
+ dnl are suppressed by widget/gtk/compat-gtk3/gdk/gdkversionmacros.h.
+ AC_DEFINE_UNQUOTED(GDK_VERSION_MAX_ALLOWED,$GDK_VERSION_MAX_ALLOWED)
+ fi
+ if test "$MOZ_ENABLE_GTK"; then
+ AC_DEFINE_UNQUOTED(GLIB_VERSION_MIN_REQUIRED,$GLIB_VERSION_MIN_REQUIRED)
+ AC_DEFINE_UNQUOTED(GLIB_VERSION_MAX_ALLOWED,$GLIB_VERSION_MAX_ALLOWED)
+
+ if test "$MOZ_X11"; then
+ PKG_CHECK_MODULES(MOZ_GTK2, gtk+-2.0 >= $GTK2_VERSION gtk+-unix-print-2.0 glib-2.0 >= $GLIB_VERSION gobject-2.0 gio-unix-2.0 gdk-x11-2.0)
+ MOZ_GTK2_CFLAGS="-I${_topsrcdir}/widget/gtk/compat $MOZ_GTK2_CFLAGS"
+ fi
+ fi
+fi # COMPILE_ENVIRONMENT
+
+AC_SUBST(MOZ_FS_LAYOUT)
+
+AC_SUBST_LIST(TK_CFLAGS)
+AC_SUBST_LIST(TK_LIBS)
+
+dnl ========================================================
+dnl =
+dnl = Components & Features
+dnl =
+dnl ========================================================
+MOZ_ARG_HEADER(Components and Features)
+
+AC_SUBST(MOZ_OFFICIAL_BRANDING)
+if test -n "$MOZ_OFFICIAL_BRANDING"; then
+ 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}
+ AC_DEFINE(MOZ_OFFICIAL_BRANDING)
+ fi
+fi
+
+MOZ_ARG_WITH_STRING(branding,
+[ --with-branding=dir Use branding from the specified directory.],
+ MOZ_BRANDING_DIRECTORY=$withval)
+
+REAL_BRANDING_DIRECTORY="${MOZ_BRANDING_DIRECTORY}"
+if test -z "$REAL_BRANDING_DIRECTORY"; then
+ REAL_BRANDING_DIRECTORY=${MOZ_BUILD_APP}/branding/nightly
+fi
+
+if test -f "${_topsrcdir}/$REAL_BRANDING_DIRECTORY/configure.sh"; then
+ . "${_topsrcdir}/$REAL_BRANDING_DIRECTORY/configure.sh"
+fi
+
+AC_SUBST(MOZ_BRANDING_DIRECTORY)
+
+dnl ========================================================
+dnl = Distribution ID
+dnl ========================================================
+MOZ_ARG_WITH_STRING(distribution-id,
+[ --with-distribution-id=ID
+ Set distribution-specific id (default=org.mozilla)],
+[ val=`echo $withval`
+ MOZ_DISTRIBUTION_ID="$val"])
+
+if test -z "$MOZ_DISTRIBUTION_ID"; then
+ MOZ_DISTRIBUTION_ID="org.mozilla"
+fi
+
+AC_DEFINE_UNQUOTED(MOZ_DISTRIBUTION_ID,"$MOZ_DISTRIBUTION_ID")
+AC_SUBST(MOZ_DISTRIBUTION_ID)
+
+dnl ========================================================
+dnl = libproxy support
+dnl ========================================================
+
+if test "$MOZ_ENABLE_GTK"
+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 = dbus support
+dnl ========================================================
+
+if test "$MOZ_ENABLE_GTK"
+then
+ MOZ_ENABLE_DBUS=1
+
+ MOZ_ARG_DISABLE_BOOL(dbus,
+ [ --disable-dbus Disable dbus support ],
+ MOZ_ENABLE_DBUS=,
+ MOZ_ENABLE_DBUS=1)
+
+ if test "$MOZ_ENABLE_DBUS"
+ then
+ PKG_CHECK_MODULES(MOZ_DBUS, dbus-1 >= $DBUS_VERSION)
+ PKG_CHECK_MODULES(MOZ_DBUS_GLIB, dbus-glib-1 >= $DBUS_VERSION)
+ AC_DEFINE(MOZ_ENABLE_DBUS)
+ fi
+fi
+AC_SUBST(MOZ_ENABLE_DBUS)
+
+AC_TRY_COMPILE([#include <linux/ethtool.h>],
+ [ struct ethtool_cmd cmd; cmd.speed_hi = 0; ],
+ MOZ_WEBRTC_HAVE_ETHTOOL_SPEED_HI=1)
+
+AC_SUBST(MOZ_WEBRTC_HAVE_ETHTOOL_SPEED_HI)
+
+if test -n "$MOZ_WEBRTC"; then
+ if test -n "$MOZ_X11"; then
+ MOZ_WEBRTC_X11_LIBS="-lXext -lXdamage -lXfixes -lXcomposite"
+ fi
+fi
+
+AC_SUBST_LIST(MOZ_WEBRTC_X11_LIBS)
+
+dnl ========================================================
+dnl = Apple platform decoder support
+dnl ========================================================
+if test "$COMPILE_ENVIRONMENT"; then
+if test -n "$MOZ_APPLEMEDIA"; then
+ # 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_HEADERS([CoreMedia/CoreMedia.h VideoToolbox/VideoToolbox.h], [],
+ [AC_MSG_ERROR([MacOS X 10.9 SDK or later is required])])
+fi
+fi # COMPILE_ENVIRONMENT
+
+dnl ========================================================
+dnl = Handle dependent MEDIA defines
+dnl ========================================================
+
+MOZ_WEBM_ENCODER=1
+AC_DEFINE(MOZ_WEBM_ENCODER)
+AC_SUBST(MOZ_WEBM_ENCODER)
+
+dnl ========================================================
+dnl NegotiateAuth
+dnl ========================================================
+
+MOZ_ARG_DISABLE_BOOL(negotiateauth,
+[ --disable-negotiateauth Disable GSS-API negotiation ],
+ MOZ_AUTH_EXTENSION=,
+ MOZ_AUTH_EXTENSION=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 )
+
+dnl ========================================================
+dnl Gamepad support
+dnl ========================================================
+
+if test "$COMPILE_ENVIRONMENT" ; then
+
+dnl Moved gamepad platform check to moz.build, linux header check still needed here.
+if test "$OS_TARGET" = "Linux"; then
+ 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.])
+ fi
+fi
+
+fi # COMPILE_ENVIRONMENT
+
+
+dnl ========================================================
+dnl = Breakpad crash reporting (on by default on supported platforms)
+dnl ========================================================
+
+case $target in
+i?86-*-mingw*|x86_64-*-mingw*|aarch64-*-mingw*)
+ MOZ_CRASHREPORTER=1
+ ;;
+i?86-apple-darwin*|x86_64-apple-darwin*|aarch64-apple-darwin*)
+ MOZ_CRASHREPORTER=1
+ ;;
+*-android*|*-linuxandroid*)
+ dnl Android/arm is arm-unknown-linux-androideabi, so android condition should
+ dnl be before Linux condition
+ dnl The crash reporter prevents crash stacktraces to be logged in the
+ dnl logs so we leave it out by default in developer builds.
+ if test -z "$DEVELOPER_OPTIONS"; then
+ MOZ_CRASHREPORTER=1
+ fi
+ ;;
+i?86-*-linux*|x86_64-*-linux*|arm-*-linux*)
+ if test "$MOZ_ENABLE_GTK"; then
+ MOZ_CRASHREPORTER=1
+ fi
+ ;;
+esac
+
+MOZ_ARG_DISABLE_BOOL(crashreporter,
+[ --disable-crashreporter Disable breakpad crash reporting],
+ [MOZ_CRASHREPORTER=],
+ [MOZ_CRASHREPORTER=F # Force enable breakpad])
+
+if test "$OS_ARCH" != "$HOST_OS_ARCH" -a "$OS_ARCH" != "WINNT" -a "$OS_ARCH" != "Darwin" -a "$MOZ_WIDGET_TOOLKIT" != "android"; then
+ if test "$MOZ_CRASHREPORTER" = F; then
+ AC_MSG_ERROR([Cannot --enable-crashreporter, as breakpad tools do not support compiling on $HOST_OS_ARCH while targeting $OS_ARCH.])
+ fi
+ MOZ_CRASHREPORTER=
+fi
+
+if test -n "$MOZ_CRASHREPORTER"; then
+ AC_DEFINE(MOZ_CRASHREPORTER)
+
+ if test "$OS_TARGET" = "Linux" && \
+ test -z "$SKIP_LIBRARY_CHECKS"; then
+ PKG_CHECK_MODULES(MOZ_GTHREAD, gthread-2.0)
+ fi
+
+ if test "$OS_ARCH" = "WINNT"; then
+ if test -z "$HAVE_64BIT_BUILD" -a -n "$COMPILE_ENVIRONMENT"; then
+ MOZ_CRASHREPORTER_INJECTOR=1
+ AC_DEFINE(MOZ_CRASHREPORTER_INJECTOR)
+ fi
+ fi
+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")
+
+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
+
+# Avoid defining MOZ_ENABLE_CAIRO_FT on Windows platforms because
+# "cairo-ft-font.c" includes <dlfcn.h>, which only exists on posix platforms
+if test -n "$MOZ_TREE_FREETYPE" -a "$OS_TARGET" != WINNT; then
+ MOZ_ENABLE_CAIRO_FT=1
+ FT_FONT_FEATURE="#define CAIRO_HAS_FT_FONT 1"
+ CAIRO_FT_CFLAGS="-I$_topsrcdir/modules/freetype2/include"
+ AC_SUBST_LIST(CAIRO_FT_CFLAGS)
+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
+
+dnl ========================================================
+dnl parental controls (for Windows Vista)
+dnl ========================================================
+MOZ_ARG_DISABLE_BOOL(parental-controls,
+[ --disable-parental-controls
+ Do not build parental controls],
+ MOZ_DISABLE_PARENTAL_CONTROLS=1,
+ MOZ_DISABLE_PARENTAL_CONTROLS=)
+if test -n "$MOZ_DISABLE_PARENTAL_CONTROLS"; then
+ AC_DEFINE(MOZ_DISABLE_PARENTAL_CONTROLS)
+fi
+
+AC_SUBST(MOZ_DISABLE_PARENTAL_CONTROLS)
+
+dnl ========================================================
+dnl = Disable 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 = Sandboxing support
+dnl ========================================================
+if test -n "$MOZ_TSAN" -o -n "$MOZ_ASAN"; then
+ # Bug 1182565: TSan conflicts with sandboxing on Linux.
+ # Bug 1287971: LSan also conflicts with sandboxing on Linux.
+ case $OS_TARGET in
+ Linux|Android)
+ MOZ_SANDBOX=
+ ;;
+ esac
+fi
+
+MOZ_ARG_DISABLE_BOOL(sandbox,
+[ --disable-sandbox Disable sandboxing support],
+ MOZ_SANDBOX=,
+ MOZ_SANDBOX=1)
+
+case "$OS_TARGET" in
+WINNT|Darwin|OpenBSD)
+;;
+Linux)
+ case $CPU_ARCH in
+ x86_64|x86|arm|aarch64)
+ ;;
+ # Linux sandbox is only available on x86{,_64} and arm{,64}.
+ *)
+ MOZ_SANDBOX=
+ ;;
+ esac
+ ;;
+*)
+ # Only enable the sandbox by default on Linux, OpenBSD, macOS, and Windows
+ MOZ_SANDBOX=
+;;
+esac
+
+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 === SQLite fdatasync check ===
+dnl ==============================
+dnl Check to see if fdatasync is available and make use of it
+AC_CHECK_FUNC(fdatasync)
+
+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 =
+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 code optimization. ON by default.
+dnl ========================================================
+
+# Use value from moz.configure if one is defined. Else use our computed
+# value.
+if test -n "${MOZ_CONFIGURE_OPTIMIZE_FLAGS}"; then
+ MOZ_OPTIMIZE_FLAGS=${MOZ_CONFIGURE_OPTIMIZE_FLAGS}
+fi
+
+if test "$COMPILE_ENVIRONMENT"; then
+if test -n "$MOZ_OPTIMIZE"; then
+ AC_MSG_CHECKING([for valid C compiler 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 for C are invalid: $MOZ_OPTIMIZE_FLAGS])
+ fi
+ CFLAGS=$_SAVE_CFLAGS
+ if test -n "$MOZ_LTO" -a -n "$CLANG_CC"; then
+ # When using llvm-based LTO, non numeric optimization levels are
+ # not supported by the linker, so force the linker to use -O2 (
+ # which doesn't influence the level compilation units are actually
+ # compiled at).
+ case " $MOZ_OPTIMIZE_FLAGS " in
+ *\ -Os\ *|*\ -Oz\ *)
+ MOZ_OPTIMIZE_LDFLAGS="$MOZ_OPTIMIZE_LDFLAGS -O2"
+ ;;
+ esac
+ fi
+fi
+fi # COMPILE_ENVIRONMENT
+
+AC_SUBST_LIST(MOZ_OPTIMIZE_FLAGS)
+AC_SUBST_LIST(MOZ_OPTIMIZE_LDFLAGS)
+AC_SUBST_LIST(MOZ_PGO_OPTIMIZE_FLAGS)
+
+dnl ========================================================
+dnl = Enable runtime logging
+dnl ========================================================
+AC_DEFINE(MOZ_LOGGING)
+AC_DEFINE(FORCE_PR_LOG)
+
+dnl ========================================================
+dnl = This will enable logging of addref, release, ctor, dtor.
+dnl ========================================================
+_ENABLE_LOGREFCNT=42
+MOZ_ARG_ENABLE_BOOL(logrefcnt,
+[ --enable-logrefcnt Enable logging of refcounts (default=debug) ],
+ _ENABLE_LOGREFCNT=1,
+ _ENABLE_LOGREFCNT= )
+if test "$_ENABLE_LOGREFCNT" = "1"; then
+ AC_DEFINE(FORCE_BUILD_REFCNT_LOGGING)
+elif test -z "$_ENABLE_LOGREFCNT"; then
+ AC_DEFINE(NO_BUILD_REFCNT_LOGGING)
+fi
+
+dnl ========================================================
+dnl moz_dump_painting
+dnl ========================================================
+MOZ_ARG_ENABLE_BOOL(dump-painting,
+[ --enable-dump-painting Enable paint debugging.],
+ MOZ_DUMP_PAINTING=1,
+ MOZ_DUMP_PAINTING= )
+if test -n "$MOZ_DUMP_PAINTING"; then
+ AC_DEFINE(MOZ_DUMP_PAINTING)
+ AC_DEFINE(MOZ_LAYERS_HAVE_LOG)
+fi
+if test -n "$MOZ_DEBUG"; then
+ AC_DEFINE(MOZ_DUMP_PAINTING)
+fi
+
+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
+ AC_DEFINE(MOZ_GLUE_IN_PROGRAM)
+ ;;
+esac
+
+dnl ========================================================
+dnl = Jemalloc build setup
+dnl ========================================================
+if test -z "$MOZ_MEMORY"; then
+ case "${target}" in
+ *-mingw*)
+ if test -z "$WIN32_REDIST_DIR" -a -z "$MOZ_DEBUG"; then
+ AC_MSG_WARN([When not building jemalloc, you need to set WIN32_REDIST_DIR to the path to the Visual C++ Redist (usually VCINSTALLDIR/redist/x86/Microsoft.VC80.CRT, for VC++ v8) if you intend to distribute your build.])
+ fi
+ ;;
+ esac
+else
+ dnl 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
+ *-mingw*)
+ export MOZ_NO_DEBUG_RTL=1
+ ;;
+ esac
+fi # MOZ_MEMORY
+AC_SUBST(MOZ_GLUE_IN_PROGRAM)
+
+dnl ========================================================
+dnl = Enable using the clang plugin to build
+dnl ========================================================
+
+if test -n "$COMPILE_ENVIRONMENT"; then
+MOZ_CONFIG_CLANG_PLUGIN
+fi # COMPILE_ENVIRONMENT
+
+dnl ========================================================
+dnl = frontend JS debug mode
+dnl ========================================================
+
+MOZ_ARG_ENABLE_BOOL(debug-js-modules,
+[ --enable-debug-js-modules Enable debug mode for frontend JS libraries],
+ DEBUG_JS_MODULES=1,
+ DEBUG_JS_MODULES=)
+
+AC_SUBST(DEBUG_JS_MODULES)
+
+dnl ========================================================
+dnl =
+dnl = Profiling and Instrumenting
+dnl =
+dnl ========================================================
+MOZ_ARG_HEADER(Profiling and Instrumenting)
+
+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 =
+dnl = Misc. Options
+dnl =
+dnl ========================================================
+MOZ_ARG_HEADER(Misc. Options)
+
+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")
+
+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
+
+fi # ! SKIP_COMPILER_CHECKS
+
+AC_LANG_C
+
+if test "$COMPILE_ENVIRONMENT"; then
+MOZ_EXPAND_LIBS
+fi # COMPILE_ENVIRONMENT
+
+dnl ========================================================
+dnl =
+dnl = Static Build Options
+dnl =
+dnl ========================================================
+MOZ_ARG_HEADER(Static build options)
+
+if test -z "$MOZ_SYSTEM_ZLIB"; then
+if test -n "$JS_SHARED_LIBRARY" -o -n "$MOZ_LINKER" -o "$MOZ_WIDGET_TOOLKIT" = android; 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)
+
+if test "$USE_FC_FREETYPE"; then
+ if test "$COMPILE_ENVIRONMENT"; then
+ dnl ========================================================
+ dnl = Check for freetype2 functionality
+ dnl ========================================================
+ if test "$_HAVE_FREETYPE2" -a -z "$MOZ_TREE_FREETYPE"; 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"
+ fi
+fi
+
+dnl ========================================================
+dnl Check if we need the 32-bit Linux SSE2 error dialog
+dnl ========================================================
+
+AC_SUBST(MOZ_LINUX_32_SSE2_STARTUP_ERROR)
+
+dnl ========================================================
+dnl Check for pixman and cairo
+dnl ========================================================
+
+MOZ_TREE_CAIRO=1
+MOZ_ARG_ENABLE_BOOL(system-cairo,
+[ --enable-system-cairo Obsolete: do not use this option],
+AC_MSG_ERROR(--enable-system-cairo is not supported),
+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 )
+
+if test "$MOZ_TREE_PIXMAN"; then
+ AC_DEFINE(MOZ_TREE_PIXMAN)
+else
+ PKG_CHECK_MODULES(MOZ_PIXMAN, pixman-1 >= 0.19.2)
+fi
+
+MOZ_CAIRO_CFLAGS="-I${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
+ 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_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"
+
+ if test "$COMPILE_ENVIRONMENT"; then
+ MOZ_CHECK_HEADER(d3d10.h, MOZ_ENABLE_D3D10_LAYER=1)
+ fi
+ ;;
+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_D3D10_LAYER)
+
+AC_SUBST(PS_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(QUARTZ_FONT_FEATURE)
+AC_SUBST(PNG_FUNCTIONS_FEATURE)
+AC_SUBST(QT_SURFACE_FEATURE)
+AC_SUBST(TEE_SURFACE_FEATURE)
+
+if test "$MOZ_X11"; then
+ MOZ_CAIRO_OSLIBS="$MOZ_CAIRO_OSLIBS $XLDFLAGS -lXrender"
+fi
+
+CAIRO_FEATURES_H=gfx/cairo/cairo/src/cairo-features.h
+
+case "$MOZ_WIDGET_TOOLKIT" in
+android)
+ TK_CFLAGS="$MOZ_CAIRO_CFLAGS $MOZ_PIXMAN_CFLAGS"
+ TK_LIBS="$MOZ_CAIRO_LIBS $MOZ_PIXMAN_LIBS"
+ ;;
+esac
+
+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)
+
+BINDGEN_SYSTEM_FLAGS="$_BINDGEN_CFLAGS $NSPR_CFLAGS $NSS_CFLAGS $MOZ_PIXMAN_CFLAGS $MOZ_CAIRO_CFLAGS"
+AC_SUBST(BINDGEN_SYSTEM_FLAGS)
+BINDGEN_SYSTEM_TOML_FLAGS="$BINDGEN_SYSTEM_FLAGS"
+AC_SUBST_TOML_LIST(BINDGEN_SYSTEM_TOML_FLAGS)
+
+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 necko configuration options
+dnl ========================================================
+
+dnl
+dnl option to disable necko's wifi scanner
+dnl
+
+if test "$MOZ_WIDGET_TOOLKIT"; then
+
+ case "$OS_TARGET" in
+ Darwin)
+ NECKO_WIFI=1
+ ;;
+ DragonFly|FreeBSD|WINNT)
+ NECKO_WIFI=1
+ ;;
+ Linux)
+ NECKO_WIFI=1
+ NECKO_WIFI_DBUS=1
+ ;;
+ esac
+
+fi
+
+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)
+fi
+AC_SUBST(NECKO_WIFI)
+AC_SUBST(NECKO_WIFI_DBUS)
+
+dnl ========================================================
+dnl =
+dnl = Maintainer debug option (no --enable equivalent)
+dnl =
+dnl ========================================================
+
+AC_SUBST_LIST(ASFLAGS)
+AC_SUBST(IMPLIB)
+AC_SUBST(FILTER)
+AC_SUBST(MOZ_AUTH_EXTENSION)
+AC_SUBST_LIST(MOZ_DEBUG_LDFLAGS)
+AC_SUBST_LIST(WARNINGS_CFLAGS)
+AC_SUBST_SET(MOZ_EXTENSIONS)
+
+AC_SUBST(MOZ_UNIVERSALCHARDET)
+AC_SUBST(MOZ_SPELLCHECK)
+AC_SUBST(MOZ_ANDROID_ANR_REPORTER)
+AC_SUBST(MOZ_CRASHREPORTER)
+AC_SUBST(MOZ_CRASHREPORTER_INJECTOR)
+AC_SUBST(MOZ_STUB_INSTALLER)
+AC_SUBST(MOZ_UPDATER)
+
+AC_SUBST(MOZ_ANDROID_APPLICATION_CLASS)
+AC_SUBST(MOZ_ANDROID_BROWSER_INTENT_CLASS)
+AC_SUBST(INCREMENTAL_LINKER)
+
+AC_SUBST_LIST(MOZ_FIX_LINK_PATHS)
+
+AC_SUBST(MOZ_POST_PROGRAM_COMMAND)
+AC_SUBST(MOZ_LINKER_EXTRACT)
+
+if test -n "$MOZ_BINARY_EXTENSIONS"; then
+ AC_DEFINE(MOZ_BINARY_EXTENSIONS)
+fi
+
+AC_SUBST(MOZ_REQUIRE_SIGNING)
+if test "$MOZ_REQUIRE_SIGNING" = 1; then
+ AC_DEFINE(MOZ_REQUIRE_SIGNING)
+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=$MOZ_APP_DISPLAYNAME
+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)
+# If the MOZ_MACBUNDLE_ID is defined in the configure.sh, use it
+# Otherwise, use MOZ_APP_DISPLAYNAME
+if test -z "$MOZ_MACBUNDLE_ID"; then
+ MOZ_MACBUNDLE_ID=`echo $MOZ_APP_DISPLAYNAME | tr 'A-Z' 'a-z' | tr -dc 'a-z-'`
+fi
+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="libplugin-container.so"
+fi
+MOZ_CHILD_PROCESS_BUNDLE="plugin-container.app/Contents/MacOS/"
+MOZ_CHILD_PROCESS_BUNDLENAME="${MOZ_APP_DISPLAYNAME}CP"
+
+AC_SUBST(MOZ_CHILD_PROCESS_NAME)
+AC_SUBST(MOZ_CHILD_PROCESS_BUNDLE)
+AC_SUBST(MOZ_CHILD_PROCESS_BUNDLENAME)
+
+# 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_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_PROFILE: When set, used for application.ini's
+# "Profile" field, which controls profile location.
+# - MOZ_APP_ID: When set, used for application.ini's "ID" field, and
+# crash reporter server url.
+# - MOZ_PROFILE_MIGRATOR: When set, enables profile migrator.
+
+# The following environment variables used to have an effect, but don't anymore:
+# - MOZ_APP_VERSION: Defines the application version number. This was replaced with
+# the contents from the version.txt file in the application directory, or
+# browser/config/version.txt if there isn't one.
+# - MOZ_APP_VERSION_DISPLAY: Defines the application version number. Used
+# in the "About" window. This was replaced with the contents from the
+# version_display.txt or version.txt in the application directory, or
+# browser/config/version_display.txt.
+
+# 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
+
+AC_SUBST(MOZ_APP_DISPLAYNAME)
+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_DEFINE_UNQUOTED(BROWSER_CHROME_URL, $BROWSER_CHROME_URL)
+AC_DEFINE_UNQUOTED(BROWSER_CHROME_URL_QUOTED, "$BROWSER_CHROME_URL")
+
+AC_SUBST(MOZ_APP_MAXVERSION)
+AC_SUBST(MOZ_UA_OS_AGNOSTIC)
+if test -n "$MOZ_UA_OS_AGNOSTIC"; then
+ AC_DEFINE(MOZ_UA_OS_AGNOSTIC)
+fi
+
+AC_SUBST(MOZ_PKG_SPECIAL)
+AC_SUBST(MOZ_SIMPLE_PACKAGE_NAME)
+
+if test "$MOZILLA_OFFICIAL"; then
+ # Build revisions should always be present in official builds
+ MOZ_INCLUDE_SOURCE_INFO=1
+fi
+
+# External builds (specifically Ubuntu) may drop the hg repo information, so we allow to
+# explicitly set the repository and changeset information in.
+AC_SUBST(MOZ_SOURCE_REPO)
+AC_SUBST(MOZ_SOURCE_CHANGESET)
+AC_SUBST(MOZ_INCLUDE_SOURCE_INFO)
+
+dnl If we have any service that uploads data (and requires data submission
+dnl policy alert), set MOZ_DATA_REPORTING.
+dnl We need SUBST for build system and DEFINE for xul preprocessor.
+if test -n "$MOZ_TELEMETRY_REPORTING" || test -n "$MOZ_SERVICES_HEALTHREPORT" || test -n "$MOZ_CRASHREPORTER" || test -n "$MOZ_NORMANDY"; then
+ MOZ_DATA_REPORTING=1
+ AC_DEFINE(MOZ_DATA_REPORTING)
+ AC_SUBST(MOZ_DATA_REPORTING)
+fi
+
+dnl win32 options
+AC_SUBST(WIN32_REDIST_DIR)
+AC_SUBST(WIN_UCRT_REDIST_DIR)
+
+dnl Echo the CFLAGS to remove extra whitespace.
+CFLAGS=`echo \
+ $_COMPILATION_CFLAGS \
+ $CFLAGS`
+
+CXXFLAGS=`echo \
+ $_WARNINGS_CXXFLAGS \
+ $_COMPILATION_CXXFLAGS \
+ $CXXFLAGS`
+
+COMPILE_CFLAGS=`echo \
+ $_DEFINES_CFLAGS \
+ $COMPILE_CFLAGS`
+
+COMPILE_CXXFLAGS=`echo \
+ $_DEFINES_CXXFLAGS \
+ $COMPILE_CXXFLAGS`
+
+HOST_CFLAGS=`echo \
+ $_WARNINGS_HOST_CFLAGS \
+ $_COMPILATION_HOST_CFLAGS \
+ $HOST_CFLAGS`
+
+HOST_CXXFLAGS=`echo \
+ $_WARNINGS_HOST_CXXFLAGS \
+ $_COMPILATION_HOST_CXXFLAGS \
+ $HOST_CXXFLAGS`
+
+AC_SUBST(MOZ_SYSTEM_PNG)
+
+AC_SUBST_LIST(MOZ_PNG_CFLAGS)
+AC_SUBST_LIST(MOZ_PNG_LIBS)
+
+HOST_CMFLAGS="-x objective-c -fobjc-exceptions"
+HOST_CMMFLAGS="-x objective-c++ -fobjc-exceptions"
+OS_COMPILE_CMFLAGS="-x objective-c -fobjc-exceptions"
+OS_COMPILE_CMMFLAGS="-x objective-c++ -fobjc-exceptions"
+if test "$MOZ_WIDGET_TOOLKIT" = uikit; then
+ OS_COMPILE_CMFLAGS="$OS_COMPILE_CMFLAGS -fobjc-abi-version=2 -fobjc-legacy-dispatch"
+ OS_COMPILE_CMMFLAGS="$OS_COMPILE_CMMFLAGS -fobjc-abi-version=2 -fobjc-legacy-dispatch"
+fi
+AC_SUBST(HOST_CMFLAGS)
+AC_SUBST(HOST_CMMFLAGS)
+AC_SUBST(OS_COMPILE_CMFLAGS)
+AC_SUBST(OS_COMPILE_CMMFLAGS)
+
+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_LIST(OS_CFLAGS)
+AC_SUBST_LIST(OS_CXXFLAGS)
+AC_SUBST_LIST(OS_CPPFLAGS)
+AC_SUBST_LIST(OS_COMPILE_CFLAGS)
+AC_SUBST_LIST(OS_COMPILE_CXXFLAGS)
+AC_SUBST_LIST(OS_LDFLAGS)
+AC_SUBST(OS_LIBS)
+
+AC_SUBST(HOST_CC)
+AC_SUBST(HOST_CXX)
+AC_SUBST_LIST(HOST_CFLAGS)
+AC_SUBST_LIST(HOST_CPPFLAGS)
+AC_SUBST_LIST(HOST_CXXFLAGS)
+AC_SUBST(HOST_LDFLAGS)
+AC_SUBST_LIST(HOST_OPTIMIZE_FLAGS)
+AC_SUBST(HOST_BIN_SUFFIX)
+
+AC_SUBST(TARGET_XPCOM_ABI)
+AC_SUBST(HAVE_TOOLCHAIN_SUPPORT_MSSSE3)
+AC_SUBST(HAVE_TOOLCHAIN_SUPPORT_MSSE4_1)
+AC_SUBST(HAVE_X86_AVX2)
+AC_SUBST(HAVE_ALTIVEC)
+
+AC_SUBST_LIST(DSO_CFLAGS)
+AC_SUBST_LIST(DSO_PIC_CFLAGS)
+AC_SUBST(DSO_LDOPTS)
+AC_SUBST(BIN_SUFFIX)
+AC_SUBST(USE_N32)
+AC_SUBST(WIN32_CONSOLE_EXE_LDFLAGS)
+AC_SUBST(WIN32_GUI_EXE_LDFLAGS)
+
+AC_SUBST(MOZ_DEVTOOLS)
+
+AC_SUBST(MOZ_PACKAGE_JSSHELL)
+
+AC_SUBST(DMG_TOOL)
+
+dnl Host JavaScript runtime, if any, to use during cross compiles.
+AC_SUBST(JS_BINARY)
+
+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
+ 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 "$ACCESSIBILITY" -a "$MOZ_ENABLE_GTK" ; then
+ AC_DEFINE(MOZ_ACCESSIBILITY_ATK)
+ ATK_FULL_VERSION=`$PKG_CONFIG --modversion atk`
+ ATK_MAJOR_VERSION=`echo ${ATK_FULL_VERSION} | $AWK -F\. '{ print $1 }'`
+ ATK_MINOR_VERSION=`echo ${ATK_FULL_VERSION} | $AWK -F\. '{ print $2 }'`
+ ATK_REV_VERSION=`echo ${ATK_FULL_VERSION} | $AWK -F\. '{ print $3 }'`
+ AC_DEFINE_UNQUOTED(ATK_MAJOR_VERSION, $ATK_MAJOR_VERSION)
+ AC_DEFINE_UNQUOTED(ATK_MINOR_VERSION, $ATK_MINOR_VERSION)
+ AC_DEFINE_UNQUOTED(ATK_REV_VERSION, $ATK_REV_VERSION)
+fi
+
+AC_SUBST(MOZ_DEV_EDITION)
+if test -n "$MOZ_DEV_EDITION"; then
+ AC_DEFINE(MOZ_DEV_EDITION)
+fi
+
+if test "$MOZ_DEBUG" -o "$DEVELOPER_OPTIONS"; then
+ A11Y_LOG=1
+fi
+AC_SUBST(A11Y_LOG)
+if test -n "$A11Y_LOG"; then
+ AC_DEFINE(A11Y_LOG)
+fi
+
+dnl Spit out some output
+dnl ========================================================
+
+# Avoid using obsolete NSPR features
+AC_DEFINE(NO_NSPR_10_SUPPORT)
+
+MOZ_CREATE_CONFIG_STATUS()
+
+rm -fr confdefs* $ac_clean_files