diff options
author | Andy Wingo <wingo@pobox.com> | 2018-07-02 10:34:18 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2018-07-02 10:39:49 +0200 |
commit | 0593a9aed7a3805ef2853932b32ae092046bed3e (patch) | |
tree | f41f8ccaf8108e796d5afcfc304f155f51e5ffec /acinclude.m4 | |
parent | f8b8f5f5c8bdb061899538104c2ba3108434f3fd (diff) | |
download | guile-0593a9aed7a3805ef2853932b32ae092046bed3e.tar.gz |
Add GUILE_ENABLE_JIT macro
* acinclude.m4 (GUILE_ENABLE_JIT): New macro.
* libguile/lightning/configure.ac: Remove now-unused file.
Diffstat (limited to 'acinclude.m4')
-rw-r--r-- | acinclude.m4 | 59 |
1 files changed, 57 insertions, 2 deletions
diff --git a/acinclude.m4 b/acinclude.m4 index 70cb247aa..0de17390d 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -1,7 +1,7 @@ dnl -*- Autoconf -*- -dnl Copyright (C) 1997, 1999, 2000, 2001, 2002, 2004, 2006, -dnl 2007, 2008, 2009, 2010, 2011, 2013 Free Software Foundation, Inc. +dnl Copyright (C) 1997,1999-2002,2004,2006-2011,2013,2018 +dnl Free Software Foundation, Inc. dnl dnl This file is part of GUILE dnl @@ -578,3 +578,58 @@ AC_DEFUN([GUILE_CHECK_GUILE_FOR_BUILD], [ dnl Declare file $1 to be a script that needs configuring, dnl and arrange to make it executable in the process. AC_DEFUN([GUILE_CONFIG_SCRIPT],[AC_CONFIG_FILES([$1],[chmod +x $1])]) + +AC_DEFUN([GUILE_ENABLE_JIT], [ + JIT_AVAILABLE=no + AC_MSG_CHECKING([if JIT code generation supported for target CPU]) + case "$target_cpu" in + i?86|x86_64|amd64) JIT_AVAILABLE=yes ;; + *arm*) JIT_AVAILABLE=yes ;; + *mips*) JIT_AVAILABLE=yes ;; + *powerpc*) JIT_AVAILABLE=yes ;; + *sparc*) JIT_AVAILABLE=yes ;; + ia64) JIT_AVAILABLE=yes ;; + hppa*) JIT_AVAILABLE=yes ;; + aarch64) JIT_AVAILABLE=yes ;; + s390*) JIT_AVAILABLE=yes ;; + alpha*) JIT_AVAILABLE=yes ;; + *) ;; + esac + AC_MSG_RESULT($JIT_AVAILABLE) + + case "$target_cpu" in + *arm*) + AC_CHECK_LIB(m, sqrtf, , [ + JIT_AVAILABLE=no; + AC_MSG_WARN([JIT on ARM unavailable due to missing sqrtf]) + ]) + ;; + esac + + AC_ARG_ENABLE(jit, + [AS_HELP_STRING([--enable-jit[=yes/no/auto]], + [enable just-in-time code generation [default=auto]])]) + + enable_jit=auto + AC_MSG_CHECKING([whether to enable JIT code generation]) + case "$enable_jit" in + y*) enable_jit=yes ;; + n*) enable_jit=no ;; + a*) enable_jit=$JIT_AVAILABLE ;; + *) AC_MSG_ERROR(bad value $enable_jit for --enable-jit) ;; + esac + AC_MSG_RESULT($enable_jit) + + if test $enable_jit = yes; then + if test $JIT_AVAILABLE = no; then + AC_MSG_ERROR( + [JIT explicitly enabled with --enable-jit but not supported on $target_cpu]) + fi + AC_CHECK_FUNCS(mremap ffsl isnan isinf,,) + fi + + AM_CONDITIONAL([ENABLE_JIT], [test "$enable_jit" = "yes"]) + ENABLE_JIT_VAL=$(if test "$enable_jit" = "yes"; then echo 1; else echo 0; fi) + AC_DEFINE_UNQUOTED([ENABLE_JIT], [$ENABLE_JIT_VAL], + [Define to 1 if JIT compilation is enabled, or 0 otherwise.]) +]) |