summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2013-07-17 18:58:11 +0200
committerBram Moolenaar <Bram@vim.org>2013-07-17 18:58:11 +0200
commit9e902190328f5d90305828f10fd0806fc07477e2 (patch)
treee9b72e9595798d163cdcbff0e798f18baa33f15c
parent706d2de9c1e0567a9865c6c535fb7feebf475fd8 (diff)
updated for version 7.4a.029v7.4a.029
Problem: Can't build with MzScheme on Ubuntu 13.04. Solution: Add configure check for the "ffi" library.
-rwxr-xr-xsrc/auto/configure85
-rw-r--r--src/configure.in30
-rw-r--r--src/version.c2
3 files changed, 109 insertions, 8 deletions
diff --git a/src/auto/configure b/src/auto/configure
index f6bd0534be..a7ebc222ca 100755
--- a/src/auto/configure
+++ b/src/auto/configure
@@ -5014,13 +5014,90 @@ $as_echo "needed" >&6; }
$as_echo "not needed" >&6; }
fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ffi_type_void in -lffi" >&5
+$as_echo_n "checking for ffi_type_void in -lffi... " >&6; }
+if test "${ac_cv_lib_ffi_ffi_type_void+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lffi $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ffi_type_void ();
+int
+main ()
+{
+return ffi_type_void ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_ffi_ffi_type_void=yes
+else
+ ac_cv_lib_ffi_ffi_type_void=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ffi_ffi_type_void" >&5
+$as_echo "$ac_cv_lib_ffi_ffi_type_void" >&6; }
+if test "x$ac_cv_lib_ffi_ffi_type_void" = x""yes; then :
+ MZSCHEME_LIBS="$MZSCHEME_LIBS -lffi"
+fi
+
+
MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -I${SCHEME_INC} \
-DMZSCHEME_COLLECTS='\"${SCHEME_COLLECTS}collects\"'"
- MZSCHEME_SRC="if_mzsch.c"
- MZSCHEME_OBJ="objects/if_mzsch.o"
- MZSCHEME_PRO="if_mzsch.pro"
- $as_echo "#define FEAT_MZSCHEME 1" >>confdefs.h
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compile and link flags for MzScheme are sane" >&5
+$as_echo_n "checking if compile and link flags for MzScheme are sane... " >&6; }
+ cflags_save=$CFLAGS
+ libs_save=$LIBS
+ CFLAGS="$CFLAGS $MZSCHEME_CFLAGS"
+ LIBS="$LIBS $MZSCHEME_LIBS"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }; mzs_ok=yes
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no: MZSCHEME DISABLED" >&5
+$as_echo "no: MZSCHEME DISABLED" >&6; }; mzs_ok=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS=$cflags_save
+ LIBS=$libs_save
+ if test $mzs_ok = yes; then
+ MZSCHEME_SRC="if_mzsch.c"
+ MZSCHEME_OBJ="objects/if_mzsch.o"
+ MZSCHEME_PRO="if_mzsch.pro"
+ $as_echo "#define FEAT_MZSCHEME 1" >>confdefs.h
+
+ else
+ MZSCHEME_CFLAGS=
+ MZSCHEME_LIBS=
+ MZSCHEME_EXTRA=
+ MZSCHEME_MZC=
+ fi
fi
diff --git a/src/configure.in b/src/configure.in
index 65013602f3..89d8895adc 100644
--- a/src/configure.in
+++ b/src/configure.in
@@ -702,12 +702,34 @@ if test "$enable_mzschemeinterp" = "yes"; then
AC_MSG_RESULT(not needed)
fi
+ dnl On Ubuntu this fixes "undefined reference to symbol 'ffi_type_void'".
+ AC_CHECK_LIB(ffi, ffi_type_void, [MZSCHEME_LIBS="$MZSCHEME_LIBS -lffi"])
+
MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -I${SCHEME_INC} \
-DMZSCHEME_COLLECTS='\"${SCHEME_COLLECTS}collects\"'"
- MZSCHEME_SRC="if_mzsch.c"
- MZSCHEME_OBJ="objects/if_mzsch.o"
- MZSCHEME_PRO="if_mzsch.pro"
- AC_DEFINE(FEAT_MZSCHEME)
+
+ dnl Test that we can compile a simple program with these CFLAGS and LIBS.
+ AC_MSG_CHECKING([if compile and link flags for MzScheme are sane])
+ cflags_save=$CFLAGS
+ libs_save=$LIBS
+ CFLAGS="$CFLAGS $MZSCHEME_CFLAGS"
+ LIBS="$LIBS $MZSCHEME_LIBS"
+ AC_TRY_LINK(,[ ],
+ AC_MSG_RESULT(yes); mzs_ok=yes,
+ AC_MSG_RESULT(no: MZSCHEME DISABLED); mzs_ok=no)
+ CFLAGS=$cflags_save
+ LIBS=$libs_save
+ if test $mzs_ok = yes; then
+ MZSCHEME_SRC="if_mzsch.c"
+ MZSCHEME_OBJ="objects/if_mzsch.o"
+ MZSCHEME_PRO="if_mzsch.pro"
+ AC_DEFINE(FEAT_MZSCHEME)
+ else
+ MZSCHEME_CFLAGS=
+ MZSCHEME_LIBS=
+ MZSCHEME_EXTRA=
+ MZSCHEME_MZC=
+ fi
fi
AC_SUBST(MZSCHEME_SRC)
AC_SUBST(MZSCHEME_OBJ)
diff --git a/src/version.c b/src/version.c
index f0dd371196..dc7c05b9c1 100644
--- a/src/version.c
+++ b/src/version.c
@@ -728,6 +728,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 29,
+/**/
28,
/**/
27,