X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=configure.in.pre;h=0812847a7403d01a165d3db73dddc4d5b835beea;hb=e8b3711134ef37555deb444a44664302c6aaaaed;hp=5c27c3bf72a3db3316910e473884325c1cea6cb8;hpb=70ac3febac27077e8c460ca0bb04a2eb0c145734;p=silc.git diff --git a/configure.in.pre b/configure.in.pre index 5c27c3bf..0812847a 100644 --- a/configure.in.pre +++ b/configure.in.pre @@ -22,6 +22,9 @@ AC_INIT(includes/silcversion.h) # AC_CANONICAL_SYSTEM case "$target" in + *-*-freebsd*) + check_threads=true + ;; *-*-*bsd*) check_threads=false ;; @@ -34,7 +37,7 @@ esac # AM_INIT_AUTOMAKE(SILC_PACKAGE, SILC_VERSION) AC_PREREQ(2.52) -AM_CONFIG_HEADER(includes/silcdefs.h) +AC_CONFIG_HEADERS(includes/silcdefs.h) AC_PROG_CC AC_C_INLINE @@ -118,7 +121,7 @@ AC_CHECK_FUNCS(select listen bind shutdown close connect setsockopt) AC_CHECK_FUNCS(time ctime utime gettimeofday) AC_CHECK_FUNCS(chmod fcntl stat fstat getenv putenv strerror) AC_CHECK_FUNCS(getpid getgid getsid getpgid getpgrp getuid) -AC_CHECK_FUNCS(setgroups initgroups pthread_create nl_langinfo) +AC_CHECK_FUNCS(setgroups initgroups nl_langinfo) AC_CHECK_FUNCS(strchr strstr strcpy strncpy memcpy memset memmove) # SIM support checking @@ -126,7 +129,8 @@ AC_CHECK_FUNCS(strchr strstr strcpy strncpy memcpy memset memmove) # XXX This probably needs to be made platform dependant check. # sim_support=false -AC_CHECKING(for SIM support) +AC_MSG_CHECKING(for SIM support) +AC_MSG_RESULT() AC_CHECK_HEADERS(dlfcn.h, AC_CHECK_LIB(dl, dlopen, [ @@ -164,7 +168,7 @@ AM_CONDITIONAL(HAVE_GETOPT_LONG, test x$have_getopt_long = x1) # IPv6 support # -AC_MSG_CHECKING(for IPv6 support) +AC_MSG_CHECKING(whether to enable IPv6 support) AC_ARG_ENABLE(ipv6, [ --enable-ipv6 enable IPv6 support], [ @@ -172,12 +176,14 @@ AC_ARG_ENABLE(ipv6, yes) want_ipv6=true check_ipv6=false + summary_ipv6="yes" AC_DEFINE(HAVE_IPV6) AC_MSG_RESULT(yes) ;; *) want_ipv6=false check_ipv6=false + summary_ipv6="no" AC_MSG_RESULT(no) ;; esac @@ -186,8 +192,12 @@ AC_ARG_ENABLE(ipv6, ) if test x$check_ipv6 = xtrue; then + summary_ipv6="no" AC_TRY_COMPILE( [ + #ifdef HAVE_SYS_TYPES_H + #include + #endif #ifdef HAVE_NETINET_TCP_H #include #endif @@ -195,7 +205,7 @@ if test x$check_ipv6 = xtrue; then #include #endif #include - #ifdef HAVE_NETDB_IN_H + #ifdef HAVE_NETINET_IN_H #include #endif ], @@ -206,6 +216,7 @@ if test x$check_ipv6 = xtrue; then [ AC_DEFINE(HAVE_IPV6) AC_MSG_RESULT(yes) + summary_ipv6="yes" ], AC_MSG_RESULT(no) ) @@ -213,7 +224,8 @@ fi # Debug checking # -AC_MSG_CHECKING(for enabled debugging) +AC_MSG_CHECKING(whether to enable debugging) +summary_debug="no" AC_ARG_ENABLE(debug, [ --enable-debug enable debugging], [ @@ -222,6 +234,7 @@ AC_ARG_ENABLE(debug, AC_MSG_RESULT(yes) AC_DEFINE(SILC_DEBUG) CFLAGS="-O -g $CFLAGS" + summary_debug="yes" ;; *) AC_MSG_RESULT(no) @@ -236,7 +249,8 @@ AC_ARG_ENABLE(debug, # Stack trace checking # -AC_MSG_CHECKING(for enabled stack tracing) +AC_MSG_CHECKING(whether to enable stack tracing) +summary_stacktrace="no" AC_ARG_ENABLE(stack-trace, [ --enable-stack-trace enable memory stack trace], [ @@ -244,6 +258,7 @@ AC_ARG_ENABLE(stack-trace, yes) AC_MSG_RESULT(yes) AC_DEFINE(SILC_STACKTRACE) + summary_stacktrace="yes" ;; *) AC_MSG_RESULT(no) @@ -255,117 +270,17 @@ AC_ARG_ENABLE(stack-trace, # Disable all assembler optimizations # +AC_MSG_CHECKING(whether to enable assembler optimizations) +summary_asm="no" AC_ARG_ENABLE(asm, - [ --disable-asm do not use assembler optimizations]) - -# Threads support -# -want_threads=false -AC_ARG_ENABLE(threads, - [ --disable-threads do not compile with multi-thread support], - [ - case "${enableval}" in - yes) - want_threads=true - check_threads=true - ;; - *) - check_threads=false - ;; - esac - ]) - -if test x$check_threads = xtrue; then -AC_CHECK_HEADERS(pthread.h, + [ --disable-asm do not use assembler optimizations], [ - AC_DEFINE(SILC_HAVE_PTHREAD) - want_threads=true + AC_MSG_RESULT(no) ], [ - if test -f /usr/pkg/include/pthread.h ; then - AC_DEFINE(SILC_HAVE_PTHREAD) - want_threads=true - AC_MSG_RESULT(Found pthread.h in /usr/pkg/include/) - CFLAGS="$CFLAGS -I/usr/pkg/include" - elif test -f /usr/contrib/include/pthread.h ; then - AC_DEFINE(SILC_HAVE_PTHREAD) - want_threads=true - AC_MSG_RESULT(Found pthread.h in /usr/contrib/include/) - CFLAGS="$CFLAGS -I/usr/contrib/include" - fi + AC_MSG_RESULT(yes) + summary_asm="yes" ]) -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 ## @@ -473,10 +388,12 @@ AC_DEFINE_UNQUOTED(SILC_LOGSDIR, "$LOGSDIR") # silcd config file checking # -AC_ARG_WITH(silcd-conf, - [[ --with-silcd-conf=FILE use FILE as default configuration file for SILC - Server [/etc/silc/silcd.conf]]], +summary_silcd_configfile="/etc/silc/silcd.conf" +AC_ARG_WITH(silcd-config-file, + [[ --with-silcd-config-file=FILE use FILE as default configuration file + for SILC Server [/etc/silc/silcd.conf]]], AC_DEFINE_UNQUOTED(SILC_SERVER_CONFIG_FILE, "$withval") + summary_silcd_configfile="$withval" ) # silcd pid file checking @@ -487,9 +404,9 @@ else PIDFILE="$silc_prefix/var/silcd.pid" fi -AC_ARG_WITH(silcd-pid, - [[ --with-silcd-pid=FILE use FILE as default pid file for SILC - Server [/var/run/silcd.pid]]], +AC_ARG_WITH(silcd-pid-file, + [[ --with-silcd-pid-file=FILE use FILE as default pid file for SILC + Server [/var/run/silcd.pid]]], [ case "$withval" in no) @@ -620,7 +537,7 @@ fi # source tree. # mp_gmp=false -AC_MSG_CHECKING(whether to support GMP) +AC_MSG_CHECKING(whether to search for GMP) AC_ARG_WITH(gmp, [[ --with-gmp[=DIR] use GMP instead of MPI [search in DIR/lib and DIR/include]]], [ @@ -664,44 +581,123 @@ fi # iconv support # +check_iconv=true +has_iconv=false +AC_MSG_CHECKING(whether to implicit search for libiconv) AC_ARG_WITH(iconv, [[ --with-iconv[=DIR] use libiconv [search in DIR/include and DIR/lib]]], [ - if test -d $dir/include; then - CPPFLAGS="$CPPFLAGS -I$dir/include" - CFLAGS="$CFLAGS -I$dir/include" - fi - if test -d $dir/lib; then - LDFLAGS="$LDFLAGS -L$dir/lib" - fi - ]) + case "${withval}" in + no) + AC_MSG_RESULT(no) -AC_CHECK_HEADER(iconv.h, + AC_CHECK_HEADERS(iconv.h, AC_CHECK_FUNC(iconv, has_iconv=true)) + check_iconv=false + ;; + *) + AC_MSG_RESULT(yes) + + if test -d $withval/include; then + CPPFLAGS="$CPPFLAGS -I$withval/include" + CFLAGS="$CFLAGS -I$withval/include" + fi + if test -d $withval/lib; then + LDFLAGS="$LDFLAGS -L$withval/lib" + fi + esac + ], [ - AC_DEFINE(HAVE_ICONV_H, 1, [Define if you have the iconv.h header.]) - AC_CHECK_FUNC(iconv, ac_iconv_found=1, - [ - LIBS="$LIBS -liconv" - AC_MSG_CHECKING(for iconv in -liconv) - AC_TRY_LINK( - [ - #include - #include - ], - [ - iconv_t cd = iconv_open("", ""); - iconv(cd, NULL, NULL, NULL, NULL); - iconv_close(cd); - ], - [ - echo "yes" - AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.]) - ]) - ]) - ]) + AC_MSG_RESULT(no) + + AC_CHECK_HEADERS(iconv.h, AC_CHECK_FUNCS(iconv, + [ + has_iconv=true + check_iconv=false + ])) + ]) -if test x$ac_iconv_found = x1; then +if test x$check_iconv = xtrue; then + AC_MSG_RESULT(starting search...) + + # XXX + unset ac_cv_header__iconv_h_ ac_cv_header_iconv_h || true + + AC_CHECK_HEADERS(iconv.h, + [ + LIBS="$LIBS -liconv" + AC_MSG_CHECKING(for iconv in -liconv) + AC_TRY_LINK( + [ + #include + #include + ], + [ + iconv_t cd = iconv_open("", ""); + iconv(cd, NULL, NULL, NULL, NULL); + iconv_close(cd); + ], + [ + echo "yes" + AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.]) + has_iconv=true + check_iconv=true + ]) + ]) +fi +if test x$check_iconv = xtrue; then + # search for iconv library.. + SAVE_CPPFLAGS="$CPPFLAGS" + SAVE_CFLAGS="$CFLAGS" + SAVE_LDFLAGS="$LDFLAGS" + + for dir in `echo "/usr/local /usr/pkg /usr/contrib"`; do + if test x$has_iconv = xfalse; then + AC_MSG_RESULT(searching in $dir...) + + CPPFLAGS="$SAVE_CPPFLAGS" + CFLAGS="$SAVE_CFLAGS" + LDFLAGS="$SAVE_LDFLAGS" + + if test -d $dir/include; then + CPPFLAGS="$CPPFLAGS -I$dir/include" + CFLAGS="$CFLAGS -I$dir/include" + fi + if test -d $dir/lib; then + LDFLAGS="$LDFLAGS -L$dir/lib" + fi + + # XXX + unset ac_cv_header__iconv_h_ ac_cv_header_iconv_h || true + + AC_CHECK_HEADERS(iconv.h, + [ + LIBS="$LIBS -liconv" + AC_MSG_CHECKING(for iconv in -liconv) + AC_TRY_LINK( + [ + #include + #include + ], + [ + iconv_t cd = iconv_open("", ""); + iconv(cd, NULL, NULL, NULL, NULL); + iconv_close(cd); + ], + [ + echo "yes" + has_iconv=true + AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.]) + ], + [ + has_iconv=false + ]) + ]) + fi + done +fi + +if test x$has_iconv = xtrue; then # (1) Some implementations of iconv won't convert from UTF-8 to UTF-8. # (2) In glibc-2.1.2 and earlier there is a bug that messes up ob and # obl when args 2 and 3 are 0 (fixed in glibc-2.1.3). @@ -740,15 +736,133 @@ if test x$ac_iconv_found = x1; then fi fi +# POSIX threads support +# +has_threads=false +AC_MSG_CHECKING(whether to search for POSIX threads) +AC_ARG_WITH(pthreads, + [[ --with-pthreads[=DIR] use POSIX threads [search in DIR/include and DIR/lib]]], + [ + case "${withval}" in + no) + check_threads=false + ;; + *) + if test -d $withval/include; then + CPPFLAGS="$CPPFLAGS -I$withval/include" + CFLAGS="$CFLAGS -I$withval/include" + fi + if test -d $withval/lib; then + LDFLAGS="$LDFLAGS -L$withval/lib" + fi + + check_threads=true + ;; + esac + ]) + +if test x$check_threads = xtrue; then + AC_MSG_RESULT(yes) + AC_CHECK_HEADERS(pthread.h, + [ + SAVE_LIBS="$LIBS" + LIBS="$LIBS -lpthread" + AC_CHECK_LIB(pthread, pthread_attr_init, has_threads=true, + [ + # FreeBSD + case "${target}" in + *-*-freebsd*) + LIBS="$SAVE_LIBS -pthread" + AC_CHECK_LIB(c_r, pthread_attr_init, has_threads=true) + ;; + esac + ]) + ], + [ + # search for pthread library.. + SAVE_CPPFLAGS="$CPPFLAGS" + SAVE_CFLAGS="$CFLAGS" + SAVE_LDFLAGS="$LDFLAGS" + + for dir in `echo "/usr/local /usr/pkg /usr/contrib /usr/pkg/pthreads /usr/local/pthreads"`; do + if test x$has_threads = xfalse; then + AC_MSG_RESULT(searching in $dir...) + + CPPFLAGS="$SAVE_CPPFLAGS" + CFLAGS="$SAVE_CFLAGS" + LDFLAGS="$SAVE_LDFLAGS" + + if test -d $dir/include; then + CPPFLAGS="$CPPFLAGS -I$dir/include" + CFLAGS="$CFLAGS -I$dir/include" + fi + if test -d $dir/lib; then + LDFLAGS="$LDFLAGS -L$dir/lib" + fi + + # XXX + unset ac_cv_header__pthread_h_ ac_cv_header_pthread_h || true + + AC_CHECK_HEADERS(pthread.h, + [ + LIBS="$LIBS -lpthread" + AC_CHECK_LIB(pthread, pthread_attr_init, has_threads=true, + has_threads=false) + ]) + fi + done + ]) +else + AC_MSG_RESULT(no) + has_threads=false +fi + +AM_CONDITIONAL(SILC_THREADS, test x$has_threads = xtrue) +if test x$has_threads = xtrue; then + CFLAGS="$CFLAGS -D_REENTRANT" + + # XXX possibly incomplete + case "${target}" in + *-*-aix*) + CFLAGS="$CFLAGS -D_THREAD_SAFE" + if test x"$GCC" = xyes; then + CFLAGS="$CFLAGS -mthreads" + fi + ;; + *-*-freebsd*) + 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 + + AC_CHECK_FUNC(pthread_create) + AC_DEFINE(SILC_HAVE_PTHREAD) + AC_DEFINE(SILC_THREADS) +fi + # Native WIN32 compilation under cygwin # +AC_MSG_CHECKING(whether to compile native WIN32 code) AC_ARG_WITH(win32, [ --with-win32 compile native WIN32 code (-mno-cygwin)], [ + AC_MSG_RESULT(yes) AC_DEFINE(SILC_WIN32) win32_support=true CFLAGS="-mno-cygwin $CFLAGS" LIBS="$LIBS -lwsock32" + ], + [ + AC_MSG_RESULT(no) ]) AM_CONDITIONAL(SILC_WIN32, test x$win32_support = xtrue) @@ -767,21 +881,31 @@ AM_CONDITIONAL(SILC_OS2, test xfalse = xtrue) # --without-irssi # without_irssi=false +AC_MSG_CHECKING(whether to compile Irssi SILC Client) AC_ARG_WITH(irssi, [ --without-irssi compile without Irssi SILC Client], [ + AC_MSG_RESULT(no) without_irssi=true SILC_DIST_SUBDIRS=`echo $SILC_DIST_SUBDIRS | $sedpath -e 's/irssi//'` + ], + [ + AC_MSG_RESULT(yes) ]) # --without-silcd # without_silcd=false +AC_MSG_CHECKING(whether to compile SILC Server) AC_ARG_WITH(silcd, [ --without-silcd compile without SILC Server], [ + AC_MSG_RESULT(no) without_silcd=true SILC_DIST_SUBDIRS=`echo $SILC_DIST_SUBDIRS | $sedpath -e 's/silcd//'` + ], + [ + AC_MSG_RESULT(yes) ]) @@ -798,7 +922,10 @@ if test x$without_irssi = xfalse; then fi fi -AC_CONFIG_SUBDIRS(lib/silcmath/mpi) +if test x$mp_gmp = xfalse; then + AC_CONFIG_SUBDIRS(lib/silcmath/mpi) +fi + #AC_CONFIG_SUBDIRS(lib/zlib) SILC_TOP_SRCDIR=`pwd` @@ -872,3 +999,74 @@ win32/libsilcclient/Makefile fi AC_OUTPUT + +s_bindir=`eval echo $bindir`;s_bindir=`eval echo $s_bindir` +s_sbindir=`eval echo $sbindir`;s_sbindir=`eval echo $s_sbindir` +s_mandir=`eval echo $mandir`;s_mandir=`eval echo $s_mandir` +s_includedir=`eval echo $includedir`;s_includedir=`eval echo $s_includedir` + +echo "" +echo "SILC Configuration Summary:" +echo "---------------------------" +echo " Target host ...................: $target" +echo " Compiler ......................: $CC" +echo " CFLAGS ........................: $CFLAGS" +echo " CPPFLAGS ......................: $CPPFLAGS" +echo " LDFLAGS .......................: $LDFLAGS" +echo " LIBS ..........................: $LIBS" +echo "" +echo " Installation prefix ...........: $prefix" +echo " bin directory .................: $s_bindir" +echo " sbin directory ................: $s_sbindir" +echo " man directory .................: $s_mandir" +echo " help directory ................: $HELPDIR" +echo " doc directory .................: $DOCDIR" +echo " logs directory ................: $LOGSDIR" +echo " SIM directory .................: $MODULESDIR" +echo " include directory .............: $s_includedir" +echo "" + +if test "x$silc_dist" = "xsilc-client" || + test "x$silc_dist" = "xsilc-toolkit"; then + irssi="yes" + if test x$without_irssi = xtrue; then + irssi="no" + fi +echo " Compile SILC Client ...........: $irssi" +fi + +if test "x$silc_dist" = "xsilc-server" || + test "x$silc_dist" = "xsilc-toolkit"; then + silcd="yes" + if test x$without_silcd = xtrue; then + without_silcd="no" + fi +echo " Compile SILC Server ...........: $silcd" +echo " Server configuration file .....: $summary_silcd_configfile" +echo " Server PID file ...............: $PIDFILE" +fi + +if test x$sim_support = xfalse; then + sim_support="no" +else + sim_support="yes" +fi +echo " SIM support ...................: $sim_support" +echo " IPv6 support ..................: $summary_ipv6" +echo " Assmebler optimizations .......: $summary_asm" + +mp="MPI" +if test x$mp_gmp = xtrue; then + mp="GMP" +fi +echo " Arithmetic library ............: $mp" + +threads="no" +if test x$has_threads = xtrue; then + threads="yes" +fi +echo " Multi-threads support .........: $threads" +echo " Debugging enabled .............: $summary_debug" +echo " Stack-trace enabled ...........: $summary_stacktrace" +echo "" +echo "Compile the sources with 'make' or 'gmake' command. (GNU make is required)"