forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			5118 lines
		
	
	
	
		
			167 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			5118 lines
		
	
	
	
		
			167 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| 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 two lines.  Doing so breaks:
 | |
| dnl =
 | |
| dnl = CFLAGS="-foo" ./configure
 | |
| dnl =
 | |
| dnl ========================================================
 | |
| CFLAGS="${CFLAGS=}"
 | |
| CPPFLAGS="${CPPFLAGS=}"
 | |
| CXXFLAGS="${CXXFLAGS=}"
 | |
| LDFLAGS="${LDFLAGS=}"
 | |
| HOST_CFLAGS="${HOST_CFLAGS=}"
 | |
| HOST_CXXFLAGS="${HOST_CXXFLAGS=}"
 | |
| HOST_LDFLAGS="${HOST_LDFLAGS=}"
 | |
| 
 | |
| dnl ========================================================
 | |
| dnl = Preserve certain environment flags passed to configure
 | |
| dnl = We want sub projects to receive the same flags
 | |
| dnl = untainted by this configure script
 | |
| dnl ========================================================
 | |
| _SUBDIR_CC="$CC"
 | |
| _SUBDIR_CXX="$CXX"
 | |
| _SUBDIR_CFLAGS="$CFLAGS"
 | |
| _SUBDIR_CPPFLAGS="$CPPFLAGS"
 | |
| _SUBDIR_CXXFLAGS="$CXXFLAGS"
 | |
| _SUBDIR_LDFLAGS="$LDFLAGS"
 | |
| _SUBDIR_HOST_CC="$HOST_CC"
 | |
| _SUBDIR_HOST_CFLAGS="$HOST_CFLAGS"
 | |
| _SUBDIR_HOST_CXXFLAGS="$HOST_CXXFLAGS"
 | |
| _SUBDIR_HOST_LDFLAGS="$HOST_LDFLAGS"
 | |
| _SUBDIR_CONFIG_ARGS="$ac_configure_args"
 | |
| 
 | |
| dnl Set the version number of the libs included with mozilla
 | |
| dnl ========================================================
 | |
| MOZJPEG=62
 | |
| MOZPNG=10634
 | |
| NSPR_VERSION=4
 | |
| NSPR_MINVER=4.17
 | |
| 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
 | |
| CAIRO_VERSION=1.10
 | |
| GTK2_VERSION=2.18.0
 | |
| GTK3_VERSION=3.4.0
 | |
| GDK_VERSION_MAX_ALLOWED=GDK_VERSION_3_4
 | |
| WINDRES_VERSION=2.14.90
 | |
| W32API_VERSION=3.14
 | |
| GCONF_VERSION=1.2.1
 | |
| STARTUP_NOTIFICATION_VERSION=0.8
 | |
| DBUS_VERSION=0.60
 | |
| SQLITE_VERSION=3.21.0
 | |
| 
 | |
| 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=""
 | |
| 
 | |
| MOZ_DEFAULT_COMPILER
 | |
| 
 | |
| if test "$COMPILE_ENVIRONMENT"; then
 | |
|     MOZ_ANDROID_NDK
 | |
| fi # COMPILE_ENVIRONMENT
 | |
| 
 | |
| case "$target" in
 | |
| *-android*|*-linuxandroid*)
 | |
|     AC_DEFINE(ANDROID)
 | |
|     ;;
 | |
| *-linux*)
 | |
|     AC_PATH_PROG(OBJCOPY,objcopy)
 | |
|     ;;
 | |
| esac
 | |
| 
 | |
| case "$target" in
 | |
| *-apple-darwin*)
 | |
|     MOZ_IOS_SDK
 | |
|     ;;
 | |
| esac
 | |
| 
 | |
| 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(STRIP, strip, :)
 | |
|     AC_CHECK_PROGS(WINDRES, windres, :)
 | |
|     AC_CHECK_PROGS(OTOOL, otool, :)
 | |
|     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
 | |
| 
 | |
| 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
 | |
|         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([,])
 | |
| 
 | |
|         _MSC_VER=`echo ${CC_VERSION} | cut -c 1-2,4-5`
 | |
| 
 | |
|         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
 | |
| 
 | |
|         MOZ_CHECK_HEADER(dia2.h, MSVC_HAS_DIA_SDK=1)
 | |
|         if test -n "$MSVC_HAS_DIA_SDK"; then
 | |
|             AC_DEFINE(MSVC_HAS_DIA_SDK)
 | |
|         fi
 | |
| 
 | |
|         if test "$_MSC_VER" -ge "1910"; then # VS2017+
 | |
|             # C5038: Enable initializer list order warnings
 | |
|             # The -w1#### flag treats warning C#### as if it was a warning level
 | |
|             # 1 warning, and thus enables it because we enable /W3 warnings. We
 | |
|             # don't use -we#### because it would enable warning C#### but treat
 | |
|             # it as an error, even in third-party code.
 | |
|             # https://docs.microsoft.com/en-us/cpp/build/reference/compiler-option-warning-level
 | |
|             CXXFLAGS="$CXXFLAGS -w15038"
 | |
|         fi
 | |
| 
 | |
|         # C5026: move constructor was implicitly defined as deleted
 | |
|         CXXFLAGS="$CXXFLAGS -wd5026"
 | |
| 
 | |
|         # C5027: move assignment operator was implicitly defined as deleted
 | |
|         CXXFLAGS="$CXXFLAGS -wd5027"
 | |
| 
 | |
|         # -Zc:sizedDealloc- disables C++14 global sized deallocation (see bug 1160146)
 | |
|         CXXFLAGS="$CXXFLAGS -Zc:sizedDealloc-"
 | |
| 
 | |
|         # 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"
 | |
| 
 | |
|         # This is intended as a temporary hack to support building with VS2015.
 | |
|         # 'noexcept' used with no exception handling mode specified;
 | |
|         # termination on exception is not guaranteed. Specify /EHsc
 | |
|         CXXFLAGS="$CXXFLAGS -wd4577"
 | |
| 
 | |
|         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`
 | |
|         fi
 | |
| 
 | |
|         AC_SUBST(MSVC_HAS_DIA_SDK)
 | |
|         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`
 | |
|         fi
 | |
| 
 | |
|         # Check linker version
 | |
|         _LD_FULL_VERSION=`"${LINK}" -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 overridable _RAISE,
 | |
|                        ac_cv_have__RAISE,
 | |
|             [
 | |
|                 AC_LANG_SAVE
 | |
|                 AC_LANG_CPLUSPLUS
 | |
|                 _SAVE_CXXFLAGS="$CXXFLAGS"
 | |
|                 CXXFLAGS="${CXXFLAGS} -D_HAS_EXCEPTIONS=0"
 | |
|                 AC_TRY_COMPILE([#include <xstddef>
 | |
|                                 #undef _RAISE
 | |
|                                 #define _RAISE(x) externallyDefinedFunction((x).what())
 | |
|                                 #include <vector>
 | |
|                                ],
 | |
|                                [std::vector<int> v; return v.at(1);],
 | |
|                                ac_cv_have__RAISE="no",
 | |
|                                ac_cv_have__RAISE="yes")
 | |
|                 CXXFLAGS="$_SAVE_CXXFLAGS"
 | |
|                 AC_LANG_RESTORE
 | |
|             ])
 | |
|         if test "$ac_cv_have__RAISE" = "yes"; then
 | |
|             WRAP_STL_INCLUDES=1
 | |
|             MOZ_MSVC_STL_WRAP_RAISE=1
 | |
|             AC_DEFINE(MOZ_MSVC_STL_WRAP_RAISE)
 | |
|         else
 | |
|             AC_MSG_ERROR([Gecko exception wrapping doesn't understand your your MSVC/SDK.  Please file a bug describing this error and your build configuration.])
 | |
|         fi
 | |
| 
 | |
|         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"
 | |
|     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)
 | |
|     fi # !GNU_CC
 | |
| 
 | |
|     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(MIDL_FLAGS)
 | |
| AC_SUBST(_MSC_VER)
 | |
| 
 | |
| AC_SUBST(GNU_AS)
 | |
| AC_SUBST(GNU_CC)
 | |
| AC_SUBST(GNU_CXX)
 | |
| 
 | |
| AC_SUBST_LIST(STL_FLAGS)
 | |
| AC_SUBST(WRAP_STL_INCLUDES)
 | |
| AC_SUBST(MOZ_MSVC_STL_WRAP_RAISE)
 | |
| 
 | |
| dnl ========================================================
 | |
| dnl Checks for programs.
 | |
| dnl ========================================================
 | |
| if test "$COMPILE_ENVIRONMENT"; then
 | |
| 
 | |
| 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
 | |
| 
 | |
| AC_PATH_XTRA
 | |
| 
 | |
| XCFLAGS="$X_CFLAGS"
 | |
| 
 | |
| fi # COMPILE_ENVIRONMENT
 | |
| 
 | |
| dnl ========================================================
 | |
| dnl set the defaults first
 | |
| dnl ========================================================
 | |
| AS_BIN=$AS
 | |
| AR_EXTRACT='$(AR) x'
 | |
| AS='$(CC)'
 | |
| AS_DASH_C_FLAG='-c'
 | |
| DIRENT_INO=d_ino
 | |
| 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
 | |
| else
 | |
|     if test "$OS_TARGET" = Android; then
 | |
|         dnl Default Android builds to ARMv7.
 | |
|         MOZ_ARCH=armv7-a
 | |
|     fi
 | |
| fi # COMPILE_ENVIRONMENT
 | |
| 
 | |
| dnl ========================================================
 | |
| dnl Android libstdc++, placed here so it can use MOZ_ARCH
 | |
| dnl computed above.
 | |
| dnl ========================================================
 | |
| 
 | |
| MOZ_ANDROID_CPU_ARCH
 | |
| if test "$COMPILE_ENVIRONMENT"; then
 | |
|     MOZ_ANDROID_STLPORT
 | |
| fi # COMPILE_ENVIRONMENT
 | |
| 
 | |
| 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
 | |
| 
 | |
| if test -n "$COMPILE_ENVIRONMENT"; then
 | |
|    MOZ_CONFIG_SANITIZE
 | |
| fi
 | |
| 
 | |
| dnl ========================================================
 | |
| dnl Add optional and non-optional hardening flags
 | |
| dnl ========================================================
 | |
| CFLAGS="$CFLAGS $HARDENING_CFLAGS"
 | |
| CPPFLAGS="$CPPFLAGS $HARDENING_CFLAGS"
 | |
| CXXFLAGS="$CXXFLAGS $HARDENING_CFLAGS"
 | |
| 
 | |
| dnl In at least glibc-2.25, _FORTIFY_SOURCE requires compiling
 | |
| dnl with optimization (Bug 1417452)
 | |
| if test -n "$MOZ_OPTIMIZE"; then
 | |
|    if test "$GNU_CC" -o -n "${CLANG_CC}${CLANG_CL}"; then
 | |
|       case $OS_TARGET in
 | |
|          Android)
 | |
|             dnl FORTIFY_SOURCE is not supported on Android on the
 | |
|             dnl top-level old-configure.in at this time.
 | |
|             dnl See Bug 1415595
 | |
|             ;;
 | |
|          *)
 | |
|             CFLAGS="$CFLAGS -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2"
 | |
|             CPPFLAGS="$CPPFLAGS -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2"
 | |
|             CXXFLAGS="$CXXFLAGS -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2"
 | |
|             ;;
 | |
|       esac
 | |
|    fi
 | |
| fi
 | |
| 
 | |
| dnl ========================================================
 | |
| dnl GNU specific defaults
 | |
| dnl ========================================================
 | |
| if test "$GNU_CC"; then
 | |
|     MMX_FLAGS="-mmmx"
 | |
|     SSE_FLAGS="-msse"
 | |
|     SSE2_FLAGS="-msse2"
 | |
|     SSSE3_FLAGS="-mssse3"
 | |
|     # FIXME: Let us build with strict aliasing. bug 414641.
 | |
|     CFLAGS="$CFLAGS -fno-strict-aliasing"
 | |
|     MKSHLIB='$(CXX) $(COMPUTED_CXX_LDFLAGS) $(PGO_CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-h,$(DSO_SONAME) -o $@'
 | |
|     MKCSHLIB='$(CC) $(COMPUTED_C_LDFLAGS) $(PGO_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]),
 | |
|                   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 --build-id option to ld])
 | |
|     _SAVE_LDFLAGS=$LDFLAGS
 | |
|     LDFLAGS="$LDFLAGS -Wl,--build-id"
 | |
|     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_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
 | |
| 
 | |
|     _DEFINES_CFLAGS="-include $_objdir/mozilla-config.h -DMOZILLA_CLIENT"
 | |
|     _USE_CPP_INCLUDE_FLAG=1
 | |
| 
 | |
|     ASFLAGS="$ASFLAGS $_DEFINES_CFLAGS"
 | |
| fi
 | |
| 
 | |
| if test "$GNU_CXX"; then
 | |
|     # FIXME: Let us build with strict aliasing. bug 414641.
 | |
|     CXXFLAGS="$CXXFLAGS -fno-exceptions -fno-strict-aliasing"
 | |
| 
 | |
|     _DEFINES_CXXFLAGS="-DMOZILLA_CLIENT -include $_objdir/mozilla-config.h"
 | |
|     _USE_CPP_INCLUDE_FLAG=1
 | |
| 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)
 | |
| 
 | |
| # 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 = 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_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 -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 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`
 | |
