Fixed command calling crash
[silc.git] / lib / configure.ad
index a0383356484c67fb7ab8095dd555cf997cafa7e0..9ff9f49a75dfa90831a0085afc3ed1bfb8bdaf94 100644 (file)
@@ -4,7 +4,7 @@
 #
 #  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
@@ -26,11 +26,14 @@ AC_MSG_NOTICE([Configuring SILC libraries])
 # 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"
@@ -38,9 +41,24 @@ 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
 
 ##
 ## Library versioning.
@@ -53,8 +71,8 @@ SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcclient"
 #  - 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.
@@ -62,17 +80,22 @@ SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcclient"
 
 # 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_REVISION=0             # prev = 0
-LIBSILC_AGE=3                  # prev = 3
+LIBSILC_CURRENT=3              # prev = 2
+LIBSILC_REVISION=0             # prev = 1
+LIBSILC_AGE=1                  # prev = 1
 
 # libsilcclient versions
-LIBSILCCLIENT_CURRENT=4                # prev = 4
-LIBSILCCLIENT_REVISION=0       # prev = 0
-LIBSILCCLIENT_AGE=3            # prev = 3
+LIBSILCCLIENT_CURRENT=2                # prev = 1
+LIBSILCCLIENT_REVISION=1       # prev = 1
+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)
@@ -82,11 +105,38 @@ AC_SUBST(LIBSILC_AGE)
 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])
+      ],
+    )
+  ])
 
+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]]],
   [
@@ -98,9 +148,9 @@ AC_ARG_WITH(simdir,
         ;;
     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
@@ -123,6 +173,49 @@ AC_ARG_ENABLE(stack-trace,
   )
 #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
 #
@@ -130,23 +223,31 @@ AC_CONFIG_FILES(
 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
@@ -156,13 +257,57 @@ lib/silcsftp/tests/Makefile
 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
+#ifdef SILC_DIST_INPLACE
+lib/silcasn1/tests/Makefile
+#endif SILC_DIST_INPLACE
+)
+#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
+
 fi     # compile_libs
 
 #endif SILC_DIST_LIB