X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=configure.in.pre;h=faca8c738841da48a4433879297333de64f50d8b;hb=refs%2Fheads%2Fsilc.protocol.1.0.branch;hp=082b165b24a1387d0710289be5115149d22e519f;hpb=1f2051cc2f85ffadce6c9445bed0d9355f7eaaf8;p=silc.git diff --git a/configure.in.pre b/configure.in.pre index 082b165b..faca8c73 100644 --- a/configure.in.pre +++ b/configure.in.pre @@ -1,9 +1,9 @@ # -# configure.in +# configure.in.pre # -# Author: Pekka Riikonen +# Author: Pekka Riikonen # -# Copyright (C) 2000 - 2001 Pekka Riikonen +# Copyright (C) 2000 - 2002 Pekka Riikonen # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -16,49 +16,49 @@ # GNU General Public License for more details. # -AC_INIT(includes/version.h) - -# Compiler settings -CFLAGS="-Wall $CFLAGS" +AC_INIT(includes/silcversion.h) # # Put here any platform specific stuff # AC_CANONICAL_SYSTEM case "$target" in - *-*-linux*|*-*-mklinux*) - CFLAGS="-D_GNU_SOURCE $CFLAGS" + *-*-*bsd*) + check_threads=false ;; *) + check_threads=true ;; esac -# ./prepare script will automatically put the correct date. Do not edit! -AM_INIT_AUTOMAKE(silc, YYYYMMDD) -AC_PREREQ(2.3) +# ./prepare script will automatically put the correct version. Do not edit! +AM_INIT_AUTOMAKE(SILC_PACKAGE, SILC_VERSION) +AC_PREREQ(2.52) AM_CONFIG_HEADER(includes/silcdefs.h) AC_PROG_CC AC_C_INLINE AC_C_CONST -AC_ARG_PROGRAM AC_PROG_LN_S AC_SUBST(LN_S) +# Distribution definition. ./prepare will automatically add here a correct +# value. Do not edit! +silc_dist=SILC_PACKAGE +AC_DEFINE(SILC_DIST_DEFINE) + # XXX # Compiler flags if test "$GCC"; then - CFLAGS="-finline-functions $CFLAGS" -else - # Currently GCC is only supported compiler - AC_MSG_ERROR(GCC is only supported compiler currently) + CFLAGS="-Wall -finline-functions $CFLAGS" fi # Program checking AC_PROG_INSTALL AC_PROG_RANLIB AC_PROG_MAKE_SET +AC_PROG_LIBTOOL # Header checking AC_HEADER_STDC @@ -67,11 +67,11 @@ AC_HEADER_STAT # More header checking AC_CHECK_HEADERS(unistd.h string.h getopt.h errno.h fcntl.h assert.h) -AC_CHECK_HEADERS(sys/types.h sys/stat.h sys/time.h) -AC_CHECK_HEADERS(netinet/in.h netinet/tcp.h netdb.h) +AC_CHECK_HEADERS(sys/types.h sys/stat.h sys/time.h stddef.h) +AC_CHECK_HEADERS(netinet/in.h netinet/tcp.h xti.h netdb.h) AC_CHECK_HEADERS(pwd.h grp.h termcap.h paths.h) AC_CHECK_HEADERS(ncurses.h signal.h ctype.h regex.h) -AC_CHECK_HEADERS(arpa/inet.h sys/mman.h) +AC_CHECK_HEADERS(arpa/inet.h sys/mman.h limits.h termios.h) # Data type checking AC_TYPE_SIGNAL @@ -93,29 +93,220 @@ AC_DEFINE_UNQUOTED(SILC_SIZEOF_CHAR, $ac_cv_sizeof_char) AC_CHECK_SIZEOF(void *, 0) AC_DEFINE_UNQUOTED(SILC_SIZEOF_VOID_P, $ac_cv_sizeof_void_p) +dnl Curses detection: Munged from Midnight Commander's configure.in +AC_DEFUN(AC_CHECK_CURSES,[ + search_ncurses=true + screen_manager="" + has_curses=false + + CFLAGS=${CFLAGS--O} + + AC_SUBST(CURSES_LIBS) + AC_SUBST(CURSES_INCLUDEDIR) + + AC_ARG_WITH(sunos-curses, + [ --with-sunos-curses Used to force SunOS 4.x curses],[ + if test x$withval = xyes; then + AC_USE_SUNOS_CURSES + fi + ]) + + AC_ARG_WITH(osf1-curses, + [ --with-osf1-curses Used to force OSF/1 curses],[ + if test x$withval = xyes; then + AC_USE_OSF1_CURSES + fi + ]) + + AC_ARG_WITH(vcurses, + [ --with-vcurses[=incdir] Used to force SysV curses], + if test x$withval != xyes; then + CURSES_INCLUDEDIR="-I$withval" + fi + AC_USE_SYSV_CURSES + ) + + AC_ARG_WITH(ncurses, + [ --with-ncurses[=dir] Compile with ncurses/locate base dir], + if test x$withval = xno ; then + search_ncurses=false + elif test x$withval != xyes ; then + AC_NCURSES($withval/include, ncurses.h, -L$withval/lib -lncurses, -I$withval/include, "ncurses on $withval/include") + fi + ) + + if $search_ncurses + then + AC_SEARCH_NCURSES() + fi +]) + + +AC_DEFUN(AC_USE_SUNOS_CURSES, [ + search_ncurses=false + screen_manager="SunOS 4.x /usr/5include curses" + AC_MSG_RESULT(Using SunOS 4.x /usr/5include curses) + AC_DEFINE(USE_SUNOS_CURSES) + AC_DEFINE(HAS_CURSES) + has_curses=true + AC_DEFINE(NO_COLOR_CURSES) + AC_DEFINE(USE_SYSV_CURSES) + CURSES_INCLUDEDIR="-I/usr/5include" + CURSES_LIBS="/usr/5lib/libcurses.a /usr/5lib/libtermcap.a" + AC_MSG_RESULT(Please note that some screen refreshs may fail) +]) + +AC_DEFUN(AC_USE_OSF1_CURSES, [ + AC_MSG_RESULT(Using OSF1 curses) + search_ncurses=false + screen_manager="OSF1 curses" + AC_DEFINE(HAS_CURSES) + has_curses=true + AC_DEFINE(NO_COLOR_CURSES) + AC_DEFINE(USE_SYSV_CURSES) + CURSES_LIBS="-lcurses" +]) + +AC_DEFUN(AC_USE_SYSV_CURSES, [ + AC_MSG_RESULT(Using SysV curses) + AC_DEFINE(HAS_CURSES) + has_curses=true + AC_DEFINE(USE_SYSV_CURSES) + search_ncurses=false + screen_manager="SysV/curses" + CURSES_LIBS="-lcurses" +]) + +dnl +dnl Parameters: directory filename cureses_LIBS curses_INCLUDEDIR nicename +dnl +AC_DEFUN(AC_NCURSES, [ + if $search_ncurses + then + if test -f $1/$2 + then + AC_MSG_RESULT(Found ncurses on $1/$2) + + CURSES_LIBS="$3" + AC_CHECK_LIB(ncurses, initscr, , [ + CHECKLIBS=`echo "$3"|sed 's/-lncurses/-lcurses/g'` + AC_CHECK_LIB(curses, initscr, [ + CURSES_LIBS="$CHECKLIBS" + ],, $CHECKLIBS) + ], $CURSES_LIBS) + CURSES_INCLUDEDIR="$4" + search_ncurses=false + screen_manager=$5 + AC_DEFINE(HAS_CURSES) + has_curses=true + has_ncurses=true + AC_DEFINE(USE_NCURSES) + fi + fi +]) + +AC_DEFUN(AC_SEARCH_NCURSES, [ + AC_CHECKING("location of ncurses.h file") + + AC_NCURSES(/usr/include, ncurses.h, -lncurses,, "ncurses on /usr/include") + AC_NCURSES(/usr/include/ncurses, ncurses.h, -lncurses, -I/usr/include/ncurses, "ncurses on /usr/include/ncurses") + AC_NCURSES(/usr/local/include, ncurses.h, -L/usr/local/lib -lncurses, -I/usr/local/include, "ncurses on /usr/local") + AC_NCURSES(/usr/pkg/include, ncurses.h, -L/usr/pkg/lib -lncurses, -I/usr/pkg/include, "ncurses on /usr/pkg") + AC_NCURSES(/usr/contrib/include, ncurses.h, -L/usr/contrib/lib -lncurses, -I/usr/contrib/include, "ncurses on /usr/contrib") + AC_NCURSES(/usr/local/include/ncurses, ncurses.h, -L/usr/local/lib -L/usr/local/lib/ncurses -lncurses, -I/usr/local/include/ncurses, "ncurses on /usr/local/include/ncurses") + + AC_NCURSES(/usr/local/include/ncurses, curses.h, -L/usr/local/lib -lncurses, -I/usr/local/include/ncurses -DRENAMED_NCURSES, "renamed ncurses on /usr/local/.../ncurses") + + AC_NCURSES(/usr/include/ncurses, curses.h, -lncurses, -I/usr/include/ncurses -DRENAMED_NCURSES, "renamed ncurses on /usr/include/ncurses") + + dnl + dnl We couldn't find ncurses, try SysV curses + dnl + if $search_ncurses + then + AC_EGREP_HEADER(init_color, /usr/include/curses.h, + AC_USE_SYSV_CURSES) + AC_EGREP_CPP(USE_NCURSES,[ +#include +#ifdef __NCURSES_H +#undef USE_NCURSES +USE_NCURSES +#endif +],[ + CURSES_INCLUDEDIR="$CURSES_INCLUDEDIR -DRENAMED_NCURSES" + AC_DEFINE(HAS_CURSES) + has_curses=true + has_ncurses=true + AC_DEFINE(USE_NCURSES) + search_ncurses=false + screen_manager="ncurses installed as curses" +]) + fi + + dnl + dnl Try SunOS 4.x /usr/5{lib,include} ncurses + dnl The flags USE_SUNOS_CURSES, USE_BSD_CURSES and BUGGY_CURSES + dnl should be replaced by a more fine grained selection routine + dnl + if $search_ncurses + then + if test -f /usr/5include/curses.h + then + AC_USE_SUNOS_CURSES + fi + fi + + dnl use whatever curses there happens to be + if $search_ncurses + then + if test -f /usr/include/curses.h + then + CURSES_LIBS="-lcurses" + AC_DEFINE(HAS_CURSES) + has_curses=true + search_ncurses=false + screen_manager="curses" + fi + fi +]) + +AC_CHECK_CURSES +LIBS="$LIBS $CURSES_LIBS" + # Function and library checking -AC_CHECK_FUNCS(initscr) -AC_CHECK_LIB(ncurses, initscr, LIBS="$LIBS -lncurses") -AC_CHECK_FUNCS(gethostbyname) -AC_CHECK_LIB(nsl, gethostbyname, LIBS="$LIBS -lnsl -lresolv") -AC_CHECK_FUNCS(socket) -AC_CHECK_LIB(socket, socket, LIBS="$LIBS -lsocket") +AC_CHECK_FUNC(gethostbyname, ac_gethostbyname_found=1, +ac_gethostbyname_found=0) +if test x$ac_gethostbyname_found = x0; then + AC_CHECK_LIB(nsl, gethostbyname, LIBS="$LIBS -lnsl") + AC_CHECK_FUNC(res_gethostbyname, ac_res_ghbn_found=1, ac_res_ghbn_found=0) + if test x$ac_res_ghbn_found = x0; then + AC_CHECK_LIB(resolv, res_gethostbyname, LIBS="$LIBS -lresolv") + fi +fi +AC_CHECK_FUNC(socket, ac_socket_found=1, ac_socket_found=0) +if test x$ac_socket_found = x0; then + AC_CHECK_LIB(socket, socket, LIBS="$LIBS -lsocket") +fi AC_CHECK_FUNCS(gethostname gethostbyaddr getservbyname getservbyport) AC_CHECK_FUNCS(select listen bind shutdown close connect) AC_CHECK_FUNCS(fcntl setsockopt) AC_CHECK_FUNCS(getopt_long time) -AC_CHECK_FUNCS(mlock munlock) AC_CHECK_FUNCS(chmod stat fstat getenv putenv strerror ctime gettimeofday) -AC_CHECK_FUNCS(getpid getgid getsid getpgid getpgrp getuid) +AC_CHECK_FUNCS(getpid getgid getsid getpgid getpgrp getuid setgroups initgroups) AC_CHECK_FUNCS(strchr strstr strcpy strncpy memcpy memset memmove) +AC_CHECK_FUNCS(pthread_create) # SIM support checking # XXX These needs to be changed as more supported platforms appear. # XXX This probably needs to be made platform dependant check. +sim_support=false +AM_CONDITIONAL(SILC_SIM, test x$sim_support = xtrue) AC_CHECKING(for SIM support) AC_CHECK_HEADERS(dlfcn.h, AC_CHECK_LIB(dl, dlopen, AC_DEFINE(SILC_SIM) + sim_support=true + AM_CONDITIONAL(SILC_SIM, test x$sim_support = xtrue) AC_MSG_RESULT(enabled SIM support) LIBS="$LIBS -ldl", AC_MSG_RESULT(no SIM support found)), @@ -126,93 +317,117 @@ AC_CHECK_HEADERS(dlfcn.h, # # Default installation destination -AC_PREFIX_DEFAULT(/usr/local/silc/) +AC_PREFIX_DEFAULT(/usr/local/silc) + +if test "x$prefix" != xNONE; then + silc_prefix="$prefix" +else + silc_prefix="$ac_default_prefix" +fi # etc directory -ETCDIR="/etc/silc" +#ETCDIR="/etc/silc" +if test "x$sysconfdir" != 'x${prefix}/etc'; then + ETCDIR="$sysconfdir" +else + ETCDIR="$silc_prefix/etc" +fi AC_ARG_WITH(etcdir, [ --with-etcdir[=PATH] Directory for system files [/etc/silc]], [ case "$withval" in no) ;; yes) + ETCDIR="$withval" ;; *) - ETCDIR="$withwal" + ETCDIR="$withval" ;; esac ], ) AC_SUBST(ETCDIR) +AC_DEFINE_UNQUOTED(SILC_ETCDIR, "$ETCDIR") # help directory -HELPDIR="help" +#HELPDIR="help" +HELPDIR="$silc_prefix/help" AC_ARG_WITH(helpdir, [ --with-helpdir[=PATH] Directory for SILC help files [PREFIX/help]], [ case "$withval" in no) ;; yes) + HELPDIR="$withval" ;; *) - HELPDIR="$withwal" + HELPDIR="$withval" ;; esac ], ) AC_SUBST(HELPDIR) +AC_DEFINE_UNQUOTED(SILC_HELPDIR, "$HELPDIR") # doc directory -DOCDIR="doc" +#DOCDIR="doc" +DOCDIR="$silc_prefix/doc" AC_ARG_WITH(docdir, [ --with-docdir[=PATH] Directory for SILC documentation [PREFIX/doc]], [ case "$withval" in no) ;; yes) + DOCDIR="$withval" ;; *) - DOCDIR="$withwal" + DOCDIR="$withval" ;; esac ], ) AC_SUBST(DOCDIR) +AC_DEFINE_UNQUOTED(SILC_DOCDIR, "$DOCDIR") # SIM modules directory -MODULESDIR="modules" +#MODULESDIR="modules" +MODULESDIR="$silc_prefix/modules" AC_ARG_WITH(simdir, [ --with-simdir[=PATH] Directory for SIM modules [PREFIX/modules]], [ case "$withval" in no) ;; yes) + MODULESDIR="$withval" ;; *) - MODULESDIR="$withwal" + MODULESDIR="$withval" ;; esac ], ) AC_SUBST(MODULESDIR) +AC_DEFINE_UNQUOTED(SILC_MODULESDIR, "$MODULESDIR") -# Debug checking -AC_MSG_CHECKING(for enabled debugging) -AC_ARG_ENABLE(debug, -[ --enable-debug Enable debugging (warning: it is heavy!)], -[ case "${enableval}" in - yes) - AC_MSG_RESULT(yes) - AC_DEFINE(SILC_DEBUG) - CFLAGS="-O -g $CFLAGS" +# Logs directory +#LOGSDIR="logs" +LOGSDIR="$silc_prefix/logs" +AC_ARG_WITH(logsdir, +[ --with-logsdir[=PATH] Directory for Server logs [PREFIX/logs]], +[ case "$withval" in + no) + ;; + yes) + LOGSDIR="$withval" ;; *) - AC_MSG_RESULT(no) - CFLAGS="-O2 -g $CFLAGS" + LOGSDIR="$withval" ;; -esac ], CFLAGS="-O2 -g $CFLAGS" - AC_MSG_RESULT(no)) + esac ], +) +AC_SUBST(LOGSDIR) +AC_DEFINE_UNQUOTED(SILC_LOGSDIR, "$LOGSDIR") # SOCKS4 support checking AC_MSG_CHECKING(whether to support SOCKS4) AC_ARG_WITH(socks4, -[ --with-socks4[=PATH] Compile with SOCKS4 support.], +[ --with-socks4[=PATH] Compile with SOCKS4 support], [ case "$withval" in no) AC_MSG_RESULT(no) @@ -246,7 +461,7 @@ AC_ARG_WITH(socks4, # SOCKS5 support checking AC_MSG_CHECKING(whether to support SOCKS5) AC_ARG_WITH(socks5, -[ --with-socks5[=PATH] Compile with SOCKS5 support.], +[ --with-socks5[=PATH] Compile with SOCKS5 support], [ case "$withval" in no) AC_MSG_RESULT(no) @@ -308,71 +523,320 @@ if test "x$socks" = "x5"; then AC_DEFINE(Rgethostbyname, SOCKSgethostbyname) fi -# GMP Library checking -AC_MSG_CHECKING(whether to compile GMP) +# +# MP library checking. First check whether user wants to use GMP and use +# it if found. If not or not defined then compile the MPI library in the +# source tree. +# +AC_MSG_CHECKING(whether to support GMP) AC_ARG_WITH(gmp, -[ --with-gmp Build the GMP in the SILC source tree], -[ case "${withval}" in - yes) - AM_CONDITIONAL(SILC_BUILD_GMP, test x$withval = xyes) - AC_MSG_RESULT(yes) +[ --with-gmp[=PATH] Compile with GMP support instead of MPI], +[ case "$withval" in + no) + AC_MSG_RESULT(no) + mp_gmp=false ;; *) - AC_CHECK_HEADER(gmp.h, - AC_CHECK_LIB(gmp, __gmpz_init, - AM_CONDITIONAL(SILC_BUILD_GMP, test x$withval = yes) - AC_MSG_RESULT(GMP will not be compiled), - AM_CONDITIONAL(SILC_BUILD_GMP, test x$withval != yes) - AC_MSG_RESULT(GMP will be compiled) - ), - AM_CONDITIONAL(SILC_BUILD_GMP, test x$withval != yes) - AC_MSG_RESULT(GMP will be compiled) - ) - ;; -esac ], [ - AC_CHECK_HEADER(gmp.h, + AC_MSG_RESULT(yes) + + if test -d "$withval/include"; then + CFLAGS="$CFLAGS -I$withval/include" + else + CFLAGS="$CFLAGS -I$withval" + fi + if test -d "$withval/lib"; then + withval="-L$withval/lib -lgmp" + else + withval="-L$withval -lgmp" + fi + + LIBS="$withval $LIBS" + mp_gmp=false AC_CHECK_LIB(gmp, __gmpz_init, - build_gmp=false - AM_CONDITIONAL(SILC_BUILD_GMP, test x$build_gmp = xtrue) - AC_MSG_RESULT(GMP will not be compiled), - build_gmp=true - AM_CONDITIONAL(SILC_BUILD_GMP, test x$build_gmp = xtrue) - AC_MSG_RESULT(GMP will be compiled) - ), - build_gmp=true - AM_CONDITIONAL(SILC_BUILD_GMP, test x$build_gmp = xtrue) - AC_MSG_RESULT(GMP will be compiled) - ) -]) + mp_gmp=true + AC_DEFINE(SILC_MP_GMP) + AC_MSG_RESULT(Using GMP as MP library) + ) + ;; + esac ], + AC_MSG_RESULT(no) + mp_gmp=false +) + +AM_CONDITIONAL(SILC_MP_GMP, test x$mp_gmp = xtrue) +AM_CONDITIONAL(SILC_MP_NSS_MPI, test x$mp_gmp = xfalse) +if test x$mp_gmp = xfalse; then + AC_DEFINE(SILC_MP_NSS_MPI) + AC_MSG_RESULT(Using NSS MPI as MP library) +fi AC_ARG_WITH(silcd-config-file, [ --with-silcd-config-file[=PATH] Use PATH as default configuration file in SILC - server.], + server [/etc/silc/silcd.conf]], [ AC_DEFINE_UNQUOTED(SILC_SERVER_CONFIG_FILE, "$withval") ]) -# XXX -#LIBS="$LIBS -lefence" +if test "x$localstatedir" != 'x${prefix}/var'; then + PIDFILE="$localstatedir/silcd.pid" +else + PIDFILE="$silc_prefix/var/silcd.pid" +fi +AC_ARG_WITH(silcd-pid-file, +[ --with-silcd-pid-file[=PATH] + Use PATH as default pid file in SILC + server [/var/run/silcd.pid]], +[ case "$withval" in + no) + ;; + yes) + PIDFILE="$withval" + ;; + *) + PIDFILE="$withval" + ;; + esac ], +) +AC_SUBST(PIDFILE) + +# +# Native WIN32 compilation under cygwin +# +AC_ARG_WITH(win32, +[ --with-win32 Compile native WIN32 code (-mno-cygwin)], +[ AC_DEFINE(SILC_WIN32) + win32_support=true + CFLAGS="-mno-cygwin $CFLAGS" + LIBS="$LIBS -lwsock32" ]) + +AM_CONDITIONAL(SILC_WIN32, test x$win32_support = xtrue) +# +# Native EPOC support (disabled by default) +# +AM_CONDITIONAL(SILC_EPOC, test xfalse = xtrue) + +# +# Native BeOS support (disabled by default) +# +AM_CONDITIONAL(SILC_BEOS, test xfalse = xtrue) + +# +# Native OS2 support (disabled by default) +# +AM_CONDITIONAL(SILC_OS2, test xfalse = xtrue) + +# +# IPv6 support +# +AC_MSG_CHECKING(for IPv6 support) +AC_ARG_ENABLE(ipv6, +[ --enable-ipv6 Enable IPv6 support], +[ case "${enableval}" in + yes) + want_ipv6=true + check_ipv6=false + AC_DEFINE(HAVE_IPV6) + AC_MSG_RESULT(yes) + ;; + *) + want_ipv6=false + check_ipv6=false + AC_MSG_RESULT(no) + ;; +esac ], check_ipv6=true) + +if test x$check_ipv6 = xtrue; then + AC_TRY_COMPILE([#ifdef HAVE_NETINET_TCP_H + #include + #endif + #ifdef HAVE_NETDB_H + #include + #endif + #include + #ifdef HAVE_NETDB_IN_H + #include + #endif], + [struct sockaddr_in6 sin6; + int family = AF_INET6; + ], [AC_DEFINE(HAVE_IPV6) + AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no)]) +fi + +# +# Debug checking +# +AC_MSG_CHECKING(for enabled debugging) +AC_ARG_ENABLE(debug, +[ --enable-debug Enable debugging], +[ case "${enableval}" in + yes) + AC_MSG_RESULT(yes) + AC_DEFINE(SILC_DEBUG) + CFLAGS="-O -g $CFLAGS" + ;; + *) + AC_MSG_RESULT(no) + CFLAGS="-O2 -g $CFLAGS" + ;; +esac ], CFLAGS="-O2 -g $CFLAGS" + AC_MSG_RESULT(no)) + +# +# Disable all assembler optimizations +# +AC_ARG_ENABLE(asm, +[ --disable-asm Do not use assembler optimizations ], +[]) + +# +# Threads support +# +AC_ARG_ENABLE(threads, +[ --disable-threads Do not compile with multi-thread support], +[ case "${enableval}" in + yes) + want_threads=true + check_threads=true + ;; + *) + want_threads=false + check_threads=false + ;; +esac ]) + +if test x$check_threads = xtrue; then +want_threads=false +AC_CHECK_HEADERS(pthread.h, + [ AC_DEFINE(SILC_HAVE_PTHREAD) + want_threads=true ], + [ if test -f /usr/pkg/include/pthread.h ; then + AC_DEFINE(SILC_HAVE_PTHREAD) + AC_MSG_RESULT(Found pthread.h in /usr/pkg/include/) + CFLAGS="$CFLAGS -I/usr/pkg/include" + want_threads=true + elif test -f /usr/contrib/include/pthread.h ; then + AC_DEFINE(SILC_HAVE_PTHREAD) + AC_MSG_RESULT(Found pthread.h in /usr/contrib/include/) + CFLAGS="$CFLAGS -I/usr/contrib/include" + want_threads=true + fi + ]) + +AM_CONDITIONAL(SILC_THREADS, test x$want_threads = xtrue) +if test x$want_threads = xtrue; then + TMP_LIBS="$LIBS" + LIBS="-lpthread" + AC_TRY_LINK([#include ], + [pthread_attr_t attr; pthread_attr_init(&attr);], + AC_DEFINE(SILC_THREADS), + LIBS="-L/usr/pkg/lib -lpthread" + AC_TRY_LINK([#include ], + [pthread_attr_t attr; pthread_attr_init(&attr);], + AC_DEFINE(SILC_THREADS), + LIBS="-L/usr/contrib/lib -lpthread" + AC_TRY_LINK([#include ], + [pthread_attr_t attr; pthread_attr_init(&attr);], + AC_DEFINE(SILC_THREADS), + LIBS="" + ))) + + CFLAGS="$CFLAGS -D_REENTRANT" + case $host in + *-aix*) + CFLAGS="$CFLAGS -D_THREAD_SAFE" + if test x"$GCC" = xyes; then + CFLAGS="$CFLAGS -mthreads" + fi + ;; + *-freebsd2.2*) + CFLAGS="$CFLAGS -D_THREAD_SAFE" + ;; + *-sysv5uw7*) # UnixWare 7 + if test "$GCC" != "yes"; then + CFLAGS="$CFLAGS -Kthread" + else + CFLAGS="$CFLAGS -pthread" + fi + ;; + *-dg-dgux*) # DG/UX + CFLAGS="$CFLAGS -D_POSIX4A_DRAFT10_SOURCE" + ;; + esac + + LIBS="$TMP_LIBS $LIBS" +fi +fi + +# # Other configure scripts +# +if test "x$silc_dist" = "xsilc-client" || + test "x$silc_dist" = "xsilc-toolkit"; then +AC_CONFIG_SUBDIRS(irssi) +fi +AC_CONFIG_SUBDIRS(lib/silcmath/mpi) #AC_CONFIG_SUBDIRS(lib/zlib) -AC_CONFIG_SUBDIRS(lib/dotconf) -AC_CONFIG_SUBDIRS(lib/silcmath/gmp) -AC_CONFIG_SUBDIRS(lib/trq) -AC_OUTPUT( \ +SILC_TOP_SRCDIR=`pwd` +AC_SUBST(SILC_TOP_SRCDIR) +#SILC_INSTALL_PREFIX=$ac_default_prefix +#AC_SUBST(SILC_INSTALL_PREFIX) +AC_SUBST(LIBS) +INCLUDE_DEFINES_INT="include \$(top_srcdir)/Makefile.defines_int" +AC_SUBST(INCLUDE_DEFINES_INT) + +# +# Makefile outputs +# +AC_CONFIG_FILES( \ Makefile -doc/Makefile +Makefile.defines +Makefile.defines_int +doc/Makefile includes/Makefile lib/Makefile lib/contrib/Makefile -lib/silcclient/Makefile lib/silccore/Makefile -lib/silccrypt/Makefile +lib/silccrypt/Makefile lib/silcmath/Makefile +lib/silcmath/mpi/Makefile.defines +lib/silcmath/mpi/Makefile.defines_int lib/silcsim/Makefile -lib/silcsim/modules/Makefile lib/silcske/Makefile lib/silcutil/Makefile +lib/silcutil/unix/Makefile +lib/silcutil/win32/Makefile +lib/silcutil/beos/Makefile +lib/silcutil/os2/Makefile +lib/silcutil/epoc/Makefile +lib/silcsftp/Makefile +lib/silcsftp/tests/Makefile +doc/example_silcd.conf +) + +if test "x$silc_dist" = "xsilc-client" || + test "x$silc_dist" = "xsilc-toolkit"; then +AC_CONFIG_FILES( \ +lib/silcclient/Makefile +irssi/Makefile.defines +irssi/Makefile.defines_int +) +fi + +if test "x$silc_dist" = "xsilc-server" || + test "x$silc_dist" = "xsilc-toolkit"; then +AC_CONFIG_FILES( \ +silcd/Makefile +) +fi + +if test "x$silc_dist" = "xsilc-toolkit"; then +AC_CONFIG_FILES( \ silc/Makefile -silcd/Makefile) +win32/Makefile +win32/libsilc/Makefile +win32/libsilcclient/Makefile +) +fi + +AC_OUTPUT