| if test -z "$MOZILLA_VERSION"; then
 | |
|   AC_MSG_ERROR([failed to read version info from milestone file])
 | |
| fi
 | |
| 
 | |
| dnl Get version of various core apps from the version files.
 | |
| FIREFOX_VERSION=`cat $_topsrcdir/browser/config/version.txt`
 | |
| FIREFOX_VERSION_DISPLAY=`cat $_topsrcdir/browser/config/version_display.txt`
 | |
| 
 | |
| if test -z "$FIREFOX_VERSION"; then
 | |
|     AC_MSG_ERROR([FIREFOX_VERSION is unexpectedly blank.])
 | |
| fi
 | |
| 
 | |
| if test -z "$FIREFOX_VERSION_DISPLAY"; then
 | |
|     AC_MSG_ERROR([FIREFOX_VERSION_DISPLAY is unexpectedly blank.])
 | |
| fi
 | |
| 
 | |
| AC_DEFINE_UNQUOTED(MOZILLA_VERSION,"$MOZILLA_VERSION")
 | |
| AC_DEFINE_UNQUOTED(MOZILLA_VERSION_U,$MOZILLA_VERSION)
 | |
| AC_DEFINE_UNQUOTED(MOZILLA_UAVERSION,"$MOZILLA_UAVERSION")
 | |
| AC_SUBST(MOZILLA_SYMBOLVERSION)
 | |
| 
 | |
| MOZ_DOING_LTO(lto_is_enabled)
 | |
| 
 | |
| dnl ========================================================
 | |
| dnl System overrides of the defaults for target
 | |
| dnl ========================================================
 | |
| 
 | |
| case "$target" in
 | |
| *-darwin*)
 | |
|     MKSHLIB='$(CXX) $(COMPUTED_CXX_LDFLAGS) $(PGO_CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
 | |
|     MKCSHLIB='$(CC) $(COMPUTED_C_LDFLAGS) $(PGO_CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
 | |
|     MOZ_OPTIMIZE_FLAGS="-O3"
 | |
|     CXXFLAGS="$CXXFLAGS -stdlib=libc++"
 | |
|     DSO_LDOPTS=''
 | |
|     STRIP_FLAGS="$STRIP_FLAGS -x -S"
 | |
|     # Ensure that if we're targeting iOS an SDK was provided.
 | |
|     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" -a -z $MOZ_IOS; then
 | |
|        AC_MSG_ERROR([targeting iOS but not using an iOS SDK?])
 | |
|     fi
 | |
|     if test -n "$MOZ_IOS"; then
 | |
|         direct_nspr_config=1
 | |
|     else
 | |
|         # 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
 | |
| 
 | |
|     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
 | |
| 
 | |
|     MOZ_FIX_LINK_PATHS="-Wl,-executable_path,${DIST}/bin"
 | |
|     ;;
 | |
| 
 | |
| *-android*|*-linuxandroid*)
 | |
|     AC_DEFINE(NO_PW_GECOS)
 | |
| 
 | |
|     if test "$COMPILE_ENVIRONMENT"; then
 | |
|         MOZ_LINKER=1
 | |
|     fi
 | |
| 
 | |
|     MOZ_GFX_OPTIMIZE_MOBILE=1
 | |
|     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"
 | |
|     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=
 | |
|     RC=rc.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"
 | |
|         # 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"
 | |
|         MOZ_FIX_LINK_PATHS=
 | |
| 
 | |
|         WIN32_CONSOLE_EXE_LDFLAGS=-mconsole
 | |
|         WIN32_GUI_EXE_LDFLAGS=-mwindows
 | |
| 
 | |
|         # GCC/binutils can't link to a function if we try to include dllexport function
 | |
|         # in the same library as dllimport caller. To work around it, we build NSPR
 | |
|         # and NSS with -mnop-fun-dllimport flag. The drawback of this solution is that
 | |
|         # function thunks need to be generated for cross-DLL calls.
 | |
|         MOZ_FOLD_LIBS_FLAGS="-mnop-fun-dllimport"
 | |
|     else
 | |
|         TARGET_COMPILER_ABI=msvc
 | |
|         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
 | |
|         MKSHLIB='$(LINK) -NOLOGO -DLL -OUT:$@ -PDB:$(LINK_PDBFILE) $(DSO_LDOPTS)'
 | |
|         MKCSHLIB='$(LINK) -NOLOGO -DLL -OUT:$@ -PDB:$(LINK_PDBFILE) $(DSO_LDOPTS)'
 | |
|         WIN32_SUBSYSTEM_VERSION=6.01
 | |
|         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 $_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"
 | |
|         fi
 | |
|         # 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 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 C4595 warns non-member operator new or delete functions
 | |
|         # may not be declared inline, as of VS2015 Update 2.
 | |
|         CFLAGS="$CFLAGS -wd4244 -wd4267"
 | |
|         CXXFLAGS="$CXXFLAGS -wd4251 -wd4244 -wd4267 -wd4800 -wd4595"
 | |
|         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"
 | |
|             # 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"
 | |
|         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"
 | |
|         MOZ_DEBUG_LDFLAGS='-DEBUG -DEBUGTYPE:CV'
 | |
|         WARNINGS_AS_ERRORS='-WX'
 | |
|         MOZ_OPTIMIZE_FLAGS='-O1 -Oi'
 | |
|         MOZ_FIX_LINK_PATHS=
 | |
|         LDFLAGS="$LDFLAGS -LARGEADDRESSAWARE -NXCOMPAT"
 | |
|         if test -z "$DEVELOPER_OPTIONS"; then
 | |
|             LDFLAGS="$LDFLAGS -RELEASE"
 | |
|         fi
 | |
|         LDFLAGS="$LDFLAGS -DYNAMICBASE"
 | |
|         RCFLAGS="-nologo"
 | |
|         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 -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"
 | |
|             LDFLAGS="$LDFLAGS -SAFESEH"
 | |
|         fi
 | |
| 
 | |
|         AC_DEFINE(_X86_)
 | |
|         ;;
 | |
|     x86_64-*)
 | |
|         if test -n "$_WIN32_MSVC"; then
 | |
|             DSO_LDOPTS="$DSO_LDOPTS -MACHINE:X64"
 | |
|         fi
 | |
|         AC_DEFINE(_AMD64_)
 | |
|         ;;
 | |
|     *)
 | |
|         AC_DEFINE(_CPU_ARCH_NOT_DEFINED)
 | |
|         ;;
 | |
|     esac
 | |
|     ;;
 | |
| 
 | |
| *-netbsd*)
 | |
|     DSO_CFLAGS=''
 | |
|     CFLAGS="$CFLAGS -Dunix"
 | |
|     CXXFLAGS="$CXXFLAGS -Dunix"
 | |
|     if $CC -E - -dM </dev/null | grep __ELF__ >/dev/null; then
 | |
|         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
 | |
|     MKSHLIB='$(CXX) $(COMPUTED_CXX_LDFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,$(DSO_SONAME) -o $@'
 | |
|     MKCSHLIB='$(CC) $(COMPUTED_C_LDFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,$(DSO_SONAME) -o $@'
 | |
|     ;;
 | |
| 
 | |
| *-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
 | |
| 
 | |
| 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)
 | |
| 
 | |
| if test -z "$COMPILE_ENVIRONMENT"; then
 | |
|     SKIP_COMPILER_CHECKS=1
 | |
|     SKIP_LIBRARY_CHECKS=1
 | |
