#
# Author: Pekka Riikonen <priikone@silcnet.org>
#
-# Copyright (C) 2000 - 2006 Pekka Riikonen
+# Copyright (C) 2000 - 2008 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_CANONICAL_SYSTEM
AM_INIT_AUTOMAKE
AC_PREREQ(2.52)
-AC_CONFIG_HEADERS(silcdefs.h)
+AC_CONFIG_HEADERS(cryptodefs.h)
AC_PROG_INSTALL
AC_PROG_MAKE_SET
-AC_PROG_LN_S
-AC_PROG_EGREP
-AC_SUBST(LN_S)
-AC_PATH_PROG(sedpath, sed)
-
-#ifdef SILC_DIST_COMPILER
-# Put here any platform specific stuff
-#
-case "$target" in
- *-*-freebsd*)
- check_threads=true
- ;;
- *-*-*bsd*)
- check_threads=false
- ;;
- *)
- check_threads=true
- ;;
-esac
-
-# Get CPU
-case "$host_cpu" in
- i386)
- AC_DEFINE([SILC_I386], [], [SILC_I386])
- ;;
- i?86)
- AC_DEFINE([SILC_I486], [], [SILC_I486])
- ;;
- x86_64)
- AC_DEFINE([SILC_X86_64], [], [SILC_X86_64])
- ;;
- powerpc*)
- AC_DEFINE([SILC_POWERPC], [], [SILC_POWERPC])
- ;;
- ia64)
- AC_DEFINE([SILC_IA64], [], [SILC_IA64])
- ;;
-esac
-
-# Control compiler optimizations
-CFLAGS=`echo $CFLAGS | sed 's/-O[ 0123456789s]*//g'`
-
AC_PROG_CC
+AM_PROG_AS
AC_C_INLINE
AC_C_CONST
-__SILC_HAVE_PTHREAD=""
-__SILC_HAVE_SIM=""
-__SILC_ENABLE_DEBUG=""
-
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_HEADER_STDC
-AC_HEADER_TIME
-AC_HEADER_STAT
+SILC_TOP_SRCDIR=`pwd`
-# 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 stddef.h)
-AC_CHECK_HEADERS(netinet/in.h netinet/tcp.h xti.h netdb.h sys/resource.h)
-AC_CHECK_HEADERS(pwd.h grp.h termcap.h paths.h)
-AC_CHECK_HEADERS(ncurses.h signal.h ctype.h utime.h)
-AC_CHECK_HEADERS(arpa/inet.h sys/mman.h limits.h termios.h locale.h langinfo.h)
-
-# Data type checking
-#
-AC_TYPE_SIGNAL
-AC_TYPE_SIZE_T
-AC_TYPE_MODE_T
-AC_TYPE_UID_T
-AC_TYPE_PID_T
-
-AC_CHECK_SIZEOF(long long, 0)
-AC_SUBST(SILC_SIZEOF_LONG_LONG, $ac_cv_sizeof_long_long)
-AC_CHECK_SIZEOF(long, 0)
-AC_SUBST(SILC_SIZEOF_LONG, $ac_cv_sizeof_long)
-AC_CHECK_SIZEOF(int, 0)
-AC_SUBST(SILC_SIZEOF_INT, $ac_cv_sizeof_int)
-AC_CHECK_SIZEOF(short, 0)
-AC_SUBST(SILC_SIZEOF_SHORT, $ac_cv_sizeof_short)
-AC_CHECK_SIZEOF(char, 0)
-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)
-
-# Function and library checking
+##
+## Library versioning.
+##
+
+# Do the releases and library versioning according to following rules:
#
-AC_CHECK_FUNC(gethostbyname, [],
- [
- AC_CHECK_LIB(nsl, gethostbyname, LIBS="$LIBS -lnsl")
- AC_CHECK_FUNC(res_gethostbyname, [],
- AC_CHECK_LIB(resolv, res_gethostbyname, LIBS="$LIBS -lresolv")
- )
- ])
-AC_CHECK_FUNC(socket, [],
- AC_CHECK_LIB(socket, socket, LIBS="$LIBS -lsocket")
-)
-AC_CHECK_FUNCS(gethostname gethostbyaddr getservbyname getservbyport)
-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.
+# - If any code has changed in library, increment CRYPTO_REVISION
+# - If API were added, removed or changed, set CRYPTO_REVISION to 0
+# - If API were added, removed or changed, increment CRYPTO_CURRENT
+# - If APi were added, increment CRYPTO_AGE
+# - If API were removed, set CRYPTO_AGE to 0
#
-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
+# Base version for library.
+CRYPTO_BASE_VERSION=1.2
-# lib/contrib conditionals
-#
-AC_CHECK_HEADER(regex.h,
- [
- AC_DEFINE([HAVE_REGEX_H], [], [HAVE_REGEX_H])
- have_regex=1
- ], have_regex=0
-)
-AM_CONDITIONAL(HAVE_REGEX, test x$have_regex = x1)
+# Library versions
+CRYPTO_CURRENT=1 # prev = 0
+CRYPTO_REVISION=0 # prev = 0
+CRYPTo_AGE=0 # prev = 0
-AC_CHECK_FUNC(getopt_long,
- [
- AC_DEFINE([HAVE_GETOPT_LONG], [], [HAVE_GETOPT_LONG])
- have_getopt_long=1
- ], have_getopt_long=0
-)
+# Substitute the version numbers
+AC_SUBST(CRYPTO_BASE_VERSION)
+AC_SUBST(CRYPTO_CURRENT)
+AC_SUBST(CRYPTO_REVISION)
+AC_SUBST(CRYPTO_AGE)
-AC_CHECK_FUNC(getopt,
- [
- AC_DEFINE([HAVE_GETOPT], [], [HAVE_GETOPT])
- have_getopt=1
- ], have_getopt=0
-)
##
-## Enable/disable checking
+## Installation
##
-# IPv6 support
-#
-AC_MSG_CHECKING(whether to enable IPv6 support)
-AC_ARG_ENABLE(ipv6,
- [ --enable-ipv6 enable IPv6 support],
- [
- case "${enableval}" in
- yes)
- want_ipv6=true
- check_ipv6=false
- summary_ipv6="yes"
- AC_DEFINE([HAVE_IPV6], [], [HAVE_IPV6])
- AC_MSG_RESULT(yes)
- ;;
- *)
- want_ipv6=false
- check_ipv6=false
- summary_ipv6="no"
- AC_MSG_RESULT(no)
- ;;
- esac
- ],
- check_ipv6=true
- )
-
-if test x$check_ipv6 = xtrue; then
- summary_ipv6="no"
- AC_TRY_COMPILE(
- [
- #ifdef HAVE_SYS_TYPES_H
- #include <sys/types.h>
- #endif
- #ifdef HAVE_NETINET_TCP_H
- #include <netinet/tcp.h>
- #endif
- #ifdef HAVE_NETDB_H
- #include <netdb.h>
- #endif
- #include <sys/socket.h>
- #ifdef HAVE_NETINET_IN_H
- #include <netinet/in.h>
- #endif
- ],
- [
- struct sockaddr_in6 sin6;
- int family = AF_INET6;
- ],
- [
- AC_DEFINE([HAVE_IPV6], [], [HAVE_IPV6])
- AC_MSG_RESULT(yes)
- summary_ipv6="yes"
- ],
- AC_MSG_RESULT(no)
- )
+# Default installation destination
+AC_PREFIX_DEFAULT(/usr/local)
+if test "x$prefix" != xNONE; then
+ silc_prefix="$prefix"
+else
+ silc_prefix="$ac_default_prefix"
+ prefix="$silc_prefix"
fi
-# Debug checking
-#
-AC_MSG_CHECKING(whether to enable debugging)
-summary_debug="no"
-__SILC_ENABLE_DEBUG=""
-AC_ARG_ENABLE(debug,
- [ --enable-debug enable debugging],
- [
- case "${enableval}" in
- yes)
- AC_MSG_RESULT(yes)
- AC_DEFINE([SILC_DEBUG], [], [enable-debug])
- summary_debug="yes"
- __SILC_ENABLE_DEBUG="#define __SILC_ENABLE_DEBUG 1"
- ;;
- *)
- AC_MSG_RESULT(no)
- ;;
- esac
- ],
- [
- AC_MSG_RESULT(no)
- ])
-# Disable all assembler optimizations
-#
-AC_MSG_CHECKING(whether to enable assembler optimizations)
-want_asm=true
-AC_ARG_ENABLE(asm,
- [ --disable-asm do not use assembler optimizations],
+##
+## Detect CPU
+##
+
+# Disable all CPU feature optimizations
+AC_MSG_CHECKING(whether to enable CPU feature optimizations)
+AC_ARG_ENABLE(cpu-optimizations,
+ [ --disable-cpu-optimizations do not use any CPU feature optimizations],
[
AC_MSG_RESULT(no)
- want_asm=false
+ AC_DEFINE([SILC_NO_CPU_OPTIMIZATIONS], [], [SILC_NO_CPU_OPTIMIZATIONS])
+ want_cpu_optimizations=false
],
[
AC_MSG_RESULT(yes)
- want_asm=true
+ want_cpu_optimizations=true
])
+AM_CONDITIONAL(SILC_NO_CPU_OPTIMIZATIONS,
+ test x$want_cpu_optimizations = xfalse)
+
+SILC_SYSTEM_IS_SMP(AC_DEFINE([SILC_SMP], [], [SILC_SMP]), [],
+ AC_DEFINE([SILC_SMP], [], [SILC_SMP]))
+cpu_i386=false
+cpu_i486=false
+cpu_i586=false
+cpu_i686=false
+cpu_i786=false
+cpu_x86_64=false
+cpu_ppc=false
+cpu_ia64=false
+case "$host_cpu" in
+ # All following Intels are considered 32-bit CPUs.
+ i?86)
+ # All CPUs of today are considered i386 and i486 compatible */
+ cpu_i386=true
+ cpu_i486=true
+
+ if test "x$host_cpu" = "xi586"; then
+ cpu_i586=true
+ fi
+
+ if test "x$host_cpu" = "xi686"; then
+ cpu_i586=true
+ cpu_i686=true
+ fi
+
+ if test "x$host_cpu" = "xi786"; then
+ cpu_i586=true
+ cpu_i686=true
+ cpu_i786=true
+ fi
+
+ # Check for specific CPU features
+ SILC_CPU_FLAG(mmx, true, AC_DEFINE([SILC_CPU_MMX], [], [SILC_CPU_MMX]), [])
+ SILC_CPU_FLAG(sse2, true, AC_DEFINE([SILC_CPU_SSE2], [], [SILC_CPU_SSE2]), [])
+ SILC_CPU_FLAG(pni, true, AC_DEFINE([SILC_CPU_SSE3], [], [SILC_CPU_SSE3]), [])
+ SILC_CPU_FLAG(ssse3, true, AC_DEFINE([SILC_CPU_SSSE3], [], [SILC_CPU_SSSE3]), [])
+ SILC_CPU_FLAG(sse4, true, AC_DEFINE([SILC_CPU_SSE4], [], [SILC_CPU_SSE4]), [])
+ ;;
+
+ # Intel IA-64, 64-bit CPU (not x86_64 compatible)
+ ia64)
+ AC_DEFINE([SILC_IA64], [], [SILC_IA64])
+ cpu_ia64=true
+
+ # Check for specific CPU features
+ SILC_CPU_FLAG(mmx, true, AC_DEFINE([SILC_CPU_MMX], [], [SILC_CPU_MMX]), [])
+ SILC_CPU_FLAG(sse2, true, AC_DEFINE([SILC_CPU_SSE2], [], [SILC_CPU_SSE2]), [])
+ SILC_CPU_FLAG(pni, true, AC_DEFINE([SILC_CPU_SSE3], [], [SILC_CPU_SSE3]), [])
+ SILC_CPU_FLAG(ssse3, true, AC_DEFINE([SILC_CPU_SSSE3], [], [SILC_CPU_SSSE3]), [])
+ SILC_CPU_FLAG(sse4, true, AC_DEFINE([SILC_CPU_SSE4], [], [SILC_CPU_SSE4]), [])
+ ;;
+
+ # AMD/Intel x86_64, 64-bit CPU
+ x86_64)
+ cpu_x86_64=true
+
+ # Check for specific CPU features
+ SILC_CPU_FLAG(mmx, true, AC_DEFINE([SILC_CPU_MMX], [], [SILC_CPU_MMX]), [])
+ SILC_CPU_FLAG(sse2, true, AC_DEFINE([SILC_CPU_SSE2], [], [SILC_CPU_SSE2]), [])
+ SILC_CPU_FLAG(pni, true, AC_DEFINE([SILC_CPU_SSE3], [], [SILC_CPU_SSE3]), [])
+ SILC_CPU_FLAG(ssse3, true, AC_DEFINE([SILC_CPU_SSSE3], [], [SILC_CPU_SSSE3]), [])
+ SILC_CPU_FLAG(sse4, true, AC_DEFINE([SILC_CPU_SSE4], [], [SILC_CPU_SSE4]), [])
+ ;;
+
+ # PowerPC, 32-bit and 64-bit CPUs
+ powerpc*)
+ cpu_ppc=true
+ ;;
+esac
+AM_CONDITIONAL(SILC_I386, test x$cpu_i386 = xtrue)
+AM_CONDITIONAL(SILC_I486, test x$cpu_i486 = xtrue)
+AM_CONDITIONAL(SILC_I586, test x$cpu_i586 = xtrue)
+AM_CONDITIONAL(SILC_I686, test x$cpu_i686 = xtrue)
+AM_CONDITIONAL(SILC_7686, test x$cpu_i786 = 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)
+
+if test x$want_cpu_optimizations = xtrue; then
+ # Set some compiler options based on CPU
+ if test "x$CC" = "xicc"; then
+ # ICC flags
+ if test x$x_have_cpu_sse4 = xtrue; then
+ SILC_ADD_CFLAGS(-axS)
+ fi
+ if test x$x_have_cpu_ssse3 = xtrue; then
+ SILC_ADD_CFLAGS(-axT)
+ elif test x$x_have_cpu_pni = xtrue; then
+ SILC_ADD_CFLAGS(-axP)
+ elif test x$x_have_cpu_sse2 = xtrue; then
+ SILC_ADD_CFLAGS(-axW)
+ fi
+ else
+ # Other compilers
+ if test x$x_have_cpu_sse2 = xtrue; then
+ SILC_ADD_CFLAGS(-msse2)
+ fi
+ if test x$x_have_cpu_pni = xtrue; then
+ SILC_ADD_CFLAGS(-msse3)
+ fi
+ if test x$x_have_cpu_ssse3 = xtrue; then
+ SILC_ADD_CFLAGS(-mssse3)
+ fi
+ if test x$x_have_cpu_sse4 = xtrue; then
+ SILC_ADD_CFLAGS(-msse4)
+ fi
+ fi
+fi
+
+
+##
+## Put here any platform specific stuff
+##
+
+case "$target" in
+ *-*-linux*)
+ CFLAGS=`echo $CFLAGS -D_GNU_SOURCE`
+ ;;
+ *-*-freebsd*)
+ ;;
+ *-*-netbsd*)
+ ;;
+ *-*-*bsd*)
+ ;;
+ *)
+ ;;
+esac
+
+
+##
+## Header checking
+##
+AC_HEADER_STDC
+
+# More header checking
+#
+AC_CHECK_HEADERS(unistd.h assert.h time.h fcntl.h)
+AC_CHECK_HEADERS(sys/types.h sys/times.h sys/time.h sys/resource.h)
+
+# Check for big-endian machines
+AC_C_BIGENDIAN
+
##
## Compiler and compiler flag checks
##
-# 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
-])
+# Disable all compiler optimizations
+AC_MSG_CHECKING(whether to enable compiler optimizations)
+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)
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)
# 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 -O2, SILC_ADD_CFLAGS(-g3 -O, SILC_ADD_CFLAGS(-O)))
+ SILC_ADD_CFLAGS(-g3)
;;
*)
SILC_ADD_CFLAGS(-g)
- SILC_ADD_CFLAGS(-O2, SILC_ADD_CFLAGS(-O))
;;
esac
- # Intel C++ Compiler needs -restrict
+ # Intel C++ Compiler flags
if test "x$CC" = "xicc"; then
SILC_ADD_CFLAGS(-restrict)
+ SILC_ADD_CFLAGS(-finline-functions)
+
+ # Don't define __GNUC__ except for system includes
+ SILC_ADD_CFLAGS(-gcc-sys)
+ 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.
-#
FIX_SHA1='#'
if test "$GCC" -a "$host_cpu" = "sparc64"; then
AC_MSG_CHECKING(whether to enable GCC 2.x workaround for SHA1)
)
fi
AC_SUBST(FIX_SHA1)
-#endif SILC_DIST_COMPILER
##
-## Installation
+## Function and libary checking
+##
+AC_CHECK_FUNCS(times clock time)
+AC_CHECK_FUNCS(getpid getgid getsid getpgid getpgrp getuid getrusage setsid)
+
+cryptover=`echo $VERSION | sed 's/\./ /g'`
+maj=0
+min=0
+bld=0
+for v in $cryptover
+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
+__CRYPTO_PACKAGE_VERSION="#define __SILC_CRYPTO_VERSION SILC_VERSION($maj,$min,$bld)"
+
+
+##
+## Enable/disable checking
##
-# Default installation destination
+#ifdef SILC_DIST_INPLACE
#
-#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"
-fi
-
-#ifndef SILC_DIST_AUTODIST
-# etc directory
+# Profiling options (never delivered to distributions)
#
-if test "x$sysconfdir" != 'x${prefix}/etc'; then
- ETCDIR="$sysconfdir"
-else
- ETCDIR="$silc_prefix/etc"
-fi
+AC_MSG_CHECKING(whether to enable gprof)
+AC_ARG_ENABLE(gprof,
+ [ --enable-gprof enable gprof profiling],
+ [
+ case "${enableval}" in
+ yes)
+ AC_MSG_RESULT(yes)
+ SILC_ADD_CFLAGS(-pg)
+ LIBS="$LIBS -pg"
+ ;;
+ *)
+ AC_MSG_RESULT(no)
+ ;;
+ esac
+ ],
+ [
+ AC_MSG_RESULT(no)
+ ])
-AC_ARG_WITH(etcdir,
- [[ --with-etcdir=DIR directory for system files [/etc/silc]]],
+AC_MSG_CHECKING(whether to enable gcov)
+AC_ARG_ENABLE(gcov,
+ [ --enable-gcov enable gcov],
[
- case "$withval" in
- no|yes)
+ case "${enableval}" in
+ yes)
+ AC_MSG_RESULT(yes)
+ SILC_ADD_CFLAGS(-fprofile-arcs)
+ LIBS="$LIBS -lgcov"
;;
*)
- ETCDIR="$withval"
+ AC_MSG_RESULT(no)
;;
esac
+ ],
+ [
+ AC_MSG_RESULT(no)
])
-AC_SUBST(ETCDIR)
-AC_DEFINE_UNQUOTED([SILC_ETCDIR], "$ETCDIR", [SILC_ETCDIR])
+#endif SILC_DIST_INPLACE
-# doc directory
-#
-DOCDIR="$silc_prefix/doc"
-AC_ARG_WITH(docdir,
- [[ --with-docdir=DIR directory for SILC documentation [PREFIX/doc]]],
+# Debug checking
+AC_MSG_CHECKING(whether to enable debugging)
+summary_debug="no"
+AC_ARG_ENABLE(debug,
+ [ --enable-debug enable debugging],
[
- case "$withval" in
- no|yes)
+ case "${enableval}" in
+ yes)
+ AC_MSG_RESULT(yes)
+ summary_debug="yes"
;;
*)
- DOCDIR="$withval"
+ AC_MSG_RESULT(no)
;;
esac
+ ],
+ [
+ AC_MSG_RESULT(no)
])
-AC_SUBST(DOCDIR)
-AC_DEFINE_UNQUOTED([SILC_DOCDIR], "$DOCDIR", [SILC_DOCDIR])
-#endif SILC_DIST_AUTODIST
-#ifdef SILC_DIST_COMPILER
+# Disable all assembler optimizations
+AC_MSG_CHECKING(whether to enable assembler optimizations)
+AC_ARG_ENABLE(asm,
+ [ --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)
+
##
## With/without checkings
##
-#
-# SILC library checking
-compile_libs=true
LIBSUBDIR=lib
-
-#ifndef SILC_DIST_TOOLKIT
-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"])
-
-if test -n "$with_silc_includes" || test -n "$with_silc_libs"; then
-
+LDFLAGS="-L\$(silc_top_srcdir)/lib $LDFLAGS"
+
+SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silccrypt"
+SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcasn1"
+SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcacc"
+SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcskr"
+SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcmath"
+#ifdef SILC_DIST_SSH
+SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcssh"
+#endif SILC_DIST_SSH
+#ifdef SILC_DIST_PGP
+SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcpgp"
+#endif SILC_DIST_PGP
+#ifdef SILC_DIST_PKIX
+SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcpkix"
+#endif SILC_DIST_PKIX
+
+# SILC Runtime Toolkit checking
+AC_ARG_WITH(srt-includes,
+ [ --with-srt-includes=DIR SILC Runtime Toolkit includes [search in DIR]],
+ [ac_srt_includes="$withval"], [ac_srt_includes="no"])
+AC_ARG_WITH(srt-libs,
+ [ --with-srt-libs=DIR SILC Runtime Toolkit libraries [search in DIR]],
+ [ac_srt_libs="$withval"], [ac_srt_libs="no"])
+
+if test -n "$with_srt_includes" || test -n "$with_srt_libs"; then
# Manually provided libs
- if test "$ac_silc_includes" != "no"; then
- compile_libs=false
- SILC_LIB_INCLUDES="-I$ac_silc_includes"
- LIBSUBDIR=
+ if test "$ac_srt_includes" != "no"; then
+ SILC_LIB_INCLUDES="-I$ac_srt_includes"
fi
- if test "$ac_silc_libs" != "no"; then
- compile_libs=false
- LIBSUBDIR=
- LIBS="$LIBS -L$ac_silc_libs"
+ if test "$ac_srt_libs" != "no"; then
+ LDFLAGS="-L$ac_srt_libs $LDFLAGS"
fi
# Check libs to link against
- f=`$EGREP __SILC_HAVE_PTHREAD $ac_silc_includes/silc.h`
+ f=`$EGREP __SILC_HAVE_PTHREAD $ac_srt_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, compile_libs=false, compile_libs=true)
-#ifdef SILC_DIST_CLIENTLIB
- PKG_CHECK_MODULES(SILCCLIENT, silcclient, 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="$LIBS $SILC_LIBS"
- CFLAGS="$CFLAGS $SILC_CFLAGS"
-#ifdef SILC_DIST_CLIENTLIB
- LIBS="$LIBS $SILCCLIENT_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
- fi
+ PKG_CHECK_MODULES(SRT, [srt >= 1.2])
+ LIBS="$SRT_LIBS $LIBS"
+ CFLAGS="$CFLAGS $SRT_CFLAGS"
fi
-#endif SILC_DIST_TOOLKIT
-
-AC_SUBST(LIBSUBDIR)
-
-# SOCKS4 support checking
-#
-SAVE_LIBS="$LIBS"
-SAVE_CFLAGS="$CFLAGS"
-SAVE_LDFLAGS="$LDFLAGS"
-AC_MSG_CHECKING(whether to support SOCKS4)
-AC_ARG_WITH(socks4,
- [[ --with-socks4[=DIR] with SOCKS4 support [search in DIR/lib and DIR/include]]],
- [
- case "$withval" in
- no)
- AC_MSG_RESULT(no)
- ;;
- *)
- AC_MSG_RESULT(yes)
- socks=4
-
- if test -d "$withval/include"; then
- CFLAGS="$CFLAGS -I$withval/include"
- fi
- if test -d "$withval/lib"; then
- LDFLAGS="$LDFLAGS -L$withval/lib"
- fi
-
- LIBS="-lsocks $LIBS"
- ;;
- esac
- AC_TRY_LINK([],
- [
- Rconnect();
- ], [],
- [
- AC_MSG_ERROR(Could not find SOCKS4 library.)
- LIBS="$SAVE_LIBS"
- CFLAGS="$SAVE_CFLAGS"
- LDFLAGS="$SAVE_LDFLAGS"
- ])
- ],
- AC_MSG_RESULT(no)
- )
-
-# SOCKS5 support checking
-#
-SAVE_LIBS="$LIBS"
-SAVE_CFLAGS="$CFLAGS"
-SAVE_LDFLAGS="$LDFLAGS"
-AC_MSG_CHECKING(whether to support SOCKS5)
-AC_ARG_WITH(socks5,
- [[ --with-socks5[=DIR] with SOCKS5 support [search in DIR/lib and DIR/include]]],
- [
- case "$withval" in
- no)
- AC_MSG_RESULT(no)
- ;;
- *)
- AC_MSG_RESULT(yes)
- socks=5
-
- if test -d "$withval/include"; then
- CFLAGS="$CFLAGS -I$withval/include"
- fi
- if test -d "$withval/lib"; then
- LDFLAGS="$LDFLAGS -L$withval/lib"
- fi
-
- LIBS="-lsocks5 $LIBS"
- ;;
- esac
-
- AC_TRY_LINK([],
- [
- SOCKSconnect();
- ], [],
- [
- AC_MSG_ERROR(Could not find SOCKS5 library.)
- LIBS="$SAVE_LIBS"
- CFLAGS="$SAVE_CFLAGS"
- LDFLAGS="$SAVE_LDFLAGS"
- ])
- ],
- AC_MSG_RESULT(no)
- )
-
-if test "x$socks" = "x4"; then
- AC_DEFINE([SOCKS], [], [Socks])
- CFLAGS="$CFLAGS -Dconnect=Rconnect -Dgetsockname=Rgetsockname -Dbind=Rbind -Daccept=Raccept -Dlisten=Rlisten -Dselect=Rselect"
-fi
-
-if test "x$socks" = "x5"; then
- AC_DEFINE([SOCKS], [], [Socks])
- AC_DEFINE([SOCKS5], [], [Socks5])
- AC_DEFINE([Rconnect], [SOCKSconnect], [Socks])
- AC_DEFINE([Rgetsockname], [SOCKSgetsockname], [Socks])
- AC_DEFINE([Rgetpeername], [SOCKSgetpeername], [Socks])
- AC_DEFINE([Rbind], [SOCKSbind], [Socks])
- AC_DEFINE([Raccept], [SOCKSaccept], [Socks])
- AC_DEFINE([Rlisten], [SOCKSlisten], [Socks])
- AC_DEFINE([Rselect], [SOCKSselect], [Socks])
- AC_DEFINE([Rrecvfrom], [SOCKSrecvfrom], [Socks])
- AC_DEFINE([Rsendto], [SOCKSsendto], [Socks])
- AC_DEFINE([Rrecv], [SOCKSrecv], [Socks])
- AC_DEFINE([Rsend], [SOCKSsend], [Socks])
- AC_DEFINE([Rread], [SOCKSread], [Socks])
- AC_DEFINE([Rwrite], [SOCKSwrite], [Socks])
- AC_DEFINE([Rrresvport], [SOCKSrresvport], [Socks])
- AC_DEFINE([Rshutdown], [SOCKSshutdown], [Socks])
- AC_DEFINE([Rlisten], [SOCKSlisten], [Socks])
- AC_DEFINE([Rclose], [SOCKSclose], [Socks])
- AC_DEFINE([Rdup], [SOCKSdup], [Socks])
- AC_DEFINE([Rdup2], [SOCKSdup2], [Socks])
- AC_DEFINE([Rfclose], [SOCKSfclose], [Socks])
- AC_DEFINE([Rgethostbyname], [SOCKSgethostbyname], [Socks])
-fi
-
-#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 default library in the
# source tree.
AC_DEFINE([SILC_MP_SILCMATH], [], [SILCMATH])
AC_MSG_RESULT(Using SILC Math as a MP library.)
fi
-#endif SILC_DIST_MATH
-# iconv support
-#
-check_iconv=true
-has_iconv=false
-SAVE_LIBS="$LIBS"
-SAVE_CFLAGS="$CFLAGS"
-SAVE_LDFLAGS="$LDFLAGS"
-SAVE_CPPFLAGS="$CPPFLAGS"
-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]]],
- [
- case "${withval}" in
- no)
- AC_MSG_RESULT(no)
- 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_MSG_RESULT(no)
- AC_CHECK_HEADERS(iconv.h,
- [
- AC_CHECK_FUNCS(iconv,
- [
- has_iconv=true
- check_iconv=false
- ])
- ])
- ])
-
-if test x$check_iconv = xtrue; then
- AC_MSG_RESULT(Searching for iconv...)
- # 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 <stdlib.h>
- #include <iconv.h>
- ],
- [
- iconv_t cd = iconv_open("", "");
- iconv(cd, NULL, NULL, NULL, NULL);
- iconv_close(cd);
- ],
- [
- echo "yes"
- AC_DEFINE([HAVE_ICONV], [], [Define if you have the iconv() function.])
- has_iconv=true
- check_iconv=false
- ],
- [
- echo "no"
- LIBS="$SAVE_LIBS"
- CFLAGS="$SAVE_CFLAGS"
- LDFLAGS="$SAVE_LDFLAGS"
- CPPFLAGS="$SAVE_CPPFLAGS"
- ])
- ])
-fi
-
-if test x$check_iconv = xtrue; then
- # search for iconv library..
- SAVE_LIBS="$LIBS"
- SAVE_CFLAGS="$CFLAGS"
- SAVE_LDFLAGS="$LDFLAGS"
- SAVE_CPPFLAGS="$CPPFLAGS"
-
- for dir in `echo "/usr/local /usr/pkg /usr/contrib"`; do
- if test x$has_iconv = xfalse; then
- AC_MSG_RESULT(searching in $dir...)
-
- 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 <stdlib.h>
- #include <iconv.h>
- ],
- [
- iconv_t cd = iconv_open("", "");
- iconv(cd, NULL, NULL, NULL, NULL);
- iconv_close(cd);
- ],
- [
- echo "yes"
- has_iconv=true
- AC_DEFINE([HAVE_ICONV], [], [Define if you have the iconv() function.])
- ],
- [
- echo "no"
- has_iconv=false
-
- LIBS="$SAVE_LIBS"
- CFLAGS="$SAVE_CFLAGS"
- LDFLAGS="$SAVE_LDFLAGS"
- CPPFLAGS="$SAVE_CPPFLAGS"
- ])
- ],
- [
- CFLAGS="$SAVE_CFLAGS"
- LDFLAGS="$SAVE_LDFLAGS"
- CPPFLAGS="$SAVE_CPPFLAGS"
- ])
- 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).
- #
- AC_CACHE_CHECK([whether this iconv is good enough], ac_iconv_good,
- AC_TRY_RUN(
- [
- #include <iconv.h>
- int main() {
- iconv_t cd;
- changequote(, )dnl
- char buf[4];
- changequote([, ])dnl
- char *ob;
- size_t obl;
- ob = buf, obl = sizeof(buf);
- return ((cd = iconv_open("UTF-8", "UTF-8")) != (iconv_t)(-1) &&
- (iconv(cd, 0, 0, &ob, &obl) ||
- !(ob == buf && obl == sizeof(buf)) ||
- iconv_close(cd)));
- }
- ],
- [
- ac_iconv_good=yes
- ],
- [
- ac_iconv_good=no
- ],
- [
- ac_iconv_good=yes
- ])
- )
-
- if test x$ac_iconv_good = xno; then
- AC_MSG_RESULT(Try using libiconv instead.)
- fi
-fi
-
-# POSIX threads support
-#
-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
- has_threads=false
- SAVE_LIBS="$LIBS"
- SAVE_CFLAGS="$CFLAGS"
- SAVE_LDFLAGS="$LDFLAGS"
- SAVE_CPPFLAGS="$CPPFLAGS"
-
- AC_MSG_RESULT(yes)
- AC_CHECK_HEADERS(pthread.h,
- [
- 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, LIBS="$SAVE_LIBS")
- ;;
- *)
- LIBS="$SAVE_LIBS"
- ;;
- esac
- ])
- ],
- [
- # search for pthread library..
- 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...)
-
- 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
-
- LIBS="$SAVE_LIBS"
- CFLAGS="$SAVE_CFLAGS"
- LDFLAGS="$SAVE_LDFLAGS"
- CPPFLAGS="$SAVE_CPPFLAGS"
- ])
- ],
- [
- CFLAGS="$SAVE_CFLAGS"
- LDFLAGS="$SAVE_LDFLAGS"
- CPPFLAGS="$SAVE_CPPFLAGS"
- ])
- fi
- done
- ])
-else
- AC_MSG_RESULT(no)
- has_threads=false
-fi
-
-__SILC_HAVE_PTHREAD=""
-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], [], [HAVE_PTHREAD])
- AC_DEFINE([SILC_THREADS], [], [HAVE_THREAD])
- __SILC_HAVE_PTHREAD="#define __SILC_HAVE_PTHREAD 1"
-fi
-
-# Native WIN32 compilation under cygwin
-#
+##
+## Native WIN32 compilation under cygwin
+##
AC_MSG_CHECKING(whether to compile native WIN32 code)
AC_ARG_WITH(win32,
[ --with-win32 compile native WIN32 (MinGW) code (-mno-cygwin)],
],
[
AC_MSG_RESULT(no)
+ win32_support=false
])
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)
-
-#ifdef SILC_DIST_TOOLKIT
-# --with-irssi
-#
-without_irssi=true
-AC_MSG_CHECKING(whether to compile Irssi SILC Client)
-AC_ARG_WITH(irssi,
- [ --with-irssi compile with Irssi SILC Client],
- [
- AC_MSG_RESULT(yes)
- without_irssi=false
- ],
- [
- AC_MSG_RESULT(no)
- without_irssi=true
- ])
-AM_CONDITIONAL(with_irssi, test xwithout_irssi = xfalse)
-
-# --with-silcd
-#
-without_silcd=true
-AC_MSG_CHECKING(whether to compile SILC Server)
-AC_ARG_WITH(silcd,
- [ --with-silcd compile with SILC Server],
- [
- AC_MSG_RESULT(yes)
- without_silcd=false
- ],
- [
- AC_MSG_RESULT(no)
- without_silcd=true
- ])
-#endif SILC_DIST_TOOLKIT
-#ifdef SILC_DIST_INPLACE
-without_irssi=false
-without_silcd=false
-#endif SILC_DIST_INPLACE
-
-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)
- ])
-
-AC_SUBST(ETCDIR)
-AC_DEFINE_UNQUOTED([SILC_ETCDIR], "$ETCDIR", [SILC_ETCDIR])
-#endif SILC_DIST_COMPILER
##
-## Misc
+## Include configure fragments
##
+AD_INCLUDE_CONFIGURE
-# Make enable-shared aware
-AM_CONDITIONAL(SILC_ENABLE_SHARED, test "$enable_shared" = yes)
-
-SILC_TOP_SRCDIR=`pwd`
-# Included configure scripts
-AD_INCLUDE_CONFIGURE
+##
+## Outputs and substitutions
+##
-#ifdef SILC_DIST_COMPILER
-#
-# 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)
+AC_SUBST(__CRYPTO_PACKAGE_VERSION)
-#
-# 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)
+# Native Symbian OS support (disabled by default)
+AM_CONDITIONAL(SILC_SYMBIAN, test xfalse = xtrue)
+
+# Make enable-shared aware
+AM_CONDITIONAL(SILC_ENABLE_SHARED, test "$enable_shared" = yes)
+
+ETCDIR=`eval echo $sysconfdir`;ETCDIR=`eval echo $ETCDIR`
+AC_SUBST(ETCDIR)
+AC_DEFINE_UNQUOTED([SILC_ETCDIR], "$ETCDIR", [SILC_ETCDIR])
+
+DOCDIR=`eval echo $docdir`;DOCDIR=`eval echo $DOCDIR`
+AC_SUBST(DOCDIR)
+AC_DEFINE_UNQUOTED([SILC_DOCDIR], "$DOCDIR", [SILC_DOCDIR])
INCLUDE_DEFINES_INT="include \$(top_srcdir)/Makefile.defines_int"
AC_SUBST(INCLUDE_DEFINES_INT)
-#endif SILC_DIST_COMPILER
#
# Makefile outputs
#
AC_CONFIG_FILES(
Makefile
-#ifdef SILC_DIST_DOC
doc/Makefile
-#endif SILC_DIST_DOC
-#ifdef SILC_DIST_COMPILER
Makefile.defines
Makefile.defines_int
includes/Makefile
-includes/silcversion.h
-includes/silc.h
-#endif SILC_DIST_COMPILER
-#ifdef SILC_DIST_APPS
apps/Makefile
-#endif SILC_DIST_APPS
+win32/Makefile
)
-#ifdef SILC_DIST_TOOLKIT
AC_CONFIG_FILES(
-win32/Makefile
-win32/libsilc/Makefile
-win32/libsilcclient/Makefile
-tutorial/Makefile
-tutorial/Makefile.defines
-tutorial/Makefile.defines_int
+lib/Makefile
+lib/silccrypt/Makefile
+lib/silccrypt/silccrypto.h
+lib/silccrypt/tests/Makefile
+lib/silcasn1/Makefile
+lib/silcasn1/tests/Makefile
+lib/silcacc/Makefile
+lib/silcacc/tests/Makefile
+#ifdef SILC_DIST_SSH
+lib/silcssh/Makefile
+lib/silcssh/tests/Makefile
+#endif SILC_DIST_SSH
+#ifdef SILC_DIST_PGP
+lib/silcpgp/Makefile
+lib/silcpgp/tests/Makefile
+#endif SILC_DIST_PGP
+#ifdef SILC_DIST_PKIX
+lib/silcpkix/Makefile
+lib/silcpkix/tests/Makefile
+#endif SILC_DIST_PKIX
+lib/silcskr/Makefile
+lib/silcskr/tests/Makefile
+lib/silcmath/Makefile
+lib/silcmath/tests/Makefile
+lib/sct.pc
)
-#endif SILC_DIST_TOOLKIT
AC_OUTPUT
-#ifdef SILC_DIST_COMPILER
+##
+## Summary 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 "$PACKAGE Configuration Summary:"
-echo "---------------------------"
+echo "SILC Crypto Toolkit configuration summary:"
+echo "-----------------------------------------"
echo " Target host ...................: $target"
echo " Compiler ......................: $CC"
echo " CFLAGS ........................: $CFLAGS"
echo " etc directory .................: $ETCDIR"
echo " man directory .................: $s_mandir"
echo " doc directory .................: $DOCDIR"
-#ifdef SILC_DIST_SIM
-echo " SIM directory .................: $MODULESDIR"
-#endif SILC_DIST_SIM
-#ifdef SILC_DIST_INCLUDES
echo " include directory .............: $s_includedir"
-#endif SILC_DIST_INCLUDES
echo ""
-#ifdef SILC_DIST_TOOLKIT
-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
-echo " Compile SILC Server ...........: $silcd"
-#endif SILC_DIST_SERVER
-
-#ifdef SILC_DIST_SIM
-if test x$sim_support = xfalse; then
- sim_support="no"
-else
- sim_support="yes"
-fi
-echo " SIM support ...................: $sim_support"
-#endif SILC_DIST_SIM
-
-echo " IPv6 support ..................: $summary_ipv6"
-
-if test x$has_iconv = xfalse; then
- iconv_support="no"
-else
- iconv_support="yes"
+if test x$mp_gmp = xtrue; then
+ echo " Arithmetic library ............: GMP"
fi
-echo " Iconv support .................: $iconv_support"
if test x$want_asm = xfalse; then
summary_asm="no"
fi
echo " Assembler optimizations .......: $summary_asm"
-#ifdef SILC_DIST_MATH
-if test x$mp_gmp = xtrue; then
- echo " Arithmetic library ............: GMP"
+if test x$want_cc_optimizations = xfalse; then
+ summary_cc_opt="no"
+else
+ summary_cc_opt="yes"
+fi
+echo " Compiler optimizations ........: $summary_cc_opt"
+
+if test x$want_cpu_optimizations = xfalse; then
+ summary_cpu_opt="no"
+else
+ summary_cpu_opt="yes"
fi
-#endif SILC_DIST_MATH
+echo " CPU feature optimizations .....: $summary_cpu_opt"
threads="no"
if test x$has_threads = xtrue; then
echo " Debugging enabled .............: $summary_debug"
echo ""
echo "Compile the sources with 'make' or 'gmake' command."
-#endif SILC_DIST_COMPILER