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 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(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" CFLAGS="$CFLAGS -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 $CFLAGS" CXXFLAGS="-O -g -Wall" C_INTERF_FLAGS="-O -g -Wall -Wstrict-prototypes -Wmissing-prototypes $CFLAGS" else CFLAGS="-O3 -fomit-frame-pointer -Wall -Wstrict-prototypes -Wmissing-prototypes $CFLAGS" CXXFLAGS="-O3 -fomit-frame-pointer -Wall $CFLAGS" case "`$CC --version < /dev/null`" in *3.4*) CFLAGS="-fno-gcse -fno-crossjumping $CFLAGS" ;; esac C_INTERF_FLAGS="-O3 -Wall -Wstrict-prototypes -Wmissing-prototypes $CFLAGS" C_PARSER_FLAGS="-O3 -Wall -Wstrict-prototypes -Wmissing-prototypes $CFLAGS" 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" CLIB_NETLIBS="-lwsock32 -lpsapi -lgdi32" else prefix="\${SYSTEMDRIVE}/Yap" CLIB_NETLIBS="-lws2_32 -lpsapi -lgdi32" 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 #include , 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 #include #include , 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*) if test $threads = yes; then JAVALIBPATH="\"$JAVA_HOME\"/lib/jvm.lib -lpthread" else JAVALIBPATH="\"$JAVA_HOME\"/lib/jvm.lib" fi 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" dnl now this is where things get nasty. dnl trying to get the libraries 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 $CFLAGS" SHLIB_CXXFLAGS="-shared -fPIC $CXXFLAGS" INSTALL_DLLS="" fi fi if test "$have_nsl" = yes then LIBS="$LIBS -lnsl" fi LDFLAGS="$LDFLAGS -L\$(abs_top_builddir) -Wl,-R,\$(DESTDIR)\$(LIBDIR) -Wl,-R,\$(DESTDIR)\$(YAPLIBDIR)" DYNYAPLIB=libYap."$SO" 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,\$(DESTDIR)\$(YAPLIBDIR) -Wl,-R,\$(DESTDIR)\$(LIBDIR)" INSTALL_ENV="LD_LIBRARY_PATH=\$(DESTDIR)\$(LIBDIR): YAPSHAREDIR=\$(DESTDIR)\$(SHAREDIR) YAPLIBDIR=\$(DESTDIR)\$(YAPLIBDIR)" PRE_INSTALL_ENV="LD_LIBRARY_PATH=\$(abs_top_builddir)" else YAPLIB_LD="\$(CC)" EXTRA_LIBS_FOR_DLLS="$EXTRA_LIBS_FOR_DLLS -Wl,-R,\$(DESTDIR)\$(YAPLIBDIR) -Wl,-R,\$(DESTDIR)\$(LIBDIR)" INSTALL_ENV="YAPSHAREDIR=\$(DESTDIR)\$(SHAREDIR) YAPLIBDIR=\$(DESTDIR)\$(YAPLIBDIR)" PRE_INSTALL_ENV="" fi ;; *sunos4*) M4="/usr/5bin/m4" LDFLAGS="$LDFLAGS -N" if test "$have_nsl" = yes then LIBS="$LIBS -lnsl" fi SO="o" INSTALL_DLLS="" LDFLAGS="$LDFLAGS -L\$(abs_top_builddir) -Wl,-R,\$(DESTDIR)\$(LIBDIR) -Wl,-R,\$(DESTDIR)\$(YAPLIBDIR)" DYNYAPLIB=libYap."$SO" 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)" ;; *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="" # 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 LDFLAGS="$LDFLAGS -L\$(abs_top_builddir) -Wl,-R,\$(DESTDIR)\$(LIBDIR) -Wl,-R,\$(DESTDIR)\$(YAPLIBDIR)" DYNYAPLIB=libYap."$SO" 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)" ;; *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="" LDFLAGS="$LDFLAGS -L\$(abs_top_builddir) -Wl,-R,\$(DESTDIR)\$(LIBDIR) -Wl,-R,\$(DESTDIR)\$(YAPLIBDIR)" DYNYAPLIB=libYap."$SO" 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)" ;; *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,\$(DESTDIR)\$(LIBDIR) -Wl,-R,\$(DESTDIR)\$(YAPLIBDIR)" DYNYAPLIB=libYap."$SO" 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)" ;; *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="" LDFLAGS="$LDFLAGS -L\$(abs_top_builddir) -Wl,-R,\$(DESTDIR)\$(LIBDIR) -Wl,-R,\$(DESTDIR)\$(YAPLIBDIR)" DYNYAPLIB=libYap."$SO" 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)" ;; *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="$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)" 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,\$(DESTDIR)\$(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="" fi CC="$CC -fstrict-aliasing -freorder-blocks -fsched-interblock -Wall -Wstrict-aliasing=2" DYNYAPLIB=libYap."$SO" YAPLIB_LD="$CC -dynamiclib -Wl,-install_name,$prefix/lib/libYap.dylib" PRE_INSTALL_ENV="DYLD_LIBRARY_PATH=\$(abs_top_builddir)" ;; *netbsd*|*freebsd*) 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="ld -Bshareable -x" SHLIB_CXX_LD="$SHLIB_LD" DO_SECOND_LD="" SO="so" INSTALL_DLLS="" fi LDFLAGS="$LDFLAGS -L\$(abs_top_builddir) -Wl,-R,\$(DESTDIR)\$(LIBDIR) -Wl,-R,\$(DESTDIR)\$(YAPLIBDIR)" DYNYAPLIB=libYap."$SO" 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)" ;; *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="" LDFLAGS="$LDFLAGS -L\$(abs_top_builddir) -Wl,-R,\$(DESTDIR)\$(LIBDIR) -Wl,-R,\$(DESTDIR)\$(YAPLIBDIR)" DYNYAPLIB=libYap."$SO" if test "$dynamic_loading" = "yes" then YAPLIB_LD="\$(CC)" 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)" else EXTRA_LIBS_FOR_DLLS="$EXTRA_LIBS_FOR_DLLS -Wl,-R,\$(DESTDIR)\$(YAPLIBDIR) -Wl,-R,\$(DESTDIR)\$(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" 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="" DO_SECOND_LD="" MERGE_DLL_OBJS="" IN_UNIX="#" YAPLIB_LD="\$(CC) -shared -Wl,--export-all-symbols" PRE_INSTALL_ENV="" INSTALL_ENV="" ;; *) 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_CXXFLAGS="-fPIC $CXXFLAGS" fi fi if test "$have_nsl" = yes then LIBS="$LIBS -lnsl" fi LDFLAGS="$LDFLAGS -L\$(abs_top_builddir) -Wl,-R,\$(DESTDIR)\$(LIBDIR) -Wl,-R,\$(DESTDIR)\$(YAPLIBDIR)" DYNYAPLIB=libYap."$SO" 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 EXTRA_LIBS_FOR_SWIDLLS="$EXTRA_LIBS_FOR_DLLS -L\$(abs_top_builddir)/packages/PLStream -lplstream" if test "$dynamic_loading" = "yes" then YAPLIB_CFLAGS="$SHLIB_CFLAGS" YAPLIB="$DYNYAPLIB" else YAPLIB_CFLAGS="$CFLAGS" fi 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 CPLINT_LDFLAGS+=" -L${yap_cv_cplint}/cudd -L${yap_cv_cplint}/mtr -L${yap_cv_cplint}/st -L${yap_cv_cplint}/util -L${yap_cv_cplint}/epd " CPLINT_CFLAGS+=" -I${yap_cv_cplint}/include" CPLINT_LIBS="-lcudd -lmtr -lst -lutil -lepd -lm "$CPLINT_LIBS fi #AC_SEARCH_LIBS([g_hash_table_new], [glib-2.0], [], [AC_MSG_ERROR([This package needs glib >=2.0.], [1])], []) #AC_SEARCH_LIBS([Cudd_Init], [cudd], [], [AC_MSG_ERROR([This package needs CUDD.], [1])], [-lcudd -lmtr -lst -lutil -lepd -lm]) #AC_SEARCH_LIBS([pow], [m], [], [AC_MSG_ERROR([This package needs m.], [1])], [-lm]) ENABLE_CPLINT="" if test "$target_os" = "cygwin" -o "$target_os" = "mingw32" then CPLINT_SHLIB_LD="gcc -shared ../../yap.dll" SHLIB_SUFFIX="dll" else CPLINT_SHLIB_LD=$SHLIB_LD SHLIB_SUFFIX="so" fi AC_SUBST(CPLINT_LIBS) AC_SUBST(CPLINT_CFLAGS) AC_SUBST(CPLINT_LDFLAGS) AC_SUBST(CPLINT_SHLIB_LD) AC_SUBST(SHLIB_SUFFIX) 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 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) 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) 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 , 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 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 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 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) CLIB_TARGETS="random.$SO socket.$SO cgi.$SO memfile.$SO files.$SO mime.$SO crypt.$SO" CLIB_PLTARGETS="\$(srcdir)/random.pl \$(srcdir)/socket.pl \$(srcdir)/cgi.pl \$(srcdir)/memfile.pl \$(srcdir)/filesex.pl \$(srcdir)/mime.pl \$(srcdir)/crypt.pl" if test "$IN_UNIX" = ""; then CLIB_TARGETS="unix.$SO $CLIB_TARGETS" CLIB_PLTARGETS="\$(srcdir)/unix.pl $CLIB_PLTARGETS" CLIB_NETLIBS= else 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)."))]) fi oldlibs="$LIBS" AC_CHECK_LIB(crypt, crypt) CRYPTLIBS="$LIBS" AC_CHECK_FUNCS(crypt) LIBS="$oldlibs" AC_SUBST(CLIB_TARGETS) AC_SUBST(CLIB_PLTARGETS) AC_SUBST(CLIB_NETLIBS) AC_SUBST(CLIB_CRYPTLIBS) AC_CHECK_TYPES(socklen_t, [], [], [ #include #include ]) AC_CHECK_TYPES(ssize_t, [], [], [ #include #include ]) 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 "$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 echo "WARNING: no getrlimit(); dropping rlimit.pl from targets" fi mkdir -p library/lammpi 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/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/http 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/tai mkdir -p packages/tai/libtai mkdir -p packages/PLStream mkdir -p packages/plunit mkdir -p packages/ProbLog mkdir -p packages/ProbLog/simplecudd mkdir -p packages/RDF mkdir -p packages/semweb 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/http/Makefile]) AC_CONFIG_FILES([packages/tai/Makefile]) AC_CONFIG_FILES([packages/tai/libtai/Makefile]) AC_CONFIG_FILES([packages/PLStream/Makefile]) AC_CONFIG_FILES([packages/plunit/Makefile]) AC_CONFIG_FILES([packages/ProbLog/Makefile ]) AC_CONFIG_FILES([packages/RDF/Makefile]) AC_CONFIG_FILES([packages/semweb/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()