|     PKG_SKIP_STRIP=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
 | |
| 
 | |
| 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
 | |
| 
 | |
| 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)
 | |
| 
 | |
| 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)
 | |
| 
 | |
|     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"
 | |
|     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)
 | |
| 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)
 | |
|             ;;
 | |
| 
 | |
|     esac
 | |
|     LDFLAGS="${_PTHREAD_LDFLAGS} ${LDFLAGS}"
 | |
|     AC_SUBST(MOZ_USE_PTHREADS)
 | |
|     MOZ_CHECK_HEADERS(pthread.h)
 | |
| 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 mallinfo gettid lchown setpriority strerror syscall)
 | |
| 
 | |
| dnl check for clock_gettime(), the CLOCK_MONOTONIC clock
 | |
| dnl avoid this on Darwin, since depending on your system config, we may think
 | |
| dnl it exists but it really doesn't
 | |
| case "$OS_TARGET" in
 | |
| Darwin)
 | |
|   ;;
 | |
| *)
 | |
|   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
 | |
|   ;;
 | |
| esac
 | |
| 
 | |
| 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
 | |
| 
 | |
| 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 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"
 | |
|   fi
 | |
| 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.
 | |
| 
 | |
| 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
 | |
| 
 | |
| 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)
 | |
| 
 | |
| case "$OS_TARGET" in
 | |
| WINNT|Darwin|Android)
 | |
|   MOZ_FOLD_LIBS=1
 | |
|   ;;
 | |
| *)
 | |
|   MOZ_FOLD_LIBS=
 | |
|   ;;
 | |
| esac
 | |
| 
 | |
| MOZ_CONFIG_NSPR()
 | |
| 
 | |
| 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)
 | |
| 
 | |
| 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.34, [MOZ_SYSTEM_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])])
 | |
| fi
 | |
| 
 | |
| if test -n "$MOZ_SYSTEM_NSS"; then
 | |
|    NSS_LIBS="$NSS_LIBS -lcrmf"
 | |
| else
 | |
|    NSS_CFLAGS="-I${DIST}/include/nss"
 | |
|    case "${OS_ARCH}" in
 | |
|         # Only few platforms have been tested with GYP
 | |
|         WINNT|Darwin|Linux|DragonFly|FreeBSD|NetBSD|OpenBSD|SunOS)
 | |
|             ;;
 | |
|         *)
 | |
|             AC_MSG_ERROR([building in-tree NSS is not supported on this platform. Use --with-system-nss])
 | |
|             ;;
 | |
|    esac
 | |
| 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_SYSTEM_JPEG=
 | |
| else
 | |
|     AC_CHECK_LIB(jpeg, jpeg_destroy_compress, [MOZ_SYSTEM_JPEG=1 MOZ_JPEG_LIBS="-ljpeg"], MOZ_SYSTEM_JPEG=)
 | |
| fi
 | |
| 
 | |
| if test "$MOZ_SYSTEM_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_SYSTEM_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_SYSTEM_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 -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_SYSTEM_BZ2=
 | |
| else
 | |
|     AC_CHECK_LIB(bz2, BZ2_bzread, [MOZ_SYSTEM_BZ2=1 MOZ_BZ2_LIBS="-lbz2"],
 | |
|     [MOZ_SYSTEM_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_SYSTEM_BZ2" = 1; then
 | |
|     MOZ_BZ2_CFLAGS="-I${BZ2_DIR}/include"
 | |
|     MOZ_BZ2_LIBS="-L${BZ2_DIR}/lib ${MOZ_BZ2_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_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_FEEDS=1
 | |
| MOZ_AUTH_EXTENSION=1
 | |
| if test "$MOZ_IOS"; then
 | |
|    MOZ_AUTH_EXTENSION=
 | |
| fi
 | |
| MOZ_RAW=
 | |
| MOZ_VORBIS=
 | |
| MOZ_TREMOR=
 | |
| MOZ_SAMPLE_TYPE_FLOAT32=
 | |
| MOZ_SAMPLE_TYPE_S16=
 | |
| MOZ_SRTP=
 | |
| MOZ_WEBRTC_HARDWARE_AEC_NS=
 | |
| MOZ_SCTP=
 | |
| VPX_USE_YASM=
 | |
| VPX_ASFLAGS=
 | |
| VPX_AS_CONVERSION=
 | |
| VPX_X86_ASM=
 | |
| VPX_ARM_ASM=
 | |
| LIBJPEG_TURBO_AS=
 | |
| LIBJPEG_TURBO_ASFLAGS=
 | |
| MOZ_PREF_EXTENSIONS=1
 | |
| MOZ_REFLOW_PERF=
 | |
| MOZ_SPELLCHECK=1
 | |
| MOZ_TOOLKIT_SEARCH=1
 | |
| MOZ_UI_LOCALE=en-US
 | |
| MOZ_UNIVERSALCHARDET=1
 | |
| MOZ_XUL=1
 | |
| MOZ_ZIPWRITER=1
 | |
| MOZ_NO_SMART_CARDS=
 | |
| NECKO_COOKIES=1
 | |
| MOZ_USE_NATIVE_POPUP_WINDOWS=
 | |
| MOZ_EXCLUDE_HYPHENATION_DICTIONARIES=
 | |
| ACCESSIBILITY=1
 | |
| MOZ_TIME_MANAGER=
 | |
| MOZ_CONTENT_SANDBOX=
 | |
| MOZ_GMP_SANDBOX=
 | |
| MOZ_SANDBOX=1
 | |
| MOZ_BINARY_EXTENSIONS=
 | |
| MOZ_DEVTOOLS=server
 | |
| 
 | |
| case "$target_os" in
 | |
|     mingw*)
 | |
|         NS_ENABLE_TSF=1
 | |
|         AC_DEFINE(NS_ENABLE_TSF)
 | |
|         ;;
 | |
| esac
 | |
| 
 | |
| case "${target}" in
 | |
|     *-android*|*-linuxandroid*)
 | |
|         MOZ_RAW=1
 | |
|         ;;
 | |
| 
 | |
| esac
 | |
| 
 | |
| # Optional Firefox for Android partner distribution directory.
 | |
| MOZ_ARG_WITH_STRING(android-distribution-directory,
 | |
| [  --with-android-distribution-directory=dir
 | |
|                           Optional Firefox for Android partner distribution directory.],
 | |
|   MOZ_ANDROID_DISTRIBUTION_DIRECTORY=$withval)
 | |
| 
 | |
| if test -n "$MOZ_ANDROID_DISTRIBUTION_DIRECTORY"; then
 | |
|   # A distribution directory must have an assets/distribution directory.
 | |
|   # See https://wiki.mozilla.org/Mobile/Distribution_Files.
 | |
|   if test ! -d "$MOZ_ANDROID_DISTRIBUTION_DIRECTORY/assets/distribution" ; then
 | |
|     AC_MSG_ERROR([--with-android-distribution-directory does not contain assets/distribution;
 | |
|                   (looked for ${MOZ_ANDROID_DISTRIBUTION_DIRECTORY}/assets/distribution).])
 | |
|   fi
 | |
| fi
 | |
| AC_SUBST(MOZ_ANDROID_DISTRIBUTION_DIRECTORY)
 | |
| 
 | |
| 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
 | |
| 
 | |
| # 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
 | |
| 
 | |
| # 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)
 | |
|   ;;
 | |
| esac
 | |
| 
 | |
| # Graphene is a desktop runtime for running applications with a HTML UI.
 | |
| if test -n "$MOZ_GRAPHENE"; then
 | |
|     AC_DEFINE(MOZ_GRAPHENE)
 | |
| fi
 | |
| 
 | |
| if test -n "$MOZ_MULET"; then
 | |
|     AC_DEFINE(MOZ_MULET)
 | |
| fi
 | |
| 
 | |
| AC_SUBST(MOZ_PHOENIX)
 | |
| AC_SUBST(MOZ_XULRUNNER)
 | |
| AC_SUBST(MOZ_MULET)
 | |
| 
 | |
| 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(23, 23, 25.0.3, 26.0.0 26.0.0-dev 25.3.2 25.3.1)
 | |
|     ;;
 | |
| 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 -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 -Wl,-framework,Security -Wl,-framework,ServiceManagement'
 | |
|     TK_CFLAGS=""
 | |
|     CFLAGS="$CFLAGS $TK_CFLAGS"
 | |
|     CXXFLAGS="$CXXFLAGS $TK_CFLAGS"
 | |
|     MOZ_USER_DIR="Mozilla"
 | |
|     MOZ_FS_LAYOUT=bundle
 | |
|     ;;
 | |
| 
 | |
| uikit)
 | |
|     LDFLAGS="$LDFLAGS -framework UIKit -lobjc"
 | |
|     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
 | |
| 
 | |
| 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" = gtk3; then
 | |
|     PKG_CHECK_MODULES(MOZ_GTK3, gtk+-3.0 >= $GTK3_VERSION gtk+-unix-print-3.0 glib-2.0 gobject-2.0 $GDK_PACKAGES)
 | |
|     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)
 | |
|     GLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_32
 | |
|   fi
 | |
|   if test "$MOZ_WIDGET_TOOLKIT" = 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
 | |
|   if test "$MOZ_WIDGET_TOOLKIT" = gtk2; then
 | |
|     TK_CFLAGS=$MOZ_GTK2_CFLAGS
 | |
|     TK_LIBS=$MOZ_GTK2_LIBS
 | |
|   fi
 | |
| fi # COMPILE_ENVIRONMENT
 | |
| 
 | |
| AC_SUBST(MOZ_FS_LAYOUT)
 | |
| 
 | |
| dnl ========================================================
 | |
| dnl = startup-notification support module
 | |
| dnl ========================================================
 | |
| 
 | |
| if test "$MOZ_ENABLE_GTK"
 | |
| then
 | |
|     MOZ_ENABLE_STARTUP_NOTIFICATION=
 | |
| 
 | |
|     MOZ_ARG_ENABLE_BOOL(startup-notification,
 | |
|     [  --enable-startup-notification
 | |
|                           Enable startup-notification support (default: disabled) ],
 | |
|         MOZ_ENABLE_STARTUP_NOTIFICATION=force,
 | |
|         MOZ_ENABLE_STARTUP_NOTIFICATION=)
 | |
|     if test "$MOZ_ENABLE_STARTUP_NOTIFICATION"
 | |
|     then
 | |
