5 # Author: Pekka Riikonen <priikone@silcnet.org>
7 # Copyright (C) 2005, 2007 Pekka Riikonen
9 # This program is free software; you can redistribute it and/or modify
10 # it under the terms of the GNU General Public License as published by
11 # the Free Software Foundation; version 2 of the License.
13 # This program is distributed in the hope that it will be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 # GNU General Public License for more details.
19 if test x$compile_libs = xtrue; then
24 ## Will compile included libs
26 AC_MSG_NOTICE([Configuring SILC libraries])
28 # SILC Library directories
29 SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/contrib"
30 SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silccore"
31 #ifdef SILC_DIST_CRYPTO
32 SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silccrypt"
33 #endif SILC_DIST_CRYPTO
35 SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcmath"
37 SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcutil"
38 SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcapputil"
39 SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcske"
41 SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcsftp"
44 SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcsim"
46 #ifdef SILC_DIST_CLIENTLIB
47 SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcclient"
48 #endif SILC_DIST_CLIENTLIB
50 SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcasn1"
53 SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcskr"
55 #ifdef SILC_DIST_SERVERLIB
56 SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcserver"
57 #endif SILC_DIST_SERVERLIB
59 SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silchttp"
61 #ifdef SILC_DIST_VCARD
62 SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcvcard"
63 #endif SILC_DIST_VCARD
65 SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcacc"
68 SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcpgp"
71 SILC_LIB_INCLUDES="$SILC_LIB_INCLUDES -I$SILC_TOP_SRCDIR/lib/silcssh"
75 ## Library versioning.
77 # Do the releases and library versioning according to following rules:
79 # - If any code has changed in library, increment [LIB]_REVISION
80 # - If functions were added, removed or changed, set [LIB]_REVISION to 0
81 # - If functions were added, removed or changed, increment [LIB]_CURRENT
82 # - If functions were added, increment [LIB]_AGE
83 # - If functions were removed, set [LIB]_AGE to 0
85 # where [LIB] is LIBSILC, LIBSILCCLIENT or LIBSILCSERVER, and where
86 # "functions" means functions public interfaces (API).
88 # The LIB_BASE_VERSION defines the SILC software major.minor version and
89 # it is increment only when these version numbers actually change.
92 # Base version for libraries. Do not change this unless SILC version
97 LIBSILC_CURRENT=2 # prev = 1
98 LIBSILC_REVISION=0 # prev = 0
99 LIBSILC_AGE=0 # prev = 0
101 # libsilcclient versions
102 LIBSILCCLIENT_CURRENT=2 # prev = 1
103 LIBSILCCLIENT_REVISION=0 # prev = 0
104 LIBSILCCLIENT_AGE=0 # prev = 0
106 # libsilcserver versions
107 LIBSILCSERVER_CURRENT=1 # prev = 0
108 LIBSILCSERVER_REVISION=0 # prev = 0
109 LIBSILCSERVER_AGE=0 # prev = 0
111 # Substitute the version numbers
112 AC_SUBST(LIB_BASE_VERSION)
113 AC_SUBST(LIBSILC_CURRENT)
114 AC_SUBST(LIBSILC_REVISION)
115 AC_SUBST(LIBSILC_AGE)
116 AC_SUBST(LIBSILCCLIENT_CURRENT)
117 AC_SUBST(LIBSILCCLIENT_REVISION)
118 AC_SUBST(LIBSILCCLIENT_AGE)
119 AC_SUBST(LIBSILCSERVER_CURRENT)
120 AC_SUBST(LIBSILCSERVER_REVISION)
121 AC_SUBST(LIBSILCSERVER_AGE)
123 # Check for big-endian machines
126 # Check for epoll_wait and verify that epoll_create works
127 AC_CHECK_FUNC(epoll_wait,
131 #include <sys/epoll.h>
134 int ret = epoll_create(5);
142 AC_DEFINE([HAVE_EPOLL_WAIT], [1], [HAVE_EPOLL_WAIT])
148 # Memory alignment. User can specify what alignment memory allocation and
149 # SilcStack allocation use. Default is system default alignemnt.
151 AC_ARG_WITH(alignment,
152 [ --with-alignment=NUMBER Memory alignment in bytes],
154 AC_DEFINE_UNQUOTED([SILC_ALIGNMENT], [$withval], [SILC_ALIGNMENT])
155 AC_MSG_RESULT(Memory allocation alignment is $withval bytes)
158 AC_DEFINE([SILC_ALIGNMENT], SILC_SIZEOF_VOID_P, [SILC_ALIGNMENT])
162 MODULESDIR="$silc_prefix/lib/modules"
164 # SIM modules directory
167 [[ --with-simdir=DIR directory for SIM modules [PREFIX/modules]]],
173 MODULESDIR="$withval"
177 AC_DEFINE_UNQUOTED([SILC_MODULESDIR], "$MODULESDIR", [SILC_MODULESDIR])
181 #ifdef SILC_DIST_TOOLKIT
182 # Stack trace checking
184 AC_MSG_CHECKING(whether to enable stack tracing)
185 AC_ARG_ENABLE(stack-trace,
186 [ --enable-stack-trace enable memory stack trace],
188 case "${enableval}" in
191 AC_DEFINE([SILC_STACKTRACE], [], [SILC_STACKTRACE])
200 #endif SILC_DIST_TOOLKIT
202 #ifdef SILC_DIST_INPLACE
204 # Profiling options (never delivered to distributions)
206 AC_MSG_CHECKING(whether to enable gprof)
208 [ --enable-gprof enable gprof profiling],
210 case "${enableval}" in
225 AC_MSG_CHECKING(whether to enable gcov)
227 [ --enable-gcov enable gcov],
229 case "${enableval}" in
232 SILC_ADD_CFLAGS(-fprofile-arcs)
243 #endif SILC_DIST_INPLACE
251 lib/silccore/Makefile
256 lib/silcutil/Makefile
257 #ifdef SILC_DIST_TOOLKIT
258 lib/silcutil/unix/Makefile
259 lib/silcutil/win32/Makefile
260 lib/silcutil/symbian/Makefile
261 #else !SILC_DIST_TOOLKIT
262 #ifdef SILC_DIST_CLIENT
263 lib/silcutil/unix/Makefile
264 lib/silcutil/win32/Makefile
265 #else !SILC_DIST_CLIENT
266 #ifdef SILC_DIST_SERVER
267 lib/silcutil/unix/Makefile
268 #endif SILC_DIST_SERVER
269 #endif SILC_DIST_CLIENT
270 #endif SILC_DIST_TOOLKIT
271 lib/silcapputil/Makefile
272 #ifdef SILC_DIST_SFTP
273 lib/silcsftp/Makefile
274 #endif SILC_DIST_SFTP
275 #ifdef SILC_DIST_INPLACE
276 lib/silcutil/tests/Makefile
277 lib/silccore/tests/Makefile
278 lib/silcsftp/tests/Makefile
279 #endif SILC_DIST_INPLACE
282 #ifdef SILC_DIST_TOOLKIT
288 #endif SILC_DIST_TOOLKIT
290 #ifdef SILC_DIST_CLIENTLIB
292 lib/silcclient/Makefile
293 lib/silcclient/tests/Makefile
295 #endif SILC_DIST_CLIENTLIB
297 #ifdef SILC_DIST_SERVERLIB
299 lib/silcserver/Makefile
300 lib/silcserver/tests/Makefile
302 #endif SILC_DIST_SERVERLIB
304 #ifdef SILC_DIST_ASN1
306 lib/silcasn1/Makefile
307 #ifdef SILC_DIST_INPLACE
308 lib/silcasn1/tests/Makefile
309 #endif SILC_DIST_INPLACE
311 #endif SILC_DIST_ASN1
316 #ifdef SILC_DIST_INPLACE
317 lib/silcskr/tests/Makefile
318 #endif SILC_DIST_INPLACE
322 #ifdef SILC_DIST_HTTP
324 lib/silchttp/Makefile
325 #ifdef SILC_DIST_INPLACE
326 lib/silchttp/tests/Makefile
327 #endif SILC_DIST_INPLACE
329 #endif SILC_DIST_HTTP
331 #ifdef SILC_DIST_VCARD
333 lib/silcvcard/Makefile
335 #endif SILC_DIST_VCARD
340 #ifdef SILC_DIST_INPLACE
341 lib/silcacc/tests/Makefile
342 #endif SILC_DIST_INPLACE
349 #ifdef SILC_DIST_INPLACE
350 lib/silcpgp/tests/Makefile
351 #endif SILC_DIST_INPLACE
358 #ifdef SILC_DIST_INPLACE
359 lib/silcssh/tests/Makefile
360 #endif SILC_DIST_INPLACE