mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-02 07:05:24 +00:00
8821535d54
RTTI and exceptions are off by default on Linux.
1404 lines
41 KiB
Plaintext
1404 lines
41 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)
|
|
dnl AC_CONFIG_HEADER(include/config.h nsprpub/include/config.h)
|
|
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 d=`pwd`
|
|
dnl if [ test "${srcdir}" = "${d}" || test "${srcdir}" = "." ]; then
|
|
dnl AC_ERROR(Building in the srcdir is not supported! Please build from a separate objdir.)
|
|
dnl fi
|
|
dnl unset d
|
|
|
|
dnl Build optimized by default
|
|
dnl ========================================================
|
|
CFLAGS="${CFLAGS=-O}"
|
|
CXXFLAGS="${CXXFLAGS=-O}"
|
|
|
|
dnl Set the version number of the libs included with mozilla
|
|
dnl ========================================================
|
|
MOZJPEG=62
|
|
MOZPNG=95
|
|
|
|
dnl Set the minimum version of toolkit libs used by mozilla
|
|
dnl ========================================================
|
|
GTK_VERSION=1.1.13
|
|
|
|
dnl Set various checks
|
|
dnl ========================================================
|
|
MISSING_X=
|
|
MISSING_MOTIF=
|
|
MISSING_GTK=
|
|
|
|
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_MAKE_SET
|
|
AC_PROG_INSTALL
|
|
AC_PROG_AWK
|
|
AC_PROG_RANLIB
|
|
|
|
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
|
|
|
|
XLDFLAGS="$X_LIBS"
|
|
XLIBS="$X_EXTRA_LIBS"
|
|
|
|
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 Checks for system specific bits
|
|
dnl ========================================================
|
|
dnl the qsort routine under solaris is faulty
|
|
dnl Linux Alpha needs -mieee for FPU to work correctly
|
|
dnl Note this case statement doesn't seem to handle [] as part of a regexp
|
|
|
|
dnl set the defaults first
|
|
dnl ========================================================
|
|
DLL_SUFFIX="so"
|
|
MKSHLIB='$(LD) $(DSO_LDOPTS)'
|
|
DSO_LDOPTS='-shared -h $(@:$(OBJDIR)/%.$(DLL_SUFFIX)=%.$(DLL_SUFFIX))'
|
|
DSO_CFLAGS='-KPIC'
|
|
|
|
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 ========================================================
|
|
if [ test "$GNU_CC" = 1]; then
|
|
MKSHLIB='$(CXX) $(DSO_LDOPTS)'
|
|
MKSHLIB_FORCE_ALL='-Wl,--whole-archive'
|
|
MKSHLIB_UNFORCE_ALL='-Wl,--no-whole-archive'
|
|
DSO_LDOPTS='-shared -Wl,-h -Wl,$(@:$(OBJDIR)/%.$(DLL_SUFFIX)=%.$(DLL_SUFFIX))'
|
|
DSO_CFLAGS='-fPIC'
|
|
fi
|
|
|
|
dnl now the exceptions
|
|
dnl ========================================================
|
|
case "$target" in
|
|
*-*-aix*)
|
|
DLL_SUFFIX="so"
|
|
MKSHLIB_FORCE_ALL=''
|
|
MKSHLIB_UNFORCE_ALL=''
|
|
if [ test "$GNU_CC" != 1 ]; then
|
|
AIX_DEFINES='-D_THREAD_SAFE -D_REENTRANT -DPIC'
|
|
AIX_CFLAGS='-brtl -O -qtune=604 -qlanglvl=extended -qflag=w:w'
|
|
DSO_LDOPTS='-ldl -bM:SRE -brtl -berok -bexpall -bnoentry -L$(DIST)/lib'
|
|
DSO_CFLAGS='$(AIX_DEFINES) $(AIX_CFLAGS)'
|
|
fi
|
|
dnl MKSHLIB='$(LD) $(DSO_LDOPTS)'
|
|
MKSHLIB='/usr/ibmcxx/bin/makeC++SharedLib_r -p1 -brtl -berok --'
|
|
;;
|
|
|
|
*-*-solaris*)
|
|
AC_DEFINE(BROKEN_QSORT)
|
|
if test -z "$GNU_CC"; then
|
|
MKSHLIB='$(CXX) -xar $(DSO_LDOPTS)'
|
|
DSO_LDOPTS='-G -h $(@:$(OBJDIR)/%.$(DLL_SUFFIX)=%.$(DLL_SUFFIX))'
|
|
else
|
|
MKSHLIB='$(CC) $(DSO_LDOPTS)'
|
|
MKSHLIB_FORCE_ALL='-Wl,-z -Wl,allextract'
|
|
MKSHLIB_UNFORCE_ALL='-Wl,-z -Wl,defaultextract'
|
|
fi
|
|
;;
|
|
|
|
*-*-sunos*)
|
|
dnl Assumes the native ld is being used.
|
|
DSO_LDOPTS=''
|
|
MKSHLIB='ld $(DSO_LDOPTS)'
|
|
MKSHLIB_FORCE_ALL=''
|
|
MKSHLIB_UNFORCE_ALL=''
|
|
;;
|
|
|
|
alpha*-*-linux*)
|
|
CFLAGS="$CFLAGS -mieee" ;;
|
|
|
|
alpha*-*-osf*)
|
|
if [ test "$GNU_CC" = 1 ]; then
|
|
DSO_LDOPTS='-shared -Wl,-soname -Wl,$(@:$(OBJDIR)/%.$(DLL_SUFFIX)=%.$(DLL_SUFFIX))'
|
|
else
|
|
CFLAGS="$CFLAGS -std1 -ieee_with_inexact"
|
|
DSO_LDOPTS='-shared -expect_unresolved \* -soname $(@:$(OBJDIR)/%.$(DLL_SUFFIX)=%.$(DLL_SUFFIX))'
|
|
DSO_CFLAGS=
|
|
fi ;;
|
|
|
|
*-bsdi*)
|
|
case `uname -r` in
|
|
4.*) ;;
|
|
*)
|
|
DSO_CFLAGS=''
|
|
DSO_LDOPTS='-r'
|
|
;;
|
|
esac
|
|
;;
|
|
|
|
*-freebsd*)
|
|
if test `test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` = "elf"; then
|
|
DLL_SUFFIX="so"
|
|
else
|
|
DLL_SUFFIX="so.1.0"
|
|
DSO_LDOPTS="-shared"
|
|
fi
|
|
if test -z "$GNU_CC"; then
|
|
DSO_LDOPTS="-Bshareable $DSO_LDOPTS"
|
|
fi ;;
|
|
|
|
*-netbsd*)
|
|
DLL_SUFFIX="so.1.0"
|
|
DSO_CFLAGS='-fPIC'
|
|
DSO_LDOPTS='-shared -h $(@:$(OBJDIR)/%.$(DLL_SUFFIX)=%.$(DLL_SUFFIX))'
|
|
MKSHLIB='$(LD) $(DSO_LDOPTS)'
|
|
if test -z "`$CC -E - -dM </dev/null | grep __ELF__`"; then
|
|
DSO_LDOPTS="-Bshareable"
|
|
fi
|
|
if test -n "$LIBRUNPATH"; then
|
|
DSO_LDOPTS="-R$LIBRUNPATH $DSO_LDOPTS"
|
|
fi
|
|
;;
|
|
|
|
*-openbsd*)
|
|
DLL_SUFFIX="so.1.0"
|
|
DSO_CFLAGS='-fPIC'
|
|
DSO_LDOPTS='-shared -h $(@:$(OBJDIR)/%.$(DLL_SUFFIX)=%.$(DLL_SUFFIX))'
|
|
MKSHLIB='$(LD) $(DSO_LDOPTS)'
|
|
if test -z "`$CC -E - -dM </dev/null | grep __ELF__`"; then
|
|
DSO_LDOPTS="-Bshareable /usr/lib/c++rt0.o"
|
|
fi
|
|
if test -n "$LIBRUNPATH"; then
|
|
DSO_LDOPTS="-R$LIBRUNPATH $DSO_LDOPTS"
|
|
fi
|
|
;;
|
|
|
|
*-hpux*)
|
|
if test -z "$GNU_CC"; then
|
|
DSO_CFLAGS="+Z"
|
|
fi
|
|
DLL_SUFFIX="sl"
|
|
DSO_LDOPTS='-b -E -L$(DIST)/bin $(LDFLAGS)'
|
|
MKSHLIB='$(LD) $(DSO_LDOPTS)'
|
|
;;
|
|
|
|
*-irix*)
|
|
AC_DEFINE(IRIX6_3)
|
|
DSO_LDOPTS='-elf -shared'
|
|
CFLAGS="$CFLAGS -woff 3262"
|
|
if test -z "$GNU_CC"; then
|
|
MKSHLIB_FORCE_ALL=-all
|
|
MKSHLIB_UNFORCE_ALL=-none
|
|
fi
|
|
;;
|
|
|
|
esac
|
|
|
|
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 Checks for header files.
|
|
dnl ========================================================
|
|
AC_HEADER_DIRENT
|
|
AC_HEADER_STDC
|
|
AC_HEADER_SYS_WAIT
|
|
AC_HEADER_TIME
|
|
AC_CHECK_HEADERS(fcntl.h limits.h malloc.h paths.h strings.h unistd.h)
|
|
AC_CHECK_HEADERS(sys/bittypes.h sys/file.h sys/ioctl.h sys/time.h)
|
|
AC_CHECK_HEADERS(getopt.h ioctl.h filio.h systeminfo.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(c, strcpy))
|
|
AC_CHECK_LIB(m, atan)
|
|
AC_CHECK_LIB(dl, dlopen)
|
|
if [ test -z "$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)
|
|
AC_CHECK_LIB(l, yywrap,,
|
|
AC_CHECK_LIB(fl, yywrap))
|
|
|
|
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 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(ftime getcwd gethostname getwd mkdir mktime putenv rmdir select)
|
|
AC_CHECK_FUNCS(socket strcspn strdup strerror strspn strstr strtol strtoul)
|
|
AC_CHECK_FUNCS(uname qsort snprintf waitid fork1 remainder lchown)
|
|
AC_CHECK_FUNCS(localtime_r)
|
|
|
|
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_gettimeofday_args=2],
|
|
[AC_TRY_COMPILE([#include <stdlib.h>
|
|
#include <sys/time.h>],
|
|
[struct timeval tv; gettimeofday(&tv);],
|
|
[ac_gettimeofday_args=1],
|
|
[ac_gettimeofday_args=0])])
|
|
ac_cv_gettimeofday_args=$ac_gettimeofday_args])
|
|
ac_gettimeofday_args=$ac_cv_gettimeofday_args
|
|
if test $ac_gettimeofday_args = 1 ; then
|
|
AC_DEFINE(HAVE_GETTIMEOFDAY)
|
|
AC_MSG_RESULT(one argument)
|
|
elif test $ac_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 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_syserrlist=true],
|
|
[ac_syserrlist=false])
|
|
ac_cv_syserrlist=$ac_syserrlist])
|
|
ac_syserrlist=$ac_cv_syserrlist
|
|
if test $ac_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 -n "$GNU_CXX" ]; then
|
|
|
|
MOZ_RTTI_FLAGS=-fno-rtti
|
|
|
|
dnl They changed -f[no-]handle-exceptions to -f[no-]exceptions in g++ 2.8
|
|
AC_TRY_RUN(
|
|
#include <stdio.h>
|
|
int main ()
|
|
{
|
|
#if __GNUC_MINOR__ >= 8
|
|
exit(0);
|
|
#else
|
|
exit(1);
|
|
#endif
|
|
}
|
|
, MOZ_EXCEPTIONS_FLAGS=-fno-exceptions, MOZ_EXCEPTIONS_FLAGS=-fno-handle-exceptions, MOZ_EXCEPTIONS_FLAGS=-fno-exceptions)
|
|
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_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_ios_binary=true],
|
|
[ac_ios_binary=false])
|
|
ac_cv_ios_binary=$ac_ios_binary])
|
|
ac_ios_binary=$ac_cv_ios_binary
|
|
if test $ac_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_ios_bin=true],
|
|
[ac_ios_bin=false])
|
|
ac_cv_ios_bin=$ac_ios_bin])
|
|
ac_ios_bin=$ac_cv_ios_bin
|
|
if test $ac_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_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
|
|
|
|
AC_CACHE_CHECK(for C++ \"exceptions\",
|
|
ac_cv_cpp_exceptions,
|
|
[AC_TRY_COMPILE(class X { public: X() {} };
|
|
static void F() { throw X(); },
|
|
try { F(); } catch(X & e) { },
|
|
ac_cv_cpp_exceptions=yes,
|
|
ac_cv_cpp_exceptions=no)])
|
|
if test $ac_cv_cpp_exceptions = yes ; then
|
|
AC_DEFINE(HAVE_CPP_EXCEPTIONS)
|
|
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(if 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_requires=yes)])
|
|
if test $ac_cv_cpp_unused_required = yes ; then
|
|
AC_DEFINE(NEED_CPP_UNUSED_IMPLEMENTATIONS)
|
|
fi
|
|
|
|
CC=$_SAVE_CC
|
|
|
|
dnl End of C++ language/feature checks
|
|
|
|
|
|
dnl Check cc for -include flag support (command-line include files)
|
|
dnl Assume that cxx has the feature if cc has it.
|
|
dnl (We can add another test later if we need to.)
|
|
AC_MSG_CHECKING($CC for \"-include <file>\" option)
|
|
_tmp_header="include-test-$$.h"
|
|
echo "char *booboo;" > $_tmp_header
|
|
_SAVE_CFLAGS=$CFLAGS ; CFLAGS="$CFLAGS -include $_tmp_header"
|
|
AC_CACHE_VAL(ac_cv_cxx_include_flag,
|
|
[AC_TRY_COMPILE([],
|
|
[booboo = "yogi";],
|
|
[ac_cv_cxx_include_flag=true],
|
|
[ac_cv_cxx_include_flag=false])])
|
|
if test $ac_cv_cxx_include_flag = true ; then
|
|
AC_MSG_RESULT(yes)
|
|
USE_CPP_INCLUDE_FLAG=1
|
|
AC_SUBST(USE_CPP_INCLUDE_FLAG)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
rm -f $_tmp_header
|
|
CFLAGS=$_SAVE_CFLAGS
|
|
|
|
dnl Check cc and cxx for -Wall flag support (adds compiler warnings)
|
|
AC_MSG_CHECKING($CC for \"-Wall\" support)
|
|
_SAVE_CFLAGS=$CFLAGS ; CFLAGS="$CFLAGS -Wall"
|
|
AC_CACHE_VAL(ac_cv_cc_wall_flag,
|
|
[AC_TRY_COMPILE([],
|
|
[int i;],
|
|
[ac_cv_cc_wall_flag=true],
|
|
[ac_cv_cc_wall_flag=false])])
|
|
if test $ac_cv_cc_wall_flag = true ; then
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
_SAVE_CC=$CC ; CC=$CXX
|
|
AC_MSG_CHECKING($CXX for \"-Wall\" support)
|
|
AC_CACHE_VAL(ac_cv_cxx_wall_flag,
|
|
[AC_TRY_COMPILE([],
|
|
[int i;],
|
|
[ac_cv_cxx_wall_flag=true],
|
|
[ac_cv_cxx_wall_flag=false])])
|
|
if test $ac_cv_cxx_wall_flag = true ; then
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
if test $ac_cv_cc_wall_flag = true -a $ac_cv_cxx_wall_flag = true ; then
|
|
WARNINGS_CFLAGS="${WARNINGS_CFLAGS} -Wall"
|
|
fi
|
|
CC=$_SAVE_CC
|
|
CFLAGS=$_SAVE_CFLAGS
|
|
|
|
dnl Check cc for -pedantic flag support (adds compiler warnings)
|
|
dnl AC_MSG_CHECKING($CC for \"-pedantic\" support)
|
|
dnl _SAVE_CFLAGS=$CFLAGS ; CFLAGS="$CFLAGS -pedantic"
|
|
dnl AC_CACHE_VAL(ac_cv_cc_pedantic_flag,
|
|
dnl [AC_TRY_COMPILE([],
|
|
dnl [int i;],
|
|
dnl [ac_cv_cc_pedantic_flag=true],
|
|
dnl [ac_cv_cc_pedantic_flag=false])])
|
|
dnl if test $ac_cv_cc_pedantic_flag = true ; then
|
|
dnl AC_MSG_RESULT(yes)
|
|
dnl WARNINGS_CFLAGS="${WARNINGS_CFLAGS} -pedantic"
|
|
dnl else
|
|
dnl AC_MSG_RESULT(no)
|
|
dnl fi
|
|
dnl CFLAGS=$_SAVE_CFLAGS
|
|
|
|
|
|
dnl Mozilla specific options
|
|
dnl ========================================================
|
|
dnl The macros used for command line options
|
|
dnl are defined in build/autoconf/altoptions.m4.
|
|
|
|
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/nsprpub by default
|
|
MOZ_BUILD_NSPR=1
|
|
|
|
MOZ_ARG_DISABLE_BOOL(build-nspr,
|
|
[ --disable-build-nspr Dont build mozilla/nsprpub],
|
|
MOZ_BUILD_NSPR= )
|
|
|
|
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= )
|
|
|
|
MOZ_ARG_ENABLE_BOOL(editor,
|
|
[ --enable-editor Enable editor],
|
|
MOZ_EDITOR=1)
|
|
|
|
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 ])
|
|
|
|
MOZ_ARG_ENABLE_BOOL(mailnews,
|
|
[ --enable-mailnews Enable Mail & News],
|
|
MOZ_MAIL_NEWS=1)
|
|
|
|
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=])
|
|
|
|
MOZ_ARG_ENABLE_BOOL(tests,
|
|
[ --enable-tests Enable test stubs],
|
|
ENABLE_TESTS=1)
|
|
|
|
dnl nglayout only supports building with one toolkit
|
|
dnl so ignore everything after the first,
|
|
dnl nglayout only supports building with one toolkit
|
|
dnl so ignore everything after the first ,
|
|
MOZ_ARG_ENABLE_STRING(toolkit,
|
|
[ --enable-toolkit=\$val Enable \$val fe (defaults to gtk)],
|
|
dnl [Toolkit must be either "gtk" or "Motif" (except on Rhapsody.)],
|
|
[
|
|
res=`echo $target_os| grep -c "^Rhapsody"`;
|
|
if test "$enableval" != "motif" && test "$enableval" != "gtk" && test $res = 0; then
|
|
AC_MSG_ERROR(Toolkit must be either gtk or motif.)
|
|
else
|
|
MOZ_TOOLKIT=`echo "$enableval" | sed -e "s/,.*//g" `
|
|
fi],
|
|
MOZ_TOOLKIT=USE_DEFAULT)
|
|
|
|
if test "$MOZ_TOOLKIT" = "USE_DEFAULT"; then
|
|
res=`echo $target_os| grep -c "^Rhapsody"`
|
|
if test $res != 0; then
|
|
MOZ_TOOLKIT="rhapsody"
|
|
else
|
|
MOZ_TOOLKIT="gtk"
|
|
fi
|
|
fi
|
|
|
|
dnl ========================================================
|
|
dnl =
|
|
dnl = Compiler Options
|
|
dnl =
|
|
dnl ========================================================
|
|
MOZ_ARG_HEADER(Compiler Options)
|
|
|
|
MOZ_ARG_DISABLE_BOOL(asserts,
|
|
[ --disable-asserts Disable asserts during debugging],
|
|
UNIX_SKIP_ASSERTS=1)
|
|
|
|
MOZ_ARG_ENABLE_BOOL_OR_STRING(debug,
|
|
[ --enable-debug Enable debug symbols],
|
|
[ MOZ_DEBUG=1 CFLAGS="$CFLAGS -g" ],
|
|
[],
|
|
[MOZ_DEBUG_MODULES=`echo $enableval | sed 's|,| |g'` ])
|
|
|
|
MOZ_ARG_ENABLE_BOOL(md,
|
|
[ --enable-md Use compiler-based dependencies ],
|
|
[ COMPILER_DEPEND=1
|
|
DEPEND_CFLAGS='-Wp,-MMD,$(*D)/.deps/$(*F).pp' ]
|
|
)
|
|
|
|
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")
|
|
|
|
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 ]
|
|
)
|
|
|
|
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_ENABLE_BOOL(wrap-malloc,
|
|
[ --enable-wrap-malloc Wrap malloc calls (gnu linker only) (default=no) ],
|
|
[ if test "$GNU_CC" = 1; 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_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).],
|
|
[res=`echo $enableval | grep -c "\/"`
|
|
if [ test $res != 0 ]; 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-idltool Build idl tool (default=no) ],
|
|
MOZ_IDL_TOOL=1)
|
|
|
|
MOZ_ARG_ENABLE_BOOL(xterm-updates,
|
|
[ --enable-xterm-updates Update XTERM titles with current command.],
|
|
MOZ_UPDATE_XTERM=1)
|
|
|
|
MOZ_ARG_ENABLE_BOOL(js-stubs,
|
|
[ --enable-js-stubs Use XPIDL JavaScript Stubs.],
|
|
AC_DEFINE(XPIDL_JS_STUBS))
|
|
|
|
MOZ_ARG_HEADER(Untested or Broken Options)
|
|
|
|
MOZ_ARG_ENABLE_BOOL(crypto,
|
|
[ --enable-crypto Enable use of SSL (untested)],
|
|
MOZ_SECURITY=1)
|
|
|
|
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=])
|
|
|
|
MOZ_ARG_ENABLE_BOOL(mail-compose,
|
|
[ --enable-mail-compose Enable old Messenger mail composer ],
|
|
[ 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 (broken)],
|
|
NO_STATIC_LIB=1)
|
|
|
|
|
|
AC_SUBST(MOZ_TOOLKIT)
|
|
AC_SUBST(MOZ_UPDATE_XTERM)
|
|
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)
|
|
AC_SUBST(MOZ_BUILD_NSPR)
|
|
dnl AC_SUBST(MOZ_LDAP)
|
|
AC_SUBST(MOZ_EDITOR)
|
|
AC_SUBST(UNIX_SKIP_ASSERTS)
|
|
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(MOZ_DOM)
|
|
AC_SUBST(MOZ_MAIL_COMPOSE)
|
|
AC_SUBST(FULL_STATIC_BUILD)
|
|
AC_SUBST(NO_UNIX_LDAP)
|
|
AC_SUBST(MOZ_IDL_TOOL)
|
|
AC_SUBST(COMPILER_DEPEND)
|
|
AC_SUBST(MOZ_RTTI_FLAGS)
|
|
AC_SUBST(MOZ_EXCEPTIONS_FLAGS)
|
|
|
|
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
|
|
_SAVE_LDFLAGS="$LDFLAGS"
|
|
LDFLAGS="$XLDFLAGS $LDFLAGS"
|
|
AC_CHECK_LIB(X11, XDrawLines, [XLIBS="-lX11 $XLIBS"],
|
|
[MISSING_X="$MISSING_X -lX11"], $XLIBS)
|
|
AC_CHECK_LIB(Xext, XextAddDisplay, [XLIBS="-lXext $XLIBS"],
|
|
[MISSING_X="$MISSING_X -lXext"], $XLIBS)
|
|
AC_CHECK_LIB(ICE, IceFlush, [XLIBS="-lICE $XLIBS"],, $XLIBS)
|
|
AC_CHECK_LIB(SM, SmcCloseConnection, [XLIBS="-lSM $XLIBS"],, $XLIBS)
|
|
AC_CHECK_LIB(Xt, XtFree, [XLIBS="-lXt $XLIBS"],
|
|
[MISSING_X="$MISSING_X -lXt"], $XLIBS)
|
|
AC_CHECK_LIB(Xmu, XmuLookupString, [XLIBS="-lXmu $XLIBS"],
|
|
[MISSING_X="$MISSING_X -lXmu"], $XLIBS)
|
|
LDFLAGS="$_SAVE_LDFLAGS"
|
|
|
|
dnl Check for toolkit libs
|
|
dnl ========================================================
|
|
res=`echo :$MOZ_TOOLKIT | grep -c "motif"`
|
|
if [ test $res != 0 ]; then
|
|
if [ test "$no_x" != "yes" ]; then
|
|
if [ test ! -z "$x_includes" ]; then
|
|
MOTIF_XINCS="-xif -I$x_includes"
|
|
fi
|
|
|
|
MOTIF_VERSION=`${srcdir}/config/mkdetect/detect_motif.sh -cc "$CC" $MOTIF_XINCS`
|
|
MOTIF_INCLUDES=`${srcdir}/config/mkdetect/detect_motif.sh -cc "$CC" $MOTIF_XINCS -if`
|
|
MOTIF_STATIC_FLAGS=`${srcdir}/config/mkdetect/detect_motif.sh -cc "$CC" $MOTIF_XINCS -sf`
|
|
MOTIF_DYNAMIC_FLAGS=`${srcdir}/config/mkdetect/detect_motif.sh -cc "$CC" $MOTIF_XINCS -df`
|
|
MOTIF_DYNAMIC_PATHS=`${srcdir}/config/mkdetect/detect_motif.sh -cc "$CC" $MOTIF_XINCS -dp`
|
|
MOTIF_REQUIRES_XPM=`${srcdir}/config/mkdetect/detect_motif.sh -cc "$CC" $MOTIF_XINCS -xpm`
|
|
|
|
${srcdir}/config/mkdetect/detect_motif.sh --cleanup
|
|
fi
|
|
|
|
if [ test "$MOTIF_REQUIRES_XPM" = "True" || test "$MOTIF_VERSION" = "2.1" ]; then
|
|
_SAVE_LDFLAGS="$LDFLAGS"
|
|
LDFLAGS="$XLDFLAGS $LDFLAGS"
|
|
if [ test "$MOTIF_REQUIRES_XPM" = "True" ]; then
|
|
AC_CHECK_LIB(Xpm, XpmWriteFileFromImage,
|
|
TK_LIBS="-lXpm $TK_LIBS",
|
|
[MISSING_MOTIF="-lXpm $MISSING_MOTIF"], $XLIBS)
|
|
fi
|
|
if [ test "$MOTIF_VERSION" = "2.1" ]; then
|
|
AC_CHECK_LIB(Xp, XpGetPrinterList,
|
|
TK_LIBS="-lXp $TK_LIBS",
|
|
[MISSING_MOTIF="-lXp $MISSING_MOTIF"], $XLIBS)
|
|
fi
|
|
TK_LIBS="$XLDFLAGS $TK_LIBS"
|
|
LDFLAGS="$_SAVE_LDFLAGS"
|
|
fi
|
|
|
|
if [ test "$MOTIF_STATIC_LIB" = "unknown" && test "$MOTIF_DYNAMIC_LIB" = "unknown" ]; then
|
|
AC_ERROR("Cannot find neither dynamic nor 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
|
|
|
|
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="$MOTIF_DYNAMIC_FLAGS $MISSING_MOTIF"],
|
|
$MOTIF_DYNAMIC_PATHS $TK_LIBS $XLIBS)
|
|
LDFLAGS="$_SAVE_LDFLAGS"
|
|
else
|
|
AC_CHECK_LIB(Xm, XmStringCreate,
|
|
TK_LIBS="$MOTIF_STATIC_FLAGS $TK_LIBS",
|
|
[MISSING_MOTIF="$MOTIF_STATIC_FLAGS $MISSING_MOTIF"],
|
|
$TK_LIBS $XLIBS)
|
|
fi
|
|
|
|
TK_CFLAGS="$MOTIF_INCLUDES"
|
|
fi
|
|
|
|
res=`echo :$MOZ_TOOLKIT | grep -c "gtk"`
|
|
if [ test $res != 0 ]; 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 -z "$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
|
|
|
|
fi # $no_x
|
|
|
|
AC_SUBST(GTK_CONFIG)
|
|
AC_SUBST(TK_CFLAGS)
|
|
AC_SUBST(TK_LIBS)
|
|
|
|
XCFLAGS="$X_CFLAGS"
|
|
|
|
AC_SUBST(XCFLAGS)
|
|
AC_SUBST(XLDFLAGS)
|
|
AC_SUBST(XLIBS)
|
|
|
|
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}" && test -d "${JPEG_DIR}" && test "$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 -n "${ZLIB_DIR}" && test -d "${ZLIB_DIR}" && test "$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 -n "${PNG_DIR}" && test -d "${PNG_DIR}" && test "$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}"
|
|
|
|
AC_MSG_CHECKING("for FC_Initialize in -ltalkback");
|
|
LIBS="-ltalkback $LIBS"
|
|
AC_TRY_LINK([
|
|
#include "fullcircle.h"
|
|
#include <stdio.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 -n "$MISSING_FULLCIRCLE" ]; then
|
|
AC_MSG_ERROR([Could not find FullCircle Library]);
|
|
fi
|
|
|
|
fi
|
|
|
|
dnl system NSPR support
|
|
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(pthreads,
|
|
[ --with-pthreads use system pthread library ],
|
|
[if test "$withval" = "yes"; then
|
|
AC_CHECK_LIB(pthread, pthread_attr_init,
|
|
NSPR_LIBS="-lpthread $NSPR_LIBS" USE_PTHREADS=1)
|
|
case "$target" in
|
|
*-*-solaris*)
|
|
AC_DEFINE(_REENTRANT) ;;
|
|
*-*-linux*)
|
|
AC_DEFINE(_REENTRANT) ;;
|
|
alpha*-*-osf*)
|
|
if [ test "$GNU_CC" = 1 ]; then
|
|
AC_DEFINE(_REENTRANT)
|
|
else
|
|
CFLAGS="$CFLAGS -pthread"
|
|
fi ;;
|
|
esac
|
|
fi] )
|
|
|
|
AC_ARG_WITH(nspr,
|
|
[ --with-nspr=\$dir location of nspr headers and libraries],
|
|
NSPR_DIR=$withval)
|
|
|
|
_SAVE_CFLAGS=$CFLAGS
|
|
_SAVE_LDFLAGS=$LDFLAGS
|
|
_SAVE_LIBS=$LIBS
|
|
CFLAGS="$CFLAGS -I${NSPR_DIR}/include"
|
|
LDFLAGS="$LDFLAGS -L${NSPR_DIR}/lib $NSPR_LIBS"
|
|
|
|
AC_MSG_CHECKING("for PR_GetCurrentThread in -lnspr21")
|
|
LIBS="-lnspr21 $NSPR_LIBS $LIBS"
|
|
AC_TRY_RUN(
|
|
#include <stdio.h>
|
|
#include <nspr.h>
|
|
int main () {
|
|
PRThread *dummy = PR_GetCurrentThread();
|
|
exit(0);
|
|
}
|
|
, [NSPR_LIBS="-lnspr21 $NSPR_LIBS" result="yes"],
|
|
[_NSPR_NEEDS_THREAD_LIB=1 result="no"],
|
|
[_NSPR_NEEDS_THREAD_LIB=1 result="no"] )
|
|
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
|
|
case "$target" in
|
|
*-*-solaris*)
|
|
AC_CHECK_LIB(pthread, pthread_attr_init,
|
|
NSPR_LIBS="-lpthread $NSPR_LIBS") ;;
|
|
*-*-linux*)
|
|
AC_CHECK_LIB(pthread, pthread_attr_init,
|
|
NSPR_LIBS="-lpthread $NSPR_LIBS") ;;
|
|
esac
|
|
|
|
AC_MSG_CHECKING("for PR_GetCurrentThread in -lnspr21 with thread lib")
|
|
LIBS="-lnspr21 $NSPR_LIBS $LIBS"
|
|
AC_TRY_RUN(
|
|
#include <stdio.h>
|
|
#include <nspr.h>
|
|
int main () {
|
|
PRThread *dummy = PR_GetCurrentThread();
|
|
exit(0);
|
|
}
|
|
, [NSPR_LIBS="-lnspr21 $NSPR_LIBS" result="yes"],
|
|
[MISSING_NSPR="$MISSING_NSPR -lnspr21" result="no"],
|
|
[MISSING_NSPR="$MISSING_NSPR -lnspr21" result="no"] )
|
|
rm -f core
|
|
AC_MSG_RESULT("$result")
|
|
fi
|
|
|
|
dnl AC_CHECK_LIB(nspr21, PR_GetUniqueIdentity, NSPR_LIBS="-lnspr21 $NSPR_LIBS",
|
|
dnl [MISSING_NSPR="$MISSING_NSPR -lnspr21"], $NSPR_LIBS)
|
|
|
|
AC_CHECK_LIB(plc21, PL_CreateOptState, NSPR_LIBS="-lplc21 $NSPR_LIBS",
|
|
[MISSING_NSPR="$MISSING_NSPR -lplc21"], $NSPR_LIBS)
|
|
AC_CHECK_LIB(plds21, PL_GetEvent, NSPR_LIBS="-lplds21 $NSPR_LIBS",
|
|
[MISSING_NSPR="$MISSING_NSPR -lplds21"], $NSPR_LIBS)
|
|
|
|
CFLAGS=$_SAVE_CFLAGS
|
|
LDFLAGS=$_SAVE_LDFLAGS
|
|
LIBS=$_SAVE_LIBS
|
|
if [ test -n "${NSPR_DIR}" && test -d "${NSPR_DIR}" ]; then
|
|
NSPR_CFLAGS="-I${NSPR_DIR}/include"
|
|
NSPR_LIBS="-L${NSPR_DIR}/lib ${NSPR_LIBS}"
|
|
fi
|
|
dnl End of nspr tests
|
|
dnl ========================================================
|
|
|
|
dnl Echo the CFLAGS to remove extra whitespace.
|
|
CFLAGS=`echo \
|
|
$WARNINGS_CFLAGS \
|
|
$GPROF_CFLAGS \
|
|
$DEPEND_CFLAGS \
|
|
$CFLAGS`
|
|
|
|
dnl Support for X11 makedepend, if found on the system
|
|
dnl ========================================================
|
|
AC_PATH_PROG(SYSTEM_MAKEDEPEND,makedepend)
|
|
|
|
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_CFLAGS)
|
|
AC_SUBST(NSPR_LIBS)
|
|
|
|
AC_SUBST(CFLAGS)
|
|
AC_SUBST(LDFLAGS)
|
|
AC_SUBST(LIBS)
|
|
|
|
AC_SUBST(WRAP_MALLOC_CFLAGS)
|
|
AC_SUBST(WRAP_MALLOC_LIB)
|
|
AC_SUBST(MKSHLIB)
|
|
AC_SUBST(MKSHLIB_FORCE_ALL)
|
|
AC_SUBST(MKSHLIB_UNFORCE_ALL)
|
|
AC_SUBST(DSO_CFLAGS)
|
|
AC_SUBST(DSO_LDOPTS)
|
|
AC_DEFINE_UNQUOTED(MOZ_DLL_SUFFIX, $DLL_SUFFIX)
|
|
AC_SUBST(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 -n "$MISSING_X"; then
|
|
AC_MSG_ERROR([ Could not find the following X libraries: $MISSING_X ]);
|
|
fi
|
|
|
|
if test -n "$MISSING_GTK"; then
|
|
AC_MSG_ERROR([ Could not link sample program with the following gtk libraries: $MISSING_GTK ])
|
|
fi
|
|
|
|
if test -n "$MISSING_MOTIF"; then
|
|
AC_MSG_ERROR([ Could not find the following motif libraries: $MISSING_MOTIF ]);
|
|
fi
|
|
fi # $no_x
|
|
|
|
if test -n "$MISSING_NSPR"; then
|
|
AC_MSG_ERROR([Could not find the following nspr libraries or could not run sample program: $MISSING_NSPR]);
|
|
fi
|
|
|
|
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)
|
|
|
|
OS_TARGET=`uname -s`
|
|
AC_SUBST(OS_TARGET)
|
|
|
|
if test "$OS_TARGET" = "OS2"; then
|
|
AC_DEFINE(XP_PC)
|
|
elif test "$OS_TARGET" = "WINNT"; then
|
|
AC_DEFINE(XP_PC)
|
|
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 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
|
|
|
|
CONFIG_DEFS_H='$(DEPTH)/'$CONFIG_DEFS_H
|
|
AC_SUBST(CONFIG_DEFS_H)
|
|
fi
|
|
|
|
dnl Need to manual make the directories to get around deficiency in AC_OUTPUT
|
|
for d in lib modules modules/security; do
|
|
if [ test ! -d $d ]; then rm -f $d; mkdir $d; fi
|
|
done
|
|
|
|
# Load the list of Makefiles to generate.
|
|
# To add new Makefiles, edit allmakefiles.sh.
|
|
# allmakefiles.sh sets the variable, MAKEFILES.
|
|
_topsrcdir=`dirname [$]0`
|
|
. $_topsrcdir/allmakefiles.sh
|
|
|
|
AC_OUTPUT($MAKEFILES)
|