1e39c8fd654e94fe5ba446c749f9827ff0901130
[obnox/wireshark/wip.git] / wiretap / configure.in
1 # $Id: configure.in,v 1.51 2004/01/10 16:51:07 obiot Exp $
2 dnl
3 dnl Process this file with autoconf 2.13 or later to produce a
4 dnl configure script; 2.12 doesn't generate a "configure" script that
5 dnl defines SHELL, and "Makefile.in" has
6 dnl
7 dnl     SHELL = @SHELL@
8 dnl
9 dnl which requires it to be defined - and there may be other problems
10 dnl with pre-2.13 "autoconf" as well.
11 dnl
12 AC_INIT(wtap.c)
13
14 AC_PREREQ(2.13)
15
16 AC_CANONICAL_HOST
17 AC_CANONICAL_TARGET
18
19 AM_INIT_AUTOMAKE(libwtap.a, 0.0.0)
20 AM_CONFIG_HEADER(config.h)
21
22 dnl Checks for programs.
23 AC_PROG_CC
24 AC_PROG_CPP
25 AC_PROG_YACC
26 AM_PROG_LEX
27 AC_PROG_LIBTOOL
28 AC_PATH_PROG(LEX, flex)
29
30 AC_SUBST(FLEX_PATH)
31
32 #
33 # If we're running gcc, add '-Wall -W -Wcast-qual' to CFLAGS, and add
34 # '-D_U_="__attribute__((unused))"' as well, so we can use _U_ to
35 # flag unused function arguments and not get warnings about them.
36 # If "--with-extra-gcc-checks" was specified, add "-Wcast-align"
37 # as well.  (Add more checks here in the future?)
38 #
39 # Otherwise, add '-D_U_=""', so that _U_ used to flag an unused function
40 # argument will compile with non-GCC compilers.
41 #
42 AC_ARG_WITH(extra-gcc-checks,
43 [  --with-extra-gcc-checks Do additional -W checks in GCC.  [default=no]],
44 [
45         if test $withval != no
46         then
47                 ethereal_extra_gcc_flags=" -Wcast-align -Wbad-function-cast -pedantic"
48         fi
49 ],)
50 AC_MSG_CHECKING(to see if we can add '-Wall -W -Wcast-qual$ethereal_extra_gcc_flags' to CFLAGS)
51 if test x$GCC != x ; then
52   CFLAGS="-D_U_=\"__attribute__((unused))\" -Wall -W -Wcast-qual$ethereal_extra_gcc_flags $CFLAGS"
53   AC_MSG_RESULT(yes)
54 else
55   CFLAGS="-D_U_=\"\" $CFLAGS"
56   AC_MSG_RESULT(no)
57 fi
58
59 #
60 # Add any platform-specific compiler flags needed.
61 #
62 AC_MSG_CHECKING(for platform-specific compiler flags)
63 if test "x$GCC" = x
64 then
65         #
66         # Not GCC - assume it's the vendor's compiler.
67         #
68         case "$host_os" in
69         hpux*)
70                 #
71                 # HP's ANSI C compiler; flags suggested by Jost Martin.
72                 # "-Ae" for ANSI C plus extensions such as "long long".
73                 # "+O2", for optimization.  XXX - works with "-g"?
74                 #
75                 CFLAGS="-Ae +O2 $CFLAGS"
76                 AC_MSG_RESULT(HP ANSI C compiler - added -Ae +O2)
77                 ;;
78         darwin*)
79                 #
80                 # It may be called "cc", but it's really a GCC derivative
81                 # with a problematic special precompiler and precompiled
82                 # headers; turn off the special precompiler, as some
83                 # apparently-legal code won't compile with its precompiled
84                 # headers.
85                 #
86                 CFLAGS="-no-cpp-precomp $CFLAGS"
87                 AC_MSG_RESULT(Apple GCC - added -no-cpp-precomp)
88                 ;;
89         *)
90                 AC_MSG_RESULT(none needed)
91                 ;;
92         esac
93 else
94         case "$host_os" in
95         darwin*)
96                 #
97                 # See comments above about Apple's lovely C compiler.
98                 #
99                 CFLAGS="-no-cpp-precomp $CFLAGS"
100                 AC_MSG_RESULT(Apple GCC - added -no-cpp-precomp)
101                 ;;
102         *)
103         AC_MSG_RESULT(none needed)
104         ;;
105         esac
106 fi
107
108 AC_ARG_ENABLE(profile-build,
109 [  --enable-profile-build  build profile-ready binaries.  [default=no]],enable_profile_build=$enableval,enable_profile_build=no)
110 AM_CONDITIONAL(USE_PROFILE_BUILD, test x$enable_profile_build = xyes)
111 AC_MSG_CHECKING(if profile builds must be generated)
112 if test "x$enable_profile_build" = "xyes" ; then
113         if test -n "$GCC" ; then
114                 AC_MSG_RESULT(yes)
115                 CFLAGS=" -pg $CFLAGS"
116         else
117                 AC_MSG_RESULT(no)
118                 echo "Building profile binaries currently only supported for GCC."
119         fi
120 else
121         AC_MSG_RESULT(no)
122 fi
123         
124 AC_ARG_ENABLE(gtk2,
125 [  --enable-gtk2           build Glib2/Gtk2+-based (t)ethereal.  [default=no]],enable_gtk2=$enableval,enable_gtk2=no)
126
127 if test "x$enable_gtk2" = "xyes" ; then
128         AM_PATH_GLIB_2_0(2.0.0, CFLAGS="$CFLAGS $GLIB_CFLAGS" LIBS="$LIBS $GLIB_LIBS", , gmodule)
129 else
130         AM_PATH_GLIB(1.2.0, CFLAGS="$CFLAGS $GLIB_CFLAGS" LIBS="$LIBS $GLIB_LIBS", , gmodule)
131 fi
132
133 dnl Look in /usr/local for header files and libraries ?
134 AC_ARG_ENABLE(usr-local,
135 [  --enable-usr-local      look for headers and libs in /usr/local tree.  [default=yes]],enable_usr_local=$enableval,enable_usr_local=yes)
136
137 AC_MSG_CHECKING(whether to use /usr/local for headers and libraries)
138 if test "x$enable_usr_local" = "xyes" ; then
139         AC_MSG_RESULT(yes)
140         #
141         # Arrange that we search for header files in "/usr/local/include",
142         # as various packages we use ("libpcap", "zlib") may have been installed
143         # under "/usr/local/include".
144         #
145         # We do this after checking for GLib, so that "-I/usr/local/include"
146         # comes after any "-I" flags added by "AM_PATH_GLIB"; if the user has
147         # installed a pre-1.2.9 version of GLib, it'd probably go under
148         # "/usr/local", and if they then install 1.2.9 or later without
149         # uninstalling the pre-1.2.9 version, 1.2.9's header files won't be
150         # in "/usr/local/include" (they're put in a separate directory so that
151         # GLib 1.2[.x] and 1.3[.x]/2.x can coexist), and if we search
152         # "/usr/local/include" before searching the directory "AM_PATH_GLIB"
153         # specifies, we may pick up headers from the older version.
154         #
155         CFLAGS="$CFLAGS -I/usr/local/include"
156         CPPFLAGS="$CPPFLAGS -I/usr/local/include"
157
158         #
159         # Arrange that we search for libraries in "/usr/local/lib", as we'll
160         # be testing whether zlib has gzgets, and we need to be able to find
161         # zlib even if it's in "/usr/local/lib".
162         #
163         # We do this after checking for GLib; see above.
164         #
165         LDFLAGS="$LDFLAGS -L/usr/local/lib"
166 else
167         AC_MSG_RESULT(no)
168 fi
169
170 dnl Checks for header files
171 AC_HEADER_STDC
172 AC_CHECK_HEADERS(sys/time.h netinet/in.h unistd.h fcntl.h sys/stat.h sys/types.h)
173
174 # We must know our byte order
175 AC_C_BIGENDIAN
176
177 #
178 # Look for libpcap, so we can include <pcap.h> in libpcap.c if it's
179 # found.
180 #
181 # "--with-pcap" is merely done to allow the user to specify a directory
182 # in which to look for <pcap.h> (and so that specifying it to the
183 # top-level Ethereal configure script specifies it to the Wiretap
184 # configure script as well); we search for it regardless of whether
185 # "--without-pcap" was specified, as Wiretap isn't linked with it and
186 # there's no benefit to not looking for the header.
187 #
188 AC_ARG_WITH(pcap,
189 [  --with-pcap=DIR         libpcap is located in directory DIR.],
190 [
191         if test $withval != yes -a $withval != no
192         then
193                 pcap_dir=$withval
194         fi
195 ],[
196         pcap_dir=
197 ])
198 AC_WIRETAP_PCAP_CHECK
199
200 dnl zlib check
201 AC_MSG_CHECKING(whether to use zlib for reading compressed capture files)
202
203 AC_ARG_WITH(zlib,
204 [  --with-zlib[=DIR]       use zlib (located in directory DIR, if supplied) to read compressed data.  [default=yes, if present]],
205 [
206         if test $withval = no
207         then
208                 want_zlib=no
209         elif test $withval = yes
210         then
211                 want_zlib=yes
212         else
213                 want_zlib=yes
214                 zlib_dir=$withval
215         fi
216 ],[
217         #
218         # Use zlib if it's present, otherwise don't.
219         #
220         want_zlib=ifpresent
221         zlib_dir=
222 ])
223 if test "x$want_zlib" = "xno" ; then
224         AC_MSG_RESULT(no)
225 else
226         AC_MSG_RESULT(yes)
227         AC_WIRETAP_ZLIB_CHECK
228         if test "x$want_zlib" = "xno" ; then
229                 AC_MSG_RESULT(zlib not found - disabling compressed capture file support)
230         fi
231 fi
232
233 AC_OUTPUT(Makefile)