Bug 975011 - Allow js/src/configure to invoke the in-tree NSPR configure. r=glandium

This commit is contained in:
Steve Fink 2014-02-25 14:15:16 -08:00
parent 6492121503
commit d313788ccc
6 changed files with 291 additions and 205 deletions

1
aclocal.m4 vendored
View File

@ -11,6 +11,7 @@ builtin(include, build/autoconf/toolchain.m4)dnl
builtin(include, build/autoconf/ccache.m4)dnl
builtin(include, build/autoconf/wrapper.m4)dnl
builtin(include, build/autoconf/nspr.m4)dnl
builtin(include, build/autoconf/nspr-build.m4)dnl
builtin(include, build/autoconf/nss.m4)dnl
builtin(include, build/autoconf/pkg.m4)dnl
builtin(include, build/autoconf/codeset.m4)dnl

View File

@ -0,0 +1,269 @@
dnl This Source Code Form is subject to the terms of the Mozilla Public
dnl License, v. 2.0. If a copy of the MPL was not distributed with this
dnl file, You can obtain one at http://mozilla.org/MPL/2.0/.
AC_DEFUN([MOZ_CONFIG_NSPR], [
ifelse([$1],,define(CONFIGURING_JS,yes))
dnl Possible ways this can be called:
dnl from toplevel configure:
dnl JS_STANDALONE= BUILDING_JS=
dnl from js/src/configure invoked by toplevel configure:
dnl JS_STANDALONE= BUILDING_JS=1
dnl from standalone js/src/configure:
dnl JS_STANDALONE=1 BUILDING_JS=1
dnl ========================================================
dnl = Find the right NSPR to use.
dnl ========================================================
MOZ_ARG_WITH_STRING(nspr-cflags,
[ --with-nspr-cflags=FLAGS
Pass FLAGS to CC when building code that uses NSPR.
Use this when there's no accurate nspr-config
script available. This is the case when building
SpiderMonkey as part of the Mozilla tree: the
top-level configure script computes NSPR flags
that accomodate the quirks of that environment.],
NSPR_CFLAGS=$withval)
MOZ_ARG_WITH_STRING(nspr-libs,
[ --with-nspr-libs=LIBS Pass LIBS to LD when linking code that uses NSPR.
See --with-nspr-cflags for more details.],
NSPR_LIBS=$withval)
ifdef([CONFIGURING_JS],[
MOZ_ARG_ENABLE_BOOL(nspr-build,
[ --enable-nspr-build Configure and build NSPR from source tree],
MOZ_BUILD_NSPR=1,
MOZ_BUILD_NSPR=)
])
if test -z "$BUILDING_JS" || test -n "$JS_STANDALONE"; then
_IS_OUTER_CONFIGURE=1
fi
MOZ_ARG_WITH_BOOL(system-nspr,
[ --with-system-nspr Use an NSPR that is already built and installed.
Use the 'nspr-config' script in the current path,
or look for the script in the directories given with
--with-nspr-exec-prefix or --with-nspr-prefix.
(Those flags are only checked if you specify
--with-system-nspr.)],
_USE_SYSTEM_NSPR=1 )
if test -z "$BUILDING_JS"; then
JS_THREADSAFE=1
fi
JS_POSIX_NSPR=unset
ifdef([CONFIGURING_JS],[
if test -n "$JS_STANDALONE"; then
case "$target" in
*linux*|*darwin*|*dragonfly*|*freebsd*|*netbsd*|*openbsd*)
if test -z "$_HAS_NSPR" && test "$JS_THREADSAFE"; then
JS_POSIX_NSPR_DEFAULT=1
fi
;;
esac
fi
MOZ_ARG_ENABLE_BOOL(posix-nspr-emulation,
[ --enable-posix-nspr-emulation
Enable emulation of NSPR for POSIX systems],
JS_POSIX_NSPR=1,
JS_POSIX_NSPR=)
])
dnl Pass at most one of
dnl --with-system-nspr
dnl --with-nspr-cflags/libs
dnl --enable-nspr-build
dnl --enable-posix-nspr-emulation
AC_MSG_CHECKING([NSPR selection])
nspr_opts=
which_nspr=default
if test -n "$_USE_SYSTEM_NSPR"; then
nspr_opts="x$nspr_opts"
which_nspr="system"
fi
if test -n "$NSPR_CFLAGS" -o -n "$NSPR_LIBS"; then
nspr_opts="x$nspr_opts"
which_nspr="command-line"
fi
if test -n "$MOZ_BUILD_NSPR"; then
nspr_opts="x$nspr_opts"
which_nspr="source-tree"
fi
if test "$JS_POSIX_NSPR" = unset; then
JS_POSIX_NSPR=
else
nspr_opts="x$nspr_opts"
which_nspr="posix-wrapper"
fi
if test -z "$nspr_opts"; then
if test -z "$BUILDING_JS"; then
dnl Toplevel configure defaults to using nsprpub from the source tree
MOZ_BUILD_NSPR=1
which_nspr="source-tree"
else
dnl JS configure defaults to emulated NSPR if available, falling back
dnl to nsprpub.
if test -n "$JS_THREADSAFE"; then
JS_POSIX_NSPR="$JS_POSIX_NSPR_DEFAULT"
if test -z "$JS_POSIX_NSPR"; then
MOZ_BUILD_NSPR=1
which_nspr="source-tree"
else
which_nspr="posix-wrapper"
fi
else
which_nspr="none"
fi
fi
fi
if test -z "$nspr_opts" || test "$nspr_opts" = x; then
AC_MSG_RESULT($which_nspr)
else
AC_MSG_ERROR([only one way of using NSPR may be selected. See 'configure --help'.])
fi
AC_SUBST(MOZ_BUILD_NSPR)
if test -n "$BUILDING_JS"; then
if test "$JS_POSIX_NSPR" = 1; then
AC_DEFINE(JS_POSIX_NSPR)
fi
AC_SUBST(JS_POSIX_NSPR)
fi
# A (sub)configure invoked by the toplevel configure will always receive
# --with-nspr-libs on the command line. It will never need to figure out
# anything itself.
if test -n "$_IS_OUTER_CONFIGURE"; then
if test -n "$_USE_SYSTEM_NSPR"; then
AM_PATH_NSPR($NSPR_MINVER, [MOZ_NATIVE_NSPR=1], [AC_MSG_ERROR([you do not have NSPR installed or your version is older than $NSPR_MINVER.])])
fi
if test -n "$MOZ_NATIVE_NSPR" -o -n "$NSPR_CFLAGS" -o -n "$NSPR_LIBS"; then
_SAVE_CFLAGS=$CFLAGS
CFLAGS="$CFLAGS $NSPR_CFLAGS"
AC_TRY_COMPILE([#include "prtypes.h"],
[#ifndef PR_STATIC_ASSERT
#error PR_STATIC_ASSERT not defined or requires including prtypes.h
#endif],
,
AC_MSG_ERROR([system NSPR does not support PR_STATIC_ASSERT or including prtypes.h does not provide it]))
AC_TRY_COMPILE([#include "prtypes.h"],
[#ifndef PR_UINT64
#error PR_UINT64 not defined or requires including prtypes.h
#endif],
,
AC_MSG_ERROR([system NSPR does not support PR_UINT64 or including prtypes.h does not provide it]))
CFLAGS=$_SAVE_CFLAGS
elif test -z "$JS_POSIX_NSPR" -a -n "$JS_THREADSAFE"; then
if test -z "$LIBXUL_SDK"; then
NSPR_CFLAGS="-I${LIBXUL_DIST}/include/nspr"
if test -n "$GNU_CC"; then
NSPR_LIBS="-L${LIBXUL_DIST}/lib -lnspr${NSPR_VERSION} -lplc${NSPR_VERSION} -lplds${NSPR_VERSION}"
else
NSPR_LIBS="${LIBXUL_DIST}/lib/nspr${NSPR_VERSION}.lib ${LIBXUL_DIST}/lib/plc${NSPR_VERSION}.lib ${LIBXUL_DIST}/lib/plds${NSPR_VERSION}.lib "
fi
else
NSPR_CFLAGS=`"${LIBXUL_DIST}"/sdk/bin/nspr-config --prefix="${LIBXUL_DIST}" --includedir="${LIBXUL_DIST}/include/nspr" --cflags`
NSPR_LIBS=`"${LIBXUL_DIST}"/sdk/bin/nspr-config --prefix="${LIBXUL_DIST}" --libdir="${LIBXUL_DIST}"/lib --libs`
fi
fi
AC_SUBST(NSPR_CFLAGS)
AC_SUBST(NSPR_LIBS)
NSPR_PKGCONF_CHECK="nspr"
if test -n "$MOZ_NATIVE_NSPR"; then
# piggy back on $MOZ_NATIVE_NSPR to set a variable for the nspr check for js.pc
NSPR_PKGCONF_CHECK="nspr >= $NSPR_MINVER"
_SAVE_CFLAGS=$CFLAGS
CFLAGS="$CFLAGS $NSPR_CFLAGS"
AC_TRY_COMPILE([#include "prlog.h"],
[#ifndef PR_STATIC_ASSERT
#error PR_STATIC_ASSERT not defined
#endif],
,
AC_MSG_ERROR([system NSPR does not support PR_STATIC_ASSERT]))
CFLAGS=$_SAVE_CFLAGS
fi
AC_SUBST(NSPR_PKGCONF_CHECK)
fi # _IS_OUTER_CONFIGURE
])
AC_DEFUN([MOZ_SUBCONFIGURE_NSPR], [
if test -z "$MOZ_NATIVE_NSPR"; then
ac_configure_args="$_SUBDIR_CONFIG_ARGS --with-dist-prefix=$MOZ_BUILD_ROOT/dist --with-mozilla"
if test -z "$MOZ_DEBUG"; then
ac_configure_args="$ac_configure_args --disable-debug"
else
ac_configure_args="$ac_configure_args --enable-debug"
fi
if test "$MOZ_OPTIMIZE" = "1"; then
ac_configure_args="$ac_configure_args --enable-optimize"
elif test -z "$MOZ_OPTIMIZE"; then
ac_configure_args="$ac_configure_args --disable-optimize"
fi
if test -n "$HAVE_64BIT_OS"; then
ac_configure_args="$ac_configure_args --enable-64bit"
fi
if test -n "$USE_ARM_KUSER"; then
ac_configure_args="$ac_configure_args --with-arm-kuser"
fi
# A configure script generated by autoconf 2.68 does not allow the cached
# values of "precious" variables such as CFLAGS and LDFLAGS to differ from
# the values passed to the configure script. Since we modify CFLAGS and
# LDFLAGS before passing them to NSPR's configure script, we cannot share
# config.cache with NSPR. As a result, we cannot pass AS, CC, CXX, etc. to
# NSPR via a shared config.cache file and must pass them to NSPR on the
# configure command line.
for var in AS CC CXX CPP LD AR RANLIB STRIP; do
ac_configure_args="$ac_configure_args $var='`eval echo \\${${var}}`'"
done
# A configure script generated by autoconf 2.68 warns if --host is
# specified but --build isn't. So we always pass --build to NSPR's
# configure script.
ac_configure_args="$ac_configure_args --build=$build"
ac_configure_args="$ac_configure_args $NSPR_CONFIGURE_ARGS"
# Save these, so we can mess with them for the subconfigure ..
_SAVE_CFLAGS="$CFLAGS"
_SAVE_CPPFLAGS="$CPPFLAGS"
_SAVE_LDFLAGS="$LDFLAGS"
if test -n "$MOZ_LINKER" -a "$ac_cv_func_dladdr" = no ; then
# dladdr is supported by the new linker, even when the system linker doesn't
# support it. Trick nspr into using dladdr when it's not supported.
export CPPFLAGS="-include $_topsrcdir/mozglue/linker/dladdr.h $CPPFLAGS"
fi
export LDFLAGS="$LDFLAGS $NSPR_LDFLAGS"
export CFLAGS="$CFLAGS $MOZ_FRAMEPTR_FLAGS"
# Use a separate cache file for NSPR since it uses autoconf 2.68.
_save_cache_file="$cache_file"
cache_file=$_objdir/nsprpub/config.cache
AC_OUTPUT_SUBDIRS(nsprpub)
# .. and restore them
cache_file="$_save_cache_file"
CFLAGS="$_SAVE_CFLAGS"
CPPFLAGS="$_SAVE_CPPFLAGS"
LDFLAGS="$_SAVE_LDFLAGS"
ac_configure_args="$_SUBDIR_CONFIG_ARGS"
fi
])

View File

@ -53,6 +53,7 @@ dnl ========================================================
MOZJPEG=62
MOZPNG=10610
NSPR_VERSION=4
NSPR_MINVER=4.10.3
NSS_VERSION=3
dnl Set the minimum version of toolkit libs used by mozilla
@ -131,7 +132,7 @@ EOF
exit 1
break
fi
MOZ_BUILD_ROOT=`pwd`
MOZ_BUILD_ROOT=`pwd -W 2>/dev/null || pwd`
MOZ_PYTHON
@ -2200,7 +2201,6 @@ ia64*-hpux*)
case "$host" in
*-mingw*)
MOZ_BUILD_ROOT=`cd $MOZ_BUILD_ROOT && pwd -W`
if test -n "$L10NBASEDIR"; then
L10NBASEDIR=`cd $L10NBASEDIR && pwd -W`
fi
@ -3443,47 +3443,7 @@ MOZ_ARG_WITH_BOOL(system-libxul,
[ --with-system-libxul Use system installed libxul SDK],
SYSTEM_LIBXUL=1)
dnl ========================================================
dnl = If NSPR was not detected in the system,
dnl = use the one in the source tree (mozilla/nsprpub)
dnl ========================================================
MOZ_ARG_WITH_BOOL(system-nspr,
[ --with-system-nspr Use system installed NSPR],
_USE_SYSTEM_NSPR=1 )
if test -n "$_USE_SYSTEM_NSPR"; then
AM_PATH_NSPR(4.10.6, [MOZ_NATIVE_NSPR=1], [AC_MSG_ERROR([your don't have NSPR installed or your version is too old])])
fi
if test -n "$MOZ_NATIVE_NSPR"; then
_SAVE_CFLAGS=$CFLAGS
CFLAGS="$CFLAGS $NSPR_CFLAGS"
AC_TRY_COMPILE([#include "prtypes.h"],
[#ifndef PR_STATIC_ASSERT
#error PR_STATIC_ASSERT not defined or requires including prtypes.h
#endif],
[MOZ_NATIVE_NSPR=1],
AC_MSG_ERROR([system NSPR does not support PR_STATIC_ASSERT or including prtypes.h does not provide it]))
AC_TRY_COMPILE([#include "prtypes.h"],
[#ifndef PR_UINT64
#error PR_UINT64 not defined or requires including prtypes.h
#endif],
[MOZ_NATIVE_NSPR=1],
AC_MSG_ERROR([system NSPR does not support PR_UINT64 or including prtypes.h does not provide it]))
CFLAGS=$_SAVE_CFLAGS
else
if test -z "$LIBXUL_SDK"; then
NSPR_CFLAGS="-I${LIBXUL_DIST}/include/nspr"
if test -n "$GNU_CC"; then
NSPR_LIBS="-L${LIBXUL_DIST}/lib -lnspr${NSPR_VERSION} -lplc${NSPR_VERSION} -lplds${NSPR_VERSION}"
else
NSPR_LIBS="${LIBXUL_DIST}/lib/nspr${NSPR_VERSION}.lib ${LIBXUL_DIST}/lib/plc${NSPR_VERSION}.lib ${LIBXUL_DIST}/lib/plds${NSPR_VERSION}.lib "
fi
else
NSPR_CFLAGS=`"${LIBXUL_DIST}"/sdk/bin/nspr-config --prefix="${LIBXUL_DIST}" --includedir="${LIBXUL_DIST}/include/nspr" --cflags`
NSPR_LIBS=`"${LIBXUL_DIST}"/sdk/bin/nspr-config --prefix="${LIBXUL_DIST}" --libdir="${LIBXUL_DIST}"/lib --libs`
fi
fi
MOZ_CONFIG_NSPR()
dnl set GRE_MILESTONE
dnl ========================================================
@ -9176,70 +9136,10 @@ if test -n "$_WRAP_MALLOC"; then
_SUBDIR_CONFIG_ARGS="`echo $_SUBDIR_CONFIG_ARGS | sed -e 's/--enable-wrap-malloc *//'`"
fi
if test -z "$MOZ_NATIVE_NSPR"; then
ac_configure_args="$_SUBDIR_CONFIG_ARGS --with-dist-prefix=$MOZ_BUILD_ROOT/dist --with-mozilla"
if test -z "$MOZ_DEBUG"; then
ac_configure_args="$ac_configure_args --disable-debug"
else
ac_configure_args="$ac_configure_args --enable-debug"
MOZ_SUBCONFIGURE_NSPR()
if test -n "$MOZ_NO_DEBUG_RTL"; then
ac_configure_args="$ac_configure_args --disable-debug-rtl"
fi
fi
if test "$MOZ_OPTIMIZE" = "1"; then
ac_configure_args="$ac_configure_args --enable-optimize"
elif test -z "$MOZ_OPTIMIZE"; then
ac_configure_args="$ac_configure_args --disable-optimize"
fi
if test -n "$HAVE_64BIT_OS"; then
ac_configure_args="$ac_configure_args --enable-64bit"
fi
if test -n "$USE_ARM_KUSER"; then
ac_configure_args="$ac_configure_args --with-arm-kuser"
fi
# A configure script generated by autoconf 2.68 does not allow the cached
# values of "precious" variables such as CFLAGS and LDFLAGS to differ from
# the values passed to the configure script. Since we modify CFLAGS and
# LDFLAGS before passing them to NSPR's configure script, we cannot share
# config.cache with NSPR. As a result, we cannot pass AS, CC, CXX, etc. to
# NSPR via a shared config.cache file and must pass them to NSPR on the
# configure command line.
for var in AS CC CXX CPP LD AR RANLIB STRIP; do
ac_configure_args="$ac_configure_args $var='`eval echo \\${${var}}`'"
done
# A configure script generated by autoconf 2.68 warns if --host is
# specified but --build isn't. So we always pass --build to NSPR's
# configure script.
ac_configure_args="$ac_configure_args --build=$build"
ac_configure_args="$ac_configure_args $NSPR_CONFIGURE_ARGS"
# Save these, so we can mess with them for the subconfigure ..
_SAVE_CFLAGS="$CFLAGS"
_SAVE_CPPFLAGS="$CPPFLAGS"
_SAVE_LDFLAGS="$LDFLAGS"
if test -n "$MOZ_LINKER" -a "$ac_cv_func_dladdr" = no ; then
# dladdr is supported by the new linker, even when the system linker doesn't
# support it. Trick nspr into using dladdr when it's not supported.
export CPPFLAGS="-include $_topsrcdir/mozglue/linker/dladdr.h $CPPFLAGS"
fi
export LDFLAGS="$LDFLAGS $NSPR_LDFLAGS"
export CFLAGS="$CFLAGS $MOZ_FRAMEPTR_FLAGS"
# Use a separate cache file for NSPR since it uses autoconf 2.68.
_save_cache_file="$cache_file"
cache_file=$_objdir/nsprpub/config.cache
AC_OUTPUT_SUBDIRS(nsprpub)
# .. and restore them
cache_file="$_save_cache_file"
CFLAGS="$_SAVE_CFLAGS"
CPPFLAGS="$_SAVE_CPPFLAGS"
LDFLAGS="$_SAVE_LDFLAGS"
ac_configure_args="$_SUBDIR_CONFIG_ARGS"
fi
dnl ========================================================
dnl = Setup a nice relatively clean build environment for
@ -9262,10 +9162,14 @@ if test -n "$ENABLE_CLANG_PLUGIN"; then
AC_OUTPUT_SUBDIRS(build/clang-plugin)
fi
# Run the SpiderMonkey 'configure' script.
dist=$MOZ_BUILD_ROOT/dist
ac_configure_args="$_SUBDIR_CONFIG_ARGS"
# --with-system-nspr will have been converted into the relevant $NSPR_CFLAGS
# and $NSPR_LIBS.
ac_configure_args="`echo $ac_configure_args | sed -e 's/--with-system-nspr\S* *//'`"
ac_configure_args="$ac_configure_args --enable-threadsafe"
if test "$_INTL_API" = no; then
@ -9288,7 +9192,7 @@ fi
if test -z "$JSGC_GENERATIONAL" ; then
ac_configure_args="$ac_configure_args --disable-gcgenerational"
fi
if test -z "$MOZ_NATIVE_NSPR"; then
if test -n "$NSPR_CFLAGS" -o -n "$NSPR_LIBS"; then
ac_configure_args="$ac_configure_args --with-nspr-cflags='$NSPR_CFLAGS'"
ac_configure_args="$ac_configure_args --with-nspr-libs='$NSPR_LIBS'"
fi

1
js/src/aclocal.m4 vendored
View File

@ -12,6 +12,7 @@ builtin(include, ../../build/autoconf/ccache.m4)dnl
builtin(include, ../../build/autoconf/wrapper.m4)dnl
builtin(include, ../../build/autoconf/pkg.m4)dnl
builtin(include, ../../build/autoconf/nspr.m4)dnl
builtin(include, ../../build/autoconf/nspr-build.m4)dnl
builtin(include, ../../build/autoconf/codeset.m4)dnl
builtin(include, ../../build/autoconf/altoptions.m4)dnl
builtin(include, ../../build/autoconf/mozprog.m4)dnl

View File

@ -112,7 +112,7 @@ if test "$_conflict_files"; then
exit 1
break
fi
MOZ_BUILD_ROOT=`pwd`
MOZ_BUILD_ROOT=`pwd -W 2>/dev/null || pwd`
dnl Choose where to put the 'dist' directory.
dnl ==============================================================
@ -171,6 +171,7 @@ if test "$JS_STANDALONE" = no; then
JS_STANDALONE=
else
JS_STANDALONE=1
LIBXUL_DIST="$MOZ_BUILD_ROOT/dist"
AC_DEFINE(JS_STANDALONE)
fi
AC_SUBST(JS_STANDALONE)
@ -1721,12 +1722,6 @@ ia64*-hpux*)
no_x=yes
AC_DEFINE(NO_X11)
case "$host" in
*-mingw*)
MOZ_BUILD_ROOT=`cd $MOZ_BUILD_ROOT && pwd -W`
;;
esac
case "$host" in
*-mingw*)
if test -z "$MOZ_TOOLS"; then
@ -2758,34 +2753,6 @@ dnl =
dnl ========================================================
MOZ_ARG_HEADER(External Packages)
dnl ========================================================
dnl = Find the right NSPR to use.
dnl ========================================================
MOZ_ARG_WITH_BOOL(system-nspr,
[ --with-system-nspr Use an NSPR that is already built and installed.
Use the 'nspr-config' script in the current path,
or look for the script in the directories given with
--with-nspr-exec-prefix or --with-nspr-prefix.
(Those flags are only checked if you specify
--with-system-nspr.)],
_USE_SYSTEM_NSPR=1 )
MOZ_ARG_WITH_STRING(nspr-cflags,
[ --with-nspr-cflags=FLAGS
Pass FLAGS to CC when building code that uses NSPR.
Use this when there's no accurate nspr-config
script available. This is the case when building
SpiderMonkey as part of the Mozilla tree: the
top-level configure script computes NSPR flags
that accomodate the quirks of that environment.],
NSPR_CFLAGS=$withval)
MOZ_ARG_WITH_STRING(nspr-libs,
[ --with-nspr-libs=LIBS Pass LIBS to LD when linking code that uses NSPR.
See --with-nspr-cflags for more details.],
NSPR_LIBS=$withval)
AC_SUBST(NSPR_CFLAGS)
AC_SUBST(NSPR_LIBS)
JS_THREADSAFE=1
MOZ_ARG_DISABLE_BOOL(threadsafe,
[ --disable-threadsafe Disable support for multiple threads.],
@ -2797,64 +2764,7 @@ fi
JS_THREADSAFE_CONFIGURED=$JS_THREADSAFE
AC_SUBST(JS_THREADSAFE_CONFIGURED)
if test "$_USE_SYSTEM_NSPR" || (test "$NSPR_CFLAGS" -o "$NSPR_LIBS"); then
_HAS_NSPR=1
fi
case "$target" in
*linux*|*darwin*|*dragonfly*|*freebsd*|*netbsd*|*openbsd*)
if test -z "$_HAS_NSPR" && test "$JS_THREADSAFE"; then
JS_POSIX_NSPR_DEFAULT=1
fi
;;
esac
MOZ_ARG_ENABLE_BOOL(posix-nspr-emulation,
[ --enable-posix-nspr-emulation
Enable emulation of NSPR for POSIX systems],
JS_POSIX_NSPR=1,
JS_POSIX_NSPR=,
JS_POSIX_NSPR="$JS_POSIX_NSPR_DEFAULT" )
if test -n "$JS_POSIX_NSPR"; then
AC_DEFINE(JS_POSIX_NSPR)
fi
AC_SUBST(JS_POSIX_NSPR)
dnl Pass either --with-system-nspr or (--with-nspr-cflags and
dnl --with-nspr-libs), but not both.
if test "$_USE_SYSTEM_NSPR" && (test "$NSPR_CFLAGS" -o "$NSPR_LIBS"); then
AC_MSG_ERROR([--with-system-nspr and --with-nspr-libs/cflags are mutually exclusive.
See 'configure --help'.])
fi
dnl Can't use --enable-posix-nspr-emulation if compiling with NSPR.
if test "$_HAS_NSPR" && test "$JS_POSIX_NSPR"; then
AC_MSG_ERROR([--enable-posix-nspr-emulation is mututally exclusive with --with-system-nspr
and --with-nspr-libs/cflags. See 'configure --help'.])
fi
if test -n "$_USE_SYSTEM_NSPR"; then
MOZ_NATIVE_NSPR=
AM_PATH_NSPR($NSPR_MINVER, [MOZ_NATIVE_NSPR=1], [AC_MSG_ERROR([your don't have NSPR installed or your version is too old])])
fi
NSPR_PKGCONF_CHECK="nspr"
if test -n "$MOZ_NATIVE_NSPR"; then
# piggy back on $MOZ_NATIVE_NSPR to set a variable for the nspr check for js.pc
NSPR_PKGCONF_CHECK="nspr >= $NSPR_MINVER"
_SAVE_CFLAGS=$CFLAGS
CFLAGS="$CFLAGS $NSPR_CFLAGS"
AC_TRY_COMPILE([#include "prlog.h"],
[#ifndef PR_STATIC_ASSERT
#error PR_STATIC_ASSERT not defined
#endif],
[MOZ_NATIVE_NSPR=1],
AC_MSG_ERROR([system NSPR does not support PR_STATIC_ASSERT]))
CFLAGS=$_SAVE_CFLAGS
fi
AC_SUBST(NSPR_PKGCONF_CHECK)
MOZ_CONFIG_NSPR(js)
dnl ========================================================
dnl system zlib Support
@ -4041,7 +3951,6 @@ AC_SUBST(ac_configure_args)
AC_SUBST(TOOLCHAIN_PREFIX)
if test -n "$JS_STANDALONE"; then
MOZ_APP_NAME="mozjs"
MOZ_APP_VERSION="$MOZILLA_SYMBOLVERSION"
@ -4059,6 +3968,9 @@ AC_SUBST(JS_LIBRARY_NAME)
AC_SUBST(JS_CONFIG_MOZ_JS_LIBS)
AC_SUBST(JS_CONFIG_LIBS)
if test -n "$MOZ_BUILD_NSPR"; then
MOZ_SUBCONFIGURE_NSPR()
fi
MOZ_SUBCONFIGURE_FFI()
dnl Spit out some output

View File

@ -39,16 +39,15 @@ if not CONFIG['LIBXUL_SDK']:
if not CONFIG['JS_STANDALONE']:
add_tier_dir('precompile', 'xpcom/xpidl')
if CONFIG['COMPILE_ENVIRONMENT'] and not CONFIG['LIBXUL_SDK']:
if not CONFIG['MOZ_NATIVE_NSPR']:
add_tier_dir('nspr', 'config/nspr')
if CONFIG['COMPILE_ENVIRONMENT'] and not CONFIG['LIBXUL_SDK']:
if CONFIG['MOZ_BUILD_NSPR']:
add_tier_dir('nspr', 'config/nspr')
if not CONFIG['JS_STANDALONE']:
add_tier_dir('external', 'config/external')
if not CONFIG['MOZ_NATIVE_NSS']:
add_tier_dir('nss', 'security/build')
if CONFIG['COMPILE_ENVIRONMENT'] and not CONFIG['LIBXUL_SDK']:
if CONFIG['BUILD_CTYPES'] and not CONFIG['MOZ_NATIVE_FFI']:
add_tier_dir('js', ['js/src/ctypes/libffi'], static=True)
add_tier_dir('js', ['intl/icu'], static=True)