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 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 YAPLIB_LD= construct libYap.DLL dnl SHLIB_LD= dll ld (C) dnl SHLIB_CXX_LD= dll ld (C++) dnl SHLIB_CFLAGS= cflags to use when constructing a DLL dnl SHLIB_CXX_CFLAGS= c++flags to use when constructing a DLL dnl YAPLIB_CFLAGS=flags to construct libYap 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(YAP, 6.3.4, yap-users@sf.net, yap ) AC_CONFIG_HEADER(config.h) AC_CONFIG_HEADER(YapTermConfig.h) dnl store the environment's compilation flags mycflags="$CFLAGS" AC_PROG_CC AC_PROG_CPP AC_PROG_CXX AC_PROG_AWK AC_SUBST(GCC) AC_SUBST(C_INTERF_FLAGS) AC_SUBST(C_PARSER_FLAGS) AC_LANG(C) AC_CANONICAL_SYSTEM AC_DEFINE_UNQUOTED(HOST_ALIAS,"${target}") m4_define([HAS_TOP]) case "$target_cpu" in i*86*) YAP_TARGET=i386 ;; x86*) YAP_TARGET=amd64 ;; sparc*) YAP_TARGET=sparc ;; *) YAP_TARGET=unknown ;; esac AC_ARG_ENABLE(tabling, [ --enable-tabling support tabling ], tabling="$enableval", tabling=yes) AC_ARG_ENABLE(or-parallelism, [ --enable-or-parallelism support or-parallelism as: copy,sba,a-cow,threads ], orparallelism="$enableval", orparallelism=no) 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(prism, [ --enable-prism use PRISM system in YAP ], prism="$enableval", prism=yes) AC_ARG_ENABLE(dynamic_loading, [ --enable-dynamic-loading compile YAP as a DLL ], dynamic_loading="$enableval", dynamic_loading=no) AC_ARG_ENABLE(static_compilation, [ --enable-static-compilation compile YAP statically ], static_compilation="$enableval", static_compilation=no) AC_ARG_ENABLE(use-malloc, [ --enable-use-malloc use malloc to allocate memory ], use_malloc="$enableval", use_malloc=yes) 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(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(clpbn-bp, [ --enable-clpbn-bp enable belief propagation solver in CLPBN. ], yap_cv_clpbn_bp="$enableval", yap_cv_clpbn_bp=yes) 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" LIBS="$LIBS -L${yap_cv_gmp}/lib" CPPFLAGS="$CPPFLAGS -I${yap_cv_gmp}/include" CFLAGS="$CFLAGS -I${yap_cv_gmp}/include" fi, [yap_cv_gmp=yes]) AC_ARG_WITH(R, [ --with-R[=DIR] interface to R language], if test "$withval" = yes; then yap_cv_R=yes elif test "$withval" = no; then yap_cv_R=no else yap_cv_R=$withval fi, [yap_cv_R=no]) AC_ARG_WITH(judy, [ --with-judy[=DIR] UDI needs judy library], if test "$withval" = yes; then yap_cv_judy=yes elif test "$withval" = no; then yap_cv_judy=no else yap_cv_judy=$withval fi, [yap_cv_judy=yes]) 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(java, [ --with-java=JAVA_HOME use Java instalation in JAVA_HOME], if test "$withval" = yes; then yap_cv_java=yes 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 if test -d "${yap_cv_readline}/lib64" -a "$YAP_TARGET" = amd64; then LDFLAGS="-L${yap_cv_readline}/lib64 -L${yap_cv_readline}/lib $LDFLAGS" else LDFLAGS="-L${yap_cv_readline}/lib $LDFLAGS" fi CPPFLAGS="-I${yap_cv_readline}/include $CPPFLAGS" fi, [yap_cv_readline=yes]) 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"]) if test "$orparallelism" = no then AC_DEFINE(MinHeapSpace, (1000*SIZEOF_INT_P)) AC_DEFINE(MinStackSpace,(300*SIZEOF_INT_P)) AC_DEFINE(MinTrailSpace,( 48*SIZEOF_INT_P)) AC_DEFINE(MAX_WORKERS,1) else AC_DEFINE(MinHeapSpace, (2000*SIZEOF_INT_P)) AC_DEFINE(MinStackSpace,(600*SIZEOF_INT_P)) AC_DEFINE(MinTrailSpace,(100*SIZEOF_INT_P)) AC_DEFINE_UNQUOTED(MAX_WORKERS,$yap_cv_max_workers) if test "$orparallelism" = copy -o "$orparallelism" = yes then use_malloc="no" fi tabling="no" fi 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) if test "$threads" = no then AC_DEFINE(MAX_THREADS,1) else AC_DEFINE_UNQUOTED(MAX_THREADS,$yap_cv_max_threads) fi if test "$yap_cv_prism" = no then INSTALL_PRISM="packages/prism/src/c packages/prism/src/prolog" else INSTALL_PRISM="" fi if test "$yap_cv_clpbn_bp"="yes"; then AC_LANG_PUSH([C++]) my_save_cxxflags="$CXXFLAGS" CXXFLAGS=-std=c++0x AC_MSG_CHECKING([whether CXX supports -std-c++0x]) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])] [yap_cv_clpbn_bp=no] ) CXXFLAGS="$my_save_cxxflags" AC_LANG_POP() fi if test "$yap_cv_clpbn_bp" = no then PKG_CLPBN="packages/CLPBN" else PKG_CLPBN="packages/CLPBN packages/CLPBN/horus" fi dnl condor universe does not like dynamic linking on Linux, DEC, and HP-UX platforms. if test "$use_condor" = yes then static_compilation="yes" use_malloc="yes" CC="condor_compile $CC" CXX="condor_compile $CXX" dnl no readline with condor. yap_cv_readline="no" AC_DEFINE(SUPPORT_CONDOR, 1) dnl and it disables minisat yap_cv_minisat=no STATIC_MODE="" else static_compilation="no" STATIC_MODE="# " fi dnl Compilation Flags if test "$GCC" = "yes" then if test "$debugyap" = "yes" then CXXFLAGS="-O -g -Wall $CXXFLAGS" C_INTERF_FLAGS="-O -g -Wall -Wstrict-prototypes -Wmissing-prototypes $CFLAGS" CFLAGS="-O -g -Wall -Wstrict-prototypes -Wmissing-prototypes $CFLAGS" else CXXFLAGS="-O3 -fomit-frame-pointer -Wall $CXXFLAGS" C_INTERF_FLAGS="-O3 -Wall -Wstrict-prototypes -Wmissing-prototypes $CFLAGS" C_PARSER_FLAGS="-O3 -Wall -Wstrict-prototypes -Wmissing-prototypes $CFLAGS" CFLAGS="-O3 -fomit-frame-pointer -Wall -Wstrict-prototypes -Wmissing-prototypes $CFLAGS" case "`$CC --version < /dev/null`" in *3.4*) CFLAGS="-fno-gcse -fno-crossjumping $CFLAGS" ;; esac 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 $CXXFLAGS" ;; 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" ;; esac 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 case "$target_cpu" in i?86*) if test "$CC" = "lcc" then CFLAGS="-A -A $CFLAGS" elif test "$CC" = "cl" then CXXFLAGS="-/nologo $CXXFLAGS" CFLAGS="/nologo $CFLAGS" CPP="/nologo /E" fi ;; hppa*) if test "$CC" = "cc" -o $CC = c89 then if test "$debugyap" = "yes" then CXXFLAGS="-Ae -g -O $CXXFLAGS" CFLAGS="-Ae -g -O $CFLAGS" else CXXFLAGS="-Ae +O3 +Onolimit $CXXFLAGS" CFLAGS="-Ae +O3 +Onolimit $CFLAGS" fi fi dnl LDFLAGS="+e UserCPredicate $LDFLAGS" ;; esac 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(AR,ar,:) 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 i_am_cross_compiling=$cross_compiling if test "$target_os" = "cygwin" -o "$target_os" = "mingw32" -o "$target_os" = "mingw64" then INSTALL_COMMAND=install_win32 EXTRA_INCLUDES_FOR_WIN32="-I\$(srcdir)/packages/PLStream/windows" if test "$cygwin" = "no" -o "$target_os" = "mingw32" then if test "$target_cpu" = x86_64; then YAP_TARGET=amd64 AC_CHECK_LIB(ws2_32,main) AC_CHECK_LIB(comdlg32,main) AC_CHECK_LIB(shell32,main) EXTRA_LIBS_FOR_DLLS="-lws2_32" elif test "$target_os" = "cygwin"; then CC="${CC} -mno-cygwin" CXX="${CXX} -mno-cygwin" AC_CHECK_LIB(comdlg32,main) AC_CHECK_LIB(wsock32,main) AC_CHECK_LIB(shell32,main) else AC_CHECK_LIB(wsock32,main) AC_CHECK_LIB(comdlg32,main) AC_CHECK_LIB(shell32,main) fi EXTRA_LIBS_FOR_DLLS="\$(abs_top_builddir)/yap.dll $EXTRA_LIBS_FOR_DLLS" AC_CHECK_LIB(psapi,main) yap_cv_readline=no if test "$prefix" = "NONE" then #mingw64 case "$build_os" in *linux*) if test "${WINEPREFIX}x" = x then SYSTEMDRIVE=$HOME/.wine/drive_c else SYSTEMDRIVE="$WINEPREFIX" fi if test "$target_cpu" = "x86_64" then prefix="$SYSTEMDRIVE/Yap64" else prefix="$SYSTEMDRIVE/Yap" fi i_am_cross_compiling=yes ;; **) if test "$target_cpu" = "x86_64" then prefix="\${SYSTEMDRIVE}/Yap64" else prefix="\${SYSTEMDRIVE}/Yap" fi ;; esac fi echo $prefix WINDOWS="" PKG_WINCONSOLE="swi/console" else WINDOWS="#" PKG_WINCONSOLE="" LIBS="-lcygwin" EXTRA_LIBS_FOR_DLLS="\$(abs_top_builddir)/yap.dll" EXTRA_INCLUDES_FOR_WIN32="-I\$(srcdir)/packages/PLStream/windows" fi else INSTALL_COMMAND="install_unix" WINDOWS="#" PKG_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) AC_CHECK_LIB(nss_files,main) AC_CHECK_LIB(nss_dns,main) AC_CHECK_LIB(resolv,main) if test "$prefix" != "NONE"; then if test -d "${prefix}/lib64" -a "$YAP_TARGET" = amd64; then LDFLAGS="$LDFLAGS -L${prefix}/lib64" fi LDFLAGS="$LDFLAGS -L${prefix}/lib" CPPFLAGS="$CPPFLAGS -I${prefix}/include" fi if test "$exec_prefix" != "NONE"; then if test -d "${exec_prefix}/lib64" -a "$YAP_TARGET" = amd64; then LDFLAGS="$LDFLAGS -L${exec_prefix}/lib64" fi LDFLAGS="$LDFLAGS -L${exec_prefix}/lib" fi fi if test "$yap_cv_readline" != "no" then AC_CHECK_LIB([ncurses], [main],[ LIBS="-lncurses $LIBS" ]) AC_CHECK_LIB([readline], [main],[ AC_DEFINE([HAVE_LIBREADLINE], [1],[Define if you have libreadline]) LIBS="-lreadline $LIBS" ], [if test "x$with_readline" != xcheck; then AC_MSG_FAILURE( [--with-readline was given, but test for readline failed]) fi ]) fi if test "$yap_cv_gmp" != "no" then AC_CHECK_LIB(gmp,main) fi if test "$yap_cv_judy" != "no"; then AC_CHECK_LIB(Judy, Judy1Set,,[AC_MSG_RESULT([libJudy not found, UDI will only work with one Index at a time])]) fi if test "$threads" = yes then 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_prism" = no; then PKG_PRISM="" else PKG_PRISM="packages/prism/src/c packages/prism/src/prolog" fi AC_SUBST(PKG_PRISM) if test -e "$srcdir"/packages/archive/Makefile.in; then PKG_LIBARCHIVE="packages/archive" else PKG_LIBARCHIVE="" fi if test -e "$srcdir"/packages/odbc/Makefile.in; then PKG_ODBC="packages/odbc" else PKG_ODBC="" fi if test "$use_chr" = no; then PKG_CHR="" elif test -e "$srcdir"/packages/chr/Makefile.in; then PKG_CHR="packages/chr" else PKG_CHR="" fi if test "$use_clpqr" = no; then PKG_CLPQR="" elif test -e "$srcdir"/packages/clpqr/Makefile.in; then PKG_CLPQR="packages/clpqr" else PKG_CLPQR="" fi if test -e "$srcdir"/packages/clib/Makefile.in; then PKG_CLIB="packages/clib" else PKG_CLIB="" fi if test -e "$srcdir"/packages/http/Makefile.in; then PKG_HTTP="packages/http" else PKG_HTTP="" fi if test -e "$srcdir"/packages/pldoc/Makefile.in; then PKG_PLDOC="packages/pldoc" else PKG_PLDOC="" fi if test -e "$srcdir"/packages/plunit/Makefile.in; then PKG_PLUNIT="packages/plunit" else PKG_PLUNIT="" fi if test -e "$srcdir"/packages/R/Makefile.in; then PKG_R="packages/R" else PKG_R="" fi if test -e "$srcdir"/packages/RDF/Makefile.in; then PKG_RDF="packages/RDF" else PKG_RDF="" fi if test -e "$srcdir"/packages/ltx2htm/Makefile.in; then PKG_LTX2HTM="packages/ltx2htm" else PKG_LTX2HTM="" fi if test -e "$srcdir"/packages/semweb/Makefile.in; then PKG_SEMWEB="packages/semweb" else PKG_SEMWEB="" fi if test -e "$srcdir"/packages/sgml/Makefile.in; then PKG_SGML="packages/sgml" else PKG_SGML="" fi if test -e "$srcdir"/packages/zlib/Makefile.in; then PKG_ZLIB="packages/zlib" else PKG_ZLIB="" fi if test "$cross_compiling" = "yes" then YAP_EXTRAS= else AC_SYS_RESTARTABLE_SYSCALLS fi dnl defaults INSTALL_DLLS="no" 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" dnl now this is where things get nasty. dnl trying to get the libraries case "$target_os" in *linux*) if test "$static_compilation" = "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 $CFLAGS" SHLIB_CXXFLAGS="-shared -fPIC $CXXFLAGS" INSTALL_DLLS="yes" fi LDFLAGS="$LDFLAGS -L\$(abs_top_builddir) -Wl,-R\$(LIBDIR) -Wl,-R,\$(YAPLIBDIR)" DYNYAPLIB=libYap."$SO" SONAMEFLAG="-Wl,-soname=$DYNYAPLIB" fi if test "$have_nsl" = yes then LIBS="$LIBS -lnsl" fi if test "$dynamic_loading" = "yes" then YAPLIB_LD="\$(CC) -shared" EXTRA_LIBS_FOR_DLLS="$EXTRA_LIBS_FOR_DLLS -L\$(abs_top_builddir) -lYap -Wl,-R,\$(YAPLIBDIR) -Wl,-R,\$(LIBDIR)" INSTALL_ENV="LD_LIBRARY_PATH=:\$(DESTDIR)\$(LIBDIR):\$(DESTDIR)\$(YAPLIBDIR): YAPSHAREDIR=\$(DESTDIR)\$(SHAREDIR) YAPLIBDIR=\$(DESTDIR)\$(YAPLIBDIR)" else YAPLIB_LD="\$(CC)" EXTRA_LIBS_FOR_DLLS="$EXTRA_LIBS_FOR_DLLS -Wl,-R,\$(YAPLIBDIR) -Wl,-R,\$(LIBDIR)" INSTALL_ENV="YAPSHAREDIR=\$(DESTDIR)\$(SHAREDIR) YAPLIBDIR=\$(DESTDIR)\$(YAPLIBDIR)" fi PRE_INSTALL_ENV="LD_LIBRARY_PATH=\$(abs_top_builddir):\$(abs_top_builddir)/library/system:$LD_LIBRARY_PATH" ;; *sunos4*) M4="/usr/5bin/m4" LDFLAGS="$LDFLAGS -N" if test "$have_nsl" = yes then LIBS="$LIBS -lnsl" fi SO="o" INSTALL_DLLS="yes" LDFLAGS="$LDFLAGS -L\$(abs_top_builddir) -Wl,-R,\$(LIBDIR) -Wl,-R,\$(YAPLIBDIR)" DYNYAPLIB=libYap."$SO" SONAMEFLAG="" EXTRA_LIBS_FOR_DLLS="$EXTRA_LIBS_FOR_DLLS -L\$(abs_top_builddir) -lYap -Wl,-R,\$(YAPLIBDIR) -Wl,-R,\$(LIBDIR)" PRE_INSTALL_ENV="LD_LIBRARY_PATH=\$(abs_top_builddir):\$(abs_top_builddir)/library/system:$LD_LIBRARY_PATH" INSTALL_ENV="LD_LIBRARY_PATH=\$(DESTDIR)\$(LIBDIR):\$(DESTDIR)\$(YAPLIBDIR): YAPSHAREDIR=\$(DESTDIR)\$(SHAREDIR) YAPLIBDIR=\$(DESTDIR)\$(YAPLIBDIR)" ;; *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 $CFLAGS" SHLIB_CXXFLAGS="+z $CXXFLAGS" INSTALL_DLLS="yes" # 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="no" 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 LDFLAGS="$LDFLAGS -L\$(abs_top_builddir) -Wl,-R,\$(LIBDIR) -Wl,-R,\$(YAPLIBDIR)" DYNYAPLIB=libYap."$SO" SONAMEFLAG="" EXTRA_LIBS_FOR_DLLS="$EXTRA_LIBS_FOR_DLLS -L\$(abs_top_builddir) -lYap -Wl,-R,\$(YAPLIBDIR) -Wl,-R,\$(LIBDIR)" PRE_INSTALL_ENV="LD_LIBRARY_PATH=\$(abs_top_builddir):\$(abs_top_builddir)/library/system:$LD_LIBRARY_PATH" INSTALL_ENV="LD_LIBRARY_PATH=\$(DESTDIR)\$(LIBDIR):\$(DESTDIR)\$(YAPLIBDIR): YAPSHAREDIR=\$(DESTDIR)\$(SHAREDIR) YAPLIBDIR=\$(DESTDIR)\$(YAPLIBDIR)" ;; *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="yes" LDFLAGS="$LDFLAGS -L\$(abs_top_builddir) -Wl,-R,\$(LIBDIR) -Wl,-R,\$(YAPLIBDIR)" DYNYAPLIB=libYap."$SO" SONAMEFLAG="" EXTRA_LIBS_FOR_DLLS="$EXTRA_LIBS_FOR_DLLS -L\$(abs_top_builddir) -lYap -Wl,-R,\$(YAPLIBDIR) -Wl,\$(LIBDIR)" PRE_INSTALL_ENV="LD_LIBRARY_PATH=\$(abs_top_builddir):\$(abs_top_builddir)/library/system:$LD_LIBRARY_PATH" INSTALL_ENV="LD_LIBRARY_PATH=\$(DESTDIR)\$(LIBDIR):\$(DESTDIR)\$(YAPLIBDIR): YAPSHAREDIR=\$(DESTDIR)\$(SHAREDIR) YAPLIBDIR=\$(DESTDIR)\$(YAPLIBDIR)" ;; *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 LDFLAGS="$LDFLAGS -L\$(abs_top_builddir) -Wl,-R,\$(LIBDIR) -Wl,-R,\$(YAPLIBDIR)" DYNYAPLIB=libYap."$SO" SONAMEFLAG="" EXTRA_LIBS_FOR_DLLS="$EXTRA_LIBS_FOR_DLLS -L\$(abs_top_builddir) -lYap -Wl,-R,\$(YAPLIBDIR) -Wl,-R,\$(LIBDIR)" PRE_INSTALL_ENV="LD_LIBRARY_PATH=\$(abs_top_builddir):\$(abs_top_builddir)/library/system:$LD_LIBRARY_PATH" INSTALL_ENV="LD_LIBRARY_PATH=\$(DESTDIR)\$(LIBDIR):\$(DESTDIR)\$(YAPLIBDIR): YAPSHAREDIR=\$(DESTDIR)\$(SHAREDIR) YAPLIBDIR=\$(DESTDIR)\$(YAPLIBDIR)" ;; *irix6*) SHLIB_CFLAGS="$CFLAGS" SHLIB_CXXFLAGS="$CXXFLAGS" SO="so" DO_SECOND_LD="" SHLIB_LD="ld -n32 -shared -rdata_shared" SHLIB_CXX_LD="$SHLIB_LD" INSTALL_DLLS="yes" LDFLAGS="$LDFLAGS -L\$(abs_top_builddir) -Wl,-R,\$(LIBDIR) -Wl,-R,\$(YAPLIBDIR)" DYNYAPLIB=libYap."$SO" SONAMEFLAG="" EXTRA_LIBS_FOR_DLLS="$EXTRA_LIBS_FOR_DLLS -L\$(abs_top_builddir) -lYap -Wl,-R,\$(YAPLIBDIR) -Wl,-R,\$(LIBDIR)" PRE_INSTALL_ENV="LD_LIBRARY_PATH=\$(abs_top_builddir):\$(abs_top_builddir)/library/system:$LD_LIBRARY_PATH" INSTALL_ENV="LD_LIBRARY_PATH=\$(DESTDIR)\$(LIBDIR):\$(DESTDIR)\$(YAPLIBDIR): YAPSHAREDIR=\$(DESTDIR)\$(SHAREDIR) YAPLIBDIR=\$(DESTDIR)\$(YAPLIBDIR)" ;; *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 SO="dylib" DO_SECOND_LD="" if test "$dynamic_loading" = "yes" then SHLIB_LD="$CC -dynamiclib" SHLIB_CXX_LD="$CXX -dynamiclib" EXTRA_LIBS_FOR_DLLS="-L\$(abs_top_builddir) $LIBS $EXTRA_LIBS_FOR_DLLS -lYap -Wl,-install_name,\$(YAPLIBDIR)/\$@" INSTALL_ENV="DYLD_LIBRARY_PATH=\$(DESTDIR)\$(LIBDIR):\$(DESTDIR)\$(YAPLIBDIR): YAPSHAREDIR=\$(DESTDIR)\$(SHAREDIR) YAPLIBDIR=\$(DESTDIR)\$(YAPLIBDIR)" LDFLAGS="-L\$(abs_top_builddir) $LDFLAGS " else SHLIB_LD="$CC -dynamiclib -Wl,-undefined,dynamic_lookup" SHLIB_CXX_LD="$CXX -dynamiclib -Wl,-undefined,dynamic_lookup" EXTRA_LIBS_FOR_DLLS="$EXTRA_LIBS_FOR_DLLS -Wl,-install_name,\$(YAPLIBDIR)/\$@" INSTALL_ENV="YAPSHAREDIR=\$(DESTDIR)\$(SHAREDIR) YAPLIBDIR=\$(DESTDIR)\$(YAPLIBDIR)" fi if test "$ac_cv_prog_gcc" = "yes" then SHLIB_CFLAGS="-shared -fPIC $CFLAGS" SHLIB_CXXFLAGS="-shared -fPIC $CXXFLAGS" INSTALL_DLLS="yes" fi CC="$CC -fstrict-aliasing -freorder-blocks -fsched-interblock -Wall" DYNYAPLIB=libYap."$SO" SONAMEFLAG="" YAPLIB_LD="$CC -dynamiclib -Wl,-install_name,$prefix/lib/libYap.$SO" PRE_INSTALL_ENV="DYLD_LIBRARY_PATH=\$(abs_top_builddir):\$(abs_top_builddir)/library/system:$DYLD_LIBRARY_PATH" ;; *netbsd*|*openbsd*|*freebsd*|*dragonfly*) if echo __ELF__ | ${CC:-cc} -E - | grep -q __ELF__ then #an a.out system SHLIB_CFLAGS="$CFLAGS" SHLIB_CXXFLAGS="$CXXFLAGS" SO="o" else #an elf system LDFLAGS="-Wl,--export-dynamic $LDFLAGS" SHLIB_CFLAGS="-fPIC $CFLAGS" SHLIB_CXXFLAGS="-fPIC $CXXFLAGS" SHLIB_LD="$CC -shared -export-dynamic" SHLIB_CXX_LD="$CXX -shared -export-dynamic" DO_SECOND_LD="" SO="so" INSTALL_DLLS="yes" fi LDFLAGS="$LDFLAGS -L\$(abs_top_builddir) -Wl,-R,\$(LIBDIR)" DYNYAPLIB=libYap."$SO" YAPLIB_LD=$SHLIB_LD SONAMEFLAG="-Wl,--soname=$DYNYAPLIB" EXTRA_LIBS_FOR_DLLS="$EXTRA_LIBS_FOR_DLLS -L\$(abs_top_builddir) -Wl,-R,\$(YAPLIBDIR)" PRE_INSTALL_ENV="LD_LIBRARY_PATH=\$(abs_top_builddir):\$(abs_top_builddir)/library/system:$LD_LIBRARY_PATH" INSTALL_ENV="LD_LIBRARY_PATH=\$(DESTDIR)\$(LIBDIR):\$(DESTDIR)\$(YAPLIBDIR): YAPSHAREDIR=\$(DESTDIR)\$(SHAREDIR) YAPLIBDIR=\$(DESTDIR)\$(YAPLIBDIR)" ;; *solaris*) #an elf system LDFLAGS="-dynamic $LDFLAGS" SHLIB_CFLAGS="-fPIC $CFLAGS" SHLIB_CXXFLAGS="-fPIC $CXXFLAGS" SHLIB_LD="$CC -shared" SHLIB_CXX_LD="$CXX -shared" DO_SECOND_LD="" SO="so" INSTALL_DLLS="yes" LDFLAGS="$LDFLAGS -L\$(abs_top_builddir) -Wl,-R,\$(LIBDIR) -Wl,-R,\$(YAPLIBDIR)" DYNYAPLIB=libYap."$SO" SONAMEFLAG="-Wl,--soname=$DYNYAPLIB" if test "$dynamic_loading" = "yes" then YAPLIB_LD="\$(CC)" EXTRA_LIBS_FOR_DLLS="$EXTRA_LIBS_FOR_DLLS -L\$(abs_top_builddir) -lYap -Wl,-R,\$(YAPLIBDIR) -Wl,-R,\$(LIBDIR)" PRE_INSTALL_ENV="LD_LIBRARY_PATH=\$(abs_top_builddir):\$(abs_top_builddir)/library/system:$LD_LIBRARY_PATH" INSTALL_ENV="LD_LIBRARY_PATH=\$(DESTDIR)\$(LIBDIR):\$(DESTDIR)\$(YAPLIBDIR): YAPSHAREDIR=\$(DESTDIR)\$(SHAREDIR) YAPLIBDIR=\$(DESTDIR)\$(YAPLIBDIR)" else EXTRA_LIBS_FOR_DLLS="$EXTRA_LIBS_FOR_DLLS -Wl,-R,\$(YAPLIBDIR) -Wl,-R,\$(LIBDIR)" PRE_INSTALL_ENV="" YAPLIB_LD="\$(CC) -shared" INSTALL_ENV="YAPSHAREDIR=\$(DESTDIR)\$(SHAREDIR) YAPLIBDIR=\$(DESTDIR)\$(YAPLIBDIR)" fi ;; *cyg*|*mingw*) # gcc on cygwin seems to have trouble with longjmp # and -fomit-frame-point -DBP_FREE YAPLIB="yap.dll" DYNYAPLIB="yap.dll" SONAMEFLAG="" SHLIB_CFLAGS="$CFLAGS" SHLIB_CXXFLAGS="$CXXFLAGS" 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="yes" DO_SECOND_LD="" MERGE_DLL_OBJS="" IN_UNIX="#" YAPLIB_LD="\$(CC) -shared -Wl,--export-all-symbols" PRE_INSTALL_ENV="" INSTALL_ENV="YAPSHAREDIR=\$(DESTDIR)\$(SHAREDIR) YAPLIBDIR=\$(DESTDIR)\$(YAPLIBDIR)" ;; *) AC_CHECK_LIB(dl,dlopen, have_dl=yes , have_dl=no) if test "$have_dl" = yes then SO="o" LIBS="$LIBS -ldl" INSTALL_DLLS="yes" if test "$GCC" = "yes" then SHLIB_CXXFLAGS="-fPIC $CXXFLAGS" fi fi if test "$have_nsl" = yes then LIBS="$LIBS -lnsl" fi LDFLAGS="$LDFLAGS -L\$(abs_top_builddir) -Wl,-R,\$(LIBDIR) -Wl,-R,\$(YAPLIBDIR)" DYNYAPLIB=libYap."$SO" SONAMEFLAG="" EXTRA_LIBS_FOR_DLLS="$EXTRA_LIBS_FOR_DLLS -L\$(abs_top_builddir) -lYap -Wl,-R,\$(YAPLIBDIR) -Wl,-R,\$(LIBDIR)" PRE_INSTALL_ENV="LD_LIBRARY_PATH=\$(abs_top_builddir):\$(abs_top_builddir)/library/system:$LD_LIBRARY_PATH" INSTALL_ENV="LD_LIBRARY_PATH=\$(DESTDIR)\$(LIBDIR):\$(DESTDIR)\$(YAPLIBDIR): YAPSHAREDIR=\$(DESTDIR)\$(SHAREDIR) YAPLIBDIR=\$(DESTDIR)\$(YAPLIBDIR)" ;; esac dnl use the current files, even if older PRE_INSTALL_ENV="$PRE_INSTALL_ENV YAPLIBDIR=\$(abs_top_builddir):\$(abs_top_builddir)/library/system:\$(abs_top_builddir)/packages/clib " if test "$dynamic_loading" = "yes" then YAPLIB_CFLAGS="$SHLIB_CFLAGS" YAPLIB="$DYNYAPLIB" else YAPLIB_CFLAGS="$CFLAGS" fi YAP_EXTRAS="$YAP_EXTRAS -DCOROUTINING=1 -DRATIONAL_TREES=1" 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 case "$orparallelism" in sba) AC_MSG_FAILURE( [--or-parallelism=sba incompatible with threads]) ;; a-cow) AC_MSG_FAILURE( [--or-parallelism=a-cow incompatible with threads]) ;; copy) AC_MSG_FAILURE( [--or-parallelism=copy incompatible with threads]) ;; yes|threads) YAP_EXTRAS="$YAP_EXTRAS -DYAPOR_THREADS=1" ;; esac else case "$orparallelism" in sba) YAP_EXTRAS="$YAP_EXTRAS -DYAPOR_SBA=1" ;; a-cow) YAP_EXTRAS="$YAP_EXTRAS -DYAPOR_COW=1" ;; threads) YAP_EXTRAS="$YAP_EXTRAS -DYAPOR_THREADS=1" ;; yes|copy) YAP_EXTRAS="$YAP_EXTRAS -DYAPOR_COPY=1" ;; esac fi if test "$tabling" = "yes" then YAP_EXTRAS="$YAP_EXTRAS -DTABLING=1" fi AC_SUBST(INSTALL_ENV) AC_SUBST(PRE_INSTALL_ENV) dnl Checks for header files. AC_HEADER_STDC AC_HEADER_SYS_WAIT AC_CHECK_HEADERS(arpa/inet.h alloca.h crtdbg.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) AC_CHECK_HEADERS(netdb.h netinet/in.h netinet/tcp.h pwd.h regex.h shlobj.h) AC_CHECK_HEADERS(siginfo.h signal.h stdarg.h stdint.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(zlib.h zutil.h) AC_CHECK_HEADERS(mach-o/dyld.h LibLoaderAPI.h) if test "$yap_cv_gmp" != "no" then AC_CHECK_HEADERS(gmp.h) fi if test "$yap_cv_judy" != "no"; then AC_CHECK_HEADERS(Judy.h) fi if test "$yap_cv_readline" != "no" then AC_CHECK_HEADERS( readline/readline.h) AC_CHECK_HEADERS( readline/history.h) AC_CHECK_FUNCS( rl_completion_matches rl_clear_pending_input rl_cleanup_after_signal rl_event_hook rl_filename_completion_function rl_free_line_state rl_insert_close rl_set_prompt rl_state_initialized ) fi 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 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) CMDEXT=sh 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) CMDEXT=sh 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) AC_SUBST(SHLIB_CXXFLAGS) dnl suffix for loadable binary (.so,.dll,.o) AC_SUBST(SO) dnl suffix for executable (.exe) 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(YAPLIB_LD) AC_SUBST(YAPLIB_CFLAGS) AC_SUBST(EXTRA_LIBS_FOR_DLLS) dnl objects in YAP library AC_SUBST(YAPLIB) AC_SUBST(DYNYAPLIB) AC_SUBST(LDFLAGS) AC_SUBST(SONAMEFLAG) 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(PKG_CHR) AC_SUBST(PKG_CLIB) AC_SUBST(PKG_CLPQR) AC_SUBST(PKG_HTTP) AC_SUBST(PKG_JPL) AC_SUBST(PKG_LTX2HTM) AC_SUBST(PKG_PLDOC) AC_SUBST(PKG_PLUNIT) AC_SUBST(PKG_R) AC_SUBST(PKG_RDF) AC_SUBST(PKG_SEMWEB) AC_SUBST(PKG_SGML) AC_SUBST(PKG_ZLIB) AC_SUBST(PKG_CLPBN) AC_SUBST(IN_UNIX) AC_SUBST(MPI_CC) AC_SUBST(INSTALL_COMMAND) AC_SUBST(INSTALLCLP) AC_SUBST(MAX_WORKERS) AC_SUBST(STATIC_MODE) AC_SUBST(PKG_WINCONSOLE) AC_SUBST(WINDOWS) AC_SUBST(EXTRA_INCLUDES_FOR_WIN32) AC_SUBST(PKG_MINISAT) AC_SUBST(PKG_REAL) AC_SUBST(INSTALL_PRISM) 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 , 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 #include , 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 #include , 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 #include , 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 AC_MSG_CHECKING("variable timezone in tzset") AC_TRY_RUN( [ #include #include #ifdef __CYGWIN__ #define timezone _timezone #endif extern long timezone; main() { tzset(); if ( timezone > -15*3600 && timezone < 15*3600 && timezone % 60 == 0 ) return 0; exit(1); } ], AC_MSG_RESULT(yes) AC_DEFINE(HAVE_VAR_TIMEZONE, 1, [Define if tzset sets timezone variable]), AC_MSG_RESULT(no), AC_MSG_RESULT(assuming no)) AC_CHECK_MEMBER(struct tm.tm_gmtoff, AC_DEFINE(HAVE_STRUCT_TIME_TM_GMTOFF, [], [Define is struct tm has tm_gmtoff]), [], [#include ]) 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 #include ], [ 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 _chsize_s access acosh) AC_CHECK_FUNCS(alloca asinh atanh chdir clock clock_gettime) AC_CHECK_FUNCS(ctime dlopen dup2) AC_CHECK_FUNCS(erf feclearexcept) AC_CHECK_FUNCS(fesettrapenable fgetpos finite fpclass ftime ftruncate getcwd getenv) AC_CHECK_FUNCS(getexecname) AC_CHECK_FUNCS(gethostbyname gethostent gethostid gethostname) AC_CHECK_FUNCS(gethrtime getpagesize getpid) AC_CHECK_FUNCS(getpwnam getrlimit getrusage gettimeofday getwd) AC_CHECK_FUNCS(isatty isnan isfinite isinf kill labs link lgamma) AC_CHECK_FUNCS(localeconv localtime lstat mallinfo) AC_CHECK_FUNCS(mbscoll) AC_CHECK_FUNCS(mbscasecoll) 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 sbrk select setbuf) AC_CHECK_FUNCS(setitimer setlocale setsid setlinebuf sigaction) AC_CHECK_FUNCS(siggetmask siginterrupt) AC_CHECK_FUNCS(signal sigprocmask socket srand srandom stat) AC_CHECK_FUNCS(strchr strerror stricmp strlwr strncat strncpy strtod) AC_CHECK_FUNCS(time times tmpnam usleep utime vsnprintf wcsdup) 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 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 < #include 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_CHECK_LIB(pthread, pthread_create, [CLIB_PTHREADS="-lpthread"],[CLIB_PTHREADS=""]) AC_SUBST(CLIB_PTHREADS) AC_CHECK_TYPES(socklen_t, [], [], [ #include #include ]) AC_CHECK_TYPES(ssize_t, [], [], [ #include #include ]) EXTRA_LIBS_FOR_SWIDLLS="$EXTRA_LIBS_FOR_DLLS $CLIB_PTHREADS" AC_SUBST(EXTRA_LIBS_FOR_SWIDLLS) dnl tszet and timezone trouble AC_MSG_CHECKING("variable timezone in tzset") AC_TRY_RUN( [ #include #include #ifdef __CYGWIN__ #define timezone _timezone #endif extern long timezone; main() { tzset(); if ( timezone > -15*3600 && timezone < 15*3600 && timezone % 60 == 0 ) return 0; exit(1); } ], AC_MSG_RESULT(yes) AC_DEFINE(HAVE_VAR_TIMEZONE, 1, [Define if tzset sets timezone variable]), AC_MSG_RESULT(no), AC_MSG_RESULT(assuming no)) AC_CHECK_MEMBER(struct tm.tm_gmtoff, AC_DEFINE(HAVE_STRUCT_TIME_TM_GMTOFF, [], [Define is struct tm has tm_gmtoff]), [], [#include ]) AC_MSG_CHECKING(_XOPEN_SOURCE) AC_TRY_COMPILE( [ #define _XOPEN_SOURCE #include ], [ ], AC_DEFINE(DEFINE_XOPEN_SOURCE, 1, "Define if _XOPEN_SOURCE is needed") AC_MSG_RESULT(yes), AC_MSG_RESULT(no)) if test "$yap_cv_minisat" = no -a "$INSTALL_DLLS" = "no" then PKG_MINISAT="" else PKG_MINISAT="packages/swi-minisat2" fi if test "x$PLARCH" = "x"; then case "$host" in *linux*) PLARCH=`echo $host | sed 's/-.*/-linux/'` ;; i?86-*mingw32*) # Make PLARCH match the definition in src/config/win32.h PLARCH=i386-win32 ;; x86_64-*mingw32*) # Make PLARCH match the definition in src/config/win64.h PLARCH=x64-win64 ;; *-gnu) PLARCH=`echo $host | sed 's/\([^-]*\)-[^-]*-\([^-]*\)-gnu/\1-\2/'` ;; *) PLARCH=`echo $host | sed 's/\([^-]*\)-[^-]*-\([^-]*\)/\1-\2/'` ;; esac fi m4_include([packages/myddas/configure.in]) if test "$PKG_CLIB" != "" then m4_include([packages/clib/configure.in]) fi if test "$PKG_LIBARCHIVE" != "" then m4_include([packages/archive/configure.in]) if test "$ARCHIVE_TARGETS" = "nolib" then PKG_LIBARCHIVE="" fi fi if test "$PKG_ODBC" != ""; then m4_include([packages/odbc/configure.in]) if test "$ODBC_TARGETS" = "nolib" then PKG_ODBC="" fi else ODBC_TARGETS=nolib ODBC_PLTARGETS=odbc.pl fi m4_include([packages/bdd/configure.in]) dnl zlib if test "$PKG_ZLIB" != "" then m4_include([packages/zlib/configure.in]) if test "$ZLIB_TARGETS" = "nolib" then PKG_ZLIB="" fi fi if test "$yap_cv_R" != "no" -a -e "$srcdir"/packages/real/Makefile.in; then PKG_REAL="packages/real" m4_include([packages/real/configure.in]) else REAL_TARGET="dummy" PKG_REAL="" fi dnl dnl java is hard dnl if test "$yap_cv_java" = no; then PKG_JPL="" elif test -e "$srcdir"/packages/jpl/Makefile.in; then PKG_JPL="packages/jpl" if test "$yap_cv_java" != "yes"; then JAVA_HOME=$yap_cv_java JAVAPREFIX="$JAVA_HOME"/bin elif test -n "$JAVA_HOME"; then JAVAPREFIX="$JAVA_HOME"/bin fi m4_include([packages/jpl/configure.in]) fi if test -e "$srcdir"/packages/ltx2htm/Makefile.in; then PKG_LTX22HTM="packages/ltx2htm" m4_include([packages/ltx2htm/configure.in]) else PKG_LTX2HTM="" fi if test -e "$srcdir"/packages/raptor/Makefile.in; then m4_include([packages/raptor/configure.in]) fi m4_include([library/matlab/configure.in]) m4_include([library/lammpi/configure.in]) m4_include([packages/python/configure.in]) m4_include([packages/cplint/configure.in]) m4_include([packages/cuda/configure.in]) m4_include([packages/gecode/configure.in]) AC_SUBST(PKG_LIBARCHIVE) AC_SUBST(PKG_ODBC) mkdir -p library/matrix 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 LGPL 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/CLPBN/clpbn mkdir -p packages/CLPBN/horus mkdir -p packages/clpqr mkdir -p packages/http mkdir -p packages/jpl mkdir -p packages/jpl/src mkdir -p packages/jpl/src/c 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/ltx2htm mkdir -p packages/meld mkdir -p packages/myddas mkdir -p packages/PLStream mkdir -p packages/PLStream/libtai mkdir -p packages/pldoc mkdir -p packages/pldoc/server mkdir -p packages/plunit mkdir -p packages/prism mkdir -p packages/prism/src mkdir -p packages/prism/src/c mkdir -p packages/prism/src/c/core mkdir -p packages/prism/src/c/mp mkdir -p packages/prism/src/c/up mkdir -p packages/prism/src/prolog mkdir -p packages/ProbLog mkdir -p packages/ProbLog/simplecudd mkdir -p packages/ProbLog/simplecudd_lfi mkdir -p packages/R mkdir -p packages/RDF mkdir -p packages/real mkdir -p packages/semweb mkdir -p packages/sgml mkdir -p packages/xml mkdir -p packages/yap-lbfgs mkdir -p packages/zlib mkdir -p packages/archive mkdir -p swi mkdir -p swi/console mkdir -p swi/library mkdir -p swi/library/clp AC_CONFIG_FILES([Makefile]) AC_CONFIG_FILES([library/Makefile]) AC_CONFIG_FILES([library/lammpi/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([packages/Makefile.defs]) AC_CONFIG_FILES([packages/Dialect.defs]) AC_CONFIG_FILES([packages/meld/Makefile]) AC_CONFIG_FILES([packages/xml/Makefile]) AC_CONFIG_FILES([packages/ProbLog/Makefile ]) AC_CONFIG_FILES([swi/library/Makefile]) AC_CONFIG_FILES([swi/library/clp/Makefile]) if test "$PKG_CHR" != ""; then AC_CONFIG_FILES([packages/chr/Makefile]) fi if test "$PKG_CLIB" != ""; then AC_CONFIG_FILES([packages/clib/Makefile]) fi if test "$PKG_CLPQR" != ""; then AC_CONFIG_FILES([packages/clpqr/Makefile]) fi if test "$PKG_HTTP" != ""; then AC_CONFIG_FILES([packages/http/Makefile]) fi if test "$PKG_JPL" != ""; then AC_CONFIG_FILES([packages/jpl/Makefile packages/jpl/src/java/Makefile ]) fi if test "$PKG_LTX2HTM" != ""; then AC_CONFIG_FILES([ packages/ltx2htm/Makefile packages/ltx2htm/latex2html]) fi if test "$PKG_PLDOC" != ""; then AC_CONFIG_FILES([packages/pldoc/Makefile]) AC_CONFIG_FILES([packages/pldoc/server/man_server.pl]) fi if test "$PKG_PLUNIT" != ""; then AC_CONFIG_FILES([packages/plunit/Makefile]) fi if test "$PKG_R" != ""; then AC_CONFIG_FILES([packages/R/Makefile]) fi if test "$PKG_RDF" != ""; then AC_CONFIG_FILES([packages/RDF/Makefile]) fi if test "$PKG_SEMWEB" != ""; then AC_CONFIG_FILES([packages/semweb/Makefile]) fi if test "$PKG_SGML" != ""; then AC_CONFIG_FILES([packages/sgml/Makefile]) fi if test "$PKG_ZLIB" != ""; then AC_CONFIG_FILES([packages/zlib/Makefile]) fi if test "$PKG_LIBARCHIVE" != ""; then AC_CONFIG_FILES([packages/archive/Makefile]) fi if test "$PKG_ODBC" != ""; then AC_CONFIG_FILES([packages/odbc/Makefile]) fi if test "$PKG_MINISAT" != ""; then AC_CONFIG_FILES([packages/swi-minisat2/Makefile]) AC_CONFIG_FILES([packages/swi-minisat2/C/Makefile]) fi if test "$PKG_REAL" != ""; then AC_CONFIG_FILES([packages/real/Makefile]) fi if test "$PKG_MYDDAS" != ""; then AC_CONFIG_FILES([packages/myddas/Makefile]) fi if test "$PKG_CLPBN" != ""; then AC_CONFIG_FILES([packages/CLPBN/Makefile]) AC_CONFIG_FILES([packages/CLPBN/horus/Makefile]) fi if test "$PKG_PRISM" != ""; then AC_CONFIG_FILES([packages/prism/src/c/Makefile]) AC_CONFIG_FILES([packages/prism/src/prolog/Makefile]) fi AC_CONFIG_FILES([packages/yap-lbfgs/Makefile]) AC_OUTPUT()