#ifdef SILC_DIST_LIB # # lib/configure.ad # # Author: 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 # the Free Software Foundation; version 2 of the License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # if test x$compile_libs = xtrue; then AM_PROG_AS ## ## Will compile included libs ## 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" #endif SILC_DIST_SFTP #ifdef SILC_DIST_SIM SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcsim" #endif SILC_DIST_SIM #ifdef SILC_DIST_CLIENTLIB SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcclient" #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. ## # Do the releases and library versioning according to following rules: # # - If any code has changed in library, increment [LIB]_REVISION # - If functions were added, removed or changed, set [LIB]_REVISION to 0 # - If functions were added, removed or changed, increment [LIB]_CURRENT # - If functions were added, increment [LIB]_AGE # - If functions were removed, set [LIB]_AGE to 0 # # 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.1 # libsilc versions LIBSILC_CURRENT=2 # prev = 1 LIBSILC_REVISION=0 # prev = 0 LIBSILC_AGE=0 # prev = 0 # libsilcclient versions LIBSILCCLIENT_CURRENT=2 # prev = 1 LIBSILCCLIENT_REVISION=0 # prev = 0 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(LIBSILC_CURRENT) AC_SUBST(LIBSILC_REVISION) 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 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 # AC_ARG_WITH(simdir, [[ --with-simdir=DIR directory for SIM modules [PREFIX/modules]]], [ case "$withval" in no|yes) ;; *) MODULESDIR="$withval" ;; esac ]) AC_DEFINE_UNQUOTED([SILC_MODULESDIR], "$MODULESDIR", [SILC_MODULESDIR]) #endif SILC_DIST_SIM AC_SUBST(MODULESDIR) #ifdef SILC_DIST_TOOLKIT # Stack trace checking # AC_MSG_CHECKING(whether to enable stack tracing) AC_ARG_ENABLE(stack-trace, [ --enable-stack-trace enable memory stack trace], [ case "${enableval}" in yes) AC_MSG_RESULT(yes) AC_DEFINE([SILC_STACKTRACE], [], [SILC_STACKTRACE]) ;; *) AC_MSG_RESULT(no) ;; esac ], AC_MSG_RESULT(no) ) #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 # AC_CONFIG_FILES( lib/Makefile lib/contrib/Makefile lib/silccore/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/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/silccore/tests/Makefile lib/silcsftp/tests/Makefile #endif SILC_DIST_INPLACE ) #ifdef SILC_DIST_TOOLKIT 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 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 #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