|         PKG_CHECK_MODULES(MOZ_STARTUP_NOTIFICATION,
 | |
|                           libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_VERSION,
 | |
|         [MOZ_ENABLE_STARTUP_NOTIFICATION=1], [
 | |
|             if test "$MOZ_ENABLE_STARTUP_NOTIFICATION" = "force"
 | |
|             then
 | |
|                 AC_MSG_ERROR([* * * Could not find startup-notification >= $STARTUP_NOTIFICATION_VERSION])
 | |
|             fi
 | |
|             MOZ_ENABLE_STARTUP_NOTIFICATION=
 | |
|         ])
 | |
|     fi
 | |
| 
 | |
|     if test "$MOZ_ENABLE_STARTUP_NOTIFICATION"; then
 | |
|         AC_DEFINE(MOZ_ENABLE_STARTUP_NOTIFICATION)
 | |
|     fi
 | |
| 
 | |
|     TK_LIBS="$TK_LIBS $MOZ_STARTUP_NOTIFICATION_LIBS"
 | |
| fi
 | |
| AC_SUBST(MOZ_ENABLE_STARTUP_NOTIFICATION)
 | |
| 
 | |
| AC_SUBST_LIST(TK_CFLAGS)
 | |
| AC_SUBST_LIST(TK_LIBS)
 | |
| 
 | |
| AC_SUBST(MOC)
 | |
| AC_SUBST(RCC)
 | |
| 
 | |
| 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)
 | |
| 
 | |
| 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"
 | |
| 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 = 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
 | |
| MOZ_ANDROID_GOOGLE_CLOUD_MESSAGING
 | |
| MOZ_ANDROID_INSTALL_TRACKING
 | |
| 
 | |
| 
 | |
| dnl ========================================================
 | |
| dnl = GConf support module
 | |
| dnl ========================================================
 | |
| 
 | |
| if test "$MOZ_X11"
 | |
| then
 | |
|     if test "$MOZ_ENABLE_GTK"
 | |
|     then
 | |
|         MOZ_ENABLE_GCONF=1
 | |
|     fi
 | |
| 
 | |
|     dnl ========================================================
 | |
|     dnl = GConf support module
 | |
|     dnl ========================================================
 | |
|     MOZ_ARG_DISABLE_BOOL(gconf,
 | |
|     [  --disable-gconf      Disable Gconf support ],
 | |
|         MOZ_ENABLE_GCONF=,
 | |
|         MOZ_ENABLE_GCONF=1)
 | |
| 
 | |
|     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 -n "$MOZ_ENABLE_GCONF";
 | |
|             then
 | |
|                 AC_MSG_ERROR([* * * Could not find gconf-2.0 ])
 | |
|             else
 | |
|                 AC_MSG_WARN([Many automated tests will fail with --disable-gconf. See bug 1167201.])
 | |
|             fi
 | |
|         ])
 | |
|     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"
 | |
| 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)
 | |
| 
 | |
| dnl =========================================================
 | |
| dnl = Whether to exclude hyphenations files in the build
 | |
| dnl =========================================================
 | |
| if test -n "$MOZ_EXCLUDE_HYPHENATION_DICTIONARIES"; then
 | |
|     AC_DEFINE(MOZ_EXCLUDE_HYPHENATION_DICTIONARIES)
 | |
| fi
 | |
| 
 | |
| dnl ========================================================
 | |
| dnl accessibility support on by default on all platforms
 | |
| dnl ========================================================
 | |
| MOZ_ARG_DISABLE_BOOL(accessibility,
 | |
| [  --disable-accessibility Disable accessibility support],
 | |
|     ACCESSIBILITY=,
 | |
|     ACCESSIBILITY=1 )
 | |
| if test "$ACCESSIBILITY"; then
 | |
|     case "$target" in
 | |
|     *-mingw*)
 | |
|         if test -z "$MIDL"; then
 | |
|             if test "$GCC" != "yes"; then
 | |
|                 AC_MSG_ERROR([MIDL could not be found. Building accessibility without MIDL is not supported.])
 | |
|             else
 | |
|                 AC_MSG_ERROR([You have accessibility enabled, but widl could not be found. Add --disable-accessibility to your mozconfig or install widl. See https://developer.mozilla.org/en-US/docs/Cross_Compile_Mozilla_for_Mingw32 for details.])
 | |
|             fi
 | |
|         fi
 | |
|     esac
 | |
|     AC_DEFINE(ACCESSIBILITY)
 | |
| fi
 | |
| 
 | |
| dnl ========================================================
 | |
| dnl Accessibility is required for the linuxgl widget
 | |
| dnl backend
 | |
| dnl ========================================================
 | |
| if test "${MOZ_WIDGET_TOOLKIT}" = "linuxgl" -a "$ACCESSIBILITY" != "1"; then
 | |
|     AC_MSG_ERROR(["Accessibility is required for the linuxgl widget backend"])
 | |
| fi
 | |
| 
 | |
| 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
 | |
|     MOZ_RAW=1
 | |
|     MOZ_SCTP=1
 | |
|     MOZ_SRTP=1
 | |
|     AC_DEFINE(MOZ_SCTP)
 | |
|     AC_DEFINE(MOZ_SRTP)
 | |
|     if test -n "$MOZ_X11"; then
 | |
|       MOZ_WEBRTC_X11_LIBS="-lXext -lXdamage -lXfixes -lXcomposite"
 | |
|     fi
 | |
| else
 | |
|     MOZ_SYNTH_PICO=
 | |
| fi
 | |
| 
 | |
| dnl ========================================================
 | |
| dnl = Force hardware AEC, disable webrtc.org AEC
 | |
| dnl ========================================================
 | |
| MOZ_ARG_ENABLE_BOOL(hardware-aec-ns,
 | |
| [  --enable-hardware-aec-ns   Enable support for hardware AEC and noise suppression],
 | |
|     MOZ_WEBRTC_HARDWARE_AEC_NS=1,
 | |
|     MOZ_WEBRTC_HARDWARE_AEC_NS=)
 | |
| 
 | |
| if test -n "$MOZ_WEBRTC_HARDWARE_AEC_NS"; then
 | |
|     AC_DEFINE(MOZ_WEBRTC_HARDWARE_AEC_NS)
 | |
| fi
 | |
| 
 | |
| AC_SUBST(MOZ_WEBRTC_HARDWARE_AEC_NS)
 | |
| AC_SUBST(MOZ_SCTP)
 | |
| AC_SUBST(MOZ_SRTP)
 | |
| AC_SUBST_LIST(MOZ_WEBRTC_X11_LIBS)
 | |
| 
 | |
| 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 = Enable Raw Codecs
 | |
| dnl ========================================================
 | |
| MOZ_ARG_ENABLE_BOOL(raw,
 | |
| [  --enable-raw           Enable support for RAW media],
 | |
|     MOZ_RAW=1,
 | |
|     MOZ_RAW=)
 | |
| 
 | |
| if test -n "$MOZ_RAW"; then
 | |
|     AC_DEFINE(MOZ_RAW)
 | |
| fi
 | |
| 
 | |
| AC_SUBST(MOZ_RAW)
 | |
| 
 | |
| dnl ========================================================
 | |
| dnl = 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_HEADER([CoreMedia/CoreMedia.h], [],
 | |
|     [AC_MSG_ERROR([MacOS X 10.7 SDK or later is required])])
 | |
| fi
 | |
| fi # COMPILE_ENVIRONMENT
 | |
| 
 | |
| dnl system libvpx Support
 | |
| dnl ========================================================
 | |
| MOZ_ARG_WITH_BOOL(system-libvpx,
 | |
| [  --with-system-libvpx    Use system libvpx (located with pkgconfig)],
 | |
|     MOZ_SYSTEM_LIBVPX=1)
 | |
| 
 | |
| MOZ_LIBVPX_CFLAGS=
 | |
| MOZ_LIBVPX_LIBS=
 | |
| 
 | |
| _SAVE_CFLAGS=$CFLAGS
 | |
| _SAVE_LIBS=$LIBS
 | |
| if test -n "$MOZ_SYSTEM_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.5.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])])
 | |
| 
 | |
|     MOZ_CHECK_HEADER([vpx_mem/vpx_mem.h],
 | |
|      [AC_CHECK_FUNC(vpx_mem_set_functions)])
 | |
|     if test "$ac_cv_header_vpx_mem_vpx_mem_h" = no -o \
 | |
|             "$ac_cv_func_vpx_mem_set_functions" = no; then
 | |
|         AC_DEFINE(MOZ_VPX_NO_MEM_REPORTING)
 | |
|     fi
 | |
| fi
 | |
| CFLAGS=$_SAVE_CFLAGS
 | |
| LIBS=$_SAVE_LIBS
 | |
| 
 | |
| AC_SUBST(MOZ_SYSTEM_LIBVPX)
 | |
| AC_SUBST_LIST(MOZ_LIBVPX_CFLAGS)
 | |
| AC_SUBST_LIST(MOZ_LIBVPX_LIBS)
 | |
| 
 | |
| if test "$MOZ_SAMPLE_TYPE_FLOAT32"; then
 | |
|     MOZ_VORBIS=1
 | |
| else
 | |
|     MOZ_TREMOR=1
 | |
| fi
 | |
| 
 | |
| if test -z "$MOZ_SYSTEM_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.
 | |
| 
 | |
|     dnl See if we have assembly on this platform.
 | |
|     case "$OS_ARCH:$CPU_ARCH" in
 | |
|     Darwin:x86)
 | |
|       VPX_USE_YASM=1
 | |
|       VPX_X86_ASM=1
 | |
|     ;;
 | |
|     Darwin:x86_64)
 | |
|       VPX_USE_YASM=1
 | |
|       VPX_X86_ASM=1
 | |
|     ;;
 | |
|     WINNT:x86_64)
 | |
|       VPX_USE_YASM=1
 | |
|       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_USE_YASM=1
 | |
|         VPX_X86_ASM=1
 | |
|         dnl The encoder needs obj_int_extract to get asm offsets.
 | |
|       fi # COMPILE_ENVIRONMENT and others
 | |
|     ;;
 | |
|     *:arm*)
 | |
|       if test -n "$GNU_AS" ; then
 | |
|         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_AS_CONVERSION='$(PERL) $(topsrcdir)/media/libvpx/libvpx/build/make/ads2gas.pl'
 | |
|         VPX_ARM_ASM=1
 | |
|         dnl Building with -mfpu=neon requires either the "softfp" or the
 | |
|         dnl "hardfp" ABI. Depending on the compiler's default target, and the
 | |
