diff --git a/configure.in b/configure.in index cbd32729e1..c5cba0dd4b 100644 --- a/configure.in +++ b/configure.in @@ -12,88 +12,15 @@ AC_INIT(config/config.mk) MOZILLA_SRCDIR=$topsrcdir/mozilla AC_CONFIG_AUX_DIR(${MOZILLA_SRCDIR}/build/autoconf) AC_CANONICAL_SYSTEM -TARGET_CPU="${target_cpu}" -TARGET_VENDOR="${target_vendor}" -TARGET_OS="${target_os}" dnl comm-central-specific options dnl (MOZILLA_SRCDIR would fit here, but is needed to find autoconf tools) COMM_BUILD=1 -AC_SUBST(COMM_BUILD) + dnl export this, so the var is set for mozilla/configure MOZCONFIG=`$_AUTOCONF_TOOLS_DIR/mozconfig-find $topsrcdir` export MOZCONFIG -MOZ_DEB_TIMESTAMP=`date +"%a, %d %b %Y %T %z" 2>&1` -AC_SUBST(MOZ_DEB_TIMESTAMP) - -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=10513 -NSPR_VERSION=4 -NSS_VERSION=3 - -dnl Set the minimum version of toolkit libs used by mozilla -dnl ======================================================== -GLIB_VERSION=1.2.0 -PERL_VERSION=5.006 -CAIRO_VERSION=1.10 -PANGO_VERSION=1.14.0 -GTK2_VERSION=2.10.0 -WINDRES_VERSION=2.14.90 -W32API_VERSION=3.8 -GNOMEVFS_VERSION=2.0 -GCONF_VERSION=1.2.1 -GIO_VERSION=2.0 -STARTUP_NOTIFICATION_VERSION=0.8 -DBUS_VERSION=0.60 -SQLITE_VERSION=3.7.1 - -MSMANIFEST_TOOL= - -dnl Set various checks -dnl ======================================================== -AC_PROG_AWK - -dnl Initialize the Pthread test variables early so they can be -dnl overridden by each platform. -dnl ======================================================== -USE_PTHREADS= -_PTHREAD_LDFLAGS="" - dnl Do not allow a separate objdir build if a srcdir build exists. dnl ============================================================== _topsrcdir=`cd \`dirname $0\`; pwd` @@ -134,15 +61,6 @@ MOZ_PYTHON MOZ_BUILD_ROOT=`pwd` -MOZ_DEFAULT_COMPILER - -COMPILE_ENVIRONMENT=1 -MOZ_ARG_DISABLE_BOOL(compile-environment, -[ --disable-compile-environment - Disable compiler/library checks.], - COMPILE_ENVIRONMENT= ) -AC_SUBST(COMPILE_ENVIRONMENT) - MOZ_ARG_WITH_STRING(l10n-base, [ --with-l10n-base=DIR path to l10n repositories], L10NBASEDIR=$withval) @@ -156,598 +74,6 @@ if test -n "$L10NBASEDIR"; then AC_MSG_ERROR([Invalid value --with-l10n-base, $L10NBASEDIR doesn't exist]) fi fi -AC_SUBST(L10NBASEDIR) - -dnl Check for Perl first -- needed for win32 SDK checks -MOZ_PATH_PROGS(PERL, $PERL perl5 perl) -if test -z "$PERL" -o "$PERL" = ":"; then - AC_MSG_ERROR([perl not found in \$PATH]) -fi - - -dnl Get mozilla version from central milestone file -MOZILLA_VERSION=`$PERL $MOZILLA_SRCDIR/config/milestone.pl -topsrcdir $MOZILLA_SRCDIR` - - -dnl ======================================================== -dnl Checks for compilers. -dnl ======================================================== -dnl Set CROSS_COMPILE in the environment when running configure -dnl to use the cross-compile setup for now -dnl ======================================================== - -dnl AR_FLAGS set here so HOST_AR_FLAGS can be set correctly (see bug 538269) -AR_FLAGS='cr $@' - -if test "$COMPILE_ENVIRONMENT"; then - -if test -n "$CROSS_COMPILE" && test "$target" != "$host"; then - echo "cross compiling from $host to $target" - cross_compiling=yes - - _SAVE_CC="$CC" - _SAVE_CFLAGS="$CFLAGS" - _SAVE_LDFLAGS="$LDFLAGS" - - AC_MSG_CHECKING([for host c compiler]) - AC_CHECK_PROGS(HOST_CC, $HOST_CC gcc cc /usr/ucb/cc cl icc, "") - if test -z "$HOST_CC"; then - AC_MSG_ERROR([no acceptable c compiler found in \$PATH]) - fi - AC_MSG_RESULT([$HOST_CC]) - AC_MSG_CHECKING([for host c++ compiler]) - AC_CHECK_PROGS(HOST_CXX, $HOST_CXX $CCC c++ g++ gcc CC cxx cc++ cl icc, "") - if test -z "$HOST_CXX"; then - AC_MSG_ERROR([no acceptable c++ compiler found in \$PATH]) - fi - AC_MSG_RESULT([$HOST_CXX]) - - if test -z "$HOST_CFLAGS"; then - HOST_CFLAGS="$CFLAGS" - fi - if test -z "$HOST_CXXFLAGS"; then - HOST_CXXFLAGS="$CXXFLAGS" - fi - if test -z "$HOST_LDFLAGS"; then - HOST_LDFLAGS="$LDFLAGS" - fi - if test -z "$HOST_AR_FLAGS"; then - HOST_AR_FLAGS="$AR_FLAGS" - fi - AC_CHECK_PROGS(HOST_RANLIB, $HOST_RANLIB ranlib, ranlib, :) - AC_CHECK_PROGS(HOST_AR, $HOST_AR ar, ar, :) - CC="$HOST_CC" - CFLAGS="$HOST_CFLAGS" - LDFLAGS="$HOST_LDFLAGS" - - AC_MSG_CHECKING([whether the host c compiler ($HOST_CC $HOST_CFLAGS $HOST_LDFLAGS) works]) - AC_TRY_COMPILE([], [return(0);], - [ac_cv_prog_hostcc_works=1 AC_MSG_RESULT([yes])], - AC_MSG_ERROR([installation or configuration problem: host compiler $HOST_CC cannot create executables.]) ) - - CC="$HOST_CXX" - CFLAGS="$HOST_CXXFLAGS" - - AC_MSG_CHECKING([whether the host c++ compiler ($HOST_CXX $HOST_CXXFLAGS $HOST_LDFLAGS) works]) - AC_TRY_COMPILE([], [return(0);], - [ac_cv_prog_hostcxx_works=1 AC_MSG_RESULT([yes])], - AC_MSG_ERROR([installation or configuration problem: host compiler $HOST_CXX cannot create executables.]) ) - - CC=$_SAVE_CC - CFLAGS=$_SAVE_CFLAGS - LDFLAGS=$_SAVE_LDFLAGS - - AC_CHECK_PROGS(CC, $CC "${target_alias}-gcc" "${target}-gcc", :) - unset ac_cv_prog_CC - AC_PROG_CC - AC_CHECK_PROGS(CXX, $CXX "${target_alias}-g++" "${target}-g++", :) - unset ac_cv_prog_CXX - AC_PROG_CXX - - AC_CHECK_PROGS(RANLIB, $RANLIB "${target_alias}-ranlib" "${target}-ranlib", :) - AC_CHECK_PROGS(AR, $AR "${target_alias}-ar" "${target}-ar", :) - MOZ_PATH_PROGS(AS, $AS "${target_alias}-as" "${target}-as", :) - AC_CHECK_PROGS(LD, $LD "${target_alias}-ld" "${target}-ld", :) - AC_CHECK_PROGS(STRIP, $STRIP "${target_alias}-strip" "${target}-strip", :) - AC_CHECK_PROGS(WINDRES, $WINDRES "${target_alias}-windres" "${target}-windres", :) - AC_DEFINE(CROSS_COMPILE) -else - AC_PROG_CC - case "$target" in - *-mingw*) - # Work around the conftest.exe access problem on Windows - sleep 2 - esac - AC_PROG_CXX - AC_PROG_RANLIB - MOZ_PATH_PROGS(AS, $AS as, $CC) - AC_CHECK_PROGS(AR, ar, :) - AC_CHECK_PROGS(LD, ld, :) - AC_CHECK_PROGS(STRIP, strip, :) - AC_CHECK_PROGS(WINDRES, windres, :) - if test -z "$HOST_CC"; then - HOST_CC='$CC' - fi - if test -z "$HOST_CFLAGS"; then - HOST_CFLAGS='$CFLAGS' - fi - if test -z "$HOST_CXX"; then - HOST_CXX='$CXX' - fi - if test -z "$HOST_CXXFLAGS"; then - HOST_CXXFLAGS='$CXXFLAGS' - fi - if test -z "$HOST_LDFLAGS"; then - HOST_LDFLAGS='$LDFLAGS' - fi - if test -z "$HOST_RANLIB"; then - HOST_RANLIB='$RANLIB' - fi - if test -z "$HOST_AR"; then - HOST_AR='$AR' - fi - if test -z "$HOST_AR_FLAGS"; then - HOST_AR_FLAGS='$AR_FLAGS' - fi -fi - -MOZ_TOOL_VARIABLES - -dnl Special win32 checks -dnl ======================================================== - -dnl Target the Windows 7 SDK by default -WINSDK_TARGETVER=601 -WINVER=502 - -MOZ_ARG_WITH_STRING(windows-version, -[ --with-windows-version=WINSDK_TARGETVER - Highest Windows version to target using this SDK - 601: Windows 7], - WINSDK_TARGETVER=$withval) - -case "$WINSDK_TARGETVER" in -601) - MOZ_WINSDK_TARGETVER=0${WINSDK_TARGETVER}0000 - ;; - -*) - AC_MSG_ERROR([Invalid value for --with-windows-version ($WINSDK_TARGETVER), must be 601]); - ;; - -esac - -case "$target" in -*-mingw*) - if test "$GCC" != "yes"; then - # Check to see if we are really running in a msvc environemnt - _WIN32_MSVC=1 - AC_CHECK_PROGS(MIDL, midl) - - # Make sure compilers are valid - CFLAGS="$CFLAGS -TC -nologo" - CXXFLAGS="$CXXFLAGS -TP -nologo" - AC_LANG_SAVE - AC_LANG_C - AC_TRY_COMPILE([#include ], - [ 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 - - changequote(,) - _MSVC_VER_FILTER='s|.* ([0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+)?).*|\1|p' - changequote([,]) - - # Determine compiler version - CC_VERSION=`"${CC}" -v 2>&1 | sed -nre "$_MSVC_VER_FILTER"` - _CC_MAJOR_VERSION=`echo ${CC_VERSION} | $AWK -F\. '{ print $1 }'` - _CC_MINOR_VERSION=`echo ${CC_VERSION} | $AWK -F\. '{ print $2 }'` - _CC_RELEASE=`echo ${CC_VERSION} | $AWK -F\. '{ print $3 }'` - _CC_BUILD=`echo ${CC_VERSION} | $AWK -F\. '{ print $4 }'` - _MSC_VER=${_CC_MAJOR_VERSION}${_CC_MINOR_VERSION} - - CXX_VERSION=`"${CXX}" -v 2>&1 | sed -nre "$_MSVC_VER_FILTER"` - _CXX_MAJOR_VERSION=`echo ${CXX_VERSION} | $AWK -F\. '{ print $1 }'` - - if test "$_CC_MAJOR_VERSION" != "$_CXX_MAJOR_VERSION"; then - AC_MSG_ERROR([The major versions of \$CC and \$CXX do not match.]) - fi - - if test "$_CC_MAJOR_VERSION" = "14"; then - dnl Require VC8SP1 or newer. - dnl VC8 is 14.00.50727.42, VC8SP1 is 14.00.50727.762. - if test "$_CC_RELEASE" -lt 50727 -o \ - \( "$_CC_RELEASE" -eq 50727 -a "$_CC_BUILD" -lt 762 \); then - AC_MSG_ERROR([This version ($CC_VERSION) of the MSVC compiler is unsupported. You probably need to install Service Pack 1 of Visual Studio 2005. See https://developer.mozilla.org/en/Windows_Build_Prerequisites.]) - fi - - _CC_SUITE=8 - AC_DEFINE(_CRT_SECURE_NO_DEPRECATE) - AC_DEFINE(_CRT_NONSTDC_NO_DEPRECATE) - elif test "$_CC_MAJOR_VERSION" = "15"; then - _CC_SUITE=9 - LDFLAGS="$LDFLAGS -MANIFESTUAC:NO" - AC_DEFINE(_CRT_SECURE_NO_WARNINGS) - AC_DEFINE(_CRT_NONSTDC_NO_WARNINGS) - elif test "$_CC_MAJOR_VERSION" = "16"; then - _CC_SUITE=10 - LDFLAGS="$LDFLAGS -MANIFESTUAC:NO" - AC_DEFINE(_CRT_SECURE_NO_WARNINGS) - AC_DEFINE(_CRT_NONSTDC_NO_WARNINGS) - elif test "$_CC_MAJOR_VERSION" = "17"; then - _CC_SUITE=11 - AC_DEFINE(_CRT_SECURE_NO_WARNINGS) - AC_DEFINE(_CRT_NONSTDC_NO_WARNINGS) - else - AC_MSG_ERROR([This version ($CC_VERSION) of the MSVC compiler is unsupported. See https://developer.mozilla.org/en/Windows_Build_Prerequisites.]) - fi - - dnl Ensure that mt.exe is 'Microsoft (R) Manifest Tool', - dnl not something else like "magnetic tape manipulation utility". - MSMT_TOOL=`mt 2>&1|grep 'Microsoft (R) Manifest Tool'` - if test -z "$MSMT_TOOL"; then - AC_MSG_ERROR([Microsoft (R) Manifest Tool must be in your \$PATH.]) - fi - - changequote(,) - _MSMT_VER_FILTER='s|.* \([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*|\1|p' - changequote([,]) - MSMANIFEST_TOOL_VERSION=`echo ${MSMT_TOOL}|sed -ne "$_MSMT_VER_FILTER"` - if test -z "$MSMANIFEST_TOOL_VERSION"; then - AC_MSG_WARN([Unknown version of the Microsoft (R) Manifest Tool.]) - fi - - MSMANIFEST_TOOL=1 - unset MSMT_TOOL - - # Check linker version - _LD_FULL_VERSION=`"${LD}" -v 2>&1 | sed -nre "$_MSVC_VER_FILTER"` - _LD_MAJOR_VERSION=`echo ${_LD_FULL_VERSION} | $AWK -F\. '{ print $1 }'` - if test "$_LD_MAJOR_VERSION" != "$_CC_SUITE"; then - AC_MSG_ERROR([The linker major version, $_LD_FULL_VERSION, does not match the compiler suite version, $_CC_SUITE.]) - fi - - INCREMENTAL_LINKER=1 - - # Check midl version - _MIDL_FULL_VERSION=`"${MIDL}" -v 2>&1 | sed -nre "$_MSVC_VER_FILTER"` - _MIDL_MAJOR_VERSION=`echo ${_MIDL_FULL_VERSION} | $AWK -F\. '{ print $1 }'` - _MIDL_MINOR_VERSION=`echo ${_MIDL_FULL_VERSION} | $AWK -F\. '{ print $2 }'` - _MIDL_REV_VERSION=`echo ${_MIDL_FULL_VERSION} | $AWK -F\. '{ print $3 }'` - # Add flags if necessary - AC_MSG_CHECKING([for midl flags]) - case "$target" in - i*86-*) - if test \( "$_MIDL_MAJOR_VERSION" = "7" -a "$_MIDL_MINOR_VERSION" = "00" -a "$_MIDL_REV_VERSION" = "0499" \); then - # MIDL version 7.00.0499 defaults /env win64 on x64 platforms. - # MIDL version 7.00.0500 or later has no problem. - MIDL_FLAGS="${MIDL_FLAGS} -env win32" - AC_MSG_RESULT([need -env win32]) - else - AC_MSG_RESULT([none needed]) - fi - ;; - x86_64-*) - MIDL_FLAGS="${MIDL_FLAGS} -env x64" - ;; - *) - AC_MSG_RESULT([none needed]) - ;; - esac - - # Identify which version of the SDK we're building with - # Windows Server 2008 and newer SDKs have WinSDKVer.h, get the version - # from there - AC_CHECK_HEADERS([winsdkver.h]) - if test "$ac_cv_header_winsdkver_h" = "yes"; then - # Get the highest _WIN32_WINNT and NTDDI versions supported - # Take the higher of the two - # This is done because the Windows 7 beta SDK reports its - # NTDDI_MAXVER to be 0x06000100 instead of 0x06010000, as it should - AC_CACHE_CHECK(for highest Windows version supported by this SDK, - ac_cv_winsdk_maxver, - [cat > conftest.h < -#include - -#if (NTDDI_VERSION_FROM_WIN32_WINNT(_WIN32_WINNT_MAXVER) > NTDDI_MAXVER) -#define WINSDK_MAXVER NTDDI_VERSION_FROM_WIN32_WINNT(_WIN32_WINNT_MAXVER) -#else -#define WINSDK_MAXVER NTDDI_MAXVER -#endif - -WINSDK_MAXVER -EOF - ac_cv_winsdk_maxver=`$CPP conftest.h 2>/dev/null | tail -n1` - rm -f conftest.h - ]) - MOZ_WINSDK_MAXVER=${ac_cv_winsdk_maxver} - else - # Any SDK which doesn't have WinSDKVer.h is too old. - AC_MSG_ERROR([Your SDK does not have WinSDKVer.h. It is probably too old. Please upgrade to a newer SDK or try running the Windows SDK Configuration Tool and selecting a newer SDK. See https://developer.mozilla.org/En/Windows_SDK_versions for more details on fixing this.]) - fi - - unset _MSVC_VER_FILTER - - AC_CACHE_CHECK(for std::_Throw, ac_cv_have_std__Throw, - [ - AC_LANG_SAVE - AC_LANG_CPLUSPLUS - _SAVE_CXXFLAGS="$CXXFLAGS" - CXXFLAGS="${CXXFLAGS} -D_HAS_EXCEPTIONS=0" - AC_TRY_COMPILE([#include ], - [std::_Throw(std::exception()); return 0;], - ac_cv_have_std__Throw="yes", - ac_cv_have_std__Throw="no") - CXXFLAGS="$_SAVE_CXXFLAGS" - AC_LANG_RESTORE - ]) - - if test "$ac_cv_have_std__Throw" = "yes"; then - AC_CACHE_CHECK(for |class __declspec(dllimport) exception| bug, - ac_cv_have_dllimport_exception_bug, - [ - AC_LANG_SAVE - AC_LANG_CPLUSPLUS - _SAVE_CXXFLAGS="$CXXFLAGS" - CXXFLAGS="${CXXFLAGS} -D_HAS_EXCEPTIONS=0" - AC_TRY_LINK([#include ], - [std::vector v; return v.at(1);], - ac_cv_have_dllimport_exception_bug="no", - ac_cv_have_dllimport_exception_bug="yes") - CXXFLAGS="$_SAVE_CXXFLAGS" - AC_LANG_RESTORE - ]) - if test "$ac_cv_have_dllimport_exception_bug" = "no"; then - WRAP_STL_INCLUDES=1 - MOZ_MSVC_STL_WRAP__Throw=1 - AC_DEFINE(MOZ_MSVC_STL_WRAP__Throw) - fi - else - AC_CACHE_CHECK(for overridable _RAISE, - ac_cv_have__RAISE, - [ - AC_LANG_SAVE - AC_LANG_CPLUSPLUS - _SAVE_CXXFLAGS="$CXXFLAGS" - CXXFLAGS="${CXXFLAGS} -D_HAS_EXCEPTIONS=0" - AC_TRY_COMPILE([#include - #undef _RAISE - #define _RAISE(x) externallyDefinedFunction((x).what()) - #include - ], - [std::vector 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 - fi - - if test "$WRAP_STL_INCLUDES" = "1"; then - STL_FLAGS='-D_HAS_EXCEPTIONS=0 -I$(DIST)/stl_wrappers' - 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 - # 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 - - MOZ_WINSDK_MAXVER=0x06010000 - fi # !GNU_CC - - AC_DEFINE_UNQUOTED(WINVER,0x$WINVER) - AC_DEFINE_UNQUOTED(_WIN32_WINNT,0x$WINVER) - # Require OS features provided by IE 6.0 SP2 (XP SP2) - AC_DEFINE_UNQUOTED(_WIN32_IE,0x0603) - - # If the maximum version supported by this SDK is lower than the target - # version, error out - AC_MSG_CHECKING([for Windows SDK being recent enough]) - if $PERL -e "exit(0x$MOZ_WINSDK_TARGETVER > $MOZ_WINSDK_MAXVER)"; then - AC_MSG_RESULT("yes") - else - AC_MSG_RESULT("no") - AC_MSG_ERROR([You are targeting Windows version 0x$MOZ_WINSDK_TARGETVER, but your SDK only supports up to version $MOZ_WINSDK_MAXVER. Install and use an updated SDK, or target a lower version using --with-windows-version. See https://developer.mozilla.org/En/Windows_SDK_versions for more details on fixing this.]) - fi - - AC_DEFINE_UNQUOTED(MOZ_WINSDK_TARGETVER,0x$MOZ_WINSDK_TARGETVER) - # Definitions matching sdkddkver.h - AC_DEFINE_UNQUOTED(MOZ_NTDDI_WIN7, 0x06010000) - ;; -esac - -dnl Test breaks icc on OS/2 && MSVC -if test "$CC" != "icc" -a -z "$_WIN32_MSVC"; then - AC_PROG_CC_C_O - if grep "NO_MINUS_C_MINUS_O 1" ./confdefs.h >/dev/null; then - USING_HCC=1 - _OLDCC=$CC - _OLDCXX=$CXX - CC="${srcdir}/build/hcc '$CC'" - CXX="${srcdir}/build/hcpp '$CXX'" - fi -fi - -AC_PROG_CPP -AC_PROG_CXXCPP - -MAIL_COMPONENT="mail msgsmime import" -export MAIL_COMPONENT -MAIL_MODULE="MODULE(nsMailModule) MODULE(nsMsgSMIMEModule) MODULE(nsImportServiceModule)" -export MAIL_MODULE - -if test -n "$_WIN32_MSVC"; then - SKIP_PATH_CHECKS=1 - SKIP_COMPILER_CHECKS=1 - SKIP_LIBRARY_CHECKS=1 - - dnl Since we're using MSVC, we'll be building MAPI - MAIL_COMPONENT="$MAIL_COMPONENT msgMapi" - export MAIL_COMPONENT - MAIL_MODULE="$MAIL_MODULE MODULE(msgMapiModule)" - export MAIL_MODULE -fi - -fi # COMPILE_ENVIRONMENT - -AC_SUBST(MIDL_FLAGS) -AC_SUBST(_MSC_VER) - -AC_SUBST(GNU_AS) -AC_SUBST(GNU_LD) -AC_SUBST(GNU_CC) -AC_SUBST(GNU_CXX) -AC_SUBST(INTEL_CC) -AC_SUBST(INTEL_CXX) -AC_SUBST(CLANG_CC) -AC_SUBST(CLANG_CXX) - -AC_SUBST(STL_FLAGS) -AC_SUBST(MOZ_MSVC_STL_WRAP__Throw) -AC_SUBST(MOZ_MSVC_STL_WRAP__RAISE) - -dnl ======================================================== -dnl Checks for programs. -dnl ======================================================== -AC_PROG_INSTALL -AC_PROG_LN_S - -if test -z "$TINDERBOX_SKIP_PERL_VERSION_CHECK"; then -AC_MSG_CHECKING([for minimum required perl version >= $PERL_VERSION]) -_perl_version=`PERL_VERSION=$PERL_VERSION $PERL -e 'print "$]"; if ($] >= $ENV{PERL_VERSION}) { exit(0); } else { exit(1); }' 2>&5` -_perl_res=$? -AC_MSG_RESULT([$_perl_version]) - -if test "$_perl_res" != 0; then - AC_MSG_ERROR([Perl $PERL_VERSION or higher is required.]) -fi -fi - -AC_MSG_CHECKING([for full perl installation]) -_perl_archlib=`$PERL -e 'use Config; if ( -d $Config{archlib} ) { exit(0); } else { exit(1); }' 2>&5` -_perl_res=$? -if test "$_perl_res" != 0; then - AC_MSG_RESULT([no]) - AC_MSG_ERROR([Cannot find Config.pm or \$Config{archlib}. A full perl installation is required.]) -else - AC_MSG_RESULT([yes]) -fi - -MOZ_ARG_WITH_BOOL(system-ply, -[ --with-system-ply Use system installed python ply library], - [if $PYTHON -c 'import ply' 2>&5; then - MOZ_SYSTEM_PLY=1 - else - AC_MSG_ERROR([python ply library is not found but --with-system-ply was requested]) - fi]) - -AC_SUBST(MOZ_SYSTEM_PLY) - -if test -z "$COMPILE_ENVIRONMENT"; then - NSINSTALL_BIN='$(PYTHON) $(MOZILLA_SRCDIR)/config/nsinstall.py' -fi -AC_SUBST(NSINSTALL_BIN) - -MOZ_PATH_PROG(DOXYGEN, doxygen, :) -MOZ_PATH_PROG(AUTOCONF, autoconf, :) -MOZ_PATH_PROG(UNZIP, unzip, :) -MOZ_PATH_PROGS(ZIP, zip) -if test -z "$ZIP" -o "$ZIP" = ":"; then - AC_MSG_ERROR([zip not found in \$PATH]) -fi -MOZ_PATH_PROG(XARGS, xargs) -if test -z "$XARGS" -o "$XARGS" = ":"; then - AC_MSG_ERROR([xargs not found in \$PATH .]) -fi - -if test "$COMPILE_ENVIRONMENT"; then - -dnl ======================================================== -dnl = Mac OS X toolchain support -dnl ======================================================== - -case "$target_os" in -darwin*) - dnl Current known valid versions for GCC_VERSION are 2.95.2 3.1 3.3 4.0. - dnl 4.0 identifies itself as 4.0.x, so strip the decidecimal for - dnl the environment and includedir purposes (when using an SDK, below), - dnl but remember the full version number for the libdir (SDK). - changequote(,) - GCC_VERSION_FULL=`echo $CXX_VERSION | $PERL -pe 's/^.*gcc version ([^ ]*).*/$1/'` - GCC_VERSION=`echo $GCC_VERSION_FULL | $PERL -pe '(split(/\./))[0]>=4&&s/(^\d*\.\d*).*/$1/;'` - changequote([,]) - if test "$GCC_VERSION_FULL" = "4.0.0" ; then - dnl Bug 280479, but this keeps popping up in bug 292530 too because - dnl 4.0.0/4061 is the default compiler in Tiger. - changequote(,) - GCC_BUILD=`echo $CXX_VERSION | $PERL -pe 's/^.*build ([^ )]*).*/$1/'` - changequote([,]) - if test "$GCC_BUILD" = "4061" ; then - AC_MSG_ERROR([You are attempting to use Apple gcc 4.0 build 4061. -This compiler was supplied with Xcode 2.0, and contains bugs that prevent it -from building Mozilla. Upgrade to Xcode 2.1 or later.]) - fi - fi - - dnl xcodebuild needs GCC_VERSION defined in the environment, since it - dnl doesn't respect the CC/CXX setting. With GCC_VERSION set, it will use - dnl /usr/bin/g(cc|++)-$GCC_VERSION. - MOZ_PATH_PROGS(PBBUILD_BIN, pbbuild xcodebuild pbxbuild) - - dnl sdp was formerly in /Developer/Tools. As of Mac OS X 10.4 (Darwin 8), - dnl it has moved into /usr/bin. - MOZ_PATH_PROG(SDP, sdp, :, [$PATH:/usr/bin:/Developer/Tools]) - ;; -esac - -AC_SUBST(GCC_VERSION) - -dnl The universal machinery sets UNIVERSAL_BINARY to inform packager.mk -dnl that a universal binary is being produced. -AC_SUBST(UNIVERSAL_BINARY) MOZ_ARG_WITH_STRING(unify-dist, [ --with-unify-dist=dir Location of the dist directory to unify with at packaging time (Mac OS X universal build only)], @@ -764,3009 +90,6 @@ if test -n "$UNIVERSAL_BINARY"; then ;; esac fi -AC_SUBST(UNIFY_DIST) - -dnl ======================================================== -dnl Check for MacOS deployment target version -dnl ======================================================== - -MOZ_ARG_ENABLE_STRING(macos-target, - [ --enable-macos-target=VER (default=10.6) - Set the minimum MacOS version needed at runtime], - [_MACOSX_DEPLOYMENT_TARGET=$enableval]) - -case "$target" in -*-darwin*) - if test -n "$_MACOSX_DEPLOYMENT_TARGET" ; then - dnl Use the specified value - export MACOSX_DEPLOYMENT_TARGET=$_MACOSX_DEPLOYMENT_TARGET - else - dnl No value specified on the command line or in the environment, - dnl use architecture minimum. - export MACOSX_DEPLOYMENT_TARGET=10.6 - fi - ;; -esac - -AC_SUBST(MACOSX_DEPLOYMENT_TARGET) - -dnl ======================================================== -dnl = Mac OS X SDK support -dnl ======================================================== -MACOS_SDK_DIR= -NEXT_ROOT= -MOZ_ARG_WITH_STRING(macos-sdk, -[ --with-macos-sdk=dir Location of platform SDK to use (Mac OS X only)], - MACOS_SDK_DIR=$withval) - -dnl MACOS_SDK_DIR will be set to the SDK location whenever one is in use. -dnl NEXT_ROOT will be set and exported only if it's needed. -AC_SUBST(MACOS_SDK_DIR) -AC_SUBST(NEXT_ROOT) - -if test "$MACOS_SDK_DIR"; then - dnl Sync this section with the ones in NSPR and NSS. - - 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 - - GCC_VERSION_MAJOR=`echo $GCC_VERSION_FULL | $PERL -pe 's/(^\d*).*/$1/;'` - if test "$GCC_VERSION_MAJOR" -lt "4" ; then - AC_MSG_ERROR([You need to upgrade the compiler version to 4.x]) - else - dnl gcc >= 4.0 uses different paths than above, but knows how to find - dnl them itself. - CFLAGS="$CFLAGS -isysroot ${MACOS_SDK_DIR}" - CXXFLAGS="$CXXFLAGS -isysroot ${MACOS_SDK_DIR}" - - dnl CPP/CXXCPP needs to be set for AC_CHECK_HEADER. - CPP="$CPP -isysroot ${MACOS_SDK_DIR}" - CXXCPP="$CXXCPP -isysroot ${MACOS_SDK_DIR}" - - if test "$GCC_VERSION_FULL" = "4.0.0" ; then - dnl If gcc >= 4.0, we're guaranteed to be on Tiger, which has an ld - dnl that supports -syslibroot. Don't set NEXT_ROOT because it will - dnl be ignored and cause warnings when -syslibroot is specified. - dnl gcc 4.0.1 will pass -syslibroot to ld automatically based on - dnl the -isysroot it receives, so this is only needed with 4.0.0. - LDFLAGS="$LDFLAGS -Wl,-syslibroot,${MACOS_SDK_DIR}" - fi - fi - - AC_LANG_SAVE - AC_MSG_CHECKING([for valid compiler/Mac OS X SDK combination]) - AC_LANG_CPLUSPLUS - AC_TRY_COMPILE([#include ],[], - result=yes, - result=no) - AC_LANG_RESTORE - AC_MSG_RESULT($result) - - if test "$result" = "no" ; then - AC_MSG_ERROR([The selected compiler and Mac OS X SDK are incompatible.]) - fi -fi - -fi # COMPILE_ENVIRONMENT - -if test "$COMPILE_ENVIRONMENT"; then - -AC_PATH_XTRA - -XCFLAGS="$X_CFLAGS" - -fi # COMPILE_ENVIRONMENT - -dnl ======================================================== -dnl set the defaults first -dnl ======================================================== -AS_BIN=$AS -AR_LIST='$(AR) t' -AR_EXTRACT='$(AR) x' -AR_DELETE='$(AR) d' -AS='$(CC)' -AS_DASH_C_FLAG='-c' -DLL_PREFIX=lib -LIB_PREFIX=lib -DLL_SUFFIX=.so -OBJ_SUFFIX=o -LIB_SUFFIX=a -ASM_SUFFIX=s -IMPORT_LIB_SUFFIX= -TARGET_MD_ARCH=unix -DIRENT_INO=d_ino -MOZ_USER_DIR=".mozilla" - -MOZ_JPEG_CFLAGS= -MOZ_JPEG_LIBS='$(call EXPAND_LIBNAME_PATH,mozjpeg,$(DEPTH)/mozilla/jpeg)' -MOZ_BZ2_CFLAGS= -MOZ_BZ2_LIBS='$(call EXPAND_LIBNAME_PATH,bz2,$(DEPTH)/mozilla/modules/libbz2/src)' -MOZ_PNG_CFLAGS= -MOZ_PNG_LIBS='$(call EXPAND_LIBNAME_PATH,mozpng,$(DEPTH)/mozilla/modules/libimg/png)' -MOZ_JS_STATIC_LIBS='-L$(LIBXUL_DIST)/bin -ljs_static' -MOZ_JS_SHARED_LIBS='-L$(LIBXUL_DIST)/bin -lmozjs' -DYNAMIC_XPCOM_LIBS='-L$(LIBXUL_DIST)/bin -lxul -lxpcom_core -lmozalloc' -MOZ_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin:/usr/lib:/usr/local/lib:/lib -Wl,-rpath-link,$(prefix)/lib' -XPCOM_FROZEN_LDOPTS='-L$(LIBXUL_DIST)/bin -lxul -lmozalloc' -LIBXUL_LIBS='$(XPCOM_FROZEN_LDOPTS)' -XPCOM_GLUE_LDOPTS='$(LIBXUL_DIST)/lib/$(LIB_PREFIX)xpcomglue_s.$(LIB_SUFFIX) $(XPCOM_FROZEN_LDOPTS)' -XPCOM_STANDALONE_GLUE_LDOPTS='$(LIBXUL_DIST)/lib/$(LIB_PREFIX)xpcomglue.$(LIB_SUFFIX)' - -# These are specially defined on Windows only -case "$target" in -*-mingw*) - XPCOM_STATICRUNTIME_GLUE_LDOPTS='$(LIBXUL_DIST)/lib/$(LIB_PREFIX)xpcomglue_staticruntime_s.$(LIB_SUFFIX) $(XPCOM_FROZEN_LDOPTS)' - XPCOM_STANDALONE_STATICRUNTIME_GLUE_LDOPTS='$(LIBXUL_DIST)/lib/$(LIB_PREFIX)xpcomglue_staticruntime.$(LIB_SUFFIX)' - ;; -*) - XPCOM_STATICRUNTIME_GLUE_LDOPTS=$XPCOM_GLUE_LDOPTS - XPCOM_STANDALONE_STATICRUNTIME_GLUE_LDOPTS=$XPCOM_STANDALONE_GLUE_LDOPTS - ;; -esac - -MOZ_FS_LAYOUT=unix - -MOZ_COMPONENT_NSPR_LIBS='-L$(LIBXUL_DIST)/bin $(NSPR_LIBS)' - -USE_DEPENDENT_LIBS=1 - -_PLATFORM_DEFAULT_TOOLKIT=cairo-gtk2 - -if test -n "$CROSS_COMPILE"; then - OS_TARGET="${target_os}" - OS_ARCH=`echo $target_os | sed -e 's|/|_|g'` - OS_RELEASE= - case "${target_os}" in - linux*) OS_ARCH=Linux OS_TARGET=Linux ;; - kfreebsd*-gnu) OS_ARCH=GNU_kFreeBSD OS_TARGET=GNU_kFreeBSD ;; - solaris*) OS_ARCH=SunOS OS_RELEASE=5 ;; - mingw*) OS_ARCH=WINNT ;; - darwin*) OS_ARCH=Darwin OS_TARGET=Darwin ;; - esac -else - OS_TARGET=`uname -s` - OS_ARCH=`uname -s | sed -e 's|/|_|g'` - OS_RELEASE=`uname -r` -fi - -# Before this used `uname -m` when not cross compiling -# but that breaks when you have a 64 bit kernel with a 32 bit userland. -OS_TEST="${target_cpu}" - -HOST_OS_ARCH=`echo $host_os | sed -e 's|/|_|g'` - -####################################################################### -# Master "Core Components" macros for getting the OS target # -####################################################################### - -# -# If OS_TARGET is not specified, it defaults to $(OS_ARCH), i.e., no -# cross-compilation. -# - -# -# Define and override various archtecture-specific variables, including -# HOST_OS_ARCH -# OS_ARCH -# OS_TEST -# OS_TARGET -# OS_RELEASE -# OS_MINOR_RELEASE -# - -case "$HOST_OS_ARCH" in -mingw*) - HOST_OS_ARCH=WINNT - ;; -darwin*) - HOST_OS_ARCH=Darwin - ;; -linux*) - HOST_OS_ARCH=Linux - ;; -solaris*) - HOST_OS_ARCH=SunOS - SOLARIS_SUNPRO_CC= - SOLARIS_SUNPRO_CXX= - if test -z "$GNU_CC"; then - if test "`$CC -V 2>&1 | egrep -c 'Sun.*C '`" != "0"; then - SOLARIS_SUNPRO_CC=1 - fi - fi - - if test -z "$GNU_CXX"; then - if test "`$CXX -V 2>&1 | egrep -c 'Sun.*C\+\+ '`" != "0"; then - SOLARIS_SUNPRO_CXX=1 - fi - fi - AC_SUBST(SOLARIS_SUNPRO_CC) - AC_SUBST(SOLARIS_SUNPRO_CXX) - ;; -BSD_386) - HOST_OS_ARCH=BSD - ;; -OS_2) - HOST_OS_ARCH=OS2 - ;; -esac - -case "$OS_ARCH" in -WINNT) - if test -z "$CROSS_COMPILE" ; then - OS_TEST=`uname -p` - fi - ;; -Windows_NT) -# -# If uname -s returns "Windows_NT", we assume that we are using -# the uname.exe in MKS toolkit. -# -# The -r option of MKS uname only returns the major version number. -# So we need to use its -v option to get the minor version number. -# Moreover, it doesn't have the -p option, so we need to use uname -m. -# - OS_ARCH=WINNT - OS_TARGET=WINNT - OS_MINOR_RELEASE=`uname -v` - if test "$OS_MINOR_RELEASE" = "00"; then - OS_MINOR_RELEASE=0 - fi - OS_RELEASE="${OS_RELEASE}.${OS_MINOR_RELEASE}" - ;; -MINGW*_NT*) -# -# If uname -s returns MINGW32_NT-5.1, we assume that we are using -# the uname.exe in the MSYS tools. -# - OS_RELEASE=`expr $OS_ARCH : '.*NT-\(.*\)'` - OS_ARCH=WINNT - OS_TARGET=WINNT - ;; -AIX) - OS_RELEASE=`uname -v`.`uname -r` - OS_TEST=${target_cpu} - ;; -BSD_386) - OS_ARCH=BSD - ;; -OS_2) - OS_ARCH=OS2 - OS_TARGET=OS2 - OS_RELEASE=`uname -v` - ;; -Darwin) - case "${target_cpu}" in - i*86*) - OS_TEST=i386 - ;; - x86_64) - OS_TEST=x86_64 - ;; - *) - if test -z "$CROSS_COMPILE" ; then - OS_TEST=`uname -p` - fi - ;; - esac - ;; -esac - -# Only set CPU_ARCH if we recognize the value of OS_TEST - -case "$OS_TEST" in -*86 | i86pc) - CPU_ARCH=x86 - ;; - -powerpc64 | ppc64) - CPU_ARCH=ppc64 - ;; - -powerpc | ppc | rs6000) - CPU_ARCH=ppc - ;; - -Alpha | alpha | ALPHA) - CPU_ARCH=Alpha - ;; - -s390) - CPU_ARCH=s390 - ;; - -s390x) - CPU_ARCH=s390x - ;; - -hppa* | parisc) - CPU_ARCH=hppa - ;; - -sun4u | sparc*) - CPU_ARCH=sparc - ;; - -x86_64 | ia64) - CPU_ARCH="$OS_TEST" - ;; - -arm*) - CPU_ARCH=arm -esac - -if test -z "$OS_TARGET"; then - OS_TARGET=$OS_ARCH -fi -OS_CONFIG="${OS_TARGET}${OS_RELEASE}" - -dnl Set INTEL_ARCHITECTURE if we're compiling for x86-32 or x86-64. -dnl =============================================================== -INTEL_ARCHITECTURE= -case "$OS_TEST" in - x86_64|i?86) - INTEL_ARCHITECTURE=1 -esac - -dnl ======================================================== -dnl GNU specific defaults -dnl ======================================================== -if test "$GNU_CC"; then - # FIXME: Let us build with strict aliasing. bug 414641. - CFLAGS="$CFLAGS -fno-strict-aliasing" - MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-h,$@ -o $@' - MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-h,$@ -o $@' - DSO_LDOPTS='-shared' - if test "$GCC_USE_GNU_LD"; then - # Don't allow undefined symbols in libraries - DSO_LDOPTS="$DSO_LDOPTS -Wl,-z,defs" - fi - WARNINGS_AS_ERRORS='-Werror' - DSO_CFLAGS='' - DSO_PIC_CFLAGS='-fPIC' - ASFLAGS="$ASFLAGS -fPIC" - - # Turn on GNU-specific warnings: - # -Wall - turn on a lot of warnings - # -pedantic - this is turned on below - # -Wpointer-arith - enabled with -pedantic, but good to have even if not - # -Wdeclaration-after-statement - MSVC doesn't like these - # -Werror=return-type - catches missing returns, zero false positives - # -Wtype-limits - catches overflow bugs, few false positives - # -Wempty-body - catches bugs, e.g. "if (c); foo();", few false positives - # - _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wall -Wpointer-arith -Wdeclaration-after-statement" - MOZ_C_SUPPORTS_WARNING(-W, error=return-type, ac_c_has_werror_return_type) - MOZ_C_SUPPORTS_WARNING(-W, type-limits, ac_c_has_wtype_limits) - MOZ_C_SUPPORTS_WARNING(-W, empty-body, ac_c_has_wempty_body) - - # Turn off the following warnings that -Wall/-pedantic turn on: - # -Wno-unused - lots of violations in third-party code - # -Wno-overlength-strings - we exceed the minimum maximum length frequently - # - _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wno-unused" - MOZ_C_SUPPORTS_WARNING(-Wno-, overlength-strings, ac_c_has_wno_overlength_strings) - - if test -z "$INTEL_CC" -a -z "$CLANG_CC"; then - # Don't use -Wcast-align with ICC or clang - case "$CPU_ARCH" in - # And don't use it on hppa, ia64, sparc, since it's noisy there - hppa | ia64 | sparc) - ;; - *) - _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wcast-align" - ;; - esac - fi - - dnl Turn pedantic on but disable the warnings for long long - _PEDANTIC=1 - - _DEFINES_CFLAGS='-include $(DEPTH)/mozilla/mozilla-config.h -DMOZILLA_CLIENT' - _USE_CPP_INCLUDE_FLAG=1 - -elif test "$SOLARIS_SUNPRO_CC"; then - DSO_CFLAGS='' - if test "$CPU_ARCH" = "sparc"; then - # for Sun Studio on Solaris/SPARC - DSO_PIC_CFLAGS='-xcode=pic32' - else - DSO_PIC_CFLAGS='-KPIC' - fi - _DEFINES_CFLAGS='$(ACDEFINES) -D_COMM_CONFIG_H_ -DMOZILLA_CLIENT' -else - MKSHLIB='$(LD) $(DSO_LDOPTS) -h $@ -o $@' - MKCSHLIB='$(LD) $(DSO_LDOPTS) -h $@ -o $@' - - DSO_LDOPTS='-shared' - if test "$GNU_LD"; then - # Don't allow undefined symbols in libraries - DSO_LDOPTS="$DSO_LDOPTS -z defs" - fi - - DSO_CFLAGS='' - DSO_PIC_CFLAGS='-KPIC' - _DEFINES_CFLAGS='$(ACDEFINES) -D_COMM_CONFIG_H_ -DMOZILLA_CLIENT' -fi - -if test "$GNU_CXX"; then - # FIXME: Let us build with strict aliasing. bug 414641. - CXXFLAGS="$CXXFLAGS -fno-exceptions -fno-strict-aliasing" - - # Turn on GNU-specific warnings: - # -Wall - turn on a lot of warnings - # -pedantic - this is turned on below - # -Wpointer-arith - enabled with -pedantic, but good to have even if not - # -Woverloaded-virtual - ??? - # -Werror=return-type - catches missing returns, zero false positives - # -Wtype-limits - catches overflow bugs, few false positives - # -Wempty-body - catches bugs, e.g. "if (c); foo();", few false positives - # -Werror=conversion-null - catches conversions between NULL and non-pointer types - # - _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wall -Wpointer-arith -Woverloaded-virtual" - MOZ_CXX_SUPPORTS_WARNING(-W, error=return-type, ac_cxx_has_werror_return_type) - MOZ_CXX_SUPPORTS_WARNING(-W, type-limits, ac_cxx_has_wtype_limits) - MOZ_CXX_SUPPORTS_WARNING(-W, empty-body, ac_cxx_has_wempty_body) - MOZ_CXX_SUPPORTS_WARNING(-W, error=conversion-null, ac_cxx_has_werror_conversion_null) - - # Turn off the following warnings that -Wall/-pedantic turn on: - # -Wno-ctor-dtor-privacy - ??? - # -Wno-overlength-strings - we exceed the minimum maximum length frequently - # -Wno-invalid-offsetof - we use offsetof on non-POD types frequently - # -Wno-variadic-macros - ??? - # - _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wno-ctor-dtor-privacy" - MOZ_CXX_SUPPORTS_WARNING(-Wno-, overlength-strings, ac_cxx_has_wno_overlength_strings) - MOZ_CXX_SUPPORTS_WARNING(-Wno-, invalid-offsetof, ac_cxx_has_wno_invalid_offsetof) - MOZ_CXX_SUPPORTS_WARNING(-Wno-, variadic-macros, ac_cxx_has_wno_variadic_macros) - - if test -z "$INTEL_CXX" -a -z "$CLANG_CXX"; then - # Don't use -Wcast-align with ICC or clang - case "$CPU_ARCH" in - # And don't use it on hppa, ia64, sparc, since it's noisy there - hppa | ia64 | sparc) - ;; - *) - _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wcast-align" - ;; - esac - fi - - _DEFINES_CXXFLAGS='-DMOZILLA_CLIENT -include $(DEPTH)/mozilla/mozilla-config.h' - _USE_CPP_INCLUDE_FLAG=1 - - # Recent clang and gcc support C++11 deleted functions without warnings if - # compiling with -std=c++0x or -std=gnu++0x (or c++11 or gnu++11 in very new - # versions). We can't use -std=c++0x yet, so gcc's support must remain - # unused. But clang's warning can be disabled, so when compiling with clang - # we use it to opt out of the warning, enabling (macro-encapsulated) use of - # deleted function syntax. - if test "$CLANG_CXX"; then - _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wno-c++0x-extensions" - MOZ_CXX_SUPPORTS_WARNING(-Wno-, extended-offsetof, ac_cxx_has_wno_extended_offsetof) - fi - -else - _DEFINES_CXXFLAGS='-DMOZILLA_CLIENT -D_COMM_CONFIG_H_ $(ACDEFINES)' -fi - -dnl gcc can come with its own linker so it is better to use the pass-thru calls -dnl MKSHLIB_FORCE_ALL is used to force the linker to include all object -dnl files present in an archive. MKSHLIB_UNFORCE_ALL reverts the linker to -dnl normal behavior. -dnl ======================================================== -MKSHLIB_FORCE_ALL= -MKSHLIB_UNFORCE_ALL= - -if test "$COMPILE_ENVIRONMENT"; then -if test "$GNU_CC"; then - AC_MSG_CHECKING(whether ld has archive extraction flags) - AC_CACHE_VAL(ac_cv_mkshlib_force_and_unforce, - [_SAVE_LDFLAGS=$LDFLAGS; _SAVE_LIBS=$LIBS - ac_cv_mkshlib_force_and_unforce="no" - exec 3<&0 < implementation -dnl ======================================================== -AC_MSG_CHECKING(for custom implementation) -if test "$MOZ_CUSTOM_STDINT_H"; then - AC_DEFINE_UNQUOTED(MOZ_CUSTOM_STDINT_H, "$MOZ_CUSTOM_STDINT_H") - AC_SUBST(MOZ_CUSTOM_STDINT_H) - AC_MSG_RESULT(using $MOZ_CUSTOM_STDINT_H) -else - AC_MSG_RESULT(none specified) -fi - -dnl Get version of various core apps from the version files. -SUNBIRD_VERSION=`cat $topsrcdir/calendar/sunbird/config/version.txt` -SEAMONKEY_VERSION=`cat $topsrcdir/suite/config/version.txt` - -AC_DEFINE_UNQUOTED(MOZILLA_VERSION,"$MOZILLA_VERSION") -AC_DEFINE_UNQUOTED(MOZILLA_VERSION_U,$MOZILLA_VERSION) - -MOZ_DOING_LTO(lto_is_enabled) - -dnl ======================================================== -dnl System overrides of the defaults for target -dnl ======================================================== - -case "$target" in -*-aix*) - AC_DEFINE(AIX) - if test ! "$GNU_CC"; then - if test ! "$HAVE_64BIT_OS"; then - # Compiling with Visual Age C++ object model compat is the - # default. To compile with object model ibm, add - # AIX_OBJMODEL=ibm to .mozconfig. - if test "$AIX_OBJMODEL" = "ibm"; then - CXXFLAGS="$CXXFLAGS -qobjmodel=ibm" - fi - fi - DSO_LDOPTS='-qmkshrobj=1' - DSO_CFLAGS='-qflag=w:w' - DSO_PIC_CFLAGS= - LDFLAGS="$LDFLAGS -Wl,-brtl -blibpath:/usr/lib:/lib" - MOZ_FIX_LINK_PATHS= - MKSHLIB='$(CXX) $(DSO_LDOPTS) -o $@' - MKCSHLIB='$(CC) $(DSO_LDOPTS) -o $@' - if test "$COMPILE_ENVIRONMENT"; then - AC_LANG_SAVE - AC_LANG_CPLUSPLUS - AC_MSG_CHECKING([for IBM XLC/C++ compiler version >= 9.0.0.7]) - AC_TRY_COMPILE([], - [#if (__IBMCPP__ < 900) - #error "Bad compiler" - #endif], - _BAD_COMPILER=,_BAD_COMPILER=1) - if test -n "$_BAD_COMPILER"; then - AC_MSG_RESULT([no]) - AC_MSG_ERROR([IBM XLC/C++ 9.0.0.7 or higher is required to bui -ld.]) - else - AC_MSG_RESULT([yes]) - fi - AC_LANG_RESTORE - TARGET_COMPILER_ABI="ibmc" - CC_VERSION=`lslpp -Lcq vac.C 2>/dev/null | awk -F: '{ print $3 }'` - CXX_VERSION=`lslpp -Lcq vacpp.cmp.core 2>/dev/null | awk -F: '{ print $3 }'` - fi - fi - case "${target_os}" in - aix4.1*) - DLL_SUFFIX='_shr.a' - ;; - esac - if test "$COMPILE_ENVIRONMENT"; then - AC_CHECK_HEADERS(sys/inttypes.h) - fi - AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES) - ;; - -*-bsdi*) - dnl -pedantic doesn't play well with BSDI's _very_ modified gcc (shlicc2) - _PEDANTIC= - case $OS_RELEASE in - 4.*|5.*) - STRIP_FLAGS="$STRIP_FLAGS -d" - ;; - *) - DSO_CFLAGS='' - DSO_LDOPTS='-r' - _WARNINGS_CFLAGS="-Wall" - _WARNINGS_CXXFLAGS="-Wall" - # The test above doesn't work properly, at least on 3.1. - MKSHLIB_FORCE_ALL='' - MKSHLIB_UNFORCE_ALL='' - ;; - esac - ;; - -*-darwin*) - MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@' - MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@' - MOZ_OPTIMIZE_FLAGS="-O3" - _PEDANTIC= - CFLAGS="$CFLAGS -fno-common" - CXXFLAGS="$CXXFLAGS -fno-common" - DLL_SUFFIX=".dylib" - DSO_LDOPTS='' - STRIP_FLAGS="$STRIP_FLAGS -x -S" - _PLATFORM_DEFAULT_TOOLKIT='cairo-cocoa' - TARGET_NSPR_MDCPUCFG='\"md/_darwin.cfg\"' - # 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" - - 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,$(LIBXUL_DIST)/bin' - ;; - -*-freebsd*) - if test `test -x /usr/bin/objformat && /usr/bin/objformat || echo elf` != "elf"; then - DLL_SUFFIX=".so.1.0" - DSO_LDOPTS="-shared" - fi - if test ! "$GNU_CC"; then - DSO_LDOPTS="-Bshareable $DSO_LDOPTS" - fi - ;; - -ia64*-hpux*) - DLL_SUFFIX=".so" - if test ! "$GNU_CC"; then - DSO_LDOPTS='-b' - DSO_CFLAGS="" - DSO_PIC_CFLAGS= - MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -o $@' - MKCSHLIB='$(CC) $(CFLAGS) $(DSO_LDOPTS) -o $@' - CXXFLAGS="$CXXFLAGS -Wc,-ansi_for_scope,on" - else - DSO_LDOPTS='-b -E' - MKSHLIB='$(LD) $(DSO_LDOPTS) -o $@' - MKCSHLIB='$(LD) $(DSO_LDOPTS) -o $@' - fi - MOZ_FIX_LINK_PATHS= - AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES) - AC_DEFINE(_LARGEFILE64_SOURCE) - ;; - -*-hpux*) - DLL_SUFFIX=".sl" - if test ! "$GNU_CC"; then - DSO_LDOPTS='-b -Wl,+s' - DSO_CFLAGS="" - DSO_PIC_CFLAGS="+Z" - MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -L$(LIBXUL_DIST)/bin -o $@' - MKCSHLIB='$(LD) -b +s -L$(LIBXUL_DIST)/bin -o $@' - CXXFLAGS="$CXXFLAGS -Wc,-ansi_for_scope,on" - else - DSO_LDOPTS='-b -E +s' - MKSHLIB='$(LD) $(DSO_LDOPTS) -L$(LIBXUL_DIST)/bin -L$(LIBXUL_DIST)/lib -o $@' - MKCSHLIB='$(LD) $(DSO_LDOPTS) -L$(LIBXUL_DIST)/bin -L$(LIBXUL_DIST)/lib -o $@' - fi - MOZ_POST_PROGRAM_COMMAND='chatr +s enable' - AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES) - ;; - -*-*linux*) - # Note: both GNU_CC and INTEL_CC are set when using Intel's C compiler. - # Similarly for GNU_CXX and INTEL_CXX. - if test "$INTEL_CC" -o "$INTEL_CXX"; then - # -Os has been broken on Intel's C/C++ compilers for quite a - # while; Intel recommends against using it. - MOZ_OPTIMIZE_FLAGS="-O2" - MOZ_DEBUG_FLAGS="-g" - elif test "$GNU_CC" -o "$GNU_CXX"; then - GCC_VERSION=`$CC -v 2>&1 | awk '/^gcc version/ { print $3 }'` - case $GCC_VERSION in - 4.1.*|4.2.*|4.5.*) - # -Os is broken on gcc 4.1.x 4.2.x, 4.5.0 we need to tweak it to get good results. - MOZ_OPTIMIZE_SIZE_TWEAK="-finline-limit=50" - esac - MOZ_OPTIMIZE_FLAGS="-Os -freorder-blocks $MOZ_OPTIMIZE_SIZE_TWEAK" - MOZ_DEBUG_FLAGS="-g" - fi - - TARGET_NSPR_MDCPUCFG='\"md/_linux.cfg\"' - - MOZ_MEMORY=1 - - case "${target_cpu}" in - alpha*) - CFLAGS="$CFLAGS -mieee" - CXXFLAGS="$CXXFLAGS -mieee" - ;; - i*86) - USE_ELF_DYNSTR_GC=1 - ;; - mips*) - MOZ_DEBUG_FLAGS="-g" # We want inlining - ;; - esac - ;; - -*-mingw*) - DSO_CFLAGS= - DSO_PIC_CFLAGS= - DLL_SUFFIX=.dll - RC=rc.exe - # 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"; then - CC="$CC -mno-cygwin" - CXX="$CXX -mno-cygwin" - CPP="$CPP -mno-cygwin" - CFLAGS="$CFLAGS -mms-bitfields" - CXXFLAGS="$CXXFLAGS -mms-bitfields" - DSO_LDOPTS='-shared' - MKSHLIB='$(CXX) $(DSO_LDOPTS) -o $@' - MKCSHLIB='$(CC) $(DSO_LDOPTS) -o $@' - RC='$(WINDRES)' - # 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" - MOZ_FIX_LINK_PATHS= - DYNAMIC_XPCOM_LIBS='-L$(LIBXUL_DIST)/lib -lxul -lxpcom_core -lmozalloc' - XPCOM_FROZEN_LDOPTS='-L$(LIBXUL_DIST)/lib -lxul -lmozalloc' - DLL_PREFIX= - IMPORT_LIB_SUFFIX=dll.a - GCC_VERSION=`$CC -v 2>&1 | awk '/^gcc version/ { print $3 }'` - - # We use mix of both POSIX and Win32 printf format across the tree, - # so format warnings are useless on mingw. - MOZ_C_SUPPORTS_WARNING(-Wno-, format, ac_c_has_wno_format) - MOZ_CXX_SUPPORTS_WARNING(-Wno-, format, ac_cxx_has_wno_format) - else - TARGET_COMPILER_ABI=msvc - HOST_CC='$(CC)' - HOST_CXX='$(CXX)' - HOST_LD='$(LD)' - if test "$AS_BIN"; then - AS="$(basename "$AS_BIN")" - fi - AR='lib' - AR_FLAGS='-NOLOGO -OUT:"$@"' - AR_EXTRACT= - RANLIB='echo not_ranlib' - STRIP='echo not_strip' - XARGS=xargs - ZIP=zip - UNZIP=unzip - DOXYGEN=: - GARBAGE='$(OBJDIR)/vc20.pdb $(OBJDIR)/vc40.pdb' - ASM_SUFFIX=asm - OBJ_SUFFIX=obj - LIB_SUFFIX=lib - DLL_PREFIX= - LIB_PREFIX= - IMPORT_LIB_SUFFIX=lib - MKSHLIB='$(LD) -NOLOGO -DLL -OUT:$@ -PDB:$(LINK_PDBFILE) $(DSO_LDOPTS)' - MKCSHLIB='$(LD) -NOLOGO -DLL -OUT:$@ -PDB:$(LINK_PDBFILE) $(DSO_LDOPTS)' - MKSHLIB_FORCE_ALL= - MKSHLIB_UNFORCE_ALL= - DSO_LDOPTS=-SUBSYSTEM:WINDOWS - _USE_CPP_INCLUDE_FLAG=1 - _DEFINES_CFLAGS='-FI $(DEPTH)/mozilla/mozilla-config.h -DMOZILLA_CLIENT' - _DEFINES_CXXFLAGS='-FI $(DEPTH)/mozilla/mozilla-config.h -DMOZILLA_CLIENT' - CFLAGS="$CFLAGS -W3 -Gy -Fd\$(COMPILE_PDBFILE)" - CXXFLAGS="$CXXFLAGS -W3 -Gy -Fd\$(COMPILE_PDBFILE)" - # MSVC warning C4345 warns of newly conformant behavior as of VS2003. - # MSVC warning C4351 warns of newly conformant behavior as of VS2005. - # 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. - CXXFLAGS="$CXXFLAGS -wd4345 -wd4351 -wd4800" - # 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" - MOZ_DEBUG_FLAGS='-Zi' - MOZ_DEBUG_LDFLAGS='-DEBUG -DEBUGTYPE:CV' - WARNINGS_AS_ERRORS='-WX' - MOZ_OPTIMIZE_FLAGS='-O1' - MOZ_JS_STATIC_LIBS='$(LIBXUL_DIST)/lib/js_static.lib' - MOZ_JS_SHARED_LIBS='$(LIBXUL_DIST)/lib/mozjs.lib' - MOZ_FIX_LINK_PATHS= - DYNAMIC_XPCOM_LIBS='$(LIBXUL_DIST)/lib/xul.lib $(LIBXUL_DIST)/lib/xpcom_core.lib $(LIBXUL_DIST)/lib/mozalloc.lib' - XPCOM_FROZEN_LDOPTS='$(LIBXUL_DIST)/lib/xul.lib $(LIBXUL_DIST)/lib/mozalloc.lib' - LIBXUL_LIBS='$(LIBXUL_DIST)/lib/xul.lib $(LIBXUL_DIST)/lib/mozalloc.lib' - MOZ_COMPONENT_NSPR_LIBS='$(NSPR_LIBS)' - LDFLAGS="$LDFLAGS -LARGEADDRESSAWARE -NXCOMPAT" - dnl For profile-guided optimization - PROFILE_GEN_CFLAGS="-GL" - PROFILE_GEN_LDFLAGS="-LTCG:PGINSTRUMENT" - dnl XXX: PGO builds can fail with warnings treated as errors, - dnl specifically "no profile data available" appears to be - dnl treated as an error sometimes. This might be a consequence - dnl of using WARNINGS_AS_ERRORS in some modules, combined - dnl with the linker doing most of the work in the whole-program - dnl optimization/PGO case. I think it's probably a compiler bug, - dnl but we work around it here. - PROFILE_USE_CFLAGS="-GL -wd4624 -wd4952" - dnl XXX: should be -LTCG:PGOPTIMIZE, but that fails on libxul. - dnl Probably also a compiler bug, but what can you do? - PROFILE_USE_LDFLAGS="-LTCG:PGUPDATE" - LDFLAGS="$LDFLAGS -DYNAMICBASE" - fi - MOZ_JPEG_LIBS='$(call EXPAND_LIBNAME_PATH,jpeg32$(VERSION_NUMBER),$(DEPTH)/mozilla/jpeg)' - MOZ_PNG_LIBS='$(call EXPAND_LIBNAME_PATH,png,$(DEPTH)/mozilla/modules/libimg/png)' - AC_DEFINE(HAVE_SNPRINTF) - AC_DEFINE(_WINDOWS) - AC_DEFINE(WIN32) - AC_DEFINE(XP_WIN) - AC_DEFINE(XP_WIN32) - AC_DEFINE(HW_THREADS) - AC_DEFINE(STDC_HEADERS) - AC_DEFINE(NEW_H, ) - AC_DEFINE(WIN32_LEAN_AND_MEAN) - TARGET_MD_ARCH=win32 - _PLATFORM_DEFAULT_TOOLKIT='cairo-windows' - BIN_SUFFIX='.exe' - MOZ_USER_DIR="Mozilla" - - dnl Hardcode to win95 for now - cls - TARGET_NSPR_MDCPUCFG='\"md/_win95.cfg\"' - - dnl set NO_X11 defines here as the general check is skipped on win32 - no_x=yes - AC_DEFINE(NO_X11) - - case "$host" in - *-mingw*) - MOZ_BUILD_ROOT=`cd $MOZ_BUILD_ROOT && pwd -W` - if test -n "$L10NBASEDIR"; then - L10NBASEDIR=`cd $L10NBASEDIR && pwd -W` - fi - ;; - esac - - case "$host" in - *-mingw*) - - if test -z "$MOZ_TOOLS"; then - AC_MSG_ERROR([MOZ_TOOLS is not set]) - fi - - MOZ_TOOLS_DIR=`cd $MOZ_TOOLS && pwd -W` - if test "$?" != "0" -o -z "$MOZ_TOOLS_DIR"; then - AC_MSG_ERROR([cd \$MOZ_TOOLS failed. MOZ_TOOLS ==? $MOZ_TOOLS]) - fi - MOZ_TOOLS_BIN_DIR="$(cd "$MOZ_TOOLS_DIR/bin" && pwd)" - if test `echo ${PATH}: | grep -ic "$MOZ_TOOLS_BINDIR:"` = 0; then - AC_MSG_ERROR([\$MOZ_TOOLS\\bin must be in your path.]) - fi - ;; - esac - - - case "$host_os" in - cygwin*|msvc*|mks*) - AC_MSG_ERROR([Using a cygwin build environment is unsupported. Configure cannot check for presence of necessary headers. Please upgrade to MozillaBuild; see https://developer.mozilla.org/en/Windows_Build_Prerequisites.]) - ;; - esac - - case "$target" in - i*86-*) - if test "$HAVE_64BIT_OS"; then - AC_MSG_ERROR([You are targeting i386 but using the 64-bit compiler.]) - fi - - if test -n "$GNU_CC"; then - CFLAGS="$CFLAGS -mstackrealign -fno-keep-inline-dllexport" - CXXFLAGS="$CXXFLAGS -mstackrealign -fno-keep-inline-dllexport" - LDFLAGS="$LDFLAGS -Wl,--enable-stdcall-fixup" - else - AC_DEFINE(HAVE_STDCALL) - DSO_LDOPTS="$DSO_LDOPTS -MACHINE:X86" - LDFLAGS="$LDFLAGS -SAFESEH" - fi - - AC_DEFINE(_X86_) - ;; - alpha-*) - AC_DEFINE(_ALPHA_) - ;; - mips-*) - AC_DEFINE(_MIPS_) - ;; - 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 - - if test "$HAVE_64BIT_OS"; then - AC_DEFINE(_WIN64) - fi - ;; - -*-netbsd*) - DSO_CFLAGS='' - CFLAGS="$CFLAGS -Dunix" - CXXFLAGS="$CXXFLAGS -Dunix" - if $CC -E - -dM /dev/null; then - DLL_SUFFIX=".so" - DSO_PIC_CFLAGS='-fPIC -DPIC' - DSO_LDOPTS='-shared' - BIN_FLAGS='-Wl,--export-dynamic' - else - DSO_PIC_CFLAGS='-fPIC -DPIC' - DLL_SUFFIX=".so.1.0" - DSO_LDOPTS='-shared' - fi - # This will fail on a.out systems prior to 1.5.1_ALPHA. - MKSHLIB_FORCE_ALL='-Wl,--whole-archive' - MKSHLIB_UNFORCE_ALL='-Wl,--no-whole-archive' - if test "$LIBRUNPATH"; then - DSO_LDOPTS="-Wl,-R$LIBRUNPATH $DSO_LDOPTS" - fi - MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,lib$(LIBRARY_NAME)$(DLL_SUFFIX) -o $@' - MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,lib$(LIBRARY_NAME)$(DLL_SUFFIX) -o $@' - ;; - -*-openbsd*) - if test "$SO_VERSION"; then - DLL_SUFFIX=".so.$SO_VERSION" - else - DLL_SUFFIX=".so.1.0" - fi - MOZ_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin -Wl,-rpath-link,$(prefix)/lib -Wl,-rpath-link,$(if $(X11BASE),$(X11BASE),/usr/X11R6)/lib' - DSO_CFLAGS='' - DSO_PIC_CFLAGS='-fPIC' - DSO_LDOPTS='-shared -fPIC' - if test "$LIBRUNPATH"; then - DSO_LDOPTS="-R$LIBRUNPATH $DSO_LDOPTS" - fi - ;; - -*-os2*) - MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@' - MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@' - AC_DEFINE(OS2) - AC_DEFINE(XP_OS2) - AC_DEFINE(OS2EMX_PLAIN_CHAR) - AC_DEFINE(TCPV40HDRS) - DLL_PREFIX= - LIB_PREFIX= - LIB_SUFFIX=lib - BIN_SUFFIX=".exe" - DLL_SUFFIX=".dll" - IMPORT_LIB_SUFFIX=lib - DSO_PIC_CFLAGS= - AR=emxomfar - AR_FLAGS='r $@' - CFLAGS="$CFLAGS -Zomf" - CXXFLAGS="$CXXFLAGS -Zomf" - DSO_LDOPTS='-Zdll' - BIN_FLAGS='-Zlinker /ST:0x100000' - IMPLIB='emximp -o' - FILTER='true' - LDFLAGS='-Zmap' - WARNINGS_AS_ERRORS='-Werror' - MOZ_DEBUG_FLAGS="-g -fno-inline" - MOZ_OPTIMIZE_FLAGS="-O2" - MOZ_OPTIMIZE_LDFLAGS="-s -Zlinker /EXEPACK:2 -Zlinker /PACKCODE -Zlinker /PACKDATA" - DYNAMIC_XPCOM_LIBS='-L$(LIBXUL_DIST)/lib $(LIBXUL_DIST)/lib/xul.lib $(LIBXUL_DIST)/lib/xpcom_core.lib $(LIBXUL_DIST)/lib/mozalloc.lib' - LIBXUL_LIBS='-L$(LIBXUL_DIST)/lib $(LIBXUL_DIST)/lib/xul.lib $(LIBXUL_DIST)/lib/mozalloc.lib' - TARGET_MD_ARCH=os2 - _PLATFORM_DEFAULT_TOOLKIT="cairo-os2" - RC=rc.exe - RCFLAGS='-n' - MOZ_USER_DIR="Mozilla" - ZIP="$ZIP -X" - STRIP=lxlite - STRIP_FLAGS="/yua /ydd /yxd /ynl /anp /b- /cs+ /d /i- /ml1 /mr2 /mf2 /r+ /u+ /x- /zs:0 /zx /zd" - - if test "$MOZTOOLS"; then - MOZ_TOOLS_DIR=`echo $MOZTOOLS | sed -e 's|\\\\|/|g'` - else - AC_MSG_ERROR([MOZTOOLS is not set]) - fi - if test -n "$MOZ_OS2_HIGH_MEMORY"; then - DSO_LDOPTS="$DSO_LDOPTS -Zhigh-mem" - LDFLAGS="$LDFLAGS -Zhigh-mem" - MOZ_OPTIMIZE_LDFLAGS="$MOZ_OPTIMIZE_LDFLAGS -Zhigh-mem" - AC_DEFINE(MOZ_OS2_HIGH_MEMORY) - fi - - # GCC for OS/2 currently predefines these, but we don't want them - _DEFINES_CFLAGS="$_DEFINES_CFLAGS -Uunix -U__unix -U__unix__" - _DEFINES_CXXFLAGS="$_DEFINES_CXXFLAGS -Uunix -U__unix -U__unix__" - - AC_CACHE_CHECK(for __declspec(dllexport), - ac_os2_declspec, - [AC_TRY_COMPILE([__declspec(dllexport) void ac_os2_declspec(void) {}], - [return 0;], - ac_os2_declspec="yes", - ac_os2_declspec="no")]) - if test "$ac_os2_declspec" != "yes"; then - AC_MSG_ERROR([Compiler does not support __declspec(dllexport), install GCC-4.3.2 or newer]) - fi - ;; - -*-solaris*) - AC_DEFINE(SOLARIS) - TARGET_NSPR_MDCPUCFG='\"md/_solaris.cfg\"' - MOZ_FIX_LINK_PATHS= - # $ORIGIN/.. is for shared libraries under components/ to locate shared - # libraries one level up (e.g. libnspr4.so) - if test "$SOLARIS_SUNPRO_CC"; then - LDFLAGS="$LDFLAGS -z ignore -R '\$\$ORIGIN:\$\$ORIGIN/..' -z lazyload -z combreloc -z muldefs" - LIBS="-lCrun -lCstd -lc $LIBS" - NS_USE_NATIVE=1 - AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES) - CFLAGS="$CFLAGS -xlibmieee -xstrconst -xbuiltin=%all -D__FUNCTION__=__func__" - CXXFLAGS="$CXXFLAGS -xlibmieee -xbuiltin=%all -features=tmplife,tmplrefstatic,extensions,no%except -norunpath -D__FUNCTION__=__func__ -template=no%extdef" - LDFLAGS="-xildoff $LDFLAGS" - if test -z "$CROSS_COMPILE" -a -f /usr/lib/ld/map.noexstk; then - _SAVE_LDFLAGS=$LDFLAGS - LDFLAGS="-M /usr/lib/ld/map.noexstk $LDFLAGS" - AC_TRY_LINK([#include ], - [printf("Hello World\n");], - , - [LDFLAGS=$_SAVE_LDFLAGS]) - fi - MOZ_OPTIMIZE_FLAGS="-xO4" - MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_FLAGS) $(DSO_LDOPTS) -h $@ -o $@' - MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_FLAGS) $(DSO_LDOPTS) -h $@ -o $@' - MKSHLIB_FORCE_ALL='-z allextract' - MKSHLIB_UNFORCE_ALL='-z defaultextract' - DSO_LDOPTS='-G' - AR_LIST="$AR t" - AR_EXTRACT="$AR x" - AR_DELETE="$AR d" - AR='$(CXX) -xar' - AR_FLAGS='-o $@' - AS='/usr/ccs/bin/as' - ASFLAGS="$ASFLAGS -K PIC -L -P -D_ASM -D__STDC__=0" - AS_DASH_C_FLAG='' - TARGET_COMPILER_ABI="sunc" - CC_VERSION=`$CC -V 2>&1 | grep '^cc:' 2>/dev/null | $AWK -F\: '{ print $2 }'` - CXX_VERSION=`$CXX -V 2>&1 | grep '^CC:' 2>/dev/null | $AWK -F\: '{ print $2 }'` - AC_MSG_CHECKING([for Sun C++ compiler version >= 5.9]) - AC_LANG_SAVE - AC_LANG_CPLUSPLUS - AC_TRY_COMPILE([], - [#if (__SUNPRO_CC < 0x590) - #error "Denied" - #endif], - _BAD_COMPILER=,_BAD_COMPILER=1) - if test -n "$_BAD_COMPILER"; then - _res="no" - AC_MSG_ERROR([Sun C++ 5.9 (Sun Studio 12) or higher is required to build. Your compiler version is $CXX_VERSION .]) - else - _res="yes" - fi - AC_TRY_COMPILE([], - [#if (__SUNPRO_CC >= 0x5100) - #error "Sun C++ 5.10 or above" - #endif], - _ABOVE_SS12U1=,_ABOVE_SS12U1=1) - if test "$_ABOVE_SS12U1"; then - # disable xannotate - CXXFLAGS="$CXXFLAGS -xannotate=no" - fi - AC_MSG_RESULT([$_res]) - AC_LANG_RESTORE - else - LDFLAGS="$LDFLAGS -Wl,-z,ignore -Wl,-R,'\$\$ORIGIN:\$\$ORIGIN/..' -Wl,-z,lazyload -Wl,-z,combreloc -Wl,-z,muldefs" - LIBS="-lc $LIBS" - MKSHLIB_FORCE_ALL='-Wl,-z -Wl,allextract' - MKSHLIB_UNFORCE_ALL='-Wl,-z -Wl,defaultextract' - ASFLAGS="$ASFLAGS -fPIC" - DSO_LDOPTS='-shared' - WARNINGS_AS_ERRORS='-Werror' - _WARNINGS_CFLAGS='' - _WARNINGS_CXXFLAGS='' - if test "$OS_RELEASE" = "5.3"; then - AC_DEFINE(MUST_UNDEF_HAVE_BOOLEAN_AFTER_INCLUDES) - fi - fi - if test "$OS_RELEASE" = "5.5.1"; then - AC_DEFINE(NEED_USLEEP_PROTOTYPE) - fi - ;; - -*-sunos*) - DSO_LDOPTS='-Bdynamic' - MKSHLIB='-$(LD) $(DSO_LDOPTS) -o $@' - MKCSHLIB='-$(LD) $(DSO_LDOPTS) -o $@' - AC_DEFINE(SUNOS4) - AC_DEFINE(SPRINTF_RETURNS_STRING) - case "$(target_os)" in - sunos4.1*) - DLL_SUFFIX='.so.1.0' - ;; - esac - ;; - -*-os2*) - HOST_NSPR_MDCPUCFG='\"md/_os2.cfg\"' - ;; - -esac - -dnl Only one oddball right now (QNX), but this gives us flexibility -dnl if any other platforms need to override this in the future. -AC_DEFINE_UNQUOTED(D_INO,$DIRENT_INO) - -dnl ======================================================== -dnl Any platform that doesn't have MKSHLIB_FORCE_ALL defined -dnl by now will not have any way to link most binaries (tests -dnl as well as viewer, apprunner, etc.), because some symbols -dnl will be left out of the "composite" .so's by ld as unneeded. -dnl So, by defining NO_LD_ARCHIVE_FLAGS for these platforms, -dnl they can link in the static libs that provide the missing -dnl symbols. -dnl ======================================================== -NO_LD_ARCHIVE_FLAGS= -if test -z "$MKSHLIB_FORCE_ALL" -o -z "$MKSHLIB_UNFORCE_ALL"; then - NO_LD_ARCHIVE_FLAGS=1 -fi -case "$target" in -*-os2*) - NO_LD_ARCHIVE_FLAGS= - ;; -*-aix4.3*|*-aix5*) - NO_LD_ARCHIVE_FLAGS= - ;; -*-mingw*) - if test -z "$GNU_CC"; then - NO_LD_ARCHIVE_FLAGS= - fi - ;; -esac -AC_SUBST(NO_LD_ARCHIVE_FLAGS) - -dnl ======================================================== -dnl = Flags to strip unused symbols from .so components -dnl ======================================================== -case "$target" in - *-linux*|*-kfreebsd*-gnu) - MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,--version-script -Wl,$(BUILD_TOOLS)/gnu-ld-scripts/components-version-script' - ;; - *-solaris*) - if test -z "$GNU_CC"; then - MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-M $(BUILD_TOOLS)/gnu-ld-scripts/components-mapfile' - else - if test -z "$GCC_USE_GNU_LD"; then - MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,-M -Wl,$(BUILD_TOOLS)/gnu-ld-scripts/components-mapfile' - else - MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,--version-script -Wl,$(BUILD_TOOLS)/gnu-ld-scripts/components-version-script' - fi - fi - ;; - *-darwin*) - MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,-exported_symbols_list -Wl,$(BUILD_TOOLS)/gnu-ld-scripts/components-export-list' - ;; - *-mingw*) - if test -n "$GNU_CC"; then - MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,--version-script,$(BUILD_TOOLS)/gnu-ld-scripts/components-version-script' - fi - ;; -esac - -if test -z "$COMPILE_ENVIRONMENT"; then - SKIP_COMPILER_CHECKS=1 - SKIP_LIBRARY_CHECKS=1 -fi - -MOZ_COMPILER_OPTS -if test -z "$SKIP_COMPILER_CHECKS"; then -dnl Checks for typedefs, structures, and compiler characteristics. -dnl ======================================================== -AC_HEADER_STDC -AC_C_CONST -AC_TYPE_MODE_T -AC_TYPE_OFF_T -AC_TYPE_PID_T -AC_TYPE_SIZE_T -AC_LANG_CPLUSPLUS -AC_MSG_CHECKING(for __stdcall) -AC_CACHE_VAL(ac_cv___stdcall, - [AC_TRY_COMPILE([template struct foo; - template <> struct foo {}; - template <> struct foo {};], - [], - [ac_cv___stdcall=true], - [ac_cv___stdcall=false])]) -if test "$ac_cv___stdcall" = true ; then - AC_DEFINE(HAVE_STDCALL) - AC_MSG_RESULT(yes) -else - AC_MSG_RESULT(no) -fi -AC_LANG_C -AC_MSG_CHECKING(for ssize_t) -AC_CACHE_VAL(ac_cv_type_ssize_t, - [AC_TRY_COMPILE([#include - #include ], - [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_STRUCT_ST_BLKSIZE -AC_MSG_CHECKING(for siginfo_t) -AC_CACHE_VAL(ac_cv_siginfo_t, - [AC_TRY_COMPILE([#define _POSIX_C_SOURCE 199506L - #include ], - [siginfo_t* info;], - [ac_cv_siginfo_t=true], - [ac_cv_siginfo_t=false])]) -if test "$ac_cv_siginfo_t" = true ; then - AC_DEFINE(HAVE_SIGINFO_T) - AC_MSG_RESULT(yes) -else - AC_MSG_RESULT(no) -fi - -dnl Check for int64, uint, and uint_t. -dnl ======================================================== -AC_MSG_CHECKING(for int64) -AC_CACHE_VAL(ac_cv_int64, - [AC_TRY_COMPILE([#include - #include ], - [int64 foo = 0;], - [ac_cv_int64=true], - [ac_cv_int64=false])]) -if test "$ac_cv_int64" = true ; then - AC_DEFINE(HAVE_INT64) - AC_MSG_RESULT(yes) -else - AC_MSG_RESULT(no) -fi -AC_MSG_CHECKING(for uint) -AC_CACHE_VAL(ac_cv_uint, - [AC_TRY_COMPILE([#include - #include ], - [uint foo = 0;], - [ac_cv_uint=true], - [ac_cv_uint=false])]) -if test "$ac_cv_uint" = true ; then - AC_DEFINE(HAVE_UINT) - AC_MSG_RESULT(yes) -else - AC_MSG_RESULT(no) -fi -AC_MSG_CHECKING(for uint_t) -AC_CACHE_VAL(ac_cv_uint_t, - [AC_TRY_COMPILE([#include - #include ], - [uint_t foo = 0;], - [ac_cv_uint_t=true], - [ac_cv_uint_t=false])]) -if test "$ac_cv_uint_t" = true ; then - AC_DEFINE(HAVE_UINT_T) - AC_MSG_RESULT(yes) -else - AC_MSG_RESULT(no) -fi - -dnl On the gcc trunk (as of 2001-02-09) _GNU_SOURCE, and thus __USE_GNU, -dnl are defined when compiling C++ but not C. Since the result of this -dnl test is used only in C++, do it in C++. -AC_LANG_CPLUSPLUS - -AC_MSG_CHECKING(for uname.domainname) -AC_CACHE_VAL(ac_cv_have_uname_domainname_field, - [AC_TRY_COMPILE([#include ], - [ struct utsname *res; char *domain; - (void)uname(res); if (res != 0) { domain = res->domainname; } ], - [ac_cv_have_uname_domainname_field=true], - [ac_cv_have_uname_domainname_field=false])]) - -if test "$ac_cv_have_uname_domainname_field" = "true"; then - AC_DEFINE(HAVE_UNAME_DOMAINNAME_FIELD) - AC_MSG_RESULT(yes) -else - AC_MSG_RESULT(no) -fi - -AC_MSG_CHECKING(for uname.__domainname) -AC_CACHE_VAL(ac_cv_have_uname_us_domainname_field, - [AC_TRY_COMPILE([#include ], - [ struct utsname *res; char *domain; - (void)uname(res); if (res != 0) { domain = res->__domainname; } ], - [ac_cv_have_uname_us_domainname_field=true], - [ac_cv_have_uname_us_domainname_field=false])]) - -if test "$ac_cv_have_uname_us_domainname_field" = "true"; then - AC_DEFINE(HAVE_UNAME_US_DOMAINNAME_FIELD) - AC_MSG_RESULT(yes) -else - AC_MSG_RESULT(no) -fi - - -dnl Check whether we can use gcc's c++0x mode -AC_LANG_CPLUSPLUS - -if test "$GNU_CXX"; then - _SAVE_CXXFLAGS=$CXXFLAGS - CXXFLAGS="$CXXFLAGS -std=gnu++0x" - - AC_CACHE_CHECK(for gcc c++0x headers bug without rtti, - ac_cv_cxx0x_headers_bug, - [AC_TRY_COMPILE([#include ], [], - ac_cv_cxx0x_headers_bug="no", - ac_cv_cxx0x_headers_bug="yes")]) - CXXFLAGS="$_SAVE_CXXFLAGS" - if test "$ac_cv_cxx0x_headers_bug" = "no"; then - CXXFLAGS="$CXXFLAGS -std=gnu++0x" - fi -fi - -dnl Check for usable char16_t (2 bytes, unsigned) -dnl (we might not need the unsignedness check anymore) -AC_CACHE_CHECK(for usable char16_t (2 bytes, unsigned), - ac_cv_have_usable_char16_t, - [AC_TRY_COMPILE([$configure_static_assert_macros], - [CONFIGURE_STATIC_ASSERT(sizeof(char16_t) == 2); - CONFIGURE_STATIC_ASSERT(char16_t(-1) > char16_t(0)); - CONFIGURE_STATIC_ASSERT(sizeof((u"hello")[0]) == 2); - CONFIGURE_STATIC_ASSERT(sizeof(u'a') == 2); - CONFIGURE_STATIC_ASSERT(u'\xFFFF' > u'\x0')], - ac_cv_have_usable_char16_t="yes", - ac_cv_have_usable_char16_t="no")]) -if test "$ac_cv_have_usable_char16_t" = "yes"; then - AC_DEFINE(HAVE_CPP_CHAR16_T) - HAVE_CPP_CHAR16_T=1 -else - if test "$GNU_CXX"; then - CXXFLAGS="$_SAVE_CXXFLAGS" - fi -fi - -dnl Check for usable wchar_t (2 bytes, unsigned) -dnl (we really don't need the unsignedness check anymore) -dnl ======================================================== - -AC_CACHE_CHECK(for usable wchar_t (2 bytes, unsigned), - ac_cv_have_usable_wchar_v2, - [AC_TRY_COMPILE([#include - $configure_static_assert_macros], - [CONFIGURE_STATIC_ASSERT(sizeof(wchar_t) == 2); - CONFIGURE_STATIC_ASSERT((wchar_t)-1 > (wchar_t) 0)], - ac_cv_have_usable_wchar_v2="yes", - ac_cv_have_usable_wchar_v2="no")]) -if test "$ac_cv_have_usable_wchar_v2" = "yes"; then - AC_DEFINE(HAVE_CPP_2BYTE_WCHAR_T) - HAVE_CPP_2BYTE_WCHAR_T=1 -elif test "$ac_cv_have_usable_char16_t" != "yes"; then -dnl This is really gcc-only -dnl Do this test using CXX only since some versions of gcc -dnl 2.95-2.97 have a signed wchar_t in c++ only and some versions -dnl only have short-wchar support for c++. -dnl Note that we assume that mac & win32 have short wchar (see nscore.h) - - _SAVE_CXXFLAGS=$CXXFLAGS - CXXFLAGS="$CXXFLAGS -fshort-wchar" - - AC_CACHE_CHECK(for compiler -fshort-wchar option, - ac_cv_have_usable_wchar_option_v2, - [AC_TRY_LINK([#include - $configure_static_assert_macros], - [CONFIGURE_STATIC_ASSERT(sizeof(wchar_t) == 2); - CONFIGURE_STATIC_ASSERT((wchar_t)-1 > (wchar_t) 0)], - ac_cv_have_usable_wchar_option_v2="yes", - ac_cv_have_usable_wchar_option_v2="no")]) - - if test "$ac_cv_have_usable_wchar_option_v2" = "yes"; then - AC_DEFINE(HAVE_CPP_2BYTE_WCHAR_T) - HAVE_CPP_2BYTE_WCHAR_T=1 - else - CXXFLAGS=$_SAVE_CXXFLAGS - fi -fi - -AC_LANG_C - -dnl Check for .hidden assembler directive and visibility attribute. -dnl Borrowed from glibc configure.in -dnl =============================================================== -if test "$GNU_CC"; then - AC_CACHE_CHECK(for visibility(hidden) attribute, - ac_cv_visibility_hidden, - [cat > conftest.c </dev/null 2>&1; then - if egrep '\.(hidden|private_extern).*foo' conftest.s >/dev/null; then - ac_cv_visibility_hidden=yes - fi - fi - rm -f conftest.[cs] - ]) - if test "$ac_cv_visibility_hidden" = "yes"; then - AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE) - - AC_CACHE_CHECK(for visibility(default) attribute, - ac_cv_visibility_default, - [cat > conftest.c </dev/null 2>&1; then - if ! egrep '\.(hidden|private_extern).*foo' conftest.s >/dev/null; then - ac_cv_visibility_default=yes - fi - fi - rm -f conftest.[cs] - ]) - if test "$ac_cv_visibility_default" = "yes"; then - AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE) - - AC_CACHE_CHECK(for visibility pragma support, - ac_cv_visibility_pragma, - [cat > conftest.c </dev/null 2>&1; then - if egrep '\.(hidden|private_extern).*foo_hidden' conftest.s >/dev/null; then - if ! egrep '\.(hidden|private_extern).*foo_default' conftest.s > /dev/null; then - ac_cv_visibility_pragma=yes - fi - fi - fi - rm -f conftest.[cs] - ]) - if test "$ac_cv_visibility_pragma" = "yes"; then - AC_CACHE_CHECK(For gcc visibility bug with class-level attributes (GCC bug 26905), - ac_cv_have_visibility_class_bug, - [cat > conftest.c < /dev/null 2>&1 ; then - ac_cv_have_visibility_class_bug=yes - else - if test `egrep -c '@PLT|\\$stub' conftest.S` = 0; then - ac_cv_have_visibility_class_bug=yes - fi - fi - rm -rf conftest.{c,S} - ]) - - AC_CACHE_CHECK(For x86_64 gcc visibility bug with builtins (GCC bug 20297), - ac_cv_have_visibility_builtin_bug, - [cat > conftest.c < -#pragma GCC visibility pop - -__attribute__ ((visibility ("default"))) void Func() { - char c[[100]]; - memset(c, 0, sizeof(c)); -} -EOF - ac_cv_have_visibility_builtin_bug=no - if ! ${CC-cc} ${CFLAGS} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -O2 -S -o conftest.S conftest.c > /dev/null 2>&1 ; then - ac_cv_have_visibility_builtin_bug=yes - else - if test `grep -c "@PLT" conftest.S` = 0; then - ac_cv_visibility_builtin_bug=yes - fi - fi - rm -f conftest.{c,S} - ]) - if test "$ac_cv_have_visibility_builtin_bug" = "no" -a \ - "$ac_cv_have_visibility_class_bug" = "no"; then - VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(MOZILLA_SRCDIR)/config/gcc_hidden.h' - STL_FLAGS='-I$(DIST)/stl_wrappers' - else - VISIBILITY_FLAGS='-fvisibility=hidden' - fi # have visibility pragma bug - fi # have visibility pragma - fi # have visibility(default) attribute - fi # have visibility(hidden) attribute -fi # GNU_CC - -# visibility hidden flag for Sun Studio on Solaris -if test "$SOLARIS_SUNPRO_CC"; then -VISIBILITY_FLAGS='-xldscope=hidden' -fi # Sun Studio on Solaris - -AC_SUBST(VISIBILITY_FLAGS) - -dnl Checks for header files. -dnl ======================================================== -AC_HEADER_DIRENT -case "$target_os" in -freebsd*) -# for stuff like -lXshm - CPPFLAGS="${CPPFLAGS} ${X_CFLAGS}" - ;; -esac -AC_CHECK_HEADERS(sys/byteorder.h compat.h getopt.h) -AC_CHECK_HEADERS(sys/bitypes.h memory.h unistd.h) -AC_CHECK_HEADERS(gnu/libc-version.h nl_types.h) -AC_CHECK_HEADERS(malloc.h) -AC_CHECK_HEADERS(X11/XKBlib.h) - -dnl These are all the places some variant of statfs can be hiding. -AC_CHECK_HEADERS(sys/statvfs.h sys/statfs.h sys/vfs.h sys/mount.h) - -dnl Check whether the compiler supports the new-style C++ standard -dnl library headers (i.e. ) or needs the old "new.h" -AC_LANG_CPLUSPLUS -NEW_H=new.h -AC_CHECK_HEADER(new, [NEW_H=new]) -AC_DEFINE_UNQUOTED(NEW_H, <$NEW_H>) -AC_LANG_C - -AC_ARG_ENABLE(dtrace, - [ --enable-dtrace build with dtrace support if available (default=no)], - [enable_dtrace="yes"],) -if test "x$enable_dtrace" = "xyes"; then - AC_CHECK_HEADER(sys/sdt.h, HAVE_DTRACE=1) - if test -n "$HAVE_DTRACE"; then - AC_DEFINE(INCLUDE_MOZILLA_DTRACE) - else - AC_MSG_ERROR([dtrace enabled but sys/sdt.h not found]); - fi -fi -AC_SUBST(HAVE_DTRACE) - -case $target in -*-aix4.3*|*-aix5*) - ;; -*) - AC_CHECK_HEADERS(sys/cdefs.h) - ;; -esac - -dnl Checks for libraries. -dnl ======================================================== -case $target in -*-hpux11.*) - ;; -*) - AC_CHECK_LIB(c_r, gethostbyname_r) - ;; -esac - -dnl We don't want to link with libdl even if it's present on OS X, since -dnl it's not used and not part of the default installation. OS/2 has dlfcn -dnl in libc. -dnl We don't want to link against libm or libpthread on Darwin since -dnl they both are just symlinks to libSystem and explicitly linking -dnl against libSystem causes issues when debugging (see bug 299601). -case $target in -*-darwin*) - ;; -*-os2*) - ;; -*) - AC_CHECK_LIB(m, atan) - AC_CHECK_LIB(dl, dlopen, - AC_CHECK_HEADER(dlfcn.h, - LIBS="-ldl $LIBS" - )) - ;; -esac - -_SAVE_CFLAGS="$CFLAGS" -CFLAGS="$CFLAGS -D_GNU_SOURCE" -AC_CHECK_FUNCS(dladdr) -CFLAGS="$_SAVE_CFLAGS" - -if test ! "$GNU_CXX"; then - - case $target in - *-aix*) - AC_CHECK_LIB(C_r, demangle) - ;; - *) - AC_CHECK_LIB(C, demangle) - ;; - esac -fi - -dnl OS/2 has socket in libc. -case $target in -*-os2*) - ;; -*) - AC_CHECK_LIB(socket, socket) -esac - -XLDFLAGS="$X_LIBS" -XLIBS="$X_EXTRA_LIBS" - -dnl ======================================================== -dnl Checks for X libraries. -dnl Ordering is important. -dnl Xt is dependent upon SM as of X11R6 -dnl ======================================================== -if test "$no_x" = "yes"; then - AC_DEFINE(NO_X11) -else - AC_DEFINE_UNQUOTED(FUNCPROTO,15) - XLIBS="-lX11 $XLIBS" - _SAVE_LDFLAGS="$LDFLAGS" - LDFLAGS="$XLDFLAGS $LDFLAGS" - AC_CHECK_LIB(X11, XDrawLines, [X11_LIBS="-lX11"],, $XLIBS) - AC_CHECK_LIB(Xext, XextAddDisplay, [XEXT_LIBS="-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"],, $X_PRE_LIBS $XT_LIBS $XLIBS) - ]) - - # AIX needs the motif library linked before libXt to prevent - # crashes in plugins linked against Motif - Bug #98892 - case "${target_os}" in - aix*) - XT_LIBS="-lXm $XT_LIBS" - ;; - esac - - LDFLAGS="$_SAVE_LDFLAGS" -fi # $no_x - -AC_SUBST(XCFLAGS) -AC_SUBST(XLDFLAGS) -AC_SUBST(XLIBS) -AC_SUBST(XT_LIBS) - -dnl ======================================================== -dnl = pthread support -dnl = Start by checking whether the system support pthreads -dnl ======================================================== -case "$target_os" in -darwin*) - USE_PTHREADS=1 - ;; -*) - MOZ_CHECK_PTHREADS(pthreads, - USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lpthreads", - MOZ_CHECK_PTHREADS(pthread, - USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lpthread", - MOZ_CHECK_PTHREADS(c_r, - USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lc_r", - MOZ_CHECK_PTHREADS(c, - 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 "$USE_PTHREADS"x = x; then - AC_MSG_ERROR([ --with-pthreads specified for a system without pthread support ]); -fi], - USE_PTHREADS= - _PTHREAD_LDFLAGS= -) - -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 -lc_r, so don't specify it explicitly. - if test "$ac_cv_have_dash_pthread" = "yes"; then - _PTHREAD_LDFLAGS="-pthread" - else - _PTHREAD_LDFLAGS="-lc_r" - 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) - AC_DEFINE(_REENTRANT) - ;; - - *-aix4.3*|*-aix5*) - AC_DEFINE(_REENTRANT) - ;; - - *-hpux11.*) - AC_DEFINE(_REENTRANT) - ;; - - *-*-solaris*) - AC_DEFINE(_REENTRANT) - if test "$SOLARIS_SUNPRO_CC"; then - CFLAGS="$CFLAGS -mt" - CXXFLAGS="$CXXFLAGS -mt" - fi - ;; - esac - LDFLAGS="${_PTHREAD_LDFLAGS} ${LDFLAGS}" -fi - -dnl ======================================================== -dnl See if mmap sees writes -dnl For cross compiling, just define it as no, which is a safe default -dnl ======================================================== -AC_MSG_CHECKING(whether mmap() sees write()s) - -changequote(,) -mmap_test_prog=' - #include - #include - #include - #include - #include - #include - - char fname[] = "conftest.file"; - char zbuff[1024]; /* Fractional page is probably worst case */ - - int main() { - char *map; - int fd; - int i; - unlink(fname); - fd = open(fname, O_RDWR | O_CREAT, 0660); - if(fd<0) return 1; - unlink(fname); - write(fd, zbuff, sizeof(zbuff)); - lseek(fd, 0, SEEK_SET); - map = (char*)mmap(0, sizeof(zbuff), PROT_READ, MAP_SHARED, fd, 0); - if(map==(char*)-1) return 2; - for(i=0; fname[i]; i++) { - int rc = write(fd, &fname[i], 1); - if(map[i]!=fname[i]) return 4; - } - return 0; - } -' -changequote([,]) - -AC_TRY_RUN($mmap_test_prog , result="yes", result="no", result="yes") - -AC_MSG_RESULT("$result") - -if test "$result" = "no"; then - AC_DEFINE(MMAP_MISSES_WRITES) -fi - - -dnl Checks for library functions. -dnl ======================================================== -AC_PROG_GCC_TRADITIONAL -AC_FUNC_MEMCMP -AC_CHECK_FUNCS(random strerror lchown fchmod snprintf statvfs memmove rint stat64 lstat64 truncate64 statvfs64) -AC_CHECK_FUNCS(flockfile getpagesize) -AC_CHECK_FUNCS(localtime_r strtok_r) - -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 ], - [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 ], - [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, - [AC_TRY_LINK([ - #ifdef linux - #define _BSD_SOURCE 1 - #endif - #include - ], - [int foo = res_ninit(&_res);], - [ac_cv_func_res_ninit=yes], - [ac_cv_func_res_ninit=no]) - ]) - -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 -AC_CACHE_CHECK( - [for gnu_get_libc_version()], - ac_cv_func_gnu_get_libc_version, - [AC_TRY_LINK([ - #ifdef HAVE_GNU_LIBC_VERSION_H - #include - #endif - ], - [const char *glibc_version = gnu_get_libc_version();], - [ac_cv_func_gnu_get_libc_version=yes], - [ac_cv_func_gnu_get_libc_version=no] - )] - ) - -if test "$ac_cv_func_gnu_get_libc_version" = "yes"; then - AC_DEFINE(HAVE_GNU_GET_LIBC_VERSION) -fi - -case $target_os in - os2*|mingw*|darwin*) - ;; - *) - -AC_CHECK_LIB(c, iconv, [_ICONV_LIBS="$_ICONV_LIBS"], - AC_CHECK_LIB(iconv, iconv, [_ICONV_LIBS="$_ICONV_LIBS -liconv"], - AC_CHECK_LIB(iconv, libiconv, [_ICONV_LIBS="$_ICONV_LIBS -liconv"]))) -_SAVE_LIBS=$LIBS -LIBS="$LIBS $_ICONV_LIBS" -AC_CACHE_CHECK( - [for iconv()], - ac_cv_func_iconv, - [AC_TRY_LINK([ - #include - #include - ], - [ - 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) - DYNAMIC_XPCOM_LIBS="$DYNAMIC_XPCOM_LIBS $_ICONV_LIBS" - LIBXUL_LIBS="$LIBXUL_LIBS $_ICONV_LIBS" - LIBICONV="$_ICONV_LIBS" - AC_CACHE_CHECK( - [for iconv() with const input], - ac_cv_func_const_iconv, - [AC_TRY_COMPILE([ - #include - #include - ], - [ - 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 - -AM_LANGINFO_CODESET - -AC_LANG_C - -dnl ********************** -dnl *** va_copy checks *** -dnl ********************** -dnl we currently check for all three va_copy possibilities, so we get -dnl all results in config.log for bug reports. -AC_MSG_CHECKING(for an implementation of va_copy()) -AC_CACHE_VAL(ac_cv_va_copy,[ - AC_TRY_RUN([ - #include - 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); - } - int main() { f (0, 42); return 0; }], - ac_cv_va_copy=yes, - ac_cv_va_copy=no, - ac_cv_va_copy=no - ) -]) -AC_MSG_RESULT($ac_cv_va_copy) -AC_MSG_CHECKING(for an implementation of __va_copy()) -AC_CACHE_VAL(ac_cv___va_copy,[ - AC_TRY_RUN([ - #include - 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); - } - int main() { f (0, 42); return 0; }], - ac_cv___va_copy=yes, - ac_cv___va_copy=no, - ac_cv___va_copy=no - ) -]) -AC_MSG_RESULT($ac_cv___va_copy) -AC_MSG_CHECKING(whether va_lists can be copied by value) -AC_CACHE_VAL(ac_cv_va_val_copy,[ - AC_TRY_RUN([ - #include - 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); - } - int main() { f (0, 42); return 0; }], - ac_cv_va_val_copy=yes, - ac_cv_va_val_copy=no, - ac_cv_va_val_copy=yes - ) -]) -if test "x$ac_cv_va_copy" = "xyes"; then - AC_DEFINE(VA_COPY, va_copy) - AC_DEFINE(HAVE_VA_COPY) -elif 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 -AC_MSG_RESULT($ac_cv_va_val_copy) - -dnl Check for dll-challenged libc's. -dnl This check is apparently only needed for Linux. -case "$target" in - *-linux*) - dnl =================================================================== - _curdir=`pwd` - export _curdir - rm -rf conftest* _conftest - mkdir _conftest - cat >> conftest.C <<\EOF -#include -#include -#include -#ifdef _dl_loaded -void __dump_link_map(void) { - struct link_map *map = _dl_loaded; - while (NULL != map) {printf("0x%08x %s\n", map->l_addr, map->l_name); map = map->l_next;} -} -int main() { - dlopen("./conftest1.so",RTLD_LAZY); - dlopen("./../_conftest/conftest1.so",RTLD_LAZY); - dlopen("CURDIR/_conftest/conftest1.so",RTLD_LAZY); - dlopen("CURDIR/_conftest/../_conftest/conftest1.so",RTLD_LAZY); - __dump_link_map(); -} -#else -/* _dl_loaded isn't defined, so this should be either a libc5 (glibc1) system, or a glibc2 system that doesn't have the multiple load bug (i.e., RH6.0).*/ -int main() { printf("./conftest1.so\n"); } -#endif -EOF - - $PERL -p -i -e "s/CURDIR/\$ENV{_curdir}/g;" conftest.C - - cat >> conftest1.C <<\EOF -#include -void foo(void) {printf("foo in dll called\n");} -EOF - ${CXX-g++} -fPIC -c -g conftest1.C - ${CXX-g++} -shared -Wl,-h -Wl,conftest1.so -o conftest1.so conftest1.o - ${CXX-g++} -g conftest.C -o conftest -ldl - cp -f conftest1.so conftest _conftest - cd _conftest - if test `./conftest | grep conftest1.so | wc -l` -gt 1 - then - echo - echo "*** Your libc has a bug that can result in loading the same dynamic" - echo "*** library multiple times. This bug is known to be fixed in glibc-2.0.7-32" - echo "*** or later. However, if you choose not to upgrade, the only effect" - echo "*** will be excessive memory usage at runtime." - echo - fi - cd ${_curdir} - rm -rf conftest* _conftest - dnl =================================================================== - ;; -esac - -dnl =================================================================== -dnl ======================================================== -dnl Put your C++ language/feature checks below -dnl ======================================================== -AC_LANG_CPLUSPLUS - -HAVE_GCC3_ABI= -if test "$GNU_CC"; then - AC_CACHE_CHECK(for gcc 3.0 ABI, - ac_cv_gcc_three_abi, - [AC_TRY_COMPILE([], - [ -#if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */ - return 0; -#else -#error Not gcc3. -#endif - ], - ac_cv_gcc_three_abi="yes", - ac_cv_gcc_three_abi="no")]) - if test "$ac_cv_gcc_three_abi" = "yes"; then - TARGET_COMPILER_ABI="${TARGET_COMPILER_ABI-gcc3}" - HAVE_GCC3_ABI=1 - else - TARGET_COMPILER_ABI="${TARGET_COMPILER_ABI-gcc2}" - fi -fi -AC_SUBST(HAVE_GCC3_ABI) - - -AC_CACHE_CHECK(for C++ \"explicit\" keyword, - ac_cv_cpp_explicit, - [AC_TRY_COMPILE(class X { - public: explicit X(int i) : i_(i) {} - private: int i_; - };, - X x(3);, - ac_cv_cpp_explicit=yes, - ac_cv_cpp_explicit=no)]) -if test "$ac_cv_cpp_explicit" = yes ; then - AC_DEFINE(HAVE_CPP_EXPLICIT) -fi - -AC_CACHE_CHECK(for C++ \"typename\" keyword, - ac_cv_cpp_typename, - [AC_TRY_COMPILE(class param { - public: - typedef unsigned long num_type; - }; - - template class tplt { - public: - typedef typename T::num_type t_num_type; - t_num_type foo(typename T::num_type num) { - return num; - } - };, - tplt A; - A.foo(0);, - ac_cv_cpp_typename=yes, - ac_cv_cpp_typename=no)]) -if test "$ac_cv_cpp_typename" = yes ; then - AC_DEFINE(HAVE_CPP_TYPENAME) -fi - -dnl Check for support of modern template specialization syntax -dnl Test code and requirement from scc@netscape.com. -dnl Autoconf cut-and-paste job by waterson@netscape.com -AC_CACHE_CHECK(for modern C++ template specialization syntax support, - ac_cv_cpp_modern_specialize_template_syntax, - [AC_TRY_COMPILE(template struct X { int a; }; - class Y {}; - template <> struct X { double a; };, - X int_x; - X y_x;, - ac_cv_cpp_modern_specialize_template_syntax=yes, - ac_cv_cpp_modern_specialize_template_syntax=no)]) -if test "$ac_cv_cpp_modern_specialize_template_syntax" = yes ; then - AC_DEFINE(HAVE_CPP_MODERN_SPECIALIZE_TEMPLATE_SYNTAX) -fi - - -dnl Some compilers support only full specialization, and some don't. -AC_CACHE_CHECK(whether partial template specialization works, - ac_cv_cpp_partial_specialization, - [AC_TRY_COMPILE(template class Foo {}; - template class Foo {};, - return 0;, - ac_cv_cpp_partial_specialization=yes, - ac_cv_cpp_partial_specialization=no)]) -if test "$ac_cv_cpp_partial_specialization" = yes ; then - AC_DEFINE(HAVE_CPP_PARTIAL_SPECIALIZATION) -fi - -dnl Some compilers have limited support for operators with templates; -dnl specifically, it is necessary to define derived operators when a base -dnl class's operator declaration should suffice. -AC_CACHE_CHECK(whether operators must be re-defined for templates derived from templates, - ac_cv_need_derived_template_operators, - [AC_TRY_COMPILE([template class Base { }; - template - Base operator+(const Base& lhs, const Base& rhs) { return lhs; } - template class Derived : public Base { };], - [Derived a, b; - Base c = a + b; - return 0;], - ac_cv_need_derived_template_operators=no, - ac_cv_need_derived_template_operators=yes)]) -if test "$ac_cv_need_derived_template_operators" = yes ; then - AC_DEFINE(NEED_CPP_DERIVED_TEMPLATE_OPERATORS) -fi - - -dnl Some compilers have trouble detecting that a template class -dnl that derives from another template is actually an instance -dnl of the base class. This test checks for that. -AC_CACHE_CHECK(whether we need to cast a derived template to pass as its base class, - ac_cv_need_cpp_template_cast_to_base, - [AC_TRY_COMPILE([template class Base { }; - template class Derived : public Base { }; - template int foo(const Base&) { return 0; }], - [Derived bar; return foo(bar);], - ac_cv_need_cpp_template_cast_to_base=no, - ac_cv_need_cpp_template_cast_to_base=yes)]) -if test "$ac_cv_need_cpp_template_cast_to_base" = yes ; then - AC_DEFINE(NEED_CPP_TEMPLATE_CAST_TO_BASE) -fi - -dnl Some compilers have trouble resolving the ambiguity between two -dnl functions whose arguments differ only by cv-qualifications. -AC_CACHE_CHECK(whether the compiler can resolve const ambiguities for templates, - ac_cv_can_resolve_const_ambiguity, - [AC_TRY_COMPILE([ - template class ptrClass { - public: T* ptr; - }; - - template T* a(ptrClass *arg) { - return arg->ptr; - } - - template - const T* a(const ptrClass *arg) { - return arg->ptr; - } - ], - [ ptrClass i; - a(&i); ], - ac_cv_can_resolve_const_ambiguity=yes, - ac_cv_can_resolve_const_ambiguity=no)]) -if test "$ac_cv_can_resolve_const_ambiguity" = no ; then - AC_DEFINE(CANT_RESOLVE_CPP_CONST_AMBIGUITY) -fi - -dnl -dnl We don't do exceptions on unix. The only reason this used to be here -dnl is that mozilla/xpcom/tests/TestCOMPtr.cpp has a test which uses -dnl exceptions. But, we turn exceptions off by default and this test breaks. -dnl So im commenting this out until someone writes some artificial -dnl intelligence to detect not only if the compiler has exceptions, but if -dnl they are enabled as well. -dnl -dnl AC_CACHE_CHECK(for C++ \"exceptions\", -dnl ac_cv_cpp_exceptions, -dnl [AC_TRY_COMPILE(class X { public: X() {} }; -dnl static void F() { throw X(); }, -dnl try { F(); } catch(X & e) { }, -dnl ac_cv_cpp_exceptions=yes, -dnl ac_cv_cpp_exceptions=no)]) -dnl if test $ac_cv_cpp_exceptions = yes ; then -dnl AC_DEFINE(HAVE_CPP_EXCEPTIONS) -dnl fi - -dnl Some compilers have marginal |using| support; for example, gcc-2.7.2.3 -dnl supports it well enough to allow us to use it to change access, but not -dnl to resolve ambiguity. The next two tests determine how well the |using| -dnl keyword is supported. -dnl -dnl Check to see if we can change access with |using|. Test both a -dnl legal and an illegal example. -AC_CACHE_CHECK(whether the C++ \"using\" keyword can change access, - ac_cv_cpp_access_changing_using2, - [AC_TRY_COMPILE( - class A { protected: int foo() { return 0; } }; - class B : public A { public: using A::foo; };, - B b; return b.foo();, - [AC_TRY_COMPILE( - class A { public: int foo() { return 1; } }; - class B : public A { private: using A::foo; };, - B b; return b.foo();, - ac_cv_cpp_access_changing_using2=no, - ac_cv_cpp_access_changing_using2=yes)], - ac_cv_cpp_access_changing_using2=no)]) -if test "$ac_cv_cpp_access_changing_using2" = yes ; then - AC_DEFINE(HAVE_CPP_ACCESS_CHANGING_USING) -fi - -dnl Check to see if we can resolve ambiguity with |using|. -AC_CACHE_CHECK(whether the C++ \"using\" keyword resolves ambiguity, - ac_cv_cpp_ambiguity_resolving_using, - [AC_TRY_COMPILE(class X { - public: int go(const X&) {return 3;} - int jo(const X&) {return 3;} - }; - class Y : public X { - public: int go(int) {return 2;} - int jo(int) {return 2;} - using X::jo; - private: using X::go; - };, - X x; Y y; y.jo(x);, - ac_cv_cpp_ambiguity_resolving_using=yes, - ac_cv_cpp_ambiguity_resolving_using=no)]) -if test "$ac_cv_cpp_ambiguity_resolving_using" = yes ; then - AC_DEFINE(HAVE_CPP_AMBIGUITY_RESOLVING_USING) -fi - -dnl Check to see if the |std| namespace is supported. If so, we'll want -dnl to qualify any standard library calls with "std::" to ensure that -dnl those functions can be resolved. -AC_CACHE_CHECK(for \"std::\" namespace, - ac_cv_cpp_namespace_std, - [AC_TRY_COMPILE([#include ], - [return std::min(0, 1);], - ac_cv_cpp_namespace_std=yes, - ac_cv_cpp_namespace_std=no)]) -if test "$ac_cv_cpp_namespace_std" = yes ; then - AC_DEFINE(HAVE_CPP_NAMESPACE_STD) -fi - -dnl Older compilers are overly ambitious with respect to using the standard -dnl template library's |operator!=()| when |operator==()| is defined. In -dnl which case, defining |operator!=()| in addition to |operator==()| causes -dnl ambiguity at compile-time. This test checks for that case. -AC_CACHE_CHECK(whether standard template operator!=() is ambiguous, - ac_cv_cpp_unambiguous_std_notequal, - [AC_TRY_COMPILE([#include - struct T1 {}; - int operator==(const T1&, const T1&) { return 0; } - int operator!=(const T1&, const T1&) { return 0; }], - [T1 a,b; return a != b;], - ac_cv_cpp_unambiguous_std_notequal=unambiguous, - ac_cv_cpp_unambiguous_std_notequal=ambiguous)]) -if test "$ac_cv_cpp_unambiguous_std_notequal" = unambiguous ; then - AC_DEFINE(HAVE_CPP_UNAMBIGUOUS_STD_NOTEQUAL) -fi - - -AC_CACHE_CHECK(for C++ reinterpret_cast, - ac_cv_cpp_reinterpret_cast, - [AC_TRY_COMPILE(struct X { int i; }; - struct Y { int i; };, - X x; X*const z = &x;Y*y = reinterpret_cast(z);, - ac_cv_cpp_reinterpret_cast=yes, - ac_cv_cpp_reinterpret_cast=no)]) -if test "$ac_cv_cpp_reinterpret_cast" = yes ; then - AC_DEFINE(HAVE_CPP_NEW_CASTS) -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(subx))) || - (((void*)&mdo != (void*)suby) && - ((void*)&mdo == dynamic_cast(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 - - -dnl note that this one is reversed - if the test fails, then -dnl we require implementations of unused virtual methods. Which -dnl really blows because it means we'll have useless vtable -dnl bloat. -AC_CACHE_CHECK(whether C++ requires implementation of unused virtual methods, - ac_cv_cpp_unused_required, - [AC_TRY_LINK(class X {private: virtual void never_called();};, - X x;, - ac_cv_cpp_unused_required=no, - ac_cv_cpp_unused_required=yes)]) -if test "$ac_cv_cpp_unused_required" = yes ; then - AC_DEFINE(NEED_CPP_UNUSED_IMPLEMENTATIONS) -fi - - -dnl Some compilers have trouble comparing a constant reference to a templatized -dnl class to zero, and require an explicit operator==() to be defined that takes -dnl an int. This test separates the strong from the weak. - -AC_CACHE_CHECK(for trouble comparing to zero near std::operator!=(), - ac_cv_trouble_comparing_to_zero, - [AC_TRY_COMPILE([#include - template class Foo {}; - class T2; - template int operator==(const T2*, const T&) { return 0; } - template int operator!=(const T2*, const T&) { return 0; }], - [Foo f; return (0 != f);], - ac_cv_trouble_comparing_to_zero=no, - ac_cv_trouble_comparing_to_zero=yes)]) -if test "$ac_cv_trouble_comparing_to_zero" = yes ; then - AC_DEFINE(HAVE_CPP_TROUBLE_COMPARING_TO_ZERO) -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 -if test "$ac_cv_thread_keyword" = yes; 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++ - # See bug 788270 - case "${target}" in - mips*-*) - : - ;; - *-openbsd*) - : - ;; - *) - AC_DEFINE(HAVE_THREAD_TLS_KEYWORD) - ;; - esac -fi - -dnl Check for the existence of various allocation headers/functions - -MALLOC_H= -AC_CHECK_HEADER(malloc.h, [MALLOC_H=malloc.h]) -if test "$MALLOC_H" = ""; then - AC_CHECK_HEADER(malloc/malloc.h, [MALLOC_H=malloc/malloc.h]) - if test "$MALLOC_H" = ""; then - AC_CHECK_HEADER(sys/malloc.h, [MALLOC_H=sys/malloc.h]) - fi -fi -if test "$MALLOC_H" != ""; then - AC_DEFINE_UNQUOTED(MALLOC_H, <$MALLOC_H>) -fi - -MOZ_ALLOCATING_FUNCS="strndup posix_memalign memalign valloc" -AC_CHECK_FUNCS(strndup posix_memalign memalign valloc) - -dnl See if compiler supports some gcc-style attributes - -AC_CACHE_CHECK(for __attribute__((always_inline)), - ac_cv_attribute_always_inline, - [AC_TRY_COMPILE([], - [inline void f(void) __attribute__((always_inline));], - ac_cv_attribute_always_inline=yes, - ac_cv_attribute_always_inline=no)]) - -AC_CACHE_CHECK(for __attribute__((malloc)), - ac_cv_attribute_malloc, - [AC_TRY_COMPILE([], - [void* f(int) __attribute__((malloc));], - ac_cv_attribute_malloc=yes, - ac_cv_attribute_malloc=no)]) - -AC_CACHE_CHECK(for __attribute__((warn_unused_result)), - ac_cv_attribute_warn_unused, - [AC_TRY_COMPILE([], - [int f(void) __attribute__((warn_unused_result));], - ac_cv_attribute_warn_unused=yes, - ac_cv_attribute_warn_unused=no)]) - -AC_CACHE_CHECK(for __attribute__((noreturn)), - ac_cv_attribute_noreturn, - [AC_TRY_COMPILE([], - [void f(void) __attribute__((noreturn));], - ac_cv_attribute_noreturn=yes, - ac_cv_attribute_noreturn=no)]) - -dnl End of C++ language/feature checks -AC_LANG_C - -dnl ======================================================== -dnl = Internationalization checks -dnl ======================================================== -dnl -dnl Internationalization and Locale support is different -dnl on various UNIX platforms. Checks for specific i18n -dnl features go here. - -dnl check for LC_MESSAGES -AC_CACHE_CHECK(for LC_MESSAGES, - ac_cv_i18n_lc_messages, - [AC_TRY_COMPILE([#include ], - [int category = LC_MESSAGES;], - ac_cv_i18n_lc_messages=yes, - ac_cv_i18n_lc_messages=no)]) -if test "$ac_cv_i18n_lc_messages" = yes; then - AC_DEFINE(HAVE_I18N_LC_MESSAGES) -fi - -AC_HAVE_FUNCS(localeconv) -fi # ! SKIP_COMPILER_CHECKS - -TARGET_XPCOM_ABI= -if test -n "${CPU_ARCH}" -a -n "${TARGET_COMPILER_ABI}"; then - TARGET_XPCOM_ABI="${CPU_ARCH}-${TARGET_COMPILER_ABI}" -fi - -dnl Mozilla specific options -dnl ======================================================== -dnl The macros used for command line options -dnl are defined in build/autoconf/altoptions.m4. - -dnl If the compiler supports these attributes, define them as -dnl convenience macros. -if test "$ac_cv_attribute_always_inline" = yes ; then - AC_DEFINE(NS_ALWAYS_INLINE, [__attribute__((always_inline))]) -else - AC_DEFINE(NS_ALWAYS_INLINE,) -fi - -if test "$ac_cv_attribute_malloc" = yes ; then - AC_DEFINE(NS_ATTR_MALLOC, [__attribute__((malloc))]) -else - AC_DEFINE(NS_ATTR_MALLOC,) -fi - -if test "$ac_cv_attribute_warn_unused" = yes ; then - AC_DEFINE(NS_WARN_UNUSED_RESULT, [__attribute__((warn_unused_result))]) -else - AC_DEFINE(NS_WARN_UNUSED_RESULT,) -fi - -if test "$ac_cv_attribute_noreturn" = yes ; then - AC_DEFINE(NS_NORETURN, [__attribute__((noreturn))]) -else - AC_DEFINE(NS_NORETURN,) -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) - AC_DEFINE(HAVE_LOCALECONV) -fi # SKIP_COMPILER_CHECKS - - -dnl ======================================================== -dnl = -dnl = Check for external package dependencies -dnl = -dnl ======================================================== -MOZ_ARG_HEADER(External Packages) - -MOZ_ARG_WITH_STRING(libxul-sdk, -[ --with-libxul-sdk=PFX Use the libXUL SDK at ], - LIBXUL_SDK_DIR=$withval) - -if test "$LIBXUL_SDK_DIR" = "yes"; then - AC_MSG_ERROR([--with-libxul-sdk must specify a path]) -elif test -n "$LIBXUL_SDK_DIR" -a "$LIBXUL_SDK_DIR" != "no"; then - LIBXUL_SDK=`cd "$LIBXUL_SDK_DIR" && pwd` - - if test ! -f "$LIBXUL_SDK/include/xpcom-config.h"; then - AC_MSG_ERROR([$LIBXUL_SDK/include/xpcom-config.h doesn't exist]) - fi - -fi -AC_SUBST(LIBXUL_SDK) - -if test -n "$LIBXUL_SDK"; then - LIBXUL_DIST="$LIBXUL_SDK" -else - LIBXUL_DIST="$MOZ_BUILD_ROOT/mozilla/dist" -fi -AC_SUBST(LIBXUL_DIST) - -SYSTEM_LIBXUL= - -MOZ_ARG_WITH_BOOL(system-libxul, -[ --with-system-libxul Use system installed libxul SDK], - SYSTEM_LIBXUL=1) - -dnl ======================================================== -dnl = If NSPR was not detected in the system, -dnl = use the one in the source tree (mozilla/nsprpub) -dnl ======================================================== -MOZ_ARG_WITH_BOOL(system-nspr, -[ --with-system-nspr Use system installed NSPR], - _USE_SYSTEM_NSPR=1 ) - -if test -n "$_USE_SYSTEM_NSPR"; then - AM_PATH_NSPR(4.9.3, [MOZ_NATIVE_NSPR=1], [AC_MSG_ERROR([you don't have NSPR installed or your version is too old])]) -fi - -if test -n "$MOZ_NATIVE_NSPR"; then - _SAVE_CFLAGS=$CFLAGS - CFLAGS="$CFLAGS $NSPR_CFLAGS" - AC_TRY_COMPILE([#include "prlog.h"], - [#ifndef PR_STATIC_ASSERT - #error PR_STATIC_ASSERT not defined - #endif], - [MOZ_NATIVE_NSPR=1], - AC_MSG_ERROR([system NSPR does not support PR_STATIC_ASSERT])) - CFLAGS=$_SAVE_CFLAGS -else - if test "$OS_ARCH" = "WINNT"; then - NSPR_CFLAGS="-I${LIBXUL_DIST}/include/nspr" - if test -n "$GNU_CC"; then - NSPR_LIBS="-L${LIBXUL_DIST}/lib -lnspr${NSPR_VERSION} -lplc${NSPR_VERSION} -lplds${NSPR_VERSION}" - else - NSPR_LIBS="${LIBXUL_DIST}/lib/nspr${NSPR_VERSION}.lib ${LIBXUL_DIST}/lib/plc${NSPR_VERSION}.lib ${LIBXUL_DIST}/lib/plds${NSPR_VERSION}.lib " - fi - else - NSPR_CFLAGS='`$(LIBXUL_DIST)/sdk/bin/nspr-config --prefix='${LIBXUL_DIST}' --includedir='${LIBXUL_DIST}'/include/nspr --cflags`' - NSPR_LIBS='`$(LIBXUL_DIST)/sdk/bin/nspr-config --prefix='${LIBXUL_DIST}' --libdir='${LIBXUL_DIST}'/lib --libs`' - fi -fi - -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.14, [MOZ_NATIVE_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])]) -fi - -if test -n "$MOZ_NATIVE_NSS"; then - NSS_LIBS="$NSS_LIBS -lcrmf" -else - NSS_CFLAGS='-I$(LIBXUL_DIST)/include/nss' - NSS_DEP_LIBS="\ - \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)crmf.\$(LIB_SUFFIX) \ - \$(LIBXUL_DIST)/lib/\$(DLL_PREFIX)smime$NSS_VERSION\$(DLL_SUFFIX) \ - \$(LIBXUL_DIST)/lib/\$(DLL_PREFIX)ssl$NSS_VERSION\$(DLL_SUFFIX) \ - \$(LIBXUL_DIST)/lib/\$(DLL_PREFIX)nss$NSS_VERSION\$(DLL_SUFFIX) \ - \$(LIBXUL_DIST)/lib/\$(DLL_PREFIX)nssutil$NSS_VERSION\$(DLL_SUFFIX)" - - if test -z "$GNU_CC" -a "$OS_ARCH" = "WINNT" -o "$OS_ARCH" = "OS2"; then - NSS_LIBS="\ - \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)crmf.\$(LIB_SUFFIX) \ - \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)smime$NSS_VERSION.\$(LIB_SUFFIX) \ - \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)ssl$NSS_VERSION.\$(LIB_SUFFIX) \ - \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)nss$NSS_VERSION.\$(LIB_SUFFIX) \ - \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)nssutil$NSS_VERSION.\$(LIB_SUFFIX)" - else - NSS_LIBS='$(LIBS_DIR)'" -lcrmf -lsmime$NSS_VERSION -lssl$NSS_VERSION -lnss$NSS_VERSION -lnssutil$NSS_VERSION" - fi -fi - -if test -z "$SKIP_LIBRARY_CHECKS"; then -dnl system JPEG support -dnl ======================================================== -MOZ_ARG_WITH_STRING(system-jpeg, -[ --with-system-jpeg[=PFX] - Use system libjpeg [installed at prefix PFX]], - JPEG_DIR=$withval) - -_SAVE_CFLAGS=$CFLAGS -_SAVE_LDFLAGS=$LDFLAGS -_SAVE_LIBS=$LIBS -if test -n "${JPEG_DIR}" -a "${JPEG_DIR}" != "yes"; then - CFLAGS="-I${JPEG_DIR}/include $CFLAGS" - LDFLAGS="-L${JPEG_DIR}/lib $LDFLAGS" -fi -if test -z "$JPEG_DIR" -o "$JPEG_DIR" = no; then - MOZ_NATIVE_JPEG= -else - AC_CHECK_LIB(jpeg, jpeg_destroy_compress, [MOZ_NATIVE_JPEG=1 MOZ_JPEG_LIBS="-ljpeg"], MOZ_NATIVE_JPEG=) -fi - -if test "$MOZ_NATIVE_JPEG" = 1; then - AC_TRY_COMPILE([ #include - #include - #include ], - [ #if JPEG_LIB_VERSION < $MOZJPEG - #error "Insufficient JPEG library version ($MOZJPEG required)." - #endif - #ifndef JCS_EXTENSIONS - #error "libjpeg-turbo JCS_EXTENSIONS required" - #endif - ], - MOZ_NATIVE_JPEG=1, - AC_MSG_ERROR([Insufficient JPEG library version for --with-system-jpeg])) -fi -CFLAGS=$_SAVE_CFLAGS -LDFLAGS=$_SAVE_LDFLAGS -LIBS=$_SAVE_LIBS - -if test -n "${JPEG_DIR}" -a -d "${JPEG_DIR}" -a "$MOZ_NATIVE_JPEG" = 1; then - MOZ_JPEG_CFLAGS="-I${JPEG_DIR}/include" - MOZ_JPEG_LIBS="-L${JPEG_DIR}/lib ${MOZ_JPEG_LIBS}" -fi -fi # SKIP_LIBRARY_CHECKS - -dnl system ZLIB support -dnl ======================================================== - -MOZ_ZLIB_CHECK([1.2.3]) - -if test "$MOZ_NATIVE_ZLIB" != 1; then - MOZ_ZLIB_CFLAGS= - MOZ_ZLIB_LIBS='$(call EXPAND_LIBNAME_PATH,mozz,$(DEPTH)/mozilla/modules/zlib/src)' -fi - -if test -z "$SKIP_LIBRARY_CHECKS"; then -dnl system BZIP2 Support -dnl ======================================================== -MOZ_ARG_WITH_STRING(system-bz2, -[ --with-system-bz2[=PFX] - Use system libbz2 [installed at prefix PFX]], - BZ2_DIR=$withval) - -_SAVE_CFLAGS=$CFLAGS -_SAVE_LDFLAGS=$LDFLAGS -_SAVE_LIBS=$LIBS -if test -n "${BZ2_DIR}" -a "${BZ2_DIR}" != "yes"; then - CFLAGS="-I${BZ2_DIR}/include $CFLAGS" - LDFLAGS="-L${BZ2_DIR}/lib $LDFLAGS" -fi -if test -z "$BZ2_DIR" -o "$BZ2_DIR" = no; then - MOZ_NATIVE_BZ2= -else - AC_CHECK_LIB(bz2, BZ2_bzread, [MOZ_NATIVE_BZ2=1 MOZ_BZ2_LIBS="-lbz2"], - [MOZ_NATIVE_BZ2= MOZ_BZ2_CFLAGS= MOZ_BZ2_LIBS=]) -fi -CFLAGS=$_SAVE_CFLAGS -LDFLAGS=$_SAVE_LDFLAGS -LIBS=$_SAVE_LIBS - -if test "${BZ2_DIR}" -a -d "${BZ2_DIR}" -a "$MOZ_NATIVE_BZ2" = 1; then - MOZ_BZ2_CFLAGS="-I${BZ2_DIR}/include" - MOZ_BZ2_LIBS="-L${BZ2_DIR}/lib ${MOZ_BZ2_LIBS}" -fi - -dnl system PNG Support -dnl ======================================================== -MOZ_ARG_WITH_STRING(system-png, -[ --with-system-png[=PFX] - Use system libpng [installed at prefix PFX]], - PNG_DIR=$withval) - -_SAVE_CFLAGS=$CFLAGS -_SAVE_LDFLAGS=$LDFLAGS -_SAVE_LIBS=$LIBS -if test -n "${PNG_DIR}" -a "${PNG_DIR}" != "yes"; then - CFLAGS="-I${PNG_DIR}/include $CFLAGS" - LDFLAGS="-L${PNG_DIR}/lib $LDFLAGS" -fi -if test -z "$PNG_DIR" -o "$PNG_DIR" = no; then - MOZ_NATIVE_PNG= -else - AC_CHECK_LIB(png, png_get_valid, [MOZ_NATIVE_PNG=1 MOZ_PNG_LIBS="-lpng"], - AC_MSG_ERROR([--with-system-png requested but no working libpng found])) - AC_CHECK_LIB(png, png_get_acTL, , - AC_MSG_ERROR([--with-system-png won't work because the system's libpng doesn't have APNG support]), - $_SAVE_PNG_LIBS) -fi -if test "$MOZ_NATIVE_PNG" = 1; then - AC_TRY_COMPILE([ #include - #include - #include ], - [ #if PNG_LIBPNG_VER < $MOZPNG - #error "Insufficient libpng version ($MOZPNG required)." - #endif - #ifndef PNG_UINT_31_MAX - #error "Insufficient libpng version." - #endif ], - MOZ_NATIVE_PNG=1, - AC_MSG_ERROR([--with-system-png requested but no working libpng found])) -fi -CFLAGS=$_SAVE_CFLAGS -LDFLAGS=$_SAVE_LDFLAGS -LIBS=$_SAVE_LIBS - -if test "${PNG_DIR}" -a -d "${PNG_DIR}" -a "$MOZ_NATIVE_PNG" = 1; then - MOZ_PNG_CFLAGS="-I${PNG_DIR}/include" - MOZ_PNG_LIBS="-L${PNG_DIR}/lib ${MOZ_PNG_LIBS}" -fi - -fi # SKIP_LIBRARY_CHECKS - -dnl system HunSpell Support -dnl ======================================================== -MOZ_ARG_ENABLE_BOOL(system-hunspell, -[ --enable-system-hunspell Use system hunspell (located with pkgconfig)], - MOZ_NATIVE_HUNSPELL=1 ) - -if test -n "$MOZ_NATIVE_HUNSPELL"; then - PKG_CHECK_MODULES(MOZ_HUNSPELL, hunspell) -fi - -AC_SUBST(MOZ_NATIVE_HUNSPELL) dnl ======================================================== dnl = @@ -3776,53 +99,7 @@ dnl ======================================================== MOZ_ARG_HEADER(Application) -ENABLE_TESTS=1 MOZ_BRANDING_DIRECTORY= -MOZ_OFFICIAL_BRANDING= -MOZ_FEEDS=1 -MOZ_JSDEBUGGER=1 -MOZ_MORK= -MOZ_MORKREADER=1 -MOZ_AUTH_EXTENSION=1 -MOZ_NO_FAST_LOAD= -MOZ_OGG=1 -MOZ_SYDNEYAUDIO= -MOZ_WAVE=1 -MOZ_PANGO=1 -MOZ_PERMISSIONS=1 -MOZ_PLACES=1 -MOZ_PLAINTEXT_EDITOR_ONLY= -MOZ_PLUGINS=1 -MOZ_PREF_EXTENSIONS=1 -MOZ_PROFILELOCKING=1 -MOZ_PSM=1 -MOZ_RDF=1 -MOZ_SAFE_BROWSING= -MOZ_HELP_VIEWER= -MOZ_SPELLCHECK=1 -MOZ_STORAGE=1 -MOZ_TIMELINE= -MOZ_UI_LOCALE=en-US -MOZ_UNIVERSALCHARDET=1 -MOZ_URL_CLASSIFIER= -MOZ_XSLT_STANDALONE= -MOZ_XTF=1 -MOZ_XUL=1 -MOZ_ZIPWRITER=1 -NS_PRINTING=1 -NSS_DISABLE_DBM= -NECKO_WIFI=1 -BUILD_CTYPES=1 - - -case "$target_os" in -darwin*) - ACCESSIBILITY= - ;; -*) - ACCESSIBILITY=1 - ;; -esac MOZ_ARG_ENABLE_STRING(application, [ --enable-application=APP @@ -3832,21 +109,6 @@ MOZ_ARG_ENABLE_STRING(application, calendar (Sunbird)], [ MOZ_BUILD_APP=$enableval ] ) -MOZ_ARG_WITH_STRING(xulrunner-stub-name, -[ --with-xulrunner-stub-name=appname Create the xulrunner stub with the given name], - XULRUNNER_STUB_NAME=$withval) - -if test -z "$XULRUNNER_STUB_NAME"; then - case "$target_os" in - darwin*) - XULRUNNER_STUB_NAME=xulrunner - ;; - *) - XULRUNNER_STUB_NAME=xulrunner-stub - esac -fi -AC_SUBST(XULRUNNER_STUB_NAME) - AC_MSG_CHECKING([for application to build]) if test -z "$MOZ_BUILD_APP"; then AC_MSG_RESULT([mail]) @@ -3863,7 +125,8 @@ else fi fi -# Allow the application to influence configure with a confvars.sh script. +# Allow the application to influence configure with a confvars.sh script. We +# still need this for MOZ_BRANDING_DIRECTORY. AC_MSG_CHECKING([if app-specific confvars.sh exists]) if test -f "${srcdir}/${MOZ_BUILD_APP}/confvars.sh" ; then @@ -3873,244 +136,6 @@ else AC_MSG_RESULT([no]) fi -# Allow the application to provide a subconfigure script -if test -f "${srcdir}/${MOZ_BUILD_APP}/configure.in" ; then - do_output_subdirs() { - # XXX: This will be run by mozilla's configure for LDAP for us. - : - } - tmpscript=`$PYTHON -c 'import os, tempfile; print tempfile.mktemp(prefix="subscript.").replace(os.sep, "/")'` || exit 1 - m4 "${srcdir}/mozilla/build/autoconf/subconfigure.m4" \ - "${srcdir}/mozilla/build/autoconf/altoptions.m4" \ - "${srcdir}/${MOZ_BUILD_APP}/configure.in" > $tmpscript - . $tmpscript - rm -f $tmpscript -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 -suite) - AC_DEFINE(MOZ_SUITE) - ;; - -mail) - AC_DEFINE(MOZ_THUNDERBIRD) - ;; - -calendar) - AC_DEFINE(MOZ_SUNBIRD) - ;; -esac - -AC_SUBST(MOZ_BUILD_APP) -AC_SUBST(MOZ_SUITE) -AC_SUBST(MOZ_THUNDERBIRD) -AC_SUBST(MOZ_SUNBIRD) - -AC_DEFINE_UNQUOTED(MOZ_BUILD_APP,$MOZ_BUILD_APP) - -dnl ======================================================== -dnl = -dnl = Toolkit Options -dnl = -dnl ======================================================== -MOZ_ARG_HEADER(Toolkit Options) - - dnl ======================================================== - dnl = Select the default toolkit - dnl ======================================================== - MOZ_ARG_ENABLE_STRING(default-toolkit, - [ --enable-default-toolkit=TK - Select default toolkit - Platform specific defaults: - Mac OS X - cairo-cocoa - OS/2 - cairo-os2 - Win32/WinCE - cairo-windows - Gtk2 with DirectFB - cairo-gtk2-dfb - * - cairo-gtk2 - * - cairo-qt], - [ _DEFAULT_TOOLKIT=$enableval ], - [ _DEFAULT_TOOLKIT=$_PLATFORM_DEFAULT_TOOLKIT]) - - if test "$_DEFAULT_TOOLKIT" = "cairo-windows" \ - -o "$_DEFAULT_TOOLKIT" = "cairo-gtk2" \ - -o "$_DEFAULT_TOOLKIT" = "cairo-gtk2-dfb" \ - -o "$_DEFAULT_TOOLKIT" = "cairo-gtk2-x11" \ - -o "$_DEFAULT_TOOLKIT" = "cairo-qt" \ - -o "$_DEFAULT_TOOLKIT" = "cairo-os2" \ - -o "$_DEFAULT_TOOLKIT" = "cairo-cocoa" - then - dnl nglayout only supports building with one toolkit, - dnl so ignore everything after the first comma (","). - MOZ_WIDGET_TOOLKIT=`echo "$_DEFAULT_TOOLKIT" | sed -e "s/,.*$//"` - else - AC_MSG_ERROR([You must specify a default toolkit (perhaps $_PLATFORM_DEFAULT_TOOLKIT).]) - fi - -dnl ======================================================== -dnl = Enable the toolkit as needed = -dnl ======================================================== - -case "$MOZ_WIDGET_TOOLKIT" in - -cairo-windows) - MOZ_WIDGET_TOOLKIT=windows - ;; - -cairo-gtk2|cairo-gtk2-x11) - MOZ_WIDGET_TOOLKIT=gtk2 - MOZ_ENABLE_GTK2=1 - - AC_DEFINE(MOZ_X11) - MOZ_X11=1 - - TK_CFLAGS='$(MOZ_GTK2_CFLAGS)' - TK_LIBS='$(MOZ_GTK2_LIBS)' - AC_DEFINE(MOZ_WIDGET_GTK2) - ;; - -cairo-gtk2-dfb) - MOZ_WIDGET_TOOLKIT=gtk2 - MOZ_ENABLE_GTK2=1 - - AC_DEFINE(MOZ_DFB) - MOZ_DFB=1 - - TK_CFLAGS='$(MOZ_GTK2_CFLAGS)' - TK_LIBS='$(MOZ_GTK2_LIBS)' - AC_DEFINE(MOZ_WIDGET_GTK2) - if test "$no_x" != "yes"; then - AC_MSG_WARN([Disabling X when DirectFB is specified.]) - no_x=yes - fi - ;; - -cairo-qt) - MOZ_WIDGET_TOOLKIT=qt - MOZ_ENABLE_QT=1 - USE_ELF_DYNSTR_GC= - NS_PRINTING= - - AC_DEFINE(MOZ_X11) - MOZ_X11=1 - - TK_CFLAGS='$(MOZ_QT_CFLAGS)' - TK_LIBS='$(MOZ_QT_LIBS)' - AC_DEFINE(MOZ_WIDGET_QT) - ;; - -cairo-os2) - MOZ_WIDGET_TOOLKIT=os2 - TK_CFLAGS='$(MOZ_CAIRO_CFLAGS)' - TK_LIBS='$(MOZ_CAIRO_LIBS)' - ;; - -cairo-cocoa) - MOZ_WIDGET_TOOLKIT=cocoa - AC_DEFINE(MOZ_WIDGET_COCOA) - MOZ_USER_DIR="Mozilla" - AC_DEFINE(XP_MACOSX) - TK_LIBS='-framework QuartzCore -framework Carbon -framework AddressBook' - TK_CFLAGS="-DNO_X11" - LDFLAGS="$LDFLAGS -framework Cocoa -lobjc" - CFLAGS="$CFLAGS $TK_CFLAGS" - CXXFLAGS="$CXXFLAGS $TK_CFLAGS" - DYNAMIC_XPCOM_LIBS='$(LIBXUL_DIST)/bin/XUL -lxpcom_core -lmozalloc' - XPCOM_FROZEN_LDOPTS='$(LIBXUL_DIST)/bin/XUL -lmozalloc' - MOZ_FS_LAYOUT=bundle - ;; -esac - -if test "$COMPILE_ENVIRONMENT"; then - if test "$MOZ_ENABLE_GTK2"; then - if test "$MOZ_X11"; then - GDK_PACKAGES=gdk-x11-2.0 - elif test "$MOZ_DFB"; then - PKG_CHECK_MODULES(MOZ_DFB, directfb >= 1.1.0) - GDK_PACKAGES=directfb - fi - - PKG_CHECK_MODULES(MOZ_GTK2, gtk+-2.0 >= $GTK2_VERSION gtk+-unix-print-2.0 glib-2.0 gobject-2.0 $GDK_PACKAGES) - fi - -fi # COMPILE_ENVIRONMENT - -AC_SUBST(MOZ_FS_LAYOUT) - -dnl ======================================================== -dnl = startup-notification support module -dnl ======================================================== - -if test "$MOZ_ENABLE_GTK2" -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(MOZ_STARTUP_NOTIFICATION_CFLAGS) -AC_SUBST(MOZ_STARTUP_NOTIFICATION_LIBS) - -dnl ======================================================== -dnl = QT support -dnl ======================================================== -if test "$MOZ_ENABLE_QT" -then - PKG_CHECK_MODULES(MOZ_QT, QtGui QtNetwork QtCore QtOpenGL) -fi - -AC_SUBST(GTK_CONFIG) -AC_SUBST(TK_CFLAGS) -AC_SUBST(TK_LIBS) - -AC_SUBST(MOZ_ENABLE_GTK2) -AC_SUBST(MOZ_GTK2_CFLAGS) -AC_SUBST(MOZ_GTK2_LIBS) -AC_SUBST(MOZ_QT_CFLAGS) -AC_SUBST(MOZ_QT_LIBS) - -AC_SUBST(MOZ_DFB) -AC_SUBST(MOZ_X11) - -dnl ======================================================== -dnl = -dnl = Components & Features -dnl = -dnl ======================================================== -MOZ_ARG_HEADER(Components and Features) - -dnl ======================================================== -dnl = Localization -dnl ======================================================== -MOZ_ARG_ENABLE_STRING(ui-locale, -[ --enable-ui-locale=ab-CD - Select the user interface locale (default: en-US)], - MOZ_UI_LOCALE=$enableval ) -AC_SUBST(MOZ_UI_LOCALE) - dnl ======================================================== dnl = Trademarked Branding dnl ======================================================== @@ -4125,14 +150,8 @@ MOZ_ARG_ENABLE_BOOL(official-branding, AC_MSG_ERROR([You must specify MOZ_OFFICIAL_BRANDING_DIRECTORY to use --enable-official-branding.]) else MOZ_BRANDING_DIRECTORY=${MOZ_OFFICIAL_BRANDING_DIRECTORY} - MOZ_OFFICIAL_BRANDING=1 fi -], MOZ_OFFICIAL_BRANDING=) - -AC_SUBST(MOZ_OFFICIAL_BRANDING) -if test -n "$MOZ_OFFICIAL_BRANDING"; then - AC_DEFINE(MOZ_OFFICIAL_BRANDING) -fi +]) MOZ_ARG_WITH_STRING(branding, [ --with-branding=dir Use branding from the specified directory.], @@ -4147,2184 +166,16 @@ if test -f "${_topsrcdir}/$REAL_BRANDING_DIRECTORY/configure.sh"; then . "${_topsrcdir}/$REAL_BRANDING_DIRECTORY/configure.sh" fi -AC_SUBST(MOZ_BRANDING_DIRECTORY) - -dnl ======================================================== -dnl = Distribution ID -dnl ======================================================== -MOZ_ARG_WITH_STRING(distribution-id, -[ --with-distribution-id=ID Set distribution-specific id (default=org.mozilla)], -[ val=`echo $withval` - MOZ_DISTRIBUTION_ID="$val"]) - -if test -z "$MOZ_DISTRIBUTION_ID"; then - MOZ_DISTRIBUTION_ID="org.mozilla" -fi - -AC_DEFINE_UNQUOTED(MOZ_DISTRIBUTION_ID,"$MOZ_DISTRIBUTION_ID") -AC_SUBST(MOZ_DISTRIBUTION_ID) - -dnl ======================================================== -dnl complex text support off by default -dnl ======================================================== -MOZ_ARG_DISABLE_BOOL(pango, -[ --disable-pango Disable usage of Pango ], - MOZ_PANGO=, - MOZ_PANGO=1) - -dnl ======================================================== -dnl = Pango -dnl ======================================================== -if test "$MOZ_ENABLE_GTK2" -then - PKG_CHECK_MODULES(MOZ_PANGO, pango >= $PANGO_VERSION pangoft2 >= $PANGO_VERSION) - AC_SUBST(MOZ_PANGO_LIBS) -fi - -if test "$MOZ_ENABLE_QT" -then - if test "$MOZ_PANGO" - then - PKG_CHECK_MODULES(MOZ_PANGO, [pango >= $PANGO_VERSION pangoft2 >= $PANGO_VERSION], - [ - AC_SUBST(MOZ_PANGO_LIBS) - true # Needed not to have an empty block. - ], - [ - echo "Pango library not found, will use FT2 font engine" - MOZ_PANGO= - ]) - fi -fi - -dnl ======================================================== -dnl = GnomeVFS, GIO and GConf support module -dnl ======================================================== - -if test "$MOZ_X11" -then - dnl build the GIO extension by default only when the - dnl GTK2 toolkit is in use. - if test "$MOZ_ENABLE_GTK2" - then - MOZ_ENABLE_GIO=1 - MOZ_ENABLE_GCONF=1 - fi - - dnl ======================================================== - dnl = GnomeVFS support module - dnl ======================================================== - MOZ_ARG_ENABLE_BOOL(gnomevfs, - [ --enable-gnomevfs Enable GnomeVFS support (default: disabled)], - MOZ_ENABLE_GNOMEVFS=force, - MOZ_ENABLE_GNOMEVFS=) - - if test "$MOZ_ENABLE_GNOMEVFS" - then - PKG_CHECK_MODULES(MOZ_GNOMEVFS, gnome-vfs-2.0 >= $GNOMEVFS_VERSION gnome-vfs-module-2.0 >= $GNOMEVFS_VERSION,[ - MOZ_ENABLE_GNOMEVFS=1 - AC_DEFINE(MOZ_ENABLE_GNOMEVFS) - ],[ - if test "$MOZ_ENABLE_GNOMEVFS" = "force" - then - AC_MSG_ERROR([* * * Could not find gnome-vfs-module-2.0 >= $GNOMEVFS_VERSION]) - fi - MOZ_ENABLE_GNOMEVFS= - ]) - fi - - AC_SUBST(MOZ_ENABLE_GNOMEVFS) - - dnl ======================================================== - dnl = GIO support module - dnl ======================================================== - MOZ_ARG_DISABLE_BOOL(gio, - [ --disable-gio Disable GIO support], - MOZ_ENABLE_GIO=, - MOZ_ENABLE_GIO=force) - - if test "$MOZ_ENABLE_GIO" -a "$MOZ_ENABLE_GTK2" - then - PKG_CHECK_MODULES(MOZ_GIO, gio-2.0 >= $GIO_VERSION,[ - MOZ_ENABLE_GIO=1 - ],[ - if test "$MOZ_ENABLE_GIO" = "force" - then - AC_MSG_ERROR([* * * Could not find gio-2.0 >= $GIO_VERSION]) - fi - MOZ_ENABLE_GIO= - ]) - fi - - dnl ======================================================== - dnl = GConf support module - dnl ======================================================== - MOZ_ARG_DISABLE_BOOL(gconf, - [ --disable-gconf Disable Gconf support ], - MOZ_ENABLE_GCONF=, - MOZ_ENABLE_GCONF=force) - - if test "$MOZ_ENABLE_GCONF" - then - PKG_CHECK_MODULES(MOZ_GCONF, gconf-2.0 >= $GCONF_VERSION gobject-2.0 ,[ - MOZ_ENABLE_GCONF=1 - ],[ - MOZ_ENABLE_GCONF= - ]) - fi -fi - -dnl ======================================================== -dnl = libnotify support -dnl ======================================================== - -if test "$MOZ_ENABLE_GTK2" -then - MOZ_ENABLE_LIBNOTIFY=1 - - MOZ_ARG_DISABLE_BOOL(libnotify, - [ --disable-libnotify Disable libnotify support ], - MOZ_ENABLE_LIBNOTIFY=) -fi - -dnl ======================================================== -dnl = GNOME component (mozgnome) -dnl ======================================================== - -# The GNOME component is built if one of -# gnome-vfs, gio, gconf or libnotify is available. -if test "$MOZ_ENABLE_GCONF" || \ - test "$MOZ_ENABLE_GNOMEVFS" || \ - test "$MOZ_ENABLE_GIO" || \ - test "$MOZ_ENABLE_LIBNOTIFY"; then - MOZ_ENABLE_GNOME_COMPONENT=1 -else - MOZ_ENABLE_GNOME_COMPONENT= -fi -AC_SUBST(MOZ_ENABLE_GNOME_COMPONENT) - -dnl ======================================================== -dnl = dbus support -dnl ======================================================== - -if test "$MOZ_ENABLE_GTK2" -o "$MOZ_ENABLE_QT" -then - MOZ_ENABLE_DBUS=1 - - MOZ_ARG_DISABLE_BOOL(dbus, - [ --disable-dbus Disable dbus support ], - MOZ_ENABLE_DBUS=, - MOZ_ENABLE_DBUS=1) - - if test "$MOZ_ENABLE_DBUS" - then - PKG_CHECK_MODULES(MOZ_DBUS_GLIB, dbus-glib-1 >= $DBUS_VERSION) - AC_DEFINE(MOZ_ENABLE_DBUS) - fi -fi -AC_SUBST(MOZ_ENABLE_DBUS) -AC_SUBST(MOZ_DBUS_GLIB_LIBS) - -dnl ======================================================== -dnl = Build Personal Security Manager -dnl ======================================================== -MOZ_ARG_DISABLE_BOOL(crypto, -[ --disable-crypto Disable crypto support (Personal Security Manager)], - MOZ_PSM=, - MOZ_PSM=1 ) - -dnl ======================================================== -dnl = JS Debugger XPCOM component (js/jsd) -dnl ======================================================== -MOZ_ARG_DISABLE_BOOL(jsd, -[ --disable-jsd Disable JavaScript debug library], - MOZ_JSDEBUGGER=, - MOZ_JSDEBUGGER=1) - -dnl ======================================================== -dnl = Disable plugin support -dnl ======================================================== -MOZ_ARG_DISABLE_BOOL(plugins, -[ --disable-plugins Disable plugins support], - MOZ_PLUGINS=, - MOZ_PLUGINS=1) - -dnl ======================================================== -dnl = Disable building dbm -dnl ======================================================== -MOZ_ARG_DISABLE_BOOL(dbm, -[ --disable-dbm Disable building dbm], - NSS_DISABLE_DBM=1, - NSS_DISABLE_DBM=) - -dnl bi-directional support always on -IBMBIDI=1 -AC_DEFINE(IBMBIDI) - -dnl ======================================================== -dnl accessibility support on by default on all platforms -dnl except OS X. -dnl ======================================================== -MOZ_ARG_DISABLE_BOOL(accessibility, -[ --disable-accessibility Disable accessibility support (off by default on OS X)], - ACCESSIBILITY=, - ACCESSIBILITY=1 ) -if test "$ACCESSIBILITY"; then - AC_DEFINE(ACCESSIBILITY) -fi - -dnl ======================================================== -dnl Disable printing -dnl ======================================================== -MOZ_ARG_DISABLE_BOOL(printing, -[ --disable-printing Disable printing support], - NS_PRINTING=, - NS_PRINTING=1 ) - -if test "$MOZ_WIDGET_TOOLKIT" = "qt"; then - AC_MSG_WARN([Printing does not work with Qt at this time. Omitting printing support.]) - NS_PRINTING= -fi - -if test "$NS_PRINTING"; then - AC_DEFINE(NS_PRINTING) -fi - -dnl ======================================================== -dnl Libeditor can be build as plaintext-only, -dnl or as a full html and text editing component. -dnl We build both by default. -dnl ======================================================== -MOZ_ARG_ENABLE_BOOL(plaintext-editor-only, -[ --enable-plaintext-editor-only - Allow only plaintext editing], - MOZ_PLAINTEXT_EDITOR_ONLY=1, - MOZ_PLAINTEXT_EDITOR_ONLY= ) -dnl Note the #define is MOZILLA, not MOZ, for compat with the Mac build. -AC_SUBST(MOZ_PLAINTEXT_EDITOR_ONLY) - -dnl ======================================================== -dnl Composer is on by default. -dnl ======================================================== -MOZ_ARG_DISABLE_BOOL(composer, -[ --disable-composer Disable building of Composer], - MOZ_COMPOSER=, - MOZ_COMPOSER=1 ) -AC_SUBST(MOZ_COMPOSER) - - -dnl ======================================================== -dnl = Disable Fast Load -dnl ======================================================== -MOZ_ARG_DISABLE_BOOL(xpcom-fastload, -[ --disable-xpcom-fastload Disable XPCOM fastload support], - MOZ_NO_FAST_LOAD=1, - MOZ_NO_FAST_LOAD=) - -AC_SUBST(MOZ_NO_FAST_LOAD) - -if test -n "$MOZ_NO_FAST_LOAD"; then - AC_DEFINE(MOZ_NO_FAST_LOAD) -fi - -dnl ======================================================== -dnl = Disable Ogg Codecs -dnl ======================================================== -MOZ_ARG_DISABLE_BOOL(ogg, -[ --disable-ogg Disable Ogg Codec support], - MOZ_OGG=, - MOZ_OGG=1) - -if test -n "$MOZ_OGG"; then - MOZ_SYDNEYAUDIO=1 -fi - -dnl ======================================================== -dnl = Disable Wave decoder support -dnl ======================================================== -MOZ_ARG_DISABLE_BOOL(wave, -[ --disable-wave Disable Wave decoder support], - MOZ_WAVE=, - MOZ_WAVE=1) - -if test -n "$MOZ_WAVE"; then - MOZ_SYDNEYAUDIO=1 -fi - -dnl ======================================================== -dnl = Check alsa availability on Linux if using sydneyaudio -dnl ======================================================== - -dnl If using sydneyaudio with Linux, ensure that the alsa library is available -if test -n "$MOZ_SYDNEYAUDIO"; then - case "$target_os" in -linux*) - PKG_CHECK_MODULES(MOZ_ALSA, alsa, , - [echo "$MOZ_ALSA_PKG_ERRORS" - AC_MSG_ERROR([Need alsa for Ogg or Wave decoding on Linux. Disable with --disable-ogg --disable-wave.])]) - ;; - esac -fi -AC_SUBST(MOZ_ALSA_LIBS) - -dnl ======================================================== -dnl Permissions System -dnl ======================================================== -MOZ_ARG_DISABLE_BOOL(permissions, -[ --disable-permissions Disable permissions (popup and cookie blocking)], - MOZ_PERMISSIONS=, - MOZ_PERMISSIONS=1 -) - -dnl ======================================================== -dnl NegotiateAuth -dnl ======================================================== -MOZ_ARG_DISABLE_BOOL(negotiateauth, -[ --disable-negotiateauth Disable GSS-API negotiation ], - MOZ_AUTH_EXTENSION=, - MOZ_AUTH_EXTENSION=1 ) - -dnl ======================================================== -dnl XTF -dnl ======================================================== -MOZ_ARG_DISABLE_BOOL(xtf, -[ --disable-xtf Disable XTF (pluggable xml tags) support], - MOZ_XTF=, - MOZ_XTF=1 ) -if test "$MOZ_XTF"; then - AC_DEFINE(MOZ_XTF) -fi - -dnl ======================================================== -dnl Pref extensions (autoconfig and system-pref) -dnl ======================================================== -MOZ_ARG_DISABLE_BOOL(pref-extensions, -[ --disable-pref-extensions - Disable pref extensions such as autoconfig and - system-pref], - MOZ_PREF_EXTENSIONS=, - MOZ_PREF_EXTENSIONS=1 ) - -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 -dnl = * enabled by default (shipping build); requires explicit --disable to disable -dnl ======================================================== -MOZ_ANGLE_RENDERER= -MOZ_DIRECTX_SDK_PATH= -MOZ_DIRECTX_SDK_CPU_SUFFIX= -MOZ_D3DCOMPILER_CAB= -MOZ_D3DCOMPILER_DLL= -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_DIRECTX_SDK_CPU_SUFFIX=x86 - ;; -x86_64) - MOZ_DIRECTX_SDK_CPU_SUFFIX=x64 - ;; -esac - -MOZ_ARG_DISABLE_BOOL(webgl, -[ --disable-webgl Disable building of the WebGL implementation], - MOZ_WEBGL_DISABLED=1, - MOZ_WEBGL_DISABLED=) - -if test -n "$MOZ_WEBGL_DISABLED"; then - MOZ_WEBGL= - MOZ_ANGLE_RENDERER= -fi - -if test -n "$MOZ_ANGLE_RENDERER" -a -z "$CROSS_COMPILE"; then - # Get the SDK path from the registry. - # First try to get the June 2010 SDK - MOZ_DIRECTX_SDK_REG_KEY=`reg query 'HKLM\Software\Microsoft\DirectX' //s | grep 'Microsoft DirectX SDK (June 2010)' | head -n 1` - if test -z "$MOZ_DIRECTX_SDK_REG_KEY" ; then - # Otherwise just take whatever comes first - MOZ_DIRECTX_SDK_REG_KEY=`reg query 'HKLM\Software\Microsoft\DirectX' //s | grep 'Microsoft DirectX SDK' | head -n 1` - fi - - if test -n "`echo $MOZ_DIRECTX_SDK_REG_KEY | grep 'February 2010'`" ; then - AC_MSG_ERROR([Found the February 2010 DirectX SDK. Need the June 2010 DirectX SDK, or newer. Upgrade your SDK or reconfigure with --disable-webgl.]) - else - MOZ_DIRECTX_SDK_PATH=`reg query "$MOZ_DIRECTX_SDK_REG_KEY" //v InstallPath | grep REG_SZ | sed 's/.*\([[a-zA-Z]]\)\\:\\\\/\\1\\:\\\\/' | sed 's,\\\\,/,g'` - fi - - if test -n "$MOZ_DIRECTX_SDK_PATH" && - test -f "$MOZ_DIRECTX_SDK_PATH"/include/d3dx9.h && - test -f "$MOZ_DIRECTX_SDK_PATH"/lib/$MOZ_DIRECTX_SDK_CPU_SUFFIX/dxguid.lib ; then - AC_MSG_RESULT([Found DirectX SDK via registry, using $MOZ_DIRECTX_SDK_PATH]) - else - AC_MSG_ERROR([Couldn't find the DirectX SDK, needed for WebGL. Either install it (June 2010 version or newer), or reconfigure with --disable-webgl.]) - fi - - # Get the SDK numeric version (e.g. 43) by looking at the dependencies of d3dx9.lib - MOZ_D3DX9_VERSION=`dumpbin //headers "$MOZ_DIRECTX_SDK_PATH"/lib/$MOZ_DIRECTX_SDK_CPU_SUFFIX/d3dx9.lib | egrep d3dx9_[[0-9]][[0-9]]\.dll | head -n1 | sed 's/.*\([[0-9]][[0-9]]\).*/\\1/g'` - - if test -z "$MOZ_D3DX9_VERSION" ; then - AC_MSG_ERROR([Couldn't determine the D3DX9 version, needed for WebGL. Either reinstall the DirectX SDK (June 2010 version or newer), or reconfigure with --disable-webgl.]) - fi - - MOZ_D3DCOMPILER_CAB=`find "$MOZ_DIRECTX_SDK_PATH"/Redist -name *D3DCompiler_${MOZ_D3DX9_VERSION}_${MOZ_DIRECTX_SDK_CPU_SUFFIX}.cab | head -n1` - - if test -z "$MOZ_D3DCOMPILER_CAB"; then - AC_MSG_ERROR([Couldn't find the DirectX redistributable files. Either reinstall the DirectX SDK (making sure the "DirectX Redistributable Files" option is selected), or reconfigure with --disable-webgl.]) - fi - - MOZ_D3DCOMPILER_DLL=D3DCompiler_$MOZ_D3DX9_VERSION.dll -fi - -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*) - MOZ_CRASHREPORTER=1 - ;; -i?86-*-linux*|x86_64-*-linux*|arm-*-linux*) - MOZ_CRASHREPORTER=1 - ;; -arm-android-eabi) - MOZ_CRASHREPORTER=1 - ;; -*solaris*) - MOZ_CRASHREPORTER=1 - ;; -esac - -MOZ_ARG_DISABLE_BOOL(crashreporter, -[ --disable-crashreporter Disable breakpad crash reporting], - MOZ_CRASHREPORTER=, - MOZ_CRASHREPORTER=1) - -if test -n "$MOZ_CRASHREPORTER"; then - AC_DEFINE(MOZ_CRASHREPORTER) - - if test "$OS_ARCH" = "WINNT" -a -z "$HAVE_64BIT_OS"; then - MOZ_CRASHREPORTER_INJECTOR=1 - AC_DEFINE(MOZ_CRASHREPORTER_INJECTOR) - fi -fi - -dnl ======================================================== -dnl Build Freetype in the tree -dnl ======================================================== -MOZ_ARG_ENABLE_BOOL(tree-freetype, -[ --enable-tree-freetype Enable Tree FreeType], - MOZ_TREE_FREETYPE=1, - MOZ_TREE_FREETYPE= ) -if test -n "$MOZ_TREE_FREETYPE"; then - CAIRO_FT_LIBS='$(call EXPAND_LIBNAME_PATH,freetype2,$(LIBXUL_DIST)/lib)' -fi - -dnl ======================================================== -dnl Installer -dnl ======================================================== -dnl Abort Windows build if the required major version and -dnl minimum minor version of Unicode NSIS isn't in the path -dnl (unless in case of cross compiling, for which Unicode -dnl is not yet sufficient). -if test "$OS_ARCH" = "WINNT"; then - REQ_NSIS_MAJOR_VER=2 - MIN_NSIS_MINOR_VER=46 - MOZ_PATH_PROGS(MAKENSISU, $MAKENSISU makensisu-2.46 makensis) - if test -n "$MAKENSISU" -o "$MAKENSISU" = ":"; then - AC_MSG_RESULT([yes]) - changequote(,) - MAKENSISU_VER=`"$MAKENSISU" -version 2>/dev/null | sed -e '/-Unicode/!s/.*//g' -e 's/^v\([0-9]\+\.[0-9]\+\)\-Unicode$/\1/g'` - changequote([,]) - if test ! "$MAKENSISU_VER" = ""; then - MAKENSISU_MAJOR_VER=`echo $MAKENSISU_VER | $AWK -F\. '{ print $1 }'` - MAKENSISU_MINOR_VER=`echo $MAKENSISU_VER | $AWK -F\. '{ print $2 }'` - fi - AC_MSG_CHECKING([for Unicode NSIS with major version == $REQ_NSIS_MAJOR_VER and minor version >= $MIN_NSIS_MINOR_VER]) - if test "$MAKENSISU_VER" = "" || - test ! "$MAKENSISU_MAJOR_VER" = "$REQ_NSIS_MAJOR_VER" -o \ - ! "$MAKENSISU_MINOR_VER" -ge $MIN_NSIS_MINOR_VER; then - AC_MSG_RESULT([no]) - if test -z "$CROSS_COMPILE"; then - AC_MSG_ERROR([To build the installer you must have the latest MozillaBuild or Unicode NSIS with a major version of $REQ_NSIS_MAJOR_VER and a minimum minor version of $MIN_NSIS_MINOR_VER in your path.]) - else - MAKENSISU= - fi - fi - elif test -z "$CROSS_COMPILE"; then - AC_MSG_ERROR([To build the installer you must have the latest MozillaBuild or Unicode NSIS with a major version of $REQ_NSIS_MAJOR_VER and a minimum minor version of $MIN_NSIS_MINOR_VER in your path.]) - else - MAKENSISU= - fi -fi - -AC_MSG_CHECKING([for tar archiver]) -AC_CHECK_PROGS(TAR, gnutar gtar tar, "") -if test -z "$TAR"; then - AC_MSG_ERROR([no tar archiver found in \$PATH]) -fi -AC_MSG_RESULT([$TAR]) -AC_SUBST(TAR) - -AC_MSG_CHECKING([for wget]) -AC_CHECK_PROGS(WGET, wget, "") -AC_MSG_RESULT([$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 Verify MAR signatures -dnl ======================================================== - -MOZ_ARG_ENABLE_BOOL(verify-mar, -[ --enable-verify-mar Enable verifying MAR signatures], - MOZ_VERIFY_MAR_SIGNATURE=1, - MOZ_VERIFY_MAR_SIGNATURE= ) - -if test -n "$MOZ_VERIFY_MAR_SIGNATURE"; then - if test "$OS_ARCH" = "WINNT"; then - AC_DEFINE(MOZ_VERIFY_MAR_SIGNATURE) - else - AC_MSG_ERROR([Can only build with --enable-verify-mar with a Windows target]) - fi -fi - -dnl ======================================================== -dnl Updater -dnl ======================================================== - -MOZ_ARG_DISABLE_BOOL(updater, -[ --disable-updater Disable building of updater], - MOZ_UPDATER=, - MOZ_UPDATER=1 ) -AC_SUBST(MOZ_UPDATER) - -# app update channel is 'default' when not supplied. -MOZ_ARG_ENABLE_STRING([update-channel], -[ --enable-update-channel=CHANNEL - Select application update channel (default=default)], - MOZ_UPDATE_CHANNEL=`echo $enableval | tr A-Z a-z`) - -if test -z "$MOZ_UPDATE_CHANNEL"; then - MOZ_UPDATE_CHANNEL=default -fi -AC_DEFINE_UNQUOTED(MOZ_UPDATE_CHANNEL, $MOZ_UPDATE_CHANNEL) -AC_SUBST(MOZ_UPDATE_CHANNEL) - -# tools/update-packaging is not checked out by default. -MOZ_ARG_ENABLE_BOOL(update-packaging, -[ --enable-update-packaging - Enable tools/update-packaging], - MOZ_UPDATE_PACKAGING=1, - MOZ_UPDATE_PACKAGING= ) -AC_SUBST(MOZ_UPDATE_PACKAGING) - -dnl ======================================================== -dnl build the tests by default -dnl ======================================================== -MOZ_ARG_DISABLE_BOOL(tests, -[ --disable-tests Do not build test libraries & programs], - ENABLE_TESTS=, - ENABLE_TESTS=1 ) - -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 = Enable mozStorage -dnl ======================================================== -dnl Implicitly enabled by default if building calendar or places -MOZ_ARG_ENABLE_BOOL(storage, -[ --enable-storage Enable mozStorage module and related components], - MOZ_STORAGE=1, - MOZ_STORAGE= ) -if test -n "$MOZ_STORAGE"; then - AC_DEFINE(MOZ_STORAGE) -fi - -dnl ======================================================== -dnl Check for sqlite -dnl ======================================================== - -MOZ_NATIVE_SQLITE= -MOZ_ARG_ENABLE_BOOL(system-sqlite, -[ --enable-system-sqlite Use system sqlite (located with pkgconfig)], -MOZ_NATIVE_SQLITE=1, -MOZ_NATIVE_SQLITE= ) - -if test -z "$MOZ_NATIVE_SQLITE" -then - SQLITE_CFLAGS= - SQLITE_LIBS='$(call EXPAND_LIBNAME_PATH,mozsqlite3,$(DIST)/lib)' -else - PKG_CHECK_MODULES(SQLITE, sqlite3 >= $SQLITE_VERSION) -fi - -if test -n "$MOZ_NATIVE_SQLITE"; then - AC_DEFINE(MOZ_NATIVE_SQLITE) -fi -AC_SUBST(MOZ_NATIVE_SQLITE) - -dnl ======================================================== -dnl = Enable help viewer (off by default) -dnl ======================================================== -if test -n "$MOZ_HELP_VIEWER"; then - dnl Do this if defined in confvars.sh - AC_DEFINE(MOZ_HELP_VIEWER) -fi - -dnl ======================================================== -dnl = Enable safe browsing (anti-phishing) -dnl ======================================================== -MOZ_ARG_ENABLE_BOOL(safe-browsing, -[ --enable-safe-browsing Enable safe browsing (anti-phishing) implementation], - MOZ_SAFE_BROWSING=1, - MOZ_SAFE_BROWSING= ) -if test -n "$MOZ_SAFE_BROWSING"; then - AC_DEFINE(MOZ_SAFE_BROWSING) -fi -AC_SUBST(MOZ_SAFE_BROWSING) - -dnl ======================================================== -dnl = Enable url-classifier -dnl ======================================================== -dnl Implicitly enabled by default if building with safe-browsing -if test -n "$MOZ_SAFE_BROWSING"; then - MOZ_URL_CLASSIFIER=1 -fi -MOZ_ARG_ENABLE_BOOL(url-classifier, -[ --enable-url-classifier Enable url classifier module], - MOZ_URL_CLASSIFIER=1, - MOZ_URL_CLASSIFIER= ) -if test -n "$MOZ_URL_CLASSIFIER"; then - AC_DEFINE(MOZ_URL_CLASSIFIER) -fi -AC_SUBST(MOZ_URL_CLASSIFIER) - -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 = Maemo checks -dnl ======================================================== - -MAEMO_SDK_TARGET_VER=-1 - -MOZ_ARG_WITH_STRING(maemo-version, -[ --with-maemo-version=MAEMO_SDK_TARGET_VER - Maemo SDK Version], - MAEMO_SDK_TARGET_VER=$withval) - -case "$MAEMO_SDK_TARGET_VER" in -5) - MOZ_PLATFORM_MAEMO=5 - ;; - -6) - MOZ_PLATFORM_MAEMO=6 - ;; - --1) - dnl We aren't compiling for Maemo, move on. - ;; -*) - AC_MSG_ERROR([Unknown Maemo Version. Try setting --with-maemo-version to 5 or 6.]) - ;; -esac - -if test $MOZ_PLATFORM_MAEMO; then - AC_DEFINE_UNQUOTED([MOZ_PLATFORM_MAEMO], $MOZ_PLATFORM_MAEMO) - - MOZ_GFX_OPTIMIZE_MOBILE=1 -fi - -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 = Debugging Options -dnl = -dnl ======================================================== -MOZ_ARG_HEADER(Debugging and Optimizations) - -dnl ======================================================== -dnl = Disable building with debug info. -dnl = Debugging is OFF by default -dnl ======================================================== -if test -z "$MOZ_DEBUG_FLAGS"; then - MOZ_DEBUG_FLAGS="-g" -fi - -MOZ_ARG_ENABLE_STRING(debug, -[ --enable-debug[=DBG] Enable building with developer debug info - (using compiler flags DBG)], -[ if test "$enableval" != "no"; then - MOZ_DEBUG=1 - if test -n "$enableval" -a "$enableval" != "yes"; then - MOZ_DEBUG_FLAGS=`echo $enableval | sed -e 's|\\\ | |g'` - _MOZ_DEBUG_FLAGS_SET=1 - fi - else - MOZ_DEBUG= - fi ], - MOZ_DEBUG=) - -MOZ_DEBUG_ENABLE_DEFS="-DDEBUG -D_DEBUG -DTRACING" -MOZ_ARG_WITH_STRING(debug-label, -[ --with-debug-label=LABELS - Enabled the use of DEBUG_label ifdefs - (comma separated)], -[ for option in `echo $withval | sed 's/,/ /g'`; do - MOZ_DEBUG_ENABLE_DEFS="$MOZ_DEBUG_ENABLE_DEFS -DDEBUG_${option}" -done]) - -MOZ_DEBUG_DISABLE_DEFS="-DNDEBUG -DTRIMMED" - -if test -n "$MOZ_DEBUG"; then - AC_MSG_CHECKING([for valid debug flags]) - _SAVE_CFLAGS=$CFLAGS - CFLAGS="$CFLAGS $MOZ_DEBUG_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 are invalid: $MOZ_DEBUG_FLAGS]) - fi - CFLAGS=$_SAVE_CFLAGS -fi - -dnl ======================================================== -dnl enable mobile optimizations -dnl ======================================================== -MOZ_ARG_ENABLE_BOOL(mobile-optimize, -[ --enable-mobile-optimize Enable mobile optimizations], - MOZ_GFX_OPTIMIZE_MOBILE=1) - -if test "$MOZ_GFX_OPTIMIZE_MOBILE"; then - AC_DEFINE(MOZ_GFX_OPTIMIZE_MOBILE) -fi - -dnl ======================================================== -dnl = Enable code optimization. ON by default. -dnl ======================================================== -if test -z "$MOZ_OPTIMIZE_FLAGS"; then - MOZ_OPTIMIZE_FLAGS="-O" -fi - -MOZ_ARG_ENABLE_STRING(optimize, -[ --disable-optimize Disable compiler optimization - --enable-optimize=[OPT] Specify compiler optimization flags [OPT=-O]], -[ if test "$enableval" != "no"; then - MOZ_OPTIMIZE=1 - if test -n "$enableval" -a "$enableval" != "yes"; then - MOZ_OPTIMIZE_FLAGS=`echo "$enableval" | sed -e 's|\\\ | |g'` - MOZ_OPTIMIZE=2 - fi -else - MOZ_OPTIMIZE= -fi ], MOZ_OPTIMIZE=1) - -MOZ_SET_FRAMEPTR_FLAGS - -if test "$COMPILE_ENVIRONMENT"; then -if test -n "$MOZ_OPTIMIZE"; then - AC_MSG_CHECKING([for valid optimization flags]) - _SAVE_CFLAGS=$CFLAGS - CFLAGS="$CFLAGS $MOZ_OPTIMIZE_FLAGS" - AC_TRY_COMPILE([#include ], - [printf("Hello World\n");], - _results=yes, - _results=no) - AC_MSG_RESULT([$_results]) - if test "$_results" = "no"; then - AC_MSG_ERROR([These compiler flags are invalid: $MOZ_OPTIMIZE_FLAGS]) - fi - CFLAGS=$_SAVE_CFLAGS -fi -fi # COMPILE_ENVIRONMENT - -AC_SUBST(MOZ_OPTIMIZE) -AC_SUBST(MOZ_FRAMEPTR_FLAGS) -AC_SUBST(MOZ_OPTIMIZE_FLAGS) -AC_SUBST(MOZ_OPTIMIZE_LDFLAGS) -AC_SUBST(MOZ_OPTIMIZE_SIZE_TWEAK) - -dnl ======================================================== -dnl = Enable generation of debug symbols -dnl ======================================================== -MOZ_ARG_ENABLE_STRING(debug-symbols, -[ --enable-debug-symbols[=DBG] - Enable debugging symbols (using compiler flags DBG)], -[ if test "$enableval" != "no"; then - MOZ_DEBUG_SYMBOLS=1 - if test -n "$enableval" -a "$enableval" != "yes"; then - if test -z "$_MOZ_DEBUG_FLAGS_SET"; then - MOZ_DEBUG_FLAGS=`echo $enableval | sed -e 's|\\\ | |g'` - else - AC_MSG_ERROR([--enable-debug-symbols flags cannot be used with --enable-debug flags]) - fi - fi - else - MOZ_DEBUG_SYMBOLS= - fi ], - MOZ_DEBUG_SYMBOLS=1) - -if test -n "$MOZ_DEBUG" -o -n "$MOZ_DEBUG_SYMBOLS"; then - AC_DEFINE(MOZ_DEBUG_SYMBOLS) - export MOZ_DEBUG_SYMBOLS -fi - -dnl ======================================================== -dnl Disable runtime logging checks -dnl ======================================================== -MOZ_ARG_DISABLE_BOOL(logging, -[ --disable-logging Disable logging facilities], - NS_DISABLE_LOGGING=1, - NS_DISABLE_LOGGING= ) -if test "$NS_DISABLE_LOGGING"; then - AC_DEFINE(NS_DISABLE_LOGGING) -else - AC_DEFINE(MOZ_LOGGING) -fi - -dnl ======================================================== -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 = Enable trace malloc -dnl ======================================================== -NS_TRACE_MALLOC=${MOZ_TRACE_MALLOC} -MOZ_ARG_ENABLE_BOOL(trace-malloc, -[ --enable-trace-malloc Enable malloc tracing], - NS_TRACE_MALLOC=1, - NS_TRACE_MALLOC= ) -if test "$NS_TRACE_MALLOC"; then - # Please, Mr. Linker Man, don't take away our symbol names - MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS= - USE_ELF_DYNSTR_GC= - AC_DEFINE(NS_TRACE_MALLOC) -fi -AC_SUBST(NS_TRACE_MALLOC) - -dnl ======================================================== -dnl = Enable jemalloc -dnl ======================================================== -MOZ_ARG_ENABLE_BOOL(jemalloc, -[ --enable-jemalloc Replace memory allocator with jemalloc], - MOZ_MEMORY=1, - MOZ_MEMORY=) - -if test "$NS_TRACE_MALLOC"; then - MOZ_MEMORY= -fi - -if test "${OS_TARGET}" = "WINNT" -o "${OS_TARGET}" = "Darwin" -o "${OS_TARGET}" = "OS2"; then - dnl On Windows, OSX and OS2, we want to link all our binaries against mozglue - MOZ_GLUE_LDFLAGS='$(call EXPAND_LIBNAME_PATH,mozglue,$(LIBXUL_DIST)/lib)' -else - dnl On other Unix systems, we only want to link executables against mozglue - MOZ_GLUE_PROGRAM_LDFLAGS='$(MKSHLIB_FORCE_ALL) $(call EXPAND_LIBNAME_PATH,mozglue,$(LIBXUL_DIST)/lib)' - dnl On other Unix systems, where mozglue is a static library, jemalloc is - dnl separated for the SDK, so we need to add it here. - if test "$MOZ_MEMORY" = 1; then - MOZ_GLUE_PROGRAM_LDFLAGS="$MOZ_GLUE_PROGRAM_LDFLAGS "'$(call EXPAND_LIBNAME_PATH,memory,$(LIBXUL_DIST)/lib)' - fi - MOZ_GLUE_PROGRAM_LDFLAGS="$MOZ_GLUE_PROGRAM_LDFLAGS "'$(MKSHLIB_UNFORCE_ALL)' - if test -n "$GNU_CC"; then - dnl And we need mozglue symbols to be exported. - MOZ_GLUE_PROGRAM_LDFLAGS="$MOZ_GLUE_PROGRAM_LDFLAGS -rdynamic" - fi -fi - -if test "$MOZ_MEMORY"; then - dnl Don't try to run compiler tests on Windows - if test "$OS_ARCH" = "WINNT"; then - if test -z "$HAVE_64BIT_OS"; then - AC_DEFINE_UNQUOTED([MOZ_MEMORY_SIZEOF_PTR_2POW], 2) - else - AC_DEFINE_UNQUOTED([MOZ_MEMORY_SIZEOF_PTR_2POW], 3) - fi - else - AC_CHECK_SIZEOF([int *], [4]) - case "${ac_cv_sizeof_int_p}" in - 4) - AC_DEFINE_UNQUOTED([MOZ_MEMORY_SIZEOF_PTR_2POW], 2) - ;; - 8) - AC_DEFINE_UNQUOTED([MOZ_MEMORY_SIZEOF_PTR_2POW], 3) - ;; - *) - AC_MSG_ERROR([Unexpected pointer size]) - ;; - esac - fi - - AC_DEFINE(MOZ_MEMORY) - if test "x$MOZ_DEBUG" = "x1"; then - AC_DEFINE(MOZ_MEMORY_DEBUG) - fi - dnl The generic feature tests that determine how to compute ncpus are long and - dnl complicated. Therefore, simply define special cpp variables for the - dnl platforms we have special knowledge of. - case "${target}" in - *-darwin*) - AC_DEFINE(MOZ_MEMORY_DARWIN) - ;; - *-*freebsd*) - AC_DEFINE(MOZ_MEMORY_BSD) - ;; - *-*linux*) - AC_DEFINE(MOZ_MEMORY_LINUX) - ;; - *-netbsd*) - AC_DEFINE(MOZ_MEMORY_BSD) - ;; - *-solaris*) - AC_DEFINE(MOZ_MEMORY_SOLARIS) - ;; - *-mingw*) - AC_DEFINE(MOZ_MEMORY_WINDOWS) - if test -z "$MOZ_DEBUG"; then - WIN32_CRT_LIBS="msvcrt.lib msvcprt.lib" - else - WIN32_CRT_LIBS="msvcrtd.lib msvcprtd.lib" - fi - dnl Look for a broken crtdll.obj - WIN32_CRTDLL_FULLPATH=`lib -nologo -list $WIN32_CRT_LIBS | grep crtdll\\.obj` - lib -NOLOGO -OUT:crtdll.obj $WIN32_CRT_LIBS -EXTRACT:$WIN32_CRTDLL_FULLPATH - if grep -q '__imp__\{0,1\}free' crtdll.obj; then - MOZ_GLUE_LDFLAGS='-LIBPATH:$(DIST)/lib -NODEFAULTLIB:msvcrt -NODEFAULTLIB:msvcrtd -NODEFAULTLIB:msvcprt -NODEFAULTLIB:msvcprtd -DEFAULTLIB:mozcrt' - dnl Also pass this to NSPR/NSS - DLLFLAGS="$DLLFLAGS $MOZ_GLUE_LDFLAGS" - else - DLLFLAGS="$DLLFLAGS -LIBPATH:\$(DIST)/lib -DEFAULTLIB:mozglue" - fi - rm crtdll.obj - - export DLLFLAGS - ;; - *-android*) - AC_DEFINE(MOZ_MEMORY_LINUX) - AC_DEFINE(MOZ_MEMORY_ANDROID) - _WRAP_MALLOC=1 - ;; - *) - AC_MSG_ERROR([--enable-jemalloc not supported on ${target}]) - ;; - esac - - if test "$OS_ARCH" != "Darwin"; then - dnl NB: this must be kept in sync with jemalloc.h - AC_DEFINE(HAVE_JEMALLOC_VALLOC) - AC_DEFINE(HAVE_JEMALLOC_POSIX_MEMALIGN) - AC_DEFINE(HAVE_JEMALLOC_MEMALIGN) - fi -fi -AC_SUBST(MOZ_MEMORY) -AC_SUBST(MOZ_GLUE_LDFLAGS) -AC_SUBST(MOZ_GLUE_PROGRAM_LDFLAGS) -AC_SUBST(WIN32_CRT_LIBS) -dnl Need to set this for make because NSS doesn't have configure -AC_SUBST(DLLFLAGS) - -dnl We need to wrap dlopen and related functions on Android because we use -dnl our own linker. -if test "$OS_TARGET" = Android; then - WRAP_LDFLAGS="${WRAP_LDFLAGS} -L$_objdir/dist/lib -lmozglue" - WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=dlopen,--wrap=dlclose,--wrap=dlerror,--wrap=dlsym,--wrap=dladdr" -fi - -dnl ======================================================== -dnl = Use malloc wrapper lib -dnl ======================================================== -MOZ_ARG_ENABLE_BOOL(wrap-malloc, -[ --enable-wrap-malloc Wrap malloc calls (gnu linker only)], - _WRAP_MALLOC=1, - _WRAP_MALLOC= ) - -if test -n "$_WRAP_MALLOC"; then - if test -n "$GNU_CC"; then - WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=malloc,--wrap=calloc,--wrap=valloc,--wrap=free,--wrap=realloc,--wrap=memalign" - WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=__builtin_new,--wrap=__builtin_vec_new,--wrap=__builtin_delete,--wrap=__builtin_vec_delete" - WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=PR_Free,--wrap=PR_Malloc,--wrap=PR_Calloc,--wrap=PR_Realloc" - WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=strdup,--wrap=strndup" - WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=posix_memalign,--wrap=malloc_usable_size" - else - AC_MSG_ERROR([--enable-wrap-malloc is not supported for non-GNU toolchains]) - fi -fi - -dnl ======================================================== -dnl = Location of malloc wrapper lib -dnl ======================================================== -MOZ_ARG_WITH_STRING(wrap-malloc, -[ --with-wrap-malloc=DIR Location of malloc wrapper library], - WRAP_LDFLAGS="${WRAP_LDFLAGS} $withval") - -dnl ======================================================== -dnl jprof -dnl ======================================================== -MOZ_ARG_ENABLE_BOOL(jprof, -[ --enable-jprof Enable jprof profiling tool (needs mozilla/tools/jprof). Implies --enable-profiling.], - MOZ_JPROF=1, - MOZ_JPROF= ) -if test -n "$MOZ_JPROF"; then - MOZ_PROFILING=1 - AC_DEFINE(MOZ_JPROF) -fi - -dnl ======================================================== -dnl SPS Profiler -dnl ======================================================== -MOZ_ENABLE_PROFILER_SPS=1 - -case "${OS_TARGET}" in -Android) - case "${CPU_ARCH}" in - x86 | arm) ;; - *) - MOZ_ENABLE_PROFILER_SPS= - esac - ;; -Linux) - case "${CPU_ARCH}" in - x86 | x86_64) ;; - *) - MOZ_ENABLE_PROFILER_SPS= - esac - ;; -WINNT|Darwin) ;; -*) - MOZ_ENABLE_PROFILER_SPS= - ;; -esac - -if test -n "$MOZ_ENABLE_PROFILER_SPS"; then - AC_DEFINE(MOZ_ENABLE_PROFILER_SPS) -fi - -dnl ======================================================== -dnl shark -dnl ======================================================== -MOZ_ARG_ENABLE_BOOL(shark, -[ --enable-shark Enable shark remote profiling (needs CHUD framework). Implies --enable-profiling.], - MOZ_SHARK=1, - MOZ_SHARK= ) -if test -n "$MOZ_SHARK"; then - MOZ_PROFILING=1 - AC_DEFINE(MOZ_SHARK) -fi - -MOZ_CHECK_CCACHE - -dnl ======================================================== -dnl = Enable static checking using gcc-dehydra -dnl ======================================================== - -MOZ_ARG_WITH_STRING(static-checking, -[ --with-static-checking=path/to/gcc_dehydra.so - Enable static checking of code using GCC-dehydra], - DEHYDRA_PATH=$withval, - DEHYDRA_PATH= ) - -if test -n "$DEHYDRA_PATH"; then - if test ! -f "$DEHYDRA_PATH"; then - AC_MSG_ERROR([The dehydra plugin is not at the specified path.]) - fi - AC_DEFINE(NS_STATIC_CHECKING) -fi -AC_SUBST(DEHYDRA_PATH) - -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 = --enable-elf-dynstr-gc -dnl ======================================================== -MOZ_ARG_ENABLE_BOOL(elf-dynstr-gc, -[ --enable-elf-dynstr-gc Enable elf dynstr garbage collector (opt builds only)], - USE_ELF_DYNSTR_GC=1, - USE_ELF_DYNSTR_GC= ) - -dnl ======================================================== -dnl = -dnl = Profiling and Instrumenting -dnl = -dnl ======================================================== -MOZ_ARG_HEADER(Profiling and Instrumenting) - -dnl ======================================================== -dnl = Enable timeline service, which provides lightweight -dnl = instrumentation of mozilla for performance measurement. -dnl = Timeline is off by default. -dnl ======================================================== -MOZ_ARG_ENABLE_BOOL(timeline, -[ --enable-timeline Enable timeline services ], - MOZ_TIMELINE=1, - MOZ_TIMELINE= ) -if test -n "$MOZ_TIMELINE"; then - AC_DEFINE(MOZ_TIMELINE) -fi - -dnl ======================================================== -dnl Enable code size metrics. -dnl ======================================================== -MOZ_ARG_ENABLE_BOOL(codesighs, -[ --enable-codesighs Enable code size analysis tools], - _ENABLE_CODESIGHS=1, - _ENABLE_CODESIGHS= ) -if test -n "$_ENABLE_CODESIGHS"; then - if test -d $MOZILLA_SRCDIR/tools/codesighs; then - MOZ_MAPINFO=1 - else - AC_MSG_ERROR([Codesighs directory $MOZILLA_SRCDIR/tools/codesighs required.]) - fi -fi - -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 trace-malloc builds -MOZ_DEMANGLE_SYMBOLS= -if test "$HAVE_DEMANGLE" -a "$HAVE_GCC3_ABI" && test "$MOZ_DEBUG" -o "$NS_TRACE_MALLOC"; 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 "$HAVE_GCC3_ABI" -a -z "$SKIP_LIBRARY_CHECKS"; then - AC_CHECK_HEADER(unwind.h, AC_CHECK_FUNCS(_Unwind_Backtrace)) -fi - -dnl ======================================================== -dnl = -dnl = Misc. Options -dnl = -dnl ======================================================== -MOZ_ARG_HEADER(Misc. Options) - -dnl ======================================================== -dnl update xterm title -dnl ======================================================== -MOZ_ARG_ENABLE_BOOL(xterm-updates, -[ --enable-xterm-updates Update XTERM titles with current command.], - MOZ_UPDATE_XTERM=1, - MOZ_UPDATE_XTERM= ) - -dnl ========================================================= -dnl = Chrome format -dnl ========================================================= -MOZ_ARG_ENABLE_STRING([chrome-format], -[ --enable-chrome-format=jar|flat|both|symlink|omni - Select FORMAT of chrome files (default=jar)], - MOZ_CHROME_FILE_FORMAT=`echo $enableval | tr A-Z a-z`) - -if test "$MOZ_CHROME_FILE_FORMAT" != "jar" && - test "$MOZ_CHROME_FILE_FORMAT" != "flat" && - test "$MOZ_CHROME_FILE_FORMAT" != "symlink" && - test "$MOZ_CHROME_FILE_FORMAT" != "both" && - test "$MOZ_CHROME_FILE_FORMAT" != "omni"; then - AC_MSG_ERROR([--enable-chrome-format must be set to either jar, flat, both, symlink or omni]) -fi - -dnl ========================================================= -dnl Omnijar packaging (bug 552121) -dnl ========================================================= -dnl Omnijar packaging is compatible with flat packaging. -dnl In unpackaged builds, omnijar looks for files as if -dnl things were flat packaged. After packaging, all files -dnl are loaded from a single jar. MOZ_CHROME_FILE_FORMAT -dnl is set to flat since putting files into jars is only -dnl done during packaging with omnijar. -if test "$MOZ_CHROME_FILE_FORMAT" = "omni"; then - MOZ_OMNIJAR=1 - AC_DEFINE(MOZ_OMNIJAR) -fi - -MOZ_PACKAGER_FORMAT="$MOZ_CHROME_FILE_FORMAT" -if test "$OS_ARCH" = "WINNT" -o "$OS_ARCH" = "OS2" -o "$MOZ_WIDGET_TOOLKIT" = "android"; then - MOZ_CHROME_FILE_FORMAT=flat -else - MOZ_CHROME_FILE_FORMAT=symlink -fi - -OMNIJAR_NAME=omni.ja -AC_SUBST(OMNIJAR_NAME) -AC_SUBST(MOZ_OMNIJAR) -AC_SUBST(MOZ_PACKAGER_FORMAT) - -dnl ======================================================== -dnl = Define default location for MOZILLA_FIVE_HOME -dnl ======================================================== -MOZ_ARG_WITH_STRING(default-mozilla-five-home, -[ --with-default-mozilla-five-home - Set the default value for MOZILLA_FIVE_HOME], -[ val=`echo $withval` - AC_DEFINE_UNQUOTED(MOZ_DEFAULT_MOZILLA_FIVE_HOME,"$val") ]) - -dnl ======================================================== -dnl = Location of the mozilla user directory (default is ~/.mozilla).], -dnl ======================================================== -MOZ_ARG_WITH_STRING(user-appdir, -[ --with-user-appdir=DIR Set user-specific appdir (default=.mozilla)], -[ val=`echo $withval` -if echo "$val" | grep "\/" >/dev/null; then - AC_MSG_ERROR("Homedir must be single relative path.") -else - MOZ_USER_DIR="$val" -fi]) - -AC_DEFINE_UNQUOTED(MOZ_USER_DIR,"$MOZ_USER_DIR") - -dnl ======================================================== -dnl = Doxygen configuration -dnl ======================================================== -dnl Use commas to specify multiple dirs to this arg -MOZ_DOC_INPUT_DIRS='./dist/include ./dist/idl' -MOZ_ARG_WITH_STRING(doc-input-dirs, -[ --with-doc-input-dirs=DIRS - Header/idl dirs to create docs from], -[ MOZ_DOC_INPUT_DIRS=`echo "$withval" | sed "s/,/ /g"` ] ) -AC_SUBST(MOZ_DOC_INPUT_DIRS) - -dnl Use commas to specify multiple dirs to this arg -MOZ_DOC_INCLUDE_DIRS='./dist/include ./dist/include/nspr' -MOZ_ARG_WITH_STRING(doc-include-dirs, -[ --with-doc-include-dirs=DIRS - Include dirs to preprocess doc headers], -[ MOZ_DOC_INCLUDE_DIRS=`echo "$withval" | sed "s/,/ /g"` ] ) -AC_SUBST(MOZ_DOC_INCLUDE_DIRS) - -MOZ_DOC_OUTPUT_DIR='./dist/docs' -MOZ_ARG_WITH_STRING(doc-output-dir, -[ --with-doc-output-dir=DIR - Dir to generate docs into], -[ MOZ_DOC_OUTPUT_DIR=$withval ] ) -AC_SUBST(MOZ_DOC_OUTPUT_DIR) - -if test -z "$SKIP_COMPILER_CHECKS"; then -dnl ======================================================== -dnl = -dnl = Compiler Options -dnl = -dnl ======================================================== -MOZ_ARG_HEADER(Compiler Options) - -dnl ======================================================== -dnl Check for gcc -pipe support -dnl ======================================================== -AC_MSG_CHECKING([for gcc -pipe support]) -if test -n "$GNU_CC" -a -n "$GNU_CXX" -a -n "$GNU_AS"; then - echo '#include ' > dummy-hello.c - echo 'int main() { printf("Hello World\n"); exit(0); }' >> dummy-hello.c - ${CC} -S dummy-hello.c -o dummy-hello.s 2>&5 - cat dummy-hello.s 2> /dev/null | ${AS_BIN} -o dummy-hello.S - 2>&5 - if test $? = 0; then - _res_as_stdin="yes" - else - _res_as_stdin="no" - fi - if test "$_res_as_stdin" = "yes"; then - _SAVE_CFLAGS=$CFLAGS - CFLAGS="$CFLAGS -pipe" - AC_TRY_COMPILE( [ #include ], - [printf("Hello World\n");], - [_res_gcc_pipe="yes"], - [_res_gcc_pipe="no"] ) - CFLAGS=$_SAVE_CFLAGS - fi - if test "$_res_as_stdin" = "yes" -a "$_res_gcc_pipe" = "yes"; then - _res="yes"; - CFLAGS="$CFLAGS -pipe" - CXXFLAGS="$CXXFLAGS -pipe" - else - _res="no" - fi - rm -f dummy-hello.c dummy-hello.s dummy-hello.S dummy-hello a.out - AC_MSG_RESULT([$_res]) -else - AC_MSG_RESULT([no]) -fi - -dnl ======================================================== -dnl Profile guided optimization (gcc checks) -dnl ======================================================== -dnl Test for profiling options -dnl Under gcc 3.4+, use -fprofile-generate/-fprofile-use - -_SAVE_CFLAGS="$CFLAGS" -CFLAGS="$CFLAGS -fprofile-generate -fprofile-correction" - -AC_MSG_CHECKING([whether C compiler supports -fprofile-generate]) -AC_TRY_COMPILE([], [return 0;], - [ PROFILE_GEN_CFLAGS="-fprofile-generate" - result="yes" ], result="no") -AC_MSG_RESULT([$result]) - -if test $result = "yes"; then - PROFILE_GEN_LDFLAGS="-fprofile-generate" - PROFILE_USE_CFLAGS="-fprofile-use -fprofile-correction -Wcoverage-mismatch -freorder-blocks-and-partition" - PROFILE_USE_LDFLAGS="-fprofile-use" -fi - -CFLAGS="$_SAVE_CFLAGS" - -if test -n "$INTEL_CC"; then - PROFILE_GEN_CFLAGS="-prof-gen -prof-dir ." - PROFILE_GEN_LDFLAGS= - PROFILE_USE_CFLAGS="-prof-use -prof-dir ." - PROFILE_USE_LDFLAGS= -fi - -dnl Sun Studio on Solaris -if test "$SOLARIS_SUNPRO_CC"; then - PROFILE_GEN_CFLAGS="-xprofile=collect:$_objdir/$enable_application" - PROFILE_GEN_LDFLAGS="-xprofile=collect:$_objdir/$enable_application" - PROFILE_USE_CFLAGS="-xprofile=use:$_objdir/$enable_application" - PROFILE_USE_LDFLAGS="-xprofile=use:$_objdir/$enable_application" -fi - -AC_SUBST(PROFILE_GEN_CFLAGS) -AC_SUBST(PROFILE_GEN_LDFLAGS) -AC_SUBST(PROFILE_USE_CFLAGS) -AC_SUBST(PROFILE_USE_LDFLAGS) - -AC_LANG_CPLUSPLUS - -dnl ======================================================== -dnl Test for -pedantic bustage -dnl ======================================================== -MOZ_ARG_DISABLE_BOOL(pedantic, -[ --disable-pedantic Issue all warnings demanded by strict ANSI C ], -_PEDANTIC= ) -if test "$_PEDANTIC"; then - _SAVE_CXXFLAGS=$CXXFLAGS - CXXFLAGS="$CXXFLAGS -pedantic ${_WARNINGS_CXXFLAGS} -Wno-long-long" - AC_MSG_CHECKING([whether C++ compiler has -pedantic long long bug]) - AC_TRY_COMPILE([$configure_static_assert_macros], - [CONFIGURE_STATIC_ASSERT(sizeof(long long) == 8)], - result="no", result="yes" ) - AC_MSG_RESULT([$result]) - CXXFLAGS="$_SAVE_CXXFLAGS" - - case "$result" in - no) - _WARNINGS_CFLAGS="-pedantic ${_WARNINGS_CFLAGS} -Wno-long-long" - _WARNINGS_CXXFLAGS="-pedantic ${_WARNINGS_CXXFLAGS} -Wno-long-long" - ;; - yes) - AC_MSG_ERROR([Your compiler appears to have a known bug where long long is miscompiled when using -pedantic. Reconfigure using --disable-pedantic. ]) - ;; - esac -fi - -dnl ======================================================== -dnl Test for correct temporary object destruction order -dnl ======================================================== -dnl We want to make sure the compiler follows the C++ spec here as -dnl xpcom and the string classes depend on it (bug 235381). -AC_MSG_CHECKING([for correct temporary object destruction order]) -AC_TRY_RUN([ class A { - public: A(int& x) : mValue(x) {} - ~A() { mValue--; } - operator char**() { return 0; } - private: int& mValue; - }; - void func(char **arg) {} - int m=2; - void test() { - func(A(m)); - if (m==1) m = 0; - } - int main() { - test(); - return(m); - } - ], - result="yes", result="no", result="maybe") -AC_MSG_RESULT([$result]) - -if test "$result" = "no"; then - AC_MSG_ERROR([Your compiler does not follow the C++ specification for temporary object destruction order.]) -fi - -dnl ======================================================== -dnl Autoconf test for gcc 2.7.2.x (and maybe others?) so that we don't -dnl provide non-const forms of the operator== for comparing nsCOMPtrs to -dnl raw pointers in nsCOMPtr.h. (VC++ has the same bug.) -dnl ======================================================== -_SAVE_CXXFLAGS=$CXXFLAGS -CXXFLAGS="$CXXFLAGS ${_WARNINGS_CXXFLAGS}" -AC_CACHE_CHECK(for correct overload resolution with const and templates, - ac_nscap_nonconst_opeq_bug, - [AC_TRY_COMPILE([ - template - class Pointer - { - public: - T* myPtr; - }; - - template - int operator==(const Pointer& rhs, U* lhs) - { - return rhs.myPtr == lhs; - } - - template - int operator==(const Pointer& rhs, const U* lhs) - { - return rhs.myPtr == lhs; - } - ], - [ - Pointer foo; - const int* bar; - return foo == bar; - ], - ac_nscap_nonconst_opeq_bug="no", - ac_nscap_nonconst_opeq_bug="yes")]) -CXXFLAGS="$_SAVE_CXXFLAGS" - -if test "$ac_nscap_nonconst_opeq_bug" = "yes" ; then - AC_DEFINE(NSCAP_DONT_PROVIDE_NONCONST_OPEQ) -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 "$GNU_CC" -a "$GNU_CXX"; then - _DEPEND_CFLAGS='-MD -MP -MF $(MDDEPDIR)/$(@F).pp' -dnl Sun Studio on Solaris use -xM instead of -MD, see config/rules.mk -elif test "$SOLARIS_SUNPRO_CC"; then - _DEPEND_CFLAGS= -else - dnl Don't override this for MSVC - if test -z "$_WIN32_MSVC"; then - _USE_CPP_INCLUDE_FLAG= - _DEFINES_CFLAGS='$(ACDEFINES) -D_COMM_CONFIG_H_ -DMOZILLA_CLIENT' - _DEFINES_CXXFLAGS='$(ACDEFINES) -D_COMM_CONFIG_H_ -DMOZILLA_CLIENT' - else - echo '#include ' > dummy-hello.c - changequote(,) - CL_INCLUDES_PREFIX=`${CC} -showIncludes -c -Fonul dummy-hello.c 2>&1 | sed -ne 's/^\([^:]*:[^:]*:\).*stdio.h$/\1/p'` - changequote([,]) - 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 - fi -fi - -dnl ======================================================== -dnl = -dnl = Static Build Options -dnl = -dnl ======================================================== -MOZ_ARG_HEADER(Static build options) - -# split JS out by default to avoid VS2005 PGO crash (bug 591836). -if test "$OS_ARCH" = "WINNT"; then - ENABLE_SHARED_JS=1 -fi - -MOZ_ARG_ENABLE_BOOL(shared-js, -[ --enable-shared-js Create a shared Javascript library.], - ENABLE_SHARED_JS=1, - ENABLE_SHARED_JS=) - -if test -n "$ENABLE_SHARED_JS"; then - JS_SHARED_LIBRARY=1 - MOZ_JS_LIBS=$MOZ_JS_SHARED_LIBS -else - MOZ_JS_LIBS=$MOZ_JS_STATIC_LIBS - AC_DEFINE(MOZ_STATIC_JS) -fi -AC_SUBST(JS_SHARED_LIBRARY) - -XPCOM_LIBS="$LIBXUL_LIBS" - -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_GTK2" -o "$MOZ_ENABLE_QT" -o "$USE_ELF_DYNSTR_GC" ; 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}"; then - GLIB_GMODULE_LIBS=`$GLIB_CONFIG gmodule --libs` -fi - -AC_SUBST(GLIB_CFLAGS) -AC_SUBST(GLIB_LIBS) -AC_SUBST(GLIB_GMODULE_LIBS) - -dnl ======================================================== -dnl Check for 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 ) - -# Check for headers defining standard int types. -AC_CHECK_HEADERS(stdint.h inttypes.h sys/int_types.h) - -if test "$MOZ_TREE_CAIRO"; then - if test "$MOZ_WIDGET_TOOLKIT" = "os2"; then - CAIRO_FT_LIBS="-L${MZFTCFGFT2}/lib -lmozft -lmzfntcfg" - fi - - MOZ_CAIRO_LIBS='$(call EXPAND_LIBNAME_PATH,mozcairo,$(DEPTH)/mozilla/gfx/cairo/cairo/src) $(call EXPAND_LIBNAME_PATH,mozlibpixman,$(DEPTH)/mozilla/gfx/cairo/libpixman/src)'" $CAIRO_FT_LIBS" - if test "$MOZ_X11"; then - MOZ_CAIRO_LIBS="$MOZ_CAIRO_LIBS $XLDFLAGS -lXrender -lfreetype -lfontconfig" - fi -else - PKG_CHECK_MODULES(CAIRO, cairo >= $CAIRO_VERSION pixman-1 freetype2 fontconfig) - MOZ_CAIRO_LIBS=$CAIRO_LIBS - 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" - fi -fi - -AC_SUBST(MOZ_CAIRO_LIBS) - -dnl qcms -dnl ======================================================== - -QCMS_LIBS='$(call EXPAND_LIBNAME_PATH,mozqcms,$(DEPTH)/gfx/qcms)' -AC_SUBST(QCMS_LIBS) - - -dnl ======================================================== -dnl HarfBuzz -dnl ======================================================== -MOZ_HARFBUZZ_LIBS='$(DEPTH)/mozilla/gfx/harfbuzz/src/$(LIB_PREFIX)mozharfbuzz.$(LIB_SUFFIX)' -AC_SUBST(MOZ_HARFBUZZ_LIBS) - -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) -fi - -AC_SUBST(MOZ_XUL) - -dnl ======================================================== -dnl disable profile locking -dnl do no use this in applications that can have more than -dnl one process accessing the profile directory. -dnl ======================================================== -MOZ_ARG_DISABLE_BOOL(profilelocking, -[ --disable-profilelocking Disable profile locking], - MOZ_PROFILELOCKING=, - MOZ_PROFILELOCKING=1 ) -if test "$MOZ_PROFILELOCKING"; then - AC_DEFINE(MOZ_PROFILELOCKING) -fi - -dnl ======================================================== -dnl disable rdf services -dnl ======================================================== -MOZ_ARG_DISABLE_BOOL(rdf, -[ --disable-rdf Disable RDF], - MOZ_RDF= ) -if test "$MOZ_RDF"; then - AC_DEFINE(MOZ_RDF) -fi - -AC_SUBST(MOZ_RDF) - -dnl -dnl option to disable necko's wifi scanner -dnl -MOZ_ARG_DISABLE_BOOL(necko-wifi, -[ --disable-necko-wifi Disable necko wifi scanner], - NECKO_WIFI=, - NECKO_WIFI=1) - -if test "$OS_ARCH" = "OS2"; then - dnl OS/2 implementation of Necko-WiFi support will be added in bug 506566 - NECKO_WIFI= -fi -if test "$NECKO_WIFI" -a \ - "$OS_ARCH" != "Linux" -a \ - "$OS_ARCH" != "Darwin" -a \ - "$OS_ARCH" != "SunOS" -a \ - "$OS_ARCH" != "WINNT"; then - AC_MSG_ERROR([Necko WiFi scanning not supported on your platform, use --disable-necko-wifi]) -fi - -if test "$NECKO_WIFI"; then - AC_DEFINE(NECKO_WIFI) -fi -AC_SUBST(NECKO_WIFI) - -dnl -dnl Build jsctypes on the platforms we can, unless it's explicitly disabled. -dnl -MOZ_ARG_DISABLE_BOOL(ctypes, -[ --disable-ctypes Disable js-ctypes], - BUILD_CTYPES=, - BUILD_CTYPES=1) -AC_SUBST(BUILD_CTYPES) -if test "$BUILD_CTYPES"; then - AC_DEFINE(BUILD_CTYPES) -fi - -AC_SUBST(MOZ_PLACES) -if test "$MOZ_PLACES"; then - AC_DEFINE(MOZ_PLACES) -fi - -dnl Build Apps in the Cloud (AITC) if required -AC_SUBST(MOZ_SERVICES_AITC) -if test -n "$MOZ_SERVICES_AITC"; then - AC_DEFINE(MOZ_SERVICES_AITC) -fi - -dnl Build Common JS modules provided by services. -AC_SUBST(MOZ_SERVICES_COMMON) -if test -n "$MOZ_SERVICES_COMMON"; then - AC_DEFINE(MOZ_SERVICES_COMMON) -fi - -dnl Build Services crypto component (used by Sync) -AC_SUBST(MOZ_SERVICES_CRYPTO) -if test -n "$MOZ_SERVICES_CRYPTO"; then - AC_DEFINE(MOZ_SERVICES_CRYPTO) -fi - -dnl Build Notifications if required -AC_SUBST(MOZ_SERVICES_NOTIFICATIONS) -if test -n "$MOZ_SERVICES_NOTIFICATIONS"; then - AC_DEFINE(MOZ_SERVICES_NOTIFICATIONS) -fi - -dnl Build Sync Services if required -AC_SUBST(MOZ_SERVICES_SYNC) -if test -n "$MOZ_SERVICES_SYNC"; then - AC_DEFINE(MOZ_SERVICES_SYNC) -fi - -dnl ======================================================== -if test "$MOZ_DEBUG" -o "$NS_TRACE_MALLOC"; then - MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS= -fi - -dnl ======================================================== -dnl = -dnl = Maintainer debug option (no --enable equivalent) -dnl = -dnl ======================================================== - -AC_SUBST(AR) -AC_SUBST(AR_FLAGS) -AC_SUBST(AR_LIST) -AC_SUBST(AR_EXTRACT) -AC_SUBST(AR_DELETE) -AC_SUBST(AS) -AC_SUBST(ASFLAGS) -AC_SUBST(AS_DASH_C_FLAG) -AC_SUBST(LD) -AC_SUBST(RC) -AC_SUBST(RCFLAGS) -AC_SUBST(WINDRES) -AC_SUBST(IMPLIB) -AC_SUBST(FILTER) -AC_SUBST(BIN_FLAGS) -AC_SUBST(NS_USE_NATIVE) -AC_SUBST(MOZ_WIDGET_TOOLKIT) -AC_SUBST(MOZ_UPDATE_XTERM) -AC_SUBST(MINIMO) -AC_SUBST(MOZ_AUTH_EXTENSION) -AC_SUBST(MOZ_PERMISSIONS) -AC_SUBST(MOZ_XTF) -AC_SUBST(MOZ_PREF_EXTENSIONS) -AC_SUBST(MOZ_XSLT_STANDALONE) -AC_SUBST(MOZ_JS_LIBS) -AC_SUBST(MOZ_PSM) -AC_SUBST(MOZ_DEBUG) -AC_SUBST(MOZ_DEBUG_SYMBOLS) -AC_SUBST(MOZ_DEBUG_ENABLE_DEFS) -AC_SUBST(MOZ_DEBUG_DISABLE_DEFS) -AC_SUBST(MOZ_DEBUG_FLAGS) -AC_SUBST(MOZ_DEBUG_LDFLAGS) -AC_SUBST(WARNINGS_AS_ERRORS) -AC_SUBST(MOZ_JSDEBUGGER) -AC_SUBST(MOZ_PLUGINS) -AC_SUBST(MOZ_LOG_REFCNT) -AC_SUBST(MOZ_ENABLE_PROFILER_SPS) -AC_SUBST(MOZ_JPROF) -AC_SUBST(MOZ_SHARK) -AC_SUBST(MOZ_PROFILING) -AC_SUBST(LIBICONV) -AC_SUBST(MOZ_PLACES_BOOKMARKS) -AC_SUBST(MOZ_STORAGE) -AC_SUBST(MOZ_FEEDS) -AC_SUBST(NS_PRINTING) -AC_SUBST(MOZ_HELP_VIEWER) - -AC_SUBST(MOZ_PROFILELOCKING) - -AC_SUBST(ENABLE_TESTS) -AC_SUBST(IBMBIDI) -AC_SUBST(MOZ_UNIVERSALCHARDET) -AC_SUBST(ACCESSIBILITY) -AC_SUBST(MOZ_SPELLCHECK) -AC_SUBST(MOZ_USER_DIR) -AC_SUBST(MOZ_CRASHREPORTER) -AC_SUBST(MOZ_CRASHREPORTER_INJECTOR) -AC_SUBST(MOZ_MAINTENANCE_SERVICE) -AC_SUBST(MOZ_VERIFY_MAR_SIGNATURE) -AC_SUBST(MOZ_ANGLE_RENDERER) -AC_SUBST(MOZ_DIRECTX_SDK_PATH) -AC_SUBST(MOZ_DIRECTX_SDK_CPU_SUFFIX) -AC_SUBST(MOZ_D3DX9_VERSION) -AC_SUBST(MOZ_D3DCOMPILER_CAB) -AC_SUBST(MOZ_D3DCOMPILER_DLL) - -AC_SUBST(ENABLE_STRIP) -AC_SUBST(PKG_SKIP_STRIP) -AC_SUBST(STRIP_FLAGS) -AC_SUBST(USE_ELF_DYNSTR_GC) -AC_SUBST(INCREMENTAL_LINKER) -AC_SUBST(MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS) -AC_SUBST(MOZ_COMPONENT_NSPR_LIBS) - -AC_SUBST(MOZ_FIX_LINK_PATHS) -AC_SUBST(XPCOM_LIBS) -AC_SUBST(XPCOM_FROZEN_LDOPTS) -AC_SUBST(XPCOM_GLUE_LDOPTS) -AC_SUBST(XPCOM_STANDALONE_GLUE_LDOPTS) -AC_SUBST(XPCOM_STATICRUNTIME_GLUE_LDOPTS) -AC_SUBST(XPCOM_STANDALONE_STATICRUNTIME_GLUE_LDOPTS) - -AC_SUBST(USE_DEPENDENT_LIBS) - -AC_SUBST(MOZ_BUILD_ROOT) -AC_SUBST(MOZ_OS2_TOOLS) - -AC_SUBST(MOZ_POST_DSO_LIB_COMMAND) -AC_SUBST(MOZ_POST_PROGRAM_COMMAND) -AC_SUBST(MOZ_TIMELINE) - -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) - -# For extensions and langpacks, we require a max version that is compatible -# across security releases. MOZ_APP_MAXVERSION is our method for doing that. -# 10.0a1 and 10.0a2 aren't affected -# 10.0 becomes 10.0.* -# 10.0.1 becomes 10.0.* -IS_ALPHA=`echo $MOZ_APP_VERSION | grep a` -if test -z "$IS_ALPHA"; then - changequote(,) - MOZ_APP_MAXVERSION=`echo $MOZ_APP_VERSION | sed "s|\(^[0-9]*.[0-9]*\).*|\1|"`.* - changequote([,]) -else - MOZ_APP_MAXVERSION=$MOZ_APP_VERSION -fi - -AC_SUBST(MOZ_APP_NAME) -AC_SUBST(MOZ_APP_DISPLAYNAME) -AC_SUBST(MOZ_APP_VERSION) -AC_SUBST(MOZ_APP_MAXVERSION) -AC_SUBST(MOZ_APP_VENDOR) -AC_SUBST(MOZ_APP_ID) -AC_SUBST(MAR_CHANNEL_ID) -AC_SUBST(ACCEPTED_MAR_CHANNEL_IDS) -AC_SUBST(FIREFOX_VERSION) -AC_SUBST(THUNDERBIRD_VERSION) -AC_SUBST(SUNBIRD_VERSION) -AC_SUBST(SEAMONKEY_VERSION) -AC_DEFINE_UNQUOTED(MOZ_UA_BUILDID, "$MOZ_UA_BUILDID") -AC_SUBST(MOZ_UA_BUILDID) - -AC_SUBST(MOZ_PKG_SPECIAL) - -AC_SUBST(MAIL_PKG_SHARED) - -AC_SUBST(MOZILLA_OFFICIAL) - -dnl win32 options -AC_SUBST(MOZ_MAPINFO) -AC_SUBST(MOZ_BROWSE_INFO) -AC_SUBST(MOZ_TOOLS_DIR) -AC_SUBST(MAKENSISU) - -dnl Echo the CFLAGS to remove extra whitespace. -CFLAGS=`echo \ - $_WARNINGS_CFLAGS \ - $CFLAGS` - -CXXFLAGS=`echo \ - $_WARNINGS_CXXFLAGS \ - $CXXFLAGS` - -COMPILE_CFLAGS=`echo \ - $_DEFINES_CFLAGS \ - $_DEPEND_CFLAGS \ - $COMPILE_CFLAGS` - -COMPILE_CXXFLAGS=`echo \ - $_DEFINES_CXXFLAGS \ - $_DEPEND_CFLAGS \ - $COMPILE_CXXFLAGS` - -AC_SUBST(SYSTEM_LIBXUL) -AC_SUBST(MOZ_NATIVE_JPEG) -AC_SUBST(MOZ_NATIVE_PNG) -AC_SUBST(MOZ_NATIVE_BZ2) - -AC_SUBST(MOZ_JPEG_CFLAGS) -AC_SUBST(MOZ_JPEG_LIBS) -AC_SUBST(MOZ_BZ2_CFLAGS) -AC_SUBST(MOZ_BZ2_LIBS) -AC_SUBST(MOZ_PNG_CFLAGS) -AC_SUBST(MOZ_PNG_LIBS) - -AC_SUBST(NSPR_CFLAGS) -AC_SUBST(NSPR_LIBS) -AC_SUBST(MOZ_NATIVE_NSPR) - -AC_SUBST(NSS_CFLAGS) -AC_SUBST(NSS_LIBS) -AC_SUBST(NSS_DEP_LIBS) -AC_SUBST(MOZ_NATIVE_NSS) -AC_SUBST(NSS_DISABLE_DBM) - -OS_CFLAGS="$CFLAGS" -OS_CXXFLAGS="$CXXFLAGS" -OS_CPPFLAGS="$CPPFLAGS" -OS_COMPILE_CFLAGS="$COMPILE_CFLAGS" -OS_COMPILE_CXXFLAGS="$COMPILE_CXXFLAGS" -OS_LDFLAGS="$LDFLAGS" -OS_LIBS="$LIBS" -AC_SUBST(OS_CFLAGS) -AC_SUBST(OS_CXXFLAGS) -AC_SUBST(OS_CPPFLAGS) -AC_SUBST(OS_COMPILE_CFLAGS) -AC_SUBST(OS_COMPILE_CXXFLAGS) -AC_SUBST(OS_LDFLAGS) -AC_SUBST(OS_LIBS) -AC_SUBST(CROSS_COMPILE) - -AC_SUBST(HOST_CC) -AC_SUBST(HOST_CXX) -AC_SUBST(HOST_CFLAGS) -AC_SUBST(HOST_CXXFLAGS) -AC_SUBST(HOST_LDFLAGS) -AC_SUBST(HOST_OPTIMIZE_FLAGS) -AC_SUBST(HOST_AR) -AC_SUBST(HOST_AR_FLAGS) -AC_SUBST(HOST_LD) -AC_SUBST(HOST_RANLIB) -AC_SUBST(HOST_NSPR_MDCPUCFG) -AC_SUBST(HOST_BIN_SUFFIX) -AC_SUBST(HOST_OS_ARCH) - -AC_SUBST(TARGET_CPU) -AC_SUBST(TARGET_VENDOR) -AC_SUBST(TARGET_OS) -AC_SUBST(TARGET_NSPR_MDCPUCFG) -AC_SUBST(TARGET_MD_ARCH) -AC_SUBST(TARGET_XPCOM_ABI) -AC_SUBST(OS_TARGET) -AC_SUBST(OS_ARCH) -AC_SUBST(OS_RELEASE) -AC_SUBST(OS_TEST) -AC_SUBST(CPU_ARCH) -AC_SUBST(INTEL_ARCHITECTURE) - -AC_SUBST(MOZ_DISABLE_JAR_PACKAGING) -AC_SUBST(MOZ_CHROME_FILE_FORMAT) - -AC_SUBST(WRAP_LDFLAGS) -AC_SUBST(MKSHLIB) -AC_SUBST(MKCSHLIB) -AC_SUBST(MKSHLIB_FORCE_ALL) -AC_SUBST(MKSHLIB_UNFORCE_ALL) -AC_SUBST(DSO_CFLAGS) -AC_SUBST(DSO_PIC_CFLAGS) -AC_SUBST(DSO_LDOPTS) -AC_SUBST(LIB_PREFIX) -AC_SUBST(DLL_PREFIX) -AC_SUBST(DLL_SUFFIX) -AC_DEFINE_UNQUOTED(MOZ_DLL_SUFFIX, "$DLL_SUFFIX") -AC_SUBST(LIB_SUFFIX) -AC_SUBST(OBJ_SUFFIX) -AC_SUBST(BIN_SUFFIX) -AC_SUBST(ASM_SUFFIX) -AC_SUBST(IMPORT_LIB_SUFFIX) -AC_SUBST(USE_N32) -AC_SUBST(CC_VERSION) -AC_SUBST(CXX_VERSION) -AC_SUBST(MSMANIFEST_TOOL) - -if test "$USING_HCC"; then - CC='${MOZILLA_SRCDIR}/build/hcc' - CC="$CC '$_OLDCC'" - CXX='${MOZILLA_SRCDIR}/build/hcpp' - CXX="$CXX '$_OLDCXX'" - AC_SUBST(CC) - AC_SUBST(CXX) -fi - -dnl Check for missing components -if test "$COMPILE_ENVIRONMENT"; then -if test "$MOZ_X11"; then - dnl ==================================================== - dnl = Check if X headers exist - dnl ==================================================== - _SAVE_CFLAGS=$CFLAGS - CFLAGS="$CFLAGS $XCFLAGS" - AC_TRY_COMPILE([ - #include - #include - #include - #include - ], - [ - Display *dpy = 0; - if ((dpy = XOpenDisplay(NULL)) == NULL) { - fprintf(stderr, ": can't open %s\n", XDisplayName(NULL)); - exit(1); - } - ], [], - [ AC_MSG_ERROR([Could not compile basic X program.]) ]) - CFLAGS="$_SAVE_CFLAGS" - -fi # MOZ_X11 -fi # COMPILE_ENVIRONMENT - -dnl Set various defines and substitutions -dnl ======================================================== - -if test "$OS_ARCH" = "Darwin"; then - AC_DEFINE(XP_UNIX) - AC_DEFINE(UNIX_ASYNC_DNS) -elif test "$OS_ARCH" != "WINNT" -a "$OS_ARCH" != "OS2"; then - AC_DEFINE(XP_UNIX) - AC_DEFINE(UNIX_ASYNC_DNS) -fi - -if test "$ACCESSIBILITY" -a "$MOZ_ENABLE_GTK2" ; 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 - case "$host_os" in mingw*) WIN_TOP_SRC=`cd $srcdir; pwd -W` ;; esac -AC_SUBST(WIN_TOP_SRC) - -AC_SUBST(MOZILLA_VERSION) - -AC_SUBST(ac_configure_args) - -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_2BYTE_WCHAR_T -HAVE_CPP_ACCESS_CHANGING_USING -HAVE_CPP_AMBIGUITY_RESOLVING_USING -HAVE_CPP_BOOL -HAVE_CPP_CHAR16_T -HAVE_CPP_DYNAMIC_CAST_TO_VOID_PTR -HAVE_CPP_EXPLICIT -HAVE_CPP_MODERN_SPECIALIZE_TEMPLATE_SYNTAX -HAVE_CPP_NAMESPACE_STD -HAVE_CPP_NEW_CASTS -HAVE_CPP_PARTIAL_SPECIALIZATION -HAVE_CPP_TROUBLE_COMPARING_TO_ZERO -HAVE_CPP_TYPENAME -HAVE_CPP_UNAMBIGUOUS_STD_NOTEQUAL -HAVE_STATVFS -HAVE_STATVFS64 -NEED_CPP_UNUSED_IMPLEMENTATIONS -NEW_H -HAVE_GETPAGESIZE -HAVE_ICONV -HAVE_ICONV_WITH_CONST_INPUT -HAVE_MBRTOWC -HAVE_SYS_MOUNT_H -HAVE_SYS_VFS_H -HAVE_WCRTOMB -" - -# Hack around an Apple bug that effects the egrep that comes with OS X 10.7. -# "arch -arch i386 egrep" always uses the 32-bit Intel part of the egrep fat -# binary, even on 64-bit systems. We (apparently) only need this hack when -# egrep's "pattern" is particularly long (as in the following code). -# See bug 655339. -case "$host" in -*-apple-darwin11*) - FIXED_EGREP="arch -arch i386 egrep" - ;; -*) - FIXED_EGREP="egrep" - ;; -esac - -AC_OUTPUT([config/autoconf.mk]) +# These lines do no useful work, but if we don't have them, then the output +# configure script is really messed up. +touch confdefs.pytmp +AC_OUTPUT([]) # Build the config.status for comm-central changequote(<<<,>>>)dnl @@ -6386,30 +237,6 @@ changequote([,])dnl # Make the config.status file executable chmod +x $CONFIG_STATUS -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_LDFLAGS="$_SUBDIR_HOST_LDFLAGS" -RC= - -unset CONFIG_FILES - -export WRAP_LDFLAGS - -if test -n "$_WRAP_MALLOC"; then - # Avoid doubling wrap malloc arguments - _SUBDIR_CONFIG_ARGS="`echo $_SUBDIR_CONFIG_ARGS | sed -e 's/--enable-wrap-malloc *//'`" -fi - if test -n "$UNIFY_DIST"; then # Make --with-unify-dist point to the right path _SUBDIR_CONFIG_ARGS="$_SUBDIR_CONFIG_ARGS --with-unify-dist=$UNIFY_DIST" @@ -6445,7 +272,6 @@ if test -n "$MOZ_CURRENT_PROJECT"; then fi AC_OUTPUT_SUBDIRS(mozilla) -ac_configure_args="$_SUBDIR_CONFIG_ARGS" MOZ_BUILD_APP="$MOZ_BUILD_APP_CACHED" # Build the comm-central files with config.status