165db1a8 |
1 | dnl -*-autoconf-*- |
410c8acf |
2 | dnl |
3cdc3f3a |
3 | dnl $Id$ |
410c8acf |
4 | dnl |
5 | dnl Configuration script for TrIPE |
6 | dnl |
7 | dnl (c) 2001 Straylight/Edgeware |
8 | dnl |
9 | |
10 | dnl ----- Licensing notice -------------------------------------------------- |
11 | dnl |
12 | dnl This file is part of Trivial IP Encryption (TrIPE). |
13 | dnl |
14 | dnl TrIPE is free software; you can redistribute it and/or modify |
15 | dnl it under the terms of the GNU General Public License as published by |
16 | dnl the Free Software Foundation; either version 2 of the License, or |
17 | dnl (at your option) any later version. |
18 | dnl |
19 | dnl TrIPE is distributed in the hope that it will be useful, |
20 | dnl but WITHOUT ANY WARRANTY; without even the implied warranty of |
21 | dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
22 | dnl GNU General Public License for more details. |
23 | dnl |
24 | dnl You should have received a copy of the GNU General Public License |
25 | dnl along with TrIPE; if not, write to the Free Software Foundation, |
26 | dnl Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
27 | |
410c8acf |
28 | AC_INIT(tripe.c) |
d36eda2a |
29 | AM_INIT_AUTOMAKE(tripe, 1.0.0pre7) |
73189848 |
30 | AM_CONFIG_HEADER(config.h) |
410c8acf |
31 | AC_CANONICAL_HOST |
32 | |
165db1a8 |
33 | AC_PROG_MAKE_SET |
410c8acf |
34 | AC_PROG_CC |
165db1a8 |
35 | AM_PROG_LIBTOOL |
3cdc3f3a |
36 | AC_CHECK_HEADERS([stdarg.h]) |
37075862 |
37 | mdw_GCC_FLAGS([-Wall]) |
73189848 |
38 | mdw_OPT_TRACE |
410c8acf |
39 | |
37075862 |
40 | AC_ARG_WITH([linux-includes], |
41 | [ --with-linux-includes=DIR |
42 | search for Linux kernel includes in DIR], |
43 | [CFLAGS="$CFLAGS -I$withval"], |
44 | [:]) |
45 | |
ef4a1ab7 |
46 | AC_ARG_WITH([configdir], |
47 | [ --with-configdir=DIR look for keys and other configuration in DIR |
48 | [default=/var/lib/tripe]], |
49 | [configdir=$withval], |
50 | [configdir=/var/lib/tripe]) |
51 | |
52 | AC_ARG_WITH([socketdir], |
53 | [ --with-socketdir=DIR put admin socket in DIR [default=.]], |
54 | [socketdir=$withval], |
55 | [socketdir=.]) |
56 | |
57 | AC_ARG_WITH([pidfile], |
58 | [ --with-pidfile=FILE make tripectl write its pid to FILE |
59 | [default=./tripectl.pid]], |
60 | [pidfile=$withval], |
61 | [pidfile=tripectl.pid]) |
62 | |
63 | AC_ARG_WITH([initconfig], |
64 | [ --with-initconfig=FILE read definitions from FILE in init script |
65 | [default=/etc/tripe.conf]], |
66 | [initconfig=$withval], |
67 | [initconfig=/etc/tripe.conf]) |
68 | |
69 | AC_ARG_WITH([logfile], |
70 | [ --with-logfile=DIR make tripectl write its log to FILE |
71 | [default=./tripe.log]], |
72 | [logfile=$withval], |
73 | [logfile=tripe.log]) |
74 | |
165db1a8 |
75 | DIRS="" |
ef4a1ab7 |
76 | ETHEREAL_CFLAGS="" |
77 | ETHEREAL_PLUGIN_DIR="unknown" |
165db1a8 |
78 | AC_ARG_WITH([ethereal], |
ef4a1ab7 |
79 | [ --with-ethereal build and install Ethereal plugin], |
165db1a8 |
80 | [case "$withval" in |
ef4a1ab7 |
81 | no) ethereal=false requireethereal=false;; |
82 | yes) ethereal=true; requireethereal=true;; |
83 | *) ethereal=true requireethereal=true ETHEREAL_PLUGIN_DIR=$withval;; |
165db1a8 |
84 | esac], |
ef4a1ab7 |
85 | [ethereal=true requireethereal=false]) |
165db1a8 |
86 | |
b9066fbb |
87 | tun=guess |
88 | AC_ARG_WITH([tunnel], |
89 | [ --with-tunnel=KIND kind of tunnel device to use |
90 | (linux, unet, bsd, slip)], |
91 | [tun=$withval]) |
92 | |
93 | if test "$tun" = guess; then |
94 | AC_CACHE_CHECK([tunnel device to use], [mdw_cv_tunnel], [ |
95 | case $host_os in |
96 | linux*) |
97 | case `uname -r` in |
7dd8b2bb |
98 | changequote(,)dnl |
b9066fbb |
99 | 2.[4-9].* | 2.[1-9][0-9]*.* | [3-9].* | [1-9][0-9]*.*) |
7dd8b2bb |
100 | changequote([,])dnl |
b9066fbb |
101 | mdw_cv_tunnel=linux |
102 | ;; |
103 | *) |
104 | mdw_cv_tunnel=unet |
105 | ;; |
106 | esac |
107 | ;; |
108 | *bsd*) |
109 | mdw_cv_tunnel=bsd |
37075862 |
110 | ;; |
111 | *) |
b9066fbb |
112 | mdw_cv_tunnel=slip |
37075862 |
113 | ;; |
114 | esac |
b9066fbb |
115 | ]) |
116 | tun=$mdw_cv_tunnel |
117 | fi |
118 | |
119 | case $tun in |
120 | linux | unet | bsd | slip) ;; |
121 | *) AC_MSG_ERROR([Unknown tunnel type]) ;; |
410c8acf |
122 | esac |
b9066fbb |
123 | AC_DEFINE_UNQUOTED([TUN_TYPE], [TUN_`echo $tun | tr a-z A-Z`], |
124 | [Set to the tunnel driver for your OS. See TUN_* in tripe.h.]) |
410c8acf |
125 | AC_SUBST(tun) |
126 | |
cc1668bb |
127 | mdw_MLIB(2.0.0) |
c55f55af |
128 | mdw_CATACOMB(2.1.0, [CFLAGS="$CFLAGS $CATACOMB_CFLAGS"]) |
165db1a8 |
129 | |
ef4a1ab7 |
130 | if test "$ethereal" = true -a "$ETHEREAL_PLUGIN_DIR" = unknown; then |
131 | AC_CACHE_CHECK([where to put Ethereal plugins], |
132 | [mdw_cv_ethereal_plugin_dir], [ |
133 | changequote(,) |
134 | mdw_cv_ethereal_plugin_dir="failed" |
135 | ethprefix=none |
136 | for i in "${prefix}" /usr/local /usr `echo $PATH | tr : " "`; do |
3cdc3f3a |
137 | if test -x "$i/bin/tethereal"; then |
ef4a1ab7 |
138 | ethprefix=$i |
139 | break |
140 | fi |
141 | done |
142 | if test "$ethprefix" != none; then |
3cdc3f3a |
143 | ethbin=$ethprefix/bin/tethereal |
144 | ethver=`$ethbin -v | sed 's/^[^ ]* \([0-9A-Za-z.]*\).*$/\1/;q'` |
ef4a1ab7 |
145 | dir=$ethprefix/lib/ethereal/plugins/$ethver |
146 | if test -d "$dir"; then |
147 | mdw_cv_ethereal_plugin_dir=$dir |
148 | fi |
149 | fi |
150 | changequote([, ]) |
151 | ]) |
152 | case $mdw_cv_ethereal_plugin_dir in |
153 | failed) ethereal=false;; |
154 | *) ETHEREAL_PLUGIN_DIR=$mdw_cv_ethereal_plugin_dir;; |
155 | esac |
156 | fi |
157 | |
158 | if test "$ethereal" = true; then |
159 | AM_PATH_GLIB([1.2.0], [], ethereal=false, [gmodule]) |
160 | fi |
161 | if test "$ethereal" = true; then |
165db1a8 |
162 | bad=true |
163 | mdw_CFLAGS=$CFLAGS |
ef4a1ab7 |
164 | ethprefix=`echo $ETHEREAL_PLUGIN_DIR | sed 's:/lib/.*$::'` |
165db1a8 |
165 | AC_CACHE_CHECK([how to find the Ethereal headers], |
166 | [mdw_cv_ethereal_includes], [ |
ef4a1ab7 |
167 | mdw_cv_ethereal_includes=failed |
168 | for i in \ |
169 | "" \ |
170 | "-I${ethprefix}/include/ethereal" \ |
171 | "-I${ethprefix}/include" \ |
172 | "-I${prefix}/include/ethereal" \ |
173 | "-I${prefix}/include" \ |
174 | "-I/usr/include/ethereal" \ |
175 | "-I/usr/local/include/ethereal" \ |
176 | "-I/usr/local/include"; do |
165db1a8 |
177 | CFLAGS="$GLIB_CFLAGS $i" |
178 | AC_TRY_COMPILE([ |
179 | #include <netinet/in.h> |
180 | #include <glib.h> |
3cdc3f3a |
181 | #include <ethereal/config.h> |
182 | #include <ethereal/epan/packet.h> |
165db1a8 |
183 | ], [ |
184 | dissector_handle_t dh; |
3cdc3f3a |
185 | dh = create_dissector_handle(0, 0); |
165db1a8 |
186 | ], [bad=false; break]) |
187 | done |
ef4a1ab7 |
188 | if test $bad = false; then |
189 | mdw_cv_ethereal_includes=$i |
165db1a8 |
190 | fi |
165db1a8 |
191 | CFLAGS=$mdw_CFLAGS |
192 | ]) |
ef4a1ab7 |
193 | case $mdw_cv_ethereal_plugin_dir in |
194 | failed) ethereal=false;; |
195 | *) ETHEREAL_PLUGIN_DIR=$mdw_cv_ethereal_plugin_dir;; |
196 | esac |
197 | fi |
198 | |
199 | if test "$ethereal" = true; then |
165db1a8 |
200 | ETHEREAL_CFLAGS="$CFLAGS $GLIB_CFLAGS $mdw_cv_ethereal_includes" |
165db1a8 |
201 | AC_SUBST(ETHEREAL_CFLAGS) |
202 | AC_SUBST(ETHEREAL_PLUGIN_DIR) |
203 | DIRS="$DIRS ethereal" |
204 | fi |
410c8acf |
205 | |
ef4a1ab7 |
206 | if test "$ethereal" = false -a "$requireethereal" = true; then |
207 | AC_MSG_ERROR([failed to configure Ethereal plugin]) |
208 | fi |
209 | |
3cdc3f3a |
210 | AH_TEMPLATE([CONFIGDIR], |
211 | [Tripe should look here for keys and other configuration.]) |
212 | AH_TEMPLATE([SOCKETDIR], |
213 | [Tripe should make its administration socket here.]) |
ef4a1ab7 |
214 | mdw_DEFINE_PATHS([ |
215 | mdw_DEFINE_PATH([CONFIGDIR], [$configdir]) |
216 | mdw_DEFINE_PATH([SOCKETDIR], [$socketdir]) |
217 | AC_SUBST(socketdir) AC_SUBST(configdir) AC_SUBST(logfile) AC_SUBST(pidfile) |
218 | AC_SUBST(initconfig) |
219 | ]) |
165db1a8 |
220 | AC_SUBST(DIRS) |
221 | AC_OUTPUT(Makefile doc/Makefile ethereal/Makefile tripe-init) |
410c8acf |
222 | |
223 | dnl ----- That's all, folks ------------------------------------------------- |