|         dnl CFLAGS, the default ABI might be neither, in which case it is the
 | |
|         dnl "softfloat" ABI.
 | |
|         dnl The "softfloat" ABI is binary-compatible with the "softfp" ABI, so
 | |
|         dnl we can safely mix code built with both ABIs. So, if we detect
 | |
|         dnl that compiling uses the "softfloat" ABI, force the use of the
 | |
|         dnl "softfp" ABI instead.
 | |
|         dnl Confusingly, the __SOFTFP__ preprocessor variable indicates the
 | |
|         dnl "softfloat" ABI, not the "softfp" ABI.
 | |
|         dnl Note: VPX_ASFLAGS is also used in CFLAGS.
 | |
|         AC_TRY_COMPILE([],
 | |
|           [#ifndef __SOFTFP__
 | |
|            #error "compiler target supports -mfpu=neon, so we don't have to add extra flags"
 | |
|            #endif],
 | |
|            VPX_ASFLAGS="$VPX_ASFLAGS -mfloat-abi=softfp"
 | |
|            )
 | |
|       fi
 | |
|     ;;
 | |
|     *:x86)
 | |
|       if $CC -E -dM -</dev/null | grep -q __ELF__; then
 | |
|         VPX_USE_YASM=1
 | |
|         VPX_X86_ASM=1
 | |
|       fi
 | |
|     ;;
 | |
|     *:x86_64)
 | |
|       if $CC -E -dM -</dev/null | grep -q __ELF__; then
 | |
|         VPX_USE_YASM=1
 | |
|         VPX_X86_ASM=1
 | |
|       fi
 | |
|     ;;
 | |
|     esac
 | |
| 
 | |
|     if test -n "$COMPILE_ENVIRONMENT" -a -n "$VPX_USE_YASM" -a -z "$YASM"; 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 # COMPILE_ENVIRONMENT and others
 | |
| 
 | |
|     if test -n "$VPX_USE_YASM" && test "$OS_ARCH:$CPU_ARCH" != "WINNT:x86_64"; then
 | |
|       VPX_ASFLAGS="-DPIC"
 | |
|     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
 | |
| 
 | |
|     dnl native libvpx no longer has vpx_mem_set_functions
 | |
|     AC_DEFINE(MOZ_VPX_NO_MEM_REPORTING)
 | |
| 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)
 | |
| fi
 | |
| 
 | |
| MOZ_WEBM_ENCODER=1
 | |
| AC_DEFINE(MOZ_WEBM_ENCODER)
 | |
| AC_SUBST(MOZ_WEBM_ENCODER)
 | |
| 
 | |
| dnl ==================================
 | |
| dnl = Check alsa availability on Linux
 | |
| dnl ==================================
 | |
| 
 | |
| MOZ_ARG_ENABLE_BOOL(alsa,
 | |
| [  --enable-alsa          Enable Alsa support],
 | |
|    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 Desktop Linux, ensure that the PA library is available
 | |
| case "$OS_TARGET" in
 | |
| WINNT|Darwin|Android|OpenBSD)
 | |
|     ;;
 | |
| *)
 | |
|     MOZ_PULSEAUDIO=1
 | |
|     ;;
 | |
| esac
 | |
| 
 | |
| MOZ_ARG_DISABLE_BOOL(pulseaudio,
 | |
| [  --disable-pulseaudio          Disable PulseAudio support],
 | |
|    MOZ_PULSEAUDIO=,
 | |
|    MOZ_PULSEAUDIO=1)
 | |
| 
 | |
| if test -n "$MOZ_PULSEAUDIO"; then
 | |
|     AC_DEFINE(MOZ_PULSEAUDIO)
 | |
|     PKG_CHECK_MODULES(MOZ_PULSEAUDIO, libpulse, ,
 | |
|          [echo "$MOZ_PULSEAUDIO_PKG_ERRORS"
 | |
|           AC_MSG_ERROR([pulseaudio audio backend requires libpulse development package])])
 | |
| fi
 | |
| 
 | |
| AC_SUBST(MOZ_PULSEAUDIO)
 | |
| 
 | |
| dnl ========================================================
 | |
| dnl NegotiateAuth
 | |
| dnl ========================================================
 | |
| 
 | |
| MOZ_ARG_DISABLE_BOOL(negotiateauth,
 | |
| [  --disable-negotiateauth Disable GSS-API negotiation ],
 | |
|     MOZ_AUTH_EXTENSION=,
 | |
|     MOZ_AUTH_EXTENSION=1 )
 | |
| 
 | |
| if test -n "$MOZ_IOS" -a -n "$MOZ_AUTH_EXTENSION"; then
 | |
|    AC_MSG_ERROR([negotiateauth is not supported on iOS.])
 | |
| fi
 | |
| 
 | |
| 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 )
 | |
| 
 | |
| dnl ========================================================
 | |
| dnl = ANGLE OpenGL->D3D translator for WebGL
 | |
| dnl = * only applies to win32 (and then, not MINGW)
 | |
| dnl ========================================================
 | |
| 
 | |
| MOZ_ANGLE_RENDERER=
 | |
| MOZ_D3D_CPU_SUFFIX=
 | |
| MOZ_HAS_WINSDK_WITH_D3D=
 | |
| MOZ_D3DCOMPILER_VISTA_DLL=
 | |
| MOZ_D3DCOMPILER_VISTA_DLL_PATH=
 | |
| 
 | |
| if test "$COMPILE_ENVIRONMENT" ; then
 | |
| 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
 | |
| 
 | |
| 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*|0x0A00*)
 | |
|     MOZ_D3DCOMPILER_VISTA_DLL=d3dcompiler_47.dll
 | |
|     AC_MSG_RESULT([Found D3D compiler in Windows SDK.])
 | |
|   ;;
 | |
|   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
 | |
|   else
 | |
|     if test "$OS_ARCH" = "$HOST_OS_ARCH"; then
 | |
|       AC_MSG_ERROR([Couldn't find Windows SDK 8.1 or higher needed for ANGLE.])
 | |
|     else
 | |
|       AC_MSG_RESULT([Windows SDK not needed for ANGLE in Linux MinGW build.])
 | |
|     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 # MOZ_ANGLE_RENDERER
 | |
| 
 | |
| fi # COMPILE_ENVIRONMENT
 | |
| 
 | |
| 
 | |
| dnl ========================================================
 | |
| dnl Gamepad support
 | |
| dnl ========================================================
 | |
| MOZ_GAMEPAD_BACKEND=stub
 | |
| 
 | |
| case "$OS_TARGET" in
 | |
| Darwin)
 | |
|     if test -z "$MOZ_IOS"; then
 | |
|         MOZ_GAMEPAD_BACKEND=cocoa
 | |
|     fi
 | |
|     ;;
 | |
| 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.])
 | |
|     fi
 | |
|     MOZ_GAMEPAD_BACKEND=linux
 | |
|     ;;
 | |
| Android)
 | |
|     MOZ_GAMEPAD_BACKEND=android
 | |
|     ;;
 | |
| *)
 | |
|     ;;
 | |
| esac
 | |
| 
 | |
| AC_SUBST(MOZ_GAMEPAD_BACKEND)
 | |
| 
 | |
| dnl ========================================================
 | |
| dnl = Breakpad crash reporting (on by default on supported platforms)
 | |
| dnl ========================================================
 | |
| 
 | |
| case $target in
 | |
| i?86-*-mingw*|x86_64-*-mingw*)
 | |
|   MOZ_CRASHREPORTER=1
 | |
|   ;;
 | |
| i?86-apple-darwin*|x86_64-apple-darwin*)
 | |
|   if test -z "$MOZ_IOS"; then
 | |
|     MOZ_CRASHREPORTER=1
 | |
|   fi
 | |
|   ;;
 | |
| i?86-*-linux*|x86_64-*-linux*|arm-*-linux*)
 | |
|   if test "$MOZ_ENABLE_GTK"; then
 | |
|     MOZ_CRASHREPORTER=1
 | |
|   fi
 | |
|   ;;
 | |
| *-android*|*-linuxandroid*)
 | |
|   MOZ_CRASHREPORTER=1
 | |
|   ;;
 | |
| 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"; 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 = libjpeg-turbo configuration
 | |
| dnl ========================================================
 | |
| MOZ_LIBJPEG_TURBO=
 | |
| LIBJPEG_TURBO_USE_YASM=
 | |
| if test -z "$MOZ_SYSTEM_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_SYSTEM_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" -a -n "$COMPILE_ENVIRONMENT"; then
 | |
| 
 | |
|   dnl Do we support libjpeg-turbo on this platform?
 | |
|   case "$OS_ARCH:$CPU_ARCH" in
 | |
|   Darwin:x86)
 | |
|     LIBJPEG_TURBO_ASFLAGS="-DPIC -DMACHO"
 | |
|   ;;
 | |
|   Darwin:x86_64)
 | |
|     LIBJPEG_TURBO_ASFLAGS="-D__x86_64__ -DPIC -DMACHO"
 | |
|   ;;
 | |
|   Darwin:arm*)
 | |
|   ;;
 | |
|   WINNT:x86)
 | |
|     LIBJPEG_TURBO_ASFLAGS="-DPIC -DWIN32"
 | |
|   ;;
 | |
|   WINNT:x86_64)
 | |
|     LIBJPEG_TURBO_ASFLAGS="-D__x86_64__ -DPIC -DWIN64 -DMSVC"
 | |
|   ;;
 | |
|   *:arm)
 | |
|     LIBJPEG_TURBO_ASFLAGS="-march=armv7-a -mfpu=neon"
 | |
|   ;;
 | |
|   *:aarch64)
 | |
|     LIBJPEG_TURBO_ASFLAGS="-march=armv8-a"
 | |
|   ;;
 | |
|   *:mips32)
 | |
|     LIBJPEG_TURBO_ASFLAGS="-mdspr2"
 | |
|   ;;
 | |
|   *:x86)
 | |
|     if $CC -E -dM -</dev/null | grep -q __ELF__; then
 | |
|       LIBJPEG_TURBO_ASFLAGS="-DPIC -DELF"
 | |
|     fi
 | |
|   ;;
 | |
|   *:x86_64)
 | |
|     if $CC -E -dM -</dev/null | grep -q __ELF__; then
 | |
|       LIBJPEG_TURBO_ASFLAGS="-D__x86_64__ -DPIC -DELF"
 | |
|     fi
 | |
|   ;;
 | |
|   esac
 | |
| fi
 | |
