#
# Author: Pekka Riikonen <priikone@silcnet.org>
#
-# Copyright (C) 2000 - 2005 Pekka Riikonen
+# Copyright (C) 2000 - 2007 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
AC_PROG_MAKE_SET
AC_PROG_LN_S
+AC_PROG_EGREP
AC_SUBST(LN_S)
AC_PATH_PROG(sedpath, sed)
# Put here any platform specific stuff
#
case "$target" in
+ *-*-linux*)
+ check_threads=true
+ CFLAGS=`echo $CFLAGS -D_GNU_SOURCE`
+ ;;
*-*-freebsd*)
check_threads=true
;;
+ *-*-netbsd*)
+ check_threads=true
+ ;;
*-*-*bsd*)
check_threads=false
;;
;;
esac
-CFLAGS=
+# Get CPU
+cpu_i386=false
+cpu_ix86=false
+cpu_x86_64=false
+cpu_ppc=false
+cpu_ia64=false
+case "$host_cpu" in
+ i386)
+ AC_DEFINE([SILC_I386], [], [SILC_I386])
+ AC_DEFINE([SILC_I486], [], [SILC_I486])
+ cpu_i386=true
+ cpu_ix86=true
+ ;;
+ i?86)
+ AC_DEFINE([SILC_I486], [], [SILC_I486])
+ cpu_ix86=true
+ ;;
+ x86_64)
+ AC_DEFINE([SILC_X86_64], [], [SILC_X86_64])
+ cpu_x86_64=true
+ ;;
+ powerpc*)
+ AC_DEFINE([SILC_POWERPC], [], [SILC_POWERPC])
+ cpu_ppc=true
+ ;;
+ ia64)
+ AC_DEFINE([SILC_IA64], [], [SILC_IA64])
+ cpu_ia64=true
+ ;;
+esac
+AM_CONDITIONAL(SILC_I386, test x$cpu_i386 = xtrue)
+AM_CONDITIONAL(SILC_I486, test x$cpu_ix86 = xtrue)
+AM_CONDITIONAL(SILC_X86_64, test x$cpu_x86_64 = xtrue)
+AM_CONDITIONAL(SILC_POWERPC, test x$cpu_ppc = xtrue)
+AM_CONDITIONAL(SILC_IA64, test x$cpu_ia64 = xtrue)
+
+# Control compiler optimizations
+CFLAGS=`echo $CFLAGS | sed 's/-O[ 0123456789s]*//g'`
+
AC_PROG_CC
AC_C_INLINE
AC_C_CONST
__SILC_HAVE_SIM=""
__SILC_ENABLE_DEBUG=""
+#ifdef SILC_DIST_TOOLKIT
+toolkitver=`echo $VERSION | sed 's/\./ /g'`
+maj=0
+min=0
+bld=0
+for v in $toolkitver
+do
+ if test $maj -eq 0; then
+ maj=$v
+ continue
+ fi
+ if test $min -eq 0; then
+ min=$v
+ continue
+ fi
+ if test $bld -eq 0; then
+ bld=$v
+ continue
+ fi
+done
+__SILC_PACKAGE_VERSION="#define __SILC_TOOLKIT_VERSION SILC_VERSION($maj,$min,$bld)"
+#endif SILC_DIST_TOOLKIT
+
AC_PROG_RANLIB
+#ifndef SILC_DIST_TOOLKIT
+AC_DISABLE_SHARED
+#endif SILC_DIST_TOOLKIT
+#ifdef SILC_DIST_INPLACE
AC_DISABLE_SHARED
+#endif SILC_DIST_INPLACE
AC_PROG_LIBTOOL
# Header checking
AC_SUBST(SILC_SIZEOF_CHAR, $ac_cv_sizeof_char)
AC_CHECK_SIZEOF(void *, 0)
AC_SUBST(SILC_SIZEOF_VOID_P, $ac_cv_sizeof_void_p)
+AC_CHECK_TYPES(long long)
+AC_CHECK_TYPES(long double)
+
+# Function to check if compiler flag works
+# Usage: SILC_ADD_CFLAGS(FLAGS, [ACTION-IF-FAILED])
+AC_DEFUN([SILC_ADD_CFLAGS],
+[ tmp_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $1"
+ AC_MSG_CHECKING(whether $CC accepts $1 flag)
+ AC_TRY_LINK([], [], [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no)
+ CFLAGS="$tmp_CFLAGS"
+ $2])
+ unset tmp_CFLAGS
+])
+
+# Function to check if compiler flag works, destination specifiable
+# Usage: SILC_ADD_CC_FLAGS(VAR, FLAGS, [ACTION-IF-FAILED])
+AC_DEFUN([SILC_ADD_CC_FLAGS],
+[ tmp_CFLAGS="$1_CFLAGS"
+ $1_CFLAGS="${$1_CFLAGS} $2"
+ AC_MSG_CHECKING(whether $CC accepts $2 flag)
+ AC_TRY_LINK([], [], [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no)
+ $1_CFLAGS="$tmp_CFLAGS"
+ $3])
+ unset tmp_CFLAGS
+])
# Function and library checking
#
AC_CHECK_LIB(socket, socket, LIBS="$LIBS -lsocket")
)
AC_CHECK_FUNCS(gethostname gethostbyaddr getservbyname getservbyport)
-AC_CHECK_FUNCS(select listen bind shutdown close connect setsockopt)
-AC_CHECK_FUNCS(time ctime utime gettimeofday getrusage)
+AC_CHECK_FUNCS(poll select listen bind shutdown close connect setsockopt)
+AC_CHECK_FUNCS(setrlimit time ctime utime gettimeofday getrusage)
AC_CHECK_FUNCS(chmod fcntl stat fstat getenv putenv strerror)
-AC_CHECK_FUNCS(getpid getgid getsid getpgid getpgrp getuid)
-AC_CHECK_FUNCS(setgroups initgroups nl_langinfo)
-AC_CHECK_FUNCS(strchr strstr strcpy strncpy memcpy memset memmove)
-
-#ifdef SILC_DIST_SIM
-# 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
-AC_MSG_CHECKING(for SIM support)
-AC_MSG_RESULT()
-AC_CHECK_HEADERS(dlfcn.h,
- [
- AC_CHECK_LIB(dl, dlopen,
- [
- AC_DEFINE([SILC_SIM], [], [HAVE_SIM])
- sim_support=true
- LIBS="$LIBS -ldl"
- ],
- [
- AC_CHECK_LIB(c, dlopen,
- [
- AC_DEFINE([SILC_SIM], [], [HAVE_SIM])
- sim_support=true
- ])
- ])
- ])
-
-AM_CONDITIONAL(SILC_SIM, test x$sim_support = xtrue)
-if test x$sim_support = xtrue; then
- AC_MSG_RESULT(Enabled SIM support.)
- __SILC_HAVE_SIM="#define __SILC_HAVE_SIM 1"
-else
- AC_MSG_RESULT(No SIM support found.)
-fi
-#endif SILC_DIST_SIM
+AC_CHECK_FUNCS(getpid getgid getsid getpgid getpgrp getuid sched_yield)
+AC_CHECK_FUNCS(setgroups initgroups nl_langinfo nanosleep)
+AC_CHECK_FUNCS(strchr snprintf strstr strcpy strncpy memcpy memset memmove)
# lib/contrib conditionals
#
AC_CHECK_HEADER(regex.h,
[
- AC_DEFINE([HAVE_REGEX], [], [HAVE_REGEX])
+ AC_DEFINE([HAVE_REGEX_H], [], [HAVE_REGEX_H])
have_regex=1
], have_regex=0
)
have_getopt_long=1
], have_getopt_long=0
)
-AM_CONDITIONAL(HAVE_GETOPT_LONG, test x$have_getopt_long = x1)
+
+AC_CHECK_FUNC(getopt,
+ [
+ AC_DEFINE([HAVE_GETOPT], [], [HAVE_GETOPT])
+ have_getopt=1
+ ], have_getopt=0
+)
##
## Enable/disable checking
AC_MSG_RESULT(no)
])
+# Disable all compiler optimizations
+#
+AC_MSG_CHECKING(whether to enable compiler optimizations)
+want_cc_optimizations=true
+AC_ARG_ENABLE(optimizations,
+ [ --disable-optimizations do not use any compiler optimizations],
+ [
+ AC_MSG_RESULT(no)
+ AC_DEFINE([SILC_NO_CC_OPTIMIZATIONS], [], [SILC_NO_CC_OPTIMIZATIONS])
+ want_cc_optimizations=false
+ ],
+ [
+ AC_MSG_RESULT(yes)
+ want_cc_optimizations=true
+ ])
+AM_CONDITIONAL(SILC_NO_CC_OPTIMIZATIONS, test x$want_cc_optimizations = xfalse)
+
# Disable all assembler optimizations
#
AC_MSG_CHECKING(whether to enable assembler optimizations)
[ --disable-asm do not use assembler optimizations],
[
AC_MSG_RESULT(no)
+ AC_DEFINE([SILC_NO_ASM], [], [SILC_NO_ASM])
want_asm=false
],
[
AC_MSG_RESULT(yes)
want_asm=true
])
+AM_CONDITIONAL(SILC_NO_ASM, test x$want_asm = xfalse)
+
+# Check for assembler
+#
+SILC_ASSEMBLER=""
+have_assembler=false
+if test x$want_asm = xtrue; then
+ AC_PATH_PROG([NASM], [nasm], [no])
+ if test "x$NASM" != "xno"; then
+ if test x$cpu_x86_64 = xtrue; then
+ SILC_ASSEMBLER="$NASM -O2 -felf64"
+ else
+ SILC_ASSEMBLER="$NASM -O2 -felf"
+ fi
+ have_assembler=true
+ fi
+
+ AC_PATH_PROG([YASM], [yasm], [no])
+ if test "x$YASM" != "xno"; then
+ if test x$cpu_x86_64 = xtrue; then
+ SILC_ASSEMBLER="$YASM -Xgnu -felf64"
+ else
+ SILC_ASSEMBLER="$YASM -Xgnu -felf"
+ fi
+ have_assembler=true
+ fi
+fi
+AC_SUBST(SILC_ASSEMBLER)
##
-## Compiler and compiler flag checks
+## va_copy checks
##
+va_copy=false
+AC_MSG_CHECKING(for va_copy)
+AC_TRY_COMPILE(
+ [
+ #include <stdarg.h>
+ #include <stdlib.h>
+ ],
+ [
+ int t(int x, ...)
+ {
+ va_list va, cp;
+ va_start(va, x);
+ va_copy(cp, va);
+ if (va_arg(cp, int) != 0xff11)
+ return 1;
+ va_end(va);
+ va_end(cp);
+ return 0;
+ }
+ int main()
+ {
+ return t(0, 0xff11);
+ }
+ ],
+ [
+ AC_DEFINE([HAVE_VA_COPY], [], [HAVE_VA_COPY])
+ AC_MSG_RESULT(yes)
+ va_copy=true
+ ],
+ [
+ AC_MSG_RESULT(no)
+ va_copy=false
+ ]
+)
-# Function to check if compiler flag works
-# Usage: SILC_ADD_CFLAGS(FLAGS, [ACTION-IF-FAILED])
-AC_DEFUN([SILC_ADD_CFLAGS],
-[ tmp_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS $1"
- AC_MSG_CHECKING(whether $CC accepts $1 flag)
- AC_TRY_LINK([], [], [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no)
- CFLAGS="$tmp_CFLAGS"
- $2])
- unset tmp_CFLAGS
-])
+if test x$va_copy = xfalse; then
+ AC_MSG_CHECKING(for __va_copy)
+ AC_TRY_COMPILE(
+ [
+ #include <stdarg.h>
+ #include <stdlib.h>
+ ],
+ [
+ int t(int x, ...)
+ {
+ va_list va, cp;
+ va_start(va, x);
+ __va_copy(cp, va);
+ if (va_arg(cp, int) != 0xff11)
+ return 1;
+ va_end(va);
+ va_end(cp);
+ return 0;
+ }
+ int main()
+ {
+ return t(0, 0xff11);
+ }
+ ],
+ [
+ AC_DEFINE([HAVE___VA_COPY], [], [HAVE___VA_COPY])
+ AC_MSG_RESULT(yes)
+ va_copy=true
+ ],
+ [
+ AC_MSG_RESULT(no)
+ va_copy=false
+ ]
+ )
+fi
+
+if test x$va_copy = xfalse; then
+ AC_RUN_IFELSE(
+ [
+ #include <stdarg.h>
+ #include <stdlib.h>
+ int t(int x, ...)
+ {
+ va_list va, cp;
+ va_start(va, x);
+ cp = va;
+ if (va_arg(cp, int) != 0xff11)
+ return 1;
+ va_end(va);
+ va_end(cp);
+ return 0;
+ }
+ int main()
+ {
+ return t(0, 0xff11);
+ }
+ ],
+ [va_copy=false],
+ [
+ AC_DEFINE([SILC_VA_COPY_ARRAY], [], [SILC_VA_COPY_ARRAY])
+ ],
+ [va=copy=false]
+ )
+fi
+
+##
+## Compiler and compiler flag checks
+##
if test "$GCC"; then
# GCC specific options
if test "x$summary_debug" = "xyes"; then
- SILC_ADD_CFLAGS(-g -O)
+ SILC_ADD_CFLAGS(-g)
else
- SILC_ADD_CFLAGS(-g -O2)
+ SILC_ADD_CFLAGS(-g)
fi
SILC_ADD_CFLAGS(-Wall -finline-functions)
+ SILC_ADD_CFLAGS(-Wno-pointer-sign)
else
# Other compilers
case "$target" in
alpha*-dec-osf*)
- SILC_ADD_CFLAGS(-g3 -O2, SILC_ADD_CFLAGS(-g3 -O, SILC_ADD_CFLAGS(-O)))
+ SILC_ADD_CFLAGS(-g3)
+ ;;
+ mips*-sgi-irix*)
+ SILC_ADD_CFLAGS(-g3)
;;
*)
SILC_ADD_CFLAGS(-g)
- SILC_ADD_CFLAGS(-O2, SILC_ADD_CFLAGS(-O))
;;
esac
fi
fi
+if test x$want_cc_optimizations = xtrue; then
+ if test "$GCC"; then
+ # GCC specific options
+ if test "x$summary_debug" = "xyes"; then
+ SILC_ADD_CFLAGS(-O)
+ else
+ SILC_ADD_CFLAGS(-O2)
+ fi
+ else
+ # Other compilers
+ case "$target" in
+ alpha*-dec-osf*)
+ SILC_ADD_CFLAGS(-O2, SILC_ADD_CFLAGS(-O))
+ ;;
+ mips*-sgi-irix*)
+ SILC_ADD_CFLAGS(-O2, SILC_ADD_CFLAGS(-O))
+ ;;
+ *)
+ SILC_ADD_CFLAGS(-O2, SILC_ADD_CFLAGS(-O))
+ ;;
+ esac
+ fi
+fi
+
#
# Workaround a bug in GCC 2.x which causes memory exhaustion
# when compiling sha1 with optimizations on UltraSPARC.
# Default installation destination
#
-#ifdef SILC_DIST_AUTODIST
AC_PREFIX_DEFAULT(/usr/local)
-#else !SILC_DIST_AUTODIST
-AC_PREFIX_DEFAULT(/usr/local/silc)
-#endif SILC_DIST_AUTODIST
if test "x$prefix" != xNONE; then
silc_prefix="$prefix"
else
silc_prefix="$ac_default_prefix"
+ prefix="$silc_prefix"
fi
#ifndef SILC_DIST_AUTODIST
-# etc directory
-#
-if test "x$sysconfdir" != 'x${prefix}/etc'; then
- ETCDIR="$sysconfdir"
-else
- ETCDIR="$silc_prefix/etc"
-fi
-
-AC_ARG_WITH(etcdir,
- [[ --with-etcdir=DIR directory for system files [/etc/silc]]],
- [
- case "$withval" in
- no|yes)
- ;;
- *)
- ETCDIR="$withval"
- ;;
- esac
- ])
+ETCDIR=`eval echo $sysconfdir`;ETCDIR=`eval echo $ETCDIR`
AC_SUBST(ETCDIR)
AC_DEFINE_UNQUOTED([SILC_ETCDIR], "$ETCDIR", [SILC_ETCDIR])
-# doc directory
-#
-DOCDIR="$silc_prefix/doc"
-AC_ARG_WITH(docdir,
- [[ --with-docdir=DIR directory for SILC documentation [PREFIX/doc]]],
- [
- case "$withval" in
- no|yes)
- ;;
- *)
- DOCDIR="$withval"
- ;;
- esac
- ])
+DOCDIR=`eval echo $docdir`;DOCDIR=`eval echo $DOCDIR`
AC_SUBST(DOCDIR)
AC_DEFINE_UNQUOTED([SILC_DOCDIR], "$DOCDIR", [SILC_DOCDIR])
#endif SILC_DIST_AUTODIST
-#ifdef SILC_DIST_CLIENT
-# help directory
-#
-HELPDIR="$silc_prefix/help"
-AC_ARG_WITH(helpdir,
- [[ --with-helpdir=DIR directory for SILC help files [PREFIX/help]]],
- [
- case "$withval" in
- no|yes)
- ;;
- *)
- HELPDIR="$withval"
- ;;
- esac
- ])
-AC_SUBST(HELPDIR)
-AC_DEFINE_UNQUOTED([SILC_HELPDIR], "$HELPDIR", [SILC_HELPDIR])
-#endif SILC_DIST_CLIENT
-
-#ifdef SILC_DIST_SIM
-# SIM modules directory
-#
-MODULESDIR="$silc_prefix/modules"
-AC_ARG_WITH(simdir,
- [[ --with-simdir=DIR directory for SIM modules [PREFIX/modules]]],
- [
- case "$withval" in
- no|yes)
- ;;
- *)
- MODULESDIR="$withval"
- ;;
- esac
- ])
-AC_SUBST(MODULESDIR)
-AC_DEFINE_UNQUOTED([SILC_MODULESDIR], "$MODULESDIR", [SILC_MODULESDIR])
-#endif SILC_DIST_SIM
-
-#ifdef SILC_DIST_SERVER
-# Logs directory
-#
-LOGSDIR="$silc_prefix/logs"
-AC_ARG_WITH(logsdir,
- [[ --with-logsdir=DIR directory for SILC Server logs [PREFIX/logs]]],
- [
- case "$withval" in
- no|yes)
- ;;
- *)
- LOGSDIR="$withval"
- ;;
- esac
- ])
-AC_SUBST(LOGSDIR)
-AC_DEFINE_UNQUOTED([SILC_LOGSDIR], "$LOGSDIR", [SILC_LOGSDIR])
-
-# silcd config file checking
-#
-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", [SILC_SERVER_CONFIG_FILE])
- summary_silcd_configfile="$withval"
- )
-
-# silcd pid file checking
-#
-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=FILE use FILE as default pid file for SILC
- Server [/var/run/silcd.pid]]],
- [
- case "$withval" in
- no|yes)
- ;;
- *)
- PIDFILE="$withval"
- ;;
- esac
- ])
-AC_SUBST(PIDFILE)
-#endif SILC_DIST_SERVER
-
#ifdef SILC_DIST_COMPILER
##
## With/without checkings
#
# SILC library checking
compile_libs=true
+LIBSUBDIR=lib
#ifndef SILC_DIST_TOOLKIT
-
-AC_ARG_WITH(silc-includes,
+AC_ARG_WITH(silc-includes,
[ --with-silc-includes=DIR SILC Toolkit includes [search in DIR]],
[ac_silc_includes="$withval"], [ac_silc_includes="no"])
AC_ARG_WITH(silc-libs,
[ --with-silc-libs=DIR SILC Toolkit libraries [search in DIR]],
[ac_silc_libs="$withval"], [ac_silc_libs="no"])
-#
-# XXX missing checking the __SILC_WITH_XXX defines from the provided libs
-# in order to determine correct libs to link.
+if test -n "$with_silc_includes" || test -n "$with_silc_libs"; then
-#
-# XXX missing pkg-config check.
+ # Manually provided libs
+ if test "$ac_silc_includes" != "no"; then
+ compile_libs=false
+ SILC_LIB_INCLUDES="-I$ac_silc_includes"
+ LIBSUBDIR=
+ fi
+ if test "$ac_silc_libs" != "no"; then
+ compile_libs=false
+ LIBSUBDIR=
+ LDFLAGS="-L$ac_silc_libs $LDFLAGS"
+ else
+ LDFLAGS="-L\$(silc_top_srcdir)/lib $LDFLAGS"
+ fi
-if test "$ac_silc_includes" != "no"; then
- compile_libs=false
- SILC_LIB_INCLUDES="-I$ac_silc_includes"
-fi
-if test "$ac_silc_libs" != "no"; then
- compile_libs=false
- LIBS="$LIBS -L$ac_silc_libs"
-fi
+ # Check libs to link against
+ f=`$EGREP __SILC_HAVE_PTHREAD $ac_silc_includes/silc.h`
+ if test -n "$f"; then
+ LIBS="$LIBS -lpthread"
+ check_threads=false
+ has_threads=true
+ fi
+ f=`$EGREP __SILC_HAVE_SIM $ac_silc_includes/silc.h`
+ if test -n "$f"; then
+ LIBS="$LIBS -ldl"
+ fi
+else
+ # pkg-config check
+ PKG_CHECK_MODULES(SILC, [silc >= 1.1], compile_libs=false, compile_libs=true)
+#ifdef SILC_DIST_CLIENTLIB
+ PKG_CHECK_MODULES(SILCCLIENT, [silcclient >= 1.1.1], compile_libs=false, compile_libs=true)
+#endif SILC_DIST_CLIENTLIB
+#ifdef SILC_DIST_SERVERLIB
+ PKG_CHECK_MODULES(SILCSERVER, silcserver, compile_libs=false, compile_libs=true)
+#endif SILC_DIST_SERVERLIB
+
+ if test x$compile_libs = xfalse; then
+ LIBSUBDIR=
+ LIBS="$SILC_LIBS $LIBS"
+ CFLAGS="$CFLAGS $SILC_CFLAGS"
+#ifdef SILC_DIST_CLIENTLIB
+ LIBS="$SILCCLIENT_LIBS $LIBS"
+ CFLAGS="$CFLAGS $SILCCLIENT_CFLAGS"
+#endif SILC_DIST_CLIENTLIB
+#ifdef SILC_DIST_SERVERLIB
+ LIBS="$LIBS $SILCSERVER_LIBS"
+ CFLAGS="$CFLAGS $SILCSERVER_CFLAGS"
+#endif SILC_DIST_SERVERLIB
+ else
+ LDFLAGS="-L\$(silc_top_srcdir)/lib $LDFLAGS"
+ fi
+fi
+#else SILC_DIST_TOOLKIT
+LDFLAGS="-L\$(silc_top_srcdir)/lib $LDFLAGS"
#endif SILC_DIST_TOOLKIT
+#ifdef SILC_DIST_SIM
+# 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
+AC_MSG_CHECKING(for SIM support)
+AC_MSG_RESULT()
+AC_CHECK_HEADERS(dlfcn.h,
+ [
+ AC_CHECK_LIB(dl, dlopen,
+ [
+ AC_DEFINE([SILC_SIM], [], [HAVE_SIM])
+ sim_support=true
+ LIBS="$LIBS -ldl"
+ ],
+ [
+ AC_CHECK_LIB(c, dlopen,
+ [
+ AC_DEFINE([SILC_SIM], [], [HAVE_SIM])
+ sim_support=true
+ ])
+ ])
+ ])
+
+AM_CONDITIONAL(SILC_SIM, test x$sim_support = xtrue)
+if test x$sim_support = xtrue; then
+ AC_MSG_RESULT(Enabled SIM support.)
+ __SILC_HAVE_SIM="#define __SILC_HAVE_SIM 1"
+else
+ AC_MSG_RESULT(No SIM support found.)
+fi
+#endif SILC_DIST_SIM
# SOCKS4 support checking
#
#ifdef SILC_DIST_MATH
# 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
+# it if found. If not or not defined then compile the default library in the
# source tree.
#
mp_gmp=false
SAVE_LDFLAGS="$LDFLAGS"
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]]],
+ [[ --with-gmp[=DIR] use GMP instead of SILC Math [search in DIR/lib and DIR/include]]],
[
case "$withval" in
no)
)
AM_CONDITIONAL(SILC_MP_GMP, test x$mp_gmp = xtrue)
-AM_CONDITIONAL(SILC_MP_NSS_MPI, test x$mp_gmp = xfalse)
+AM_CONDITIONAL(SILC_MP_SILCMATH, test x$mp_gmp = xfalse)
if test x$mp_gmp = xfalse; then
- AC_DEFINE([SILC_MP_NSS_MPI], [], [MPI])
- AC_MSG_RESULT(Using NSS MPI as a MP library.)
+ AC_DEFINE([SILC_MP_SILCMATH], [], [SILCMATH])
+ AC_MSG_RESULT(Using SILC Math as a MP library.)
fi
#endif SILC_DIST_MATH
# 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]]],
])
if test x$check_threads = xtrue; then
+ has_threads=false
SAVE_LIBS="$LIBS"
SAVE_CFLAGS="$CFLAGS"
SAVE_LDFLAGS="$LDFLAGS"
;;
esac
+ # Check for threads
AC_CHECK_FUNC(pthread_create)
+
+ # Check for read/write locks
+ AC_CHECK_FUNC(pthread_rwlock_init,
+ [
+ AC_RUN_IFELSE(
+ [
+ #include <pthread.h>
+ int main()
+ {
+ pthread_rwlock_t rwlock;
+ pthread_rwlock_init(&rwlock, NULL);
+ pthread_rwlock_destroy(&rwlock);
+ return 0;
+ }
+ ],
+ [],
+ [
+ # Rwlock not defined
+ CFLAGS="$CFLAGS -D_XOPEN_SOURCE=600"
+ ]
+ )
+ ],
+ [
+ # Rwlock not defined
+ CFLAGS="$CFLAGS -D_XOPEN_SOURCE=600"
+ ])
+
AC_DEFINE([SILC_HAVE_PTHREAD], [], [HAVE_PTHREAD])
AC_DEFINE([SILC_THREADS], [], [HAVE_THREAD])
__SILC_HAVE_PTHREAD="#define __SILC_HAVE_PTHREAD 1"
fi
+#
+# Check for timezone and tm_gmtoff for timezone information
+#
+AC_MSG_CHECKING(whether system has timezone)
+AC_RUN_IFELSE(
+ [
+ #include <stdio.h>
+ #include <time.h>
+ int main()
+ {
+ timezone = 0;
+ return 0;
+ }
+ ],
+ [ AC_MSG_RESULT(yes)
+ AC_DEFINE([HAVE_TIMEZONE], [], [HAVE_TIMEZONE]) ],
+ [ AC_MSG_RESULT(no) ],
+ [ AC_MSG_RESULT(no) ]
+)
+AC_MSG_CHECKING(whether system has tm_gmtoff)
+AC_RUN_IFELSE(
+ [
+ #include <stdio.h>
+ #include <time.h>
+ int main()
+ {
+ struct tm tm;
+ tm.tm_gmtoff = 0;
+ return 0;
+ }
+ ],
+ [ AC_MSG_RESULT(yes)
+ AC_DEFINE([HAVE_TM_GMTOFF], [], [HAVE_TM_GMTOFF]) ],
+ [ AC_MSG_RESULT(no) ],
+ [ AC_MSG_RESULT(no) ]
+)
+AC_MSG_CHECKING(whether system has __tm_gmtoff)
+AC_RUN_IFELSE(
+ [
+ #include <stdio.h>
+ #include <time.h>
+ int main()
+ {
+ struct tm tm;
+ tm.__tm_gmtoff = 0;
+ return 0;
+ }
+ ],
+ [ AC_MSG_RESULT(yes)
+ AC_DEFINE([HAVE___TM_GMTOFF], [], [HAVE___TM_GMTOFF]) ],
+ [ AC_MSG_RESULT(no) ],
+ [ AC_MSG_RESULT(no) ]
+)
+AC_MSG_CHECKING(whether system has __tm_gmtoff__)
+AC_RUN_IFELSE(
+ [
+ #include <stdio.h>
+ #include <time.h>
+ int main()
+ {
+ struct tm tm;
+ tm.__tm_gmtoff__ = 0;
+ return 0;
+ }
+ ],
+ [ AC_MSG_RESULT(yes)
+ AC_DEFINE([HAVE___TM_GMTOFF__], [], [HAVE___TM_GMTOFF__]) ],
+ [ AC_MSG_RESULT(no) ],
+ [ AC_MSG_RESULT(no) ]
+)
+
# Native WIN32 compilation under cygwin
#
AC_MSG_CHECKING(whether to compile native WIN32 code)
])
AM_CONDITIONAL(SILC_WIN32, test x$win32_support = xtrue)
-# Native EPOC support (disabled by default)
+# Native Symbian OS support (disabled by default)
#
-AM_CONDITIONAL(SILC_EPOC, test xfalse = xtrue)
+AM_CONDITIONAL(SILC_SYMBIAN, test xfalse = xtrue)
# Native BeOS support (disabled by default)
#
#
AM_CONDITIONAL(SILC_OS2, test xfalse = xtrue)
-#ifdef SILC_DIST_TOOLKIT
-
-# --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
- ],
- [
- AC_MSG_RESULT(yes)
- ])
-
-# --without-silcd
-#
+#ifdef SILC_DIST_SERVER
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
- ],
- [
- AC_MSG_RESULT(yes)
- ])
-
-#endif SILC_DIST_TOOLKIT
-
+#endif SILC_DIST_SERVER
#ifdef SILC_DIST_CLIENT
-# Irssi perl support
-#
-AC_ARG_WITH(perl,
- [[ --with-perl[=yes|no|module] Build with Perl support - also specifies
- if it should be built into main silc binary
- (static, default) or as a module]])
+AM_CONDITIONAL(with_irssi, true)
#endif SILC_DIST_CLIENT
-
-libtoolfix=true
-AC_MSG_CHECKING(whether to do libtoolfix)
-AC_ARG_WITH(libtoolfix,
- [ --without-libtoolfix Do not fix libtool, for package builders],
- [
- AC_MSG_RESULT(no)
- libtoolfix=false
- ],
- [
- AC_MSG_RESULT(yes)
- ])
+#ifdef SILC_DIST_INPLACE
+without_irssi=false
+without_silcd=false
+#endif SILC_DIST_INPLACE
AC_SUBST(ETCDIR)
AC_DEFINE_UNQUOTED([SILC_ETCDIR], "$ETCDIR", [SILC_ETCDIR])
-
#endif SILC_DIST_COMPILER
##
## Misc
##
-# Other configure scripts
-#
-
-#ifdef SILC_DIST_TOOLKIT
-if test x$without_irssi = xfalse; then
-#endif SILC_DIST_TOOLKIT
-#ifdef SILC_DIST_CLIENT
- AC_CONFIG_SUBDIRS(irssi)
- irssi="yes"
-#endif SILC_DIST_CLIENT
-#ifdef SILC_DIST_TOOLKIT
-fi
-#endif SILC_DIST_TOOLKIT
+# Make enable-shared aware
+AM_CONDITIONAL(SILC_ENABLE_SHARED, test "$enable_shared" = yes)
SILC_TOP_SRCDIR=`pwd`
#
# Substitutions
#
+AC_SUBST(LIBSUBDIR)
AC_SUBST(SILC_TOP_SRCDIR)
+AC_SUBST(LDFLAGS)
AC_SUBST(LIBS)
AC_SUBST(SILC_LIB_INCLUDES)
AC_SUBST(__SILC_HAVE_PTHREAD)
AC_SUBST(__SILC_HAVE_SIM)
AC_SUBST(__SILC_ENABLE_DEBUG)
-
-#
-# Fix the libtool to support run-time configuration. This allows us
-# to in run-time specify when to compile shared/static libraries without
-# need to reconfigure the entire libtool.
-#
-if test x$libtoolfix = xtrue; then
- ./libtoolfix $SILC_TOP_SRCDIR/ltmain.sh
-fi
-AM_CONDITIONAL(SILC_LIBTOOLFIX, test x$libtoolfix = xtrue)
+AC_SUBST(__SILC_PACKAGE_VERSION)
INCLUDE_DEFINES_INT="include \$(top_srcdir)/Makefile.defines_int"
AC_SUBST(INCLUDE_DEFINES_INT)
Makefile.defines_int
includes/Makefile
includes/silcversion.h
-includes/silcincludes.h
+includes/silc.h
#endif SILC_DIST_COMPILER
#ifdef SILC_DIST_APPS
apps/Makefile
#endif SILC_DIST_APPS
)
-#ifdef SILC_DIST_TOOLKIT
-if test x$without_irssi = xfalse ; then
-#endif SILC_DIST_TOOLKIT
-#ifdef SILC_DIST_CLIENT
- AC_CONFIG_FILES(
-irssi/Makefile.defines
-irssi/Makefile.defines_int
-)
-#endif SILC_DIST_CLIENT
-#ifdef SILC_DIST_TOOLKIT
-fi
-#endif SILC_DIST_TOOLKIT
-
-#ifdef SILC_DIST_TOOLKIT
-if test x$without_silcd = xfalse ; then
-#endif SILC_DIST_TOOLKIT
-#ifdef SILC_DIST_SERVER
- AC_CONFIG_FILES(
-silcd/Makefile
-doc/example_silcd.conf
-)
-#endif SILC_DIST_SERVER
-#ifdef SILC_DIST_TOOLKIT
-fi
-#endif SILC_DIST_TOOLKIT
-
#ifdef SILC_DIST_TOOLKIT
AC_CONFIG_FILES(
-silc/Makefile
win32/Makefile
win32/libsilc/Makefile
win32/libsilcclient/Makefile
AC_OUTPUT
#ifdef SILC_DIST_COMPILER
+
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`
echo " Target host ...................: $target"
echo " Compiler ......................: $CC"
echo " CFLAGS ........................: $CFLAGS"
-echo " CPPFLAGS ......................: $CPPFLAGS"
echo " LDFLAGS .......................: $LDFLAGS"
echo " LIBS ..........................: $LIBS"
echo ""
echo " etc directory .................: $ETCDIR"
echo " man directory .................: $s_mandir"
echo " doc directory .................: $DOCDIR"
-#ifdef SILC_DIST_CLIENT
-echo " help directory ................: $HELPDIR"
-#endif SILC_DIST_CLIENT
-#ifdef SILC_DIST_SERVER
-echo " logs directory ................: $LOGSDIR"
-#endif SILC_DIST_SERVER
#ifdef SILC_DIST_SIM
echo " SIM directory .................: $MODULESDIR"
#endif SILC_DIST_SIM
#endif SILC_DIST_INCLUDES
echo ""
-#ifdef SILC_DIST_SERVER
-silcd="yes"
-#endif SILC_DIST_SERVER
-
-#ifdef SILC_DIST_TOOLKIT
+#ifdef SILC_DIST_CLIENT
if test x$without_irssi = xtrue; then
irssi="no"
fi
-if test x$without_silcd = xtrue; then
- silcd="no"
-fi
-#endif SILC_DIST_TOOLKIT
-
-#ifdef SILC_DIST_CLIENT
echo " Compile SILC Client ...........: $irssi"
#endif SILC_DIST_CLIENT
#ifdef SILC_DIST_SERVER
+if test x$without_silcd = xtrue; then
+ silcd="no"
+fi
echo " Compile SILC Server ...........: $silcd"
-echo " Server configuration file .....: $summary_silcd_configfile"
-echo " Server PID file ...............: $PIDFILE"
#endif SILC_DIST_SERVER
#ifdef SILC_DIST_SIM
echo " Assembler optimizations .......: $summary_asm"
#ifdef SILC_DIST_MATH
-mp="MPI"
if test x$mp_gmp = xtrue; then
- mp="GMP"
+ echo " Arithmetic library ............: GMP"
fi
-echo " Arithmetic library ............: $mp"
#endif SILC_DIST_MATH
threads="no"
echo ""
echo "Compile the sources with 'make' or 'gmake' command."
#endif SILC_DIST_COMPILER
-