mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-02 10:00:54 +00:00
c4efc330cb
Linux and Solaris (using gcc) didn't have any problems, so I didn't notice I was ending up with -DD_INO=\"d_ino\" when I really wanted -DD_INO=d_ino. This fixes that problem. Still will have no effect on the "official" builds until the related code changes go in.
3382 lines
95 KiB
Plaintext
3382 lines
95 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 Christopher Seawood. All
|
|
dnl 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
|
|
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=10002
|
|
NSPR_VERSION=3
|
|
|
|
dnl Set the minimum version of toolkit libs used by mozilla
|
|
dnl ========================================================
|
|
GTK_VERSION=1.2.0
|
|
LIBIDL_VERSION=0.6.3
|
|
|
|
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 -f client.mk cleansrcdir
|
|
***
|
|
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, "")
|
|
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, "")
|
|
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 "$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(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
|
|
|
|
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
|
|
|
|
GNU_CC=
|
|
GNU_CXX=
|
|
if test "$GCC" = "yes"; then
|
|
GNU_CC=1
|
|
fi
|
|
if test "$GXX" = "yes"; then
|
|
GNU_CXX=1
|
|
fi
|
|
|
|
AC_SUBST(GNU_CC)
|
|
AC_SUBST(GNU_CXX)
|
|
|
|
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(PERL, perl5 perl, :)
|
|
AC_PATH_PROGS(EMACS, xemacs lemacs emacs, :)
|
|
AC_PATH_PROGS(PERL, perl5 perl, :)
|
|
AC_PATH_PROG(WHOAMI, whoami, :)
|
|
AC_PATH_PROG(UNZIP, unzip, :)
|
|
AC_PATH_PROG(ZIP, zip, :)
|
|
AC_PATH_PROG(SYSTEM_MAKEDEPEND, makedepend)
|
|
|
|
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 ========================================================
|
|
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
|
|
TARGET_MD_ARCH=unix
|
|
DIRENT_INO=d_ino
|
|
|
|
OS_TARGET=`uname -s`
|
|
OS_ARCH=`uname -s | sed -e 's|/|_|g'`
|
|
OS_RELEASE=`uname -r`
|
|
OS_TEST=`uname -m`
|
|
_COMPILER_PREFIX=
|
|
|
|
dnl ========================================================
|
|
dnl GNU specific defaults
|
|
dnl ========================================================
|
|
if test "$GNU_CC"; then
|
|
MKSHLIB='$(CXX) $(DSO_LDOPTS)'
|
|
MKCSHLIB='$(CC) $(DSO_LDOPTS)'
|
|
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
|
|
_WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wall -W -Wno-unused -Wshadow -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)'
|
|
MKCSHLIB='$(LD) $(DSO_LDOPTS)'
|
|
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} -Wshadow"
|
|
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 MOZ_COMPONENTS_LIBS
|
|
dnl
|
|
dnl 'extra' link flags iff this is a component
|
|
dnl See the IS_COMPONENT rule in rules.mk
|
|
dnl ========================================================
|
|
|
|
MOZ_COMPONENT_NSPR_LIBS='-L$(DIST)/bin $(NSPR_LIBS)'
|
|
MOZ_COMPONENT_XPCOM_LIBS='-L$(DIST)/bin -lxpcom'
|
|
MOZ_COMPONENT_LIBS='$(MOZ_COMPONENT_NSPR_LIBS) $(MOZ_COMPONENT_XPCOM_LIBS)'
|
|
|
|
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'
|
|
DSO_CFLAGS='-qflag=w:w'
|
|
DSO_PIC_CFLAGS='-DPIC'
|
|
fi
|
|
MKSHLIB='$(AIX_SHLIB_BIN) $(DSO_LDOPTS)'
|
|
MKCSHLIB='$(AIX_SHLIB_BIN) $(DSO_LDOPTS)'
|
|
AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
|
|
;;
|
|
|
|
*-beos*)
|
|
MKSHLIB='$(CXX) $(DSO_LDOPTS)'
|
|
DSO_LDOPTS='-nostart -Xlinker --ignore-undefined'
|
|
TK_LIBS='-lbe -lroot'
|
|
;;
|
|
|
|
*-bsdi*)
|
|
dnl -pedantic doesn't play well with BSDI's _very_ modified gcc (shlicc2)
|
|
_PEDANTIC=
|
|
_IGNORE_LONG_LONG_WARNINGS=
|
|
case `uname -r` in
|
|
4.*) ;;
|
|
*)
|
|
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
|
|
# 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) $(DSO_LDOPTS)'
|
|
MKCSHLIB='$(CC) $(DSO_LDOPTS)'
|
|
else
|
|
DSO_LDOPTS='-b -E +s -L$(DIST)/bin -L$(DIST)/lib'
|
|
MKSHLIB='$(LD) $(DSO_LDOPTS)'
|
|
MKCSHLIB='$(LD) $(DSO_LDOPTS)'
|
|
fi
|
|
MOZ_POST_PROGRAM_COMMAND='chatr +s enable'
|
|
AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
|
|
;;
|
|
|
|
*-irix5*)
|
|
DSO_LDOPTS='-elf -shared'
|
|
if test "$GNU_CC"; then
|
|
MKSHLIB_FORCE_ALL='-Wl,-all'
|
|
MKSHLIB_UNFORCE_ALL='-Wl,-none'
|
|
else
|
|
MKSHLIB_FORCE_ALL='-all'
|
|
MKSHLIB_UNFORCE_ALL='-none'
|
|
fi
|
|
;;
|
|
|
|
*-irix6*)
|
|
dnl What about IRIX 6.2?
|
|
AC_DEFINE(IRIX6_3)
|
|
DSO_LDOPTS='-elf -shared'
|
|
MKSHLIB='$(CCC) $(DSO_LDOPTS)'
|
|
MKCSHLIB='$(CC) $(DSO_LDOPTS)'
|
|
if test "$GNU_CC"; then
|
|
MKSHLIB_FORCE_ALL='-Wl,-all'
|
|
MKSHLIB_UNFORCE_ALL='-Wl,-none'
|
|
_WARNINGS_CFLAGS="-Wall"
|
|
_WARNINGS_CXXFLAGS="-Wall"
|
|
else
|
|
MKSHLIB_FORCE_ALL='-all'
|
|
MKSHLIB_UNFORCE_ALL='-none'
|
|
CFLAGS="$CFLAGS -woff 3262"
|
|
CXXFLAGS="$CXXFLAGS -woff 3262"
|
|
AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
|
|
fi
|
|
;;
|
|
|
|
*-*linux*)
|
|
AC_DEFINE(_POSIX_SOURCE)
|
|
AC_DEFINE(_SVID_SOURCE)
|
|
TARGET_NSPR_MDCPUCFG='\"md/_linux.cfg\"'
|
|
|
|
case "${host_cpu}" in
|
|
alpha*)
|
|
CFLAGS="$CFLAGS -mieee"
|
|
CXXFLAGS="$CXXFLAGS -mieee"
|
|
;;
|
|
i*86*)
|
|
AC_DEFINE(MOZ_LEAKY)
|
|
;;
|
|
esac
|
|
;;
|
|
|
|
*-mingw*)
|
|
AC_DEFINE(_WINDOWS)
|
|
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*)
|
|
DLL_SUFFIX="so.1.0"
|
|
DSO_CFLAGS=''
|
|
DSO_PIC_CFLAGS='-fPIC'
|
|
CFLAGS="$CFLAGS -Dunix"
|
|
CXXFLAGS="$CXXFLAGS -Dunix"
|
|
# At least for 1.3 and up, ld supports this, despite the test failing above.
|
|
MKSHLIB_FORCE_ALL='--whole-archive'
|
|
MKSHLIB_UNFORCE_ALL='--no-whole-archive'
|
|
case `uname -m` in
|
|
*86)
|
|
MKSHLIB='$(LD) $(DSO_LDOPTS)'
|
|
MKCSHLIB='$(LD) $(DSO_LDOPTS)'
|
|
;;
|
|
esac
|
|
dnl Test for a.out platform and handle C++ libraries correctly
|
|
if $CC -E - -dM </dev/null | grep -v __ELF__ >/dev/null; then
|
|
DSO_LDOPTS="-shared"
|
|
fi
|
|
if test "$LIBRUNPATH"; then
|
|
DSO_LDOPTS="-R$LIBRUNPATH $DSO_LDOPTS"
|
|
fi
|
|
;;
|
|
|
|
*-nto*)
|
|
CFLAGS="$CFLAGS -DNTO -D__QNXNTO__ -D_QNX_SOURCE -D_POSIX_SOURCE -D__i386__ -D_i386 -DNSCAP_NO_EXPLICIT -DNO_REGEX -DSTRINGS_ALIGNED -D_SEEKPOS_DEFINED_ -I/usr/gcc/lib/gcc-lib/ntox86/2.8.1/include"
|
|
CXXFLAGS="$CXXFLAGS -DNTO -D__QNXNTO__ -D_QNX_SOURCE -D_POSIX_SOURCE -D__i386__ -D_i386 -DNSCAP_NO_EXPLICIT -DNO_REGEX -DSTRINGS_ALIGNED -D_SEEKPOS_DEFINED_ -I/usr/gcc/lib/gcc-lib/ntox86/2.8.1/include"
|
|
_WARNINGS_CFLAGS='-w'
|
|
_WARNINGS_CXXFLAGS='-w'
|
|
OS_TARGET="NTO"
|
|
MOZ_OPTIMIZE_FLAGS="-O2"
|
|
MOZ_DEBUG_FLAGS="-gdwarf-2"
|
|
DSO_LDOPTS="-M $DSO_LDOPTS"
|
|
DSO_CFLAGS=''
|
|
DSO_PIC_CFLAGS="-shared -Wc,-fPIC -DPIC"
|
|
MKSHLIB='qcc -Vgcc_ntox86 $(DSO_LDOPTS)'
|
|
MKCSHLIB='qcc -Vgcc_ntox86 $(DSO_LDOPTS)'
|
|
AR='qcc -Vgcc_ntox86'
|
|
AR_FLAGS='-M -a $@'
|
|
AR_LIST='ar.elf t'
|
|
AR_EXTRACT='ar.elf x'
|
|
AR_DELETE='ar.elf 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 -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)'
|
|
MKCSHLIB='$(LD) $(DSO_LDOPTS)'
|
|
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
|
|
NSPR_LIBS="-lnspr$NSPR_VERSION -lplc$NSPR_VERSION -lplds$NSPR_VERSION"
|
|
fi
|
|
;;
|
|
|
|
alpha*-*-osf*)
|
|
if test "$GNU_CC"; then
|
|
DSO_LDOPTS='-shared -Wl,-soname -Wl,$@'
|
|
else
|
|
CFLAGS="$CFLAGS -std1 -ieee_with_inexact"
|
|
CXXFLAGS="$CXXFLAGS -std1 -ieee_with_inexact"
|
|
DSO_LDOPTS='-shared -msym -expect_unresolved \* -soname $@'
|
|
DSO_CFLAGS=
|
|
MKSHLIB='-$(LD) $(DSO_LDOPTS)'
|
|
MKCSHLIB='-$(LD) $(DSO_LDOPTS)'
|
|
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
|
|
;;
|
|
|
|
*-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"
|
|
;;
|
|
|
|
*-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)
|
|
if test ! "$GNU_CC"; then
|
|
AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
|
|
LDFLAGS='-xildoff'
|
|
MKSHLIB='$(CXX) $(DSO_LDOPTS)'
|
|
MKCSHLIB='$(CC) $(DSO_LDOPTS)'
|
|
MKSHLIB_FORCE_ALL='-z allextract'
|
|
MKSHLIB_UNFORCE_ALL=''
|
|
DSO_LDOPTS='-G -h $@'
|
|
AR_LIST="$AR t"
|
|
AR_EXTRACT="$AR x"
|
|
AR_DELETE="$AR d"
|
|
AR='$(CXX) -xar'
|
|
AR_FLAGS='-o $@'
|
|
AS='/usr/ccs/bin/as'
|
|
AS_DASH_C_FLAG=''
|
|
NS_USE_NATIVE=1
|
|
case `uname -m` in
|
|
sun4u)
|
|
ASFLAGS='-xarch=v8plus -DULTRA_SPARC -P -L -D_ASM -D__STDC__=0 -K PIC'
|
|
AC_DEFINE(ULTRA_SPARC)
|
|
;;
|
|
*)
|
|
ASFLAGS='-xarch=v8 -P -L -D_ASM -D__STDC__=0 -K PIC'
|
|
;;
|
|
esac
|
|
dnl The C++ compiler in Workshop 5.0 uses standard iostreams by
|
|
dnl default. -library=iostream will force use of classic iostreams.
|
|
if test ! -z "`${CC} -V 2>&1 | head -1 | grep '5.0'`"; then
|
|
CXX="$CXX -library=iostream"
|
|
fi
|
|
else
|
|
MKSHLIB='$(CXX) $(DSO_LDOPTS)'
|
|
MKCSHLIB='$(CC) $(DSO_LDOPTS)'
|
|
if test "$ac_cv_mkshlib_force_and_unforce" != "no"; then
|
|
MKSHLIB_FORCE_ALL='-z allextract'
|
|
MKSHLIB_UNFORCE_ALL=''
|
|
fi
|
|
DSO_LDOPTS='-G -h $@'
|
|
_WARNINGS_CFLAGS=''
|
|
_WARNINGS_CXXFLAGS=''
|
|
fi
|
|
;;
|
|
|
|
*-sunos*)
|
|
DSO_LDOPTS='-Bdynamic'
|
|
MKSHLIB='-$(LD) $(DSO_LDOPTS)'
|
|
MKCSHLIB='-$(LD) $(DSO_LDOPTS)'
|
|
AC_DEFINE(SUNOS4)
|
|
AC_DEFINE(SPRINTF_RETURNS_STRING)
|
|
;;
|
|
|
|
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
|
|
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)
|
|
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" = "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, Qt, or Motif.)
|
|
fi],
|
|
|
|
[ MOZ_WIDGET_TOOLKIT="gtk" ])
|
|
fi # $no_x
|
|
|
|
|
|
|
|
# BeOS toolkit setting
|
|
if test "`echo $target_os | egrep "beos"`"; then
|
|
MOZ_WIDGET_TOOLKIT="beos"
|
|
fi
|
|
|
|
# Photon toolkit setting for the Neutrino platform
|
|
if test "`echo $target_os | egrep "nto"`"; then
|
|
MOZ_WIDGET_TOOLKIT="photon"
|
|
AC_DEFINE(NO_X11)
|
|
TK_CFLAGS='-I/usr/nto/include/photon'
|
|
TK_LIBS='-lphoton -lphrender'
|
|
fi
|
|
|
|
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
|
|
fi
|
|
|
|
if test "$MOZ_WIDGET_TOOLKIT" = "xlib"
|
|
then
|
|
MOZ_ENABLE_XLIB=1
|
|
fi
|
|
|
|
if test "$MOZ_WIDGET_TOOLKIT" = "qt"
|
|
then
|
|
MOZ_ENABLE_QT=1
|
|
fi
|
|
|
|
if test "$MOZ_WIDGET_TOOLKIT" = "motif"
|
|
then
|
|
MOZ_ENABLE_MOTIF=1
|
|
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 = 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
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = GtkMozilla support
|
|
dnl =
|
|
dnl = On by default on linux whenever ENABLE_GTK is true
|
|
dnl =
|
|
dnl ========================================================
|
|
case "$target" in
|
|
*-linux*)
|
|
MOZ_ENABLE_GTK_MOZILLA=1
|
|
;;
|
|
esac
|
|
|
|
|
|
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 = =
|
|
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
|
|
AC_ARG_WITH(qtdir,
|
|
[ --with-qtdir=\$dir Specify Qt directory ],
|
|
[ QTDIR=$withval],
|
|
[ QTDIR="/usr"])
|
|
|
|
AC_MSG_CHECKING(for Qt insanity)
|
|
|
|
QT_CFLAGS="-I${QTDIR}/include/qt"
|
|
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
|
|
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" = "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_GTK)
|
|
AC_SUBST(MOZ_ENABLE_MOTIF)
|
|
AC_SUBST(MOZ_ENABLE_XLIB)
|
|
AC_SUBST(MOZ_ENABLE_QT)
|
|
AC_SUBST(MOZ_GTK_CFLAGS)
|
|
AC_SUBST(MOZ_GTK_LDFLAGS)
|
|
AC_SUBST(MOZ_MOTIF_CFLAGS)
|
|
AC_SUBST(MOZ_MOTIF_LDFLAGS)
|
|
AC_SUBST(MOZ_XLIB_CFLAGS)
|
|
AC_SUBST(MOZ_XLIB_LDFLAGS)
|
|
AC_SUBST(MOZ_QT_CFLAGS)
|
|
AC_SUBST(MOZ_QT_LDFLAGS)
|
|
AC_SUBST(MOZ_DEFAULT_TOOLKIT)
|
|
|
|
XCFLAGS="$X_CFLAGS"
|
|
|
|
AC_SUBST(XCFLAGS)
|
|
AC_SUBST(XLDFLAGS)
|
|
AC_SUBST(XLIBS)
|
|
|
|
dnl Check for GLib and libIDL.
|
|
dnl ========================================================
|
|
SKIP_IDL_CHECK="no"
|
|
|
|
dnl RedHat 6.0 (Hedwig) ships with orbit which includes libIDL
|
|
if test -f /etc/redhat-release
|
|
then
|
|
if egrep "Hedwig" /etc/redhat-release >/dev/null
|
|
then
|
|
if test -x /usr/bin/orbit-config
|
|
then
|
|
SKIP_IDL_CHECK="yes"
|
|
LIBIDL_CFLAGS="-I/usr/lib/glib/include"
|
|
LIBIDL_LIBS="-lglib -lIDL"
|
|
AC_SUBST(LIBIDL_CFLAGS)
|
|
AC_SUBST(LIBIDL_LIBS)
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if test "$SKIP_IDL_CHECK" = "no"
|
|
then
|
|
AM_PATH_LIBIDL($LIBIDL_VERSION,,
|
|
[echo libIDL $LIBIDL_VERSION or higher is required.]
|
|
[echo Get yourself a RPM or source package from ftp://ftp.mozilla.org/]
|
|
[echo before your tree is HOSED.]
|
|
[echo See http://www.rpi.edu/~veliaa/libIDL/ for more information.]
|
|
[AC_MSG_ERROR(libIDL not installed.)])
|
|
fi
|
|
|
|
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 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 Checks for header files.
|
|
dnl ========================================================
|
|
AC_CHECK_HEADERS(sys/byteorder.h compat.h getopt.h)
|
|
AC_CHECK_HEADERS(sys/bittypes.h memory.h unistd.h sys/filio.h)
|
|
AC_CHECK_HEADERS(sys/ipc.h shm.h sys/shm.h X11/extensions/XShm.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
|
|
AC_CHECK_LIB(C, demangle)
|
|
fi
|
|
AC_CHECK_LIB(resolv, res_gethostbyaddr)
|
|
AC_CHECK_LIB(socket, getnetbyaddr)
|
|
AC_CHECK_LIB(util, login)
|
|
AC_CHECK_LIB(nsl, xdr_string)
|
|
AC_CHECK_LIB(elf, elf_rawdata)
|
|
AC_CHECK_LIB(intl, textdomain)
|
|
AC_CHECK_LIB(posix4, shm_open)
|
|
AC_CHECK_LIB(w, iswupper)
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = pthread support
|
|
dnl =
|
|
dnl ========================================================
|
|
dnl
|
|
dnl Start by checking whether the system support pthreads
|
|
dnl
|
|
|
|
|
|
dnl
|
|
dnl Try lib pthread
|
|
dnl
|
|
AC_CHECK_LIB(pthread, pthread_attr_init,
|
|
USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lpthread",
|
|
AC_CHECK_LIB(c_r, pthread_attr_init,
|
|
USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lc_r",
|
|
AC_CHECK_LIB(c, pthread_attr_init,
|
|
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*
|
|
|
|
case "$target" in
|
|
*-*-freebsd*)
|
|
AC_DEFINE(_REENTRANT)
|
|
AC_DEFINE(_THREAD_SAFE)
|
|
dnl -pthread links in -lc_r, so don't specify it explicitly.
|
|
if test "$ac_cv_have_dash_pthread" = "yes"; then
|
|
_PTHREAD_LDFLAGS=""
|
|
else
|
|
_PTHREAD_LDFLAGS="-lc_r"
|
|
fi
|
|
;;
|
|
|
|
*-*-linux*)
|
|
AC_DEFINE(_REENTRANT)
|
|
;;
|
|
|
|
*-*-nto*)
|
|
AC_DEFINE(_REENTRANT)
|
|
;;
|
|
|
|
alpha*-*-osf*)
|
|
AC_DEFINE(_REENTRANT)
|
|
;;
|
|
|
|
*-*-solaris*)
|
|
AC_DEFINE(_REENTRANT)
|
|
if test ! "$GNU_CC"; then
|
|
CFLAGS="$CFLAGS -mt"
|
|
CXXFLAGS="$CXXFLAGS -mt"
|
|
fi
|
|
;;
|
|
esac
|
|
AC_MSG_RESULT($ac_cv_have_dash_pthread)
|
|
fi
|
|
|
|
dnl
|
|
dnl Add the pthread flags to the nspr libs
|
|
dnl ========================================================
|
|
NSPR_LIBS="$NSPR_LIBS $_PTHREAD_LDFLAGS"
|
|
|
|
dnl Check for NSPR.
|
|
dnl ========================================================
|
|
dnl
|
|
dnl We always use the system NSPR from now on...this option
|
|
dnl tells where to find NSPR rather than whether to use it.
|
|
dnl ========================================================
|
|
AC_ARG_WITH(nspr,
|
|
[ --with-nspr=PFX Prefix where NSPR is installed],
|
|
NSPR_DIR=$withval)
|
|
|
|
AC_ARG_WITH(nsprlib,
|
|
[ --with-nsprlib=DIR Directory where NSPR libraries are installed],
|
|
NSPR_LIBDIR=$withval)
|
|
|
|
dnl Skip this if cross-compiling, since the checks will fail.
|
|
if test "$_OPENVMS_CROSS_COMPILE"x = x; then
|
|
|
|
_SAVE_CFLAGS=$CFLAGS
|
|
_SAVE_LDFLAGS=$LDFLAGS
|
|
_SAVE_LIBS=$LIBS
|
|
CFLAGS="$CFLAGS -I${NSPR_DIR}/include"
|
|
if test "$NSPR_LIBDIR"x = x; then
|
|
LDFLAGS="$LDFLAGS -L${NSPR_DIR}/lib $NSPR_LIBS"
|
|
else
|
|
LDFLAGS="$LDFLAGS -L${NSPR_LIBDIR} $NSPR_LIBS"
|
|
fi
|
|
|
|
AC_MSG_CHECKING("for PR_GetCurrentThread in -lnspr$NSPR_VERSION")
|
|
LIBS="-lnspr$NSPR_VERSION $NSPR_LIBS $LIBS"
|
|
AC_TRY_RUN(
|
|
#include <stdio.h>
|
|
#include <nspr.h>
|
|
int main () {
|
|
PRThread *dummy = PR_GetCurrentThread();
|
|
exit(0);
|
|
}
|
|
, [NSPR_LIBS="-lnspr$NSPR_VERSION $NSPR_LIBS" result="yes"],
|
|
[_NSPR_NEEDS_THREAD_LIB=1 result="no"],
|
|
[NSPR_LIBS="-lnspr$NSPR_VERSION $NSPR_LIBS" result="yes"] )
|
|
rm -f core
|
|
AC_MSG_RESULT("$result")
|
|
|
|
dnl XXX - Is this really the best way to do this check? - cls
|
|
if test "$_NSPR_NEEDS_THREAD_LIB" = 1; then
|
|
|
|
LIBS=$_SAVE_LIBS
|
|
AC_MSG_CHECKING("for PR_GetCurrentThread in -lnspr$NSPR_VERSION with thread lib")
|
|
LIBS="-lnspr$NSPR_VERSION $NSPR_LIBS $LIBS"
|
|
AC_TRY_RUN(
|
|
#include <stdio.h>
|
|
#include <nspr.h>
|
|
int main () {
|
|
PRThread *dummy = PR_GetCurrentThread();
|
|
exit(0);
|
|
}
|
|
, [NSPR_LIBS="-lnspr$NSPR_VERSION $NSPR_LIBS" result="yes"],
|
|
[MISSING_NSPR="$MISSING_NSPR -lnspr$NSPR_VERSION" result="no"],
|
|
[NSPR_LIBS="-lnspr$NSPR_VERSION $NSPR_LIBS" result="yes"] )
|
|
rm -f core
|
|
AC_MSG_RESULT("$result")
|
|
fi
|
|
|
|
if test "$cross_compiling" = "yes"; then
|
|
NSPR_LIBS="-lplds$NSPR_VERSION -lplc$NSPR_VERSION $NSPR_LIBS"
|
|
else
|
|
AC_CHECK_LIB(plc$NSPR_VERSION, PL_CreateOptState, NSPR_LIBS="-lplc$NSPR_VERSION $NSPR_LIBS",
|
|
[MISSING_NSPR="$MISSING_NSPR -lplc$NSPR_VERSION"], $NSPR_LIBS)
|
|
AC_CHECK_LIB(plds$NSPR_VERSION, PL_GetEvent, NSPR_LIBS="-lplds$NSPR_VERSION $NSPR_LIBS",
|
|
[MISSING_NSPR="$MISSING_NSPR -lplds$NSPR_VERSION"], $NSPR_LIBS)
|
|
fi
|
|
CFLAGS=$_SAVE_CFLAGS
|
|
LDFLAGS=$_SAVE_LDFLAGS
|
|
LIBS=$_SAVE_LIBS
|
|
|
|
fi # ! CROSS_COMPILE
|
|
|
|
if test "${NSPR_DIR}" -a -d "${NSPR_DIR}"; then
|
|
NSPR_INCLUDE_DIR="${NSPR_DIR}/include"
|
|
NSPR_CFLAGS="-I${NSPR_INCLUDE_DIR}"
|
|
if test "$NSPR_LIBDIR"x != x; then
|
|
NSPR_LIBS="-L${NSPR_LIBDIR} ${NSPR_LIBS}"
|
|
else
|
|
NSPR_LIBS="-L${NSPR_DIR}/lib ${NSPR_LIBS}"
|
|
fi
|
|
fi
|
|
|
|
dnl
|
|
dnl If NSPR was not detected in the system, use the one in the source
|
|
dnl tree (mozilla/nsprpub)
|
|
dnl
|
|
dnl NSPR_INCLUDE_DIR and NSPR_CFLAGS are blank because NSPR built as
|
|
dnl part of the mozilla build, will install its headers and libs in
|
|
dnl the same place as mozilla.
|
|
dnl
|
|
AC_MSG_CHECKING(whether have system NSPR)
|
|
if test "$MISSING_NSPR"; then
|
|
AC_MSG_RESULT(no (will build it from source))
|
|
NSPR_INCLUDE_DIR=
|
|
NSPR_CFLAGS=
|
|
NSPR_LIBS="-lplds$NSPR_VERSION -lplc$NSPR_VERSION -lnspr$NSPR_VERSION $_PTHREAD_LDFLAGS"
|
|
dnl
|
|
dnl Otherwise, we are using an NSPR installed in the system.
|
|
dnl
|
|
dnl We need to set MOZ_NATIVE_NSPR so that mozilla/nsprpub is not built.
|
|
dnl
|
|
else
|
|
AC_MSG_RESULT(yes)
|
|
MOZ_NATIVE_NSPR=1
|
|
fi
|
|
|
|
USE_NSPR_AUTOCONF=
|
|
MOZ_ARG_ENABLE_BOOL(nspr-autoconf,
|
|
[ --enable-nspr-autoconf Use autoconf when building nspr],
|
|
USE_NSPR_AUTOCONF=1)
|
|
|
|
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 qsort strerror lchown fchmod snprintf localtime_r statvfs memmove)
|
|
|
|
AC_MSG_CHECKING(how to call gettimeofday)
|
|
AC_CACHE_VAL(ac_cv_gettimeofday_args,
|
|
[AC_TRY_COMPILE([#include <stdlib.h>
|
|
#include <sys/time.h>],
|
|
[struct timeval tv; struct timezone tzp;
|
|
gettimeofday(&tv, &tzp);],
|
|
[ac_cv_gettimeofday_args=2],
|
|
[AC_TRY_COMPILE([#include <stdlib.h>
|
|
#include <sys/time.h>],
|
|
[struct timeval tv; gettimeofday(&tv);],
|
|
[ac_cv_gettimeofday_args=1],
|
|
[ac_cv_gettimeofday_args=0])])])
|
|
if test "$ac_cv_gettimeofday_args" = 1 ; then
|
|
AC_DEFINE(HAVE_GETTIMEOFDAY)
|
|
AC_MSG_RESULT(one argument)
|
|
elif test "$ac_cv_gettimeofday_args" = 2 ; then
|
|
AC_DEFINE(HAVE_GETTIMEOFDAY)
|
|
AC_DEFINE(GETTIMEOFDAY_TWO_ARGS)
|
|
AC_MSG_RESULT(two arguments)
|
|
else
|
|
AC_MSG_RESULT(unknown)
|
|
fi
|
|
|
|
dnl Figure out how to 'allocate' paged memory areas (see xpcom/ds/nsPageMgr.cpp)
|
|
dnl First see if /dev/zero is supported so that we
|
|
dnl can mmap against it. If not (hpux) then see if
|
|
dnl if valloc is supported (which is hpux's malloc
|
|
dnl on paged memory boundary
|
|
dnl ========================================================
|
|
|
|
AC_MSG_CHECKING(for /dev/zero)
|
|
if test "$HAVE_DEV_ZERO"; then
|
|
AC_DEFINE(HAVE_DEV_ZERO)
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
if test -r /dev/zero; then
|
|
AC_DEFINE(HAVE_DEV_ZERO)
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
AC_MSG_CHECKING(for valloc)
|
|
AC_CACHE_VAL(ac_cv_valloc,
|
|
[AC_TRY_COMPILE([#include <stdlib.h>],
|
|
[void *ptr = valloc(1);],
|
|
[ac_cv_valloc=true],
|
|
[ac_cv_valloc=false])])
|
|
|
|
if test "$ac_cv_valloc" = true ; then
|
|
AC_DEFINE(HAVE_VALLOC)
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
dnl Does this platform require array notation to assign to a va_list?
|
|
AC_MSG_CHECKING(whether va_list assignments need array notation)
|
|
AC_CACHE_VAL(ac_cv_valistisarray,
|
|
[AC_TRY_COMPILE([#include <varargs.h>],
|
|
[va_list ap, foo;foo = "abcdef";ap = foo+3;],
|
|
[ac_cv_valistisarray=false],
|
|
[ac_cv_valistisarray=true])])
|
|
|
|
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 Checks for specific (libc) global variables
|
|
AC_MSG_CHECKING(for sys_errlist/sys_nerr)
|
|
AC_CACHE_VAL(ac_cv_syserrlist,
|
|
[AC_TRY_COMPILE([#include <stdio.h>
|
|
#include <errno.h>],
|
|
[char *foo = sys_errlist[sys_nerr-1];],
|
|
[ac_cv_syserrlist=true],
|
|
[ac_cv_syserrlist=false])])
|
|
if test "$ac_cv_syserrlist" = true ; then
|
|
AC_DEFINE(HAVE_SYSERRLIST)
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
|
|
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
|
|
|
|
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_MSG_CHECKING(for ostreams)
|
|
AC_CACHE_VAL(ac_cv_ostream,
|
|
[AC_TRY_LINK([#include <iostream.h>],
|
|
[streambuf *xxx; ostream *foo=new ostream(xxx);],
|
|
[ac_cv_ostream=true],
|
|
[ac_cv_ostream=false])])
|
|
if test "$ac_cv_ostream" = true ; then
|
|
AC_DEFINE(HAVE_OSTREAM)
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
_SAVE_LIBS=$LIBS
|
|
LIBS="$LIBS -lstdc++"
|
|
AC_MSG_CHECKING(for ostreams in -lstdc++)
|
|
AC_CACHE_VAL(ac_cv_lib_stdcpp_ostream,
|
|
[AC_TRY_LINK([#include <iostream.h>],
|
|
[ostream *foo=new ostream();],
|
|
[ac_cv_lib_stdcpp_ostream=true],
|
|
[ac_cv_lib_stdcpp_ostream=false])])
|
|
if test "$ac_cv_lib_stdcpp_ostream" = true ; then
|
|
AC_DEFINE(HAVE_OSTREAM)
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
LIBS=$_SAVE_LIBS
|
|
fi
|
|
fi
|
|
|
|
AC_CACHE_CHECK(for C++ \"bool\" keyword,
|
|
ac_cv_cpp_bool,
|
|
[AC_TRY_COMPILE(bool b;,
|
|
b = true;,
|
|
ac_cv_cpp_bool=yes,
|
|
ac_cv_cpp_bool=no)])
|
|
if test "$ac_cv_cpp_bool" = no ; then
|
|
AC_DEFINE(NEEDS_bool)
|
|
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 {};
|
|
template <> 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
|
|
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
|
|
|
|
AC_CACHE_CHECK(for C++ \"using\" keyword,
|
|
ac_cv_cpp_using,
|
|
[AC_TRY_COMPILE(class X { public: int go() {return 3;} };
|
|
class Y : public X {
|
|
private: using X::go;
|
|
};,
|
|
X x; Y y;,
|
|
ac_cv_cpp_using=yes,
|
|
ac_cv_cpp_using=no)])
|
|
if test "$ac_cv_cpp_using" = yes ; then
|
|
AC_DEFINE(HAVE_CPP_USING)
|
|
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 note that this one is reversed - if the test fails, then
|
|
dnl we require implementations of unused methods
|
|
AC_CACHE_CHECK(whether C++ requires implementation of unused methods,
|
|
ac_cv_cpp_unused_required,
|
|
[AC_TRY_LINK(class X {private: 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 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 catagory = 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(async-dns,
|
|
[ --disable-async-dns Disable separate dns thread],
|
|
NO_UNIX_ASYNC_DNS=1)
|
|
|
|
dnl build mozilla/xpfe by default
|
|
MOZ_BUILD_XPFE=1
|
|
MOZ_ARG_DISABLE_BOOL(build-xpfe,
|
|
[ --disable-build-xpfe Disable building of mozilla/xpfe (BROKEN)],
|
|
MOZ_BUILD_XPFE= )
|
|
|
|
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 Note: This conflicts with --disable-shared
|
|
MOZ_ARG_ENABLE_BOOL(oji,
|
|
[ --enable-oji Enable use of Open JVM Interface],
|
|
[MOZ_OJI=1 FULL_STATIC_BUILD= NO_SHARED_LIB=])
|
|
|
|
dnl build the tests by default
|
|
ENABLE_TESTS=1
|
|
MOZ_ARG_DISABLE_BOOL(tests,
|
|
[ --disable-tests Dont build the tests],
|
|
ENABLE_TESTS= )
|
|
|
|
dnl Build browsing profile; off by default
|
|
MOZ_ARG_ENABLE_BOOL(brprof,
|
|
[ --enable-brprof Enable browsing profile cookie],
|
|
MOZ_BRPROF=1
|
|
AC_DEFINE(MOZ_BRPROF))
|
|
|
|
dnl Build w/o X11 shared mem extensions by default
|
|
if test "$no_x" != "yes"; then
|
|
AC_ARG_ENABLE(x11-shm,
|
|
[ --enable-x11-shm Enable use of X11 shared mem in gfx],
|
|
[ if test "$enableval" = "yes"; then
|
|
if test "$ac_cv_header_sys_ipc_h" = "yes" &&
|
|
test "$ac_cv_header_sys_shm_h" = "yes" &&
|
|
test "$ac_cv_header_X11_extensions_XShm_h" = "yes"; then
|
|
AC_DEFINE(USE_SHM)
|
|
else
|
|
AC_MSG_WARN("X11 Shared Memory extensions not supported under this configuration.")
|
|
fi
|
|
fi])
|
|
fi # ! no_x
|
|
|
|
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
|
|
case "$target" in
|
|
*-*-linux*) MOZ_MONOLITHIC_TOOLKIT= ;;
|
|
*-*-solaris*) MOZ_MONOLITHIC_TOOLKIT= ;;
|
|
*-openvms*) MOZ_MONOLITHIC_TOOLKIT= ;;
|
|
*-freebsd*) 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 ========================================================
|
|
|
|
|
|
MOZ_ARG_DISABLE_BOOL(gtk-mozilla,
|
|
[ --disable-gtk-mozilla Disable building of GtkMozilla GTK+ widget],
|
|
MOZ_ENABLE_GTK_MOZILLA=)
|
|
|
|
|
|
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-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_BOOL(optimize,
|
|
[ --enable-optimize Enable code optimizations ],
|
|
[ MOZ_OPTIMIZE=1 ])
|
|
|
|
if test "$MOZ_OPTIMIZE"
|
|
then
|
|
CFLAGS="$CFLAGS $MOZ_OPTIMIZE_FLAGS"
|
|
CXXFLAGS="$CXXFLAGS $MOZ_OPTIMIZE_FLAGS"
|
|
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
|
|
MOZ_DEBUG_FLAGS="-g"
|
|
fi
|
|
|
|
MOZ_ARG_DISABLE_BOOL(debug,
|
|
[ --disable-debug Disable building with debug info],
|
|
MOZ_DEBUG=)
|
|
|
|
if test "$MOZ_DEBUG"
|
|
then
|
|
CFLAGS="$CFLAGS $MOZ_DEBUG_FLAGS"
|
|
CXXFLAGS="$CXXFLAGS $MOZ_DEBUG_FLAGS"
|
|
AC_DEFINE(DEBUG)
|
|
AC_DEFINE_UNQUOTED(DEBUG_`$WHOAMI`)
|
|
AC_DEFINE(TRACING)
|
|
else
|
|
AC_DEFINE(NDEBUG)
|
|
AC_DEFINE(TRIMMED)
|
|
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
|
|
|
|
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,$(topsrcdir)/build/unix/gnu-ld-scripts/components-version-script'
|
|
;;
|
|
esac
|
|
fi
|
|
dnl ========================================================
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = --with-debug-modules=module1,module1,etc
|
|
dnl =
|
|
dnl = Enable debug for specific modules only
|
|
dnl =
|
|
dnl ========================================================
|
|
MOZ_ARG_WITH_STRING(debug-modules,
|
|
[ --with-debug-modules Enable debug for specific modules only],
|
|
[ MOZ_DEBUG_MODULES=`echo $withval | sed 's/,/ /g'` ] )
|
|
dnl ========================================================
|
|
|
|
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="cookie wallet"
|
|
|
|
MOZ_ARG_WITH_STRING(extensions,
|
|
[ --with-extensions Enable extensions (dirs in extensions/)],
|
|
[ if test "$withval" = "yes" || test "$withval" = "all"; then
|
|
MOZ_EXTENSIONS="cookie irc wallet"
|
|
elif test "$withval" = "no" || test "$withval" = "none"; then
|
|
MOZ_EXTENSIONS=""
|
|
elif test "$withval" != ""; then
|
|
MOZ_EXTENSIONS=`echo $withval | sed 's/,/ /g'`
|
|
fi ] )
|
|
dnl ========================================================
|
|
|
|
_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
|
|
MDDEPDIR='.deps'
|
|
_DEPEND_CFLAGS='$(filter-out %/.pp,-Wp,-MD,$(MDDEPDIR)/$(*F).pp)'
|
|
fi
|
|
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
|
|
_WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} ${_COMPILER_PREFIX}-pedantic"
|
|
_WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} ${_COMPILER_PREFIX}-pedantic"
|
|
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 Note: This should not be disabled if --enable-oji is set
|
|
MOZ_ARG_DISABLE_BOOL(shared,
|
|
[ --disable-shared Disable building of internal shared libs],
|
|
NO_SHARED_LIB=1)
|
|
|
|
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 ],
|
|
[ _MOZ_EXCEPTIONS_FLAGS=-fexceptions ]
|
|
)
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = Profiling and Instrumenting
|
|
dnl =
|
|
dnl ========================================================
|
|
MOZ_ARG_HEADER(Profiling and Instrumenting)
|
|
|
|
MOZ_ARG_ENABLE_BOOL(gprof,
|
|
[ --enable-gprof Enable gprof symbols],
|
|
[ _GPROF_CFLAGS="-pg" ])
|
|
|
|
dnl Enable performance metrics.
|
|
MOZ_ARG_ENABLE_BOOL(perf-metrics,
|
|
[ --enable-perf-metrics Enable performance metrics],
|
|
MOZ_PERF=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 ],
|
|
MOZ_INSURE_DIRS=$withval )
|
|
|
|
MOZ_ARG_WITH_STRING(insure-exclude-dirs,
|
|
[ --with-insure-exclude-dirs=\$dirs
|
|
Dirs to not instrument ],
|
|
MOZ_INSURE_EXCLUDE_DIRS="config $withval" )
|
|
|
|
MOZ_ARG_ENABLE_BOOL(profile,
|
|
[ --enable-profile Enable profiling (solaris only)],
|
|
MOZILLA_GPROF=1)
|
|
|
|
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=no) ],
|
|
MOZ_LOG_REFCNT=1
|
|
AC_DEFINE(MOZ_LOG_REFCNT))
|
|
|
|
dnl mozilla/tools/leaky not part of default build.
|
|
MOZ_ARG_ENABLE_BOOL(leaky,
|
|
[ --enable-leaky Enable leaky memory tool],
|
|
MOZ_LEAKY=1)
|
|
|
|
dnl Detect webshell leaks
|
|
MOZ_ARG_ENABLE_BOOL(detect-webshell-leaks,
|
|
[ --enable-detect-webshell-leaks Enable detection of webshell leaks],
|
|
DETECT_WEBSHELL_LEAKS=1
|
|
AC_DEFINE(DETECT_WEBSHELL_LEAKS))
|
|
|
|
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) (default=no) ],
|
|
[ 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)'
|
|
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 if available (default=no) ],
|
|
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 builds
|
|
if test "$MOZ_DEBUG"
|
|
then
|
|
MOZ_DEMANGLE_SYMBOLS=1
|
|
AC_DEFINE(MOZ_DEMANGLE_SYMBOLS)
|
|
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(MOZ_USER_DIR,"$enableval")
|
|
fi],
|
|
AC_DEFINE(MOZ_USER_DIR,".mozilla") )
|
|
|
|
MOZ_ARG_ENABLE_BOOL(idltool,
|
|
[ --enable-idlc Build idl tool (default=no) ],
|
|
BUILD_IDLC=1)
|
|
|
|
MOZ_ARG_ENABLE_BOOL(xterm-updates,
|
|
[ --enable-xterm-updates Update XTERM titles with current command.],
|
|
MOZ_UPDATE_XTERM=1)
|
|
|
|
dnl
|
|
dnl --enable mathml
|
|
dnl TODO: handle include files here ?
|
|
dnl
|
|
MOZ_ARG_ENABLE_BOOL(mathml,
|
|
[ --enable-mathml Enable MathML (BROKEN) ],
|
|
MOZ_MATHML=1
|
|
AC_DEFINE(MOZ_MATHML))
|
|
|
|
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 use GNU make's implicit archive feature to save space
|
|
MOZ_ARG_ENABLE_BOOL(implicit-archive,
|
|
[ --enable-implicit-archive
|
|
Use GNU make's implicit archive feature],
|
|
USE_IMPLICIT_ARCHIVE=1)
|
|
|
|
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 = Untested or Broken Options
|
|
dnl =
|
|
dnl ========================================================
|
|
MOZ_ARG_HEADER(Untested or Broken Options)
|
|
|
|
dnl Note: This needs to come after --disable-shared
|
|
MOZ_ARG_ENABLE_BOOL(java,
|
|
[ --enable-java Enable use of java applets (untested)],
|
|
[MOZ_JAVA=1 FULL_STATIC_BUILD= NO_SHARED_LIB=])
|
|
|
|
if test "$MOZ_OJI" -a "$MOZ_JAVA"
|
|
then
|
|
echo "configure: error: Simultaneous use of --enable-java and\
|
|
--enable-oji is no longer supported." 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = MOZ_TIMER_LIBS
|
|
dnl =
|
|
dnl = Set the timer libs according to MOZ_MONOLITHIC_TOOLKIT
|
|
dnl =
|
|
dnl ========================================================
|
|
MOZ_TIMER_LIBS='$(DIST)/lib/libtimer_s.a'
|
|
|
|
# Beos needs to link the timer in dynamically
|
|
case "$target" in
|
|
*-beos*)
|
|
MOZ_TIMER_LIBS='$(DIST)/lib/libtimer_beos.so'
|
|
;;
|
|
esac
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = End MOZ_TIMER_LIBS
|
|
dnl =
|
|
dnl ========================================================
|
|
|
|
NO_STATIC_LIB=1
|
|
|
|
MOZ_ARG_ENABLE_BOOL(static,
|
|
[ --enable-static Enable building of internal static libs],
|
|
NO_STATIC_LIB=)
|
|
|
|
case "$target" in
|
|
*-*-aix*)
|
|
if test "${NO_STATIC_LIB}" = "1" -o -z "${NO_SHARED_LIB}"; 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
|
|
NO_STATIC_LIB=''
|
|
NO_SHARED_LIB=1
|
|
fi
|
|
fi
|
|
AC_SUBST(AIX_SHLIB_BIN)
|
|
;;
|
|
esac
|
|
|
|
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(NS_USE_NATIVE)
|
|
AC_SUBST(MOZ_WIDGET_TOOLKIT)
|
|
AC_SUBST(MOZ_GFX_TOOLKIT)
|
|
AC_SUBST(MOZ_UPDATE_XTERM)
|
|
AC_SUBST(MOZ_MATHML)
|
|
AC_SUBST(MOZ_MONOLITHIC_TOOLKIT)
|
|
AC_SUBST(MOZ_TIMER_LIBS)
|
|
AC_SUBST(MOZ_SECURITY)
|
|
dnl AC_SUBST(MOZ_NETCAST)
|
|
AC_SUBST(MOZ_JAVA)
|
|
AC_SUBST(MOZ_OJI)
|
|
AC_SUBST(MOZ_DEBUG)
|
|
AC_SUBST(MOZ_DEBUG_MODULES)
|
|
AC_SUBST(MOZ_EXTENSIONS)
|
|
AC_SUBST(MOZILLA_GPROF)
|
|
AC_SUBST(MOZ_PERF_METRICS)
|
|
AC_SUBST(GC_LEAK_DETECTOR)
|
|
AC_SUBST(MOZ_LOG_REFCNT)
|
|
AC_SUBST(MOZ_LEAKY)
|
|
AC_SUBST(DETECT_WEBSHELL_LEAKS)
|
|
AC_SUBST(MOZ_INSURE)
|
|
AC_SUBST(MOZ_INSURE_DIRS)
|
|
AC_SUBST(MOZ_INSURE_EXCLUDE_DIRS)
|
|
AC_SUBST(MOZ_INSURIFYING)
|
|
AC_SUBST(MOZ_BUILD_XPFE)
|
|
dnl AC_SUBST(MOZ_LDAP)
|
|
AC_SUBST(MOZ_BRPROF)
|
|
|
|
AC_SUBST(UNIX_CRASH_ON_ASSERT)
|
|
AC_SUBST(NO_UNIX_ASYNC_DNS)
|
|
AC_SUBST(NO_SHARED_LIB)
|
|
AC_SUBST(NO_STATIC_LIB)
|
|
AC_SUBST(ENABLE_TESTS)
|
|
AC_SUBST(MOZ_USER_DIR)
|
|
dnl AC_SUBST(MOZ_SMART_MAIL)
|
|
AC_SUBST(FULL_STATIC_BUILD)
|
|
AC_SUBST(BUILD_IDLC)
|
|
AC_SUBST(MOZ_ENABLE_GTK_MOZILLA)
|
|
AC_SUBST(USE_IMPLICIT_ARCHIVE)
|
|
|
|
AC_SUBST(MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS)
|
|
|
|
AC_SUBST(MOZ_COMPONENT_NSPR_LIBS)
|
|
AC_SUBST(MOZ_COMPONENT_XPCOM_LIBS)
|
|
AC_SUBST(MOZ_COMPONENT_LIBS)
|
|
|
|
AC_SUBST(MOZ_GLE)
|
|
|
|
AC_SUBST(MOZ_BUILD_ROOT)
|
|
|
|
AC_SUBST(MOZ_POST_DSO_LIB_COMMAND)
|
|
AC_SUBST(MOZ_POST_PROGRAM_COMMAND)
|
|
|
|
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 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 ! -z "$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)
|
|
|
|
|
|
LDFLAGS=`echo \
|
|
$_WARNINGS_CFLAGS \
|
|
$LDFLAGS \
|
|
$CFLAGS`
|
|
|
|
dnl Echo the CFLAGS to remove extra whitespace.
|
|
CFLAGS=`echo \
|
|
$_WARNINGS_CFLAGS \
|
|
$_GPROF_CFLAGS \
|
|
$_DEPEND_CFLAGS \
|
|
$_DEFINES_CFLAGS \
|
|
$CFLAGS`
|
|
|
|
CXXFLAGS=`echo \
|
|
$_MOZ_RTTI_FLAGS \
|
|
$_MOZ_EXCEPTIONS_FLAGS \
|
|
$_WARNINGS_CXXFLAGS \
|
|
$_GPROF_CFLAGS \
|
|
$_DEPEND_CFLAGS \
|
|
$_DEFINES_CXXFLAGS \
|
|
$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_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(NSPR_INCLUDE_DIR)
|
|
AC_SUBST(NSPR_CFLAGS)
|
|
AC_SUBST(NSPR_LIBS)
|
|
AC_SUBST(MOZ_NATIVE_NSPR)
|
|
AC_SUBST(USE_NSPR_AUTOCONF)
|
|
|
|
AC_SUBST(CFLAGS)
|
|
AC_SUBST(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(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(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)
|
|
|
|
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)
|
|
elif test "$OS_TARGET" = "WINNT"; then
|
|
AC_DEFINE(XP_PC)
|
|
elif test "$OS_TARGET" = "BeOS"; then
|
|
AC_DEFINE(XP_BEOS)
|
|
else
|
|
AC_DEFINE(XP_UNIX)
|
|
AC_DEFINE(UNIX_ASYNC_DNS)
|
|
fi
|
|
|
|
AC_DEFINE(JS_THREADSAFE)
|
|
AC_DEFINE(LAYERS)
|
|
|
|
# Used for LD_LIBRARY_PATH of run_viewer target
|
|
LIBS_PATH=
|
|
for lib_arg in $NSPR_LIBS $TK_LIBS; do
|
|
case $lib_arg in
|
|
-L* ) LIBS_PATH="${LIBS_PATH:+$LIBS_PATH:}"`expr $lib_arg : "-L\(.*\)"` ;;
|
|
* ) ;;
|
|
esac
|
|
done
|
|
AC_SUBST(LIBS_PATH)
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = Support for feeding NSPR environment variables via
|
|
dnl = a file as opposed to the environment itself.
|
|
dnl =
|
|
dnl = The following 2 files get generated by configure and
|
|
dnl = copied into
|
|
dnl =
|
|
dnl = build/unix/nspr_my_config.mk support
|
|
dnl = build/unix/nspr_my_override.mk support
|
|
dnl =
|
|
dnl = nsprpub/config
|
|
dnl =
|
|
dnl = NSPR will then include these files in its build environment.
|
|
dnl =
|
|
dnl = The following variables might need to be set to properly
|
|
dnl = build NSPR for unix:
|
|
dnl =
|
|
dnl = my_config.mk:
|
|
dnl =
|
|
dnl = USE_PTHREADS
|
|
dnl = BUILD_OPT
|
|
dnl = NS_USE_GCC
|
|
dnl = NO_MDUPDATE
|
|
dnl = NS_USE_NATIVE
|
|
dnl = MOZILLA_CLIENT
|
|
dnl = CLASSIC_NSPR
|
|
dnl =
|
|
dnl = my_overrides.mk:
|
|
dnl =
|
|
dnl = DIST
|
|
dnl =
|
|
dnl ========================================================
|
|
if test -z "$MOZ_NATIVE_NSPR" && test -z "$USE_NSPR_AUTOCONF"
|
|
then
|
|
dnl
|
|
dnl USE_PTHREADS
|
|
dnl
|
|
dnl This flag controls whether NSPR use pthreads, which are usually
|
|
dnl native to many unices, to implement multithreading. On systems
|
|
dnl which dont support pthreads, NSPR uses its own user threads
|
|
dnl implementation.
|
|
dnl
|
|
dnl Different unices have different defaults for USE_PTHREADS within
|
|
dnl NSPR. Since at this point in configure.in, we know what we
|
|
dnl want, we force USE_PTHREADS to the correct value.
|
|
dnl
|
|
|
|
dnl
|
|
dnl USE_PTHREADS
|
|
dnl
|
|
dnl Same as detected above.
|
|
dnl
|
|
MOZ_NSPRENV_USE_PTHREADS=$USE_PTHREADS
|
|
|
|
dnl
|
|
dnl CLASSIC_NSPR
|
|
dnl
|
|
dnl On Linux libc5, CLASSIC_NSPR needs to be set so that NSPR chooses
|
|
dnl the correct threading implementation (user threads - not pthreads).
|
|
dnl On Linux, CLASSIC_NSPR's only purpose to to control linking against
|
|
dnl libpthreads.
|
|
dnl
|
|
MOZ_NSPRENV_CLASSIC_NSPR=
|
|
case "$target" in
|
|
*-linux*)
|
|
if test "$USE_PTHREADS"x = x
|
|
then
|
|
MOZ_NSPRENV_CLASSIC_NSPR=1
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
dnl
|
|
dnl BUILD_OPT
|
|
dnl
|
|
dnl This flag controls whether NSPR is built with debug info
|
|
dnl
|
|
if test "$MOZ_DEBUG"
|
|
then
|
|
MOZ_NSPRENV_BUILD_OPT=
|
|
else
|
|
MOZ_NSPRENV_BUILD_OPT=1
|
|
fi
|
|
|
|
dnl
|
|
dnl NS_USE_GCC
|
|
dnl NS_USE_NATIVE
|
|
dnl
|
|
dnl These are NSPR's way of switching between "native" and GNU compilers
|
|
dnl
|
|
if test "$GNU_CC"
|
|
then
|
|
MOZ_NSPRENV_NS_USE_GCC=1
|
|
MOZ_NSPRENV_NS_USE_NATIVE=
|
|
else
|
|
MOZ_NSPRENV_NS_USE_NATIVE=1
|
|
MOZ_NSPRENV_NS_USE_GCC=
|
|
fi
|
|
|
|
dnl
|
|
dnl NO_MDUPDATE
|
|
dnl
|
|
dnl These are set just to be safe. It is possible that NSPR doesnt
|
|
dnl use these anymore.
|
|
dnl
|
|
MOZ_NSPRENV_NO_MDUPDATE=1
|
|
|
|
dnl
|
|
dnl MOZILLA_CLIENT
|
|
dnl
|
|
MOZ_NSPRENV_MOZILLA_CLIENT=
|
|
|
|
dnl
|
|
dnl DIST
|
|
dnl
|
|
dnl Where the NSPR stuff gets installed: $DIST/{bin,lib,include}
|
|
dnl
|
|
MOZ_NSPRENV_DIST=`pwd`/dist
|
|
|
|
dnl
|
|
dnl MAKE
|
|
dnl
|
|
dnl NSPR is not safe for gnu make -jX (where X > 1) builds. Force make
|
|
dnl in NSPR to be 'make -j1' - or just 'make'
|
|
dnl
|
|
case "$target" in
|
|
*-linux*)
|
|
MOZ_NSPRENV_OVERRIDE_MAKE=`echo $MAKE | $AWK '{print \$1}'`
|
|
;;
|
|
|
|
*)
|
|
MOZ_NSPRENV_OVERRIDE_MAKE=
|
|
;;
|
|
esac
|
|
|
|
AC_SUBST(MOZ_NSPRENV_USE_PTHREADS)
|
|
AC_SUBST(MOZ_NSPRENV_BUILD_OPT)
|
|
AC_SUBST(MOZ_NSPRENV_NS_USE_GCC)
|
|
AC_SUBST(MOZ_NSPRENV_NO_MDUPDATE)
|
|
AC_SUBST(MOZ_NSPRENV_NS_USE_NATIVE)
|
|
AC_SUBST(MOZ_NSPRENV_MOZILLA_CLIENT)
|
|
AC_SUBST(MOZ_NSPRENV_CLASSIC_NSPR)
|
|
AC_SUBST(MOZ_NSPRENV_DIST)
|
|
AC_SUBST(MOZ_NSPRENV_OVERRIDE_MAKE)
|
|
fi
|
|
dnl ========================================================
|
|
|
|
|
|
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
|
|
|
|
AC_OUTPUT($MAKEFILES)
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = If we are building NSPR as part of the build, make sure
|
|
dnl = the NSPR environment config and override files get copied
|
|
dnl = to the right place.
|
|
dnl =
|
|
dnl ========================================================
|
|
if test ! "$MOZ_NATIVE_NSPR" && test -z "$USE_NSPR_AUTOCONF"
|
|
then
|
|
rm -f ${srcdir}/nsprpub/config/my_config.mk
|
|
rm -f ${srcdir}/nsprpub/config/my_overrides.mk
|
|
cp build/unix/nspr_my_config.mk ${srcdir}/nsprpub/config/my_config.mk
|
|
cp build/unix/nspr_my_overrides.mk ${srcdir}/nsprpub/config/my_overrides.mk
|
|
fi
|
|
|
|
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 -n "$USE_NSPR_AUTOCONF"; then
|
|
ac_configure_args="$_SUBDIR_CONFIG_ARGS --prefix=$MOZ_BUILD_ROOT/dist"
|
|
AC_OUTPUT_SUBDIRS(nsprpub)
|
|
fi
|
|
|
|
if test "$MOZ_ENABLE_GTK_MOZILLA"; then
|
|
ac_configure_args="$_SUBDIR_CONFIG_ARGS --prefix=$MOZ_BUILD_ROOT/dist --with-mozilla=$MOZ_BUILD_ROOT/dist"
|
|
AC_OUTPUT_SUBDIRS(webshell/embed/gtk)
|
|
fi
|