Add support for guile 2.0: configure and makefiles.

Note: guile-config is badly broken for guile 2. So
the guile configure  section has been rewritten to
use pkg-config instead.

Manually resolved conflicts:
	Examples/Makefile.in
This commit is contained in:
Geert Janssens 2013-03-07 11:55:01 +01:00
commit b072f22930
4 changed files with 122 additions and 123 deletions

View file

@ -455,11 +455,11 @@ octave_clean:
# Make sure these locate your Guile installation # Make sure these locate your Guile installation
GUILE = @GUILE@ GUILE = @GUILE@
GUILE_INCLUDE = @GUILEINCLUDE@ GUILE_CFLAGS = @GUILE_CFLAGS@
GUILE_LIB = @GUILELIB@
GUILE_SO = @GUILE_SO@ GUILE_SO = @GUILE_SO@
GUILE_LIBS = @GUILE_LIBS@
GUILE_LIBOPTS = @LIBS@ $(SYSLIBS)
GUILE_LIBPREFIX = lib GUILE_LIBPREFIX = lib
GUILE_LIBOPTS = @GUILELINK@ @LIBS@ $(SYSLIBS)
GUILE_SCRIPT = $(RUNME).scm GUILE_SCRIPT = $(RUNME).scm
#------------------------------------------------------------------ #------------------------------------------------------------------
@ -467,13 +467,14 @@ GUILE_SCRIPT = $(RUNME).scm
#------------------------------------------------------------------ #------------------------------------------------------------------
guile: $(SRCS) guile: $(SRCS)
$(SWIG) -guile -scm -Linkage passive $(SWIGOPT) $(INTERFACEPATH) $(SWIG) -guile -scm -Linkage passive $(SWIGOPT) $(INTERFACEPATH)
$(CC) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(GUILE_INCLUDE) $(ISRCS) $(SRCS) $(CC) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(GUILE_CFLAGS) $(ISRCS) $(SRCS)
$(LDSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) -o $(GUILE_LIBPREFIX)$(TARGET)$(GUILE_SO) $(LDSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) -o $(GUILE_LIBPREFIX)$(TARGET)$(GUILE_SO)
guile_cpp: $(SRCS) guile_cpp: $(GUILE_LIBPREFIX)$(TARGET)$(GUILE_SO)
$(GUILE_LIBPREFIX)$(TARGET)$(GUILE_SO): $(SRCS)
$(SWIG) -c++ -guile -scm -Linkage passive $(SWIGOPT) $(INTERFACEPATH) $(SWIG) -c++ -guile -scm -Linkage passive $(SWIGOPT) $(INTERFACEPATH)
$(CXX) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(GUILE_INCLUDE) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(CXX) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(GUILE_CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS)
$(CXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) $(CPP_DLLIBS) -o $(GUILE_LIBPREFIX)$(TARGET)$(GUILE_SO) $(CXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) $(CPP_DLLIBS) -o $@
guile_externalhdr: guile_externalhdr:
$(SWIG) -guile -external-runtime $(TARGET) $(SWIG) -guile -external-runtime $(TARGET)
@ -483,12 +484,12 @@ guile_externalhdr:
#------------------------------------------------------------------ #------------------------------------------------------------------
guile_gh: $(SRCS) guile_gh: $(SRCS)
$(SWIG) -guile -gh -Linkage passive $(SWIGOPT) $(INTERFACEPATH) $(SWIG) -guile -gh -Linkage passive $(SWIGOPT) $(INTERFACEPATH)
$(CC) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(GUILE_INCLUDE) $(ISRCS) $(SRCS) $(CC) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(GUILE_CFLAGS) $(ISRCS) $(SRCS)
$(LDSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) -o $(GUILE_LIBPREFIX)$(TARGET)$(GUILE_SO) $(LDSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) -o $(GUILE_LIBPREFIX)$(TARGET)$(GUILE_SO)
guile_gh_cpp: $(SRCS) guile_gh_cpp: $(SRCS)
$(SWIG) -c++ -guile -gh -Linkage passive $(SWIGOPT) $(INTERFACEPATH) $(SWIG) -c++ -guile -gh -Linkage passive $(SWIGOPT) $(INTERFACEPATH)
$(CXX) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(GUILE_INCLUDE) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(CXX) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(GUILE_CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS)
$(CXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) $(CPP_DLLIBS) -o $(GUILE_LIBPREFIX)$(TARGET)$(GUILE_SO) $(CXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) $(CPP_DLLIBS) -o $(GUILE_LIBPREFIX)$(TARGET)$(GUILE_SO)
# ----------------------------------------------------------------- # -----------------------------------------------------------------
@ -497,12 +498,12 @@ guile_gh_cpp: $(SRCS)
guile_passive: $(SRCS) guile_passive: $(SRCS)
$(SWIG) -guile -Linkage passive $(SWIGOPT) $(INTERFACEPATH) $(SWIG) -guile -Linkage passive $(SWIGOPT) $(INTERFACEPATH)
$(CC) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(GUILE_INCLUDE) $(ISRCS) $(SRCS) $(CC) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(GUILE_CFLAGS) $(ISRCS) $(SRCS)
$(LDSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) -o $(GUILE_LIBPREFIX)$(TARGET)$(GUILE_SO) $(LDSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) -o $(GUILE_LIBPREFIX)$(TARGET)$(GUILE_SO)
guile_passive_cpp: $(SRCS) guile_passive_cpp: $(SRCS)
$(SWIG) -c++ -guile -Linkage passive $(SWIGOPT) $(INTERFACEPATH) $(SWIG) -c++ -guile -Linkage passive $(SWIGOPT) $(INTERFACEPATH)
$(CXX) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(GUILE_INCLUDE) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(CXX) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(GUILE_CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS)
$(CXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) $(CPP_DLLIBS) -o $(GUILE_LIBPREFIX)$(TARGET)$(GUILE_SO) $(CXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) $(CPP_DLLIBS) -o $(GUILE_LIBPREFIX)$(TARGET)$(GUILE_SO)
# ----------------------------------------------------------------- # -----------------------------------------------------------------
@ -513,23 +514,23 @@ guile_static: $(SRCS)
$(SWIG) -guile -lguilemain.i -Linkage ltdlmod $(SWIGOPT) $(INTERFACEPATH) $(SWIG) -guile -lguilemain.i -Linkage ltdlmod $(SWIGOPT) $(INTERFACEPATH)
$(CC) $(CFLAGS) $(ISRCS) $(SRCS) $(INCLUDES) \ $(CC) $(CFLAGS) $(ISRCS) $(SRCS) $(INCLUDES) \
-DSWIGINIT="SCM scm_init_$(TARGET)_module(void); scm_init_$(TARGET)_module();" \ -DSWIGINIT="SCM scm_init_$(TARGET)_module(void); scm_init_$(TARGET)_module();" \
$(GUILE_INCLUDE) $(LIBS) -L$(GUILE_LIB) $(GUILE_LIBOPTS) -o $(TARGET)-guile $(GUILE_CFLAGS) $(LIBS) -L$(GUILE_LIBS) $(GUILE_LIBOPTS) -o $(TARGET)-guile
guile_static_cpp: $(SRCS) guile_static_cpp: $(SRCS)
$(SWIG) -c++ -guile -lguilemain.i -Linkage ltdlmod $(SWIGOPT) $(INTERFACEPATH) $(SWIG) -c++ -guile -lguilemain.i -Linkage ltdlmod $(SWIGOPT) $(INTERFACEPATH)
$(CXX) $(CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES) \ $(CXX) $(CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES) \
-DSWIGINIT="SCM scm_init_$(TARGET)_module(void); scm_init_$(TARGET)_module();" \ -DSWIGINIT="SCM scm_init_$(TARGET)_module(void); scm_init_$(TARGET)_module();" \
$(GUILE_INCLUDE) $(LIBS) -L$(GUILE_LIB) $(GUILE_LIBOPTS) -o $(TARGET)-guile $(GUILE_CFLAGS) $(LIBS) -L$(GUILE_LIBS) $(GUILE_LIBOPTS) -o $(TARGET)-guile
guile_simple: $(SRCS) guile_simple: $(SRCS)
$(SWIG) -guile -lguilemain.i -Linkage simple $(SWIGOPT) $(INTERFACEPATH) $(SWIG) -guile -lguilemain.i -Linkage simple $(SWIGOPT) $(INTERFACEPATH)
$(CC) $(CFLAGS) $(ISRCS) $(SRCS) $(INCLUDES) \ $(CC) $(CFLAGS) $(ISRCS) $(SRCS) $(INCLUDES) \
$(GUILE_INCLUDE) $(LIBS) -L$(GUILE_LIB) $(GUILE_LIBOPTS) -o $(TARGET)-guile $(GUILE_CFLAGS) $(LIBS) -L$(GUILE_LIBS) $(GUILE_LIBOPTS) -o $(TARGET)-guile
guile_simple_cpp: $(SRCS) guile_simple_cpp: $(SRCS)
$(SWIG) -c++ -guile -lguilemain.i -Linkage simple $(SWIGOPT) $(INTERFACEPATH) $(SWIG) -c++ -guile -lguilemain.i -Linkage simple $(SWIGOPT) $(INTERFACEPATH)
$(CXX) $(CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES) \ $(CXX) $(CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES) \
$(GUILE_INCLUDE) $(LIBS) -L$(GUILE_LIB) $(GUILE_LIBOPTS) -o $(TARGET)-guile $(GUILE_CFLAGS) $(LIBS) -L$(GUILE_LIBS) $(GUILE_LIBOPTS) -o $(TARGET)-guile
# ----------------------------------------------------------------- # -----------------------------------------------------------------
# Running a Guile example # Running a Guile example