| 
 | |
| if test -n "$LIBJPEG_TURBO_ASFLAGS"; then
 | |
|   case "$CPU_ARCH" in
 | |
| 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.
 | |
|   x86_64|x86)
 | |
|     LIBJPEG_TURBO_USE_YASM=1
 | |
| 
 | |
|     if test -z "$YASM" ; 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
 | |
|   ;;
 | |
|   esac
 | |
| fi
 | |
| 
 | |
| dnl ========================================================
 | |
| dnl = libav-fft configuration
 | |
| dnl ========================================================
 | |
| 
 | |
| MOZ_LIBAV_FFT=
 | |
| 
 | |
| dnl Turn on libav-fft for 32-bit windows, and all 64-bit supported platforms.
 | |
| dnl 32-bit linux/os x have text relocation issues.
 | |
| 
 | |
| case "$OS_ARCH:$CPU_ARCH" in
 | |
|   WINNT:x86)
 | |
|       MOZ_LIBAV_FFT=1
 | |
|   ;;
 | |
|   *:x86_64)
 | |
|       MOZ_LIBAV_FFT=1
 | |
|   ;;
 | |
| esac
 | |
| 
 | |
| dnl Detect if we can use yasm to compile libav's assembly
 | |
| 
 | |
| if test -n "$MOZ_LIBAV_FFT" -a -n "$COMPILE_ENVIRONMENT"; then
 | |
|   AC_DEFINE(MOZ_LIBAV_FFT)
 | |
|   dnl Do we support libav-fft on this platform?
 | |
|   case "$OS_ARCH:$CPU_ARCH" in
 | |
|   Darwin:x86_64)
 | |
|     LIBAV_FFT_ASFLAGS="-D__x86_64__ -DPIC -DMACHO"
 | |
|   ;;
 | |
|   WINNT:x86)
 | |
|     LIBAV_FFT_ASFLAGS="-DPIC -DWIN32"
 | |
|   ;;
 | |
|   WINNT:x86_64)
 | |
|     LIBAV_FFT_ASFLAGS="-D__x86_64__ -DPIC -DWIN64 -DMSVC"
 | |
|   ;;
 | |
|   *:x86_64)
 | |
|     if $CC -E -dM -</dev/null | grep -q __ELF__; then
 | |
|       LIBAV_FFT_ASFLAGS="-D__x86_64__ -DPIC -DELF"
 | |
|     fi
 | |
|   ;;
 | |
|   *)
 | |
|     AC_MSG_ERROR([libav's FFT routines are only available for 32-bit windows or 64-bit x86 based platforms.])
 | |
|   ;;
 | |
|   esac
 | |
| fi
 | |
| 
 | |
| if test -n "$LIBAV_FFT_ASFLAGS"; then
 | |
|   dnl If we're on an x86 or x64 system which supports libav-fft's asm routines
 | |
|   dnl check for Yasm, and error out if it doesn't exist or we have too old of a
 | |
|   dnl version.
 | |
|   if test -z "$YASM" ; then
 | |
|     AC_MSG_ERROR([Yasm is required to build with libav's optimized FFT routines, but you do not appear to have Yasm installed. 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 libav's optimized FFT routines, but you do not appear to have Yasm installed.  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 libav's optimized FFT routines, but you do not appear to have Yasm installed.  See https://developer.mozilla.org/en/YASM for more details.])
 | |
|     fi
 | |
|   fi
 | |
| elif test -n "$MOZ_LIBAV_FFT" -a "${CPU_ARCH}" != "arm"; then
 | |
|   dnl Warn if we're not building either libav or opendl-max optimized routines.
 | |
|   AC_MSG_WARN([No assembler or assembly support for libav-fft.  Using unoptimized C routines.])
 | |
| fi
 | |
| 
 | |
| dnl ========================================================
 | |
| dnl = FFmpeg's ffvpx configuration
 | |
| dnl ========================================================
 | |
| 
 | |
| MOZ_FFVPX=
 | |
| MOZ_FFVPX_FLACONLY=
 | |
| case "$CPU_ARCH" in
 | |
|   x86|x86_64)
 | |
|       MOZ_FFVPX=1
 | |
|       dnl Use same conditional as MOZ_LIBAV_FFT to enable FFmpeg's ffvpx assembly decoder.
 | |
|       if test -n "$LIBAV_FFT_ASFLAGS"; then
 | |
|           FFVPX_ASFLAGS=$LIBAV_FFT_ASFLAGS
 | |
|       else
 | |
|           dnl On x86 system with assembly optimizations disabled, the ffvp9 and
 | |
|           dnl ffvp8 decoders give worse performance than libvpx ones. So we only
 | |
|           dnl enable the FFmpeg FLAC decoder on those machines.
 | |
|           MOZ_FFVPX_FLACONLY=1
 | |
|       fi
 | |
|   ;;
 | |
|   arm*|aarch64)
 | |
|       MOZ_FFVPX=1
 | |
|       MOZ_FFVPX_FLACONLY=1
 | |
|       dnl Use same conditional as MOZ_LIBVPX to enable FFmpeg's ffvpx assembly decoder.
 | |
|       dnl aarch 64 FLAC decoder for now will be C only.
 | |
|       FFVPX_ASFLAGS=$VPX_ASFLAGS
 | |
|   ;;
 | |
| esac
 | |
| 
 | |
| if test -n "$MOZ_FFVPX"; then
 | |
|   AC_DEFINE(MOZ_FFVPX)
 | |
| fi
 | |
| if test -n "$MOZ_FFVPX_FLACONLY"; then
 | |
|   AC_DEFINE(MOZ_FFVPX_FLACONLY)
 | |
| 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
 | |
| 
 | |
| if test -n "$MOZ_USE_NATIVE_POPUP_WINDOWS"; then
 | |
|   AC_DEFINE(MOZ_USE_NATIVE_POPUP_WINDOWS)
 | |
| fi
 | |
| 
 | |
| # 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
 | |
| 
 | |
| AC_CHECK_PROGS(WGET, wget, "")
 | |
| AC_SUBST(WGET)
 | |
| 
 | |
| dnl ========================================================
 | |
| dnl Maintenance Service
 | |
| dnl ========================================================
 | |
| 
 | |
| MOZ_ARG_ENABLE_BOOL(maintenance-service,
 | |
| [  --enable-maintenance-service       Enable building of maintenanceservice],
 | |
|     MOZ_MAINTENANCE_SERVICE=1,
 | |
|     MOZ_MAINTENANCE_SERVICE= )
 | |
| 
 | |
| if test -n "$MOZ_MAINTENANCE_SERVICE"; then
 | |
|   if test "$OS_ARCH" = "WINNT"; then
 | |
|     AC_DEFINE(MOZ_MAINTENANCE_SERVICE)
 | |
|   else
 | |
|     AC_MSG_ERROR([Can only build with --enable-maintenance-service with a Windows target])
 | |
|   fi
 | |
| fi
 | |
| 
 | |
| dnl ========================================================
 | |
| dnl 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
 | |
|   AC_DEFINE(MOZ_VERIFY_MAR_SIGNATURE)
 | |
| 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
 | |
|   if test -z "$COMPILE_ENVIRONMENT" ; then
 | |
|     AC_MSG_WARN([Cannot --enable-signmar with --disable-compile-environment])
 | |
|     MOZ_ENABLE_SIGNMAR=
 | |
|   else
 | |
|     AC_DEFINE(MOZ_ENABLE_SIGNMAR)
 | |
|   fi
 | |
| fi
 | |
| 
 | |
| dnl ========================================================
 | |
| dnl Updater
 | |
| dnl ========================================================
 | |
| 
 | |
| if test "$MOZ_IOS"; then
 | |
|   MOZ_UPDATER=
 | |
| fi
 | |
| 
 | |
| 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)
 | |
| 
 | |
| dnl ========================================================
 | |
| dnl = Content process sandboxing
 | |
| dnl ========================================================
 | |
| 
 | |
| case "$OS_TARGET" in
 | |
| WINNT)
 | |
|     MOZ_CONTENT_SANDBOX=$MOZ_SANDBOX
 | |
|     ;;
 | |
| Darwin)
 | |
|     MOZ_CONTENT_SANDBOX=$MOZ_SANDBOX
 | |
|     ;;
 | |
| Linux)
 | |
|     case $CPU_ARCH in
 | |
|         x86_64|x86)
 | |
|             MOZ_CONTENT_SANDBOX=$MOZ_SANDBOX
 | |
|         ;;
 | |
|     esac
 | |
|     ;;
 | |
| 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 = Gecko 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_SYSTEM_SQLITE=
 | |
| MOZ_ARG_ENABLE_BOOL(system-sqlite,
 | |
| [  --enable-system-sqlite  Use system sqlite (located with pkgconfig)],
 | |
| MOZ_SYSTEM_SQLITE=1,
 | |
| MOZ_SYSTEM_SQLITE= )
 | |
| 
 | |
| if test -n "$MOZ_SYSTEM_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
 | |
| 
 | |
|     dnl =========================================
 | |
|     dnl === SQLITE_ENABLE_DBSTAT_VTAB check ===
 | |
|     dnl =========================================
 | |
|     dnl check to see if the system SQLite package is compiled with
 | |
|     dnl SQLITE_ENABLE_DBSTAT_VTAB.
 | |
|     AC_MSG_CHECKING(for SQLITE_ENABLE_DBSTAT_VTAB support in system SQLite)
 | |
|     _SAVE_CFLAGS="$CFLAGS"
 | |
|     CFLAGS="$CFLAGS $SQLITE_CFLAGS"
 | |
|     _SAVE_LIBS="$LIBS"
 | |
|     LIBS="$LIBS $SQLITE_LIBS"
 | |
|     AC_CACHE_VAL(ac_cv_sqlite_dbstat_vtab,[
 | |
|         AC_TRY_RUN([
 | |
|             #include "sqlite3.h"
 | |
| 
 | |
|             int main(int argc, char **argv){
 | |
|               return !sqlite3_compileoption_used("SQLITE_ENABLE_DBSTAT_VTAB");
 | |
|             }],
 | |
|             ac_cv_sqlite_dbstat_vtab=yes,
 | |
|             ac_cv_sqlite_dbstat_vtab=no,
 | |
|             ac_cv_sqlite_dbstat_vtab=no
 | |
|         )
 | |
|     ])
 | |
|     AC_MSG_RESULT($ac_cv_sqlite_dbstat_vtab)
 | |
