Initial revision
[silc.git] / configure.in
1 #
2 #  configure.in
3 #
4 #  Author: Pekka Riikonen <priikone@poseidon.pspt.fi>
5 #
6 #  Copyright (C) 2000 Pekka Riikonen
7 #
8 #  This program is free software; you can redistribute it and/or modify
9 #  it under the terms of the GNU General Public License as published by
10 #  the Free Software Foundation; either version 2 of the License, or
11 #  (at your option) any later version.
12 #
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.
17 #
18
19 AC_INIT(includes/version.h)
20
21 # Compiler settings
22 CFLAGS="-Wall $CFLAGS"
23
24 #
25 # Put here any platform specific stuff
26 #
27 AC_CANONICAL_SYSTEM
28 case "$target" in
29   *-*-linux*|*-*-mklinux*)
30     CFLAGS="-D_GNU_SOURCE $CFLAGS"
31     ;;
32   *)
33     ;;
34 esac
35
36 AM_INIT_AUTOMAKE(silc, 28062000)
37 AC_PREREQ(2.3)
38 AM_CONFIG_HEADER(includes/silcdefs.h)
39
40 AC_PROG_CC
41 AC_C_INLINE
42 AC_C_CONST
43 AC_ARG_PROGRAM
44
45 AC_PROG_LN_S
46 AC_SUBST(LN_S)
47
48 # XXX
49 # Compiler flags
50 if test "$GCC"; then
51   CFLAGS="-finline-functions $CFLAGS"
52 else
53   # Currently GCC is only supported compiler
54   AC_MSG_ERROR(GCC is only supported compiler currently)
55 fi
56
57 # Program checking
58 AC_PROG_INSTALL
59 AC_PROG_RANLIB
60 AC_PROG_MAKE_SET
61
62 # Header checking
63 AC_HEADER_STDC
64 AC_HEADER_TIME
65 AC_HEADER_STAT
66
67 # More header checking
68 AC_CHECK_HEADERS(unistd.h string.h getopt.h errno.h fcntl.h assert.h)
69 AC_CHECK_HEADERS(sys/types.h sys/stat.h sys/time.h)
70 AC_CHECK_HEADERS(netinet/in.h netinet/tcp.h netdb.h)
71 AC_CHECK_HEADERS(pwd.h grp.h termcap.h)
72 AC_CHECK_HEADERS(ncurses.h signal.h ctype.h)
73 AC_CHECK_HEADERS(arpa/inet.h sys/mman.h)
74
75 # Data type checking
76 AC_TYPE_SIGNAL
77 AC_TYPE_SIZE_T
78 AC_TYPE_MODE_T
79 AC_TYPE_UID_T
80 AC_TYPE_PID_T
81
82 # Function checking
83 AC_CHECK_FUNCS(chmod stat fstat getenv putenv strerror ctime gettimeofday)
84 AC_CHECK_FUNCS(getpid getgid getsid getpgid getpgrp getuid)
85 AC_CHECK_FUNCS(strchr strstr strcpy strncpy memcpy memset memmove)
86 AC_CHECK_FUNCS(gethostname gethostbyname gethostbyaddr)
87 AC_CHECK_FUNCS(select socket listen bind shutdown close connect)
88 AC_CHECK_FUNCS(fcntl setsockopt)
89 AC_CHECK_FUNCS(getservbyname getservbyport)
90 AC_CHECK_FUNCS(getopt_long time)
91 AC_CHECK_FUNCS(mlock munlock)
92
93 # SIM support checking
94 # XXX These needs to be changed as more supported platforms appear.
95 # XXX This probably needs to be made platform dependant check.
96 AC_CHECKING(for SIM support)
97 AC_CHECK_HEADERS(dlfcn.h, 
98   AC_CHECK_LIB(dl, dlopen, 
99     AC_DEFINE(SILC_SIM) 
100     AC_MSG_RESULT(enabled SIM support)
101     LIBS="$LIBS -ldl",
102     AC_MSG_RESULT(no SIM support found)),
103   AC_MSG_RESULT(no SIM support found))
104
105 # Debug checking
106 AC_MSG_CHECKING(for enabled debugging)
107 AC_ARG_ENABLE(debug,
108 [  --enable-debug          Enable debugging (warning: it is heavy!)],
109 [ case "${enableval}" in
110   yes) 
111     AC_MSG_RESULT(yes)
112     AC_DEFINE(SILC_DEBUG)
113     CFLAGS="-O -g $CFLAGS"
114     ;;
115   *)
116     AC_MSG_RESULT(no)
117     CFLAGS="-O2 $CFLAGS"
118     ;;
119 esac ], CFLAGS="-O2 $CFLAGS"
120         AC_MSG_RESULT(no))
121
122 # XXX
123 #LIBS="$LIBS -lefence"
124
125 AC_ARG_WITH(silcd-config-file,
126 [  --with-silcd-config-file[=PATH]
127                           Use PATH as default configuration file in SILC
128                           server.],
129 [ AC_DEFINE_UNQUOTED(SILC_SERVER_CONFIG_FILE, "$withval") ])
130
131 # Other configure scripts
132 #AC_CONFIG_SUBDIRS(lib/zlib)
133 AC_CONFIG_SUBDIRS(lib/silcmath/gmp-3.0.1)
134
135 AC_OUTPUT( \
136 Makefile
137 doc/Makefile
138 includes/Makefile
139 lib/Makefile
140 lib/silccore/Makefile
141 lib/silccrypt/Makefile
142 lib/silcmath/Makefile
143 lib/silcsim/Makefile
144 lib/silcsim/modules/Makefile
145 lib/silcske/Makefile
146 silc/Makefile
147 silcd/Makefile)