1dnl @(#) $Header: /tcpdump/master/libpcap/configure.in,v 1.120.2.8 2006/04/07 07:08:50 guy Exp $ (LBL) 2dnl 3dnl Copyright (c) 1994, 1995, 1996, 1997 4dnl The Regents of the University of California. All rights reserved. 5dnl 6dnl Process this file with autoconf to produce a configure script. 7dnl 8 9AC_REVISION($Revision: 1.120.2.8 $) 10AC_PREREQ(2.50) 11AC_INIT(pcap.c) 12 13AC_CANONICAL_SYSTEM 14 15AC_LBL_C_INIT(V_CCOPT, V_INCLS, V_LIBS) 16AC_LBL_C_INLINE 17AC_C___ATTRIBUTE__ 18 19AC_LBL_CHECK_TYPE(u_int8_t, u_char) 20AC_LBL_CHECK_TYPE(u_int16_t, u_short) 21AC_LBL_CHECK_TYPE(u_int32_t, u_int) 22 23dnl 24dnl libpcap doesn't itself use <sys/ioccom.h>; however, the test program 25dnl in "AC_LBL_FIXINCLUDES" in "aclocal.m4" uses it, so we have to 26dnl test for it and set "HAVE_SYS_IOCCOM_H" if we have it, otherwise 27dnl "AC_LBL_FIXINCLUDES" won't work on some platforms such as Solaris. 28dnl 29AC_CHECK_HEADERS(sys/ioccom.h sys/sockio.h limits.h) 30AC_CHECK_HEADERS(netinet/if_ether.h, , , [#include <sys/types.h> 31#include <sys/socket.h>]) 32if test "$ac_cv_header_netinet_if_ether_h" != yes; then 33 # 34 # The simple test didn't work. 35 # Do we need to include <net/if.h> first? 36 # Unset ac_cv_header_netinet_if_ether_h so we don't 37 # treat the previous failure as a cached value and 38 # suppress the next test. 39 # 40 AC_MSG_NOTICE([Rechecking with some additional includes]) 41 unset ac_cv_header_netinet_if_ether_h 42 AC_CHECK_HEADERS(netinet/if_ether.h, , , [#include <sys/types.h> 43#include <sys/socket.h> 44#include <netinet/in.h> 45struct mbuf; 46struct rtentry; 47#include <net/if.h>]) 48fi 49 50AC_LBL_FIXINCLUDES 51 52AC_CHECK_FUNCS(strerror strlcpy) 53 54needsnprintf=no 55AC_CHECK_FUNCS(vsnprintf snprintf,, 56 [needsnprintf=yes]) 57if test $needsnprintf = yes; then 58 AC_LIBOBJ(snprintf) 59fi 60 61# 62# Do this before checking for ether_hostton(), as it's a 63# "gethostbyname() -ish function". 64# 65AC_LBL_LIBRARY_NET 66 67# 68# You are in a twisty little maze of UN*Xes, all different. 69# Some might not have ether_hostton(). 70# Some might have it, but not declare it in any header file. 71# Some might have it, but declare it in <netinet/if_ether.h>. 72# Some might have it, but declare it in <netinet/ether.h> 73# (And some might have it but document it as something declared in 74# <netinet/ethernet.h>, although <netinet/if_ether.h> appears to work.) 75# 76# Before you is a C compiler. 77# 78AC_CHECK_FUNCS(ether_hostton) 79if test "$ac_cv_func_ether_hostton" = yes; then 80 # 81 # OK, we have ether_hostton(). Do we have <netinet/if_ether.h>? 82 # 83 if test "$ac_cv_header_netinet_if_ether_h" = yes; then 84 # 85 # Yes. Does it declare ether_hostton()? 86 # 87 AC_CHECK_DECL(ether_hostton, 88 [ 89 AC_DEFINE(NETINET_IF_ETHER_H_DECLARES_ETHER_HOSTTON,, 90 [Define to 1 if netinet/if_ether.h declares `ether_hostton']) 91 ],, 92 [ 93#include <sys/types.h> 94#include <sys/socket.h> 95#include <netinet/in.h> 96#include <arpa/inet.h> 97struct mbuf; 98struct rtentry; 99#include <net/if.h> 100#include <netinet/if_ether.h> 101 ]) 102 fi 103 # 104 # Did that succeed? 105 # 106 if test "$ac_cv_have_decl_ether_hostton" != yes; then 107 # 108 # No, how about <netinet/ether.h>, as on Linux? 109 # 110 AC_CHECK_HEADERS(netinet/ether.h) 111 if test "$ac_cv_header_netinet_ether_h" = yes; then 112 # 113 # We have it - does it declare ether_hostton()? 114 # Unset ac_cv_have_decl_ether_hostton so we don't 115 # treat the previous failure as a cached value and 116 # suppress the next test. 117 # 118 unset ac_cv_have_decl_ether_hostton 119 AC_CHECK_DECL(ether_hostton, 120 [ 121 AC_DEFINE(NETINET_ETHER_H_DECLARES_ETHER_HOSTTON,, 122 [Define to 1 if netinet/ether.h declares `ether_hostton']) 123 ],, 124 [ 125#include <netinet/ether.h> 126 ]) 127 fi 128 fi 129 # 130 # Is ether_hostton() declared? 131 # 132 if test "$ac_cv_have_decl_ether_hostton" != yes; then 133 # 134 # No, we'll have to declare it ourselves. 135 # Do we have "struct ether_addr"? 136 # 137 AC_CHECK_TYPES(struct ether_addr,,, 138 [ 139#include <sys/types.h> 140#include <sys/socket.h> 141#include <netinet/in.h> 142#include <arpa/inet.h> 143struct mbuf; 144struct rtentry; 145#include <net/if.h> 146#include <netinet/if_ether.h> 147 ]) 148 AC_DEFINE(HAVE_DECL_ETHER_HOSTTON, 0, 149 [Define to 1 if you have the declaration of `ether_hostton', and to 0 if you 150don't.]) 151 else 152 AC_DEFINE(HAVE_DECL_ETHER_HOSTTON, 1, 153 [Define to 1 if you have the declaration of `ether_hostton', and to 0 if you 154don't.]) 155 fi 156fi 157 158dnl to pacify those who hate protochain insn 159AC_MSG_CHECKING(if --disable-protochain option is specified) 160AC_ARG_ENABLE(protochain, [ --disable-protochain disable \"protochain\" insn]) 161case "x$enable_protochain" in 162xyes) enable_protochain=enabled ;; 163xno) enable_protochain=disabled ;; 164x) enable_protochain=enabled ;; 165esac 166 167if test "$enable_protochain" = "disabled"; then 168 AC_DEFINE(NO_PROTOCHAIN,1,[do not use protochain]) 169fi 170AC_MSG_RESULT(${enable_protochain}) 171 172dnl 173dnl Not all versions of test support -c (character special) but it's a 174dnl better way of testing since the device might be protected. So we 175dnl check in our normal order using -r and then check the for the /dev 176dnl guys again using -c. 177dnl 178dnl XXX This could be done for cross-compiling, but for now it's not. 179dnl 180if test -z "$with_pcap" && test "$cross_compiling" = yes; then 181 AC_MSG_ERROR(pcap type not determined when cross-compiling; use --with-pcap=...) 182fi 183AC_ARG_WITH(pcap, [ --with-pcap=TYPE use packet capture TYPE]) 184AC_MSG_CHECKING(packet capture type) 185if test ! -z "$with_pcap" ; then 186 V_PCAP="$withval" 187elif test -r /dev/bpf0 ; then 188 V_PCAP=bpf 189elif test -r /usr/include/net/pfilt.h ; then 190 V_PCAP=pf 191elif test -r /dev/enet ; then 192 V_PCAP=enet 193elif test -r /dev/nit ; then 194 V_PCAP=snit 195elif test -r /usr/include/sys/net/nit.h ; then 196 V_PCAP=nit 197elif test -r /usr/include/linux/socket.h ; then 198 V_PCAP=linux 199elif test -r /usr/include/net/raw.h ; then 200 V_PCAP=snoop 201elif test -r /usr/include/odmi.h ; then 202 # 203 # On AIX, the BPF devices might not yet be present - they're 204 # created the first time libpcap runs after booting. 205 # We check for odmi.h instead. 206 # 207 V_PCAP=bpf 208elif test -r /usr/include/sys/dlpi.h ; then 209 V_PCAP=dlpi 210elif test -c /dev/bpf0 ; then # check again in case not readable 211 V_PCAP=bpf 212elif test -c /dev/enet ; then # check again in case not readable 213 V_PCAP=enet 214elif test -c /dev/nit ; then # check again in case not readable 215 V_PCAP=snit 216else 217 V_PCAP=null 218fi 219AC_MSG_RESULT($V_PCAP) 220 221dnl 222dnl Now figure out how we get a list of interfaces and addresses, 223dnl if we support capturing. Don't bother if we don't support 224dnl capturing. 225dnl 226if test "$V_PCAP" = null 227then 228 # 229 # We can't capture, so we can't open any capture 230 # devices, so we won't return any interfaces. 231 # 232 V_FINDALLDEVS=null 233else 234 AC_CHECK_FUNC(getifaddrs,[ 235 # 236 # We have "getifaddrs()"; make sure we have <ifaddrs.h> 237 # as well, just in case some platform is really weird. 238 # 239 AC_CHECK_HEADER(ifaddrs.h,[ 240 # 241 # We have the header, so we use "getifaddrs()" to 242 # get the list of interfaces. 243 # 244 V_FINDALLDEVS=getad 245 ],[ 246 # 247 # We don't have the header - give up. 248 # XXX - we could also fall back on some other 249 # mechanism, but, for now, this'll catch this 250 # problem so that we can at least try to figure 251 # out something to do on systems with "getifaddrs()" 252 # but without "ifaddrs.h", if there is something 253 # we can do on those systems. 254 # 255 AC_MSG_ERROR([Your system has getifaddrs() but doesn't have a usable <ifaddrs.h>.]) 256 ]) 257 ],[ 258 # 259 # Well, we don't have "getifaddrs()", so we have to use 260 # some other mechanism; determine what that mechanism is. 261 # 262 # The first thing we use is the type of capture mechanism, 263 # which is somewhat of a proxy for the OS we're using. 264 # 265 case "$V_PCAP" in 266 267 dlpi) 268 # 269 # This might be Solaris 8 or later, with 270 # SIOCGLIFCONF, or it might be some other OS 271 # or some older version of Solaris, with 272 # just SIOCGIFCONF. 273 # 274 AC_MSG_CHECKING(whether we have SIOCGLIFCONF) 275 AC_CACHE_VAL(ac_cv_lbl_have_siocglifconf, 276 AC_TRY_COMPILE( 277 [#include <sys/param.h> 278 #include <sys/file.h> 279 #include <sys/ioctl.h> 280 #include <sys/socket.h> 281 #include <sys/sockio.h>], 282 [ioctl(0, SIOCGLIFCONF, (char *)0);], 283 ac_cv_lbl_have_siocglifconf=yes, 284 ac_cv_lbl_have_siocglifconf=no)) 285 AC_MSG_RESULT($ac_cv_lbl_have_siocglifconf) 286 if test $ac_cv_lbl_have_siocglifconf = yes ; then 287 V_FINDALLDEVS=glifc 288 else 289 V_FINDALLDEVS=gifc 290 fi 291 ;; 292 293 *) 294 # 295 # Assume we just have SIOCGIFCONF. 296 # (XXX - on at least later Linux kernels, there's 297 # another mechanism, and we should be using that 298 # instead.) 299 # 300 V_FINDALLDEVS=gifc 301 ;; 302 esac]) 303fi 304 305AC_MSG_CHECKING(if --enable-ipv6 option is specified) 306AC_ARG_ENABLE(ipv6, [ --enable-ipv6 build IPv6-capable version]) 307if test "$enable_ipv6" = "yes"; then 308 AC_DEFINE(INET6,1,[IPv6]) 309fi 310AC_MSG_RESULT(${enable_ipv6-no}) 311 312AC_MSG_CHECKING(whether to build optimizer debugging code) 313AC_ARG_ENABLE(optimizer-dbg, [ --enable-optimizer-dbg build optimizer debugging code]) 314if test "$enable_optimizer_dbg" = "yes"; then 315 AC_DEFINE(BDEBUG,1,[Enable optimizer debugging]) 316fi 317AC_MSG_RESULT(${enable_optimizer_dbg-no}) 318 319AC_MSG_CHECKING(whether to build parser debugging code) 320AC_ARG_ENABLE(yydebug, [ --enable-yydebug build parser debugging code]) 321if test "$enable_yydebug" = "yes"; then 322 AC_DEFINE(YYDEBUG,1,[Enable parser debugging]) 323fi 324AC_MSG_RESULT(${enable_yydebug-no}) 325 326case "$V_PCAP" in 327 328dlpi) 329 AC_CHECK_HEADERS(sys/bufmod.h sys/dlpi_ext.h) 330 AC_MSG_CHECKING(for /dev/dlpi device) 331 if test -c /dev/dlpi ; then 332 AC_MSG_RESULT(yes) 333 AC_DEFINE(HAVE_DEV_DLPI, 1, [define if you have a /dev/dlpi]) 334 else 335 AC_MSG_RESULT(no) 336 dir="/dev/dlpi" 337 AC_MSG_CHECKING(for $dir directory) 338 if test -d $dir ; then 339 AC_MSG_RESULT(yes) 340 AC_DEFINE_UNQUOTED(PCAP_DEV_PREFIX, "$dir", [/dev/dlpi directory]) 341 else 342 AC_MSG_RESULT(no) 343 fi 344 fi 345 ;; 346 347linux) 348 AC_MSG_CHECKING(Linux kernel version) 349 if test "$cross_compiling" = yes; then 350 AC_CACHE_VAL(ac_cv_linux_vers, 351 ac_cv_linux_vers=unknown) 352 else 353 AC_CACHE_VAL(ac_cv_linux_vers, 354 ac_cv_linux_vers=`uname -r 2>&1 | \ 355 sed -n -e '$s/.* //' -e '$s/\..*//p'`) 356 fi 357 AC_MSG_RESULT($ac_cv_linux_vers) 358 if test $ac_cv_linux_vers = unknown ; then 359 AC_MSG_ERROR(cannot determine linux version when cross-compiling) 360 fi 361 if test $ac_cv_linux_vers -lt 2 ; then 362 AC_MSG_ERROR(version 2 or higher required; see the INSTALL doc for more info) 363 fi 364 AC_LBL_TPACKET_STATS 365 ;; 366 367dag) 368 V_DEFS="$V_DEFS -DDAG_ONLY" 369 ;; 370 371septel) 372 V_DEFS="$V_DEFS -DSEPTEL_ONLY" 373 ;; 374 375null) 376 AC_MSG_WARN(cannot determine packet capture interface) 377 AC_MSG_WARN((see the INSTALL doc for more info)) 378 ;; 379 380esac 381 382AC_MSG_CHECKING(whether we have /proc/net/dev) 383if test -r /proc/net/dev ; then 384 ac_cv_lbl_proc_net_dev=yes 385else 386 ac_cv_lbl_proc_net_dev=no 387fi 388if test $ac_cv_lbl_proc_net_dev = yes; then 389 AC_DEFINE(HAVE_PROC_NET_DEV, 1, [define if you have a /proc/net/dev]) 390fi 391AC_MSG_RESULT($ac_cv_lbl_proc_net_dev) 392 393# Check for Endace DAG card support. 394AC_ARG_WITH([dag], [ --with-dag[[=DIR]] include Endace DAG support ("yes", "no" or DIR; default="yes" on BSD and Linux if present)], 395[ 396 if test "$withval" = no 397 then 398 # User doesn't want DAG support. 399 want_dag=no 400 elif test "$withval" = yes 401 then 402 # User wants DAG support but hasn't specified a directory. 403 want_dag=yes 404 else 405 # User wants DAG support and has specified a directory, so use the provided value. 406 want_dag=yes 407 dag_root=$withval 408 fi 409],[ 410 # 411 # Use DAG API if present, otherwise don't 412 # 413 want_dag=ifpresent 414]) 415 416AC_ARG_WITH([dag-includes], [ --with-dag-includes=DIR Endace DAG include directory], 417[ 418 # User wants DAG support and has specified a header directory, so use the provided value. 419 want_dag=yes 420 dag_include_dir=$withval 421],[]) 422 423AC_ARG_WITH([dag-libraries], [ --with-dag-libraries=DIR Endace DAG library directory], 424[ 425 # User wants DAG support and has specified a library directory, so use the provided value. 426 want_dag=yes 427 dag_lib_dir=$withval 428],[]) 429 430case "$V_PCAP" in 431linux|bpf|dag) 432 # 433 # We support the DAG API if we're on Linux or BSD, or if we're 434 # building a DAG-only libpcap. 435 # 436 ;; 437*) 438 # 439 # If the user explicitly requested DAG, tell them it's not 440 # supported. 441 # 442 # If they expressed no preference, don't include it. 443 # 444 if test $want_dag = yes; then 445 AC_MSG_ERROR([DAG support is only available with 'linux' 'bpf' and 'dag' packet capture types]) 446 elif test $want_dag = yes; then 447 want_dag=no 448 fi 449 ;; 450esac 451 452ac_cv_lbl_dag_api=no 453if test "$want_dag" != no; then 454 455 AC_MSG_CHECKING([whether we have DAG API headers]) 456 457 # If necessary, set default paths for DAG API headers and libraries. 458 if test -z "$dag_root"; then 459 dag_root=/usr/local 460 fi 461 462 if test -z "$dag_include_dir"; then 463 dag_include_dir="$dag_root/include" 464 fi 465 466 if test -z "$dag_lib_dir"; then 467 dag_lib_dir="$dag_root/lib" 468 fi 469 470 if test -z "$dag_tools_dir"; then 471 dag_tools_dir="$dag_root/tools" 472 fi 473 474 if test -r $dag_include_dir/dagapi.h; then 475 ac_cv_lbl_dag_api=yes 476 fi 477 AC_MSG_RESULT([$ac_cv_lbl_dag_api ($dag_include_dir)]) 478fi 479 480if test $ac_cv_lbl_dag_api = yes; then 481 482 AC_MSG_CHECKING([dagapi.o]) 483 dagapi_obj=no 484 if test -r $dag_tools_dir/dagapi.o; then 485 # 2.4.x. 486 dagapi_obj=$dag_tools_dir/dagapi.o 487 elif test -r $dag_lib_dir/dagapi.o; then 488 # 2.5.x. 489 dagapi_obj=$dag_lib_dir/dagapi.o 490 elif test -r $dag_lib_dir/libdag.a; then 491 # 2.5.x. 492 ar x $dag_lib_dir/libdag.a dagapi.o 493 if test -r ./dagapi.o; then 494 dagapi_obj=./dagapi.o 495 fi 496 fi 497 498 if test $dagapi_obj = no; then 499 AC_MSG_RESULT([no (checked $dag_lib_dir $dag_tools_dir $dag_lib_dir/libdag.a)]) 500 ac_cv_lbl_dag_api=no 501 else 502 AC_MSG_RESULT([yes ($dagapi_obj)]) 503 fi 504fi 505 506if test $ac_cv_lbl_dag_api = yes; then 507 508 AC_MSG_CHECKING([dagopts.o]) 509 dagopts_obj=no 510 if test -r $dag_tools_dir/dagopts.o; then 511 # 2.4.x. 512 dagopts_obj=$dag_tools_dir/dagopts.o 513 elif test -r $dag_lib_dir/dagopts.o; then 514 # 2.5.x. 515 dagopts_obj=$dag_lib_dir/dagopts.o 516 elif test -r $dag_lib_dir/libdag.a; then 517 # 2.5.x. 518 ar x $dag_lib_dir/libdag.a dagopts.o 519 if test -r ./dagopts.o; then 520 dagopts_obj=./dagopts.o 521 fi 522 fi 523 524 if test $dagopts_obj = no; then 525 AC_MSG_RESULT([no (checked $dag_lib_dir $dag_tools_dir $dag_lib_dir/libdag.a)]) 526 ac_cv_lbl_dag_api=no 527 else 528 AC_MSG_RESULT([yes ($dagopts_obj)]) 529 fi 530fi 531 532if test $ac_cv_lbl_dag_api = yes; then 533 # Under 2.5.x only we need to add dagreg.o. 534 if test -r $dag_include_dir/dagreg.h; then 535 AC_MSG_CHECKING([dagreg.o]) 536 dagreg_obj=no 537 if test -r $dag_lib_dir/dagreg.o; then 538 # Object file is ready and waiting. 539 dagreg_obj=$dag_lib_dir/dagreg.o 540 elif test -r $dag_lib_dir/libdag.a; then 541 # Extract from libdag.a. 542 ar x $dag_lib_dir/libdag.a dagreg.o 543 if test -r ./dagreg.o; then 544 dagreg_obj=./dagreg.o 545 fi 546 fi 547 548 if test $dagreg_obj = no; then 549 AC_MSG_RESULT([no (checked $dag_lib_dir $dag_lib_dir/libdag.a)]) 550 ac_cv_lbl_dag_api=no 551 else 552 AC_MSG_RESULT([yes ($dagreg_obj)]) 553 fi 554 fi 555fi 556 557if test $ac_cv_lbl_dag_api = yes; then 558 V_INCLS="$V_INCLS -I$dag_include_dir" 559 V_LIBS="$V_LIBS $dagapi_obj $dagopts_obj $dagreg_obj" 560 if test $V_PCAP != dag ; then 561 SSRC="pcap-dag.c" 562 fi 563 564 # See if we can find a general version string. 565 # Don't need to save and restore LIBS to prevent -ldag being 566 # included if there's a found-action (arg 3). 567 saved_ldflags=$LDFLAGS 568 LDFLAGS="-L$dag_lib_dir" 569 AC_CHECK_LIB([dag], [dag_attach_stream], [dag_version="2.5.x"], [dag_version="2.4.x"]) 570 AC_CHECK_LIB([dag],[dag_get_erf_types], [ 571 AC_DEFINE(HAVE_DAG_GET_ERF_TYPES, 1, [define if you have dag_get_erf_types()])] 572 ) 573 LDFLAGS=$saved_ldflags 574 575 if test "$dag_version" = 2.5.x; then 576 AC_DEFINE(HAVE_DAG_STREAMS_API, 1, [define if you have streams capable DAG API]) 577 fi 578 579 # See if we can find a specific version string. 580 AC_MSG_CHECKING([the DAG API version]) 581 if test -r "$dag_root/VERSION"; then 582 dag_version="`cat $dag_root/VERSION`" 583 fi 584 AC_MSG_RESULT([$dag_version]) 585 AC_DEFINE(HAVE_DAG_API, 1, [define if you have the DAG API]) 586fi 587 588if test $ac_cv_lbl_dag_api = no; then 589 if test "$want_dag" = yes; then 590 # User wanted DAG support but we couldn't find it. 591 AC_MSG_ERROR([DAG API requested, but not found at $dag_root: use --without-dag]) 592 fi 593 594 if test "$V_PCAP" = dag; then 595 # User requested "dag" capture type but the DAG API wasn't 596 # found. 597 AC_MSG_ERROR([Specifying the capture type as "dag" requires the DAG API to be present; use the --with-dag options to specify the location. (Try "./configure --help" for more information.)]) 598 fi 599fi 600 601AC_ARG_WITH(septel, [ --with-septel[[=DIR]] include Septel support (located in directory DIR, if supplied). [default=yes, on Linux, if present]], 602[ 603 if test "$withval" = no 604 then 605 want_septel=no 606 elif test "$withval" = yes 607 then 608 want_septel=yes 609 septel_root= 610 else 611 want_septel=yes 612 septel_root=$withval 613 fi 614],[ 615 # 616 # Use Septel API if present, otherwise don't 617 # 618 want_septel=ifpresent 619 septel_root=./../septel 620]) 621ac_cv_lbl_septel_api=no 622case "$V_PCAP" in 623linux|septel) 624 # 625 # We support the Septel API if we're on Linux, or if we're building 626 # a Septel-only libpcap. 627 # 628 ;; 629*) 630 # 631 # If the user explicitly requested Septel, tell them it's not 632 # supported. 633 # 634 # If they expressed no preference, don't include it. 635 # 636 if test $want_septel = yes; then 637 AC_MSG_ERROR(Septel support only available with 'linux' and 'septel' packet capture types) 638 elif test $want_septel = yes; then 639 want_septel=no 640 fi 641 ;; 642esac 643 644if test "$with_septel" != no; then 645 AC_MSG_CHECKING(whether we have Septel API) 646 647 if test -z "$septel_root"; then 648 septel_root=$srcdir/../septel 649 650 fi 651 652 septel_tools_dir="$septel_root" 653 septel_include_dir="$septel_root/INC" 654 DEF="-DHAVE_SEPTEL_API" 655 656 ac_cv_lbl_septel_api=no 657 if test -r "$septel_include_dir/msg.h"; then 658 V_INCLS="$V_INCLS -I$septel_include_dir" 659 V_DEFS="$V_DEFS $DEF" 660 V_LIBS="$V_LIBS $septel_tools_dir/asciibin.o $septel_tools_dir/bit2byte.o $septel_tools_dir/confirm.o $septel_tools_dir/fmtmsg.o $septel_tools_dir/gct_unix.o $septel_tools_dir/hqueue.o $septel_tools_dir/ident.o $septel_tools_dir/mem.o $septel_tools_dir/pack.o $septel_tools_dir/parse.o $septel_tools_dir/pool.o $septel_tools_dir/sdlsig.o $septel_tools_dir/strtonum.o $septel_tools_dir/timer.o $septel_tools_dir/trace.o " 661 662 if test "$V_PCAP" != septel ; then 663 SSRC="pcap-septel.c" 664 665 fi 666 ac_cv_lbl_septel_api=yes 667 fi 668 669 AC_MSG_RESULT($ac_cv_lbl_septel_api) 670 if test $ac_cv_lbl_septel_api = no; then 671 if test "$want_septel" = yes; then 672 AC_MSG_ERROR(Septel API not found under directory $septel_root; use --without-septel) 673 fi 674 else 675 AC_DEFINE(HAVE_SEPTEL_API, 1, [define if you have a Septel API]) 676 fi 677fi 678 679if test "$V_PCAP" = septel -a "$ac_cv_lbl_septel_api" = no; then 680 AC_MSG_ERROR(Specifying the capture type as 'septel' requires the Septel API to be present; use --with-septel=DIR) 681fi 682 683 684AC_LBL_LEX_AND_YACC(V_LEX, V_YACC, pcap_) 685if test "$V_LEX" = lex ; then 686# Some versions of lex can't handle the definitions section of scanner.l . 687# Try lexing it and complain if it can't deal. 688 AC_CACHE_CHECK([for capable lex], tcpdump_cv_capable_lex, 689 if lex -t scanner.l > /dev/null 2>&1; then 690 tcpdump_cv_capable_lex=yes 691 else 692 tcpdump_cv_capable_lex=insufficient 693 fi) 694 if test $tcpdump_cv_capable_lex = insufficient ; then 695 AC_MSG_ERROR([Your operating system's lex is insufficient to compile 696 libpcap. flex is a lex replacement that has many advantages, including 697 being able to compile libpcap. For more information, see 698 http://www.gnu.org/software/flex/flex.html .]) 699 fi 700fi 701 702DYEXT="so" 703case "$host_os" in 704 705aix*) 706 dnl Workaround to enable certain features 707 AC_DEFINE(_SUN,1,[define on AIX to get certain functions]) 708 ;; 709 710hpux9*) 711 AC_DEFINE(HAVE_HPUX9,1,[on HP-UX 9.x]) 712 ;; 713 714hpux10.0*) 715 ;; 716 717hpux10.1*) 718 ;; 719 720hpux*) 721 dnl HPUX 10.20 and above is similar to HPUX 9, but 722 dnl not the same.... 723 dnl 724 dnl XXX - DYEXT should be set to "sl" if this is building 725 dnl for 32-bit PA-RISC, but should be left as "so" for 726 dnl 64-bit PA-RISC or, I suspect, IA-64. 727 AC_DEFINE(HAVE_HPUX10_20_OR_LATER,1,[on HP-UX 10.20 or later]) 728 ;; 729 730sinix*) 731 AC_MSG_CHECKING(if SINIX compiler defines sinix) 732 AC_CACHE_VAL(ac_cv_cc_sinix_defined, 733 AC_TRY_COMPILE( 734 [], 735 [int i = sinix;], 736 ac_cv_cc_sinix_defined=yes, 737 ac_cv_cc_sinix_defined=no)) 738 AC_MSG_RESULT($ac_cv_cc_sinix_defined) 739 if test $ac_cv_cc_sinix_defined = no ; then 740 AC_DEFINE(sinix,1,[on sinix]) 741 fi 742 ;; 743 744solaris*) 745 AC_DEFINE(HAVE_SOLARIS,1,[On solaris]) 746 ;; 747 748darwin*) 749 DYEXT="dylib" 750 V_CCOPT="$V_CCOPT -fno-common" 751 ;; 752esac 753 754AC_PROG_RANLIB 755 756AC_LBL_DEVEL(V_CCOPT) 757 758AC_LBL_SOCKADDR_SA_LEN 759 760AC_LBL_SOCKADDR_STORAGE 761 762AC_LBL_HP_PPA_INFO_T_DL_MODULE_ID_1 763 764AC_LBL_UNALIGNED_ACCESS 765 766# 767# Makefile.in includes rules to generate version.h, so we assume 768# that it will be generated if autoconf is used. 769# 770AC_DEFINE(HAVE_VERSION_H, 1, [define if version.h is generated in the build procedure]) 771 772rm -f net 773ln -s ${srcdir}/bpf/net net 774 775AC_SUBST(V_CCOPT) 776AC_SUBST(V_DEFS) 777AC_SUBST(V_INCLS) 778AC_SUBST(V_LIBS) 779AC_SUBST(V_LEX) 780AC_SUBST(V_PCAP) 781AC_SUBST(V_FINDALLDEVS) 782AC_SUBST(V_RANLIB) 783AC_SUBST(V_YACC) 784AC_SUBST(SSRC) 785AC_SUBST(DYEXT) 786 787AC_PROG_INSTALL 788 789AC_CONFIG_HEADER(config.h) 790 791AC_OUTPUT(Makefile) 792 793if test -f .devel ; then 794 make depend 795fi 796exit 0 797