|     CFLAGS="$_SAVE_CFLAGS"
 | |
|     LIBS="$_SAVE_LIBS"
 | |
|     if test "x$ac_cv_sqlite_dbstat_vtab" = "xno"; then
 | |
|         AC_MSG_ERROR([System SQLite library is not compiled with SQLITE_ENABLE_DBSTAT_VTAB.])
 | |
|     fi
 | |
| else
 | |
|     dnl ==============================
 | |
|     dnl === SQLite fdatasync check ===
 | |
|     dnl ==============================
 | |
|     dnl Check to see if fdatasync is available
 | |
|     AC_CHECK_FUNC(fdatasync)
 | |
| fi
 | |
| 
 | |
| if test -n "$MOZ_SYSTEM_SQLITE"; then
 | |
|     AC_DEFINE(MOZ_SYSTEM_SQLITE)
 | |
| fi
 | |
| AC_SUBST(MOZ_SYSTEM_SQLITE)
 | |
| 
 | |
| 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 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 ========================================================
 | |
| 
 | |
| # 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
 | |
| 
 | |
| MOZ_SET_FRAMEPTR_FLAGS
 | |
| 
 | |
| 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
 | |
| fi
 | |
| fi # COMPILE_ENVIRONMENT
 | |
| 
 | |
| AC_SUBST_LIST(MOZ_FRAMEPTR_FLAGS)
 | |
| AC_SUBST_LIST(MOZ_OPTIMIZE_FLAGS)
 | |
| AC_SUBST_LIST(MOZ_OPTIMIZE_LDFLAGS)
 | |
| AC_SUBST_LIST(MOZ_PGO_OPTIMIZE_FLAGS)
 | |
| 
 | |
| dnl ========================================================
 | |
| dnl = Disable treating compiler warnings as errors
 | |
| dnl ========================================================
 | |
| if test -z "$MOZ_ENABLE_WARNINGS_AS_ERRORS"; then
 | |
|    WARNINGS_AS_ERRORS=''
 | |
| fi
 | |
| 
 | |
| 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)
 | |
| 
 | |
| # 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
 | |
| 
 | |
| AC_SUBST_LIST(MOZ_GLUE_WRAP_LDFLAGS)
 | |
| export MOZ_GLUE_WRAP_LDFLAGS
 | |
| 
 | |
| 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 = 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 = 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" -a -n "$COMPILE_ENVIRONMENT"; 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 = 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 = 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 -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=)
 | |
| 
 | |
| if test -n "$MOZ_DISABLE_STARTUPCACHE"; then
 | |
|   AC_DEFINE(MOZ_DISABLE_STARTUPCACHE)
 | |
| fi
 | |
| AC_SUBST(MOZ_DISABLE_STARTUPCACHE)
 | |
| 
 | |
| dnl ========================================================
 | |
| dnl = Enable Pico Speech Synthesis
 | |
| 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 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 = 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
 | |
| 
 | |
| 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 "$COMPILE_ENVIRONMENT"; then
 | |
| if test "$GNU_CC" -a "$GNU_CXX"; then
 | |
|   _DEPEND_CFLAGS='-MD -MP -MF $(MDDEPDIR)/$(@F).pp'
 | |
| 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
 | |
| 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"; 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   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(MOZ_PIXMAN, pixman-1 >= 0.19.2)
 | |
| fi
 | |
| 
 | |
| if test "$MOZ_TREE_CAIRO"; then
 | |
|     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_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
 | |
| 
 | |
|         if test "$COMPILE_ENVIRONMENT"; then
 | |
| 
 | |
|           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
 | |
|         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_D2D_SURFACE)
 | |
|     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(WIN32_D2D_SURFACE_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
 | |
| 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
 | |
| 
 | |
| 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_TOML_LIST(BINDGEN_SYSTEM_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)
 | |
|       if test -z "$MOZ_IOS"; then
 | |
| 	NECKO_WIFI=1
 | |
|       fi
 | |
|       ;;
 | |
|     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)
 | |
|   _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 =
 | |
| dnl = Maintainer debug option (no --enable equivalent)
 | |
| dnl =
 | |
| dnl ========================================================
 | |
| 
 | |
| AC_SUBST(AR)
 | |
| AC_SUBST(AR_FLAGS)
 | |
| AC_SUBST(AR_EXTRACT)
 | |
| AC_SUBST(AS)
 | |
| AC_SUBST_LIST(ASFLAGS)
 | |
| AC_SUBST(AS_DASH_C_FLAG)
 | |
| AC_SUBST(RC)
 | |
| AC_SUBST(RCFLAGS)
 | |
| AC_SUBST(WINDRES)
 | |
| AC_SUBST(IMPLIB)
 | |
| AC_SUBST(FILTER)
 | |
| AC_SUBST(MOZ_AUTH_EXTENSION)
 | |
| AC_SUBST(MOZ_PREF_EXTENSIONS)
 | |
| AC_SUBST_LIST(MOZ_DEBUG_LDFLAGS)
 | |
| AC_SUBST(WARNINGS_AS_ERRORS)
 | |
| AC_SUBST_SET(MOZ_EXTENSIONS)
 | |
| AC_SUBST(LIBICONV)
 | |
| AC_SUBST(MOZ_TOOLKIT_SEARCH)
 | |
| AC_SUBST(MOZ_FEEDS)
 | |
| 
 | |
| AC_SUBST(MOZ_UNIVERSALCHARDET)
 | |
| AC_SUBST(ACCESSIBILITY)
 | |
| AC_SUBST(MOZ_SPELLCHECK)
 | |
| AC_SUBST(MOZ_ANDROID_ANR_REPORTER)
 | |
| AC_SUBST(MOZ_CRASHREPORTER)
 | |
| AC_SUBST(MOZ_CRASHREPORTER_INJECTOR)
 | |
| AC_SUBST(MOZ_MAINTENANCE_SERVICE)
 | |
| AC_SUBST(MOZ_STUB_INSTALLER)
 | |
| AC_SUBST(MOZ_VERIFY_MAR_SIGNATURE)
 | |
| AC_SUBST(MOZ_ENABLE_SIGNMAR)
 | |
| AC_SUBST(MOZ_UPDATER)
 | |
| 
 | |
| AC_SUBST(MOZ_ANGLE_RENDERER)
 | |
| AC_SUBST(MOZ_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_APPLICATION_CLASS)
 | |
| AC_SUBST(MOZ_ANDROID_BROWSER_INTENT_CLASS)
 | |
| AC_SUBST(MOZ_EXCLUDE_HYPHENATION_DICTIONARIES)
 | |
| AC_SUBST(ENABLE_STRIP)
 | |
| AC_SUBST(PKG_SKIP_STRIP)
 | |
| AC_SUBST(STRIP_FLAGS)
 | |
| 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_ADDON_SIGNING)
 | |
| if test "$MOZ_ADDON_SIGNING" = 1; then
 | |
|   AC_DEFINE(MOZ_ADDON_SIGNING)
 | |
| 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=`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)
 | |
| # 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]'`
 | |
| 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"
 | |
|   MOZ_CHILD_PROCESS_NAME_PIE="libplugin-container-pie.so"
 | |
|   AC_SUBST(MOZ_CHILD_PROCESS_NAME_PIE)
 | |
| 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_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_VERSION_DISPLAY: Defines the application version number. Used
 | |
| # in the "About" window. If not set, defaults to MOZ_APP_VERSION.
 | |
| # - 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, and
 | |
| # crash reporter server url.
 | |
| # - MOZ_APP_ANDROID_VERSION_CODE: On Android, "android:versionCode" for
 | |
| # the main application is set to the value of this variable.  If not
 | |
| # set, it falls back to a Mozilla-specific value derived from the
 | |
| # build ID.
 | |
| # - MOZ_ANDROID_SHARED_ID: On Android, "android:sharedUserId" for all Android
 | |
| # packages produced.
 | |
| # - MOZ_ANDROID_GCM_SENDERID: On Android, the Android GCM Sender ID used.  GCM
 | |
| # sender IDs are not sensitive: see, http://stackoverflow.com/a/18216063.
 | |
| # - MOZ_MMA_GCM_SENDERID: This GCM Sender ID is used for MMA integration.
 | |
| # - 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
 | |
| 
 | |
| if test -z "$MOZ_APP_VERSION_DISPLAY"; then
 | |
|    MOZ_APP_VERSION_DISPLAY=$MOZ_APP_VERSION
 | |
| fi
 | |
| 
 | |
| if test -z "$ANDROID_PACKAGE_NAME" ; then
 | |
|    # When we got rid of the Aurora channel we decided to replace the old
 | |
|    # Nightly ANDROID_PACKAGE_NAME with Aurora. To make sure this is inherited
 | |
|    # by all mozilla-central based branches we make this the new "default"
 | |
|    # for Fennec. Non mozilla-central based branches set ANDROID_PACKAGE_NAME
 | |
|    # in their mozconfig, so they will never get this. If there are ever
 | |
|    # non-Fennec builds for Android, they will fall into the else block
 | |
|    # and use their own default name.
 | |
|    # https://bugzilla.mozilla.org/show_bug.cgi?id=1357808 has additional
 | |
|    # background on this.
 | |
|    if test "$MOZ_APP_NAME" = "fennec"; then
 | |
|       ANDROID_PACKAGE_NAME="org.mozilla.fennec_aurora"
 | |
|    else
 | |
|       ANDROID_PACKAGE_NAME="org.mozilla.$MOZ_APP_NAME"
 | |
|    fi
 | |
| fi
 | |
| 
 | |
| # Mozilla released Firefox for Android {Release,Beta} and {Aurora,Nightly} to
 | |
| # the public with specific common shared IDs and we need to keep them
 | |
| # consistent forever.  The specific common values are set by per-channel
 | |
| # branding; all other channels use a generic sharedID, set below.
 | |
| if test -z "$MOZ_ANDROID_SHARED_ID" ; then
 | |
|    MOZ_ANDROID_SHARED_ID="${ANDROID_PACKAGE_NAME}.sharedID"
 | |
| 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
 | |
| 
 | |
| 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(MOZ_APP_ANDROID_VERSION_CODE)
 | |
| AC_SUBST(MOZ_ANDROID_SHARED_ID)
 | |
| AC_SUBST(MOZ_ANDROID_GCM_SENDERID)
 | |
| AC_SUBST(MOZ_MMA_GCM_SENDERID)
 | |
| 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_VERSION_DISPLAY)
 | |
| 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_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)
 | |
