mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-29 15:52:07 +00:00
c562c67dc0
All subconfigures are essentially doing it already, so just inverse the process. That would also limit problems with additional subconfigures (all the recent ones had to come with their own config.cache)
101 lines
3.4 KiB
Plaintext
101 lines
3.4 KiB
Plaintext
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_FFI], [
|
|
|
|
MOZ_ARG_ENABLE_BOOL(system-ffi,
|
|
[ --enable-system-ffi Use system libffi (located with pkgconfig)],
|
|
MOZ_NATIVE_FFI=1 )
|
|
|
|
if test -n "$MOZ_NATIVE_FFI"; then
|
|
# Vanilla libffi 3.0.9 needs a few patches from upcoming version 3.0.10
|
|
# for non-GCC compilers.
|
|
if test -z "$GNU_CC"; then
|
|
PKG_CHECK_MODULES(MOZ_FFI, libffi > 3.0.9)
|
|
else
|
|
PKG_CHECK_MODULES(MOZ_FFI, libffi >= 3.0.9)
|
|
fi
|
|
fi
|
|
|
|
AC_SUBST(MOZ_NATIVE_FFI)
|
|
|
|
])
|
|
|
|
AC_DEFUN([MOZ_SUBCONFIGURE_FFI], [
|
|
if test -z "$BUILDING_JS" -o -n "$JS_STANDALONE"; then
|
|
|
|
if test "$BUILD_CTYPES" -a -z "$MOZ_NATIVE_FFI"; then
|
|
# Run the libffi 'configure' script.
|
|
ac_configure_args="--disable-shared --enable-static --disable-raw-api"
|
|
if test "$MOZ_DEBUG"; then
|
|
ac_configure_args="$ac_configure_args --enable-debug"
|
|
fi
|
|
if test "$DSO_PIC_CFLAGS"; then
|
|
ac_configure_args="$ac_configure_args --with-pic"
|
|
fi
|
|
for var in AS CC CXX CPP LD AR RANLIB STRIP; do
|
|
ac_configure_args="$ac_configure_args $var='`eval echo \\${${var}}`'"
|
|
done
|
|
if test "$CROSS_COMPILE"; then
|
|
export CPPFLAGS CFLAGS LDFLAGS
|
|
fi
|
|
ac_configure_args="$ac_configure_args --build=$build --host=$target"
|
|
if test "$_MSC_VER"; then
|
|
# Use a wrapper script for cl and ml that looks more like gcc.
|
|
# autotools can't quite handle an MSVC build environment yet.
|
|
LDFLAGS=
|
|
CFLAGS=
|
|
ac_configure_args="$ac_configure_args LD=link CPP=\"$CC -nologo -EP\" \
|
|
CXXCPP=\"$CXX -nologo -EP\" SHELL=sh.exe"
|
|
flags=
|
|
if test -z "$MOZ_NO_DEBUG_RTL" -a -n "$MOZ_DEBUG"; then
|
|
flags=" -DUSE_DEBUG_RTL"
|
|
fi
|
|
if test -n "$CLANG_CL"; then
|
|
flags="$flags -clang-cl"
|
|
fi
|
|
case "${target_cpu}" in
|
|
x86_64)
|
|
# Need target since MSYS tools into mozilla-build may be 32bit
|
|
ac_configure_args="$ac_configure_args \
|
|
CC=\"$_topsrcdir/js/src/ctypes/libffi/msvcc.sh -m64$flags\" \
|
|
CXX=\"$_topsrcdir/js/src/ctypes/libffi/msvcc.sh -m64$flags\""
|
|
;;
|
|
*)
|
|
ac_configure_args="$ac_configure_args \
|
|
CC=\"$_topsrcdir/js/src/ctypes/libffi/msvcc.sh$flags\" \
|
|
CXX=\"$_topsrcdir/js/src/ctypes/libffi/msvcc.sh$flags\""
|
|
;;
|
|
esac
|
|
fi
|
|
if test "$SOLARIS_SUNPRO_CC"; then
|
|
# Always use gcc for libffi on Solaris
|
|
if test ! "$HAVE_64BIT_BUILD"; then
|
|
ac_configure_args="$ac_configure_args CC=gcc CFLAGS=-m32 LD= LDFLAGS="
|
|
else
|
|
ac_configure_args="$ac_configure_args CC=gcc CFLAGS=-m64 LD= LDFLAGS="
|
|
fi
|
|
fi
|
|
if test "$AIX_IBM_XLC"; then
|
|
# Always use gcc for libffi on IBM AIX5/AIX6
|
|
if test ! "$HAVE_64BIT_BUILD"; then
|
|
ac_configure_args="$ac_configure_args CC=gcc CFLAGS=-maix32"
|
|
else
|
|
ac_configure_args="$ac_configure_args CC=gcc CFLAGS=-maix64"
|
|
fi
|
|
fi
|
|
|
|
# Use a separate cache file for libffi, since it does things differently
|
|
# from our configure.
|
|
old_config_files=$CONFIG_FILES
|
|
unset CONFIG_FILES
|
|
AC_OUTPUT_SUBDIRS(js/src/ctypes/libffi)
|
|
ac_configure_args="$_SUBDIR_CONFIG_ARGS"
|
|
CONFIG_FILES=$old_config_files
|
|
fi
|
|
|
|
fi
|
|
])
|
|
|