dnl -*- Mode: Autoconf; tab-width: 4; indent-tabs-mode: nil; -*- dnl vi: set tabstop=4 shiftwidth=4 expandtab syntax=m4: dnl This Source Code Form is subject to the terms of the Mozilla Public dnl License, v. 2.0. If a copy of the MPL was not distributed with this dnl file, You can obtain one at http://mozilla.org/MPL/2.0/. dnl Process this file with autoconf to produce a configure script. dnl ======================================================== AC_PREREQ(2.13) AC_INIT(config/config.mk) AC_CONFIG_AUX_DIR(${srcdir}/build/autoconf) AC_CANONICAL_SYSTEM dnl ======================================================== dnl = dnl = Don't change the following lines. Doing so breaks: dnl = dnl = CFLAGS="-foo" ./configure dnl = dnl ======================================================== CFLAGS="${CFLAGS=}" CPPFLAGS="${CPPFLAGS=}" CXXFLAGS="${CXXFLAGS=}" LDFLAGS="${LDFLAGS=}" HOST_CFLAGS="${HOST_CFLAGS=}" HOST_CXXFLAGS="${HOST_CXXFLAGS=}" HOST_LDFLAGS="${HOST_LDFLAGS=}" dnl Set the minimum version of toolkit libs used by mozilla dnl ======================================================== W32API_VERSION=3.14 dnl Set various checks dnl ======================================================== MISSING_X= dnl Initialize the Pthread test variables early so they can be dnl overridden by each platform. dnl ======================================================== MOZ_USE_PTHREADS= _PTHREAD_LDFLAGS="" LDFLAGS="$LDFLAGS $LINKER_LDFLAGS $PACK_REL_RELOC_FLAGS" HOST_LDFLAGS="$HOST_LDFLAGS $HOST_LINKER_LDFLAGS" if test "$COMPILE_ENVIRONMENT"; then MOZ_ANDROID_NDK fi # COMPILE_ENVIRONMENT dnl ======================================================== dnl Checks for compilers. dnl ======================================================== if test "$COMPILE_ENVIRONMENT"; then # Run some logic to figure out exe extensions (mostly for mingw's sake) AC_EXEEXT if test "$target" != "$host"; then MOZ_CROSS_COMPILER else AC_PROG_CC case "$target" in *-mingw*) # Work around the conftest.exe access problem on Windows sleep 2 esac AC_PROG_CXX fi MOZ_TOOL_VARIABLES dnl ======================================================== dnl Special win32 checks dnl ======================================================== WINVER=601 case "$target" in *-mingw*) if test "$GCC" != "yes"; then # Check to see if we are really running in a msvc environemnt _WIN32_MSVC=1 # Make sure compilers are valid CXXFLAGS="$CXXFLAGS -TP" AC_LANG_SAVE AC_LANG_C AC_TRY_COMPILE([#include ], [ 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 ], [ unsigned *test = new unsigned(42); ],, AC_MSG_ERROR([\$(CXX) test failed. You must have MS VC++ in your path to build.]) ) AC_LANG_RESTORE AC_DEFINE(_CRT_SECURE_NO_WARNINGS) AC_DEFINE(_CRT_NONSTDC_NO_WARNINGS) MSVC_C_RUNTIME_DLL=vcruntime140.dll if test -n "$IS_VS2019_OR_MORE" -a "$CPU_ARCH" != "x86"; then MSVC_C_RUNTIME_1_DLL=vcruntime140_1.dll fi MSVC_CXX_RUNTIME_DLL=msvcp140.dll # -Zc:sizedDealloc- disables C++14 global sized deallocation (see bug 1160146) CXXFLAGS="$CXXFLAGS -Zc:sizedDealloc-" if test -n "$WIN_UCRT_REDIST_DIR"; then if test ! -d "$WIN_UCRT_REDIST_DIR"; then AC_MSG_ERROR([Invalid Windows UCRT Redist directory: ${WIN_UCRT_REDIST_DIR}]) fi WIN_UCRT_REDIST_DIR=`cd "$WIN_UCRT_REDIST_DIR" && (pwd -W 2>/dev/null || pwd)` fi AC_SUBST(MSVC_C_RUNTIME_DLL) AC_SUBST(MSVC_C_RUNTIME_1_DLL) AC_SUBST(MSVC_CXX_RUNTIME_DLL) AC_DEFINE(HAVE_SEH_EXCEPTIONS) if test -n "$WIN32_REDIST_DIR"; then if test ! -d "$WIN32_REDIST_DIR"; then AC_MSG_ERROR([Invalid Win32 Redist directory: ${WIN32_REDIST_DIR}]) fi WIN32_REDIST_DIR=`cd "$WIN32_REDIST_DIR" && (pwd -W 2>/dev/null || pwd)` fi 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 ], #if (__W32API_MAJOR_VERSION < $_W32API_MAJOR_VERSION) || \ (__W32API_MAJOR_VERSION == $_W32API_MAJOR_VERSION && \ __W32API_MINOR_VERSION < $_W32API_MINOR_VERSION) #error "test failed." #endif , [ res=yes ], [ res=no ]) AC_MSG_RESULT([$res]) if test "$res" != "yes"; then AC_MSG_ERROR([w32api version $W32API_VERSION or higher required.]) fi # strsafe.h on mingw uses macros for function deprecation that pollutes namespace # causing problems with local implementations with the same name. AC_DEFINE(STRSAFE_NO_DEPRECATE) fi # !GNU_CC AC_DEFINE(_USE_MATH_DEFINES) # Otherwise Windows' math.h doesn't #define M_PI. CFLAGS="$CFLAGS -D_HAS_EXCEPTIONS=0" CXXFLAGS="$CXXFLAGS -D_HAS_EXCEPTIONS=0" AC_DEFINE_UNQUOTED(WINVER,0x$WINVER) AC_DEFINE_UNQUOTED(_WIN32_WINNT,0x$WINVER) # Require OS features provided by IE 8.0 (Win7) AC_DEFINE_UNQUOTED(_WIN32_IE,0x0800) ;; esac if test -n "$_WIN32_MSVC"; then SKIP_PATH_CHECKS=1 SKIP_COMPILER_CHECKS=1 SKIP_LIBRARY_CHECKS=1 # Since we're skipping compiler and library checks, hard-code # some facts here. AC_DEFINE(HAVE_IO_H) AC_DEFINE(HAVE_ISATTY) fi fi # COMPILE_ENVIRONMENT AC_SUBST(GNU_CC) AC_SUBST(GNU_CXX) dnl ======================================================== dnl set the defaults first dnl ======================================================== MOZ_FIX_LINK_PATHS="-Wl,-rpath-link,${DIST}/bin -Wl,-rpath-link,${prefix}/lib" dnl Configure platform-specific CPU architecture compiler options. dnl ============================================================== if test "$COMPILE_ENVIRONMENT"; then MOZ_ARCH_OPTS fi # COMPILE_ENVIRONMENT if test -n "$COMPILE_ENVIRONMENT"; then MOZ_CONFIG_SANITIZE fi dnl ======================================================== dnl GNU specific defaults dnl ======================================================== if test "$GNU_CC"; then if test "$OS_ARCH" != "WINNT" -o -z "$CLANG_CC"; then DSO_PIC_CFLAGS='-fPIC' ASFLAGS="$ASFLAGS -fPIC" fi AC_MSG_CHECKING([for --noexecstack option to as]) _SAVE_CFLAGS=$CFLAGS CFLAGS="$CFLAGS -Wa,--noexecstack" AC_TRY_COMPILE(,,AC_MSG_RESULT([yes]) [ASFLAGS="$ASFLAGS -Wa,--noexecstack"], AC_MSG_RESULT([no])) CFLAGS=$_SAVE_CFLAGS AC_MSG_CHECKING([for -z noexecstack option to ld]) _SAVE_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -Wl,-z,noexecstack" AC_TRY_LINK(,,AC_MSG_RESULT([yes]), AC_MSG_RESULT([no]) LDFLAGS=$_SAVE_LDFLAGS) AC_MSG_CHECKING([for -z text option to ld]) _SAVE_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -Wl,-z,text" AC_TRY_LINK(,,AC_MSG_RESULT([yes]), AC_MSG_RESULT([no]) LDFLAGS=$_SAVE_LDFLAGS) AC_MSG_CHECKING([for -z relro option to ld]) _SAVE_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -Wl,-z,relro" AC_TRY_LINK(,,AC_MSG_RESULT([yes]), AC_MSG_RESULT([no]) LDFLAGS=$_SAVE_LDFLAGS) AC_MSG_CHECKING([for -z nocopyreloc option to ld]) _SAVE_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -Wl,-z,nocopyreloc" AC_TRY_LINK(,,AC_MSG_RESULT([yes]), AC_MSG_RESULT([no]) LDFLAGS=$_SAVE_LDFLAGS) AC_MSG_CHECKING([for -Bsymbolic-functions option to ld]) _SAVE_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -Wl,-Bsymbolic-functions" AC_TRY_LINK(,,AC_MSG_RESULT([yes]), AC_MSG_RESULT([no]) LDFLAGS=$_SAVE_LDFLAGS) # While sha1 is deterministic, it is slower. if test -z "$DEVELOPER_OPTIONS"; then build_id=sha1 else build_id=uuid fi AC_MSG_CHECKING([for --build-id=$build_id option to ld]) _SAVE_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -Wl,--build-id=$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 DSO_LDOPTS='-shared' if test "$GCC_USE_GNU_LD"; then # Some tools like ASan use a runtime library that is only # linked against executables, so we must allow undefined # symbols for shared objects in some cases. if test -z "$MOZ_ASAN$MOZ_MSAN$MOZ_UBSAN$MOZ_TSAN$FUZZING_INTERFACES"; then # Don't allow undefined symbols in libraries DSO_LDOPTS="$DSO_LDOPTS -Wl,-z,defs" # BSDs need `environ' exposed for posix_spawn (bug 753046) case "$OS_TARGET" in DragonFly|FreeBSD|NetBSD|OpenBSD) if test -n "$HAVE_LINKER_SUPPORT_IGNORE_UNRESOLVED"; then DSO_LDOPTS="$DSO_LDOPTS -Wl,--ignore-unresolved-symbol,environ" else DSO_LDOPTS="$DSO_LDOPTS -Wl,--warn-unresolved-symbols" fi ;; esac fi fi _DEFINES_CFLAGS="-include $_objdir/mozilla-config.h -DMOZILLA_CLIENT" ASFLAGS="$ASFLAGS $_DEFINES_CFLAGS" fi if test "$GNU_CXX"; then CXXFLAGS="$CXXFLAGS -fno-exceptions" _DEFINES_CXXFLAGS="-DMOZILLA_CLIENT -include $_objdir/mozilla-config.h" fi dnl ======================================================== dnl System overrides of the defaults for host dnl ======================================================== case "$host" in *mingw*) if test -n "$_WIN32_MSVC"; then HOST_CFLAGS="$HOST_CFLAGS" else HOST_CFLAGS="$HOST_CFLAGS -mwindows" fi HOST_CFLAGS="$HOST_CFLAGS -DXP_WIN -DWIN32 -D_WIN32 -D_CRT_SECURE_NO_WARNINGS" HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}" HOST_BIN_SUFFIX=.exe case "${host_cpu}" in i*86) if test -n "$_WIN32_MSVC"; then HOST_LDFLAGS="$HOST_LDFLAGS -MACHINE:X86" fi ;; x86_64) if test -n "$_WIN32_MSVC"; then HOST_LDFLAGS="$HOST_LDFLAGS -MACHINE:X64" fi HOST_CFLAGS="$HOST_CFLAGS -D_AMD64_" ;; esac ;; *-darwin*) HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX -DXP_MACOSX" HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}" ;; *-linux*|*-kfreebsd*-gnu|*-gnu*) HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX" HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}" ;; *) HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX" HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}" ;; esac dnl ======================================================== dnl System overrides of the defaults for target dnl ======================================================== case "$target" in *-darwin*) MOZ_OPTIMIZE_FLAGS="-O3" DSO_LDOPTS='' dnl DTrace and -dead_strip don't interact well. See bug 403132. dnl =================================================================== if test "x$enable_dtrace" = "xyes"; then echo "Skipping -dead_strip because DTrace is enabled. See bug 403132." else dnl check for the presence of the -dead_strip linker flag AC_MSG_CHECKING([for -dead_strip option to ld]) _SAVE_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -Wl,-dead_strip" AC_TRY_LINK(,[return 0;],_HAVE_DEAD_STRIP=1,_HAVE_DEAD_STRIP=) if test -n "$_HAVE_DEAD_STRIP" ; then AC_MSG_RESULT([yes]) MOZ_OPTIMIZE_LDFLAGS="-Wl,-dead_strip" else AC_MSG_RESULT([no]) fi LDFLAGS=$_SAVE_LDFLAGS fi MOZ_FIX_LINK_PATHS= ;; *-android*|*-linuxandroid*) if test -z "$CLANG_CC"; then MOZ_OPTIMIZE_FLAGS="-freorder-blocks -fno-reorder-functions -Os" else if test -n "$NIGHTLY_BUILD"; then MOZ_OPTIMIZE_FLAGS="-O2" else # From https://github.com/android-ndk/ndk/issues/133#issuecomment-308549264 # -Oz is smaller than -Os on clang. MOZ_OPTIMIZE_FLAGS="-Oz" # Disable the outliner, which causes performance regressions, and is # enabled on some platforms at -Oz. if test -z "$MOZ_LTO"; then DISABLE_OUTLINER="-mno-outline" _SAVE_CFLAGS=$CFLAGS CFLAGS="$CFLAGS $DISABLE_OUTLINER" AC_TRY_COMPILE(,,[MOZ_OPTIMIZE_FLAGS="$MOZ_OPTIMIZE_FLAGS $DISABLE_OUTLINER"]) CFLAGS="$_SAVE_CFLAGS" else DISABLE_OUTLINER="-Wl,-plugin-opt=-enable-machine-outliner=never" _SAVE_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $MOZ_LTO_LDFLAGS $DISABLE_OUTLINER" AC_TRY_LINK(,,[MOZ_OPTIMIZE_LDFLAGS="$MOZ_OPTIMIZE_LDFLAGS $DISABLE_OUTLINER"]) LDFLAGS="$_SAVE_LDFLAGS" fi fi 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_PIC_CFLAGS= # certain versions of cygwin's makedepend barf on the # #include vs -I./dist/include/string issue so don't use it if test -n "$GNU_CC" -o -n "$CLANG_CC"; then # $GNU_CC will match gcc and clang; while $CLANG_CC will match only clang if test -z "$CLANG_CC"; then AC_MSG_ERROR(Firefox cannot be built with mingw-gcc and requires a mingw-clang toolchain to work) fi DSO_LDOPTS='-shared' MOZ_FIX_LINK_PATHS= MOZ_OPTIMIZE_FLAGS="-O2" WIN32_CONSOLE_EXE_LDFLAGS=-mconsole WIN32_GUI_EXE_LDFLAGS=-mwindows # Silence problematic clang warnings CXXFLAGS="$CXXFLAGS -Wno-incompatible-ms-struct" LDFLAGS="$LDFLAGS -Wl,--no-insert-timestamp" else TARGET_COMPILER_ABI=msvc # Use subsystem version 6.03 to work around bug 1837000 WIN32_SUBSYSTEM_VERSION=6.03 WIN32_CONSOLE_EXE_LDFLAGS=-SUBSYSTEM:CONSOLE,$WIN32_SUBSYSTEM_VERSION WIN32_GUI_EXE_LDFLAGS=-SUBSYSTEM:WINDOWS,$WIN32_SUBSYSTEM_VERSION DSO_LDOPTS=-SUBSYSTEM:WINDOWS,$WIN32_SUBSYSTEM_VERSION _DEFINES_CFLAGS="-FI $_objdir/mozilla-config.h -DMOZILLA_CLIENT" _DEFINES_CXXFLAGS="-FI $_objdir/mozilla-config.h -DMOZILLA_CLIENT" CFLAGS="$CFLAGS -Gy -Zc:inline" CXXFLAGS="$CXXFLAGS -Gy -Zc:inline" 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([,]) fi dnl VS2013+ supports -Gw for better linker optimizations. dnl http://blogs.msdn.com/b/vcblog/archive/2013/09/11/introducing-gw-compiler-switch.aspx dnl Disabled on ASan because it causes false-positive ODR violations. if test -z "$MOZ_ASAN"; then CFLAGS="$CFLAGS -Gw" CXXFLAGS="$CXXFLAGS -Gw" else # String tail merging doesn't play nice with ASan's ODR checker. LDFLAGS="$LDFLAGS -opt:nolldtailmerge" fi # Silence VS2017 15.5+ TR1 deprecation warnings hit by older gtest versions CXXFLAGS="$CXXFLAGS -D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING" MOZ_DEBUG_LDFLAGS='-DEBUG' if test "$HOST_OS_ARCH" != "WINNT"; then # %_PDB% is a special signal to emit only the PDB basename. This # avoids problems in Windows tools that don't like forward-slashes. MOZ_DEBUG_LDFLAGS="$MOZ_DEBUG_LDFLAGS -PDBALTPATH:%_PDB%" fi MOZ_OPTIMIZE_FLAGS='-O2' MOZ_FIX_LINK_PATHS= LDFLAGS="$LDFLAGS -LARGEADDRESSAWARE" fi AC_DEFINE(WIN32_LEAN_AND_MEAN) dnl See http://support.microsoft.com/kb/143208 to use STL AC_DEFINE(NOMINMAX) BIN_SUFFIX='.exe' case "$host_os" in cygwin*|msvc*|mks*) AC_MSG_ERROR([Using a Cygwin build environment is unsupported. Configure cannot check for presence of necessary headers. Please upgrade to MozillaBuild; see https://developer.mozilla.org/en/Windows_Build_Prerequisites.]) ;; esac case "$target" in i*86-*) if test -n "$GNU_CC"; then CFLAGS="$CFLAGS -mstackrealign" CXXFLAGS="$CXXFLAGS -mstackrealign" LDFLAGS="$LDFLAGS -Wl,--large-address-aware" else DSO_LDOPTS="$DSO_LDOPTS -MACHINE:X86" LDFLAGS="$LDFLAGS -SAFESEH" fi AC_DEFINE(_X86_) ;; x86_64-*) if test -n "$_WIN32_MSVC"; then DSO_LDOPTS="$DSO_LDOPTS -MACHINE:X64" fi AC_DEFINE(_AMD64_) ;; aarch64-*) if test -n "$_WIN32_MSVC"; then DSO_LDOPTS="$DSO_LDOPTS -MACHINE:ARM64" fi AC_DEFINE(_ARM64_) ;; *) AC_DEFINE(_CPU_ARCH_NOT_DEFINED) ;; esac ;; *-netbsd*) CFLAGS="$CFLAGS -Dunix" CXXFLAGS="$CXXFLAGS -Dunix" if $CC -E - -dM /dev/null; then DSO_PIC_CFLAGS='-fPIC -DPIC' DSO_LDOPTS='-shared' MOZ_PROGRAM_LDFLAGS="$MOZ_PROGRAM_LDFLAGS -Wl,--export-dynamic" else DSO_PIC_CFLAGS='-fPIC -DPIC' DSO_LDOPTS='-shared' fi # This will fail on a.out systems prior to 1.5.1_ALPHA. if test "$LIBRUNPATH"; then DSO_LDOPTS="-Wl,-R$LIBRUNPATH $DSO_LDOPTS" fi ;; *-openbsd*) if test -z "$X11BASE"; then X11BASE=/usr/X11R6 fi MOZ_FIX_LINK_PATHS="$MOZ_FIX_LINK_PATHS -Wl,-rpath-link,${X11BASE}/lib" DSO_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 CFLAGS="$CFLAGS $DSO_PIC_CFLAGS" CXXFLAGS="$CXXFLAGS $DSO_PIC_CFLAGS" if test -z "$MOZ_OPTIMIZE_FLAGS"; then MOZ_OPTIMIZE_FLAGS="-O" fi if test -z "$COMPILE_ENVIRONMENT"; then SKIP_COMPILER_CHECKS=1 SKIP_LIBRARY_CHECKS=1 MOZ_DEBUGGING_OPTS else MOZ_COMPILER_OPTS fi # COMPILE_ENVIRONMENT if test -z "$SKIP_COMPILER_CHECKS"; then dnl Checks for typedefs, structures, and compiler characteristics. dnl ======================================================== AC_C_CONST AC_TYPE_MODE_T AC_TYPE_OFF_T AC_TYPE_PID_T AC_TYPE_SIZE_T AC_LANG_CPLUSPLUS AC_LANG_C AC_LANG_CPLUSPLUS MOZ_CXX11 AC_LANG_C dnl Checks for header files. dnl ======================================================== AC_HEADER_DIRENT 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) CFLAGS="$_SAVE_CFLAGS" if test ! "$GNU_CXX"; then AC_CHECK_LIB(C, demangle) fi AC_CHECK_LIB(socket, socket) dnl ======================================================== dnl = pthread support dnl = Start by checking whether the system support pthreads dnl ======================================================== case "$target_os" in darwin*) MOZ_USE_PTHREADS=1 ;; *) AC_CHECK_LIB(pthreads, pthread_create, MOZ_USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lpthreads", AC_CHECK_LIB(pthread, pthread_create, MOZ_USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lpthread", AC_CHECK_LIB(c_r, pthread_create, MOZ_USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lc_r", AC_CHECK_LIB(c, pthread_create, MOZ_USE_PTHREADS=1 ) ) ) ) ;; esac dnl ======================================================== dnl Do the platform specific pthread hackery dnl ======================================================== if test "$MOZ_USE_PTHREADS"x != x then dnl dnl See if -pthread is supported. dnl rm -f conftest* ac_cv_have_dash_pthread=no AC_MSG_CHECKING(whether ${CC-cc} accepts -pthread) echo 'int main() { return 0; }' | cat > conftest.c ${CC-cc} -pthread -o conftest conftest.c > conftest.out 2>&1 if test $? -eq 0; then if test -z "`egrep -i '(unrecognize|unknown)' conftest.out | grep pthread`" -a -z "`egrep -i '(error|incorrect)' conftest.out`" ; then ac_cv_have_dash_pthread=yes case "$target_os" in freebsd*) # Freebsd doesn't use -pthread for compiles, it uses them for linking ;; *) CFLAGS="$CFLAGS -pthread" CXXFLAGS="$CXXFLAGS -pthread" ;; esac fi fi rm -f conftest* AC_MSG_RESULT($ac_cv_have_dash_pthread) dnl dnl See if -pthreads is supported. dnl ac_cv_have_dash_pthreads=no if test "$ac_cv_have_dash_pthread" = "no"; then AC_MSG_CHECKING(whether ${CC-cc} accepts -pthreads) echo 'int main() { return 0; }' | cat > conftest.c ${CC-cc} -pthreads -o conftest conftest.c > conftest.out 2>&1 if test $? -eq 0; then if test -z "`egrep -i '(unrecognize|unknown)' conftest.out | grep pthreads`" -a -z "`egrep -i '(error|incorrect)' conftest.out`" ; then ac_cv_have_dash_pthreads=yes CFLAGS="$CFLAGS -pthreads" CXXFLAGS="$CXXFLAGS -pthreads" fi fi rm -f conftest* AC_MSG_RESULT($ac_cv_have_dash_pthreads) fi case "$target" in *-*-freebsd*) AC_DEFINE(_REENTRANT) AC_DEFINE(_THREAD_SAFE) dnl -pthread links in -lpthread, so don't specify it explicitly. if test "$ac_cv_have_dash_pthread" = "yes"; then _PTHREAD_LDFLAGS="-pthread" fi ;; *-*-openbsd*|*-*-bsdi*) AC_DEFINE(_REENTRANT) AC_DEFINE(_THREAD_SAFE) dnl -pthread links in -lc_r, so don't specify it explicitly. if test "$ac_cv_have_dash_pthread" = "yes"; then _PTHREAD_LDFLAGS="-pthread" fi ;; *-*-linux*|*-*-kfreebsd*-gnu|*-*-gnu*) AC_DEFINE(_REENTRANT) ;; esac LDFLAGS="${_PTHREAD_LDFLAGS} ${LDFLAGS}" AC_SUBST(MOZ_USE_PTHREADS) MOZ_CHECK_HEADERS(pthread.h) fi dnl Checks for library functions. dnl ======================================================== dnl check for clock_gettime(), the CLOCK_MONOTONIC clock AC_CACHE_CHECK(for clock_gettime(CLOCK_MONOTONIC), ac_cv_clock_monotonic, [for libs in "" -lrt; do _SAVE_LIBS="$LIBS" LIBS="$LIBS $libs" dnl clock_gettime is available on OSX since 10.12, so depending on MACOSX_DEPLOYMENT_TARGET, dnl we should or not be able to use it. To detect if we can, we need to make the dnl availability attribute strict, so that compilation fails when the target is < 10.12. AC_TRY_LINK([#define availability(os, ...) availability(os, strict, __VA_ARGS) #include ], [ 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 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 #include #include #include ], [int foo = res_ninit(&_res);], [ac_cv_func_res_ninit=yes], [ac_cv_func_res_ninit=no]) fi ]) if test "$ac_cv_func_res_ninit" = "yes"; then AC_DEFINE(HAVE_RES_NINIT) dnl must add the link line we do something as foolish as this... dougt dnl else dnl AC_CHECK_LIB(bind, res_ninit, AC_DEFINE(HAVE_RES_NINIT), dnl AC_CHECK_LIB(resolv, res_ninit, AC_DEFINE(HAVE_RES_NINIT))) fi AC_LANG_C dnl =================================================================== dnl ======================================================== dnl Put your C++ language/feature checks below dnl ======================================================== AC_LANG_CPLUSPLUS ARM_ABI_PREFIX= if test "$GNU_CC"; then if test "$CPU_ARCH" = "arm" ; then AC_CACHE_CHECK(for ARM EABI, ac_cv_gcc_arm_eabi, [AC_TRY_COMPILE([], [ #if defined(__ARM_EABI__) return 0; #else #error Not ARM EABI. #endif ], ac_cv_gcc_arm_eabi="yes", ac_cv_gcc_arm_eabi="no")]) if test "$ac_cv_gcc_arm_eabi" = "yes"; then HAVE_ARM_EABI=1 ARM_ABI_PREFIX=eabi- else ARM_ABI_PREFIX=oabi- fi fi TARGET_COMPILER_ABI="${TARGET_COMPILER_ABI-${ARM_ABI_PREFIX}gcc3}" fi # try harder, when checking for __thread support, see bug 521750 comment #33 and below # We pass MOZ_OPTIMIZE_LDFLAGS to the linker because if dead_strip is # enabled, the linker in xcode 4.1 will crash. Without this it would crash when # linking XUL. _SAVE_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $DSO_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 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) ;; esac fi if test -n "$MOZ_LINKER"; then dnl gold emits wrong sysv-style elf hash tables when building both sysv and dnl style tables. https://sourceware.org/bugzilla/show_bug.cgi?id=13597 dnl Since the linker only understands the sysv ones, no need to build the dnl gnu style tables anyways. LDFLAGS="$LDFLAGS -Wl,--hash-style=sysv" fi dnl End of C++ language/feature checks AC_LANG_C 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, []) AC_DEFINE(HAVE_FORCEINLINE) 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 = Application dnl = dnl ======================================================== MOZ_BRANDING_DIRECTORY= MOZ_OFFICIAL_BRANDING= MOZ_NO_SMART_CARDS= MOZ_BINARY_EXTENSIONS= MOZ_DEVTOOLS=server dnl ======================================================== dnl = Trademarked Branding dnl ======================================================== MOZ_ARG_ENABLE_BOOL(official-branding, [ --enable-official-branding Enable Official mozilla.org Branding Do not distribute builds with --enable-official-branding unless you have permission to use trademarks per http://www.mozilla.org/foundation/trademarks/ .], MOZ_OFFICIAL_BRANDING=1, MOZ_OFFICIAL_BRANDING=) # Allow the application to influence configure with a confvars.sh script. AC_MSG_CHECKING([if app-specific confvars.sh exists]) if test -f "${srcdir}/${MOZ_BUILD_APP}/confvars.sh" ; then AC_MSG_RESULT([${srcdir}/${MOZ_BUILD_APP}/confvars.sh]) . "${srcdir}/${MOZ_BUILD_APP}/confvars.sh" else AC_MSG_RESULT([no]) fi AC_SUBST(MOZ_OFFICIAL_BRANDING) if test -n "$MOZ_OFFICIAL_BRANDING"; then if test -z "$MOZ_OFFICIAL_BRANDING_DIRECTORY"; then AC_MSG_ERROR([You must specify MOZ_OFFICIAL_BRANDING_DIRECTORY to use --enable-official-branding.]) else MOZ_BRANDING_DIRECTORY=${MOZ_OFFICIAL_BRANDING_DIRECTORY} AC_DEFINE(MOZ_OFFICIAL_BRANDING) fi fi MOZ_ARG_WITH_STRING(branding, [ --with-branding=dir Use branding from the specified directory.], MOZ_BRANDING_DIRECTORY=$withval) REAL_BRANDING_DIRECTORY="${MOZ_BRANDING_DIRECTORY}" if test -z "$REAL_BRANDING_DIRECTORY"; then REAL_BRANDING_DIRECTORY=${MOZ_BUILD_APP}/branding/nightly fi if test -f "${_topsrcdir}/$REAL_BRANDING_DIRECTORY/configure.sh"; then . "${_topsrcdir}/$REAL_BRANDING_DIRECTORY/configure.sh" fi AC_SUBST(MOZ_BRANDING_DIRECTORY) dnl ======================================================== dnl = Distribution ID dnl ======================================================== MOZ_ARG_WITH_STRING(distribution-id, [ --with-distribution-id=ID Set distribution-specific id (default=org.mozilla)], [ val=`echo $withval` MOZ_DISTRIBUTION_ID="$val"]) if test -z "$MOZ_DISTRIBUTION_ID"; then MOZ_DISTRIBUTION_ID="org.mozilla" fi AC_SUBST(MOZ_DISTRIBUTION_ID) dnl ======================================================== dnl = Enable code optimization. ON by default. dnl ======================================================== # Use value from moz.configure if one is defined. Else use our computed # value. if test -n "${MOZ_CONFIGURE_OPTIMIZE_FLAGS}"; then MOZ_OPTIMIZE_FLAGS=${MOZ_CONFIGURE_OPTIMIZE_FLAGS} fi if test "$COMPILE_ENVIRONMENT"; then if test -n "$MOZ_OPTIMIZE"; then AC_MSG_CHECKING([for valid C compiler optimization flags]) _SAVE_CFLAGS=$CFLAGS CFLAGS="$CFLAGS $MOZ_OPTIMIZE_FLAGS" AC_TRY_COMPILE([#include ], [printf("Hello World\n");], _results=yes, _results=no) AC_MSG_RESULT([$_results]) if test "$_results" = "no"; then AC_MSG_ERROR([These compiler flags for C are invalid: $MOZ_OPTIMIZE_FLAGS]) fi CFLAGS=$_SAVE_CFLAGS if test -n "$MOZ_LTO" -a -n "$CLANG_CC"; then # When using llvm-based LTO, non numeric optimization levels are # not supported by the linker, so force the linker to use -O2 ( # which doesn't influence the level compilation units are actually # compiled at). case " $MOZ_OPTIMIZE_FLAGS " in *\ -Os\ *|*\ -Oz\ *) MOZ_OPTIMIZE_LDFLAGS="$MOZ_OPTIMIZE_LDFLAGS -O2" ;; esac fi fi fi # COMPILE_ENVIRONMENT AC_SUBST_LIST(MOZ_OPTIMIZE_FLAGS) AC_SUBST_LIST(MOZ_OPTIMIZE_LDFLAGS) AC_SUBST_LIST(MOZ_PGO_OPTIMIZE_FLAGS) case "${OS_TARGET}" in Android|WINNT|Darwin) MOZ_GLUE_IN_PROGRAM= ;; *) dnl On !Android !Windows !OSX, we only want to link executables against mozglue MOZ_GLUE_IN_PROGRAM=1 AC_DEFINE(MOZ_GLUE_IN_PROGRAM) ;; esac dnl ======================================================== dnl = Jemalloc build setup dnl ======================================================== if test -z "$MOZ_MEMORY"; then case "${target}" in *-mingw*) if test -z "$WIN32_REDIST_DIR" -a -z "$MOZ_DEBUG"; then AC_MSG_WARN([When not building jemalloc, you need to set WIN32_REDIST_DIR to the path to the Visual C++ Redist (usually VCINSTALLDIR/redist/x86/Microsoft.VC80.CRT, for VC++ v8) if you intend to distribute your build.]) fi ;; esac else dnl The generic feature tests that determine how to compute ncpus are long and dnl complicated. Therefore, simply define special cpp variables for the dnl platforms we have special knowledge of. case "${target}" in *-mingw*) export MOZ_NO_DEBUG_RTL=1 ;; esac fi # MOZ_MEMORY AC_SUBST(MOZ_GLUE_IN_PROGRAM) dnl ======================================================== dnl = Enable using the clang plugin to build dnl ======================================================== if test -n "$COMPILE_ENVIRONMENT"; then MOZ_CONFIG_CLANG_PLUGIN fi # COMPILE_ENVIRONMENT if test -z "$SKIP_COMPILER_CHECKS"; then dnl ======================================================== dnl Check for gcc -pipe support dnl ======================================================== AC_MSG_CHECKING([for -pipe support]) if test -n "$GNU_CC" -a -n "$GNU_CXX"; then dnl Any gcc that supports firefox supports -pipe. CFLAGS="$CFLAGS -pipe" CXXFLAGS="$CXXFLAGS -pipe" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi fi # ! SKIP_COMPILER_CHECKS AC_LANG_C if test "$COMPILE_ENVIRONMENT"; then MOZ_EXPAND_LIBS fi # COMPILE_ENVIRONMENT dnl ======================================================== dnl Check if we need the 32-bit Linux SSE2 error dialog dnl ======================================================== AC_SUBST(MOZ_LINUX_32_SSE2_STARTUP_ERROR) dnl ======================================================== dnl Check for cairo dnl ======================================================== 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 case "$MOZ_WIDGET_TOOLKIT" in windows) if test "$COMPILE_ENVIRONMENT"; then MOZ_CHECK_HEADER(d3d10.h, MOZ_ENABLE_D3D10_LAYER=1) fi ;; esac AC_SUBST(MOZ_ENABLE_D3D10_LAYER) dnl ======================================================== dnl = dnl = Maintainer debug option (no --enable equivalent) dnl = dnl ======================================================== AC_SUBST_LIST(ASFLAGS) AC_SUBST_LIST(MOZ_DEBUG_LDFLAGS) AC_SUBST(MOZ_STUB_INSTALLER) AC_SUBST_LIST(MOZ_FIX_LINK_PATHS) AC_SUBST(MOZ_POST_PROGRAM_COMMAND) if test -n "$MOZ_BINARY_EXTENSIONS"; then AC_DEFINE(MOZ_BINARY_EXTENSIONS) fi dnl ======================================================== dnl = Mac bundle name prefix dnl ======================================================== MOZ_ARG_WITH_STRING(macbundlename-prefix, [ --with-macbundlename-prefix=prefix Prefix for MOZ_MACBUNDLE_NAME], [ MOZ_MACBUNDLE_NAME_PREFIX="$withval"]) MOZ_MACBUNDLE_NAME=$MOZ_APP_DISPLAYNAME if test "$MOZ_MACBUNDLE_NAME_PREFIX"; then MOZ_MACBUNDLE_NAME="${MOZ_MACBUNDLE_NAME_PREFIX}${MOZ_MACBUNDLE_NAME}" fi if test "$MOZ_DEBUG"; then MOZ_MACBUNDLE_NAME="${MOZ_MACBUNDLE_NAME}Debug.app" else MOZ_MACBUNDLE_NAME=${MOZ_MACBUNDLE_NAME}.app fi AC_SUBST(MOZ_MACBUNDLE_NAME) dnl Mac bundle identifier (based on MOZ_APP_DISPLAYNAME) # If the MOZ_MACBUNDLE_ID is defined in the configure.sh, use it # Otherwise, use MOZ_APP_DISPLAYNAME if test -z "$MOZ_MACBUNDLE_ID"; then MOZ_MACBUNDLE_ID=`echo $MOZ_APP_DISPLAYNAME | tr 'A-Z' 'a-z' | tr -dc 'a-z-'` fi MOZ_MACBUNDLE_ID=${MOZ_DISTRIBUTION_ID}.${MOZ_MACBUNDLE_ID} if test "$MOZ_DEBUG"; then MOZ_MACBUNDLE_ID=${MOZ_MACBUNDLE_ID}debug fi AC_DEFINE_UNQUOTED(MOZ_MACBUNDLE_ID,$MOZ_MACBUNDLE_ID) AC_SUBST(MOZ_MACBUNDLE_ID) dnl ======================================================== dnl = Child Process Name for IPC dnl ======================================================== if test "$MOZ_WIDGET_TOOLKIT" != "android"; then MOZ_CHILD_PROCESS_NAME="plugin-container${BIN_SUFFIX}" else # We want to let Android unpack the file at install time, but it only does # so if the file is named libsomething.so. The lib/ path is also required # because the unpacked file will be under the lib/ subdirectory and will # need to be executed from that path. MOZ_CHILD_PROCESS_NAME="libplugin-container.so" fi MOZ_CHILD_PROCESS_BUNDLE="plugin-container.app/Contents/MacOS/" MOZ_CHILD_PROCESS_BUNDLEID=${MOZ_DISTRIBUTION_ID}.plugincontainer MOZ_CHILD_PROCESS_BUNDLENAME="plugin-container.app" MOZ_CHILD_PROCESS_APPNAME="${MOZ_APP_DISPLAYNAME}CP" AC_SUBST(MOZ_CHILD_PROCESS_NAME) AC_SUBST(MOZ_CHILD_PROCESS_BUNDLE) AC_SUBST(MOZ_CHILD_PROCESS_BUNDLEID) AC_SUBST(MOZ_CHILD_PROCESS_APPNAME) AC_SUBST(MOZ_CHILD_PROCESS_BUNDLENAME) dnl ========================================================== dnl = Mac Media Plugin Helper (GMP Child) Process Name for IPC dnl ========================================================== MOZ_EME_PROCESS_NAME="media-plugin-helper" MOZ_EME_PROCESS_NAME_BRANDED="$MOZ_APP_DISPLAYNAME Media Plugin Helper" MOZ_EME_PROCESS_BUNDLENAME="${MOZ_EME_PROCESS_NAME}.app" # Generate a lower case string with no spaces to be used as the bundle ID # for the EME helper .app of the form org.mozilla.. MOZ_EME_PROCESS_BUNDLEID=`echo "$MOZ_APP_DISPLAYNAME" | tr ' ' '-'` MOZ_EME_PROCESS_BUNDLEID=`echo "$MOZ_EME_PROCESS_BUNDLEID" | tr 'A-Z' 'a-z'` MOZ_EME_PROCESS_BUNDLEID=${MOZ_EME_PROCESS_BUNDLEID}-${MOZ_EME_PROCESS_NAME} MOZ_EME_PROCESS_BUNDLEID=${MOZ_DISTRIBUTION_ID}.${MOZ_EME_PROCESS_BUNDLEID} AC_SUBST(MOZ_EME_PROCESS_NAME) AC_SUBST(MOZ_EME_PROCESS_NAME_BRANDED) AC_SUBST(MOZ_EME_PROCESS_BUNDLENAME) AC_SUBST(MOZ_EME_PROCESS_BUNDLEID) # The following variables are available to branding and application # configuration ($BRANDING/configure.sh and $APPLICATION/confvars.sh): # - MOZ_APP_VENDOR: Used for application.ini's "Vendor" field, which also # impacts profile location and user-visible fields. # - MOZ_APP_DISPLAYNAME: Used in user-visible fields (DLL properties, # Mac Bundle name, Updater, Installer), it is typically used for nightly # builds (e.g. Aurora for Firefox). # - MOZ_APP_PROFILE: When set, used for application.ini's # "Profile" field, which controls profile location. # - MOZ_APP_ID: When set, used for application.ini's "ID" field, and # crash reporter server url. # - MOZ_PROFILE_MIGRATOR: When set, enables profile migrator. # The following environment variables used to have an effect, but don't anymore: # - MOZ_APP_VERSION: Defines the application version number. This was replaced with # the contents from the version.txt file in the application directory, or # browser/config/version.txt if there isn't one. # - MOZ_APP_VERSION_DISPLAY: Defines the application version number. Used # in the "About" window. This was replaced with the contents from the # version_display.txt or version.txt in the application directory, or # browser/config/version_display.txt. # For extensions and langpacks, we require a max version that is compatible # across security releases. MOZ_APP_MAXVERSION is our method for doing that. # 24.0a1 and 24.0a2 aren't affected # 24.0 becomes 24.* # 24.1.1 becomes 24.* IS_ALPHA=`echo $MOZ_APP_VERSION | grep a` if test -z "$IS_ALPHA"; then changequote(,) if test "$(basename $MOZ_BUILD_APP)" = "suite"; then MOZ_APP_MAXVERSION=`echo $MOZ_APP_VERSION | sed "s|\(^[0-9]*\.[0-9]*\).*|\1|"`.* else MOZ_APP_MAXVERSION=`echo $MOZ_APP_VERSION | sed "s|\(^[0-9]*\).*|\1|"`.* fi changequote([,]) else MOZ_APP_MAXVERSION=$MOZ_APP_VERSION fi AC_SUBST(MOZ_APP_DISPLAYNAME) AC_SUBST(MOZ_APP_VENDOR) AC_SUBST(MOZ_APP_PROFILE) AC_SUBST(MOZ_APP_ID) AC_SUBST(MAR_CHANNEL_ID) AC_SUBST(ACCEPTED_MAR_CHANNEL_IDS) AC_SUBST(MOZ_PROFILE_MIGRATOR) AC_DEFINE_UNQUOTED(MOZ_APP_UA_NAME, "$MOZ_APP_UA_NAME") AC_SUBST(MOZ_APP_UA_NAME) AC_DEFINE_UNQUOTED(MOZ_APP_UA_VERSION, "$MOZ_APP_VERSION") AC_DEFINE_UNQUOTED(BROWSER_CHROME_URL, $BROWSER_CHROME_URL) AC_DEFINE_UNQUOTED(BROWSER_CHROME_URL_QUOTED, "$BROWSER_CHROME_URL") AC_SUBST(MOZ_APP_MAXVERSION) AC_SUBST(MOZ_PKG_SPECIAL) AC_SUBST(MOZ_SIMPLE_PACKAGE_NAME) if test "$MOZILLA_OFFICIAL"; then # Build revisions should always be present in official builds MOZ_INCLUDE_SOURCE_INFO=1 fi # External builds (specifically Ubuntu) may drop the hg repo information, so we allow to # explicitly set the repository and changeset information in. AC_SUBST(MOZ_SOURCE_REPO) AC_SUBST(MOZ_SOURCE_CHANGESET) AC_SUBST(MOZ_INCLUDE_SOURCE_INFO) dnl win32 options AC_SUBST(WIN32_REDIST_DIR) AC_SUBST(WIN_UCRT_REDIST_DIR) dnl Echo the CFLAGS to remove extra whitespace. CFLAGS=`echo \ $_COMPILATION_CFLAGS \ $CFLAGS` CXXFLAGS=`echo \ $_COMPILATION_CXXFLAGS \ $CXXFLAGS` COMPILE_CFLAGS=`echo \ $_DEFINES_CFLAGS \ $COMPILE_CFLAGS` COMPILE_CXXFLAGS=`echo \ $_DEFINES_CXXFLAGS \ $COMPILE_CXXFLAGS` HOST_CFLAGS=`echo \ $_COMPILATION_HOST_CFLAGS \ $HOST_CFLAGS` HOST_CXXFLAGS=`echo \ $_COMPILATION_HOST_CXXFLAGS \ $HOST_CXXFLAGS` HOST_CMFLAGS="-x objective-c -fobjc-exceptions" HOST_CMMFLAGS="-x objective-c++ -fobjc-exceptions" OS_COMPILE_CMFLAGS="-x objective-c -fobjc-exceptions" OS_COMPILE_CMMFLAGS="-x objective-c++ -fobjc-exceptions" if test "$MOZ_WIDGET_TOOLKIT" = uikit; then OS_COMPILE_CMFLAGS="$OS_COMPILE_CMFLAGS -fobjc-abi-version=2 -fobjc-legacy-dispatch" OS_COMPILE_CMMFLAGS="$OS_COMPILE_CMMFLAGS -fobjc-abi-version=2 -fobjc-legacy-dispatch" fi AC_SUBST(HOST_CMFLAGS) AC_SUBST(HOST_CMMFLAGS) AC_SUBST(OS_COMPILE_CMFLAGS) AC_SUBST(OS_COMPILE_CMMFLAGS) OS_CFLAGS="$CFLAGS" OS_CXXFLAGS="$CXXFLAGS" OS_CPPFLAGS="$CPPFLAGS" OS_COMPILE_CFLAGS="$COMPILE_CFLAGS" OS_COMPILE_CXXFLAGS="$COMPILE_CXXFLAGS" OS_LDFLAGS="$LDFLAGS" OS_LIBS="$LIBS" AC_SUBST_LIST(OS_CFLAGS) AC_SUBST_LIST(OS_CXXFLAGS) AC_SUBST_LIST(OS_CPPFLAGS) AC_SUBST_LIST(OS_COMPILE_CFLAGS) AC_SUBST_LIST(OS_COMPILE_CXXFLAGS) AC_SUBST_LIST(OS_LDFLAGS) AC_SUBST(OS_LIBS) AC_SUBST(HOST_CC) AC_SUBST(HOST_CXX) AC_SUBST_LIST(HOST_CFLAGS) AC_SUBST_LIST(HOST_CPPFLAGS) AC_SUBST_LIST(HOST_CXXFLAGS) AC_SUBST(HOST_LDFLAGS) AC_SUBST_LIST(HOST_OPTIMIZE_FLAGS) AC_SUBST(HOST_BIN_SUFFIX) AC_SUBST(TARGET_XPCOM_ABI) AC_SUBST(DSO_LDOPTS) AC_SUBST(BIN_SUFFIX) AC_SUBST(USE_N32) AC_SUBST(WIN32_CONSOLE_EXE_LDFLAGS) AC_SUBST(WIN32_GUI_EXE_LDFLAGS) AC_SUBST(MOZ_DEVTOOLS) AC_SUBST(MOZ_PACKAGE_JSSHELL) AC_SUBST(DMG_TOOL) dnl Host JavaScript runtime, if any, to use during cross compiles. AC_SUBST(JS_BINARY) AC_SUBST(NSS_EXTRA_SYMBOLS_FILE) dnl Set various defines and substitutions dnl ======================================================== AC_SUBST(MOZ_DEV_EDITION) if test -n "$MOZ_DEV_EDITION"; then AC_DEFINE(MOZ_DEV_EDITION) fi dnl Spit out some output dnl ======================================================== # Avoid using obsolete NSPR features AC_DEFINE(NO_NSPR_10_SUPPORT) MOZ_CREATE_CONFIG_STATUS() rm -fr confdefs* $ac_clean_files