From 636aa1fc65b34245c35cb31cb3584be401f771cb Mon Sep 17 00:00:00 2001 From: Mike Hommey Date: Tue, 11 Feb 2014 10:37:47 +0900 Subject: [PATCH] Bug 969164 - Move libffi subconfigure invocation in build/autoconf/ffi.m4. r=gps --- build/autoconf/ffi.m4 | 65 +++++++++++++++++++++++++++++++++++++++++ js/src/configure.in | 68 +++---------------------------------------- 2 files changed, 69 insertions(+), 64 deletions(-) diff --git a/build/autoconf/ffi.m4 b/build/autoconf/ffi.m4 index 6978d84bd8b2..b48bd21fcaf4 100644 --- a/build/autoconf/ffi.m4 +++ b/build/autoconf/ffi.m4 @@ -21,3 +21,68 @@ fi AC_SUBST(MOZ_NATIVE_FFI) ]) + +AC_DEFUN([MOZ_SUBCONFIGURE_FFI], [ +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=\"cl -nologo -EP\" SHELL=sh.exe" + 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\"" + ;; + *) + ac_configure_args="$ac_configure_args CC=$_topsrcdir/js/src/ctypes/libffi/msvcc.sh" + ;; + esac + fi + if test "$SOLARIS_SUNPRO_CC"; then + # Always use gcc for libffi on Solaris + if test ! "$HAVE_64BIT_OS"; 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_OS"; 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. + mkdir -p $_objdir/js/src/ctypes/libffi + old_cache_file=$cache_file + cache_file=$_objdir/js/src/ctypes/libffi/config.cache + old_config_files=$CONFIG_FILES + unset CONFIG_FILES + AC_OUTPUT_SUBDIRS(js/src/ctypes/libffi) + cache_file=$old_cache_file + ac_configure_args="$_SUBDIR_CONFIG_ARGS" + CONFIG_FILES=$old_config_files +fi +]) + diff --git a/js/src/configure.in b/js/src/configure.in index da2726b6cc9b..012e22688761 100644 --- a/js/src/configure.in +++ b/js/src/configure.in @@ -3806,8 +3806,9 @@ dnl = Build jsctypes if it's enabled dnl ======================================================== MOZ_ARG_ENABLE_BOOL(ctypes, [ --enable-ctypes Enable js-ctypes (default=no)], - JS_HAS_CTYPES=1, - JS_HAS_CTYPES= ) + BUILD_CTYPES=1, + BUILD_CTYPES= ) +JS_HAS_CTYPES=$BUILD_CTYPES AC_SUBST(JS_HAS_CTYPES) if test "$JS_HAS_CTYPES"; then dnl Error out if we're on MSVC and MASM is unavailable. @@ -4307,65 +4308,4 @@ dnl Spit out some output dnl ======================================================== AC_OUTPUT() -# Build jsctypes if it's enabled. -if test "$JS_HAS_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=\"cl -nologo -EP\" SHELL=sh.exe" - 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\"" - ;; - *) - ac_configure_args="$ac_configure_args CC=$_topsrcdir/js/src/ctypes/libffi/msvcc.sh" - ;; - esac - fi - if test "$SOLARIS_SUNPRO_CC"; then - # Always use gcc for libffi on Solaris - if test ! "$HAVE_64BIT_OS"; 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_OS"; 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. - mkdir -p $_objdir/js/src/ctypes/libffi - old_cache_file=$cache_file - cache_file=$_objdir/js/src/ctypes/libffi/config.cache - old_config_files=$CONFIG_FILES - unset CONFIG_FILES - AC_OUTPUT_SUBDIRS(js/src/ctypes/libffi) - cache_file=$old_cache_file - ac_configure_args="$_SUBDIR_CONFIG_ARGS" - CONFIG_FILES=$old_config_files -fi +MOZ_SUBCONFIGURE_FFI()