chiark / gitweb /
server/admin.h: Consolidate address construction during resolution.
[tripe] / configure.ac
... / ...
CommitLineData
1dnl -*-autoconf-*-
2dnl
3dnl Configuration script for TrIPE
4dnl
5dnl (c) 2001 Straylight/Edgeware
6dnl
7
8dnl----- Licensing notice ---------------------------------------------------
9dnl
10dnl This file is part of Trivial IP Encryption (TrIPE).
11dnl
12dnl TrIPE is free software: you can redistribute it and/or modify it under
13dnl the terms of the GNU General Public License as published by the Free
14dnl Software Foundation; either version 3 of the License, or (at your
15dnl option) any later version.
16dnl
17dnl TrIPE is distributed in the hope that it will be useful, but WITHOUT
18dnl ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19dnl FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
20dnl for more details.
21dnl
22dnl You should have received a copy of the GNU General Public License
23dnl along with TrIPE. If not, see <https://www.gnu.org/licenses/>.
24
25dnl--------------------------------------------------------------------------
26dnl Initialization.
27
28mdw_AUTO_VERSION
29AC_INIT([tripe], AUTO_VERSION, [mdw@distorted.org.uk])
30AC_CONFIG_SRCDIR([server/tripe.h])
31AC_CONFIG_AUX_DIR([config])
32AM_INIT_AUTOMAKE([foreign])
33mdw_SILENT_RULES
34
35AC_PROG_CC
36AM_PROG_CC_C_O
37AX_CFLAGS_WARN_ALL
38AX_TYPE_SOCKLEN_T
39AC_CANONICAL_HOST
40AC_PROG_RANLIB
41
42AC_CHECK_PROGS([AUTOM4TE], [autom4te])
43
44mdw_ORIG_CFLAGS=$CFLAGS
45mdw_ORIG_CPPFLAGS=$CPPFLAGS
46AC_SUBST(AM_CFLAGS)
47AC_SUBST(AM_CPPFLAGS)
48
49dnl--------------------------------------------------------------------------
50dnl C programming environment.
51
52AC_CHECK_HEADERS([stdarg.h])
53
54AC_SEARCH_LIBS([socket], [socket])
55
56case "$host_os" in
57 linux)
58 AC_ARG_WITH([linux-includes],
59 AS_HELP_STRING(
60 [--with-linux-includes=DIR],
61 [Linux kernel includes]),
62 [AM_CPPFLAGS="AM_CPPFLAGS -I$withval"], [:])
63 ;;
64esac
65
66PKG_CHECK_MODULES([mLib], [mLib >= 2.2.1])
67PKG_CHECK_MODULES([catacomb], [catacomb >= 2.2.2-38])
68
69AM_CFLAGS="$AM_CFLAGS $mLib_CFLAGS $catacomb_CFLAGS"
70
71dnl--------------------------------------------------------------------------
72dnl Directories to install things into.
73
74dnl TRIPE_DEFINE_PATH(VAR, ARG, HELP, DEFAULT, [DEFINE, DEFINEHELP])
75AC_DEFUN([TRIPE_DEFINE_PATH], [
76 AC_ARG_WITH([$1], AS_HELP_STRING([--with-$1=$2], [$3]),
77 [$1=$withval], [$1=$4])
78 AC_SUBST([$1])
79 m4_if([$5], [], [], [
80 mdw_DEFINE_PATHS([mdw_DEFINE_PATH([$5], [$][$1], [$6])])
81 ])
82])
83
84dnl Actual options.
85TRIPE_DEFINE_PATH(
86 [configdir], [DIR], [keys and other configuration [[LOCALSTATE/tripe]]],
87 ['${localstatedir}/tripe'],
88 [CONFIGDIR], [Look for keys and other configuration here.])
89
90TRIPE_DEFINE_PATH(
91 [socketdir], [DIR], [admin socket [[.]]], [.],
92 [SOCKETDIR], [Create or look for administration socket here.])
93
94TRIPE_DEFINE_PATH(
95 [pidfile], [FILE], [process-id [[./tripectl.pid]]], [tripectl.pid])
96
97TRIPE_DEFINE_PATH(
98 [initconfig], [FILE],
99 [configuration for init script [[SYSCONFDIR/tripe.conf]]],
100 ['${sysconfdir}/tripe.conf'])
101
102TRIPE_DEFINE_PATH(
103 [logfile], [FILE], [logging output [[./tripe.log]]], [tripe.log])
104
105dnl--------------------------------------------------------------------------
106dnl Privilege-separation helper.
107
108mdw_DEFINE_PATHS([
109 AC_DEFINE_UNQUOTED([PRIVSEP_HELPER],
110 ["mdw_PATH([$libexecdir])/mdw_PROG([tripe-privhelper])"],
111 [Pathname of privilege-separation helper.])
112])
113
114dnl--------------------------------------------------------------------------
115dnl Other options.
116
117AC_ARG_WITH([tracing],
118 AS_HELP_STRING(
119 [--without-tracing],
120 [compile out tracing support (not recommended)]),
121 [test "$withval" = no &&
122 AC_DEFINE([NTRACE], [1], [Disable all tracing.])],
123 [:])
124
125dnl--------------------------------------------------------------------------
126dnl Tunnel devices.
127
128dnl Provide the user with a choice.
129AC_ARG_WITH([tunnel],
130 AS_HELP_STRING(
131 [--with-tunnel=KIND],
132 [kinds of tunnel device to use (linux, unet, bsd, slip)]),
133 [tun=$withval], [tun=auto])
134
135dnl If he doesn't choose, pick something sensible.
136if test "$tun" = auto; then
137 AC_CACHE_CHECK([tunnel drivers to use], [mdw_cv_tunnel], [
138 mdw_cv_tunnel=""
139 case $host_os in
140 linux*)
141 case `uname -r` in
142 [2.[4-9].*] | [2.[1-9][0-9]*.*] | [[3-9].*] | [[1-9][0-9]*.*])
143 mdw_cv_tunnel=linux
144 ;;
145 *)
146 mdw_cv_tunnel=unet
147 ;;
148 esac
149 ;;
150 *bsd*)
151 mdw_cv_tunnel=bsd
152 ;;
153 esac
154 mdw_cv_tunnel=$mdw_cv_tunnel${mdw_cv_tunnel:+ }slip
155 ])
156 tun=$mdw_cv_tunnel
157fi
158
159tunnels=""
160for i in $tun; do
161 case $i in
162 linux) AC_DEFINE([TUN_LINUX], [1],
163 [Install the Linux TUN/TAP driver.]) ;;
164 bsd) AC_DEFINE([TUN_BSD], [1],
165 [Install the BSD tunnel driver.]) ;;
166 unet) AC_DEFINE([TUN_UNET], [1],
167 [Install the obsolete Linux Usernet driver.]) ;;
168 slip) ;;
169 *) AC_MSG_ERROR([Unknown tunnel type]) ;;
170 esac
171 tunnels="$tunnels&tun_$i, "
172done
173AC_DEFINE_UNQUOTED([TUN_LIST], [$tunnels 0],
174 [List of tunnel drivers to install.])
175
176dnl--------------------------------------------------------------------------
177dnl Python.
178
179dnl Find out whether Python exists at all.
180AM_PATH_PYTHON([2.4], [python=yes], [python=no])
181AM_CONDITIONAL([HAVE_PYTHON], [test $python = yes])
182
183dnl Find out whether we can use the various external modules.
184if test $python = yes; then
185 AC_PYTHON_MODULE([pygtk])
186 AC_PYTHON_MODULE([cdb])
187 AC_PYTHON_MODULE([mLib])
188 AC_PYTHON_MODULE([catacomb])
189fi
190AM_CONDITIONAL([HAVE_PYGTK], [test ${HAVE_PYMOD_PYGTK-no} = yes])
191AM_CONDITIONAL([HAVE_PYCDB], [test ${HAVE_PYMOD_CDB-no} = yes])
192AM_CONDITIONAL([HAVE_PYMLIB], [test ${HAVE_PYMOD_MLIB-no} = yes])
193AM_CONDITIONAL([HAVE_PYCATACOMB], [test ${HAVE_PYMOD_CATACOMB-no} = yes])
194
195dnl--------------------------------------------------------------------------
196dnl Wireshark.
197
198dnl Get the user to help.
199wireshark_plugindir=unknown
200AC_ARG_WITH([wireshark],
201 AS_HELP_STRING(
202 [--with-wireshark],
203 [build and install Wireshark plugin]),
204 [case "$withval" in
205 no) wantshark=no mustshark=no ;;
206 yes) wantshark=yes mustshark=yes ;;
207 *) wantshark=yes mustshark=yes
208 wireshark_plugindir=$withval ;;
209 esac],
210 [wantshark=yes mustshark=no])
211
212case "$wantshark,$wireshark_plugindir" in
213 yes,unknown)
214 AC_CACHE_CHECK([where to put Wireshark plugins],
215 [mdw_cv_wireshark_plugin_dir], [
216 mdw_cv_wireshark_plugin_dir=$(
217 $PKG_CONFIG --variable=plugindir "wireshark >= 1.12.1")
218 dnl It seems that the Debian package has a habit of bungling the
219 dnl plugin path (#779788, #857729, ...).
220 case "$mdw_cv_wireshark_plugin_dir" in
221 /usr//usr/*)
222 mdw_cv_wireshark_plugin_dir=${mdw_cv_wireshark_plugin_dir#/usr/}
223 ;;
224 esac])
225 case "$mdw_cv_wireshark_plugin_dir" in
226 /*)
227 if test ! -d "$mdw_cv_wireshark_plugin_dir"; then
228 AC_MSG_WARN([alleged Wireshark plugin directory $mdw_cv_wireshark_plugin_dir doesn't exist])
229 haveshark=no
230 else
231 wireshark_plugindir=$mdw_cv_wireshark_plugin_dir
232 haveshark=yes
233 fi
234 ;;
235 *)
236 AC_MSG_WARN([failed to read Wireshark plugin directory])
237 haveshark=no
238 ;;
239 esac
240 ;;
241 no,*)
242 haveshark=no
243 ;;
244esac
245
246case "$haveshark,$needshark" in
247 no,yes)
248 AC_MSG_ERROR([failed to configure Wireshark plugin])
249 ;;
250 yes,*)
251 AC_SUBST(wireshark_plugindir)
252 ;;
253esac
254
255AM_CONDITIONAL([HAVE_WIRESHARK], [test "$haveshark" = yes])
256
257dnl--------------------------------------------------------------------------
258dnl Produce output.
259
260CFLAGS=$mdw_ORIG_CFLAGS
261CPPFLAGS=$mdw_ORIG_CPPFLAGS
262
263AC_CONFIG_HEADER([config/config.h])
264AC_CONFIG_TESTDIR([t])
265
266AC_CONFIG_FILES(
267 [Makefile]
268 [common/Makefile]
269 [uslip/Makefile]
270 [pathmtu/Makefile]
271 [client/Makefile]
272 [priv/Makefile]
273 [server/Makefile]
274 [proxy/Makefile]
275 [pkstream/Makefile]
276 [wireshark/Makefile]
277 [init/Makefile]
278 [py/Makefile]
279 [peerdb/Makefile]
280 [keys/Makefile]
281 [svc/Makefile]
282 [mon/Makefile]
283 [contrib/Makefile]
284 [t/Makefile t/atlocal])
285AC_OUTPUT
286
287dnl----- That's all, folks --------------------------------------------------