build/autoconf/ffi.m4

Wed, 31 Dec 2014 07:16:47 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 07:16:47 +0100
branch
TOR_BUG_9701
changeset 3
141e0f1194b1
permissions
-rw-r--r--

Revert simplistic fix pending revisit of Mozilla integration attempt.

     1 dnl This Source Code Form is subject to the terms of the Mozilla Public
     2 dnl License, v. 2.0. If a copy of the MPL was not distributed with this
     3 dnl file, You can obtain one at http://mozilla.org/MPL/2.0/.
     5 AC_DEFUN([MOZ_CONFIG_FFI], [
     7 MOZ_ARG_ENABLE_BOOL(system-ffi,
     8 [  --enable-system-ffi       Use system libffi (located with pkgconfig)],
     9     MOZ_NATIVE_FFI=1 )
    11 if test -n "$MOZ_NATIVE_FFI"; then
    12     # Vanilla libffi 3.0.9 needs a few patches from upcoming version 3.0.10
    13     # for non-GCC compilers.
    14     if test -z "$GNU_CC"; then
    15         PKG_CHECK_MODULES(MOZ_FFI, libffi > 3.0.9)
    16     else
    17         PKG_CHECK_MODULES(MOZ_FFI, libffi >= 3.0.9)
    18     fi
    19 fi
    21 AC_SUBST(MOZ_NATIVE_FFI)
    23 ])
    25 AC_DEFUN([MOZ_SUBCONFIGURE_FFI], [
    26 if test -z "$BUILDING_JS" -o -n "$JS_STANDALONE"; then
    28   if test "$BUILD_CTYPES" -a -z "$MOZ_NATIVE_FFI"; then
    29     # Run the libffi 'configure' script.
    30     ac_configure_args="--disable-shared --enable-static --disable-raw-api"
    31     if test "$MOZ_DEBUG"; then
    32       ac_configure_args="$ac_configure_args --enable-debug"
    33     fi
    34     if test "$DSO_PIC_CFLAGS"; then
    35       ac_configure_args="$ac_configure_args --with-pic"
    36     fi
    37     for var in AS CC CXX CPP LD AR RANLIB STRIP; do
    38       ac_configure_args="$ac_configure_args $var='`eval echo \\${${var}}`'"
    39     done
    40     if test "$CROSS_COMPILE"; then
    41       export CPPFLAGS CFLAGS LDFLAGS
    42     fi
    43     ac_configure_args="$ac_configure_args --build=$build --host=$target"
    44     if test "$_MSC_VER"; then
    45       # Use a wrapper script for cl and ml that looks more like gcc.
    46       # autotools can't quite handle an MSVC build environment yet.
    47       LDFLAGS=
    48       CFLAGS=
    49       ac_configure_args="$ac_configure_args LD=link CPP=\"cl -nologo -EP\" SHELL=sh.exe"
    50       case "${target_cpu}" in
    51       x86_64)
    52         # Need target since MSYS tools into mozilla-build may be 32bit
    53         ac_configure_args="$ac_configure_args CC=\"$_topsrcdir/js/src/ctypes/libffi/msvcc.sh -m64\""
    54         ;;
    55       *)
    56         ac_configure_args="$ac_configure_args CC=$_topsrcdir/js/src/ctypes/libffi/msvcc.sh"
    57         ;;
    58       esac
    59     fi
    60     if test "$SOLARIS_SUNPRO_CC"; then
    61       # Always use gcc for libffi on Solaris
    62       if test ! "$HAVE_64BIT_OS"; then
    63         ac_configure_args="$ac_configure_args CC=gcc CFLAGS=-m32 LD= LDFLAGS="
    64       else
    65         ac_configure_args="$ac_configure_args CC=gcc CFLAGS=-m64 LD= LDFLAGS="
    66       fi
    67     fi
    68     if test "$AIX_IBM_XLC"; then
    69       # Always use gcc for libffi on IBM AIX5/AIX6
    70       if test ! "$HAVE_64BIT_OS"; then
    71         ac_configure_args="$ac_configure_args CC=gcc CFLAGS=-maix32"
    72       else
    73         ac_configure_args="$ac_configure_args CC=gcc CFLAGS=-maix64"
    74       fi
    75     fi
    77     # Use a separate cache file for libffi, since it does things differently
    78     # from our configure.
    79     mkdir -p $_objdir/js/src/ctypes/libffi
    80     old_cache_file=$cache_file
    81     cache_file=$_objdir/js/src/ctypes/libffi/config.cache
    82     old_config_files=$CONFIG_FILES
    83     unset CONFIG_FILES
    84     AC_OUTPUT_SUBDIRS(js/src/ctypes/libffi)
    85     cache_file=$old_cache_file
    86     ac_configure_args="$_SUBDIR_CONFIG_ARGS"
    87     CONFIG_FILES=$old_config_files
    88   fi
    90 fi
    91 ])

mercurial