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) |
ef4a1ab7 |
29 | AM_INIT_AUTOMAKE(tripe, 1.0.0pre6) |
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 | |
410c8acf |
87 | case $host_os in |
88 | linux*) |
37075862 |
89 | case `uname -r` in |
7dd8b2bb |
90 | changequote(,)dnl |
3e1bf5a8 |
91 | 2.[4-9].* | 2.[1-9][0-9]*.* | [3-9].* | [1-9][0-9]*.*) |
7dd8b2bb |
92 | changequote([,])dnl |
37075862 |
93 | tun=linux |
3cdc3f3a |
94 | AC_DEFINE([TUN_TYPE], [TUN_LINUX], |
95 | [Set to the tunnel driver for your OS. See TUN_* in tripe.h.]) |
37075862 |
96 | ;; |
97 | *) |
98 | tun=unet |
3cdc3f3a |
99 | AC_DEFINE([TUN_TYPE], [TUN_UNET], |
100 | [Set to the tunnel driver for your OS. See TUN_* in tripe.h.]) |
37075862 |
101 | ;; |
102 | esac |
410c8acf |
103 | ;; |
104 | *bsd*) |
105 | tun=bsd |
3cdc3f3a |
106 | AC_DEFINE([TUN_TYPE], [TUN_BSD], |
107 | [Set to the tunnel driver for your OS. See TUN_* in tripe.h.]) |
410c8acf |
108 | ;; |
109 | *) |
110 | AC_MSG_ERROR([Unsupported OS: no tunnel interface available]) |
111 | ;; |
112 | esac |
113 | AC_SUBST(tun) |
114 | |
cc1668bb |
115 | mdw_MLIB(2.0.0) |
c55f55af |
116 | mdw_CATACOMB(2.1.0, [CFLAGS="$CFLAGS $CATACOMB_CFLAGS"]) |
165db1a8 |
117 | |
ef4a1ab7 |
118 | if test "$ethereal" = true -a "$ETHEREAL_PLUGIN_DIR" = unknown; then |
119 | AC_CACHE_CHECK([where to put Ethereal plugins], |
120 | [mdw_cv_ethereal_plugin_dir], [ |
121 | changequote(,) |
122 | mdw_cv_ethereal_plugin_dir="failed" |
123 | ethprefix=none |
124 | for i in "${prefix}" /usr/local /usr `echo $PATH | tr : " "`; do |
3cdc3f3a |
125 | if test -x "$i/bin/tethereal"; then |
ef4a1ab7 |
126 | ethprefix=$i |
127 | break |
128 | fi |
129 | done |
130 | if test "$ethprefix" != none; then |
3cdc3f3a |
131 | ethbin=$ethprefix/bin/tethereal |
132 | ethver=`$ethbin -v | sed 's/^[^ ]* \([0-9A-Za-z.]*\).*$/\1/;q'` |
ef4a1ab7 |
133 | dir=$ethprefix/lib/ethereal/plugins/$ethver |
134 | if test -d "$dir"; then |
135 | mdw_cv_ethereal_plugin_dir=$dir |
136 | fi |
137 | fi |
138 | changequote([, ]) |
139 | ]) |
140 | case $mdw_cv_ethereal_plugin_dir in |
141 | failed) ethereal=false;; |
142 | *) ETHEREAL_PLUGIN_DIR=$mdw_cv_ethereal_plugin_dir;; |
143 | esac |
144 | fi |
145 | |
146 | if test "$ethereal" = true; then |
147 | AM_PATH_GLIB([1.2.0], [], ethereal=false, [gmodule]) |
148 | fi |
149 | if test "$ethereal" = true; then |
165db1a8 |
150 | bad=true |
151 | mdw_CFLAGS=$CFLAGS |
ef4a1ab7 |
152 | ethprefix=`echo $ETHEREAL_PLUGIN_DIR | sed 's:/lib/.*$::'` |
165db1a8 |
153 | AC_CACHE_CHECK([how to find the Ethereal headers], |
154 | [mdw_cv_ethereal_includes], [ |
ef4a1ab7 |
155 | mdw_cv_ethereal_includes=failed |
156 | for i in \ |
157 | "" \ |
158 | "-I${ethprefix}/include/ethereal" \ |
159 | "-I${ethprefix}/include" \ |
160 | "-I${prefix}/include/ethereal" \ |
161 | "-I${prefix}/include" \ |
162 | "-I/usr/include/ethereal" \ |
163 | "-I/usr/local/include/ethereal" \ |
164 | "-I/usr/local/include"; do |
165db1a8 |
165 | CFLAGS="$GLIB_CFLAGS $i" |
166 | AC_TRY_COMPILE([ |
167 | #include <netinet/in.h> |
168 | #include <glib.h> |
3cdc3f3a |
169 | #include <ethereal/config.h> |
170 | #include <ethereal/epan/packet.h> |
165db1a8 |
171 | ], [ |
172 | dissector_handle_t dh; |
3cdc3f3a |
173 | dh = create_dissector_handle(0, 0); |
165db1a8 |
174 | ], [bad=false; break]) |
175 | done |
ef4a1ab7 |
176 | if test $bad = false; then |
177 | mdw_cv_ethereal_includes=$i |
165db1a8 |
178 | fi |
165db1a8 |
179 | CFLAGS=$mdw_CFLAGS |
180 | ]) |
ef4a1ab7 |
181 | case $mdw_cv_ethereal_plugin_dir in |
182 | failed) ethereal=false;; |
183 | *) ETHEREAL_PLUGIN_DIR=$mdw_cv_ethereal_plugin_dir;; |
184 | esac |
185 | fi |
186 | |
187 | if test "$ethereal" = true; then |
165db1a8 |
188 | ETHEREAL_CFLAGS="$CFLAGS $GLIB_CFLAGS $mdw_cv_ethereal_includes" |
165db1a8 |
189 | AC_SUBST(ETHEREAL_CFLAGS) |
190 | AC_SUBST(ETHEREAL_PLUGIN_DIR) |
191 | DIRS="$DIRS ethereal" |
192 | fi |
410c8acf |
193 | |
ef4a1ab7 |
194 | if test "$ethereal" = false -a "$requireethereal" = true; then |
195 | AC_MSG_ERROR([failed to configure Ethereal plugin]) |
196 | fi |
197 | |
3cdc3f3a |
198 | AH_TEMPLATE([CONFIGDIR], |
199 | [Tripe should look here for keys and other configuration.]) |
200 | AH_TEMPLATE([SOCKETDIR], |
201 | [Tripe should make its administration socket here.]) |
ef4a1ab7 |
202 | mdw_DEFINE_PATHS([ |
203 | mdw_DEFINE_PATH([CONFIGDIR], [$configdir]) |
204 | mdw_DEFINE_PATH([SOCKETDIR], [$socketdir]) |
205 | AC_SUBST(socketdir) AC_SUBST(configdir) AC_SUBST(logfile) AC_SUBST(pidfile) |
206 | AC_SUBST(initconfig) |
207 | ]) |
165db1a8 |
208 | AC_SUBST(DIRS) |
209 | AC_OUTPUT(Makefile doc/Makefile ethereal/Makefile tripe-init) |
410c8acf |
210 | |
211 | dnl ----- That's all, folks ------------------------------------------------- |