mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-15 03:00:30 +00:00
a42dc29a79
Bug #20860 r=brendan
4588 lines
136 KiB
Plaintext
4588 lines
136 KiB
Plaintext
dnl -*- Mode: Autoconf; tab-width: 4; indent-tabs-mode: nil; -*-
|
|
dnl The contents of this file are subject to the Mozilla Public
|
|
dnl License Version 1.1 (the "License"); you may not use this file
|
|
dnl except in compliance with the License. You may obtain a copy of
|
|
dnl the License at http://www.mozilla.org/MPL/
|
|
dnl
|
|
dnl Software distributed under the License is distributed on an "AS
|
|
dnl IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
|
dnl implied. See the License for the specific language governing
|
|
dnl rights and limitations under the 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 Christopher
|
|
dnl Seawood. Portions created by Christopher Seawood are
|
|
dnl Copyright (C) 1998-2001 Christopher Seawood. All Rights Reserved.
|
|
dnl
|
|
dnl Contributor(s): 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
|
|
dnl Process this file with autoconf to produce a configure script.
|
|
dnl ========================================================
|
|
|
|
AC_PREREQ(2.12)
|
|
AC_INIT(config/config.mk)
|
|
AC_CONFIG_AUX_DIR(${srcdir}/build/autoconf)
|
|
AC_CANONICAL_SYSTEM
|
|
AC_PREFIX_DEFAULT(`pwd`/dist)
|
|
TARGET_CPU="${target_cpu}"
|
|
TARGET_OS="${target_os}"
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = Dont 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="$CFLAGS"
|
|
_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=10009
|
|
MOZMNG="((1<<16)|(0<<8)|(1))"
|
|
NSPR_VERSION=4
|
|
|
|
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=2.2.0
|
|
QT_VERSION_NUM=220
|
|
GTK2_VERSION=1.3.7
|
|
|
|
dnl Set various checks
|
|
dnl ========================================================
|
|
MISSING_FULLCIRCLE=
|
|
MISSING_MOTIF=
|
|
MISSING_NSPR=
|
|
MISSING_X=
|
|
|
|
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 ========================================================
|
|
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 -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])
|
|
if test -z "$HOST_CC"; then
|
|
AC_CHECK_PROGS(HOST_CC, gcc cc /usr/ucb/cc icc, "")
|
|
if test -z "$HOST_CC"; then
|
|
AC_MSG_ERROR([no acceptable c compiler found in \$PATH])
|
|
fi
|
|
fi
|
|
AC_MSG_RESULT([$HOST_CC])
|
|
AC_MSG_CHECKING([for host c++ compiler])
|
|
if test -z "$HOST_CXX"; then
|
|
AC_CHECK_PROGS(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
|
|
fi
|
|
AC_MSG_RESULT([$HOST_CXX])
|
|
|
|
if test -z "$HOST_CFLAGS"; then
|
|
HOST_CFLAGS="$CFLAGS"
|
|
fi
|
|
if test -z "$HOST_CXXFLAGS"; then
|
|
HOST_CXXFLAGS="$CXXFLAGS"
|
|
fi
|
|
if test -z "$HOST_LDFLAGS"; then
|
|
HOST_LDFLAGS="$LDFLAGS"
|
|
fi
|
|
if test -z "$HOST_RANLIB"; then
|
|
AC_CHECK_PROG(HOST_RANLIB, ranlib, ranlib, :)
|
|
fi
|
|
if test -z "$HOST_AR"; then
|
|
AC_CHECK_PROG(HOST_AR, ar, ar, :)
|
|
fi
|
|
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
|
|
|
|
if test -z "$CC"; then
|
|
AC_CHECK_PROGS(CC, "${target_alias}-gcc" "${target}-gcc", :)
|
|
fi
|
|
unset ac_cv_prog_CC
|
|
AC_PROG_CC
|
|
if test -z "$CXX"; then
|
|
AC_CHECK_PROGS(CXX, "${target_alias}-g++" "${target}-g++", :)
|
|
fi
|
|
unset ac_cv_prog_CXX
|
|
AC_PROG_CXX
|
|
if test -z "$RANLIB"; then
|
|
AC_CHECK_PROGS(RANLIB, "${target_alias}-ranlib" "${target}-ranlib", :)
|
|
fi
|
|
if test -z "$AR"; then
|
|
AC_CHECK_PROGS(AR, "${target_alias}-ar" "${target}-ar", :)
|
|
fi
|
|
if test -z "$AS"; then
|
|
AC_CHECK_PROGS(AS, "${target_alias}-as" "${target}-as", :)
|
|
fi
|
|
if test -z "$LD"; then
|
|
AC_CHECK_PROGS(LD, "${target_alias}-ld" "${target}-ld", :)
|
|
fi
|
|
if test -z "$STRIP"; then
|
|
AC_CHECK_PROGS(STRIP, "${target_alias}-strip" "${target}-strip", :)
|
|
fi
|
|
if test -z "$DLLTOOL"; then
|
|
AC_CHECK_PROGS(DLLTOOL, "${target_alias}-dlltool" "${target}-dlltool", :)
|
|
fi
|
|
if test -z "$WINDRES"; then
|
|
AC_CHECK_PROGS(WINDRES, "${target_alias}-windres" "${target}-windres", :)
|
|
fi
|
|
AC_DEFINE(CROSS_COMPILE)
|
|
else
|
|
AC_PROG_CC
|
|
AC_PROG_CXX
|
|
AC_PROG_RANLIB
|
|
AC_PATH_PROGS(AS, as, $CC)
|
|
AC_PATH_PROGS(AR, ar, :)
|
|
AC_PATH_PROGS(LD, ld, :)
|
|
AC_PATH_PROGS(STRIP, strip, :)
|
|
AC_PATH_PROGS(DLLTOOL, dlltool, :)
|
|
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
|
|
|
|
dnl Breaks icc on OS/2
|
|
if test "$CC" != "icc"; 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
|
|
|
|
GNU_AS=
|
|
GNU_CC=
|
|
GNU_CXX=
|
|
if test "$GCC" = "yes"; then
|
|
GNU_CC=1
|
|
fi
|
|
if test "$GXX" = "yes"; then
|
|
GNU_CXX=1
|
|
fi
|
|
if test "`echo | $AS -V 2>&1 | grep -c GNU`" != "0"; then
|
|
GNU_AS=1
|
|
fi
|
|
rm -f a.out
|
|
|
|
AC_SUBST(GNU_AS)
|
|
AC_SUBST(GNU_CC)
|
|
AC_SUBST(GNU_CXX)
|
|
|
|
dnl ========================================================
|
|
dnl Check for gcc -pipe support
|
|
dnl ========================================================
|
|
MOZ_ARG_DISABLE_BOOL(gcc-pipe,
|
|
[ --disable-gcc-pipe Disable -pipe check for gcc],
|
|
NO_GCC_PIPE=1)
|
|
|
|
AC_MSG_CHECKING([for gcc -pipe support])
|
|
|
|
if test -n "$NO_GCC_PIPE"; then
|
|
AC_MSG_RESULT([disabled])
|
|
elif 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} -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 ========================================================
|
|
dnl Checks for programs.
|
|
dnl ========================================================
|
|
AC_PROG_CPP
|
|
AC_PROG_CXXCPP
|
|
AC_PROG_INSTALL
|
|
AC_PROG_LN_S
|
|
AC_PROG_AWK
|
|
AC_PATH_PROGS(EMACS, xemacs lemacs emacs, :)
|
|
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(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_WARN([zip not found in \$PATH. Disabling jar packaging])
|
|
MOZ_DISABLE_JAR_PACKAGING=1
|
|
fi
|
|
AC_PATH_PROG(SYSTEM_MAKEDEPEND, makedepend)
|
|
AC_PATH_PROG(XARGS, xargs)
|
|
dnl if test -z "$XARGS" || test "$XARGS" = ":"; then
|
|
dnl AC_MSG_ERROR([xargs not found in \$PATH .])
|
|
dnl fi
|
|
|
|
dnl Be sure the make we use is GNU make.
|
|
AC_PATH_PROGS(MAKE, gmake make, :)
|
|
_make_try=`$MAKE --version 2>/dev/null`
|
|
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 warn about version 3.77 if we find it.
|
|
_make_vers=`$MAKE --version | grep Make | $AWK '{ print \$4 }' | sed 's/,//'`
|
|
if test "$_make_vers" = "3.77"
|
|
then
|
|
echo
|
|
echo "*** Found GNU Make 3.77. This version is known to have problems with the"
|
|
echo "*** wildcard function in certain circumstances. You may experience infinite"
|
|
echo "*** looping while building Mozilla with 3.77. If this happens, you can"
|
|
echo "*** either downgrade to 3.76.1 or try configuring with --disable-md."
|
|
echo
|
|
fi
|
|
|
|
AC_PROG_MAKE_SET
|
|
|
|
AC_PATH_XTRA
|
|
|
|
dnl Check in X11 include directory too.
|
|
if test "$no_x" != "yes"; then
|
|
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl set the defaults first
|
|
dnl ========================================================
|
|
AR_FLAGS='cr $@'
|
|
AR_LIST='$(AR) t'
|
|
AR_EXTRACT='$(AR) x'
|
|
AR_DELETE='$(AR) d'
|
|
AS='$(CC)'
|
|
AS_DASH_C_FLAG='-c'
|
|
DLL_SUFFIX=.so
|
|
OBJ_SUFFIX=o
|
|
LIB_SUFFIX=a
|
|
ASM_SUFFIX=s
|
|
TARGET_MD_ARCH=unix
|
|
DIRENT_INO=d_ino
|
|
|
|
MOZ_JPEG_CFLAGS=
|
|
MOZ_JPEG_LIBS='-L$(DIST)/lib -lmozjpeg'
|
|
MOZ_ZLIB_CFLAGS=
|
|
MOZ_ZLIB_LIBS='-L$(DIST)/lib -lmozz'
|
|
MOZ_PNG_CFLAGS=
|
|
MOZ_PNG_LIBS='-L$(DIST)/lib -lmozpng'
|
|
MOZ_MNG_CFLAGS=
|
|
MOZ_MNG_LIBS='-L$(DIST)/lib -lmozmng'
|
|
|
|
MOZ_JS_LIBS='-L$(DIST)/bin -lmozjs'
|
|
XPCOM_LIBS='-L$(DIST)/bin -lxpcom'
|
|
|
|
MOZ_COMPONENT_NSPR_LIBS='-L$(DIST)/bin $(NSPR_LIBS)'
|
|
MOZ_COMPONENT_XPCOM_LIBS='-L$(DIST)/bin -lxpcom'
|
|
|
|
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 ;;
|
|
openvms*) OS_TARGET=`uname -s`
|
|
OS_ARCH=`uname -s | sed -e 's|/|_|g'`
|
|
OS_RELEASE=`uname -r`
|
|
OS_TEST=`uname -Wh`;;
|
|
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=
|
|
|
|
dnl ========================================================
|
|
dnl GNU specific defaults
|
|
dnl ========================================================
|
|
if test "$GNU_CC"; then
|
|
MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -o $@'
|
|
MKCSHLIB='$(CC) $(CFLAGS) $(DSO_LDOPTS) -o $@'
|
|
DSO_LDOPTS='-shared -Wl,-h -Wl,$@'
|
|
DSO_CFLAGS=''
|
|
DSO_PIC_CFLAGS='-fPIC'
|
|
|
|
# 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)/config-defs.h -DMOZILLA_CLIENT'
|
|
_USE_CPP_INCLUDE_FLAG=1
|
|
else
|
|
MKSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
|
|
MKCSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
|
|
DSO_LDOPTS='-shared -h $@'
|
|
DSO_CFLAGS=''
|
|
DSO_PIC_CFLAGS='-KPIC'
|
|
_DEFINES_CFLAGS='$(ACDEFINES) -DMOZILLA_CLIENT'
|
|
fi
|
|
|
|
if test "$GNU_CXX"; then
|
|
# Turn on GNU specific features
|
|
_WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wall -Wconversion -Wpointer-arith -Wbad-function-cast -Wcast-align -Woverloaded-virtual -Wsynth"
|
|
|
|
dnl The following warning breaks Qt
|
|
if test ! "$QTDIR"; then
|
|
_WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS}"
|
|
fi
|
|
|
|
_DEFINES_CXXFLAGS='-DMOZILLA_CLIENT -include $(DEPTH)/config-defs.h'
|
|
_USE_CPP_INCLUDE_FLAG=1
|
|
else
|
|
_DEFINES_CXXFLAGS='-DMOZILLA_CLIENT $(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 "$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
|
|
|
|
dnl ========================================================
|
|
dnl System overrides of the defaults for host
|
|
dnl ========================================================
|
|
case "$host" in
|
|
*-linux*)
|
|
HOST_NSPR_MDCPUCFG='\"md/_linux.cfg\"'
|
|
;;
|
|
|
|
*-osf*)
|
|
HOST_NSPR_MDCPUCFG='\"md/_osf1.cfg\"'
|
|
;;
|
|
|
|
esac
|
|
|
|
dnl =======================================================
|
|
dnl Check to see if we are using an old version of the Compaq C compiler.
|
|
dnl =======================================================
|
|
dnl Even after installing this compiler, this test still fails.
|
|
dnl AC_LANG_SAVE
|
|
dnl AC_LANG_CPLUSPLUS
|
|
dnl AC_MSG_CHECKING(for old DEC C++ compiler)
|
|
dnl AC_TRY_COMPILE([], [
|
|
dnl #if defined(__DECCXX) && (__DECCXX_VER<60190029)
|
|
dnl #error "Compiler is too old."
|
|
dnl #endif ],
|
|
dnl [AC_MSG_RESULT([no])],
|
|
dnl AC_MSG_ERROR([Compiler is too old. Get a new one: http://www.unix.digital.com/dtk/]) )
|
|
dnl AC_LANG_RESTORE
|
|
|
|
dnl ========================================================
|
|
dnl Check for an old version of SUNWspro
|
|
dnl ========================================================
|
|
case "$target" in
|
|
*-solaris*)
|
|
if test ! "$GNU_CC" && test ! -z "`${CC} -V 2>&1 | head -1 | grep '4.2'`"; then
|
|
AC_MSG_ERROR([SUNWspro4.2 is too old. Use a newer version or gcc.])
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
dnl ========================================================
|
|
dnl System overrides of the defaults for target
|
|
dnl ========================================================
|
|
case "$target" in
|
|
*-aix*)
|
|
if test ! "$GNU_CC"; then
|
|
# DSO_LDOPTS='-ldl -bM:SRE -p1 -brtl -bso -bexpall -bnoentry'
|
|
DSO_LDOPTS='-ldl -p1 -brtl -bso -bsymbolic -bnortllib'
|
|
DSO_CFLAGS='-qflag=w:w'
|
|
DSO_PIC_CFLAGS='-DPIC'
|
|
fi
|
|
case "${target_os}" in
|
|
aix4.1*)
|
|
DLL_SUFFIX='_shr.a'
|
|
;;
|
|
esac
|
|
MKSHLIB='$(AIX_SHLIB_BIN) $(DSO_LDOPTS) -o $@'
|
|
MKCSHLIB='$(AIX_SHLIB_BIN) $(DSO_LDOPTS) -o $@'
|
|
AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
|
|
;;
|
|
|
|
*-beos*)
|
|
MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -o $@'
|
|
DSO_LDOPTS='-nostart -Wl,-h -Wl,$@'
|
|
TK_LIBS='-lbe -lroot'
|
|
LIBS="$LIBS -lbe"
|
|
AC_CHECK_LIB(bind,main,LIBS="$LIBS -lbind")
|
|
_WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wno-multichar"
|
|
_WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wno-multichar -Wno-ctor-dtor-privacy"
|
|
;;
|
|
|
|
*-bsdi*)
|
|
dnl -pedantic doesn't play well with BSDI's _very_ modified gcc (shlicc2)
|
|
_PEDANTIC=
|
|
_IGNORE_LONG_LONG_WARNINGS=
|
|
case $OS_RELEASE in
|
|
4.*)
|
|
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
|
|
;;
|
|
|
|
*-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 -L$(DIST)/bin'
|
|
DSO_CFLAGS=""
|
|
DSO_PIC_CFLAGS="+Z"
|
|
MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -o $@'
|
|
MKCSHLIB='$(CC) $(CFLAGS) $(DSO_LDOPTS) -o $@'
|
|
else
|
|
DSO_LDOPTS='-b -E +s -L$(DIST)/bin -L$(DIST)/lib'
|
|
MKSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
|
|
MKCSHLIB='$(LD) $(DSO_LDOPTS) -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_FORCE_ALL='-Wl,-all'
|
|
MKSHLIB_UNFORCE_ALL='-Wl,-none'
|
|
CXXFLAGS="$CXXFLAGS -D_LANGUAGE_C_PLUS_PLUS"
|
|
else
|
|
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
|
|
DSO_LDOPTS='-elf -shared'
|
|
MKSHLIB='$(CCC) $(CXXFLAGS) $(DSO_LDOPTS) -o $@'
|
|
MKCSHLIB='$(CC) $(CFLAGS) $(DSO_LDOPTS) -o $@'
|
|
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"
|
|
CXXFLAGS="$CXXFLAGS -woff 3262"
|
|
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*)
|
|
AC_DEFINE(_POSIX_SOURCE)
|
|
AC_DEFINE(_SVID_SOURCE)
|
|
TARGET_NSPR_MDCPUCFG='\"md/_linux.cfg\"'
|
|
LIBS="$LIBS -lc"
|
|
|
|
case "${host_cpu}" in
|
|
alpha*)
|
|
CFLAGS="$CFLAGS -mieee"
|
|
CXXFLAGS="$CXXFLAGS -mieee"
|
|
;;
|
|
i?86)
|
|
USE_ELF_DYNSTR_GC=1
|
|
;;
|
|
esac
|
|
;;
|
|
|
|
*-mingw*)
|
|
AC_DEFINE(_WINDOWS)
|
|
AC_DEFINE(WIN32_LEAN_AND_MEAN)
|
|
AC_DEFINE(NONAMELESSUNION)
|
|
CFLAGS="$(CFLAGS) -fvtable-thunks"
|
|
CXXFLAGS="$(CXXFLAGS) -fvtable-thunks"
|
|
TARGET_MD_ARCH=win32
|
|
if test -z "$GNU_CC"; then
|
|
OBJ_SUFFIX=obj
|
|
LIB_SUFFIX=lib
|
|
DLL_SUFFIX=.dll
|
|
fi
|
|
MKSHLIB='$(DLLTOOL) --as=$(AS) -k --dllname $(LIBRARY_NAME).dll --output-lib $@'
|
|
MKCSHLIB='$(DLLTOOL) --as=$(AS) -k --dllname $(LIBRARY_NAME).dll --output-lib $@'
|
|
MKSHLIB_FORCE_ALL=
|
|
MKSHLIB_UNFORCE_ALL=
|
|
DSO_LDOPTS=
|
|
DSO_CFLAGS=
|
|
DSO_PIC_CFLAGS=
|
|
OS_TARGET=WINNT
|
|
dnl Hardcode to win95 for now - cls
|
|
TARGET_NSPR_MDCPUCFG='\"md/_win95.cfg\"'
|
|
|
|
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 -Wl,-soname,lib$(LIBRARY_NAME)$(DLL_SUFFIX)'
|
|
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
|
|
;;
|
|
|
|
*-nto*)
|
|
CFLAGS="$CFLAGS -DNTO -D_QNX_SOURCE -D_POSIX_C_SOURCE=199506 -D_i386"
|
|
CXXFLAGS="$CXXFLAGS -DNTO -D_QNX_SOURCE -D_POSIX_C_SOURCE=199506 -D_i386"
|
|
_WARNINGS_CFLAGS='-w'
|
|
_WARNINGS_CXXFLAGS='-w'
|
|
OS_TARGET="NTO"
|
|
MOZ_OPTIMIZE_FLAGS="-O1"
|
|
MOZ_DEBUG_FLAGS="-gstabs"
|
|
DSO_LDOPTS="-M $DSO_LDOPTS"
|
|
DSO_CFLAGS=''
|
|
DSO_PIC_CFLAGS="-shared -Wc,-fPIC -DPIC"
|
|
MKSHLIB='qcc -Vgcc_ntox86 $(DSO_LDOPTS) -o $@'
|
|
MKCSHLIB='qcc -Vgcc_ntox86 $(DSO_LDOPTS) -o $@'
|
|
AR='qcc -Vgcc_ntox86'
|
|
AR_FLAGS='-M -a $@'
|
|
AR_LIST='ar t'
|
|
AR_EXTRACT='ar x'
|
|
AR_DELETE='ar d'
|
|
_DEFINES_CFLAGS='-Wp,-include,$(DEPTH)/config-defs.h -DMOZILLA_CLIENT'
|
|
_DEFINES_CXXFLAGS='-Wp,-include,$(DEPTH)/config-defs.h -DMOZILLA_CLIENT'
|
|
_PREPROCESSOR_PREFIX="-Wp,"
|
|
_COMPILER_PREFIX="-Wc,"
|
|
_LINKER_PREFIX="-Wl,"
|
|
USE_PTHREADS=1
|
|
_PTHREAD_LDFLAGS=""
|
|
LIBS="$LIBS -L/usr/lib -lsocket -lm -lstdc++"
|
|
HAVE_DEV_ZERO=1
|
|
;;
|
|
|
|
*-openbsd*)
|
|
DLL_SUFFIX=".so.1.0"
|
|
DSO_CFLAGS=''
|
|
DSO_PIC_CFLAGS='-fPIC'
|
|
DSO_LDOPTS='-shared -h $@'
|
|
MKSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
|
|
MKCSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
|
|
if $CC -E - -dM </dev/null | grep -v __ELF__ >/dev/null; then
|
|
DSO_LDOPTS="-Bshareable /usr/lib/c++rt0.o"
|
|
fi
|
|
if test "$LIBRUNPATH"; then
|
|
DSO_LDOPTS="-R$LIBRUNPATH $DSO_LDOPTS"
|
|
fi
|
|
;;
|
|
|
|
*-openvms*)
|
|
if test "$OS_TARGET" = "POSIX_for_OpenVMS_AXP"; then
|
|
dnl Hack...
|
|
_OPENVMS_CROSS_COMPILE=1
|
|
fi
|
|
MISSING_NSPR="yes"
|
|
AC_DEFINE(NO_PW_GECOS)
|
|
AC_DEFINE(NO_UDSOCK)
|
|
AC_DEFINE(POLL_WITH_XCONNECTIONNUMBER)
|
|
USE_PTHREADS=1
|
|
;;
|
|
|
|
|
|
*-*-os2*)
|
|
MOZ_BUILD_ROOT=`pwd -D`
|
|
USE_SHORT_LIBNAME=1
|
|
BIN_SUFFIX='.exe'
|
|
OBJ_SUFFIX=obj
|
|
LIB_SUFFIX=lib
|
|
DLL_SUFFIX=.dll
|
|
ASM_SUFFIX=asm
|
|
DLLTOOL=''
|
|
LD='$(CC)'
|
|
DSO_CFLAGS=''
|
|
DSO_PIC_CFLAGS=''
|
|
OS_ARCH=OS2
|
|
OS_TARGET=OS2
|
|
|
|
case "$target" in
|
|
*-*-os2_emx)
|
|
_PEDANTIC=''
|
|
AR=emxomfar
|
|
AR_FLAGS='-p256 r $@'
|
|
CFLAGS="-Zmtd -Zomf $CFLAGS"
|
|
CXXFLAGS="-Zmtd -Zomf $CXXFLAGS"
|
|
DSO_LDOPTS='-Zomf -Zdll -Zmt -Zcrtdll -Zlinker /NOO'
|
|
BIN_FLAGS='-Zlinker /PM:VIO -Zlinker /ST:0x30000'
|
|
IMPLIB='emximp -o'
|
|
FILTER='emxexp'
|
|
AC_DEFINE(OS2)
|
|
AC_DEFINE(XP_OS2_EMX)
|
|
AC_DEFINE(OS2EMX_PLAIN_CHAR)
|
|
MOZ_COMPONENT_NSPR_LIBS='-L$(DIST)/lib $(NSPR_LIBS)'
|
|
MOZ_COMPONENT_XPCOM_LIBS='-L$(DIST)/lib $(DIST)/lib/xpcom.lib'
|
|
XPCOM_LIBS='-L$(DIST)/lib -lxpcom'
|
|
;;
|
|
|
|
*-*-os2_vacpp)
|
|
# MOZ_BUILD_ROOT="$ROOT"`pwd -D`
|
|
AR=-ilib
|
|
AR_FLAGS='/NOL /NOI /O:$(subst /,\\,$@)'
|
|
AR_LIST='/L'
|
|
AR_EXTRACT='-*'
|
|
AR_DELETE='-'
|
|
AS=alp
|
|
ASFLAGS='-Mb'
|
|
AS_DASH_C_FLAG=''
|
|
LD='-ilink'
|
|
TARGET_MD_ARCH=os2
|
|
CFLAGS="/Q /qlibansi /Gd+ /Gm+ /Su4 /Mp /Tl9"
|
|
CXXFLAGS="/Q /qlibansi /Gd+ /Gm+ /Su4 /Mp /Tl9 /Gx+"
|
|
MOZ_DEBUG_FLAGS="/Ti+"
|
|
MOZ_OPTIMIZE_FLAGS="/O+ /qtune=pentium /qarch=pentium"
|
|
LDFLAGS="/NOL /M"
|
|
MOZ_DEBUG_LDFLAGS="/DE"
|
|
MOZ_OPTIMIZE_LDFLAGS="/EXEPACK:2 /PACKCODE /PACKDATA"
|
|
DSO_LDOPTS=''
|
|
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)'
|
|
;;
|
|
esac
|
|
;;
|
|
|
|
alpha*-*-osf*)
|
|
if test "$GNU_CC"; then
|
|
DSO_LDOPTS='-shared -Wl,-soname -Wl,$@'
|
|
else
|
|
MOZ_DEBUG_FLAGS='-g3'
|
|
ASFLAGS='-I$(topsrcdir)/xpcom/reflect/xptcall/public -g -std1'
|
|
CFLAGS="$CFLAGS -std1 -ieee"
|
|
CXXFLAGS="$CXXFLAGS "'-noexceptions -ieee -ptr $(DIST)/cxx_repository'
|
|
DSO_LDOPTS='-shared -msym -expect_unresolved \* -soname $@ -update_registry $(DIST)/so_locations'
|
|
DSO_CFLAGS=
|
|
DSO_PIC_CFLAGS=
|
|
MKCSHLIB='$(CC) $(CFLAGS) $(DSO_LDOPTS) -o $@'
|
|
MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -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
|
|
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)
|
|
if test "$no_x" = "yes"; then
|
|
MOZ_WIDGET_TOOLKIT='photon'
|
|
TK_CFLAGS='-I/usr/nto/include/photon'
|
|
TK_LIBS='-lphoton -lphrender'
|
|
AC_DEFINE(NO_X11)
|
|
fi
|
|
;;
|
|
|
|
*-rhapsody*)
|
|
DLL_SUFFIX=".dylib"
|
|
DSO_LDOPTS='-compatibility_version 1 -current_version 1'
|
|
AC_DEFINE(NO_X11)
|
|
AC_DEFINE(DARWIN)
|
|
AC_DEFINE(RHAPSODY)
|
|
AC_DEFINE(TARGET_CARBON)
|
|
AC_DEFINE(TARGET_API_MAC_CARBON)
|
|
ENABLE_TESTS=
|
|
MOZ_WIDGET_TOOLKIT='mac'
|
|
TK_LIBS='/System/Library/Frameworks/Carbon.framework/Carbon'
|
|
CFLAGS="$CFLAGS -traditional-cpp -fno-common -I/System/Library/Frameworks/Carbon.framework/Headers"
|
|
CXXFLAGS="$CXXFLAGS -traditional-cpp -fno-common -I/System/Library/Frameworks/Carbon.framework/Headers"
|
|
MKSHLIB='$(CXX) $(CXXFLAGS) -arch ppc $(DSO_LDOPTS) -o $@'
|
|
MKCSHLIB='$(CC) $(CFLAGS) $(DSO_LDOPTS) -o $@'
|
|
MKSHLIB_FORCE_ALL=''
|
|
MKSHLIB_UNFORCE_ALL=''
|
|
;;
|
|
|
|
*-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 -h $@'
|
|
fi
|
|
;;
|
|
|
|
dnl the qsort routine under solaris is faulty
|
|
*-solaris*)
|
|
AC_DEFINE(BROKEN_QSORT)
|
|
TARGET_NSPR_MDCPUCFG='\"md/_solaris32.cfg\"'
|
|
SYSTEM_MAKEDEPEND=
|
|
if test -z "$GNU_CC"; then
|
|
NS_USE_NATIVE=1
|
|
AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
|
|
LDFLAGS='-xildoff'
|
|
MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -o $@'
|
|
MKCSHLIB='$(CC) $(CFLAGS) $(DSO_LDOPTS) -o $@'
|
|
MKSHLIB_FORCE_ALL='-Qoption ld -z,allextract'
|
|
MKSHLIB_UNFORCE_ALL=''
|
|
DSO_LDOPTS='-G -Qoption ld -z,muldefs -h $@'
|
|
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=''
|
|
else
|
|
ASFLAGS="$ASFLAGS -fPIC"
|
|
MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -o $@'
|
|
MKCSHLIB='$(CC) $(CFLAGS) $(DSO_LDOPTS) -o $@'
|
|
DSO_LDOPTS='-G -h $@'
|
|
_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"
|
|
;;
|
|
|
|
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"; then
|
|
NO_LD_ARCHIVE_FLAGS=1
|
|
fi
|
|
case "$target" in
|
|
*-*-os2_*)
|
|
NO_LD_ARCHIVE_FLAGS=
|
|
;;
|
|
*-aix4.3*)
|
|
NO_LD_ARCHIVE_FLAGS=
|
|
;;
|
|
*-openvms*)
|
|
NO_LD_ARCHIVE_FLAGS=
|
|
;;
|
|
esac
|
|
AC_SUBST(NO_LD_ARCHIVE_FLAGS)
|
|
|
|
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
|
|
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(ICE, IceFlush, [XICE_LIBS="-lICE"],, $XLIBS)
|
|
AC_CHECK_LIB(SM, SmcCloseConnection, [XSM_LIBS="-lSM"],, $XLIBS)
|
|
AC_CHECK_LIB(Xt, XtFree, [ XT_LIBS="-lXt"],
|
|
[MISSING_X="$MISSING_X -lXt"], $X_PRE_LIBS $XLIBS)
|
|
AC_CHECK_LIB(Xmu, XmuLookupString, [XMU_LIBS="-lXmu"],
|
|
[MISSING_X="$MISSING_X -lXmu"], $X_PRE_LIBS $XLIBS $XT_LIBS $XEXT_LIBS)
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = Check for Xinerama
|
|
dnl =
|
|
dnl ========================================================
|
|
AC_CHECK_LIB(Xinerama, XineramaIsActive, [MOZ_XINERAMA_LIBS="-lXinerama"],,
|
|
$XLIBS $XEXT_LIBS)
|
|
AC_CHECK_HEADER(X11/extensions/Xinerama.h)
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = Check for XIE
|
|
dnl =
|
|
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 =
|
|
dnl = If XIE is present and is desired, turn it on
|
|
dnl =
|
|
dnl ====================================================
|
|
case $target in
|
|
*-hpux*)
|
|
;;
|
|
*)
|
|
HAVE_XIE=1
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
LDFLAGS="$_SAVE_LDFLAGS"
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = --enable-toolkit
|
|
dnl =
|
|
dnl = Select the default x toolkit
|
|
dnl =
|
|
dnl ========================================================
|
|
AC_ARG_ENABLE(toolkit,
|
|
[ --enable-toolkit=\$val Enable \$val fe (defaults to gtk)],
|
|
[ if test "$enableval" = "motif" \
|
|
-o "$enableval" = "gtk" \
|
|
-o "$enableval" = "qt" \
|
|
-o "$enableval" = "gtk2" \
|
|
-o "$enableval" = "xlib"
|
|
then
|
|
dnl nglayout only supports building with one toolkit,
|
|
dnl so ignore everything after the first comma (",").
|
|
MOZ_WIDGET_TOOLKIT=`echo "$enableval" | sed -e "s/,.*$//"`
|
|
else
|
|
AC_MSG_ERROR(Toolkit must be xlib, gtk, gtk2, qt, or motif.)
|
|
fi],
|
|
|
|
[ MOZ_WIDGET_TOOLKIT="gtk" ])
|
|
fi # $no_x
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = If NSPR was not detected in the system,
|
|
dnl = use the one in the source tree (mozilla/nsprpub)
|
|
dnl =
|
|
dnl ========================================================
|
|
|
|
MOZ_ARG_WITH_STRING(system-nspr,
|
|
[ --without-system-nspr Skip system installed NSPR checks],
|
|
[ if test "$withval" = "no"; then
|
|
_NO_NSPR=1
|
|
fi])
|
|
|
|
if test -z "$_NO_NSPR"; then
|
|
AM_PATH_NSPR(4.0.0, [MOZ_NATIVE_NSPR=1], [MOZ_NATIVE_NSPR=])
|
|
fi
|
|
|
|
if test -z "$MOZ_NATIVE_NSPR"; then
|
|
AC_MSG_WARN(Building local copy of NSPR)
|
|
NSPR_CFLAGS='`$(DEPTH)/nsprpub/config/nspr-config --prefix=$(DIST) --cflags`'
|
|
case "$target" in
|
|
*-*-os2_vacpp)
|
|
NSPR_LIBS='$(DIST)/lib/nspr'$NSPR_VERSION'.lib $(DIST)/lib/plc'$NSPR_VERSION'.lib $(DIST)/lib/plds'$NSPR_VERSION'.lib '$_PTHREAD_LDFLAGS''
|
|
;;
|
|
*)
|
|
NSPR_LIBS='`$(DEPTH)/nsprpub/config/nspr-config --prefix=$(DIST) --libs`'
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = --enable-xinerama
|
|
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 =
|
|
dnl ========================================================
|
|
|
|
|
|
MOZ_ARG_ENABLE_BOOL(xinerama,
|
|
[ --enable-xinerama Enable Xinerama support
|
|
( not safe for Red Hat 7.0 ) ],
|
|
[ if test -n "$MOZ_XINERAMA_LIBS" && \
|
|
test -n "$ac_cv_header_X11_extensions_Xinerama_h"; then
|
|
MOZ_ENABLE_XINERAMA=1
|
|
AC_DEFINE(MOZ_ENABLE_XINERAMA)
|
|
fi ]
|
|
)
|
|
|
|
|
|
MOZ_WIDGET_TOOLKIT_LDFLAGS='-lwidget_$(MOZ_WIDGET_TOOLKIT)'
|
|
MOZ_GFX_TOOLKIT_LDFLAGS='-lgfx_$(MOZ_WIDGET_TOOLKIT) $(MOZ_XLIBRGB_LDFLAGS)'
|
|
WIDGET_DLL='\"libwidget_$(MOZ_WIDGET_TOOLKIT)$(DLL_SUFFIX)\"'
|
|
GFXWIN_DLL='\"libgfx_$(MOZ_GFX_TOOLKIT)$(DLL_SUFFIX)\"'
|
|
|
|
case "$target_os" in
|
|
beos*)
|
|
MOZ_WIDGET_TOOLKIT="beos"
|
|
;;
|
|
|
|
nto*)
|
|
MOZ_WIDGET_TOOLKIT="photon"
|
|
AC_DEFINE(NO_X11)
|
|
TK_CFLAGS='-I/usr/include/photon'
|
|
TK_LIBS='-lph -lphrender'
|
|
;;
|
|
|
|
os2*)
|
|
MOZ_WIDGET_TOOLKIT=os2
|
|
MOZ_WIDGET_TOOLKIT_LDFLAGS='$(DIST)/lib/wdgt$(MOZ_WIDGET_TOOLKIT)'
|
|
MOZ_GFX_TOOLKIT_LDFLAGS='$(DIST)/lib/gfx_$(MOZ_WIDGET_TOOLKIT)'
|
|
WIDGET_DLL='\"wdgt$(MOZ_WIDGET_TOOLKIT)$(DLL_SUFFIX)\"'
|
|
GFXWIN_DLL='\"gfx_$(MOZ_GFX_TOOLKIT)$(DLL_SUFFIX)\"'
|
|
;;
|
|
esac
|
|
|
|
dnl XXX BROKEN dnl ========================================================
|
|
dnl XXX BROKEN dnl =
|
|
dnl XXX BROKEN dnl = --enable-gfx-toolkit
|
|
dnl XXX BROKEN dnl =
|
|
dnl XXX BROKEN dnl = Select which toolkit to use for gfx (rendering)
|
|
dnl XXX BROKEN dnl =
|
|
dnl XXX BROKEN dnl = Choices are:
|
|
dnl XXX BROKEN dnl =
|
|
dnl XXX BROKEN dnl = gtk
|
|
dnl XXX BROKEN dnl = motif
|
|
dnl XXX BROKEN dnl = xlib
|
|
dnl XXX BROKEN dnl =
|
|
dnl XXX BROKEN dnl = Default is whatever MOZ_WIDGET_TOOLKIT is
|
|
dnl XXX BROKEN dnl =
|
|
dnl XXX BROKEN dnl = The only valid combinations are:
|
|
dnl XXX BROKEN dnl =
|
|
dnl XXX BROKEN dnl = widget gfx
|
|
dnl XXX BROKEN dnl = ------ ---
|
|
dnl XXX BROKEN dnl = gtk gtk
|
|
dnl XXX BROKEN dnl = motif motif
|
|
dnl XXX BROKEN dnl = xlib xlib
|
|
dnl XXX BROKEN dnl =
|
|
dnl XXX BROKEN dnl = motif xlib (broken)
|
|
dnl XXX BROKEN dnl = gtk xlib (not tested yet)
|
|
dnl XXX BROKEN dnl =
|
|
dnl XXX BROKEN dnl ========================================================
|
|
dnl XXX BROKEN dnl MOZ_GFX_TOOLKIT=$MOZ_WIDGET_TOOLKIT
|
|
dnl XXX BROKEN dnl
|
|
dnl XXX BROKEN dnl AC_ARG_ENABLE(gfx-toolkit,
|
|
dnl XXX BROKEN dnl [ --enable-gfx-toolkit=\$val Enable \$val fe (defaults to same as widget)],
|
|
dnl XXX BROKEN dnl [ MOZ_GFX_TOOLKIT=`echo "$enableval" | sed -e "s/,.*$//"` ],
|
|
dnl XXX BROKEN dnl [])
|
|
dnl XXX BROKEN dnl
|
|
dnl XXX BROKEN dnl
|
|
dnl XXX BROKEN dnl if echo ":$MOZ_GFX_TOOLKIT" | grep "xlib" >/dev/null
|
|
dnl XXX BROKEN dnl then
|
|
dnl XXX BROKEN dnl MOZ_XLIBRGB_LDFLAGS=-lxlibrgb
|
|
dnl XXX BROKEN dnl MOZ_USING_XLIBRGB=1
|
|
dnl XXX BROKEN dnl
|
|
dnl XXX BROKEN dnl AC_DEFINE(MOZ_USING_XLIBRGB)
|
|
dnl XXX BROKEN dnl
|
|
dnl XXX BROKEN dnl AC_SUBST(MOZ_XLIBRGB_LDFLAGS)
|
|
dnl XXX BROKEN dnl AC_SUBST(MOZ_USING_XLIBRGB)
|
|
dnl XXX BROKEN dnl fi
|
|
|
|
dnl ========================================================
|
|
dnl = =
|
|
dnl = Enable the toolkit as needed =
|
|
dnl = =
|
|
dnl ========================================================
|
|
|
|
if test "$MOZ_WIDGET_TOOLKIT" = "gtk"
|
|
then
|
|
MOZ_ENABLE_GTK=1
|
|
MOZ_ENABLE_XREMOTE=1
|
|
AC_DEFINE(MOZ_WIDGET_GTK)
|
|
fi
|
|
|
|
if test "$MOZ_WIDGET_TOOLKIT" = "gtk2"
|
|
then
|
|
MOZ_ENABLE_GTK2=1
|
|
AC_DEFINE(MOZ_WIDGET_GTK2)
|
|
fi
|
|
|
|
if test "$MOZ_WIDGET_TOOLKIT" = "xlib"
|
|
then
|
|
MOZ_ENABLE_XLIB=1
|
|
MOZ_ENABLE_XREMOTE=1
|
|
AC_DEFINE(MOZ_WIDGET_XLIB)
|
|
fi
|
|
|
|
if test "$MOZ_WIDGET_TOOLKIT" = "qt"
|
|
then
|
|
MOZ_ENABLE_QT=1
|
|
MOZ_ENABLE_XREMOTE=1
|
|
AC_DEFINE(MOZ_WIDGET_QT)
|
|
fi
|
|
|
|
if test "$MOZ_WIDGET_TOOLKIT" = "motif"
|
|
then
|
|
MOZ_ENABLE_MOTIF=1
|
|
MOZ_ENABLE_XREMOTE=1
|
|
AC_DEFINE(MOZ_WIDGET_MOTIF)
|
|
fi
|
|
|
|
if test "$MOZ_WIDGET_TOOLKIT" = "photon"
|
|
then
|
|
MOZ_ENABLE_PHOTON=1
|
|
AC_DEFINE(MOZ_WIDGET_PHOTON)
|
|
fi
|
|
|
|
|
|
if test "$MOZ_ENABLE_XREMOTE"; then
|
|
AC_DEFINE(MOZ_ENABLE_XREMOTE)
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl = =
|
|
dnl = --with-gtk =
|
|
dnl = =
|
|
dnl = Gtk support hackery =
|
|
dnl = =
|
|
dnl ========================================================
|
|
if test "$no_x" != "yes"
|
|
then
|
|
AC_ARG_WITH(gtk,
|
|
[ --with-gtk Enable GTK+ support ],
|
|
[
|
|
if test "$withval" = "yes"
|
|
then
|
|
MOZ_ENABLE_GTK=1
|
|
else
|
|
MOZ_ENABLE_GTK=
|
|
fi
|
|
])
|
|
fi
|
|
|
|
if test "$MOZ_ENABLE_GTK"
|
|
then
|
|
AM_PATH_GTK($GTK_VERSION,,
|
|
AC_MSG_ERROR(Test for GTK failed.))
|
|
|
|
dnl ========================================================
|
|
dnl = =
|
|
dnl = --with-java-supplement =
|
|
dnl = =
|
|
dnl = Blackwood Java Code =
|
|
dnl = =
|
|
dnl ========================================================
|
|
if test "$no_x" != "yes"
|
|
then
|
|
AC_ARG_WITH(java-supplement,
|
|
[ --with-java-supplement Enable Blackwood Java Code],
|
|
[
|
|
if test "$withval" = "yes"
|
|
then
|
|
MOZ_JAVA_SUPPLEMENT=1
|
|
else
|
|
MOZ_JAVA_SUPPLEMENT=
|
|
fi
|
|
])
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = GLE support
|
|
dnl =
|
|
dnl = See http://www.SoftHome.net/pub/users/timj/gle/index.htm
|
|
dnl =
|
|
dnl ========================================================
|
|
MOZ_GLE=
|
|
MOZ_GLE_LDFLAGS=
|
|
|
|
AC_ARG_WITH(gle,
|
|
[ --with-gle GLE support (for debugging gtk widgets) ],
|
|
[
|
|
if test "$withval" = "yes"
|
|
then
|
|
MOZ_GLE=1
|
|
MOZ_GLE_LDFLAGS=-lgle
|
|
AC_DEFINE(MOZ_GLE)
|
|
else
|
|
MOZ_GLE=
|
|
MOZ_GLE_LDFLAGS=
|
|
fi
|
|
])
|
|
|
|
AC_ARG_WITH(static-gtk,
|
|
[ --with-static-gtk Link GTK statically if possible],
|
|
sysstaticgtk=$withval)
|
|
|
|
if test "$sysstaticgtk" != "yes"
|
|
then
|
|
MOZ_GTK_LDFLAGS=$GTK_LIBS
|
|
|
|
if test "$MOZ_GLE"
|
|
then
|
|
MOZ_GTK_LDFLAGS=`echo $MOZ_GTK_LDFLAGS | sed -e 's/-lgtk/-lgle -lgtk/'`
|
|
fi
|
|
else
|
|
changequote(,)
|
|
|
|
GTK_LIBS_LOC=`echo $GTK_LIBS | sed 's/\(.*\)\(-lgtk.*\)/\1/'`
|
|
|
|
GTK_STATIC_LOC=`echo $GTK_LIBS | sed 's/^ *-L\([^ ]*\) .*$/\1/'`
|
|
GTK_STATIC=`echo $GTK_LIBS | sed 's/^.*-l\(gtk[^ ]*\) .*/\1/'`
|
|
GDK_STATIC=`echo $GTK_LIBS | sed 's/^.*-l\(gdk[^ ]*\) .*/\1/'`
|
|
|
|
GLIB_STATIC_LOC=`echo $GTK_LIBS | sed -e 's/^.*-lgdk[^ ]* *-L\([^ ]*\).*$/\1/' -e 's/^.* -lgdk[^ ]* .*$//'`
|
|
if test ! "$GLIB_STATIC_LOC" ; then
|
|
GLIB_STATIC_LOC=$GTK_STATIC_LOC
|
|
fi
|
|
GMODULE_STATIC=`echo $GTK_LIBS | sed 's/^.*-l\(gmodule[^ ]*\) .*/\1/'`
|
|
GLIB_STATIC=`echo $GTK_LIBS | sed 's/^.*-l\(glib[^ ]*\) .*/\1/'`
|
|
|
|
GTK_OTHER_LIBS=`echo $GTK_LIBS | sed 's/^.*-lglib *\(.*\)/\1/'`
|
|
|
|
changequote([,])
|
|
|
|
MOZ_GTK_LDFLAGS="$GTK_STATIC_LOC/lib${GTK_STATIC}.a"
|
|
MOZ_GTK_LDFLAGS="$MOZ_GTK_LDFLAGS $GTK_STATIC_LOC/lib${GDK_STATIC}.a"
|
|
MOZ_GTK_LDFLAGS="$MOZ_GTK_LDFLAGS $GLIB_STATIC_LOC/lib${GMODULE_STATIC}.a"
|
|
MOZ_GTK_LDFLAGS="$MOZ_GTK_LDFLAGS $GLIB_STATIC_LOC/lib${GLIB_STATIC}.a"
|
|
MOZ_GTK_LDFLAGS="$MOZ_GTK_LDFLAGS $GTK_LIBS_LOC $GTK_OTHER_LIBS"
|
|
fi
|
|
|
|
MOZ_GTK_CFLAGS=$GTK_CFLAGS
|
|
|
|
fi
|
|
dnl ========================================================
|
|
dnl = =
|
|
dnl = End Gtk support hackery =
|
|
dnl = =
|
|
dnl = --disable-mozilla-gtk is down below because =
|
|
dnl = order matters to the Build Configurator. =
|
|
dnl = =
|
|
dnl ========================================================
|
|
|
|
dnl ========================================================
|
|
dnl = Gtk2 support
|
|
dnl ========================================================
|
|
|
|
if test "$MOZ_ENABLE_GTK2"
|
|
then
|
|
PKG_CHECK_MODULES(MOZ_GTK2, gtk+-2.0 >= 1.3.7)
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl = =
|
|
dnl = --with-xprint =
|
|
dnl = =
|
|
dnl = Xprint support hackery =
|
|
dnl = =
|
|
dnl ========================================================
|
|
if test "$no_x" != "yes"
|
|
then
|
|
MOZ_ENABLE_XPRINT=1
|
|
|
|
_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 support ],
|
|
[
|
|
if test "$enableval" = "no"; then
|
|
MOZ_ENABLE_XPRINT=
|
|
fi
|
|
])
|
|
if test "$MOZ_ENABLE_XPRINT"; then
|
|
AC_MSG_WARN([Xprint support enabled])
|
|
else
|
|
AC_MSG_WARN([Xprint support disabled])
|
|
fi
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl = =
|
|
dnl = End Xprint support hackery =
|
|
dnl = =
|
|
dnl ========================================================
|
|
|
|
dnl ========================================================
|
|
dnl = =
|
|
dnl = --with-motif =
|
|
dnl = =
|
|
dnl = Motif support hackery =
|
|
dnl = =
|
|
dnl ========================================================
|
|
if test "$no_x" != "yes"
|
|
then
|
|
AC_ARG_WITH(motif,
|
|
[ --with-motif Enable Motif support ],
|
|
[
|
|
if test "$withval" = "yes"
|
|
then
|
|
MOZ_ENABLE_MOTIF=1
|
|
else
|
|
MOZ_ENABLE_MOTIF=
|
|
fi
|
|
])
|
|
fi
|
|
|
|
if test "$MOZ_ENABLE_MOTIF"
|
|
then
|
|
AC_MSG_CHECKING(for motif insanity)
|
|
|
|
if test "$x_includes"
|
|
then
|
|
MOTIF_XINCS="-xif -I$x_includes"
|
|
fi
|
|
|
|
detect_motif="${srcdir}/config/mkdetect/detect_motif.sh -cc $CC $MOTIF_XINCS"
|
|
MOTIF_VERSION=`${detect_motif}`
|
|
MOTIF_INCLUDES=`${detect_motif} -if`
|
|
MOTIF_STATIC_FLAGS=`${detect_motif} -sf`
|
|
MOTIF_DYNAMIC_FLAGS=`${detect_motif} -df`
|
|
MOTIF_DYNAMIC_PATHS=`${detect_motif} -dp`
|
|
dnl MOTIF_REQUIRES_XPM=`${detect_motif} -xpm`
|
|
MOTIF_REQUIRES_XPM="False"
|
|
|
|
${srcdir}/config/mkdetect/detect_motif.sh --cleanup
|
|
|
|
if test "$MOTIF_REQUIRES_XPM" = "True" -o "$MOTIF_VERSION" = "2.1"
|
|
then
|
|
_SAVE_LDFLAGS="$LDFLAGS"
|
|
LDFLAGS="$XLDFLAGS $LDFLAGS"
|
|
fi
|
|
|
|
if test "$MOTIF_REQUIRES_XPM" = "True"
|
|
then
|
|
AC_CHECK_LIB(Xpm, XpmWriteFileFromImage,
|
|
XPM_LIBS="-lXpm",
|
|
[MISSING_MOTIF="$MISSING_MOTIF -lXpm"], $XLIBS)
|
|
fi
|
|
|
|
if test "$MOTIF_VERSION" = "2.1"
|
|
then
|
|
AC_CHECK_LIB(Xp, XpGetPrinterList,
|
|
MOTIF_XP_LIBS="-lXp",
|
|
[MISSING_MOTIF="$MISSING_MOTIF -lXp"], $XEXT_LIBS $XLIBS)
|
|
fi
|
|
|
|
LDFLAGS="$_SAVE_LDFLAGS"
|
|
|
|
MOZ_MOTIF_LDFLAGS="$XLDFLAGS $MOZ_MOTIF_LDFLAGS"
|
|
|
|
if test "$MOTIF_STATIC_LIB" = "unknown" -a "$MOTIF_DYNAMIC_LIB" = "unknown"
|
|
then
|
|
AC_MSG_RESULT(no)
|
|
else
|
|
AC_MSG_RESULT(yes)
|
|
fi
|
|
|
|
# Get rid of offending error values
|
|
if test "$MOTIF_DYNAMIC_PATHS" = "unknown"
|
|
then
|
|
MOTIF_DYNAMIC_PATHS=
|
|
fi
|
|
|
|
if test "$MOTIF_DYNAMIC_FLAGS" = "unknown"
|
|
then
|
|
MOTIF_DYNAMIC_FLAGS=
|
|
fi
|
|
|
|
if test "$MOTIF_STATIC_FLAGS" = "unknown"
|
|
then
|
|
MOTIF_STATIC_FLAGS=
|
|
fi
|
|
|
|
if test "$MOTIF_INCLUDE_DIR" = "unknown"
|
|
then
|
|
MOTIF_INCLUDE_DIR=
|
|
fi
|
|
|
|
MOZ_MOTIF_LDFLAGS="$MOTIF_XP_LIBS $MOZ_MOTIF_LDFLAGS $X_LIBS $XT_LIBS $XMU_LIBS $XPM_LIBS $XEXT_LIBS $X11_LIBS $XSM_LIBS $XICE_LIBS"
|
|
|
|
AC_ARG_WITH(static-motif,
|
|
[ --with-static-motif Link Motif statically if possible],
|
|
sysstaticmotif=$withval)
|
|
|
|
if test "$sysstaticmotif" != "yes"; then
|
|
_SAVE_LDFLAGS="$LDFLAGS"
|
|
LDFLAGS="$MOTIF_DYNAMIC_PATHS $XLDFLAGS $LDFLAGS"
|
|
AC_CHECK_LIB(Xm, XmStringCreate,
|
|
MOZ_MOTIF_LDFLAGS="$MOTIF_DYNAMIC_PATHS $MOTIF_DYNAMIC_FLAGS $MOZ_MOTIF_LDFLAGS",
|
|
[MISSING_MOTIF="$MISSING_MOTIF $MOTIF_DYNAMIC_FLAGS"],
|
|
$MOTIF_DYNAMIC_PATHS $MOZ_MOTIF_LDFLAGS $XLIBS)
|
|
LDFLAGS="$_SAVE_LDFLAGS"
|
|
else
|
|
AC_CHECK_LIB(Xm, XmStringCreate,
|
|
MOZ_MOTIF_LDFLAGS="$MOTIF_STATIC_FLAGS $MOZ_MOTIF_LDFLAGS",
|
|
[MISSING_MOTIF="$MISSING_MOTIF $MOTIF_STATIC_FLAGS"],
|
|
$MOZ_MOTIF_LDFLAGS $XLIBS)
|
|
fi
|
|
|
|
MOZ_MOTIF_CFLAGS="$MOTIF_INCLUDES"
|
|
fi
|
|
dnl ========================================================
|
|
dnl = =
|
|
dnl = End Motif support hackery =
|
|
dnl = =
|
|
dnl ========================================================
|
|
|
|
|
|
dnl ========================================================
|
|
dnl = =
|
|
dnl = --with-xlib =
|
|
dnl = =
|
|
dnl = Xlib support hackery =
|
|
dnl = =
|
|
dnl ========================================================
|
|
if test "$no_x" != "yes"
|
|
then
|
|
AC_ARG_WITH(xlib,
|
|
[ --with-xlib Enable xlib support ],
|
|
[
|
|
if test "$withval" = "yes"
|
|
then
|
|
MOZ_ENABLE_XLIB=1
|
|
else
|
|
MOZ_ENABLE_XLIB=
|
|
fi
|
|
])
|
|
fi
|
|
|
|
if test "$MOZ_ENABLE_XLIB"
|
|
then
|
|
AC_MSG_CHECKING(for xlib insanity)
|
|
AC_MSG_RESULT(yes)
|
|
|
|
MOZ_XLIB_CFLAGS="$X_CFLAGS"
|
|
MOZ_XLIB_LDFLAGS="$XLDFLAGS"
|
|
MOZ_XLIB_LDFLAGS="$MOZ_XLIB_LDFLAGS $XEXT_LIBS $X11_LIBS"
|
|
fi
|
|
dnl ========================================================
|
|
dnl = =
|
|
dnl = End Xlib support hackery =
|
|
dnl = =
|
|
dnl ========================================================
|
|
|
|
|
|
dnl ========================================================
|
|
dnl = =
|
|
dnl = --with-qt =
|
|
dnl = =
|
|
dnl = Qt support hackery =
|
|
dnl = =
|
|
dnl ========================================================
|
|
if test "$no_x" != "yes"
|
|
then
|
|
AC_ARG_WITH(qt,
|
|
[ --with-qt Enable Qt support ],
|
|
[
|
|
if test "$withval" = "yes"
|
|
then
|
|
MOZ_ENABLE_QT=1
|
|
else
|
|
MOZ_ENABLE_QT=
|
|
fi
|
|
])
|
|
fi
|
|
|
|
if test "$MOZ_ENABLE_QT"
|
|
then
|
|
QTINCDIR="/include"
|
|
AC_ARG_WITH(qtdir,
|
|
[ --with-qtdir=\$dir Specify Qt directory ],
|
|
[ QTDIR=$withval])
|
|
|
|
if test -z "$QTDIR"; then
|
|
QTDIR="/usr"
|
|
QTINCDIR="/include/qt"
|
|
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
|
|
AC_MSG_RESULT([$HOST_MOC])
|
|
MOC=$HOST_MOC
|
|
|
|
QT_CFLAGS="-I${QTDIR}${QTINCDIR} -DQT_GENUINE_STR"
|
|
QT_LIBS="-L/usr/X11R6/lib -L${QTDIR}/lib -lqt -lXext -lX11"
|
|
dnl AM_PATH_QT($QT_VERSION,,
|
|
dnl AC_MSG_ERROR(Test for QT failed.))
|
|
|
|
AC_ARG_WITH(static-qt,
|
|
[ --with-static-qt Link qt statically if possible],
|
|
sysstaticqt=$withval)
|
|
|
|
if test "$sysstaticqt" != "yes"; then
|
|
MOZ_QT_LDFLAGS=$QT_LIBS
|
|
else
|
|
changequote(,)
|
|
|
|
QT_LIBS_LOC=`echo $QT_LIBS | sed 's/\(.*\)\(-lqt.*\)/\1/'`
|
|
|
|
QT_STATIC_LOC=`echo $QT_LIBS | sed 's/^ *-L\([^ ]*\) .*$/\1/'`
|
|
QT_STATIC=`echo $QT_LIBS | sed 's/^.*-l\(qt[^ ]*\) .*/\1/'`
|
|
|
|
changequote([,])
|
|
|
|
MOZ_QT_LDFLAGS="$QT_STATIC_LOC/lib${QT_STATIC}.a"
|
|
MOZ_QT_LDFLAGS="$MOZ_QT_LDFLAGS $QT_STATIC_LOC/lib${QT_STATIC}.a"
|
|
MOZ_QT_LDFLAGS="$MOZ_QT_LDFLAGS $QT_LIBS_LOC"
|
|
fi
|
|
|
|
MOZ_QT_CFLAGS=$QT_CFLAGS
|
|
|
|
AC_LANG_CPLUSPLUS
|
|
|
|
_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_C
|
|
fi
|
|
dnl ========================================================
|
|
dnl = =
|
|
dnl = End Qt support hackery =
|
|
dnl = =
|
|
dnl ========================================================
|
|
|
|
|
|
|
|
dnl ========================================================
|
|
dnl = =
|
|
dnl = Define TK_LIBS and TK_CFLAGS for apps that need to =
|
|
dnl = link in the toolkit (like viewer) =
|
|
dnl = =
|
|
dnl ========================================================
|
|
if test "$MOZ_WIDGET_TOOLKIT" = "gtk"
|
|
then
|
|
TK_CFLAGS="$MOZ_GTK_CFLAGS"
|
|
TK_LIBS="$MOZ_GTK_LDFLAGS"
|
|
fi
|
|
|
|
if test "$MOZ_WIDGET_TOOLKIT" = "gtk2"
|
|
then
|
|
TK_CFLAGS="$MOZ_GTK2_CFLAGS"
|
|
TK_LIBS="$MOZ_GTK2_LDFLAGS"
|
|
fi
|
|
|
|
if test "$MOZ_WIDGET_TOOLKIT" = "xlib"
|
|
then
|
|
TK_CFLAGS="$MOZ_XLIB_CFLAGS"
|
|
TK_LIBS="$MOZ_XLIB_LDFLAGS"
|
|
fi
|
|
|
|
if test "$MOZ_WIDGET_TOOLKIT" = "qt"
|
|
then
|
|
TK_CFLAGS="$MOZ_QT_CFLAGS"
|
|
TK_LIBS="$MOZ_QT_LDFLAGS"
|
|
fi
|
|
|
|
if test "$MOZ_WIDGET_TOOLKIT" = "motif"
|
|
then
|
|
TK_CFLAGS="$MOZ_MOTIF_CFLAGS"
|
|
TK_LIBS="$MOZ_MOTIF_LDFLAGS"
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl = =
|
|
dnl = Make sure a default toolkit is set =
|
|
dnl = =
|
|
dnl ========================================================
|
|
AC_DEFINE_UNQUOTED(MOZ_DEFAULT_TOOLKIT,"$MOZ_WIDGET_TOOLKIT")
|
|
|
|
AC_SUBST(GTK_CONFIG)
|
|
AC_SUBST(TK_CFLAGS)
|
|
AC_SUBST(TK_LIBS)
|
|
|
|
AC_SUBST(MOZ_ENABLE_GTK)
|
|
AC_SUBST(MOZ_ENABLE_MOTIF)
|
|
AC_SUBST(MOZ_ENABLE_XLIB)
|
|
AC_SUBST(MOZ_ENABLE_GTK2)
|
|
AC_SUBST(MOZ_ENABLE_QT)
|
|
AC_SUBST(MOZ_ENABLE_PHOTON)
|
|
AC_SUBST(MOZ_ENABLE_XREMOTE)
|
|
AC_SUBST(MOZ_GTK_CFLAGS)
|
|
AC_SUBST(MOZ_GTK_LDFLAGS)
|
|
AC_SUBST(MOZ_GTK2_CFLAGS)
|
|
AC_SUBST(MOZ_GTK2_LDFLAGS)
|
|
AC_SUBST(MOZ_MOTIF_CFLAGS)
|
|
AC_SUBST(MOZ_MOTIF_LDFLAGS)
|
|
AC_SUBST(MOZ_XLIB_CFLAGS)
|
|
AC_SUBST(MOZ_XLIB_LDFLAGS)
|
|
AC_SUBST(MOZ_XPRINT_CFLAGS)
|
|
AC_SUBST(MOZ_XPRINT_LDFLAGS)
|
|
AC_SUBST(MOZ_ENABLE_XPRINT)
|
|
AC_SUBST(MOZ_QT_CFLAGS)
|
|
AC_SUBST(MOZ_QT_LDFLAGS)
|
|
AC_SUBST(MOZ_DEFAULT_TOOLKIT)
|
|
|
|
AC_SUBST(HAVE_XIE)
|
|
AC_SUBST(MOZ_XIE_LIBS)
|
|
|
|
AC_SUBST(MOZ_XINERAMA_LIBS)
|
|
AC_SUBST(MOZ_ENABLE_XINERAMA)
|
|
|
|
XCFLAGS="$X_CFLAGS"
|
|
|
|
AC_SUBST(XCFLAGS)
|
|
AC_SUBST(XLDFLAGS)
|
|
AC_SUBST(XLIBS)
|
|
|
|
AC_SUBST(MOC)
|
|
|
|
if test "$MOZ_ENABLE_GTK" || test "$MOZ_ENABLE_QT" \
|
|
|| test "$MOZ_ENABLE_XLIB" || test "$MOZ_ENABLE_MOTIF" \
|
|
|| test "$MOZ_ENABLE_GTK2"
|
|
then
|
|
AC_DEFINE(MOZ_X11)
|
|
fi
|
|
|
|
dnl Check for GLib and libIDL.
|
|
dnl ========================================================
|
|
SKIP_IDL_CHECK="no"
|
|
|
|
dnl = Allow users to disable libIDL checking for standalone modules
|
|
AC_ARG_WITH(libIDL,
|
|
[ --without-libIDL Skip check for libIDL],
|
|
[ if test "$withval" = "no"; then
|
|
SKIP_IDL_CHECK="yes"
|
|
fi ])
|
|
|
|
if test "$SKIP_IDL_CHECK" = "no"
|
|
then
|
|
AM_PATH_LIBIDL($LIBIDL_VERSION,,_LIBIDL_NOT_FOUND=1)
|
|
dnl
|
|
dnl If we don't have a libIDL config program & not cross-compiling,
|
|
dnl look for orbit-config instead.
|
|
dnl
|
|
if test -n "$_LIBIDL_NOT_FOUND" && test -z "$CROSS_COMPILE"; then
|
|
AC_PATH_PROGS(ORBIT_CONFIG, $ORBIT_CONFIG orbit-config)
|
|
if test -n "$ORBIT_CONFIG"; then
|
|
_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=
|
|
_LIBIDL_NOT_FOUND=
|
|
fi
|
|
fi
|
|
if test -n "$_LIBIDL_NOT_FOUND"; then
|
|
AC_MSG_ERROR([libIDL not found.
|
|
libIDL $LIBIDL_VERSION or higher is required.
|
|
See http://andrewtv.org/libIDL/ for more information.])
|
|
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"; 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
|
|
if test "$OS_TARGET" = "POSIX_for_OpenVMS_AXP"; then
|
|
LIBIDL_CFLAGS=`${LIBIDL_CONFIG}-VMS --cflags`
|
|
LIBIDL_LIBS=`${LIBIDL_CONFIG}-VMS --libs`
|
|
fi
|
|
fi
|
|
|
|
if test -z "${GLIB_CFLAGS}" || test -z "${GLIB_LIBS}" ; then
|
|
AM_PATH_GLIB(${GLIB_VERSION})
|
|
fi
|
|
|
|
AC_SUBST(LIBIDL_CFLAGS)
|
|
AC_SUBST(LIBIDL_LIBS)
|
|
AC_SUBST(GLIB_CFLAGS)
|
|
AC_SUBST(GLIB_LIBS)
|
|
|
|
dnl Checks for typedefs, structures, and compiler characteristics.
|
|
dnl ========================================================
|
|
AC_C_CONST
|
|
AC_TYPE_MODE_T
|
|
AC_TYPE_OFF_T
|
|
AC_TYPE_PID_T
|
|
AC_TYPE_SIZE_T
|
|
AC_TYPE_UID_T
|
|
AC_STRUCT_ST_BLKSIZE
|
|
|
|
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.
|
|
case "$target" in
|
|
*-*-os2_vacpp)
|
|
AC_DEFINE(__size_t)
|
|
AC_DEFINE(__off_t)
|
|
;;
|
|
esac
|
|
|
|
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 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
|
|
|
|
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)
|
|
|
|
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 <wchar.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 instead of CC since some versions of gcc
|
|
dnl 2.96-2.97 have a signed wchar_t in c++ only.
|
|
|
|
_SAVE_CFLAGS=$CFLAGS
|
|
_SAVE_CC=$CC
|
|
CC=$CXX
|
|
CFLAGS="$CFLAGS -fshort-wchar"
|
|
|
|
AC_CACHE_CHECK(for compiler -fshort-wchar option,
|
|
ac_cv_have_usable_wchar_option,
|
|
[AC_TRY_RUN([#include <wchar.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
|
|
dnl Since this is gcc-only, CC and CXX should take the same arguments.
|
|
CXXFLAGS="$CXXFLAGS -fshort-wchar"
|
|
else
|
|
CFLAGS=$_SAVE_CFLAGS
|
|
fi
|
|
CC=$_SAVE_CC
|
|
fi
|
|
|
|
dnl Checks for header files.
|
|
dnl ========================================================
|
|
AC_HEADER_DIRENT
|
|
dnl -ldir is a noop for OS/2
|
|
case "$target_os" in
|
|
os2*)
|
|
LIBS=
|
|
;;
|
|
esac
|
|
AC_CHECK_HEADERS(sys/byteorder.h compat.h getopt.h)
|
|
AC_CHECK_HEADERS(sys/bittypes.h memory.h unistd.h)
|
|
AC_CHECK_HEADERS(gnu/libc-version.h nl_types.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)
|
|
|
|
case $target in
|
|
*-aix4.3*)
|
|
;;
|
|
*)
|
|
AC_CHECK_HEADERS(sys/cdefs.h)
|
|
;;
|
|
esac
|
|
|
|
dnl Checks for libraries.
|
|
dnl ========================================================
|
|
case $target in
|
|
*-hpux11.*)
|
|
;;
|
|
*)
|
|
AC_CHECK_LIB(c_r, gethostbyname_r)
|
|
;;
|
|
esac
|
|
AC_CHECK_LIB(m, atan)
|
|
AC_CHECK_LIB(dl, dlopen)
|
|
if test ! "$GNU_CXX"; then
|
|
|
|
case $target in
|
|
*-solaris*)
|
|
LIBS="-lCrun $LIBS"
|
|
;;
|
|
*-aix*)
|
|
AC_CHECK_LIB(C_r, demangle)
|
|
;;
|
|
*)
|
|
AC_CHECK_LIB(C, demangle)
|
|
;;
|
|
esac
|
|
fi
|
|
dnl AC_CHECK_LIB(resolv, res_gethostbyaddr)
|
|
AC_CHECK_LIB(socket, socket)
|
|
dnl AC_CHECK_LIB(util, login)
|
|
dnl AC_CHECK_LIB(nsl, xdr_string)
|
|
dnl AC_CHECK_LIB(elf, elf_rawdata)
|
|
dnl AC_CHECK_LIB(intl, textdomain)
|
|
AC_CHECK_LIB(posix4, shm_open)
|
|
dnl AC_CHECK_LIB(w, iswupper)
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = pthread support
|
|
dnl =
|
|
dnl ========================================================
|
|
dnl
|
|
dnl Start by checking whether the system support pthreads
|
|
dnl
|
|
|
|
|
|
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
|
|
)
|
|
)
|
|
)
|
|
)
|
|
|
|
dnl
|
|
dnl Check the command line for --with-pthreads
|
|
dnl
|
|
AC_ARG_WITH(pthreads,
|
|
[ --with-pthreads Force use of system pthread library with NSPR ],
|
|
[if test "$withval" = "yes"
|
|
then
|
|
if test "$USE_PTHREADS"x = x
|
|
then
|
|
AC_MSG_ERROR([ --with-pthreads specified for a system without pthread support ]);
|
|
fi
|
|
else
|
|
USE_PTHREADS=
|
|
_PTHREAD_LDFLAGS=""
|
|
fi] )
|
|
|
|
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
|
|
CFLAGS="$CFLAGS -pthread"
|
|
CXXFLAGS="$CXXFLAGS -pthread"
|
|
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*|*-*-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=""
|
|
else
|
|
_PTHREAD_LDFLAGS="-lc_r"
|
|
fi
|
|
;;
|
|
|
|
*-*-linux*)
|
|
AC_DEFINE(_REENTRANT)
|
|
;;
|
|
|
|
*-*-nto*)
|
|
AC_DEFINE(_REENTRANT)
|
|
;;
|
|
|
|
*-aix4.3*)
|
|
AC_DEFINE(_REENTRANT)
|
|
;;
|
|
|
|
*-hpux11.*)
|
|
AC_DEFINE(_REENTRANT)
|
|
;;
|
|
|
|
*-*-os2*)
|
|
USE_PTHREADS=
|
|
_PTHREAD_LDFLAGS=
|
|
;;
|
|
|
|
alpha*-*-osf*)
|
|
AC_DEFINE(_REENTRANT)
|
|
;;
|
|
|
|
*-*-solaris*)
|
|
AC_DEFINE(_REENTRANT)
|
|
if test ! "$GNU_CC"; then
|
|
CFLAGS="$CFLAGS -mt"
|
|
CXXFLAGS="$CXXFLAGS -mt"
|
|
fi
|
|
;;
|
|
*-*-netbsd*)
|
|
USE_PTHREADS=
|
|
_PTHREAD_LDFLAGS=
|
|
esac
|
|
fi
|
|
|
|
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 See if mmap sees writes
|
|
dnl ========================================================
|
|
dnl For cross compiling, just define it as no, which is a safe default
|
|
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 localtime_r statvfs memmove rint)
|
|
AC_CHECK_FUNCS(nl_langinfo)
|
|
|
|
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
|
|
AC_LANG_C
|
|
|
|
dnl Does this platform require array notation to assign to a va_list?
|
|
dnl If cross-compiling, we assume va_list is "normal". If this breaks
|
|
dnl you, set ac_cv_valistisarray=true and maybe define HAVE_VA_LIST_AS_ARRAY
|
|
dnl also just to be sure.
|
|
AC_MSG_CHECKING(whether va_list assignments need array notation)
|
|
AC_CACHE_VAL(ac_cv_valistisarray,
|
|
[AC_TRY_RUN([#include <stdlib.h>
|
|
#include <stdarg.h>
|
|
void foo(int i, ...) {
|
|
va_list ap1, ap2;
|
|
va_start(ap1, i);
|
|
ap2 = ap1;
|
|
if (va_arg(ap2, int) != 123 || va_arg(ap1, int) != 123) { exit(1); }
|
|
va_end(ap1); va_end(ap2);
|
|
}
|
|
int main() { foo(0, 123); return(0); }],
|
|
[ac_cv_valistisarray=false],
|
|
[ac_cv_valistisarray=true],
|
|
[ac_cv_valistisarray=false])])
|
|
|
|
if test "$ac_cv_valistisarray" = true ; then
|
|
AC_DEFINE(HAVE_VA_LIST_AS_ARRAY)
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
|
|
dnl Check for dll-challenged libc's.
|
|
dnl This check is apparently only needed for Linux.
|
|
case "$target" in
|
|
*-linux*)
|
|
dnl ===================================================================
|
|
curdir=`pwd`
|
|
rm -f conftest* /tmp/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("./../tmp/conftest1.so",RTLD_LAZY);
|
|
dlopen("/tmp/conftest1.so",RTLD_LAZY);
|
|
dlopen("/tmp/../tmp/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
|
|
|
|
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 /tmp
|
|
cd /tmp
|
|
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 -f conftest* /tmp/conftest*
|
|
dnl ===================================================================
|
|
;;
|
|
esac
|
|
|
|
dnl By default, turn rtti and exceptions off on g++/egcs
|
|
dnl ========================================================
|
|
if test "$GNU_CXX"; then
|
|
|
|
_MOZ_RTTI_FLAGS=${_COMPILER_PREFIX}-fno-rtti
|
|
|
|
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=$ac_cv_cxx_exceptions_flags
|
|
fi
|
|
if test "$MIPSPRO_CXX"; then
|
|
_MOZ_EXCEPTIONS_FLAGS="-LANG:exceptions=OFF"
|
|
fi
|
|
|
|
dnl Put your C++ language/feature checks below
|
|
AC_LANG_CPLUSPLUS
|
|
|
|
AC_MSG_CHECKING(for ios::binary)
|
|
AC_CACHE_VAL(ac_cv_ios_binary,
|
|
[AC_TRY_COMPILE([#include <iostream.h>]
|
|
[#include <fstream.h>],
|
|
[char *buffer = "config.log";
|
|
fstream *mFileStream=new fstream(buffer, ios::binary);],
|
|
[ac_cv_ios_binary=true],
|
|
[ac_cv_ios_binary=false])])
|
|
if test "$ac_cv_ios_binary" = true ; then
|
|
AC_DEFINE(HAVE_IOS_BINARY)
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
|
|
|
|
AC_MSG_CHECKING(for ios::bin)
|
|
AC_CACHE_VAL(ac_cv_ios_bin,
|
|
[AC_TRY_COMPILE([#include <iostream.h>]
|
|
[#include <fstream.h>],
|
|
[char *buffer = "config.log";
|
|
fstream *mFileStream=new fstream(buffer, ios::bin);],
|
|
[ac_cv_ios_bin=true],
|
|
[ac_cv_ios_bin=false])])
|
|
if test "$ac_cv_ios_bin" = true ; then
|
|
AC_DEFINE(HAVE_IOS_BIN)
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
|
|
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
|
|
|
|
dnl Check for template specialization
|
|
dnl Test code and requirement from scc@netscape.com.
|
|
dnl Autoconf cut-and-paste job by shaver@mozilla.org.
|
|
AC_CACHE_CHECK(for C++ template specialization support,
|
|
ac_cv_cpp_template_specialization,
|
|
[AC_TRY_COMPILE(template <class T> struct X { int a; };
|
|
class Y {};
|
|
struct X<Y> { double a; };,
|
|
X<int> int_x;
|
|
X<Y> y_x;,
|
|
ac_cv_cpp_template_specialization=yes,
|
|
ac_cv_cpp_template_specialization=no)])
|
|
dnl The above test works fine for Sun's WorkShop 4.2 compiler, but
|
|
dnl dies horribly trying to build mozilla with HAVE_CPP_SPECIALIZATION
|
|
dnl defined. So, even though the output above will say yes, we force
|
|
dnl it to reconsider.... (5.0 works fine, though.)
|
|
dnl Info and testing provided by tor@cs.brown.edu.
|
|
case "$target" in
|
|
*-*-solaris*)
|
|
if test ! "$GNU_CC"; then
|
|
if test ! -z "`${CC} -V 2>&1 | head -1 | grep '4.2'`"; then
|
|
ac_cv_cpp_template_specialization=no
|
|
fi
|
|
fi
|
|
;;
|
|
esac
|
|
if test "$ac_cv_cpp_template_specialization" = yes ; then
|
|
AC_DEFINE(HAVE_CPP_SPECIALIZATION)
|
|
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 dont 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|.
|
|
AC_CACHE_CHECK(whether the C++ \"using\" keyword can change access,
|
|
ac_cv_cpp_access_changing_using,
|
|
[AC_TRY_COMPILE(class X { public: int go(const X&) {return 3;} };
|
|
class Y : public X {
|
|
public: int go(int) {return 2;}
|
|
private: using X::go;
|
|
};,
|
|
X x; Y y;,
|
|
ac_cv_cpp_access_changing_using=yes,
|
|
ac_cv_cpp_access_changing_using=no)])
|
|
if test "$ac_cv_cpp_access_changing_using" = 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 =
|
|
dnl = Internationalization checks
|
|
dnl =
|
|
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
|
|
|
|
|
|
dnl Mozilla specific options
|
|
dnl ========================================================
|
|
dnl The macros used for command line options
|
|
dnl are defined in build/autoconf/altoptions.m4.
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = Components and Features
|
|
dnl =
|
|
dnl ========================================================
|
|
MOZ_ARG_HEADER(Components and Features)
|
|
|
|
MOZ_ARG_DISABLE_BOOL(logging,
|
|
[ --disable-logging Disable logging facilities],
|
|
NS_DISABLE_LOGGING=1)
|
|
if test "$NS_DISABLE_LOGGING"; then
|
|
AC_DEFINE(NS_DISABLE_LOGGING)
|
|
else
|
|
AC_DEFINE(MOZ_LOGGING)
|
|
fi
|
|
|
|
dnl build Mail & News by default
|
|
MOZ_MAIL_NEWS=1
|
|
MOZ_ARG_DISABLE_BOOL(mailnews,
|
|
[ --disable-mailnews Disable building of mail & news components],
|
|
MOZ_MAIL_NEWS= )
|
|
if test "$MOZ_MAIL_NEWS"; then
|
|
AC_DEFINE(MOZ_MAIL_NEWS)
|
|
fi
|
|
AC_SUBST(MOZ_MAIL_NEWS)
|
|
|
|
dnl Turn on the new lightweight gfx text control frames
|
|
MOZ_ENDER_LITE=1
|
|
MOZ_ARG_DISABLE_BOOL(ender-lite,
|
|
[ --disable-ender-lite Disable new lightweight text control frames],
|
|
MOZ_ENDER_LITE= )
|
|
if test "$MOZ_ENDER_LITE"; then
|
|
AC_DEFINE(MOZ_ENDER_LITE)
|
|
fi
|
|
AC_SUBST(MOZ_ENDER_LITE)
|
|
|
|
dnl Turn on malloc tracing
|
|
NS_TRACE_MALLOC=
|
|
MOZ_ARG_ENABLE_BOOL(trace-malloc,
|
|
[ --enable-trace-malloc Enable malloc tracing],
|
|
NS_TRACE_MALLOC=1 )
|
|
if test "$NS_TRACE_MALLOC"; then
|
|
AC_DEFINE(NS_TRACE_MALLOC)
|
|
fi
|
|
AC_SUBST(NS_TRACE_MALLOC)
|
|
|
|
dnl Turn on reflow counting
|
|
MOZ_REFLOW_PERF=
|
|
MOZ_ARG_ENABLE_BOOL(reflow-perf,
|
|
[ --enable-reflow-perf Enable reflow performance tracing],
|
|
MOZ_REFLOW_PERF=1 )
|
|
if test "$MOZ_REFLOW_PERF"; then
|
|
AC_DEFINE(MOZ_REFLOW_PERF)
|
|
fi
|
|
AC_SUBST(MOZ_REFLOW_PERF)
|
|
|
|
dnl make sure that we compile in multi-processor support
|
|
NS_MT_SUPPORTED=1
|
|
AC_DEFINE(NS_MT_SUPPORTED)
|
|
|
|
dnl build the tests by default
|
|
ENABLE_TESTS=1
|
|
MOZ_ARG_DISABLE_BOOL(tests,
|
|
[ --disable-tests Do not build tests libraries & programs],
|
|
ENABLE_TESTS= )
|
|
|
|
dnl bi-directional support on by default
|
|
IBMBIDI=1
|
|
MOZ_ARG_DISABLE_BOOL(bidi,
|
|
[ --disable-bidi Disable bi-directional support],
|
|
IBMBIDI= )
|
|
if test "$IBMBIDI"; then
|
|
AC_DEFINE(IBMBIDI)
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = --enable-monolithic-toolkit
|
|
dnl =
|
|
dnl = We dont need to link in the toolkit statically into the
|
|
dnl = app. With the exception of some test programs (most
|
|
dnl = notably the gecko viewer) mozilla does not have any
|
|
dnl = toolkit specific code in the "app"
|
|
dnl =
|
|
dnl = The only places where toolkit specific code is needed
|
|
dnl = are:
|
|
dnl =
|
|
dnl = mozilla/widget
|
|
dnl = mozilla/widget/timer
|
|
dnl = mozilla/gfx
|
|
dnl =
|
|
dnl = These components themselves link with the toolkit. At
|
|
dnl = runtime, Mozilla will dlopen() these components and
|
|
dnl = use the code in them without having to link with them.
|
|
dnl =
|
|
dnl = This all happens through XPCOM.
|
|
dnl =
|
|
dnl = Doing this makes it possible to have one single set of
|
|
dnl = binaries for mozilla which can effectively use a
|
|
dnl = different widget toolkit at runtime.
|
|
dnl =
|
|
dnl = However, on some unik platforms, the linker (ld) and the
|
|
dnl = runtime loader (ld.so) might not be smart enough to
|
|
dnl = resolve toolkit dependencies linked into components
|
|
dnl = which are later dlopen()ed by mozilla.
|
|
dnl =
|
|
dnl = For this reason, the --enable-monolithic-toolkit flag
|
|
dnl = is provided. If set, it will cause the toolkit libs
|
|
dnl = to be linked in to mozilla itself, and not the
|
|
dnl = 3 components above (widget, gfx and timer).
|
|
dnl =
|
|
dnl = In the case statement following this comment, I have
|
|
dnl = forced the toolkit to be monolithic for all platforms
|
|
dnl = that are not Linux and Solaris, as these are the only
|
|
dnl = ones that I could test.
|
|
dnl =
|
|
dnl = If you have questions, comments, or problems getting
|
|
dnl = this to work on your platform, send me email:
|
|
dnl =
|
|
dnl = ramiro@fateware.com
|
|
dnl =
|
|
dnl ========================================================
|
|
|
|
dnl Assume life sucks
|
|
MOZ_MONOLITHIC_TOOLKIT=1
|
|
|
|
dnl The following are the only platforms I tested -ramiro
|
|
dnl OpenVMS added by Colin Blake
|
|
dnl Tru64 added by Jim Nance
|
|
dnl hpux added by John Gaunt workaround for bug 39747
|
|
dnl irix added for bug 53471
|
|
dnl nto added by Jerry Kirk
|
|
case "$target" in
|
|
*-*-linux*) MOZ_MONOLITHIC_TOOLKIT= ;;
|
|
*-*-solaris*) MOZ_MONOLITHIC_TOOLKIT= ;;
|
|
*-openvms*) MOZ_MONOLITHIC_TOOLKIT= ;;
|
|
*-bsdi*) MOZ_MONOLITHIC_TOOLKIT= ;;
|
|
*-freebsd*) MOZ_MONOLITHIC_TOOLKIT= ;;
|
|
*-netbsd*) MOZ_MONOLITHIC_TOOLKIT= ;;
|
|
*-openbsd*) MOZ_MONOLITHIC_TOOLKIT= ;;
|
|
*-*-aix*) MOZ_MONOLITHIC_TOOLKIT= ;;
|
|
*-*-osf*) MOZ_MONOLITHIC_TOOLKIT= ;;
|
|
*-hpux*) MOZ_MONOLITHIC_TOOLKIT= ;;
|
|
*-irix*) MOZ_MONOLITHIC_TOOLKIT= ;;
|
|
*-nto*) MOZ_MONOLITHIC_TOOLKIT= ;;
|
|
esac
|
|
|
|
|
|
MOZ_ARG_ENABLE_BOOL(monolithic-toolkit,
|
|
[ --enable-monolithic-toolkit
|
|
Link the toolkit into the app],
|
|
MOZ_MONOLITHIC_TOOLKIT=1)
|
|
|
|
|
|
if test "$MOZ_MONOLITHIC_TOOLKIT"
|
|
then
|
|
AC_DEFINE(MOZ_MONOLITHIC_TOOLKIT)
|
|
fi
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = End MOZ_MONOLITHIC_TOOLKIT hacks
|
|
dnl =
|
|
dnl ========================================================
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = --enable-modules=mod1,mod2
|
|
dnl =
|
|
dnl = Only selectively build modules
|
|
dnl =
|
|
dnl ========================================================
|
|
BUILD_MODULES=all
|
|
MOZ_ARG_ENABLE_STRING(modules,
|
|
[ --enable-modules Enable standalone build of specific modules],
|
|
[ BUILD_MODULES=`echo $enableval | sed 's/,/ /g'` ] )
|
|
dnl ========================================================
|
|
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = --diable-pic-dso-cflags
|
|
dnl =
|
|
dnl = A hack to disable the generation of PIC for shared libs
|
|
dnl =
|
|
dnl ========================================================
|
|
ENABLE_PIC_DSO_CFLAGS=1
|
|
|
|
MOZ_ARG_DISABLE_BOOL(pic-dso-cflags,
|
|
[ --disable-pic-dso-cflags
|
|
Do not generate PIC for shared libs],
|
|
ENABLE_PIC_DSO_CFLAGS= )
|
|
|
|
if test ! "$ENABLE_PIC_DSO_CFLAGS"
|
|
then
|
|
DSO_PIC_CFLAGS=""
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = Compiler Options
|
|
dnl =
|
|
dnl ========================================================
|
|
MOZ_ARG_HEADER(Compiler Options)
|
|
|
|
MOZ_ARG_ENABLE_BOOL(crash-on-assert,
|
|
[ --enable-crash-on-assert
|
|
Make NS_ASSERTION crash on Unix],
|
|
AC_DEFINE(UNIX_CRASH_ON_ASSERT))
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = --enable-lea
|
|
dnl =
|
|
dnl = Enable Lea malloc in xpcom. OFF by default.
|
|
dnl =
|
|
dnl ========================================================
|
|
|
|
MOZ_ARG_ENABLE_BOOL(lea,
|
|
[ --enable-lea Enable Lea malloc ],
|
|
[ XPCOM_USE_LEA=1
|
|
AC_DEFINE(XPCOM_USE_LEA)] )
|
|
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = --enable-optimize
|
|
dnl =
|
|
dnl = Enable code optimization. OFF by default.
|
|
dnl =
|
|
dnl ========================================================
|
|
MOZ_OPTIMIZE=
|
|
|
|
if test ! "$MOZ_OPTIMIZE_FLAGS"
|
|
then
|
|
MOZ_OPTIMIZE_FLAGS="-O"
|
|
fi
|
|
|
|
MOZ_ARG_ENABLE_STRING(optimize,
|
|
[ --enable-optimize(=val) Enable compiler optimizations (val, ie. -O2) ],
|
|
[ 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'`
|
|
fi
|
|
fi ])
|
|
|
|
if test "$MOZ_OPTIMIZE"
|
|
then
|
|
CFLAGS="$CFLAGS $MOZ_OPTIMIZE_FLAGS"
|
|
CXXFLAGS="$CXXFLAGS $MOZ_OPTIMIZE_FLAGS"
|
|
LDFLAGS="$LDFLAGS $MOZ_OPTIMIZE_LDFLAGS"
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = --enable-reorder
|
|
dnl =
|
|
dnl = Enable function reordering.
|
|
dnl =
|
|
dnl = Function reordering is off by default.
|
|
dnl =
|
|
dnl ========================================================
|
|
MOZ_REORDER=0
|
|
MOZ_ARG_ENABLE_STRING(reorder,
|
|
[ --enable-reorder Enable function reordering ],
|
|
[ if test "$enableval" != "no"; then
|
|
MOZ_REORDER=1
|
|
fi ])
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = --disable-debug
|
|
dnl =
|
|
dnl = Disable building with debug info.
|
|
dnl =
|
|
dnl = Debugging is ON by default so that we get more useful
|
|
dnl = bug reports.
|
|
dnl =
|
|
dnl ========================================================
|
|
MOZ_DEBUG=1
|
|
|
|
if test ! "$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_DISABLE_BOOL(debug,
|
|
[ --disable-debug Disable building with debug info],
|
|
MOZ_DEBUG=)
|
|
|
|
MOZ_DEBUG_ENABLE_DEFS="-DDEBUG"
|
|
case "${target_os}" in
|
|
beos*)
|
|
MOZ_DEBUG_ENABLE_DEFS="$MOZ_DEBUG_ENABLE_DEFS -DDEBUG_${USER}"
|
|
;;
|
|
*)
|
|
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 "$MOZ_DEBUG"
|
|
then
|
|
LDFLAGS="$LDFLAGS $MOZ_DEBUG_LDFLAGS"
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = --enable-strip-libs
|
|
dnl =
|
|
dnl = Enable stripping of .so and .a libs
|
|
dnl =
|
|
dnl ========================================================
|
|
if test -z "$MOZ_POST_DSO_LIB_COMMAND"; then
|
|
MOZ_POST_DSO_LIB_COMMAND=true
|
|
fi
|
|
if test -z "$MOZ_POST_PROGRAM_COMMAND"; then
|
|
MOZ_POST_PROGRAM_COMMAND=true
|
|
fi
|
|
|
|
case "$target" in
|
|
*-*-os2*)
|
|
MOZ_POST_DSO_LIB_COMMAND='@echo'
|
|
MOZ_POST_PROGRAM_COMMAND='@echo'
|
|
;;
|
|
esac
|
|
|
|
MOZ_ARG_ENABLE_BOOL(strip-libs,
|
|
[ --enable-strip-libs Enable stripping of .so and .a libs ],
|
|
[ MOZ_POST_DSO_LIB_COMMAND='$(STRIP)'
|
|
MOZ_POST_PROGRAM_COMMAND='$(STRIP)' ])
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS
|
|
dnl =
|
|
dnl = Flags to strip unused symbols from .so components
|
|
dnl =
|
|
dnl = On on Linux non debug builds by default
|
|
dnl =
|
|
dnl ========================================================
|
|
MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS=
|
|
|
|
if test ! "$MOZ_DEBUG"
|
|
then
|
|
case "$host" in
|
|
*-linux*)
|
|
MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,--version-script,$(BUILD_TOOLS)/gnu-ld-scripts/components-version-script'
|
|
;;
|
|
*-nto*)
|
|
MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,--version-script,$(BUILD_TOOLS)/gnu-ld-scripts/components-version-script'
|
|
;;
|
|
esac
|
|
fi
|
|
dnl ========================================================
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = --enable-elf-dynstr-gc
|
|
dnl =
|
|
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= )
|
|
|
|
AC_SUBST(USE_ELF_DYNSTR_GC)
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = --with-debug-modules=module1,^module2,etc
|
|
dnl =
|
|
dnl = Enable/disable debug for specific modules only
|
|
dnl = module names beginning with ^ will be disabled (this is because you can't
|
|
dnl = pass args to --without-debug-modules)
|
|
dnl =
|
|
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 ========================================================
|
|
dnl =
|
|
dnl = --with-debug-modules=module1,^module2,etc
|
|
dnl =
|
|
dnl = Enable/disable debug for specific modules only
|
|
dnl = module names beginning with ^ will be disabled
|
|
dnl = (this is because you can't pass args to --without-debug-modules)
|
|
dnl =
|
|
dnl ========================================================
|
|
|
|
MOZ_ARG_WITH_STRING(debug-modules,
|
|
[ --with-debug-modules Enable/disable debug info for specific modules],
|
|
[ MOZ_DEBUG_MODULES=`echo $withval | sed 's/,/ /g'` ] )
|
|
dnl ========================================================
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = --with-dbgrinfo-modules=module1,^module2,etc
|
|
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 =
|
|
dnl ========================================================
|
|
|
|
MOZ_DBGRINFO_MODULES=""
|
|
|
|
MOZ_ARG_WITH_STRING(dbgrinfo-modules,
|
|
[ --with-dbgrinfo-modules Enable/disable debugger info for specific modules],
|
|
[ for i in `echo $withval | 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 ========================================================
|
|
dnl =
|
|
dnl = --enable-crypto
|
|
dnl =
|
|
dnl = Build Personal Security Manager
|
|
dnl =
|
|
dnl ========================================================
|
|
MOZ_PSM=
|
|
|
|
MOZ_ARG_ENABLE_BOOL(crypto,
|
|
[ --enable-crypto Enable crypto (Personal Security Manager)],
|
|
MOZ_PSM=1 )
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = --enable-jsd
|
|
dnl =
|
|
dnl = JS Debugger XPCOM component (js/jsd)
|
|
dnl =
|
|
dnl ========================================================
|
|
|
|
MOZ_JSDEBUGGER=
|
|
|
|
MOZ_ARG_ENABLE_BOOL(jsd,
|
|
[ --enable-jsd Enable JavaScript debug library],
|
|
MOZ_JSDEBUGGER=1)
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = --with-extensions=extension1,extension2,
|
|
dnl =
|
|
dnl = Enable compilation of specific extension modules
|
|
dnl =
|
|
dnl ========================================================
|
|
|
|
dnl Need cookie and wallet to build mozilla, this should
|
|
dnl not be the case, 18352 has been filed.
|
|
dnl http://bugzilla.mozilla.org/show_bug.cgi?id=18352
|
|
MOZ_EXTENSIONS_DEFAULT="cookie wallet content-packs xml-rpc xmlextras help transformiix"
|
|
MOZ_EXTENSIONS_ALL="$MOZ_EXTENSIONS_DEFAULT irc xmlterm inspector access-builtin venkman"
|
|
|
|
MOZ_ARG_WITH_STRING(extensions,
|
|
[ --with-extensions Enable extensions (dirs in extensions/)],
|
|
[ MOZ_EXTENSIONS=""
|
|
for option in `echo $withval | 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"
|
|
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_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 Disable jar packaging
|
|
MOZ_ARG_DISABLE_BOOL(jar-packaging,
|
|
[ --disable-jar-packaging Disable jar packaging of chrome (Deprecated) ],
|
|
MOZ_DISABLE_JAR_PACKAGING=1
|
|
)
|
|
|
|
MOZ_ARG_ENABLE_STRING(chrome-format,
|
|
[ --enable-chrome-format=[jar|flat|both]
|
|
Select format of chrome files (defaults to jar)],
|
|
MOZ_CHROME_FILE_FORMAT=`echo $enableval | tr A-Z a-z`)
|
|
|
|
if test -z "$MOZ_CHROME_FILE_FORMAT"; then
|
|
if test -n "$MOZ_DISABLE_JAR_PACKAGING"; then
|
|
MOZ_CHROME_FILE_FORMAT=flat
|
|
else
|
|
MOZ_CHROME_FILE_FORMAT=jar
|
|
fi
|
|
fi
|
|
|
|
if test "$MOZ_CHROME_FILE_FORMAT" != "jar" &&
|
|
test "$MOZ_CHROME_FILE_FORMAT" != "flat" &&
|
|
test "$MOZ_CHROME_FILE_FORMAT" != "both"; then
|
|
AC_MSG_ERROR([--enable-chrome-format must be set to either jar, flat or both])
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl Determine how to handle dependencies
|
|
dnl ========================================================
|
|
MOZ_AUTO_DEPS=1
|
|
MOZ_ARG_DISABLE_BOOL(auto-deps,
|
|
[ --disable-auto-deps Do not automatically generate dependency info],
|
|
MOZ_AUTO_DEPS=)
|
|
|
|
if test -n "$MOZ_AUTO_DEPS"; then
|
|
_cpp_md_flag=
|
|
MOZ_ARG_DISABLE_BOOL(md,
|
|
[ --disable-md Do not use compiler-based dependencies ],
|
|
[],
|
|
[_cpp_md_flag=1],
|
|
[dnl Default is to turn on -MD if using GNU-compatible compilers
|
|
if test "$GNU_CC" -a "$GNU_CXX"; then
|
|
_cpp_md_flag=1
|
|
fi])
|
|
if test "$_cpp_md_flag"; then
|
|
COMPILER_DEPEND=1
|
|
_DEPEND_CFLAGS='$(filter-out %/.pp,-Wp,-MD,$(MDDEPDIR)/$(*F).pp)'
|
|
fi
|
|
fi # MOZ_AUTO_DEPS
|
|
MDDEPDIR='.deps'
|
|
AC_SUBST(MOZ_AUTO_DEPS)
|
|
AC_SUBST(COMPILER_DEPEND)
|
|
AC_SUBST(MDDEPDIR)
|
|
|
|
|
|
MOZ_ARG_DISABLE_BOOL(pedantic,
|
|
[ --disable-pedantic Issue all warnings demanded by strict ANSI C ],
|
|
_PEDANTIC= )
|
|
if test "$_PEDANTIC"; then
|
|
AC_LANG_CPLUSPLUS
|
|
_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"
|
|
AC_LANG_C
|
|
|
|
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 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.)
|
|
|
|
AC_LANG_CPLUSPLUS
|
|
_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")])
|
|
|
|
AC_LANG_C
|
|
CXXFLAGS="$_SAVE_CXXFLAGS"
|
|
|
|
if test "$ac_nscap_nonconst_opeq_bug" = "yes" ; then
|
|
AC_DEFINE(NSCAP_DONT_PROVIDE_NONCONST_OPEQ)
|
|
fi
|
|
|
|
dnl pass -Wno-long-long to the compiler
|
|
MOZ_ARG_ENABLE_BOOL(long-long-warning,
|
|
[ --enable-long-long-warning
|
|
Pass -Wno-long-long to the compiler],
|
|
_IGNORE_LONG_LONG_WARNINGS=)
|
|
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 C++ rtti (g++/egcs only - for now)
|
|
dnl Should be smarter and check that the compiler does indeed have rtti
|
|
MOZ_ARG_ENABLE_BOOL(cpp-rtti,
|
|
[ --enable-cpp-rtti Enable C++ RTTI ],
|
|
[ _MOZ_RTTI_FLAGS=-frtti ]
|
|
)
|
|
|
|
dnl C++ exceptions (g++/egcs only - for now)
|
|
dnl Should be smarter and check that the compiler does indeed have exceptions
|
|
MOZ_ARG_ENABLE_BOOL(cpp-exceptions,
|
|
[ --enable-cpp-exceptions Enable C++ exceptions ],
|
|
[ if test "$MIPSPRO_CXX"; then
|
|
_MOZ_EXCEPTIONS_FLAGS=-LANG:exceptions=ON
|
|
else
|
|
_MOZ_EXCEPTIONS_FLAGS=-fexceptions
|
|
fi
|
|
]
|
|
)
|
|
|
|
dnl Enable Ultrasparc specific compiler options
|
|
MOZ_ARG_ENABLE_BOOL(ultrasparc,
|
|
[ --enable-ultrasparc Enable UltraSPARC specific compiler options ],
|
|
[case "$target_os" in
|
|
solaris*)
|
|
case $OS_TEST in
|
|
sun4u)
|
|
if test -z "$GNU_CC"; then
|
|
ASFLAGS='-xarch=v8plus -DULTRA_SPARC -P -L -D_ASM -D__STDC__=0 -K PIC'
|
|
AC_DEFINE(ULTRA_SPARC)
|
|
else
|
|
CFLAGS="${CFLAGS} -Wa,-xarch=v8plus,-DULTRA_SPARC,-P,-L,-D_ASM,-D__STDC__=0"
|
|
CXXFLAGS="${CXXFLAGS} -Wa,-xarch=v8plus,-DULTRA_SPARC,-P,-L,-D_ASM,-D__STDC__=0,-K,PIC"
|
|
AC_DEFINE(ULTRA_SPARC)
|
|
fi
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
])
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = Profiling and Instrumenting
|
|
dnl =
|
|
dnl ========================================================
|
|
MOZ_ARG_HEADER(Profiling and Instrumenting)
|
|
|
|
MOZ_ARG_ENABLE_BOOL(eazel-profiler,
|
|
[ --enable-eazel-profiler Enable Corel/Eazel profiler],
|
|
[ ENABLE_EAZEL_PROFILER=1
|
|
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"])
|
|
|
|
MOZ_ARG_WITH_STRING(profile-modules,
|
|
[ --with-profile-modules Enable/disable profiling for specific modules],
|
|
[ MOZ_PROFILE_MODULES=`echo $withval | sed 's/,/ /g'` ] )
|
|
dnl ========================================================
|
|
dnl ========================================================
|
|
|
|
dnl Enable performance metrics.
|
|
MOZ_ARG_ENABLE_BOOL(perf-metrics,
|
|
[ --enable-perf-metrics Enable performance metrics],
|
|
MOZ_PERF_METRICS=1
|
|
AC_DEFINE(MOZ_PERF_METRICS))
|
|
|
|
MOZ_ARG_ENABLE_BOOL(insure,
|
|
[ --enable-insure Enable insure++ instrumentation (linux only)],
|
|
[ MOZ_INSURE="insure" MOZ_INSURIFYING=1 MOZ_INSURE_DIRS="." MOZ_INSURE_EXCLUDE_DIRS="config" ])
|
|
|
|
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" )
|
|
|
|
MOZ_ARG_ENABLE_BOOL(boehm,
|
|
[ --enable-boehm Enable the Boehm Garbage Collector],
|
|
AC_DEFINE(GC_LEAK_DETECTOR)
|
|
GC_LEAK_DETECTOR=1
|
|
)
|
|
|
|
dnl This will enable logging of addref, release, ctor, dtor.
|
|
MOZ_ARG_ENABLE_BOOL(logrefcnt,
|
|
[ --enable-logrefcnt Enable Logging of refcounts (default=debug) ],
|
|
AC_DEFINE(FORCE_BUILD_REFCNT_LOGGING),
|
|
AC_DEFINE(NO_BUILD_REFCNT_LOGGING))
|
|
|
|
|
|
dnl mozilla/tools/leaky not part of default build.
|
|
MOZ_ARG_ENABLE_BOOL(leaky,
|
|
[ --enable-leaky Enable leaky memory tool],
|
|
MOZ_LEAKY=1)
|
|
|
|
dnl mozilla/tools/leaky not part of default build.
|
|
MOZ_ARG_ENABLE_BOOL(jprof,
|
|
[ --enable-jprof Enable jprof profiling tool (pull tools/jprof)],
|
|
MOZ_JPROF=1
|
|
AC_DEFINE(MOZ_JPROF))
|
|
|
|
dnl mozilla/js/src/xpconnect/tools is not part of default build.
|
|
MOZ_ARG_ENABLE_BOOL(xpctools,
|
|
[ --enable-xpctools Build JS profiling tool],
|
|
MOZ_XPCTOOLS=1)
|
|
|
|
AC_MSG_CHECKING(webshell leaks option)
|
|
MOZ_ARG_ENABLE_BOOL(detect-webshell-leaks,
|
|
[ --enable-detect-webshell-leaks
|
|
Enable detection of webshell leaks
|
|
(default=yes, unless --disable-debug is used)],
|
|
[ AC_MSG_RESULT(on (user enabled))
|
|
DETECT_WEBSHELL_LEAKS=1 ],
|
|
[ AC_MSG_RESULT(off (user disabled)) ],
|
|
[ if test "$MOZ_DEBUG"; then
|
|
AC_MSG_RESULT(on (debug build))
|
|
DETECT_WEBSHELL_LEAKS=1
|
|
else
|
|
AC_MSG_RESULT(off (non-debug build))
|
|
fi])
|
|
|
|
if test "$DETECT_WEBSHELL_LEAKS"; then
|
|
AC_DEFINE(DETECT_WEBSHELL_LEAKS)
|
|
AC_SUBST(DETECT_WEBSHELL_LEAKS)
|
|
fi
|
|
|
|
MOZ_ARG_DISABLE_BOOL(double-buffer,
|
|
[ --disable-double-buffer Disable double buffering],
|
|
AC_DEFINE(NO_DOUBLE_BUFFER))
|
|
|
|
MOZ_ARG_ENABLE_BOOL(wrap-malloc,
|
|
[ --enable-wrap-malloc Wrap malloc calls (gnu linker only)],
|
|
[ 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])
|
|
|
|
MOZ_ARG_WITH_STRING(wrap-malloc,
|
|
[ --with-wrap-malloc=\$dir Location of malloc wrapper library],
|
|
WRAP_MALLOC_LIB=$withval)
|
|
|
|
MOZ_ARG_ENABLE_BOOL(efence,
|
|
[ --enable-efence Link with Electric Fence],
|
|
AC_CHECK_LIB(efence,malloc))
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = MOZ_DEMANGLE_UNDEFINED_SYMBOLS
|
|
dnl =
|
|
dnl = Support for demangling undefined symbols
|
|
dnl =
|
|
dnl ========================================================
|
|
AC_CHECK_LIB(iberty, cplus_demangle, [HAVE_DEMANGLE=1],
|
|
HAVE_DEMANGLE=, "-liberty")
|
|
|
|
MOZ_DEMANGLE_SYMBOLS=
|
|
|
|
if test "$HAVE_DEMANGLE"
|
|
then
|
|
case "$target" in
|
|
*-linux*)
|
|
# Demangle only for debug or trace-malloc builds
|
|
if test "$MOZ_DEBUG" || test "$NS_TRACE_MALLOC"
|
|
then
|
|
MOZ_DEMANGLE_SYMBOLS=1
|
|
AC_DEFINE(MOZ_DEMANGLE_SYMBOLS)
|
|
fi
|
|
;;
|
|
*-solaris*)
|
|
# Demangle only for debug builds which are using the Gnu compiler.
|
|
if test "$GNU_CC"
|
|
then
|
|
if test "$MOZ_DEBUG"
|
|
then
|
|
MOZ_DEMANGLE_SYMBOLS=1
|
|
AC_DEFINE(MOZ_DEMANGLE_SYMBOLS)
|
|
fi
|
|
fi
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
AC_SUBST(MOZ_DEMANGLE_SYMBOLS)
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = End MOZ_DEMANGLE_SYMBOLS
|
|
dnl =
|
|
dnl ========================================================
|
|
|
|
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = Misc. Options
|
|
dnl =
|
|
dnl ========================================================
|
|
MOZ_ARG_HEADER(Misc. Options)
|
|
|
|
MOZ_ARG_ENABLE_STRING(homedir,
|
|
[ --enable-homedir=\$val Set the homedir to \$val],
|
|
dnl [ Location of the mozilla user directory (default is ~/.mozilla).],
|
|
[if echo "$enableval" | grep "\/" >/dev/null; then
|
|
AC_MSG_ERROR("Homedir must be single relative path.")
|
|
else
|
|
AC_DEFINE_UNQUOTED(MOZ_USER_DIR,"$enableval")
|
|
fi],
|
|
AC_DEFINE(MOZ_USER_DIR,".mozilla") )
|
|
|
|
MOZ_ARG_ENABLE_BOOL(idltool,
|
|
[ --enable-idlc Build idl tool ],
|
|
BUILD_IDLC=1)
|
|
|
|
MOZ_ARG_ENABLE_BOOL(xterm-updates,
|
|
[ --enable-xterm-updates Update XTERM titles with current command.],
|
|
MOZ_UPDATE_XTERM=1)
|
|
|
|
dnl
|
|
dnl By default, we will now build with LDAP support, which you can
|
|
dnl turn off with the --disable-ldap option. We also added the
|
|
dnl ldap-experimental flag, which is for experimental LDAP code,
|
|
dnl not currently turned on in the default build.
|
|
dnl
|
|
if test "$BUILD_MODULES" = "all" || test `echo "$BUILD_MODULES" | grep -c ldap` -ne 0; then
|
|
MOZ_LDAP_XPCOM=1
|
|
fi
|
|
|
|
dnl
|
|
dnl --disable-ldap
|
|
dnl
|
|
MOZ_ARG_DISABLE_BOOL(ldap,
|
|
[ --disable-ldap Disable LDAP support],
|
|
MOZ_LDAP_XPCOM=
|
|
)
|
|
|
|
dnl --enable-ldap-experimental
|
|
dnl
|
|
MOZ_ARG_ENABLE_BOOL(ldap-experimental,
|
|
[ --enable-ldap-experimental
|
|
Enable LDAP experimental features],
|
|
MOZ_LDAP_XPCOM_EXPERIMENTAL=1
|
|
)
|
|
|
|
dnl --disable-xul
|
|
dnl
|
|
MOZ_XUL=1
|
|
MOZ_ARG_DISABLE_BOOL(xul,
|
|
[ --disable-xul Disable XUL ],
|
|
MOZ_XUL= )
|
|
if test "$MOZ_XUL"; then
|
|
AC_DEFINE(MOZ_XUL)
|
|
AC_DEFINE(INCLUDE_XUL)
|
|
fi
|
|
AC_SUBST(MOZ_XUL)
|
|
AC_SUBST(INCLUDE_XUL)
|
|
|
|
dnl --enable mathml
|
|
dnl TODO: handle include files here ?
|
|
dnl
|
|
MOZ_ARG_ENABLE_BOOL(mathml,
|
|
[ --enable-mathml Enable MathML ],
|
|
MOZ_MATHML=1
|
|
AC_DEFINE(MOZ_MATHML))
|
|
|
|
dnl
|
|
dnl --enable svg
|
|
dnl TODO: handle include files here ?
|
|
dnl
|
|
MOZ_ARG_ENABLE_BOOL(svg,
|
|
[ --enable-svg Enable SVG ],
|
|
MOZ_SVG=1
|
|
AC_DEFINE(MOZ_SVG))
|
|
|
|
dnl To build transformiix standalone, set TX_EXE while configuring
|
|
if test "$TX_EXE"; then
|
|
AC_DEFINE(TX_EXE)
|
|
dnl need to know about endianess for standalone
|
|
AC_C_BIGENDIAN
|
|
if test $ac_cv_c_bigendian = yes; then
|
|
AC_DEFINE(IS_BIG_ENDIAN)
|
|
fi
|
|
fi
|
|
|
|
dnl Need the contents of config-defs.h in the build logs
|
|
VERBOSE_CONFIG_DEFS=1
|
|
AC_ARG_ENABLE(verbose-config-defs,
|
|
[ --disable-verbose-config-defs
|
|
Do not output the contents of config-defs.h],
|
|
[if test "$enableval" = "no"; then
|
|
VERBOSE_CONFIG_DEFS=
|
|
fi])
|
|
|
|
dnl libpr0n on by default
|
|
AC_DEFINE(USE_IMG2)
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = --diable-dtd-debug
|
|
dnl =
|
|
dnl = Disable some DTD debugging code in the parser that
|
|
dnl = breaks on some compilers because of evil and broken
|
|
dnl = streams code in htmlparser/src/prstrm.cpp
|
|
dnl =
|
|
dnl ========================================================
|
|
MOZ_DISABLE_DTD_DEBUG=
|
|
|
|
MOZ_ARG_DISABLE_BOOL(dtd-debug,
|
|
[ --disable-dtd-debug Disable some DTD debuggin code in the parser)],
|
|
MOZ_DISABLE_DTD_DEBUG=1
|
|
AC_DEFINE(MOZ_DISABLE_DTD_DEBUG) )
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = OS/2 Build Options
|
|
dnl =
|
|
dnl ========================================================
|
|
MOZ_ARG_HEADER(OS/2 Build Options)
|
|
|
|
MOZ_ARG_WITH_STRING(os2emx,
|
|
[ --with-os2emx=\$val Build for OS/2 with emx+gcc, set to OMF or A.OUT],
|
|
[ MOZ_OS2_TOOLS=EMX
|
|
MOZ_OS2_EMX_OBJECTFORMAT="$withval"
|
|
AC_DEFINE(XP_OS2_EMX) ])
|
|
|
|
MOZ_ARG_WITH_STRING(os2vacpp,
|
|
[ --with-os2vacpp Build for OS/2 with VAC++],
|
|
[ MOZ_OS2_TOOLS=VACPP
|
|
AC_DEFINE(XP_OS2_VACPP) ])
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = End OS/2 Build Options
|
|
dnl =
|
|
dnl ========================================================
|
|
|
|
BUILD_SHARED_LIBS=1
|
|
BUILD_STATIC_LIBS=
|
|
MOZ_STATIC_COMPONENT_LIBS=
|
|
|
|
MOZ_ARG_DISABLE_BOOL(shared,
|
|
[ --disable-shared Disable building of internal shared libs],
|
|
BUILD_SHARED_LIBS=)
|
|
|
|
MOZ_ARG_ENABLE_BOOL(static,
|
|
[ --enable-static Enable building of internal static libs],
|
|
BUILD_STATIC_LIBS=1
|
|
MOZ_STATIC_COMPONENT_LIBS=1)
|
|
|
|
if (test -z "$BUILD_SHARED_LIBS" && test -z "$BUILD_STATIC_LIBS") ||
|
|
(test -n "$BUILD_SHARED_LIBS" && test -n "$BUILD_STATIC_LIBS") ; then
|
|
AC_MSG_ERROR([Only one of --enable-shared or --enable-static must be specified.])
|
|
fi
|
|
|
|
dnl ========================================================
|
|
|
|
MOZ_ARG_ENABLE_STRING(static-components,
|
|
[ --enable-static-components
|
|
Build meta-component from specific components],
|
|
[ MOZ_STATIC_COMPONENTS=`echo $enableval | sed 's/,/ /g'` ] )
|
|
|
|
dnl ========================================================
|
|
dnl Enable the use of predefined meta components
|
|
dnl ========================================================
|
|
|
|
MOZ_ARG_ENABLE_STRING(meta-components,
|
|
[ --enable-meta-components
|
|
Build predefined meta-components],
|
|
[ MOZ_META_COMPONENTS=`echo $enableval | sed 's/,/ /g'` ] )
|
|
|
|
if test -n "$MOZ_STATIC_COMPONENTS" && test -n "$MOZ_META_COMPONENTS"; then
|
|
AC_MSG_ERROR([Simultaneous use of static-components & meta-components is not supported.])
|
|
fi
|
|
|
|
dnl ========================================================
|
|
|
|
case "$target" in
|
|
*-*-aix*)
|
|
if test -z "${BUILD_STATIC_LIBS}" -o -n "${BUILD_SHARED_LIBS}"; then
|
|
if test -f /usr/lpp/xlC/bin/makeC++SharedLib_r; then
|
|
AIX_SHLIB_BIN='/usr/lpp/xlC/bin/makeC++SharedLib_r'
|
|
elif test -f /usr/ibmcxx/bin/makeC++SharedLib_r; then
|
|
AIX_SHLIB_BIN='/usr/ibmcxx/bin/makeC++SharedLib_r'
|
|
fi
|
|
AC_PATH_PROG(AIX_SHLIB_BIN, makeC++SharedLib_r, :)
|
|
if test ! -n "$AIX_SHLIB_BIN"; then
|
|
echo
|
|
echo "*** Unable to locate makeC++SharedLib_r, needed for creation of shared"
|
|
echo "*** libraries on AIX. You will only be able to build static libraries."
|
|
echo
|
|
BUILD_STATIC_LIBS=1
|
|
BUILD_SHARED_LIBS=
|
|
fi
|
|
fi
|
|
AC_SUBST(AIX_SHLIB_BIN)
|
|
;;
|
|
|
|
*-os2*)
|
|
if test "${BUILD_STATIC_LIBS}" = "1"; then
|
|
MOZ_JS_LIBS='$(DIST)/lib/libmozjs.lib'
|
|
MOZ_COMPONENT_XPCOM_LIBS='$(DIST)/lib/libxpcom.lib'
|
|
XPCOM_LIBS='$(DIST)/lib/libxpcom.lib'
|
|
MOZ_JPEG_LIBS='$(DIST)/lib/libmozjpeg.$(LIB_SUFFIX)'
|
|
MOZ_ZLIB_LIBS='$(DIST)/lib/libmozz.$(LIB_SUFFIX)'
|
|
MOZ_PNG_LIBS='$(DIST)/lib/libmozpng.$(LIB_SUFFIX)'
|
|
MOZ_MNG_LIBS='$(DIST)/lib/libmozmng.$(LIB_SUFFIX)'
|
|
else
|
|
MOZ_JS_LIBS='$(DIST)/lib/mozjs.lib'
|
|
MOZ_COMPONENT_XPCOM_LIBS='$(DIST)/lib/xpcom.lib'
|
|
XPCOM_LIBS='$(DIST)/lib/xpcom.lib'
|
|
MOZ_JPEG_LIBS='$(DIST)/lib/libmozjpeg.$(LIB_SUFFIX)'
|
|
MOZ_ZLIB_LIBS='$(DIST)/lib/mozz.$(LIB_SUFFIX)'
|
|
MOZ_PNG_LIBS='$(DIST)/lib/libmozpng.$(LIB_SUFFIX)'
|
|
MOZ_MNG_LIBS='$(DIST)/lib/libmozmng.$(LIB_SUFFIX)'
|
|
fi
|
|
;;
|
|
|
|
esac
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = Maintainer debug option (no --enable equivalent)
|
|
dnl =
|
|
dnl ========================================================
|
|
AC_SUBST(MOZ_TRACK_MODULE_DEPS)
|
|
|
|
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(DLLTOOL)
|
|
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(MOZ_MATHML)
|
|
AC_SUBST(MOZ_SVG)
|
|
AC_SUBST(TX_EXE)
|
|
AC_SUBST(MOZ_MONOLITHIC_TOOLKIT)
|
|
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_DBGRINFO_MODULES)
|
|
AC_SUBST(MOZ_EXTENSIONS)
|
|
AC_SUBST(MOZ_JSDEBUGGER)
|
|
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_INSURE)
|
|
AC_SUBST(MOZ_INSURE_DIRS)
|
|
AC_SUBST(MOZ_INSURE_EXCLUDE_DIRS)
|
|
AC_SUBST(MOZ_INSURIFYING)
|
|
AC_SUBST(MOZ_BUILD_XPFE)
|
|
AC_SUBST(MOZ_LDAP_XPCOM)
|
|
AC_SUBST(MOZ_LDAP_XPCOM_EXPERIMENTAL)
|
|
|
|
AC_SUBST(XPCOM_USE_LEA)
|
|
AC_SUBST(UNIX_CRASH_ON_ASSERT)
|
|
AC_SUBST(NO_UNIX_ASYNC_DNS)
|
|
AC_SUBST(BUILD_SHARED_LIBS)
|
|
AC_SUBST(BUILD_STATIC_LIBS)
|
|
AC_SUBST(MOZ_STATIC_COMPONENT_LIBS)
|
|
AC_SUBST(MOZ_STATIC_COMPONENTS)
|
|
AC_SUBST(MOZ_META_COMPONENTS)
|
|
AC_SUBST(ENABLE_TESTS)
|
|
AC_SUBST(IBMBIDI)
|
|
AC_SUBST(MOZ_USER_DIR)
|
|
AC_SUBST(BUILD_IDLC)
|
|
|
|
AC_SUBST(MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS)
|
|
AC_SUBST(MOZ_COMPONENT_NSPR_LIBS)
|
|
AC_SUBST(MOZ_COMPONENT_XPCOM_LIBS)
|
|
AC_SUBST(XPCOM_LIBS)
|
|
|
|
AC_SUBST(MOZ_GLE)
|
|
|
|
AC_SUBST(MOZ_BUILD_ROOT)
|
|
AC_SUBST(MOZ_OS2_TOOLS)
|
|
AC_SUBST(MOZ_OS2_EMX_OBJECTFORMAT)
|
|
|
|
AC_SUBST(MOZ_POST_DSO_LIB_COMMAND)
|
|
AC_SUBST(MOZ_POST_PROGRAM_COMMAND)
|
|
AC_SUBST(MOZ_REORDER)
|
|
|
|
dnl system JPEG support
|
|
dnl ========================================================
|
|
AC_ARG_WITH(jpeg,
|
|
[ --with-jpeg[=\$dir] Use system libjpeg [installed at prefix \$dir]],
|
|
JPEG_DIR=$withval)
|
|
|
|
_SAVE_CFLAGS=$CFLAGS
|
|
_SAVE_LDFLAGS=$LDFLAGS
|
|
_SAVE_LIBS=$LIBS
|
|
CFLAGS="-I${JPEG_DIR}/include $CFLAGS"
|
|
LDFLAGS="-L${JPEG_DIR}/lib $LDFLAGS"
|
|
if test "$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 ========================================================
|
|
AC_ARG_WITH(zlib,
|
|
[ --with-zlib[=\$dir] Use system libz [installed at prefix \$dir]],
|
|
ZLIB_DIR=$withval)
|
|
|
|
_SAVE_CFLAGS=$CFLAGS
|
|
_SAVE_LDFLAGS=$LDFLAGS
|
|
CFLAGS="-I${ZLIB_DIR}/include $CFLAGS"
|
|
LDFLAGS="-L${ZLIB_DIR}/lib $LDFLAGS"
|
|
if test "$ZLIB_DIR" = no; then
|
|
SYSTEM_ZLIB=
|
|
else
|
|
AC_MSG_CHECKING("for zlib.h")
|
|
AC_TRY_COMPILE([#include "zlib.h"], [],
|
|
[result="yes" SYSTEM_ZLIB=1],
|
|
[result="no" SYSTEM_ZLIB=])
|
|
AC_MSG_RESULT("$result")
|
|
fi
|
|
if test "$SYSTEM_ZLIB" = 1; then
|
|
AC_CHECK_LIB(z, gzread, [SYSTEM_ZLIB=1 ZLIB_LIBS="-lz $ZLIB_LIBS"],
|
|
[SYSTEM_ZLIB= ZLIB_CFLAGS= ZLIB_LIBS=], $ZLIB_LIBS)
|
|
fi
|
|
CFLAGS=$_SAVE_CFLAGS
|
|
LDFLAGS=$_SAVE_LDFLAGS
|
|
|
|
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 ========================================================
|
|
AC_ARG_WITH(png,
|
|
[ --with-png[=\$dir] Use system libpng [installed at prefix \$dir]],
|
|
PNG_DIR=$withval)
|
|
|
|
_SAVE_CFLAGS=$CFLAGS
|
|
_SAVE_LDFLAGS=$LDFLAGS
|
|
_SAVE_LIBS=$LIBS
|
|
CFLAGS="-I${PNG_DIR}/include $ZLIB_CFLAGS $CFLAGS"
|
|
LDFLAGS="-L${PNG_DIR}/lib $ZLIB_LIBS -lz $LDFLAGS"
|
|
if test "$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
|
|
|
|
dnl system MNG Support
|
|
dnl ========================================================
|
|
AC_ARG_WITH(mng,
|
|
[ --with-mng[=\$dir] Use system libmng [installed at prefix \$dir]],
|
|
MNG_DIR=$withval)
|
|
|
|
_SAVE_CFLAGS=$CFLAGS
|
|
_SAVE_LDFLAGS=$LDFLAGS
|
|
_SAVE_LIBS=$LIBS
|
|
CFLAGS="-I${MNG_DIR}/include $ZLIB_CFLAGS $CFLAGS"
|
|
LDFLAGS="-L${MNG_DIR}/lib $ZLIB_LIBS -lz $LDFLAGS"
|
|
if test "$MNG_DIR" = no; then
|
|
SYSTEM_MNG=
|
|
else
|
|
AC_CHECK_LIB(mng, mng_initialize, [SYSTEM_MNG=1 MNG_LIBS="-lmng $MNG_LIBS"],
|
|
SYSTEM_MNG=, $MNG_LIBS)
|
|
fi
|
|
if test "$SYSTEM_MNG" = 1; then
|
|
LIBS="$MNG_LIBS $LIBS"
|
|
AC_TRY_RUN(
|
|
#include <stdio.h>
|
|
#include <sys/types.h>
|
|
#include <libmng.h>
|
|
int main () {
|
|
#if (((MNG_VERSION_MAJOR)<<16)|((MNG_VERSION_MINOR)<<8)|(MNG_VERSION_RELEASE)) >= $MOZMNG
|
|
exit(0);
|
|
#else
|
|
exit(1);
|
|
#endif
|
|
}
|
|
, SYSTEM_MNG=1, [SYSTEM_MNG= MNG_CFLAGS= MNG_LIBS=], SYSTEM_MNG= )
|
|
rm -f core
|
|
fi
|
|
CFLAGS=$_SAVE_CFLAGS
|
|
LDFLAGS=$_SAVE_LDFLAGS
|
|
LIBS=$_SAVE_LIBS
|
|
|
|
if test "${MNG_DIR}" -a -d "${MNG_DIR}" -a "$SYSTEM_MNG" = 1; then
|
|
MNG_CFLAGS="-I${MNG_DIR}/include"
|
|
MNG_LIBS="-L${MNG_DIR}/lib ${MNG_LIBS}"
|
|
fi
|
|
|
|
dnl Disable profile at startup, hack for tinderbox.
|
|
if test "$MOZ_BYPASS_PROFILE_AT_STARTUP"; then
|
|
AC_DEFINE(MOZ_BYPASS_PROFILE_AT_STARTUP)
|
|
fi
|
|
|
|
dnl system FullCircle/Talkback support (Crash-reporting mechanism)
|
|
dnl ==============================================================
|
|
|
|
MOZ_FULLCIRCLE=
|
|
FULLCIRCLE_LIBS=
|
|
MOZ_ARG_ENABLE_BOOL(fullcircle,
|
|
[ --enable-fullcircle Enable FullCircle/Talkback support],
|
|
[ MOZ_FULLCIRCLE=1 FULLCIRCLE_LIBS="-lfullsoft" ])
|
|
|
|
AC_ARG_WITH(fullcircle,
|
|
[ --with-fullcircle=\$dir Location of FullCircle headers and libraries],
|
|
FULLCIRCLE_DIR=$withval,
|
|
FULLCIRCLE_DIR=no)
|
|
|
|
if test "$FULLCIRCLE_DIR" = no; then
|
|
FULLCIRCLE_DIR=
|
|
else
|
|
|
|
_SAVE_CFLAGS=$CFLAGS
|
|
_SAVE_LDFLAGS=$LDFLAGS
|
|
_SAVE_LIBS=$LIBS
|
|
CFLAGS="$CFLAGS -I${FULLCIRCLE_DIR}"
|
|
LDFLAGS="$LDFLAGS -L${FULLCIRCLE_DIR}"
|
|
LIBS="-lfullsoft $LIBS"
|
|
AC_MSG_CHECKING("for FCInitialize in -lfullsoft");
|
|
AC_TRY_LINK([ #include <stdio.h>
|
|
#include "fullsoft.h" ],
|
|
[ FCInitialize(); exit(0); ],
|
|
[FULLCIRCLE_LIBS="-I${FULLCIRCLE_DIR} -L${FULLCIRCLE_DIR} -lfullsoft" result="yes"],
|
|
[MISSING_FULLCIRCLE=1 result="no"])
|
|
AC_MSG_RESULT("$result")
|
|
CFLAGS=$_SAVE_CFLAGS
|
|
LDFLAGS=$_SAVE_LDFLAGS
|
|
LIBS=$_SAVE_LIBS
|
|
|
|
if test "$MISSING_FULLCIRCLE"; then
|
|
echo
|
|
echo "Could not find FullCircle library -- ignoring it"
|
|
echo
|
|
MOZ_FULLCIRCLE=
|
|
FULLCIRCLE_LIBS=
|
|
else
|
|
AC_DEFINE(MOZ_FULLCIRCLE)
|
|
CFLAGS="$CFLAGS -I${FULLCIRCLE_DIR}"
|
|
CXXFLAGS="$CXXFLAGS -I${FULLCIRCLE_DIR}"
|
|
fi
|
|
|
|
fi
|
|
|
|
AC_SUBST(MOZ_FULLCIRCLE)
|
|
AC_SUBST(FULLCIRCLE_LIBS)
|
|
|
|
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`
|
|
|
|
dnl
|
|
dnl It is perfectly legal to build with both -O and -g even though
|
|
dnl some compilers/platforms might not support this.
|
|
dnl
|
|
|
|
dnl # Clean out '-O' flags if doing a debug build.
|
|
dnl if test "$MOZ_DEBUG"
|
|
dnl then
|
|
dnl changequote(,)dnl
|
|
dnl CFLAGS=` echo $CFLAGS | sed 's/ *-O[^ ]*//g;'`
|
|
dnl CXXFLAGS=`echo $CXXFLAGS | sed 's/ *-O[^ ]*//g;'`
|
|
dnl LDFLAGS=`echo $LDFLAGS | sed 's/ *-O[^ ]*//g;'`
|
|
dnl changequote([,])dnl
|
|
dnl fi
|
|
|
|
AC_SUBST(SYSTEM_MAKEDEPEND)
|
|
AC_SUBST(SYSTEM_JPEG)
|
|
AC_SUBST(SYSTEM_PNG)
|
|
AC_SUBST(SYSTEM_MNG)
|
|
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(MNG_CFLAGS)
|
|
AC_SUBST(MNG_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(MOZ_MNG_CFLAGS)
|
|
AC_SUBST(MOZ_MNG_LIBS)
|
|
|
|
AC_SUBST(NSPR_CFLAGS)
|
|
AC_SUBST(NSPR_LIBS)
|
|
AC_SUBST(MOZ_NATIVE_NSPR)
|
|
|
|
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_AR)
|
|
AC_SUBST(HOST_RANLIB)
|
|
AC_SUBST(HOST_NSPR_MDCPUCFG)
|
|
|
|
AC_SUBST(HOST_LIBIDL_CONFIG)
|
|
AC_SUBST(HOST_LIBIDL_CFLAGS)
|
|
AC_SUBST(HOST_LIBIDL_LIBS)
|
|
|
|
AC_SUBST(TARGET_CPU)
|
|
AC_SUBST(TARGET_OS)
|
|
AC_SUBST(TARGET_NSPR_MDCPUCFG)
|
|
AC_SUBST(TARGET_MD_ARCH)
|
|
AC_SUBST(OS_TARGET)
|
|
AC_SUBST(OS_ARCH)
|
|
AC_SUBST(OS_RELEASE)
|
|
AC_SUBST(OS_TEST)
|
|
|
|
AC_SUBST(MOZ_DISABLE_DTD_DEBUG)
|
|
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(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(USE_N32)
|
|
|
|
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 "$no_x" != "yes"; then
|
|
if test ! -z "$MISSING_X"; then
|
|
AC_MSG_ERROR([ Could not find the following X libraries: $MISSING_X ]);
|
|
fi
|
|
|
|
if test ! -z "$MISSING_MOTIF"; then
|
|
AC_MSG_ERROR([ Could not find the following Motif libraries: $MISSING_MOTIF ]);
|
|
fi
|
|
fi # $no_x
|
|
|
|
dnl Set various defines and substitutions
|
|
dnl ========================================================
|
|
|
|
if test "$OS_TARGET" = "OS2"; then
|
|
AC_DEFINE(XP_PC)
|
|
AC_DEFINE(XP_OS2)
|
|
AC_DEFINE(BSD_SELECT)
|
|
AC_DEFINE(XP_OS2_FIX)
|
|
case "$target" in
|
|
*-*-os2_vacpp)
|
|
LIBS='so32dll.lib tcp32dll.lib'
|
|
;;
|
|
esac
|
|
elif test "$OS_TARGET" = "WINNT"; then
|
|
AC_DEFINE(XP_PC)
|
|
elif test "$OS_TARGET" = "BeOS"; then
|
|
AC_DEFINE(XP_BEOS)
|
|
AC_DEFINE(HAVE_MOVEMAIL)
|
|
HAVE_MOVEMAIL=1
|
|
AC_SUBST(HAVE_MOVEMAIL)
|
|
elif test "$OS_TARGET" = "Mac OS"; then
|
|
AC_DEFINE(XP_UNIX)
|
|
AC_DEFINE(UNIX_EMBED)
|
|
AC_DEFINE(UNIX_LDAP)
|
|
AC_DEFINE(UNIX_ASYNC_DNS)
|
|
elif test "$OS_TARGET" = "POSIX_for_OpenVMS_AXP"; then
|
|
AC_DEFINE(XP_UNIX)
|
|
AC_DEFINE(UNIX_ASYNC_DNS)
|
|
else
|
|
AC_DEFINE(XP_UNIX)
|
|
AC_DEFINE(UNIX_ASYNC_DNS)
|
|
AC_DEFINE(HAVE_MOVEMAIL)
|
|
HAVE_MOVEMAIL=1
|
|
AC_SUBST(HAVE_MOVEMAIL)
|
|
fi
|
|
|
|
AC_DEFINE(JS_THREADSAFE)
|
|
|
|
|
|
# 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 Spit out some output
|
|
dnl ========================================================
|
|
|
|
# Save the defines header file before autoconf removes it.
|
|
# (Do not add AC_DEFINE calls after this line.)
|
|
if test "$_USE_CPP_INCLUDE_FLAG"; then
|
|
_CONFIG_TMP=confdefs-tmp.h
|
|
_CONFIG_DEFS_H=config-defs.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.
|
|
*/
|
|
EOF
|
|
sort confdefs.h >> $_CONFIG_TMP
|
|
|
|
# Only write config-defs.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
|
|
|
|
if test "$VERBOSE_CONFIG_DEFS"; then
|
|
echo ==== $_CONFIG_DEFS_H =================================
|
|
cat $_CONFIG_DEFS_H
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
AC_SUBST(MOZ_DEFINES)
|
|
|
|
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
|
|
echo $MAKEFILES | $PERL $srcdir/build/autoconf/acoutput-fast.pl > conftest.sh
|
|
. ./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"
|
|
WINDRES=
|
|
DLLTOOL=
|
|
|
|
unset MAKEFILES
|
|
unset CONFIG_FILES
|
|
|
|
if test -z "$MOZ_NATIVE_NSPR" || test "$MOZ_LDAP_XPCOM"; then
|
|
ac_configure_args="$_SUBDIR_CONFIG_ARGS --with-dist-prefix=$MOZ_BUILD_ROOT/dist"
|
|
AC_OUTPUT_SUBDIRS(nsprpub)
|
|
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])
|
|
case "$target" in
|
|
*-*-os2_vacpp)
|
|
;;
|
|
*)
|
|
NSPR_LIBS=`./nsprpub/config/nspr-config --prefix=$MOZ_BUILD_ROOT/dist --exec-prefix=$MOZ_BUILD_ROOT/dist --libs`
|
|
$PERL -pi.bak -e "s {^NSPR_LIBS\s*=.*} {NSPR_LIBS = $NSPR_LIBS }" config/autoconf.mk
|
|
;;
|
|
esac
|
|
NSPR_CFLAGS=`./nsprpub/config/nspr-config --prefix=$MOZ_BUILD_ROOT/dist --exec-prefix=$MOZ_BUILD_ROOT/dist --cflags`
|
|
$PERL -pi.bak -e "s {^NSPR_CFLAGS\s*=.*} {NSPR_CFLAGS = $NSPR_CFLAGS }" config/autoconf.mk
|
|
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"
|
|
AC_OUTPUT_SUBDIRS(directory/c-sdk/ldap)
|
|
fi
|