| 
 | |
| if test "$MOZ_TELEMETRY_REPORTING"; then
 | |
|     AC_DEFINE(MOZ_TELEMETRY_REPORTING)
 | |
| 
 | |
|     # Enable Telemetry by default for nightly and aurora channels
 | |
|     if test -z "$RELEASE_OR_BETA"; then
 | |
|       AC_DEFINE(MOZ_TELEMETRY_ON_BY_DEFAULT)
 | |
|     fi
 | |
| fi
 | |
| 
 | |
| dnl If we have any service that uploads data (and requires data submission
 | |
| dnl policy alert), set MOZ_DATA_REPORTING.
 | |
| dnl We need SUBST for build system and DEFINE for xul preprocessor.
 | |
| if test -n "$MOZ_TELEMETRY_REPORTING" || test -n "$MOZ_SERVICES_HEALTHREPORT" || test -n "$MOZ_CRASHREPORTER"; then
 | |
|   MOZ_DATA_REPORTING=1
 | |
|   AC_DEFINE(MOZ_DATA_REPORTING)
 | |
|   AC_SUBST(MOZ_DATA_REPORTING)
 | |
| fi
 | |
| 
 | |
| dnl win32 options
 | |
| AC_SUBST(WIN32_REDIST_DIR)
 | |
| AC_SUBST(WIN_UCRT_REDIST_DIR)
 | |
| 
 | |
| dnl ========================================================
 | |
| dnl ICU Support
 | |
| dnl ========================================================
 | |
| 
 | |
| _INTL_API=yes
 | |
| 
 | |
| if test "$MOZ_WIDGET_TOOLKIT" = "cocoa"; then
 | |
|     USE_ICU=1
 | |
| fi
 | |
| 
 | |
| MOZ_CONFIG_ICU()
 | |
| 
 | |
| dnl Echo the CFLAGS to remove extra whitespace.
 | |
| CFLAGS=`echo \
 | |
|     $_WARNINGS_CFLAGS \
 | |
|     $_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 \
 | |
|     $HOST_CFLAGS`
 | |
| 
 | |
| HOST_CXXFLAGS=`echo \
 | |
|     $HOST_CXXFLAGS`
 | |
| 
 | |
| AC_SUBST(_DEPEND_CFLAGS)
 | |
| AC_SUBST(MOZ_SYSTEM_JPEG)
 | |
| AC_SUBST(MOZ_SYSTEM_PNG)
 | |
| AC_SUBST(MOZ_SYSTEM_BZ2)
 | |
| 
 | |
| AC_SUBST_LIST(MOZ_JPEG_CFLAGS)
 | |
| AC_SUBST_LIST(MOZ_JPEG_LIBS)
 | |
| AC_SUBST_LIST(MOZ_BZ2_CFLAGS)
 | |
| AC_SUBST_LIST(MOZ_BZ2_LIBS)
 | |
| AC_SUBST_LIST(MOZ_PNG_CFLAGS)
 | |
| AC_SUBST_LIST(MOZ_PNG_LIBS)
 | |
| 
 | |
| AC_SUBST(MOZ_SYSTEM_NSPR)
 | |
| 
 | |
| AC_SUBST(MOZ_SYSTEM_NSS)
 | |
| 
 | |
| HOST_CMFLAGS=-fobjc-exceptions
 | |
| HOST_CMMFLAGS=-fobjc-exceptions
 | |
| OS_COMPILE_CMFLAGS=-fobjc-exceptions
 | |
| OS_COMPILE_CMMFLAGS=-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_AR)
 | |
| AC_SUBST(HOST_AR_FLAGS)
 | |
| AC_SUBST(HOST_RANLIB)
 | |
| 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(GCC_USE_GNU_LD)
 | |
| 
 | |
| AC_SUBST(MKSHLIB)
 | |
| AC_SUBST(MKCSHLIB)
 | |
| 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(CC_VERSION)
 | |
| AC_SUBST(NS_ENABLE_TSF)
 | |
| AC_SUBST(WIN32_CONSOLE_EXE_LDFLAGS)
 | |
| AC_SUBST(WIN32_GUI_EXE_LDFLAGS)
 | |
| 
 | |
| AC_SUBST(MOZ_VORBIS)
 | |
| AC_SUBST(MOZ_TREMOR)
 | |
| AC_SUBST(MOZ_FFVPX)
 | |
| AC_SUBST(MOZ_FFVPX_FLACONLY)
 | |
| AC_SUBST_LIST(FFVPX_ASFLAGS)
 | |
| AC_SUBST(VPX_USE_YASM)
 | |
| AC_SUBST_LIST(VPX_ASFLAGS)
 | |
| AC_SUBST(VPX_AS_CONVERSION)
 | |
| AC_SUBST(VPX_X86_ASM)
 | |
| AC_SUBST(VPX_ARM_ASM)
 | |
| AC_SUBST(LIBJPEG_TURBO_USE_YASM)
 | |
| AC_SUBST_LIST(LIBJPEG_TURBO_ASFLAGS)
 | |
| AC_SUBST(MOZ_LIBAV_FFT)
 | |
| AC_SUBST_LIST(LIBAV_FFT_ASFLAGS)
 | |
| AC_SUBST(MOZ_DEVTOOLS)
 | |
| 
 | |
| AC_SUBST(MOZ_PACKAGE_JSSHELL)
 | |
| AC_SUBST(MOZ_FOLD_LIBS)
 | |
| AC_SUBST_LIST(MOZ_FOLD_LIBS_FLAGS)
 | |
| AC_SUBST(SOCORRO_SYMBOL_UPLOAD_TOKEN_FILE)
 | |
| 
 | |
| 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 "$MOZ_DEBUG"; then
 | |
|     AC_DEFINE(MOZ_REFLOW_PERF)
 | |
|     AC_DEFINE(MOZ_REFLOW_PERF_DSP)
 | |
| fi
 | |
| 
 | |
| if test "$ACCESSIBILITY" -a "$MOZ_ENABLE_GTK" ; then
 | |
|     AC_DEFINE(MOZ_ACCESSIBILITY_ATK)
 | |
|     ATK_FULL_VERSION=`$PKG_CONFIG --modversion atk`
 | |
|     ATK_MAJOR_VERSION=`echo ${ATK_FULL_VERSION} | $AWK -F\. '{ print $1 }'`
 | |
|     ATK_MINOR_VERSION=`echo ${ATK_FULL_VERSION} | $AWK -F\. '{ print $2 }'`
 | |
|     ATK_REV_VERSION=`echo ${ATK_FULL_VERSION} | $AWK -F\. '{ print $3 }'`
 | |
|     AC_DEFINE_UNQUOTED(ATK_MAJOR_VERSION, $ATK_MAJOR_VERSION)
 | |
|     AC_DEFINE_UNQUOTED(ATK_MINOR_VERSION, $ATK_MINOR_VERSION)
 | |
|     AC_DEFINE_UNQUOTED(ATK_REV_VERSION, $ATK_REV_VERSION)
 | |
| fi
 | |
| 
 | |
| AC_SUBST(MOZ_DEV_EDITION)
 | |
| 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)
 | |
| 
 | |
| 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_DYNAMIC_CAST_TO_VOID_PTR
 | |
| 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 Determine options to use for running the preprocessor.
 | |
| dnl ========================================================
 | |
| 
 | |
| if test -z "$GNU_CC" -a "$OS_ARCH" = "WINNT"; then
 | |
|     PREPROCESS_OPTION="-P -Fi"
 | |
| else
 | |
|     PREPROCESS_OPTION="-E -o "
 | |
| fi
 | |
| 
 | |
| AC_SUBST(PREPROCESS_OPTION)
 | |
| 
 | |
| # Avoid using obsolete NSPR features
 | |
| AC_DEFINE(NO_NSPR_10_SUPPORT)
 | |
| 
 | |
| # Don't build NSS libpkix
 | |
| NSS_DISABLE_LIBPKIX=1
 | |
| AC_SUBST(NSS_DISABLE_LIBPKIX)
 | |
| 
 | |
| MOZ_CREATE_CONFIG_STATUS()
 | |
| 
 | |
| 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
 | |
| 
 | |
| if test "$COMPILE_ENVIRONMENT" -a "$MOZ_WIDGET_TOOLKIT"; 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=
 | |
| 
 | |
| # 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* *//'`"
 | |
| 
 | |
| if test "$_INTL_API" = no; then
 | |
|     ac_configure_args="$ac_configure_args --without-intl-api"
 | |
| 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 -n "$ZLIB_IN_MOZGLUE"; then
 | |
|    MOZ_ZLIB_LIBS=
 | |
| fi
 | |
| export MOZ_SYSTEM_ZLIB
 | |
| export MOZ_ZLIB_CFLAGS
 | |
| export MOZ_ZLIB_LIBS
 | |
| export MOZ_APP_NAME
 | |
| export MOZ_APP_REMOTINGNAME
 | |
| export MOZ_DEV_EDITION
 | |
| export RUSTC
 | |
| export MOZILLA_CENTRAL_PATH=$_topsrcdir
 | |
| export STLPORT_CPPFLAGS
 | |
| export STLPORT_LIBS
 | |
| unset MOZ_BUILD_APP
 | |
| export DIST
 | |
| export MOZ_LINKER
 | |
| export ZLIB_IN_MOZGLUE
 | |
| export AR
 | |
| export RANLIB
 | |
| export CPP
 | |
| export CC
 | |
| export CXX
 | |
| export ARFLAGS
 | |
| export CPPFLAGS
 | |
| export CFLAGS
 | |
| export CXXFLAGS
 | |
| export LDFLAGS
 | |
| export HOST_CC
 | |
| export HOST_CXX
 | |
| export HOST_CFLAGS
 | |
| export HOST_CPPFLAGS
 | |
| export HOST_CXXFLAGS
 | |
| export HOST_LDFLAGS
 | |
| 
 | |
| if ! test -e js; then
 | |
|     mkdir js
 | |
| fi
 | |
| 
 | |
| ac_configure_args="$ac_configure_args JS_STANDALONE="
 | |
| AC_OUTPUT_SUBDIRS(js/src,$cache_file)
 | |
| ac_configure_args="$_SUBDIR_CONFIG_ARGS"
 | |
| 
 | |
| fi # COMPILE_ENVIRONMENT
 | |
| 
 | |
| 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_ALL_SUBCONFIGURES()
 | |
| 
 | |
| rm -fr confdefs* $ac_clean_files
 | 
