diff options
Diffstat (limited to 'configure.in')
-rw-r--r-- | configure.in | 1295 |
1 files changed, 1112 insertions, 183 deletions
diff --git a/configure.in b/configure.in index aa7fa6a0..3d3b8229 100644 --- a/configure.in +++ b/configure.in @@ -23,16 +23,8 @@ dnl AC_PREREQ(2.12) AC_INIT(config/libc_r.h) -d=`pwd` -if test "${srcdir}" = "$d" || test "${srcdir}" = "." ; then - echo "Do not build in the srcdir as it will override Makefiles used by non-autoconf build." - exit 1; -fi - AC_CONFIG_AUX_DIR(${srcdir}/build/autoconf) AC_CANONICAL_SYSTEM -AC_VALIDATE_CACHED_SYSTEM_TUPLE -AC_PREFIX_DEFAULT(\${MOD_DEPTH}/dist) dnl Set this define to make fixes w/o breaking anything else. AC_DEFINE(USE_AUTOCONF) @@ -40,7 +32,9 @@ AC_DEFINE(USE_AUTOCONF) dnl ======================================================== dnl = Defaults dnl ======================================================== -NSPR_VERSION=4 +MOD_MAJOR_VERSION=4 +MOD_MINOR_VERSION=0 +MOD_REVISION_VERSION=1 NSPR_MODNAME=nspr20 _HAVE_PTHREADS= USE_PTHREADS= @@ -55,6 +49,13 @@ _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 +LIBNSPR='-L$(dist_libdir) -lnspr$(MOD_MAJOR_VERSION)' +LIBPLC='-L$(dist_libdir) -lplc$(MOD_MAJOR_VERSION)' + dnl Link in libraries necessary to resolve all symbols for shared libs RESOLVE_LINK_SYMBOLS= @@ -72,10 +73,69 @@ HOST_CFLAGS="${HOST_CFLAGS=}" HOST_LDFLAGS="${HOST_LDFLAGS=}" dnl ======================================================== +dnl = Irix 6.x should use n32 ABI by default +dnl ======================================================== +case "$target" in +*-irix6*) + USE_N32=1 ;; +*-cygwin*) + # Check to see if we are really running in a msvc environemnt + _WIN32_MSVC= + if test "$CC" = "cl" || test "$CXX" = "cl"; then + _WIN32_MSVC=1 + elif test -z "$CC"; then + echo 'main() { return 0; }' > dummy.c + cl -o dummy dummy.c + if test $? = 0; then + _WIN32_MSVC=1 + fi + rm -f dummy dummy.o dummy.obj dummy.exe dummy.c + fi + ;; +*-msvc*) + _WIN32_MSVC=1 + ;; +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_includedir='${dist_prefix}/include' +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-includedir, + [ --with-dist-includedir=DIR + build include files in DIR [DIST_PREFIX/include]], + dist_includedir=$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_includedir) +AC_SUBST(dist_libdir) + dnl Check if NSPR is being compiled for Mozilla dnl Let --with-arg override environment setting dnl @@ -92,8 +152,14 @@ AC_ARG_WITH(mozilla, fi]) AC_ARG_ENABLE(optimize, - [ --enable-optimize Enable code optimizations], - MOZ_OPTIMIZE=1) + [ --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 + fi ]) AC_ARG_ENABLE(debug, [ --disable-debug Do not compile in debugging symbols], @@ -101,18 +167,19 @@ AC_ARG_ENABLE(debug, MOZ_DEBUG= fi]) -AC_ARG_ENABLE(shared, - [ --disable-shared Do not compile into shared libraries]) - -AC_ARG_ENABLE(target, - [ --enable-target=\$t Turn on features for target \$t when build has multiple targets], - MOZ_TARGET=`echo $enableval | tr a-z A-Z`, - MOZ_TARGET=) +AC_ARG_ENABLE(win32-target, + [ --enable-win32-target=\$t + Specify win32 flavor. (WIN95 or WINNT)], + MOZ_WIN32_TARGET=`echo $enableval | tr a-z A-Z`, + MOZ_WIN32_TARGET=) AC_ARG_ENABLE(n32, - [ --enable-n32 Enable n32 support (IRIX only)], + [ --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, @@ -127,16 +194,22 @@ AC_ARG_ENABLE(mdupdate, USE_MDUPDATE=1 fi ]) -AC_PATH_PROG(WHOAMI, whoami, :) +if test -z "$SKIP_PATH_CHECKS"; then + AC_PATH_PROG(WHOAMI, $WHOAMI whoami, echo not_whoami) +elif test -z "$WHOAMI"; then + WHOAMI=whoami +fi + if test -n "$MOZ_DEBUG"; then AC_DEFINE(DEBUG) AC_DEFINE_UNQUOTED(DEBUG_`$WHOAMI`) DEFINES="$DEFINES -UNDEBUG" else AC_DEFINE(NDEBUG) - DEFINES="$DEFINES -UDEBUG" + DEFINES="$DEFINES -U_DEBUG -UDEBUG" fi +if test -z "$SKIP_COMPILER_CHECKS"; then dnl ======================================================== dnl Checks for compilers. dnl ======================================================== @@ -177,42 +250,51 @@ if test "$target" != "$host"; then LDFLAGS=$_SAVE_LDFLAGS if test -z "$CC"; then - AC_CHECK_PROGS(CC, "${target_alias}-gcc" "${target}-gcc", :) + AC_CHECK_PROGS(CC, "${target_alias}-gcc" "${target}-gcc", echo) fi unset ac_cv_prog_CC AC_PROG_CC if test -z "$CXX"; then - AC_CHECK_PROGS(CXX, "${target_alias}-g++" "${target}-g++", :) + AC_CHECK_PROGS(CXX, "${target_alias}-g++" "${target}-g++", echo) fi unset ac_cv_prog_CXX AC_PROG_CXX if test -z "$RANLIB"; then - AC_CHECK_PROGS(RANLIB, "${target_alias}-ranlib" "${target}-ranlib", :) + AC_CHECK_PROGS(RANLIB, "${target_alias}-ranlib" "${target}-ranlib", echo) fi if test -z "$AR"; then - AC_CHECK_PROGS(AR, "${target_alias}-ar" "${target}-ar", :) + AC_CHECK_PROGS(AR, "${target_alias}-ar" "${target}-ar", echo) fi if test -z "$AS"; then - AC_CHECK_PROGS(AS, "${target_alias}-as" "${target}-as", :) + AC_CHECK_PROGS(AS, "${target_alias}-as" "${target}-as", echo) fi if test -z "$LD"; then - AC_CHECK_PROGS(LD, "${target_alias}-ld" "${target}-ld", :) + AC_CHECK_PROGS(LD, "${target_alias}-ld" "${target}-ld", echo) + fi + if test -z "$STRIP"; then + AC_CHECK_PROGS(STRIP, "${target_alias}-strip" "${target}-strip", echo) fi if test -z "$DLLTOOL"; then - AC_CHECK_PROGS(DLLTOOL, "${target_alias}-dlltool" "${target}-dlltool", :) + AC_CHECK_PROGS(DLLTOOL, "${target_alias}-dlltool" "${target}-dlltool", echo) fi if test -z "$WINDRES"; then - AC_CHECK_PROGS(WINDRES, "${target_alias}-windres" "${target}-windres", :) + AC_CHECK_PROGS(WINDRES, "${target_alias}-windres" "${target}-windres", echo) fi + else - AC_PROG_CC AC_PROG_CXX + if test "$CXX" = "cl" -a -z "$CC"; then + CC=$CXX + else + AC_PROG_CC + fi AC_PROG_RANLIB AC_PATH_PROGS(AS, as, $CC) - AC_PATH_PROGS(AR, ar, :) - AC_PATH_PROGS(LD, ld, :) - AC_PATH_PROGS(DLLTOOL, dlltool, :) - AC_PATH_PROGS(WINDRES, windres, :) + 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(DLLTOOL, dlltool, echo not_dlltool) + AC_PATH_PROGS(WINDRES, windres, echo not_windres) if test -z "$HOST_CC"; then HOST_CC="$CC" fi @@ -229,12 +311,22 @@ if test "`echo | $AS -V 2>&1 | grep -c GNU`" != "0"; then fi rm -f a.out +if test "$cross_compiling" = "yes"; then + CROSS_COMPILE=1 +else + CROSS_COMPILE= +fi + +fi # SKIP_COMPILER_CHECKS + dnl ======================================================== dnl Checks for programs. dnl ======================================================== -AC_PROG_INSTALL -AC_PROG_LN_S -AC_PATH_PROGS(PERL, perl5 perl, :) +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 @@ -247,21 +339,161 @@ PR_MD_ASFILES= PR_MD_CSRCS= PR_MD_ARCH_DIR=unix AR_FLAGS='cr $@' +AS='$(CC)' -OS_TARGET=`uname -s` OS_ARCH=`uname -s | sed -e 's|/|_|g'` OS_RELEASE=`uname -r` OS_TEST=`uname -m` +if test "$OS_ARCH" = "IRIX64"; then + OS_ARCH=IRIX +fi + +if test "$OS_ARCH" = "POSIX_for_OpenVMS_AXP"; then + OS_ARCH=OpenVMS +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. +# +if test "$OS_ARCH" = "WIN95"; then + OS_ARCH=WINNT + OS_TARGET=WIN95 +elif test "$OS_ARCH" = 'Windows_95'; then + OS_ARCH=Windows_NT + OS_TARGET=WIN95 +elif test "$OS_ARCH" = 'Windows_98'; then + OS_ARCH=Windows_NT + OS_TARGET=WIN95 +elif test "$OS_ARCH" = "CYGWIN_95-4.0"; then + OS_ARCH='CYGWIN_NT-4.0' + OS_TARGET=WIN95 +elif test "$OS_ARCH" = "CYGWIN_98-4.10"; then + OS_ARCH='CYGWIN_NT-4.0' + OS_TARGET=WIN95 +elif test "$OS_ARCH" = "OS_2"; then + OS_ARCH=OS2 + OS_TARGET=OS2 +fi + +# +# On WIN32, we also define the variable CPU_ARCH. +# + +if test "$OS_ARCH" = "WINNT"; then + CPU_ARCH=`uname -p` + if test "$CPU_ARCH" = "I386"; then + CPU_ARCH=x86 + fi +elif test "$OS_ARCH" = "Windows_NT"; then +# +# 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 +elif echo "$OS_ARCH" | grep -c CYGWIN_NT >/dev/null; then +# +# If uname -s returns "CYGWIN_NT-4.0", we assume that we are using +# the uname.exe in the Cygwin tools. +# + OS_RELEASE=`echo $OS_ARCH | sed 's|^CYGWIN_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 +elif test "$OS_ARCH" = "CYGWIN32_NT"; then +# +# 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. +# + OS_ARCH=WINNT + CPU_ARCH=`uname -m` + # + # GNU-Win32's uname -m returns "i686" on a Pentium Pro machine. + # + if echo "$CPU_ARCH" | grep -c 86 >/dev/null; then + CPU_ARCH=x86 + fi +fi + +if test -n "$MOZILLA_CLIENT" && test "$OS_ARCH" = "WINNT"; then + OS_TARGET=WIN95 + MOZ_WIN32_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 +if test -z "$MOZ_WIN32_TARGET"; then + MOZ_WIN32_TARGET=$OS_TARGET +fi +OS_CONFIG="${OS_TARGET}${OS_RELEASE}" + +dnl ======================================================== + dnl ======================================================== dnl Override of system specific host options dnl ======================================================== case "$host" in -*-mingw*) +*-mingw*|*-cygwin*|*-msvc*) ;; *-beos*) HOST_CFLAGS="$HOST_CFLAGS -DXP_BEOS -DBeOS -DBEOS -D_POSIX_SOURCE" ;; +*os2*) + ;; *) HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX" ;; @@ -294,7 +526,9 @@ case "$target" in AC_DEFINE(AIX4_1) MKSHLIB= DSO_LDOPTS= + USE_PTHREADS=1 AIX_LINK_OPTS='-bnso -berok' + LIBNSPR='-L$(dist_libdir) -lnspr$(MOD_MAJOR_VERSION)_shr' ;; aix4.3*) AC_DEFINE(AIX_HAVE_ATOMIC_OP_H) @@ -303,6 +537,7 @@ case "$target" in AC_DEFINE(AIX4_3) AC_DEFINE(HAVE_SOCKLEN_T) USE_IPV6=1 + USE_PTHREADS=1 AIX_LINK_OPTS='-brtl -bnso -berok' ;; *) @@ -313,7 +548,7 @@ case "$target" in ;; esac CFLAGS="$CFLAGS -qro -qroconst" - if test `grep -c xlC_r $CC`; then + if echo "$CC" | grep -c xlC_r; then CFLAGS="$CFLAGS -qarch=com" fi AIX_WRAP='$(DIST)/lib/aixwrap.o' @@ -328,6 +563,7 @@ case "$target" in fi fi PR_MD_CSRCS=aix.c + RESOLVE_LINK_SYMBOLS=1 ;; *-beos*) @@ -336,11 +572,91 @@ case "$target" in AC_DEFINE(BEOS) AC_DEFINE(_POSIX_SOURCE) DSO_LDOPTS=-nostart - MKSHLIB='$(CCC) $(DSO_LDOPTS) -o $@' MDCPUCFG_H=_beos.cfg USE_BTHREADS=1 PR_MD_ARCH_DIR=beos RESOLVE_LINK_SYMBOLS=1 + case "${target_cpu}" in + i?86) + _OPTIMIZE_FLAGS=-O2 + _DEBUG_FLAGS='-gdwarf-2 -O0' + MKSHLIB='$(CCC) $(DSO_LDOPTS) -o $@' + ;; + 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 + + MDCPUCFG_H=_bsdi.cfg + PR_MD_CSRCS=bsdi.c + + 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) + PR_MD_ASFILES=os_BSD_OS_386_2.s + ;; + + 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 -Wl,-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 + ;; *-dgux*) @@ -351,9 +667,7 @@ case "$target" in AC_DEFINE(DGUX) AC_DEFINE(_DGUX_SOURCE) AC_DEFINE(_POSIX4A_DRAFT6_SOURCE) - MKSHLIB='$(LD) $(DSO_LDOPTS)' DSO_LDOPTS=-G - NOSUCHFILE=/no-such-file _OPTIMIZE_FLAGS=-O2 _DEBUG_FLAGS= MDCPUCFG_H=_dgux.cfg @@ -361,9 +675,7 @@ case "$target" in ;; *-freebsd*) - if test "${target_cpu}" != "alpha"; then - AC_DEFINE(i386) - fi + AC_DEFINE(XP_UNIX) AC_DEFINE(FREEBSD) AC_DEFINE(HAVE_BSD_FLOCK) CFLAGS="$CFLAGS $(DSO_CFLAGS) -ansi -Wall -pipe" @@ -380,12 +692,15 @@ case "$target" in ;; *-hpux*) + AC_DEFINE(XP_UNIX) AC_DEFINE(HPUX) AC_DEFINE(_HPUX_SOURCE) - DEFINES="$DEFINES -D${target_cpu}" + AC_DEFINE(hppa) + AC_DEFINE(hpux) DLL_SUFFIX=sl DSO_LDOPTS='-b +h $(notdir $@)' PR_MD_CSRCS=hpux.c + PR_MD_ASFILES=os_HPUX.s if test -n "$USE_64"; then MDCPUCFG_H=_hpux64.cfg else @@ -400,52 +715,74 @@ case "$target" in else DSO_CFLAGS=-fPIC fi + if test -n "$MOZILLA_CLIENT"; then - USE_NSPR_THREADS=1 + DEFAULT_IMPL_STRATEGY=_EMU fi - case "${target_os}" in - hpuxA.09*) - AC_DEFINE(HPUX9) + + 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) - ;; - hpuxB.10.01*) + 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)' >/dev/null; then + AC_DEFINE(HAVE_POINTER_LOCALTIME_R) + fi + + if test "$OS_RELEASE" = "B.10.01"; then AC_DEFINE(HPUX10) - ;; - hpuxB.10.10*) + DEFAULT_IMPL_STRATEGY=_EMU + fi + + if test "$OS_RELEASE" = "B.10.10"; then AC_DEFINE(HPUX10) AC_DEFINE(HPUX10_10) - AC_DEFINE(HAVE_INT_LOCALTIME_R) - USE_PTHREADS=1 - USE_NSPR_THREADS= - ;; - hpuxB.10.20*) + DEFAULT_IMPL_STRATEGY=_PTH + fi + + if test "$OS_RELEASE" = "B.10.20"; then AC_DEFINE(HPUX10) AC_DEFINE(HPUX10_20) - AC_DEFINE(HAVE_INT_LOCALTIME_R) - if test -z "$GNU_CC"; then + if test -z "$GNU_CC" && test 0 = 1; then CFLAGS="$CFLAGS +DAportable +DS1.1" CXXFLAGS="$CXXFLAGS +DAportable +DS1.1" fi - USE_PTHREADS=1 - USE_NSPR_THREADS= - ;; - hpuxB.10.30*) - AC_DEFINE(HAVE_POINTER_LOCALTIME_R) - if test -z "$GNU_CC"; then + DEFAULT_IMPL_STRATEGY=_EMU + fi + + if test "$OS_RELEASE" = "B.10.30"; then + AC_DEFINE(HPUX10) + AC_DEFINE(HPUX10_30) + #CXX="/opt/aCC/bin/aCC -ext" + if test -z "$GNU_CC" && test 0 = 1; then CFLAGS="$CFLAGS +DAportable +DS1.1" CXXFLAGS="$CXXFLAGS +DAportable +DS1.1" fi - USE_PTHREADS=1 - USE_NSPR_THREADS= - ;; - hpuxB.11.00*) + DEFAULT_IMPL_STRATEGY=_PTH + fi + + if test "$OS_RELEASE" = "B.11.00"; then AC_DEFINE(HPUX10) AC_DEFINE(HPUX11) AC_DEFINE(_LARGEFILE64_SOURCE) AC_DEFINE(_PR_HAVE_OFF64_T) AC_DEFINE(HAVE_POINTER_LOCALTIME_R) if test -z "$GNU_CC"; then + if test 0 = 1; then if test -z "$USE_64"; then CFLAGS="$CFLAGS +DAportable +DS2.0" CXXFLAGS="$CXXFLAGS +DAportable +DS2.0" @@ -453,18 +790,23 @@ case "$target" in CFLAGS="$CFLAGS +DA2.0W +DS2.0" CXXFLAGS="$CXXFLAGS +DA2.0W +DS2.0" fi + fi fi + DEFAULT_IMPL_STRATEGY=_PTH + 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 - USE_NSPR_THREADS= - ;; - esac - case "${target_os}" in - hpuxB.10*) - AC_DEFINE(_PR_NO_LARGE_FILES) - ;; - esac - if test -n "$USE_NSPR_THREADS"; then - AC_DEFINE(_PR_LOCAL_THREADS_ONLY) + if test "$MOZILLA_CLIENT"; then + USE_PTHREADS= + fi + if test "$USE_USER_PTHREADS"; then + USE_PTHREADS= + fi fi ;; @@ -475,28 +817,37 @@ case "$target" in AC_DEFINE(_SGI_MP_SOURCE) PR_MD_CSRCS=irix.c PR_MD_ASFILES=os_Irix.s - MKSHLIB='$(LD) $(SHLIB_LD_OPTS) -rdata_shared -shared -soname $(notdir $@) -o $@' - DSO_LDOPTS='-elf -shared -all' + MKSHLIB='$(LD) $(DSO_LDOPTS) -rdata_shared -shared -soname $(notdir $@) -o $@' + #DSO_LDOPTS='-elf -shared -all' + STRIP="$STRIP -f" if test -n "$USE_64"; then MDCPUCFG_H=_irix64.cfg else MDCPUCFG_H=_irix32.cfg fi case "${target_os}" in + irix6*) + AC_DEFINE(IRIX6) + USE_PTHREADS=1 + ;; irix5*) + AC_DEFINE(IRIX5) USE_NSPR_THREADS=1 ;; *) - USE_N32=1 USE_PTHREADS=1 ;; esac if test "$GNU_CC"; then - AS='$(CC) -x assembler-with-cpp -D_ASM -mips2 $(INCLUDES)' + AS='$(CC) -Wp,-P -x assembler-with-cpp -D_ASM -mips2 $(INCLUDES)' CFLAGS="$CFLAGS -Wall -Wno-format" _OPTIMIZE_FLAGS="-O6" else - AS="as -D_ASM $(INCLUDES) -n32" + 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" @@ -509,14 +860,14 @@ case "$target" in case "$target}" in *-irix6.*) CFLAGS="$CFLAGS -multigot" - SHLIB_LD_OPTS="-no_unresolved" - if test "USE_N32"; then + DSO_LDOPTS="-no_unresolved" + if test "$USE_N32"; then CFLAGS="$CFLAGS -n32 -woff 1209" LDFLAGS="$LDFLAGS -n32" - SHLIB_LD_OPTS="$SHLIB_LD_OPTS -n32" + DSO_LDOPTS="$DSO_LDOPTS -n32" if test "${target_os}" = "irix6.2"; then LDFLAGS="$LDFLAGS -Wl,-woff,85" - SHLIB_LD_OPTS="$SHLIB_LD_OPTS -woff 85" + DSO_LDOPTS="$DSO_LDOPTS -woff 85" fi else if test "$USE_64"; then @@ -570,6 +921,7 @@ case "$target" in MKSHLIB='$(LD) $(DSO_LDOPTS) -soname $(notdir $@) -o $@' DSO_CFLAGS=-fPIC DSO_LDOPTS=-shared + OS_LIBS="$OS_LIBS -lc" case "${target_cpu}" in alpha) AC_DEFINE(_ALPHA_) @@ -578,6 +930,10 @@ case "$target" in CXXFLAGS="$CXXFLAGS -mieee" _OPTIMIZE_FLAGS=-O2 ;; + i?86) + PR_MD_ASFILES=os_Linux_x86.s + _OPTIMIZE_FLAGS=-O2 + ;; m68k) _OPTIMIZE_FLAGS=-O CFLAGS="$CFLAGS -m68020-40" @@ -589,69 +945,430 @@ case "$target" in esac ;; -*-mingw*) +*-mingw*|*-cygwin*|*-msvc*) AC_DEFINE(XP_PC) - AC_DEFINE(NONAMELESSUNION) + AC_DEFINE(WIN32) PR_MD_ARCH_DIR=windows - if test -z "$GNU_CC"; then + RESOLVE_LINK_SYMBOLS=1 + + if test -n "$GNU_CC"; then + AC_DEFINE(NONAMELESSUNION) + MKSHLIB='$(DLLTOOL) --as=$(AS) -k --dllname $*.dll --output-lib $@' + else + CC=cl + CXX=cl + LD=link + AR='lib -NOLOGO -OUT:"$@"' + AR_FLAGS= + RANLIB='echo not_ranlib' + STRIP='echo not_strip' + NSINSTALL=nsinstall + RC=rc.exe + GARBAGE='$(OBJDIR)/vc20.pdb $(OBJDIR)/vc40.pdb' OBJ_SUFFIX=obj LIB_SUFFIX=lib DLL_SUFFIX=dll + + CFLAGS="$CFLAGS -W3 -nologo -GF -Gy" + _DEBUG_FLAGS= + + if test -n "$MOZ_OPTIMIZE"; then + CFLAGS="$CFLAGS -MD" + OPTIMIZER=-O2 + DLLFLAGS='-OUT:"$@"' + OBJDIR_TAG=_OPT + + if test -n "$MOZ_PROFILE"; then + OPTIMIZER="$OPTIMIZER -Z7" + DLLFLAGS="$DLLFLAGS -DEBUG -DEBUGTYPE:CV" + LDFLAGS="$LDFLAGS -DEBUG -DEBUGTYPE:CV" + fi + else + if test -n "$USE_DEBUG_RTL"; then + CFLAGS="$CFLAGS -MDd" + else + CFLAGS="$CFLAGS -MD" + fi + OPTIMIZER="-Od -Z7" + DLLFLAGS='-DEBUG -DEBUGTYPE:CV -OUT:"$@"' + if test -n "$GLOWCODE"; then + DLLFLAGS='-DEBUG -DEBUGTYPE:both -INCLUDE:_GlowCode -OUT:"$@"' + DLL_LIBS='$(GLOWDIR)/glowcode.lib' + fi + OBJDIR_TAG=_DBG + LDFLAGS="$LDFLAGS -DEBUG -DEBUGTYPE:CV" + if test -n "$PROFILE"; then + LDFLAGS="$LDFLAGS -PROFILE -MAP" + DLLFLAGS="$DLLFLAGS -PROFILE -MAP" + fi + fi + + if test "$OS_TARGET" = "WINNT"; then + CFLAGS="$CFLAGS -GT" + LIBNSPR='$(dist_libdir)/libnspr$(MOD_MAJOR_VERSION).$(LIB_SUFFIX)' + LIBPLC='$(dist_libdir)/libplc$(MOD_MAJOR_VERSION).$(LIB_SUFFIX)' + else + LIBNSPR='$(dist_libdir)/nspr$(MOD_MAJOR_VERSION).$(LIB_SUFFIX)' + LIBPLC='$(dist_libdir)/plc$(MOD_MAJOR_VERSION).$(LIB_SUFFIX)' + fi + fi # GNU_CC + + if test -n "$USE_STATIC_TLS"; then + AC_DEFINE(_PR_USE_STATIC_TLS) + fi + + if test "$OS_TARGET" = "WINNT"; then + if test "$CPU_ARCH" = "x86"; then + CFLAGS="$CFLAGS -G5" + fi + AC_DEFINE(WINNT) + else + AC_DEFINE(WIN95) + AC_DEFINE(_PR_GLOBAL_THREADS_ONLY) + fi + + if test "$CPU_ARCH" = "x86"; then + CPU_ARCH_TAG= + else + CPU_ARCH_TAG=$CPU_ARCH fi - MKSHLIB='$(DLLTOOL) --as=$(AS) -k --dllname $*.dll --output-lib $@' - case "$MOZ_TARGET" in + if test -n "$USE_DEBUG_RTL"; then + OBJDIR_SUFFIX=OBJD + else + OBJDIR_SUFFIX=OBJ + fi + + OBJDIR_NAME="${OS_CONFIG}${CPU_ARCH_TAG}${OBJDIR_TAG}.${OBJDIR_SUFFIX}" + OBJDIR='${OBJDIR_NAME}' + + OS_DLLFLAGS='-nologo -DLL -SUBSYSTEM:WINDOWS -PDB:NONE' + + case "$MOZ_WIN32_TARGET" in WINNT) - DEFINES="$DEFINES -DWIN32 -DWINNT -DWin32_Winsock" MDCPUCFG_H=_winnt.cfg ;; WIN95) - DEFINES="$DEFINES -UWINNT -DWIN32 -DWIN95 -DWin32_Winsock -D_PR_GLOBAL_THREADS_ONLY" MDCPUCFG_H=_win95.cfg ;; WIN16) - DEFINES="$DEFINES -UWINNT" MDCPUCFG_H=_win16.cfg ;; *) - AC_MSG_ERROR([Missing MOZ_TARGET for ${target}. Use --enable-target to set.]) + AC_MSG_ERROR([Missing MOZ_WIN32_TARGET for ${target}. Use --enable-win32-target to set.]) ;; esac - case "$target" in - i?86-*) + case "$target_cpu" in + i?86) AC_DEFINE(_X86_) ;; - alpha-*) + alpha) AC_DEFINE(_ALPHA_) ;; - mips-*) + 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 -pipe" + CXXFLAGS="$CXXFLAGS -fPIC -Wall -pipe" + DSO_LDOPTS=-G + fi + MDCPUCFG_H=_ncr.cfg + PR_MD_CSRCS=ncr.c + ;; + +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 + MDCPUCFG_H=_nec.cfg + PR_MD_CSRCS=nec.c + ;; + +*-netbsd*) + AC_DEFINE(XP_UNIX) + AC_DEFINE(NETBSD) + AC_DEFINE(HAVE_BSD_FLOCK) + if test -z "$OBJECT_FMT"; then + if echo __ELF__ | ${CC-cc} -E - | grep -q __ELF__ 2>/dev/null; then + OBJECT_FMT=a.out; + else + OBJECT_FMT=ELF + fi + fi + if test "$OBJECT_FMT" = "ELF"; then + DLL_SUFFIX=so + else + DLL_SUFFIX=so.1.0 + fi + CFLAGS="$CFLAGS -ansi -Wall -pipe" + CXXFLAGS="$CXXFLAGS -ansi -Wall -pipe" + DSO_CFLAGS='-fPIC -DPIC' + DSO_LDOPTS='-x -shared' + if test "$LIBRUNPATH"; then + DSO_LDOPTS="$DSO_LDOPTS -R$(LIBRUNPATH)" + fi + MDCPUCFG_H=_netbsd.cfg + PR_MD_CSRCS=netbsd.c + ;; + +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 + MDCPUCFG_H=_sony.cfg + PR_MD_CSRCS=sony.c + ;; + +*-nextstep*|*-openstep*) + AC_DEFINE(XP_UNIX) + AC_DEFINE(NEXTSTEP) + AC_DEFINE(HAVE_BSD_FLOCK) + AC_DEFINE(_POSIX_SOURCE) + CFLAGS="$CFLAGS -Wall -fno-common -pipe -traditional-cpp -posix" + CXXFLAGS="$CXXFLAGS -Wall -fno-common -pipe -traditional-cpp -posix" + USE_NSPR_THREADS=1 + DLL_SUFFIX=dylib + MDCPUCFG_H=_nextstep.cfg + PR_MD_CSRCS=nextstep.c + ;; + + *-nto*) AC_DEFINE(XP_UNIX) + AC_DEFINE(NTO) + AC_DEFINE(_QNX_SOURCE) + AC_DEFINE(HAVE_POINTER_LOCALTIME_R) MDCPUCFG_H=_nto.cfg PR_MD_CSRCS=nto.c - MKSHLIB='qcc -Vgcc_ntox86 -shared -Wl,-h$(@:$(OBJDIR)/%.so=%.so) -o $(@:$(OBJDIR)/%.so=%.so)' - CFLAGS="$CFLAGS -Wc,-Wall -Wc,-Wno-parentheses -DNTO -D_QNX_SOURCE -DHAVE_POINTER_LOCALTIME_R -shared" - OS_LIBS="-lsocket" - _OPTIMIZE_FLAGS="-O2" - _DEBUG_FLAGS="-O2 -gdwarf-2" + MKSHLIB='qcc -Vgcc_ntox86 -shared -Wl,-h$(@:$(OBJDIR)/%.so=%.so) -M -o $(@:$(OBJDIR)/%.so=%.so)' + CFLAGS="$CFLAGS -Wc,-Wall -Wc,-Wno-parentheses -shared" + OS_LIBS="$OS_LIBS -lsocket" + _OPTIMIZE_FLAGS="-O1" + _DEBUG_FLAGS="-O1 -gstabs" COMPILER_TAG="_qcc" CC="qcc -Vgcc_ntox86 -w" - CXX="QCC -Vgcc_ntox86 -w" - CPP="qcc -Vgcc_ntox86 -w" + CXX='$(CC)' LD="qcc -Vgcc_ntox86 -nostdlib" - AR="qcc -Vgcc_ntox86 -M -a " - AR_FLAGS="$@" + AR="qcc -Vgcc_ntox86 -M -a $@" + AR_FLAGS= ;; +*-openbsd*) + AC_DEFINE(XP_UNIX) + AC_DEFINE(OPENBSD) + AC_DEFINE(HAVE_BSD_FLOCK) + CFLAGS="$CFLAGS -ansi -Wall -pipe" + CXXFLAGS="$CXXFLAGS -ansi -Wall -pipe" + DLL_SUFFIX=so.1.0 + DSO_CFLAGS=-fPIC + MDCPUCFG_H=_openbsd.cfg + PR_MD_CSRCS=openbsd.c + USE_NSPR_THREADS=1 + case "$OS_TEST" in + alpha|mips|pmax) + DSO_LDOPTS=-shared ;; + *) + DSO_LDOPTS=-Bshareable ;; + esac + ;; + +*-openvms*) + AC_DEFINE(XP_UNIX) + AC_DEFINE(VMS) + AC_DEFINE(VMS_AS_IS) + AC_DEFINE(_SOCKADDR_LEN) + AC_DEFINE(GENERIC_PTHREAD_REDEFINES) + RESOLVE_LINK_SYMBOLS=1 + CROSS_COMPILE=1 + _HAVE_PTHREADS=1 + HOST_CC=c89 + HOST_CXX=cxx + HOST_CFLAGS=-O + HOST_CXXFLAGS=-O + CC=ccc + CXX=ccc + CFLAGS="$CFLAGS -Wc,names=\(short,as\)" + CXXFLAGS="$CXXFLAGS -Wc,names=\(short,as\)" + MDCPUCFG_H=_openvms.cfg + PR_MD_CSRCS=openvms.c + MKSHLIB='vmsld $(OPTIMIZER)' + ;; + +*-osf*) + AC_DEFINE(XP_UNIX) + AC_DEFINE(OSF1) + + 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='-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_POINTER_LOCALTIME_R) + AC_DEFINE(OSF1_HAVE_MACHINE_BUILTINS_H) + fi + DSO_LDOPTS='-shared -all -expect_unresolved "*" -soname $(notdir $@)' + MDCPUCFG_H=_osf1.cfg + PR_MD_CSRCS=osf1.c + ;; + +*-qnx*) + AC_DEFINE(XP_UNIX) + AC_DEFINE(QNX) + AC_DEFINE(_PR_NEED_H_ERRNO) + USE_NSPR_THREADS=1 + MDCPUCFG_H=_qnx.cfg + PR_MD_CSRCS=qnx.c + ;; + +*-rhapsody*) + AC_DEFINE(XP_UNIX) + AC_DEFINE(RHAPSODY) + AC_DEFINE(HAVE_BSD_FLOCK) + CFLAGS="$CFLAGS -Wmost -fno-common -pipe" + if echo $OS_TEST | grep -c 86 2>/dev/null; then + CFLAGS="$CFLAGS -mno-486" + AC_DEFINE(i386) + CPU_ARCH=i386 + else + AC_DEFINE(ppc) + CPU_ARCH=ppc + fi + DSO_LDOPTS='-dynamiclib -compatibility_version 1 -current_version 1 -all_load' + MKSHLIB='$(CC) -arch $(CPU_ARCH) $(DSO_LDOPTS) -o $@' + DLL_SUFFIX=dylib + USE_PTHREADS=1 + MDCPUCFG_H=_rhapsody.cfg + PR_MD_CSRCS=rhapsody.c + ;; + +*-*-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' + MDCPUCFG_H=_scoos.cfg + PR_MD_SRCS=scoos.c + ;; + +*-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 + CFLAGS="$CFLAGS -pipe" + 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 + MDCPUCFG_H=_reliantunix.cfg + PR_MD_CSRCS=reliantunix.c + if test "${OS_ARCH}" = "mips"; then + PR_MD_ASFILES=os_ReliantUNIX.s + fi + ;; + +*-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 + MDCPUCFG_H=_sunos4.cfg + PR_MD_CSRCS=sunos4.c + ;; + *-solaris*) AC_DEFINE(XP_UNIX) AC_DEFINE(SVR4) @@ -675,11 +1392,10 @@ case "$target" in if test -z "$GNU_AS"; then ASFLAGS="$ASFLAGS -Wa,-P" fi - NOSUCHFILE=/no-such-file if test -n "$GNU_CC"; then if test -n "$USE_MDUPDATE"; then - CFLAGS="$CFLAGS -MDupdate" - CXXFLAGS="$CXXFLAGS -MDupdate" + CFLAGS="$CFLAGS -MDupdate \$(DEPENDENCIES)" + CXXFLAGS="$CXXFLAGS -MDupdate \$(DEPENDENCIES)" fi else CC="$CC -xstrconst" @@ -693,7 +1409,7 @@ case "$target" in CC="$CC -xarch=v9" CXX="$CXX -xarch=v9" fi - if test "${target_cpu}" = "i386"; then + if test "$OS_TEST" = "i86pc"; then AC_DEFINE(i386) if test -n "$MOZ_DEBUG" && test -n "$GNU_CC"; then _DEBUG_FLAGS="$_DEBUG_FLAGS -gstabs" @@ -719,13 +1435,111 @@ case "$target" in fi ;; esac - if test "${target_cpu}" = "sun4u"; then + if test "$OS_TEST" = "sun4u"; then ULTRASPARC_LIBRARY=ultrasparc ULTRASPARC_FILTER_LIBRARY=libatomic.so DSO_LDOPTS="$DSO_LDOPTS -f "'$(ULTRASPARC_FILTER_LIBRARY)' 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' + MDCPUCFG_H=_unixware.cfg + else + AC_DEFINE(_LARGEFILE64_SOURCE) + AC_DEFINE(_PR_HAVE_OFF64_T) + AC_DEFINE(_PR_HAVE_SOCKADDR_LEN) + MDCPUCFG_H=_unixware7.cfg + fi + PR_MD_CSRCS=unixware.c + DSO_LDOPTS=-G + CPU_ARCH=x86 + ;; + +*-os2*) + AC_DEFINE(XP_OS2) + AC_DEFINE(BSD_SELECT) + AC_DEFINE(XP_PC) + AC_DEFINE(_PR_GLOBAL_THREADS_ONLY) + OBJ_SUFFIX=obj + LIB_SUFFIX=lib + DLL_SUFFIX=dll + DLLTOOL='' + RC=rc.exe + PR_MD_ARCH_DIR=os2 + PROG_SUFFIX=.exe + NSINSTALL=nsinstall + MDCPUCFG_H=_os2.cfg + RESOLVE_LINK_SYMBOLS=1 + + case "$target" in + *-os2_emx) + AC_DEFINE(XP_OS2_EMX) + AC_DEFINE(OS2) + AR=emxomfar + AR_FLAGS='-p256 r $@' + CFLAGS="-Zmtd -Zomf" + HOST_CFLAGS="$CFLAGS" + CXXFLAGS="-Zmtd -Zomf" + OS_LIBS="-lsocket -lemxio" + LD='$(CC)' + IMPLIB='emximp -o' + FILTER='emxexp' + OS_DLLFLAGS='$(DSO_LDOPTS) -o $@' + _OPTIMIZE_FLAGS=-O3 + _DEBUG_FLAGS=-g + if test -n "$MOZ_DEBUG"; then + DLLFLAGS='-g' + EXEFLAGS='-g $(OMF_FLAG) -Zmtd -L$(DIST)/lib -o $@' + DSO_LDOPTS='-g -Zomf -Zdll -Zmt -Zcrtdll -Zlinker /NOO' + else + DLLFLAGS= + EXEFLAGS='-Zmtd -o $@' + DSO_LDOPTS='-Zomf -Zdll -Zmt -Zcrtdll -Zlinker /NOO' + fi + ;; + *-os2_vacpp) + AC_DEFINE(XP_OS2_VACPP) + AC_DEFINE(OS2,4) + AC_DEFINE(TCPV40HDRS) + AC_DEFINE(_X86_) + AR=-ilib + AR_FLAGS='/NOL /NOI /O:$(subst /,\\,$@)' + CFLAGS='/Q /qlibansi /Gd+ /Gm+ /Su4 /Mp /Tl-' + HOST_CFLAGS="$CFLAGS" + OS_CFLAGS='/Q /qlibansi /Gd+ /Gm+ /Su4 /Ge- /Tl-' + OS_EXE_CFLAGS='/Q /qlibansi /Gd+ /Gm+ /Su4 /Ge+ /Tl-' + CXXFLAGS='/Q /qlibansi /Gd+ /Gm+ /Su4 /Mp /Tl-' + OS_LIBS='so32dll.lib tcp32dll.lib' + LD='-ilink' + LDFLAGS='/FREE /DE /NOE /LINENUMBERS /nologo' + MKSHLIB='$(LD) $(DSO_LDOPTS)' + IMPLIB='implib -nologo -noignorecase' + FILTER='cppfilt -q -B -P' + _OPTIMIZE_FLAGS=/O+ + _DEBUG_FLAGS=/Ti+ + if test -n "$MOZ_DEBUG"; then + DLLFLAGS='/O:$@ /DLL /INC:_dllentry /MAP:$(@:.dll=.map) /nologo /DEBUG /NOE' + EXEFLAGS='/OUT:$@ /PMTYPE:VIO /MAP:$(@:.exe=.map) /nologo /DEBUG /NOE' + else + DLLFLAGS='/O:$@ /DLL /INC:_dllentry /MAP:$(@:.dll=.map) /nologo' + EXEFLAGS='/OUT:$@ /PMTYPE:VIO /MAP:$(@:.exe=.map) /nologo' + fi + LIBNSPR='$(dist_libdir)/nspr$(MOD_MAJOR_VERSION).$(LIB_SUFFIX)' + LIBPLC='$(dist_libdir)/plc$(MOD_MAJOR_VERSION).$(LIB_SUFFIX)' + ;; + esac + + ;; + *) AC_DEFINE(XP_UNIX) ;; @@ -737,6 +1551,7 @@ if test "$enable_shared" = no; then MKSHLIB= fi +if test -z "$SKIP_LIBRARY_CHECKS"; then dnl ======================================================== dnl Check for system libraries dnl ======================================================== @@ -764,6 +1579,10 @@ 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 ======================================================== @@ -806,15 +1625,51 @@ dnl ======================================================== dnl Check options dnl ======================================================== -AC_CHECK_LIB(pthread, pthread_attr_init, - _HAVE_PTHREADS=1 _PTHREAD_LDFLAGS="-lpthread", - AC_CHECK_LIB(c_r, pthread_attr_init, - _HAVE_PTHREADS=1 _PTHREAD_LDFLAGS="-lc_r", - AC_CHECK_LIB(c, pthread_attr_init, - _HAVE_PTHREADS=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 @@ -877,8 +1732,10 @@ case "$target" in ;; esac +fi # SKIP_LIBRARY_CHECKS + AC_ARG_ENABLE(cplus, - [ --enable-cplus Use cplus for whatever reason], + [ --enable-cplus Enable some c++ api routines], [ if test "$enableval" = "yes"; then USE_CPLUS=1 fi]) @@ -889,6 +1746,14 @@ AC_ARG_ENABLE(ipv6, USE_IPV6=1 fi]) + +AC_ARG_ENABLE(boehm, + [ --enable-boehm Enable the Boehm Garbage Collector], + [ if test "$enableval" = "yes"; then + AC_DEFINE(GC_LEAK_DETECTOR) + GC_LEAK_DETECTOR=1 + fi]) + if test -n "$USE_PTHREADS"; then dnl See if -pthread is supported. rm -f conftest* @@ -906,73 +1771,109 @@ if test -n "$USE_PTHREADS"; then 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 - *-mingw*|*-cygwin*|*-uwin*) + *-mingw*|*-cygwin*|*-uwin*|*-msvc*) ;; *-solaris*) AC_DEFINE(_REENTRANT) + if test "$ac_cv_have_dash_pthreads" = "yes"; then + _PTHREAD_LDFLAGS= + fi ;; - *-freebsd*) + *-freebsd*|*-openbsd*|*-bsdi*|*-netbsd*) AC_DEFINE(_REENTRANT) AC_DEFINE(_THREAD_SAFE) dnl -pthread links in -lc_r, so don't specify it explicitly. if test "$ac_cv_have_dash_pthread" = "yes"; then - PTHREAD_LDFLAGS= + _PTHREAD_LDFLAGS= fi ;; - *-hpuxB.10.10*) - AC_DEFINE(_REENTRANT) - AC_DEFINE(_PR_DCETHREADS) - ;; - *-hpuxB.10.20*) - AC_DEFINE(_REENTRANT) - AC_DEFINE(_PR_DCETHREADS) - ;; - *-hpux*) - AC_DEFINE(_POSIX_C_SOURCE=199506L) - ;; *) AC_DEFINE(_REENTRANT) ;; esac - AC_CHECK_FUNC(pthread_create,,[ - AC_CHECK_LIB(pthread, pthread_create, [OS_LIBS="-lpthread $OS_LIBS"]) - ]) - else if test -n "$USE_USER_PTHREADS"; then USE_PTHREADS= USE_NSPR_THREADS= else - USE_NSPR_THREADS=1 - dnl AC_DEFINE(_PR_LOCAL_THREADS_ONLY) + _PTHREAD_LDFLAGS= + if test -n "$USE_NSPR_THREADS"; then + AC_DEFINE(_PR_LOCAL_THREADS_ONLY) + fi fi fi dnl Special thread exceptions case "$target" in -*-aix4.1*) - if test -z "$USE_PTHREADS"; then - AC_DEFINE(AIX_RENAME_SELECT) +*-aix*) + if test -n "$USE_NSPR_THREADS"; then + OS_LIBS="$OS_LIBS -lc" + else + OS_LIBS="$OS_LIBS -lc_r" fi + case "$target_os" in + aix4.1*) + if test -z "$USE_PTHREADS"; then + AC_DEFINE(AIX_RENAME_SELECT) + fi + ;; + aix4.[23]*) + if test -z "$USE_NSPR_THREADS"; then + AC_DEFINE(HAVE_POINTER_LOCALTIME_R) + fi + ;; + esac ;; -*-aix4.[23]*) - if test -z "$USE_NSPR_THREADS"; then - AC_DEFINE(HAVE_POINTER_LOCALTIME_R) +*-bsdi*) + if test -n "$USE_PTHREADS"; then + AC_DEFINE(_PR_NEED_PTHREAD_INIT) fi ;; *-hpux*) - if test -n "$USE_USER_PTHREADS"; then - AC_DEFINE(_POSIX_C_SOURCE=199506L) + 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) + fi + fi + if test "$USE_USER_PTHREADS"; then + AC_DEFINE_UNQUOTED(_POSIX_C_SOURCE,199506L) fi ;; -*-mingw*|*-cygwin*|*-uwin*) +*-mingw*|*-cygwin*|*-uwin*|*-msvc*) dnl win32 does not use pthreads USE_PTHREADS= - PTHREAD_LDFLAGS= + _PTHREAD_LDFLAGS= USE_USER_PTHREADS= ;; +*-netbsd*) + if test -z "$USE_PTHREADS"; then + OS_LIBS="$OS_LIBS -lc" + fi + ;; *-solaris*) if test -n "$USE_NATIVE_THREADS"; then AC_DEFINE(_PR_GLOBAL_THREADS_ONLY) @@ -984,7 +1885,7 @@ case "$target" in if test -z "$USE_USER_PTHREADS"; then AC_DEFINE(_REENTRANT) AC_DEFINE(HAVE_POINTER_LOCALTIME_R) - if test "${target_cpu}" = "i386"; then + if test "$OS_TEST" = "i86pc"; then PR_MD_ASFILES=os_SunOS_x86.s else PR_MD_ASFILES=os_SunOS.s @@ -996,9 +1897,13 @@ case "$target" in ;; esac -AC_CHECK_FUNC(dlopen,,[ - AC_CHECK_LIB(dl, dlopen, [OS_LIBS="-ldl $OS_LIBS"]) -]) +OS_LIBS="$_PTHREAD_LDFLAGS $OS_LIBS" + +dnl If the user passed in arg to --enable-optimize, +dnl make sure that we use it. +if test -n "$_SAVE_OPTIMIZE_FLAGS"; then + _OPTIMIZE_FLAGS="$_SAVE_OPTIMIZE_FLAGS" +fi if test -n "$MOZ_OPTIMIZE"; then CFLAGS="$CFLAGS $_OPTIMIZE_FLAGS" @@ -1018,15 +1923,20 @@ 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(GC_LEAK_DETECTOR) AC_SUBST(USE_PTHREADS) AC_SUBST(USE_BTHREADS) @@ -1034,13 +1944,19 @@ AC_SUBST(USE_USER_PTHREADS) AC_SUBST(USE_NATIVE_THREADS) AC_SUBST(USE_NSPR_THREADS) -AC_SUBST(NSPR_VERSION) +AC_SUBST(LIBNSPR) +AC_SUBST(LIBPLC) + +AC_SUBST(MOD_MAJOR_VERSION) +AC_SUBST(MOD_MINOR_VERSION) +AC_SUBST(MOD_REVISION_VERSION) AC_SUBST(NSPR_MODNAME) AC_SUBST(MDCPUCFG_H) -AC_SUBST(MOZ_TARGET) +AC_SUBST(MOZ_WIN32_TARGET) AC_SUBST(PR_MD_CSRCS) AC_SUBST(PR_MD_ASFILES) AC_SUBST(PR_MD_ARCH_DIR) +AC_SUBST(CPU_ARCH) AC_SUBST(OBJ_SUFFIX) AC_SUBST(LIB_SUFFIX) @@ -1065,6 +1981,9 @@ AC_SUBST(DLLTOOL) 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) @@ -1074,53 +1993,63 @@ 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(CPU_ARCH_TAG) +AC_SUBST(DLLFLAGS) +AC_SUBST(EXEFLAGS) +AC_SUBST(OS_DLLFLAGS) + dnl ======================================================== dnl Generate output files. dnl ======================================================== -AC_OUTPUT([ +MAKEFILES=" Makefile config/Makefile config/autoconf.mk config/nsprincl.mk config/nsprincl.sh +config/nspr-config lib/Makefile lib/ds/Makefile lib/libc/Makefile lib/libc/include/Makefile lib/libc/src/Makefile -lib/msgc/Makefile -lib/msgc/include/Makefile -lib/msgc/src/Makefile -lib/msgc/tests/Makefile -lib/prstreams/Makefile -lib/tests/Makefile pr/Makefile pr/include/Makefile pr/include/md/Makefile pr/include/obsolete/Makefile pr/include/private/Makefile pr/src/Makefile -pr/src/bthreads/Makefile -pr/src/cplus/Makefile -pr/src/cplus/tests/Makefile pr/src/io/Makefile pr/src/linking/Makefile pr/src/malloc/Makefile pr/src/md/Makefile -pr/src/md/beos/Makefile -pr/src/md/os2/Makefile -pr/src/md/unix/Makefile -pr/src/md/windows/Makefile +pr/src/md/${PR_MD_ARCH_DIR}/Makefile pr/src/memory/Makefile pr/src/misc/Makefile -pr/src/pthreads/Makefile pr/src/threads/Makefile -pr/src/threads/combined/Makefile pr/tests/Makefile pr/tests/dll/Makefile -pr/tests/w16gui/Makefile -tools/Makefile -]) +" + +dnl lib/tests/Makefile +dnl pr/tests/w16gui/Makefile +dnl tools/Makefile + +if test -z "$USE_PTHREADS" && test -z "$USE_BTHREADS"; then + MAKEFILES="$MAKEFILES pr/src/threads/combined/Makefile" +elif test -n "$USE_PTHREADS"; then + MAKEFILES="$MAKEFILES pr/src/pthreads/Makefile" +elif test -n "$USE_BTHREADS"; then + MAKEFILES="$MAKEFILES pr/src/bthreads/Makefile" +fi + +if test -n "$USE_CPLUS"; then + MAKEFILES="$MAKEFILES pr/src/cplus/Makefile pr/src/cplus/tests/Makefile" +fi -dnl lib/prstreams/tests/testprstrm/Makefile -dnl lib/tests/windows/makefile +AC_OUTPUT([$MAKEFILES], [chmod +x config/nspr-config]) |