#
# Author: Pekka Riikonen <priikone@silcnet.org>
#
-# Copyright (C) 2005 Pekka Riikonen
+# Copyright (C) 2005, 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
if test x$compile_libs = xtrue; then
+AM_PROG_AS
+
##
## Will compile included libs
##
# SILC Library directories
SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/contrib"
SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silccore"
+#ifdef SILC_DIST_CRYPTO
SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silccrypt"
+#endif SILC_DIST_CRYPTO
#ifdef SILC_DIST_MATH
SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcmath"
#endif SILC_DIST_MATH
SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcutil"
+SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcapputil"
SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcske"
#ifdef SILC_DIST_SFTP
SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcsftp"
#ifdef SILC_DIST_SIM
SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcsim"
#endif SILC_DIST_SIM
-#ifdef SILC_DIST_CLIENT
+#ifdef SILC_DIST_CLIENTLIB
SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcclient"
-#endif SILC_DIST_CLIENT
+#endif SILC_DIST_CLIENTLIB
#ifdef SILC_DIST_ASN1
SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcasn1"
#endif SILC_DIST_ASN1
+#ifdef SILC_DIST_SKR
+SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcskr"
+#endif SILC_DIST_SKR
+#ifdef SILC_DIST_SERVERLIB
+SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcserver"
+#endif SILC_DIST_SERVERLIB
+#ifdef SILC_DIST_HTTP
+SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silchttp"
+#endif SILC_DIST_HTTP
+#ifdef SILC_DIST_VCARD
+SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcvcard"
+#endif SILC_DIST_VCARD
+#ifdef SILC_DIST_ACC
+SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcacc"
+#endif SILC_DIST_ACC
+#ifdef SILC_DIST_PGP
+SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcpgp"
+#endif SILC_DIST_PGP
+#ifdef SILC_DIST_SSH
+SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcssh"
+#endif SILC_DIST_SSH
##
## Library versioning.
# - If functions were added, increment [LIB]_AGE
# - If functions were removed, set [LIB]_AGE to 0
#
-# where [LIB] is LIBSILC and LIBSILCCLIENT, and where "functions" means
-# functions public interfaces.
+# where [LIB] is LIBSILC, LIBSILCCLIENT or LIBSILCSERVER, and where
+# "functions" means functions public interfaces (API).
#
# The LIB_BASE_VERSION defines the SILC software major.minor version and
# it is increment only when these version numbers actually change.
# Base version for libraries. Do not change this unless SILC version
# changes too.
-LIB_BASE_VERSION=1.0
+LIB_BASE_VERSION=1.1
# libsilc versions
-LIBSILC_CURRENT=5 # prev = 4
+LIBSILC_CURRENT=2 # prev = 1
LIBSILC_REVISION=0 # prev = 0
-LIBSILC_AGE=3 # prev = 3
+LIBSILC_AGE=0 # prev = 0
# libsilcclient versions
-LIBSILCCLIENT_CURRENT=4 # prev = 4
+LIBSILCCLIENT_CURRENT=2 # prev = 1
LIBSILCCLIENT_REVISION=0 # prev = 0
-LIBSILCCLIENT_AGE=3 # prev = 3
+LIBSILCCLIENT_AGE=0 # prev = 0
+
+# libsilcserver versions
+LIBSILCSERVER_CURRENT=1 # prev = 0
+LIBSILCSERVER_REVISION=0 # prev = 0
+LIBSILCSERVER_AGE=0 # prev = 0
# Substitute the version numbers
AC_SUBST(LIB_BASE_VERSION)
AC_SUBST(LIBSILCCLIENT_CURRENT)
AC_SUBST(LIBSILCCLIENT_REVISION)
AC_SUBST(LIBSILCCLIENT_AGE)
+AC_SUBST(LIBSILCSERVER_CURRENT)
+AC_SUBST(LIBSILCSERVER_REVISION)
+AC_SUBST(LIBSILCSERVER_AGE)
+
+# Check for big-endian machines
+AC_C_BIGENDIAN
+
+# Check for epoll_wait and verify that epoll_create works
+AC_CHECK_FUNC(epoll_wait,
+ [
+ AC_RUN_IFELSE(
+ [
+ #include <sys/epoll.h>
+ int main()
+ {
+ int ret = epoll_create(5);
+ if (ret < 0)
+ return 1;
+ close(ret);
+ return 0;
+ }
+ ],
+ [
+ AC_DEFINE([HAVE_EPOLL_WAIT], [1], [HAVE_EPOLL_WAIT])
+ ],
+ )
+ ])
+
+#
+# Memory alignment. User can specify what alignment memory allocation and
+# SilcStack allocation use. Default is system default alignemnt.
+#
+AC_ARG_WITH(alignment,
+ [ --with-alignment=NUMBER Memory alignment in bytes],
+ [
+ AC_DEFINE_UNQUOTED([SILC_ALIGNMENT], [$withval], [SILC_ALIGNMENT])
+ AC_MSG_RESULT(Memory allocation alignment is $withval bytes)
+ ],
+ [
+ AC_DEFINE([SILC_ALIGNMENT], SILC_SIZEOF_VOID_P, [SILC_ALIGNMENT])
+ ])
+
+MODULESDIR="$silc_prefix/lib/modules"
#ifdef SILC_DIST_SIM
# SIM modules directory
#
-MODULESDIR="$silc_prefix/modules"
AC_ARG_WITH(simdir,
[[ --with-simdir=DIR directory for SIM modules [PREFIX/modules]]],
[
;;
esac
])
-AC_SUBST(MODULESDIR)
AC_DEFINE_UNQUOTED([SILC_MODULESDIR], "$MODULESDIR", [SILC_MODULESDIR])
#endif SILC_DIST_SIM
+AC_SUBST(MODULESDIR)
#ifdef SILC_DIST_TOOLKIT
# Stack trace checking
)
#endif SILC_DIST_TOOLKIT
+#ifdef SILC_DIST_INPLACE
+#
+# Profiling options (never delivered to distributions)
+#
+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_MSG_CHECKING(whether to enable gcov)
+AC_ARG_ENABLE(gcov,
+ [ --enable-gcov enable gcov],
+ [
+ case "${enableval}" in
+ yes)
+ AC_MSG_RESULT(yes)
+ SILC_ADD_CFLAGS(-fprofile-arcs)
+ LIBS="$LIBS -lgcov"
+ ;;
+ *)
+ AC_MSG_RESULT(no)
+ ;;
+ esac
+ ],
+ [
+ AC_MSG_RESULT(no)
+ ])
+#endif SILC_DIST_INPLACE
+
#
# Makefile outputs
#
lib/Makefile
lib/contrib/Makefile
lib/silccore/Makefile
-lib/silccrypt/Makefile
#ifdef SILC_DIST_SIM
lib/silcsim/Makefile
#endif SILC_DIST_SIM
lib/silcske/Makefile
lib/silcutil/Makefile
+#ifdef SILC_DIST_TOOLKIT
lib/silcutil/unix/Makefile
lib/silcutil/win32/Makefile
-lib/silcutil/beos/Makefile
-lib/silcutil/os2/Makefile
-lib/silcutil/epoc/Makefile
+lib/silcutil/symbian/Makefile
+#else !SILC_DIST_TOOLKIT
+#ifdef SILC_DIST_CLIENT
+lib/silcutil/unix/Makefile
+lib/silcutil/win32/Makefile
+#else !SILC_DIST_CLIENT
+#ifdef SILC_DIST_SERVER
+lib/silcutil/unix/Makefile
+#endif SILC_DIST_SERVER
+#endif SILC_DIST_CLIENT
+#endif SILC_DIST_TOOLKIT
+lib/silcapputil/Makefile
#ifdef SILC_DIST_SFTP
lib/silcsftp/Makefile
#endif SILC_DIST_SFTP
#ifdef SILC_DIST_INPLACE
lib/silcutil/tests/Makefile
-lib/silccrypt/tests/Makefile
lib/silccore/tests/Makefile
lib/silcsftp/tests/Makefile
#endif SILC_DIST_INPLACE
AC_CONFIG_FILES(
lib/silc.pc
lib/silcclient.pc
+lib/silcserver.pc
)
#endif SILC_DIST_TOOLKIT
#ifdef SILC_DIST_CLIENTLIB
-AC_CONFIG_FILES(lib/silcclient/Makefile)
+AC_CONFIG_FILES(
+lib/silcclient/Makefile
+lib/silcclient/tests/Makefile
+)
#endif SILC_DIST_CLIENTLIB
+#ifdef SILC_DIST_SERVERLIB
+AC_CONFIG_FILES(
+lib/silcserver/Makefile
+lib/silcserver/tests/Makefile
+)
+#endif SILC_DIST_SERVERLIB
+
#ifdef SILC_DIST_ASN1
AC_CONFIG_FILES(
lib/silcasn1/Makefile
)
#endif SILC_DIST_ASN1
+#ifdef SILC_DIST_SKR
+AC_CONFIG_FILES(
+lib/silcskr/Makefile
+#ifdef SILC_DIST_INPLACE
+lib/silcskr/tests/Makefile
+#endif SILC_DIST_INPLACE
+)
+#endif SILC_DIST_SKR
+
+#ifdef SILC_DIST_HTTP
+AC_CONFIG_FILES(
+lib/silchttp/Makefile
+#ifdef SILC_DIST_INPLACE
+lib/silchttp/tests/Makefile
+#endif SILC_DIST_INPLACE
+)
+#endif SILC_DIST_HTTP
+
+#ifdef SILC_DIST_VCARD
+AC_CONFIG_FILES(
+lib/silcvcard/Makefile
+)
+#endif SILC_DIST_VCARD
+
+#ifdef SILC_DIST_ACC
+AC_CONFIG_FILES(
+lib/silcacc/Makefile
+#ifdef SILC_DIST_INPLACE
+lib/silcacc/tests/Makefile
+#endif SILC_DIST_INPLACE
+)
+#endif SILC_DIST_ACC
+
+#ifdef SILC_DIST_PGP
+AC_CONFIG_FILES(
+lib/silcpgp/Makefile
+#ifdef SILC_DIST_INPLACE
+lib/silcpgp/tests/Makefile
+#endif SILC_DIST_INPLACE
+)
+#endif SILC_DIST_PGP
+
+#ifdef SILC_DIST_SSH
+AC_CONFIG_FILES(
+lib/silcssh/Makefile
+#ifdef SILC_DIST_INPLACE
+lib/silcssh/tests/Makefile
+#endif SILC_DIST_INPLACE
+)
+#endif SILC_DIST_SSH
+
fi # compile_libs
#endif SILC_DIST_LIB