mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-08 20:47:44 +00:00
7745 lines
248 KiB
Plaintext
7745 lines
248 KiB
Plaintext
dnl -*- Mode: Autoconf; tab-width: 4; indent-tabs-mode: nil; -*-
|
|
dnl vi: set tabstop=4 shiftwidth=4 expandtab:
|
|
dnl ***** BEGIN LICENSE BLOCK *****
|
|
dnl Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
|
dnl
|
|
dnl The contents of this file are subject to the Mozilla Public License Version
|
|
dnl 1.1 (the "License"); you may not use this file except in compliance with
|
|
dnl the License. You may obtain a copy of the License at
|
|
dnl http://www.mozilla.org/MPL/
|
|
dnl
|
|
dnl Software distributed under the License is distributed on an "AS IS" basis,
|
|
dnl WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
dnl for the specific language governing rights and limitations under the
|
|
dnl License.
|
|
dnl
|
|
dnl The Original Code is this file as it was released upon August 6, 1998.
|
|
dnl
|
|
dnl The Initial Developer of the Original Code is
|
|
dnl Christopher Seawood.
|
|
dnl Portions created by the Initial Developer are Copyright (C) 1998-2001
|
|
dnl the Initial Developer. All Rights Reserved.
|
|
dnl
|
|
dnl Contributor(s):
|
|
dnl Jamie Zawinski <jwz@jwz.org>
|
|
dnl gettimeofday args check
|
|
dnl Christopher Blizzard <blizzard@appliedtheory.com>
|
|
dnl gnomefe update & enable-pthreads
|
|
dnl Ramiro Estrugo <ramiro@netscape.com>
|
|
dnl X11 makedepend support
|
|
dnl Insure support.
|
|
dnl Henry Sobotka <sobotka@axess.com>
|
|
dnl OS/2 support
|
|
dnl Dan Mosedale <dmose@mozilla.org>
|
|
dnl LDAP support
|
|
dnl Seth Spitzer <sspitzer@netscape.com>
|
|
dnl xpctools support
|
|
dnl Benjamin Smedberg <benjamin@smedbergs.us>
|
|
dnl Howard Chu <hyc@symas.com>
|
|
dnl MSYS support
|
|
dnl Mark Mentovai <mark@moxienet.com>:
|
|
dnl Mac OS X 10.4 support
|
|
dnl Giorgio Maone <g.maone@informaction.com>
|
|
dnl MSVC l10n compatible version check
|
|
dnl
|
|
dnl Alternatively, the contents of this file may be used under the terms of
|
|
dnl either the GNU General Public License Version 2 or later (the "GPL"), or
|
|
dnl the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
|
dnl in which case the provisions of the GPL or the LGPL are applicable instead
|
|
dnl of those above. If you wish to allow use of your version of this file only
|
|
dnl under the terms of either the GPL or the LGPL, and not to allow others to
|
|
dnl use your version of this file under the terms of the MPL, indicate your
|
|
dnl decision by deleting the provisions above and replace them with the notice
|
|
dnl and other provisions required by the GPL or the LGPL. If you do not delete
|
|
dnl the provisions above, a recipient may use your version of this file under
|
|
dnl the terms of any one of the MPL, the GPL or the LGPL.
|
|
dnl
|
|
dnl ***** END LICENSE BLOCK *****
|
|
|
|
dnl Process this file with autoconf to produce a configure script.
|
|
dnl ========================================================
|
|
|
|
AC_PREREQ(2.13)
|
|
AC_INIT(config/config.mk)
|
|
AC_CONFIG_AUX_DIR(${srcdir}/build/autoconf)
|
|
AC_CANONICAL_SYSTEM
|
|
TARGET_CPU="${target_cpu}"
|
|
TARGET_VENDOR="${target_vendor}"
|
|
TARGET_OS="${target_os}"
|
|
|
|
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=10207
|
|
MOZZLIB=1.2.3
|
|
NSPR_VERSION=4
|
|
NSS_VERSION=3
|
|
|
|
dnl Set the minimum version of toolkit libs used by mozilla
|
|
dnl ========================================================
|
|
GLIB_VERSION=1.2.0
|
|
GTK_VERSION=1.2.0
|
|
LIBIDL_VERSION=0.6.3
|
|
PERL_VERSION=5.004
|
|
QT_VERSION=3.2.0
|
|
QT_VERSION_NUM=320
|
|
LIBART_VERSION=2.3.4
|
|
CAIRO_VERSION=0.9.1
|
|
GLITZ_VERSION=0.4.0
|
|
GTK2_VERSION=1.3.7
|
|
MAKE_VERSION=3.78
|
|
WINDRES_VERSION=2.14.90
|
|
W32API_VERSION=2.4
|
|
GNOMEVFS_VERSION=2.0
|
|
GNOMEUI_VERSION=2.2.0
|
|
GCONF_VERSION=1.2.1
|
|
LIBGNOME_VERSION=2.0
|
|
|
|
MSMANIFEST_TOOL=
|
|
|
|
dnl Set various checks
|
|
dnl ========================================================
|
|
MISSING_X=
|
|
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`
|
|
_objdir=`pwd`
|
|
if test "$_topsrcdir" != "$_objdir"
|
|
then
|
|
# Check for a couple representative files in the source tree
|
|
_conflict_files=
|
|
for file in $_topsrcdir/Makefile $_topsrcdir/config/autoconf.mk; do
|
|
if test -f $file; then
|
|
_conflict_files="$_conflict_files $file"
|
|
fi
|
|
done
|
|
if test "$_conflict_files"; then
|
|
echo "***"
|
|
echo "* Your source tree contains these files:"
|
|
for file in $_conflict_files; do
|
|
echo "* $file"
|
|
done
|
|
cat 1>&2 <<-EOF
|
|
* This indicates that you previously built in the source tree.
|
|
* A source tree build can confuse the separate objdir build.
|
|
*
|
|
* To clean up the source tree:
|
|
* 1. cd $_topsrcdir
|
|
* 2. gmake distclean
|
|
***
|
|
EOF
|
|
exit 1
|
|
break
|
|
fi
|
|
fi
|
|
MOZ_BUILD_ROOT=`pwd`
|
|
|
|
dnl Default to MSVC for win32
|
|
dnl ==============================================================
|
|
if test -z "$CROSS_COMPILE"; then
|
|
case "$target" in
|
|
*-cygwin*|*-mingw*|*-msvc*|*-mks*)
|
|
MAKE_VERSION=3.79
|
|
if test -z "$CC"; then CC=cl; fi
|
|
if test -z "$CXX"; then CXX=cl; fi
|
|
if test -z "$CPP"; then CPP=cl; fi
|
|
if test -z "$LD"; then LD=link; fi
|
|
if test -z "$AS"; then AS=ml; fi
|
|
if test -z "$MIDL"; then MIDL=midl; fi
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
COMPILE_ENVIRONMENT=1
|
|
MOZ_ARG_ENABLE_BOOL(compile-environment,
|
|
[ --disable-compile-environment
|
|
Disable compiler/library checks.],
|
|
COMPILE_ENVIRONMENT=1,
|
|
COMPILE_ENVIRONMENT= )
|
|
|
|
AC_PATH_PROGS(NSINSTALL_BIN, nsinstall )
|
|
if test -z "$COMPILE_ENVIRONMENT"; then
|
|
if test -z "$NSINSTALL_BIN" || test "$NSINSTALL_BIN" = ":"; then
|
|
AC_MSG_ERROR([nsinstall not found in \$PATH])
|
|
fi
|
|
fi
|
|
AC_SUBST(NSINSTALL_BIN)
|
|
|
|
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 ========================================================
|
|
|
|
if test "$COMPILE_ENVIRONMENT"; then
|
|
|
|
dnl Do some special WinCE toolchain stuff
|
|
case "$target" in
|
|
*wince)
|
|
echo -----------------------------------------------------------------------------
|
|
echo Building Windows CE Shunt Library and Tool Chain
|
|
echo -----------------------------------------------------------------------------
|
|
|
|
echo -n "#define TOPSRCDIR \"" > $srcdir/build/wince/tools/topsrcdir.h
|
|
`$srcdir/build/cygwin-wrapper echo -n $_topsrcdir >> $srcdir/build/wince/tools/topsrcdir.h`
|
|
echo -n \" >> $srcdir/build/wince/tools/topsrcdir.h
|
|
|
|
make -C $srcdir/build/wince/tools
|
|
echo -----------------------------------------------------------------------------
|
|
;;
|
|
esac
|
|
|
|
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
|
|
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
|
|
|
|
case "$build:$target" in
|
|
powerpc-apple-darwin8*:i?86-apple-darwin*)
|
|
dnl The Darwin cross compiler doesn't necessarily point itself at a
|
|
dnl root that has libraries for the proper architecture, it defaults
|
|
dnl to the system root. The libraries in the system root on current
|
|
dnl versions of PPC OS X 10.4 aren't fat, so these target compiler
|
|
dnl checks will fail. Fake a working SDK in that case.
|
|
_SAVE_CFLAGS=$CFLAGS
|
|
_SAVE_CXXFLAGS=$CXXLAGS
|
|
CFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk $CFLAGS"
|
|
CXXFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk $CXXFLAGS"
|
|
;;
|
|
esac
|
|
|
|
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
|
|
|
|
case "$build:$target" in
|
|
powerpc-apple-darwin8*:i?86-apple-darwin*)
|
|
dnl Revert the changes made above. From this point on, the target
|
|
dnl compiler will never be used without applying the SDK to CFLAGS
|
|
dnl (see --with-macos-sdk below).
|
|
CFLAGS=$_SAVE_CFLAGS
|
|
CXXFLAGS=$_SAVE_CXXFLAGS
|
|
;;
|
|
esac
|
|
|
|
AC_CHECK_PROGS(RANLIB, $RANLIB "${target_alias}-ranlib" "${target}-ranlib", :)
|
|
AC_CHECK_PROGS(AR, $AR "${target_alias}-ar" "${target}-ar", :)
|
|
AC_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
|
|
AC_PROG_CXX
|
|
AC_PROG_RANLIB
|
|
AC_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
|
|
fi
|
|
|
|
GNU_AS=
|
|
GNU_LD=
|
|
GNU_CC=
|
|
GNU_CXX=
|
|
CC_VERSION='N/A'
|
|
CXX_VERSION='N/A'
|
|
if test "$GCC" = "yes"; then
|
|
GNU_CC=1
|
|
CC_VERSION=`$CC -v 2>&1 | grep 'gcc version'`
|
|
fi
|
|
if test "$GXX" = "yes"; then
|
|
GNU_CXX=1
|
|
CXX_VERSION=`$CXX -v 2>&1 | grep 'gcc version'`
|
|
fi
|
|
if test "`echo | $AS -v 2>&1 | grep -c GNU`" != "0"; then
|
|
GNU_AS=1
|
|
fi
|
|
if test "`echo | $LD -v 2>&1 | grep -c GNU`" != "0"; then
|
|
GNU_LD=1
|
|
fi
|
|
if test "$GNU_CC"; then
|
|
if `$CC -print-prog-name=ld` -v 2>&1 | grep -c GNU >/dev/null; then
|
|
GCC_USE_GNU_LD=1
|
|
fi
|
|
fi
|
|
|
|
dnl Special win32 checks
|
|
dnl ========================================================
|
|
case "$target" in
|
|
*-wince)
|
|
WINVER=400
|
|
;;
|
|
*)
|
|
WINVER=500
|
|
;;
|
|
esac
|
|
|
|
MOZ_ARG_WITH_STRING(windows-version,
|
|
[ --with-windows-version=400|500 Minimum Windows version to support
|
|
400: Windows 95; 500: Windows 2000],
|
|
WINVER=$withval)
|
|
|
|
case "$WINVER" in
|
|
400|500)
|
|
;;
|
|
|
|
*)
|
|
AC_MSG_ERROR([Invalid value --with-windows-version, must be 400 or 500]);
|
|
;;
|
|
|
|
esac
|
|
|
|
case "$target" in
|
|
*-cygwin*|*-mingw*|*-msvc*|*-mks*|*-wince)
|
|
if test "$GCC" != "yes"; then
|
|
# Check to see if we are really running in a msvc environemnt
|
|
_WIN32_MSVC=1
|
|
AC_CHECK_PROGS(MIDL, midl)
|
|
|
|
# Make sure compilers are valid
|
|
CFLAGS="$CFLAGS -TC -nologo"
|
|
CXXFLAGS="$CXXFLAGS -TP -nologo"
|
|
AC_LANG_SAVE
|
|
AC_LANG_C
|
|
AC_TRY_COMPILE([#include <stdio.h>],
|
|
[ printf("Hello World\n"); ],,
|
|
AC_MSG_ERROR([\$(CC) test failed. You must have MS VC++ in your path to build.]) )
|
|
|
|
AC_LANG_CPLUSPLUS
|
|
AC_TRY_COMPILE([#include <new.h>],
|
|
[ unsigned *test = new unsigned(42); ],,
|
|
AC_MSG_ERROR([\$(CXX) test failed. You must have MS VC++ in your path to build.]) )
|
|
AC_LANG_RESTORE
|
|
|
|
changequote(,)
|
|
_MSVC_VER_FILTER='s|.* \([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*|\1|p'
|
|
changequote([,])
|
|
|
|
# Determine compiler version
|
|
CC_VERSION=`"${CC}" -v 2>&1 | sed -ne "$_MSVC_VER_FILTER"`
|
|
_CC_MAJOR_VERSION=`echo ${CC_VERSION} | $AWK -F\. '{ print $1 }'`
|
|
_CC_MINOR_VERSION=`echo ${CC_VERSION} | $AWK -F\. '{ print $2 }'`
|
|
_MSC_VER=${_CC_MAJOR_VERSION}${_CC_MINOR_VERSION}
|
|
|
|
CXX_VERSION=`"${CXX}" -v 2>&1 | sed -ne "$_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" = "12"; then
|
|
_CC_SUITE=6
|
|
elif test "$_CC_MAJOR_VERSION" = "13"; then
|
|
_CC_SUITE=7
|
|
elif test "$_CC_MAJOR_VERSION" = "14"; then
|
|
_CC_SUITE=8
|
|
CXXFLAGS="$CXXFLAGS -Zc:wchar_t-"
|
|
AC_DEFINE(_CRT_SECURE_NO_DEPRECATE)
|
|
AC_DEFINE(_CRT_NONSTDC_NO_DEPRECATE)
|
|
else
|
|
AC_MSG_ERROR([This version of the MSVC compiler, $CC_VERSION , is unsupported.])
|
|
fi
|
|
|
|
_MOZ_RTTI_FLAGS_ON='-GR'
|
|
_MOZ_RTTI_FLAGS_OFF='-GR-'
|
|
_MOZ_EXCEPTIONS_FLAGS_ON='-EHsc'
|
|
_MOZ_EXCEPTIONS_FLAGS_OFF=''
|
|
|
|
if test -n "$WIN32_REDIST_DIR"; then
|
|
WIN32_REDIST_DIR=`cd "$WIN32_REDIST_DIR" && pwd`
|
|
fi
|
|
|
|
# bug #249782
|
|
# ensure that mt.exe is Microsoft (R) Manifest Tool and not magnetic tape manipulation utility (or something else)
|
|
if test "$_CC_SUITE" -ge "8"; then
|
|
MSMT_TOOL=`mt 2>&1|grep 'Microsoft (R) Manifest Tool'`
|
|
if test -n "MSMT_TOOL"; then
|
|
MSMANIFEST_TOOL_VERSION=`echo ${MSMANIFEST_TOOL}|grep -Po "(^|\s)[0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+)?(\s|$)"`
|
|
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
|
|
else
|
|
AC_MSG_ERROR([Microsoft (R) Manifest Tool must be in your \$PATH.])
|
|
fi
|
|
fi
|
|
|
|
# Check linker version
|
|
_LD_FULL_VERSION=`"${LD}" -v 2>&1 | sed -ne "$_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 -ne "$_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])
|
|
if test \( "$_MIDL_MAJOR_VERSION" -gt "6" \) -o \( "$_MIDL_MAJOR_VERSION" = "6" -a "$_MIDL_MINOR_VERSION" -gt "0" \) -o \( "$_MIDL_MAJOR_VERSION" = "6" -a "$_MIDL_MINOR_VERSION" = "00" -a "$_MIDL_REV_VERSION" -gt "359" \); then
|
|
# Starting with MIDL version 6.0.359, the MIDL compiler
|
|
# generates /Oicf /robust stubs by default, which is not
|
|
# compatible with versions of Windows older than Win2k.
|
|
# This switches us back to the old behaviour. When we drop
|
|
# support for Windows older than Win2k, we should remove
|
|
# this.
|
|
MIDL_FLAGS="${MIDL_FLAGS} -no_robust"
|
|
AC_MSG_RESULT([need -no_robust])
|
|
else
|
|
MIDL_FLAGS="${MIDL_FLAGS}"
|
|
AC_MSG_RESULT([none needed])
|
|
fi
|
|
|
|
unset _MSVC_VER_FILTER
|
|
|
|
else
|
|
# Check w32api version
|
|
_W32API_MAJOR_VERSION=`echo $W32API_VERSION | $AWK -F\. '{ print $1 }'`
|
|
_W32API_MINOR_VERSION=`echo $W32API_VERSION | $AWK -F\. '{ print $2 }'`
|
|
AC_MSG_CHECKING([for w32api version >= $W32API_VERSION])
|
|
AC_TRY_COMPILE([#include <w32api.h>],
|
|
#if (__W32API_MAJOR_VERSION < $_W32API_MAJOR_VERSION) || \
|
|
(__W32API_MAJOR_VERSION == $_W32API_MAJOR_VERSION && \
|
|
__W32API_MINOR_VERSION < $_W32API_MINOR_VERSION)
|
|
#error "test failed."
|
|
#endif
|
|
, [ res=yes ], [ res=no ])
|
|
AC_MSG_RESULT([$res])
|
|
if test "$res" != "yes"; then
|
|
AC_MSG_ERROR([w32api version $W32API_VERSION or higher required.])
|
|
fi
|
|
# Check windres version
|
|
AC_MSG_CHECKING([for windres version >= $WINDRES_VERSION])
|
|
_WINDRES_VERSION=`${WINDRES} --version 2>&1 | grep -i windres 2>/dev/null | $AWK '{ print $3 }'`
|
|
AC_MSG_RESULT([$_WINDRES_VERSION])
|
|
_WINDRES_MAJOR_VERSION=`echo $_WINDRES_VERSION | $AWK -F\. '{ print $1 }'`
|
|
_WINDRES_MINOR_VERSION=`echo $_WINDRES_VERSION | $AWK -F\. '{ print $2 }'`
|
|
_WINDRES_RELEASE_VERSION=`echo $_WINDRES_VERSION | $AWK -F\. '{ print $3 }'`
|
|
WINDRES_MAJOR_VERSION=`echo $WINDRES_VERSION | $AWK -F\. '{ print $1 }'`
|
|
WINDRES_MINOR_VERSION=`echo $WINDRES_VERSION | $AWK -F\. '{ print $2 }'`
|
|
WINDRES_RELEASE_VERSION=`echo $WINDRES_VERSION | $AWK -F\. '{ print $3 }'`
|
|
if test "$_WINDRES_MAJOR_VERSION" -lt "$WINDRES_MAJOR_VERSION" -o \
|
|
"$_WINDRES_MAJOR_VERSION" -eq "$WINDRES_MAJOR_VERSION" -a \
|
|
"$_WINDRES_MINOR_VERSION" -lt "$WINDRES_MINOR_VERSION" -o \
|
|
"$_WINDRES_MAJOR_VERSION" -eq "$WINDRES_MAJOR_VERSION" -a \
|
|
"$_WINDRES_MINOR_VERSION" -eq "$WINDRES_MINOR_VERSION" -a \
|
|
"$_WINDRES_RELEASE_VERSION" -lt "$WINDRES_RELEASE_VERSION"
|
|
then
|
|
AC_MSG_ERROR([windres version $WINDRES_VERSION or higher is required to build.])
|
|
fi
|
|
fi # !GNU_CC
|
|
|
|
AC_DEFINE_UNQUOTED(WINVER,0x$WINVER)
|
|
AC_DEFINE_UNQUOTED(_WIN32_WINNT,0x$WINVER)
|
|
;;
|
|
esac
|
|
|
|
if test -n "$_WIN32_MSVC"; then
|
|
SKIP_PATH_CHECKS=1
|
|
SKIP_COMPILER_CHECKS=1
|
|
SKIP_LIBRARY_CHECKS=1
|
|
AC_CHECK_HEADERS(mmintrin.h)
|
|
fi
|
|
|
|
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
|
|
|
|
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)
|
|
|
|
dnl ========================================================
|
|
dnl Checks for programs.
|
|
dnl ========================================================
|
|
AC_PROG_INSTALL
|
|
AC_PROG_LN_S
|
|
AC_PATH_PROGS(PERL, $PERL perl5 perl )
|
|
if test -z "$PERL" || test "$PERL" = ":"; then
|
|
AC_MSG_ERROR([perl not found in \$PATH])
|
|
fi
|
|
|
|
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
|
|
|
|
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
|
|
|
|
AC_PATH_PROG(DOXYGEN, doxygen, :)
|
|
AC_PATH_PROG(WHOAMI, whoami, :)
|
|
AC_PATH_PROG(AUTOCONF, autoconf, :)
|
|
AC_PATH_PROG(UNZIP, unzip, :)
|
|
AC_PATH_PROGS(ZIP, zip)
|
|
if test -z "$ZIP" || test "$ZIP" = ":"; then
|
|
AC_MSG_ERROR([zip not found in \$PATH])
|
|
fi
|
|
AC_PATH_PROG(SYSTEM_MAKEDEPEND, makedepend)
|
|
AC_PATH_PROG(XARGS, xargs)
|
|
if test -z "$XARGS" || test "$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.
|
|
Either upgrade to Xcode 2.1 or later, or switch the system's default compiler
|
|
to gcc 3.3 by running \"sudo gcc_select 3.3\".])
|
|
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.
|
|
AC_PATH_PROGS(PBBUILD, pbbuild xcodebuild pbxbuild)
|
|
|
|
case "$PBBUILD" in
|
|
*xcodebuild*)
|
|
changequote(,)
|
|
XCODEBUILD_VERSION=`$PBBUILD -version 2>/dev/null | sed -e 's/.*DevToolsCore-\([0-9]*\).*/\1/'`
|
|
changequote([,])
|
|
if test -n "$XCODEBUILD_VERSION" && test "$XCODEBUILD_VERSION" -ge 620 ; then
|
|
HAS_XCODE_2_1=1;
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
dnl sdp was formerly in /Developer/Tools. As of Mac OS X 10.4 (Darwin 8),
|
|
dnl it has moved into /usr/bin.
|
|
AC_PATH_PROG(SDP, sdp, :, [$PATH:/usr/bin:/Developer/Tools])
|
|
;;
|
|
esac
|
|
|
|
AC_SUBST(GCC_VERSION)
|
|
AC_SUBST(XCODEBUILD_VERSION)
|
|
AC_SUBST(HAS_XCODE_2_1)
|
|
|
|
dnl The universal machinery sets UNIVERSAL_BINARY to inform packager.mk
|
|
dnl that a universal binary is being produced.
|
|
AC_SUBST(UNIVERSAL_BINARY)
|
|
|
|
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.
|
|
dnl Changes to the cross environment here need to be accounted for in
|
|
dnl the libIDL checks (below) and xpidl build.
|
|
|
|
if test ! -d "$MACOS_SDK_DIR"; then
|
|
AC_MSG_ERROR([SDK not found. When using --with-macos-sdk, you must
|
|
specify a valid SDK. SDKs are installed when the optional cross-development
|
|
tools are selected during the Xcode/Developer Tools installation.])
|
|
fi
|
|
|
|
GCC_VERSION_MAJOR=`echo $GCC_VERSION_FULL | $PERL -pe 's/(^\d*).*/$1/;'`
|
|
if test "$GCC_VERSION_MAJOR" -lt "4" ; then
|
|
SDK_C_INCLUDE="-isystem ${MACOS_SDK_DIR}/usr/include/gcc/darwin/${GCC_VERSION} -isystem ${MACOS_SDK_DIR}/usr/include -F${MACOS_SDK_DIR}/System/Library/Frameworks"
|
|
if test -d "${MACOS_SDK_DIR}/Library/Frameworks" ; then
|
|
SDK_C_INCLUDE="$SDK_C_INCLUDE -F${MACOS_SDK_DIR}/Library/Frameworks"
|
|
fi
|
|
SDK_CXX_INCLUDE="-I${MACOS_SDK_DIR}/usr/include/gcc/darwin/${GCC_VERSION}/c++ -I${MACOS_SDK_DIR}/usr/include/gcc/darwin/${GCC_VERSION}/c++/ppc-darwin -I${MACOS_SDK_DIR}/usr/include/gcc/darwin/${GCC_VERSION}/c++/backward"
|
|
|
|
CFLAGS="$CFLAGS -nostdinc ${SDK_C_INCLUDE}"
|
|
CXXFLAGS="$CXXFLAGS -nostdinc -nostdinc++ ${SDK_CXX_INCLUDE} ${SDK_C_INCLUDE}"
|
|
|
|
dnl CPP/CXXCPP needs to be set for AC_CHECK_HEADER.
|
|
CPP="$CPP -nostdinc ${SDK_C_INCLUDE}"
|
|
CXXCPP="$CXXCPP -nostdinc -nostdinc++ ${SDK_CXX_INCLUDE} ${SDK_C_INCLUDE}"
|
|
|
|
dnl ld support for -syslibroot is compiler-agnostic, but only available
|
|
dnl on Tiger. Although it's possible to switch on the build host's
|
|
dnl OS release to use ld -syslibroot when available, ld -syslibroot will
|
|
dnl cause warnings as long as NEXT_ROOT is set. NEXT_ROOT should be
|
|
dnl set because both the compiler and linker use it.
|
|
LIBS="-L${MACOS_SDK_DIR}/usr/lib/gcc/darwin -L${MACOS_SDK_DIR}/usr/lib/gcc/darwin/${GCC_VERSION_FULL} -L${MACOS_SDK_DIR}/usr/lib $LIBS"
|
|
export NEXT_ROOT=$MACOS_SDK_DIR
|
|
|
|
if test -n "$CROSS_COMPILE" ; then
|
|
dnl NEXT_ROOT will be in the environment, but it shouldn't be set for
|
|
dnl the build host. HOST_CXX is presently unused.
|
|
HOST_CC="NEXT_ROOT= $HOST_CC"
|
|
HOST_CXX="NEXT_ROOT= $HOST_CXX"
|
|
fi
|
|
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_MSG_CHECKING([for valid compiler/Mac OS X SDK combination])
|
|
AC_LANG_CPLUSPLUS
|
|
AC_TRY_COMPILE([#include <new>
|
|
int main() { return 0; }],
|
|
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
|
|
|
|
dnl Be sure the make we use is GNU make.
|
|
dnl on win32, gmake.exe is the generally the wrong version
|
|
case "$host_os" in
|
|
cygwin*|mingw*|mks*|msvc*)
|
|
AC_PATH_PROGS(MAKE, $MAKE make gmake, :)
|
|
;;
|
|
*)
|
|
AC_PATH_PROGS(MAKE, $MAKE gmake make, :)
|
|
;;
|
|
esac
|
|
_make_try=`$MAKE --version 2>/dev/null | grep GNU`
|
|
if test ! "$_make_try"
|
|
then
|
|
echo
|
|
echo "*** $MAKE is not GNU Make. You will not be able to build Mozilla without GNU Make."
|
|
echo
|
|
exit 1
|
|
fi
|
|
dnl Now exit if version if < MAKE_VERSION
|
|
rm -f dummy.mk
|
|
echo 'all: ; @echo $(MAKE_VERSION)' > dummy.mk
|
|
_make_vers=`$MAKE --no-print-directory -f dummy.mk all 2>/dev/null`
|
|
rm -f dummy.mk
|
|
_MAKE_MAJOR_VERSION=`echo $_make_vers | $AWK -F\. '{ print $1 }'`
|
|
_MAKE_MINOR_VERSION=`echo $_make_vers | $AWK -F\. '{ print $2 }'`
|
|
MAKE_MAJOR_VERSION=`echo $MAKE_VERSION | $AWK -F\. '{ print $1 }'`
|
|
MAKE_MINOR_VERSION=`echo $MAKE_VERSION | $AWK -F\. '{ print $2 }'`
|
|
if test "$_MAKE_MAJOR_VERSION" -lt "$MAKE_MAJOR_VERSION" || \
|
|
test "$_MAKE_MAJOR_VERSION" = "$MAKE_MAJOR_VERSION" -a \
|
|
"$_MAKE_MINOR_VERSION" -lt "$MAKE_MINOR_VERSION"; then
|
|
AC_MSG_ERROR([GNU Make $MAKE_VERSION or higher is required to build Mozilla.])
|
|
fi
|
|
AC_SUBST(MAKE)
|
|
|
|
if test "$COMPILE_ENVIRONMENT"; then
|
|
|
|
AC_PATH_XTRA
|
|
|
|
dnl Check in X11 include directory too.
|
|
if test "$no_x" != "yes"; then
|
|
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
|
|
fi
|
|
|
|
XCFLAGS="$X_CFLAGS"
|
|
|
|
fi # COMPILE_ENVIRONMENT
|
|
|
|
dnl ========================================================
|
|
dnl set the defaults first
|
|
dnl ========================================================
|
|
AS_BIN=$AS
|
|
AR_FLAGS='cr $@'
|
|
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
|
|
CYGWIN_WRAPPER=
|
|
WIN_TOP_SRC=
|
|
MOZ_USER_DIR=".mozilla"
|
|
HOST_AR='$(AR)'
|
|
HOST_AR_FLAGS='$(AR_FLAGS)'
|
|
|
|
MOZ_JPEG_CFLAGS=
|
|
MOZ_JPEG_LIBS='-L$(LIBXUL_DIST)/lib -lmozjpeg'
|
|
MOZ_ZLIB_CFLAGS=
|
|
MOZ_ZLIB_LIBS='-L$(LIBXUL_DIST)/lib -lmozz'
|
|
MOZ_PNG_CFLAGS=
|
|
MOZ_PNG_LIBS='-L$(LIBXUL_DIST)/lib -lmozpng'
|
|
|
|
MOZ_JS_LIBS='-L$(LIBXUL_DIST)/bin -lmozjs'
|
|
DYNAMIC_XPCOM_LIBS='-L$(LIBXUL_DIST)/bin -lxpcom -lxpcom_core'
|
|
MOZ_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin'
|
|
XPCOM_FROZEN_LDOPTS='-L$(LIBXUL_DIST)/bin $(MOZ_FIX_LINK_PATHS) -lxpcom'
|
|
LIBXUL_LIBS='$(XPCOM_FROZEN_LDOPTS) -lxul'
|
|
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)'
|
|
|
|
MOZ_COMPONENT_NSPR_LIBS='-L$(LIBXUL_DIST)/bin $(NSPR_LIBS)'
|
|
MOZ_XPCOM_OBSOLETE_LIBS='-L$(LIBXUL_DIST)/lib -lxpcom_compat'
|
|
|
|
USE_DEPENDENT_LIBS=1
|
|
|
|
_PLATFORM_DEFAULT_TOOLKIT=cairo-gtk2
|
|
MOZ_GFX_TOOLKIT='$(MOZ_WIDGET_TOOLKIT)'
|
|
MOZ_WIDGET_TOOLKIT_LDFLAGS='-lwidget_$(MOZ_WIDGET_TOOLKIT)'
|
|
MOZ_GFX_TOOLKIT_LDFLAGS='-lgfx_$(MOZ_GFX_TOOLKIT) $(MOZ_XLIBRGB_LDFLAGS)'
|
|
WIDGET_DLL='\"libwidget_$(MOZ_WIDGET_TOOLKIT)$(DLL_SUFFIX)\"'
|
|
GFXWIN_DLL='\"libgfx_$(MOZ_GFX_TOOLKIT)$(DLL_SUFFIX)\"'
|
|
|
|
MOZ_ENABLE_POSTSCRIPT=1
|
|
|
|
if test -n "$CROSS_COMPILE"; then
|
|
OS_TARGET="${target_os}"
|
|
OS_ARCH=`echo $target_os | sed -e 's|/|_|g'`
|
|
OS_RELEASE=
|
|
OS_TEST="${target_cpu}"
|
|
case "${target_os}" in
|
|
linux*) OS_ARCH=Linux ;;
|
|
solaris*) OS_ARCH=SunOS OS_RELEASE=5 ;;
|
|
mingw*) OS_ARCH=WINNT ;;
|
|
wince*) OS_ARCH=WINCE ;;
|
|
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`
|
|
OS_TEST=`uname -m`
|
|
fi
|
|
_COMPILER_PREFIX=
|
|
|
|
HOST_OS_ARCH=`echo $host_os | sed -e 's|/|_|g'`
|
|
|
|
#######################################################################
|
|
# Master "Core Components" macros for getting the OS target #
|
|
#######################################################################
|
|
|
|
#
|
|
# Note: OS_TARGET should be specified on the command line for gmake.
|
|
# When OS_TARGET=WIN95 is specified, then a Windows 95 target is built.
|
|
# The difference between the Win95 target and the WinNT target is that
|
|
# the WinNT target uses Windows NT specific features not available
|
|
# in Windows 95. The Win95 target will run on Windows NT, but (supposedly)
|
|
# at lesser performance (the Win95 target uses threads; the WinNT target
|
|
# uses fibers).
|
|
#
|
|
# When OS_TARGET=WIN16 is specified, then a Windows 3.11 (16bit) target
|
|
# is built. See: win16_3.11.mk for lots more about the Win16 target.
|
|
#
|
|
# If OS_TARGET is not specified, it defaults to $(OS_ARCH), i.e., no
|
|
# cross-compilation.
|
|
#
|
|
|
|
#
|
|
# The following hack allows one to build on a WIN95 machine (as if
|
|
# s/he were cross-compiling on a WINNT host for a WIN95 target).
|
|
# It also accomodates for MKS's uname.exe. If you never intend
|
|
# to do development on a WIN95 machine, you don't need this hack.
|
|
#
|
|
case "$OS_ARCH" in
|
|
WIN95)
|
|
OS_ARCH=WINNT
|
|
OS_TARGET=WIN95
|
|
;;
|
|
Windows_95)
|
|
OS_ARCH=Windows_NT
|
|
OS_TARGET=WIN95
|
|
;;
|
|
Windows_98)
|
|
OS_ARCH=Windows_NT
|
|
OS_TARGET=WIN95
|
|
;;
|
|
CYGWIN_9*|CYGWIN_ME*)
|
|
OS_ARCH='CYGWIN_NT-4.0'
|
|
OS_TARGET=WIN95
|
|
;;
|
|
esac
|
|
|
|
#
|
|
# 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
|
|
cygwin*|mingw*|mks*|msvc*)
|
|
HOST_OS_ARCH=WINNT
|
|
;;
|
|
linux*)
|
|
HOST_OS_ARCH=Linux
|
|
;;
|
|
solaris*)
|
|
HOST_OS_ARCH=SunOS
|
|
;;
|
|
BSD_386)
|
|
HOST_OS_ARCH=BSD
|
|
;;
|
|
dgux)
|
|
HOST_OS_ARCH=DGUX
|
|
;;
|
|
IRIX64)
|
|
HOST_OS_ARCH=IRIX
|
|
;;
|
|
UNIX_SV)
|
|
if "`cat /etc/bcheckrc | grep -c NCR 2>/dev/null`" != "0"; then
|
|
HOST_OS_ARCH=NCR
|
|
else
|
|
HOST_OS_ARCH=UNIXWARE
|
|
fi
|
|
;;
|
|
ncr)
|
|
HOST_OS_ARCH=NCR
|
|
;;
|
|
UNIX_SYSTEM_V)
|
|
HOST_OS_ARCH=NEC
|
|
;;
|
|
OSF1)
|
|
;;
|
|
*OpenVMS*)
|
|
HOST_OS_ARCH=OpenVMS
|
|
;;
|
|
OS_2)
|
|
HOST_OS_ARCH=OS2
|
|
;;
|
|
QNX)
|
|
;;
|
|
SCO_SV)
|
|
HOST_OS_ARCH=SCOOS
|
|
;;
|
|
SINIX-N | SINIX-Y | SINIX-Z |ReliantUNIX-M)
|
|
HOST_OS_ARCH=SINIX
|
|
;;
|
|
UnixWare)
|
|
HOST_OS_ARCH=UNIXWARE
|
|
;;
|
|
esac
|
|
|
|
case "$OS_ARCH" in
|
|
WINNT)
|
|
OS_TEST=`uname -p`
|
|
;;
|
|
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}"
|
|
;;
|
|
CYGWIN32_NT|CYGWIN_NT*|MINGW*_NT*)
|
|
#
|
|
# If uname -s returns "CYGWIN_NT-4.0", we assume that we are using
|
|
# the uname.exe in the Cygwin tools.
|
|
# Prior to the Beta 20 release, Cygwin was called GNU-Win32.
|
|
# If uname -s returns "CYGWIN32/NT", we assume that we are using
|
|
# the uname.exe in the GNU-Win32 tools.
|
|
# 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=`uname -p`
|
|
;;
|
|
BSD_386)
|
|
OS_ARCH=BSD
|
|
;;
|
|
dgux)
|
|
OS_ARCH=DGUX
|
|
;;
|
|
IRIX64)
|
|
OS_ARCH=IRIX
|
|
;;
|
|
UNIX_SV)
|
|
if "`cat /etc/bcheckrc | grep -c NCR 2>/dev/null`" != "0"; then
|
|
OS_ARCH=NCR
|
|
else
|
|
OS_ARCH=UNIXWARE
|
|
OS_RELEASE=`uname -v`
|
|
fi
|
|
;;
|
|
ncr)
|
|
OS_ARCH=NCR
|
|
;;
|
|
UNIX_SYSTEM_V)
|
|
OS_ARCH=NEC
|
|
;;
|
|
OSF1)
|
|
case `uname -v` in
|
|
148)
|
|
OS_RELEASE=V3.2C
|
|
;;
|
|
564)
|
|
OS_RELEASE=V4.0B
|
|
;;
|
|
878)
|
|
OS_RELEASE=V4.0D
|
|
;;
|
|
esac
|
|
;;
|
|
*OpenVMS*)
|
|
OS_ARCH=OpenVMS
|
|
OS_RELEASE=`uname -v`
|
|
OS_TEST=`uname -p`
|
|
;;
|
|
OS_2)
|
|
OS_ARCH=OS2
|
|
OS_TARGET=OS2
|
|
OS_RELEASE=`uname -v`
|
|
;;
|
|
QNX)
|
|
if test "$OS_TARGET" != "NTO"; then
|
|
changequote(,)
|
|
OS_RELEASE=`uname -v | sed 's/^\([0-9]\)\([0-9]*\)$/\1.\2/'`
|
|
changequote([,])
|
|
fi
|
|
OS_TEST=x86
|
|
;;
|
|
SCO_SV)
|
|
OS_ARCH=SCOOS
|
|
OS_RELEASE=5.0
|
|
;;
|
|
SINIX-N | SINIX-Y | SINIX-Z |ReliantUNIX-M)
|
|
OS_ARCH=SINIX
|
|
OS_TEST=`uname -p`
|
|
;;
|
|
UnixWare)
|
|
OS_ARCH=UNIXWARE
|
|
OS_RELEASE=`uname -v`
|
|
;;
|
|
WINCE)
|
|
OS_ARCH=WINCE
|
|
OS_TARGET=WINCE
|
|
;;
|
|
Darwin)
|
|
case "${target_cpu}" in
|
|
powerpc*)
|
|
OS_TEST=ppc
|
|
;;
|
|
i*86*)
|
|
OS_TEST=i386
|
|
;;
|
|
*)
|
|
if test -z "$CROSS_COMPILE" ; then
|
|
OS_TEST=`uname -p`
|
|
fi
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
|
|
if test "$OS_ARCH" = "NCR"; then
|
|
changequote(,)
|
|
OS_RELEASE=`awk '{print $3}' /etc/.relid | sed 's/^\([0-9]\)\(.\)\(..\)\(.*\)$/\2.\3/'`
|
|
changequote([,])
|
|
fi
|
|
|
|
# Only set CPU_ARCH if we recognize the value of OS_TEST
|
|
|
|
case "$OS_TEST" in
|
|
*86 | i86pc)
|
|
CPU_ARCH=x86
|
|
;;
|
|
|
|
powerpc* | ppc)
|
|
CPU_ARCH=ppc
|
|
;;
|
|
|
|
Alpha | alpha | ALPHA)
|
|
CPU_ARCH=Alpha
|
|
;;
|
|
|
|
sun4u)
|
|
CPU_ARCH=sparc
|
|
;;
|
|
|
|
x86_64 | sparc | ppc | ia64)
|
|
CPU_ARCH="$OS_TEST"
|
|
;;
|
|
esac
|
|
|
|
if test -z "$OS_TARGET"; then
|
|
OS_TARGET=$OS_ARCH
|
|
fi
|
|
if test "$OS_TARGET" = "WIN95"; then
|
|
OS_RELEASE="4.0"
|
|
fi
|
|
if test "$OS_TARGET" = "WIN16"; then
|
|
OS_RELEASE=
|
|
fi
|
|
OS_CONFIG="${OS_TARGET}${OS_RELEASE}"
|
|
|
|
dnl ========================================================
|
|
dnl GNU specific defaults
|
|
dnl ========================================================
|
|
if test "$GNU_CC"; then
|
|
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'
|
|
DSO_CFLAGS=''
|
|
DSO_PIC_CFLAGS='-fPIC'
|
|
_MOZ_RTTI_FLAGS_ON=${_COMPILER_PREFIX}-frtti
|
|
_MOZ_RTTI_FLAGS_OFF=${_COMPILER_PREFIX}-fno-rtti
|
|
_MOZ_EXCEPTIONS_FLAGS_ON='-fhandle-exceptions'
|
|
_MOZ_EXCEPTIONS_FLAGS_OFF='-fno-handle-exceptions'
|
|
|
|
# Turn on GNU specific features
|
|
# -Wall - turn on all warnings
|
|
# -pedantic - make compiler warn about non-ANSI stuff, and
|
|
# be a little bit stricter
|
|
# Warnings slamm took out for now (these were giving more noise than help):
|
|
# -Wbad-function-cast - warns when casting a function to a new return type
|
|
# -Wconversion - complained when char's or short's were used a function args
|
|
# -Wshadow - removed because it generates more noise than help --pete
|
|
_WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wall -W -Wno-unused -Wpointer-arith -Wcast-align"
|
|
|
|
dnl Turn pedantic on but disable the warnings for long long
|
|
_PEDANTIC=1
|
|
_IGNORE_LONG_LONG_WARNINGS=1
|
|
|
|
_DEFINES_CFLAGS='-include $(DEPTH)/mozilla-config.h -DMOZILLA_CLIENT'
|
|
_USE_CPP_INCLUDE_FLAG=1
|
|
else
|
|
MKSHLIB='$(LD) $(DSO_LDOPTS) -h $@ -o $@'
|
|
MKCSHLIB='$(LD) $(DSO_LDOPTS) -h $@ -o $@'
|
|
DSO_LDOPTS='-shared'
|
|
DSO_CFLAGS=''
|
|
DSO_PIC_CFLAGS='-KPIC'
|
|
_DEFINES_CFLAGS='$(ACDEFINES) -D_MOZILLA_CONFIG_H_ -DMOZILLA_CLIENT'
|
|
fi
|
|
|
|
if test "$GNU_CXX"; then
|
|
# Turn on GNU specific features
|
|
_WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wall -Wconversion -Wpointer-arith -Wcast-align -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor"
|
|
|
|
_DEFINES_CXXFLAGS='-DMOZILLA_CLIENT -include $(DEPTH)/mozilla-config.h'
|
|
_USE_CPP_INCLUDE_FLAG=1
|
|
else
|
|
_DEFINES_CXXFLAGS='-DMOZILLA_CLIENT -D_MOZILLA_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 <<LOOP_INPUT
|
|
force="-Wl,--whole-archive"; unforce="-Wl,--no-whole-archive"
|
|
force="-Wl,-z -Wl,allextract"; unforce="-Wl,-z -Wl,defaultextract"
|
|
force="-Wl,-all"; unforce="-Wl,-none"
|
|
LOOP_INPUT
|
|
while read line
|
|
do
|
|
eval $line
|
|
LDFLAGS=$force
|
|
LIBS=$unforce
|
|
AC_TRY_LINK(,, ac_cv_mkshlib_force_and_unforce=$line; break)
|
|
done
|
|
exec 0<&3 3<&-
|
|
LDFLAGS=$_SAVE_LDFLAGS; LIBS=$_SAVE_LIBS
|
|
])
|
|
if test "$ac_cv_mkshlib_force_and_unforce" = "no"; then
|
|
AC_MSG_RESULT(no)
|
|
else
|
|
AC_MSG_RESULT(yes)
|
|
eval $ac_cv_mkshlib_force_and_unforce
|
|
MKSHLIB_FORCE_ALL=$force
|
|
MKSHLIB_UNFORCE_ALL=$unforce
|
|
fi
|
|
fi # GNU_CC
|
|
fi # COMPILE_ENVIRONMENT
|
|
|
|
dnl ========================================================
|
|
dnl Checking for 64-bit OS
|
|
dnl ========================================================
|
|
if test "$COMPILE_ENVIRONMENT"; then
|
|
AC_LANG_SAVE
|
|
AC_LANG_C
|
|
AC_MSG_CHECKING(for 64-bit OS)
|
|
AC_TRY_RUN([ int main () {
|
|
if (sizeof(long) == 8) { return 0; } return 1; } ],
|
|
result="yes", result="no", result="maybe" )
|
|
AC_MSG_RESULT("$result")
|
|
if test "$result" = "yes"; then
|
|
AC_DEFINE(HAVE_64BIT_OS)
|
|
HAVE_64BIT_OS=1
|
|
fi
|
|
AC_SUBST(HAVE_64BIT_OS)
|
|
AC_LANG_RESTORE
|
|
fi # COMPILE_ENVIRONMENT
|
|
|
|
dnl ========================================================
|
|
dnl System overrides of the defaults for host
|
|
dnl ========================================================
|
|
case "$host" in
|
|
*-beos*)
|
|
HOST_CFLAGS="$HOST_CFLAGS -DXP_BEOS -DBeOS -DBEOS -D_POSIX_SOURCE -DNO_X11"
|
|
HOST_NSPR_MDCPUCFG='\"md/_beos.cfg\"'
|
|
HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}"
|
|
;;
|
|
|
|
*cygwin*|*mingw*|*mks*|*msvc*|*wince)
|
|
if test -n "$_WIN32_MSVC"; then
|
|
HOST_AR=lib
|
|
HOST_AR_FLAGS='-NOLOGO -OUT:"$@"'
|
|
HOST_CFLAGS="$HOST_CFLAGS -TC -nologo -Fd\$(HOST_PDBFILE)"
|
|
HOST_RANLIB='echo ranlib'
|
|
else
|
|
HOST_CFLAGS="$HOST_CFLAGS -mno-cygwin"
|
|
fi
|
|
HOST_CFLAGS="$HOST_CFLAGS -DXP_WIN32 -DXP_WIN -DWIN32 -D_WIN32 -DNO_X11"
|
|
HOST_NSPR_MDCPUCFG='\"md/_winnt.cfg\"'
|
|
HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}"
|
|
HOST_BIN_SUFFIX=.exe
|
|
case "$host" in
|
|
*mingw*)
|
|
dnl MinGW/MSYS does not need CYGWIN_WRAPPER
|
|
;;
|
|
*)
|
|
CYGWIN_WRAPPER="${srcdir}/build/cygwin-wrapper"
|
|
if test "`echo ${srcdir} | grep -c ^/ 2>/dev/null`" = 0; then
|
|
_pwd=`pwd`
|
|
CYGWIN_WRAPPER="${_pwd}/${srcdir}/build/cygwin-wrapper"
|
|
fi
|
|
if test "`${PERL} -v | grep -c cygwin 2>/dev/null`" = 0; then
|
|
AS_PERL=1
|
|
PERL="${CYGWIN_WRAPPER} $PERL"
|
|
fi
|
|
;;
|
|
esac
|
|
;;
|
|
|
|
*-darwin*)
|
|
HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX -DXP_MACOSX -DNO_X11"
|
|
HOST_NSPR_MDCPUCFG='\"md/_darwin.cfg\"'
|
|
HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}"
|
|
MOZ_FIX_LINK_PATHS='-Wl,-executable_path,$(LIBXUL_DIST)/bin'
|
|
LIBXUL_LIBS='$(XPCOM_FROZEN_LDOPTS) $(LIBXUL_DIST)/bin/XUL -lobjc'
|
|
;;
|
|
|
|
*-linux*)
|
|
HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
|
|
HOST_NSPR_MDCPUCFG='\"md/_linux.cfg\"'
|
|
HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}"
|
|
;;
|
|
|
|
*os2*)
|
|
HOST_CFLAGS="$HOST_CFLAGS -DXP_OS2 -DNO_X11 -Zomf"
|
|
HOST_NSPR_MDCPUCFG='\"md/_os2.cfg\"'
|
|
HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}"
|
|
HOST_BIN_SUFFIX=.exe
|
|
MOZ_FIX_LINK_PATHS=
|
|
;;
|
|
|
|
*-osf*)
|
|
HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
|
|
HOST_NSPR_MDCPUCFG='\"md/_osf1.cfg\"'
|
|
HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}"
|
|
;;
|
|
|
|
*)
|
|
HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
|
|
HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}"
|
|
;;
|
|
esac
|
|
|
|
dnl Get mozilla version from central milestone file
|
|
MOZILLA_VERSION=`$PERL $srcdir/config/milestone.pl -topsrcdir $srcdir`
|
|
|
|
dnl Get version of various core apps from the version files.
|
|
FIREFOX_VERSION=`cat $topsrcdir/browser/config/version.txt`
|
|
THUNDERBIRD_VERSION=`cat $topsrcdir/mail/config/version.txt`
|
|
SEAMONKEY_VERSION=`cat $topsrcdir/xpfe/bootstrap/version.txt`
|
|
|
|
AC_DEFINE_UNQUOTED(MOZILLA_VERSION,"$MOZILLA_VERSION")
|
|
AC_DEFINE_UNQUOTED(MOZILLA_VERSION_U,$MOZILLA_VERSION)
|
|
|
|
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"
|
|
else
|
|
AIX_OBJMODEL=compat
|
|
fi
|
|
else
|
|
AIX_OBJMODEL=compat
|
|
fi
|
|
AC_SUBST(AIX_OBJMODEL)
|
|
DSO_LDOPTS='-qmkshrobj=1'
|
|
DSO_CFLAGS='-qflag=w:w'
|
|
DSO_PIC_CFLAGS=
|
|
LDFLAGS="$LDFLAGS -Wl,-brtl -blibpath:/usr/lib:/lib"
|
|
AC_MSG_WARN([Clearing MOZ_FIX_LINK_PATHS till we can fix bug 332075.])
|
|
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 VisualAge C++ compiler version >= 5.0.2.0])
|
|
AC_TRY_COMPILE([],
|
|
[#if (__IBMCPP__ < 502)
|
|
#error "Bad compiler"
|
|
#endif],
|
|
_BAD_COMPILER=,_BAD_COMPILER=1)
|
|
if test -n "$_BAD_COMPILER"; then
|
|
AC_MSG_RESULT([no])
|
|
AC_MSG_ERROR([VisualAge C++ version 5.0.2.0 or higher is required to build.])
|
|
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)
|
|
;;
|
|
|
|
*-beos*)
|
|
no_x=yes
|
|
MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -Wl,-h,$@ -o $@'
|
|
_PLATFORM_DEFAULT_TOOLKIT="beos"
|
|
DSO_LDOPTS='-nostart'
|
|
TK_LIBS='-lbe -lroot'
|
|
LIBS="$LIBS -lbe"
|
|
if test "$COMPILE_ENVIRONMENT"; then
|
|
AC_CHECK_LIB(bind,main,LIBS="$LIBS -lbind")
|
|
AC_CHECK_LIB(zeta,main,LIBS="$LIBS -lzeta")
|
|
fi
|
|
_WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wno-multichar"
|
|
_WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wno-multichar"
|
|
_MOZ_USE_RTTI=1
|
|
USE_DEPENDENT_LIBS=
|
|
MOZ_USER_DIR="Mozilla"
|
|
;;
|
|
|
|
*-bsdi*)
|
|
dnl -pedantic doesn't play well with BSDI's _very_ modified gcc (shlicc2)
|
|
_PEDANTIC=
|
|
_IGNORE_LONG_LONG_WARNINGS=
|
|
case $OS_RELEASE in
|
|
4.*|5.*)
|
|
STRIP="$STRIP -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 $@'
|
|
|
|
_PEDANTIC=
|
|
CFLAGS="$CFLAGS -fpascal-strings -no-cpp-precomp -fno-common"
|
|
CXXFLAGS="$CXXFLAGS -fpascal-strings -no-cpp-precomp -fno-common"
|
|
DLL_SUFFIX=".dylib"
|
|
DSO_LDOPTS=''
|
|
STRIP="$STRIP -x -S"
|
|
_PLATFORM_DEFAULT_TOOLKIT='mac'
|
|
MOZ_ENABLE_POSTSCRIPT=
|
|
TARGET_NSPR_MDCPUCFG='\"md/_darwin.cfg\"'
|
|
# set MACOSX to generate lib/mac/MoreFiles/Makefile
|
|
MACOSX=1
|
|
|
|
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
|
|
;;
|
|
|
|
*-freebsd*)
|
|
if test `test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` != "elf"; then
|
|
DLL_SUFFIX=".so.1.0"
|
|
DSO_LDOPTS="-shared"
|
|
fi
|
|
if test ! "$GNU_CC"; then
|
|
DSO_LDOPTS="-Bshareable $DSO_LDOPTS"
|
|
fi
|
|
# Can't have force w/o an unforce.
|
|
# # Hack for FreeBSD 2.2
|
|
# if test -z "$MKSHLIB_FORCE_ALL"; then
|
|
# MKSHLIB_FORCE_ALL='-Wl,-Bforcearchive'
|
|
# MKSHLIB_UNFORCE_ALL=''
|
|
# fi
|
|
;;
|
|
|
|
*-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)
|
|
;;
|
|
|
|
*-irix5*)
|
|
AC_DEFINE(IRIX)
|
|
DSO_LDOPTS='-elf -shared'
|
|
|
|
if test "$GNU_CC"; then
|
|
MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
|
|
MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
|
|
MKSHLIB_FORCE_ALL='-Wl,-all'
|
|
MKSHLIB_UNFORCE_ALL='-Wl,-none'
|
|
CXXFLAGS="$CXXFLAGS -D_LANGUAGE_C_PLUS_PLUS"
|
|
else
|
|
MKSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
|
|
MKCSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
|
|
MKSHLIB_FORCE_ALL='-all'
|
|
MKSHLIB_UNFORCE_ALL='-none'
|
|
fi
|
|
;;
|
|
|
|
*-irix6*)
|
|
AC_DEFINE(IRIX)
|
|
dnl the irix specific xptcinvoke code is written against the n32 ABI so we *must*
|
|
dnl compile and link using -n32
|
|
USE_N32=1
|
|
TARGET_COMPILER_ABI=n32
|
|
DSO_LDOPTS='-elf -shared'
|
|
MKSHLIB='$(CCC) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
|
|
MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
|
|
_MOZ_EXCEPTIONS_FLAGS_OFF="-LANG:exceptions=OFF"
|
|
_MOZ_EXCEPTIONS_FLAGS_ON="-LANG:exceptions=ON"
|
|
if test "$GNU_CC"; then
|
|
MKSHLIB_FORCE_ALL='-Wl,-all'
|
|
MKSHLIB_UNFORCE_ALL='-Wl,-none'
|
|
_WARNINGS_CFLAGS="-Wall"
|
|
_WARNINGS_CXXFLAGS="-Wall"
|
|
CXXFLAGS="$CXXFLAGS -D_LANGUAGE_C_PLUS_PLUS"
|
|
else
|
|
MKSHLIB_FORCE_ALL='-all'
|
|
MKSHLIB_UNFORCE_ALL='-none'
|
|
AR_LIST="$AR t"
|
|
AR_EXTRACT="$AR x"
|
|
AR_DELETE="$AR d"
|
|
AR='$(CXX) -ar'
|
|
AR_FLAGS='-o $@'
|
|
CFLAGS="$CFLAGS -woff 3262 -G 4"
|
|
CXXFLAGS="$CXXFLAGS -woff 3262 -G 4"
|
|
if test -n "$USE_N32"; then
|
|
ASFLAGS="$ASFLAGS -n32"
|
|
CFLAGS="$CFLAGS -n32"
|
|
CXXFLAGS="$CXXFLAGS -n32"
|
|
LDFLAGS="$LDFLAGS -n32"
|
|
fi
|
|
AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
|
|
fi
|
|
if test -z "$GNU_CXX"; then
|
|
MIPSPRO_CXX=1
|
|
fi
|
|
;;
|
|
|
|
*-*linux*)
|
|
TARGET_NSPR_MDCPUCFG='\"md/_linux.cfg\"'
|
|
MOZ_DEBUG_FLAGS="-g -fno-inline" # most people on linux use gcc/gdb,
|
|
# and that combo is not yet good at
|
|
# debugging inlined functions (even
|
|
# when using DWARF2 as the debugging
|
|
# format)
|
|
|
|
case "${target_cpu}" in
|
|
alpha*)
|
|
CFLAGS="$CFLAGS -mieee"
|
|
CXXFLAGS="$CXXFLAGS -mieee"
|
|
;;
|
|
i*86)
|
|
USE_ELF_DYNSTR_GC=1
|
|
MOZ_ENABLE_OLD_ABI_COMPAT_WRAPPERS=1
|
|
;;
|
|
mips*)
|
|
CFLAGS="$CFLAGS -Wa,-xgot"
|
|
CXXFLAGS="$CXXFLAGS -Wa,-xgot"
|
|
;;
|
|
esac
|
|
;;
|
|
|
|
*-wince*)
|
|
|
|
MOZ_TOOLS_DIR=`echo $MOZ_TOOLS`
|
|
AR_LIST="$AR -list"
|
|
AR_EXTRACT="$AR -extract"
|
|
AR_DELETE="$AR d"
|
|
AR_FLAGS='-OUT:"$@"'
|
|
|
|
DSO_CFLAGS=
|
|
DSO_PIC_CFLAGS=
|
|
DLL_SUFFIX=.dll
|
|
BIN_SUFFIX='.exe'
|
|
RC=rc.exe
|
|
# certain versions of cygwin's makedepend barf on the
|
|
# #include <string> vs -I./dist/include/string issue so don't use it
|
|
SYSTEM_MAKEDEPEND=
|
|
|
|
HOST_CC=cl
|
|
HOST_CXX=cl
|
|
HOST_LD=link
|
|
HOST_AR='lib -OUT:$@'
|
|
HOST_RANLIB='echo ranlib'
|
|
|
|
MOZ_OPTIMIZE_FLAGS='-O1'
|
|
AR_FLAGS='-NOLOGO -OUT:"$@"'
|
|
ASM_SUFFIX=asm
|
|
CFLAGS="$CFLAGS -W3 -Gy -Fd\$(PDBFILE)"
|
|
CXXFLAGS="$CXXFLAGS -W3 -Gy -Fd\$(PDBFILE)"
|
|
DLL_PREFIX=
|
|
DOXYGEN=:
|
|
DSO_LDOPTS=-SUBSYSTEM:WINDOWSCE
|
|
DYNAMIC_XPCOM_LIBS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xpcom_core.lib'
|
|
GARBAGE=
|
|
IMPORT_LIB_SUFFIX=lib
|
|
LIBS="$LIBS"
|
|
LIBXUL_LIBS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xul.lib'
|
|
LIB_PREFIX=
|
|
LIB_SUFFIX=lib
|
|
MKCSHLIB='$(LD) -NOLOGO -DLL -OUT:$@ $(DSO_LDOPTS)'
|
|
MKSHLIB='$(LD) -NOLOGO -DLL -OUT:$@ $(DSO_LDOPTS)'
|
|
MKSHLIB_FORCE_ALL=
|
|
MKSHLIB_UNFORCE_ALL=
|
|
MOZ_COMPONENT_NSPR_LIBS='$(NSPR_LIBS)'
|
|
MOZ_COMPONENT_NSPR_LIBS='$(NSPR_LIBS)'
|
|
MOZ_DEBUG_FLAGS='-Zi'
|
|
MOZ_DEBUG_LDFLAGS='-DEBUG -DEBUGTYPE:CV'
|
|
MOZ_FIX_LINK_PATHS=
|
|
MOZ_JPEG_LIBS='$(LIBXUL_DIST)/lib/mozjpeg.lib'
|
|
MOZ_JS_LIBS='$(LIBXUL_DIST)/lib/js$(MOZ_BITS)$(VERSION_NUMBER).lib'
|
|
MOZ_OPTIMIZE_FLAGS='-O1'
|
|
MOZ_PNG_LIBS='$(LIBXUL_DIST)/lib/mozpng.lib'
|
|
MOZ_XPCOM_OBSOLETE_LIBS='$(LIBXUL_DIST)/lib/xpcom_compat.lib'
|
|
MOZ_ZLIB_LIBS='$(LIBXUL_DIST)/lib/mozz.lib'
|
|
OBJ_SUFFIX=obj
|
|
RANLIB='echo not_ranlib'
|
|
STRIP='echo not_strip'
|
|
TARGET_NSPR_MDCPUCFG='\"md/_wince.cfg\"'
|
|
UNZIP=unzip
|
|
XARGS=xargs
|
|
XPCOM_FROZEN_LDOPTS='$(LIBXUL_DIST)/lib/xpcom.lib'
|
|
ZIP=zip
|
|
LIBIDL_CFLAGS="-I$MOZ_TOOLS_DIR/include ${GLIB_CFLAGS}"
|
|
LIBIDL_LIBS="$MOZ_TOOLS_DIR/lib/libidl-0.6_s.lib $MOZ_TOOLS_DIR/lib/glib-1.2_s.lib"
|
|
STATIC_LIBIDL=1
|
|
|
|
AC_DEFINE(HAVE_SNPRINTF)
|
|
AC_DEFINE(_WINDOWS)
|
|
AC_DEFINE(_WIN32)
|
|
AC_DEFINE(WIN32)
|
|
AC_DEFINE(XP_WIN)
|
|
AC_DEFINE(XP_WIN32)
|
|
AC_DEFINE(HW_THREADS)
|
|
AC_DEFINE(STDC_HEADERS)
|
|
AC_DEFINE(NEW_H, <new>)
|
|
AC_DEFINE(WIN32_LEAN_AND_MEAN)
|
|
|
|
TARGET_MD_ARCH=win32
|
|
_PLATFORM_DEFAULT_TOOLKIT='windows'
|
|
BIN_SUFFIX='.exe'
|
|
USE_SHORT_LIBNAME=1
|
|
MOZ_ENABLE_COREXFONTS=
|
|
MOZ_ENABLE_POSTSCRIPT=
|
|
MOZ_USER_DIR="Mozilla"
|
|
;;
|
|
|
|
|
|
*-mingw*|*-cygwin*|*-msvc*|*-mks*)
|
|
DSO_CFLAGS=
|
|
DSO_PIC_CFLAGS=
|
|
DLL_SUFFIX=.dll
|
|
RC=rc.exe
|
|
# certain versions of cygwin's makedepend barf on the
|
|
# #include <string> vs -I./dist/include/string issue so don't use it
|
|
SYSTEM_MAKEDEPEND=
|
|
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'
|
|
MOZ_JPEG_LIBS='-L$(LIBXUL_DIST)/lib -ljpeg$(MOZ_BITS)$(VERSION_NUMBER)'
|
|
MOZ_ZLIB_LIBS='-L$(LIBXUL_DIST)/lib -lmozz'
|
|
MOZ_PNG_LIBS='-L$(LIBXUL_DIST)/lib -lpng'
|
|
MOZ_JS_LIBS='-L$(LIBXUL_DIST)/lib -ljs$(MOZ_BITS)$(VERSION_NUMBER)'
|
|
MOZ_FIX_LINK_PATHS=
|
|
DYNAMIC_XPCOM_LIBS='-L$(LIBXUL_DIST)/lib -lxpcom -lxpcom_core'
|
|
XPCOM_FROZEN_LDOPTS='-L$(LIBXUL_DIST)/lib -lxpcom'
|
|
DLL_PREFIX=
|
|
IMPORT_LIB_SUFFIX=dll.a
|
|
else
|
|
TARGET_COMPILER_ABI=msvc
|
|
HOST_CC='$(CC)'
|
|
HOST_CXX='$(CXX)'
|
|
HOST_LD='$(LD)'
|
|
AR='lib -NOLOGO -OUT:"$@"'
|
|
AR_FLAGS=
|
|
RANLIB='echo not_ranlib'
|
|
STRIP='echo not_strip'
|
|
XARGS=xargs
|
|
ZIP=zip
|
|
UNZIP=unzip
|
|
DOXYGEN=:
|
|
GARBAGE='$(OBJDIR)/vc20.pdb $(OBJDIR)/vc40.pdb'
|
|
OBJ_SUFFIX=obj
|
|
LIB_SUFFIX=lib
|
|
DLL_PREFIX=
|
|
LIB_PREFIX=
|
|
IMPORT_LIB_SUFFIX=lib
|
|
MKSHLIB='$(LD) -NOLOGO -DLL -OUT:$@ -PDB:$(PDBFILE) $(DSO_LDOPTS)'
|
|
MKCSHLIB='$(LD) -NOLOGO -DLL -OUT:$@ -PDB:$(PDBFILE) $(DSO_LDOPTS)'
|
|
MKSHLIB_FORCE_ALL=
|
|
MKSHLIB_UNFORCE_ALL=
|
|
DSO_LDOPTS=-SUBSYSTEM:WINDOWS
|
|
CFLAGS="$CFLAGS -W3 -Gy -Fd\$(PDBFILE)"
|
|
CXXFLAGS="$CXXFLAGS -W3 -Gy -Fd\$(PDBFILE)"
|
|
LIBS="$LIBS kernel32.lib user32.lib gdi32.lib winmm.lib wsock32.lib advapi32.lib"
|
|
MOZ_DEBUG_FLAGS='-Zi'
|
|
MOZ_DEBUG_LDFLAGS='-DEBUG -DEBUGTYPE:CV'
|
|
MOZ_OPTIMIZE_FLAGS='-O1'
|
|
MOZ_JPEG_LIBS='$(LIBXUL_DIST)/lib/jpeg$(MOZ_BITS)$(VERSION_NUMBER).lib'
|
|
MOZ_ZLIB_LIBS='$(LIBXUL_DIST)/lib/mozz.lib'
|
|
MOZ_PNG_LIBS='$(LIBXUL_DIST)/lib/png.lib'
|
|
MOZ_JS_LIBS='$(LIBXUL_DIST)/lib/js$(MOZ_BITS)$(VERSION_NUMBER).lib'
|
|
MOZ_FIX_LINK_PATHS=
|
|
DYNAMIC_XPCOM_LIBS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xpcom_core.lib'
|
|
XPCOM_FROZEN_LDOPTS='$(LIBXUL_DIST)/lib/xpcom.lib'
|
|
LIBXUL_LIBS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xul.lib'
|
|
MOZ_COMPONENT_NSPR_LIBS='$(NSPR_LIBS)'
|
|
MOZ_XPCOM_OBSOLETE_LIBS='$(LIBXUL_DIST)/lib/xpcom_compat.lib'
|
|
fi
|
|
AC_DEFINE(HAVE_SNPRINTF)
|
|
AC_DEFINE(_WINDOWS)
|
|
AC_DEFINE(_WIN32)
|
|
AC_DEFINE(WIN32)
|
|
AC_DEFINE(XP_WIN)
|
|
AC_DEFINE(XP_WIN32)
|
|
AC_DEFINE(HW_THREADS)
|
|
AC_DEFINE(STDC_HEADERS)
|
|
AC_DEFINE(NEW_H, <new>)
|
|
AC_DEFINE(WIN32_LEAN_AND_MEAN)
|
|
TARGET_MD_ARCH=win32
|
|
_PLATFORM_DEFAULT_TOOLKIT='cairo-windows'
|
|
BIN_SUFFIX='.exe'
|
|
USE_SHORT_LIBNAME=1
|
|
MOZ_ENABLE_POSTSCRIPT=
|
|
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)
|
|
|
|
dnl MinGW/MSYS doesn't provide or need cygpath
|
|
case "$host" in
|
|
*-mingw*)
|
|
CYGPATH_W=echo
|
|
CYGPATH_S=cat
|
|
MOZ_BUILD_ROOT=`cd $MOZ_BUILD_ROOT && pwd -W`
|
|
;;
|
|
*-cygwin*|*-msvc*|*-mks*)
|
|
CYGPATH_W="cygpath -a -w"
|
|
CYGPATH_S="sed -e s|\\\\|/|g"
|
|
MOZ_BUILD_ROOT=`$CYGPATH_W $MOZ_BUILD_ROOT | $CYGPATH_S`
|
|
;;
|
|
esac
|
|
case "$host" in
|
|
*-mingw*|*-cygwin*|*-msvc*|*-mks*)
|
|
|
|
if test -z "$MOZ_TOOLS"; then
|
|
AC_MSG_ERROR([MOZ_TOOLS is not set])
|
|
fi
|
|
|
|
MOZ_TOOLS_DIR=`cd $MOZ_TOOLS && pwd`
|
|
if test "$?" != "0" || test -z "$MOZ_TOOLS_DIR"; then
|
|
AC_MSG_ERROR([cd \$MOZ_TOOLS failed. MOZ_TOOLS ==? $MOZ_TOOLS])
|
|
fi
|
|
if test `echo ${PATH}: | grep -ic "$MOZ_TOOLS_DIR/bin:"` = 0; then
|
|
AC_MSG_ERROR([\$MOZ_TOOLS\\bin must be in your path.])
|
|
fi
|
|
MOZ_TOOLS_DIR=`$CYGPATH_W $MOZ_TOOLS_DIR | $CYGPATH_S`
|
|
|
|
if test -n "$GLIB_PREFIX"; then
|
|
_GLIB_PREFIX_DIR=`cd $GLIB_PREFIX && pwd`
|
|
if test "$?" = "0"; then
|
|
if test `echo ${PATH}: | grep -ic "$_GLIB_PREFIX_DIR/bin:"` = 0; then
|
|
AC_MSG_ERROR([GLIB_PREFIX must be in your \$PATH.])
|
|
fi
|
|
_GLIB_PREFIX_DIR=`$CYGPATH_W $_GLIB_PREFIX_DIR | $CYGPATH_S`
|
|
else
|
|
AC_MSG_ERROR([GLIB_PREFIX is set but "${GLIB_PREFIX}" is not a directory.])
|
|
fi
|
|
else
|
|
_GLIB_PREFIX_DIR=$MOZ_TOOLS_DIR
|
|
fi
|
|
if test ! -f "${_GLIB_PREFIX_DIR}/include/glib.h"; then
|
|
AC_MSG_ERROR([Cannot find $_GLIB_PREFIX_DIR/include/glib.h .])
|
|
fi
|
|
GLIB_CFLAGS="-I${_GLIB_PREFIX_DIR}/include"
|
|
if test -f "${_GLIB_PREFIX_DIR}/lib/glib-1.2_s.lib"; then
|
|
GLIB_LIBS="${_GLIB_PREFIX_DIR}/lib/glib-1.2_s.lib"
|
|
elif test -f "${_GLIB_PREFIX_DIR}/lib/glib-1.2.lib"; then
|
|
GLIB_LIBS="${_GLIB_PREFIX_DIR}/lib/glib-1.2.lib"
|
|
else
|
|
AC_MSG_ERROR([Cannot find $_GLIB_PREFIX_DIR/lib/glib-1.2.lib or $_GLIB_PREFIX_DIR/lib/glib-1.2_s.lib])
|
|
fi
|
|
|
|
if test -n "$LIBIDL_PREFIX"; then
|
|
_LIBIDL_PREFIX_DIR=`cd $LIBIDL_PREFIX && pwd`
|
|
if test "$?" = "0"; then
|
|
if test `echo ${PATH}: | grep -ic "$_LIBIDL_PREFIX_DIR/bin:"` = 0; then
|
|
AC_MSG_ERROR([LIBIDL_PREFIX must be in your \$PATH.])
|
|
fi
|
|
_LIBIDL_PREFIX_DIR=`$CYGPATH_W $_LIBIDL_PREFIX_DIR | $CYGPATH_S`
|
|
else
|
|
AC_MSG_ERROR([LIBIDL_PREFIX is set but "${LIBIDL_PREFIX}" is not a directory.])
|
|
fi
|
|
else
|
|
_LIBIDL_PREFIX_DIR=$MOZ_TOOLS_DIR
|
|
fi
|
|
if test ! -f "${_LIBIDL_PREFIX_DIR}/include/libIDL/IDL.h"; then
|
|
AC_MSG_ERROR([Cannot find $_LIBIDL_PREFIX_DIR/include/libIDL/IDL.h .])
|
|
fi
|
|
LIBIDL_CFLAGS="-I${_LIBIDL_PREFIX_DIR}/include ${GLIB_CFLAGS}"
|
|
if test -f "${_LIBIDL_PREFIX_DIR}/lib/libidl-0.6_s.lib"; then
|
|
LIBIDL_LIBS="${_LIBIDL_PREFIX_DIR}/lib/libidl-0.6_s.lib"
|
|
STATIC_LIBIDL=1
|
|
elif test -f "${_LIBIDL_PREFIX_DIR}/lib/libidl-0.6.lib"; then
|
|
LIBIDL_LIBS="${_LIBIDL_PREFIX_DIR}/lib/libidl-0.6.lib"
|
|
else
|
|
AC_MSG_ERROR([Cannot find $_LIBIDL_PREFIX_DIR/lib/libidl-0.6.lib or $_LIBIDL_PREFIX_DIR/lib/libidl-0.6_s.lib])
|
|
fi
|
|
LIBIDL_LIBS="${LIBIDL_LIBS} ${GLIB_LIBS}"
|
|
;;
|
|
|
|
*) # else cross-compiling
|
|
if test -n "$GLIB_PREFIX"; then
|
|
GLIB_CFLAGS="-I${GLIB_PREFIX}/include"
|
|
if test -f "${GLIB_PREFIX}/lib/glib-1.2_s.lib"; then
|
|
GLIB_LIBS="${GLIB_PREFIX}/lib/glib-1.2_s.lib"
|
|
elif test -f "${GLIB_PREFIX}/lib/glib-1.2.lib"; then
|
|
GLIB_LIBS="${GLIB_PREFIX}/lib/glib-1.2.lib"
|
|
else
|
|
AC_MSG_ERROR([Cannot find $GLIB_PREFIX/lib/glib-1.2.lib or $GLIB_PREFIX/lib/glib-1.2_s.lib])
|
|
fi
|
|
fi
|
|
if test -n "$LIBIDL_PREFIX"; then
|
|
LIBIDL_CFLAGS="-I${LIBIDL_PREFIX}/include ${GLIB_CFLAGS}"
|
|
if test -f "${LIBIDL_PREFIX}/lib/libIDL-0.6_s.lib"; then
|
|
LIBIDL_LIBS="${LIBIDL_PREFIX}/lib/libIDL-0.6_s.lib"
|
|
STATIC_LIBIDL=1
|
|
elif test -f "${LIBIDL_PREFIX}/lib/libIDL-0.6.lib"; then
|
|
LIBIDL_LIBS="${LIBIDL_PREFIX}/lib/libIDL-0.6.lib"
|
|
else
|
|
AC_MSG_ERROR([Cannot find $LIBIDL_PREFIX/lib/libIDL-0.6.lib or $LIBIDL_PREFIX/lib/libIDL-0.6_s.lib])
|
|
fi
|
|
fi
|
|
LIBIDL_LIBS="${LIBIDL_LIBS} ${GLIB_LIBS}"
|
|
;;
|
|
esac
|
|
|
|
case "$target" in
|
|
i*86-*)
|
|
AC_DEFINE(_X86_)
|
|
;;
|
|
alpha-*)
|
|
AC_DEFINE(_ALPHA_)
|
|
;;
|
|
mips-*)
|
|
AC_DEFINE(_MIPS_)
|
|
;;
|
|
*)
|
|
AC_DEFINE(_CPU_ARCH_NOT_DEFINED)
|
|
;;
|
|
esac
|
|
;;
|
|
|
|
*-netbsd*)
|
|
DSO_CFLAGS=''
|
|
CFLAGS="$CFLAGS -Dunix"
|
|
CXXFLAGS="$CXXFLAGS -Dunix"
|
|
if $CC -E - -dM </dev/null | grep __ELF__ >/dev/null; then
|
|
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 $@'
|
|
;;
|
|
|
|
*-nto*)
|
|
AC_DEFINE(NTO)
|
|
AC_DEFINE(_QNX_SOURCE)
|
|
AC_DEFINE(_i386)
|
|
OS_TARGET=NTO
|
|
MOZ_OPTIMIZE_FLAGS="-O"
|
|
MOZ_DEBUG_FLAGS="-gstabs"
|
|
USE_PTHREADS=1
|
|
_PEDANTIC=
|
|
LIBS="$LIBS -lsocket -lstdc++"
|
|
_DEFINES_CFLAGS='-Wp,-include -Wp,$(DEPTH)/mozilla-config.h -DMOZILLA_CLIENT -D_POSIX_C_SOURCE=199506'
|
|
_DEFINES_CXXFLAGS='-DMOZILLA_CLIENT -Wp,-include -Wp,$(DEPTH)/mozilla-config.h -D_POSIX_C_SOURCE=199506'
|
|
if test "$with_x" != "yes"
|
|
then
|
|
_PLATFORM_DEFAULT_TOOLKIT="photon"
|
|
TK_CFLAGS='-I/usr/include/photon'
|
|
TK_LIBS='-lph'
|
|
fi
|
|
case "${target_cpu}" in
|
|
ppc*)
|
|
AC_DEFINE(HAVE_VA_LIST_AS_ARRAY)
|
|
;;
|
|
esac
|
|
case "${host_cpu}" in
|
|
i*86)
|
|
USE_ELF_DYNSTR_GC=1
|
|
;;
|
|
esac
|
|
;;
|
|
|
|
*-openbsd*)
|
|
DLL_SUFFIX=".so.1.0"
|
|
DSO_CFLAGS=''
|
|
DSO_PIC_CFLAGS='-fPIC'
|
|
DSO_LDOPTS='-shared -fPIC'
|
|
if test "$LIBRUNPATH"; then
|
|
DSO_LDOPTS="-R$LIBRUNPATH $DSO_LDOPTS"
|
|
fi
|
|
;;
|
|
|
|
*-openvms*)
|
|
AC_DEFINE(NO_PW_GECOS)
|
|
AC_DEFINE(NO_UDSOCK)
|
|
AC_DEFINE(POLL_WITH_XCONNECTIONNUMBER)
|
|
USE_PTHREADS=1
|
|
MKSHLIB_FORCE_ALL='-all'
|
|
MKSHLIB_UNFORCE_ALL='-none'
|
|
AS='as'
|
|
AS_DASH_C_FLAG='-Wc/names=as_is'
|
|
AR_FLAGS='c $@'
|
|
DSO_LDOPTS='-shared -auto_symvec'
|
|
DSO_PIC_CFLAGS=
|
|
MOZ_DEBUG_LDFLAGS='-g'
|
|
COMPAQ_CXX=1
|
|
CC_VERSION=`$CC -V 2>&1 | awk '/ C / { print $3 }'`
|
|
CXX_VERSION=`$CXX -V 2>&1 | awk '/ C\+\+ / { print $3 }'`
|
|
;;
|
|
|
|
|
|
*-os2*)
|
|
MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
|
|
MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
|
|
AC_DEFINE(XP_OS2)
|
|
USE_SHORT_LIBNAME=1
|
|
DLL_PREFIX=
|
|
LIB_PREFIX=
|
|
LIB_SUFFIX=lib
|
|
BIN_SUFFIX=".exe"
|
|
DLL_SUFFIX=".dll"
|
|
IMPORT_LIB_SUFFIX=lib
|
|
DSO_PIC_CFLAGS=
|
|
TARGET_MD_ARCH=os2
|
|
_PLATFORM_DEFAULT_TOOLKIT=os2
|
|
WIDGET_DLL='\"wdgt$(MOZ_WIDGET_TOOLKIT)$(DLL_SUFFIX)\"'
|
|
GFXWIN_DLL='\"gfx_$(MOZ_GFX_TOOLKIT)$(DLL_SUFFIX)\"'
|
|
MOZ_ENABLE_POSTSCRIPT=
|
|
RC=rc.exe
|
|
RCFLAGS='-n'
|
|
MOZ_USER_DIR="Mozilla"
|
|
|
|
if test "$MOZTOOLS"; then
|
|
MOZ_TOOLS_DIR=`echo $MOZTOOLS | sed -e 's|\\\\|/|g'`
|
|
else
|
|
AC_MSG_ERROR([MOZTOOLS is not set])
|
|
fi
|
|
|
|
# EMX/GCC build
|
|
if test -n "$GNU_CC"; then
|
|
AC_DEFINE(OS2)
|
|
AC_DEFINE(XP_OS2_EMX)
|
|
AC_DEFINE(OS2EMX_PLAIN_CHAR)
|
|
AC_DEFINE(TCPV40HDRS)
|
|
AR=emxomfar
|
|
AR_FLAGS='r $@'
|
|
CFLAGS="$CFLAGS -Zomf"
|
|
CXXFLAGS="$CXXFLAGS -Zomf"
|
|
DSO_LDOPTS='-Zdll'
|
|
BIN_FLAGS='-Zlinker /ST:0x100000'
|
|
IMPLIB='emximp -o'
|
|
FILTER='emxexp -o'
|
|
LDFLAGS='-Zmap'
|
|
MOZ_DEBUG_FLAGS="-g -fno-inline"
|
|
MOZ_OPTIMIZE_FLAGS="-O2 -s"
|
|
MOZ_OPTIMIZE_LDFLAGS="-Zlinker /EXEPACK:2 -Zlinker /PACKCODE -Zlinker /PACKDATA"
|
|
MOZ_WIDGET_TOOLKIT_LDFLAGS='-lwdgt$(MOZ_WIDGET_TOOLKIT)'
|
|
MOZ_GFX_TOOLKIT_LDFLAGS='-lgfx_$(MOZ_GFX_TOOLKIT)'
|
|
MOZ_XPCOM_OBSOLETE_LIBS='-L$(LIBXUL_DIST)/lib $(LIBXUL_DIST)/lib/xpcomct.lib'
|
|
DYNAMIC_XPCOM_LIBS='-L$(LIBXUL_DIST)/lib $(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xpcomcor.lib'
|
|
LIBXUL_LIBS='-L$(LIBXUL_DIST)/lib $(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xul.lib'
|
|
|
|
# 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
|
|
FILTER='true'
|
|
MOZ_OS2_USE_DECLSPEC='1'
|
|
fi
|
|
|
|
# Visual Age C++ build
|
|
elif test "$VACPP" = "yes"; then
|
|
MOZ_BUILD_ROOT=`pwd -D`
|
|
OBJ_SUFFIX=obj
|
|
AR=-ilib
|
|
AR_FLAGS='/NOL /NOI /O:$(subst /,\\,$@)'
|
|
AR_LIST='/L'
|
|
AR_EXTRACT='-*'
|
|
AR_DELETE='-'
|
|
AS=alp
|
|
ASFLAGS='-Mb'
|
|
AS_DASH_C_FLAG=''
|
|
ASM_SUFFIX=asm
|
|
LD='-ilink'
|
|
CFLAGS="/Q /qlibansi /Gm+ /Su4 /Mp /Tl9"
|
|
CXXFLAGS="/Q /qlibansi /Gm+ /Su4 /Mp /Tl9 /Gx+"
|
|
MOZ_DEBUG_FLAGS="/Ti+"
|
|
MOZ_OPTIMIZE_FLAGS="/O+ /Gl+ /G5 /qarch=pentium"
|
|
LDFLAGS="/NOL /M"
|
|
MOZ_DEBUG_LDFLAGS="/DE"
|
|
MOZ_OPTIMIZE_LDFLAGS="/OPTFUNC /EXEPACK:2 /PACKCODE /PACKDATA"
|
|
DSO_LDOPTS=''
|
|
DSO_PIC_CFLAGS=
|
|
IMPLIB='implib /NOL /NOI'
|
|
FILTER='cppfilt -q -B -P'
|
|
AC_DEFINE(NO_ANSI_KEYWORDS)
|
|
AC_DEFINE(OS2,4)
|
|
AC_DEFINE(_X86_)
|
|
AC_DEFINE(XP_OS2_VACPP)
|
|
AC_DEFINE(TCPV40HDRS)
|
|
AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
|
|
AC_DEFINE(STDC_HEADERS)
|
|
MOZ_COMPONENT_NSPR_LIBS='$(NSPR_LIBS)'
|
|
MKSHLIB='$(LD) $(DSO_LDOPTS)'
|
|
MKCSHLIB='$(LD) $(DSO_LDOPTS)'
|
|
MOZ_JS_LIBS='$(LIBXUL_DIST)/lib/mozjs.lib'
|
|
MOZ_XPCOM_OBSOLETE_LIBS='$(LIBXUL_DIST)/lib/xpcomct.lib'
|
|
DYNAMIC_XPCOM_LIBS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xpcomcor.lib'
|
|
LIBXUL_LIBS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xul.lib'
|
|
MOZ_JPEG_LIBS='$(LIBXUL_DIST)/lib/mozjpeg.$(LIB_SUFFIX)'
|
|
MOZ_ZLIB_LIBS='$(LIBXUL_DIST)/lib/mozz.$(LIB_SUFFIX)'
|
|
MOZ_PNG_LIBS='$(LIBXUL_DIST)/lib/mozpng.$(LIB_SUFFIX)'
|
|
MOZ_WIDGET_TOOLKIT_LDFLAGS='$(LIBXUL_DIST)/lib/wdgt$(MOZ_WIDGET_TOOLKIT)'
|
|
MOZ_GFX_TOOLKIT_LDFLAGS='$(LIBXUL_DIST)/lib/gfx_$(MOZ_GFX_TOOLKIT)'
|
|
fi
|
|
;;
|
|
|
|
alpha*-*-osf*)
|
|
if test "$GNU_CC"; then
|
|
MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,$@ -o $@'
|
|
MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,$@ -o $@'
|
|
|
|
else
|
|
MOZ_DEBUG_FLAGS='-g'
|
|
ASFLAGS='-I$(topsrcdir)/xpcom/reflect/xptcall/public -g'
|
|
CFLAGS="$CFLAGS -ieee"
|
|
CXXFLAGS="$CXXFLAGS "'-noexceptions -ieee -ptr $(DIST)/cxx_repository'
|
|
DSO_LDOPTS='-shared -msym -expect_unresolved \* -update_registry $(DIST)/so_locations'
|
|
DSO_CFLAGS=
|
|
DSO_PIC_CFLAGS=
|
|
MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -soname $@ -o $@'
|
|
MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -soname $@ -o $@'
|
|
MKSHLIB_FORCE_ALL='-all'
|
|
MKSHLIB_UNFORCE_ALL='-none'
|
|
dnl Might fix the libxpcom.so breakage on this platform as well....
|
|
AC_DEFINE(NSCAP_DISABLE_TEST_DONTQUERY_CASES)
|
|
AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
|
|
fi
|
|
if test -z "$GNU_CXX"; then
|
|
COMPAQ_CXX=1
|
|
fi
|
|
AC_DEFINE(NEED_USLEEP_PROTOTYPE)
|
|
;;
|
|
|
|
*-qnx*)
|
|
DIRENT_INO=d_stat.st_ino
|
|
dnl Solves the problems the QNX compiler has with nsCOMPtr.h.
|
|
AC_DEFINE(NSCAP_DISABLE_TEST_DONTQUERY_CASES)
|
|
AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
|
|
dnl Explicit set STDC_HEADERS to workaround QNX 6.0's failing of std test
|
|
AC_DEFINE(STDC_HEADERS)
|
|
if test "$no_x" = "yes"; then
|
|
_PLATFORM_DEFAULT_TOOLKIT='photon'
|
|
TK_CFLAGS='-I/usr/nto/include/photon'
|
|
TK_LIBS='-lphoton -lphrender'
|
|
fi
|
|
;;
|
|
|
|
*-sco*)
|
|
AC_DEFINE(NSCAP_DISABLE_TEST_DONTQUERY_CASES)
|
|
AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
|
|
CXXFLAGS="$CXXFLAGS -I/usr/include/CC"
|
|
if test ! "$GNU_CC"; then
|
|
DSO_LDOPTS='-G'
|
|
fi
|
|
;;
|
|
|
|
dnl the qsort routine under solaris is faulty
|
|
*-solaris*)
|
|
AC_DEFINE(SOLARIS)
|
|
TARGET_NSPR_MDCPUCFG='\"md/_solaris.cfg\"'
|
|
SYSTEM_MAKEDEPEND=
|
|
# $ORIGIN/.. is for shared libraries under components/ to locate shared
|
|
# libraries one level up (e.g. libnspr4.so)
|
|
LDFLAGS="$LDFLAGS -z ignore -R '\$\$ORIGIN:\$\$ORIGIN/..'"
|
|
if test -z "$GNU_CC"; then
|
|
NS_USE_NATIVE=1
|
|
MOZ_FIX_LINK_PATHS='-R $(LIBXUL_DIST)/bin'
|
|
AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
|
|
CFLAGS="$CFLAGS -xstrconst -xbuiltin=%all"
|
|
CXXFLAGS="$CXXFLAGS -xbuiltin=%all -features=tmplife -norunpath"
|
|
LDFLAGS="-xildoff -z lazyload -z combreloc $LDFLAGS"
|
|
if test -z "$CROSS_COMPILE" && test -f /usr/lib/ld/map.noexstk; then
|
|
_SAVE_LDFLAGS=$LDFLAGS
|
|
LDFLAGS="-M /usr/lib/ld/map.noexstk $LDFLAGS"
|
|
AC_TRY_LINK([#include <stdio.h>],
|
|
[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) -G -z muldefs -h $@ -o $@'
|
|
MKSHLIB_FORCE_ALL='-z allextract'
|
|
MKSHLIB_UNFORCE_ALL=''
|
|
DSO_LDOPTS='-G -z muldefs'
|
|
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 Forte compiler version >= WS6U2])
|
|
AC_LANG_SAVE
|
|
AC_LANG_CPLUSPLUS
|
|
AC_TRY_COMPILE([],
|
|
[#if (__SUNPRO_CC < 0x530)
|
|
#error "Denied"
|
|
#endif],
|
|
_BAD_COMPILER=,_BAD_COMPILER=1)
|
|
if test -n "$_BAD_COMPILER"; then
|
|
_res="no"
|
|
AC_MSG_ERROR([Forte version WS6U2 or higher is required to build. Your compiler version is $CC_VERSION .])
|
|
else
|
|
_res="yes"
|
|
fi
|
|
AC_MSG_RESULT([$_res])
|
|
AC_LANG_RESTORE
|
|
else
|
|
ASFLAGS="$ASFLAGS -fPIC"
|
|
DSO_LDOPTS='-G'
|
|
_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
|
|
;;
|
|
|
|
*-sysv4.2uw7*)
|
|
NSPR_LIBS="-lnspr$NSPR_VERSION -lplc$NSPR_VERSION -lplds$NSPR_VERSION -L/usr/ccs/lib -lcrt"
|
|
;;
|
|
|
|
*-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" || test -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=
|
|
;;
|
|
*-openvms*)
|
|
NO_LD_ARCHIVE_FLAGS=
|
|
;;
|
|
*-msvc*|*-mks*|*-mingw*|*-cygwin*|*-wince)
|
|
if test -z "$GNU_CC"; then
|
|
NO_LD_ARCHIVE_FLAGS=
|
|
fi
|
|
;;
|
|
esac
|
|
AC_SUBST(NO_LD_ARCHIVE_FLAGS)
|
|
|
|
dnl
|
|
dnl Indicate that platform requires special thread safe
|
|
dnl locking when starting up the OJI JVM
|
|
dnl (see mozilla/modules/oji/src/nsJVMManager.cpp)
|
|
dnl ========================================================
|
|
case "$target" in
|
|
*-hpux*)
|
|
AC_DEFINE(MOZ_OJI_REQUIRE_THREAD_SAFE_ON_STARTUP)
|
|
;;
|
|
esac
|
|
|
|
dnl ========================================================
|
|
dnl = Flags to strip unused symbols from .so components
|
|
dnl ========================================================
|
|
case "$target" in
|
|
*-linux*)
|
|
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
|
|
;;
|
|
*-nto*)
|
|
MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,--version-script,$(BUILD_TOOLS)/gnu-ld-scripts/components-version-script'
|
|
;;
|
|
*-darwin*)
|
|
AC_MSG_CHECKING(for -exported_symbols_list option to ld)
|
|
AC_CACHE_VAL(ac_cv_exported_symbols_list,
|
|
[
|
|
if $LD -exported_symbols_list 2>&1 | grep "argument missing" >/dev/null; then
|
|
ac_cv_exported_symbols_list=true
|
|
else
|
|
ac_cv_exported_symbols_list=false
|
|
fi
|
|
])
|
|
if test "$ac_cv_exported_symbols_list" = true; then
|
|
MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,-exported_symbols_list -Wl,$(BUILD_TOOLS)/gnu-ld-scripts/components-export-list'
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
;;
|
|
*-cygwin*|*-mingw*|*-mks*|*-msvc|*-wince)
|
|
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
|
|
fi
|
|
|
|
if test -z "$SKIP_COMPILER_CHECKS"; then
|
|
dnl Checks for typedefs, structures, and compiler characteristics.
|
|
dnl ========================================================
|
|
AC_LANG_C
|
|
AC_HEADER_STDC
|
|
AC_C_CONST
|
|
AC_TYPE_MODE_T
|
|
AC_TYPE_OFF_T
|
|
AC_TYPE_PID_T
|
|
AC_TYPE_SIZE_T
|
|
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 <signal.h>],
|
|
[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 Visual Age for os/2 also defines size_t and off_t in certain
|
|
dnl header files. These defines make Visual Age use the mozilla
|
|
dnl defines types.
|
|
if test "$VACPP" = "yes"; then
|
|
AC_DEFINE(__size_t)
|
|
AC_DEFINE(__off_t)
|
|
fi
|
|
|
|
dnl Check for int16_t, int32_t, int64_t, int64, uint, uint_t, and uint16_t.
|
|
dnl ========================================================
|
|
AC_MSG_CHECKING(for int16_t)
|
|
AC_CACHE_VAL(ac_cv_int16_t,
|
|
[AC_TRY_COMPILE([#include <stdio.h>
|
|
#include <sys/types.h>],
|
|
[int16_t foo = 0;],
|
|
[ac_cv_int16_t=true],
|
|
[ac_cv_int16_t=false])])
|
|
if test "$ac_cv_int16_t" = true ; then
|
|
AC_DEFINE(HAVE_INT16_T)
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
AC_MSG_CHECKING(for int32_t)
|
|
AC_CACHE_VAL(ac_cv_int32_t,
|
|
[AC_TRY_COMPILE([#include <stdio.h>
|
|
#include <sys/types.h>],
|
|
[int32_t foo = 0;],
|
|
[ac_cv_int32_t=true],
|
|
[ac_cv_int32_t=false])])
|
|
if test "$ac_cv_int32_t" = true ; then
|
|
AC_DEFINE(HAVE_INT32_T)
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
AC_MSG_CHECKING(for int64_t)
|
|
AC_CACHE_VAL(ac_cv_int64_t,
|
|
[AC_TRY_COMPILE([#include <stdio.h>
|
|
#include <sys/types.h>],
|
|
[int64_t foo = 0;],
|
|
[ac_cv_int64_t=true],
|
|
[ac_cv_int64_t=false])])
|
|
if test "$ac_cv_int64_t" = true ; then
|
|
AC_DEFINE(HAVE_INT64_T)
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
AC_MSG_CHECKING(for int64)
|
|
AC_CACHE_VAL(ac_cv_int64,
|
|
[AC_TRY_COMPILE([#include <stdio.h>
|
|
#include <sys/types.h>],
|
|
[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 <stdio.h>
|
|
#include <sys/types.h>],
|
|
[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 <stdio.h>
|
|
#include <sys/types.h>],
|
|
[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
|
|
AC_MSG_CHECKING(for uint16_t)
|
|
AC_CACHE_VAL(ac_cv_uint16_t,
|
|
[AC_TRY_COMPILE([#include <stdio.h>
|
|
#include <sys/types.h>],
|
|
[uint16_t foo = 0;],
|
|
[ac_cv_uint16_t=true],
|
|
[ac_cv_uint16_t=false])])
|
|
if test "$ac_cv_uint16_t" = true ; then
|
|
AC_DEFINE(HAVE_UINT16_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 <sys/utsname.h>],
|
|
[ 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 <sys/utsname.h>],
|
|
[ 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
|
|
|
|
AC_LANG_C
|
|
|
|
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,
|
|
[AC_TRY_RUN([#include <stddef.h>
|
|
int main () {
|
|
return (sizeof(wchar_t) != 2) ||
|
|
(wchar_t)-1 < (wchar_t) 0 ; } ],
|
|
ac_cv_have_usable_wchar="yes",
|
|
ac_cv_have_usable_wchar="no",
|
|
ac_cv_have_usable_wchar="maybe")])
|
|
if test "$ac_cv_have_usable_wchar" = "yes"; then
|
|
AC_DEFINE(HAVE_CPP_2BYTE_WCHAR_T)
|
|
HAVE_CPP_2BYTE_WCHAR_T=1
|
|
else
|
|
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)
|
|
|
|
AC_LANG_SAVE
|
|
AC_LANG_CPLUSPLUS
|
|
_SAVE_CXXFLAGS=$CXXFLAGS
|
|
CXXFLAGS="$CXXFLAGS -fshort-wchar"
|
|
|
|
AC_CACHE_CHECK(for compiler -fshort-wchar option,
|
|
ac_cv_have_usable_wchar_option,
|
|
[AC_TRY_RUN([#include <stddef.h>
|
|
int main () {
|
|
return (sizeof(wchar_t) != 2) ||
|
|
(wchar_t)-1 < (wchar_t) 0 ; } ],
|
|
ac_cv_have_usable_wchar_option="yes",
|
|
ac_cv_have_usable_wchar_option="no",
|
|
ac_cv_have_usable_wchar_option="maybe")])
|
|
|
|
if test "$ac_cv_have_usable_wchar_option" = "yes"; then
|
|
AC_DEFINE(HAVE_CPP_2BYTE_WCHAR_T)
|
|
HAVE_CPP_2BYTE_WCHAR_T=1
|
|
else
|
|
CXXFLAGS=$_SAVE_CXXFLAGS
|
|
fi
|
|
AC_LANG_RESTORE
|
|
fi
|
|
|
|
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 <<EOF
|
|
int foo __attribute__ ((visibility ("hidden"))) = 1;
|
|
EOF
|
|
ac_cv_visibility_hidden=no
|
|
if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
|
|
if grep '\.hidden.*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 <<EOF
|
|
int foo __attribute__ ((visibility ("default"))) = 1;
|
|
EOF
|
|
ac_cv_visibility_default=no
|
|
if ${CC-cc} -fvisibility=hidden -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
|
|
if ! grep '\.hidden.*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 <<EOF
|
|
#pragma GCC visibility push(hidden)
|
|
int foo_hidden = 1;
|
|
#pragma GCC visibility push(default)
|
|
int foo_default = 1;
|
|
EOF
|
|
ac_cv_visibility_pragma=no
|
|
if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
|
|
if grep '\.hidden.*foo_hidden' conftest.s >/dev/null; then
|
|
if ! grep '\.hidden.*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 x86_64 gcc visibility bug with builtins (GCC bug 20297),
|
|
ac_cv_have_visibility_builtin_bug,
|
|
[cat > conftest.c <<EOF
|
|
#pragma GCC visibility push(hidden)
|
|
#pragma GCC visibility push(default)
|
|
#include <string.h>
|
|
#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} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -O2 -o conftest.so conftest.c >/dev/null 2>&1; then
|
|
ac_cv_have_visibility_builtin_bug=yes
|
|
fi
|
|
rm -f conftest.{c,so}
|
|
])
|
|
if test "$ac_cv_have_visibility_builtin_bug" = "no"; then
|
|
VISIBILITY_FLAGS='-I$(DIST)/include/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h'
|
|
WRAP_SYSTEM_INCLUDES=1
|
|
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
|
|
|
|
AC_SUBST(WRAP_SYSTEM_INCLUDES)
|
|
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 Try for MMX support
|
|
dnl NB - later gcc versions require -mmmx for this header to be successfully
|
|
dnl included (or another option which implies it, such as -march=pentium-mmx)
|
|
AC_CHECK_HEADERS(mmintrin.h)
|
|
|
|
dnl Check whether the compiler supports the new-style C++ standard
|
|
dnl library headers (i.e. <new>) 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
|
|
|
|
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.
|
|
dnl The same goes for BeOS.
|
|
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*)
|
|
;;
|
|
*-beos*)
|
|
;;
|
|
*)
|
|
AC_CHECK_LIB(m, atan)
|
|
AC_CHECK_LIB(dl, dlopen,
|
|
AC_CHECK_HEADER(dlfcn.h,
|
|
LIBS="-ldl $LIBS"
|
|
AC_DEFINE(HAVE_LIBDL)))
|
|
;;
|
|
esac
|
|
if test ! "$GNU_CXX"; then
|
|
|
|
case $target in
|
|
*-aix*)
|
|
AC_CHECK_LIB(C_r, demangle)
|
|
;;
|
|
*)
|
|
AC_CHECK_LIB(C, demangle)
|
|
;;
|
|
esac
|
|
fi
|
|
AC_CHECK_LIB(socket, socket)
|
|
|
|
XLDFLAGS="$X_LIBS"
|
|
XLIBS="$X_EXTRA_LIBS"
|
|
|
|
dnl ========================================================
|
|
dnl Checks for X libraries.
|
|
dnl Ordering is important.
|
|
dnl Xt is dependent upon SM as of X11R6
|
|
dnl ========================================================
|
|
if test "$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"],
|
|
[MISSING_X="$MISSING_X -lX11"], $XLIBS)
|
|
AC_CHECK_LIB(Xext, XextAddDisplay, [XEXT_LIBS="-lXext"],
|
|
[MISSING_X="$MISSING_X -lXext"], $XLIBS)
|
|
|
|
|
|
AC_CHECK_LIB(Xt, XtFree, [ XT_LIBS="-lXt"], [
|
|
unset ac_cv_lib_Xt_XtFree
|
|
AC_CHECK_LIB(ICE, IceFlush, [XT_LIBS="-lICE $XT_LIBS"],, $XT_LIBS $XLIBS)
|
|
AC_CHECK_LIB(SM, SmcCloseConnection, [XT_LIBS="-lSM $XT_LIBS"],, $XT_LIBS $XLIBS)
|
|
AC_CHECK_LIB(Xt, XtFree, [ XT_LIBS="-lXt $XT_LIBS"],
|
|
[MISSING_X="$MISSING_X -lXt"], $X_PRE_LIBS $XT_LIBS $XLIBS)
|
|
])
|
|
|
|
# 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
|
|
|
|
dnl ========================================================
|
|
dnl = Check for Xinerama
|
|
dnl ========================================================
|
|
AC_CHECK_LIB(Xinerama, XineramaIsActive, [MOZ_XINERAMA_LIBS="-lXinerama"],,
|
|
$XLIBS $XEXT_LIBS)
|
|
AC_CHECK_HEADER(X11/extensions/Xinerama.h)
|
|
|
|
dnl ========================================================
|
|
dnl = Check for XShm
|
|
dnl ========================================================
|
|
AC_CHECK_LIB(Xext, XShmCreateImage, _HAVE_XSHM_XEXT=1,,
|
|
$XLIBS $XEXT_LIBS)
|
|
AC_CHECK_HEADER(X11/extensions/XShm.h)
|
|
if test -n "$ac_cv_header_X11_extensions_XShm_h" &&
|
|
test -n "$_HAVE_XSHM_XEXT"; then
|
|
AC_DEFINE(HAVE_XSHM)
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl = Check for XIE
|
|
dnl ========================================================
|
|
AC_CHECK_LIB(XIE, XieFloGeometry, [MOZ_XIE_LIBS="-lXIE"],,
|
|
$XLIBS $XEXT_LIBS)
|
|
AC_CHECK_HEADER(X11/extensions/XIElib.h)
|
|
|
|
if test "$MOZ_XIE_LIBS"; then
|
|
dnl ====================================================
|
|
dnl = If XIE is present and is desired, turn it on
|
|
dnl ====================================================
|
|
case $target in
|
|
*-hpux*)
|
|
;;
|
|
*)
|
|
HAVE_XIE=1
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
LDFLAGS="$_SAVE_LDFLAGS"
|
|
|
|
AC_CHECK_FT2(6.1.0, [_HAVE_FREETYPE2=1], [_HAVE_FREETYPE2=])
|
|
|
|
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`" && test -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`" && test -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*)
|
|
AC_DEFINE(_REENTRANT)
|
|
;;
|
|
|
|
*-*-nto*)
|
|
AC_DEFINE(_REENTRANT)
|
|
;;
|
|
|
|
*-aix4.3*|*-aix5*)
|
|
AC_DEFINE(_REENTRANT)
|
|
;;
|
|
|
|
*-hpux11.*)
|
|
AC_DEFINE(_REENTRANT)
|
|
;;
|
|
|
|
alpha*-*-osf*)
|
|
AC_DEFINE(_REENTRANT)
|
|
;;
|
|
|
|
*-*-solaris*)
|
|
AC_DEFINE(_REENTRANT)
|
|
if test ! "$GNU_CC"; then
|
|
CFLAGS="$CFLAGS -mt"
|
|
CXXFLAGS="$CXXFLAGS -mt"
|
|
fi
|
|
;;
|
|
esac
|
|
LDFLAGS="${_PTHREAD_LDFLAGS} ${LDFLAGS}"
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl Check for MacOS deployment target version
|
|
dnl ========================================================
|
|
|
|
MOZ_ARG_ENABLE_STRING(macos-target,
|
|
[ --enable-macos-target=VER (default=10.2/ppc, 10.4/x86)
|
|
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
|
|
elif test -z "$MACOSX_DEPLOYMENT_TARGET" ; then
|
|
dnl No value specified on the command line or in the environment,
|
|
dnl use the lesser of the application's minimum or the architecture's
|
|
dnl minimum.
|
|
case "${target_cpu}" in
|
|
powerpc*)
|
|
dnl Architecture minimum 10.1
|
|
export MACOSX_DEPLOYMENT_TARGET=10.2
|
|
;;
|
|
i*86*)
|
|
dnl Architecture minimum 10.4
|
|
export MACOSX_DEPLOYMENT_TARGET=10.4
|
|
;;
|
|
esac
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
|
|
|
|
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 <stdlib.h>
|
|
#include <unistd.h>
|
|
#include <sys/mman.h>
|
|
#include <sys/types.h>
|
|
#include <sys/stat.h>
|
|
#include <fcntl.h>
|
|
|
|
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)
|
|
AC_CHECK_FUNCS(flockfile getpagesize)
|
|
|
|
dnl localtime_r and strtok_r are only present on MacOS version 10.2 and higher
|
|
if test -z "$MACOS_DEPLOYMENT_TARGET" || test "$MACOS_DEPLOYMENT_TARGET" -ge "100200"; then
|
|
AC_CHECK_FUNCS(localtime_r strtok_r)
|
|
fi
|
|
|
|
dnl check for wcrtomb/mbrtowc
|
|
dnl =======================================================================
|
|
if test -z "$MACOS_DEPLOYMENT_TARGET" || test "$MACOS_DEPLOYMENT_TARGET" -ge "100300"; then
|
|
AC_LANG_SAVE
|
|
AC_LANG_CPLUSPLUS
|
|
AC_CACHE_CHECK(for wcrtomb,
|
|
ac_cv_have_wcrtomb,
|
|
[AC_TRY_LINK([#include <wchar.h>],
|
|
[mbstate_t ps={0};wcrtomb(0,'f',&ps);],
|
|
ac_cv_have_wcrtomb="yes",
|
|
ac_cv_have_wcrtomb="no")])
|
|
if test "$ac_cv_have_wcrtomb" = "yes"; then
|
|
AC_DEFINE(HAVE_WCRTOMB)
|
|
fi
|
|
AC_CACHE_CHECK(for mbrtowc,
|
|
ac_cv_have_mbrtowc,
|
|
[AC_TRY_LINK([#include <wchar.h>],
|
|
[mbstate_t ps={0};mbrtowc(0,0,0,&ps);],
|
|
ac_cv_have_mbrtowc="yes",
|
|
ac_cv_have_mbrtowc="no")])
|
|
if test "$ac_cv_have_mbrtowc" = "yes"; then
|
|
AC_DEFINE(HAVE_MBRTOWC)
|
|
fi
|
|
AC_LANG_RESTORE
|
|
fi
|
|
|
|
AC_CACHE_CHECK(
|
|
[for res_ninit()],
|
|
ac_cv_func_res_ninit,
|
|
[AC_TRY_LINK([
|
|
#ifdef linux
|
|
#define _BSD_SOURCE 1
|
|
#endif
|
|
#include <resolv.h>
|
|
],
|
|
[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 <gnu/libc-version.h>
|
|
#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*|msvc*|mks*|cygwin*|mingw*|darwin*|wince*|beos*)
|
|
;;
|
|
*)
|
|
|
|
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 <stdlib.h>
|
|
#include <iconv.h>
|
|
],
|
|
[
|
|
iconv_t h = iconv_open("", "");
|
|
iconv(h, NULL, NULL, NULL, NULL);
|
|
iconv_close(h);
|
|
],
|
|
[ac_cv_func_iconv=yes],
|
|
[ac_cv_func_iconv=no]
|
|
)]
|
|
)
|
|
if test "$ac_cv_func_iconv" = "yes"; then
|
|
AC_DEFINE(HAVE_ICONV)
|
|
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 <stdlib.h>
|
|
#include <iconv.h>
|
|
],
|
|
[
|
|
const char *input = "testing";
|
|
iconv_t h = iconv_open("", "");
|
|
iconv(h, &input, NULL, NULL, NULL);
|
|
iconv_close(h);
|
|
],
|
|
[ac_cv_func_const_iconv=yes],
|
|
[ac_cv_func_const_iconv=no]
|
|
)]
|
|
)
|
|
if test "$ac_cv_func_const_iconv" = "yes"; then
|
|
AC_DEFINE(HAVE_ICONV_WITH_CONST_INPUT)
|
|
fi
|
|
fi
|
|
LIBS=$_SAVE_LIBS
|
|
|
|
;;
|
|
esac
|
|
|
|
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 <stdarg.h>
|
|
void f (int i, ...) {
|
|
va_list args1, args2;
|
|
va_start (args1, i);
|
|
va_copy (args2, args1);
|
|
if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
|
|
exit (1);
|
|
va_end (args1); va_end (args2);
|
|
}
|
|
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 <stdarg.h>
|
|
void f (int i, ...) {
|
|
va_list args1, args2;
|
|
va_start (args1, i);
|
|
__va_copy (args2, args1);
|
|
if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
|
|
exit (1);
|
|
va_end (args1); va_end (args2);
|
|
}
|
|
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 <stdarg.h>
|
|
void f (int i, ...) {
|
|
va_list args1, args2;
|
|
va_start (args1, i);
|
|
args2 = args1;
|
|
if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
|
|
exit (1);
|
|
va_end (args1); va_end (args2);
|
|
}
|
|
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 <stdio.h>
|
|
#include <link.h>
|
|
#include <dlfcn.h>
|
|
#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 <stdio.h>
|
|
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 By default, turn rtti and exceptions off on g++/egcs
|
|
dnl ========================================================
|
|
if test "$GNU_CXX"; then
|
|
|
|
AC_MSG_CHECKING(for C++ exceptions flag)
|
|
|
|
dnl They changed -f[no-]handle-exceptions to -f[no-]exceptions in g++ 2.8
|
|
AC_CACHE_VAL(ac_cv_cxx_exceptions_flags,
|
|
[echo "int main() { return 0; }" | cat > conftest.C
|
|
|
|
${CXX-g++} ${CXXFLAGS} -c -fno-handle-exceptions conftest.C > conftest.out 2>&1
|
|
|
|
if egrep "warning.*renamed" conftest.out >/dev/null; then
|
|
ac_cv_cxx_exceptions_flags=${_COMPILER_PREFIX}-fno-exceptions
|
|
else
|
|
ac_cv_cxx_exceptions_flags=${_COMPILER_PREFIX}-fno-handle-exceptions
|
|
fi
|
|
|
|
rm -f conftest*])
|
|
|
|
AC_MSG_RESULT($ac_cv_cxx_exceptions_flags)
|
|
_MOZ_EXCEPTIONS_FLAGS_OFF=$ac_cv_cxx_exceptions_flags
|
|
_MOZ_EXCEPTIONS_FLAGS_ON=`echo $ac_cv_cxx_exceptions_flags | sed 's|no-||'`
|
|
fi
|
|
|
|
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 T> class tplt {
|
|
public:
|
|
typedef typename T::num_type t_num_type;
|
|
t_num_type foo(typename T::num_type num) {
|
|
return num;
|
|
}
|
|
};,
|
|
tplt<param> 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 <class T> struct X { int a; };
|
|
class Y {};
|
|
template <> struct X<Y> { double a; };,
|
|
X<int> int_x;
|
|
X<Y> 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 T> class Foo {};
|
|
template <class T> class Foo<T*> {};,
|
|
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 T> class Base { };
|
|
template <class T>
|
|
Base<T> operator+(const Base<T>& lhs, const Base<T>& rhs) { return lhs; }
|
|
template <class T> class Derived : public Base<T> { };],
|
|
[Derived<char> a, b;
|
|
Base<char> 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 T> class Base { };
|
|
template <class T> class Derived : public Base<T> { };
|
|
template <class T> int foo(const Base<T>&) { return 0; }],
|
|
[Derived<char> 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 T> class ptrClass {
|
|
public: T* ptr;
|
|
};
|
|
|
|
template <class T> T* a(ptrClass<T> *arg) {
|
|
return arg->ptr;
|
|
}
|
|
|
|
template <class T>
|
|
const T* a(const ptrClass<T> *arg) {
|
|
return arg->ptr;
|
|
}
|
|
],
|
|
[ ptrClass<int> 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 <algorithm>],
|
|
[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 <algorithm>
|
|
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<Y*>(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<void*>(subx))) ||
|
|
(((void*)&mdo != (void*)suby) &&
|
|
((void*)&mdo == dynamic_cast<void*>(suby))));
|
|
}],
|
|
ac_cv_cpp_dynamic_cast_void_ptr=yes,
|
|
ac_cv_cpp_dynamic_cast_void_ptr=no,
|
|
ac_cv_cpp_dynamic_cast_void_ptr=no)])
|
|
if test "$ac_cv_cpp_dynamic_cast_void_ptr" = yes ; then
|
|
AC_DEFINE(HAVE_CPP_DYNAMIC_CAST_TO_VOID_PTR)
|
|
fi
|
|
|
|
|
|
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 <algorithm>
|
|
template <class T> class Foo {};
|
|
class T2;
|
|
template <class T> int operator==(const T2*, const T&) { return 0; }
|
|
template <class T> int operator!=(const T2*, const T&) { return 0; }],
|
|
[Foo<int> 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
|
|
|
|
|
|
|
|
dnl End of C++ language/feature checks
|
|
AC_LANG_C
|
|
|
|
dnl ========================================================
|
|
dnl = Internationalization checks
|
|
dnl ========================================================
|
|
dnl
|
|
dnl Internationalization and Locale support is different
|
|
dnl on various UNIX platforms. Checks for specific i18n
|
|
dnl features go here.
|
|
|
|
dnl check for LC_MESSAGES
|
|
AC_CACHE_CHECK(for LC_MESSAGES,
|
|
ac_cv_i18n_lc_messages,
|
|
[AC_TRY_COMPILE([#include <locale.h>],
|
|
[int category = LC_MESSAGES;],
|
|
ac_cv_i18n_lc_messages=yes,
|
|
ac_cv_i18n_lc_messages=no)])
|
|
if test "$ac_cv_i18n_lc_messages" = yes; then
|
|
AC_DEFINE(HAVE_I18N_LC_MESSAGES)
|
|
fi
|
|
|
|
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 ========================================================
|
|
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 <PFX>],
|
|
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/sdk/include/xpcom-config.h"; then
|
|
AC_MSG_ERROR([$LIBXUL_SDK/sdk/include/xpcom-config.h doesn't exist])
|
|
fi
|
|
|
|
if test "$MOZ_BUILD_APP" = "xulrunner"; then
|
|
AC_MSG_ERROR([Building XULRunner --with-libxul-sdk doesn't make sense; XULRunner provides the libxul SDK.])
|
|
fi
|
|
fi
|
|
AC_SUBST(LIBXUL_SDK)
|
|
|
|
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.0.0, [MOZ_NATIVE_NSPR=1], [MOZ_NATIVE_NSPR=])
|
|
fi
|
|
|
|
if test -z "$MOZ_NATIVE_NSPR"; then
|
|
NSPR_CFLAGS='`$(DEPTH)/nsprpub/config/nspr-config --prefix=$(LIBXUL_DIST) --includedir=$(LIBXUL_DIST)/include/nspr --cflags`'
|
|
# explicitly set libs for Visual Age C++ for OS/2
|
|
if test "$OS_ARCH" = "OS2" -a "$VACPP" = "yes"; then
|
|
NSPR_LIBS='$(LIBXUL_DIST)/lib/nspr'$NSPR_VERSION'.lib $(LIBXUL_DIST)/lib/plc'$NSPR_VERSION'.lib $(LIBXUL_DIST)/lib/plds'$NSPR_VERSION'.lib '$_PTHREAD_LDFLAGS''
|
|
elif test "$OS_ARCH" = "WINCE"; then
|
|
NSPR_CFLAGS='-I$(LIBXUL_DIST)/include/nspr'
|
|
NSPR_LIBS='$(LIBXUL_DIST)/lib/nspr'$NSPR_VERSION'.lib $(LIBXUL_DIST)/lib/plc'$NSPR_VERSION'.lib $(LIBXUL_DIST)/lib/plds'$NSPR_VERSION'.lib '
|
|
elif 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_LIBS='`$(DEPTH)/nsprpub/config/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.0.0, [MOZ_NATIVE_NSS=1], [MOZ_NATIVE_NSS=])
|
|
fi
|
|
|
|
if test -n "$MOZ_NATIVE_NSS"; then
|
|
NSS_LIBS="$NSS_LIBS -lcrmf"
|
|
else
|
|
NSS_CFLAGS='-I$(LIBXUL_DIST)/public/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)softokn'$NSS_VERSION'$(DLL_SUFFIX)'
|
|
|
|
if test -z "$GNU_CC" && test "$OS_ARCH" = "WINNT" -o "$OS_ARCH" = "WINCE" -o "$OS_ARCH" = "OS2"; then
|
|
NSS_LIBS='\\\
|
|
$(LIBXUL_DIST)/lib/$(LIB_PREFIX)crmf.$(LIB_SUFFIX) \\\
|
|
$(LIBXUL_DIST)/lib/$(LIB_PREFIX)smime'$NSS_VERSION'.$(IMPORT_LIB_SUFFIX) \\\
|
|
$(LIBXUL_DIST)/lib/$(LIB_PREFIX)ssl'$NSS_VERSION'.$(IMPORT_LIB_SUFFIX) \\\
|
|
$(LIBXUL_DIST)/lib/$(LIB_PREFIX)nss'$NSS_VERSION'.$(IMPORT_LIB_SUFFIX) \\\
|
|
$(LIBXUL_DIST)/lib/$(LIB_PREFIX)softokn'$NSS_VERSION'.$(IMPORT_LIB_SUFFIX)'
|
|
else
|
|
NSS_LIBS='$(LIBS_DIR)'" -lcrmf -lsmime$NSS_VERSION -lssl$NSS_VERSION -lnss$NSS_VERSION -lsoftokn$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
|
|
SYSTEM_JPEG=
|
|
else
|
|
AC_CHECK_LIB(jpeg, jpeg_destroy_compress, [SYSTEM_JPEG=1 JPEG_LIBS="-ljpeg $JPEG_LIBS"], SYSTEM_JPEG=, $JPEG_LIBS)
|
|
fi
|
|
|
|
if test "$SYSTEM_JPEG" = 1; then
|
|
LIBS="$JPEG_LIBS $LIBS"
|
|
AC_TRY_RUN(
|
|
#include <stdio.h>
|
|
#include <sys/types.h>
|
|
#include <jpeglib.h>
|
|
int main () {
|
|
#if JPEG_LIB_VERSION >= $MOZJPEG
|
|
exit(0);
|
|
#else
|
|
exit(1);
|
|
#endif
|
|
}
|
|
, SYSTEM_JPEG=1, [SYSTEM_JPEG= JPEG_CFLAGS= JPEG_LIBS=], SYSTEM_JPEG= )
|
|
rm -f core
|
|
fi
|
|
CFLAGS=$_SAVE_CFLAGS
|
|
LDFLAGS=$_SAVE_LDFLAGS
|
|
LIBS=$_SAVE_LIBS
|
|
|
|
if test -n "${JPEG_DIR}" -a -d "${JPEG_DIR}" -a "$SYSTEM_JPEG" = 1; then
|
|
JPEG_CFLAGS="-I${JPEG_DIR}/include"
|
|
JPEG_LIBS="-L${JPEG_DIR}/lib ${JPEG_LIBS}"
|
|
fi
|
|
|
|
dnl system ZLIB support
|
|
dnl ========================================================
|
|
MOZ_ARG_WITH_STRING(system-zlib,
|
|
[ --with-system-zlib[=PFX]
|
|
Use system libz [installed at prefix PFX]],
|
|
ZLIB_DIR=$withval)
|
|
|
|
_SAVE_CFLAGS=$CFLAGS
|
|
_SAVE_LDFLAGS=$LDFLAGS
|
|
_SAVE_LIBS=$LIBS
|
|
if test -n "${ZLIB_DIR}" -a "${ZLIB_DIR}" != "yes"; then
|
|
CFLAGS="-I${ZLIB_DIR}/include $CFLAGS"
|
|
LDFLAGS="-L${ZLIB_DIR}/lib $LDFLAGS"
|
|
fi
|
|
if test -z "$ZLIB_DIR" -o "$ZLIB_DIR" = no; then
|
|
SYSTEM_ZLIB=
|
|
else
|
|
AC_CHECK_LIB(z, gzread, [SYSTEM_ZLIB=1 ZLIB_LIBS="-lz $ZLIB_LIBS"],
|
|
[SYSTEM_ZLIB= ZLIB_CFLAGS= ZLIB_LIBS=], $ZLIB_LIBS)
|
|
fi
|
|
if test "$SYSTEM_ZLIB" = 1; then
|
|
LIBS="$ZLIB_LIBS $LIBS"
|
|
AC_TRY_RUN([
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
#include <zlib.h>
|
|
int parse_version(const char *str, int *ver) {
|
|
return (sscanf(str, "%d.%d.%d", ver, ver+1, ver+2)==3?0:1);
|
|
}
|
|
int main() {
|
|
int sys[3], req[3];
|
|
if (parse_version(zlib_version, sys) || parse_version("$MOZZLIB", req))
|
|
exit(1);
|
|
if ((sys[0] == req[0]) &&
|
|
((sys[1] > req[1]) || ((sys[1] == req[1]) && (sys[2] >= req[2]))))
|
|
exit(0);
|
|
else
|
|
exit(1);
|
|
}
|
|
], SYSTEM_ZLIB=1, [SYSTEM_ZLIB= ZLIB_CFLAGS= ZLIB_LIBS=], SYSTEM_ZLIB= )
|
|
rm -f core
|
|
fi
|
|
CFLAGS=$_SAVE_CFLAGS
|
|
LDFLAGS=$_SAVE_LDFLAGS
|
|
LIBS=$_SAVE_LIBS
|
|
|
|
if test "${ZLIB_DIR}" -a -d "${ZLIB_DIR}" -a "$SYSTEM_ZLIB" = 1; then
|
|
ZLIB_CFLAGS="-I${ZLIB_DIR}/include"
|
|
ZLIB_LIBS="-L${ZLIB_DIR}/lib ${ZLIB_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
|
|
CFLAGS="$ZLIB_CFLAGS $CFLAGS"
|
|
LDFLAGS="$ZLIB_LIBS -lz $LDFLAGS"
|
|
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
|
|
SYSTEM_PNG=
|
|
else
|
|
AC_CHECK_LIB(png, png_get_valid, [SYSTEM_PNG=1 PNG_LIBS="-lpng $PNG_LIBS"],
|
|
SYSTEM_PNG=, $PNG_LIBS)
|
|
fi
|
|
if test "$SYSTEM_PNG" = 1; then
|
|
LIBS="$PNG_LIBS $LIBS"
|
|
AC_TRY_RUN(
|
|
#include <stdio.h>
|
|
#include <sys/types.h>
|
|
#include <png.h>
|
|
int main () {
|
|
#if PNG_LIBPNG_VER >= $MOZPNG
|
|
exit(0);
|
|
#else
|
|
exit(1);
|
|
#endif
|
|
}
|
|
, SYSTEM_PNG=1, [SYSTEM_PNG= PNG_CFLAGS= PNG_LIBS=], SYSTEM_PNG= )
|
|
rm -f core
|
|
fi
|
|
CFLAGS=$_SAVE_CFLAGS
|
|
LDFLAGS=$_SAVE_LDFLAGS
|
|
LIBS=$_SAVE_LIBS
|
|
|
|
if test "${PNG_DIR}" -a -d "${PNG_DIR}" -a "$SYSTEM_PNG" = 1; then
|
|
PNG_CFLAGS="-I${PNG_DIR}/include"
|
|
PNG_LIBS="-L${PNG_DIR}/lib ${PNG_LIBS}"
|
|
fi
|
|
|
|
fi # SKIP_LIBRARY_CHECKS
|
|
|
|
dnl check whether to enable glitz
|
|
dnl ========================================================
|
|
MOZ_ARG_ENABLE_BOOL(glitz,
|
|
[ --enable-glitz Enable Glitz for use with Cairo],
|
|
MOZ_ENABLE_GLITZ=1,
|
|
MOZ_ENABLE_GLITZ= )
|
|
if test "$MOZ_ENABLE_GLITZ"; then
|
|
AC_DEFINE(MOZ_ENABLE_GLITZ)
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl Java SDK support
|
|
dnl ========================================================
|
|
JAVA_INCLUDE_PATH=
|
|
MOZ_ARG_WITH_STRING(java-include-path,
|
|
[ --with-java-include-path=dir Location of Java SDK headers],
|
|
JAVA_INCLUDE_PATH=$withval)
|
|
|
|
JAVA_BIN_PATH=
|
|
MOZ_ARG_WITH_STRING(java-bin-path,
|
|
[ --with-java-bin-path=dir Location of Java binaries (java, javac, jar)],
|
|
JAVA_BIN_PATH=$withval)
|
|
|
|
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:
|
|
BeOS - beos
|
|
Mac OS X - mac (carbon)
|
|
Neutrino/QNX - photon
|
|
OS/2 - os2
|
|
Win32 - windows
|
|
* - gtk],
|
|
[ _DEFAULT_TOOLKIT=$enableval ],
|
|
[ _DEFAULT_TOOLKIT=$_PLATFORM_DEFAULT_TOOLKIT])
|
|
|
|
if test "$_DEFAULT_TOOLKIT" = "gtk" \
|
|
-o "$_DEFAULT_TOOLKIT" = "qt" \
|
|
-o "$_DEFAULT_TOOLKIT" = "gtk2" \
|
|
-o "$_DEFAULT_TOOLKIT" = "xlib" \
|
|
-o "$_DEFAULT_TOOLKIT" = "os2" \
|
|
-o "$_DEFAULT_TOOLKIT" = "beos" \
|
|
-o "$_DEFAULT_TOOLKIT" = "photon" \
|
|
-o "$_DEFAULT_TOOLKIT" = "mac" \
|
|
-o "$_DEFAULT_TOOLKIT" = "windows" \
|
|
-o "$_DEFAULT_TOOLKIT" = "cocoa" \
|
|
-o "$_DEFAULT_TOOLKIT" = "cairo-windows" \
|
|
-o "$_DEFAULT_TOOLKIT" = "cairo-gtk2" \
|
|
-o "$_DEFAULT_TOOLKIT" = "cairo-beos" \
|
|
-o "$_DEFAULT_TOOLKIT" = "cairo-xlib" \
|
|
-o "$_DEFAULT_TOOLKIT" = "cairo-mac" \
|
|
-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
|
|
if test "$no_x" != "yes"; then
|
|
AC_MSG_ERROR([Toolkit must be xlib, gtk, gtk2 or qt.])
|
|
else
|
|
AC_MSG_ERROR([Toolkit must be $_PLATFORM_DEFAULT_TOOLKIT or cairo-$_PLATFORM_DEFAULT_TOOLKIT (if supported).])
|
|
fi
|
|
fi
|
|
|
|
AC_DEFINE_UNQUOTED(MOZ_DEFAULT_TOOLKIT,"$MOZ_WIDGET_TOOLKIT")
|
|
|
|
dnl ========================================================
|
|
dnl = Enable the toolkit as needed =
|
|
dnl ========================================================
|
|
|
|
case "$MOZ_WIDGET_TOOLKIT" in
|
|
gtk)
|
|
MOZ_ENABLE_GTK=1
|
|
MOZ_ENABLE_XREMOTE=1
|
|
if test "$_HAVE_FREETYPE2"; then
|
|
MOZ_ENABLE_FREETYPE2=1
|
|
fi
|
|
MOZ_ENABLE_XPRINT=1
|
|
TK_CFLAGS='$(MOZ_GTK_CFLAGS)'
|
|
TK_LIBS='$(MOZ_GTK_LDFLAGS)'
|
|
AC_DEFINE(MOZ_WIDGET_GTK)
|
|
;;
|
|
|
|
gtk2)
|
|
MOZ_ENABLE_GTK2=1
|
|
MOZ_ENABLE_XREMOTE=1
|
|
MOZ_ENABLE_COREXFONTS=${MOZ_ENABLE_COREXFONTS-}
|
|
TK_CFLAGS='$(MOZ_GTK2_CFLAGS)'
|
|
TK_LIBS='$(MOZ_GTK2_LIBS)'
|
|
AC_DEFINE(MOZ_WIDGET_GTK2)
|
|
;;
|
|
|
|
xlib)
|
|
MOZ_ENABLE_XLIB=1
|
|
if test "$_HAVE_FREETYPE2"; then
|
|
MOZ_ENABLE_FREETYPE2=1
|
|
fi
|
|
MOZ_ENABLE_XPRINT=1
|
|
TK_CFLAGS='$(MOZ_XLIB_CFLAGS)'
|
|
TK_LIBS='$(MOZ_XLIB_LDFLAGS)'
|
|
AC_DEFINE(MOZ_WIDGET_XLIB)
|
|
;;
|
|
|
|
qt)
|
|
MOZ_ENABLE_QT=1
|
|
if test "$_HAVE_FREETYPE2"; then
|
|
MOZ_ENABLE_FREETYPE2=1
|
|
fi
|
|
MOZ_ENABLE_XPRINT=1
|
|
TK_CFLAGS='$(MOZ_QT_CFLAGS)'
|
|
TK_LIBS='$(MOZ_QT_LDFLAGS)'
|
|
AC_DEFINE(MOZ_WIDGET_QT)
|
|
;;
|
|
|
|
photon)
|
|
MOZ_ENABLE_PHOTON=1
|
|
AC_DEFINE(MOZ_WIDGET_PHOTON)
|
|
;;
|
|
mac|cocoa)
|
|
TK_LIBS='-framework Carbon'
|
|
TK_CFLAGS="-I${MACOS_SDK_DIR}/Developer/Headers/FlatCarbon"
|
|
CFLAGS="$CFLAGS $TK_CFLAGS"
|
|
CXXFLAGS="$CXXFLAGS $TK_CFLAGS"
|
|
MOZ_USER_DIR="Mozilla"
|
|
AC_DEFINE(XP_MACOSX)
|
|
AC_DEFINE(TARGET_CARBON)
|
|
AC_DEFINE(TARGET_API_MAC_CARBON)
|
|
if test "$MOZ_WIDGET_TOOLKIT" = "cocoa"; then
|
|
MOZ_ENABLE_COCOA=1
|
|
AC_DEFINE(MOZ_WIDGET_COCOA)
|
|
fi
|
|
;;
|
|
|
|
cairo-windows)
|
|
MOZ_WIDGET_TOOLKIT=windows
|
|
MOZ_GFX_TOOLKIT=cairo
|
|
MOZ_ENABLE_CAIRO_GFX=1
|
|
;;
|
|
|
|
cairo-gtk2)
|
|
MOZ_WIDGET_TOOLKIT=gtk2
|
|
MOZ_GFX_TOOLKIT=cairo
|
|
MOZ_ENABLE_CAIRO_GFX=1
|
|
MOZ_ENABLE_GTK2=1
|
|
MOZ_ENABLE_XREMOTE=1
|
|
TK_CFLAGS='$(MOZ_GTK2_CFLAGS) $(MOZ_CAIRO_CFLAGS)'
|
|
TK_LIBS='$(MOZ_GTK2_LIBS) $(MOZ_CAIRO_LIBS)'
|
|
AC_DEFINE(MOZ_WIDGET_GTK2)
|
|
;;
|
|
cairo-beos)
|
|
MOZ_WIDGET_TOOLKIT=beos
|
|
MOZ_GFX_TOOLKIT=cairo
|
|
MOZ_ENABLE_CAIRO_GFX=1
|
|
TK_CFLAGS='$(MOZ_CAIRO_CFLAGS)'
|
|
TK_LIBS='$(MOZ_CAIRO_LIBS)'
|
|
;;
|
|
cairo-xlib)
|
|
MOZ_WIDGET_TOOLKIT=xlib
|
|
MOZ_GFX_TOOLKIT=cairo
|
|
MOZ_ENABLE_CAIRO_GFX=1
|
|
MOZ_ENABLE_XLIB=1
|
|
TK_CFLAGS='$(MOZ_XLIB_CFLAGS) $(MOZ_CAIRO_FLAGS)'
|
|
TK_LIBS='$(MOZ_XLIB_LDFLAGS) $(MOZ_CAIRO_LIBS)'
|
|
AC_DEFINE(MOZ_WIDGET_XLIB)
|
|
;;
|
|
cairo-mac|cairo-cocoa)
|
|
if test "$MOZ_WIDGET_TOOLKIT" = "cairo-cocoa"; then
|
|
MOZ_WIDGET_TOOLKIT=cocoa
|
|
AC_DEFINE(MOZ_WIDGET_COCOA)
|
|
MOZ_ENABLE_COCOA=1
|
|
else
|
|
MOZ_WIDGET_TOOLKIT=mac
|
|
fi
|
|
MOZ_ENABLE_CAIRO_GFX=1
|
|
MOZ_GFX_TOOLKIT=cairo
|
|
MOZ_USER_DIR="Mozilla"
|
|
AC_DEFINE(XP_MACOSX)
|
|
AC_DEFINE(TARGET_CARBON)
|
|
AC_DEFINE(TARGET_API_MAC_CARBON)
|
|
TK_LIBS='-framework Carbon'
|
|
TK_CFLAGS="-I${MACOS_SDK_DIR}/Developer/Headers/FlatCarbon"
|
|
CFLAGS="$CFLAGS $TK_CFLAGS"
|
|
CXXFLAGS="$CXXFLAGS $TK_CFLAGS"
|
|
;;
|
|
esac
|
|
|
|
if test "$MOZ_ENABLE_XREMOTE"; then
|
|
AC_DEFINE(MOZ_ENABLE_XREMOTE)
|
|
fi
|
|
|
|
if test "$COMPILE_ENVIRONMENT"; then
|
|
if test "$MOZ_ENABLE_GTK"
|
|
then
|
|
AM_PATH_GTK($GTK_VERSION,,
|
|
AC_MSG_ERROR(Test for GTK failed.))
|
|
|
|
MOZ_GTK_LDFLAGS=$GTK_LIBS
|
|
MOZ_GTK_CFLAGS=$GTK_CFLAGS
|
|
fi
|
|
|
|
if test "$MOZ_ENABLE_GTK2"
|
|
then
|
|
PKG_CHECK_MODULES(MOZ_GTK2, gtk+-2.0 >= 1.3.7 gdk-x11-2.0 glib-2.0 gobject-2.0)
|
|
fi
|
|
|
|
if test "$MOZ_ENABLE_XLIB"
|
|
then
|
|
MOZ_XLIB_CFLAGS="$X_CFLAGS"
|
|
MOZ_XLIB_LDFLAGS="$XLDFLAGS"
|
|
MOZ_XLIB_LDFLAGS="$MOZ_XLIB_LDFLAGS $XEXT_LIBS $X11_LIBS"
|
|
fi
|
|
|
|
if test "$MOZ_ENABLE_QT"
|
|
then
|
|
MOZ_ARG_WITH_STRING(qtdir,
|
|
[ --with-qtdir=\$dir Specify Qt directory ],
|
|
[ QTDIR=$withval])
|
|
|
|
if test -z "$QTDIR"; then
|
|
QTDIR="/usr"
|
|
fi
|
|
QTINCDIR="/include/qt"
|
|
if test ! -d "$QTDIR$QTINCDIR"; then
|
|
QTINCDIR="/include/X11/qt"
|
|
fi
|
|
if test ! -d "$QTDIR$QTINCDIR"; then
|
|
QTINCDIR="/include"
|
|
fi
|
|
|
|
if test -x "$QTDIR/bin/moc"; then
|
|
HOST_MOC="$QTDIR/bin/moc"
|
|
else
|
|
AC_CHECK_PROGS(HOST_MOC, moc, "")
|
|
fi
|
|
if test -z "$HOST_MOC"; then
|
|
AC_MSG_ERROR([no acceptable moc preprocessor found])
|
|
fi
|
|
MOC=$HOST_MOC
|
|
|
|
QT_CFLAGS="-I${QTDIR}${QTINCDIR} -DQT_GENUINE_STR -DQT_NO_STL"
|
|
if test -z "$MOZ_DEBUG"; then
|
|
QT_CFLAGS="$QT_CFLAGS -DQT_NO_DEBUG -DNO_DEBUG"
|
|
fi
|
|
_SAVE_LDFLAGS=$LDFLAGS
|
|
QT_LDFLAGS=-L${QTDIR}/lib
|
|
LDFLAGS="$LDFLAGS $QT_LDFLAGS"
|
|
AC_LANG_SAVE
|
|
AC_LANG_CPLUSPLUS
|
|
AC_CHECK_LIB(qt, main, QT_LIB=-lqt,
|
|
AC_CHECK_LIB(qt-mt, main, QT_LIB=-lqt-mt,
|
|
AC_MSG_ERROR([Cannot find QT libraries.])))
|
|
LDFLAGS=$_SAVE_LDFLAGS
|
|
QT_LIBS="-L/usr/X11R6/lib $QT_LDFLAGS $QT_LIB -lXext -lX11"
|
|
|
|
MOZ_QT_LDFLAGS=$QT_LIBS
|
|
MOZ_QT_CFLAGS=$QT_CFLAGS
|
|
|
|
_SAVE_CXXFLAGS=$CXXFLAGS
|
|
_SAVE_LIBS=$LIBS
|
|
|
|
CXXFLAGS="$CXXFLAGS $QT_CFLAGS"
|
|
LIBS="$LIBS $QT_LIBS"
|
|
|
|
AC_MSG_CHECKING(Qt - version >= $QT_VERSION)
|
|
AC_TRY_COMPILE([#include <qglobal.h>],
|
|
[
|
|
#if (QT_VERSION < $QT_VERSION_NUM)
|
|
#error "QT_VERSION too old"
|
|
#endif
|
|
],result="yes",result="no")
|
|
|
|
AC_MSG_RESULT("$result")
|
|
if test "$result" = "no"; then
|
|
AC_MSG_ERROR([Qt Mozilla requires at least version $QT_VERSION of Qt])
|
|
fi
|
|
CXXFLAGS=$_SAVE_CXXFLAGS
|
|
LIBS=$_SAVE_LIBS
|
|
|
|
AC_LANG_RESTORE
|
|
fi
|
|
fi # COMPILE_ENVIRONMENT
|
|
|
|
AC_SUBST(MOZ_DEFAULT_TOOLKIT)
|
|
|
|
AC_SUBST(GTK_CONFIG)
|
|
AC_SUBST(TK_CFLAGS)
|
|
AC_SUBST(TK_LIBS)
|
|
|
|
AC_SUBST(MOZ_ENABLE_GTK)
|
|
AC_SUBST(MOZ_ENABLE_XLIB)
|
|
AC_SUBST(MOZ_ENABLE_GTK2)
|
|
AC_SUBST(MOZ_ENABLE_QT)
|
|
AC_SUBST(MOZ_ENABLE_PHOTON)
|
|
AC_SUBST(MOZ_ENABLE_COCOA)
|
|
AC_SUBST(MOZ_ENABLE_CAIRO_GFX)
|
|
AC_SUBST(MOZ_ENABLE_GLITZ)
|
|
AC_SUBST(MOZ_ENABLE_XREMOTE)
|
|
AC_SUBST(MOZ_GTK_CFLAGS)
|
|
AC_SUBST(MOZ_GTK_LDFLAGS)
|
|
AC_SUBST(MOZ_GTK2_CFLAGS)
|
|
AC_SUBST(MOZ_GTK2_LIBS)
|
|
AC_SUBST(MOZ_XLIB_CFLAGS)
|
|
AC_SUBST(MOZ_XLIB_LDFLAGS)
|
|
AC_SUBST(MOZ_QT_CFLAGS)
|
|
AC_SUBST(MOZ_QT_LDFLAGS)
|
|
|
|
AC_SUBST(MOC)
|
|
|
|
if test "$MOZ_ENABLE_CAIRO_GFX"
|
|
then
|
|
AC_DEFINE(MOZ_THEBES)
|
|
AC_DEFINE(MOZ_CAIRO_GFX)
|
|
fi
|
|
|
|
if test "$MOZ_ENABLE_GTK" \
|
|
|| test "$MOZ_ENABLE_QT" \
|
|
|| test "$MOZ_ENABLE_XLIB" \
|
|
|| test "$MOZ_ENABLE_GTK2"
|
|
then
|
|
AC_DEFINE(MOZ_X11)
|
|
MOZ_X11=1
|
|
fi
|
|
AC_SUBST(MOZ_X11)
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = Application
|
|
dnl =
|
|
dnl ========================================================
|
|
|
|
MOZ_ARG_HEADER(Application)
|
|
|
|
ACCESSIBILITY=1
|
|
BUILD_MODULES=all
|
|
BUILD_STATIC_LIBS=
|
|
ENABLE_TESTS=1
|
|
MOZ_ACTIVEX_SCRIPTING_SUPPORT=
|
|
MOZ_BRANDING_DIRECTORY=
|
|
MOZ_CALENDAR=
|
|
MOZ_DBGRINFO_MODULES=
|
|
MOZ_ENABLE_CANVAS=1
|
|
MOZ_ENABLE_LIBXUL=
|
|
MOZ_EXTENSIONS_ALL=" cookie wallet content-packs xml-rpc help p3p venkman inspector irc typeaheadfind spellcheck gnomevfs sroaming xmlterm datetime finger cview layout-debug tasks sql xforms permissions schema-validation reporter safe-browsing"
|
|
MOZ_IMG_DECODERS_DEFAULT="png gif jpeg bmp xbm icon"
|
|
MOZ_IMG_ENCODERS_DEFAULT="png jpeg"
|
|
MOZ_IPCD=
|
|
MOZ_JAVAXPCOM=
|
|
MOZ_JSDEBUGGER=1
|
|
MOZ_JSLOADER=1
|
|
MOZ_LDAP_XPCOM=
|
|
MOZ_LIBART_CFLAGS=
|
|
MOZ_LIBART_LIBS=
|
|
MOZ_MAIL_NEWS=
|
|
MOZ_MATHML=1
|
|
MOZ_MORK=1
|
|
MOZ_MORKREADER=
|
|
MOZ_AUTH_EXTENSION=1
|
|
MOZ_NO_ACTIVEX_SUPPORT=1
|
|
MOZ_NO_XPCOM_OBSOLETE=
|
|
MOZ_NO_FAST_LOAD=
|
|
MOZ_OJI=1
|
|
MOZ_PLACES=
|
|
MOZ_PLAINTEXT_EDITOR_ONLY=
|
|
MOZ_PLUGINS=1
|
|
MOZ_PREF_EXTENSIONS=1
|
|
MOZ_PROFILELOCKING=1
|
|
MOZ_PROFILESHARING=1
|
|
MOZ_PSM=1
|
|
MOZ_PYTHON_EXTENSIONS="xpcom"
|
|
MOZ_PYTHON=
|
|
MOZ_PYTHON_DEBUG_SUFFIX=
|
|
MOZ_PYTHON_DLL_SUFFIX=
|
|
MOZ_PYTHON_INCLUDES=
|
|
MOZ_PYTHON_LIBS=
|
|
MOZ_PYTHON_PREFIX=
|
|
MOZ_PYTHON_VER=
|
|
MOZ_PYTHON_VER_DOTTED=
|
|
MOZ_REFLOW_PERF=
|
|
MOZ_REORDER=
|
|
MOZ_SINGLE_PROFILE=
|
|
MOZ_STATIC_MAIL_BUILD=
|
|
MOZ_SVG=1
|
|
MOZ_SVG_FOREIGNOBJECT=$MOZ_ENABLE_CAIRO_GFX
|
|
MOZ_TIMELINE=
|
|
MOZ_UI_LOCALE=en-US
|
|
MOZ_UNIVERSALCHARDET=1
|
|
MOZ_USE_NATIVE_UCONV=
|
|
MOZ_V1_STRING_ABI=1
|
|
MOZ_VIEW_SOURCE=1
|
|
MOZ_WEBSERVICES=1
|
|
MOZ_XMLEXTRAS=1
|
|
MOZ_XPFE_COMPONENTS=1
|
|
MOZ_XPINSTALL=1
|
|
MOZ_XSLT_STANDALONE=
|
|
MOZ_STANDALONE_BUILD=
|
|
MOZ_XTF=1
|
|
MOZ_XUL=1
|
|
NS_PRINTING=1
|
|
NECKO_COOKIES=1
|
|
NECKO_DISK_CACHE=1
|
|
NECKO_PROTOCOLS_DEFAULT="about data file ftp gopher http keyword res viewsource"
|
|
NECKO_SMALL_BUFFERS=
|
|
SUNCTL=
|
|
JS_STATIC_BUILD=
|
|
XPC_IDISPATCH_SUPPORT=
|
|
|
|
case "$target_os" in
|
|
msvc*|mks*|cygwin*|mingw*)
|
|
if test -z "$GNU_CC"; then
|
|
XPC_IDISPATCH_SUPPORT=1
|
|
MOZ_NO_ACTIVEX_SUPPORT=
|
|
MOZ_ACTIVEX_SCRIPTING_SUPPORT=1
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
MOZ_ARG_ENABLE_STRING(application,
|
|
[ --enable-application=APP
|
|
Options include:
|
|
suite
|
|
browser (Firefox)
|
|
mail (Thunderbird)
|
|
minimo
|
|
composer
|
|
calendar
|
|
xulrunner
|
|
macbrowser (Camino)
|
|
content/xslt (Standalone Transformiix XSLT)
|
|
tools/update-packaging (AUS-related packaging tools)
|
|
standalone (use this for standalone
|
|
xpcom/xpconnect or to manually drive a build)],
|
|
[ MOZ_BUILD_APP=$enableval ] )
|
|
|
|
case "$MOZ_BUILD_APP" in
|
|
suite)
|
|
MOZ_APP_NAME=seamonkey
|
|
MOZ_APP_DISPLAYNAME=SeaMonkey
|
|
MOZ_MAIL_NEWS=1
|
|
MOZ_LDAP_XPCOM=1
|
|
MOZ_COMPOSER=1
|
|
MOZ_SUITE=1
|
|
MOZ_PROFILESHARING=
|
|
MOZ_APP_VERSION=$SEAMONKEY_VERSION
|
|
MOZ_EXTENSIONS_DEFAULT=" cookie wallet content-packs xml-rpc help p3p venkman inspector irc typeaheadfind spellcheck gnomevfs sroaming permissions reporter"
|
|
AC_DEFINE(MOZ_SUITE)
|
|
;;
|
|
|
|
browser)
|
|
MOZ_APP_NAME=firefox
|
|
MOZ_APP_DISPLAYNAME=DeerPark
|
|
MOZ_XUL_APP=1
|
|
MOZ_UPDATER=1
|
|
MOZ_PHOENIX=1
|
|
MOZ_PLACES=1
|
|
MOZ_APP_VERSION=$FIREFOX_VERSION
|
|
MOZ_EXTENSIONS_DEFAULT=" cookie xml-rpc inspector gnomevfs permissions reporter"
|
|
AC_DEFINE(MOZ_PHOENIX)
|
|
;;
|
|
|
|
minimo)
|
|
MOZ_APP_NAME=minimo
|
|
MOZ_APP_DISPLAYNAME=minimo
|
|
ACCESSIBILITY=
|
|
AC_DEFINE(MINIMO)
|
|
ENABLE_TESTS=
|
|
MINIMO=1
|
|
MOZ_ACTIVEX_SCRIPTING_SUPPORT=
|
|
MOZ_APP_VERSION=`cat $topsrcdir/minimo/config/version.txt`
|
|
MOZ_COMPOSER=
|
|
MOZ_ENABLE_CANVAS=
|
|
MOZ_ENABLE_POSTSCRIPT=
|
|
MOZ_EXTENSIONS_DEFAULT=" cookie xml-rpc spatialnavigation permissions"
|
|
MOZ_IMG_DECODERS_DEFAULT="png gif jpeg"
|
|
MOZ_IMG_ENCODERS_DEFAULT=
|
|
MOZ_IMG_ENCODERS=
|
|
MOZ_INSTALLER=
|
|
MOZ_JSDEBUGGER=
|
|
MOZ_LDAP_XPCOM=
|
|
MOZ_MAIL_NEWS=
|
|
MOZ_MATHML=
|
|
MOZ_AUTH_EXTENSION=
|
|
MOZ_NO_ACTIVEX_SUPPORT=1
|
|
MOZ_NO_XPCOM_OBSOLETE=1
|
|
MOZ_NO_FAST_LOAD=1
|
|
MOZ_OJI=
|
|
MOZ_PLAINTEXT_EDITOR_ONLY=1
|
|
MOZ_PREF_EXTENSIONS=
|
|
MOZ_PROFILELOCKING=
|
|
MOZ_PROFILESHARING=
|
|
MOZ_SINGLE_PROFILE=1
|
|
MOZ_SVG=
|
|
MOZ_UNIVERSALCHARDET=
|
|
MOZ_UPDATER=
|
|
MOZ_USE_NATIVE_UCONV=1
|
|
MOZ_V1_STRING_ABI=
|
|
MOZ_VIEW_SOURCE=
|
|
MOZ_XPFE_COMPONENTS=
|
|
MOZ_XPINSTALL=
|
|
MOZ_XTF=
|
|
MOZ_XUL_APP=1
|
|
NECKO_DISK_CACHE=
|
|
NECKO_PROTOCOLS_DEFAULT="about data http file res"
|
|
NECKO_SMALL_BUFFERS=1
|
|
NS_DISABLE_LOGGING=1
|
|
NS_PRINTING=
|
|
JS_STATIC_BUILD=1
|
|
;;
|
|
|
|
mail)
|
|
MOZ_APP_NAME=thunderbird
|
|
MOZ_APP_DISPLAYNAME=Thunderbird
|
|
MOZ_XUL_APP=1
|
|
MOZ_UPDATER=1
|
|
MOZ_THUNDERBIRD=1
|
|
MOZ_MATHML=
|
|
MOZ_NO_ACTIVEX_SUPPORT=1
|
|
MOZ_ACTIVEX_SCRIPTING_SUPPORT=
|
|
ENABLE_TESTS=
|
|
MOZ_OJI=
|
|
NECKO_DISK_CACHE=
|
|
NECKO_PROTOCOLS_DEFAULT="http file viewsource res data"
|
|
MOZ_ENABLE_CANVAS=
|
|
MOZ_IMG_DECODERS_DEFAULT=`echo "$MOZ_IMG_DECODERS_DEFAULT" | sed "s/ xbm//"`
|
|
MOZ_MAIL_NEWS=1
|
|
MOZ_LDAP_XPCOM=1
|
|
MOZ_STATIC_MAIL_BUILD=1
|
|
MOZ_COMPOSER=1
|
|
MOZ_SVG=
|
|
MOZ_APP_VERSION=$THUNDERBIRD_VERSION
|
|
MOZ_EXTENSIONS_DEFAULT=" wallet spellcheck"
|
|
AC_DEFINE(MOZ_THUNDERBIRD)
|
|
;;
|
|
|
|
composer)
|
|
MOZ_APP_NAME=nvu
|
|
MOZ_APP_DISPLAYNAME=NVU
|
|
MOZ_XUL_APP=1
|
|
MOZ_UPDATER=1
|
|
MOZ_STANDALONE_COMPOSER=1
|
|
MOZ_COMPOSER=1
|
|
MOZ_APP_VERSION=0.17+
|
|
AC_DEFINE(MOZ_STANDALONE_COMPOSER)
|
|
;;
|
|
|
|
calendar)
|
|
MOZ_APP_NAME=sunbird
|
|
MOZ_APP_DISPLAYNAME=Sunbird
|
|
MOZ_XUL_APP=1
|
|
MOZ_UPDATER=1
|
|
MOZ_SUNBIRD=1
|
|
MOZ_CALENDAR=1
|
|
MOZ_APP_VERSION=`cat $topsrcdir/calendar/sunbird/config/version.txt`
|
|
MOZ_EXTENSIONS_DEFAULT=
|
|
MOZ_UNIVERSALCHARDET=
|
|
AC_DEFINE(MOZ_SUNBIRD)
|
|
;;
|
|
|
|
xulrunner)
|
|
MOZ_APP_NAME=xulrunner
|
|
MOZ_APP_DISPLAYNAME=Mozilla
|
|
MOZ_XUL_APP=1
|
|
MOZ_UPDATER=1
|
|
MOZ_XULRUNNER=1
|
|
MOZ_ENABLE_LIBXUL=1
|
|
MOZ_APP_VERSION=$MOZILLA_VERSION
|
|
MOZ_JAVAXPCOM=1
|
|
MOZ_PLACES=1
|
|
MOZ_EXTENSIONS_DEFAULT=" xml-rpc gnomevfs"
|
|
MOZ_NO_XPCOM_OBSOLETE=1
|
|
AC_DEFINE(MOZ_XULRUNNER)
|
|
;;
|
|
|
|
macbrowser)
|
|
MOZ_APP_NAME=mozilla
|
|
MOZ_APP_DISPLAYNAME=Mozilla
|
|
MOZ_APP_VERSION=$MOZILLA_VERSION
|
|
MOZ_EXTENSIONS_DEFAULT=" cookie typeaheadfind permissions"
|
|
MOZ_AUTH_EXTENSION=
|
|
MOZ_PREF_EXTENSIONS=
|
|
MOZ_WEBSERVICES=
|
|
AC_DEFINE(MOZ_MACBROWSER)
|
|
;;
|
|
|
|
content/xslt)
|
|
MOZ_APP_NAME=mozilla
|
|
MOZ_EXTENSIONS_DEFAULT=""
|
|
AC_DEFINE(TX_EXE)
|
|
MOZ_XSLT_STANDALONE=1
|
|
MOZ_STANDALONE_BUILD=1
|
|
MOZ_APP_VERSION=$MOZILLA_VERSION
|
|
;;
|
|
|
|
standalone)
|
|
MOZ_APP_NAME=mozilla
|
|
MOZ_APP_DISPLAYNAME=Mozilla
|
|
MOZ_APP_VERSION=$MOZILLA_VERSION
|
|
;;
|
|
|
|
tools/update-packaging)
|
|
MOZ_APP_NAME=mozilla
|
|
MOZ_APP_DISPLAYNAME=Mozilla
|
|
MOZ_APP_VERSION=$MOZILLA_VERSION
|
|
MOZ_UPDATE_PACKAGING=1
|
|
MOZ_UPDATER=1
|
|
MOZ_STANDALONE_BUILD=1
|
|
;;
|
|
|
|
*)
|
|
if test -z "$MOZ_BUILD_APP"; then
|
|
AC_MSG_ERROR([--enable-application=APP is required.])
|
|
else
|
|
AC_MSG_ERROR([--enable-application value not recognized.])
|
|
fi
|
|
;;
|
|
|
|
esac
|
|
|
|
AC_SUBST(MOZ_BUILD_APP)
|
|
AC_SUBST(MOZ_XUL_APP)
|
|
AC_SUBST(MOZ_SUITE)
|
|
AC_SUBST(MOZ_PHOENIX)
|
|
AC_SUBST(MOZ_THUNDERBIRD)
|
|
AC_SUBST(MOZ_STANDALONE_COMPOSER)
|
|
AC_SUBST(MOZ_SUNBIRD)
|
|
AC_SUBST(MOZ_XULRUNNER)
|
|
|
|
AC_DEFINE_UNQUOTED(MOZ_BUILD_APP,$MOZ_BUILD_APP)
|
|
|
|
if test "$MOZ_XUL_APP"; then
|
|
MOZ_SINGLE_PROFILE=1
|
|
MOZ_PROFILESHARING=
|
|
AC_DEFINE(MOZ_XUL_APP)
|
|
fi
|
|
|
|
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 = Calendar client
|
|
dnl =========================================================
|
|
MOZ_ARG_ENABLE_BOOL(calendar,
|
|
[ --enable-calendar Enable building of the calendar client],
|
|
MOZ_CALENDAR=1,
|
|
MOZ_CALENDAR= )
|
|
AC_SUBST(MOZ_CALENDAR)
|
|
|
|
dnl =========================================================
|
|
dnl = Mail & News
|
|
dnl =========================================================
|
|
MOZ_ARG_DISABLE_BOOL(mailnews,
|
|
[ --disable-mailnews Disable building of mail & news components],
|
|
MOZ_MAIL_NEWS=,
|
|
MOZ_MAIL_NEWS=1 )
|
|
AC_SUBST(MOZ_MAIL_NEWS)
|
|
|
|
dnl ========================================================
|
|
dnl static mail build off by default
|
|
dnl ========================================================
|
|
MOZ_ARG_ENABLE_BOOL(static-mail,
|
|
[ --enable-static-mail Enable static mail build support],
|
|
MOZ_STATIC_MAIL_BUILD=1,
|
|
MOZ_STATIC_MAIL_BUILD= )
|
|
|
|
if test "$MOZ_STATIC_MAIL_BUILD"; then
|
|
AC_DEFINE(MOZ_STATIC_MAIL_BUILD)
|
|
fi
|
|
|
|
AC_SUBST(MOZ_STATIC_MAIL_BUILD)
|
|
|
|
dnl =========================================================
|
|
dnl = LDAP
|
|
dnl =========================================================
|
|
MOZ_ARG_DISABLE_BOOL(ldap,
|
|
[ --disable-ldap Disable LDAP support],
|
|
MOZ_LDAP_XPCOM=,
|
|
MOZ_LDAP_XPCOM=1)
|
|
|
|
dnl ========================================================
|
|
dnl = Trademarked Branding
|
|
dnl ========================================================
|
|
MOZ_ARG_ENABLE_BOOL(official-branding,
|
|
[ --enable-official-branding Enable Official mozilla.org Branding
|
|
Do not distribute builds with
|
|
--enable-official-branding unless you have
|
|
permission to use trademarks per
|
|
http://www.mozilla.org/foundation/trademarks/ .],
|
|
[case "$MOZ_BUILD_APP" in
|
|
browser)
|
|
MOZ_BRANDING_DIRECTORY=other-licenses/branding/firefox
|
|
MOZ_APP_DISPLAYNAME=Firefox
|
|
;;
|
|
|
|
mail)
|
|
MOZ_BRANDING_DIRECTORY=other-licenses/branding/thunderbird
|
|
;;
|
|
|
|
*)]
|
|
AC_MSG_ERROR([Official branding is only available for Firefox and Thunderbird.])
|
|
esac
|
|
)
|
|
|
|
MOZ_ARG_WITH_STRING(branding,
|
|
[ --enable-branding Enable branding from the specified directory.],
|
|
MOZ_BRANDING_DIRECTORY=$withval)
|
|
|
|
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 = FreeType2
|
|
dnl = Enable freetype by default if building against X11
|
|
dnl = and freetype is available
|
|
dnl ========================================================
|
|
MOZ_ARG_DISABLE_BOOL(freetype2,
|
|
[ --disable-freetype2 Disable FreeType2 support ],
|
|
MOZ_ENABLE_FREETYPE2=,
|
|
MOZ_ENABLE_FREETYPE2=1)
|
|
|
|
if test "$MOZ_ENABLE_FREETYPE2" && test -z "$MOZ_X11" -o -z "$_HAVE_FREETYPE2"; then
|
|
AC_MSG_ERROR([Cannot enable FreeType2 support for non-X11 toolkits or if FreeType2 is not detected.])
|
|
fi
|
|
|
|
if test "$MOZ_ENABLE_FREETYPE2"; then
|
|
AC_DEFINE(MOZ_ENABLE_FREETYPE2)
|
|
_NON_GLOBAL_ACDEFINES="$_NON_GLOBAL_ACDEFINES MOZ_ENABLE_FREETYPE2"
|
|
fi
|
|
AC_SUBST(MOZ_ENABLE_FREETYPE2)
|
|
|
|
dnl ========================================================
|
|
dnl = Xft
|
|
dnl ========================================================
|
|
if test "$MOZ_ENABLE_GTK2"; then
|
|
MOZ_ENABLE_XFT=1
|
|
fi
|
|
|
|
MOZ_ARG_DISABLE_BOOL(xft,
|
|
[ --disable-xft Disable Xft support ],
|
|
MOZ_ENABLE_XFT=,
|
|
MOZ_ENABLE_XFT=1)
|
|
|
|
if test "$MOZ_ENABLE_XFT" && test -z "$MOZ_ENABLE_GTK2"; then
|
|
AC_MSG_ERROR([Cannot enable XFT support for non-GTK2 toolkits.])
|
|
fi
|
|
|
|
if test "$MOZ_ENABLE_XFT" && test "$MOZ_ENABLE_FREETYPE2"; then
|
|
AC_MSG_ERROR([Cannot enable XFT and FREETYPE2 at the same time.])
|
|
fi
|
|
|
|
if test "$MOZ_ENABLE_XFT"
|
|
then
|
|
AC_DEFINE(MOZ_ENABLE_XFT)
|
|
PKG_CHECK_MODULES(MOZ_XFT, xft)
|
|
PKG_CHECK_MODULES(_PANGOCHK, pango >= 1.1.0)
|
|
fi
|
|
|
|
AC_SUBST(MOZ_ENABLE_XFT)
|
|
AC_SUBST(MOZ_XFT_CFLAGS)
|
|
AC_SUBST(MOZ_XFT_LIBS)
|
|
|
|
dnl ========================================================
|
|
dnl = pango font rendering
|
|
dnl ========================================================
|
|
MOZ_ARG_ENABLE_BOOL(pango,
|
|
[ --enable-pango Enable Pango font rendering support],
|
|
MOZ_ENABLE_PANGO=1,
|
|
MOZ_ENABLE_PANGO=)
|
|
|
|
if test "$MOZ_ENABLE_PANGO" && test -z "$MOZ_ENABLE_CAIRO_GFX"
|
|
then
|
|
AC_DEFINE(MOZ_ENABLE_PANGO)
|
|
PKG_CHECK_MODULES(MOZ_PANGO, pango >= 1.6.0 pangoft2 >= 1.6.0)
|
|
|
|
AC_SUBST(MOZ_ENABLE_PANGO)
|
|
AC_SUBST(MOZ_PANGO_CFLAGS)
|
|
AC_SUBST(MOZ_PANGO_LIBS)
|
|
fi
|
|
|
|
if test "$MOZ_ENABLE_GTK2" && test "$MOZ_ENABLE_CAIRO_GFX"
|
|
then
|
|
# For gtk2, we require --enable-pango; gtk2 already implies --enable-xft
|
|
if test -z "$MOZ_ENABLE_PANGO"
|
|
then
|
|
AC_MSG_WARN([Pango is required for cairo gfx builds, assuming --enable-pango])
|
|
MOZ_ENABLE_PANGO=1
|
|
fi
|
|
fi
|
|
|
|
if test "$MOZ_ENABLE_PANGO" && test "$MOZ_ENABLE_CAIRO_GFX"
|
|
then
|
|
AC_DEFINE(MOZ_ENABLE_PANGO)
|
|
dnl PKG_CHECK_MODULES(MOZ_PANGO, pango >= 1.10.0 pangocairo >= 1.10.0)
|
|
if test "$MOZ_X11"; then
|
|
PKG_CHECK_MODULES(MOZ_PANGO, pango >= 1.6.0 pangoft2 >= 1.6.0 pangoxft >= 1.6.0)
|
|
else
|
|
PKG_CHECK_MODULES(MOZ_PANGO, pango >= 1.6.0 pangoft2 >= 1.6.0)
|
|
fi
|
|
|
|
AC_SUBST(MOZ_ENABLE_PANGO)
|
|
AC_SUBST(MOZ_PANGO_CFLAGS)
|
|
AC_SUBST(MOZ_PANGO_LIBS)
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl = x11 core font support (default and ability to enable depend on toolkit)
|
|
dnl ========================================================
|
|
if test "$MOZ_X11"
|
|
then
|
|
MOZ_ENABLE_COREXFONTS=${MOZ_ENABLE_COREXFONTS-1}
|
|
else
|
|
MOZ_ENABLE_COREXFONTS=
|
|
fi
|
|
if test "$MOZ_ENABLE_COREXFONTS"
|
|
then
|
|
AC_DEFINE(MOZ_ENABLE_COREXFONTS)
|
|
fi
|
|
|
|
AC_SUBST(MOZ_ENABLE_COREXFONTS)
|
|
|
|
dnl ========================================================
|
|
dnl = PostScript print module
|
|
dnl ========================================================
|
|
MOZ_ARG_DISABLE_BOOL(postscript,
|
|
[ --disable-postscript Disable PostScript printing support ],
|
|
MOZ_ENABLE_POSTSCRIPT=,
|
|
MOZ_ENABLE_POSTSCRIPT=1 )
|
|
|
|
dnl ========================================================
|
|
dnl = Xprint print module
|
|
dnl ========================================================
|
|
if test "$MOZ_X11"
|
|
then
|
|
_SAVE_LDFLAGS="$LDFLAGS"
|
|
LDFLAGS="$XLDFLAGS $LDFLAGS"
|
|
AC_CHECK_LIB(Xp, XpGetPrinterList, [XPRINT_LIBS="-lXp"],
|
|
MOZ_ENABLE_XPRINT=, $XEXT_LIBS $XLIBS)
|
|
LDFLAGS="$_SAVE_LDFLAGS"
|
|
|
|
MOZ_XPRINT_CFLAGS="$X_CFLAGS"
|
|
MOZ_XPRINT_LDFLAGS="$XLDFLAGS $XPRINT_LIBS"
|
|
MOZ_XPRINT_LDFLAGS="$MOZ_XPRINT_LDFLAGS $XEXT_LIBS $X11_LIBS"
|
|
|
|
MOZ_ARG_DISABLE_BOOL(xprint,
|
|
[ --disable-xprint Disable Xprint printing support ],
|
|
MOZ_ENABLE_XPRINT=,
|
|
MOZ_ENABLE_XPRINT=1 )
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl = GnomeVFS support module
|
|
dnl ========================================================
|
|
|
|
if test "$MOZ_X11"
|
|
then
|
|
dnl build the gnomevfs extension by default only when the
|
|
dnl GTK2 toolkit is in use.
|
|
if test "$MOZ_ENABLE_GTK2"
|
|
then
|
|
MOZ_ENABLE_GNOMEVFS=1
|
|
MOZ_ENABLE_GCONF=1
|
|
MOZ_ENABLE_LIBGNOME=1
|
|
fi
|
|
|
|
MOZ_ARG_DISABLE_BOOL(gnomevfs,
|
|
[ --disable-gnomevfs Disable GnomeVFS support ],
|
|
MOZ_ENABLE_GNOMEVFS=,
|
|
MOZ_ENABLE_GNOMEVFS=force)
|
|
|
|
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
|
|
],[
|
|
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_GNOMEVFS_CFLAGS)
|
|
AC_SUBST(MOZ_GNOMEVFS_LIBS)
|
|
|
|
if test "$MOZ_ENABLE_GCONF"
|
|
then
|
|
PKG_CHECK_MODULES(MOZ_GCONF, gconf-2.0 >= $GCONF_VERSION,[
|
|
MOZ_ENABLE_GCONF=1
|
|
],[
|
|
MOZ_ENABLE_GCONF=
|
|
])
|
|
fi
|
|
|
|
AC_SUBST(MOZ_GCONF_CFLAGS)
|
|
AC_SUBST(MOZ_GCONF_LIBS)
|
|
|
|
if test "$MOZ_ENABLE_LIBGNOME"
|
|
then
|
|
PKG_CHECK_MODULES(MOZ_LIBGNOME, libgnome-2.0 >= $LIBGNOME_VERSION,[
|
|
MOZ_ENABLE_LIBGNOME=1
|
|
],[
|
|
MOZ_ENABLE_LIBGNOME=
|
|
])
|
|
fi
|
|
|
|
AC_SUBST(MOZ_LIBGNOME_CFLAGS)
|
|
AC_SUBST(MOZ_LIBGNOME_LIBS)
|
|
|
|
# The GNOME component is built if gtk2, gconf, gnome-vfs, and libgnome
|
|
# are all available.
|
|
|
|
if test "$MOZ_ENABLE_GTK2" -a "$MOZ_ENABLE_GCONF" -a \
|
|
"$MOZ_ENABLE_GNOMEVFS" -a "$MOZ_ENABLE_LIBGNOME"; then
|
|
MOZ_ENABLE_GNOME_COMPONENT=1
|
|
else
|
|
MOZ_ENABLE_GNOME_COMPONENT=
|
|
fi
|
|
|
|
AC_SUBST(MOZ_ENABLE_GNOME_COMPONENT)
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl = libgnomeui support module
|
|
dnl ========================================================
|
|
|
|
if test "$MOZ_ENABLE_GTK2"
|
|
then
|
|
MOZ_ENABLE_GNOMEUI=1
|
|
|
|
MOZ_ARG_DISABLE_BOOL(gnomeui,
|
|
[ --disable-gnomeui Disable libgnomeui support (default: auto, optional at runtime) ],
|
|
MOZ_ENABLE_GNOMEUI=,
|
|
MOZ_ENABLE_GNOMEUI=force)
|
|
|
|
if test "$MOZ_ENABLE_GNOMEUI"
|
|
then
|
|
PKG_CHECK_MODULES(MOZ_GNOMEUI, libgnomeui-2.0 >= $GNOMEUI_VERSION,
|
|
[MOZ_ENABLE_GNOMEUI=1], [
|
|
if test "$MOZ_ENABLE_GNOMEUI" = "force"
|
|
then
|
|
AC_MSG_ERROR([* * * Could not find libgnomeui-2.0 >= $GNOMEUI_VERSION])
|
|
fi
|
|
MOZ_ENABLE_GNOMEUI=
|
|
])
|
|
fi
|
|
|
|
if test "$MOZ_ENABLE_GNOMEUI"; then
|
|
AC_DEFINE(MOZ_ENABLE_GNOMEUI)
|
|
fi
|
|
fi
|
|
AC_SUBST(MOZ_ENABLE_GNOMEUI)
|
|
AC_SUBST(MOZ_GNOMEUI_CFLAGS)
|
|
AC_SUBST(MOZ_GNOMEUI_LIBS)
|
|
|
|
dnl ========================================================
|
|
dnl = Setting MOZ_EXTRA_X11CONVERTERS turns on additional
|
|
dnl = converters in intl/uconv that are used only by X11 gfx
|
|
dnl = implementations. By default, it's undefined so that
|
|
dnl = those converters are not built on other platforms/toolkits.
|
|
dnl = (see bug 180851)
|
|
dnl ========================================================
|
|
|
|
if (test "$MOZ_ENABLE_GTK" || test "$MOZ_ENABLE_GTK2") \
|
|
&& test "$MOZ_ENABLE_COREXFONTS" \
|
|
|| test "$MOZ_ENABLE_XLIB" \
|
|
|| test "$MOZ_ENABLE_XPRINT"
|
|
then
|
|
AC_DEFINE(MOZ_EXTRA_X11CONVERTERS)
|
|
MOZ_EXTRA_X11CONVERTERS=1
|
|
fi
|
|
AC_SUBST(MOZ_EXTRA_X11CONVERTERS)
|
|
|
|
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 = Open JVM Interface (OJI) support
|
|
dnl ========================================================
|
|
MOZ_ARG_DISABLE_BOOL(oji,
|
|
[ --disable-oji Disable Open JVM Integration support],
|
|
MOZ_OJI=,
|
|
MOZ_OJI=1)
|
|
if test -n "$MOZ_OJI"; then
|
|
AC_DEFINE(OJI)
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl = This turns on xinerama support. We just can't use the
|
|
dnl = autodetection of the libraries since on Red Hat 7 linking with
|
|
dnl = Xinerama crashes the dynamic loader. Make people turn it on
|
|
dnl = explicitly. The autodetection is done above in the Xlib
|
|
dnl = detection routines.
|
|
dnl ========================================================
|
|
MOZ_ARG_ENABLE_BOOL(xinerama,
|
|
[ --enable-xinerama Enable Xinerama support
|
|
( not safe for Red Hat 7.0 ) ],
|
|
_ENABLE_XINERAMA=1,
|
|
_ENABLE_XINERAMA= )
|
|
|
|
if test -n "$_ENABLE_XINERAMA" -a -n "$MOZ_XINERAMA_LIBS" -a \
|
|
-n "$ac_cv_header_X11_extensions_Xinerama_h"; then
|
|
MOZ_ENABLE_XINERAMA=1
|
|
AC_DEFINE(MOZ_ENABLE_XINERAMA)
|
|
fi
|
|
|
|
dnl bi-directional support always on
|
|
IBMBIDI=1
|
|
AC_DEFINE(IBMBIDI)
|
|
|
|
dnl ========================================================
|
|
dnl complex text support off by default
|
|
dnl ========================================================
|
|
MOZ_ARG_ENABLE_BOOL(ctl,
|
|
[ --enable-ctl Enable Thai Complex Script support],
|
|
SUNCTL=1,
|
|
SUNCTL= )
|
|
|
|
dnl ========================================================
|
|
dnl view source support on by default
|
|
dnl ========================================================
|
|
MOZ_ARG_DISABLE_BOOL(view-source,
|
|
[ --disable-view-source Disable view source support],
|
|
MOZ_VIEW_SOURCE=,
|
|
MOZ_VIEW_SOURCE=1 )
|
|
if test "$MOZ_VIEW_SOURCE"; then
|
|
AC_DEFINE(MOZ_VIEW_SOURCE)
|
|
fi
|
|
|
|
|
|
dnl ========================================================
|
|
dnl accessibility support on by default
|
|
dnl ========================================================
|
|
MOZ_ARG_DISABLE_BOOL(accessibility,
|
|
[ --disable-accessibility Disable accessibility support],
|
|
ACCESSIBILITY=,
|
|
ACCESSIBILITY=1 )
|
|
if test "$ACCESSIBILITY"; then
|
|
AC_DEFINE(ACCESSIBILITY)
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl xpfe/components on by default
|
|
dnl ========================================================
|
|
MOZ_ARG_DISABLE_BOOL(xpfe-components,
|
|
[ --disable-xpfe-components
|
|
Disable xpfe components],
|
|
MOZ_XPFE_COMPONENTS=,
|
|
MOZ_XPFE_COMPONENTS=1 )
|
|
|
|
dnl ========================================================
|
|
dnl xpinstall support on by default
|
|
dnl ========================================================
|
|
MOZ_ARG_DISABLE_BOOL(xpinstall,
|
|
[ --disable-xpinstall Disable xpinstall support],
|
|
MOZ_XPINSTALL=,
|
|
MOZ_XPINSTALL=1 )
|
|
if test "$MOZ_XPINSTALL"; then
|
|
AC_DEFINE(MOZ_XPINSTALL)
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl Single profile support off by default
|
|
dnl ========================================================
|
|
MOZ_ARG_ENABLE_BOOL(single-profile,
|
|
[ --enable-single-profile Enable single profile support ],
|
|
MOZ_SINGLE_PROFILE=1,
|
|
MOZ_SINGLE_PROFILE= )
|
|
|
|
dnl ========================================================
|
|
dnl xpcom js loader support on by default
|
|
dnl ========================================================
|
|
MOZ_ARG_DISABLE_BOOL(jsloader,
|
|
[ --disable-jsloader Disable xpcom js loader support],
|
|
MOZ_JSLOADER=,
|
|
MOZ_JSLOADER=1 )
|
|
if test "$MOZ_JSLOADER"; then
|
|
AC_DEFINE(MOZ_JSLOADER)
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl Disable printing
|
|
dnl ========================================================
|
|
MOZ_ARG_DISABLE_BOOL(printing,
|
|
[ --disable-printing Disable printing support],
|
|
NS_PRINTING=,
|
|
NS_PRINTING=1 )
|
|
|
|
if test "$NS_PRINTING"; then
|
|
AC_DEFINE(NS_PRINTING)
|
|
AC_DEFINE(NS_PRINT_PREVIEW)
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl use native unicode converters
|
|
dnl ========================================================
|
|
MOZ_ARG_ENABLE_BOOL(native-uconv,
|
|
[ --enable-native-uconv Enable iconv support],
|
|
MOZ_USE_NATIVE_UCONV=1,
|
|
MOZ_USE_NATIVE_UCONV= )
|
|
if test "$MOZ_USE_NATIVE_UCONV"; then
|
|
AC_DEFINE(MOZ_USE_NATIVE_UCONV)
|
|
fi
|
|
if test "$OS_ARCH" != "WINCE" -a "$OS_ARCH" != "WINNT" -a "$MOZ_USE_NATIVE_UCONV" -a "$ac_cv_func_iconv" != "yes"; then
|
|
AC_MSG_ERROR([iconv() not found. Cannot enable native uconv support.])
|
|
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 = Drop XPCOM Obsolete library
|
|
dnl ========================================================
|
|
MOZ_ARG_DISABLE_BOOL(xpcom-obsolete,
|
|
[ --disable-xpcom-obsolete Disable XPCOM Obsolete Library],
|
|
MOZ_NO_XPCOM_OBSOLETE=1,
|
|
MOZ_NO_XPCOM_OBSOLETE=)
|
|
|
|
if test -n "$MOZ_NO_XPCOM_OBSOLETE"; then
|
|
if test -z "$MOZ_SINGLE_PROFILE"; then
|
|
AC_MSG_ERROR([Building without xpcom-obsolete isn't support when building full profile support.])
|
|
fi
|
|
AC_DEFINE(MOZ_NO_XPCOM_OBSOLETE)
|
|
fi
|
|
|
|
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 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 XMLExtras
|
|
dnl ========================================================
|
|
MOZ_ARG_DISABLE_BOOL(xmlextras,
|
|
[ --disable-xmlextras Disable XMLExtras such as XMLHttpRequest ],
|
|
MOZ_XMLEXTRAS=,
|
|
MOZ_XMLEXTRAS=1 )
|
|
|
|
dnl ========================================================
|
|
dnl Webservices
|
|
dnl ========================================================
|
|
MOZ_ARG_DISABLE_BOOL(webservices,
|
|
[ --disable-webservices Disable Webservices/SOAP support ],
|
|
MOZ_WEBSERVICES=,
|
|
MOZ_WEBSERVICES=1 )
|
|
|
|
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 JavaXPCOM
|
|
dnl ========================================================
|
|
MOZ_ARG_ENABLE_BOOL(javaxpcom,
|
|
[ --enable-javaxpcom
|
|
Enable Java-XPCOM bridge],
|
|
MOZ_JAVAXPCOM=1,
|
|
MOZ_JAVAXPCOM= )
|
|
|
|
if test -n "${MOZ_JAVAXPCOM}"; then
|
|
case "$host_os" in
|
|
cygwin*|msvc*|mks*)
|
|
if test -n "$JAVA_HOME"; then
|
|
JAVA_HOME=`cygpath -u \`cygpath -m -s "$JAVA_HOME"\``
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
if test -n "${JAVA_INCLUDE_PATH}"; then
|
|
dnl Make sure jni.h exists in the given include path.
|
|
if test ! -f "$JAVA_INCLUDE_PATH/jni.h"; then
|
|
AC_MSG_ERROR([jni.h was not found in given include path $JAVA_INCLUDE_PATH.])
|
|
fi
|
|
else
|
|
case "$target_os" in
|
|
darwin*)
|
|
dnl Default to java system location
|
|
JAVA_INCLUDE_PATH=/System/Library/Frameworks/JavaVM.framework/Headers
|
|
;;
|
|
*)
|
|
dnl Try $JAVA_HOME
|
|
JAVA_INCLUDE_PATH="$JAVA_HOME/include"
|
|
;;
|
|
esac
|
|
if test ! -f "$JAVA_INCLUDE_PATH/jni.h"; then
|
|
AC_MSG_ERROR([The header jni.h was not found. Set \$JAVA_HOME or use --with-java-include-path={java-include-dir}.])
|
|
fi
|
|
fi
|
|
|
|
if test -n "${JAVA_BIN_PATH}"; then
|
|
dnl Look for javac and jar in the specified path.
|
|
JAVA_PATH="$JAVA_BIN_PATH"
|
|
else
|
|
dnl No path specified, so look for javac and jar in $JAVA_HOME & $PATH.
|
|
JAVA_PATH="$JAVA_HOME/bin:$PATH"
|
|
fi
|
|
|
|
AC_PATH_PROG(JAVAC, javac, :, $JAVA_PATH)
|
|
AC_PATH_PROG(JAR, jar, :, $JAVA_PATH)
|
|
if test -z "$JAVAC" || test "$JAVAC" = ":" || test -z "$JAR" || test "$JAR" = ":"; then
|
|
AC_MSG_ERROR([The programs javac and jar were not found. Set \$JAVA_HOME or use --with-java-bin-path={java-bin-dir}.])
|
|
fi
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl = Enable compilation of specific extension modules
|
|
dnl ========================================================
|
|
|
|
MOZ_ARG_ENABLE_STRING(extensions,
|
|
[ --enable-extensions Enable extensions],
|
|
[ for option in `echo $enableval | sed 's/,/ /g'`; do
|
|
if test "$option" = "yes" || test "$option" = "all"; then
|
|
MOZ_EXTENSIONS="$MOZ_EXTENSIONS $MOZ_EXTENSIONS_ALL"
|
|
elif test "$option" = "no" || test "$option" = "none"; then
|
|
MOZ_EXTENSIONS=""
|
|
elif test "$option" = "default"; then
|
|
MOZ_EXTENSIONS="$MOZ_EXTENSIONS $MOZ_EXTENSIONS_DEFAULT"
|
|
elif test `echo "$option" | grep -c \^-` != 0; then
|
|
option=`echo $option | sed 's/^-//'`
|
|
MOZ_EXTENSIONS=`echo "$MOZ_EXTENSIONS" | sed "s/ ${option}//"`
|
|
else
|
|
MOZ_EXTENSIONS="$MOZ_EXTENSIONS $option"
|
|
fi
|
|
done],
|
|
MOZ_EXTENSIONS="$MOZ_EXTENSIONS_DEFAULT")
|
|
|
|
if test -z "$MOZ_ENABLE_GTK" && test `echo "$MOZ_EXTENSIONS" | grep -c xmlterm` -ne 0; then
|
|
AC_MSG_WARN([Cannot build xmlterm without gtk toolkit. Removing xmlterm from MOZ_EXTENSIONS.])
|
|
MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|xmlterm||'`
|
|
fi
|
|
|
|
if test -z "$MOZ_ENABLE_GNOMEVFS" && test `echo "$MOZ_EXTENSIONS" | grep -c gnomevfs` -ne 0; then
|
|
# Suppress warning on non-X11 platforms
|
|
if test -n "$MOZ_X11"; then
|
|
AC_MSG_WARN([Cannot build gnomevfs without required libraries. Removing gnomevfs from MOZ_EXTENSIONS.])
|
|
fi
|
|
MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|gnomevfs||'`
|
|
fi
|
|
|
|
if test -z "$MOZ_JSDEBUGGER" && test `echo "$MOZ_EXTENSIONS" | grep -c venkman` -ne 0; then
|
|
AC_MSG_WARN([Cannot build venkman without JavaScript debug library. Removing venkman from MOZ_EXTENSIONS.])
|
|
MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|venkman||'`
|
|
fi
|
|
|
|
dnl This might be temporary: build tridentprofile only on Windows
|
|
if test `echo "$MOZ_EXTENSIONS" | grep -c tridentprofile` -ne 0 && test "$OS_ARCH" != "WINNT"; then
|
|
AC_MSG_WARN([tridentprofile extension works only on Windows at this time. Removing tridentprofile from MOZ_EXTENSIONS.])
|
|
MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|tridentprofile||'`
|
|
fi
|
|
|
|
dnl cookie must be built before tridentprofile. put it at list's end.
|
|
if test `echo "$MOZ_EXTENSIONS" | grep -c tridentprofile` -ne 0; then
|
|
MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|tridentprofile||'`
|
|
if test `echo "$MOZ_EXTENSIONS" | grep -c cookie` -eq 0; then
|
|
AC_MSG_WARN([tridentprofile extension requires cookie. Removing tridentprofile.])
|
|
else
|
|
MOZ_EXTENSIONS="$MOZ_EXTENSIONS tridentprofile"
|
|
fi
|
|
fi
|
|
|
|
dnl xforms requires xtf and webservices and schema-validation
|
|
if test -z "$MOZ_XTF" && test `echo "$MOZ_EXTENSIONS" | grep -c xforms` -ne 0; then
|
|
AC_MSG_WARN([Cannot build XForms without XTF support. Removing XForms from MOZ_EXTENSIONS.])
|
|
MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|xforms||g'`
|
|
fi
|
|
if test -z "$MOZ_WEBSERVICES" && test `echo "$MOZ_EXTENSIONS" | grep -c xforms` -ne 0; then
|
|
AC_MSG_WARN([Cannot build XForms without webservices. Removing XForms from MOZ_EXTENSIONS.])
|
|
MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|xforms||g'`
|
|
fi
|
|
|
|
if test `echo "$MOZ_EXTENSIONS" | grep -c xforms` -ne 0 && test `echo "$MOZ_EXTENSIONS" | grep -c schema-validation` -eq 0; then
|
|
AC_MSG_WARN([Cannot build XForms without schema validation. Removing XForms from MOZ_EXTENSIONS.])
|
|
MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|xforms||g'`
|
|
fi
|
|
|
|
if test `echo "$MOZ_EXTENSIONS" | grep -c auth` -ne 0; then
|
|
AC_MSG_WARN([auth is no longer an extension, use --disable-negotiateauth to disable.])
|
|
MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|auth||g'`
|
|
fi
|
|
|
|
if test `echo "$MOZ_EXTENSIONS" | grep -c xmlextras` -ne 0; then
|
|
AC_MSG_WARN([xmlextras is no longer an extension, use --disable-xmlextras to disable.])
|
|
MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|xmlextras||g'`
|
|
fi
|
|
|
|
if test `echo "$MOZ_EXTENSIONS" | grep -c webservices` -ne 0; then
|
|
AC_MSG_WARN([webservices is no longer an extension, use --disable-webservices to disable.])
|
|
MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|webservices||g'`
|
|
fi
|
|
|
|
if test `echo "$MOZ_EXTENSIONS" | grep -c pref` -ne 0; then
|
|
AC_MSG_WARN([pref is no longer an extension, use --disable-pref-extensions to disable.])
|
|
MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|pref||g'`
|
|
fi
|
|
|
|
if test `echo "$MOZ_EXTENSIONS" | grep -c universalchardet` -ne 0; then
|
|
AC_MSG_WARN([universalchardet is no longer an extension, use --disable-universalchardet to disable.])
|
|
MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|universalchardet||g'`
|
|
fi
|
|
|
|
if test `echo "$MOZ_EXTENSIONS" | grep -c java` -ne 0; then
|
|
AC_MSG_WARN([java is no longer an extension, use --enable-javaxpcom to enable.])
|
|
MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|java||g'`
|
|
fi
|
|
|
|
dnl Remove dupes
|
|
MOZ_EXTENSIONS=`${PERL} ${srcdir}/build/unix/uniq.pl ${MOZ_EXTENSIONS}`
|
|
|
|
dnl ========================================================
|
|
dnl Image decoders
|
|
dnl ========================================================
|
|
case "$MOZ_WIDGET_TOOLKIT" in
|
|
beos|windows|os2|mac|cocoa)
|
|
;;
|
|
*)
|
|
if test -z "$MOZ_ENABLE_GNOMEUI"; then
|
|
MOZ_IMG_DECODERS_DEFAULT=`echo $MOZ_IMG_DECODERS_DEFAULT | sed -e 's|icon||'`
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
MOZ_ARG_ENABLE_STRING(image-decoders,
|
|
[ --enable-image-decoders[={mod1,mod2,default,all,none}]
|
|
Enable specific image decoders],
|
|
[ for option in `echo $enableval | sed 's/,/ /g'`; do
|
|
if test "$option" = "yes" || test "$option" = "all"; then
|
|
MOZ_IMG_DECODERS="$MOZ_IMG_DECODERS $MOZ_IMG_DECODERS_DEFAULT"
|
|
elif test "$option" = "no" || test "$option" = "none"; then
|
|
MOZ_IMG_DECODERS=""
|
|
elif test "$option" = "default"; then
|
|
MOZ_IMG_DECODERS="$MOZ_IMG_DECODERS $MOZ_IMG_DECODERS_DEFAULT"
|
|
elif test `echo "$option" | grep -c \^-` != 0; then
|
|
option=`echo $option | sed 's/^-//'`
|
|
MOZ_IMG_DECODERS=`echo "$MOZ_IMG_DECODERS" | sed "s/ ${option}//"`
|
|
else
|
|
MOZ_IMG_DECODERS="$MOZ_IMG_DECODERS $option"
|
|
fi
|
|
done],
|
|
MOZ_IMG_DECODERS="$MOZ_IMG_DECODERS_DEFAULT")
|
|
|
|
dnl Dupes are removed in the encoder section because it will also add decoders
|
|
|
|
dnl ========================================================
|
|
dnl Image encoders
|
|
dnl ========================================================
|
|
MOZ_ARG_ENABLE_STRING(image-encoders,
|
|
[ --enable-image-encoders[={mod1,mod2,default,all,none}]
|
|
Enable specific image encoders],
|
|
[ for option in `echo $enableval | sed 's/,/ /g'`; do
|
|
if test "$option" = "yes" || test "$option" = "all"; then
|
|
addencoder="$MOZ_IMG_ENCODERS_DEFAULT"
|
|
elif test "$option" = "no" || test "$option" = "none"; then
|
|
MOZ_IMG_ENCODERS=""
|
|
addencoder=""
|
|
elif test "$option" = "default"; then
|
|
addencoder="$MOZ_IMG_ENCODERS_DEFAULT"
|
|
elif test `echo "$option" | grep -c \^-` != 0; then
|
|
option=`echo $option | sed 's/^-//'`
|
|
addencoder=`echo "$MOZ_IMG_ENCODERS" | sed "s/ ${option}//"`
|
|
else
|
|
addencoder="$option"
|
|
fi
|
|
MOZ_IMG_ENCODERS="$MOZ_IMG_ENCODERS $addencoder"
|
|
done],
|
|
MOZ_IMG_ENCODERS="$MOZ_IMG_ENCODERS_DEFAULT")
|
|
|
|
dnl Remove dupes
|
|
MOZ_IMG_DECODERS=`${PERL} ${srcdir}/build/unix/uniq.pl ${MOZ_IMG_DECODERS}`
|
|
MOZ_IMG_ENCODERS=`${PERL} ${srcdir}/build/unix/uniq.pl ${MOZ_IMG_ENCODERS}`
|
|
|
|
dnl ========================================================
|
|
dnl experimental ldap features
|
|
dnl ========================================================
|
|
MOZ_ARG_ENABLE_BOOL(ldap-experimental,
|
|
[ --enable-ldap-experimental
|
|
Enable LDAP experimental features],
|
|
MOZ_LDAP_XPCOM_EXPERIMENTAL=1,
|
|
MOZ_LDAP_XPCOM_EXPERIMENTAL=)
|
|
|
|
dnl ========================================================
|
|
dnl MathML on by default
|
|
dnl ========================================================
|
|
MOZ_ARG_DISABLE_BOOL(mathml,
|
|
[ --disable-mathml Disable MathML support],
|
|
MOZ_MATHML=,
|
|
MOZ_MATHML=1 )
|
|
if test "$MOZ_MATHML"; then
|
|
AC_DEFINE(MOZ_MATHML)
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl Canvas
|
|
dnl ========================================================
|
|
MOZ_ARG_ENABLE_BOOL(canvas,
|
|
[ --enable-canvas Enable html:canvas feature],
|
|
MOZ_ENABLE_CANVAS=1,
|
|
MOZ_ENABLE_CANVAS= )
|
|
if test "$MOZ_ENABLE_CANVAS"; then
|
|
AC_DEFINE(MOZ_ENABLE_CANVAS)
|
|
fi
|
|
AC_SUBST(MOZ_ENABLE_CANVAS)
|
|
|
|
dnl ========================================================
|
|
dnl SVG
|
|
dnl ========================================================
|
|
MOZ_ARG_ENABLE_BOOL(svg,
|
|
[ --enable-svg Enable SVG support],
|
|
MOZ_SVG=1,
|
|
MOZ_SVG= )
|
|
if test -n "$MOZ_SVG"; then
|
|
AC_DEFINE(MOZ_SVG)
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl SVG <foreignObject>
|
|
dnl ========================================================
|
|
MOZ_ARG_DISABLE_BOOL(svg-foreignobject,
|
|
[ --disable-svg-foreignobject
|
|
Disable SVG <foreignObject> support],
|
|
MOZ_SVG_FOREIGNOBJECT=,
|
|
MOZ_SVG_FOREIGNOBJECT=1 )
|
|
if test "$MOZ_SVG_FOREIGNOBJECT"; then
|
|
if test -z "$MOZ_ENABLE_CAIRO_GFX"; then
|
|
AC_MSG_ERROR([<foreignobject> requires cairo gfx])
|
|
else
|
|
if test "$MOZ_SVG"; then
|
|
AC_DEFINE(MOZ_SVG_FOREIGNOBJECT)
|
|
else
|
|
MOZ_SVG_FOREIGNOBEJCT=
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl Installer
|
|
dnl ========================================================
|
|
case "$target_os" in
|
|
aix*|solaris*|linux*|msvc*|mks*|cygwin*|mingw*|os2*|wince*)
|
|
MOZ_INSTALLER=1
|
|
;;
|
|
esac
|
|
|
|
MOZ_ARG_DISABLE_BOOL(installer,
|
|
[ --disable-installer Disable building of installer],
|
|
MOZ_INSTALLER=,
|
|
MOZ_INSTALLER=1 )
|
|
# Automatically disable installer if xpinstall isn't built
|
|
if test -z "$MOZ_XPINSTALL"; then
|
|
MOZ_INSTALLER=
|
|
fi
|
|
AC_SUBST(MOZ_INSTALLER)
|
|
|
|
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)
|
|
|
|
dnl ========================================================
|
|
dnl Updater
|
|
dnl ========================================================
|
|
|
|
MOZ_ARG_DISABLE_BOOL(updater,
|
|
[ --disable-updater Disable building of updater],
|
|
MOZ_UPDATER=,
|
|
MOZ_UPDATER=1 )
|
|
# The Windows build requires the iconv command line utility
|
|
# in order to build the updater.
|
|
case "$target_os" in
|
|
msvc*|mks*|cygwin*|mingw*|wince*)
|
|
if test -n "$MOZ_UPDATER"; then
|
|
AC_MSG_CHECKING([for iconv])
|
|
AC_CHECK_PROGS(HOST_ICONV, $HOST_ICONV "iconv", "")
|
|
if test -z "$HOST_ICONV"; then
|
|
AC_MSG_ERROR([iconv not found in \$PATH])
|
|
fi
|
|
fi
|
|
;;
|
|
esac
|
|
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)
|
|
|
|
# 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 ActiveX
|
|
dnl ========================================================
|
|
|
|
MOZ_ARG_DISABLE_BOOL(xpconnect-idispatch,
|
|
[ --disable-xpconnect-idispatch
|
|
Disable building of xpconnect support for IDispatch
|
|
(win32 only)],
|
|
XPC_IDISPATCH_SUPPORT=,
|
|
XPC_IDISPATCH_SUPPORT=1)
|
|
AC_SUBST(XPC_IDISPATCH_SUPPORT)
|
|
|
|
MOZ_ARG_DISABLE_BOOL(activex,
|
|
[ --disable-activex Disable building of ActiveX control (win32 only)],
|
|
MOZ_NO_ACTIVEX_SUPPORT=1,
|
|
MOZ_NO_ACTIVEX_SUPPORT= )
|
|
AC_SUBST(MOZ_NO_ACTIVEX_SUPPORT)
|
|
|
|
MOZ_ARG_DISABLE_BOOL(activex-scripting,
|
|
[ --disable-activex-scripting
|
|
Disable building of ActiveX scripting support (win32)],
|
|
MOZ_ACTIVEX_SCRIPTING_SUPPORT=,
|
|
MOZ_ACTIVEX_SCRIPTING_SUPPORT=1)
|
|
AC_SUBST(MOZ_ACTIVEX_SCRIPTING_SUPPORT)
|
|
|
|
if test -n "$MOZ_NO_ACTIVEX_SUPPORT" -a -n "$MOZ_ACTIVEX_SCRIPTING_SUPPORT";
|
|
then
|
|
AC_MSG_ERROR([Cannot enable ActiveX scripting support when ActiveX support is disabled.])
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl leaky
|
|
dnl ========================================================
|
|
MOZ_ARG_ENABLE_BOOL(leaky,
|
|
[ --enable-leaky Build leaky memory tool],
|
|
MOZ_LEAKY=1,
|
|
MOZ_LEAKY=)
|
|
|
|
|
|
dnl ========================================================
|
|
dnl xpctools
|
|
dnl ========================================================
|
|
MOZ_ARG_ENABLE_BOOL(xpctools,
|
|
[ --enable-xpctools Build JS profiling tool],
|
|
MOZ_XPCTOOLS=1,
|
|
MOZ_XPCTOOLS= )
|
|
|
|
|
|
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 = Enable Lea malloc in xpcom. OFF by default.
|
|
dnl ========================================================
|
|
MOZ_ARG_ENABLE_BOOL(xpcom-lea,
|
|
[ --enable-xpcom-lea Use Lea malloc in xpcom ],
|
|
XPCOM_USE_LEA=1,
|
|
XPCOM_USE_LEA= )
|
|
if test -n "$XPCOM_USE_LEA"; then
|
|
AC_DEFINE(XPCOM_USE_LEA)
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl = Enable places (new history/bookmarks)
|
|
dnl ========================================================
|
|
MOZ_ARG_ENABLE_BOOL(places,
|
|
[ --enable-places Enable 'places' bookmark/history implementation],
|
|
MOZ_PLACES=1,
|
|
MOZ_PLACES= )
|
|
if test -n "$MOZ_PLACES"; then
|
|
AC_DEFINE(MOZ_PLACES)
|
|
MOZ_MORK=
|
|
MOZ_MORKREADER=1
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl = Enable mozStorage
|
|
dnl = XXX need to implement --with-system-sqlite3 (see bug 263381)
|
|
dnl ========================================================
|
|
dnl Implicitly enabled by default if building calendar or places
|
|
if test -n "$MOZ_CALENDAR" || test -n "$MOZ_PLACES"; then
|
|
MOZ_STORAGE=1
|
|
fi
|
|
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 = Enable Ultrasparc specific optimizations for JS
|
|
dnl ========================================================
|
|
MOZ_ARG_ENABLE_BOOL(js-ultrasparc,
|
|
[ --enable-js-ultrasparc Use UltraSPARC optimizations in JS],
|
|
JS_ULTRASPARC_OPTS=1,
|
|
JS_ULTRASPARC_OPTS= )
|
|
|
|
dnl only enable option for ultrasparcs
|
|
if test `echo "$target_os" | grep -c \^solaris 2>/dev/null` = 0 -o \
|
|
"$OS_TEST" != "sun4u"; then
|
|
JS_ULTRASPARC_OPTS=
|
|
fi
|
|
AC_SUBST(JS_ULTRASPARC_OPTS)
|
|
|
|
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
|
|
case "$target" in
|
|
*-irix*)
|
|
if test "$GNU_CC"; then
|
|
GCC_VERSION=`$CC -v 2>&1 | awk '/version/ { print $3 }'`
|
|
case "$GCC_VERSION" in
|
|
2.95.*)
|
|
MOZ_DEBUG_FLAGS=""
|
|
;;
|
|
*)
|
|
MOZ_DEBUG_FLAGS="-g"
|
|
;;
|
|
esac
|
|
else
|
|
MOZ_DEBUG_FLAGS="-g"
|
|
fi
|
|
;;
|
|
*)
|
|
MOZ_DEBUG_FLAGS="-g"
|
|
;;
|
|
esac
|
|
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" && test "$enableval" != "yes"; then
|
|
MOZ_DEBUG_FLAGS=`echo $enableval | sed -e 's|\\\ | |g'`
|
|
fi
|
|
else
|
|
MOZ_DEBUG=
|
|
fi ],
|
|
MOZ_DEBUG=)
|
|
|
|
MOZ_DEBUG_ENABLE_DEFS="-DDEBUG -D_DEBUG"
|
|
case "${target_os}" in
|
|
beos*)
|
|
MOZ_DEBUG_ENABLE_DEFS="$MOZ_DEBUG_ENABLE_DEFS -DDEBUG_${USER}"
|
|
;;
|
|
msvc*|mks*|cygwin*|mingw*|os2*|wince*)
|
|
MOZ_DEBUG_ENABLE_DEFS="$MOZ_DEBUG_ENABLE_DEFS -DDEBUG_`echo ${USERNAME} | sed -e 's| |_|g'`"
|
|
;;
|
|
*)
|
|
MOZ_DEBUG_ENABLE_DEFS="$MOZ_DEBUG_ENABLE_DEFS -DDEBUG_`$WHOAMI`"
|
|
;;
|
|
esac
|
|
MOZ_DEBUG_ENABLE_DEFS="$MOZ_DEBUG_ENABLE_DEFS -DTRACING"
|
|
|
|
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 <stdio.h>],
|
|
[printf("Hello World\n");],
|
|
_results=yes,
|
|
_results=no)
|
|
AC_MSG_RESULT([$_results])
|
|
if test "$_results" = "no"; then
|
|
AC_MSG_ERROR([These compiler flags are invalid: $MOZ_DEBUG_FLAGS])
|
|
fi
|
|
CFLAGS=$_SAVE_CFLAGS
|
|
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" && test "$enableval" != "yes"; then
|
|
MOZ_OPTIMIZE_FLAGS=`echo "$enableval" | sed -e 's|\\\ | |g'`
|
|
MOZ_OPTIMIZE=2
|
|
fi
|
|
else
|
|
MOZ_OPTIMIZE=
|
|
fi ], MOZ_OPTIMIZE=1)
|
|
|
|
if test "$COMPILE_ENVIRONMENT"; then
|
|
if test -n "$MOZ_OPTIMIZE"; then
|
|
AC_MSG_CHECKING([for valid optimization flags])
|
|
_SAVE_CFLAGS=$CFLAGS
|
|
CFLAGS="$CFLAGS $MOZ_OPTIMIZE_FLAGS"
|
|
AC_TRY_COMPILE([#include <stdio.h>],
|
|
[printf("Hello World\n");],
|
|
_results=yes,
|
|
_results=no)
|
|
AC_MSG_RESULT([$_results])
|
|
if test "$_results" = "no"; then
|
|
AC_MSG_ERROR([These compiler flags are invalid: $MOZ_OPTIMIZE_FLAGS])
|
|
fi
|
|
CFLAGS=$_SAVE_CFLAGS
|
|
fi
|
|
fi # COMPILE_ENVIRONMENT
|
|
|
|
AC_SUBST(MOZ_OPTIMIZE)
|
|
AC_SUBST(MOZ_OPTIMIZE_FLAGS)
|
|
AC_SUBST(MOZ_OPTIMIZE_LDFLAGS)
|
|
|
|
dnl ========================================================
|
|
dnl = Enable/disable debug for specific modules only
|
|
dnl = module names beginning with ^ will be disabled
|
|
dnl ========================================================
|
|
MOZ_ARG_ENABLE_STRING(debug-modules,
|
|
[ --enable-debug-modules Enable/disable debug info for specific modules],
|
|
[ MOZ_DEBUG_MODULES=`echo $enableval| sed 's/,/ /g'` ] )
|
|
|
|
dnl ========================================================
|
|
dnl = Enable/disable generation of debugger info for specific modules only
|
|
dnl = the special module name ALL_MODULES can be used to denote all modules
|
|
dnl = module names beginning with ^ will be disabled
|
|
dnl ========================================================
|
|
MOZ_ARG_ENABLE_STRING(debugger-info-modules,
|
|
[ --enable-debugger-info-modules
|
|
Enable/disable debugger info for specific modules],
|
|
[ for i in `echo $enableval | sed 's/,/ /g'`; do
|
|
dnl note that the list of module names is reversed as it is copied
|
|
dnl this is important, as it will allow config.mk to interpret stuff like
|
|
dnl "^ALL_MODULES xpcom" properly
|
|
if test "$i" = "no"; then
|
|
i="^ALL_MODULES"
|
|
fi
|
|
if test "$i" = "yes"; then
|
|
i="ALL_MODULES"
|
|
fi
|
|
MOZ_DBGRINFO_MODULES="$i $MOZ_DBGRINFO_MODULES";
|
|
done ])
|
|
|
|
dnl ========================================================
|
|
dnl Enable garbage collector
|
|
dnl ========================================================
|
|
MOZ_ARG_ENABLE_BOOL(boehm,
|
|
[ --enable-boehm Enable the Boehm Garbage Collector],
|
|
GC_LEAK_DETECTOR=1,
|
|
GC_LEAK_DETECTOR= )
|
|
if test -n "$GC_LEAK_DETECTOR"; then
|
|
AC_DEFINE(GC_LEAK_DETECTOR)
|
|
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 = Enable function reordering. Off by default
|
|
dnl ========================================================
|
|
MOZ_ARG_ENABLE_BOOL(reorder,
|
|
[ --enable-reorder Enable function reordering (requires GNU ld) ],
|
|
_ENABLE_REORDER=1,
|
|
_ENABLE_REORDER= )
|
|
if test -n "$_ENABLE_REORDER"; then
|
|
if test -z "$GNU_LD"; then
|
|
AC_MSG_WARN([Reordering only works with GNU ld. Not reordering.])
|
|
else
|
|
MOZ_REORDER=1
|
|
fi
|
|
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 = detect webshell leaks
|
|
dnl ========================================================
|
|
MOZ_ARG_ENABLE_BOOL(detect-webshell-leaks,
|
|
[ --enable-detect-webshell-leaks
|
|
Enable detection of webshell leaks
|
|
(default=debug)],
|
|
_DETECT_WEBSHELL_LEAKS=1,
|
|
_DETECT_WEBSHELL_LEAKS=,
|
|
[ if test "$MOZ_DEBUG"; then
|
|
_DETECT_WEBSHELL_LEAKS=1
|
|
fi])
|
|
|
|
if test "$_DETECT_WEBSHELL_LEAKS"; then
|
|
AC_DEFINE(DETECT_WEBSHELL_LEAKS)
|
|
AC_SUBST(DETECT_WEBSHELL_LEAKS)
|
|
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 "$GNU_CC"; then
|
|
WRAP_MALLOC_CFLAGS="${LDFLAGS} -Wl,--wrap -Wl,malloc -Wl,--wrap -Wl,free -Wl,--wrap -Wl,realloc -Wl,--wrap -Wl,__builtin_new -Wl,--wrap -Wl,__builtin_vec_new -Wl,--wrap -Wl,__builtin_delete -Wl,--wrap -Wl,__builtin_vec_delete -Wl,--wrap -Wl,PR_Free -Wl,--wrap -Wl,PR_Malloc -Wl,--wrap -Wl,PR_Calloc -Wl,--wrap -Wl,PR_Realloc"
|
|
MKSHLIB='$(CXX) $(DSO_LDOPTS) $(WRAP_MALLOC_CFLAGS) -o $@'
|
|
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_MALLOC_LIB=$withval)
|
|
|
|
dnl ========================================================
|
|
dnl = Use Electric Fence
|
|
dnl ========================================================
|
|
MOZ_ARG_ENABLE_BOOL(efence,
|
|
[ --enable-efence Link with Electric Fence],
|
|
_ENABLE_EFENCE=1,
|
|
_ENABLE_EFENCE= )
|
|
if test -n "$_ENABLE_EFENCE"; then
|
|
AC_CHECK_LIB(efence,malloc)
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl jprof
|
|
dnl ========================================================
|
|
MOZ_ARG_ENABLE_BOOL(jprof,
|
|
[ --enable-jprof Enable jprof profiling tool (needs mozilla/tools/jprof)],
|
|
MOZ_JPROF=1,
|
|
MOZ_JPROF= )
|
|
if test -n "$MOZ_JPROF"; then
|
|
AC_DEFINE(MOZ_JPROF)
|
|
fi
|
|
|
|
|
|
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-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 = --enable-old-abi-compat-wrappers
|
|
dnl ========================================================
|
|
dnl on x86 linux, the current builds of some popular plugins (notably
|
|
dnl flashplayer and real) expect a few builtin symbols from libgcc
|
|
dnl which were available in some older versions of gcc. However,
|
|
dnl they're _NOT_ available in newer versions of gcc (eg 3.1), so if
|
|
dnl we want those plugin to work with a gcc-3.1 built binary, we need
|
|
dnl to provide these symbols. MOZ_ENABLE_OLD_ABI_COMPAT_WRAPPERS defaults
|
|
dnl to true on x86 linux, and false everywhere else.
|
|
dnl
|
|
|
|
MOZ_ARG_ENABLE_BOOL(old-abi-compat-wrappers,
|
|
[ --enable-old-abi-compat-wrappers
|
|
Support old GCC ABI symbols to ease the pain
|
|
of the linux compiler change],
|
|
MOZ_ENABLE_OLD_ABI_COMPAT_WRAPPERS=1,
|
|
MOZ_ENABLE_OLD_ABI_COMPAT_WRAPPERS= )
|
|
if test "$COMPILE_ENVIRONMENT"; then
|
|
if test "$MOZ_ENABLE_OLD_ABI_COMPAT_WRAPPERS"; then
|
|
AC_LANG_SAVE
|
|
AC_LANG_CPLUSPLUS
|
|
AC_CHECK_FUNCS(__builtin_vec_new __builtin_vec_delete __builtin_new __builtin_delete __pure_virtual)
|
|
AC_LANG_RESTORE
|
|
AC_DEFINE(MOZ_ENABLE_OLD_ABI_COMPAT_WRAPPERS)
|
|
fi
|
|
fi # COMPILE_ENVIRONMENT
|
|
|
|
dnl ========================================================
|
|
dnl = --enable-prebinding
|
|
dnl ========================================================
|
|
MOZ_ARG_ENABLE_BOOL(prebinding,
|
|
[ --enable-prebinding Enable prebinding (Mac OS X only)],
|
|
USE_PREBINDING=1,
|
|
USE_PREBINDING= )
|
|
|
|
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 Turn on reflow counting
|
|
dnl ========================================================
|
|
MOZ_ARG_ENABLE_BOOL(reflow-perf,
|
|
[ --enable-reflow-perf Enable reflow performance tracing],
|
|
MOZ_REFLOW_PERF=1,
|
|
MOZ_REFLOW_PERF= )
|
|
if test -n "$MOZ_REFLOW_PREF"; then
|
|
AC_DEFINE(MOZ_REFLOW_PREF)
|
|
fi
|
|
AC_SUBST(MOZ_REFLOW_PERF)
|
|
|
|
dnl ========================================================
|
|
dnl Enable performance metrics.
|
|
dnl ========================================================
|
|
MOZ_ARG_ENABLE_BOOL(perf-metrics,
|
|
[ --enable-perf-metrics Enable performance metrics],
|
|
MOZ_PERF_METRICS=1,
|
|
MOZ_PERF_METRICS= )
|
|
if test -n "$MOZ_PERF_METRICS"; then
|
|
AC_DEFINE(MOZ_PERF_METRICS)
|
|
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 $srcdir/tools/codesighs; then
|
|
MOZ_MAPINFO=1
|
|
else
|
|
AC_MSG_ERROR([Codesighs directory $srcdir/tools/codesighs required.])
|
|
fi
|
|
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 = Add support for Eazel profiler
|
|
dnl ========================================================
|
|
MOZ_ARG_ENABLE_BOOL(eazel-profiler-support,
|
|
[ --enable-eazel-profiler-support
|
|
Enable Corel/Eazel profiler support],
|
|
ENABLE_EAZEL_PROFILER=1,
|
|
ENABLE_EAZEL_PROFILER= )
|
|
if test -n "$ENABLE_EAZEL_PROFILER"; then
|
|
AC_DEFINE(ENABLE_EAZEL_PROFILER)
|
|
USE_ELF_DYNSTR_GC=
|
|
MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS=
|
|
EAZEL_PROFILER_CFLAGS="-g -O -gdwarf-2 -finstrument-functions -D__NO_STRING_INLINES -D__NO_MATH_INLINES"
|
|
EAZEL_PROFILER_LIBS="-lprofiler -lpthread"
|
|
fi
|
|
|
|
MOZ_ARG_ENABLE_STRING(profile-modules,
|
|
[ --enable-profile-modules
|
|
Enable/disable profiling for specific modules],
|
|
[ MOZ_PROFILE_MODULES=`echo $enableval| sed 's/,/ /g'` ] )
|
|
|
|
MOZ_ARG_ENABLE_BOOL(insure,
|
|
[ --enable-insure Enable insure++ instrumentation (linux only)],
|
|
_ENABLE_INSURE=1,
|
|
_ENABLE_INSURE= )
|
|
if test -n "$_ENABLE_INSURE"; then
|
|
MOZ_INSURE="insure"
|
|
MOZ_INSURIFYING=1
|
|
MOZ_INSURE_DIRS="."
|
|
MOZ_INSURE_EXCLUDE_DIRS="config"
|
|
fi
|
|
|
|
MOZ_ARG_WITH_STRING(insure-dirs,
|
|
[ --with-insure-dirs=DIRS
|
|
Dirs to instrument with insure ],
|
|
MOZ_INSURE_DIRS=$withval )
|
|
|
|
MOZ_ARG_WITH_STRING(insure-exclude-dirs,
|
|
[ --with-insure-exclude-dirs=DIRS
|
|
Dirs to not instrument with insure ],
|
|
MOZ_INSURE_EXCLUDE_DIRS="config $withval" )
|
|
|
|
dnl ========================================================
|
|
dnl = Support for Quantify (Windows)
|
|
dnl ========================================================
|
|
MOZ_ARG_ENABLE_BOOL(quantify,
|
|
[ --enable-quantify Enable Quantify support (Windows only) ],
|
|
MOZ_QUANTIFY=1,
|
|
MOZ_QUANTIFY= )
|
|
|
|
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 =
|
|
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
|
|
Select FORMAT of chrome files (default=jar)],
|
|
MOZ_CHROME_FILE_FORMAT=`echo $enableval | tr A-Z a-z`)
|
|
|
|
if test -z "$MOZ_CHROME_FILE_FORMAT"; then
|
|
MOZ_CHROME_FILE_FORMAT=jar
|
|
fi
|
|
|
|
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"; then
|
|
AC_MSG_ERROR([--enable-chrome-format must be set to either jar, flat, both, or symlink])
|
|
fi
|
|
|
|
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" && test -n "$GNU_CXX" && test -n "$GNU_AS"; then
|
|
echo '#include <stdio.h>' > 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 | ${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 <stdio.h> ],
|
|
[printf("Hello World\n");],
|
|
[_res_gcc_pipe="yes"],
|
|
[_res_gcc_pipe="no"] )
|
|
CFLAGS=$_SAVE_CFLAGS
|
|
fi
|
|
if test "$_res_as_stdin" = "yes" && test "$_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 pass -Wno-long-long to the compiler
|
|
MOZ_ARG_ENABLE_BOOL(long-long-warning,
|
|
[ --enable-long-long-warning
|
|
Warn about use of non-ANSI long long type],
|
|
_IGNORE_LONG_LONG_WARNINGS=,
|
|
_IGNORE_LONG_LONG_WARNINGS=1)
|
|
|
|
if test "$_IGNORE_LONG_LONG_WARNINGS"; then
|
|
_SAVE_CFLAGS="$CFLAGS"
|
|
CFLAGS="$CFLAGS ${_COMPILER_PREFIX}-Wno-long-long"
|
|
AC_MSG_CHECKING([whether compiler supports -Wno-long-long])
|
|
AC_TRY_COMPILE([], [return(0);],
|
|
[ _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} ${_COMPILER_PREFIX}-Wno-long-long"
|
|
_WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} ${_COMPILER_PREFIX}-Wno-long-long"
|
|
result="yes" ], result="no")
|
|
AC_MSG_RESULT([$result])
|
|
CFLAGS="$_SAVE_CFLAGS"
|
|
fi
|
|
|
|
dnl Test for profiling options
|
|
dnl Under gcc 3.3, use -fprofile-arcs/-fbranch-probabilities
|
|
dnl Under gcc 3.4+, use -fprofile-generate/-fprofile-use
|
|
|
|
_SAVE_CFLAGS="$CFLAGS"
|
|
CFLAGS="$CFLAGS -fprofile-generate"
|
|
|
|
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_USE_CFLAGS="-fprofile-use"
|
|
else
|
|
CFLAGS="$_SAVE_CFLAGS -fprofile-arcs"
|
|
AC_MSG_CHECKING([whether C compiler supports -fprofile-arcs])
|
|
AC_TRY_COMPILE([], [return 0;],
|
|
[ PROFILE_GEN_CFLAGS="-fprofile-arcs"
|
|
result="yes" ], result="no")
|
|
AC_MSG_RESULT([$result])
|
|
if test $result = "yes"; then
|
|
PROFILE_USE_CFLAGS="-fbranch-probabilities"
|
|
fi
|
|
fi
|
|
|
|
CFLAGS="$_SAVE_CFLAGS"
|
|
|
|
AC_SUBST(PROFILE_GEN_CFLAGS)
|
|
AC_SUBST(PROFILE_USE_CFLAGS)
|
|
|
|
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 ${_WARNINGS_CXXFLAGS} ${_COMPILER_PREFIX}-pedantic"
|
|
AC_MSG_CHECKING([whether C++ compiler has -pedantic long long bug])
|
|
AC_TRY_RUN([ int main () {
|
|
if (sizeof(long long) != 8) { return 1; }
|
|
return 0; } ],
|
|
result="no", result="yes", result="maybe" )
|
|
AC_MSG_RESULT([$result])
|
|
CXXFLAGS="$_SAVE_CXXFLAGS"
|
|
|
|
case "$result" in
|
|
no)
|
|
_WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} ${_COMPILER_PREFIX}-pedantic"
|
|
_WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} ${_COMPILER_PREFIX}-pedantic"
|
|
;;
|
|
yes)
|
|
AC_MSG_ERROR([Your compiler appears to have a known bug where long long is miscompiled when using -pedantic. Reconfigure using --disable-pedantic. ])
|
|
;;
|
|
maybe)
|
|
AC_MSG_WARN([Cannot test -pedantic long long bug when cross-compiling.])
|
|
;;
|
|
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 T>
|
|
class Pointer
|
|
{
|
|
public:
|
|
T* myPtr;
|
|
};
|
|
|
|
template <class T, class U>
|
|
int operator==(const Pointer<T>& rhs, U* lhs)
|
|
{
|
|
return rhs.myPtr == lhs;
|
|
}
|
|
|
|
template <class T, class U>
|
|
int operator==(const Pointer<T>& rhs, const U* lhs)
|
|
{
|
|
return rhs.myPtr == lhs;
|
|
}
|
|
],
|
|
[
|
|
Pointer<int> 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
|
|
|
|
dnl ========================================================
|
|
dnl C++ rtti
|
|
dnl Should be smarter and check that the compiler does indeed have rtti
|
|
dnl ========================================================
|
|
MOZ_ARG_ENABLE_BOOL(cpp-rtti,
|
|
[ --enable-cpp-rtti Enable C++ RTTI ],
|
|
[ _MOZ_USE_RTTI=1 ],
|
|
[ _MOZ_USE_RTTI= ])
|
|
|
|
if test "$_MOZ_USE_RTTI"; then
|
|
_MOZ_RTTI_FLAGS=$_MOZ_RTTI_FLAGS_ON
|
|
else
|
|
_MOZ_RTTI_FLAGS=$_MOZ_RTTI_FLAGS_OFF
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl C++ exceptions (g++/egcs only - for now)
|
|
dnl Should be smarter and check that the compiler does indeed have exceptions
|
|
dnl ========================================================
|
|
MOZ_ARG_ENABLE_BOOL(cpp-exceptions,
|
|
[ --enable-cpp-exceptions Enable C++ exceptions ],
|
|
[ _MOZ_CPP_EXCEPTIONS=1 ],
|
|
[ _MOZ_CPP_EXCEPTIONS= ])
|
|
|
|
if test "$_MOZ_CPP_EXCEPTIONS"; then
|
|
_MOZ_EXCEPTIONS_FLAGS=$_MOZ_EXCEPTIONS_FLAGS_ON
|
|
else
|
|
_MOZ_EXCEPTIONS_FLAGS=$_MOZ_EXCEPTIONS_FLAGS_OFF
|
|
fi
|
|
|
|
# Irix & OSF native compilers do not like exception declarations
|
|
# when exceptions are disabled
|
|
if test -n "$MIPSPRO_CXX" -o -n "$COMPAQ_CXX" -o -n "$VACPP"; then
|
|
AC_DEFINE(CPP_THROW_NEW, [])
|
|
else
|
|
AC_DEFINE(CPP_THROW_NEW, [throw()])
|
|
fi
|
|
AC_LANG_C
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = Build depencency options
|
|
dnl =
|
|
dnl ========================================================
|
|
MOZ_ARG_HEADER(Build dependencies)
|
|
|
|
dnl ========================================================
|
|
dnl = Do not auto generate dependency info
|
|
dnl ========================================================
|
|
MOZ_AUTO_DEPS=1
|
|
MOZ_ARG_DISABLE_BOOL(auto-deps,
|
|
[ --disable-auto-deps Do not automatically generate dependency info],
|
|
MOZ_AUTO_DEPS=,
|
|
MOZ_AUTO_DEPS=1)
|
|
|
|
if test -n "$MOZ_AUTO_DEPS"; then
|
|
dnl ========================================================
|
|
dnl = Use mkdepend instead of $CC -MD for dependency generation
|
|
dnl ========================================================
|
|
_cpp_md_flag=
|
|
MOZ_ARG_DISABLE_BOOL(md,
|
|
[ --disable-md Do not use compiler-based dependencies ],
|
|
[_cpp_md_flag=],
|
|
[_cpp_md_flag=1],
|
|
[dnl Default is to turn on -MD if using GNU-compatible compilers
|
|
if test "$GNU_CC" -a "$GNU_CXX" -a "$OS_ARCH" != "WINNT" -a "$OS_ARCH" != "WINCE"; then
|
|
_cpp_md_flag=1
|
|
fi])
|
|
if test "$_cpp_md_flag"; then
|
|
COMPILER_DEPEND=1
|
|
if test "$OS_ARCH" = "OpenVMS"; then
|
|
_DEPEND_CFLAGS='$(subst =, ,$(filter-out %/.pp,-MM=-MD=-MF=$(MDDEPDIR)/$(*F).pp))'
|
|
else
|
|
_DEPEND_CFLAGS='$(filter-out %/.pp,-Wp,-MD,$(MDDEPDIR)/$(*F).pp)'
|
|
fi
|
|
else
|
|
COMPILER_DEPEND=
|
|
_USE_CPP_INCLUDE_FLAG=
|
|
_DEFINES_CFLAGS='$(ACDEFINES) -D_MOZILLA_CONFIG_H_ -DMOZILLA_CLIENT'
|
|
_DEFINES_CXXFLAGS='$(ACDEFINES) -D_MOZILLA_CONFIG_H_ -DMOZILLA_CLIENT'
|
|
fi
|
|
fi # MOZ_AUTO_DEPS
|
|
MDDEPDIR='.deps'
|
|
AC_SUBST(MOZ_AUTO_DEPS)
|
|
AC_SUBST(COMPILER_DEPEND)
|
|
AC_SUBST(MDDEPDIR)
|
|
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = Static Build Options
|
|
dnl =
|
|
dnl ========================================================
|
|
MOZ_ARG_HEADER(Static build options)
|
|
|
|
MOZ_ARG_ENABLE_BOOL(static,
|
|
[ --enable-static Enable building of internal static libs],
|
|
BUILD_STATIC_LIBS=1,
|
|
BUILD_STATIC_LIBS=)
|
|
|
|
MOZ_ARG_ENABLE_BOOL(libxul,
|
|
[ --enable-libxul Enable building of libxul],
|
|
MOZ_ENABLE_LIBXUL=1,
|
|
MOZ_ENABLE_LIBXUL=)
|
|
|
|
if test -n "$MOZ_ENABLE_LIBXUL" -a -n "$BUILD_STATIC_LIBS"; then
|
|
AC_MSG_ERROR([--enable-libxul is not compatible with --enable-static])
|
|
fi
|
|
|
|
if test -n "$MOZ_ENABLE_LIBXUL" -a -z "$MOZ_XUL_APP"; then
|
|
AC_MSG_ERROR([--enable-libxul is only compatible with toolkit XUL applications.])
|
|
fi
|
|
|
|
if test -n "$MOZ_ENABLE_LIBXUL"; then
|
|
XPCOM_LIBS="$LIBXUL_LIBS"
|
|
AC_DEFINE(MOZ_ENABLE_LIBXUL)
|
|
else
|
|
XPCOM_LIBS="$DYNAMIC_XPCOM_LIBS"
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl = Force JS to be a static lib
|
|
dnl ========================================================
|
|
MOZ_ARG_ENABLE_BOOL(js-static-build,
|
|
[ --enable-js-static-build Force js to be a static lib],
|
|
JS_STATIC_BUILD=1,
|
|
JS_STATIC_BUILD= )
|
|
|
|
AC_SUBST(JS_STATIC_BUILD)
|
|
|
|
if test -n "$JS_STATIC_BUILD"; then
|
|
AC_DEFINE(EXPORT_JS_API)
|
|
|
|
if test -z "$BUILD_STATIC_LIBS"; then
|
|
AC_MSG_ERROR([--enable-js-static-build is only compatible with --enable-static])
|
|
fi
|
|
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = Standalone module options
|
|
dnl =
|
|
dnl ========================================================
|
|
MOZ_ARG_HEADER(Standalone module options (Not for building Mozilla))
|
|
|
|
dnl ========================================================
|
|
dnl = Only selectively build modules
|
|
dnl ========================================================
|
|
MOZ_ARG_ENABLE_STRING(standalone-modules,
|
|
[ --enable-standalone-modules=mod1[,mod2]
|
|
Enable standalone build of specific modules],
|
|
[ BUILD_MODULES=`echo $enableval | sed 's/,/ /g'` ] )
|
|
|
|
dnl Disable ldap if LDAP is not building all of Mozilla
|
|
dnl and ldap isn't in the standalone list
|
|
if test "$BUILD_MODULES" != "all" &&
|
|
test `echo "$BUILD_MODULES" | grep -c ldap` = 0 &&
|
|
test "$enable_ldap" != "yes"; then
|
|
MOZ_LDAP_XPCOM=
|
|
fi
|
|
|
|
dnl Check for GLib and libIDL.
|
|
dnl ========================================================
|
|
case "$target_os" in
|
|
msvc*|mks*|cygwin*|mingw*|wince*)
|
|
SKIP_IDL_CHECK="yes"
|
|
;;
|
|
*)
|
|
SKIP_IDL_CHECK="no"
|
|
;;
|
|
esac
|
|
|
|
if test -z "$COMPILE_ENVIRONMENT"; then
|
|
SKIP_IDL_CHECK="yes"
|
|
fi
|
|
|
|
dnl = Allow users to disable libIDL checking for standalone modules
|
|
MOZ_ARG_WITHOUT_BOOL(libIDL,
|
|
[ --without-libIDL Skip check for libIDL (standalone modules only)],
|
|
SKIP_IDL_CHECK="yes")
|
|
|
|
if test "$SKIP_IDL_CHECK" = "no"
|
|
then
|
|
_LIBIDL_FOUND=
|
|
if test "$MACOS_SDK_DIR"; then
|
|
dnl xpidl, and therefore libIDL, is only needed on the build host.
|
|
dnl Don't build it against the SDK, as that causes problems.
|
|
_MACSAVE_CFLAGS="$CFLAGS"
|
|
_MACSAVE_LIBS="$LIBS"
|
|
_MACSAVE_LDFLAGS="$LDFLAGS"
|
|
_MACSAVE_NEXT_ROOT="$NEXT_ROOT"
|
|
changequote(,)
|
|
CFLAGS=`echo $CFLAGS|sed -E -e "s%((-I|-isystem )${MACOS_SDK_DIR}/usr/(include|lib/gcc)[^ ]*)|-F${MACOS_SDK_DIR}(/System)?/Library/Frameworks[^ ]*|-nostdinc[^ ]*|-isysroot ${MACOS_SDK_DIR}%%g"`
|
|
LIBS=`echo $LIBS|sed -e "s?-L${MACOS_SDK_DIR}/usr/lib[^ ]*??g"`
|
|
LDFLAGS=`echo $LDFLAGS|sed -e "s?-Wl,-syslibroot,${MACOS_SDK_DIR}??g"`
|
|
changequote([,])
|
|
unset NEXT_ROOT
|
|
fi
|
|
|
|
if test "$MOZ_ENABLE_GTK2"; then
|
|
PKG_CHECK_MODULES(LIBIDL, libIDL-2.0 >= 0.8.0 glib-2.0 gobject-2.0, _LIBIDL_FOUND=1,_LIBIDL_FOUND=)
|
|
fi
|
|
if test "$MOZ_ENABLE_GTK"; then
|
|
AM_PATH_LIBIDL($LIBIDL_VERSION,_LIBIDL_FOUND=1)
|
|
fi
|
|
dnl if no gtk/libIDL1 or gtk2/libIDL2 combination was found, fall back
|
|
dnl to either libIDL1 or libIDL2.
|
|
if test -z "$_LIBIDL_FOUND"; then
|
|
AM_PATH_LIBIDL($LIBIDL_VERSION,_LIBIDL_FOUND=1)
|
|
if test -z "$_LIBIDL_FOUND"; then
|
|
PKG_CHECK_MODULES(LIBIDL, libIDL-2.0 >= 0.8.0,_LIBIDL_FOUND=1)
|
|
fi
|
|
fi
|
|
dnl
|
|
dnl If we don't have a libIDL config program & not cross-compiling,
|
|
dnl look for orbit-config instead.
|
|
dnl
|
|
if test -z "$_LIBIDL_FOUND" && test -z "$CROSS_COMPILE"; then
|
|
AC_PATH_PROGS(ORBIT_CONFIG, $ORBIT_CONFIG orbit-config)
|
|
if test -n "$ORBIT_CONFIG"; then
|
|
AC_MSG_CHECKING([for ORBit libIDL usability])
|
|
_ORBIT_CFLAGS=`${ORBIT_CONFIG} client --cflags`
|
|
_ORBIT_LIBS=`${ORBIT_CONFIG} client --libs`
|
|
_ORBIT_INC_PATH=`${PERL} -e '{ for $f (@ARGV) { print "$f " if ($f =~ m/^-I/); } }' -- ${_ORBIT_CFLAGS}`
|
|
_ORBIT_LIB_PATH=`${PERL} -e '{ for $f (@ARGV) { print "$f " if ($f =~ m/^-L/); } }' -- ${_ORBIT_LIBS}`
|
|
LIBIDL_CFLAGS="$_ORBIT_INC_PATH"
|
|
LIBIDL_LIBS="$_ORBIT_LIB_PATH -lIDL -lglib"
|
|
LIBIDL_CONFIG=
|
|
_SAVE_CFLAGS="$CFLAGS"
|
|
_SAVE_LIBS="$LIBS"
|
|
CFLAGS="$LIBIDL_CFLAGS $CFLAGS"
|
|
LIBS="$LIBIDL_LIBS $LIBS"
|
|
AC_TRY_RUN([
|
|
#include <stdlib.h>
|
|
#include <libIDL/IDL.h>
|
|
int main() {
|
|
char *s;
|
|
s=strdup(IDL_get_libver_string());
|
|
if(s==NULL) {
|
|
exit(1);
|
|
}
|
|
exit(0);
|
|
}
|
|
], [_LIBIDL_FOUND=1
|
|
result="yes"],
|
|
[LIBIDL_CFLAGS=
|
|
LIBIDL_LIBS=
|
|
result="no"],
|
|
[_LIBIDL_FOUND=1
|
|
result="maybe"] )
|
|
AC_MSG_RESULT($result)
|
|
CFLAGS="$_SAVE_CFLAGS"
|
|
LIBS="$_SAVE_LIBS"
|
|
fi
|
|
fi
|
|
if test -z "$_LIBIDL_FOUND"; then
|
|
AC_MSG_ERROR([libIDL not found.
|
|
libIDL $LIBIDL_VERSION or higher is required.])
|
|
fi
|
|
if test "$MACOS_SDK_DIR"; then
|
|
CFLAGS="$_MACSAVE_CFLAGS"
|
|
LIBS="$_MACSAVE_LIBS"
|
|
LDFLAGS="$_MACSAVE_LDFLAGS"
|
|
if test -n "$_MACSAVE_NEXT_ROOT" ; then
|
|
export NEXT_ROOT="$_MACSAVE_NEXT_ROOT"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if test -n "$CROSS_COMPILE"; then
|
|
if test -z "$HOST_LIBIDL_CONFIG"; then
|
|
HOST_LIBIDL_CONFIG="$LIBIDL_CONFIG"
|
|
fi
|
|
if test -n "$HOST_LIBIDL_CONFIG" && test "$HOST_LIBIDL_CONFIG" != "no"; then
|
|
HOST_LIBIDL_CFLAGS=`${HOST_LIBIDL_CONFIG} --cflags`
|
|
HOST_LIBIDL_LIBS=`${HOST_LIBIDL_CONFIG} --libs`
|
|
else
|
|
HOST_LIBIDL_CFLAGS="$LIBIDL_CFLAGS"
|
|
HOST_LIBIDL_LIBS="$LIBIDL_LIBS"
|
|
fi
|
|
fi
|
|
|
|
if test -z "$SKIP_PATH_CHECKS"; then
|
|
if test -z "${GLIB_CFLAGS}" || test -z "${GLIB_LIBS}" ; then
|
|
if test "$MOZ_ENABLE_GTK2"; then
|
|
PKG_CHECK_MODULES(GLIB, glib-2.0 >= 1.3.7 gobject-2.0)
|
|
else
|
|
AM_PATH_GLIB(${GLIB_VERSION})
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if test -z "${GLIB_GMODULE_LIBS}" -a -n "${GLIB_CONFIG}"; then
|
|
GLIB_GMODULE_LIBS=`$GLIB_CONFIG gmodule --libs`
|
|
fi
|
|
|
|
AC_SUBST(LIBIDL_CFLAGS)
|
|
AC_SUBST(LIBIDL_LIBS)
|
|
AC_SUBST(STATIC_LIBIDL)
|
|
AC_SUBST(GLIB_CFLAGS)
|
|
AC_SUBST(GLIB_LIBS)
|
|
AC_SUBST(GLIB_GMODULE_LIBS)
|
|
AC_SUBST(HOST_LIBIDL_CONFIG)
|
|
AC_SUBST(HOST_LIBIDL_CFLAGS)
|
|
AC_SUBST(HOST_LIBIDL_LIBS)
|
|
|
|
dnl ========================================================
|
|
dnl Check for libart
|
|
dnl ========================================================
|
|
if test "$MOZ_SVG_RENDERER_LIBART"; then
|
|
if test ! -f $topsrcdir/other-licenses/libart_lgpl/Makefile.in; then
|
|
AC_MSG_ERROR([You must check out the mozilla version of libart. Use
|
|
mk_add_options MOZ_CO_MODULE=mozilla/other-licenses/libart_lgpl])
|
|
fi
|
|
|
|
dnl libart's configure hasn't been run yet, but we know what the
|
|
dnl answer should be anyway
|
|
MOZ_LIBART_CFLAGS='-I${DIST}/include/libart_lgpl'
|
|
case "$target_os" in
|
|
msvc*|mks*|cygwin*|mingw*|wince*)
|
|
MOZ_LIBART_LIBS='$(LIBXUL_DIST)/lib/$(LIB_PREFIX)moz_art_lgpl.$(IMPORT_LIB_SUFFIX)'
|
|
;;
|
|
os2*)
|
|
MOZ_LIBART_LIBS='-lmoz_art -lm'
|
|
;;
|
|
beos*)
|
|
MOZ_LIBART_LIBS='-lmoz_art_lgpl -lroot -lbe'
|
|
;;
|
|
*)
|
|
MOZ_LIBART_LIBS='-lmoz_art_lgpl -lm'
|
|
;;
|
|
esac
|
|
AC_FUNC_ALLOCA
|
|
fi
|
|
|
|
AC_SUBST(MOZ_LIBART_CFLAGS)
|
|
AC_SUBST(MOZ_LIBART_LIBS)
|
|
|
|
dnl ========================================================
|
|
dnl Check for cairo
|
|
dnl ========================================================
|
|
if test "$MOZ_SVG" -o "$MOZ_ENABLE_CANVAS" -o "$MOZ_ENABLE_CAIRO_GFX" ; then
|
|
MOZ_CAIRO_CFLAGS='-I$(LIBXUL_DIST)/include/cairo'
|
|
|
|
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 )
|
|
|
|
if test "$MOZ_TREE_CAIRO"; then
|
|
# Check for headers defining standard int types.
|
|
AC_CHECK_HEADERS(stdint.h inttypes.h sys/int_types.h)
|
|
|
|
# For now we assume that we will have a uint64_t available through
|
|
# one of the above headers or mozstdint.h.
|
|
AC_DEFINE(HAVE_UINT64_T)
|
|
|
|
# Define macros for cairo-features.h
|
|
if test "$MOZ_X11"; then
|
|
XLIB_SURFACE_FEATURE="#define CAIRO_HAS_XLIB_SURFACE 1"
|
|
PS_SURFACE_FEATURE="#define CAIRO_HAS_PS_SURFACE 1"
|
|
PDF_SURFACE_FEATURE="#define CAIRO_HAS_PDF_SURFACE 1"
|
|
FT_FONT_FEATURE="#define CAIRO_HAS_FT_FONT 1"
|
|
MOZ_ENABLE_CAIRO_FT=1
|
|
CAIRO_FT_CFLAGS="$FT2_CFLAGS"
|
|
fi
|
|
if test "$MOZ_WIDGET_TOOLKIT" = "mac" -o "$MOZ_WIDGET_TOOLKIT" = "cocoa"; then
|
|
QUARTZ_SURFACE_FEATURE="#define CAIRO_HAS_QUARTZ_SURFACE 1"
|
|
QUARTZGL_SURFACE_FEATURE="#define CAIRO_HAS_QUARTZGL_SURFACE 1"
|
|
ATSUI_FONT_FEATURE="#define CAIRO_HAS_ATSUI_FONT 1"
|
|
fi
|
|
if test "$MOZ_WIDGET_TOOLKIT" = "windows"; then
|
|
WIN32_SURFACE_FEATURE="#define CAIRO_HAS_WIN32_SURFACE 1"
|
|
WIN32_FONT_FEATURE="#define CAIRO_HAS_WIN32_FONT 1"
|
|
fi
|
|
if test "$MOZ_WIDGET_TOOLKIT" = "os2"; then
|
|
OS2_SURFACE_FEATURE="#define CAIRO_HAS_OS2_SURFACE 1"
|
|
FT_FONT_FEATURE="#define CAIRO_HAS_FT_FONT 1"
|
|
MOZ_ENABLE_CAIRO_FT=1
|
|
CAIRO_FT_CFLAGS="-I${FREETYPE2}/include -I${FONTCONFIG2}/include"
|
|
CAIRO_FT_LIBS="${FREETYPE2}/lib/freetype.lib ${FONTCONFIG2}/lib/fontcfg.lib"
|
|
fi
|
|
if test "$MOZ_ENABLE_GLITZ"; then
|
|
GLITZ_SURFACE_FEATURE="#define CAIRO_HAS_GLITZ_SURFACE 1"
|
|
fi
|
|
if test "$MOZ_WIDGET_TOOLKIT" = "beos"; then
|
|
PKG_CHECK_MODULES(CAIRO_FT, fontconfig freetype2)
|
|
BEOS_SURFACE_FEATURE="#define CAIRO_HAS_BEOS_SURFACE 1"
|
|
FT_FONT_FEATURE="#define CAIRO_HAS_FT_FONT 1"
|
|
MOZ_ENABLE_CAIRO_FT=1
|
|
fi
|
|
AC_SUBST(MOZ_ENABLE_CAIRO_FT)
|
|
AC_SUBST(CAIRO_FT_CFLAGS)
|
|
|
|
if test "$MOZ_DEBUG"; then
|
|
SANITY_CHECKING_FEATURE="#define CAIRO_DO_SANITY_CHECKING 1"
|
|
else
|
|
SANITY_CHECKING_FEATURE="#undef CAIRO_DO_SANITY_CHECKING"
|
|
fi
|
|
|
|
PNG_FUNCTIONS_FEATURE="#define CAIRO_HAS_PNG_FUNCTIONS 1"
|
|
|
|
AC_SUBST(PS_SURFACE_FEATURE)
|
|
AC_SUBST(PDF_SURFACE_FEATURE)
|
|
AC_SUBST(SVG_SURFACE_FEATURE)
|
|
AC_SUBST(XLIB_SURFACE_FEATURE)
|
|
AC_SUBST(QUARTZ_SURFACE_FEATURE)
|
|
AC_SUBST(QUARTZGL_SURFACE_FEATURE)
|
|
AC_SUBST(XCB_SURFACE_FEATURE)
|
|
AC_SUBST(WIN32_SURFACE_FEATURE)
|
|
AC_SUBST(OS2_SURFACE_FEATURE)
|
|
AC_SUBST(BEOS_SURFACE_FEATURE)
|
|
AC_SUBST(GLITZ_SURFACE_FEATURE)
|
|
AC_SUBST(DIRECTFB_SURFACE_FEATURE)
|
|
AC_SUBST(FT_FONT_FEATURE)
|
|
AC_SUBST(WIN32_FONT_FEATURE)
|
|
AC_SUBST(ATSUI_FONT_FEATURE)
|
|
AC_SUBST(PNG_FUNCTIONS_FEATURE)
|
|
|
|
if test "$_WIN32_MSVC"; then
|
|
MOZ_CAIRO_LIBS='$(LIBXUL_DIST)/lib/mozcairo.lib $(LIBXUL_DIST)/lib/mozlibpixman.lib'
|
|
if test "$MOZ_ENABLE_GLITZ"; then
|
|
MOZ_CAIRO_LIBS="$MOZ_CAIRO_LIBS $(LIBXUL_DIST)/lib/mozglitz.lib $(LIBXUL_DIST)/lib/mozglitzwgl.lib"
|
|
fi
|
|
else
|
|
MOZ_CAIRO_LIBS='-L$(LIBXUL_DIST)/lib'" -lmozcairo -lmozlibpixman $CAIRO_FT_LIBS"
|
|
|
|
if test "$MOZ_X11"; then
|
|
MOZ_CAIRO_LIBS="$MOZ_CAIRO_LIBS $XLDFLAGS -lXrender -lfreetype -lfontconfig"
|
|
fi
|
|
|
|
if test "$MOZ_ENABLE_GLITZ"; then
|
|
MOZ_CAIRO_LIBS="$MOZ_CAIRO_LIBS -lmozglitz"
|
|
if test "$MOZ_X11"; then
|
|
MOZ_CAIRO_LIBS="$MOZ_CAIRO_LIBS -lmozglitzglx -lGL"
|
|
fi
|
|
if test "$MOZ_WIDGET_TOOLKIT" = "windows"; then
|
|
MOZ_CAIRO_LIBS="$MOZ_CAIRO_LIBS -lmozglitzwgl"
|
|
fi
|
|
fi
|
|
|
|
if test "$MOZ_WIDGET_TOOLKIT" = "windows"; then
|
|
MOZ_CAIRO_LIBS="$MOZ_CAIRO_LIBS -lgdi32"
|
|
fi
|
|
fi
|
|
else
|
|
PKG_CHECK_MODULES(CAIRO, cairo >= $CAIRO_VERSION freetype2 fontconfig)
|
|
MOZ_CAIRO_CFLAGS=$CAIRO_CFLAGS
|
|
MOZ_CAIRO_LIBS=$CAIRO_LIBS
|
|
fi
|
|
fi
|
|
|
|
AC_SUBST(MOZ_TREE_CAIRO)
|
|
AC_SUBST(MOZ_CAIRO_CFLAGS)
|
|
AC_SUBST(MOZ_CAIRO_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)
|
|
else
|
|
dnl remove extensions that require XUL
|
|
MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's/inspector//' -e 's/venkman//' -e 's/irc//' -e 's/tasks//'`
|
|
fi
|
|
|
|
AC_SUBST(MOZ_XUL)
|
|
|
|
dnl ========================================================
|
|
dnl Two ways to enable Python support:
|
|
dnl --enable-extensions=python # select all available.
|
|
dnl (MOZ_PYTHON_EXTENSIONS contains the list of extensions)
|
|
dnl or:
|
|
dnl --enable-extensions=python/xpcom,... # select individual ones
|
|
dnl
|
|
dnl If either is used, we locate the Python to use.
|
|
dnl ========================================================
|
|
dnl
|
|
dnl If 'python' appears anywhere in the extensions list, go lookin'...
|
|
if test `echo "$MOZ_EXTENSIONS" | grep -c python` -ne 0; then
|
|
dnl Allow PYTHON to point to the Python interpreter to use
|
|
dnl (note that it must be the python executable - which we
|
|
dnl run to locate the relevant paths etc)
|
|
dnl If not set, we use whatever Python we can find.
|
|
if test -z "$PYTHON"; then
|
|
AC_PATH_PROG(PYTHON, python, :)
|
|
fi
|
|
if test "$OS_ARCH" = "WINNT"; then
|
|
dnl Convert to cygwin style "mixed" (ie, "c:/path/file.exe")
|
|
PYTHON=`cygpath -t mixed $PYTHON`
|
|
fi
|
|
if test ! -x "$PYTHON"; then
|
|
AC_MSG_ERROR([Could not find Python - please adjust your PATH, or set PYTHON.])
|
|
fi
|
|
MOZ_PYTHON=$PYTHON
|
|
dnl Ask Python what its version number is
|
|
changequote(,)
|
|
MOZ_PYTHON_VER=`$PYTHON -c "import sys;print '%d%d' % sys.version_info[0:2]"`
|
|
MOZ_PYTHON_VER_DOTTED=`$PYTHON -c "import sys;print '%d.%d' % sys.version_info[0:2]"`
|
|
changequote([,])
|
|
dnl Ask for the Python "prefix" (ie, home/source dir)
|
|
MOZ_PYTHON_PREFIX=`$PYTHON -c "import sys; print sys.prefix"`
|
|
dnl Setup the include and library directories.
|
|
if test "$OS_ARCH" = "WINNT"; then
|
|
MOZ_PYTHON_PREFIX=`cygpath -t mixed $MOZ_PYTHON_PREFIX`
|
|
dnl Source trees have "include" and "PC" for .h, and "PCbuild" for .lib
|
|
dnl Binary trees have "include" for .h, and "libs" for .lib
|
|
dnl We add 'em both - along with quotes, to handle spaces.
|
|
MOZ_PYTHON_DLL_SUFFIX=.pyd
|
|
MOZ_PYTHON_INCLUDES="\"-I$MOZ_PYTHON_PREFIX/include\" \"-I$MOZ_PYTHON_PREFIX/PC\""
|
|
MOZ_PYTHON_LIBS="\"/libpath:$MOZ_PYTHON_PREFIX/PCBuild\" \"/libpath:$MOZ_PYTHON_PREFIX/libs\""
|
|
else
|
|
dnl Non-Windows include and libs
|
|
MOZ_PYTHON_DLL_SUFFIX=$DLL_SUFFIX
|
|
MOZ_PYTHON_INCLUDES="-I$MOZ_PYTHON_PREFIX/include/python$MOZ_PYTHON_VER_DOTTED"
|
|
dnl Check for dynamic Python lib
|
|
dnl - A static Python is no good - multiple dynamic libraries (xpcom
|
|
dnl - core, xpcom loader, pydom etc) all need to share Python.
|
|
dnl - Python 2.3's std --enable-shared configure option will
|
|
dnl create a libpython2.3.so.1.0. We should first try this
|
|
dnl dotted versioned .so file because this is the one that
|
|
dnl the PyXPCOM build mechanics tries to link to.
|
|
dnl XXX Should find a better way than hardcoding "1.0".
|
|
dnl - Python developement tree dir layouts are NOT allowed here
|
|
dnl because the PyXPCOM build just dies on it later anyway.
|
|
dnl - Fixes to the above by Python/*nix knowledgable people welcome!
|
|
if test -f "$MOZ_PYTHON_PREFIX/lib/libpython$MOZ_PYTHON_VER_DOTTED.so.1.0"; then
|
|
MOZ_PYTHON_LIBS="-L$MOZ_PYTHON_PREFIX/lib -lpython$MOZ_PYTHON_VER_DOTTED"
|
|
elif test -f "$MOZ_PYTHON_PREFIX/lib/libpython$MOZ_PYTHON_VER_DOTTED.so"; then
|
|
MOZ_PYTHON_LIBS="-L$MOZ_PYTHON_PREFIX/lib -lpython$MOZ_PYTHON_VER_DOTTED"
|
|
elif test -f "$MOZ_PYTHON_PREFIX/libpython$MOZ_PYTHON_VER_DOTTED.so"; then
|
|
dnl Don't Python development tree directory layout.
|
|
MOZ_PYTHON_LIBS="-L$MOZ_PYTHON_PREFIX -lpython$MOZ_PYTHON_VER_DOTTED"
|
|
AC_MSG_ERROR([The Python at $MOZ_PYTHON_PREFIX looks like a dev tree. The PyXPCOM build cannot handle this yet. You must 'make install' Python and use the installed tree.])
|
|
elif test "$OS_ARCH" = "Darwin"; then
|
|
dnl We do Darwin last, so if a custom non-framework build of
|
|
dnl python is used on OSX, then it will be picked up first by
|
|
dnl the logic above.
|
|
MOZ_PYTHON_LIBS="-framework Python"
|
|
else
|
|
AC_MSG_ERROR([Could not find build shared libraries for Python at $MOZ_PYTHON_PREFIX. This is required for PyXPCOM.])
|
|
fi
|
|
if test "$OS_ARCH" = "Linux"; then
|
|
MOZ_PYTHON_LIBS="$MOZ_PYTHON_LIBS -lutil"
|
|
fi
|
|
fi
|
|
dnl Handle "_d" on Windows
|
|
if test "$OS_ARCH" = "WINNT" && test -n "$MOZ_DEBUG"; then
|
|
MOZ_PYTHON_DEBUG_SUFFIX="_d"
|
|
else
|
|
MOZ_PYTHON_DEBUG_SUFFIX=
|
|
fi
|
|
AC_MSG_RESULT(Building Python extensions using python-$MOZ_PYTHON_VER_DOTTED from $MOZ_PYTHON_PREFIX)
|
|
fi
|
|
dnl Later we may allow MOZ_PYTHON_EXTENSIONS to be specified, but not necessary now.
|
|
AC_SUBST(MOZ_PYTHON_EXTENSIONS)
|
|
AC_SUBST(MOZ_PYTHON)
|
|
AC_SUBST(MOZ_PYTHON_PREFIX)
|
|
AC_SUBST(MOZ_PYTHON_INCLUDES)
|
|
AC_SUBST(MOZ_PYTHON_LIBS)
|
|
AC_SUBST(MOZ_PYTHON_VER)
|
|
AC_SUBST(MOZ_PYTHON_VER_DOTTED)
|
|
AC_SUBST(MOZ_PYTHON_DEBUG_SUFFIX)
|
|
AC_SUBST(MOZ_PYTHON_DLL_SUFFIX)
|
|
|
|
dnl ========================================================
|
|
dnl disable profile sharing
|
|
dnl ========================================================
|
|
MOZ_ARG_DISABLE_BOOL(profilesharing,
|
|
[ --disable-profilesharing Disable profile sharing],
|
|
MOZ_PROFILESHARING=,
|
|
MOZ_PROFILESHARING=1 )
|
|
if test "$MOZ_PROFILESHARING"; then
|
|
MOZ_IPCD=1
|
|
AC_DEFINE(MOZ_PROFILESHARING)
|
|
fi
|
|
|
|
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 necko configuration options
|
|
dnl ========================================================
|
|
|
|
dnl
|
|
dnl option to disable various necko protocols
|
|
dnl
|
|
MOZ_ARG_ENABLE_STRING(necko-protocols,
|
|
[ --enable-necko-protocols[={http,ftp,default,all,none}]
|
|
Enable/disable specific protocol handlers],
|
|
[ for option in `echo $enableval | sed 's/,/ /g'`; do
|
|
if test "$option" = "yes" || test "$option" = "all"; then
|
|
NECKO_PROTOCOLS="$NECKO_PROTOCOLS $NECKO_PROTOCOLS_DEFAULT"
|
|
elif test "$option" = "no" || test "$option" = "none"; then
|
|
NECKO_PROTOCOLS=""
|
|
elif test "$option" = "default"; then
|
|
NECKO_PROTOCOLS="$NECKO_PROTOCOLS $NECKO_PROTOCOLS_DEFAULT"
|
|
elif test `echo "$option" | grep -c \^-` != 0; then
|
|
option=`echo $option | sed 's/^-//'`
|
|
NECKO_PROTOCOLS=`echo "$NECKO_PROTOCOLS" | sed "s/ ${option}//"`
|
|
else
|
|
NECKO_PROTOCOLS="$NECKO_PROTOCOLS $option"
|
|
fi
|
|
done],
|
|
NECKO_PROTOCOLS="$NECKO_PROTOCOLS_DEFAULT")
|
|
dnl Remove dupes
|
|
NECKO_PROTOCOLS=`${PERL} ${srcdir}/build/unix/uniq.pl ${NECKO_PROTOCOLS}`
|
|
AC_SUBST(NECKO_PROTOCOLS)
|
|
for p in $NECKO_PROTOCOLS; do
|
|
AC_DEFINE_UNQUOTED(NECKO_PROTOCOL_$p)
|
|
done
|
|
|
|
dnl
|
|
dnl option to disable necko's disk cache
|
|
dnl
|
|
MOZ_ARG_DISABLE_BOOL(necko-disk-cache,
|
|
[ --disable-necko-disk-cache
|
|
Disable necko disk cache],
|
|
NECKO_DISK_CACHE=,
|
|
NECKO_DISK_CACHE=1)
|
|
AC_SUBST(NECKO_DISK_CACHE)
|
|
if test "$NECKO_DISK_CACHE"; then
|
|
AC_DEFINE(NECKO_DISK_CACHE)
|
|
fi
|
|
|
|
dnl
|
|
dnl option to minimize size of necko's i/o buffers
|
|
dnl
|
|
MOZ_ARG_ENABLE_BOOL(necko-small-buffers,
|
|
[ --enable-necko-small-buffers
|
|
Minimize size of necko's i/o buffers],
|
|
NECKO_SMALL_BUFFERS=1,
|
|
NECKO_SMALL_BUFFERS=)
|
|
AC_SUBST(NECKO_SMALL_BUFFERS)
|
|
if test "$NECKO_SMALL_BUFFERS"; then
|
|
AC_DEFINE(NECKO_SMALL_BUFFERS)
|
|
fi
|
|
|
|
dnl
|
|
dnl option to disable cookies
|
|
dnl
|
|
MOZ_ARG_DISABLE_BOOL(cookies,
|
|
[ --disable-cookies Disable cookie support],
|
|
NECKO_COOKIES=,
|
|
NECKO_COOKIES=1)
|
|
AC_SUBST(NECKO_COOKIES)
|
|
if test "$NECKO_COOKIES"; then
|
|
AC_DEFINE(NECKO_COOKIES)
|
|
fi
|
|
|
|
dnl NECKO_ configuration options are not global
|
|
_NON_GLOBAL_ACDEFINES="$_NON_GLOBAL_ACDEFINES NECKO_"
|
|
|
|
dnl ========================================================
|
|
dnl string api compatibility
|
|
dnl ========================================================
|
|
MOZ_ARG_DISABLE_BOOL(v1-string-abi,
|
|
[ --disable-v1-string-abi Disable binary compatibility layer for strings],
|
|
MOZ_V1_STRING_ABI=,
|
|
MOZ_V1_STRING_ABI=1)
|
|
AC_SUBST(MOZ_V1_STRING_ABI)
|
|
if test "$MOZ_V1_STRING_ABI"; then
|
|
AC_DEFINE(MOZ_V1_STRING_ABI)
|
|
fi
|
|
|
|
dnl Only build Mork if it's required
|
|
AC_SUBST(MOZ_MORK)
|
|
if test "$MOZ_MORK"; then
|
|
AC_DEFINE(MOZ_MORK)
|
|
fi
|
|
|
|
dnl Build the lightweight Mork reader if required
|
|
AC_SUBST(MOZ_MORKREADER)
|
|
if test "$MOZ_MORKREADER"; then
|
|
AC_DEFINE(MOZ_MORKREADER)
|
|
fi
|
|
|
|
dnl ========================================================
|
|
if test "$MOZ_DEBUG" || test "$NS_TRACE_MALLOC"; then
|
|
MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS=
|
|
fi
|
|
|
|
if test "$MOZ_LDAP_XPCOM"; then
|
|
LDAP_CFLAGS='-I${DIST}/public/ldap'
|
|
if test "$OS_ARCH" = "WINNT"; then
|
|
if test -n "$GNU_CC"; then
|
|
LDAP_LIBS='-L$(DIST)/lib -lnsldap32v50 -lnsldappr32v50'
|
|
else
|
|
LDAP_LIBS='$(DIST)/lib/$(LIB_PREFIX)nsldap32v50.${IMPORT_LIB_SUFFIX} $(DIST)/lib/$(LIB_PREFIX)nsldappr32v50.${IMPORT_LIB_SUFFIX}'
|
|
fi
|
|
elif test "$VACPP"; then
|
|
LDAP_LIBS='$(DIST)/lib/$(LIB_PREFIX)ldap50.${IMPORT_LIB_SUFFIX} $(DIST)/lib/$(LIB_PREFIX)prldap50.${IMPORT_LIB_SUFFIX}'
|
|
else
|
|
LDAP_LIBS='-L${DIST}/bin -L${DIST}/lib -lldap50 -llber50 -lprldap50'
|
|
fi
|
|
fi
|
|
|
|
if test "$COMPILE_ENVIRONMENT"; then
|
|
if test "$SUNCTL"; then
|
|
dnl older versions of glib do not seem to have gmodule which ctl needs
|
|
_SAVE_CFLAGS=$CFLAGS
|
|
CFLAGS="$CFLAGS $GLIB_CFLAGS"
|
|
AC_LANG_SAVE
|
|
AC_LANG_C
|
|
AC_TRY_COMPILE([#include <gmodule.h>],
|
|
[ int x = 1; x++; ],,
|
|
[AC_MSG_ERROR([Cannot build ctl without gmodule support in glib.])])
|
|
AC_LANG_RESTORE
|
|
CFLAGS=$_SAVE_CFLAGS
|
|
AC_DEFINE(SUNCTL)
|
|
fi
|
|
fi # COMPILE_ENVIRONMENT
|
|
|
|
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(USE_SHORT_LIBNAME)
|
|
AC_SUBST(IMPLIB)
|
|
AC_SUBST(FILTER)
|
|
AC_SUBST(BIN_FLAGS)
|
|
AC_SUBST(NS_USE_NATIVE)
|
|
AC_SUBST(MOZ_WIDGET_TOOLKIT)
|
|
AC_SUBST(MOZ_WIDGET_TOOLKIT_LDFLAGS)
|
|
AC_SUBST(WIDGET_DLL)
|
|
AC_SUBST(GFXWIN_DLL)
|
|
AC_SUBST(MOZ_GFX_TOOLKIT)
|
|
AC_SUBST(MOZ_GFX_TOOLKIT_LDFLAGS)
|
|
AC_SUBST(MOZ_UPDATE_XTERM)
|
|
AC_SUBST(MINIMO)
|
|
AC_SUBST(MOZ_AUTH_EXTENSION)
|
|
AC_SUBST(MOZ_MATHML)
|
|
AC_SUBST(MOZ_XTF)
|
|
AC_SUBST(MOZ_XMLEXTRAS)
|
|
AC_SUBST(MOZ_WEBSERVICES)
|
|
AC_SUBST(MOZ_PREF_EXTENSIONS)
|
|
AC_SUBST(MOZ_SVG)
|
|
AC_SUBST(MOZ_SVG_FOREIGNOBJECT)
|
|
AC_SUBST(MOZ_XSLT_STANDALONE)
|
|
AC_SUBST(MOZ_STANDALONE_BUILD)
|
|
AC_SUBST(MOZ_JS_LIBS)
|
|
AC_SUBST(MOZ_PSM)
|
|
AC_SUBST(BUILD_MODULES)
|
|
AC_SUBST(MOZ_DEBUG)
|
|
AC_SUBST(MOZ_DEBUG_MODULES)
|
|
AC_SUBST(MOZ_PROFILE_MODULES)
|
|
AC_SUBST(MOZ_DEBUG_ENABLE_DEFS)
|
|
AC_SUBST(MOZ_DEBUG_DISABLE_DEFS)
|
|
AC_SUBST(MOZ_DEBUG_FLAGS)
|
|
AC_SUBST(MOZ_DEBUG_LDFLAGS)
|
|
AC_SUBST(MOZ_DBGRINFO_MODULES)
|
|
AC_SUBST(MOZ_EXTENSIONS)
|
|
AC_SUBST(MOZ_IMG_DECODERS)
|
|
AC_SUBST(MOZ_IMG_ENCODERS)
|
|
AC_SUBST(MOZ_JSDEBUGGER)
|
|
AC_SUBST(MOZ_OJI)
|
|
AC_SUBST(MOZ_NO_XPCOM_OBSOLETE)
|
|
AC_SUBST(MOZ_PLUGINS)
|
|
AC_SUBST(ENABLE_EAZEL_PROFILER)
|
|
AC_SUBST(EAZEL_PROFILER_CFLAGS)
|
|
AC_SUBST(EAZEL_PROFILER_LIBS)
|
|
AC_SUBST(MOZ_PERF_METRICS)
|
|
AC_SUBST(GC_LEAK_DETECTOR)
|
|
AC_SUBST(MOZ_LOG_REFCNT)
|
|
AC_SUBST(MOZ_LEAKY)
|
|
AC_SUBST(MOZ_JPROF)
|
|
AC_SUBST(MOZ_XPCTOOLS)
|
|
AC_SUBST(MOZ_JSLOADER)
|
|
AC_SUBST(MOZ_USE_NATIVE_UCONV)
|
|
AC_SUBST(MOZ_INSURE)
|
|
AC_SUBST(MOZ_INSURE_DIRS)
|
|
AC_SUBST(MOZ_INSURE_EXCLUDE_DIRS)
|
|
AC_SUBST(MOZ_QUANTIFY)
|
|
AC_SUBST(MOZ_INSURIFYING)
|
|
AC_SUBST(MOZ_LDAP_XPCOM)
|
|
AC_SUBST(MOZ_LDAP_XPCOM_EXPERIMENTAL)
|
|
AC_SUBST(LDAP_CFLAGS)
|
|
AC_SUBST(LDAP_LIBS)
|
|
AC_SUBST(LIBICONV)
|
|
AC_SUBST(MOZ_PLACES)
|
|
AC_SUBST(MOZ_STORAGE)
|
|
AC_SUBST(NS_PRINTING)
|
|
|
|
AC_SUBST(MOZ_JAVAXPCOM)
|
|
AC_SUBST(JAVA_INCLUDE_PATH)
|
|
AC_SUBST(JAVAC)
|
|
AC_SUBST(JAR)
|
|
|
|
AC_SUBST(MOZ_PROFILESHARING)
|
|
AC_SUBST(MOZ_PROFILELOCKING)
|
|
|
|
AC_SUBST(MOZ_IPCD)
|
|
|
|
AC_SUBST(HAVE_XIE)
|
|
AC_SUBST(MOZ_XIE_LIBS)
|
|
AC_SUBST(MOZ_XPRINT_CFLAGS)
|
|
AC_SUBST(MOZ_XPRINT_LDFLAGS)
|
|
AC_SUBST(MOZ_ENABLE_XPRINT)
|
|
AC_SUBST(MOZ_ENABLE_POSTSCRIPT)
|
|
AC_SUBST(MOZ_XINERAMA_LIBS)
|
|
AC_SUBST(MOZ_ENABLE_XINERAMA)
|
|
|
|
AC_SUBST(XPCOM_USE_LEA)
|
|
AC_SUBST(BUILD_STATIC_LIBS)
|
|
AC_SUBST(MOZ_ENABLE_LIBXUL)
|
|
AC_SUBST(ENABLE_TESTS)
|
|
AC_SUBST(IBMBIDI)
|
|
AC_SUBST(SUNCTL)
|
|
AC_SUBST(MOZ_UNIVERSALCHARDET)
|
|
AC_SUBST(ACCESSIBILITY)
|
|
AC_SUBST(MOZ_XPINSTALL)
|
|
AC_SUBST(MOZ_VIEW_SOURCE)
|
|
AC_SUBST(MOZ_SINGLE_PROFILE)
|
|
AC_SUBST(MOZ_XPFE_COMPONENTS)
|
|
AC_SUBST(MOZ_USER_DIR)
|
|
|
|
AC_SUBST(ENABLE_STRIP)
|
|
AC_SUBST(USE_ELF_DYNSTR_GC)
|
|
AC_SUBST(USE_PREBINDING)
|
|
AC_SUBST(INCREMENTAL_LINKER)
|
|
AC_SUBST(MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS)
|
|
AC_SUBST(MOZ_COMPONENT_NSPR_LIBS)
|
|
AC_SUBST(MOZ_XPCOM_OBSOLETE_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(USE_DEPENDENT_LIBS)
|
|
|
|
AC_SUBST(MOZ_BUILD_ROOT)
|
|
AC_SUBST(MOZ_OS2_TOOLS)
|
|
AC_SUBST(MOZ_OS2_USE_DECLSPEC)
|
|
|
|
AC_SUBST(MOZ_POST_DSO_LIB_COMMAND)
|
|
AC_SUBST(MOZ_POST_PROGRAM_COMMAND)
|
|
AC_SUBST(MOZ_REORDER)
|
|
AC_SUBST(MOZ_TIMELINE)
|
|
AC_SUBST(WINCE)
|
|
AC_SUBST(TARGET_DEVICE)
|
|
|
|
AC_SUBST(MOZ_APP_NAME)
|
|
AC_SUBST(MOZ_APP_DISPLAYNAME)
|
|
AC_SUBST(MOZ_APP_VERSION)
|
|
AC_SUBST(FIREFOX_VERSION)
|
|
AC_SUBST(THUNDERBIRD_VERSION)
|
|
AC_SUBST(SEAMONKEY_VERSION)
|
|
|
|
AC_SUBST(MOZ_PKG_SPECIAL)
|
|
|
|
AC_SUBST(MOZILLA_OFFICIAL)
|
|
AC_SUBST(BUILD_OFFICIAL)
|
|
AC_SUBST(MOZ_MILESTONE_RELEASE)
|
|
|
|
dnl win32 options
|
|
AC_SUBST(MOZ_PROFILE)
|
|
AC_SUBST(MOZ_DEBUG_SYMBOLS)
|
|
AC_SUBST(MOZ_COVERAGE)
|
|
AC_SUBST(MOZ_MAPINFO)
|
|
AC_SUBST(MOZ_BROWSE_INFO)
|
|
AC_SUBST(MOZ_TOOLS_DIR)
|
|
AC_SUBST(CYGWIN_WRAPPER)
|
|
AC_SUBST(AS_PERL)
|
|
AC_SUBST(WIN32_REDIST_DIR)
|
|
|
|
dnl Echo the CFLAGS to remove extra whitespace.
|
|
CFLAGS=`echo \
|
|
$_WARNINGS_CFLAGS \
|
|
$CFLAGS`
|
|
|
|
CXXFLAGS=`echo \
|
|
$_MOZ_RTTI_FLAGS \
|
|
$_MOZ_EXCEPTIONS_FLAGS \
|
|
$_WARNINGS_CXXFLAGS \
|
|
$CXXFLAGS`
|
|
|
|
COMPILE_CFLAGS=`echo \
|
|
$_DEFINES_CFLAGS \
|
|
$_DEPEND_CFLAGS \
|
|
$COMPILE_CFLAGS`
|
|
|
|
COMPILE_CXXFLAGS=`echo \
|
|
$_DEFINES_CXXFLAGS \
|
|
$_DEPEND_CFLAGS \
|
|
$COMPILE_CXXFLAGS`
|
|
|
|
AC_SUBST(SYSTEM_MAKEDEPEND)
|
|
AC_SUBST(SYSTEM_JPEG)
|
|
AC_SUBST(SYSTEM_PNG)
|
|
AC_SUBST(SYSTEM_ZLIB)
|
|
|
|
AC_SUBST(JPEG_CFLAGS)
|
|
AC_SUBST(JPEG_LIBS)
|
|
AC_SUBST(ZLIB_CFLAGS)
|
|
AC_SUBST(ZLIB_LIBS)
|
|
AC_SUBST(PNG_CFLAGS)
|
|
AC_SUBST(PNG_LIBS)
|
|
|
|
AC_SUBST(MOZ_JPEG_CFLAGS)
|
|
AC_SUBST(MOZ_JPEG_LIBS)
|
|
AC_SUBST(MOZ_ZLIB_CFLAGS)
|
|
AC_SUBST(MOZ_ZLIB_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(CFLAGS)
|
|
AC_SUBST(CXXFLAGS)
|
|
AC_SUBST(CPPFLAGS)
|
|
AC_SUBST(COMPILE_CFLAGS)
|
|
AC_SUBST(COMPILE_CXXFLAGS)
|
|
AC_SUBST(LDFLAGS)
|
|
AC_SUBST(LIBS)
|
|
AC_SUBST(CROSS_COMPILE)
|
|
|
|
AC_SUBST(HOST_CC)
|
|
AC_SUBST(HOST_CXX)
|
|
AC_SUBST(HOST_CFLAGS)
|
|
AC_SUBST(HOST_CXXFLAGS)
|
|
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(MOZ_DISABLE_JAR_PACKAGING)
|
|
AC_SUBST(MOZ_CHROME_FILE_FORMAT)
|
|
|
|
AC_SUBST(WRAP_MALLOC_CFLAGS)
|
|
AC_SUBST(WRAP_MALLOC_LIB)
|
|
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='${topsrcdir}/build/hcc'
|
|
CC="$CC '$_OLDCC'"
|
|
CXX='${topsrcdir}/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 <stdio.h>
|
|
#include <X11/Xlib.h>
|
|
],
|
|
[
|
|
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"
|
|
|
|
if test ! -z "$MISSING_X"; then
|
|
AC_MSG_ERROR([ Could not find the following X libraries: $MISSING_X ]);
|
|
fi
|
|
|
|
fi # MOZ_X11
|
|
fi # COMPILE_ENVIRONMENT
|
|
|
|
dnl Set various defines and substitutions
|
|
dnl ========================================================
|
|
|
|
if test "$OS_ARCH" = "OS2" -a "$VACPP" = "yes"; then
|
|
LIBS='so32dll.lib tcp32dll.lib'
|
|
elif test "$OS_ARCH" = "BeOS"; then
|
|
AC_DEFINE(XP_BEOS)
|
|
MOZ_MOVEMAIL=1
|
|
elif test "$OS_ARCH" = "Darwin"; then
|
|
AC_DEFINE(XP_UNIX)
|
|
AC_DEFINE(UNIX_ASYNC_DNS)
|
|
MOZ_MOVEMAIL=1
|
|
elif test "$OS_ARCH" = "OpenVMS"; then
|
|
AC_DEFINE(XP_UNIX)
|
|
elif test "$OS_ARCH" != "WINNT" -a "$OS_ARCH" != "OS2" -a "$OS_ARCH" != "WINCE"; then
|
|
AC_DEFINE(XP_UNIX)
|
|
AC_DEFINE(UNIX_ASYNC_DNS)
|
|
MOZ_MOVEMAIL=1
|
|
fi
|
|
AC_SUBST(MOZ_MOVEMAIL)
|
|
|
|
AC_DEFINE(JS_THREADSAFE)
|
|
|
|
if test "$MOZ_DEBUG"; then
|
|
AC_DEFINE(MOZ_REFLOW_PERF)
|
|
AC_DEFINE(MOZ_REFLOW_PERF_DSP)
|
|
fi
|
|
|
|
if test "$ACCESSIBILITY" -a "$MOZ_ENABLE_GTK2" ; then
|
|
AC_DEFINE(MOZ_ACCESSIBILITY_ATK)
|
|
fi
|
|
|
|
# Used for LD_LIBRARY_PATH of run_viewer target
|
|
LIBS_PATH=
|
|
for lib_arg in $NSPR_LIBS $TK_LIBS; do
|
|
case $lib_arg in
|
|
-L* ) LIBS_PATH="${LIBS_PATH:+$LIBS_PATH:}"`expr $lib_arg : "-L\(.*\)"` ;;
|
|
* ) ;;
|
|
esac
|
|
done
|
|
AC_SUBST(LIBS_PATH)
|
|
|
|
dnl ========================================================
|
|
dnl Use cygwin wrapper for win32 builds, except MSYS/MinGW
|
|
dnl ========================================================
|
|
case "$host_os" in
|
|
mingw*)
|
|
WIN_TOP_SRC=`cd $srcdir; pwd -W`
|
|
;;
|
|
cygwin*|msvc*|mks*)
|
|
HOST_CC="\$(CYGWIN_WRAPPER) $HOST_CC"
|
|
HOST_CXX="\$(CYGWIN_WRAPPER) $HOST_CXX"
|
|
CC="\$(CYGWIN_WRAPPER) $CC"
|
|
CXX="\$(CYGWIN_WRAPPER) $CXX"
|
|
CPP="\$(CYGWIN_WRAPPER) $CPP"
|
|
LD="\$(CYGWIN_WRAPPER) $LD"
|
|
AS="\$(CYGWIN_WRAPPER) $AS"
|
|
RC="\$(CYGWIN_WRAPPER) $RC"
|
|
MIDL="\$(CYGWIN_WRAPPER) $MIDL"
|
|
CYGDRIVE_MOUNT=`mount -p | awk '{ if (/^\//) { print $1; exit } }'`
|
|
WIN_TOP_SRC=`cygpath -a -w $srcdir | sed -e 's|\\\\|/|g'`
|
|
;;
|
|
esac
|
|
|
|
AC_SUBST(CYGDRIVE_MOUNT)
|
|
AC_SUBST(WIN_TOP_SRC)
|
|
|
|
AC_SUBST(MOZILLA_VERSION)
|
|
|
|
. ${srcdir}/config/chrome-versions.sh
|
|
AC_DEFINE_UNQUOTED(MOZILLA_LOCALE_VERSION,"$MOZILLA_LOCALE_VERSION")
|
|
AC_DEFINE_UNQUOTED(MOZILLA_REGION_VERSION,"$MOZILLA_REGION_VERSION")
|
|
AC_DEFINE_UNQUOTED(MOZILLA_SKIN_VERSION,"$MOZILLA_SKIN_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_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
|
|
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
|
|
MOZ_V1_STRING_ABI
|
|
"
|
|
|
|
AC_CONFIG_HEADER(
|
|
gfx/gfx-config.h
|
|
netwerk/necko-config.h
|
|
xpcom/xpcom-config.h
|
|
xpcom/xpcom-private.h
|
|
)
|
|
|
|
# Save the defines header file before autoconf removes it.
|
|
# (Do not add AC_DEFINE calls after this line.)
|
|
_CONFIG_TMP=confdefs-tmp.h
|
|
_CONFIG_DEFS_H=mozilla-config.h
|
|
|
|
cat > $_CONFIG_TMP <<\EOF
|
|
/* List of defines generated by configure. Included with preprocessor flag,
|
|
* -include, to avoid long list of -D defines on the compile command-line.
|
|
* Do not edit.
|
|
*/
|
|
|
|
#ifndef _MOZILLA_CONFIG_H_
|
|
#define _MOZILLA_CONFIG_H_
|
|
EOF
|
|
|
|
_EGREP_PATTERN='^#define ('
|
|
if test -n "$_NON_GLOBAL_ACDEFINES"; then
|
|
for f in $_NON_GLOBAL_ACDEFINES; do
|
|
_EGREP_PATTERN="${_EGREP_PATTERN}$f|"
|
|
done
|
|
fi
|
|
_EGREP_PATTERN="${_EGREP_PATTERN}dummy_never_defined)"
|
|
|
|
sort confdefs.h | egrep -v "$_EGREP_PATTERN" >> $_CONFIG_TMP
|
|
|
|
cat >> $_CONFIG_TMP <<\EOF
|
|
|
|
#endif /* _MOZILLA_CONFIG_H_ */
|
|
|
|
EOF
|
|
|
|
# Only write mozilla-config.h when something changes (or it doesn't exist)
|
|
if cmp -s $_CONFIG_TMP $_CONFIG_DEFS_H; then
|
|
rm $_CONFIG_TMP
|
|
else
|
|
AC_MSG_RESULT("creating $_CONFIG_DEFS_H")
|
|
mv -f $_CONFIG_TMP $_CONFIG_DEFS_H
|
|
|
|
echo ==== $_CONFIG_DEFS_H =================================
|
|
cat $_CONFIG_DEFS_H
|
|
fi
|
|
|
|
dnl Probably shouldn't call this manually but we always want the output of DEFS
|
|
rm -f confdefs.h.save
|
|
mv confdefs.h confdefs.h.save
|
|
egrep -v "$_EGREP_PATTERN" confdefs.h.save > confdefs.h
|
|
AC_OUTPUT_MAKE_DEFS()
|
|
MOZ_DEFINES=$DEFS
|
|
AC_SUBST(MOZ_DEFINES)
|
|
rm -f confdefs.h
|
|
mv confdefs.h.save confdefs.h
|
|
|
|
dnl Load the list of Makefiles to generate.
|
|
dnl To add new Makefiles, edit allmakefiles.sh.
|
|
dnl allmakefiles.sh sets the variable, MAKEFILES.
|
|
. ${srcdir}/allmakefiles.sh
|
|
dnl
|
|
dnl Run a perl script to quickly create the makefiles.
|
|
dnl If it succeeds, it outputs a shell command to set CONFIG_FILES
|
|
dnl for the files it cannot handle correctly. This way, config.status
|
|
dnl will handle these files.
|
|
dnl If it fails, nothing is set and config.status will run as usual.
|
|
dnl
|
|
dnl This does not change the $MAKEFILES variable.
|
|
dnl
|
|
dnl OpenVMS gets a line overflow on the long eval command, so use a temp file.
|
|
dnl
|
|
if test -z "${AS_PERL}"; then
|
|
echo $MAKEFILES | ${PERL} $srcdir/build/autoconf/acoutput-fast.pl > conftest.sh
|
|
else
|
|
echo $MAKEFILES | ${PERL} $srcdir/build/autoconf/acoutput-fast.pl -nowrap --cygwin-srcdir=$srcdir > conftest.sh
|
|
fi
|
|
. ./conftest.sh
|
|
rm conftest.sh
|
|
|
|
echo $MAKEFILES > unallmakefiles
|
|
|
|
AC_OUTPUT($MAKEFILES)
|
|
|
|
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 MAKEFILES
|
|
unset CONFIG_FILES
|
|
|
|
if test "$COMPILE_ENVIRONMENT"; then
|
|
if test -z "$MOZ_NATIVE_NSPR" || test "$MOZ_LDAP_XPCOM"; then
|
|
ac_configure_args="$_SUBDIR_CONFIG_ARGS --with-dist-prefix=$MOZ_BUILD_ROOT/dist --with-mozilla"
|
|
if test -z "$MOZ_DEBUG"; then
|
|
ac_configure_args="$ac_configure_args --disable-debug"
|
|
fi
|
|
if test "$MOZ_OPTIMIZE" = "1"; then
|
|
ac_configure_args="$ac_configure_args --enable-optimize"
|
|
fi
|
|
if test "$OS_ARCH" = "WINNT" && test "$NS_TRACE_MALLOC"; then
|
|
ac_configure_args="$ac_configure_args --enable-debug --disable-optimize"
|
|
fi
|
|
if test -n "$HAVE_64BIT_OS"; then
|
|
ac_configure_args="$ac_configure_args --enable-64bit"
|
|
fi
|
|
AC_OUTPUT_SUBDIRS(nsprpub)
|
|
ac_configure_args="$_SUBDIR_CONFIG_ARGS"
|
|
fi
|
|
|
|
if test -z "$MOZ_NATIVE_NSPR"; then
|
|
# Hack to deal with the fact that we use NSPR_CFLAGS everywhere
|
|
AC_MSG_WARN([Recreating autoconf.mk with updated nspr-config output])
|
|
if test ! "$VACPP" && test "$OS_ARCH" != "WINNT" && test "$OS_ARCH" != "WINCE"; then
|
|
_libs=`./nsprpub/config/nspr-config --prefix=$\(LIBXUL_DIST\) --exec-prefix=$\(DIST\) --libdir=$\(LIBXUL_DIST\)/lib --libs`
|
|
$PERL -pi.bak -e "s '^NSPR_LIBS\\s*=.*'NSPR_LIBS = $_libs'" config/autoconf.mk
|
|
fi
|
|
if test "$OS_ARCH" != "WINNT" && test "$OS_ARCH" != "WINCE" ; then
|
|
_cflags=`./nsprpub/config/nspr-config --prefix=$\(LIBXUL_DIST\) --exec-prefix=$\(DIST\) --includedir=$\(LIBXUL_DIST\)/include/nspr --cflags`
|
|
$PERL -pi.bak -e "s '^NSPR_CFLAGS\\s*=.*'NSPR_CFLAGS = $_cflags'" config/autoconf.mk
|
|
fi
|
|
rm -f config/autoconf.mk.bak
|
|
fi
|
|
|
|
# if we're building the LDAP XPCOM component, we need to build
|
|
# the c-sdk first.
|
|
#
|
|
if test "$MOZ_LDAP_XPCOM"; then
|
|
|
|
# these subdirs may not yet have been created in the build tree.
|
|
# don't use the "-p" switch to mkdir, since not all platforms have it
|
|
#
|
|
if test ! -d "directory"; then
|
|
mkdir "directory"
|
|
fi
|
|
if test ! -d "directory/c-sdk"; then
|
|
mkdir "directory/c-sdk"
|
|
fi
|
|
if test ! -d "directory/c-sdk/ldap"; then
|
|
mkdir "directory/c-sdk/ldap"
|
|
fi
|
|
|
|
ac_configure_args="$_SUBDIR_CONFIG_ARGS --prefix=$MOZ_BUILD_ROOT/dist --with-dist-prefix=$MOZ_BUILD_ROOT/dist --without-nss --with-mozilla"
|
|
if test -z "$MOZ_DEBUG"; then
|
|
ac_configure_args="$ac_configure_args --disable-debug"
|
|
fi
|
|
if test "$MOZ_OPTIMIZE" = "1"; then
|
|
ac_configure_args="$ac_configure_args --enable-optimize"
|
|
fi
|
|
if test -n "$HAVE_64BIT_OS"; then
|
|
ac_configure_args="$ac_configure_args --enable-64bit"
|
|
fi
|
|
AC_OUTPUT_SUBDIRS(directory/c-sdk)
|
|
ac_configure_args="$_SUBDIR_CONFIG_ARGS"
|
|
fi
|
|
fi # COMPILE_ENVIRONMENT
|