summaryrefslogtreecommitdiffstats
path: root/js/src/old-configure.in
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
commit36d22d82aa202bb199967e9512281e9a53db42c9 (patch)
tree105e8c98ddea1c1e4784a60a5a6410fa416be2de /js/src/old-configure.in
parentInitial commit. (diff)
downloadfirefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz
firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'js/src/old-configure.in')
-rw-r--r--js/src/old-configure.in1057
1 files changed, 1057 insertions, 0 deletions
diff --git a/js/src/old-configure.in b/js/src/old-configure.in
new file mode 100644
index 0000000000..cabd72a2b6
--- /dev/null
+++ b/js/src/old-configure.in
@@ -0,0 +1,1057 @@
+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(js/src/jsapi.h)
+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 ========================================================
+USE_PTHREADS=
+_PTHREAD_LDFLAGS=""
+
+LDFLAGS="$LDFLAGS $LINKER_LDFLAGS"
+HOST_LDFLAGS="$HOST_LDFLAGS $HOST_LINKER_LDFLAGS"
+
+if test -z "$JS_STANDALONE"; then
+ autoconfmk=autoconf-js.mk
+fi
+AC_SUBST(autoconfmk)
+
+jsconfdefs=$_objdir/js/src/js-confdefs.h
+
+MOZ_ANDROID_NDK
+
+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
+
+# Note:
+# In Mozilla, we use the names $target, $host and $build incorrectly, but are
+# too far gone to back out now. See Bug 475488:
+# - When we say $target, we mean $host, that is, the system on which
+# Mozilla will be run.
+# - When we say $host, we mean $build, that is, the system on which Mozilla
+# is built.
+# - $target (in its correct usage) is for compilers who generate code for a
+# different platform than $host, so it would not be used by Mozilla.
+if test "$target" != "$host"; then
+ MOZ_CROSS_COMPILER
+else
+ AC_PROG_CC
+ AC_PROG_CXX
+fi
+
+MOZ_TOOL_VARIABLES
+
+dnl Special win32 checks
+dnl ========================================================
+
+# Target the Windows 8.1 SDK by default
+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"
+ # _CRT_SECURE_NO_WARNINGS disables warnings about using MSVC-specific
+ # secure CRT functions.
+ CXXFLAGS="$CXXFLAGS -D_CRT_SECURE_NO_WARNINGS"
+ 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
+
+ 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-"
+
+ AC_SUBST(MSVC_C_RUNTIME_DLL)
+ AC_SUBST(MSVC_C_RUNTIME_1_DLL)
+ AC_SUBST(MSVC_CXX_RUNTIME_DLL)
+
+ 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
+ fi # !GNU_CC
+
+ AC_DEFINE(_USE_MATH_DEFINES) # Otherwise Windows' math.h doesn't #define M_PI.
+
+ 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
+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 ==============================================================
+MOZ_ARCH_OPTS
+
+MOZ_CONFIG_SANITIZE
+
+dnl ========================================================
+dnl GNU specific defaults
+dnl ========================================================
+if test "$GNU_CC"; then
+ 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"
+ fi
+ fi
+
+ if test "$OS_ARCH" != "WINNT"; 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)
+
+ _DEFINES_CFLAGS="-include $jsconfdefs -DMOZILLA_CLIENT"
+fi
+
+if test "$GNU_CXX"; then
+ _DEFINES_CXXFLAGS="-DMOZILLA_CLIENT -include $jsconfdefs"
+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*)
+ MOZ_OPTIMIZE_FLAGS="-O3"
+ if test -z "$CLANG_CC"; then
+ MOZ_OPTIMIZE_FLAGS="-freorder-blocks -fno-reorder-functions $MOZ_OPTIMIZE_FLAGS"
+ fi
+ ;;
+
+*-*linux*)
+ if test "$GNU_CC" -o "$GNU_CXX"; then
+ MOZ_PGO_OPTIMIZE_FLAGS="-O3"
+ MOZ_OPTIMIZE_FLAGS="-O3"
+ 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=
+ 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=
+
+ # Silence problematic clang warnings
+ CXXFLAGS="$CXXFLAGS -Wno-incompatible-ms-struct"
+ LDFLAGS="$LDFLAGS -Wl,--no-insert-timestamp"
+
+ MOZ_OPTIMIZE_FLAGS="-O2"
+
+ WIN32_CONSOLE_EXE_LDFLAGS=-mconsole
+ WIN32_GUI_EXE_LDFLAGS=-mwindows
+ else
+ TARGET_COMPILER_ABI=msvc
+ # aarch64 doesn't support subsystems below 6.02
+ if test "$CPU_ARCH" = "aarch64"; then
+ WIN32_SUBSYSTEM_VERSION=6.02
+ else
+ WIN32_SUBSYSTEM_VERSION=6.01
+ fi
+ WIN32_CONSOLE_EXE_LDFLAGS=-SUBSYSTEM:CONSOLE,$WIN32_SUBSYSTEM_VERSION
+ WIN32_GUI_EXE_LDFLAGS=-SUBSYSTEM:WINDOWS,$WIN32_SUBSYSTEM_VERSION
+ DSO_LDOPTS=-SUBSYSTEM:WINDOWS,$WIN32_SUBSYSTEM_VERSION
+ _DEFINES_CFLAGS="-FI $jsconfdefs -DMOZILLA_CLIENT"
+ _DEFINES_CXXFLAGS="-FI $jsconfdefs -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
+ 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(HAVE__MSIZE)
+ 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 | grep __ELF__ >/dev/null; then
+ DSO_PIC_CFLAGS='-fPIC -DPIC'
+ DSO_LDOPTS='-shared'
+ MOZ_PROGRAM_LDFLAGS="$MOZ_PROGRAM_LDFLAGS -Wl,--export-dynamic"
+ else
+ DSO_PIC_CFLAGS='-fPIC -DPIC'
+ DSO_LDOPTS='-shared'
+ fi
+ # This will fail on a.out systems prior to 1.5.1_ALPHA.
+ if test "$LIBRUNPATH"; then
+ DSO_LDOPTS="-Wl,-R$LIBRUNPATH $DSO_LDOPTS"
+ fi
+ ;;
+
+*-openbsd*)
+ 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"
+ ;;
+
+*-wasi*)
+ CXXFLAGS="$CXXFLAGS -mthread-model single"
+ MOZ_FIX_LINK_PATHS=
+ ;;
+
+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
+fi
+
+if test -n "$COMPILE_ENVIRONMENT"; then
+ MOZ_COMPILER_OPTS
+fi
+
+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_MSG_CHECKING(for ssize_t)
+AC_CACHE_VAL(ac_cv_type_ssize_t,
+ [AC_TRY_COMPILE([#include <stdio.h>
+ #include <sys/types.h>],
+ [ssize_t foo = 0;],
+ [ac_cv_type_ssize_t=true],
+ [ac_cv_type_ssize_t=false])])
+if test "$ac_cv_type_ssize_t" = true ; then
+ AC_DEFINE(HAVE_SSIZE_T)
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_RESULT(no)
+fi
+
+AC_LANG_CPLUSPLUS
+
+MOZ_CXX11
+
+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*)
+ USE_PTHREADS=1
+ ;;
+*)
+ AC_CHECK_LIB(pthreads, pthread_create,
+ USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lpthreads",
+ AC_CHECK_LIB(pthread, pthread_create,
+ USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lpthread",
+ AC_CHECK_LIB(c_r, pthread_create,
+ USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lc_r",
+ AC_CHECK_LIB(c, pthread_create,
+ USE_PTHREADS=1
+ )
+ )
+ )
+ )
+ ;;
+esac
+
+dnl ========================================================
+dnl Do the platform specific pthread hackery
+dnl ========================================================
+if test "$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}"
+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 <time.h>],
+ [ struct timespec ts;
+ clock_gettime(CLOCK_MONOTONIC, &ts); ],
+ ac_cv_clock_monotonic=$libs
+ LIBS="$_SAVE_LIBS"
+ break,
+ ac_cv_clock_monotonic=no)
+ LIBS="$_SAVE_LIBS"
+ done])
+if test "$ac_cv_clock_monotonic" != "no"; then
+ HAVE_CLOCK_MONOTONIC=1
+ REALTIME_LIBS=$ac_cv_clock_monotonic
+ AC_DEFINE(HAVE_CLOCK_MONOTONIC)
+ AC_SUBST(HAVE_CLOCK_MONOTONIC)
+ AC_SUBST_LIST(REALTIME_LIBS)
+fi
+
+dnl Checks for math functions.
+dnl ========================================================
+AC_CHECK_LIB(m, sin)
+
+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
+
+AM_LANGINFO_CODESET
+
+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
+if test "$ac_cv_thread_keyword" = yes; then
+ # mips builds fail with TLS variables because of a binutils bug.
+ # See bug 528687
+ case "${target}" in
+ mips*-*)
+ :
+ ;;
+ *-android*|*-linuxandroid*)
+ :
+ ;;
+ *)
+ AC_DEFINE(HAVE_THREAD_TLS_KEYWORD)
+ ;;
+ esac
+fi
+
+dnl End of C++ language/feature checks
+AC_LANG_C
+
+fi # ! SKIP_COMPILER_CHECKS
+
+TARGET_XPCOM_ABI=
+if test -n "${CPU_ARCH}" -a -n "${TARGET_COMPILER_ABI}"; then
+ TARGET_XPCOM_ABI="${CPU_ARCH}-${TARGET_COMPILER_ABI}"
+fi
+
+dnl 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)
+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 = 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 optimization flags])
+ _SAVE_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS $MOZ_OPTIMIZE_FLAGS"
+ AC_TRY_COMPILE([#include <stdio.h>],
+ [printf("Hello World\n");],
+ _results=yes,
+ _results=no)
+ AC_MSG_RESULT([$_results])
+ if test "$_results" = "no"; then
+ AC_MSG_ERROR([These compiler flags are invalid: $MOZ_OPTIMIZE_FLAGS])
+ fi
+ CFLAGS=$_SAVE_CFLAGS
+ if test -n "$MOZ_LTO" -a -n "$CLANG_CC"; then
+ # When using llvm-based LTO, non numeric optimization levels are
+ # not supported by the linker, so force the linker to use -O2 (
+ # which doesn't influence the level compilation units are actually
+ # compiled at).
+ case " $MOZ_OPTIMIZE_FLAGS " in
+ *\ -Os\ *|*\ -Oz\ *)
+ MOZ_OPTIMIZE_LDFLAGS="$MOZ_OPTIMIZE_LDFLAGS -O2"
+ ;;
+ esac
+ fi
+fi
+fi # COMPILE_ENVIRONMENT
+
+AC_SUBST_LIST(MOZ_OPTIMIZE_FLAGS)
+AC_SUBST_LIST(MOZ_OPTIMIZE_LDFLAGS)
+AC_SUBST_LIST(MOZ_PGO_OPTIMIZE_FLAGS)
+
+dnl ========================================================
+dnl = Enable jemalloc
+dnl ========================================================
+
+if test "$JS_STANDALONE" -a -z "$MOZ_MEMORY"; then
+ MOZ_GLUE_IN_PROGRAM=
+else
+ 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
+fi
+
+if test "$MOZ_MEMORY"; then
+ 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
+AC_SUBST(MOZ_GLUE_IN_PROGRAM)
+
+dnl ========================================================
+dnl instruments
+dnl ========================================================
+if test -n "$MOZ_INSTRUMENTS"; then
+ LIBS="$LIBS -framework CoreFoundation"
+fi
+
+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
+
+MOZ_EXPAND_LIBS
+
+dnl ========================================================
+dnl =
+dnl = Maintainer debug option (no --enable equivalent)
+dnl =
+dnl ========================================================
+
+AC_SUBST_LIST(ASFLAGS)
+AC_SUBST_LIST(MOZ_DEBUG_LDFLAGS)
+
+AC_SUBST_LIST(MOZ_FIX_LINK_PATHS)
+
+AC_SUBST(MOZ_POST_PROGRAM_COMMAND)
+
+AC_SUBST(MOZ_APP_DISPLAYNAME)
+
+AC_SUBST(MOZ_PKG_SPECIAL)
+
+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`
+
+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)
+
+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 ========================================================
+dnl JavaScript shell
+dnl ========================================================
+
+MOZ_CHECK_ALLOCATOR
+
+if test -n "$JS_STANDALONE"; then
+JS_LIBRARY_NAME="mozjs-$MOZILLA_SYMBOLVERSION"
+else
+JS_LIBRARY_NAME="mozjs"
+fi
+JS_CONFIG_LIBS="$NSPR_LIBS $LIBS"
+if test -n "$GNU_CC"; then
+JS_CONFIG_MOZ_JS_LIBS='-L${libdir} -l${JS_LIBRARY_NAME}'
+else
+JS_CONFIG_MOZ_JS_LIBS='${libdir}/${JS_LIBRARY_NAME}.lib'
+fi
+AC_SUBST(JS_LIBRARY_NAME)
+AC_SUBST(JS_CONFIG_MOZ_JS_LIBS)
+AC_SUBST(JS_CONFIG_LIBS)
+
+# Avoid using obsolete NSPR features
+AC_DEFINE(NO_NSPR_10_SUPPORT)
+
+dnl Spit out some output
+dnl ========================================================
+MOZ_CREATE_CONFIG_STATUS()
+
+rm -fr confdefs* $ac_clean_files