View file

@ -7,8 +7,8 @@ SWIG = ../$(top_srcdir)/preinst-swig
CC = @CC@ CC = @CC@
CXX = @CXX@ CXX = @CXX@
CFLAGS = @PLATFLAGS@ CFLAGS = @PLATFLAGS@
GUILEINCLUDE = @GUILEINCLUDE@ GUILE_CFLAGS = @GUILE_CFLAGS@
GUILELINK = @GUILELINK@ GUILE_LIBS = @GUILE_LIBS@
SWIGOPT = SWIGOPT =
WRAP = $(IFILE:.i=_wrap.c) WRAP = $(IFILE:.i=_wrap.c)
@ -31,10 +31,10 @@ guile_clean:
sub-all: sub-all:
$(SWIG) -guile $(SWIGOPT) $(IFILE) $(SWIG) -guile $(SWIGOPT) $(IFILE)
$(CC) $(CFLAGS) -o $(TARGET) $(SRCS) $(WRAP) $(GUILEINCLUDE) $(GUILELINK) $(CC) $(CFLAGS) -o $(TARGET) $(SRCS) $(WRAP) $(GUILE_CFLAGS) $(GUILE_LIBS)
sub-all-cxx: sub-all-cxx:
$(SWIG) -c++ -guile $(SWIGOPT) $(IFILE) $(SWIG) -c++ -guile $(SWIGOPT) $(IFILE)
$(CXX) $(CFLAGS) -o $(TARGET) $(SRCS) $(CXXWRAP) $(GUILEINCLUDE) $(GUILELINK) $(CXX) $(CFLAGS) -o $(TARGET) $(SRCS) $(CXXWRAP) $(GUILE_CFLAGS) $(GUILE_LIBS)
# Makefile ends here # Makefile ends here

