This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
yap-6.3/configure.in

1801 lines
44 KiB
Plaintext
Executable File

dnl
dnl Process this file with autoconf to produce a configure script.
dnl
AC_PREREQ([2.50])
dnl VARIABLES EXPORTED
dnl
dnl ARCH
dnl
dnl DefHeapSpace= Default DB space
dnl DefStackSpace= Default global+local
dnl DefTrailSpace= Default trail
dnl
dnl CPLINT
dnl
dnl CPLINT_LIBS=
dnl CPLINT_LIBS=
dnl CPLINT_LDFLAGS=
dnl CPLINT_SHLIB_LD=
dnl
dnl ENVIRONMENT to run YAP before Install is complete
dnl PRE_INSTALL_ENV= prefix to run YAP after libYap.so and yap are available
dnl but before make install
dnl INSTALL_ENV= prefix to run YAP while doing make install
dnl
dnl EXEC_SUFFIX=suffix for executable (.exe)
dnl
dnl INSTALL_DLLS= we can do dynamic linking
dnl SO= suffix for loadable binary (.so,.dll,.o)
dnl MERGE_DLL_OBJS= we need to merge several .o files into a single dll.
dnl
dnl CXXFLAGS= C++-flags
dnl SHLIB_FLAGS= C-flags used to compile a file that will be loaded dynamically
dnl DO_SECOND_LD= call a separate dll ld
dnl DYNLIB_LD= construct libYap.DLL
dnl SHLIB_LD= dll ld (C)
dnl SHLIB_CXX_LD= dll ld (C++)
dnl EXTRA_LIBS_FOR_DLLS= libs that are required when lding a so
dnl EXTRA_LIBS_FOR_SWIDLLS= libs that are required when lding a SWI so
AC_INIT(console/yap.c)
AC_CONFIG_HEADER(config.h)
dnl store the environment's compilation flags
mycflags="$CFLAGS"
AC_PROG_CC
AC_PROG_CXX
AC_PROG_AWK
AC_SUBST(GCC)
AC_SUBST(C_INTERF_FLAGS)
AC_SUBST(C_PARSER_FLAGS)
AC_ARG_ENABLE(tabling,
[ --enable-tabling support tabling ],
tabling="$enableval", tabling=no)
AC_ARG_ENABLE(or-parallelism,
[ --enable-or-parallelism support or-parallelism as: env-copy,sba,a-cow ],
orparallelism="$enableval", orparallelism=no)
AC_ARG_ENABLE(rational-trees,
[ --enable-rational-trees support infinite rational trees ],
rationaltrees="$enableval" , rationaltrees=yes)
AC_ARG_ENABLE(coroutining,
[ --enable-coroutining support co-routining, attributed variables and constraints],
rationaltrees="$enableval";coroutining="$enableval", coroutining=yes)
AC_ARG_ENABLE(depth-limit,
[ --enable-depth-limit support depth-bound computation ],
depthlimit="$enableval", depthlimit=yes)
AC_ARG_ENABLE(wam-profile,
[ --enable-wam-profile support low level profiling of abstract machine ],
wamprofile="$enableval", wamprofile=no)
AC_ARG_ENABLE(low-level-tracer,
[ --enable-low-level-tracer support support for procedure-call tracing ],
lowleveltracer="$enableval", lowleveltracer=no)
AC_ARG_ENABLE(threads,
[ --enable-threads support system threads ],
threads="$enableval", threads=no)
AC_ARG_ENABLE(pthread-locking,
[ --enable-pthread-locking use pthread locking primitives for internal locking (requires threads) ],
pthreadlocking="$enableval", pthreadlocking=no)
AC_ARG_ENABLE(max-performance,
[ --enable-max-performance try using the best flags for specific architecture ],
maxperformance="$enableval", maxperformance=no)
AC_ARG_ENABLE(max-memory,
[ --enable-max-memory try using the best flags for using the memory to the most ],
maxmemory="$enableval", maxmemory=yes)
AC_ARG_ENABLE(debug-yap,
[ --enable-debug-yap enable C-debugging for YAP ],
debugyap="$enableval", debugyap=no)
AC_ARG_ENABLE(eam,
[ --enable-eam enable EAM on YAP ],
eam="$enableval", eam=no)
AC_ARG_ENABLE(cygwin,
[ --enable-cygwin use cygwin library in WIN32 ],
cygwin="$enableval", cygwin=no)
AC_ARG_ENABLE(dynamic_loading,
[ --enable-dynamic-loading compile Yap as a DLL ],
dynamic_loading="$enableval", dynamic_loading=no)
AC_ARG_ENABLE(use-malloc,
[ --enable-use-malloc use malloc to allocate memory ],
use_malloc="$enableval", use_malloc=no)
AC_ARG_ENABLE(condor,
[ --enable-condor allow Yap to be used from condor ],
use_condor="$enableval", use_condor=no)
AC_ARG_ENABLE(chr,
[ --enable-chr install chr library ],
use_chr="$enableval", use_chr=yes)
AC_ARG_ENABLE(clpqr,
[ --enable-clpqr install clpqr library ],
use_clpqr="$enableval", use_clpqr=yes)
AC_ARG_ENABLE(win64,
[ --enable-win64 compile YAP for win64 ],
target_win64="$enableval", target_win64=no)
AC_ARG_ENABLE(april,
[ --enable-april compile Yap to support April ILP system],
use_april="$enableval", use_april=no)
AC_ARG_ENABLE(dlcompat,
[ --enable-dlcompat use dlcompat library for dynamic loading on Mac OS X],
use_dlcompat="$enableval", use_dlcompat=no)
AC_ARG_ENABLE(cplint,
[ --enable-cplint[=DIR] enable the cplint library using the glu library in DIR/lib],
yap_cv_cplint=$enableval, yap_cv_cplint=no)
AC_ARG_WITH(gmp,
[ --with-gmp[=DIR] use GNU Multiple Precision in DIR],
if test "$withval" = yes; then
yap_cv_gmp=yes
elif test "$withval" = no; then
yap_cv_gmp=no
else
yap_cv_gmp=$with_gmp
LDFLAGS="$LDFLAGS -L${yap_cv_gmp}/lib"
CPPFLAGS="$CPPFLAGS -I${yap_cv_gmp}/include"
fi,
[yap_cv_gmp=yes])
dnl best test we could do.
AC_ARG_WITH(minisat,
[ --enable-minisat use minisat interface],
if test "$withval" = yes; then
yap_cv_minisat=yes
elif test "$withval" = no; then
yap_cv_minisat=no
else
yap_cv_minisat="$GXX"
fi,
[yap_cv_minisat=yes])
AC_ARG_WITH(cudd,
[ --with-cudd[=DIR] use CUDD package in DIR],
if test "$withval" = yes; then
yap_cv_cudd=yes
elif test "$withval" = no; then
yap_cv_cudd=no
else
yap_cv_cudd=$with_cudd
CUDD_LDFLAGS="$yap_cv_cudd/cudd/libcudd.a $yap_cv_cudd/mtr/libmtr.a $yap_cv_cudd/st/libst.a $yap_cv_cudd/util/libutil.a $yap_cv_cudd/epd/libepd.a "
CUDD_CPPFLAGS="-I $yap_cv_cudd/include"
fi,
[yap_cv_cudd=no])
AC_ARG_ENABLE(myddas,
[ --enable-myddas[[=DIR]] enable the MYDDAS library],
if test "$enableval" = yes; then
yap_cv_myddas=/usr/
elif test "$enableval" = no; then
yap_cv_myddas=no
else
yap_cv_myddas=$enable_myddas
LDFLAGS="$LDFLAGS -L${yap_cv_myddas}/lib "
CPPFLAGS="$CPPFLAGS -I${yap_cv_myddas}/include "
fi,
[yap_cv_myddas=no])
AC_ARG_ENABLE(myddas-stats,
[ --enable-myddas-stats enable the MYDDAS library statistics support],
if test "$yap_cv_myddas" = no; then
myddasstats=no
else
myddasstats="$enableval"
fi, myddasstats=no)
AC_ARG_ENABLE(myddas-top-level,
[ --enable-myddas-top-level enable the MYDDAS top-level support to MySQL],
if test "$yap_cv_myddas" = no; then
myddastoplevel=no
else
myddastoplevel="$enableval"
fi, myddastoplevel=no)
AC_ARG_WITH(java,
[ --with-java=JAVA_HOME use Java instalation in JAVA_HOME],
if test "$withval" = yes; then
yap_cv_java="$JAVA_HOME"
dynamic_loading=yes
maxmemory=yes
dnl threads=yes
elif test "$withval" = no; then
yap_cv_java=no
else
yap_cv_java=$with_java
dynamic_loading=yes
maxmemory=yes
dnl threads=yes
fi,
[yap_cv_java=no])
AC_ARG_WITH(readline,
[ --with-readline[=DIR] use GNU Readline Library in DIR],
if test "$withval" = yes; then
yap_cv_readline=yes
elif test "$withval" = no; then
yap_cv_readline=no
else
yap_cv_readline=$with_readline
LDFLAGS="$LDFLAGS -L${yap_cv_readline}/lib"
CPPFLAGS="$CPPFLAGS -I${yap_cv_readline}/include"
fi,
[yap_cv_readline=yes])
AC_ARG_WITH(matlab,
[ --with-matlab[=DIR] use MATLAB package in DIR],
if test "$withval" = yes; then
yap_cv_matlab=yes
elif test "$withval" = no; then
yap_cv_matlab=no
else
yap_cv_matlab=$with_matlab
MATLAB_INCLUDE="-I${yap_cv_matlab}/extern/include"
fi,
[yap_cv_matlab=no])
AC_ARG_WITH(mpi,
[ --with-mpi[=DIR] use MPI library in DIR],
if test "$withval" = yes; then
yap_cv_mpi=yes
elif test "$withval" = no; then
yap_cv_mpi=no
else
yap_cv_mpi=$with_mpi
LDFLAGS="$LDFLAGS -L${yap_cv_mpi}/lib"
CPPFLAGS="$CPPFLAGS -I${yap_cv_mpi}/include"
fi,
[yap_cv_mpi=no])
AC_ARG_WITH(mpe,
[ --with-mpe[=DIR] use MPE library in DIR],
if test "$withval" = yes; then
yap_cv_mpe=yes
elif test "$withval" = no; then
yap_cv_mpe=no
else
yap_cv_mpe=$with_mpe
LDFLAGS="$LDFLAGS -L${yap_cv_mpe}/lib"
CPPFLAGS="$CPPFLAGS -I${yap_cv_mpe}/include"
fi,
[yap_cv_mpe=no])
AC_ARG_WITH(lam,
[ --with-lam[=DIR] use LAM MPI library in DIR],
if test "$withval" = yes; then
yap_cv_lam=yes
elif test "$withval" = no; then
yap_cv_lam=no
else
yap_cv_lam=$with_lam
LDFLAGS="$LDFLAGS -L${yap_cv_lam}/lib/lam"
CPPFLAGS="$CPPFLAGS -I${yap_cv_lam}/include"
fi,
[yap_cv_lam=no])
AC_ARG_WITH(heap-space,
[ --with-heap-space[=space] default heap size in Kbytes],
if test "$withval" = yes; then
yap_cv_heap_space=0
elif test "$withval" = no; then
yap_cv_heap_space=0
else
yap_cv_heap_space=$withval
fi,
[yap_cv_heap_space=0])
AC_ARG_WITH(stack-space,
[ --with-stack-space[=space] default stack size in Kbytes],
if test "$withval" = yes; then
yap_cv_stack_space=0
elif test "$withval" = no; then
yap_cv_stack_space=0
else
yap_cv_stack_space=$withval
fi,
[yap_cv_stack_space=0])
AC_ARG_WITH(trail-space,
[ --with-trail-space[=space] default trail size in Kbytes],
if test "$withval" = yes; then
yap_cv_trail_space=0
elif test "$withval" = no; then
yap_cv_trail_space=0
else
yap_cv_trail_space=$withval
fi,
[yap_cv_trail_space=0])
AC_ARG_WITH(max-workers,
[ --with-max-workers[=integer] maximum number of or-parallel processes],
if test "$withval" = yes; then
yap_cv_max_workers="(8*SIZEOF_INT_P)"
elif test "$withval" = no; then
yap_cv_max_workers="1"
else
yap_cv_max_workers=$withval
fi,
[yap_cv_max_workers="(8*SIZEOF_INT_P)"])
AC_ARG_WITH(max-threads,
[ --with-max-threads[=integer] maximum number of or-parallel processes],
if test "$withval" = yes; then
yap_cv_max_threads="1024"
elif test "$withval" = no; then
yap_cv_max_threads="1"
else
yap_cv_max_threads=$withval
fi,
[yap_cv_max_threads="1024"])
AC_ARG_WITH(junit, [ --with-junit=PATH Specify location of the junit JAR file],
[case "$withval" in
yes) JUNIT=/usr/share/java/junit.jar
;;
no) JUNIT=""
;;
*) JUNIT="$withval"
;;
esac])
AC_DEFINE(MinHeapSpace, (1000*SIZEOF_INT_P))
AC_DEFINE(MinStackSpace,(300*SIZEOF_INT_P))
AC_DEFINE(MinTrailSpace,( 48*SIZEOF_INT_P))
AC_DEFINE_UNQUOTED(DefHeapSpace,$yap_cv_heap_space)
AC_DEFINE_UNQUOTED(DefStackSpace,$yap_cv_stack_space)
AC_DEFINE_UNQUOTED(DefTrailSpace,$yap_cv_trail_space)
AC_SUBST(DefHeapSpace)
AC_SUBST(DefStackSpace)
AC_SUBST(DefTrailSpace)
AC_CANONICAL_SYSTEM
AC_DEFINE_UNQUOTED(HOST_ALIAS,"${target}")
if test "$or-parallelism" = no
then
AC_DEFINE(MAX_WORKERS,1)
else
AC_DEFINE_UNQUOTED(MAX_WORKERS,$yap_cv_max_workers)
fi
if test "$threads" = no
then
AC_DEFINE(MAX_THREADS,1)
else
AC_DEFINE_UNQUOTED(MAX_THREADS,$yap_cv_max_threads)
fi
dnl condor does not like dynamic linking on Linux, DEC, and HP-UX platforms.
if test "$yap_cv_matlab" = no
then
INSTALL_MATLAB="@# "
elif test "$yap_cv_matlab" = yes
then
INSTALL_MATLAB=""
else
case "$target_cpu" in
i*86*)
LDFLAGS="$LDFLAGS -L${yap_cv_matlab}/bin/glnx86"
;;
x86*)
LDFLAGS="$LDFLAGS -L${yap_cv_matlab}/bin/glnxa64"
;;
sparc*)
LDFLAGS="$LDFLAGS -L${yap_cv_matlab}/bin/sol2"
;;
esac
INSTALL_MATLAB=""
fi
if test "$yap_cv_cudd" = no
then
USE_CUDD="@# "
else
USE_CUDD=""
fi
if test "$yap_cv_minisat" = no
then
USE_MINISAT="@# "
elif test "$INSTALL_DLLS" = "#"
then
USE_MINISAT="@# "
else
USE_MINISAT=""
fi
dnl condor does not like dynamic linking on Linux, DEC, and HP-UX platforms.
if test "$use_condor" = yes
then
use_malloc="yes"
CC="condor_compile $CC"
dnl no readline with condor.
yap_cv_readline="no"
AC_DEFINE(SUPPORT_CONDOR, 1)
STATIC_MODE=""
else
STATIC_MODE="# "
fi
dnl Compilation Flags
if test "$GCC" = "yes"
then
if test -z "${mycflags}"
then
if test "$debugyap" = "yes"
then
CFLAGS="-O -g -Wall -Wstrict-prototypes -Wmissing-prototypes"
CXXFLAGS="-O -g -Wall"
C_INTERF_FLAGS="-O -g -Wall -Wstrict-prototypes -Wmissing-prototypes"
else
CFLAGS="-O3 -fomit-frame-pointer -Wall -Wstrict-prototypes -Wmissing-prototypes"
CXXFLAGS="-O3 -fomit-frame-pointer -Wall"
case "`$CC --version < /dev/null`" in
*3.4*) CFLAGS="-fno-gcse -fno-crossjumping $CFLAGS" ;;
esac
C_INTERF_FLAGS="-O3 -Wall -Wstrict-prototypes -Wmissing-prototypes"
C_PARSER_FLAGS="-O3 -Wall -Wstrict-prototypes -Wmissing-prototypes"
case "$target_cpu" in
i*86*)
CFLAGS="-DBP_FREE $CFLAGS"
CXXFLAGS="-DBP_FREE $CXXFLAGS"
;;
sparc*)
case "$target_os" in
*solaris[2-9]*) dnl
CFLAGS="-mno-app-regs -DOPTIMISE_ALL_REGS_FOR_SPARC=1 $CFLAGS"
CXXFLAGS="-mno-app-regs -DOPTIMISE_ALL_REGS_FOR_SPARC=1 $CFPPLAGS"
;;
esac
;;
esac
if test "$tcpu"; then
target_cpu=$tcpu
fi
if test "$maxperformance" = "yes"
then
case "$target_cpu" in
athlon)
CFLAGS="-march=athlon $CFLAGS"
CXXFLAGS="-march=athlon $CXXFLAGS"
;;
i686*)
CFLAGS="-march=i686 $CFLAGS"
CXXFLAGS="-march=i686 $CXXFLAGS"
;;
i586*)
CFLAGS="-march=i586 $CFLAGS"
CXXFLAGS="-march=i586 $CXXFLAGS"
;;
i486*)
CFLAGS="-march=i486 $CFLAGS"
CXXFLAGS="-march=i486 $CXXFLAGS"
;;
i386*)
CFLAGS="-march=i386 $CFLAGS"
CXXFLAGS="-march=i386 $CXXFLAGS"
;;
esac
fi
fi
fi
if test "$CC" = "sslittle-na-sstrix-gcc"
then
RANLIB="sslittle-na-sstrix-ranlib"
AR="sslittle-na-sstrix-ar"
PRE_INSTALL_ENV="sim-fast"
INSTALL_ENV="sim-fast"
fi
else
if test -z "${mycflags}"
then
case "$target_cpu" in
i?86*)
if test "$CC" = "lcc"
then
CFLAGS="-A -A"
elif test "$CC" = "cl"
then
CFLAGS="/nologo"
CXXFLAGS="-/nologo"
CPP="/nologo /E"
fi
;;
hppa*)
if test "$CC" = "cc" -o $CC = c89
then
if test "$debugyap" = "yes"
then
CFLAGS="-Ae -g -O"
CXXFLAGS="-Ae -g -O"
else
CFLAGS="-Ae +O3 +Onolimit"
CXXFLAGS="-Ae +O3 +Onolimit"
fi
fi
dnl LDFLAGS="+e UserCPredicate $LDFLAGS"
;;
esac
fi
C_INTERF_FLAGS="$CFLAGS"
C_PARSER_FLAGS="$CFLAGS"
fi
dnl Checks for programs.
AC_PROG_LN_S
AC_PROG_INSTALL
AC_PROG_RANLIB
AC_CHECK_TOOL(INDENT,indent,:)
AC_CHECK_TOOL(AR,ar,:)
AC_CHECK_TOOL(MPI_CC,mpicc,:)
AC_PATH_PROG(INSTALL_INFO,install-info,true,$PATH:/sbin:/usr/sbin:/usr/etc:/usr/local/sbin)
AC_PATH_PROG(SHELL,sh)
dnl Check for libraries.
dnl mingw does not get along well with libm
dnl cygnus and mingw32 also need wsock32 to use sockets.
dnl
if test "$target_os" = "cygwin" -o "$target_os" = "mingw32"
then
INSTALL_COMMAND=install_win32
if test "$cygwin" = "no" -o "$target_os" = "mingw32"
then
if test "$target_win64" = yes
then
AC_CHECK_LIB(ws2_32,main)
EXTRA_LIBS_FOR_DLLS="-lws2_32 \$(abs_top_builddir)/yap.dll"
elif test "$target_os" = "cygwin"
then
CC="${CC} -mno-cygwin"
CXX="${CXX} -mno-cygwin"
AC_CHECK_LIB(wsock32,main)
else
AC_CHECK_LIB(wsock32,main)
EXTRA_LIBS_FOR_DLLS="\$(abs_top_builddir)/yap.dll"
fi
AC_CHECK_LIB(psapi,main)
yap_cv_readline=no
if test "$prefix" = "NONE"
then
if test "$target_win64" = yes
then
prefix="\${SYSTEMDRIVE}/Yap64"
else
prefix="\${SYSTEMDRIVE}/Yap"
fi
fi
ENABLE_WINCONSOLE=""
else
ENABLE_WINCONSOLE="#"
LIBS="-lcygwin"
fi
else
INSTALL_COMMAND="install_unix"
ENABLE_WINCONSOLE="#"
AC_CHECK_LIB(m,sin)
AC_CHECK_LIB(socket,socket)
dnl X/Open Networking is sometimes a separate library
AC_CHECK_LIB(xnet,getsockname)
AC_CHECK_LIB(stdc++,main)
AC_CHECK_LIB(nsl,main,
have_nsl=yes
,
have_nsl=no)
AC_CHECK_LIB(crypt,main)
fi
if test "$yap_cv_readline" != "no"
then
AC_CHECK_LIB(termcap,tgetent)
AC_CHECK_LIB(ncurses,main)
AC_CHECK_LIB(readline,readline)
fi
if test "$yap_cv_gmp" != "no"
then
AC_CHECK_LIB(gmp,main)
fi
dnl if test "$yap_cv_cudd" != "no"
dnl then
dnl AC_CHECK_LIB(cudd,Cudd_Init)
dnl fi
if test "$yap_cv_myddas" != "no"
then
dnl check for mysql
AC_MSG_CHECKING(for main in -lmysqlclient)
AC_CACHE_VAL(yap_cv_mysql,[
AC_TRY_COMPILE(
#include <mysql/mysql.h>
#include <stdio.h>
,
MYSQL *conn;
conn = mysql_init(NULL);
,
yap_cv_mysql=yes,yap_cv_mysql=no)])
AC_MSG_RESULT($yap_cv_mysql)
if test "$yap_cv_mysql" = yes
then
YAP_EXTRAS="$YAP_EXTRAS -DMYDDAS_MYSQL"
LIBS="$LIBS -L${yap_cv_myddas}/lib/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -lc -lnss_files -lnss_dns -lresolv "
fi
dnl check for odbc
AC_MSG_CHECKING(for main in -lodbc)
AC_CACHE_VAL(yap_cv_odbc,[
AC_TRY_COMPILE(
#include <sql.h>
#include <sqlucode.h>
#include <stdio.h>
,
SQLHENV henv;
SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);
,
yap_cv_odbc=yes,yap_cv_odbc=no)])
AC_MSG_RESULT($yap_cv_odbc)
if test "$yap_cv_odbc" = yes
then
YAP_EXTRAS="$YAP_EXTRAS -DMYDDAS_ODBC"
LIBS="$LIBS -lodbc "
fi
if test "$yap_cv_mysql" = no -a "$yap_cv_odbc" = no
then
echo "-------------------------------"
echo "--"
echo "--"
echo "--"
echo "-- There\'s no devel libraries for MySQL or ODBC"
echo "--"
echo "--"
echo "--"
echo "-------------------------------"
exit
fi
fi
if test "$myddasstats" = "yes"
then
YAP_EXTRAS="$YAP_EXTRAS -DMYDDAS_STATS"
fi
if test "$myddastoplevel" = "yes"
then
YAP_EXTRAS="$YAP_EXTRAS -DMYDDAS_TOP_LEVEL"
fi
if test "$threads" = yes
then
AC_DEFINE(SUPPORT_THREADS, 1)
AC_CHECK_LIB(pthread,pthread_create)
AC_CHECK_HEADERS(pthread.h)
AC_CHECK_FUNCS(pthread_mutexattr_setkind_np pthread_mutexattr_settype)
if test "$pthreadlocking" = yes
then
AC_DEFINE(USE_PTHREAD_LOCKING, 1)
fi
use_malloc=yes
fi
if test ! -z "$GCC"; then
COFLAGS="${COFLAGS--O2 -cc-options,-fno-strict-aliasing}"
CWFLAGS="${CWFLAGS--Wall}"
else
COFLAGS="${COFLAGS--O}"
CWFLAGS="${CWFLAGS-}"
fi
CMFLAGS=-fpic
CIFLAGS=-I.
if test "$use_chr" = no; then
ENABLE_CHR="@# "
elif test -e "$srcdir"/packages/chr/Makefile.in; then
ENABLE_CHR=""
else
ENABLE_CHR="@# "
fi
if test "$use_clpqr" = no; then
ENABLE_CLPQR="@# "
elif test -e "$srcdir"/packages/clpqr/Makefile.in; then
ENABLE_CLPQR=""
else
ENABLE_CLPQR="@# "
fi
dnl
dnl java is hard
dnl
if test "$yap_cv_java" = no; then
ENABLE_JPL="@#"
elif test -e "$srcdir"/packages/jpl/Makefile.in; then
ENABLE_JPL=""
JAVA=java
JAVA_HOME="$yap_cv_java"
case "$target_os" in
*cygwin*|*mingw*)
JAVALIBPATH="\"$JAVA_HOME\"/lib/jvm.lib -lpthread"
JAVAINCPATH="-I\"$JAVA_HOME\"/include -I\"$JAVA_HOME\"/include/win32"
;;
*darwin*)
LIBS="$LIBS -framework JavaVM"
JAVALIBPATH="-L/System/Library/Frameworks/JavaVM.framework/Libraries -Wl,-framework,JavaVM"
JAVAINCPATH="-I/System/Library/Frameworks/JavaVM.framework/Headers"
;;
*)
case "$target_os" in
*linux*)
JAVAINCPATH="-I\"$JAVA_HOME\"/include -I\"$JAVA_HOME\"/include/linux"
;;
*solaris*)
JAVAINCPATH="-I\"$JAVA_HOME\"/include -I\"$JAVA_HOME\"/include/solaris"
;;
esac
case "$target_cpu" in
i*86*)
JAVA_TARGET=i386
;;
x86*)
JAVA_TARGET=amd64
;;
sparc*)
JAVA_TARGET=sparc
;;
esac
JAVALIBPATH="-L$JAVA_HOME/jre/lib/$JAVA_TARGET -L$JAVA_HOME/jre/lib/$JAVA_TARGET/client -L$JAVA_HOME/jre/lib/$JAVA_TARGET/server -Wl,-R,$JAVA_HOME/jre/lib/$JAVA_TARGET -ljava -lverify -ljvm "
;;
esac
if test "$yap_cv_java" = ""; then
JAVA=java
JAR=jar
JAVAC=javac
JAVADOC=javadoc
else
JAVA="$yap_cv_java"/bin/java
JAR="$yap_cv_java"/bin/jar
JAVAC="$yap_cv_java"/bin/javac
JAVADOC="$yap_cv_java"/bin/javadoc
fi
else
ENABLE_JPL="@#"
fi
LAM_MPI_CC=${MPI_CC}
MPI_OBJS=
if test "$yap_cv_mpi" != "no"
then
OLD_CC=${CC}
CC=${MPI_CC}
AC_CHECK_LIB(mpi,MPI_Init,
[AC_DEFINE(HAVE_LIBMPI, 1)],
[AC_DEFINE(HAVE_LIBMPI, 0)])
if test "$ac_cv_lib_mpi_MPI_Init" = yes
then
#YAPMPILIB=YapMPI.a
MPI_OBJS=mpi.o
else
AC_CHECK_LIB(mpich,MPI_Init,
[AC_DEFINE(HAVE_LIBMPICH, 1)],
[AC_DEFINE(HAVE_LIBMPICH, 0)])
if test "$ac_cv_lib_mpich_MPI_Init" = yes
then
#YAPMPILIB=YapMPI.a
MPI_OBJS=mpi.o
else
#YAPMPILIB=
MPI_CC=${CC}
fi
fi
CC=${OLD_CC}
else
# MPI_CC=${MPI_CC}
MPI_CC=${CC}
fi
MPI_LIBS=
if test "$yap_cv_mpi" != "no" -a "$yap_cv_mpe" != "no"
then
OLD_CC=${CC}
CC=${MPI_CC}
AC_CHECK_LIB(mpe,MPE_Init_log,
[AC_DEFINE(HAVE_LIBMPE, 1)],
[AC_DEFINE(HAVE_LIBMPE, 0)])
if test "$ac_cv_lib_mpe_MPE_Init_log" = yes
then
MPI_LIBS="-lmpe"
MPI_OBJS="$MPI_OBJS mpe.o"
fi
CC=${OLD_CC}
fi
AC_PROG_CPP
if test "$cross_compiling" = "yes"
then
YAP_EXTRAS=
else
AC_SYS_RESTARTABLE_SYSCALLS
fi
dnl defaults
INSTALL_DLLS="#"
EXTRA_OBJS=""
SHLIB_LD="#"
SHLIB_CXX_LD="#"
DO_SECOND_LD="#"
M4="m4"
MERGE_DLL_OBJS="#"
IN_UNIX=""
dnl This has to be before $target_os
YAPLIB="libYap.a"
case "$target_os" in
*linux*)
if test "$use_condor" = "no"
then
AC_CHECK_LIB(dl,dlopen,
have_dl=yes
,
have_dl=no)
if test "$have_dl" = "yes"
then
SO="so"
SHLIB_LD="$CC -shared -export-dynamic"
SHLIB_CXX_LD="$CXX -shared -export-dynamic"
DO_SECOND_LD=""
LIBS="$LIBS -ldl"
case "$target_cpu" in
alpha*)
LDFLAGS="-dynamic $LDFLAGS"
;;
*)
if test "$CC" != "lcc"
then
LDFLAGS="-rdynamic $LDFLAGS"
fi
;;
esac
fi
if test "$ac_cv_prog_gcc" = "yes"
then
SHLIB_CFLAGS="-shared -fPIC"
INSTALL_DLLS=""
fi
fi
if test "$have_nsl" = yes
then
LIBS="$LIBS -lnsl"
fi
;;
*sunos4*)
M4="/usr/5bin/m4"
LDFLAGS="$LDFLAGS -N"
if test "$have_nsl" = yes
then
LIBS="$LIBS -lnsl"
fi
SO="o"
INSTALL_DLLS=""
;;
*hpux*)
#do not use the first memory quadrant
AC_DEFINE(FORCE_SECOND_QUADRANT)
M4="/usr/bin/m4"
if test ${use_condor} = no
then
SHLIB_INTERFACE="load_shl.o"
if test "$CC" = cc -o "$CC" = c89
then
#this tells ld to export all non-static symbols,
#otherwise no external predicates.
SHLIB_LD="$CC -shared -export-dynamic"
SHLIB_CXX_LD="$CXX -shared -export-dynamic"
DO_SECOND_LD=""
SO="sl"
SHLIB_CFLAGS="+z"
INSTALL_DLLS=""
# If the xnet library was found, turn on X/Open networking
if test "$ac_cv_lib_xnet_getsockname" = yes
then
AC_DEFINE(_XOPEN_SOURCE)
AC_DEFINE(_XOPEN_SOURCE_EXTENDED,1)
fi
else
INSTALL_DLLS="#"
fi
fi
#do not use realloc() from HP-UX 10.20 together with MPI
if test ${target_os} = hpux10.20
then
AC_DEFINE(MPI_AVOID_REALLOC,1)
fi
;;
*aix*)
# To actually use dlls in AIX I'd need to build YAP as a DLL first.
# I won't bother for now.
#
# SO="a"
#SHLIB_LD="\$(srcdir)/../../ldAix /bin/ld -bhalt:4 -bM:SRE -bE:lib.exp -H512 -T512 -bnoentry"
#INSTALL_DLLS=""
;;
*osf*)
if ${use_condor} = no
then
AC_CHECK_LIB(dl,dlopen,
dnl Linux has both elf and a.out, in this case we found elf
have_dl=yes
,
have_dl=no)
SO="so"
SHLIB_LD="ld -shared -expect_unresolved '*'"
DO_SECOND_LD=""
fi
;;
*irix6*)
SHLIB_CFLAGS=""
SO="so"
DO_SECOND_LD=""
SHLIB_LD="ld -n32 -shared -rdata_shared"
SHLIB_CXX_LD="$SHLIB_LD"
INSTALL_DLLS=""
;;
*darwin*)
if test ${use_dlcompat} = yes
then
AC_CHECK_LIB(dl,dlopen,
have_dl=yes
,
have_dl=no)
if test ${have_dl} = yes
then
LIBS="$LIBS -ldl"
fi
fi
SHLIB_CFLAGS="-fno-common"
SO="dylib"
DO_SECOND_LD=""
SHLIB_LD="$CC -dynamiclib"
SHLIB_CXX_LD="$CXX -dynamiclib"
INSTALL_DLLS=""
CC="$CC -fstrict-aliasing -freorder-blocks -fsched-interblock -Wall -Wstrict-aliasing=2"
;;
*netbsd*|*freebsd*)
if echo __ELF__ | ${CC:-cc} -E - | grep -q __ELF__
then
#an a.out system
SHLIB_CFLAGS=""
SO="o"
else
#an elf system
LDFLAGS="-Wl,--export-dynamic $LDFLAGS"
SHLIB_CFLAGS="-fPIC"
SHLIB_LD="ld -Bshareable -x"
SHLIB_CXX_LD="$SHLIB_LD"
DO_SECOND_LD=""
SO="so"
INSTALL_DLLS=""
fi
;;
*solaris*)
#an elf system
LDFLAGS="-dynamic $LDFLAGS"
SHLIB_CFLAGS="-fPIC"
SHLIB_LD="$CC -shared"
SHLIB_CXX_LD="$CXX -shared"
DO_SECOND_LD=""
SO="so"
INSTALL_DLLS=""
;;
*cyg*|*mingw*)
# gcc on cygwin seems to have trouble with longjmp
# and -fomit-frame-point -DBP_FREE
YAPLIB="yap.dll"
SHLIB_CFLAGS=""
if test "$target_win64" = no
then
LDFLAGS="-Wl,--large-address-aware $LDFLAGS"
fi
SHLIB_LD="\$(CC) -shared -Wl,--export-all-symbols"
SHLIB_CXX_LD="\$(CXX) -shared -Wl,--export-all-symbols"
SO="dll"
C_PARSER_FLAGS="$C_INTERF_FLAGS"
EXEC_SUFFIX=".exe"
INSTALL_DLLS=""
DO_SECOND_LD=""
MERGE_DLL_OBJS=""
IN_UNIX="#"
;;
*)
AC_CHECK_LIB(dl,dlopen,
have_dl=yes
,
have_dl=no)
if test "$have_dl" = yes
then
SO="o"
LIBS="$LIBS -ldl"
INSTALL_DLLS=""
if test "$GCC" = "yes"
then
SHLIB_CFLAGS="-fPIC"
fi
fi
if test "$have_nsl" = yes
then
LIBS="$LIBS -lnsl"
fi
;;
esac
if test "$dynamic_loading" = "yes"
then
DYNLIB_LD="$SHLIB_LD"
YAP_EXTRAS="$SHLIB_CFLAGS $YAP_EXTRAS"
case "$target_os" in
*cygwin*|*mingw*)
DYNLIB_LD="\$(CC) -shared -Wl,--export-all-symbols"
PRE_INSTALL_ENV=""
INSTALL_ENV=""
;;
*darwin*)
DYNYAPLIB=libYap."$SO"
YAPLIB="$DYNYAPLIB"
DYNLIB_LD="$CC -dynamiclib -Wl,-install_name,$prefix/lib/libYap.dylib"
PRE_INSTALL_ENV="DYLD_LIBRARY_PATH=\$(abs_top_builddir)"
EXTRA_LIBS_FOR_DLLS="$EXTRA_LIBS_FOR_DLLS -L\$(abs_top_builddir) -lYap -Wl,-install_name,\$(DESTDIR)\$(YAPLIBDIR)/\$@"
INSTALL_ENV="DYLD_LIBRARY_PATH=\$(DESTDIR)\$(LIBDIR): YAPSHAREDIR=\$(DESTDIR)\$(SHAREDIR) YAPLIBDIR=\$(DESTDIR)\$(YAPLIBDIR)"
# CROSS_SIMULATOR="DYLD_LIBRARY_PATH=."
;;
*)
LDFLAGS="$LDFLAGS -L\$(abs_top_builddir) -Wl,-R,\$(DESTDIR)\$(LIBDIR) -Wl,-R,\$(DESTDIR)\$(YAPLIBDIR)"
DYNYAPLIB=libYap."$SO"
YAPLIB="$DYNYAPLIB"
EXTRA_LIBS_FOR_DLLS="$EXTRA_LIBS_FOR_DLLS -L\$(abs_top_builddir) -lYap -Wl,-R,\$(DESTDIR)\$(YAPLIBDIR) -Wl,-R,\$(DESTDIR)\$(LIBDIR)"
PRE_INSTALL_ENV="LD_LIBRARY_PATH=\$(abs_top_builddir)"
INSTALL_ENV="LD_LIBRARY_PATH=\$(DESTDIR)\$(LIBDIR): YAPSHAREDIR=\$(DESTDIR)\$(SHAREDIR) YAPLIBDIR=\$(DESTDIR)\$(YAPLIBDIR)"
;;
esac
else
PRE_INSTALL_ENV=""
DYNYAPLIB=libYap.notused
fi
EXTRA_LIBS_FOR_SWIDLLS="$EXTRA_LIBS_FOR_DLLS -L\$(abs_top_builddir)/packages/PLStream -lplstream"
if test "$coroutining" = "yes"
then
YAP_EXTRAS="$YAP_EXTRAS -DCOROUTINING=1"
fi
if test "$rationaltrees" = "yes"
then
YAP_EXTRAS="$YAP_EXTRAS -DRATIONAL_TREES=1"
fi
if test "$rationaltrees" = "yes" -a "$coroutining" = "yes"
then
INSTALLCLP=""
else
INSTALLCLP="@#"
fi
if test "$debugyap" = "yes"
then
YAP_EXTRAS="$YAP_EXTRAS -DDEBUG=1"
fi
if test "$eam" = "yes"
then
YAP_EXTRAS="$YAP_EXTRAS -DBEAM"
fi
if test "$wamprofile" = "yes"
then
YAP_EXTRAS="$YAP_EXTRAS -DANALYST=1"
fi
if test "$depthlimit" = "yes"
then
YAP_EXTRAS="$YAP_EXTRAS -DDEPTH_LIMIT=1"
fi
if test "$use_april" = "yes"
then
YAP_EXTRAS="$YAP_EXTRAS -DDEPTH_LIMIT=1 -DAPRIL"
LDFLAGS="$LDFLAGS -L."
LIBS="$LIBS -lApril"
fi
if test "$lowleveltracer" = "yes"
then
YAP_EXTRAS="$YAP_EXTRAS -DLOW_LEVEL_TRACER=1"
fi
if test "$threads" = "yes"
then
YAP_EXTRAS="$YAP_EXTRAS -DTHREADS=1"
if test "$GCC" = "yes"
then
YAP_EXTRAS="$YAP_EXTRAS -D_GNU_SOURCE"
fi
fi
case "$orparallelism" in
sba)
YAP_EXTRAS="$YAP_EXTRAS -DSBA=1"
;;
a-cow)
YAP_EXTRAS="$YAP_EXTRAS -DACOW=1"
;;
yes|env-copy)
YAP_EXTRAS="$YAP_EXTRAS -DENV_COPY=1"
;;
esac
if test "$cutc" = "yes"
then
YAP_EXTRAS="$YAP_EXTRAS -DCUT_C=1"
fi
if test "$tabling" = "yes"
then
YAP_EXTRAS="$YAP_EXTRAS -DTABLING=1"
fi
if test ! "$yap_cv_cplint" = "no"
then
GLIBS=`pkg-config --libs glib-2.0`
GFLAGS=`pkg-config --cflags glib-2.0`
CPLINT_LIBS=${CPLINT_LIBS}$GLIBS
CPLINT_CFLAGS=" $GFLAGS "
CPLINT_LDFLAGS=" `echo $GLIBS | awk '{print $1}'` -L$pefic/lib/"
LDFLAGS=${LDFLAGS}" `echo $GLIBS | awk '{print $1}'` -L$prefix/lib/"
if test ! "$yap_cv_cplint" = "yes"
then
LDFLAGS+=" -L${yap_cv_cplint}/lib"
CPLINT_LDFLAGS+=" -L${yap_cv_cplint}/lib"
CPLINT_CFLAGS+=" -I${yap_cv_cplint}/include"
fi
AC_SEARCH_LIBS([g_hash_table_new], [glib-2.0], [CPLINT_LIBS="-lglib-2.0 "], [AC_MSG_ERROR([This package needs glib >=2.0.], [1])], [])
AC_SEARCH_LIBS([array_do_alloc], [glu], [CPLINT_LIBS="-lglu "$CPLINT_LIBS], [AC_MSG_ERROR([This package needs glu.], [1])], [])
AC_SEARCH_LIBS([Cudd_Init], [cu], [CPLINT_LIBS="-lcu "$CPLINT_LIBS], [AC_MSG_ERROR([This package needs glu.], [1])], [-lglu -lm])
AC_SEARCH_LIBS([pow], [m], [CPLINT_LIBS="-lm "$CPLINT_LIBS], [AC_MSG_ERROR([This package needs m.], [1])], [-lglu -lm])
ENABLE_CPLINT=""
if test "$target_os" = "cygwin" -o "$target_os" = "mingw32"
then
CPLINT_SHLIB_LD="gcc -shared ../yap.dll"
else
CPLINT_SHLIB_LD=$SHLIB_LD
fi
AC_SUBST(CPLINT_LIBS)
AC_SUBST(CPLINT_CFLAGS)
AC_SUBST(CPLINT_LDFLAGS)
AC_SUBST(CPLINT_SHLIB_LD)
else
ENABLE_CPLINT="@#"
fi
AC_SUBST(ENABLE_CPLINT)
AC_SUBST(INSTALL_ENV)
AC_SUBST(PRE_INSTALL_ENV)
# LAM
OLD_CC=${CC}
CC=${LAM_MPI_CC}
AC_CHECK_LIB([lam], [main],
LAMOBJS=yap_mpi."$SO",
LAMOBJS=no)
CC=${OLD_CC}
dnl Checks for header files.
AC_HEADER_STDC
AC_HEADER_SYS_WAIT
AC_CHECK_HEADERS(arpa/inet.h alloca.h crypt.h)
AC_CHECK_HEADERS(ctype.h direct.h dirent.h dlfcn.h)
AC_CHECK_HEADERS(errno.h execinfo.h fcntl.h fenv.h)
AC_CHECK_HEADERS(float.h fpu_control.h ieeefp.h io.h limits.h)
AC_CHECK_HEADERS(locale.h malloc.h math.h memory.h mpi.h)
AC_CHECK_HEADERS(netdb.h netinet/in.h netinet/tcp.h pwd.h regex.h)
AC_CHECK_HEADERS(siginfo.h signal.h stdarg.h string.h stropts.h)
AC_CHECK_HEADERS(sys/conf.h sys/dir.h sys/file.h)
AC_CHECK_HEADERS(sys/mman.h sys/ndir.h sys/param.h)
AC_CHECK_HEADERS(sys/resource.h sys/select.h)
AC_CHECK_HEADERS(sys/shm.h sys/socket.h sys/stat.h)
AC_CHECK_HEADERS(sys/time.h sys/times.h sys/types.h)
AC_CHECK_HEADERS(sys/ucontext.h sys/un.h sys/wait.h)
AC_CHECK_HEADERS(time.h unistd.h utime.h wctype.h winsock.h winsock2.h)
AC_CHECK_HEADERS(mach-o/dyld.h)
if test "$yap_cv_gmp" != "no"
then
AC_CHECK_HEADERS(gmp.h)
fi
if test "$yap_cv_cudd" != "no"
then
AC_CHECK_HEADERS(cudd.h)
fi
if test "$yap_cv_myddas" != "no"
then
AC_CHECK_HEADERS(mysql/mysql.h)
fi
if test "$yap_cv_readline" != "no"
then
AC_CHECK_HEADERS( readline/readline.h)
fi
AC_CHECK_HEADERS(mpi.h)
AC_CHECK_HEADERS(mpe.h)
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_INLINE
AC_STRUCT_TM
AC_CHECK_SIZEOF(int *,4)
AC_CHECK_SIZEOF(short int,2)
AC_CHECK_SIZEOF(int,4)
AC_CHECK_SIZEOF(long int,4)
AC_CHECK_SIZEOF(long long int,8)
AC_CHECK_SIZEOF(float,4)
AC_CHECK_SIZEOF(double,8)
dnl check type of malloc (i.e. char * or void *)
AC_MSG_CHECKING(for type of malloc)
AC_CACHE_VAL(yap_cv_malloct,[
AC_TRY_RUN(
#include <stdlib.h>
char *malloc(size_t);
int main() {
void *p=malloc(1);
return 0;
}
,
yap_cv_malloct=char,yap_cv_malloct=void,yap_cv_malloct=void)])
AC_MSG_RESULT($yap_cv_malloct *)
if test "$yap_cv_malloct" = void
then AC_DEFINE(MALLOC_T,void *)
else AC_DEFINE(MALLOC_T,char *)
fi
dnl check how to generate headers (i.e. should we use GCC inline?)
AC_MSG_CHECKING(for gcc inline)
AC_CACHE_VAL(yap_cv_gcc,[
AC_TRY_RUN(
#undef inline
inline int f(int x) {return x+1;}
int main() { return 0;}
,
yap_cv_gcc=yes,yap_cv_gcc=no,yap_cv_gcc=yes)])
AC_MSG_RESULT($yap_cv_gcc)
if test "$yap_cv_gcc" = yes
then
M4GENHDRS=m4/gcc_genhdrs.m4
AC_DEFINE(HAVE_GCC,1)
else
M4GENHDRS=m4/cc_genhdrs.m4
AC_DEFINE(HAVE_GCC,0)
fi
AC_SUBST(M4)
AC_SUBST(M4GENHDRS)
dnl SWI compatibility, I don't know why just use host...
changequote(,)dnl
if test "x$ARCH" = "x"; then
case "$host" in
*linux*)
ARCH=`echo $host | sed 's/-.*/-linux/'`
;;
*-gnu)
ARCH=`echo $host | sed 's/\([^-]*\)-[^-]*-\([^-]*\)-gnu/\1-\2/'`
;;
*)
ARCH=`echo $host | sed 's/\([^-]*\)-[^-]*-\([^-]*\)/\1-\2/'`
;;
esac
fi
changequote([,])dnl
AC_SUBST(ARCH)
dnl System stuff for dynamic linking.
dnl
dnl Exports:
dnl
dnl "" if we can do dynamic linking, "#" otherwise
AC_SUBST(INSTALL_DLLS)
dnl if we need to merge several .o files into a single dll.
AC_SUBST(MERGE_DLL_OBJS)
dnl C-flags used to compile a file that will be loaded dynamically
AC_SUBST(CXXFLAGS)
AC_SUBST(SHLIB_CFLAGS)
dnl suffix for loadable binary (.so,.dll,.o)
AC_SUBST(SO)
dnl suffix for executable (.exe)
EXEC_SUFFIX=""
AC_SUBST(EXEC_SUFFIX)
dnl how to call the loader
AC_SUBST(DO_SECOND_LD)
AC_SUBST(SHLIB_LD)
AC_SUBST(SHLIB_CXX_LD)
AC_SUBST(DYNLIB_LD)
AC_SUBST(EXTRA_LIBS_FOR_DLLS)
AC_SUBST(EXTRA_LIBS_FOR_SWIDLLS)
dnl objects in YAP library
AC_SUBST(YAPLIB)
AC_SUBST(DYNYAPLIB)
AC_SUBST(LDFLAGS)
dnl install_info
AC_SUBST(INSTALL_INFO)
dnl let YAP_EXTRAS fall through configure, from the env into Makefile
AC_SUBST(YAP_EXTRAS)
AC_SUBST(NO_BUILTIN_REGEXP)
AC_SUBST(ENABLE_CHR)
AC_SUBST(ENABLE_CLPQR)
AC_SUBST(ENABLE_JPL)
AC_SUBST(JAVA)
AC_SUBST(JAVA_HOME)
AC_SUBST(JUNIT)
AC_SUBST(JAVAC)
AC_SUBST(JAVADOC)
AC_SUBST(JAR)
AC_SUBST(IN_UNIX)
AC_SUBST(YAPMPILIB)
AC_SUBST(LAM_MPI_CC)
AC_SUBST(MPI_OBJS)
AC_SUBST(MPI_LIBS)
AC_SUBST(INSTALL_COMMAND)
AC_SUBST(INSTALLCLP)
AC_SUBST(JAVALIBPATH)
AC_SUBST(JAVAINCPATH)
AC_SUBST(LAMOBJS)
AC_SUBST(MAX_WORKERS)
AC_SUBST(STATIC_MODE)
AC_SUBST(ENABLE_WINCONSOLE)
AC_SUBST(USE_CUDD)
AC_SUBST(CUDD_LDFLAGS)
AC_SUBST(CUDD_CPPFLAGS)
AC_SUBST(USE_MINISAT)
AC_SUBST(INSTALL_MATLAB)
AC_SUBST(MATLAB_INCLUDE)
dnl check for threaded code
AC_MSG_CHECKING(for gcc threaded code)
AC_CACHE_VAL(yap_cv_threaded_code,[
AC_TRY_RUN(
int main() {
void *t = &&l2;
l1: goto *t;
l2: return 0;
}
,
yap_cv_threaded_code=yes,yap_cv_threaded_code=no,yap_cv_threaded_code=yes)])
AC_MSG_RESULT($yap_cv_threaded_code)
if test "$yap_cv_threaded_code" = yes && test "$yap_cv_gcc" = yes
then
AC_DEFINE(USE_THREADED_CODE,1)
M4GENABSMI=gen_gcc.m4
else
AC_DEFINE(USE_THREADED_CODE,0)
M4GENABSMI=gen_ansi.m4
fi
AC_SUBST(M4GENABSMI)
dnl check for IEEE floats
AC_MSG_CHECKING(for IEEE floats)
AC_CACHE_VAL(yap_cv_ffieee,[
AC_TRY_RUN(
int main() {
union { float f; int i} a;
a.f = 1;
if (a.i==0x3f800000) return 0;
return 1;
}
,
yap_cv_ffieee=yes,yap_cv_ffieee=no,yap_cv_ffieee=yes)])
AC_MSG_RESULT($yap_cv_ffieee)
if test "$yap_cv_ffieee" = yes
then
AC_DEFINE(FFIEEE,1)
else
AC_DEFINE(FFIEEE,0)
fi
dnl check for sigsetjmp
AC_MSG_CHECKING(for sigsetjmp)
AC_CACHE_VAL(yap_cv_sigsetjmp,[
AC_TRY_COMPILE(
#include <setjmp.h>
,
sigjmp_buf RestartEnv;
siglongjmp (RestartEnv, 1);
,
yap_cv_sigsetjmp=yes,yap_cv_sigsetjmp=no)])
AC_MSG_RESULT($yap_cv_sigsetjmp)
if test "$yap_cv_sigsetjmp" = yes
then
AC_DEFINE(HAVE_SIGSETJMP,1)
else
AC_DEFINE(HAVE_SIGSETJMP,0)
fi
dnl check for sigsegv
AC_MSG_CHECKING(for sigsegv)
AC_CACHE_VAL(yap_cv_sigsegv,[
AC_TRY_COMPILE(
#include <signal.h>
#include <stdio.h>
,
printf("Signal value is %d\n", SIGSEGV);
,
yap_cv_sigsegv=yes,yap_cv_sigsegv=no)])
AC_MSG_RESULT($yap_cv_sigsegv)
if test "$yap_cv_sigsegv" = yes
then
AC_DEFINE(HAVE_SIGSEGV,1)
else
AC_DEFINE(HAVE_SIGSEGV,0)
fi
dnl check for sigsegv
AC_MSG_CHECKING(for sigprof)
AC_CACHE_VAL(yap_cv_sigprof,[
AC_TRY_COMPILE(
#include <signal.h>
#include <stdio.h>
,
printf("Signal value is %d\n", SIGPROF);
,
yap_cv_sigprof=yes,yap_cv_sigprof=no)])
AC_MSG_RESULT($yap_cv_sigprof)
if test "$yap_cv_sigsegv" = yes
then
AC_DEFINE(HAVE_SIGPROF,1)
else
AC_DEFINE(HAVE_SIGPROF,0)
fi
dnl check for siginfo
AC_MSG_CHECKING(for siginfo)
AC_CACHE_VAL(yap_cv_siginfo,[
AC_TRY_COMPILE(
#include <signal.h>
#include <stdio.h>
,
printf("SIGINFO value is %d\n", SA_SIGINFO);
,
yap_cv_siginfo=yes,yap_cv_siginfo=no)])
AC_MSG_RESULT($yap_cv_siginfo)
if test "$yap_cv_siginfo" = yes
then
AC_DEFINE(HAVE_SIGINFO,1)
else
AC_DEFINE(HAVE_SIGINFO,0)
fi
dnl this is copied from the Tcl code
dnl this code checks whether the system defines an union wait
AC_MSG_CHECKING([union wait])
AC_TRY_LINK([#include <sys/types.h>
#include <sys/wait.h>], [
union wait x;
wait(&x); /* make sure we can compile wait */
WIFEXITED(x); /* Generates compiler error if WIFEXITED
* uses an int. */
], union_wait_ok=yes, union_wait_ok=no)
AC_MSG_RESULT($union_wait_ok)
if test "$union_wait_ok" = no; then
AC_DEFINE(NO_UNION_WAIT)
fi
dnl check whether the system supports the environ variable
AC_MSG_CHECKING([environ])
AC_TRY_LINK([], [
extern char **environ;
], environ_ok=yes, environ_ok=no)
AC_MSG_RESULT($environ_ok)
if test "$environ_ok" = yes; then
AC_DEFINE(HAVE_ENVIRON)
fi
dnl Checks for library functions.
AC_TYPE_SIGNAL
AC_CHECK_FUNCS(_NSGetEnviron access acosh)
AC_CHECK_FUNCS(alloca asinh atanh chdir ctime dlopen dup2)
AC_CHECK_FUNCS(erf feclearexcept)
AC_CHECK_FUNCS(fesettrapenable fgetpos finite fpclass ftime getcwd getenv)
AC_CHECK_FUNCS(gethostbyname gethostent gethostid gethostname)
AC_CHECK_FUNCS(gethrtime getpagesize)
AC_CHECK_FUNCS(getpwnam getrlimit getrusage gettimeofday getwd)
AC_CHECK_FUNCS(isatty isnan isinf kill labs link lgamma)
AC_CHECK_FUNCS(localtime lstat mallinfo)
AC_CHECK_FUNCS(mbsnrtowcs)
AC_CHECK_FUNCS(memcpy memmove mkstemp mktemp)
AC_CHECK_FUNCS(nanosleep mktime opendir)
AC_CHECK_FUNCS(putenv rand random readlink regexec)
AC_CHECK_FUNCS(rename rint rl_set_prompt sbrk select)
AC_CHECK_FUNCS(setbuf setitimer setsid setlinebuf sigaction)
AC_CHECK_FUNCS(siggetmask siginterrupt)
AC_CHECK_FUNCS(signal sigprocmask socket stat)
AC_CHECK_FUNCS(strchr strerror stricmp strncat strncpy strtod)
AC_CHECK_FUNCS(time times tmpnam usleep utime vsnprintf)
AC_CHECK_FUNC(regexec, [NO_BUILTIN_REGEXP="#"], [NO_BUILTIN_REGEXP=""])
AC_CHECK_FUNCS(NSLinkModule)
if test "$use_condor" = "no"
then
AC_CHECK_FUNCS(alarm mmap popen shmat sleep system ttyname waitpid)
fi
if test "$target_os" != "mingw32"
then
AC_CHECK_FUNCS(fetestexcept snprintf)
fi
dnl check for mpz_xor
AC_MSG_CHECKING(for mpz_xor)
AC_CACHE_VAL(yap_cv_mpz_xor,[
AC_TRY_LINK(
#include <gmp.h>
void check(mpz_t rop,mpz_t op1,mpz_t op2) {
mpz_xor(rop,op1,op2);
}
,
,
yap_cv_mpz_xor=yes,yap_cv_mpz_xor=no)])
AC_MSG_RESULT($yap_cv_mpz_xor)
if test "$yap_cv_mpz_xor" = yes
then
AC_DEFINE(HAVE_MPZ_XOR,1)
else
AC_DEFINE(HAVE_MPZ_XOR,0)
fi
if test "$use_malloc" = "yes" -a "$maxmemory" = "yes"
then
maxmemory="no"
fi
dnl On some systems doing a fflush(NULL) to flush all output streams
dnl has the side-effect of makeing all charactes waiting in input
dnl pipes disapear.
AC_CACHE_CHECK(
[if fflush(NULL) clobbers input pipes],
[yap_cv_broken_fflush_null],
[ cat >conftest.$ac_ext <<EOF
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
char *buf;
int i;
char *bp;
bp = buf = malloc(1024);
while (1) {
while ((i = getc(stdin)) != -1
&& (*bp++ = i) != '\n'
&& (bp - buf < 1024) )
/* DO NOTHING */ ;
*bp = '\0';
fprintf(stdout, "%s", buf);
fflush(NULL);
if( i == EOF ) return 0;
bp = buf;
}
}
EOF
AC_TRY_EVAL(ac_link)
if test "$?" = 0
then
cat conftest.$ac_ext | ./conftest$ac_exeext > conftest.out
AC_TRY_COMMAND(cmp conftest.$ac_ext conftest.out)
if test "$?" = 0
then
AC_MSG_RESULT(no)
yap_cv_broken_fflush_null=no
else
AC_MSG_RESULT(yes)
yap_cv_broken_fflush_null=yes
fi
else
dnl This should never happen
AC_MSG_RESULT(failed)
yap_cv_broken_fflush_null=failed
fi
rm -f conftest.$ac_ext conftest.$ac_objext conftest$ac_exeext conftest.out ])
if test "$yap_cv_broken_fflush_null" = no
then
AC_DEFINE(BROKEN_FFLUSH_NULL,0)
else
dnl be conservative: if the test failed, assume fflush(NULL) is
dnl not working properly
AC_DEFINE(BROKEN_FFLUSH_NULL,1)
fi
dnl disable smart memory management
if test "$use_malloc" = yes
then
AC_DEFINE(USE_SYSTEM_MALLOC,1)
AC_DEFINE(GC_NO_TAGS,1)
fi
dnl large memory configuration, don't trust Yap allocation routines
if test "$maxmemory" = yes
then
AC_DEFINE(GC_NO_TAGS,1)
AC_DEFINE(USE_DL_MALLOC,1)
fi
dnl SWI compatibility support!
PROLOG_SYSTEM=yap
IN_YAP=
IN_SWI="#"
CHR_TARGETS=chr_support."$SO"
AC_SUBST(PROLOG_SYSTEM)
AC_SUBST(IN_YAP)
AC_SUBST(IN_SWI)
AC_SUBST(TARGETS)
AC_SUBST(PLTARGETS)
AC_SUBST(CHR_TARGETS)
AC_SUBST(CLIB_TARGETS)
AC_SUBST(CLIB_PLTARGETS)
AC_SUBST(CLIB_NETLIBS)
AC_SUBST(CLIB_CRYPTLIBS)
CLIB_TARGETS="random.$SO unix.$SO socket.$SO cgi.$SO memfile.$SO files.$SO mime.$SO crypt.$SO"
AC_CHECK_FUNC(socket, [], [
AC_CHECK_LIB(socket, socket,
[CLIB_NETLIBS="$CLIB_NETLIBS -lsocket"]
AC_DEFINE(HAVE_LIBSOCKET, 1,
"Define if you have the socket library (-lsocket)."))])
AC_CHECK_FUNC(gethostent, [], [
AC_CHECK_LIB(nsl, gethostent,
[CLIB_NETLIBS="$CLIB_NETLIBS -lnsl"]
AC_DEFINE(HAVE_LIBNSL, 1,
"Define if you have the nsl library (-lnsl)."))])
oldlibs="$LIBS"
AC_CHECK_LIB(crypt, crypt)
CRYPTLIBS="$LIBS"
AC_CHECK_FUNCS(crypt)
LIBS="$oldlibs"
AC_CHECK_TYPES(socklen_t, [], [],
[
#include <sys/types.h>
#include <sys/socket.h>
])
AC_CHECK_TYPES(ssize_t, [], [],
[
#include <sys/types.h>
#include <sys/socket.h>
])
AC_MSG_CHECKING(_XOPEN_SOURCE)
AC_TRY_COMPILE(
[
#define _XOPEN_SOURCE
#include <unistd.h>
],
[
], AC_DEFINE(DEFINE_XOPEN_SOURCE, 1,
"Define if _XOPEN_SOURCE is needed")
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no))
if test "$with_time" = yes; then
if test "$ac_cv_func_setitimer" = "yes"; then
TARGETS="$TARGETS time.$SO"
else
echo "WARNING: no setitimer(); dropping time.pl from targets"
fi
fi
if test "$ac_cv_func_getrlimit" = "yes"; then
TARGETS="$TARGETS rlimit.$SO"
else
"WARNING: no getrlimit(); dropping rlimit.pl from targets"
fi
mkdir -p library/matrix
mkdir -p library/matlab
mkdir -p library/mpi
mkdir -p library/random
mkdir -p library/regex
mkdir -p library/system
mkdir -p library/tries
mkdir -p library/rltree
mkdir -p library/lammpi
mkdir -p library/yap2swi
mkdir -p LGPL/clp
mkdir -p LGPL/swi_console
mkdir -p GPL
mkdir -p packages/
mkdir -p packages/clib
mkdir -p packages/clib/sha1
mkdir -p packages/clib/maildrop
mkdir -p packages/clib/maildrop/rfc822
mkdir -p packages/clib/maildrop/rfc2045
mkdir -p packages/CLPBN
mkdir -p packages/clpqr
mkdir -p packages/cplint
mkdir -p packages/cplint/approx
mkdir -p packages/cplint/approx/simplecuddLPADs
mkdir -p packages/jpl
mkdir -p packages/jpl/src/java
mkdir -p packages/jpl/src/java/jpl
mkdir -p packages/jpl/src/java/jpl/fli
mkdir -p packages/jpl/src/java/jpl/test
mkdir -p packages/jpl/examples
mkdir -p packages/jpl/examples/java
mkdir -p packages/PLStream
mkdir -p packages/plunit
mkdir -p packages/ProbLog
mkdir -p packages/ProbLog/simplecudd
mkdir -p packages/sgml
AC_CONFIG_FILES([Makefile])
AC_CONFIG_FILES([GPL/Makefile])
AC_CONFIG_FILES([library/Makefile])
AC_CONFIG_FILES([library/lammpi/Makefile])
AC_CONFIG_FILES([library/matlab/Makefile])
AC_CONFIG_FILES([library/matrix/Makefile])
AC_CONFIG_FILES([library/mpi/Makefile])
AC_CONFIG_FILES([library/random/Makefile])
AC_CONFIG_FILES([library/regex/Makefile])
AC_CONFIG_FILES([library/rltree/Makefile])
AC_CONFIG_FILES([library/system/Makefile])
AC_CONFIG_FILES([library/tries/Makefile])
AC_CONFIG_FILES([library/yap2swi/Makefile])
AC_CONFIG_FILES([LGPL/Makefile])
AC_CONFIG_FILES([LGPL/clp/Makefile])
AC_CONFIG_FILES([LGPL/swi_console/Makefile])
AC_CONFIG_FILES([packages/clib/Makefile])
AC_CONFIG_FILES([packages/clib/maildrop/rfc822/Makefile])
AC_CONFIG_FILES([packages/clib/maildrop/rfc2045/Makefile])
AC_CONFIG_FILES([packages/CLPBN/Makefile])
AC_CONFIG_FILES([packages/cplint/Makefile])
AC_CONFIG_FILES([packages/cplint/approx/simplecuddLPADs/Makefile])
AC_CONFIG_FILES([packages/PLStream/Makefile])
AC_CONFIG_FILES([packages/plunit/Makefile])
AC_CONFIG_FILES([packages/ProbLog/Makefile ])
AC_CONFIG_FILES([packages/sgml/Makefile])
if test "$ENABLE_CHR" = ""; then
AC_CONFIG_FILES([packages/chr/Makefile])
fi
if test "$ENABLE_CLPQR" = ""; then
AC_CONFIG_FILES([packages/clpqr/Makefile])
fi
if test "$ENABLE_JPL" = ""; then
AC_CONFIG_FILES([packages/jpl/Makefile packages/jpl/jpl_paths.yap packages/jpl/src/java/Makefile packages/pyswip/Makefile ])
fi
if test "$USE_CUDD" = ""; then
AC_CONFIG_FILES([packages/ProbLog/simplecudd/Makefile])
fi
if test "$USE_MINISAT" = ""; then
AC_CONFIG_FILES([packages/swi-minisat2/Makefile])
AC_CONFIG_FILES([packages/swi-minisat2/C/Makefile])
fi
AC_OUTPUT()