summaryrefslogtreecommitdiff
path: root/src/configure.in
diff options
context:
space:
mode:
Diffstat (limited to 'src/configure.in')
-rw-r--r--src/configure.in63
1 files changed, 45 insertions, 18 deletions
diff --git a/src/configure.in b/src/configure.in
index a644d941f..eb7db7674 100644
--- a/src/configure.in
+++ b/src/configure.in
@@ -414,7 +414,7 @@ if test "$enable_mzschemeinterp" = "yes"; then
AC_MSG_RESULT("$PLTHOME")
vi_cv_path_mzscheme_pfx="$PLTHOME"
else
- AC_MSG_RESULT("not set")
+ AC_MSG_RESULT(not set)
dnl -- try to find MzScheme executable
AC_PATH_PROG(vi_cv_path_mzscheme, mzscheme)
@@ -430,14 +430,16 @@ if test "$enable_mzschemeinterp" = "yes"; then
if test "X$vi_cv_path_mzscheme" != "X"; then
dnl -- find where MzScheme thinks it was installed
AC_CACHE_CHECK(MzScheme install prefix,vi_cv_path_mzscheme_pfx,
- [ vi_cv_path_mzscheme_pfx=`
- ${vi_cv_path_mzscheme} -evm \
- "(display (simplify-path \
+ dnl different versions of MzScheme differ in command line processing
+ dnl use universal approach
+ echo "(display (simplify-path \
(build-path (call-with-values \
(lambda () (split-path (find-system-path (quote exec-file)))) \
- (lambda (base name must-be-dir?) base)) (quote up))))"` ])
- dnl Remove a trailing slash.
- vi_cv_path_mzscheme_pfx=`echo "$vi_cv_path_mzscheme_pfx" | sed 's+/$++'`
+ (lambda (base name must-be-dir?) base)) (quote up))))" > mzdirs.scm
+ dnl Remove a trailing slash
+ [ vi_cv_path_mzscheme_pfx=`${vi_cv_path_mzscheme} -r mzdirs.scm | \
+ sed -e 's+/$++'` ])
+ rm -f mzdirs.scm
fi
fi
fi
@@ -446,16 +448,24 @@ if test "$enable_mzschemeinterp" = "yes"; then
if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
AC_MSG_CHECKING(if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include)
if test -f $vi_cv_path_mzscheme_pfx/include/scheme.h; then
- AC_MSG_RESULT("yes")
+ SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include
+ AC_MSG_RESULT(yes)
else
- AC_MSG_RESULT("no")
- AC_MSG_CHECKING(if scheme.h can be found in $vi_cv_path_mzscheme_pfx/plt/include)
+ AC_MSG_RESULT(no)
+ AC_MSG_CHECKING(if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include/plt)
if test -f $vi_cv_path_mzscheme_pfx/include/plt/scheme.h; then
- AC_MSG_RESULT("yes")
- SCHEME_INC=/plt
+ AC_MSG_RESULT(yes)
+ SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include/plt
else
- AC_MSG_RESULT("no")
- vi_cv_path_mzscheme_pfx=
+ AC_MSG_RESULT(no)
+ AC_MSG_CHECKING(if scheme.h can be found in /usr/include/plt/)
+ if test -f /usr/include/plt/scheme.h; then
+ AC_MSG_RESULT(yes)
+ SCHEME_INC=/usr/include/plt
+ else
+ AC_MSG_RESULT(no)
+ vi_cv_path_mzscheme_pfx=
+ fi
fi
fi
fi
@@ -463,23 +473,38 @@ if test "$enable_mzschemeinterp" = "yes"; then
if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
if test "x$MACOSX" = "xyes"; then
MZSCHEME_LIBS="-framework PLT_MzScheme"
+ elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"; then
+ MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"
+ MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"; then
MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
else
- MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc"
+ dnl Using shared objects
+ if test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.so"; then
+ MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme3m"
+ MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
+ else
+ MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc"
+ fi
if test "$GCC" = yes; then
dnl Make Vim remember the path to the library. For when it's not in
dnl $LD_LIBRARY_PATH.
- MZSCHEME_LIBS="$MZSCHEME_LIBS -Wl,-rpath -Wl,${vi_cv_path_mzscheme_pfx}/lib"
+ MZSCHEME_LIBS="${MZSCHEME_LIBS} -Wl,-rpath -Wl,${vi_cv_path_mzscheme_pfx}/lib"
elif test "`(uname) 2>/dev/null`" = SunOS &&
uname -r | grep '^5' >/dev/null; then
- MZSCHEME_LIBS="$MZSCHEME_LIBS -R ${vi_cv_path_mzscheme_pfx}/lib"
+ MZSCHEME_LIBS="${MZSCHEME_LIBS} -R ${vi_cv_path_mzscheme_pfx}/lib"
fi
fi
if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then
SCHEME_COLLECTS=lib/plt/
fi
- MZSCHEME_CFLAGS="-I${vi_cv_path_mzscheme_pfx}/include${SCHEME_INC} \
+ if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.ss" ; then
+ dnl need to generate bytecode for MzScheme base
+ MZSCHEME_EXTRA="mzscheme_base.c"
+ MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -DINCLUDE_MZSCHEME_BASE"
+ MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc"
+ fi
+ MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -I${SCHEME_INC} \
-DMZSCHEME_COLLECTS='\"${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects\"'"
MZSCHEME_SRC="if_mzsch.c"
MZSCHEME_OBJ="objects/if_mzsch.o"
@@ -491,6 +516,8 @@ if test "$enable_mzschemeinterp" = "yes"; then
AC_SUBST(MZSCHEME_PRO)
AC_SUBST(MZSCHEME_LIBS)
AC_SUBST(MZSCHEME_CFLAGS)
+ AC_SUBST(MZSCHEME_EXTRA)
+ AC_SUBST(MZSCHEME_MZC)
fi