[GIT] ppl/ppl(termination): Support newer versions of SWI-Prolog.

Module: ppl/ppl Branch: termination Commit: b81ffc77370c6734881e1b600a5d7c9688c9ca3e URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=b81ffc77370c6...
Author: Roberto Bagnara bagnara@cs.unipr.it Date: Mon Mar 8 18:39:23 2010 +0400
Support newer versions of SWI-Prolog.
---
interfaces/Prolog/SWI/Makefile.am | 12 ++++++------ m4/ac_check_swi_prolog.m4 | 23 +++++++++++++++++------ 2 files changed, 23 insertions(+), 12 deletions(-)
diff --git a/interfaces/Prolog/SWI/Makefile.am b/interfaces/Prolog/SWI/Makefile.am index 9c48447..98dffed 100644 --- a/interfaces/Prolog/SWI/Makefile.am +++ b/interfaces/Prolog/SWI/Makefile.am @@ -206,9 +206,9 @@ pl_clpq2_SOURCES = pl_clpq.cc
if HOST_OS_CYGWIN
-# Under Cygwin, plld gets the link options wrong: -lpl (PLLIB) -# comes before -lppl_swiprolog, with the result that all the -# symbols of the SWI-Prolog foreign interface are undefined. +# Under Cygwin, $(SWI_PROLOG_LD) gets the link options wrong: +# -lpl (PLLIB) comes before -lppl_swiprolog, with the result that all +# the symbols of the SWI-Prolog foreign interface are undefined. # Repeating the link options works around this problem. EXTRA_LINK_OPTIONS = $(SWI_PROLOG_LD_OPTIONS)
@@ -229,14 +229,14 @@ LIBPPL_SWIPROLOG_LINK_OPTIONS = -L.libs -lppl_swiprolog endif !ENABLE_STATIC
ppl_pl$(EXEEXT): libppl_swiprolog.la ppl_pl.o - plld -pl $(SWI_PROLOG) -cc $(CC) -c++ $(CXX) -ld $(CXX) \ + $(SWI_PROLOG_LD) -pl $(SWI_PROLOG) -cc $(CC) -c++ $(CXX) -ld $(CXX) \ -ld-options`echo '' $(AM_CXXFLAGS) $(CXXFLAGS) | tr " " "/"` \ -o $@ $(LIBPPL_SWIPROLOG_LINK_OPTIONS) ppl_pl.o \ -L$(top_builddir)/src/.libs \ -lppl $(WATCHDOG_LINK_OPTIONS) @extra_libraries@ $(EXTRA_LINK_OPTIONS)
pl_clpq$(EXEEXT): libppl_swiprolog.la pl_clpq.o pl_clpq.pl ../tests/clpq.pl - plld -pl $(SWI_PROLOG) -cc $(CC) -c++ $(CXX) -ld $(CXX) \ + $(SWI_PROLOG_LD) -pl $(SWI_PROLOG) -cc $(CC) -c++ $(CXX) -ld $(CXX) \ -ld-options`echo '' $(AM_CXXFLAGS) $(CXXFLAGS) | tr " " "/"` \ -o $@ $(LIBPPL_SWIPROLOG_LINK_OPTIONS) pl_clpq.o \ $(srcdir)/pl_clpq.pl $(srcdir)/../tests/clpq.pl \ @@ -245,7 +245,7 @@ pl_clpq$(EXEEXT): libppl_swiprolog.la pl_clpq.o pl_clpq.pl ../tests/clpq.pl
pl_clpq2$(EXEEXT): libppl_swiprolog.la pl_clpq.o pl_clpq.pl ../tests/clpq2.pl - plld -pl $(SWI_PROLOG) -cc $(CC) -c++ $(CXX) -ld $(CXX) \ + $(SWI_PROLOG_LD) -pl $(SWI_PROLOG) -cc $(CC) -c++ $(CXX) -ld $(CXX) \ -ld-options`echo '' $(AM_CXXFLAGS) $(CXXFLAGS) | tr " " "/"` \ -o $@ $(LIBPPL_SWIPROLOG_LINK_OPTIONS) pl_clpq.o \ $(srcdir)/pl_clpq.pl $(srcdir)/../tests/clpq2.pl \ diff --git a/m4/ac_check_swi_prolog.m4 b/m4/ac_check_swi_prolog.m4 index b4680e3..daed0a7 100644 --- a/m4/ac_check_swi_prolog.m4 +++ b/m4/ac_check_swi_prolog.m4 @@ -22,14 +22,17 @@ dnl site: http://www.cs.unipr.it/ppl/ .
AC_DEFUN([AC_CHECK_SWI_PROLOG], [ -dnl By default, SWI-Prolog is installed as `pl', though some administrators -dnl call it `swipl' or `swi-prolog'. In particular, on Mac OS X `pl' is -dnl the name of another program. On Windows, the console version of -dnl SWI-Prolog is called `plcon'. -AC_PATH_PROG(swi_prolog, swi-prolog) +dnl By default, old versions of SWI-Prolog were installed as `pl', +dnl though some administrators called it `swipl' or `swi-prolog'. +dnl In particular, on Mac OS X `pl' is the name of another program. +dnl On Windows, the console version of SWI-Prolog was called `plcon'. +dnl Since SWI-Prolog 5.9.9, by default and on all systems, the +dnl interpreter is called `swipl' and `plld' is called `swipl-ld' + +AC_PATH_PROG(swi_prolog, swipl) if test -z $swi_prolog then - AC_PATH_PROG(swi_prolog, swipl) + AC_PATH_PROG(swi_prolog, swi-prolog) if test -z $swi_prolog then AC_PATH_PROG(swi_prolog, pl) @@ -49,6 +52,12 @@ then
dnl Additional version checks could be inserted here, if necessary.
+ AC_PATH_PROG(swi_prolog_ld, swipl-ld) + if test -z $swi_prolog_ld + then + AC_PATH_PROG(swi_prolog_ld, plld) + fi + # In Fedora, SWI-Prolog.h is installed only in /usr/include/pl, which, # IMHO, is a bug (https://bugzilla.redhat.com/show_bug.cgi?id=471071). SWI_PROLOG_INCLUDE_OPTIONS="-I${swi_prolog_base}/include -I/usr/include/pl" @@ -79,7 +88,9 @@ main() { AC_LANG_POP(C++) CPPFLAGS="$ac_save_CPPFLAGS" SWI_PROLOG="$swi_prolog" + SWI_PROLOG_LD="$swi_prolog_ld" AC_SUBST(SWI_PROLOG) + AC_SUBST(SWI_PROLOG_LD) AC_SUBST(SWI_PROLOG_INCLUDE_OPTIONS) AC_SUBST(SWI_PROLOG_LD_OPTIONS) fi
participants (1)
-
Roberto Bagnara