pjs/directory/c-sdk/configure.in

2576 строки
72 KiB
Plaintext

dnl -*- Mode: Autoconf; tab-width: 4; indent-tabs-mode: nil; -*-
dnl
dnl ***** BEGIN LICENSE BLOCK *****
dnl Version: MPL 1.1/GPL 2.0/LGPL 2.1
dnl
dnl The contents of this file are subject to the Mozilla Public License Version
dnl 1.1 (the "License"); you may not use this file except in compliance with
dnl the License. You may obtain a copy of the License at
dnl http://www.mozilla.org/MPL/
dnl
dnl Software distributed under the License is distributed on an "AS IS" basis,
dnl WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
dnl for the specific language governing rights and limitations under the
dnl License.
dnl
dnl The Original Code is the Netscape Portable Runtime (NSPR).
dnl
dnl The Initial Developer of the Original Code is
dnl Netscape Communications Corporation.
dnl Portions created by the Initial Developer are Copyright (C) 1998-2000
dnl the Initial Developer. All Rights Reserved.
dnl
dnl Contributor(s):
dnl Christopher Seawood <cls@seawood.org>
dnl Dan Mosedale <dmose@netscape.com>
dnl Howard Chu <hyc@symas.com>
dnl
dnl Alternatively, the contents of this file may be used under the terms of
dnl either of the GNU General Public License Version 2 or later (the "GPL"),
dnl or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
dnl in which case the provisions of the GPL or the LGPL are applicable instead
dnl of those above. If you wish to allow use of your version of this file only
dnl under the terms of either the GPL or the LGPL, and not to allow others to
dnl use your version of this file under the terms of the MPL, indicate your
dnl decision by deleting the provisions above and replace them with the notice
dnl and other provisions required by the GPL or the LGPL. If you do not delete
dnl the provisions above, a recipient may use your version of this file under
dnl the terms of any one of the MPL, the GPL or the LGPL.
dnl
dnl ***** END LICENSE BLOCK *****
AC_PREREQ(2.12)
AC_INIT(ldap/include/ldap.h)
AC_CONFIG_AUX_DIR(${srcdir}/config/autoconf)
AC_CANONICAL_SYSTEM
dnl ========================================================
dnl = Defaults
dnl ========================================================
NSPR_VERSION=4
_HAVE_PTHREADS=
USE_PTHREADS=
USE_USER_PTHREADS=
USE_NSPR_THREADS=
USE_N32=
USE_64=
USE_CPLUS=
USE_IPV6=
USE_MDUPDATE=
_OPTIMIZE_FLAGS=-O
_DEBUG_FLAGS=-g
MOZ_DEBUG=1
MOZ_OPTIMIZE=
OBJDIR=.
OBJDIR_NAME=.
NSINSTALL='$(MOD_DEPTH)/config/$(OBJDIR_NAME)/nsinstall'
NOSUCHFILE=/no-such-file
dnl Link in libraries necessary to resolve all symbols for shared libs
RESOLVE_LINK_SYMBOLS=
dnl ========================================================
dnl =
dnl = Dont change the following lines. Doing so breaks:
dnl =
dnl = CFLAGS="-foo" ./configure
dnl =
dnl ========================================================
CFLAGS="${CFLAGS=}"
CXXFLAGS="${CXXFLAGS=}"
LDFLAGS="${LDFLAGS=}"
HOST_CFLAGS="${HOST_CFLAGS=}"
HOST_LDFLAGS="${HOST_LDFLAGS=}"
case "$target" in
*-cygwin*|*-mingw*|*-msvc*|*-mks*)
# Check to see if we are really running in a msvc environemnt
_WIN32_MSVC=
AC_CHECK_PROGS(CC, cl)
if test "$CC" = "cl"; then
echo 'main() { return 0; }' > dummy.c
${CC} -o dummy dummy.c >/dev/null 2>&1
if test $? = 0; then
_WIN32_MSVC=1
CXX=$CC
else
AC_MSG_WARN([$(CC) test failed. Using normal feature tests])
fi
rm -f dummy dummy.o dummy.obj dummy.exe dummy.c
fi
;;
esac
if test -n "$_WIN32_MSVC"; then
SKIP_PATH_CHECKS=1
SKIP_COMPILER_CHECKS=1
SKIP_LIBRARY_CHECKS=1
fi
dnl ========================================================
dnl =
dnl = Check options that may affect the compiler
dnl =
dnl ========================================================
dist_prefix='${MOD_DEPTH}/../../dist'
dist_bindir='${dist_prefix}/bin'
dist_libdir='${dist_prefix}/lib'
AC_ARG_WITH(dist-prefix,
[ --with-dist-prefix=DIST_PREFIX
place build files in DIST_PREFIX [dist]],
dist_prefix=$withval)
AC_ARG_WITH(dist-bindir,
[ --with-dist-bindir=DIR build execuatables in DIR [DIST_PREFIX/bin]],
dist_bindir=$withval)
AC_ARG_WITH(dist-libdir,
[ --with-dist-libdir=DIR build library files in DIR [DIST_PREFIX/lib]],
dist_libdir=$withval)
AC_SUBST(dist_prefix)
AC_SUBST(dist_bindir)
AC_SUBST(dist_libdir)
dnl Check if LDAP is being compiled for Mozilla
dnl Let --with-arg override environment setting
dnl
AC_ARG_WITH(mozilla,
[ --with-mozilla Compile LDAP with Mozilla support],
[ if test "$withval" = "yes"; then
AC_DEFINE(MOZILLA_CLIENT)
MOZILLA_CLIENT=1
else
MOZILLA_CLIENT=
fi],
[ if test -n "$MOZILLA_CLIENT"; then
AC_DEFINE(MOZILLA_CLIENT)
fi])
AC_ARG_ENABLE(optimize,
[ --enable-optimize(=val) Enable code optimizations (val, ie. -O2) ],
[ if test "$enableval" != "no"; then
MOZ_OPTIMIZE=1
if test -n "$enableval" && test "$enableval" != "yes"; then
_OPTIMIZE_FLAGS=`echo $enableval | sed -e 's|\\\ | |g'`
_SAVE_OPTIMIZE_FLAGS=$_OPTIMIZE_FLAGS
fi
else
MOZ_OPTIMIZE=
fi ])
AC_ARG_ENABLE(debug,
[ --disable-debug Do not compile in debugging symbols
--enable-debug(=val) Enable debugging (debug flags val)],
[ if test "$enableval" = "no"; then
MOZ_DEBUG=
else
MOZ_DEBUG=1
if test -n "$enableval" && test "$enableval" != "yes"; then
_DEBUG_FLAGS=`echo $enableval | sed -e 's|\\\ | |g'`
_SAVE_DEBUG_FLAGS=$_DEBUG_FLAGS
fi
fi])
AC_ARG_ENABLE(win32-target,
[ --enable-win32-target=\$t
Specify win32 flavor. (WIN95 or WINNT)],
OS_TARGET=`echo $enableval | tr a-z A-Z`,
OS_TARGET=)
AC_ARG_ENABLE(debug-rtl,
[ --enable-debug-rtl Use the MSVC debug runtime library],
[ if test "$enableval" = "yes"; then
USE_DEBUG_RTL=1
fi ])
AC_ARG_ENABLE(n32,
[ --enable-n32 Enable n32 ABI support (IRIX only)],
[ if test "$enableval" = "yes"; then
USE_N32=1
else if test "$enableval" = "no"; then
USE_N32=
fi
fi ])
AC_ARG_ENABLE(64bit,
[ --enable-64bit Enable 64-bit support (on certain platforms)],
[ if test "$enableval" = "yes"; then
USE_64=1 ; export USE_64
fi ],
[])
AC_ARG_ENABLE(mdupdate,
[ --enable-mdupdate Enable use of certain compilers' mdupdate feature],
[ if test "$enableval" = "yes"; then
USE_MDUPDATE=1
fi ])
dnl ========================================================
dnl = svrcore gives the command line tools secure PIN management
dnl = for client cert based authentication
dnl ========================================================
dnl ========================================================
dnl = Use the SVRCORE copy in the system (assuming it exists)
dnl = rather than the one in the source tree (mozilla/security)
dnl ========================================================
AC_ARG_WITH(system-svrcore,
[ --with-system-svrcore Use system installed SVRCORE],
[ if test "$withval" = "yes"; then
_SYSTEM_SVRCORE=1
HAVE_SVRCORE=1
SVRCORE_LIBS=-lsvrcore
AC_SUBST(SVRCORE_LIBS)
dnl svrcore implies both nspr and nss
USE_NSS=1
no_nspr=no
else
_SYSTEM_SVRCORE=
fi], _SYSTEM_SVRCORE= )
dnl _SYSTEM_SVRCORE means /usr/lib and /usr/include so no need to add additional
dnl include or lib paths
if test -z "$_SYSTEM_SVRCORE" ; then
dnl first, see if user has specified explicit SVRCORE include and lib paths
AM_PATH_GIVEN_SVRCORE()
dnl next, see if user explicitly said to use system svrcore
if test -n "$HAVE_SVRCORE" ; then
dnl svrcore implies both nspr and nss
USE_NSS=1
no_nspr=no
if test -z "$SVRCORE_CFLAGS" -o -z "$SVRCORE_LIBS" ; then
if test -n "$_SYSTEM_SVRCORE"; then
AM_PATH_SVRCORE(4.0.1, [MOZ_NATIVE_SVRCORE=1], [MOZ_NATIVE_SVRCORE=])
else
dnl see if we are being built in the same build tree as svrcore
AM_PATH_INTREE_SVRCORE(../../dist)
dnl failing that, see if we can find svrcore-config or pkg-config svrcore
if test -z "$SVRCORE_CFLAGS" -o -z "$SVRCORE_LIBS"; then
AM_PATH_SVRCORE(4.0.1, [MOZ_NATIVE_SVRCORE=1], [MOZ_NATIVE_SVRCORE=])
fi
fi
fi
fi
fi
if test -n "$HAVE_SVRCORE" -a -z "$_SYSTEM_SVRCORE" ; then
if test -z "$SVRCORE_CFLAGS" -o -z "$SVRCORE_LIBS"; then
AC_MSG_ERROR([--with-svrcore specified, but no svrcore could be found])
fi
fi
dnl ========================================================
dnl = Use the NSS copy in the system (assuming it exists)
dnl = rather than the one in the source tree (mozilla/security)
dnl ========================================================
AC_ARG_WITH(system-nss,
[ --with-system-nss Use system installed NSS],
[ if test "$withval" = "yes"; then
_SYSTEM_NSS=1
USE_NSS=1
dnl nss requires nspr
no_nspr=no
elif test "$withval" = "no" ; then
_SYSTEM_NSS=no
fi], _SYSTEM_NSS= )
if test "$_WIN32_MSVC"; then
_SYSTEM_NSS=
fi
dnl first, see if user has specified explicit NSPR include and lib paths,
dnl of if the user has explicitly disabled the use of nss
if test -z "$_SYSTEM_NSS" -o "$_SYSTEM_NSS" = "no" ; then
AM_PATH_GIVEN_NSS()
fi
dnl next, see if user explicitly said to use system nss
if test -n "$USE_NSS" -a -z "$NSS_CFLAGS" -a -z "$NSS_LIBS" ; then
dnl nss requires nspr
no_nspr=no
if test -z "$_SYSTEM_NSS" -o "$_SYSTEM_NSS" = "no" ; then
dnl see if we are being built in the same build tree as nss
AM_PATH_INTREE_NSS(../../dist)
fi
dnl failing that, see if we can find nss-config or pkg-config nss
if test -z "$NSS_CFLAGS" -a "$_SYSTEM_NSS" != "no" ; then
AM_PATH_NSS(3.9.0, [MOZ_NATIVE_NSS=1], [MOZ_NATIVE_NSS=])
fi
fi
dnl bomb out if nss not found
if test -n "$USE_NSS" -a -z "$NSS_CFLAGS" -a -z "$NSS_LIBS" ; then
AC_MSG_ERROR(Need to use NSS but no NSS was found)
fi
dnl ========================================================
dnl = Use the NSPR copy in the system (assuming it exists)
dnl = rather than the one in the source tree (mozilla/nsprpub)
dnl ========================================================
AC_ARG_WITH(system-nspr,
[ --with-system-nspr Use system installed NSPR],
[ if test "$withval" = "yes"; then
_SYSTEM_NSPR=1
no_nspr=no
elif test "$withval" = "no"; then
_SYSTEM_NSPR=no
fi], _SYSTEM_NSPR= )
if test "$_WIN32_MSVC"; then
_SYSTEM_NSPR=no
fi
dnl first, see if user has specified explicit NSPR include and lib paths,
dnl of if the user has explicitly disabled the use of nspr
if test -z "$_SYSTEM_NSPR" -o "$_SYSTEM_NSPR" = "no" ; then
AM_PATH_GIVEN_NSPR()
fi
dnl next, look for in-tree nspr if user did not specify explicit system nspr
if test "$no_nspr" = "no" -a -z "$NSPR_CFLAGS" -a -z "$NSPR_LIBS" ; then
if test -z "$_SYSTEM_NSPR" -o "$_SYSTEM_NSPR" = "no" ; then
dnl see if we are being built in the same build tree as nspr
AM_PATH_INTREE_NSPR(../../dist)
fi
dnl failing that, see if we can find nspr-config or pkg-config nspr
if test -z "$NSPR_CFLAGS" -a "$_SYSTEM_NSPR" != "no" ; then
AM_PATH_NSPR(4.0.0, [MOZ_NATIVE_NSPR=1], [MOZ_NATIVE_NSPR=])
fi
fi
dnl if we are being built as part of the mozilla client, and we could not
dnl find NSPR by any other method, just default to the default values
dnl used by the client build - NOTE that this sets the libpaths and the
dnl library link commands directly, so we don't need to muck with any
dnl cygwin path conversion stuff. The client build also uses --with-dist-prefix
dnl which sets $(DIST) in the makefiles
if test -z "$NSPR_CFLAGS" -o -z "$NSPR_LIBS" ; then
if test -n "$MOZILLA_CLIENT" ; then
NSPR_CFLAGS='-I$(DIST)/include/nspr'
NSPR_LIBS='-L$(DIST)/lib '"-lplds$NSPR_VERSION -lplc$NSPR_VERSION -lnspr$NSPR_VERSION"
dnl explicitly set libs for Visual Age C++ for OS/2
if test "$VACPP" = "yes"; then
NSPR_LIBS='$(DIST)/lib/nspr'$NSPR_VERSION'.lib $(DIST)/lib/plc'$NSPR_VERSION'.lib $(DIST)/lib/plds'$NSPR_VERSION'.lib '$_PTHREAD_LDFLAGS''
elif test "$_WIN32_MSVC"; then
NSPR_LIBS='$(DIST)/lib/nspr'$NSPR_VERSION'.lib $(DIST)/lib/plc'$NSPR_VERSION'.lib $(DIST)/lib/plds'$NSPR_VERSION'.lib '
fi
SKIP_CYGWIN_FIXUP=1
LIBS_ALREADY_SET=1
AC_SUBST(LIBS_ALREADY_SET)
elif test "$no_nspr" = "no" ; then
AC_MSG_ERROR(Need to use NSPR but no NSPR was found)
fi
fi
dnl ========================================================
dnl If using cygwin (or another Windows shell that uses unix
dnl style paths by default - mingw?) and using MSVC, we need
dnl to convert the include and lib paths to the more MSVC
dnl friendly format - it's easier and faster to do it here
dnl than in cygwin-wrapper
dnl ========================================================
dnl add other runtime environments that use unix style paths
dnl *-cygwin*|*-mingw*|*-msvc*|*-mks*)
case "$target" in
*-cygwin*) USE_WINDOWS_PATHS=1 ;;
esac
if test -n "$_WIN32_MSVC" -a -n "$USE_WINDOWS_PATHS" ; then
if test -n "$NSPR_CFLAGS" -a -z "$SKIP_CYGWIN_FIXUP" ; then
path=`echo $NSPR_CFLAGS | sed -e 's/^-I//'`
path=`cygpath -m $path`
NSPR_CFLAGS="/I$path"
fi
if test -n "$NSPR_LIBS" -a -z "$SKIP_CYGWIN_FIXUP" ; then
path=`echo $NSPR_LIBS | sed -e 's/^-L//'`
path=`cygpath -m $path`
NSPR_LIBS="/LIBPATH:$path"
fi
if test -n "$NSS_CFLAGS" ; then
path=`echo $NSS_CFLAGS | sed -e 's/^-I//'`
path=`cygpath -m $path`
NSS_CFLAGS="/I$path"
fi
if test -n "$NSS_LIBS" ; then
path=`echo $NSS_LIBS | sed -e 's/^-L//'`
path=`cygpath -m $path`
NSS_LIBS="/LIBPATH:$path"
fi
if test -n "$SVRCORE_CFLAGS" ; then
path=`echo $SVRCORE_CFLAGS | sed -e 's/^-I//'`
path=`cygpath -m $path`
SVRCORE_CFLAGS="/I$path"
fi
if test -n "$SVRCORE_LIBS" ; then
path=`echo $SVRCORE_LIBS | sed -e 's/^-L//'`
path=`cygpath -m $path`
SVRCORE_LIBS="/LIBPATH:$path"
fi
fi
dnl ========================================================
dnl =
dnl = Set the threading model
dnl =
dnl ========================================================
case "$target" in
*-aix*)
case "${target_os}" in
aix3.2*)
USE_NSPR_THREADS=1
;;
*)
USE_PTHREADS=1
;;
esac
;;
esac
dnl ========================================================
dnl =
dnl = Set the default C compiler
dnl =
dnl ========================================================
if test -z "$CC"; then
case "$target" in
*-aix*)
if test -z "$USE_NSPR_THREADS"; then
CC=xlC_r
else
CC=xlC
fi
;;
*-hpux*)
CC=cc
;;
*-irix*)
CC=cc
;;
*-osf*)
CC=cc
;;
*-solaris*)
CC=cc
;;
esac
fi
dnl ========================================================
dnl =
dnl = Set the default C++ compiler
dnl =
dnl ========================================================
if test -z "$CXX"; then
case "$target" in
*-aix*)
if test -z "$USE_NSPR_THREADS"; then
CXX=xlC_r
else
CXX=xlC
fi
;;
*-hpux*)
case "${target_os}" in
hpux10.30)
CXX=aCC
;;
hpux11.*)
CXX=aCC
;;
*)
CXX=CC
;;
esac
;;
*-irix*)
CXX=CC
;;
*-osf*)
CXX=cxx
;;
*-solaris*)
CXX=CC
;;
esac
fi
if test -z "$SKIP_PATH_CHECKS"; then
AC_PATH_PROG(WHOAMI, $WHOAMI whoami, echo not_whoami)
fi
if test -n "$MOZ_DEBUG"; then
AC_DEFINE(DEBUG)
DEFINES="$DEFINES -UNDEBUG"
case "${target_os}" in
beos*)
DEFINES="$DEFINES -DDEBUG_${USER}"
;;
msvc*|mks*|cygwin*|mingw*|os2*)
DEFINES="$DEFINES -DDEBUG_`echo ${USERNAME} | sed -e 's| |_|g'`"
;;
*)
DEFINES="$MOZ_DEBUG_ENABLE_DEFS -DDEBUG_`$WHOAMI`"
;;
esac
else
AC_DEFINE(NDEBUG)
DEFINES="$DEFINES -UDEBUG"
fi
dnl Use mozilla's nsinstall
if test -n "$MOZILLA_CLIENT"; then
NSINSTALL='$(dist_bindir)/nsinstall'
fi
if test -z "$SKIP_COMPILER_CHECKS"; then
dnl ========================================================
dnl Checks for compilers.
dnl ========================================================
if test "$target" = "$host"; then
AC_PROG_CXX
if test "$CXX" = "cl" -a -z "$CC"; then
CC=$CXX
else
AC_PROG_CC
fi
AC_PROG_CPP
AC_PROG_RANLIB
AC_PATH_PROGS(AS, as, $CC)
AC_PATH_PROGS(AR, ar, echo not_ar)
AC_PATH_PROGS(LD, ld link, echo not_ld)
AC_PATH_PROGS(STRIP, strip, echo not_strip)
AC_PATH_PROGS(WINDRES, windres, echo not_windres)
if test -z "$HOST_CC"; then
HOST_CC="$CC"
fi
if test -z "$HOST_CFLAGS"; then
HOST_CFLAGS="$CFLAGS"
fi
else
echo "cross compiling from $host to $target"
cross_compiling=yes
_SAVE_CC="$CC"
_SAVE_CFLAGS="$CFLAGS"
_SAVE_LDFLAGS="$LDFLAGS"
AC_MSG_CHECKING([for $host compiler])
AC_CHECK_PROGS(HOST_CC, gcc cc /usr/ucb/cc, "")
if test -z "$HOST_CC"; then
AC_MSG_ERROR([no acceptable cc found in \$PATH])
fi
AC_MSG_RESULT([$HOST_CC])
if test -z "$HOST_CFLAGS"; then
HOST_CFLAGS="$CFLAGS"
fi
if test -z "$HOST_LDFLAGS"; then
HOST_LDFLAGS="$LDFLAGS"
fi
CC=$_SAVE_CC
CFLAGS=$_SAVE_CFLAGS
LDFLAGS=$_SAVE_LDFLAGS
case "$build:$target" in
powerpc-apple-darwin8*:i?86-apple-darwin*)
dnl The Darwin cross compiler doesn't necessarily point itself at a
dnl root that has libraries for the proper architecture, it defaults
dnl to the system root. The libraries in the system root on current
dnl versions of PPC OS X 10.4 aren't fat, so these target compiler
dnl checks will fail. Fake a working SDK in that case.
_SAVE_CFLAGS=$CFLAGS
_SAVE_CXXFLAGS=$CXXLAGS
CFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk $CFLAGS"
CXXFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk $CXXFLAGS"
;;
esac
AC_CHECK_PROGS(CC, $CC "${target_alias}-gcc" "${target}-gcc", echo)
unset ac_cv_prog_CC
AC_PROG_CC
AC_CHECK_PROGS(CXX, $CXX "${target_alias}-g++" "${target}-g++", echo)
unset ac_cv_prog_CXX
AC_PROG_CXX
case "$build:$target" in
powerpc-apple-darwin8*:i?86-apple-darwin*)
dnl Revert the changes made above. From this point on, the target
dnl compiler will never be used without applying the SDK to CFLAGS
dnl (see --with-macos-sdk below).
CFLAGS=$_SAVE_CFLAGS
CXXFLAGS=$_SAVE_CXXFLAGS
;;
esac
AC_CHECK_PROGS(RANLIB, $RANLIB "${target_alias}-ranlib" "${target}-ranlib", echo)
AC_CHECK_PROGS(AR, $AR "${target_alias}-ar" "${target}-ar", echo)
AC_CHECK_PROGS(AS, $AS "${target_alias}-as" "${target}-as", echo)
AC_CHECK_PROGS(LD, $LD "${target_alias}-ld" "${target}-ld", echo)
AC_CHECK_PROGS(STRIP, $STRIP "${target_alias}-strip" "${target}-strip", echo)
AC_CHECK_PROGS(WINDRES, $WINDRES "${target_alias}-windres" "${target}-windres", echo)
fi
if test "$GCC" = "yes"; then
GNU_CC=1
fi
if test "$GXX" = "yes"; then
GNU_CXX=1
fi
if test "`echo | $AS -v 2>&1 | grep -c GNU`" != "0"; then
GNU_AS=1
fi
rm -f a.out
case "$build:$target" in
i?86-apple-darwin*:powerpc-apple-darwin*)
dnl cross_compiling will have erroneously been set to "no" in this
dnl case, because the x86 build host is able to run ppc code in a
dnl translated environment, making a cross compiler appear native.
cross_compiling=yes
;;
esac
if test "$cross_compiling" = "yes"; then
CROSS_COMPILE=1
else
CROSS_COMPILE=
fi
dnl ========================================================
dnl Check for gcc -pipe support
dnl ========================================================
AC_MSG_CHECKING([for gcc -pipe support])
if test -n "$GNU_CC" && test -n "$GNU_CXX" && test -n "$GNU_AS"; then
echo '#include <stdio.h>' > dummy-hello.c
echo 'int main() { printf("Hello World\n"); exit(0); }' >> dummy-hello.c
${CC} -S dummy-hello.c -o dummy-hello.s 2>&5
cat dummy-hello.s | ${AS} -o dummy-hello.S - 2>&5
if test $? = 0; then
_res_as_stdin="yes"
else
_res_as_stdin="no"
fi
if test "$_res_as_stdin" = "yes"; then
_SAVE_CFLAGS=$CFLAGS
CFLAGS="$CFLAGS -pipe"
AC_TRY_COMPILE( [ #include <stdio.h> ],
[printf("Hello World\n");],
[_res_gcc_pipe="yes"],
[_res_gcc_pipe="no"] )
CFLAGS=$_SAVE_CFLAGS
fi
if test "$_res_as_stdin" = "yes" && test "$_res_gcc_pipe" = "yes"; then
_res="yes";
CFLAGS="$CFLAGS -pipe"
CXXFLAGS="$CXXFLAGS -pipe"
else
_res="no"
fi
rm -f dummy-hello.c dummy-hello.s dummy-hello.S dummy-hello a.out
AC_MSG_RESULT([$_res])
else
AC_MSG_RESULT([no])
fi
fi # SKIP_COMPILER_CHECKS
dnl ========================================================
dnl Checks for programs.
dnl ========================================================
if test -z "$SKIP_PATH_CHECKS"; then
AC_PATH_PROGS(PERL, perl5 perl, echo not_perl)
elif test -z "$PERL"; then
PERL=perl
fi
dnl ========================================================
dnl Default platform specific options
dnl ========================================================
OBJ_SUFFIX=o
LIB_SUFFIX=a
LIB_PREFIX=lib
DLL_SUFFIX=so
ASM_SUFFIX=s
MKSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
AR_FLAGS='cr $@'
AS='$(CC)'
ASFLAGS='$(CFLAGS)'
if test -n "$CROSS_COMPILE"; then
OS_ARCH=`echo $target_os | sed -e 's|/|_|g'`
OS_RELEASE=
OS_TEST="${target_cpu}"
case "${target_os}" in
linux*) OS_ARCH=Linux ;;
solaris*) OS_ARCH=SunOS OS_RELEASE=5 ;;
mingw*) OS_ARCH=WINNT ;;
darwin*) OS_ARCH=Darwin ;;
esac
else
OS_ARCH=`uname -s | sed -e 's|/|_|g'`
OS_RELEASE=`uname -r`
OS_TEST=`uname -m`
fi
if test "$OS_ARCH" = "IRIX64"; then
OS_ARCH=IRIX
fi
if test "$OS_ARCH" = "Linux"; then
OS_RELEASE=`echo $OS_RELEASE | sed 's/-.*//'`
OS_RELEASE=`echo $OS_RELEASE | awk -F. '{ print $1 "." $2 }'`
fi
#######################################################################
# Master "Core Components" macros for getting the OS target #
#######################################################################
#
# Note: OS_TARGET should be specified on the command line for gmake.
# When OS_TARGET=WIN95 is specified, then a Windows 95 target is built.
# The difference between the Win95 target and the WinNT target is that
# the WinNT target uses Windows NT specific features not available
# in Windows 95. The Win95 target will run on Windows NT, but (supposedly)
# at lesser performance (the Win95 target uses threads; the WinNT target
# uses fibers).
#
# When OS_TARGET=WIN16 is specified, then a Windows 3.11 (16bit) target
# is built. See: win16_3.11.mk for lots more about the Win16 target.
#
# If OS_TARGET is not specified, it defaults to $(OS_ARCH), i.e., no
# cross-compilation.
#
#
# The following hack allows one to build on a WIN95 machine (as if
# s/he were cross-compiling on a WINNT host for a WIN95 target).
# It also accomodates for MKS's uname.exe. If you never intend
# to do development on a WIN95 machine, you don't need this hack.
#
case "$OS_ARCH" in
WIN95)
OS_ARCH=WINNT
OS_TARGET=WIN95
;;
Windows_95)
OS_ARCH=Windows_NT
OS_TARGET=WIN95
;;
Windows_98)
OS_ARCH=Windows_NT
OS_TARGET=WIN95
;;
CYGWIN_9*|CYGWIN_ME*)
OS_ARCH='CYGWIN_NT-4.0'
OS_TARGET=WIN95
;;
OS_2)
OS_ARCH=OS2
OS_TARGET=OS2
;;
WINCE)
OS_ARCH=WINCE
OS_TARGET=WINCE
;;
esac
#
# On WIN32, we also define the variable CPU_ARCH.
#
case "$OS_ARCH" in
WINNT)
CPU_ARCH=`uname -p`
if test "$CPU_ARCH" = "I386"; then
CPU_ARCH=x86
fi
;;
Windows_NT)
#
# If uname -s returns "Windows_NT", we assume that we are using
# the uname.exe in MKS toolkit.
#
# The -r option of MKS uname only returns the major version number.
# So we need to use its -v option to get the minor version number.
# Moreover, it doesn't have the -p option, so we need to use uname -m.
#
OS_ARCH=WINNT
OS_MINOR_RELEASE=`uname -v`
if test "$OS_MINOR_RELEASE" = "00"; then
OS_MINOR_RELEASE=0
fi
OS_RELEASE="${OS_RELEASE}.${OS_MINOR_RELEASE}"
CPU_ARCH=`uname -m`
#
# MKS's uname -m returns "586" on a Pentium machine.
#
if echo "$CPU_ARCH" | grep -c 86 >/dev/null; then
CPU_ARCH=x86
fi
;;
CYGWIN32_NT|CYGWIN_NT*|MINGW*_NT*)
#
# If uname -s returns "CYGWIN_NT-4.0", we assume that we are using
# the uname.exe in the Cygwin tools.
# Prior to the Beta 20 release, Cygwin was called GNU-Win32.
# If uname -s returns "CYGWIN32/NT", we assume that we are using
# the uname.exe in the GNU-Win32 tools.
# If uname -s returns MINGW32_NT-5.1, we assume that we are using
# the uname.exe in the MSYS tools.
#
OS_RELEASE=`expr $OS_ARCH : '.*NT-\(.*\)'`
OS_ARCH=WINNT
CPU_ARCH=`uname -m`
#
# Cygwin's uname -m returns "i686" on a Pentium Pro machine.
#
if echo "$CPU_ARCH" | grep -c 86 >/dev/null; then
CPU_ARCH=x86
fi
;;
esac
if test -n "$MOZILLA_CLIENT" && test "$OS_ARCH" = "WINNT"; then
OS_TARGET=WIN95
if test -n "$MOZ_DEBUG"; then
USE_DEBUG_RTL=1
fi
fi
if test -z "$OS_TARGET"; then
OS_TARGET=$OS_ARCH
fi
if test "$OS_TARGET" = "WIN95"; then
OS_RELEASE="4.0"
fi
if test "$OS_TARGET" = "WIN16"; then
OS_RELEASE=
fi
dnl ========================================================
dnl = Mac OS X SDK support
dnl ========================================================
AC_ARG_WITH(macos-sdk,
[ --with-macos-sdk=dir Location of platform SDK to use (Mac OS X only)],
MACOS_SDK_DIR=$withval)
dnl ========================================================
dnl ========================================================
dnl Override of system specific host options
dnl ========================================================
case "$host" in
*-mingw*)
NSINSTALL=nsinstall
WIN_TOP_SRC=`cd $srcdir && pwd -W`
;;
*-cygwin*|*-msvc*|*-mks*)
CYGWIN_WRAPPER='sh $(topsrcdir)/config/cygwin-wrapper'
NSINSTALL='$(CYGWIN_WRAPPER) nsinstall'
if test "`${PERL} -v | grep -c cygwin 2>/dev/null`" = 0; then
PERL='$(CYGWIN_WRAPPER) perl'
fi
WIN_TOP_SRC=`cygpath -w $srcdir | sed -e 's|\\\\|/|g'`
;;
*-beos*)
HOST_CFLAGS="$HOST_CFLAGS -DXP_BEOS -DBeOS -DBEOS -D_POSIX_SOURCE"
;;
*os2*)
;;
*)
HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
;;
esac
dnl ========================================================
dnl Check for --with-rpath and user supplied rpath
dnl ========================================================
DEFAULT_RPATHFLAG=..:../lib:../../lib:../../../lib:../../../../lib
AC_ARG_WITH(rpath,
[ --with-rpath[[=dir]] Build the shared libs and cmd lines progs with an RPATH (default dir is ..:../lib:../../lib:../../../lib:../../../../lib)],
[
if test "$withval" = "yes" ; then # set default
RPATHFLAG="$DEFAULT_RPATHFLAG"
elif test -n "$withval" ; then # user supplied
RPATHFLAG="$withval"
fi
])
dnl ========================================================
dnl Override of system specific target options
dnl ========================================================
case "$target" in
*-aix*)
AC_DEFINE(XP_UNIX)
AC_DEFINE(AIX)
AC_DEFINE(SYSV)
DSO_LDOPTS='-brtl -bM:SRE -bnoentry -bexpall -blibpath:/usr/lib:/lib'
AC_CHECK_HEADER(sys/atomic_op.h, AC_DEFINE(AIX_HAVE_ATOMIC_OP_H))
case "${target_os}" in
aix3.2*)
AC_DEFINE(AIX_RENAME_SELECT)
AC_DEFINE(_PR_NO_LARGE_FILES)
;;
aix4.1*)
AC_DEFINE(AIX_TIMERS)
AC_DEFINE(_PR_NO_LARGE_FILES)
AC_DEFINE(AIX4_1)
MKSHLIB=
DSO_LDOPTS=
;;
aix4.2*)
AC_DEFINE(AIX_TIMERS)
AC_DEFINE(_PR_HAVE_OFF64_T)
;;
aix4.3*)
AC_DEFINE(AIX_TIMERS)
AC_DEFINE(_PR_HAVE_OFF64_T)
AC_DEFINE(AIX4_3)
AC_DEFINE(HAVE_SOCKLEN_T)
AC_DEFINE(HAVE_FCNTL_FILE_LOCKING)
USE_IPV6=1
;;
*)
AC_DEFINE(AIX_TIMERS)
AC_DEFINE(_PR_HAVE_OFF64_T)
AC_DEFINE(HAVE_SOCKLEN_T)
AC_DEFINE(HAVE_FCNTL_FILE_LOCKING)
USE_IPV6=1
;;
esac
CFLAGS="$CFLAGS -qro -qroconst"
if echo "$CC" | grep -c xlC_r; then
CFLAGS="$CFLAGS -qarch=com"
fi
AIX_WRAP='$(DIST)/lib/aixwrap.o'
AIX_TMP='./_aix_tmp.o'
if test -n "$USE_64"; then
OBJECT_MODE=64
fi
RESOLVE_LINK_SYMBOLS=1
;;
*-beos*)
AC_DEFINE(XP_BEOS)
AC_DEFINE(BeOS)
AC_DEFINE(BEOS)
AC_DEFINE(_POSIX_SOURCE)
DSO_LDOPTS=-nostart
USE_BTHREADS=1
RESOLVE_LINK_SYMBOLS=1
case "${target_cpu}" in
i*86)
_OPTIMIZE_FLAGS=-O2
_DEBUG_FLAGS='-gdwarf-2 -O0'
MKSHLIB='$(CCC) $(DSO_LDOPTS) -o $@'
AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"])
;;
powerpc)
CC=mwcc
CCC=mwcc
LD=mwld
DSO_LDOPTS='-xms -export pragma -init _init_routine_ -term _term_routine_ -lroot -lnet /boot/develop/lib/ppc/glue-noinit.a /boot/develop/lib/ppc/init_term_dyn.o /boot/develop/lib/ppc/start_dyn.o'
_OPTIMIZE_FLAGS=-O2
_DEBUG_FLAGS='-g -O0'
;;
esac
;;
*-bsdi*)
AC_DEFINE(XP_UNIX)
AC_DEFINE(BSDI)
AC_DEFINE(NEED_BSDREGEX)
CFLAGS="$CFLAGS -Wall -Wno-format"
CXXFLAGS="$CXXFLAGS -Wall -Wno-format"
if echo "$OS_TEST" | grep -c 86 >/dev/null; then
CPU_ARCH=x86
elif echo "$OS_TEST" | grep -c sparc >/dev/null; then
CPU_ARCH=sparc
fi
DSO_LDOPTS=-r
case "$target_os" in
bsdi1.1*)
AC_DEFINE(_PR_BSDI_JMPBUF_IS_ARRAY)
AC_DEFINE(_PR_STAT_HAS_ONLY_ST_ATIME)
AC_DEFINE(_PR_NEED_H_ERRNO)
MKSHLIB=
DSO_CFLAGS=
DSO_LDOPTS=
;;
bsdi2.1*)
AC_DEFINE(_PR_TIMESPEC_HAS_TS_SEC)
AC_DEFINE(_PR_BSDI_JMPBUF_IS_ARRAY)
AC_DEFINE(HAVE_DLL)
AC_DEFINE(USE_DLFCN)
AC_DEFINE(_PR_STAT_HAS_ST_ATIMESPEC)
;;
bsdi4.*)
AC_DEFINE(_PR_SELECT_CONST_TIMEVAL)
AC_DEFINE(_PR_BSDI_JMPBUF_IS_STRUCT)
AC_DEFINE(HAVE_DLL)
AC_DEFINE(USE_DLFCN)
AC_DEFINE(_PR_STAT_HAS_ST_ATIMESPEC)
MKSHLIB='$(CC) -o $@ $(DSO_LDOPTS)'
DSO_CFLAGS=-fPIC
DSO_LDOPTS='-shared -soname $(@:$(OBJDIR)/%.so=%.so)'
STRIP="$STRIP -d"
case "$target_os" in
bsdi4.2*)
AC_DEFINE(_PR_HAVE_GETPROTO_R)
AC_DEFINE(_PR_HAVE_GETPROTO_R_POINTER)
;;
esac
;;
*)
AC_DEFINE(_PR_SELECT_CONST_TIMEVAL)
AC_DEFINE(_PR_BSDI_JMPBUF_IS_STRUCT)
AC_DEFINE(HAVE_DLL)
AC_DEFINE(USE_DLFCN)
AC_DEFINE(_PR_STAT_HAS_ST_ATIMESPEC)
;;
esac
;;
*-darwin*)
AC_DEFINE(XP_UNIX)
AC_DEFINE(DARWIN)
AC_DEFINE(HAVE_BSD_FLOCK)
CFLAGS="$CFLAGS -Wmost -fno-common"
case "${target_cpu}" in
i*86*)
AC_DEFINE(i386)
CPU_ARCH=i386
;;
*)
AC_DEFINE(ppc)
CPU_ARCH=ppc
;;
esac
DSO_LDOPTS='-dynamiclib -compatibility_version 1 -current_version 1 -all_load -install_name @executable_path/$@'
# Use the standard preprocessor (cpp)
CFLAGS="$CFLAGS -no-cpp-precomp"
MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
STRIP="$STRIP -x -S"
DLL_SUFFIX=dylib
USE_PTHREADS=1
dnl MACOS_SDK_DIR will be set to the SDK location whenever one is
dnl in use. NEXT_ROOT will be set and exported if it's needed for
dnl ld.
if test "$MACOS_SDK_DIR"; then
dnl Sync this section with the one in Mozilla's top level.
if test ! -d "$MACOS_SDK_DIR"; then
AC_MSG_ERROR([SDK not found. When using --with-macos-sdk, you must
specify a valid SDK. SDKs are installed when the optional cross-development
tools are selected during the Xcode/Developer Tools installation.])
fi
changequote(,)
CC_VERSION=`$CC -v 2>&1 | grep 'gcc version'`
GCC_VERSION_FULL=`echo $CC_VERSION | $PERL -pe 's/^.*gcc version ([^ ]*).*/$1/'`
GCC_VERSION=`echo $GCC_VERSION_FULL | $PERL -pe '(split(/\./))[0]>=4&&s/(^\d*\.\d*).*/$1/;'`
changequote([,])
GCC_VERSION_MAJOR=`echo $GCC_VERSION_FULL | $PERL -pe 's/(^\d*).*/$1/;'`
if test "$GCC_VERSION_MAJOR" -lt "4" ; then
SDK_C_FRAMEWORK="-F${MACOS_SDK_DIR}/System/Library/Frameworks"
if test -d "${MACOS_SDK_DIR}/Library/Frameworks" ; then
SDK_C_FRAMEWORK="$SDK_C_FRAMEWORK -F${MACOS_SDK_DIR}/Library/Frameworks"
fi
SDK_C_INCLUDE="-isystem ${MACOS_SDK_DIR}/usr/include/gcc/darwin/${GCC_VERSION} -isystem ${MACOS_SDK_DIR}/usr/include ${SDK_C_FRAMEWORK}"
CFLAGS="$CFLAGS -nostdinc ${SDK_C_INCLUDE}"
dnl CPP needs to be set for AC_CHECK_HEADER.
CPP="$CPP -nostdinc ${SDK_C_INCLUDE}"
dnl ld support for -syslibroot is compiler-agnostic, but only
dnl available on Tiger. Although it's possible to switch on
dnl the build host's OS release to use ld -syslibroot when
dnl available, ld -syslibroot cause warnings as long as
dnl NEXT_ROOT is set. NEXT_ROOT should be set because both
dnl both the compiler and linker use it.
dnl
dnl LDFLAGS is for the utilities built in config (now and
dnl nsinstall). DSO_LDOPTS is used when linking shared
dnl libraries.
MACOS_SDK_LIBS="-L${MACOS_SDK_DIR}/usr/lib/gcc/darwin -L${MACOS_SDK_DIR}/usr/lib/gcc/darwin/${GCC_VERSION_FULL} -L${MACOS_SDK_DIR}/usr/lib ${SDK_C_FRAMEWORK}"
LDFLAGS="${MACOS_SDK_LIBS} $LDFLAGS"
DSO_LDOPTS="${MACOS_SDK_LIBS} $DSO_LDOPTS"
export NEXT_ROOT=$MACOS_SDK_DIR
if test -n "$CROSS_COMPILE" ; then
dnl NEXT_ROOT will be in the environment, but it
dnl shouldn't be set for the build host. HOST_CXX is
dnl presently unused.
HOST_CC="NEXT_ROOT= $HOST_CC"
HOST_CXX="NEXT_ROOT= $HOST_CXX"
fi
else
dnl gcc >= 4.0 uses different paths than above, but knows
dnl how to find them itself.
CFLAGS="$CFLAGS -isysroot ${MACOS_SDK_DIR}"
dnl CPP needs to be set for AC_CHECK_HEADER.
CPP="$CPP -isysroot ${MACOS_SDK_DIR}"
dnl If gcc >= 4.0.0, we're guaranteed to be on Tiger, which
dnl has an ld that supports -syslibroot. Don't set
dnl NEXT_ROOT because it will be ignored and cause
dnl warnings when -syslibroot is specified.
dnl
dnl Both LDFLAGS and DSO_LDOPTS are set here, see the
dnl gcc < 4.0 case for the explanation.
if test "$GCC_VERSION_FULL" != "4.0.0" ; then
dnl gcc > 4.0.0 will pass -syslibroot to ld automatically
dnl based on the -isysroot it receives.
LDFLAGS="$LDFLAGS -isysroot ${MACOS_SDK_DIR}"
DSO_LDOPTS="$DSO_LDOPTS -isysroot ${MACOS_SDK_DIR}"
else
dnl gcc 4.0.0 doesn't pass -syslibroot to ld, it needs
dnl to be explicit.
LDFLAGS="$LDFLAGS -Wl,-syslibroot,${MACOS_SDK_DIR}"
DSO_LDOPTS="$DSO_LDOPTS -Wl,-syslibroot,${MACOS_SDK_DIR}"
fi
fi
fi
;;
*-dgux*)
AC_DEFINE(XP_UNIX)
AC_DEFINE(_PR_LOCAL_THREADS_ONLY)
AC_DEFINE(SVR4)
AC_DEFINE(SYSV)
AC_DEFINE(DGUX)
AC_DEFINE(_DGUX_SOURCE)
AC_DEFINE(_POSIX4A_DRAFT6_SOURCE)
DSO_LDOPTS=-G
_OPTIMIZE_FLAGS=-O2
_DEBUG_FLAGS=
;;
*-freebsd*)
if test -z "$USE_NSPR_THREADS"; then
USE_PTHREADS=1
fi
AC_DEFINE(XP_UNIX)
AC_DEFINE(FREEBSD)
AC_DEFINE(HAVE_BSD_FLOCK)
CFLAGS="$CFLAGS $(DSO_CFLAGS) -ansi -Wall"
MOZ_OBJFORMAT=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
if test "$MOZ_OBJFORMAT" = "elf"; then
DLL_SUFFIX=so
else
DLL_SUFFIX=so.1.0
fi
DSO_CFLAGS=-fPIC
DSO_LDOPTS=-Bshareable
;;
*-hpux*)
AC_DEFINE(XP_UNIX)
AC_DEFINE(HPUX)
AC_DEFINE(_HPUX_SOURCE)
if test "$OS_TEST" = "ia64" ; then
AC_DEFINE(ia64)
DLL_SUFFIX=so
else
AC_DEFINE(hppa)
DLL_SUFFIX=sl
fi
DSO_LDOPTS='-b +h $(notdir $@)'
if test -z "$GNU_CC"; then
CC="$CC -Ae"
CXX="$CXX -ext"
if test "$OS_RELEASE" = "B.11.23"; then
CFLAGS="$CFLAGS +Olit=all"
CXXFLAGS="$CXXFLAGS +Olit=all"
else
CFLAGS="$CFLAGS +ESlit"
CXXFLAGS="$CXXFLAGS +ESlit"
fi
DSO_CFLAGS=+Z
else
DSO_CFLAGS=-fPIC
fi
if test -n "$MOZILLA_CLIENT"; then
DEFAULT_IMPL_STRATEGY=_EMU
fi
if echo "$OS_RELEASE" | grep ^A.09 >/dev/null; then
AC_DEFINE(_PR_NEED_H_ERRNO)
AC_DEFINE(HPUX9)
DEFAULT_IMPL_STRATEGY=_EMU
USE_NSPR_THREADS=1
fi
if echo "$OS_RELEASE" | egrep '^(A.09|B.10)' >/dev/null; then
AC_DEFINE(_PR_NO_LARGE_FILES)
fi
if echo "$OS_RELEASE" | egrep '^(B.10.10|B.10.20)' >/dev/null; then
AC_DEFINE(_PR_NEED_H_ERRNO)
fi
if echo "$OS_RELEASE" | egrep '^(B.10.10|B.10.20)' >/dev/null; then
AC_DEFINE(HAVE_INT_LOCALTIME_R)
fi
if echo "$OS_RELEASE" | egrep '^(B.10.30|B.11.00|B.11.11|B.11.23)' >/dev/null; then
AC_DEFINE(HAVE_POINTER_LOCALTIME_R)
fi
if test "$OS_RELEASE" = "B.10.01"; then
AC_DEFINE(HPUX10)
DEFAULT_IMPL_STRATEGY=_EMU
fi
if test "$OS_RELEASE" = "B.10.10"; then
AC_DEFINE(HPUX10)
AC_DEFINE(HPUX10_10)
DEFAULT_IMPL_STRATEGY=_PTH
fi
if test "$OS_RELEASE" = "B.10.20"; then
AC_DEFINE(HPUX10)
AC_DEFINE(HPUX10_20)
if test -z "$GNU_CC"; then
CFLAGS="$CFLAGS +DAportable +DS1.1"
CXXFLAGS="$CXXFLAGS +DAportable +DS1.1"
fi
DEFAULT_IMPL_STRATEGY=_PTH
fi
if test "$OS_RELEASE" = "B.10.30"; then
AC_DEFINE(HPUX10)
AC_DEFINE(HPUX10_30)
if test -z "$GNU_CC"; then
CFLAGS="$CFLAGS +DAportable +DS1.1"
CXXFLAGS="$CXXFLAGS +DAportable +DS1.1"
fi
DEFAULT_IMPL_STRATEGY=_PTH
fi
if echo "$OS_RELEASE" | egrep '^(B.11.00|B.11.11)' >/dev/null; then
AC_DEFINE(HPUX10)
AC_DEFINE(HPUX11)
AC_DEFINE(_LARGEFILE64_SOURCE)
AC_DEFINE(_PR_HAVE_OFF64_T)
AC_DEFINE(HAVE_FCNTL_FILE_LOCKING)
if test -z "$GNU_CC"; then
if test -z "$USE_64"; then
CFLAGS="$CFLAGS +DAportable +DS2.0"
CXXFLAGS="$CXXFLAGS +DAportable +DS2.0"
else
CFLAGS="$CFLAGS +DA2.0W +DS2.0"
CXXFLAGS="$CXXFLAGS +DA2.0W +DS2.0"
fi
fi
DEFAULT_IMPL_STRATEGY=_PTH
fi
if test "$OS_RELEASE" = "B.11.23"; then
AC_DEFINE(HPUX10)
AC_DEFINE(HPUX11)
AC_DEFINE(_LARGEFILE64_SOURCE)
AC_DEFINE(_PR_HAVE_OFF64_T)
AC_DEFINE(HAVE_FCNTL_FILE_LOCKING)
if test -z "$GNU_CC"; then
if test -z "$USE_64"; then
CFLAGS="$CFLAGS +DD32"
CXXFLAGS="$CXXFLAGS +DD32"
else
CFLAGS="$CFLAGS +DD64"
CXXFLAGS="$CXXFLAGS +DD64"
fi
fi
DEFAULT_IMPL_STRATEGY=_PTH
fi
if test "$DEFAULT_RPATHFLAG" = "$RPATHFLAG" ; then
if test "$OS_RELEASE" = "B.11.23" -o "$OS_RELEASE" = "B.11.11" ; then
# add ORIGIN to default rpath
RPATHFLAG="\\\$\$ORIGIN/../lib:\\\$\$ORIGIN/../../lib:$RPATHFLAG"
fi
fi
if test "$DEFAULT_IMPL_STRATEGY" = "_EMU"; then
USE_NSPR_THREADS=1
USE_PTHREADS=
USE_USER_THREADS=
elif test "$DEFAULT_IMPL_STRATEGY" = "_PTH"; then
USE_PTHREADS=1
if test "$USE_NSPR_THREADS"; then
USE_PTHREADS=
fi
if test "$USE_USER_PTHREADS"; then
USE_PTHREADS=
fi
fi
;;
*-irix*)
AC_DEFINE(XP_UNIX)
AC_DEFINE(IRIX)
AC_DEFINE(SVR4)
AC_DEFINE(_SGI_MP_SOURCE)
AC_DEFINE(HAVE_FCNTL_FILE_LOCKING)
DSO_LDOPTS='-rdata_shared -shared'
MKSHLIB='$(LD) $(DSO_LDOPTS) -soname $(notdir $@) -o $@'
STRIP="$STRIP -f"
RESOLVE_LINK_SYMBOLS=1
case "${target_os}" in
irix6*)
AC_DEFINE(IRIX6)
USE_PTHREADS=1
USE_N32=1
;;
irix5*)
AC_DEFINE(IRIX5)
USE_NSPR_THREADS=1
;;
*)
USE_PTHREADS=1
USE_N32=1
;;
esac
if test "$GNU_CC"; then
dnl
dnl If we are using gcc with native binutils, we need to
dnl suppress the
dnl #lineno "filename" num num
dnl lines, which confuse IRIX native as. Add -Wp,-P to the
dnl gcc command line, which passes -P to the preprocessor.
dnl
AS='$(CC) -Wp,-P -x assembler-with-cpp -D_ASM -mips2 $(INCLUDES)'
CFLAGS="$CFLAGS -Wall -Wno-format"
_OPTIMIZE_FLAGS="-O6"
else
if test -n "$USE_N32"; then
AS='as -D_ASM $(INCLUDES) -n32'
else
AS='as -D_ASM $(INCLUDES)'
fi
CFLAGS="$CFLAGS -fullwarn -xansi"
if test "$USE_N32"; then
_OPTIMIZE_FLAGS="-O -OPT:Olimit=4000"
else
_OPTIMIZE_FLAGS="-O -Olimit 4000"
fi
if test "$USE_MDUPDATE"; then
CFLAGS="$CFLAGS -MDupdate \$(DEPENDENCIES)"
fi
case "$target}" in
*-irix6.*)
CFLAGS="$CFLAGS -multigot"
DSO_LDOPTS="$DSO_LDOPTS -no_unresolved"
if test "$USE_N32"; then
CFLAGS="$CFLAGS -n32 -woff 1209"
DSO_LDOPTS="$DSO_LDOPTS -n32"
else
if test "$USE_64"; then
CFLAGS="$CFLAGS -64"
else
CFLAGS="$CFLAGS -32"
fi
fi
;;
*)
CFLAGS="$CFLAGS -xgot"
;;
esac
fi
if test "${target_os}" = "irix5.3"; then
AC_DEFINE(IRIX5_3)
fi
case "${target_os}" in
irix6.5)
if test -z "$GNU_CC"; then
CFLAGS="$CFLAGS -mips3"
fi
AC_DEFINE(_PR_HAVE_GETPROTO_R)
AC_DEFINE(_PR_HAVE_GETPROTO_R_POINTER)
AC_DEFINE(_PR_HAVE_SGI_PRDA_PROCMASK)
;;
irix5*)
;;
*)
AC_DEFINE(_PR_HAVE_SGI_PRDA_PROCMASK)
;;
esac
;;
*-linux*)
if test -z "$USE_NSPR_THREADS"; then
USE_PTHREADS=1
fi
AC_DEFINE(XP_UNIX)
AC_DEFINE(_POSIX_SOURCE)
AC_DEFINE(_BSD_SOURCE)
AC_DEFINE(_SVID_SOURCE)
AC_DEFINE(_LARGEFILE64_SOURCE)
AC_DEFINE(HAVE_FCNTL_FILE_LOCKING)
AC_DEFINE(LINUX)
AC_DEFINE(linux)
LD='$(CC)'
CFLAGS="$CFLAGS -ansi -Wall"
CXXFLAGS="$CXXFLAGS -ansi -Wall"
MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
DSO_CFLAGS=-fPIC
DSO_LDOPTS='-shared -Wl,-soname -Wl,$(notdir $@)'
OS_LIBS="$OS_LIBS -lc"
_OPTIMIZE_FLAGS=-O2
_DEBUG_FLAGS="-g -fno-inline" # most people on linux use gcc/gdb, and that
# combo is not yet good at debugging inlined
# functions (even when using DWARF2 as the
# debugging format)
if echo "$OS_TEST" | grep -c 86 >/dev/null; then
CPU_ARCH=x86
else
CPU_ARCH=$OS_TEST
fi
case "${target_cpu}" in
alpha)
AC_DEFINE(_ALPHA_)
AC_DEFINE(__alpha)
CFLAGS="$CFLAGS -mieee"
CXXFLAGS="$CXXFLAGS -mieee"
;;
i*86)
AC_DEFINE(i386)
;;
ia64)
;;
m68k)
CFLAGS="$CFLAGS -m68020-40"
CXXFLAGS="$CXXFLAGS -m68020-40"
#
# gcc on Linux/m68k either has a bug or triggers a code-sequence
# bug in the 68060 which causes gcc to crash. The simplest way to
# avoid this is to enable a minimum level of optimization.
#
_DEBUG_FLAGS="$_DEBUG_FLAGS -O"
;;
esac
;;
*-mingw*|*-cygwin*|*-msvc*|*-mks*)
AC_DEFINE(XP_PC)
AC_DEFINE(WIN32)
AC_DEFINE(_WINDOWS)
RESOLVE_LINK_SYMBOLS=1
PROG_SUFFIX=.exe
if test -n "$GNU_CC"; then
CC="$CC -mno-cygwin"
CXX="$CXX -mno-cygwin"
DLL_SUFFIX=dll
MKSHLIB='$(CC) -shared -Wl,--export-all-symbols -Wl,--out-implib -Wl,$(IMPORT_LIBRARY) -o $@'
# Use temp file for windres (bug 213281)
RC="$WINDRES -O coff --use-temp-file"
else
CYGWIN_WRAPPER='sh $(topsrcdir)/config/cygwin-wrapper'
CC=cl
CXX=cl
LD=link
# if the lib program is available, use it, otherwise use link /lib
AC_CHECK_PROG(HAVE_MSVC_LIB, lib, 1)
if test "$HAVE_MSVC_LIB" = "1" ; then
AR='lib -NOLOGO -OUT:"$@"'
else
AR='$(LD) /lib -NOLOGO -OUT:"$@"'
fi
AR_FLAGS=
RANLIB='echo not_ranlib'
STRIP='echo not_strip'
RC='$(CYGWIN_WRAPPER) rc.exe'
GARBAGE='$(OBJDIR)/vc20.pdb $(OBJDIR)/vc40.pdb'
OBJ_SUFFIX=obj
LIB_SUFFIX=lib
LIB_PREFIX=
DLL_SUFFIX=dll
CFLAGS="$CFLAGS -W3 -nologo -GF -Gy"
DLLFLAGS='-OUT:"$@"'
_DEBUG_FLAGS=-Z7
_OPTIMIZE_FLAGS=-O2
if test -z "$MOZ_OPTIMIZE"; then
CFLAGS="$CFLAGS -Od"
fi
if test -n "$USE_DEBUG_RTL"; then
CFLAGS="$CFLAGS -MDd"
else
CFLAGS="$CFLAGS -MD"
fi
if test -n "$MOZ_DEBUG"; then
AC_DEFINE(_DEBUG)
else
DEFINES="$DEFINES -U_DEBUG"
fi
if test -n "$MOZ_OPTIMIZE"; then
if test -n "$MOZ_PROFILE"; then
_OPTIMIZE_FLAGS="$_OPTIMIZE_FLAGS -Z7"
fi
if test -n "$MOZ_DEBUG_SYMBOLS"; then
_OPTIMIZE_FLAGS="$_OPTIMIZE_FLAGS -Zi"
fi
if test -n "$MOZ_PROFILE" -o -n "$MOZ_DEBUG_SYMBOLS"; then
DLLFLAGS="$DLLFLAGS -DEBUG -OPT:REF"
LDFLAGS="$LDFLAGS -DEBUG -OPT:REF"
fi
fi
if test -n "$MOZ_DEBUG"; then
DLLFLAGS="$DLLFLAGS -DEBUG"
LDFLAGS="$LDFLAGS -DEBUG"
fi
if test "$OS_TARGET" = "WINNT"; then
CFLAGS="$CFLAGS -GT"
if test "$CPU_ARCH" = "x86"; then
CFLAGS="$CFLAGS -G5"
fi
fi
fi # GNU_CC
if test -n "$USE_STATIC_TLS"; then
AC_DEFINE(_PR_USE_STATIC_TLS)
fi
if test "$OS_TARGET" = "WINNT"; then
AC_DEFINE(WINNT)
else
AC_DEFINE(WIN95)
# undefine WINNT as some versions of mingw gcc define it by default
DEFINES="$DEFINES -UWINNT"
AC_DEFINE(_PR_GLOBAL_THREADS_ONLY)
fi
OS_DLLFLAGS='-nologo -DLL -SUBSYSTEM:WINDOWS -PDB:NONE'
case "$OS_TARGET" in
WINNT)
;;
WIN95)
;;
WIN16)
;;
*)
AC_MSG_ERROR([Missing OS_TARGET for ${target}. Use --enable-win32-target to set.])
;;
esac
case "$target_cpu" in
i*86)
AC_DEFINE(_X86_)
;;
alpha)
AC_DEFINE(_ALPHA_)
;;
mips)
AC_DEFINE(_MIPS_)
;;
*)
AC_DEFINE(_CPU_ARCH_NOT_DEFINED)
;;
esac
;;
*-ncr-sysv*)
AC_DEFINE(XP_UNIX)
AC_DEFINE(SVR4)
AC_DEFINE(SYSV)
AC_DEFINE(NCR)
USE_NSPR_THREADS=1
if test "$OS_RELEASE" = "2.03"; then
AC_DEFINE(_PR_STAT_HAS_ST_ATIM)
else
AC_DEFINE(_PR_STAT_HAS_ST_ATIM_UNION)
fi
if test -z "$GNU_CC"; then
CFLAGS="$CFLAGS -Hnocopyr"
CXXFLAGS="$CXXFLAGS -Hnocopyr"
else
CFLAGS="$CFLAGS -fPIC -Wall"
CXXFLAGS="$CXXFLAGS -fPIC -Wall"
DSO_LDOPTS=-G
fi
;;
mips-nec-sysv*)
AC_DEFINE(XP_UNIX)
AC_DEFINE(SVR4)
AC_DEFINE(__SVR4)
AC_DEFINE(NEC)
AC_DEFINE(nec_ews)
USE_NSPR_THREADS=1
if test -z "$GNU_CC"; then
CC='$(NSDEPTH)/build/hcc cc -Xa -KGnum=0 -KOlimit=4000'
CXX=g++
fi
OS_LIBS="$OS_LIBS -lsocket -lnsl -ldl"
DSO_LDOPTS=-G
;;
*-netbsd*)
AC_DEFINE(XP_UNIX)
AC_DEFINE(NETBSD)
AC_DEFINE(HAVE_BSD_FLOCK)
USE_NSPR_THREADS=1
DSO_CFLAGS='-fPIC -DPIC'
CFLAGS="$CFLAGS -ansi -Wall"
CXXFLAGS="$CXXFLAGS -ansi -Wall"
MKSHLIB='$(CC) -o $@ $(DSO_LDOPTS)'
if test -z "$OBJECT_FMT"; then
if echo __ELF__ | ${CC-cc} -E - | grep -q __ELF__ 2>/dev/null; then
OBJECT_FMT=a.out
DLL_SUFFIX=so.1.0
DSO_LDOPTS='-shared'
else
OBJECT_FMT=ELF
DLL_SUFFIX=so
DSO_LDOPTS='-shared -Wl,-soname,$(notdir $@)'
fi
fi
if test "$LIBRUNPATH"; then
DSO_LDOPTS="$DSO_LDOPTS -Wl,-R$LIBRUNPATH"
fi
;;
mips-sony-newsos*)
AC_DEFINE(XP_UNIX)
AC_DEFINE(SONY)
AC_DEFINE(SYSV)
AC_DEFINE(SVR4)
AC_DEFINE(__svr4)
AC_DEFINE(__svr4__)
AC_DEFINE(HAVE_SVID_GETTOD)
USE_NSPR_THREADS=1
CFLAGS="$CFLAGS -Xa -fullwarn"
CXXFLAGS="$CXXFLAGS -Xa -fullwarn"
DSO_LDOPTS=-G
;;
*-nextstep*|*-openstep*)
AC_DEFINE(XP_UNIX)
AC_DEFINE(NEXTSTEP)
AC_DEFINE(HAVE_BSD_FLOCK)
AC_DEFINE(_POSIX_SOURCE)
CFLAGS="$CFLAGS -Wall -fno-common -traditional-cpp -posix"
CXXFLAGS="$CXXFLAGS -Wall -fno-common -traditional-cpp -posix"
USE_NSPR_THREADS=1
DLL_SUFFIX=dylib
;;
*-nto*)
AC_DEFINE(XP_UNIX)
AC_DEFINE(NTO)
AC_DEFINE(_QNX_SOURCE)
AC_DEFINE(HAVE_POINTER_LOCALTIME_R)
MKSHLIB='$(CC) $(DSO_LDOPTS) -Wl,-soname -Wl,$(notdir $@) -o $@'
DSO_CFLAGS=-fPIC
DSO_LDOPTS=-shared
OS_LIBS="$OS_LIBS -lsocket"
_OPTIMIZE_FLAGS="-O1"
_DEBUG_FLAGS="-gstabs"
;;
*-openbsd*)
AC_DEFINE(XP_UNIX)
AC_DEFINE(OPENBSD)
AC_DEFINE(HAVE_BSD_FLOCK)
CFLAGS="$CFLAGS -ansi -Wall"
CXXFLAGS="$CXXFLAGS -ansi -Wall"
DLL_SUFFIX=so.1.0
DSO_CFLAGS=-fPIC
USE_NSPR_THREADS=1
case "$OS_TEST" in
alpha|mips|pmax)
DSO_LDOPTS=-shared ;;
*)
DSO_LDOPTS=-Bshareable ;;
esac
;;
*-openvms*)
AC_DEFINE(XP_UNIX)
RESOLVE_LINK_SYMBOLS=1
AR_FLAGS='c $@'
DSO_LDOPTS='-shared -auto_symvec $(LDFLAGS) $(OPTIMIZER)'
;;
*-os2*)
AC_DEFINE(XP_OS2)
AC_DEFINE(XP_PC)
AC_DEFINE(BSD_SELECT)
AC_DEFINE(_PR_GLOBAL_THREADS_ONLY)
RESOLVE_LINK_SYMBOLS=1
NSINSTALL=nsinstall
LIB_PREFIX=
LIB_SUFFIX=lib
DLL_SUFFIX=dll
DLLTOOL=''
RC=rc.exe
PROG_SUFFIX=.exe
# EMX/GCC build
if test -n "$GNU_CC"; then
# AC_DEFINE(USE_OS2_TOOLKIT_HEADERS)
AC_DEFINE(XP_OS2_EMX)
AC_DEFINE(OS2)
AC_DEFINE(TCPV40HDRS)
AR=emxomfar
AR_FLAGS='r $@'
LD='$(CC)'
CFLAGS="$CFLAGS -Wall -Zomf"
CXXFLAGS="$CFLAGS -Wall -Zomf"
MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
DSO_CFLAGS=
DSO_LDOPTS='-Zomf -Zdll'
_OPTIMIZE_FLAGS=-O3
_DEBUG_FLAGS="-g -fno-inline"
if test -n "$MOZ_OPTIMIZE"; then
DSO_LDOPTS="$DSO_LDOPTS -Zlinker /EXEPACK:2 -Zlinker /PACKCODE -Zlinker /PACKDATA"
fi
OS_LIBS="-lsocket"
IMPLIB='emximp -o'
FILTER='emxexp -o'
# GCC for OS/2 currently predefines these, but we don't want them
DEFINES="$DEFINES -Uunix -U__unix -U__unix__"
# Visual Age C++ build
elif test "$VACPP" = "yes"; then
MOZ_BUILD_ROOT=`pwd -D`
AC_DEFINE(XP_OS2_VACPP)
AC_DEFINE(OS2,4)
AC_DEFINE(TCPV40HDRS)
AC_DEFINE(_X86_)
OBJ_SUFFIX=obj
AS=alp
ASFLAGS='-Mb'
ASM_SUFFIX=asm
AR=ilib
AR_FLAGS='/NOL /NOI /O:$(subst /,\\,$@)'
CFLAGS='/Q /qlibansi /Gd+ /Gm+ /Su4 /Mp /Tl9'
HOST_CFLAGS="$CFLAGS"
OS_CFLAGS='/Q /qlibansi /Gd+ /Gm+ /Su4 /Mp /Tl9'
OS_EXE_CFLAGS='/Q /qlibansi /Gd+ /Gm+ /Su4 /Mp /Tl9'
CXXFLAGS='/Q /qlibansi /Gd+ /Gm+ /Su4 /Mp /Tl9'
OS_LIBS='so32dll.lib tcp32dll.lib'
LD='-ilink'
MKSHLIB='$(LD) $(DSO_LDOPTS)'
IMPLIB='implib -nologo -noignorecase'
FILTER='cppfilt -q -B -P'
_OPTIMIZE_FLAGS='/O+ /Gl+ /Gx+ /qtune=pentium /qarch=pentium'
_DEBUG_FLAGS='/Ti+ '
LDFLAGS='/NOL /M /L'
DLLFLAGS='/O:$@ /DLL /INC:_dllentry /MAP:$(@:.dll=.map) /L /NOL'
EXEFLAGS='/OUT:$@ /PMTYPE:VIO /MAP:$(@:.exe=.map) /L /NOL'
if test -n "$MOZ_DEBUG"; then
LDFLAGS="$LDFLAGS /DE"
DLLFLAGS="$DLLFLAGS /DE"
EXEFLAGS="$EXEFLAGS /DE"
fi
if test -n "$MOZ_OPTIMIZE"; then
LDFLAGS="$LDFLAGS /OPTFUNC /EXEPACK:2 /PACKCODE /PACKDATA"
DLLFLAGS="$DLLFLAGS /OPTFUNC /EXEPACK:2 /PACKCODE /PACKDATA"
EXEFLAGS="$EXEFLAGS /OPTFUNC /EXEPACK:2 /PACKCODE /PACKDATA"
fi
fi
;;
*-osf*)
SHELL_OVERRIDE="SHELL = /usr/bin/ksh"
AC_DEFINE(XP_UNIX)
AC_DEFINE(OSF1)
AC_DEFINE(_REENTRANT)
AC_CHECK_HEADER(machine/builtins.h, AC_DEFINE(OSF1_HAVE_MACHINE_BUILTINS_H))
if echo "$OS_RELEASE" | egrep -c '(V2.0|V3.2)' 2>/dev/null ; then
USE_NSPR_THREADS=1
fi
if test -z "$GNU_CC"; then
CC="$CC -std1 -ieee_with_inexact"
if test "$OS_RELEASE" != "V2.0"; then
CC="$CC -readonly_strings"
fi
_OPTIMIZE_FLAGS="$_OPTIMIZE_FLAGS -Olimit 4000"
fi
if echo $OS_RELEASE | egrep -c '(V2.0|V3.2)' 2>/dev/null; then
AC_DEFINE(HAVE_INT_LOCALTIME_R)
else
AC_DEFINE(HAVE_FCNTL_FILE_LOCKING)
AC_DEFINE(HAVE_POINTER_LOCALTIME_R)
fi
if echo $OS_RELEASE | grep -c V4.0 >/dev/null; then
AC_DEFINE(OSF1V4_MAP_PRIVATE_BUG)
fi
DSO_LDOPTS='-shared -all -expect_unresolved "*" -soname $(notdir $@)'
;;
*-qnx*)
AC_DEFINE(XP_UNIX)
AC_DEFINE(QNX)
AC_DEFINE(_PR_NEED_H_ERRNO)
USE_NSPR_THREADS=1
;;
*-*-sco*)
AC_DEFINE(XP_UNIX)
AC_DEFINE(SCO)
AC_DEFINE(sco)
AC_DEFINE(SYSV)
AC_DEFINE(_SVID3)
AC_DEFINE(_PR_NEED_H_ERRNO)
CC='cc -b elf -KPIC'
CXX='$(NSDEPTH)/build/hcpp CC +.cpp +w'
USE_NSPR_THREADS=1
CPU_ARCH=x86
DSO_LDOPTS='-b elf -G'
;;
*-sinix*)
AC_DEFINE(XP_UNIX)
AC_DEFINE(SVR4)
AC_DEFINE(SNI)
AC_DEFINE(RELIANTUNIX)
AC_DEFINE(sinix)
AC_DEFINE(HAVE_SVID_GETTOD)
if echo "$OS_TEST" | grep -c 86 2>/dev/null; then
AC_DEFINE(i386)
CPU_ARCH=x86
else
CPU_ARCH=mips
fi
if test "$GNU_CC"; then
AS='$(CC) -x assembler-with-cpp'
if test "$CPU_ARCH" = "mips"; then
LD=gld
fi
CFLAGS="$CFLAGS -Wall -Wno-format"
else
AS='/usr/bin/cc'
_OPTIMIZE_FLAGS='-O -F Olimit,4000'
fi
DSO_LDOPTS='-G -z defs -h $(@:$(OBJDIR)/%.so=%.so)'
if test "$OS_RELEASE" = "5.43"; then
AC_DEFINE(IP_MULTICAST)
fi
OS_LIBS="$OS_LIBS -lsocket -lnsl -lresolv -ldl -lc"
USE_NSPR_THREADS=1
;;
*-sunos*)
AC_DEFINE(XP_UNIX)
AC_DEFINE(SUNOS4)
CFLAGS="$CFLAGS -Wall -Wno-format"
if test "$USE_MDUPDATE"; then
CFLAGS="$CFLAGS -MDupdate \$(DEPENDENCIES)"
fi
CPU_ARCH=sparc
DLL_SUFFIX=so.1.0
DSO_LDOPTS=
DSO_CFLAGS=-fPIC
USE_NSPR_THREADS=1
if test "$OS_RELEASE" = "4.1.3_U1"; then
_OPTIMIZE_FLAGS=
OS_LIBS="$OS_LIBS -lm"
fi
;;
*-solaris*)
if test -z "$USE_USER_THREADS" && test -z "$USE_NATIVE_THREADS"; then
USE_PTHREADS=1
fi
AC_DEFINE(XP_UNIX)
AC_DEFINE(SVR4)
AC_DEFINE(SYSV)
AC_DEFINE(__svr4)
AC_DEFINE(__svr4__)
AC_DEFINE(SOLARIS)
AC_DEFINE(HAVE_FCNTL_FILE_LOCKING)
if test -n "$GNU_CC" ; then
if test -n "$USE_64"; then
CC="$CC -m64"
CXX="$CXX -m64"
fi
LD='$(CC)'
DSO_LDOPTS='-shared -Wl,-soname -Wl,$(notdir $@)'
DSO_CFLAGS=-fPIC
CFLAGS="$CFLAGS -Wall"
CXXFLAGS="$CXXFLAGS -Wall"
if test -n "$USE_MDUPDATE"; then
CFLAGS="$CFLAGS -MDupdate \$(DEPENDENCIES)"
CXXFLAGS="$CXXFLAGS -MDupdate \$(DEPENDENCIES)"
fi
else
LD=/usr/ccs/bin/ld
RANLIB=/usr/ccs/bin/ranlib
DSO_LDOPTS='-G -h $(notdir $@)'
DSO_CFLAGS=-KPIC
if test -n "$USE_64"; then
CC="$CC -xarch=v9"
CXX="$CXX -xarch=v9"
fi
CC="$CC -xstrconst"
CXX="$CXX -Qoption cg -xstrconst"
if test -z "$MOZ_OPTIMIZE"; then
CFLAGS="$CFLAGS -xs"
CXXFLAGS="$CXXFLAGS -xs"
fi
fi
if test "$DEFAULT_RPATHFLAG" = "$RPATHFLAG" ; then
# add origin stuff
RPATHFLAG="\\\$\$ORIGIN/../lib:\\\$\$ORIGIN/../../lib:$RPATHFLAG"
fi
if test -z "$GNU_AS"; then
ASFLAGS="$ASFLAGS -Wa,-P"
fi
if test "$OS_TEST" = "i86pc"; then
AC_DEFINE(i386)
# The default debug format, DWARF (-g), is not supported by gcc
# on i386-ANY-sysv4/solaris, but the stabs format is. It is
# assumed that the Solaris assembler /usr/ccs/bin/as is used.
# If your gcc uses GNU as, you do not need the -Wa,-s option.
if test -n "$MOZ_DEBUG" && test -n "$GNU_CC"; then
_DEBUG_FLAGS=-gstabs
if test -z "$GNU_AS"; then
_DEBUG_FLAGS="$_DEBUG_FLAGS -Wa,-s"
fi
fi
fi
case "${target_os}" in
solaris2.3*)
AC_DEFINE(_PR_NO_LARGE_FILES)
;;
solaris2.4*)
AC_DEFINE(_PR_NO_LARGE_FILES)
;;
solaris2.5*)
AC_DEFINE(SOLARIS2_5)
;;
*)
AC_DEFINE(_PR_HAVE_OFF64_T)
# The lfcompile64(5) man page on Solaris 2.6 says:
# For applications that do not wish to conform to the POSIX or
# X/Open specifications, the 64-bit transitional interfaces
# are available by default. No compile-time flags need to be
# set.
# But gcc 2.7.2.x fails to define _LARGEFILE64_SOURCE by default.
# The native compiler, gcc 2.8.x, and egcs don't have this problem.
if test -n "$GNU_CC"; then
AC_DEFINE(_LARGEFILE64_SOURCE)
fi
;;
esac
if test "$OS_TEST" = "sun4u"; then
# 64-bit Solaris requires SPARC V9 architecture, so the following
# is not needed.
if test -z "$USE_64"; then
ULTRASPARC_LIBRARY=ultrasparc
ULTRASPARC_FILTER_LIBRARY=libatomic.so
DSO_LDOPTS="$DSO_LDOPTS -f "'$(ULTRASPARC_FILTER_LIBRARY)'
fi
fi
;;
*-sco-sysv5*)
AC_DEFINE(XP_UNIX)
AC_DEFINE(UNIXWARE)
AC_DEFINE(SVR4)
AC_DEFINE(SYSV)
USE_NSPR_THREADS=1
if echo $OS_RELEASE | grep -c 2.1 2>/dev/null; then
AC_DEFINE(_PR_NO_LARGE_FILES)
CC='$(NSDEPTH)/build/hcc cc'
CXX='$(NSDEPTH)/build/hcpp CC'
else
AC_DEFINE(_LARGEFILE64_SOURCE)
AC_DEFINE(_PR_HAVE_OFF64_T)
AC_DEFINE(_PR_HAVE_SOCKADDR_LEN)
fi
DSO_LDOPTS=-G
CPU_ARCH=x86
;;
*)
AC_DEFINE(XP_UNIX)
;;
esac
if test -z "$SKIP_LIBRARY_CHECKS"; then
dnl ========================================================
dnl Check for system libraries
dnl ========================================================
dnl AC_CHECK_LIB(C, main)
dnl AC_CHECK_LIB(C_r, main)
dnl AC_CHECK_LIB(c, main)
dnl AC_CHECK_LIB(c_r, main)
dnl AC_CHECK_LIB(dce, main)
dnl AC_CHECK_LIB(dl, main)
dnl AC_CHECK_LIB(dld, main)
dnl AC_CHECK_LIB(gen, main)
dnl AC_CHECK_LIB(ip6, main)
dnl AC_CHECK_LIB(l, main)
dnl AC_CHECK_LIB(m, main)
dnl AC_CHECK_LIB(nsl, main)
dnl AC_CHECK_LIB(posix4, main)
dnl AC_CHECK_LIB(prstrms, main)
dnl AC_CHECK_LIB(prstrms_shr, main)
dnl AC_CHECK_LIB(pthread, main)
dnl AC_CHECK_LIB(pthreads, main)
dnl AC_CHECK_LIB(resolv, main)
dnl AC_CHECK_LIB(rt, main)
dnl AC_CHECK_LIB(socket, main)
dnl AC_CHECK_LIB(svld, main)
dnl AC_CHECK_LIB(thread, main)
dnl AC_CHECK_LIB(vms_jackets, main)
AC_CHECK_FUNC(dlopen,,[
AC_CHECK_LIB(dl, dlopen, [OS_LIBS="-ldl $OS_LIBS"])
])
dnl ========================================================
dnl Check for system header files.
dnl ========================================================
dnl AC_HEADER_DIRENT
dnl AC_HEADER_STDC
dnl AC_HEADER_SYS_WAIT
dnl AC_CHECK_HEADERS(fcntl.h limits.h sys/file.h sys/ioctl.h sys/time.h unistd.h)
dnl ========================================================
dnl Check for typedefs and structs
dnl ========================================================
dnl AC_C_CONST
dnl AC_TYPE_UID_T
dnl AC_TYPE_MODE_T
dnl AC_TYPE_OFF_T
dnl AC_TYPE_PID_T
dnl AC_TYPE_SIZE_T
dnl AC_STRUCT_ST_BLKSIZE
dnl AC_STRUCT_ST_BLOCKS
dnl AC_STRUCT_ST_RDEV
dnl AC_HEADER_TIME
dnl AC_STRUCT_TM
dnl ========================================================
dnl Checks for library functions.
dnl ========================================================
AC_PROG_GCC_TRADITIONAL
AC_CHECK_FUNCS(lchown strerror)
dnl AC_FUNC_MEMCMP
dnl AC_FUNC_MMAP
dnl AC_FUNC_SETVBUF_REVERSED
dnl AC_FUNC_STRCOLL
dnl AC_FUNC_STRFTIME
dnl AC_FUNC_UTIME_NULL
dnl AC_FUNC_VPRINTF
dnl AC_CHECK_FUNCS(ftime getcwd gethostname gettimeofday getwd mkdir mktime putenv rmdir select socket strdup strerror strstr strtol strtoul uname)
dnl ========================================================
dnl Check options
dnl ========================================================
dnl ========================================================
dnl =
dnl = --enable-strip
dnl =
dnl = Enable stripping of libs and executables
dnl =
dnl ========================================================
AC_ARG_ENABLE(strip,
[ --enable-strip Enable stripping of shared libs and programs],
[ ENABLE_STRIP=1 ])
dnl
dnl Apparently, some systems cannot properly check for the pthread
dnl library unless <pthread.h> is included so we need to test
dnl using it
dnl
dnl MOZ_CHECK_PTHREADS(lib, success, failure)
AC_DEFUN(MOZ_CHECK_PTHREADS,
[
AC_MSG_CHECKING([for pthread_create in -l$1])
echo "
#include <pthread.h>
void *foo(void *v) { int a = 1; }
int main() {
pthread_t t;
if (!pthread_create(&t, 0, &foo, 0)) {
pthread_join(t, 0);
}
exit(0);
}" > dummy.c ;
echo "${CC-cc} -o dummy${ac_exeext} dummy.c $CFLAGS $CPPFLAGS -l[$1] $LDFLAGS $LIBS" 1>&5;
${CC-cc} -o dummy${ac_exeext} dummy.c $CFLAGS $CPPFLAGS -l[$1] $LDFLAGS $LIBS 2>&5;
_res=$? ;
rm -f dummy.c dummy${ac_exeext} ;
if test "$_res" = "0"; then
AC_MSG_RESULT([yes])
[$2]
else
AC_MSG_RESULT([no])
[$3]
fi
])
MOZ_CHECK_PTHREADS(pthreads,
_HAVE_PTHREADS=1 _PTHREAD_LDFLAGS="-lpthreads",
MOZ_CHECK_PTHREADS(pthread,
_HAVE_PTHREADS=1 _PTHREAD_LDFLAGS="-lpthread",
MOZ_CHECK_PTHREADS(c_r,
_HAVE_PTHREADS=1 _PTHREAD_LDFLAGS="-lc_r",
MOZ_CHECK_PTHREADS(c,
_HAVE_PTHREADS=1
)
)
)
)
AC_ARG_WITH(pthreads,
[ --with-pthreads Use system pthreads library as thread subsystem],
[ if test "$withval" = "yes"; then
if test -n "$_HAVE_PTHREADS"; then
USE_PTHREADS=1
USE_USER_PTHREADS=
USE_NSPR_THREADS=
else
AC_MSG_ERROR([ --with-pthreads specified for a system without pthread support ]);
fi
else
USE_PTHREADS=
_PTHREAD_LDFLAGS=
fi],
[ if test -n "$_HAVE_PTHREADS" && test -z "$USE_USER_PTHREADS" && test -z "$USER_NSPR_THREADS"; then
USE_PTHREADS=1
USE_USER_PTHREADS=
USE_NSPR_THREADS=
fi])
AC_ARG_ENABLE(user-pthreads,
[ --enable-user-pthreads Build using userland pthreads],
[ if test "$enableval" = "yes"; then
if test -n "$_HAVE_PTHREADS"; then
USE_PTHREADS=
USE_USER_PTHREADS=1
USE_NSPR_THREADS=
else
AC_MSG_ERROR([ --enable-user-pthreads specified for a system without pthread support ]);
fi
fi])
AC_ARG_ENABLE(nspr-threads,
[ --enable-nspr-threads Build using classic nspr threads],
[ if test "$enableval" = "yes"; then
USE_PTHREADS=
USE_USER_PTHREADS=
USE_NSPR_THREADS=1
fi])
case "$target" in
*-beos*)
AC_ARG_WITH(bthreads,
[ --with-bthreads Use system bthreads library as thread subsystem (BeOS only)],
[ if test "$withval" = "yes"; then
USE_BTHREADS=1
USE_USER_PTHREADS=
USE_PTHREADS=
fi])
;;
*-solaris*)
AC_ARG_WITH(native-threads,
[ --with-native-threads Use native system threads as thread subsystem (Solaris only)],
[ if test "$withval" = "yes"; then
USE_NATIVE_THREADS=1
USE_USER_PTHREADS=
USE_PTHREADS=
fi])
;;
esac
fi # SKIP_LIBRARY_CHECKS
AC_ARG_ENABLE(cplus,
[ --enable-cplus Enable some c++ api routines],
[ if test "$enableval" = "yes"; then
USE_CPLUS=1
fi])
AC_ARG_ENABLE(ipv6,
[ --enable-ipv6 Compile ipv6 support],
[ if test "$enableval" = "yes"; then
USE_IPV6=1
fi])
if test -n "$USE_PTHREADS"; then
dnl See if -pthread is supported.
rm -f conftest*
ac_cv_have_dash_pthread=no
AC_MSG_CHECKING(whether ${CC-cc} accepts -pthread)
echo 'int main() { return 0; }' | cat > conftest.c
${CC-cc} -pthread -o conftest conftest.c > conftest.out 2>&1
if test $? -eq 0; then
if test -z "`egrep -i '(unrecognize|unknown)' conftest.out | grep pthread`" && test -z "`egrep -i '(error|incorrect)' conftest.out`" ; then
ac_cv_have_dash_pthread=yes
CFLAGS="$CFLAGS -pthread"
CXXFLAGS="$CXXFLAGS -pthread"
fi
fi
rm -f conftest*
AC_MSG_RESULT($ac_cv_have_dash_pthread)
dnl
dnl See if -pthreads is supported.
dnl
ac_cv_have_dash_pthreads=no
if test "$ac_cv_have_dash_pthread" = "no"; then
AC_MSG_CHECKING(whether ${CC-cc} accepts -pthreads)
echo 'int main() { return 0; }' | cat > conftest.c
${CC-cc} -pthreads -o conftest conftest.c > conftest.out 2>&1
if test $? -eq 0; then
if test -z "`egrep -i '(unrecognize|unknown)' conftest.out | grep pthreads`" && test -z "`egrep -i '(error|incorrect)' conftest.out`" ; then
ac_cv_have_dash_pthreads=yes
CFLAGS="$CFLAGS -pthreads"
CXXFLAGS="$CXXFLAGS -pthreads"
fi
fi
rm -f conftest*
AC_MSG_RESULT($ac_cv_have_dash_pthreads)
fi
case "$target" in
*-solaris*)
if test "$ac_cv_have_dash_pthreads" = "yes"; then
_PTHREAD_LDFLAGS=
fi
;;
*-freebsd*|*-openbsd*|*-bsdi*|*-netbsd*)
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=
fi
;;
*-linux*)
AC_DEFINE(_REENTRANT)
;;
esac
else
if test -n "$USE_USER_PTHREADS"; then
USE_PTHREADS=
USE_NSPR_THREADS=
else
_PTHREAD_LDFLAGS=
fi
fi
dnl Special thread exceptions
case "$target" in
*-aix*)
if test -n "$USE_NSPR_THREADS"; then
AC_DEFINE(_PR_LOCAL_THREADS_ONLY)
fi
case "$target_os" in
aix4.1*)
if test -z "$USE_PTHREADS"; then
AC_DEFINE(AIX_RENAME_SELECT)
fi
;;
aix4.2*)
if test -z "$USE_NSPR_THREADS"; then
AC_DEFINE(HAVE_POINTER_LOCALTIME_R)
fi
;;
aix4.3*)
if test -z "$USE_NSPR_THREADS"; then
AC_DEFINE(HAVE_POINTER_LOCALTIME_R)
fi
if test -n "$USE_PTHREADS"; then
AC_DEFINE(_PR_HAVE_THREADSAFE_GETHOST)
fi
;;
esac
;;
*-bsdi*)
if test -n "$USE_PTHREADS"; then
AC_DEFINE(_PR_NEED_PTHREAD_INIT)
fi
;;
*-freebsd*)
if test -n "$USE_NSPR_THREADS"; then
AC_DEFINE(_PR_LOCAL_THREADS_ONLY)
fi
;;
*-hpux*)
if test -n "$USE_NSPR_THREADS"; then
AC_DEFINE(_PR_LOCAL_THREADS_ONLY)
fi
if test "$USE_PTHREADS"; then
if echo "$OS_RELEASE" | egrep '^(B.10.10|B.10.20)' >/dev/null; then
AC_DEFINE(_REENTRANT)
AC_DEFINE(_PR_DCETHREADS)
else
AC_DEFINE_UNQUOTED(_POSIX_C_SOURCE,199506L)
AC_DEFINE(_PR_HAVE_THREADSAFE_GETHOST)
fi
fi
if test "$USE_USER_PTHREADS"; then
AC_DEFINE_UNQUOTED(_POSIX_C_SOURCE,199506L)
fi
;;
*-irix*)
if test "${target_os}" = "irix6.5"; then
if test -n "$USE_PTHREADS"; then
AC_DEFINE(_PR_HAVE_GETHOST_R)
AC_DEFINE(_PR_HAVE_GETHOST_R_POINTER)
fi
fi
;;
*-linux*)
if test -n "$USE_NSPR_THREADS"; then
AC_DEFINE(_PR_LOCAL_THREADS_ONLY)
fi
;;
*-mingw*|*-cygwin*|*-msvc*|*-mks*|*-os2*|*-beos*)
dnl win32, os2 & beos cannot use pthreads
USE_PTHREADS=
_PTHREAD_LDFLAGS=
USE_USER_PTHREADS=
;;
*-netbsd*)
if test -n "$USE_NSPR_THREADS"; then
AC_DEFINE(_PR_LOCAL_THREADS_ONLY)
fi
;;
*-osf*)
if test -n "$USE_NSPR_THREADS"; then
AC_DEFINE(_PR_LOCAL_THREADS_ONLY)
fi
if test -n "$USE_PTHREADS"; then
if echo $OS_RELEASE | egrep -c '(V2.0|V3.2)' 2>/dev/null; then
:
else
AC_DEFINE(_PR_HAVE_THREADSAFE_GETHOST)
fi
fi
;;
*-solaris*)
if test -n "$USE_NATIVE_THREADS"; then
AC_DEFINE(_PR_GLOBAL_THREADS_ONLY)
else
if test -n "$USE_NSPR_THREADS"; then
AC_DEFINE(_PR_LOCAL_THREADS_ONLY)
fi
fi
if test -z "$USE_NSPR_THREADS"; then
AC_DEFINE(_REENTRANT)
AC_DEFINE(HAVE_POINTER_LOCALTIME_R)
fi
;;
*-nto*)
if test -n "$USE_PTHREADS"; then
AC_DEFINE(_PR_HAVE_GETHOST_R)
AC_DEFINE(_PR_HAVE_GETHOST_R_POINTER)
fi
;;
esac
OS_LIBS="$_PTHREAD_LDFLAGS $OS_LIBS"
dnl If the user passed in arg to --enable-optimize or --enable-debug,
dnl make sure that we use it.
if test -n "$_SAVE_OPTIMIZE_FLAGS"; then
_OPTIMIZE_FLAGS="$_SAVE_OPTIMIZE_FLAGS"
fi
if test -n "$_SAVE_DEBUG_FLAGS"; then
_DEBUG_FLAGS="$_SAVE_DEBUG_FLAGS"
fi
if test -n "$MOZ_OPTIMIZE"; then
CFLAGS="$CFLAGS $_OPTIMIZE_FLAGS"
CXXFLAGS="$CXXFLAGS $_OPTIMIZE_FLAGS"
fi
if test -n "$MOZ_DEBUG"; then
CFLAGS="$CFLAGS $_DEBUG_FLAGS"
CXXFLAGS="$CXXFLAGS $_DEBUG_FLAGS"
fi
dnl ========================================================
dnl Use cygwin wrapper for win32 builds, except MinGW/MSYS
dnl ========================================================
case "$target_os" in
cygwin*|msvc*|mks*)
CC="\$(CYGWIN_WRAPPER) $CC"
CXX="\$(CYGWIN_WRAPPER) $CXX"
RC="\$(CYGWIN_WRAPPER) $RC"
;;
esac
dnl ========================================================
dnl Substitution of found variables.
dnl ========================================================
AC_SUBST(SHELL_OVERRIDE)
AC_SUBST(MOZILLA_CLIENT)
AC_SUBST(CC)
AC_SUBST(CXX)
AC_SUBST(CFLAGS)
AC_SUBST(CXXFLAGS)
AC_SUBST(CPPFLAGS)
AC_SUBST(HOST_CC)
AC_SUBST(HOST_CFLAGS)
AC_SUBST(LDFLAGS)
AC_SUBST(GNU_CC)
AC_SUBST(CROSS_COMPILE)
AC_SUBST(MOZ_OPTIMIZE)
AC_SUBST(USE_CPLUS)
AC_SUBST(USE_IPV6)
AC_SUBST(USE_N32)
AC_SUBST(USE_64)
AC_SUBST(OBJECT_MODE)
AC_SUBST(GC_LEAK_DETECTOR)
AC_SUBST(ENABLE_STRIP)
AC_SUBST(USE_PTHREADS)
AC_SUBST(USE_BTHREADS)
AC_SUBST(USE_USER_PTHREADS)
AC_SUBST(USE_NATIVE_THREADS)
AC_SUBST(USE_NSPR_THREADS)
AC_SUBST(USE_NSS)
AC_SUBST(NSS_CFLAGS)
AC_SUBST(NSS_LIBS)
AC_SUBST(CPU_ARCH)
AC_SUBST(OBJ_SUFFIX)
AC_SUBST(LIB_SUFFIX)
AC_SUBST(LIB_PREFIX)
AC_SUBST(DLL_SUFFIX)
AC_SUBST(ASM_SUFFIX)
AC_SUBST(PROG_SUFFIX)
AC_SUBST(MKSHLIB)
AC_SUBST(DSO_CFLAGS)
AC_SUBST(DSO_LDOPTS)
AC_SUBST(OS_TARGET)
AC_SUBST(OS_ARCH)
AC_SUBST(OS_RELEASE)
AC_SUBST(OS_TEST)
AC_SUBST(DEFINES)
AC_SUBST(DEFS)
AC_SUBST(AR)
AC_SUBST(AR_FLAGS)
AC_SUBST(AS)
AC_SUBST(ASFLAGS)
AC_SUBST(LD)
AC_SUBST(WINDRES)
AC_SUBST(RANLIB)
AC_SUBST(PERL)
AC_SUBST(STRIP)
AC_SUBST(FILTER)
AC_SUBST(IMPLIB)
AC_SUBST(OS_LIBS)
AC_SUBST(RESOLVE_LINK_SYMBOLS)
AC_SUBST(NOSUCHFILE)
AC_SUBST(MOZ_OBJFORMAT)
AC_SUBST(ULTRASPARC_LIBRARY)
AC_SUBST(ULTRASPARC_FILTER_LIBRARY)
AC_SUBST(OBJDIR)
AC_SUBST(OBJDIR_NAME)
AC_SUBST(NSINSTALL)
AC_SUBST(OPTIMIZER)
AC_SUBST(RC)
AC_SUBST(DLLFLAGS)
AC_SUBST(EXEFLAGS)
AC_SUBST(OS_DLLFLAGS)
AC_SUBST(CYGWIN_WRAPPER)
AC_SUBST(WIN_TOP_SRC)
AC_SUBST(NEXT_ROOT)
AC_SUBST(RPATHFLAG)
dnl ========================================================
dnl Generate output files.
dnl ========================================================
MAKEFILES="
Makefile
config/Makefile
config/autoconf.mk
ldap/Makefile
ldap/clients/tools/Makefile
ldap/include/Makefile
ldap/libraries/Makefile
ldap/libraries/libldap/Makefile
ldap/libraries/libprldap/Makefile
ldap/libraries/libldif/Makefile
ldap/libraries/liblber/Makefile
ldap/libraries/libiutil/Makefile
ldap/libraries/libssldap/Makefile
ldap/libraries/libutil/Makefile
"
dnl since configure won't handle 2 levels of directory
dnl structure for us..
mkdir ldap > /dev/null 2>&1
mkdir ldap/clients > /dev/null 2>&1
AC_OUTPUT([$MAKEFILES])