mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-12 14:37:50 +00:00
692e429935
off as part of the toolkit link time exorcism.
2848 lines
80 KiB
Plaintext
2848 lines
80 KiB
Plaintext
dnl The contents of this file are subject to the Mozilla Public License
|
|
dnl Version 1.0 (the "License"); you may not use this file except in
|
|
dnl compliance with the License. You may obtain a copy of the License
|
|
dnl at http://www.mozilla.org/MPL/
|
|
dnl
|
|
dnl Software distributed under the License is distributed on an "AS IS"
|
|
dnl basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
|
|
dnl the License for the specific language governing rights and
|
|
dnl 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 this code under the MPL is Christopher
|
|
dnl Seawood, <cls@seawood.org>. Portions created by Christopher Seawood
|
|
dnl are Copyright (C) 1998 Christopher Seawood. All Rights Reserved.
|
|
dnl
|
|
dnl Contributors:
|
|
dnl Jamie Zawinski <jwz@jwz.org>
|
|
dnl gettimeofday args check
|
|
dnl
|
|
dnl Christopher Blizzard <blizzard@appliedtheory.com>
|
|
dnl gnomefe update & enable-pthreads
|
|
dnl
|
|
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
|
|
|
|
dnl Set this define to make fixes w/o breaking anything else.
|
|
AC_DEFINE(USE_AUTOCONF)
|
|
|
|
dnl Always set this for mozilla.
|
|
AC_DEFINE(MOZILLA_CLIENT)
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = Dont change the following two lines. Doing so breaks:
|
|
dnl =
|
|
dnl = CFLAGS="-foo" ./configure
|
|
dnl =
|
|
dnl ========================================================
|
|
CFLAGS="${CFLAGS=}"
|
|
CXXFLAGS="${CXXFLAGS=}"
|
|
|
|
dnl Set the version number of the libs included with mozilla
|
|
dnl ========================================================
|
|
MOZJPEG=62
|
|
MOZPNG=95
|
|
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
|
|
|
|
dnl Checks for programs.
|
|
dnl ========================================================
|
|
AC_PROG_CC
|
|
AC_PROG_CXX
|
|
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
|
|
AC_PROG_CPP
|
|
AC_PROG_CXXCPP
|
|
AC_PROG_INSTALL
|
|
AC_PROG_AWK
|
|
AC_PROG_RANLIB
|
|
|
|
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
|
|
|
|
dnl Support for X11 makedepend, if found on the system
|
|
dnl ========================================================
|
|
AC_PATH_PROG(SYSTEM_MAKEDEPEND,makedepend)
|
|
|
|
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_XTRA
|
|
|
|
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 set the defaults first
|
|
dnl ========================================================
|
|
AR='ar cr $@'
|
|
AS='$(CC)'
|
|
ASFLAGS='$(CFLAGS)'
|
|
AS_DASH_C_FLAG='-c'
|
|
NS_USE_NATIVE=
|
|
DLL_SUFFIX="so"
|
|
OS_TARGET=`uname -s`
|
|
CROSS_COMPILE=
|
|
|
|
_COMPILER_PREFIX=
|
|
|
|
dnl GNU specific defaults
|
|
dnl ========================================================
|
|
if test "$GNU_CC"; then
|
|
MKSHLIB='$(CXX) $(DSO_LDOPTS)'
|
|
MKCSHLIB='$(CC) $(DSO_LDOPTS)'
|
|
DSO_LDOPTS='-shared -Wl,-h -Wl,$(@:$(OBJDIR)/%.$(DLL_SUFFIX)=%.$(DLL_SUFFIX))'
|
|
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
|
|
# -pipe - speeds up the build a little by using pipes rather than
|
|
# temp files
|
|
_WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wall -Wconversion -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align"
|
|
|
|
_DEFINES_CFLAGS='-include $(DEPTH)/config-defs.h'
|
|
_USE_CPP_INCLUDE_FLAG=1
|
|
else
|
|
MKSHLIB='$(LD) $(DSO_LDOPTS)'
|
|
MKCSHLIB='$(LD) $(DSO_LDOPTS)'
|
|
DSO_LDOPTS='-shared -h $(@:$(OBJDIR)/%.$(DLL_SUFFIX)=%.$(DLL_SUFFIX))'
|
|
DSO_CFLAGS=''
|
|
DSO_PIC_CFLAGS='-KPIC'
|
|
_DEFINES_CFLAGS='$(ACDEFINES)'
|
|
fi
|
|
|
|
if test "$GNU_CXX"; then
|
|
# Turn on GNU specific features
|
|
_WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wall -Wconversion -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Woverloaded-virtual -Wsynth"
|
|
|
|
_DEFINES_CXXFLAGS='-include $(DEPTH)/config-defs.h'
|
|
_USE_CPP_INCLUDE_FLAG=1
|
|
else
|
|
_DEFINES_CXXFLAGS='$(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 System overrides of the defaults
|
|
dnl ========================================================
|
|
case "$target" in
|
|
*-aix*)
|
|
if test ! "$GNU_CC"; then
|
|
DSO_LDOPTS='-ldl -bM:SRE -brtl -bso -berok -bexpall -bnoentry'
|
|
DSO_CFLAGS='-qflag=w:w'
|
|
DSO_PIC_CFLAGS='-DPIC'
|
|
fi
|
|
MKSHLIB='$(AIX_SHLIB_BIN) -p1 -brtl -bso -berok'
|
|
MKCSHLIB='$(AIX_SHLIB_BIN) -p1 -brtl -bso -berok'
|
|
;;
|
|
|
|
*-beos*)
|
|
MKSHLIB='$(CXX) $(DSO_LDOPTS)'
|
|
DSO_LDOPTS='-nostart -Xlinker --ignore-undefined'
|
|
TK_LIBS='-lbe -lroot'
|
|
;;
|
|
|
|
*-bsdi*)
|
|
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_CFLAGS=""
|
|
DSO_PIC_CFLAGS="+Z"
|
|
fi
|
|
DSO_LDOPTS='-b -E -L$(DIST)/bin'
|
|
MKSHLIB='$(LD) $(DSO_LDOPTS)'
|
|
MKCSHLIB='$(LD) $(DSO_LDOPTS)'
|
|
;;
|
|
|
|
*-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*)
|
|
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"
|
|
fi
|
|
;;
|
|
|
|
dnl Linux Alpha needs -mieee for FPU to work correctly
|
|
alpha*-*-linux*)
|
|
CFLAGS="$CFLAGS -mieee"
|
|
CXXFLAGS="$CXXFLAGS -mieee"
|
|
;;
|
|
|
|
*-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 -M -a $@'
|
|
_DEFINES_CFLAGS='-Wp,-include,$(DEPTH)/config-defs.h'
|
|
_DEFINES_CXXFLAGS='-Wp,-include,$(DEPTH)/config-defs.h'
|
|
_PREPROCESSOR_PREFIX="-Wp,"
|
|
_COMPILER_PREFIX="-Wc,"
|
|
_LINKER_PREFIX="-Wl,"
|
|
USE_PTHREADS=1
|
|
PTHREAD_LDFLAGS=""
|
|
;;
|
|
|
|
*-openbsd*)
|
|
DLL_SUFFIX="so.1.0"
|
|
DSO_CFLAGS=''
|
|
DSO_PIC_CFLAGS='-fPIC'
|
|
DSO_LDOPTS='-shared -h $(@:$(OBJDIR)/%.$(DLL_SUFFIX)=%.$(DLL_SUFFIX))'
|
|
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...
|
|
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,$(@:$(OBJDIR)/%.$(DLL_SUFFIX)=%.$(DLL_SUFFIX))'
|
|
else
|
|
CFLAGS="$CFLAGS -std1 -ieee_with_inexact"
|
|
CXXFLAGS="$CXXFLAGS -std1 -ieee_with_inexact"
|
|
DSO_LDOPTS='-shared -msym -expect_unresolved \* -soname $(@:$(OBJDIR)/%.$(DLL_SUFFIX)=%.$(DLL_SUFFIX))'
|
|
DSO_CFLAGS=
|
|
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*)
|
|
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_LIBS='-lphoton -lphrender'
|
|
AC_DEFINE(NO_X11)
|
|
fi
|
|
;;
|
|
|
|
*-rhapsody*)
|
|
DLL_SUFFIX="dylib"
|
|
;;
|
|
|
|
*-sco*)
|
|
CXXFLAGS="$CXXFLAGS -I/usr/include/CC"
|
|
if test ! "$GNU_CC"; then
|
|
DSO_LDOPTS='-G -h $(@:$(OBJDIR)/%.$(DLL_SUFFIX)=%.$(DLL_SUFFIX))'
|
|
fi
|
|
;;
|
|
|
|
dnl the qsort routine under solaris is faulty
|
|
*-solaris*)
|
|
AC_DEFINE(BROKEN_QSORT)
|
|
if test ! "$GNU_CC"; then
|
|
LDFLAGS='-xildoff'
|
|
MKSHLIB='$(CXX) $(DSO_LDOPTS)'
|
|
MKCSHLIB='$(CC) $(DSO_LDOPTS)'
|
|
MKSHLIB_FORCE_ALL='-z allextract'
|
|
MKSHLIB_UNFORCE_ALL=''
|
|
DSO_LDOPTS='-G -h $(@:$(OBJDIR)/%.$(DLL_SUFFIX)=%.$(DLL_SUFFIX))'
|
|
AR='$(CXX) -xar -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'
|
|
;;
|
|
*)
|
|
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)'
|
|
MKSHLIB_FORCE_ALL='-z allextract'
|
|
MKSHLIB_UNFORCE_ALL=''
|
|
DSO_LDOPTS='-G -h $(@:$(OBJDIR)/%.$(DLL_SUFFIX)=%.$(DLL_SUFFIX))'
|
|
# gcc 2.7.2.1 (solaris only?) seems to need -G in order to link binaries.
|
|
if test "`${CC} --version`" = "2.7.2.1"; then
|
|
LDFLAGS="${LDFLAGS} -G"
|
|
fi
|
|
_WARNINGS_CFLAGS=''
|
|
_WARNINGS_CXXFLAGS=''
|
|
fi
|
|
;;
|
|
|
|
*-sunos*)
|
|
DSO_LDOPTS='-Bdynamic'
|
|
MKSHLIB='-$(LD) $(DSO_LDOPTS)'
|
|
MKCSHLIB='-$(LD) $(DSO_LDOPTS)'
|
|
;;
|
|
|
|
esac
|
|
|
|
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 Check for toolkit libs
|
|
dnl ========================================================
|
|
useRhapsody=`echo $target_os | egrep "^Rhapsody"`
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = --enable-toolkit
|
|
dnl =
|
|
dnl = Select which toolkit to use for widgets.
|
|
dnl =
|
|
dnl = Choices are:
|
|
dnl =
|
|
dnl = gtk (default)
|
|
dnl = motif
|
|
dnl = xlib
|
|
dnl =
|
|
dnl ========================================================
|
|
AC_ARG_ENABLE(toolkit,
|
|
[ --enable-toolkit=\$val Enable \$val fe (defaults to gtk)],
|
|
[if test "$enableval" = "motif" \
|
|
-o "$enableval" = "gtk" \
|
|
-o "$enableval" = "xlib" \
|
|
-o "$useRhapsody" ; 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 or Motif.)
|
|
fi],
|
|
[if test "$useRhapsody" ; then
|
|
MOZ_WIDGET_TOOLKIT="rhapsody"
|
|
else
|
|
MOZ_WIDGET_TOOLKIT="gtk"
|
|
fi])
|
|
|
|
|
|
if echo ":$MOZ_WIDGET_TOOLKIT" | grep "motif" >/dev/null; then
|
|
if test "$no_x" != "yes"; then
|
|
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
|
|
fi
|
|
|
|
if test "$MOTIF_REQUIRES_XPM" = "True" -o "$MOTIF_VERSION" = "2.1"; then
|
|
_SAVE_LDFLAGS="$LDFLAGS"
|
|
LDFLAGS="$XLDFLAGS $LDFLAGS"
|
|
|
|
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"], $XLIBS)
|
|
fi
|
|
|
|
LDFLAGS="$_SAVE_LDFLAGS"
|
|
fi
|
|
|
|
TK_LIBS="$XLDFLAGS $TK_LIBS"
|
|
|
|
if test "$MOTIF_STATIC_LIB" = "unknown" \
|
|
-a "$MOTIF_DYNAMIC_LIB" = "unknown"; then
|
|
AC_ERROR("Cannot find either dynamic or static Motif libraries.")
|
|
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
|
|
|
|
TK_LIBS="$MOTIF_XP_LIBS $TK_LIBS $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,
|
|
TK_LIBS="$MOTIF_DYNAMIC_PATHS $MOTIF_DYNAMIC_FLAGS $TK_LIBS",
|
|
[MISSING_MOTIF="$MISSING_MOTIF $MOTIF_DYNAMIC_FLAGS"],
|
|
$MOTIF_DYNAMIC_PATHS $TK_LIBS $XLIBS)
|
|
LDFLAGS="$_SAVE_LDFLAGS"
|
|
else
|
|
AC_CHECK_LIB(Xm, XmStringCreate,
|
|
TK_LIBS="$MOTIF_STATIC_FLAGS $TK_LIBS",
|
|
[MISSING_MOTIF="$MISSING_MOTIF $MOTIF_STATIC_FLAGS"],
|
|
$TK_LIBS $XLIBS)
|
|
fi
|
|
|
|
TK_CFLAGS="$MOTIF_INCLUDES"
|
|
fi
|
|
|
|
if echo ":$MOZ_WIDGET_TOOLKIT" | grep "gtk" >/dev/null; then
|
|
AM_PATH_GTK($GTK_VERSION,,
|
|
AC_MSG_ERROR(Test for GTK failed.))
|
|
|
|
AC_ARG_WITH(static-gtk,
|
|
[ --with-static-gtk link gtk statically if possible],
|
|
sysstaticgtk=$withval)
|
|
|
|
if test "$sysstaticgtk" != "yes"; then
|
|
TK_LIBS=$GTK_LIBS
|
|
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([,])
|
|
|
|
TK_LIBS="$GTK_STATIC_LOC/lib${GTK_STATIC}.a"
|
|
TK_LIBS="$TK_LIBS $GTK_STATIC_LOC/lib${GDK_STATIC}.a"
|
|
TK_LIBS="$TK_LIBS $GLIB_STATIC_LOC/lib${GMODULE_STATIC}.a"
|
|
TK_LIBS="$TK_LIBS $GLIB_STATIC_LOC/lib${GLIB_STATIC}.a"
|
|
TK_LIBS="$TK_LIBS $GTK_LIBS_LOC $GTK_OTHER_LIBS"
|
|
fi
|
|
TK_CFLAGS=$GTK_CFLAGS
|
|
fi
|
|
|
|
# tk=xlib build.
|
|
if echo ":$MOZ_WIDGET_TOOLKIT" | grep "xlib" >/dev/null; then
|
|
TK_CFLAGS='$(XCFLAGS)'
|
|
TK_LIBS='$(XLDFLAGS)'
|
|
TK_LIBS="$TK_LIBS $XEXT_LIBS $X11_LIBS"
|
|
fi
|
|
|
|
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_LIBS='-lphoton -lphrender'
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = --enable-gfx-toolkit
|
|
dnl =
|
|
dnl = Select which toolkit to use for gfx (rendering)
|
|
dnl =
|
|
dnl = Choices are:
|
|
dnl =
|
|
dnl = gtk
|
|
dnl = motif
|
|
dnl = xlib
|
|
dnl =
|
|
dnl = Default is whatever MOZ_WIDGET_TOOLKIT is
|
|
dnl =
|
|
dnl = The only valid combinations are:
|
|
dnl =
|
|
dnl = widget gfx
|
|
dnl = ------ ---
|
|
dnl = gtk gtk
|
|
dnl = motif motif
|
|
dnl = xlib xlib
|
|
dnl =
|
|
dnl = motif xlib (broken)
|
|
dnl = gtk xlib (not tested yet)
|
|
dnl =
|
|
dnl ========================================================
|
|
MOZ_GFX_TOOLKIT=$MOZ_WIDGET_TOOLKIT
|
|
|
|
AC_ARG_ENABLE(gfx-toolkit,
|
|
[ --enable-gfx-toolkit=\$val Enable \$val fe (defaults to same as widget)],
|
|
[ MOZ_GFX_TOOLKIT=`echo "$enableval" | sed -e "s/,.*$//"` ],
|
|
[])
|
|
|
|
|
|
if echo ":$MOZ_GFX_TOOLKIT" | grep "xlib" >/dev/null
|
|
then
|
|
MOZ_XLIBRGB_LDFLAGS=-lxlibrgb
|
|
MOZ_USING_XLIBRGB=1
|
|
|
|
AC_DEFINE(MOZ_USING_XLIBRGB)
|
|
|
|
AC_SUBST(MOZ_XLIBRGB_LDFLAGS)
|
|
AC_SUBST(MOZ_USING_XLIBRGB)
|
|
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.))
|
|
|
|
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
|
|
else
|
|
changequote(,)
|
|
|
|
GTK_LIBS_LOC=`echo $GTK_LIBS | sed 's/\(.*\)\(-lgtk.*\)/\1/'`
|
|
|
|
GTK_STATIC_LOC=`echo $GTK_LIBS | sed 's/^ *-L\([^ ]*\) .*$/\1/'`
|
|
GTK_STATIC=`echo $GTK_LIBS | sed 's/^.*-l\(gtk[^ ]*\) .*/\1/'`
|
|
GDK_STATIC=`echo $GTK_LIBS | sed 's/^.*-l\(gdk[^ ]*\) .*/\1/'`
|
|
|
|
GLIB_STATIC_LOC=`echo $GTK_LIBS | sed -e 's/^.*-lgdk[^ ]* *-L\([^ ]*\).*$/\1/' -e 's/^.* -lgdk[^ ]* .*$//'`
|
|
if test ! "$GLIB_STATIC_LOC" ; then
|
|
GLIB_STATIC_LOC=$GTK_STATIC_LOC
|
|
fi
|
|
GMODULE_STATIC=`echo $GTK_LIBS | sed 's/^.*-l\(gmodule[^ ]*\) .*/\1/'`
|
|
GLIB_STATIC=`echo $GTK_LIBS | sed 's/^.*-l\(glib[^ ]*\) .*/\1/'`
|
|
|
|
GTK_OTHER_LIBS=`echo $GTK_LIBS | sed 's/^.*-lglib *\(.*\)/\1/'`
|
|
|
|
changequote([,])
|
|
|
|
MOZ_GTK_LDFLAGS="$GTK_STATIC_LOC/lib${GTK_STATIC}.a"
|
|
MOZ_GTK_LDFLAGS="$MOZ_GTK_LDFLAGS $GTK_STATIC_LOC/lib${GDK_STATIC}.a"
|
|
MOZ_GTK_LDFLAGS="$MOZ_GTK_LDFLAGS $GLIB_STATIC_LOC/lib${GMODULE_STATIC}.a"
|
|
MOZ_GTK_LDFLAGS="$MOZ_GTK_LDFLAGS $GLIB_STATIC_LOC/lib${GLIB_STATIC}.a"
|
|
MOZ_GTK_LDFLAGS="$MOZ_GTK_LDFLAGS $GTK_LIBS_LOC $GTK_OTHER_LIBS"
|
|
fi
|
|
|
|
MOZ_GTK_CFLAGS=$GTK_CFLAGS
|
|
fi
|
|
dnl ========================================================
|
|
dnl = =
|
|
dnl = End Gtk support hackery =
|
|
dnl = =
|
|
dnl ========================================================
|
|
|
|
|
|
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"], $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 ========================================================
|
|
|
|
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_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_SINGLE_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
|
|
AC_STRUCT_ST_RDEV
|
|
AC_STRUCT_TM
|
|
AC_STRUCT_TIMEZONE
|
|
|
|
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_HEADER_DIRENT
|
|
dnl Already done above by AC_TYPE_MODE_T.
|
|
dnl AC_HEADER_STDC
|
|
AC_HEADER_SYS_WAIT
|
|
AC_HEADER_TIME
|
|
AC_CHECK_HEADERS(fcntl.h limits.h malloc.h memory.h paths.h strings.h)
|
|
AC_CHECK_HEADERS(sys/bittypes.h sys/byteorder.h sys/file.h sys/ioctl.h sys/time.h)
|
|
AC_CHECK_HEADERS(getopt.h ioctl.h filio.h systeminfo.h compat.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 ========================================================
|
|
AC_CHECK_LIB(c_r, gethostbyname_r)
|
|
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 Replace `main' with a function in -lC_r:
|
|
dnl AC_CHECK_LIB(C_r, main)
|
|
dnl Replace `main' with a function in -lSgm:
|
|
dnl AC_CHECK_LIB(Sgm, main)
|
|
dnl Replace `main' with a function in -laudio:
|
|
dnl AC_CHECK_LIB(audio, main)
|
|
dnl Replace `main' with a function in -ldld:
|
|
dnl AC_CHECK_LIB(dld, main)
|
|
dnl Replace `main' with a function in -ldnet_stub:
|
|
dnl AC_CHECK_LIB(dnet_stub, main)
|
|
dnl Replace `main' with a function in -lgen:
|
|
dnl AC_CHECK_LIB(gen, main)
|
|
dnl Replace `main' with a function in -lhash:
|
|
dnl AC_CHECK_LIB(hash, main)
|
|
dnl Replace `main' with a function in -lip6:
|
|
dnl AC_CHECK_LIB(ip6, main)
|
|
dnl Replace `main' with a function in -lipc:
|
|
dnl AC_CHECK_LIB(ipc, main)
|
|
dnl Replace `main' with a function in -lmalloc_cv:
|
|
dnl AC_CHECK_LIB(malloc_cv, main)
|
|
dnl Replace `main' with a function in -lPW:
|
|
dnl AC_CHECK_LIB(PW, main)
|
|
dnl Replace `main' with a function in -lots:
|
|
dnl AC_CHECK_LIB(ots, main)
|
|
dnl Replace `main' with a function in -lrt:
|
|
dnl AC_CHECK_LIB(rt, main)
|
|
dnl Replace `main' with a function in -lsvld:
|
|
dnl AC_CHECK_LIB(svld, main)
|
|
|
|
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")
|
|
|
|
dnl
|
|
dnl If the above test failed, try lib c_r
|
|
dnl
|
|
if test "x$ac_cv_lib_pthread_pthread_attr_init" = "xno" -a \
|
|
"x$ac_cv_lib_c_r_gethostbyname_r" = "xno"
|
|
then
|
|
AC_CHECK_LIB(c_r, pthread_attr_init,
|
|
USE_PTHREADS=1 PTHREAD_LDFLAGS="-lc_r")
|
|
fi
|
|
|
|
dnl
|
|
dnl Check the command line for --with-pthreads
|
|
dnl
|
|
AC_ARG_WITH(pthreads,
|
|
[ --with-pthreads use system pthread library ],
|
|
[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=\$dir location of nspr headers and libraries],
|
|
NSPR_DIR=$withval)
|
|
|
|
AC_ARG_WITH(nsprlib,
|
|
[ --with-nsprlib=\$dir location of nspr libraries],
|
|
NSPR_LIBDIR=$withval)
|
|
|
|
dnl Skip this if cross-compiling, since the checks will fail.
|
|
if test "$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
|
|
|
|
dnl AC_CHECK_LIB(nspr$NSPR_VERSION, PR_GetUniqueIdentity, NSPR_LIBS="-lnspr$NSPR_VERSION $NSPR_LIBS",
|
|
dnl [MISSING_NSPR="$MISSING_NSPR -lnspr$NSPR_VERSION"], $NSPR_LIBS)
|
|
|
|
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)
|
|
|
|
CFLAGS=$_SAVE_CFLAGS
|
|
LDFLAGS=$_SAVE_LDFLAGS
|
|
LIBS=$_SAVE_LIBS
|
|
|
|
fi
|
|
|
|
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
|
|
if test ! -z "$MISSING_NSPR"; then
|
|
echo
|
|
echo "*** NSPR was not detected in your system. This is not a problem."
|
|
echo "*** I will use the one in the current source tree instead. "
|
|
echo
|
|
sleep 3
|
|
|
|
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
|
|
MOZ_NATIVE_NSPR=1
|
|
fi
|
|
|
|
dnl Checks for library functions.
|
|
dnl ========================================================
|
|
AC_FUNC_ALLOCA
|
|
AC_PROG_GCC_TRADITIONAL
|
|
AC_FUNC_MEMCMP
|
|
AC_FUNC_MMAP
|
|
dnl AC_FUNC_SETVBUF_REVERSED
|
|
AC_TYPE_SIGNAL
|
|
AC_FUNC_STRCOLL
|
|
AC_FUNC_STRFTIME
|
|
AC_FUNC_UTIME_NULL
|
|
AC_FUNC_VFORK
|
|
AC_FUNC_VPRINTF
|
|
AC_CHECK_FUNCS(fchmod fork1 ftime getcwd getwd gethostname lchown localtime_r)
|
|
AC_CHECK_FUNCS(mkdir mktime putenv qsort random remainder rmdir select)
|
|
AC_CHECK_FUNCS(setvbuf snprintf socket statvfs strcspn strdup strerror)
|
|
AC_CHECK_FUNCS(strspn strstr strtol strtoul uname waitid)
|
|
|
|
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 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++} -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
|
|
dnl Is there a way to make AC_TRY_COMPILE use CXX instead of CC?
|
|
_SAVE_CC=$CC
|
|
CC=$CXX
|
|
ac_ext=C
|
|
AC_MSG_CHECKING(for ios::binary)
|
|
AC_CACHE_VAL(ac_cv_ios_binary,
|
|
[AC_TRY_COMPILE([#include <iostream.h>]
|
|
[#include <fstream.h>],
|
|
[char *buffer = "config.log";
|
|
fstream *mFileStream=new fstream(buffer, ios::binary);],
|
|
[ac_cv_ios_binary=true],
|
|
[ac_cv_ios_binary=false])])
|
|
if test "$ac_cv_ios_binary" = true ; then
|
|
AC_DEFINE(HAVE_IOS_BINARY)
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
|
|
|
|
AC_MSG_CHECKING(for ios::bin)
|
|
AC_CACHE_VAL(ac_cv_ios_bin,
|
|
[AC_TRY_COMPILE([#include <iostream.h>]
|
|
[#include <fstream.h>],
|
|
[char *buffer = "config.log";
|
|
fstream *mFileStream=new fstream(buffer, ios::bin);],
|
|
[ac_cv_ios_bin=true],
|
|
[ac_cv_ios_bin=false])])
|
|
if test "$ac_cv_ios_bin" = true ; then
|
|
AC_DEFINE(HAVE_IOS_BIN)
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
|
|
AC_CACHE_CHECK(for namespaces,
|
|
ac_cv_cpp_namespaces,
|
|
[AC_TRY_COMPILE(namespace X {},
|
|
using namespace X;,
|
|
ac_cv_cpp_namespaces=yes,
|
|
ac_cv_cpp_namespaces=no)])
|
|
if test "$ac_cv_cpp_namespaces" = yes ; then
|
|
AC_DEFINE(HAVE_CPP_NAMESPACES)
|
|
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_COMPILE(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
|
|
|
|
CC=$_SAVE_CC
|
|
ac_ext=c
|
|
|
|
dnl End of C++ language/feature checks
|
|
|
|
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 Dont build mozilla/xpfe],
|
|
MOZ_BUILD_XPFE= )
|
|
|
|
dnl build editor by default
|
|
MOZ_EDITOR=1
|
|
|
|
MOZ_ARG_DISABLE_BOOL(editor,
|
|
[ --disable-editor Dont build the editor],
|
|
MOZ_EDITOR= )
|
|
|
|
dnl This will be part of the address book
|
|
dnl MOZ_ARG_ENABLE_BOOL(ldap,
|
|
dnl [ --enable-ldap Enable LDAP directory access],
|
|
dnl [ MOZ_LDAP=1 NO_UNIX_LDAP= ],
|
|
dnl [ NO_UNIX_LDAP=1 ])
|
|
|
|
dnl build Mail & News by default
|
|
MOZ_MAIL_NEWS=1
|
|
|
|
MOZ_ARG_DISABLE_BOOL(mailnews,
|
|
[ --disable-mailnews Dont build Mail & News],
|
|
MOZ_MAIL_NEWS= )
|
|
|
|
NECKO=1
|
|
|
|
dnl NECKO is the new netlib module. Build Necko by default
|
|
MOZ_ARG_DISABLE_BOOL(necko,
|
|
[ --disable-necko Dont build Necko, the new network library.],
|
|
NECKO=)
|
|
|
|
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 PICS (mozilla/extensions/pics) code
|
|
MOZ_ARG_ENABLE_BOOL(pics,
|
|
[ --enable-pics Enable PICS code],
|
|
ENABLE_PICS=1)
|
|
|
|
AC_DEFINE(ENABLE_PICS)
|
|
|
|
|
|
dnl build the tests by default
|
|
ENABLE_TESTS=1
|
|
|
|
MOZ_ARG_DISABLE_BOOL(tests,
|
|
[ --disable-tests Dont build the tests],
|
|
ENABLE_TESTS= )
|
|
|
|
|
|
dnl Toolbar drag & drop
|
|
MOZ_ARG_ENABLE_BOOL(toolbar_dd,
|
|
[ --enable-toolbar-dd Enable toolbar drag and drop.],
|
|
AC_DEFINE(TOOLBAR_DD))
|
|
|
|
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 Toolkit exorcism - a temporary hack.
|
|
MOZ_ARG_ENABLE_BOOL(toolkit-exorcism,
|
|
[ --enable-toolkit-exorcism Exorcise toolkit specific link time dependencies],
|
|
TOOLKIT_EXORCISM=1
|
|
AC_DEFINE(TOOLKIT_EXORCISM))
|
|
|
|
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 Dont generate PIC for shared libs)],
|
|
ENABLE_PIC_DSO_CFLAGS= )
|
|
|
|
if test ! "$ENABLE_PIC_DSO_CFLAGS"
|
|
then
|
|
DSO_PIC_CFLAGS=""
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = ClientWallet, CookieManagement, SingleSignon hacks
|
|
dnl =
|
|
dnl = Dont ask why these variables are named this way.
|
|
dnl =
|
|
dnl ========================================================
|
|
ClientWallet=1
|
|
CookieManagement=1
|
|
SingleSignon=1
|
|
|
|
MOZ_ARG_DISABLE_BOOL(client-wallet,
|
|
[ --disable-client-wallet Disable ClientWallet],
|
|
ClientWallet= )
|
|
|
|
MOZ_ARG_DISABLE_BOOL(cookie-management,
|
|
[ --disable-cookie-management Disable CookieManagement],
|
|
CookieManagement= )
|
|
|
|
MOZ_ARG_DISABLE_BOOL(single-signon,
|
|
[ --disable-single-signon Disable SingleSignon],
|
|
SingleSignon= )
|
|
|
|
if test "$ClientWallet"
|
|
then
|
|
AC_DEFINE(ClientWallet)
|
|
|
|
# I guess one depends on the other
|
|
SingleSignon=1
|
|
fi
|
|
|
|
if test "$CookieManagement"
|
|
then
|
|
AC_DEFINE(CookieManagement)
|
|
fi
|
|
|
|
if test "$SingleSignon"
|
|
then
|
|
AC_DEFINE(SingleSignon)
|
|
fi
|
|
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = GtkMozilla support
|
|
dnl =
|
|
dnl ========================================================
|
|
MOZ_ENABLE_GTK_MOZILLA=
|
|
|
|
MOZ_ARG_ENABLE_BOOL(gtk-mozilla,
|
|
[ --enable-gtk-mozilla Enable building of GtkMozilla GTK+ widget],
|
|
MOZ_ENABLE_GTK_MOZILLA=1 MOZ_BUILD_ROOT=`pwd`)
|
|
|
|
dnl Make sure GtkMozilla is only built if gtk is the mail toolkit
|
|
if test ! "$MOZ_WIDGET_TOOLKIT" = "gtk" -a "$MOZ_ENABLE_GTK_MOZILLA"
|
|
then
|
|
echo
|
|
echo "*** You can only build GtkMozilla (A GTK+ widget to embed gecko)"
|
|
echo "*** into any GTK+ app) if the main toolkit is \"gtk\"."
|
|
echo "*** You have currently chosen \"$MOZ_WIDGET_TOOLKIT\" as your main toolkit."
|
|
echo "*** GtkMozilla will not be built."
|
|
echo
|
|
MOZ_ENABLE_GTK_MOZILLA= MOZ_BUILD_ROOT=
|
|
sleep 3
|
|
fi
|
|
dnl ========================================================
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = Compiler Options
|
|
dnl =
|
|
dnl ========================================================
|
|
MOZ_ARG_HEADER(Compiler Options)
|
|
|
|
UNIX_CRASH_ON_ASSERT=
|
|
MOZ_ARG_ENABLE_BOOL(crash-on-assert,
|
|
[ --enable-crash-on-assert Make NS_ASSERTION crash on Unix],
|
|
UNIX_CRASH_ON_ASSERT=1)
|
|
|
|
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"
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = --enable-strip-libs
|
|
dnl =
|
|
dnl = Enable stripping of .so and .a libs
|
|
dnl =
|
|
dnl ========================================================
|
|
MOZ_POST_DSO_LIB_COMMAND=true
|
|
MOZ_POST_PROGRAM_COMMAND=true
|
|
|
|
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 = --enable-strip-not-exported
|
|
dnl =
|
|
dnl = Enable stripping of not exported symbols in .so files
|
|
dnl =
|
|
dnl ========================================================
|
|
MOZ_STRIP_NOT_EXPORTED=
|
|
|
|
MOZ_ARG_ENABLE_BOOL(strip-not-exported,
|
|
[ --enable-strip-not-exported Enable stripping of not exported symbols in .so files ],
|
|
[MOZ_STRIP_NOT_EXPORTED=1
|
|
AC_DEFINE(MOZ_STRIP_NOT_EXPORTED) ])
|
|
|
|
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 modulues only],
|
|
[ MOZ_DEBUG_MODULES=`echo $withval | sed 's|,| |g'` ] )
|
|
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)
|
|
|
|
dnl Make pedantic a flag for now since the builds currently choke on it.
|
|
MOZ_ARG_ENABLE_BOOL(pedantic,
|
|
[ --enable-pedantic Issue all warnings demanded by strict ANSI C ],
|
|
[ _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -pedantic"
|
|
_WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -pedantic" ])
|
|
|
|
dnl pass -Wno-long-long to the compiler
|
|
MOZ_ARG_ENABLE_BOOL(ignore-no-long-long-warning,
|
|
[ --enable-ignore-no-long-long-warning pass -Wno-long-long to the compiler],
|
|
[ _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wno-long-long"
|
|
_WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wno-long-long" ])
|
|
|
|
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" ])
|
|
|
|
MOZ_ARG_ENABLE_BOOL(insure,
|
|
[ --enable-insure Enable insure++ instrumentation (linux only)],
|
|
[ MOZ_INSURE="insure" MOZ_INSURIFYING=1 MOZ_INSURE_DIRS="mozilla" MOZ_INSURE_EXCLUDE_DIRS="mozilla/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="mozilla/config $withval" )
|
|
|
|
MOZ_ARG_ENABLE_BOOL(profile,
|
|
[ --enable-profile Enable profiling (solaris only)],
|
|
MOZILLA_GPROF=1)
|
|
|
|
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 = 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 =
|
|
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 Netcaster is dead
|
|
dnl MOZ_ARG_ENABLE_BOOL(netcast,
|
|
dnl [ --enable-netcast Enable use of netcast (untested)],
|
|
dnl MOZ_NETCAST=1)
|
|
|
|
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 MOZ_ARG_ENABLE_BOOL(mail-compose,
|
|
dnl [ --enable-mail-compose Enable old Messenger mail composer],
|
|
dnl [ MOZ_MAIL_COMPOSE=1 MOZ_EDITOR=1 ])
|
|
|
|
dnl The new mail app is "smart-mail"
|
|
dnl MOZ_ARG_ENABLE_BOOL(smart-mail,
|
|
dnl [ --enable-smart-mail Enable HTML/RDF-based client-side mail (untested)],
|
|
dnl MOZ_SMART_MAIL=1)
|
|
|
|
MOZ_ARG_DISABLE_BOOL(static,
|
|
[ --disable-static Disable building of internal static libs],
|
|
NO_STATIC_LIB=1)
|
|
|
|
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(AS)
|
|
AC_SUBST(ASFLAGS)
|
|
AC_SUBST(AS_DASH_C_FLAG)
|
|
AC_SUBST(NS_USE_NATIVE)
|
|
AC_SUBST(MOZ_WIDGET_TOOLKIT)
|
|
AC_SUBST(MOZ_GFX_TOOLKIT)
|
|
AC_SUBST(MOZ_UPDATE_XTERM)
|
|
AC_SUBST(NECKO)
|
|
AC_SUBST(TOOLBAR_DD)
|
|
AC_SUBST(TOOLKIT_EXORCISM)
|
|
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(MOZILLA_GPROF)
|
|
AC_SUBST(MOZ_INSURE)
|
|
AC_SUBST(MOZ_INSURE_DIRS)
|
|
AC_SUBST(MOZ_INSURE_EXCLUDE_DIRS)
|
|
AC_SUBST(MOZ_INSURIFYING)
|
|
AC_SUBST(MOZ_MAIL_NEWS)
|
|
AC_SUBST(MOZ_BUILD_XPFE)
|
|
dnl AC_SUBST(MOZ_LDAP)
|
|
AC_SUBST(MOZ_EDITOR)
|
|
AC_SUBST(MOZ_BRPROF)
|
|
|
|
AC_SUBST(UNIX_CRASH_ON_ASSERT)
|
|
AC_SUBST(MOZ_STRIP_NOT_EXPORTED)
|
|
AC_SUBST(NO_UNIX_ASYNC_DNS)
|
|
AC_SUBST(NO_SHARED_LIB)
|
|
AC_SUBST(NO_STATIC_LIB)
|
|
AC_SUBST(ENABLE_TESTS)
|
|
AC_SUBST(ENABLE_PICS)
|
|
AC_SUBST(MOZ_USER_DIR)
|
|
dnl AC_SUBST(MOZ_SMART_MAIL)
|
|
AC_SUBST(MOZ_DOM)
|
|
AC_SUBST(MOZ_MAIL_COMPOSE)
|
|
AC_SUBST(FULL_STATIC_BUILD)
|
|
AC_SUBST(NO_UNIX_LDAP)
|
|
AC_SUBST(BUILD_IDLC)
|
|
AC_SUBST(MOZ_ENABLE_GTK_MOZILLA)
|
|
AC_SUBST(MOZ_BUILD_ROOT)
|
|
|
|
AC_SUBST(MOZ_POST_DSO_LIB_COMMAND)
|
|
AC_SUBST(MOZ_POST_PROGRAM_COMMAND)
|
|
|
|
AC_SUBST(ClientWallet)
|
|
AC_SUBST(CookieManagement)
|
|
AC_SUBST(SingleSignon)
|
|
|
|
dnl system JPEG support
|
|
dnl ========================================================
|
|
AC_ARG_WITH(jpeg,
|
|
[ --with-jpeg=\$dir use system libjpeg in \$dir if more recent],
|
|
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 in \$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 in \$dir if more recent],
|
|
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 ==============================================================
|
|
|
|
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="-ltalkback $LIBS"
|
|
AC_MSG_CHECKING("for FC_Initialize in -ltalkback");
|
|
AC_TRY_LINK([ #include <stdio.h>
|
|
#include "fullcircle.h" ],
|
|
[ FC_Initialize(); exit(0); ],
|
|
[FULLCIRCLE_LIB="-ltalkback $FULLCIRCLE_LIB" 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
|
|
AC_MSG_ERROR([Could not find FullCircle library]);
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
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(CFLAGS)
|
|
AC_SUBST(CXXFLAGS)
|
|
AC_SUBST(LDFLAGS)
|
|
AC_SUBST(LIBS)
|
|
|
|
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")
|
|
|
|
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 ========================================================
|
|
# netlib stuff
|
|
AC_DEFINE(MODULAR_NETLIB)
|
|
MODULAR_NETLIB=1
|
|
AC_SUBST(MODULAR_NETLIB)
|
|
if test "$MODULAR_NETLIB" = ""; then
|
|
AC_DEFINE(CookieManagement)
|
|
fi
|
|
|
|
# imagelib
|
|
AC_DEFINE(STANDALONE_IMAGE_LIB)
|
|
STANDALONE_IMAGE_LIB=1
|
|
AC_SUBST(STANDALONE_IMAGE_LIB)
|
|
|
|
AC_SUBST(OS_TARGET)
|
|
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_EMBED)
|
|
AC_DEFINE(X_PLUGINS)
|
|
AC_DEFINE(UNIX_LDAP)
|
|
AC_DEFINE(UNIX_ASYNC_DNS)
|
|
fi
|
|
|
|
AC_DEFINE(JS_THREADSAFE)
|
|
AC_DEFINE(LAYERS)
|
|
AC_DEFINE(NETSCAPE)
|
|
|
|
if test "$MOZ_EDITOR"; then
|
|
AC_DEFINE(NGEDITOR)
|
|
fi
|
|
|
|
# Used for LD_LIBRARY_PATH of run_viewer target
|
|
LIBS_PATH=
|
|
for lib_arg in $NSPR_LIBS $TK_LIBS; do
|
|
case $lib_arg in
|
|
-L* ) LIBS_PATH="${LIBS_PATH:+$LIBS_PATH:}"`expr $lib_arg : "-L\(.*\)"` ;;
|
|
* ) ;;
|
|
esac
|
|
done
|
|
AC_SUBST(LIBS_PATH)
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = rpm support
|
|
dnl =
|
|
dnl ========================================================
|
|
MOZ_RPM_NSPR_OPTIMIZE="BUILD_OPT=1"
|
|
MOZ_RPM_PREFIX="/usr"
|
|
MOZ_RPM_RELEASE="SeaMonkey_M4_BRANCH_19990409"
|
|
MOZ_RPM_SEAMONKEY_OPTIMIZE="--disable-debug"
|
|
MOZ_RPM_TMP="/tmp"
|
|
MOZ_RPM_VERSION="5.0"
|
|
|
|
AC_SUBST(MOZ_RPM_NSPR_OPTIMIZE)
|
|
AC_SUBST(MOZ_RPM_PREFIX)
|
|
AC_SUBST(MOZ_RPM_RELEASE)
|
|
AC_SUBST(MOZ_RPM_SEAMONKEY_OPTIMIZE)
|
|
AC_SUBST(MOZ_RPM_TMP)
|
|
AC_SUBST(MOZ_RPM_VERSION)
|
|
|
|
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 ! "$MOZ_NATIVE_NSPR"
|
|
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_DEFS_H=config-defs.h
|
|
# Only write config-defs.h when something changes (or it doesn't exist)
|
|
if test ! -f $CONFIG_DEFS_H \
|
|
|| diff confdefs.h $CONFIG_DEFS_H | grep \# > /dev/null; then
|
|
AC_MSG_RESULT("creating $CONFIG_DEFS_H")
|
|
|
|
cat > $CONFIG_DEFS_H <<\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
|
|
cat confdefs.h >> $CONFIG_DEFS_H
|
|
fi
|
|
fi
|
|
|
|
dnl Need to manual make the directories to get around deficiency in AC_OUTPUT
|
|
for dir in lib modules modules/security build build/package; do
|
|
if test ! -d $dir; then rm -f $dir; mkdir $dir; fi
|
|
done
|
|
|
|
# Load the list of Makefiles to generate.
|
|
# To add new Makefiles, edit allmakefiles.sh.
|
|
# allmakefiles.sh sets the variable, MAKEFILES.
|
|
. ${srcdir}/allmakefiles.sh
|
|
|
|
# Run a perl script to quickly create the makefiles.
|
|
# If it succeeds, it outputs a shell command to set CONFIG_FILES
|
|
# for the files it cannot handle correctly. This way, config.status
|
|
# will handle these files.
|
|
# If it fails, nothing is set and config.status will run as usual.
|
|
#
|
|
# This does not change the $MAKEFILES variable.
|
|
#
|
|
eval `echo $MAKEFILES | \
|
|
$PERL $srcdir/build/autoconf/acoutput-fast.pl` 2>/dev/null
|
|
|
|
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"
|
|
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
|