View file

@ -157,7 +157,7 @@ if test "$GCC" = yes; then
else else
ISYSTEM="-I" ISYSTEM="-I"
fi fi
AC_MSG_NOTICE(ISYSTEM: $ISYSTEM)
dnl Info for building shared libraries ... in order to run the examples dnl Info for building shared libraries ... in order to run the examples
@ -1148,100 +1148,96 @@ AC_SUBST(NDKBUILD)
# Look for Guile # Look for Guile
#---------------------------------------------------------------- #----------------------------------------------------------------
GUILEPACKAGE=
GUILEINCLUDE=
GUILE= GUILE=
GUILELIB= GUILE_CFLAGS=
GUILELINK= GUILE_LIBS=
GUILEPKGDATADIR=
AC_ARG_WITH(guile-config,AS_HELP_STRING([--without-guile], [Disable Guile]) AC_ARG_WITH(guile, AS_HELP_STRING([--without-guile], [Disable Guile])
AS_HELP_STRING([--with-guile-config=path], [Set location of guile-config]),[ GUILE_CONFIG="$withval"], [GUILE_CONFIG=]) AS_HELP_STRING([--with-guile=path], [Set location of Guile executable]),[GUILE="$withval"], [GUILE=yes])
AC_ARG_WITH(guilepackage, AS_HELP_STRING([--with-guile-prefix=path], [Set location of Guile tree]),[ AC_ARG_WITH(guile-cflags,[ --with-guile-cflags=cflags Set cflags required to compile against Guile],[
GUILEPACKAGE="$withval"]) GUILE_CFLAGS="$withval"])
AC_ARG_WITH(guile,[ --with-guile=path Set location of Guile executable],[ AC_ARG_WITH(guile-libs,[ --with-guile-libs=ldflags Set ldflags needed to link with Guile],[
GUILE="$withval"], [GUILE=yes]) GUILE_LIBS="$withval"])
AC_ARG_WITH(guileincl,[ --with-guileincl=path Set location of Guile include directory],[
GUILEINCLUDE="$withval"])
AC_ARG_WITH(guilelib,[ --with-guilelib=path Set location of Guile library directory],[
GUILELIB="$withval"])
# First, check for "--without-guile" or "--with-guile=no". # First, check for "--without-guile" or "--with-guile=no".
if test x"${GUILE}" = xno -o x"${with_alllang}" = xno ; then if test x"${GUILE}" = xno -o x"${with_alllang}" = xno ; then
AC_MSG_NOTICE([Disabling Guile]) AC_MSG_NOTICE([Disabling Guile])
else
if test -z "$GUILE_CONFIG" ; then
AC_PATH_PROG(GUILE_CONFIG, guile-config)
fi
if test -n "$GUILE_CONFIG" ; then
GUILEPACKAGE="`$GUILE_CONFIG info prefix`"
GUILEINCLUDE="`$GUILE_CONFIG info includedir`"
GUILELIB="`$GUILE_CONFIG info libdir`"
GUILE="`$GUILE_CONFIG info bindir`/guile"
GUILELINK="`$GUILE_CONFIG link`"
GUILEPKGDATADIR="`$GUILE_CONFIG info pkgdatadir`"
fi
if test -z "$GUILE" -o "x$GUILE" = xyes; then
if test -n "$GUILEPACKAGE"; then
GUILE="$GUILEPACKAGE/bin/guile"
else
GUILE= GUILE=
GUILE_CFLAGS=
GUILE_LIBS=
else
# Use pkg-config to find guile specific config parameters
# Note: if guile is not installed in a standard system path
# you can set the environment variable PKG_CONFIG_PATH to
# the directory where the guile package config file is stored
AC_PATH_PROG(PKG_CONFIG,pkg-config)
if test "x$PKG_CONFIG" = x; then
# @*%&$ Ximian programmers renamed this application
AC_PATH_PROG(PKG_CONFIG,pkgconfig)
fi
if test "x$PKG_CONFIG" = x; then
AC_MSG_NOTICE([Could not find the pkg-config (or pkgconfig) program required to set up Guile. Disabling Guile],)
GUILE=
GUILE_CFLAGS=
GUILE_LIBS=""
else
# If the user has given these values, cache them to override the
# detected values.
if test "x$GUILE_LIBS" != x; then
saved_GUILE_LIBS="$GUILE_LIBS"
fi
if test "x$GUILE_CFLAGS" != x; then
saved_GUILE_CFLAGS="$GUILE_CFLAGS"
fi
# Look up GUILE_CFLAGS and GUILE_LIBS, and version check
GUILE_SERIES=""
PKG_CHECK_MODULES(GUILE, [guile-1.8], [ GUILE_SERIES="18" ], [
PKG_CHECK_MODULES(GUILE, [guile-2.0], [GUILE_SERIES="20" ], [AC_MSG_NOTICE([
Only Guile 1.8 or 2.0 is supported. Neither version appears to be installed correctly. Disabling Guile
])])
])
if test "x$GUILE-SERIES" = x; then
GUILE=
GUILE_CFLAGS=
GUILE_LIBS=
else
# Look up GUILE executable
if test "x$GUILE" = xyes; then
GUILE=
if test "$xGUILE_SERIES" = "x18"; then
AC_PATH_PROG(GUILE18, guile-1.8)
if test "x$GUILE18" != x; then
GUILE="$GUILE18"
fi
fi
if test "$xGUILE_SERIES" = "x20"; then
AC_PATH_PROG(GUILE20, guile-2.0)
if test "x$GUILE20" != x; then
GUILE="$GUILE20"
fi
fi
if test "x$GUILE" = x; then
AC_PATH_PROG(GUILE, guile)
fi fi
fi fi
if test -z "$GUILEINCLUDE"; then if test "x$saved_GUILE_LIBS" != x; then
if test -n "$GUILEPACKAGE"; then GUILE_LIBS="$saved_GUILE_LIBS"
GUILEINCLUDE="$GUILEPACKAGE/include"
fi fi
fi if test "x$saved_GUILE_CFLAGS" != x; then
GUILE_CFLAGS="$saved_GUILE_CFLAGS"
if test -z "$GUILELIB"; then
if test -n "$GUILEPACKAGE"; then
GUILELIB="$GUILEPACKAGE/lib"
fi
fi
AC_MSG_CHECKING(for Guile header files)
dirs="$GUILEINCLUDE"
for i in $dirs ; do
if test -r $i/guile/gh.h; then
AC_MSG_RESULT($i)
GUILEINCLUDE="$ISYSTEM$i"
break
fi
done
if test -z "$GUILEINCLUDE"; then
AC_MSG_RESULT(not found)
fi
AC_MSG_CHECKING(for Guile library)
dirs="$GUILELIB"
for i in $dirs ; do
if test -r $i/libguile.so; then
AC_MSG_RESULT($i)
GUILELIB="$i"
break
fi
done
if test -z "$GUILELIB"; then
AC_MSG_RESULT(not found)
fi
if test -z "$GUILELINK"; then
GUILELINK="-L$GUILELIB -lguile"
fi fi
guilesafe_CFLAGS=$CFLAGS guilesafe_CFLAGS=$CFLAGS
guilesafe_LIBS=$LIBS guilesafe_LIBS=$LIBS
# Filter out "-ansi -pedantic" because Guile header files will not compile with these flags. # Filter out "-ansi -pedantic" because Guile header files will not compile with these flags.
# (The flags -ansi -pedantic are automatically added by ac_compile_warnings.m4) # (The flags -ansi -pedantic are automatically added by ac_compile_warnings.m4)
CFLAGS="`echo $CFLAGS | sed 's/-ansi//g;s/-pedantic//g;'` $GUILEINCLUDE" CFLAGS="`echo $CFLAGS | sed 's/-ansi//g;s/-pedantic//g;'` $GUILE_CFLAGS"
LIBS="$LIBS $GUILELINK" LIBS="$LIBS $GUILE_LIBS"
AC_MSG_CHECKING(whether Guile's gh_ API works) AC_MSG_CHECKING(whether Guile's gh_ API works)
AC_LINK_IFELSE([AC_LANG_SOURCE([#include <guile/gh.h> AC_LINK_IFELSE([AC_LANG_SOURCE([#include <guile/gh.h>
@ -1259,14 +1255,16 @@ if test -n "$GUILE_SCM_INTERFACE" ; then
else else
AC_MSG_RESULT(no) AC_MSG_RESULT(no)
fi fi
CFLAGS=$guilesafe_CFLAGS CFLAGS=$guilesafe_CFLAGS
LIBS=$guilesafe_LIBS LIBS=$guilesafe_LIBS
fi fi
fi
fi
AC_SUBST(GUILE) AC_SUBST(GUILE)
AC_SUBST(GUILEINCLUDE) AC_SUBST(GUILE_CFLAGS)
AC_SUBST(GUILELIB) AC_SUBST(GUILE_LIBS)
AC_SUBST(GUILELINK)
AC_SUBST(GUILE_GH_INTERFACE) AC_SUBST(GUILE_GH_INTERFACE)
AC_SUBST(GUILE_SCM_INTERFACE) AC_SUBST(GUILE_SCM_INTERFACE)
@ -2268,13 +2266,13 @@ AC_SUBST(SKIP_JAVA)
SKIP_GUILE= SKIP_GUILE=
if test -z "$GUILEINCLUDE" || test -z "$GUILELIB" || test -z "$GUILE_SCM_INTERFACE"; then if test -z "$GUILE_CFLAGS" || test -z "$GUILE_LIBS" || test -z "$GUILE_SCM_INTERFACE"; then
SKIP_GUILE="1" SKIP_GUILE="1"
fi fi
AC_SUBST(SKIP_GUILE) AC_SUBST(SKIP_GUILE)
SKIP_GUILEGH= SKIP_GUILEGH=
if test -z "$GUILEINCLUDE" || test -z "$GUILELIB" || test -z "$GUILE_GH_INTERFACE"; then if test -z "$GUILE_CFLAGS" || test -z "$GUILE_LIBS" || test -z "$GUILE_GH_INTERFACE"; then
SKIP_GUILEGH="1" SKIP_GUILEGH="1"
fi fi
AC_SUBST(SKIP_GUILEGH) AC_SUBST(SKIP_GUILEGH)