diff -Nru ngrep-1.45.ds2/CHANGES ngrep-1.47+ds1/CHANGES --- ngrep-1.45.ds2/CHANGES 1970-01-01 00:00:00.000000000 +0000 +++ ngrep-1.47+ds1/CHANGES 2017-09-07 21:28:35.000000000 +0000 @@ -0,0 +1,308 @@ +v1.47 + + o Fix "no VLAN support for XXX"-related problems + + o Fix truncated/garbled output (e.g. SIP over SLL/Linux cooked sockets) + + o Change exit behavior to match BSD & GNU grep (see manpage) + + o Add Solaris IPnet support + + o Update to use 32bit values where relevant + + o Emit frame # in header, useful for reference/analysis + + o Emit total received, matched upon exit (dropped unreliable PCAP stats) + + o Import debian patches related to autotools, manpage, and compilation + on other platforms + + o Fix build clean/distclean when not linked against provided GNU regex + + o Fix build --enable/--disable flag processing + + o Fix building under MS VS2012 / Win32 + + o Update to latest autotools (2017) + +v1.46.1 + + o actual bugfix for the VLAN parsing issue. prior version 1.46 expanded + the BPF filter to include IPv4/6 traffic, but the offset calculation + forgot to account for the variable presence of VLAN headers. now + ngrep detects VLAN frames in every packet and adjusts the offset on + the fly. + +v1.46 + + o configure.in: re-organized, in part to sync with downstream patches + (which were never sent upstream) + + o configure.in: removed included PCRE library, now builds against system + version when specified (default is included GNU Regex) + + o configure.in: fixed duplicate PCAP header check, which broke with the + release of libpcap 1.0 + + o configure.in: prefixed all tack-on autoconf variables from _FOO -> EXTRA_FOO + + o Makefile.in: capitulated to Debian: use tar.gz instead of tar.bz2 :-( + + o ngrep.c: Call setlocale to make isprint() work based on current + locale. See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=307496++ + + o include tcpkill functionality (-K), a long-standing downstream patch + under Debian + + o updated to latest autoconf + + o updated copyrights to 2014 + +v1.45 + + o fixed bug where setting the snaplen smaller than the minimum + necessary to read the full headres would cause garbage to be + fed into the pattern matcher + + o fixed unreported bug in IPv6/TCP packet length calculation + + o relocated the privilege-dropping routine to be invoked right + before entering the packet processing loop, to prevent + interference with necessary permissions to read or write + dumpfiles/etc. + + o fixed integer overflow with the snaplen that resulted from + an implicit signed/unsigned conversion + + o minor change to compensate for some broken compiler + optimizers + + o fixed double-free race condition during ngrep termination + + o reworked packet length calculation in the main processing + loop, improving performance and readability + + o simplified regex build logic in configure and Makefile + + o updated Win32 version to use config.h for preprocessor + definitions instead of the Visual Studio project files, + making manual tweaking and config of ngrep for Win32 + consistent with *NIX and more obvious + + o changed third-party Makefiles to properly clean up after + themselves + + o added support for radiotap (IEEE802_11_RADIO) + + o changed ``-s 0'' invocation to mimic the equivalent of tcpdump + +v1.44 + o added post-config section to configure: emit important + config option settings that weren't previously indicated + + o for BSD platforms, only emit pcap_restart warning from + configure if ``--disable-pcap-restart'' hasn't been + specified + + o added IPv6 and ICMPv6 support (all platforms); disabled by + default for common case where libpcap wasn't compiled with + IPv6 support + + o added support for displaying protocol number (``-N''), + useful for when observing raw packets + + o added support for new display method ``single'', similar to + ``byline'' but both header and data occupy one single line + + o introduced multiple levels of quiet (``-q''); the more it is + specified the more quiet ngrep becomes + + o reorganization of some internal support headers and core + code to eliminate redundancy, improve readability and + efficiency, and support new features + + o changed all integer types to be bit- and sign-explicit + +v1.43 + o healed the win32 code fork: ngrep now builds from the same + source tree for all platforms including Windows + + o re-wrote the privilege revocation logic after problems were + reported with the SPC version, and removed non-root + drop_privs capability altogether + + o fix off-by-one bug which caused ngrep to exit 1 packet early + when ``-A'' as invoked + + o Fixed problematic configtest for old broken-redhat-glibc UDP + header + + o ngrep now sets a pcap filter "ip" by default, if one is not + specified + + o header offset fix to 802.11 processing + + o support IGMP and Raw (unknown IP protocol) type packets + + o support for latest versions of libpcap (0.8.3) and winpcap + (3.1 beta 4) + + o updated configure to autoconf 2.59, and config.guess and + config.sub to latest versions + + o updated PCRE from 3.4 to 5.0 + + o and various minor changes and updates to improve ngrep + +v1.42 + o rewrote the entire configure.in/config.h.in to autoconf 2.57 + to be more consistent with normal autoconf'd programs. + corrects bugs around packaging impediments and typos + + o improved privilege dropping code and added more options to + configure to govern its behaviour + + o added flag to turn off privilege revocation logic + + o added multiline match as default and ability to enforce + previous default single-line match (bugfix + feature) + + o added ability to read bpf filter expression from file + + o added ability to force the column width to a certain size + + o added two new output modes: ``byline'', whose output + respects embedded carriage returns (useful for http dumps), + and ``none'', which prints out each dump as a single line no + matter what + + o added ability to specify alternate nonprintable character + (default is ``.'') + + o made ``-q'' effects more consistent and usable for scenarios + where ``-I'' and/or ``-O'' are being employed + + o documentation updated + +v1.41 + o added -S (set limitlen) + o added LOOP and SLL tests for portability/old libpcap'en + o added configure --safe-user and dropprivs code + o added TCP ECN congestion header recognition + o improved support for a few OSes + o relaxed some restrictions in the license (COPYRIGHT -> LICENSE) + o 802.11 support + +v1.40.1 + o MacOS X support + o ISDN (SLL) support + o OpenBSD tun device support + o updated configure.in to support specifying pcap directory + o updated config.sub and config.guess + o added scripts/multi.pl, parallel ngrep perl script + o very minor change to documentation + +v1.40 + o license change, amends the BSD advertising clause + o fixed bug from not considering caplen in payload length + calculations + o added -s (set bpf caplen) + o fixed header include for linux glibc 2.2 (time.h wasn't + being included) + +v1.39.2 + o typographical error, -p works now + +v1.39.1 + o added in AIX includes + o added BSD* includes for display updates + o added -p (don't go into promiscuous mode) + +v1.39 + o in standard match mode, the display now updates when window + sizes change + o configure now gives the user the option to compile with the + pcre library, which is more license-friendly (albeit slower) + o fixed minor bug in date printing with -t + o added configure option '--without-restart', which will + remove the pcap restart API call. Newer versions of libpcap + don't need it, and on certain platforms the API call + segfaults + o win32: compiled with winpcap's pcap.h, which apparently + breaks the pcap standard and introduces its own data link + layer types. fixes the 'unsupported interface' error folks + sometimes got when used with a 100bT adapter + +v1.38 + o binary matching + o windows compilation support + o 64-bit clean patch to regex.c + o dump and replay pcap_dump files + o officially licensed under the BSD license + o normal and diff/delta timestamps + +v1.37 + o added FDDI support + +v1.36 + o added -l (line buffer stdout) + o a few optimizations were made to shave off some cpu cycles + spent on processing each packet + o fixed bug where the blank regex algorithm wasn't even being + used + o fixed bug in blank regex algorithm that was preventing '-n' + from working + o change to compile on LinuxPPC + o change to nix potential warnings on other OSes + o change to not exit if pcap_lookupnet fails + +v1.35 + o appears that the release of 1.34 had only one of the + match optimizations: somehow only the tcp match was updated; + udp change was omitted. fixed + o moved -v (version) to -V + o added -v (grep -v), invert match + o added -d lo (null linktype) + o added ability to match proto icmp + o updated configure.in to handle old installations of pcap + more gracefully (i.e. continue on by adding the necessary + defines and just gripe) + +v1.34 + o merged in patch from Andrew W. Flury + for hex printing, made minor modification to patch to not + print off the end of the buffer + o added an optimization for the case where no regex was + specified; should account for a little speed up + +v1.33 + o fragment changes, this should be it + +v1.32 + o switched around regex -w/-i logic + o fragment bugfixes + +v1.31 + o added -A (match after) + o Makefile.in changes + o configure.in changes for solaris + o added manpage (ngrep.8) + +v1.30 + + o bugfix: wasn't malloc'ing enough for word_regex + o bugfix: case-insensitive was tolower()ing the word_regex + itself + +v1.29 + + o added -e (show empty) + o one or two safe, preemptive changes catching possible int + overflows + +v1.28 + + o added -n + o no required arguments anymore + o regex's are not required anymore, can just be bpf logic + o probably a bugfix or two diff -Nru ngrep-1.45.ds2/config.guess ngrep-1.47+ds1/config.guess --- ngrep-1.45.ds2/config.guess 2007-08-12 18:30:00.000000000 +0000 +++ ngrep-1.47+ds1/config.guess 2017-09-07 21:28:35.000000000 +0000 @@ -1,14 +1,17 @@ #! /bin/sh + +if [ -x /usr/share/misc/config.guess ]; then + exec /usr/share/misc/config.guess "$@" +fi + # Attempt to guess a canonical system name. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, -# Inc. +# Copyright 1992-2017 Free Software Foundation, Inc. -timestamp='2006-07-02' +timestamp='2017-08-08' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or +# the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but @@ -17,26 +20,22 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, USA. +# along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - - -# Originally written by Per Bothner . -# Please send patches to . Submit a context -# diff and a properly formatted ChangeLog entry. +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). +# +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # -# This script attempts to guess a canonical system name similar to -# config.sub. If it succeeds, it prints the system name on stdout, and -# exits with 0. Otherwise, it exits with 1. +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess # -# The plan is that this can be called by configure scripts if you -# don't specify an explicit build system type. +# Please send patches to . + me=`echo "$0" | sed -e 's,.*/,,'` @@ -56,8 +55,7 @@ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -Free Software Foundation, Inc. +Copyright 1992-2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -139,12 +137,33 @@ UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown +case "${UNAME_SYSTEM}" in +Linux|GNU|GNU/*) + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + LIBC=gnu + + eval $set_cc_for_build + cat <<-EOF > $dummy.c + #include + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #else + LIBC=gnu + #endif + EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + ;; +esac + # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or - # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward @@ -154,22 +173,33 @@ # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + /sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || \ + echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + earmv*) + arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` + machine=${arch}${endian}-unknown + ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. + # to ELF recently (or will in the future) and ABI. case "${UNAME_MACHINE_ARCH}" in + earm*) + os=netbsdelf + ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep __ELF__ >/dev/null + | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? @@ -179,7 +209,14 @@ fi ;; *) - os=netbsd + os=netbsd + ;; + esac + # Determine ABI tags. + case "${UNAME_MACHINE_ARCH}" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` ;; esac # The OS release @@ -192,18 +229,26 @@ release='-gnu' ;; *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" + echo "${machine}-${os}${release}${abi}" + exit ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE} + exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; @@ -216,13 +261,19 @@ *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; + *:Sortix:*:*) + echo ${UNAME_MACHINE}-unknown-sortix + exit ;; + *:Redox:*:*) + echo ${UNAME_MACHINE}-unknown-redox + exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on @@ -232,43 +283,46 @@ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; + UNAME_MACHINE=alphaev5 ;; "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; + UNAME_MACHINE=alphaev56 ;; "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; + UNAME_MACHINE=alphapca56 ;; "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; + UNAME_MACHINE=alphapca57 ;; "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; + UNAME_MACHINE=alphaev6 ;; "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; + UNAME_MACHINE=alphaev67 ;; "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; + UNAME_MACHINE=alphaev69 ;; "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; + UNAME_MACHINE=alphaev7 ;; "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; + UNAME_MACHINE=alphaev79 ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit ;; + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + exitcode=$? + trap '' 0 + exit $exitcode ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead @@ -294,12 +348,12 @@ echo s390-ibm-zvmoe exit ;; *:OS400:*:*) - echo powerpc-ibm-os400 + echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; - arm:riscos:*:*|arm:RISCOS:*:*) + arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) @@ -323,14 +377,33 @@ case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; + s390x:SunOS:*:*) + echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; - i86pc:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux${UNAME_RELEASE} + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + eval $set_cc_for_build + SUN_ARCH=i386 + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH=x86_64 + fi + fi + echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize @@ -352,7 +425,7 @@ exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} @@ -374,23 +447,23 @@ # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} - exit ;; + exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit ;; + echo m68k-milan-mint${UNAME_RELEASE} + exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit ;; + echo m68k-hades-mint${UNAME_RELEASE} + exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit ;; + echo m68k-unknown-mint${UNAME_RELEASE} + exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; @@ -460,8 +533,8 @@ echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ @@ -474,7 +547,7 @@ else echo i586-dg-dgux${UNAME_RELEASE} fi - exit ;; + exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; @@ -531,15 +604,16 @@ echo rs6000-ibm-aix3.2 fi exit ;; - *:AIX:*:[45]) + *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` + if [ -x /usr/bin/lslpp ] ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi @@ -574,58 +648,58 @@ 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 - esac ;; - esac + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH=hppa2.0n ;; + 64) HP_ARCH=hppa2.0w ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 + esac ;; + esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + sed 's/^ //' << EOF >$dummy.c - #define _HPUX_SOURCE - #include - #include - - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); - - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac - if [ ${HP_ARCH} = "hppa2.0w" ] + if [ ${HP_ARCH} = hppa2.0w ] then eval $set_cc_for_build @@ -638,12 +712,12 @@ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | - grep __LP64__ >/dev/null + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ then - HP_ARCH="hppa2.0w" + HP_ARCH=hppa2.0w else - HP_ARCH="hppa64" + HP_ARCH=hppa64 fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} @@ -710,22 +784,22 @@ exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd - exit ;; + exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi - exit ;; + exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd - exit ;; + exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd - exit ;; + exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd - exit ;; + exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; @@ -748,15 +822,15 @@ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; + FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} @@ -768,37 +842,52 @@ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) - case ${UNAME_MACHINE} in - pc98) - echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + UNAME_PROCESSOR=`/usr/bin/uname -p` + case ${UNAME_PROCESSOR} in amd64) - echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - *) - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + UNAME_PROCESSOR=x86_64 ;; + i386) + UNAME_PROCESSOR=i586 ;; esac + echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; - i*:MINGW*:*) + *:MINGW64*:*) + echo ${UNAME_MACHINE}-pc-mingw64 + exit ;; + *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; + *:MSYS*:*) + echo ${UNAME_MACHINE}-pc-msys + exit ;; i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; - x86:Interix*:[3456]*) - echo i586-pc-interix${UNAME_RELEASE} - exit ;; - EM64T:Interix*:[3456]*) - echo x86_64-unknown-interix${UNAME_RELEASE} - exit ;; + *:Interix*:*) + case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + authenticamd | genuineintel | EM64T) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + IA64) + echo ia64-unknown-interix${UNAME_RELEASE} + exit ;; + esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; + 8664:Windows_NT:*) + echo x86_64-pc-mks + exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we @@ -819,200 +908,169 @@ exit ;; *:GNU:*:*) # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; + aarch64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + arc:Linux:*:* | arceb:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; arm*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + eval $set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + else + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi + else + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf + fi + fi exit ;; avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; cris:Linux:*:*) - echo cris-axis-linux-gnu + echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; crisv32:Linux:*:*) - echo crisv32-axis-linux-gnu + echo ${UNAME_MACHINE}-axis-linux-${LIBC} + exit ;; + e2k:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; frv:Linux:*:*) - echo frv-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + hexagon:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + i*86:Linux:*:*) + echo ${UNAME_MACHINE}-pc-linux-${LIBC} exit ;; ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + k1om:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; - mips:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips - #undef mipsel - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mipsel - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips - #else - CPU= - #endif - #endif -EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^CPU/{ - s: ::g - p - }'`" - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - mips64:Linux:*:*) + mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU - #undef mips64 - #undef mips64el + #undef ${UNAME_MACHINE} + #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mips64el + CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips64 + CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^CPU/{ - s: ::g - p - }'`" - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ;; - or32:Linux:*:*) - echo or32-unknown-linux-gnu + mips64el:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu + openrisc*:Linux:*:*) + echo or1k-unknown-linux-${LIBC} exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu + or32:Linux:*:* | or1k*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + padre:Linux:*:*) + echo sparc-unknown-linux-${LIBC} + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; + PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; + PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; + *) echo hppa-unknown-linux-${LIBC} ;; esac exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-${LIBC} + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-${LIBC} + exit ;; + ppc64le:Linux:*:*) + echo powerpc64le-unknown-linux-${LIBC} + exit ;; + ppcle:Linux:*:*) + echo powerpcle-unknown-linux-${LIBC} + exit ;; + riscv32:Linux:*:* | riscv64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux + echo ${UNAME_MACHINE}-ibm-linux-${LIBC} exit ;; sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + tile*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-gnu + echo ${UNAME_MACHINE}-dec-linux-${LIBC} exit ;; x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu + echo ${UNAME_MACHINE}-pc-linux-${LIBC} + exit ;; + xtensa*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - # Set LC_ALL=C to ensure ld outputs messages in English. - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ - | sed -ne '/supported targets:/!d - s/[ ][ ]*/ /g - s/.*supported targets: *// - s/ .*// - p'` - case "$ld_supported_targets" in - elf32-i386) - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" - ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" - exit ;; - coff-i386) - echo "${UNAME_MACHINE}-pc-linux-gnucoff" - exit ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" - exit ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else - #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif - #ifdef __dietlibc__ - LIBC=dietlibc - #endif -EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^LIBC/{ - s: ::g - p - }'`" - test x"${LIBC}" != x && { - echo "${UNAME_MACHINE}-pc-linux-${LIBC}" - exit - } - test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } - ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both @@ -1020,11 +1078,11 @@ echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. + # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) @@ -1041,7 +1099,7 @@ i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) @@ -1056,7 +1114,7 @@ fi exit ;; i*86:*:5:[678]*) - # UnixWare 7.x, OpenUNIX and OpenServer 6. + # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; @@ -1084,10 +1142,13 @@ exit ;; pc:*:*:*) # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i386. - echo i386-pc-msdosdjgpp - exit ;; + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configure will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp + exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; @@ -1122,8 +1183,18 @@ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4; exit; } ;; + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; @@ -1136,7 +1207,7 @@ rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) @@ -1156,10 +1227,10 @@ echo ns32k-sni-sysv fi exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm @@ -1185,11 +1256,11 @@ exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} + echo mips-nec-sysv${UNAME_RELEASE} else - echo mips-unknown-sysv${UNAME_RELEASE} + echo mips-unknown-sysv${UNAME_RELEASE} fi - exit ;; + exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; @@ -1199,6 +1270,12 @@ BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; + x86_64:Haiku:*:*) + echo x86_64-unknown-haiku + exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; @@ -1208,6 +1285,18 @@ SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux${UNAME_RELEASE} + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux${UNAME_RELEASE} + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux${UNAME_RELEASE} + exit ;; + SX-ACE:SUPER-UX:*:*) + echo sxace-nec-superux${UNAME_RELEASE} + exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; @@ -1216,14 +1305,43 @@ exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - case $UNAME_PROCESSOR in - unknown) UNAME_PROCESSOR=powerpc ;; - esac + eval $set_cc_for_build + if test "$UNAME_PROCESSOR" = unknown ; then + UNAME_PROCESSOR=powerpc + fi + if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc + fi + fi + elif test "$UNAME_PROCESSOR" = i386 ; then + # Avoid executing cc on OS X 10.9, as it ships with a stub + # that puts up a graphical alert prompting to install + # developer tools. Any system running Mac OS X 10.7 or + # later (Darwin 11 and later) is required to have a 64-bit + # processor. This is not true of the ARM version of Darwin + # that Apple uses in portable devices. + UNAME_PROCESSOR=x86_64 + fi echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then + if test "$UNAME_PROCESSOR" = x86; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi @@ -1232,12 +1350,18 @@ *:QNX:*:4*) echo i386-pc-qnx exit ;; - NSE-?:NONSTOP_KERNEL:*:*) + NEO-*:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk${UNAME_RELEASE} + exit ;; + NSE-*:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; - NSR-?:NONSTOP_KERNEL:*:*) + NSR-*:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; + NSX-*:NONSTOP_KERNEL:*:*) + echo nsx-tandem-nsk${UNAME_RELEASE} + exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; @@ -1251,7 +1375,7 @@ # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. - if test "$cputype" = "386"; then + if test "$cputype" = 386; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" @@ -1277,13 +1401,13 @@ echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} + echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) - UNAME_MACHINE=`(uname -p) 2>/dev/null` + UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; @@ -1293,179 +1417,36 @@ echo i386-pc-xenix exit ;; i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'` exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; -esac - -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - -eval $set_cc_for_build -cat >$dummy.c < -# include -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); -#else -#include - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix\n"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); -#endif - -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif - int version; - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - if (version < 4) - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - else - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); - exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); -#else - printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); - -#endif - -#if defined (vax) -# if !defined (ultrix) -# include -# if defined (BSD) -# if BSD == 43 - printf ("vax-dec-bsd4.3\n"); exit (0); -# else -# if BSD == 199006 - printf ("vax-dec-bsd4.3reno\n"); exit (0); -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# endif -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# else - printf ("vax-dec-ultrix\n"); exit (0); -# endif -#endif - -#if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); -#endif - - exit (1); -} -EOF - -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd - exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi + i*86:AROS:*:*) + echo ${UNAME_MACHINE}-pc-aros exit ;; - c34*) - echo c34-convex-bsd + x86_64:VMkernel:*:*) + echo ${UNAME_MACHINE}-unknown-esx exit ;; - c38*) - echo c38-convex-bsd + amd64:Isilon\ OneFS:*:*) + echo x86_64-unknown-onefs exit ;; - c4*) - echo c4-convex-bsd - exit ;; - esac -fi +esac cat >&2 < in order to provide the needed -information to handle your system. +If $0 has already been updated, send the following data and any +information you think might be pertinent to config-patches@gnu.org to +provide the necessary information to handle your system. config.guess timestamp = $timestamp diff -Nru ngrep-1.45.ds2/config.h.in ngrep-1.47+ds1/config.h.in --- ngrep-1.45.ds2/config.h.in 2007-08-12 18:30:00.000000000 +0000 +++ ngrep-1.47+ds1/config.h.in 2017-09-07 21:28:35.000000000 +0000 @@ -1,7 +1,5 @@ /* - * $Id: config.h.in,v 1.5 2006/11/28 13:36:02 jpr5 Exp $ - * - * Copyright (c) 2006 Jordan Ritter + * Copyright (c) 2017 Jordan Ritter * * Please refer to the LICENSE file for more information. * @@ -9,18 +7,22 @@ #define USE_PCRE @USE_PCRE@ #define USE_IPv6 @USE_IPv6@ +#define USE_TCPKILL @USE_TCPKILL@ +#define USE_VLAN_HACK @USE_VLAN_HACK@ #define HAVE_DLT_RAW @HAVE_DLT_RAW@ +#define HAVE_DLT_PFLOG @HAVE_DLT_PFLOG@ #define HAVE_DLT_LOOP @HAVE_DLT_LOOP@ #define HAVE_DLT_LINUX_SLL @HAVE_DLT_LINUX_SLL@ #define HAVE_DLT_IEEE802_11 @HAVE_DLT_IEEE802_11@ #define HAVE_DLT_IEEE802_11_RADIO @HAVE_DLT_IEEE802_11_RADIO@ - -#define HAVE_DUMB_UDPHDR @HAVE_DUMB_UDPHDR@ +#define HAVE_DLT_IPNET @HAVE_DLT_IPNET@ #define USE_PCAP_RESTART @USE_PCAP_RESTART@ +#if USE_PCAP_RESTART #define PCAP_RESTART_FUNC @PCAP_RESTART_FUNC@ +extern void PCAP_RESTART_FUNC(); +#endif #define USE_DROPPRIVS @USE_DROPPRIVS@ #define DROPPRIVS_USER @DROPPRIVS_USER@ - diff -Nru ngrep-1.45.ds2/config.sub ngrep-1.47+ds1/config.sub --- ngrep-1.45.ds2/config.sub 2007-08-12 18:30:00.000000000 +0000 +++ ngrep-1.47+ds1/config.sub 2017-09-07 21:28:35.000000000 +0000 @@ -1,44 +1,45 @@ #! /bin/sh + +if [ -x /usr/share/misc/config.sub ]; then + exec /usr/share/misc/config.sub "$@" +fi + # Configuration validation subroutine script. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, -# Inc. - -timestamp='2006-09-20' - -# This file is (in principle) common to ALL GNU software. -# The presence of a machine in this file suggests that SOME GNU software -# can handle that machine. It does not imply ALL GNU software can. -# -# This file is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or +# Copyright 1992-2017 Free Software Foundation, Inc. + +timestamp='2017-04-02' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, USA. +# along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). -# Please send patches to . Submit a context -# diff and a properly formatted ChangeLog entry. +# Please send patches to . # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub + # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. @@ -49,16 +50,15 @@ # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS Canonicalize a configuration name. @@ -72,8 +72,7 @@ version="\ GNU config.sub ($timestamp) -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -Free Software Foundation, Inc. +Copyright 1992-2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -92,7 +91,7 @@ echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - - ) # Use stdin as input. + - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" @@ -120,12 +119,18 @@ # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in - nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ - uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ + linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ + kopensolaris*-gnu* | cloudabi*-eabi* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; + android-linux) + os=-linux-android + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown + ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] @@ -139,1034 +144,1226 @@ ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray) - os= - basic_machine=$1 - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) - os=-chorusos - basic_machine=$1 - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco6) - os=-sco5v6 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5v6*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*) - os=-lynxos - ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` - ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` - ;; - -psos*) - os=-psos - ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis | -knuth | -cray | -microblaze*) + os= + basic_machine=$1 + ;; + -bluegene*) + os=-cnk + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*178) + os=-lynxos178 + ;; + -lynx*5) + os=-lynxos5 + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ - | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ - | bfin \ - | c4x | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ - | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | mcore \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64vr | mips64vrel \ - | mips64orion | mips64orionel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | mt \ - | msp430 \ - | nios | nios2 \ - | ns16k | ns32k \ - | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ - | pyramid \ - | score \ - | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu | strongarm \ - | tahoe | thumb | tic4x | tic80 | tron \ - | v850 | v850e \ - | we32k \ - | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ - | z8k) - basic_machine=$basic_machine-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12) - # Motorola 68HC11/12. - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; - ms1) - basic_machine=mt-unknown - ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* | avr32-* \ - | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ - | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ - | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ - | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | mt-* \ - | msp430-* \ - | nios-* | nios2-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ - | pyramid-* \ - | romp-* | rs6000-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tron-* \ - | v850-* | v850e-* | vax-* \ - | we32k-* \ - | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ - | xstormy16-* | xtensa-* \ - | ymp-* \ - | z8k-*) - ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - abacus) - basic_machine=abacus-unknown - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amd64) - basic_machine=x86_64-pc - ;; - amd64-*) - basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - craynv) - basic_machine=craynv-cray - os=-unicosmp - ;; - cr16c) - basic_machine=cr16c-unknown - os=-elf - ;; - crds | unos) - basic_machine=m68k-crds - ;; - crisv32 | crisv32-* | etraxfs*) - basic_machine=crisv32-axis - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - crx) - basic_machine=crx-unknown - os=-elf - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec - os=-tops10 - ;; - decsystem20* | dec20*) - basic_machine=pdp10-dec - os=-tops20 - ;; - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - djgpp) - basic_machine=i586-pc - os=-msdosdjgpp - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon - ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd - ;; - encore | umax | mmax) - basic_machine=ns32k-encore - ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose - ;; - fx2800) - basic_machine=i860-alliant - ;; - genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 - ;; - h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux - ;; - hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp - ;; - hp9k3[2-9][0-9]) - basic_machine=m68k-hp - ;; - hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp - ;; - hp9k78[0-9] | hp78[0-9]) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppa-next) - os=-nextstep3 - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm - ;; -# I'm not sure what "Sysv32" means. Should this be sysv3.2? - i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 - ;; - i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 - ;; - i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv - ;; - i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach - ;; - i386-vsta | vsta) - basic_machine=i386-unknown - os=-vsta - ;; - iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) - ;; - *) - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - mingw32) - basic_machine=i386-pc - os=-mingw32 - ;; - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - ms1-*) - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos - ;; - news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv - ;; - next | m*-next ) - basic_machine=m68k-next - case $os in - -nextstep* ) - ;; - -ns2*) - os=-nextstep2 - ;; - *) - os=-nextstep3 - ;; - esac - ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - openrisc | openrisc-*) - basic_machine=or32-unknown - ;; - os400) - basic_machine=powerpc-ibm - os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k - ;; - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pc98) - basic_machine=i386-pc - ;; - pc98-*) - basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; - pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; - pentium4) - basic_machine=i786-pc - ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium4-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc) basic_machine=powerpc-unknown - ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown - ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64) basic_machine=powerpc64-unknown - ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) - basic_machine=powerpc64le-unknown - ;; - ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; - rdos) - basic_machine=i386-pc - os=-rdos - ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) - basic_machine=romp-ibm - ;; - s390 | s390-*) - basic_machine=s390-ibm - ;; - s390x | s390x-*) - basic_machine=s390x-ibm - ;; - sa29200) - basic_machine=a29k-amd - os=-udi - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; - sde) - basic_machine=mipsisa32-sde - os=-elf - ;; - sei) - basic_machine=mips-sei - os=-seiux - ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; - sh64) - basic_machine=sh64-unknown - ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; - spur) - basic_machine=spur-unknown - ;; - st2000) - basic_machine=m68k-tandem - ;; - stratus) - basic_machine=i860-stratus - os=-sysv4 - ;; - sun2) - basic_machine=m68000-sun - ;; - sun2os3) - basic_machine=m68000-sun - os=-sunos3 - ;; - sun2os4) - basic_machine=m68000-sun - os=-sunos4 - ;; - sun3os3) - basic_machine=m68k-sun - os=-sunos3 - ;; - sun3os4) - basic_machine=m68k-sun - os=-sunos4 - ;; - sun4os3) - basic_machine=sparc-sun - os=-sunos3 - ;; - sun4os4) - basic_machine=sparc-sun - os=-sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun - os=-solaris2 - ;; - sun3 | sun3-*) - basic_machine=m68k-sun - ;; - sun4) - basic_machine=sparc-sun - ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun - ;; - sv1) - basic_machine=sv1-cray - os=-unicos - ;; - symmetry) - basic_machine=i386-sequent - os=-dynix - ;; - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tic55x | c55x*) - basic_machine=tic55x-unknown - os=-coff - ;; - tic6x | c6x*) - basic_machine=tic6x-unknown - os=-coff - ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; - tpf) - basic_machine=s390x-ibm - os=-tpf - ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; - v810 | necv810) - basic_machine=v810-nec - os=-none - ;; - vaxv) - basic_machine=vax-dec - os=-sysv - ;; - vms) - basic_machine=vax-dec - os=-vms - ;; - vpp*|vx|vx-*) - basic_machine=f301-fujitsu - ;; - vxworks960) - basic_machine=i960-wrs - os=-vxworks - ;; - vxworks68) - basic_machine=m68k-wrs - os=-vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs - os=-vxworks - ;; - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; - xbox) - basic_machine=i686-pc - os=-mingw32 - ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; - none) - basic_machine=none-none - os=-none - ;; + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ + | aarch64 | aarch64_be \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arceb \ + | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ + | avr | avr32 \ + | ba \ + | be32 | be64 \ + | bfin \ + | c4x | c8051 | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | e2k | epiphany \ + | fido | fr30 | frv | ft32 \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ + | i370 | i860 | i960 | ia16 | ia64 \ + | ip2k | iq2000 \ + | k1om \ + | le32 | le64 \ + | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa32r6 | mipsisa32r6el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64r6 | mipsisa64r6el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nds32 | nds32le | nds32be \ + | nios | nios2 | nios2eb | nios2el \ + | ns16k | ns32k \ + | open8 | or1k | or1knd | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pru \ + | pyramid \ + | riscv32 | riscv64 \ + | rl78 | rx \ + | score \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu \ + | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ + | ubicom32 \ + | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ + | visium \ + | wasm32 \ + | we32k \ + | x86 | xc16x | xstormy16 | xtensa \ + | z8k | z80) + basic_machine=$basic_machine-unknown + ;; + c54x) + basic_machine=tic54x-unknown + ;; + c55x) + basic_machine=tic55x-unknown + ;; + c6x) + basic_machine=tic6x-unknown + ;; + leon|leon[3-9]) + basic_machine=sparc-$basic_machine + ;; + m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + ms1) + basic_machine=mt-unknown + ;; + + strongarm | thumb | xscale) + basic_machine=arm-unknown + ;; + xgate) + basic_machine=$basic_machine-unknown + os=-none + ;; + xscaleeb) + basic_machine=armeb-unknown + ;; + + xscaleel) + basic_machine=armel-unknown + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | aarch64-* | aarch64_be-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ + | ba-* \ + | be32-* | be64-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* \ + | c8051-* | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | e2k-* | elxsi-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | hexagon-* \ + | i*86-* | i860-* | i960-* | ia16-* | ia64-* \ + | ip2k-* | iq2000-* \ + | k1om-* \ + | le32-* | le64-* \ + | lm32-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ + | microblaze-* | microblazeel-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64octeon-* | mips64octeonel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa32r6-* | mipsisa32r6el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64r6-* | mipsisa64r6el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipsr5900-* | mipsr5900el-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nds32-* | nds32le-* | nds32be-* \ + | nios-* | nios2-* | nios2eb-* | nios2el-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | open8-* \ + | or1k*-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ + | pru-* \ + | pyramid-* \ + | riscv32-* | riscv64-* \ + | rl78-* | romp-* | rs6000-* | rx-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ + | tahoe-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tile*-* \ + | tron-* \ + | ubicom32-* \ + | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ + | vax-* \ + | visium-* \ + | wasm32-* \ + | we32k-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* \ + | xstormy16-* | xtensa*-* \ + | ymp-* \ + | z8k-* | z80-*) + ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + abacus) + basic_machine=abacus-unknown + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aros) + basic_machine=i386-pc + os=-aros + ;; + asmjs) + basic_machine=asmjs-unknown + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; + c54x-*) + basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c55x-*) + basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c6x-*) + basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16 | cr16-*) + basic_machine=cr16-unknown + os=-elf + ;; + crds | unos) + basic_machine=m68k-crds + ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + e500v[12]) + basic_machine=powerpc-unknown + os=$os"spe" + ;; + e500v[12]-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + os=$os"spe" + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + leon-*|leon[3-9]-*) + basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` + ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + microblaze*) + basic_machine=microblaze-xilinx + ;; + mingw64) + basic_machine=x86_64-pc + os=-mingw64 + ;; + mingw32) + basic_machine=i686-pc + os=-mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + moxiebox) + basic_machine=moxie-unknown + os=-moxiebox + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; + msys) + basic_machine=i686-pc + os=-msys + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + nacl) + basic_machine=le32-unknown + os=-nacl + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + neo-tandem) + basic_machine=neo-tandem + ;; + nse-tandem) + basic_machine=nse-tandem + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + nsx-tandem) + basic_machine=nsx-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + openrisc | openrisc-*) + basic_machine=or32-unknown + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + parisc) + basic_machine=hppa-unknown + os=-linux + ;; + parisc-*) + basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc | ppcbe) basic_machine=powerpc-unknown + ;; + ppc-* | ppcbe-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + os=-rdos + ;; + rdos32) + basic_machine=i386-pc + os=-rdos + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sh5el) + basic_machine=sh5le-unknown + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparclite-wrs | simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + strongarm-* | thumb-*) + basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tile*) + basic_machine=$basic_machine-unknown + os=-linux-gnu + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + wasm32) + basic_machine=wasm32-unknown + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + xbox) + basic_machine=i686-pc + os=-mingw32 + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + xscale-* | xscalee[bl]-*) + basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + z80-*-coff) + basic_machine=z80-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. - w89k) - basic_machine=hppa1.1-winbond - ;; - op50n) - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; - mmix) - basic_machine=mmix-knuth - ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; - sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; - sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; - orion105) - basic_machine=clipper-highlevel - ;; - mac | mpw | mac-mpw) - basic_machine=m68k-apple - ;; - pmac | pmac-mpw) - basic_machine=powerpc-apple - ;; - *-unknown) - # Make sure to match an already-canonicalized machine name. - ;; - *) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + romp) + basic_machine=romp-ibm + ;; + mmix) + basic_machine=mmix-knuth + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in - *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` - ;; - *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` - ;; - *) - ;; + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; esac # Decode manufacturer-specific aliases for certain operating systems. @@ -1174,189 +1371,199 @@ if [ x"$os" != x"" ] then case $os in - # First match some system type aliases - # that might get confused with valid system types. - # -solaris* is a basic system type, with this one exception. - -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` - ;; - -solaris) - os=-solaris2 - ;; - -svr4*) - os=-sysv4 - ;; - -unixware*) - os=-sysv4.2uw - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -openbsd* | -solidbsd* \ - | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ - | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ - | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os - ;; - esac - ;; - -nto-qnx*) - ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; - -linux-dietlibc) - os=-linux-dietlibc - ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; - -os400*) - os=-os400 - ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf - ;; - -utek*) - os=-bsd - ;; - -dynix*) - os=-bsd - ;; - -acis*) - os=-aos - ;; - -atheos*) - os=-atheos - ;; - -syllable*) - os=-syllable - ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -nova*) - os=-rtmk-nova - ;; - -ns2 ) - os=-nextstep2 - ;; - -nsk*) - os=-nsk - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; - -tpf*) - os=-tpf - ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 - ;; - -svr3) - os=-sysv3 - ;; - -sysvr4) - os=-sysv4 - ;; - # This must come after -sysvr4. - -sysv*) - ;; - -ose*) - os=-ose - ;; - -es1800*) - os=-ose - ;; - -xenix) - os=-xenix - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - os=-mint - ;; - -aros*) - os=-aros - ;; - -kaos*) - os=-kaos - ;; - -zvmoe) - os=-zvmoe - ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -auroraux) + os=-auroraux + ;; + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ + | -sym* | -kopensolaris* | -plan9* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* | -cloudabi* | -sortix* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \ + | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-musl* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ + | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -os400*) + os=-os400 + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -syllable*) + os=-syllable + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -nova*) + os=-rtmk-nova + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -tpf*) + os=-tpf + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -aros*) + os=-aros + ;; + -zvmoe) + os=-zvmoe + ;; + -dicos*) + os=-dicos + ;; + -nacl*) + ;; + -ios) + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; esac else @@ -1371,163 +1578,181 @@ # system, and we'll never get to this point. case $basic_machine in - score-*) - os=-elf - ;; - spu-*) - os=-elf - ;; - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; - c4x-* | tic4x-*) - os=-coff - ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) - os=-ultrix4.2 - ;; - m68*-apollo) - os=-domain - ;; - i386-sun) - os=-sunos4.0.2 - ;; - m68000-sun) - os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 - ;; - m68*-cisco) - os=-aout - ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; - or32-*) - os=-coff - ;; - *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - *-be) - os=-beos - ;; - *-haiku) - os=-haiku - ;; - *-ibm) - os=-aix - ;; - *-knuth) - os=-mmixware - ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; - *-oki) - os=-proelf - ;; - *-hp) - os=-hpux - ;; - *-hitachi) - os=-hiux - ;; - i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv - ;; - *-cbm) - os=-amigaos - ;; - *-dg) - os=-dgux - ;; - *-dolphin) - os=-sysv3 - ;; - m68k-ccur) - os=-rtu - ;; - m88k-omron*) - os=-luna - ;; - *-next ) - os=-nextstep - ;; - *-sequent) - os=-ptx - ;; - *-crds) - os=-unos - ;; - *-ns) - os=-genix - ;; - i370-*) - os=-mvs - ;; - *-next) - os=-nextstep3 - ;; - *-gould) - os=-sysv - ;; - *-highlevel) - os=-bsd - ;; - *-encore) - os=-bsd - ;; - *-sgi) - os=-irix - ;; - *-siemens) - os=-sysv4 - ;; - *-masscomp) - os=-rtu - ;; - f30[01]-fujitsu | f700-fujitsu) - os=-uxpv - ;; - *-rom68k) - os=-coff - ;; - *-*bug) - os=-coff - ;; - *-apple) - os=-macos - ;; - *-atari*) - os=-mint - ;; - *) - os=-none - ;; + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + c4x-* | tic4x-*) + os=-coff + ;; + c8051-*) + os=-elf + ;; + hexagon-*) + os=-elf + ;; + tic54x-*) + os=-coff + ;; + tic55x-*) + os=-coff + ;; + tic6x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + ;; + m68*-cisco) + os=-aout + ;; + mep-*) + os=-elf + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + pru-*) + os=-elf + ;; + *-be) + os=-beos + ;; + *-haiku) + os=-haiku + ;; + *-ibm) + os=-aix + ;; + *-knuth) + os=-mmixware + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; esac fi @@ -1535,74 +1760,74 @@ # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in - *-unknown) - case $os in - -riscix*) - vendor=acorn - ;; - -sunos*) - vendor=sun - ;; - -aix*) - vendor=ibm - ;; - -beos*) - vendor=be - ;; - -hpux*) - vendor=hp - ;; - -mpeix*) - vendor=hp - ;; - -hiux*) - vendor=hitachi - ;; - -unos*) - vendor=crds - ;; - -dgux*) - vendor=dg - ;; - -luna*) - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs* | -opened*) - vendor=ibm - ;; - -os400*) - vendor=ibm - ;; - -ptx*) - vendor=sequent - ;; - -tpf*) - vendor=ibm - ;; - -vxsim* | -vxworks* | -windiss*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - -hms*) - vendor=hitachi - ;; - -mpw* | -macos*) - vendor=apple - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - vendor=atari - ;; - -vos*) - vendor=stratus - ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -cnk*|-aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -os400*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -tpf*) + vendor=ibm + ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; esac echo $basic_machine$os diff -Nru ngrep-1.45.ds2/configure ngrep-1.47+ds1/configure --- ngrep-1.45.ds2/configure 2007-08-12 18:30:00.000000000 +0000 +++ ngrep-1.47+ds1/configure 2017-09-07 21:28:35.000000000 +0000 @@ -1,56 +1,81 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.60. +# Generated by GNU Autoconf 2.69. +# +# +# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. +# # -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else - case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac fi -BIN_SH=xpg4; export BIN_SH # for Tru64 -DUALCASE=1; export DUALCASE # for MKS sh -# PATH needs CR -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' else - PATH_SEPARATOR=: + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' fi - rm -f conf$$.sh + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' fi -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } fi @@ -59,20 +84,19 @@ # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) -as_nl=' -' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. -case $0 in +as_myself= +case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done IFS=$as_save_IFS ;; @@ -83,352 +107,366 @@ as_myself=$0 fi if test ! -f "$as_myself"; then - echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - { (exit 1); exit 1; } + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 fi -# Work around bugs in pre-3.0 UWIN ksh. -for as_var in ENV MAIL MAILPATH -do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - fi -done - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - - -# Name of the executable. -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE # CDPATH. -$as_unset CDPATH - +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then - if (eval ":") 2>/dev/null; then - as_have_required=yes + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST else - as_have_required=no + case \`(set -o) 2>/dev/null\` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac fi - - if test $as_have_required = yes && (eval ": -(as_func_return () { - (exit \$1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = \"\$1\" ); then - : +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : + +else + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1 +test -x / || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1" + if (eval "$as_required") 2>/dev/null; then : + as_have_required=yes else - exitcode=1 - echo positional parameters were not saved. + as_have_required=no fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : -test \$exitcode = 0) || { (exit 1); exit 1; } - -( - as_lineno_1=\$LINENO - as_lineno_2=\$LINENO - test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && - test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } -") 2> /dev/null; then - : else - as_candidate_shells= - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /usr/bin/posix$PATH_SEPARATOR/bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - case $as_dir in + as_found=: + case $as_dir in #( /*) for as_base in sh bash ksh sh5; do - as_candidate_shells="$as_candidate_shells $as_dir/$as_base" + # Try only shells that exist, to save several forks. + as_shell=$as_dir/$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + CONFIG_SHELL=$as_shell as_have_required=yes + if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + break 2 +fi +fi done;; esac + as_found=false done +$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi; } IFS=$as_save_IFS - for as_shell in $as_candidate_shells $SHELL; do - # Try only shells that exist, to save several forks. - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { ("$as_shell") 2> /dev/null <<\_ASEOF -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac -fi -BIN_SH=xpg4; export BIN_SH # for Tru64 -DUALCASE=1; export DUALCASE # for MKS sh - -: -_ASEOF -}; then - CONFIG_SHELL=$as_shell - as_have_required=yes - if { "$as_shell" 2> /dev/null <<\_ASEOF -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac -fi -BIN_SH=xpg4; export BIN_SH # for Tru64 -DUALCASE=1; export DUALCASE # for MKS sh - -: -(as_func_return () { - (exit $1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} - -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = "$1" ); then - : -else - exitcode=1 - echo positional parameters were not saved. + if test "x$CONFIG_SHELL" != x; then : + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 +fi + + if test x$as_have_required = xno; then : + $as_echo "$0: This script requires a shell more modern than all" + $as_echo "$0: the shells that I found on your system." + if test x${ZSH_VERSION+set} = xset ; then + $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" + $as_echo "$0: be upgraded to zsh 4.3.4 or later." + else + $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, +$0: including any error possibly output before this +$0: message. Then install a modern shell, or manually run +$0: the script under such a shell if you do have one." + fi + exit 1 fi - -test $exitcode = 0) || { (exit 1); exit 1; } - -( - as_lineno_1=$LINENO - as_lineno_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } - -_ASEOF -}; then - break fi - fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS - done - - if test "x$CONFIG_SHELL" != x; then - for as_var in BASH_ENV ENV - do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - done - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} -fi +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status - if test $as_have_required = no; then - echo This script requires a shell more modern than all the - echo shells that I found on your system. Please install a - echo modern shell, or manually run the script under such a - echo shell if you do have one. - { (exit 1); exit 1; } -fi +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" -fi -fi +} # as_fn_mkdir_p +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith -(eval "as_func_return () { - (exit \$1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error -exitcode=0 -if as_func_success; then - : +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. + as_expr=false fi -if as_func_ret_success; then - : +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. + as_basename=false fi -if ( set x; as_func_ret_success y && test x = \"\$1\" ); then - : +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname else - exitcode=1 - echo positional parameters were not saved. + as_dirname=false fi -test \$exitcode = 0") || { - echo No shell found that supports shell functions. - echo Please tell autoconf@gnu.org about your system, - echo including any error possibly output before this - echo message -} +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits - as_lineno_1=$LINENO - as_lineno_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line after each line using $LINENO; the second 'sed' - # does the real work. The second script uses 'N' to pair each - # line-number line with the line containing $LINENO, and appends - # trailing '-' during substitution so that $LINENO is not a special - # case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # scripts with optimization help from Paolo Bonzini. Blame Lee - # E. McMahon (1931-1989) for sed's syntax. :-) + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= @@ -445,9 +483,12 @@ s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 - { (exit 1); exit 1; }; } + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). @@ -456,75 +497,55 @@ exit } - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in +case `echo -n x` in #((((( -n*) - case `echo 'x\c'` in + case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. - *) ECHO_C='\c';; + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir - mkdir conf$$.dir + mkdir conf$$.dir 2>/dev/null fi -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then - as_mkdir_p=: + as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi -# Find out whether ``test -x'' works. Don't use a zero-byte file, as -# systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - as_executable_p="test -x" -else - as_executable_p=: -fi -rm -f conf$$.file +as_test_x='test -x' +as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -533,11 +554,11 @@ as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - -exec 7<&0 &1 +test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` @@ -552,7 +573,6 @@ subdirs= MFLAGS= MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME= @@ -560,87 +580,102 @@ PACKAGE_VERSION= PACKAGE_STRING= PACKAGE_BUGREPORT= +PACKAGE_URL= ac_unique_file="ngrep.c" ac_default_prefix=/usr/local -ac_subst_vars='SHELL -PATH_SEPARATOR -PACKAGE_NAME -PACKAGE_TARNAME -PACKAGE_VERSION -PACKAGE_STRING -PACKAGE_BUGREPORT -exec_prefix -prefix -program_transform_name -bindir -sbindir -libexecdir -datarootdir -datadir -sysconfdir -sharedstatedir -localstatedir -includedir -oldincludedir -docdir -infodir -htmldir -dvidir -pdfdir -psdir -libdir -localedir -mandir -DEFS -ECHO_C -ECHO_N -ECHO_T -LIBS -build_alias -host_alias -target_alias -build -build_cpu -build_vendor -build_os -host -host_cpu -host_vendor -host_os -target -target_cpu -target_vendor -target_os -CC -CFLAGS -LDFLAGS -CPPFLAGS -ac_ct_CC -EXEEXT -OBJEXT -CPP -GREP -EGREP -ac_prefix_program -REGEX_DIR -REGEX_OBJS -OS -STRIPFLAG -PCAP_INCLUDE -PCAP_LINK -EXTRA_DEFINES -EXTRA_INCLUDES -EXTRA_LIBS +ac_subst_vars='LTLIBOBJS LIBOBJS -LTLIBOBJS' +EXTRA_LIBS +EXTRA_OBJS +EXTRA_LDFLAGS +EXTRA_INCLUDES +EXTRA_DEFINES +STRIPFLAG +OS +REGEX_OBJS +REGEX_DIR +ac_prefix_program +EGREP +GREP +CPP +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +target_os +target_vendor +target_cpu +target +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +runstatedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_URL +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' ac_subst_files='' +ac_user_opts=' +enable_option_checking +with_dropprivs_user +enable_dropprivs +enable_ipv6 +enable_pcap_restart +enable_pcre +enable_tcpkill +enable_vlan_hack +with_pcap_includes +' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS +LIBS CPPFLAGS CPP' @@ -648,6 +683,8 @@ # Initialize some variables set by options. ac_init_help= ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null @@ -679,6 +716,7 @@ sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' +runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE}' @@ -703,8 +741,9 @@ fi case $ac_option in - *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *) ac_optarg=yes ;; + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. @@ -746,13 +785,20 @@ datarootdir=$ac_optarg ;; -disable-* | --disable-*) - ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - eval enable_$ac_feature=no ;; + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; @@ -765,13 +811,20 @@ dvidir=$ac_optarg ;; -enable-* | --enable-*) - ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - eval enable_$ac_feature=\$ac_optarg ;; + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ @@ -916,6 +969,15 @@ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst | --runs \ + | --run | --ru | --r) + ac_prev=runstatedir ;; + -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ + | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ + | --run=* | --ru=* | --r=*) + runstatedir=$ac_optarg ;; + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ @@ -962,22 +1024,36 @@ ac_init_version=: ;; -with-* | --with-*) - ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package| sed 's/-/_/g'` - eval with_$ac_package=\$ac_optarg ;; + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) - ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package | sed 's/-/_/g'` - eval with_$ac_package=no ;; + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. @@ -997,26 +1073,26 @@ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; - -*) { echo "$as_me: error: unrecognized option: $ac_option -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. - expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 - { (exit 1); exit 1; }; } + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. - echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac @@ -1024,23 +1100,36 @@ if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` - { echo "$as_me: error: missing argument to $ac_option" >&2 - { (exit 1); exit 1; }; } + as_fn_error $? "missing argument to $ac_option" fi -# Be sure to have absolute directory names. +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir + libdir localedir mandir runstatedir do eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac - { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; } + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' @@ -1054,8 +1143,6 @@ if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe - echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi @@ -1070,23 +1157,21 @@ ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - { echo "$as_me: error: Working directory cannot be determined" >&2 - { (exit 1); exit 1; }; } + as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - { echo "$as_me: error: pwd does not report name of working directory" >&2 - { (exit 1); exit 1; }; } + as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. - ac_confdir=`$as_dirname -- "$0" || -$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$0" : 'X\(//\)[^/]' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -echo X"$0" | + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -1113,13 +1198,11 @@ fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 - { (exit 1); exit 1; }; } + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 - { (exit 1); exit 1; }; } + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then @@ -1159,7 +1242,7 @@ --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking...' messages + -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files @@ -1167,9 +1250,9 @@ Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] + [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] + [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify @@ -1179,25 +1262,26 @@ For better control, use the options below. Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF @@ -1214,31 +1298,36 @@ cat <<\_ACEOF Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --disable-pcap-restart disable libpcap restart in parser --disable-dropprivs disable privilege dropping logic --enable-ipv6 enable IPv6 (and ICMPv6) support - --enable-pcre use PCRE instead of GNU regex + --enable-pcap-restart enable BPF lexer restart bugfix for older versions of PCAP (default off) + --enable-pcre use PCRE instead of GNU regex (default GNU) + --enable-tcpkill enable connection killing support (default off) + --disable-vlan-hack disable automatic inclusion of VLAN frames (default on) Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-dropprivs-user=user use different user for dropprivs - --with-pcap-includes specify the pcap include directory + --with-dropprivs-user=user use different user for dropprivs + --with-pcap-includes=dir specify the pcap include directory Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory - CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. +Report bugs to the package provider. _ACEOF ac_status=$? fi @@ -1246,15 +1335,17 @@ if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; @@ -1290,7 +1381,7 @@ echo && $SHELL "$ac_srcdir/configure" --help=recursive else - echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done @@ -1300,21 +1391,187 @@ if $ac_init_version; then cat <<\_ACEOF configure -generated by GNU Autoconf 2.60 +generated by GNU Autoconf 2.69 -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +# ac_fn_c_try_compile LINENO +# -------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_compile + +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_cpp + +# ac_fn_c_try_run LINENO +# ---------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes +# that executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + ac_retval=0 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_run + +# ac_fn_c_try_link LINENO +# ----------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + test -x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_link cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was -generated by GNU Autoconf 2.60. Invocation command line was +generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -1350,8 +1607,8 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - echo "PATH: $as_dir" -done + $as_echo "PATH: $as_dir" + done IFS=$as_save_IFS } >&5 @@ -1385,12 +1642,12 @@ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) - ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in - 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) - ac_configure_args1="$ac_configure_args1 '$ac_arg'" + as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else @@ -1406,13 +1663,13 @@ -* ) ac_must_keep_next=true ;; esac fi - ac_configure_args="$ac_configure_args '$ac_arg'" + as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done -$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } -$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there @@ -1424,11 +1681,9 @@ { echo - cat <<\_ASBOX -## ---------------- ## + $as_echo "## ---------------- ## ## Cache variables. ## -## ---------------- ## -_ASBOX +## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( @@ -1437,12 +1692,13 @@ case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 -echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( - *) $as_unset $ac_var ;; + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done @@ -1461,128 +1717,136 @@ ) echo - cat <<\_ASBOX -## ----------------- ## + $as_echo "## ----------------- ## ## Output variables. ## -## ----------------- ## -_ASBOX +## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in - *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac - echo "$ac_var='\''$ac_val'\''" + $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then - cat <<\_ASBOX -## ------------------- ## + $as_echo "## ------------------- ## ## File substitutions. ## -## ------------------- ## -_ASBOX +## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in - *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac - echo "$ac_var='\''$ac_val'\''" + $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then - cat <<\_ASBOX -## ----------- ## + $as_echo "## ----------- ## ## confdefs.h. ## -## ----------- ## -_ASBOX +## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && - echo "$as_me: caught signal $ac_signal" - echo "$as_me: exit $exit_status" + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h +$as_echo "/* confdefs.h */" > confdefs.h + # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF - cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF - cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF - cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF - cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF +cat >>confdefs.h <<_ACEOF +#define PACKAGE_URL "$PACKAGE_URL" +_ACEOF + # Let the site file select an alternate cache file if it wants to. -# Prefer explicitly selected file to automatically selected ones. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE if test -n "$CONFIG_SITE"; then - set x "$CONFIG_SITE" + # We do not want a PATH search for config.site. + case $CONFIG_SITE in #(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac elif test "x$prefix" != xNONE; then - set x "$prefix/share/config.site" "$prefix/etc/config.site" + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site else - set x "$ac_default_prefix/share/config.site" \ - "$ac_default_prefix/etc/config.site" + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site fi -shift -for ac_site_file +for ac_site_file in "$ac_site_file1" "$ac_site_file2" do - if test -r "$ac_site_file"; then - { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 -echo "$as_me: loading site script $ac_site_file" >&6;} + test "x$ac_site_file" = xNONE && continue + if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special - # files actually), so we avoid doing that. - if test -f "$cache_file"; then - { echo "$as_me:$LINENO: loading cache $cache_file" >&5 -echo "$as_me: loading cache $cache_file" >&6;} + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else - { echo "$as_me:$LINENO: creating cache $cache_file" >&5 -echo "$as_me: creating cache $cache_file" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi @@ -1596,60 +1860,56 @@ eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) - { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) - { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then - { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 -echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 -echo "$as_me: former value: $ac_old_val" >&2;} - { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 -echo "$as_me: current value: $ac_new_val" >&2;} - ac_cache_corrupted=: + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in - *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then - { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 -echo "$as_me: error: changes in the environment can compromise the build" >&2;} - { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 -echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} - { (exit 1); exit 1; }; } -fi - - - - - - - - - - - - - - - - + { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -1659,9 +1919,12 @@ -echo -echo 'Configuring System ...' -echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Configuring System ..." >&5 +$as_echo "Configuring System ..." >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do @@ -1680,9 +1943,7 @@ fi done if test -z "$ac_aux_dir"; then - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 -echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, @@ -1696,35 +1957,27 @@ # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 -echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} - { (exit 1); exit 1; }; } - -{ echo "$as_me:$LINENO: checking build system type" >&5 -echo $ECHO_N "checking build system type... $ECHO_C" >&6; } -if test "${ac_cv_build+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if ${ac_cv_build+:} false; then : + $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && - { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 -echo "$as_me: error: cannot guess build type; you must specify one" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 -echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi -{ echo "$as_me:$LINENO: result: $ac_cv_build" >&5 -echo "${ECHO_T}$ac_cv_build" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; -*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 -echo "$as_me: error: invalid value of canonical build" >&2;} - { (exit 1); exit 1; }; };; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' @@ -1740,28 +1993,24 @@ case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac -{ echo "$as_me:$LINENO: checking host system type" >&5 -echo $ECHO_N "checking host system type... $ECHO_C" >&6; } -if test "${ac_cv_host+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if ${ac_cv_host+:} false; then : + $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 -echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi -{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5 -echo "${ECHO_T}$ac_cv_host" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; -*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 -echo "$as_me: error: invalid value of canonical host" >&2;} - { (exit 1); exit 1; }; };; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' @@ -1777,28 +2026,24 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac -{ echo "$as_me:$LINENO: checking target system type" >&5 -echo $ECHO_N "checking target system type... $ECHO_C" >&6; } -if test "${ac_cv_target+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5 +$as_echo_n "checking target system type... " >&6; } +if ${ac_cv_target+:} false; then : + $as_echo_n "(cached) " >&6 else if test "x$target_alias" = x; then ac_cv_target=$ac_cv_host else ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || - { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&5 -echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5 fi fi -{ echo "$as_me:$LINENO: result: $ac_cv_target" >&5 -echo "${ECHO_T}$ac_cv_target" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5 +$as_echo "$ac_cv_target" >&6; } case $ac_cv_target in *-*-*) ;; -*) { { echo "$as_me:$LINENO: error: invalid value of canonical target" >&5 -echo "$as_me: error: invalid value of canonical target" >&2;} - { (exit 1); exit 1; }; };; +*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;; esac target=$ac_cv_target ac_save_IFS=$IFS; IFS='-' @@ -1820,6 +2065,7 @@ test "$program_prefix$program_suffix$program_transform_name" = \ NONENONEs,x,x, && program_prefix=${target_alias}- + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -1828,10 +2074,10 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1841,25 +2087,25 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -1868,10 +2114,10 @@ ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. @@ -1881,25 +2127,25 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then @@ -1907,12 +2153,8 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC @@ -1925,10 +2167,10 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1938,25 +2180,25 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -1965,10 +2207,10 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1979,18 +2221,18 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then @@ -2009,11 +2251,11 @@ fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -2024,10 +2266,10 @@ do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2037,25 +2279,25 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -2068,10 +2310,10 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. @@ -2081,25 +2323,25 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -2111,12 +2353,8 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC @@ -2126,51 +2364,37 @@ fi -test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&5 -echo "$as_me: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. -echo "$as_me:$LINENO: checking for C compiler version" >&5 -ac_compiler=`set X $ac_compile; echo $2` -{ (ac_try="$ac_compiler --version >&5" +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compiler --version >&5") 2>&5 +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -v >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compiler -v >&5") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -V >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compiler -V >&5") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -2182,59 +2406,55 @@ } _ACEOF ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.exe b.out" +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. -{ echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 -echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; } -ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` -# -# List of possible output files, starting from the most likely. -# The algorithm is not robust to junk in `.', hence go to wildcards (a.*) -# only as a last resort. b.out is created by i960 compilers. -ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' -# -# The IRIX 6 linker writes into existing files which may not be -# executable, retaining their permissions. Remove them first so a -# subsequent execution test works. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + ac_rmfiles= for ac_file in $ac_files do case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles -if { (ac_try="$ac_link_default" +if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. -for ac_file in $ac_files +for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi @@ -2251,76 +2471,43 @@ test "$ac_cv_exeext" = no && ac_cv_exeext= else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { echo "$as_me:$LINENO: error: C compiler cannot create executables -See \`config.log' for more details." >&5 -echo "$as_me: error: C compiler cannot create executables -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; } + ac_file='' fi +if test -z "$ac_file"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext -{ echo "$as_me:$LINENO: result: $ac_file" >&5 -echo "${ECHO_T}$ac_file" >&6; } - -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ echo "$as_me:$LINENO: checking whether the C compiler works" >&5 -echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; } -# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 -# If not cross compiling, check that we can run a simple program. -if test "$cross_compiling" != yes; then - if { ac_try='./$ac_file' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { echo "$as_me:$LINENO: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } - fi - fi -fi -{ echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } -rm -f a.out a.exe conftest$ac_cv_exeext b.out +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 -echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; } -{ echo "$as_me:$LINENO: result: $cross_compiling" >&5 -echo "${ECHO_T}$cross_compiling" >&6; } - -{ echo "$as_me:$LINENO: checking for suffix of executables" >&5 -echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; } -if { (ac_try="$ac_link" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } +if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with @@ -2328,37 +2515,90 @@ for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else - { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest conftest$ac_cv_exeext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; -rm -f conftest$ac_cv_exeext -{ echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 -echo "${ECHO_T}$ac_cv_exeext" >&6; } + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -{ echo "$as_me:$LINENO: checking for suffix of object files" >&5 -echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; } -if test "${ac_cv_objext+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } +if ${ac_cv_objext+:} false; then : + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -2370,51 +2610,46 @@ } _ACEOF rm -f conftest.o conftest.obj -if { (ac_try="$ac_compile" +if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;; + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } fi - rm -f conftest.$ac_cv_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 -echo "${ECHO_T}$ac_cv_objext" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT -{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } -if test "${ac_cv_c_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -2428,71 +2663,34 @@ return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_compiler_gnu=no + ac_compiler_gnu=no fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi -{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } -GCC=`test $ac_compiler_gnu = yes && echo yes` +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS -{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 -echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } -if test "${ac_cv_prog_cc_g+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if ${ac_cv_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -2503,51 +2701,11 @@ return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - CFLAGS="" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -2558,52 +2716,12 @@ return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +if ac_fn_c_try_compile "$LINENO"; then : - ac_c_werror_flag=$ac_save_c_werror_flag +else + ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -2614,59 +2732,18 @@ return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi -{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then @@ -2682,23 +2759,18 @@ CFLAGS= fi fi -{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 -echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } -if test "${ac_cv_prog_cc_c89+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if ${ac_cv_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include -#include -#include +struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); @@ -2750,48 +2822,9 @@ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" - rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - fi - rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done @@ -2802,17 +2835,19 @@ # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) - { echo "$as_me:$LINENO: result: none needed" >&5 -echo "${ECHO_T}none needed" >&6; } ;; + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; xno) - { echo "$as_me:$LINENO: result: unsupported" >&5 -echo "${ECHO_T}unsupported" >&6; } ;; + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" - { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac +if test "x$ac_cv_prog_cc_c89" != xno; then : +fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -2826,15 +2861,15 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 -echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + if ${ac_cv_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" @@ -2848,11 +2883,7 @@ # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include @@ -2861,90 +2892,34 @@ #endif Syntax error _ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +if ac_fn_c_try_cpp "$LINENO"; then : +else # Broken: fails on valid input. continue fi - -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then +if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - # Passes both tests. ac_preproc_ok=: break fi - -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : break fi @@ -2956,8 +2931,8 @@ else ac_cv_prog_CPP=$CPP fi -{ echo "$as_me:$LINENO: result: $CPP" >&5 -echo "${ECHO_T}$CPP" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do @@ -2967,11 +2942,7 @@ # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include @@ -2980,97 +2951,40 @@ #endif Syntax error _ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +if ac_fn_c_try_cpp "$LINENO"; then : +else # Broken: fails on valid input. continue fi - -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then +if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - # Passes both tests. ac_preproc_ok=: break fi - -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - : +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + else - { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&5 -echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c @@ -3080,45 +2994,40 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 -echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; } -if test "${ac_cv_path_GREP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # Extract the first word of "grep ggrep" to use in msg output -if test -z "$GREP"; then -set dummy grep ggrep; ac_prog_name=$2 -if test "${ac_cv_path_GREP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if ${ac_cv_path_GREP+:} false; then : + $as_echo_n "(cached) " >&6 else + if test -z "$GREP"; then ac_path_GREP_found=false -# Loop through the user's path and test for each of PROGNAME-LIST -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_GREP" && $as_executable_p "$ac_path_GREP"; } || continue - # Check for GNU ac_path_GREP and select it if it is found. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_GREP" || continue +# Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 - echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" - echo 'GREP' >> "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - ac_count=`expr $ac_count + 1` + as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" @@ -3130,77 +3039,61 @@ rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac - - $ac_path_GREP_found && break 3 + $ac_path_GREP_found && break 3 + done + done done -done - -done IFS=$as_save_IFS - - -fi - -GREP="$ac_cv_path_GREP" -if test -z "$GREP"; then - { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 -echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} - { (exit 1); exit 1; }; } -fi - + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi else ac_cv_path_GREP=$GREP fi - fi -{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 -echo "${ECHO_T}$ac_cv_path_GREP" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" -{ echo "$as_me:$LINENO: checking for egrep" >&5 -echo $ECHO_N "checking for egrep... $ECHO_C" >&6; } -if test "${ac_cv_path_EGREP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if ${ac_cv_path_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else - # Extract the first word of "egrep" to use in msg output -if test -z "$EGREP"; then -set dummy egrep; ac_prog_name=$2 -if test "${ac_cv_path_EGREP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else + if test -z "$EGREP"; then ac_path_EGREP_found=false -# Loop through the user's path and test for each of PROGNAME-LIST -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_EGREP" && $as_executable_p "$ac_path_EGREP"; } || continue - # Check for GNU ac_path_EGREP and select it if it is found. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP" || continue +# Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 - echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" - echo 'EGREP' >> "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - ac_count=`expr $ac_count + 1` + as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" @@ -3212,46 +3105,31 @@ rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac - - $ac_path_EGREP_found && break 3 + $ac_path_EGREP_found && break 3 + done + done done -done - -done IFS=$as_save_IFS - - -fi - -EGREP="$ac_cv_path_EGREP" -if test -z "$EGREP"; then - { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 -echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} - { (exit 1); exit 1; }; } -fi - + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi else ac_cv_path_EGREP=$EGREP fi - fi fi -{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 -echo "${ECHO_T}$ac_cv_path_EGREP" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" -{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } -if test "${ac_cv_header_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if ${ac_cv_header_stdc+:} false; then : + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include @@ -3266,64 +3144,23 @@ return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_header_stdc=no + ac_cv_header_stdc=no fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then - : + $EGREP "memchr" >/dev/null 2>&1; then : + else ac_cv_header_stdc=no fi @@ -3333,18 +3170,14 @@ if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then - : + $EGREP "free" >/dev/null 2>&1; then : + else ac_cv_header_stdc=no fi @@ -3354,14 +3187,10 @@ if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then + if test "$cross_compiling" = yes; then : : else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include @@ -3379,57 +3208,31 @@ #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : -( exit $ac_status ) -ac_cv_header_stdc=no +else + ac_cv_header_stdc=no fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi - fi fi -{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then -cat >>confdefs.h <<\_ACEOF -#define STDC_HEADERS 1 -_ACEOF +$as_echo "#define STDC_HEADERS 1" >>confdefs.h fi @@ -3437,13 +3240,13 @@ if test -n "`which tcpdump 2> /dev/null`"; then if test "x$prefix" = xNONE; then - echo $ECHO_N "checking for prefix by $ECHO_C" >&6 + $as_echo_n "checking for prefix by " >&6 # Extract the first word of "tcpdump", so it can be a program name with args. set dummy tcpdump; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_path_ac_prefix_program+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_prefix_program+:} false; then : + $as_echo_n "(cached) " >&6 else case $ac_prefix_program in [\\/]* | ?:[\\/]*) @@ -3455,14 +3258,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_ac_prefix_program="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done IFS=$as_save_IFS ;; @@ -3470,11 +3273,11 @@ fi ac_prefix_program=$ac_cv_path_ac_prefix_program if test -n "$ac_prefix_program"; then - { echo "$as_me:$LINENO: result: $ac_prefix_program" >&5 -echo "${ECHO_T}$ac_prefix_program" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prefix_program" >&5 +$as_echo "$ac_prefix_program" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -3484,7 +3287,7 @@ X"$ac_prefix_program" : 'X\(//\)[^/]' \| \ X"$ac_prefix_program" : 'X\(//\)$' \| \ X"$ac_prefix_program" : 'X\(/\)' \| . 2>/dev/null || -echo X"$ac_prefix_program" | +$as_echo X"$ac_prefix_program" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -3507,7 +3310,7 @@ X"$prefix" : 'X\(//\)[^/]' \| \ X"$prefix" : 'X\(//\)$' \| \ X"$prefix" : 'X\(/\)' \| . 2>/dev/null || -echo X"$prefix" | +$as_echo X"$prefix" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -3530,36 +3333,17 @@ fi - EXTRA_DEFINES="" EXTRA_INCLUDES="" +EXTRA_LDFLAGS="" +EXTRA_OBJS="" EXTRA_LIBS="" -# Check whether --enable-pcap-restart was given. -if test "${enable_pcap_restart+set}" = set; then - enableval=$enable_pcap_restart; - use_pcap_restart="$enableval" - -else - - use_pcap_restart="yes" - -fi - - -if test $use_pcap_restart = yes; then - USE_PCAP_RESTART="1" -else - USE_PCAP_RESTART="0" -fi - - - # Check whether --with-dropprivs-user was given. -if test "${with_dropprivs_user+set}" = set; then +if test "${with_dropprivs_user+set}" = set; then : withval=$with_dropprivs_user; DROPPRIVS_USER="$withval" @@ -3572,7 +3356,7 @@ # Check whether --enable-dropprivs was given. -if test "${enable_dropprivs+set}" = set; then +if test "${enable_dropprivs+set}" = set; then : enableval=$enable_dropprivs; use_dropprivs="$enableval" @@ -3591,7 +3375,7 @@ # Check whether --enable-ipv6 was given. -if test "${enable_ipv6+set}" = set; then +if test "${enable_ipv6+set}" = set; then : enableval=$enable_ipv6; use_ipv6="$enableval" @@ -3609,179 +3393,196 @@ fi - -# Check whether --enable-pcre was given. -if test "${enable_pcre+set}" = set; then - enableval=$enable_pcre; - use_pcre="$enableval" +# Check whether --enable-pcap-restart was given. +if test "${enable_pcap_restart+set}" = set; then : + enableval=$enable_pcap_restart; + use_pcap_restart="$enableval" else - use_pcre="no" + use_pcap_restart="no" fi -if test $use_pcre = yes; then +if test $use_pcap_restart = yes; then + USE_PCAP_RESTART="1" +else + USE_PCAP_RESTART="0" +fi + - echo - echo 'Configuring Perl-Compatible Regular Expression (PCRE) library ...' - echo - REGEX_DIR='pcre-5.0' - REGEX_OBJS="$REGEX_DIR/pcre.o $REGEX_DIR/study.o" - USE_PCRE="1" +REGEX_DIR='' +REGEX_OBJS='' +# Check whether --enable-pcre was given. +if test "${enable_pcre+set}" = set; then : + enableval=$enable_pcre; use_pcre="$enableval" else + use_pcre="no" +fi - echo - echo 'Configuring GNU Regular Expression library ...' - echo + +if test use_pcre = yes; then + USE_PCRE="1" + EXTRA_LIBS="$EXTRA_LIBS -lpcre" +else + USE_PCRE="0" + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: Configuring GNU Regular Expression library ..." >&5 +$as_echo "Configuring GNU Regular Expression library ..." >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } REGEX_DIR='regex-0.12' REGEX_OBJS="$REGEX_DIR/regex.o" - USE_PCRE="0" -fi + ( cd $REGEX_DIR && ./configure ) -( cd $REGEX_DIR && ./configure ) + EXTRA_INCLUDES="$EXTRA_INCLUDES -I$REGEX_DIR" +fi -echo -echo 'Configuring Network Grep (ngrep) ...' -echo +# Check whether --enable-tcpkill was given. +if test "${enable_tcpkill+set}" = set; then : + enableval=$enable_tcpkill; + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libnet_init_packet in -lnet" >&5 +$as_echo_n "checking for libnet_init_packet in -lnet... " >&6; } +if ${ac_cv_lib_net_libnet_init_packet+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lnet $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char libnet_init_packet (); +int +main () +{ +return libnet_init_packet (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_net_libnet_init_packet=yes +else + ac_cv_lib_net_libnet_init_packet=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_net_libnet_init_packet" >&5 +$as_echo "$ac_cv_lib_net_libnet_init_packet" >&6; } +if test "x$ac_cv_lib_net_libnet_init_packet" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBNET 1 +_ACEOF + LIBS="-lnet $LIBS" -STRIPFLAG="-s" -HAVE_DUMB_UDPHDR="0" +else + echo !!! error: tcpkill feature enabled but no libnet found; exit +fi -case "$target_os" in + use_tcpkill="$enableval" -*linux*) - OS=LINUX +else + use_tcpkill="no" +fi - { echo "$as_me:$LINENO: checking for a broken redhat glibc udphdr declaration" >&5 -echo $ECHO_N "checking for a broken redhat glibc udphdr declaration... $ECHO_C" >&6; } - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ +if test $use_tcpkill = yes; then + USE_TCPKILL="1" + EXTRA_OBJS="$EXTRA_OBJS tcpkill.o" + EXTRA_DEFINES="$EXTRA_DEFINES $(libnet-config --defines)" + EXTRA_LIBS="$EXTRA_LIBS $(libnet-config --libs)" +else + USE_TCPKILL="0" +fi -#ifndef __FAVOR_BSD -#define __FAVOR_BSD -#endif -#ifndef _BSD_SOURCE -#define _BSD_SOURCE 1 -#endif +# Check whether --enable-vlan-hack was given. +if test "${enable_vlan_hack+set}" = set; then : + enableval=$enable_vlan_hack; use_vlan_hack="$enableval" +else + use_vlan_hack="yes" +fi -#undef _GNU_SOURCE -#include +if test $use_vlan_hack = yes; then + USE_VLAN_HACK="1" +else + USE_VLAN_HACK="0" +fi -int -main () -{ -struct udphdr foo; -unsigned short bar = foo.source; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - HAVE_DUMB_UDPHDR="1" && echo "yes" +# Check whether --with-pcap-includes was given. +if test "${with_pcap_includes+set}" = set; then : + withval=$with_pcap_includes; PCAP_DIR=$withval else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - HAVE_DUMB_UDPHDR="0" && echo "no" + PCAP_DIR="`eval echo -n ${includedir}` \ + /usr/include /usr/include/pcap \ + /usr/local/include /usr/local/include/pcap \ + /opt/local/include /opt/local/include/pcap \ + /usr/share/include /usr/share/include/pcap" + fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ;; -*bsd*) - OS=BSD +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Configuring Network Grep ..." >&5 +$as_echo "Configuring Network Grep ..." >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } - if test "$USE_PCAP_RESTART" = "0"; then +STRIPFLAG="-s" - { echo "$as_me:$LINENO: WARNING: Your OS ($target_os) may have an old libpcap installation. -If the resulting ngrep binary segfaults when a BPF filter is specified -without an ngrep match string then you should reconfigure ngrep with -the option \`\`--disable-pcap-restart''. -" >&5 -echo "$as_me: WARNING: Your OS ($target_os) may have an old libpcap installation. -If the resulting ngrep binary segfaults when a BPF filter is specified -without an ngrep match string then you should reconfigure ngrep with -the option \`\`--disable-pcap-restart''. -" >&2;} - sleep 3 +case "$target_os" in - fi +*linux*) + OS=LINUX - ;; -*solaris*) - OS=SOLARIS + ;; + +*bsd*) + OS=BSD + + + ;; +*solaris*) + OS=SOLARIS -{ echo "$as_me:$LINENO: checking for socket in -lsocket" >&5 -echo $ECHO_N "checking for socket in -lsocket... $ECHO_C" >&6; } -if test "${ac_cv_lib_socket_socket+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket in -lsocket" >&5 +$as_echo_n "checking for socket in -lsocket... " >&6; } +if ${ac_cv_lib_socket_socket+:} false; then : + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsocket $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -3799,55 +3600,18 @@ return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_socket_socket=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_socket_socket=no + ac_cv_lib_socket_socket=no fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_socket_socket" >&5 -echo "${ECHO_T}$ac_cv_lib_socket_socket" >&6; } -if test $ac_cv_lib_socket_socket = yes; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_socket" >&5 +$as_echo "$ac_cv_lib_socket_socket" >&6; } +if test "x$ac_cv_lib_socket_socket" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBSOCKET 1 _ACEOF @@ -3855,22 +3619,17 @@ LIBS="-lsocket $LIBS" else - echo no socket in -lsocket\?; exit + as_fn_error $? "no socket in -lsocket" "$LINENO" 5 fi - -{ echo "$as_me:$LINENO: checking for gethostbyname in -lnsl" >&5 -echo $ECHO_N "checking for gethostbyname in -lnsl... $ECHO_C" >&6; } -if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5 +$as_echo_n "checking for gethostbyname in -lnsl... " >&6; } +if ${ac_cv_lib_nsl_gethostbyname+:} false; then : + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lnsl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. @@ -3888,55 +3647,18 @@ return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_nsl_gethostbyname=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_nsl_gethostbyname=no + ac_cv_lib_nsl_gethostbyname=no fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5 -echo "${ECHO_T}$ac_cv_lib_nsl_gethostbyname" >&6; } -if test $ac_cv_lib_nsl_gethostbyname = yes; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5 +$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } +if test "x$ac_cv_lib_nsl_gethostbyname" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBNSL 1 _ACEOF @@ -3944,54 +3666,54 @@ LIBS="-lnsl $LIBS" else - echo no gethostbyname in -lnsl\?; exit + as_fn_error $? "no gethostbyname in -lnsl" "$LINENO" 5 fi - EXTRA_LIBS="$EXTRA_LIBS -lnsl -lsocket" + EXTRA_LIBS="$EXTRA_LIBS -lnsl -lsocket" - ;; + ;; *osf*) - OS=OSF1 + OS=OSF1 - EXTRA_DEFINES="$EXTRA_DEFINES -D__STDC__=2" + EXTRA_DEFINES="$EXTRA_DEFINES -D__STDC__=2" - ;; + ;; *hpux11*) - OS=BSD + OS=BSD - ;; + ;; *aix*) - OS=AIX + OS=AIX - ;; + ;; *darwin*) - OS=MACOSX + OS=MACOSX - STRIPFLAG="" + STRIPFLAG="" - ;; + ;; *) - OS=UNKNOWN_OS + OS=UNKNOWN_OS - { echo "$as_me:$LINENO: WARNING: Your OS ($target_os) is not supported yet. + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your OS ($target_os) is not supported yet. Try playing with the build host and target options. " >&5 -echo "$as_me: WARNING: Your OS ($target_os) is not supported yet. +$as_echo "$as_me: WARNING: Your OS ($target_os) is not supported yet. Try playing with the build host and target options. " >&2;} - sleep 3 + sleep 3 - ;; + ;; esac @@ -4000,70 +3722,186 @@ EXTRA_DEFINES="$EXTRA_DEFINES -D_BSD_SOURCE=1 -D__FAVOR_BSD=1" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a complete set of pcap headers" >&5 +$as_echo_n "checking for a complete set of pcap headers... " >&6; } -{ echo "$as_me:$LINENO: checking for a complete set of pcap headers" >&5 -echo $ECHO_N "checking for a complete set of pcap headers... $ECHO_C" >&6; } - -possible_dirs="`eval echo -n ${includedir}` \ - /usr/include /usr/include/pcap \ - /usr/local/include /usr/local/include/pcap \ - /usr/share/include /usr/share/include/pcap" +pcap_base="" +for dir in $PCAP_DIR ; do + if test -d $dir -a -r "$dir/pcap.h"; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <$dir/pcap.h> -# Check whether --with-pcap-includes was given. -if test "${with_pcap_includes+set}" = set; then - withval=$with_pcap_includes; PCAP_DIR=$withval +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "PCAP_VERSION_MAJOR" >/dev/null 2>&1; then : + found=$dir else - PCAP_DIR=$possible_dirs + found="" fi +rm -f conftest* -pcap_dir="" -for dir in $PCAP_DIR ; do - if test -d $dir -a -r "$dir/pcap.h" ; then - if test -n "$pcap_dir" -a "$pcap_dir" != "$dir"; then - echo - echo; echo more than one set found in: - echo $pcap_dir - echo $dir - echo; echo please wipe out all unused pcap installations - exit + if test -n "$found" -a "$found" != "$pcap_base"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: more than one set found in:" >&5 +$as_echo "more than one set found in:" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pcap_base" >&5 +$as_echo "$pcap_base" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $found" >&5 +$as_echo "$found" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + as_fn_error $? "please wipe out all unused pcap installations" "$LINENO" 5 else - pcap_dir="$dir" + pcap_base="$dir" fi + fi done -if test -z "$pcap_dir" ; then - echo no; echo !!! couldn\'t find a complete set of pcap headers - exit +if test -z "$pcap_base" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + as_fn_error $? "could not find a complete set of pcap headers" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: found $pcap_base" >&5 +$as_echo "found $pcap_base" >&6; } + + EXTRA_INCLUDES="$EXTRA_INCLUDES -I$pcap_base" + + DIR="`dirname $pcap_base`/lib" + if test -d $DIR; then + EXTRA_LDFLAGS="$EXTRA_LDFLAGS -L$DIR" + fi +fi + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for pcap_open_live in -lpcap" >&5 +$as_echo_n "checking for pcap_open_live in -lpcap... " >&6; } +if ${ac_cv_lib_pcap_pcap_open_live+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpcap $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char pcap_open_live (); +int +main () +{ +return pcap_open_live (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_pcap_pcap_open_live=yes +else + ac_cv_lib_pcap_pcap_open_live=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pcap_pcap_open_live" >&5 +$as_echo "$ac_cv_lib_pcap_pcap_open_live" >&6; } +if test "x$ac_cv_lib_pcap_pcap_open_live" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBPCAP 1 +_ACEOF + + LIBS="-lpcap $LIBS" + else - echo found $pcap_dir + as_fn_error $? "a viable pcap lib is required" "$LINENO" 5 +fi - PCAP_INCLUDE="-I$pcap_dir" - PCAP_LINK="-L`dirname $pcap_dir`/lib" +if test "$USE_PCAP_RESTART" = "1"; then + PCAP_RESTART_FUNC="unused" + + for func in pcap_restart pcap_yyrestart yyrestart; do + as_ac_Lib=`$as_echo "ac_cv_lib_pcap_$func" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $func in -lpcap" >&5 +$as_echo_n "checking for $func in -lpcap... " >&6; } +if eval \${$as_ac_Lib+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpcap $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $func (); +int +main () +{ +return $func (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$as_ac_Lib=yes" +else + eval "$as_ac_Lib=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +eval ac_res=\$$as_ac_Lib + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : + found="$func" +fi + if test -n "$found"; then + USE_PCAP_RESTART="1" + PCAP_RESTART_FUNC="$found" + break + fi + done + if test "$PCAP_RESTART_FUNC" = "unused"; then + as_fn_error but no restart function found "BPF lexer restart fix requested" "$LINENO" 5 + fi fi -{ echo "$as_me:$LINENO: checking for BPF include path" >&5 -echo $ECHO_N "checking for BPF include path... $ECHO_C" >&6; } -BPF=`/usr/bin/perl -ne '/include\s+<(.*bpf\.h)>/ && print "$1\n"' $pcap_dir/pcap.h` -echo $BPF +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BPF include path" >&5 +$as_echo_n "checking for BPF include path... " >&6; } +BPF=`/usr/bin/perl -ne '/include\s+<(.*bpf\.h)>/ && print "$1\n"' $pcap_base/pcap.h` +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $BPF" >&5 +$as_echo "$BPF" >&6; } present="" -{ echo "$as_me:$LINENO: checking for DLT_LINUX_SLL in bpf.h" >&5 -echo $ECHO_N "checking for DLT_LINUX_SLL in bpf.h... $ECHO_C" >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DLT_LINUX_SLL in $BPF" >&5 +$as_echo_n "checking for DLT_LINUX_SLL in $BPF... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$BPF> @@ -4073,23 +3911,20 @@ _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "yes" >/dev/null 2>&1; then - HAVE_DLT_LINUX_SLL="1" && echo yes + $EGREP "yes" >/dev/null 2>&1; then : + HAVE_DLT_LINUX_SLL="1" && { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } else - HAVE_DLT_LINUX_SLL="0" && echo no + HAVE_DLT_LINUX_SLL="0" && { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi rm -f conftest* - present="" -{ echo "$as_me:$LINENO: checking for DLT_LOOP in bpf.h" >&5 -echo $ECHO_N "checking for DLT_LOOP in bpf.h... $ECHO_C" >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DLT_LOOP in $BPF" >&5 +$as_echo_n "checking for DLT_LOOP in $BPF... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$BPF> @@ -4099,23 +3934,20 @@ _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "yes" >/dev/null 2>&1; then - HAVE_DLT_LOOP="1" && echo yes + $EGREP "yes" >/dev/null 2>&1; then : + HAVE_DLT_LOOP="1" && { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } else - HAVE_DLT_LOOP="0" && echo no + HAVE_DLT_LOOP="0" && { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi rm -f conftest* - present="" -{ echo "$as_me:$LINENO: checking for DLT_IEEE802_11 in bpf.h" >&5 -echo $ECHO_N "checking for DLT_IEEE802_11 in bpf.h... $ECHO_C" >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DLT_IEEE802_11 in $BPF" >&5 +$as_echo_n "checking for DLT_IEEE802_11 in $BPF... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$BPF> @@ -4125,23 +3957,21 @@ _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "yes" >/dev/null 2>&1; then - HAVE_DLT_IEEE802_11="1" && echo yes + $EGREP "yes" >/dev/null 2>&1; then : + HAVE_DLT_IEEE802_11="1" && { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } else - HAVE_DLT_IEEE802_11="0" && echo no + HAVE_DLT_IEEE802_11="0" && { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi rm -f conftest* present="" -{ echo "$as_me:$LINENO: checking for DLT_IEEE802_11_RADIO in bpf.h" >&5 -echo $ECHO_N "checking for DLT_IEEE802_11_RADIO in bpf.h... $ECHO_C" >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DLT_IEEE802_11_RADIO in $BPF" >&5 +$as_echo_n "checking for DLT_IEEE802_11_RADIO in $BPF... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$BPF> @@ -4151,23 +3981,21 @@ _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "yes" >/dev/null 2>&1; then - HAVE_DLT_IEEE802_11_RADIO="1" && echo yes + $EGREP "yes" >/dev/null 2>&1; then : + HAVE_DLT_IEEE802_11_RADIO="1" && { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } else - HAVE_DLT_IEEE802_11_RADIO="0" && echo no + HAVE_DLT_IEEE802_11_RADIO="0" && { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi rm -f conftest* present="" -{ echo "$as_me:$LINENO: checking for DLT_RAW in bpf.h" >&5 -echo $ECHO_N "checking for DLT_RAW in bpf.h... $ECHO_C" >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DLT_RAW in $BPF" >&5 +$as_echo_n "checking for DLT_RAW in $BPF... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$BPF> @@ -4177,429 +4005,142 @@ _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "yes" >/dev/null 2>&1; then - HAVE_DLT_RAW="1" && echo yes + $EGREP "yes" >/dev/null 2>&1; then : + HAVE_DLT_RAW="1" && { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } else - HAVE_DLT_RAW="0" && echo no + HAVE_DLT_RAW="0" && { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi rm -f conftest* +present="" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DLT_PFLOG in $BPF" >&5 +$as_echo_n "checking for DLT_PFLOG in $BPF... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <$BPF> +#ifdef DLT_PFLOG +yes +#endif -cat >>confdefs.h <<_ACEOF -#define USE_PCAP_RESTART $USE_PCAP_RESTART _ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + HAVE_DLT_PFLOG="1" && { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + HAVE_DLT_PFLOG="0" && { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f conftest* -cat >>confdefs.h <<_ACEOF -#define USE_PCRE $USE_PCRE -_ACEOF +present="" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DLT_IPNET in $BPF" >&5 +$as_echo_n "checking for DLT_IPNET in $BPF... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <$BPF> +#ifdef DLT_IPNET +yes +#endif -cat >>confdefs.h <<_ACEOF -#define USE_IPv6 $USE_IPv6 _ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + HAVE_DLT_IPNET="1" && { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + HAVE_DLT_IPNET="0" && { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f conftest* -cat >>confdefs.h <<_ACEOF -#define USE_DROPPRIVS $USE_DROPPRIVS -_ACEOF cat >>confdefs.h <<_ACEOF -#define DROPPRIVS_USER "$DROPPRIVS_USER" +#define USE_PCAP_RESTART $USE_PCAP_RESTART _ACEOF - cat >>confdefs.h <<_ACEOF -#define HAVE_DUMB_UDPHDR $HAVE_DUMB_UDPHDR +#define PCAP_RESTART_FUNC $PCAP_RESTART_FUNC _ACEOF cat >>confdefs.h <<_ACEOF -#define HAVE_DLT_RAW $HAVE_DLT_RAW +#define USE_PCRE $USE_PCRE _ACEOF cat >>confdefs.h <<_ACEOF -#define HAVE_DLT_IEEE802_11 $HAVE_DLT_IEEE802_11 +#define USE_IPv6 $USE_IPv6 _ACEOF cat >>confdefs.h <<_ACEOF -#define HAVE_DLT_IEEE802_11_RADIO $HAVE_DLT_IEEE802_11_RADIO +#define USE_TCPKILL $USE_TCPKILL _ACEOF cat >>confdefs.h <<_ACEOF -#define HAVE_DLT_LOOP $HAVE_DLT_LOOP +#define USE_VLAN_HACK $USE_VLAN_HACK _ACEOF + cat >>confdefs.h <<_ACEOF -#define HAVE_DLT_LINUX_SLL $HAVE_DLT_LINUX_SLL +#define USE_DROPPRIVS $USE_DROPPRIVS _ACEOF - - - -{ echo "$as_me:$LINENO: checking for pcap_open_live in -lpcap" >&5 -echo $ECHO_N "checking for pcap_open_live in -lpcap... $ECHO_C" >&6; } -if test "${ac_cv_lib_pcap_pcap_open_live+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpcap $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ +cat >>confdefs.h <<_ACEOF +#define DROPPRIVS_USER "$DROPPRIVS_USER" _ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char pcap_open_live (); -int -main () -{ -return pcap_open_live (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_pcap_pcap_open_live=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_lib_pcap_pcap_open_live=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_pcap_pcap_open_live" >&5 -echo "${ECHO_T}$ac_cv_lib_pcap_pcap_open_live" >&6; } -if test $ac_cv_lib_pcap_pcap_open_live = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBPCAP 1 +cat >>confdefs.h <<_ACEOF +#define HAVE_DLT_RAW $HAVE_DLT_RAW _ACEOF - LIBS="-lpcap $LIBS" - -else - echo need pcap lib; exit -fi - - - -pcap_restart_func="" -if test "$use_pcap_restart" = "yes" ; then - { echo "$as_me:$LINENO: checking for pcap_restart in -lpcap" >&5 -echo $ECHO_N "checking for pcap_restart in -lpcap... $ECHO_C" >&6; } -if test "${ac_cv_lib_pcap_pcap_restart+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpcap $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char pcap_restart (); -int -main () -{ -return pcap_restart (); - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define HAVE_DLT_PFLOG $HAVE_DLT_PFLOG _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_pcap_pcap_restart=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_pcap_pcap_restart=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_pcap_pcap_restart" >&5 -echo "${ECHO_T}$ac_cv_lib_pcap_pcap_restart" >&6; } -if test $ac_cv_lib_pcap_pcap_restart = yes; then - pcap_restart_func="pcap_restart" -else - { echo "$as_me:$LINENO: checking for pcap_yyrestart in -lpcap" >&5 -echo $ECHO_N "checking for pcap_yyrestart in -lpcap... $ECHO_C" >&6; } -if test "${ac_cv_lib_pcap_pcap_yyrestart+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpcap $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char pcap_yyrestart (); -int -main () -{ -return pcap_yyrestart (); - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define HAVE_DLT_IEEE802_11 $HAVE_DLT_IEEE802_11 _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_pcap_pcap_yyrestart=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_pcap_pcap_yyrestart=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_pcap_pcap_yyrestart" >&5 -echo "${ECHO_T}$ac_cv_lib_pcap_pcap_yyrestart" >&6; } -if test $ac_cv_lib_pcap_pcap_yyrestart = yes; then - pcap_restart_func="pcap_yyrestart" -else - { echo "$as_me:$LINENO: checking for yyrestart in -lpcap" >&5 -echo $ECHO_N "checking for yyrestart in -lpcap... $ECHO_C" >&6; } -if test "${ac_cv_lib_pcap_yyrestart+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpcap $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char yyrestart (); -int -main () -{ -return yyrestart (); - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define HAVE_DLT_IEEE802_11_RADIO $HAVE_DLT_IEEE802_11_RADIO _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_pcap_yyrestart=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_pcap_yyrestart=no -fi - -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_pcap_yyrestart" >&5 -echo "${ECHO_T}$ac_cv_lib_pcap_yyrestart" >&6; } -if test $ac_cv_lib_pcap_yyrestart = yes; then - pcap_restart_func="yyrestart" -else - echo no yacc restart func found - echo perhaps libpcap wasn\'t compiled with bison/flex\? - exit -fi -fi -fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DLT_LOOP $HAVE_DLT_LOOP +_ACEOF -fi -if test -z "$pcap_restart_func"; then - pcap_restart_func="unused" -fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DLT_LINUX_SLL $HAVE_DLT_LINUX_SLL +_ACEOF cat >>confdefs.h <<_ACEOF -#define PCAP_RESTART_FUNC $pcap_restart_func +#define HAVE_DLT_IPNET $HAVE_DLT_IPNET _ACEOF @@ -4610,37 +4151,58 @@ -echo -if test "$HAVE_DUMB_UDPHDR" = "1"; then - echo "CONFIG: support for broken redhat glibc udphdr enabled" -fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } -if test "$USE_PCAP_RESTART" = "0"; then - echo "CONFIG: pcap restart logic disabled" +if test "$USE_PCAP_RESTART" = "1"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: CONFIG: BPF filter lexer restart enabled (using $PCAP_RESTART_FUNC)" >&5 +$as_echo "CONFIG: BPF filter lexer restart enabled (using $PCAP_RESTART_FUNC)" >&6; } fi if test "$USE_IPv6" = "1"; then - echo "CONFIG: ipv6 support enabled" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: CONFIG: IPv6 support enabled" >&5 +$as_echo "CONFIG: IPv6 support enabled" >&6; } else - echo "CONFIG: ipv6 support disabled" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: CONFIG: IPv6 support disabled" >&5 +$as_echo "CONFIG: IPv6 support disabled" >&6; } fi if test "$USE_DROPPRIVS" = "1"; then - echo "CONFIG: privilege dropping enabled, using \"$DROPPRIVS_USER\"" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: CONFIG: privilege dropping enabled (using $DROPPRIVS_USER)" >&5 +$as_echo "CONFIG: privilege dropping enabled (using $DROPPRIVS_USER)" >&6; } else - echo "CONFIG: privilege dropping disabled" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: CONFIG: privilege dropping DISABLED" >&5 +$as_echo "CONFIG: privilege dropping DISABLED" >&6; } fi if test "$USE_PCRE" = "1"; then - echo "CONFIG: using PCRE regex library" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: CONFIG: using PCRE regex library" >&5 +$as_echo "CONFIG: using PCRE regex library" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: CONFIG: using GNU regex library" >&5 +$as_echo "CONFIG: using GNU regex library" >&6; } +fi + +if test "$USE_TCPKILL" = "1"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: CONFIG: tcpkill feature enabled" >&5 +$as_echo "CONFIG: tcpkill feature enabled" >&6; } else - echo "CONFIG: using GNU regex library" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: CONFIG: tcpkill feature disabled" >&5 +$as_echo "CONFIG: tcpkill feature disabled" >&6; } fi +if test "$USE_VLAN_HACK" = "1"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: CONFIG: automatically including VLAN frames" >&5 +$as_echo "CONFIG: automatically including VLAN frames" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: CONFIG: not automatically including VLAN frames" >&5 +$as_echo "CONFIG: not automatically including VLAN frames" >&6; } +fi -echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } ac_config_headers="$ac_config_headers config.h" @@ -4673,12 +4235,13 @@ case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 -echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( - *) $as_unset $ac_var ;; + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done @@ -4686,8 +4249,8 @@ (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \). + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" @@ -4709,13 +4272,24 @@ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then - test "x$cache_file" != "x/dev/null" && - { echo "$as_me:$LINENO: updating cache $cache_file" >&5 -echo "$as_me: updating cache $cache_file" >&6;} - cat confcache >$cache_file + if test "x$cache_file" != "x/dev/null"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi else - { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 -echo "$as_me: not updating unwritable cache $cache_file" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache @@ -4728,14 +4302,15 @@ ac_libobjs= ac_ltlibobjs= +U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`echo "$ac_i" | sed "$ac_script"` + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. - ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" - ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs @@ -4743,12 +4318,14 @@ -: ${CONFIG_STATUS=./config.status} +: "${CONFIG_STATUS=./config.status}" +ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 -echo "$as_me: creating $CONFIG_STATUS" >&6;} -cat >$CONFIG_STATUS <<_ACEOF +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. @@ -4758,55 +4335,79 @@ debug=false ac_cs_recheck=false ac_cs_silent=false -SHELL=\${CONFIG_SHELL-$SHELL} -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else - case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac fi -BIN_SH=xpg4; export BIN_SH # for Tru64 -DUALCASE=1; export DUALCASE # for MKS sh -# PATH needs CR -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' else - PATH_SEPARATOR=: + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' fi - rm -f conf$$.sh + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' fi -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } fi @@ -4815,20 +4416,19 @@ # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) -as_nl=' -' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. -case $0 in +as_myself= +case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done IFS=$as_save_IFS ;; @@ -4839,32 +4439,111 @@ as_myself=$0 fi if test ! -f "$as_myself"; then - echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - { (exit 1); exit 1; } + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 fi -# Work around bugs in pre-3.0 UWIN ksh. -for as_var in ENV MAIL MAILPATH -do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi -done + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + -# Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr @@ -4878,13 +4557,17 @@ as_basename=false fi +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi -# Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || -echo X/"$0" | +$as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q @@ -4899,122 +4582,118 @@ } s/.*/./; q'` -# CDPATH. -$as_unset CDPATH - - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line after each line using $LINENO; the second 'sed' - # does the real work. The second script uses 'N' to pair each - # line-number line with the line containing $LINENO, and appends - # trailing '-' during substitution so that $LINENO is not a special - # case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # scripts with optimization help from Paolo Bonzini. Blame Lee - # E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in +case `echo -n x` in #((((( -n*) - case `echo 'x\c'` in + case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. - *) ECHO_C='\c';; + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir - mkdir conf$$.dir + mkdir conf$$.dir 2>/dev/null fi -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then - as_mkdir_p=: + as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi -# Find out whether ``test -x'' works. Don't use a zero-byte file, as -# systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - as_executable_p="test -x" -else - as_executable_p=: -fi -rm -f conf$$.file + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -5024,13 +4703,19 @@ exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 -# Save the log message, to keep $[0] and so on meaningful, and to +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by $as_me, which was -generated by GNU Autoconf 2.60. Invocation command line was +generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -5043,29 +4728,41 @@ _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ -\`$as_me' instantiates files from templates according to the -current configuration. +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. -Usage: $0 [OPTIONS] [FILE]... +Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit - -V, --version print version number, then exit - -q, --quiet do not print progress messages + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - --header=FILE[:TEMPLATE] - instantiate the configuration header FILE + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE Configuration files: $config_files @@ -5073,35 +4770,41 @@ Configuration headers: $config_headers -Report bugs to ." +Report bugs to the package provider." _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ config.status -configured by $0, generated by GNU Autoconf 2.60, - with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" +configured by $0, generated by GNU Autoconf 2.69, + with options \\"\$ac_cs_config\\" -Copyright (C) 2006 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' +test -n "\$AWK" || AWK=awk _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -# If no file are specified by the user, then we need to provide default -# value. By we need to know if files were specified by the user. +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in - --*=*) + --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; *) ac_option=$1 ac_optarg=$2 @@ -5114,34 +4817,41 @@ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - echo "$ac_cs_version"; exit ;; + $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift - CONFIG_FILES="$CONFIG_FILES $ac_optarg" + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift - CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header - { echo "$as_me: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; };; + as_fn_error $? "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; --help | --hel | -h ) - echo "$ac_cs_usage"; exit ;; + $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. - -*) { echo "$as_me: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } ;; + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; - *) ac_config_targets="$ac_config_targets $1" + *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac @@ -5156,30 +4866,32 @@ fi _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then - echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 - CONFIG_SHELL=$SHELL + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' export CONFIG_SHELL - exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + exec "\$@" fi _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX - echo "$ac_log" + $as_echo "$ac_log" } >&5 _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets @@ -5188,9 +4900,7 @@ "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 -echo "$as_me: error: invalid argument: $ac_config_target" >&2;} - { (exit 1); exit 1; }; };; + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done @@ -5212,182 +4922,302 @@ # after its creation but before its name has been assigned to `$tmp'. $debug || { - tmp= + tmp= ac_tmp= trap 'exit_status=$? - { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 - trap '{ (exit 1); exit 1; }' 1 2 13 15 + trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" + test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") -} || -{ - echo "$me: cannot create a temporary directory in ." >&2 - { (exit 1); exit 1; } -} +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp -# -# Set up the sed scripts for CONFIG_FILES section. -# - -# No need to generate the scripts if there are no CONFIG_FILES. -# This happens for instance when ./config.status config.h +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then -_ACEOF +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && +_ACEOF +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do - cat >conf$$subs.sed <<_ACEOF -SHELL!$SHELL$ac_delim -PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim -PACKAGE_NAME!$PACKAGE_NAME$ac_delim -PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim -PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim -PACKAGE_STRING!$PACKAGE_STRING$ac_delim -PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim -exec_prefix!$exec_prefix$ac_delim -prefix!$prefix$ac_delim -program_transform_name!$program_transform_name$ac_delim -bindir!$bindir$ac_delim -sbindir!$sbindir$ac_delim -libexecdir!$libexecdir$ac_delim -datarootdir!$datarootdir$ac_delim -datadir!$datadir$ac_delim -sysconfdir!$sysconfdir$ac_delim -sharedstatedir!$sharedstatedir$ac_delim -localstatedir!$localstatedir$ac_delim -includedir!$includedir$ac_delim -oldincludedir!$oldincludedir$ac_delim -docdir!$docdir$ac_delim -infodir!$infodir$ac_delim -htmldir!$htmldir$ac_delim -dvidir!$dvidir$ac_delim -pdfdir!$pdfdir$ac_delim -psdir!$psdir$ac_delim -libdir!$libdir$ac_delim -localedir!$localedir$ac_delim -mandir!$mandir$ac_delim -DEFS!$DEFS$ac_delim -ECHO_C!$ECHO_C$ac_delim -ECHO_N!$ECHO_N$ac_delim -ECHO_T!$ECHO_T$ac_delim -LIBS!$LIBS$ac_delim -build_alias!$build_alias$ac_delim -host_alias!$host_alias$ac_delim -target_alias!$target_alias$ac_delim -build!$build$ac_delim -build_cpu!$build_cpu$ac_delim -build_vendor!$build_vendor$ac_delim -build_os!$build_os$ac_delim -host!$host$ac_delim -host_cpu!$host_cpu$ac_delim -host_vendor!$host_vendor$ac_delim -host_os!$host_os$ac_delim -target!$target$ac_delim -target_cpu!$target_cpu$ac_delim -target_vendor!$target_vendor$ac_delim -target_os!$target_os$ac_delim -CC!$CC$ac_delim -CFLAGS!$CFLAGS$ac_delim -LDFLAGS!$LDFLAGS$ac_delim -CPPFLAGS!$CPPFLAGS$ac_delim -ac_ct_CC!$ac_ct_CC$ac_delim -EXEEXT!$EXEEXT$ac_delim -OBJEXT!$OBJEXT$ac_delim -CPP!$CPP$ac_delim -GREP!$GREP$ac_delim -EGREP!$EGREP$ac_delim -ac_prefix_program!$ac_prefix_program$ac_delim -REGEX_DIR!$REGEX_DIR$ac_delim -REGEX_OBJS!$REGEX_OBJS$ac_delim -OS!$OS$ac_delim -STRIPFLAG!$STRIPFLAG$ac_delim -PCAP_INCLUDE!$PCAP_INCLUDE$ac_delim -PCAP_LINK!$PCAP_LINK$ac_delim -EXTRA_DEFINES!$EXTRA_DEFINES$ac_delim -EXTRA_INCLUDES!$EXTRA_INCLUDES$ac_delim -EXTRA_LIBS!$EXTRA_LIBS$ac_delim -LIBOBJS!$LIBOBJS$ac_delim -LTLIBOBJS!$LTLIBOBJS$ac_delim -_ACEOF + . ./conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 71; then + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then - { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 -echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} - { (exit 1); exit 1; }; } + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done +rm -f conf$$subs.sh -ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` -if test -n "$ac_eof"; then - ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` - ac_eof=`expr $ac_eof + 1` -fi - -cat >>$CONFIG_STATUS <<_ACEOF -cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end -_ACEOF -sed ' -s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g -s/^/s,@/; s/!/@,|#_!!_#|/ -:n -t n -s/'"$ac_delim"'$/,g/; t -s/$/\\/; p -N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n -' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF -:end -s/|#_!!_#|//g -CEOF$ac_eof +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\)..*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\)..*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 +_ACEOF -# VPATH may cause trouble with some makes, so we remove $(srcdir), -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=/{ -s/:*\$(srcdir):*/:/ -s/:*\${srcdir}:*/:/ -s/:*@srcdir@:*/:/ -s/^\([^=]*=[ ]*\):*/\1/ + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// s/^[^=]*=[ ]*$// }' fi -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$ac_tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' >$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 +fi # test -n "$CONFIG_HEADERS" + -for ac_tag in :F $CONFIG_FILES :H $CONFIG_HEADERS +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS " +shift +for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; - :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 -echo "$as_me: error: Invalid tag $ac_tag." >&2;} - { (exit 1); exit 1; }; };; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac @@ -5406,7 +5236,7 @@ for ac_f do case $ac_f in - -) ac_f="$tmp/stdin";; + -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. @@ -5415,26 +5245,34 @@ [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || - { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 -echo "$as_me: error: cannot find input file: $ac_f" >&2;} - { (exit 1); exit 1; }; };; + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac - ac_file_inputs="$ac_file_inputs $ac_f" + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ - configure_input="Generated from "`IFS=: - echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" - { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac case $ac_tag in - *:-:* | *:-) cat >"$tmp/stdin";; + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac @@ -5444,42 +5282,7 @@ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - { as_dir="$ac_dir" - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -echo X"$as_dir" | +$as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -5497,20 +5300,15 @@ q } s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 -echo "$as_me: error: cannot create directory $as_dir" >&2;} - { (exit 1); exit 1; }; }; } + as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; @@ -5546,12 +5344,12 @@ _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= - -case `sed -n '/datarootdir/ { +ac_sed_dataroot=' +/datarootdir/ { p q } @@ -5559,36 +5357,37 @@ /@docdir@/p /@infodir@/p /@localedir@/p -/@mandir@/p -' $ac_file_inputs` in +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; + s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF - sed "$ac_vpsub +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub $extrasub _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s&@configure_input@&$configure_input&;t t +s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t @@ -5597,119 +5396,49 @@ s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t $ac_datarootdir_hack -" $ac_file_inputs | sed -f "$tmp/subs-1.sed" >$tmp/out +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && - { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined." >&5 -echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined." >&2;} + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&5 +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&2;} - rm -f "$tmp/stdin" + rm -f "$ac_tmp/stdin" case $ac_file in - -) cat "$tmp/out"; rm -f "$tmp/out";; - *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; - esac + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; + esac \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # -_ACEOF - -# Transform confdefs.h into a sed script `conftest.defines', that -# substitutes the proper values into config.h.in to produce config.h. -rm -f conftest.defines conftest.tail -# First, append a space to every undef/define line, to ease matching. -echo 's/$/ /' >conftest.defines -# Then, protect against being on the right side of a sed subst, or in -# an unquoted here document, in config.status. If some macros were -# called several times there might be several #defines for the same -# symbol, which is useless. But do not sort them, since the last -# AC_DEFINE must be honored. -ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* -# These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where -# NAME is the cpp macro being defined, VALUE is the value it is being given. -# PARAMS is the parameter list in the macro definition--in most cases, it's -# just an empty string. -ac_dA='s,^\\([ #]*\\)[^ ]*\\([ ]*' -ac_dB='\\)[ (].*,\\1define\\2' -ac_dC=' ' -ac_dD=' ,' - -uniq confdefs.h | - sed -n ' - t rset - :rset - s/^[ ]*#[ ]*define[ ][ ]*// - t ok - d - :ok - s/[\\&,]/\\&/g - s/^\('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p - s/^\('"$ac_word_re"'\)[ ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p - ' >>conftest.defines - -# Remove the space that was appended to ease matching. -# Then replace #undef with comments. This is necessary, for -# example, in the case of _POSIX_SOURCE, which is predefined and required -# on some systems where configure will not decide to define it. -# (The regexp can be short, since the line contains either #define or #undef.) -echo 's/ $// -s,^[ #]*u.*,/* & */,' >>conftest.defines - -# Break up conftest.defines: -ac_max_sed_lines=50 - -# First sed command is: sed -f defines.sed $ac_file_inputs >"$tmp/out1" -# Second one is: sed -f defines.sed "$tmp/out1" >"$tmp/out2" -# Third one will be: sed -f defines.sed "$tmp/out2" >"$tmp/out1" -# et cetera. -ac_in='$ac_file_inputs' -ac_out='"$tmp/out1"' -ac_nxt='"$tmp/out2"' - -while : -do - # Write a here document: - cat >>$CONFIG_STATUS <<_ACEOF - # First, check the format of the line: - cat >"\$tmp/defines.sed" <<\\CEOF -/^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*\$/b def -/^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def -b -:def -_ACEOF - sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS - echo 'CEOF - sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS - ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in - sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail - grep . conftest.tail >/dev/null || break - rm -f conftest.defines - mv conftest.tail conftest.defines -done -rm -f conftest.defines conftest.tail - -echo "ac_result=$ac_in" >>$CONFIG_STATUS -cat >>$CONFIG_STATUS <<\_ACEOF if test x"$ac_file" != x-; then - echo "/* $configure_input */" >"$tmp/config.h" - cat "$ac_result" >>"$tmp/config.h" - if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then - { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 -echo "$as_me: $ac_file is unchanged" >&6;} + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} else - rm -f $ac_file - mv "$tmp/config.h" $ac_file + rm -f "$ac_file" + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else - echo "/* $configure_input */" - cat "$ac_result" + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 fi - rm -f "$tmp/out12" ;; @@ -5718,11 +5447,13 @@ done # for ac_tag -{ (exit 0); exit 0; } +as_fn_exit 0 _ACEOF -chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save +test $ac_write_fail = 0 || + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. @@ -5742,6 +5473,10 @@ exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. - $ac_cs_success || { (exit 1); exit 1; } + $ac_cs_success || as_fn_exit 1 +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi diff -Nru ngrep-1.45.ds2/configure.in ngrep-1.47+ds1/configure.in --- ngrep-1.45.ds2/configure.in 2007-08-12 18:30:00.000000000 +0000 +++ ngrep-1.47+ds1/configure.in 2017-09-07 21:28:35.000000000 +0000 @@ -1,7 +1,5 @@ dnl -dnl $Id: configure.in,v 1.36 2006/11/15 03:43:56 jpr5 Exp $ -dnl -dnl Copyright (c) 2001 Jordan Ritter +dnl Copyright (c) 2017 Jordan Ritter dnl dnl Please refer to the LICENSE file for more information. dnl @@ -9,62 +7,35 @@ AC_INIT(ngrep.c) -echo -echo 'Configuring System ...' -echo +AC_MSG_RESULT +AC_MSG_RESULT(Configuring System ...) +AC_MSG_RESULT AC_CANONICAL_SYSTEM AC_PROG_CC AC_HEADER_STDC -AC_PREFIX_DEFAULT(/usr/local) +AC_PREFIX_DEFAULT(/usr/local) if test -n "`which tcpdump 2> /dev/null`"; then AC_PREFIX_PROGRAM(tcpdump) fi -dnl -dnl The following are globals that we tack on to the associated -dnl variables in the makefile. They get AC_SUBST'd at the end. -dnl - EXTRA_DEFINES="" EXTRA_INCLUDES="" +EXTRA_LDFLAGS="" +EXTRA_OBJS="" EXTRA_LIBS="" - dnl -dnl Define the arguments that we accept. +dnl Define the arguments that we accept. Parse them first. dnl dnl -dnl For libpcap's that don't need the restart function called for -dnl multiple lexer passes, allow them to turn it off here. This option -dnl exists solely to address a very rude email from the maintainer -dnl indicating that it shouldn't be called directly (and of course he -dnl was wrong because this is still needed). -dnl - -AC_ARG_ENABLE(pcap-restart, -[ --disable-pcap-restart disable libpcap restart in parser], -[ - use_pcap_restart="$enableval" -], -[ - use_pcap_restart="yes" -]) - -if test $use_pcap_restart = yes; then - USE_PCAP_RESTART="1" -else - USE_PCAP_RESTART="0" -fi - -dnl dnl Allow user to specify alternate ``nobody'' user. dnl AC_ARG_WITH(dropprivs-user, -[ --with-dropprivs-user[=user] use different user for dropprivs], +[ --with-dropprivs-user[=user] use different user for dropprivs], [ DROPPRIVS_USER="$withval" ], @@ -87,20 +58,20 @@ if test $use_dropprivs = yes; then USE_DROPPRIVS="1" -else +else USE_DROPPRIVS="0" fi -dnl +dnl dnl IPv6 (and ICMPv6) support dnl AC_ARG_ENABLE(ipv6, [ --enable-ipv6 enable IPv6 (and ICMPv6) support], -[ +[ use_ipv6="$enableval" ], -[ +[ use_ipv6="no" ]) @@ -110,149 +81,205 @@ USE_IPv6="0" fi - dnl -dnl Configure the regular expression library. +dnl PCAP BPF filter expression lexer bugfix +dnl +dnl Typically ngrep is invoked with a (optional) search string plus a BPF +dnl filter. However, ngrep doesn't semantically understand BPF filter terms +dnl itself, so it assumes the first non-option parameter is the search string, +dnl and attempts to compile the remainder as the BPF filter expression. If the +dnl compilation fails, it probably means that no search string was specified, so +dnl it restarts the BPF filter expression lexer and attempts to compile the +dnl entire non-option parameter string as the expression. If that fails, then +dnl the specified BPF filter expression is definitely bogus and ngrep errors +dnl out. +dnl +dnl I favored this approach because it made invocation simpler & more fluid. In +dnl order to make it work however, I had to solve for a bug in older versions of +dnl libpcap where the library would segfault if the BPF filter compilation +dnl function was invoked more than once. The workaround turned out to be a +dnl simple invocation of the lexer's restart function in between compilation +dnl invocations, however that function wasn't normally exposed in the header +dnl since it was an internal built-in of whatever grammar lexer libpcap had +dnl compiled with (bison/yacc/etc). +dnl +dnl The default behavior has long been to restart the lexer (keeping invocation +dnl simpler) and provide a compile-time option to disable the mechanism, if +dnl anyone cared to. Based on a more recent bug report however[1], it seems +dnl that the newer libpcap breaks when the lexer restart function is called. +dnl So, given the choice between old platforms working by default (always call +dnl restart/allow disablement at compile-time) vs. newer platforms working by +dnl default (never call restart/allow enablement at compile-time), the default +dnl behavior now is to do the latter. +dnl +dnl For versions of libpcap that require restart function invocation in between +dnl multiple lexer passes, allow them to enable it here. +dnl +dnl [1] https://github.com/jpr5/ngrep/issues/2 dnl -AC_ARG_ENABLE(pcre, -[ --enable-pcre use PCRE instead of GNU regex], -[ - use_pcre="$enableval" +AC_ARG_ENABLE(pcap-restart, +[ --enable-pcap-restart enable BPF lexer restart bugfix for older versions of PCAP (default off)], +[ + use_pcap_restart="$enableval" ], -[ - use_pcre="no" +[ + use_pcap_restart="no" ]) -if test $use_pcre = yes; then +if test $use_pcap_restart = yes; then + USE_PCAP_RESTART="1" +else + USE_PCAP_RESTART="0" +fi - echo - echo 'Configuring Perl-Compatible Regular Expression (PCRE) library ...' - echo - REGEX_DIR='pcre-5.0' - REGEX_OBJS="$REGEX_DIR/pcre.o $REGEX_DIR/study.o" - USE_PCRE="1" +dnl +dnl Configure the regular expression library. +dnl +REGEX_DIR='' +REGEX_OBJS='' + +AC_ARG_ENABLE(pcre, +[ --enable-pcre use PCRE instead of GNU regex (default GNU)], +[ use_pcre="$enableval" ], +[ use_pcre="no" ]) + +if test use_pcre = yes; then + USE_PCRE="1" + EXTRA_LIBS="$EXTRA_LIBS -lpcre" else + USE_PCRE="0" - echo - echo 'Configuring GNU Regular Expression library ...' - echo + AC_MSG_RESULT + AC_MSG_RESULT(Configuring GNU Regular Expression library ...) + AC_MSG_RESULT REGEX_DIR='regex-0.12' REGEX_OBJS="$REGEX_DIR/regex.o" - USE_PCRE="0" -fi + ( cd $REGEX_DIR && ./configure ) -( cd $REGEX_DIR && ./configure ) + EXTRA_INCLUDES="$EXTRA_INCLUDES -I$REGEX_DIR" +fi AC_SUBST(REGEX_DIR) AC_SUBST(REGEX_OBJS) +dnl +dnl tcpkill/libnet support (from Debian patch) +dnl -echo -echo 'Configuring Network Grep (ngrep) ...' -echo +AC_ARG_ENABLE(tcpkill, +[ --enable-tcpkill enable connection killing support (default off)], +[ + AC_CHECK_LIB(net, libnet_init_packet,,echo !!! error: tcpkill feature enabled but no libnet found; exit) + use_tcpkill="$enableval" +], +[ use_tcpkill="no" ]) +if test $use_tcpkill = yes; then + USE_TCPKILL="1" + EXTRA_OBJS="$EXTRA_OBJS tcpkill.o" + EXTRA_DEFINES="$EXTRA_DEFINES $(libnet-config --defines)" + EXTRA_LIBS="$EXTRA_LIBS $(libnet-config --libs)" +else + USE_TCPKILL="0" +fi -dnl -dnl OS-specific options -dnl -STRIPFLAG="-s" -HAVE_DUMB_UDPHDR="0" +AC_ARG_ENABLE(vlan-hack, +[ --disable-vlan-hack disable automatic inclusion of VLAN frames (default on)], +[use_vlan_hack="$enableval"], +[use_vlan_hack="yes"]) -case "$target_os" in +if test $use_vlan_hack = yes; then + USE_VLAN_HACK="1" +else + USE_VLAN_HACK="0" +fi -*linux*) - AC_SUBST(OS, LINUX) - AC_MSG_CHECKING(for a broken redhat glibc udphdr declaration) - AC_TRY_COMPILE([ -#ifndef __FAVOR_BSD -#define __FAVOR_BSD -#endif +AC_ARG_WITH(pcap-includes, +[ --with-pcap-includes=dir specify the pcap include directory], +[PCAP_DIR=$withval], +[ + PCAP_DIR="`eval echo -n ${includedir}` \ + /usr/include /usr/include/pcap \ + /usr/local/include /usr/local/include/pcap \ + /opt/local/include /opt/local/include/pcap \ + /usr/share/include /usr/share/include/pcap" +]) -#ifndef _BSD_SOURCE -#define _BSD_SOURCE 1 -#endif -#undef _GNU_SOURCE +AC_MSG_RESULT +AC_MSG_RESULT(Configuring Network Grep ...) +AC_MSG_RESULT -#include -],[ -struct udphdr foo; -unsigned short bar = foo.source; -], - HAVE_DUMB_UDPHDR="1" && echo "yes", - HAVE_DUMB_UDPHDR="0" && echo "no") +dnl +dnl OS-specific options +dnl - ;; +STRIPFLAG="-s" -*bsd*) - AC_SUBST(OS, BSD) +case "$target_os" in - if test "$USE_PCAP_RESTART" = "0"; then +*linux*) + AC_SUBST(OS, LINUX) - AC_MSG_WARN( -Your OS ($target_os) may have an old libpcap installation. -If the resulting ngrep binary segfaults when a BPF filter is specified -without an ngrep match string then you should reconfigure ngrep with -the option ``--disable-pcap-restart''. -) - sleep 3 + ;; - fi +*bsd*) + AC_SUBST(OS, BSD) - ;; + ;; *solaris*) - AC_SUBST(OS, SOLARIS) + AC_SUBST(OS, SOLARIS) - AC_CHECK_LIB(socket, socket,, - echo no socket in -lsocket\?; exit) - AC_CHECK_LIB(nsl, gethostbyname,, - echo no gethostbyname in -lnsl\?; exit) + AC_CHECK_LIB(socket, socket,, + [AC_MSG_ERROR(no socket in -lsocket)]) + AC_CHECK_LIB(nsl, gethostbyname,, + [AC_MSG_ERROR(no gethostbyname in -lnsl)]) - EXTRA_LIBS="$EXTRA_LIBS -lnsl -lsocket" + EXTRA_LIBS="$EXTRA_LIBS -lnsl -lsocket" - ;; + ;; *osf*) - AC_SUBST(OS, OSF1) + AC_SUBST(OS, OSF1) - EXTRA_DEFINES="$EXTRA_DEFINES -D__STDC__=2" + EXTRA_DEFINES="$EXTRA_DEFINES -D__STDC__=2" - ;; + ;; -*hpux11*) - AC_SUBST(OS, BSD) - - ;; +*hpux11*) + AC_SUBST(OS, BSD) + + ;; *aix*) - AC_SUBST(OS, AIX) - - ;; + AC_SUBST(OS, AIX) + + ;; *darwin*) - AC_SUBST(OS, MACOSX) + AC_SUBST(OS, MACOSX) - STRIPFLAG="" + STRIPFLAG="" - ;; + ;; *) - AC_SUBST(OS, UNKNOWN_OS) - AC_MSG_WARN( -Your OS ($target_os) is not supported yet. + AC_SUBST(OS, UNKNOWN_OS) + AC_MSG_WARN( +Your OS ($target_os) is not supported yet. Try playing with the build host and target options. ) - sleep 3 + sleep 3 - ;; + ;; esac @@ -260,61 +287,99 @@ EXTRA_DEFINES="$EXTRA_DEFINES -D_BSD_SOURCE=1 -D__FAVOR_BSD=1" - dnl -dnl First find some usable PCAP headers. +dnl Quick Background: +dnl +dnl A long time ago, the libpcap team decided to change the functionality split +dnl and installation location of their header files. Consequently, installing +dnl the prior version's headers, followed by the newer version's, would result +dnl in two sets of different but similarly-named headers. This broke a lot of +dnl packages, since most developers just included in their programs. +dnl Many (including ngrep) addressed the problem by detecting this condition and +dnl alerting the user to fix it manually. Eventually the libpcap team decided +dnl to add back in the top-level pcap.h, presumably to rectify the hassle. +dnl +dnl On modern Linux distros, checking for this condition likely doesn't matter +dnl anymore. However, ngrep targets a much broader range of (older) OSes, so +dnl it's still a possibility. The re-addition of a top-level pcap.h confounds +dnl the old header presence check, so I've updated it to search for the version, +dnl PCAP_VERSION_MAJOR. Maybe I'll delete it in another 5 years. ;-) dnl AC_MSG_CHECKING(for a complete set of pcap headers) -possible_dirs="`eval echo -n ${includedir}` \ - /usr/include /usr/include/pcap \ - /usr/local/include /usr/local/include/pcap \ - /usr/share/include /usr/share/include/pcap" - -AC_ARG_WITH(pcap-includes, -[ --with-pcap-includes specify the pcap include directory], -[PCAP_DIR=$withval], -[PCAP_DIR=$possible_dirs]) - -pcap_dir="" -for dir in $PCAP_DIR ; do - if test -d $dir -a -r "$dir/pcap.h" ; then - if test -n "$pcap_dir" -a "$pcap_dir" != "$dir"; then - echo - echo; echo more than one set found in: - echo $pcap_dir - echo $dir - echo; echo please wipe out all unused pcap installations - exit - else - pcap_dir="$dir" +pcap_base="" +for dir in $PCAP_DIR ; do + if test -d $dir -a -r "$dir/pcap.h"; then + + AC_EGREP_HEADER([PCAP_VERSION_MAJOR], [$dir/pcap.h], [found=$dir], [found=""]) + + if test -n "$found" -a "$found" != "$pcap_base"; then + AC_MSG_RESULT + AC_MSG_RESULT + AC_MSG_RESULT(more than one set found in:) + AC_MSG_RESULT( $pcap_base) + AC_MSG_RESULT( $found) + AC_MSG_RESULT + AC_MSG_ERROR(please wipe out all unused pcap installations) + else + pcap_base="$dir" fi + fi done -if test -z "$pcap_dir" ; then - echo no; echo !!! couldn\'t find a complete set of pcap headers - exit +if test -z "$pcap_base" ; then + AC_MSG_RESULT(no) + AC_MSG_ERROR(could not find a complete set of pcap headers) else - echo found $pcap_dir + AC_MSG_RESULT(found $pcap_base) + + EXTRA_INCLUDES="$EXTRA_INCLUDES -I$pcap_base" + + dnl Best-effort; newer ld warns on missing dirs. + DIR="`dirname $pcap_base`/lib" + if test -d $DIR; then + EXTRA_LDFLAGS="$EXTRA_LDFLAGS -L$DIR" + fi +fi + - PCAP_INCLUDE="-I$pcap_dir" - PCAP_LINK="-L`dirname $pcap_dir`/lib" +dnl +dnl Check for a working PCAP library we can link against.. +dnl + +AC_CHECK_LIB(pcap, pcap_open_live,,[AC_MSG_ERROR(a viable pcap lib is required)]) - AC_SUBST(PCAP_INCLUDE) - AC_SUBST(PCAP_LINK) - +dnl +dnl And the PCAP restart function. +dnl + +if test "$USE_PCAP_RESTART" = "1"; then + PCAP_RESTART_FUNC="unused" + + for func in pcap_restart pcap_yyrestart yyrestart; do + AC_CHECK_LIB(pcap, $func, found="$func") + if test -n "$found"; then + USE_PCAP_RESTART="1" + PCAP_RESTART_FUNC="$found" + break + fi + done + + if test "$PCAP_RESTART_FUNC" = "unused"; then + AC_MSG_ERROR(BPF lexer restart fix requested, but no restart function found) + fi fi -dnl +dnl dnl Next figure out which bpf header file to look at. dnl AC_MSG_CHECKING(for BPF include path) -BPF=`/usr/bin/perl -ne '/include\s+<(.*bpf\.h)>/ && print "$1\n"' $pcap_dir/pcap.h` -echo $BPF +BPF=`/usr/bin/perl -ne '/include\s+<(.*bpf\.h)>/ && print "$1\n"' $pcap_base/pcap.h` +AC_MSG_RESULT($BPF) dnl dnl Check for DLT_* types that might not have existed in older @@ -322,7 +387,7 @@ dnl present="" -AC_MSG_CHECKING(for DLT_LINUX_SLL in bpf.h) +AC_MSG_CHECKING(for DLT_LINUX_SLL in $BPF) AC_EGREP_CPP(yes, [ #include <$BPF> @@ -330,11 +395,10 @@ yes #endif ], -[HAVE_DLT_LINUX_SLL="1" && echo yes], [HAVE_DLT_LINUX_SLL="0" && echo no]) - +[HAVE_DLT_LINUX_SLL="1" && AC_MSG_RESULT(yes)], [HAVE_DLT_LINUX_SLL="0" && AC_MSG_RESULT(no)]) present="" -AC_MSG_CHECKING(for DLT_LOOP in bpf.h) +AC_MSG_CHECKING(for DLT_LOOP in $BPF) AC_EGREP_CPP(yes, [ #include <$BPF> @@ -342,11 +406,10 @@ yes #endif ], -[HAVE_DLT_LOOP="1" && echo yes], [HAVE_DLT_LOOP="0" && echo no]) - +[HAVE_DLT_LOOP="1" && AC_MSG_RESULT(yes)], [HAVE_DLT_LOOP="0" && AC_MSG_RESULT(no)]) present="" -AC_MSG_CHECKING(for DLT_IEEE802_11 in bpf.h) +AC_MSG_CHECKING(for DLT_IEEE802_11 in $BPF) AC_EGREP_CPP(yes, [ #include <$BPF> @@ -354,11 +417,11 @@ yes #endif ], -[HAVE_DLT_IEEE802_11="1" && echo yes], [HAVE_DLT_IEEE802_11="0" && echo no]) +[HAVE_DLT_IEEE802_11="1" && AC_MSG_RESULT(yes)], [HAVE_DLT_IEEE802_11="0" && AC_MSG_RESULT(no)]) present="" -AC_MSG_CHECKING(for DLT_IEEE802_11_RADIO in bpf.h) +AC_MSG_CHECKING(for DLT_IEEE802_11_RADIO in $BPF) AC_EGREP_CPP(yes, [ #include <$BPF> @@ -366,11 +429,11 @@ yes #endif ], -[HAVE_DLT_IEEE802_11_RADIO="1" && echo yes], [HAVE_DLT_IEEE802_11_RADIO="0" && echo no]) +[HAVE_DLT_IEEE802_11_RADIO="1" && AC_MSG_RESULT(yes)], [HAVE_DLT_IEEE802_11_RADIO="0" && AC_MSG_RESULT(no)]) present="" -AC_MSG_CHECKING(for DLT_RAW in bpf.h) +AC_MSG_CHECKING(for DLT_RAW in $BPF) AC_EGREP_CPP(yes, [ #include <$BPF> @@ -378,104 +441,112 @@ yes #endif ], -[HAVE_DLT_RAW="1" && echo yes], [HAVE_DLT_RAW="0" && echo no]) +[HAVE_DLT_RAW="1" && AC_MSG_RESULT(yes)], [HAVE_DLT_RAW="0" && AC_MSG_RESULT(no)]) + + +present="" +AC_MSG_CHECKING(for DLT_PFLOG in $BPF) +AC_EGREP_CPP(yes, +[ +#include <$BPF> +#ifdef DLT_PFLOG +yes +#endif +], +[HAVE_DLT_PFLOG="1" && AC_MSG_RESULT(yes)], [HAVE_DLT_PFLOG="0" && AC_MSG_RESULT(no)]) + + +present="" +AC_MSG_CHECKING(for DLT_IPNET in $BPF) +AC_EGREP_CPP(yes, +[ +#include <$BPF> +#ifdef DLT_IPNET +yes +#endif +], +[HAVE_DLT_IPNET="1" && AC_MSG_RESULT(yes)], [HAVE_DLT_IPNET="0" && AC_MSG_RESULT(no)]) dnl dnl Now that we're past the OS-specific stuff, which could have dnl modified our USE_* and other defines, define them all now. -dnl +dnl -AC_DEFINE_UNQUOTED(USE_PCAP_RESTART, $USE_PCAP_RESTART, [whether to call pcap_restart() before subsequent invocations of pcap_compile() (default yes)]) +AC_DEFINE_UNQUOTED(USE_PCAP_RESTART, $USE_PCAP_RESTART, [whether to call the BPF lexer restart function between multiple BPF filter compilation attempts (default no)]) +AC_DEFINE_UNQUOTED(PCAP_RESTART_FUNC, $PCAP_RESTART_FUNC, [routine used for restarting the BPF lexer]) AC_DEFINE_UNQUOTED(USE_PCRE, $USE_PCRE, [whether to use PCRE (default GNU Regex)]) AC_DEFINE_UNQUOTED(USE_IPv6, $USE_IPv6, [whether to use IPv6 (default off)]) +AC_DEFINE_UNQUOTED(USE_TCPKILL, $USE_TCPKILL, [whether to enable tcpkill functionality (default off)]) +AC_DEFINE_UNQUOTED(USE_VLAN_HACK, $USE_VLAN_HACK, [whether to automatically include VLAN frames (default on)]) AC_DEFINE_UNQUOTED(USE_DROPPRIVS, $USE_DROPPRIVS, [whether to use privileges dropping (default yes)]) AC_DEFINE_UNQUOTED(DROPPRIVS_USER, "$DROPPRIVS_USER", [pseudo-user for running ngrep (default "nobody")]) -AC_DEFINE_UNQUOTED(HAVE_DUMB_UDPHDR, $HAVE_DUMB_UDPHDR, [whether to accommodate broken redhat-glibc udphdr declaration (default no)]) - -AC_DEFINE_UNQUOTED(HAVE_DLT_RAW, $HAVE_DLT_RAW, [presence of DLT_RAW in bpf.h]) -AC_DEFINE_UNQUOTED(HAVE_DLT_IEEE802_11, $HAVE_DLT_IEEE802_11, [presence of DLT_IEEE802_11 in bpf.h]) -AC_DEFINE_UNQUOTED(HAVE_DLT_IEEE802_11_RADIO, $HAVE_DLT_IEEE802_11_RADIO, [presence of DLT_IEEE802_11_RADIO in bpf.h]) -AC_DEFINE_UNQUOTED(HAVE_DLT_LOOP, $HAVE_DLT_LOOP, [presence of DLT_LOOP in bpf.h]) -AC_DEFINE_UNQUOTED(HAVE_DLT_LINUX_SLL, $HAVE_DLT_LINUX_SLL, [presence of DLT_LINUX_SLL in bpf.h]) - +AC_DEFINE_UNQUOTED(HAVE_DLT_RAW, $HAVE_DLT_RAW, [presence of DLT_RAW in bpf.h]) +AC_DEFINE_UNQUOTED(HAVE_DLT_PFLOG, $HAVE_DLT_PFLOG, [presence of DLT_PFLOG in $BPF]) +AC_DEFINE_UNQUOTED(HAVE_DLT_IEEE802_11, $HAVE_DLT_IEEE802_11, [presence of DLT_IEEE802_11 in bpf.h]) +AC_DEFINE_UNQUOTED(HAVE_DLT_IEEE802_11_RADIO, $HAVE_DLT_IEEE802_11_RADIO, [presence of DLT_IEEE802_11_RADIO in bpf.h]) +AC_DEFINE_UNQUOTED(HAVE_DLT_LOOP, $HAVE_DLT_LOOP, [presence of DLT_LOOP in bpf.h]) +AC_DEFINE_UNQUOTED(HAVE_DLT_LINUX_SLL, $HAVE_DLT_LINUX_SLL, [presence of DLT_LINUX_SLL in bpf.h]) +AC_DEFINE_UNQUOTED(HAVE_DLT_IPNET, $HAVE_DLT_IPNET, [presence of DLT_IPNET in bpf.h]) dnl -dnl And the PCAP library.. -dnl - -AC_CHECK_LIB(pcap, pcap_open_live,,echo need pcap lib; exit) - -dnl -dnl And the PCAP restart function.. -dnl - -pcap_restart_func="" -if test "$use_pcap_restart" = "yes" ; then - AC_CHECK_LIB(pcap, pcap_restart, pcap_restart_func="pcap_restart", - AC_CHECK_LIB(pcap, pcap_yyrestart, pcap_restart_func="pcap_yyrestart", - AC_CHECK_LIB(pcap, yyrestart, pcap_restart_func="yyrestart", - echo no yacc restart func found - echo perhaps libpcap wasn\'t compiled with bison/flex\? - exit))) -fi - -if test -z "$pcap_restart_func"; then - pcap_restart_func="unused" -fi - -AC_DEFINE_UNQUOTED(PCAP_RESTART_FUNC, $pcap_restart_func, [routine used for restarting the PCAP lexer]) - -dnl -dnl AC_SUBST in the tack-on globals.. +dnl Merge our global tack-ons with autoconf's. dnl AC_SUBST(EXTRA_DEFINES) AC_SUBST(EXTRA_INCLUDES) +AC_SUBST(EXTRA_LDFLAGS) +AC_SUBST(EXTRA_OBJS) AC_SUBST(EXTRA_LIBS) - dnl dnl Emit configuration messages about any flags specified. dnl -echo - -if test "$HAVE_DUMB_UDPHDR" = "1"; then - echo "CONFIG: support for broken redhat glibc udphdr enabled" -fi +AC_MSG_RESULT -if test "$USE_PCAP_RESTART" = "0"; then - echo "CONFIG: pcap restart logic disabled" +if test "$USE_PCAP_RESTART" = "1"; then + AC_MSG_RESULT([CONFIG: BPF filter lexer restart enabled (using $PCAP_RESTART_FUNC)]) fi if test "$USE_IPv6" = "1"; then - echo "CONFIG: ipv6 support enabled" + AC_MSG_RESULT(CONFIG: IPv6 support enabled) else - echo "CONFIG: ipv6 support disabled" + AC_MSG_RESULT(CONFIG: IPv6 support disabled) fi if test "$USE_DROPPRIVS" = "1"; then - echo "CONFIG: privilege dropping enabled, using \"$DROPPRIVS_USER\"" + AC_MSG_RESULT([CONFIG: privilege dropping enabled (using $DROPPRIVS_USER)]) else - echo "CONFIG: privilege dropping disabled" + AC_MSG_RESULT(CONFIG: privilege dropping DISABLED) fi if test "$USE_PCRE" = "1"; then - echo "CONFIG: using PCRE regex library" + AC_MSG_RESULT(CONFIG: using PCRE regex library) +else + AC_MSG_RESULT(CONFIG: using GNU regex library) +fi + +if test "$USE_TCPKILL" = "1"; then + AC_MSG_RESULT(CONFIG: tcpkill feature enabled) else - echo "CONFIG: using GNU regex library" + AC_MSG_RESULT(CONFIG: tcpkill feature disabled) fi +if test "$USE_VLAN_HACK" = "1"; then + AC_MSG_RESULT(CONFIG: automatically including VLAN frames) +else + AC_MSG_RESULT(CONFIG: NOT automatically including VLAN frames) +fi dnl -dnl And we're done. +dnl And we're done. ALL YOUR BASE. Don't forget. dnl -echo +AC_MSG_RESULT AC_CONFIG_HEADERS(config.h) AC_CONFIG_FILES(Makefile) diff -Nru ngrep-1.45.ds2/CREDITS ngrep-1.47+ds1/CREDITS --- ngrep-1.45.ds2/CREDITS 1970-01-01 00:00:00.000000000 +0000 +++ ngrep-1.47+ds1/CREDITS 2017-09-07 21:28:35.000000000 +0000 @@ -0,0 +1,69 @@ +Author of ngrep: + + Jordan Ritter + +Use of couch whilst conceiving of the concept: + + Dave Goldsmith and + Window Snyder + +Original (old) porting of ngrep to Win32: + + Mike + +64-bit clean regex.c patch: + + Jeff + +Hexdump patch: + + Andrew W. Flury + +Elite ideas and loads of licensing advice: + + Dan Frasnelli and + cstone + +Use of OSF/1 box and DDoS research: + + Dave Dittrich + +Compilation patches: + + dugsong + Joerg Dorchain + +Tokenring Patch + + vacuum + +HPUX and Config Updates Patch + + Kevin Steves + +AIX patch + + "Joseph N. Wilson" + +TCP ECN patch + + Maik Pfeil + +Real RPM Packaging + + Dag Wieers + +Excellent patch for adding IPv6 support to ngrep + + Bernard Massot + +Assistance with IPv6 testing + + Ralph Logan + Arrigo Triulzi + +Timestamp diff from first match patch + + Joseph Heenan + +And many others. diff -Nru ngrep-1.45.ds2/debian/changelog ngrep-1.47+ds1/debian/changelog --- ngrep-1.45.ds2/debian/changelog 2016-09-17 10:40:38.000000000 +0000 +++ ngrep-1.47+ds1/debian/changelog 2018-01-01 16:47:56.000000000 +0000 @@ -1,3 +1,20 @@ +ngrep (1.47+ds1-1) unstable; urgency=medium + + * New upstream release: + + Drop all Debian patches, they have all been merged upstream. + + Add new patch fixing a typo in configure.in which prevents configuring + with the system PCRE. + + Add new patch to check for `libnet_init' in configure.in. + + Configure with new flag --enable-tcpkill. + + Stop overriding dh_installchangelogs. + * Update upstream homepage URL to the Github project page. + * Rewrite debian/watch to get new upstream version from Github. + * Switch to debhelper compatibility level 11. + * Use new URLs on salsa.debian.org for Vcs-* fields. + * Bump Standards-Version to 4.1.2. + + -- Romain Francoise Mon, 01 Jan 2018 17:47:56 +0100 + ngrep (1.45.ds2-14) unstable; urgency=medium * Use dh-autoreconf. @@ -220,12 +237,12 @@ (Closes: #135337, #168649) * Rebuilt against libpcap, which closes the bug fixed in the old NMU (Now using libpcap0.8 instead of 0.7) (Closes: #156178) - * Use the system's installed copy of PCRE instead of the bundled + * Use the system's installed copy of PCRE instead of the bundled copy. (Closes: #166783) * Removed the duplicate '-F' option from the manpage. (Closes: #293728) * New upstream version - Some previously broken code is now removed from the upstream + Some previously broken code is now removed from the upstream version so some older bugs no longer exist. They will be closed individually as part of a bug triage. @@ -323,4 +340,3 @@ * Initial Release. -- Nathan E. Sandver Thu, 28 Oct 1999 18:39:00 -0700 - diff -Nru ngrep-1.45.ds2/debian/compat ngrep-1.47+ds1/debian/compat --- ngrep-1.45.ds2/debian/compat 2011-12-18 13:16:21.000000000 +0000 +++ ngrep-1.47+ds1/debian/compat 2018-01-01 15:31:37.000000000 +0000 @@ -1 +1 @@ -9 +11 diff -Nru ngrep-1.45.ds2/debian/control ngrep-1.47+ds1/debian/control --- ngrep-1.45.ds2/debian/control 2016-09-17 10:40:38.000000000 +0000 +++ ngrep-1.47+ds1/debian/control 2018-01-01 15:31:37.000000000 +0000 @@ -2,16 +2,15 @@ Section: net Priority: optional Maintainer: Romain Francoise -Build-Depends: debhelper (>= 8.9.4~), - dh-autoreconf, +Build-Depends: debhelper (>= 11), dpkg-dev (>= 1.16.1~), libnet1-dev, libpcap0.8-dev, libpcre3-dev -Standards-Version: 3.9.8 -Homepage: http://ngrep.sf.net/ -Vcs-Browser: https://anonscm.debian.org/cgit/users/rfrancoise/ngrep.git -Vcs-Git: git://anonscm.debian.org/users/rfrancoise/ngrep.git +Standards-Version: 4.1.2 +Homepage: https://github.com/jpr5/ngrep +Vcs-Browser: https://salsa.debian.org/rfrancoise/ngrep +Vcs-Git: https://salsa.debian.org/rfrancoise/ngrep.git Package: ngrep Architecture: any diff -Nru ngrep-1.45.ds2/debian/docs ngrep-1.47+ds1/debian/docs --- ngrep-1.45.ds2/debian/docs 2016-09-17 10:36:23.000000000 +0000 +++ ngrep-1.47+ds1/debian/docs 2018-01-01 16:01:35.000000000 +0000 @@ -1,3 +1,3 @@ -doc/CREDITS.txt -doc/README.txt -doc/REGEX.txt +CREDITS +EXAMPLES.md +README.md diff -Nru ngrep-1.45.ds2/debian/patches/10_debian-build.diff ngrep-1.47+ds1/debian/patches/10_debian-build.diff --- ngrep-1.45.ds2/debian/patches/10_debian-build.diff 2012-03-03 16:27:14.000000000 +0000 +++ ngrep-1.47+ds1/debian/patches/10_debian-build.diff 1970-01-01 00:00:00.000000000 +0000 @@ -1,115 +0,0 @@ -Change ngrep's build system to use the system's version of PCRE. - ---- - Makefile.in | 6 ++---- - configure | 11 +++-------- - configure.in | 11 +++-------- - ngrep.c | 2 +- - 4 files changed, 9 insertions(+), 21 deletions(-) - ---- a/configure -+++ b/configure -@@ -3624,13 +3624,10 @@ - - if test $use_pcre = yes; then - -- echo -- echo 'Configuring Perl-Compatible Regular Expression (PCRE) library ...' -- echo -- -- REGEX_DIR='pcre-5.0' -- REGEX_OBJS="$REGEX_DIR/pcre.o $REGEX_DIR/study.o" -+ REGEX_DIR='' -+ REGEX_OBJS="" - USE_PCRE="1" -+ EXTRA_LIBS="$EXTRA_LIBS -lpcre" - - else - -@@ -3644,8 +3641,6 @@ - - fi - --( cd $REGEX_DIR && ./configure ) -- - - - ---- a/configure.in -+++ b/configure.in -@@ -126,13 +126,10 @@ - - if test $use_pcre = yes; then - -- echo -- echo 'Configuring Perl-Compatible Regular Expression (PCRE) library ...' -- echo -- -- REGEX_DIR='pcre-5.0' -- REGEX_OBJS="$REGEX_DIR/pcre.o $REGEX_DIR/study.o" -+ REGEX_DIR='' -+ REGEX_OBJS="" - USE_PCRE="1" -+ EXTRA_LIBS="$EXTRA_LIBS -lpcre" - - else - -@@ -146,8 +143,6 @@ - - fi - --( cd $REGEX_DIR && ./configure ) -- - AC_SUBST(REGEX_DIR) - AC_SUBST(REGEX_OBJS) - ---- a/Makefile.in -+++ b/Makefile.in -@@ -7,7 +7,7 @@ - - CC=@CC@ - --CFLAGS=@CFLAGS@ -D@OS@ @DEFS@ @EXTRA_DEFINES@ -+CFLAGS=@CFLAGS@ @CPPFLAGS@ -D@OS@ @DEFS@ @EXTRA_DEFINES@ - INCLUDES=-I@srcdir@ @PCAP_INCLUDE@ @EXTRA_INCLUDES@ - - LDFLAGS=@LDFLAGS@ @PCAP_LINK@ -@@ -39,13 +39,13 @@ - all: $(TARGET) - - $(TARGET): $(REGEX_OBJS) $(OBJS) -- $(CC) $(CFLAGS) $(LDFLAGS) $(STRIPFLAG) -o $(TARGET) $(OBJS) $(REGEX_OBJS) $(LIBS) -+ $(CC) $(CFLAGS) $(LDFLAGS) -o $(TARGET) $(OBJS) $(REGEX_OBJS) $(LIBS) - - debug: $(REGEX_OBJS) $(OBJS) - $(CC) $(CFLAGS) $(LDFLAGS) -g -o $(TARGET) $(OBJS) $(REGEX_OBJS) $(LIBS) - - static: $(REGEX_OBJS) $(OBJS) -- $(CC) $(CFLAGS) $(LDFLAGS) $(STRIPFLAG) -o $(TARGET).static -static $(OBJS) $(REGEX_OBJS) $(LIBS) -+ $(CC) $(CFLAGS) $(LDFLAGS) -o $(TARGET).static -static $(OBJS) $(REGEX_OBJS) $(LIBS) - - install: $(TARGET) - $(INSTALL) -c -m 0755 $(TARGET) $(DESTDIR)/$(BINDIR_INSTALL)/$(TARGET) -@@ -55,11 +55,9 @@ - $(CC) $(CFLAGS) $(INCLUDES) -g -c $< - - clean: -- make -C $(REGEX_DIR) clean - rm -f *~ $(OBJS) $(REGEX_OBJS) $(TARGET) $(TARGET).static - - distclean: clean -- make -C $(REGEX_DIR) distclean - rm -f config.status config.cache config.log config.h Makefile - - $(REGEX_OBJS): $(REGEX_OBJS:.o=.c) $(REGEX_DIR)/*.h ---- a/ngrep.c -+++ b/ngrep.c -@@ -92,7 +92,7 @@ - #endif - - #if USE_PCRE --#include "pcre-5.0/pcre.h" -+#include - #else - #include "regex-0.12/regex.h" - #endif diff -Nru ngrep-1.45.ds2/debian/patches/10_kfreebsd_hurd.diff ngrep-1.47+ds1/debian/patches/10_kfreebsd_hurd.diff --- ngrep-1.45.ds2/debian/patches/10_kfreebsd_hurd.diff 2011-12-18 20:55:39.000000000 +0000 +++ ngrep-1.47+ds1/debian/patches/10_kfreebsd_hurd.diff 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -Fixes build on Debian GNU/kFreeBSD (contributed by Cyril Brulebois) and -GNU/Hurd. ---- - ngrep.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/ngrep.c -+++ b/ngrep.c -@@ -32,7 +32,7 @@ - #include - #endif - --#if defined(LINUX) -+#if defined(LINUX) || defined(__GLIBC__) || defined(__GNU__) - #include - #include - #include diff -Nru ngrep-1.45.ds2/debian/patches/10_man-fixes.diff ngrep-1.47+ds1/debian/patches/10_man-fixes.diff --- ngrep-1.45.ds2/debian/patches/10_man-fixes.diff 2012-03-03 16:33:03.000000000 +0000 +++ ngrep-1.47+ds1/debian/patches/10_man-fixes.diff 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ -Misc fixes to the man page. ---- - ngrep.8 | 21 +++++++-------------- - 1 file changed, 7 insertions(+), 14 deletions(-) - ---- a/ngrep.8 -+++ b/ngrep.8 -@@ -144,13 +144,13 @@ - .IP "-W normal|byline|single|none" - Specify an alternate manner for displaying packets, when not in - hexadecimal mode. The ``byline'' mode honors embedded linefeeds, --wrapping text only when a linefeed is encountered. The ``none'' mode --doesn't wrap under any circumstance (entire payload is displayed on --one line). The ``single'' mode is conceptually the same as ``none'', --except that everything including IP and source/destination header --information is all on one line. ``normal'' is the default mode and is --only included for completeness. This option is incompatible with --``-x''. -+wrapping text only when a linefeed is encountered (useful for observing -+HTTP transactions, for instance). The ``none'' mode doesn't wrap under -+any circumstance (entire payload is displayed on one line). The -+``single'' mode is conceptually the same as ``none'', except that -+everything including IP and source/destination header information is all -+on one line. ``normal'' is the default mode and is only included for -+completeness. This option is incompatible with ``-x''. - - .IP "-s snaplen" - Set the bpf caplen to snaplen (default 65536). -@@ -181,13 +181,6 @@ - .IP "-A num" - Dump \fInum\fP packets of trailing context after matching a packet. - --.IP "-W normal|byline|none" --Alter the method by which ngrep displays packet payload. ``normal'' --mode represents the standard behaviour, ``byline'' instructs ngrep to --respect embedded linefeeds (useful for observing HTTP transactions, --for instance), and ``none'' results in the payload on one single line --(useful for scripted processing of ngrep output). -- - .IP "-c cols" - Ignore the detected terminal width and force the column width to the - specified size. diff -Nru ngrep-1.45.ds2/debian/patches/20_setlocale.diff ngrep-1.47+ds1/debian/patches/20_setlocale.diff --- ngrep-1.45.ds2/debian/patches/20_setlocale.diff 2009-11-08 17:38:36.000000000 +0000 +++ ngrep-1.47+ds1/debian/patches/20_setlocale.diff 1970-01-01 00:00:00.000000000 +0000 @@ -1,27 +0,0 @@ -Call setlocale to make isprint() decide what's printable depending -on the current locale. See #307496. - ---- - ngrep.c | 4 ++++ - 1 file changed, 4 insertions(+) - ---- a/ngrep.c -+++ b/ngrep.c -@@ -97,6 +97,8 @@ - #include "regex-0.12/regex.h" - #endif - -+#include -+ - #include "ngrep.h" - - -@@ -195,6 +197,8 @@ - signal(SIGWINCH, update_windowsize); - #endif - -+ setlocale(LC_ALL, ""); -+ - while ((c = getopt(argc, argv, "LNhXViwqpevxlDtTRMs:n:c:d:A:I:O:S:P:F:W:")) != EOF) { - switch (c) { - case 'W': { diff -Nru ngrep-1.45.ds2/debian/patches/30_tcpkill.diff ngrep-1.47+ds1/debian/patches/30_tcpkill.diff --- ngrep-1.45.ds2/debian/patches/30_tcpkill.diff 2012-03-03 16:28:10.000000000 +0000 +++ ngrep-1.47+ds1/debian/patches/30_tcpkill.diff 1970-01-01 00:00:00.000000000 +0000 @@ -1,246 +0,0 @@ -This patch adds tcpkill support to ngrep (new option -K). It was -initially written by Florian Weimer in 2004, and -updated for libnet 1.1 by Romain Francoise . - ---- - LICENSE.txt | 29 +++++++++++++++++++ - Makefile.in | 10 ++++-- - ngrep.8 | 4 ++ - ngrep.c | 15 +++++++++- - tcpkill.c | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - tcpkill.h | 7 ++++ - 6 files changed, 148 insertions(+), 5 deletions(-) - ---- a/LICENSE.txt -+++ b/LICENSE.txt -@@ -36,3 +36,32 @@ - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE - OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+ -+Portions were copied from tcpkill (part of dsniff), which has the -+following copyright: -+ -+ Copyright (c) 1999, 2000 Dug Song -+ All rights reserved, all wrongs reversed. -+ -+ Redistribution and use in source and binary forms, with or without -+ modification, are permitted provided that the following conditions -+ are met: -+ -+ 1. Redistributions of source code must retain the above copyright -+ notice, this list of conditions and the following disclaimer. -+ 2. Redistributions in binary form must reproduce the above copyright -+ notice, this list of conditions and the following disclaimer in the -+ documentation and/or other materials provided with the distribution. -+ 3. The name of author may not be used to endorse or promote products -+ derived from this software without specific prior written permission. -+ -+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, -+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY -+ AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL -+ THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; -+ OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---- a/Makefile.in -+++ b/Makefile.in -@@ -7,16 +7,18 @@ - - CC=@CC@ - --CFLAGS=@CFLAGS@ @CPPFLAGS@ -D@OS@ @DEFS@ @EXTRA_DEFINES@ -+CFLAGS_LIBNET := $(shell libnet-config --defines ; libnet-config --cflags) -+CFLAGS=@CFLAGS@ @CPPFLAGS@ -D@OS@ @DEFS@ @EXTRA_DEFINES@ $(CFLAGS_LIBNET) - INCLUDES=-I@srcdir@ @PCAP_INCLUDE@ @EXTRA_INCLUDES@ - - LDFLAGS=@LDFLAGS@ @PCAP_LINK@ --LIBS=-lpcap @EXTRA_LIBS@ -+LIBNET := $(shell libnet-config --libs) -+LIBS=-lpcap @EXTRA_LIBS@ $(LIBNET) - - STRIPFLAG=@STRIPFLAG@ - --SRC=ngrep.c --OBJS=ngrep.o -+SRC=ngrep.c tcpkill.c -+OBJS=ngrep.o tcpkill.o - TARGET=ngrep - MANPAGE=ngrep.8 - ---- a/ngrep.8 -+++ b/ngrep.8 -@@ -189,6 +189,10 @@ - Change the non-printable character from the default ``.'' to the - character specified. - -+.IP "-K num" -+Kill matching TCP connections (like tcpkill). The numeric argument -+controls how many RST segments are sent. -+ - .IP "\fI match expression\fP" - A match expression is either an extended regular expression, or if the - \fI-X\fP option is specified, a string signifying a hexadecimal value. ---- a/ngrep.c -+++ b/ngrep.c -@@ -110,6 +110,7 @@ - - uint16_t snaplen = 65535, limitlen = 65535, promisc = 1, to = 100; - uint16_t match_after = 0, keep_matching = 0, matches = 0, max_matches = 0; -+uint16_t tcpkill_active = 0; - - uint8_t re_match_word = 0, re_ignore_case = 0, re_multiline_match = 1; - uint8_t show_empty = 0, show_hex = 0, show_proto = 0, quiet = 0; -@@ -199,7 +200,7 @@ - - setlocale(LC_ALL, ""); - -- while ((c = getopt(argc, argv, "LNhXViwqpevxlDtTRMs:n:c:d:A:I:O:S:P:F:W:")) != EOF) { -+ while ((c = getopt(argc, argv, "LNhXViwqpevxlDtTRMK:s:n:c:d:A:I:O:S:P:F:W:")) != EOF) { - switch (c) { - case 'W': { - if (!strcasecmp(optarg, "normal")) -@@ -314,6 +315,9 @@ - case 'N': - show_proto++; - break; -+ case 'K': -+ tcpkill_active = atoi(optarg); -+ break; - case 'h': - usage(0); - default: -@@ -353,6 +357,10 @@ - clean_exit(-1); - } - -+ if (tcpkill_active) { -+ tcpkill_init(); -+ } -+ - if (pcap_lookupnet(dev, &net.s_addr, &mask.s_addr, pc_err) == -1) { - perror(pc_err); - memset(&net, 0, sizeof(net)); -@@ -887,6 +895,10 @@ - - if (pd_dump) - pcap_dump((u_char*)pd_dump, h, p); -+ -+ if (tcpkill_active) { -+ tcpkill_kill(h, p, link_offset, tcpkill_active); -+ } - } - - int8_t re_match_func(unsigned char *data, uint32_t len) { -@@ -1256,6 +1268,7 @@ - #else - " -d is use specified device instead of the pcap default\n" - #endif -+ " -K is kill matching TCP connections\n" - ""); - - exit(e); ---- /dev/null -+++ b/tcpkill.c -@@ -0,0 +1,88 @@ -+/* -+ * tcpkill.c -+ * -+ * Kill TCP connections already in progress. -+ * -+ * Copyright (c) 2000 Dug Song -+ * -+ * $Id: tcpkill.c,v 1.17 2001/03/17 08:10:43 dugsong Exp $ -+ */ -+ -+#include -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include "tcpkill.h" -+ -+libnet_t *l; -+ -+void -+tcpkill_kill(const struct pcap_pkthdr *pcap, const u_char *pkt, -+ unsigned pcap_off, unsigned kill_count) -+{ -+ struct libnet_ipv4_hdr *ip; -+ struct libnet_tcp_hdr *tcp; -+ u_char ctext[64]; -+ u_int32_t seq, win; -+ int i, len; -+ -+ pkt += pcap_off; -+ len = pcap->caplen - pcap_off; -+ -+ ip = (struct libnet_ipv4_hdr *)pkt; -+ if (ip->ip_p != IPPROTO_TCP) -+ return; -+ -+ tcp = (struct libnet_tcp_hdr *)(pkt + (ip->ip_hl << 2)); -+ if (tcp->th_flags & (TH_SYN|TH_FIN|TH_RST)) -+ return; -+ -+ seq = ntohl(tcp->th_ack); -+ win = ntohs(tcp->th_win); -+ -+ snprintf(ctext, sizeof(ctext), "%s:%d > %s:%d:", -+ libnet_addr2name4(ip->ip_src.s_addr, LIBNET_DONT_RESOLVE), -+ ntohs(tcp->th_sport), -+ libnet_addr2name4(ip->ip_dst.s_addr, LIBNET_DONT_RESOLVE), -+ ntohs(tcp->th_dport)); -+ -+ for (i = 0; i < kill_count; i++) { -+ seq += (i * win); -+ -+ libnet_clear_packet(l); -+ -+ libnet_build_tcp(ntohs(tcp->th_dport), ntohs(tcp->th_sport), -+ seq, 0, TH_RST, 0, 0, 0, LIBNET_TCP_H, -+ NULL, 0, l, 0); -+ -+ libnet_build_ipv4(LIBNET_IPV4_H + LIBNET_TCP_H, 0, -+ libnet_get_prand(LIBNET_PRu16), 0, 64, -+ IPPROTO_TCP, 0, ip->ip_dst.s_addr, -+ ip->ip_src.s_addr, NULL, 0, l, 0); -+ -+ if (libnet_write(l) < 0) -+ warn("write"); -+ -+ fprintf(stderr, "%s R %u:%u(0) win 0\n", ctext, seq, seq); -+ } -+} -+ -+void -+tcpkill_init(void) -+{ -+ char *intf, ebuf[PCAP_ERRBUF_SIZE]; -+ char libnet_ebuf[LIBNET_ERRBUF_SIZE]; -+ -+ if ((intf = pcap_lookupdev(ebuf)) == NULL) -+ errx(1, "%s", ebuf); -+ -+ if ((l = libnet_init(LIBNET_RAW4, intf, libnet_ebuf)) == NULL) -+ errx(1, "couldn't initialize sending"); -+ -+ libnet_seed_prand(l); -+} ---- /dev/null -+++ b/tcpkill.h -@@ -0,0 +1,7 @@ -+#ifndef TCPKILL_H -+#define TCPKILL_H -+ -+void tcpkill_init(void); -+void tcpkill_kill(const struct pcap_pkthdr *pcap, const u_char *pkt, unsigned pcap_off, unsigned kill_count); -+ -+#endif diff -Nru ngrep-1.45.ds2/debian/patches/40_ipv6-offsets.diff ngrep-1.47+ds1/debian/patches/40_ipv6-offsets.diff --- ngrep-1.45.ds2/debian/patches/40_ipv6-offsets.diff 2011-12-18 13:32:58.000000000 +0000 +++ ngrep-1.47+ds1/debian/patches/40_ipv6-offsets.diff 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ -commit ca90da66ac237005af6fbdbdc16837ba41f19beb -Author: Jordan Ritter -Date: Tue Jun 19 10:12:08 2007 +0000 - - Fix for bug #1738953: why would I subtract the payload's length from a - variable that is supposed to describe exactly that?? Removed ip6_plen - from TCP, UDP and ICMPv6 calculations. - -diff --git a/ngrep.c b/ngrep.c -index fd95cbe..6c3c902 100644 ---- a/ngrep.c -+++ b/ngrep.c -@@ -721,11 +721,6 @@ void process(u_char *d, struct pcap_pkthdr *h, u_char *p) { - data = (unsigned char *)(tcp_pkt) + tcphdr_offset; - len -= link_offset + ip_hl + tcphdr_offset; - --#if USE_IPv6 -- if (ip_ver == 6) -- len -= ntohs(ip6_pkt->ip6_plen); --#endif -- - if ((int32_t)len < 0) - len = 0; - -@@ -741,11 +736,6 @@ void process(u_char *d, struct pcap_pkthdr *h, u_char *p) { - data = (unsigned char *)(udp_pkt) + udphdr_offset; - len -= link_offset + ip_hl + udphdr_offset; - --#if USE_IPv6 -- if (ip_ver == 6) -- len -= ntohs(ip6_pkt->ip6_plen); --#endif -- - if ((int32_t)len < 0) - len = 0; - -@@ -779,7 +769,7 @@ void process(u_char *d, struct pcap_pkthdr *h, u_char *p) { - uint16_t icmp6hdr_offset = (frag_offset) ? 0 : 4; - - data = (unsigned char *)(icmp6_pkt) + icmp6hdr_offset; -- len -= link_offset + ip_hl + ntohs(ip6_pkt->ip6_plen) + icmp6hdr_offset; -+ len -= link_offset + ip_hl + icmp6hdr_offset; - - if ((int32_t)len < 0) - len = 0; diff -Nru ngrep-1.45.ds2/debian/patches/configure-typo.diff ngrep-1.47+ds1/debian/patches/configure-typo.diff --- ngrep-1.45.ds2/debian/patches/configure-typo.diff 1970-01-01 00:00:00.000000000 +0000 +++ ngrep-1.47+ds1/debian/patches/configure-typo.diff 2018-01-01 15:54:30.000000000 +0000 @@ -0,0 +1,11 @@ +--- a/configure.in ++++ b/configure.in +@@ -146,7 +146,7 @@ + [ use_pcre="$enableval" ], + [ use_pcre="no" ]) + +-if test use_pcre = yes; then ++if test $use_pcre = yes; then + USE_PCRE="1" + EXTRA_LIBS="$EXTRA_LIBS -lpcre" + else diff -Nru ngrep-1.45.ds2/debian/patches/libnet11.diff ngrep-1.47+ds1/debian/patches/libnet11.diff --- ngrep-1.45.ds2/debian/patches/libnet11.diff 1970-01-01 00:00:00.000000000 +0000 +++ ngrep-1.47+ds1/debian/patches/libnet11.diff 2018-01-01 16:11:03.000000000 +0000 @@ -0,0 +1,11 @@ +--- a/configure.in ++++ b/configure.in +@@ -174,7 +174,7 @@ + AC_ARG_ENABLE(tcpkill, + [ --enable-tcpkill enable connection killing support (default off)], + [ +- AC_CHECK_LIB(net, libnet_init_packet,,echo !!! error: tcpkill feature enabled but no libnet found; exit) ++ AC_CHECK_LIB(net, libnet_init,,echo !!! error: tcpkill feature enabled but no libnet found; exit) + use_tcpkill="$enableval" + ], + [ use_tcpkill="no" ]) diff -Nru ngrep-1.45.ds2/debian/patches/series ngrep-1.47+ds1/debian/patches/series --- ngrep-1.45.ds2/debian/patches/series 2016-09-17 10:36:36.000000000 +0000 +++ ngrep-1.47+ds1/debian/patches/series 2018-01-01 16:10:48.000000000 +0000 @@ -1,6 +1,2 @@ -10_debian-build.diff -10_man-fixes.diff -10_kfreebsd_hurd.diff -20_setlocale.diff -30_tcpkill.diff -40_ipv6-offsets.diff +configure-typo.diff +libnet11.diff diff -Nru ngrep-1.45.ds2/debian/rules ngrep-1.47+ds1/debian/rules --- ngrep-1.45.ds2/debian/rules 2016-09-17 10:40:38.000000000 +0000 +++ ngrep-1.47+ds1/debian/rules 2018-01-01 16:05:18.000000000 +0000 @@ -3,12 +3,12 @@ export DEB_BUILD_MAINT_OPTIONS = hardening=+all %: - dh $@ --with autoreconf + dh $@ override_dh_auto_configure: - dh_auto_configure -- --enable-pcre --enable-ipv6 \ - --with-pcap-includes=/usr/include/pcap \ + dh_auto_configure -- \ + --enable-pcre \ + --enable-ipv6 \ + --enable-tcpkill \ + --with-pcap-includes=/usr/include/pcap \ --disable-pcap-restart - -override_dh_installchangelogs: - dh_installchangelogs doc/CHANGES.txt diff -Nru ngrep-1.45.ds2/debian/watch ngrep-1.47+ds1/debian/watch --- ngrep-1.45.ds2/debian/watch 2014-04-12 15:01:31.000000000 +0000 +++ ngrep-1.47+ds1/debian/watch 2018-01-01 15:31:37.000000000 +0000 @@ -1,4 +1,3 @@ -version=3 -opts=dversionmangle=s/(\d)\.ds\d+$/$1/ \ -http://ngrep.sourceforge.net/download.html \ -.*/ngrep-(\d\S*)\.(?:tar\.xz|txz|tar\.bz2|tbz2|tar\.gz|tgz)(?:\?download)? +version=4 +opts="versionmangle=s/_/./g,dversionmangle=s/(\d).ds\d+$/$1/,filenamemangle=s/.+\/V?(\d\S+)\.tar\.gz/ngrep-$1\.tar\.gz/" \ + https://github.com/jpr5/ngrep/releases .*/V?(\d\S+)\.tar\.gz diff -Nru ngrep-1.45.ds2/doc/CHANGES.txt ngrep-1.47+ds1/doc/CHANGES.txt --- ngrep-1.45.ds2/doc/CHANGES.txt 2007-08-12 18:30:00.000000000 +0000 +++ ngrep-1.47+ds1/doc/CHANGES.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,253 +0,0 @@ -$Id: CHANGES.txt,v 1.5 2006/11/28 13:37:05 jpr5 Exp $ - -v1.45 - - o fixed bug where setting the snaplen smaller than the minimum - necessary to read the full headres would cause garbage to be - fed into the pattern matcher - - o fixed unreported bug in IPv6/TCP packet length calculation - - o relocated the privilege-dropping routine to be invoked right - before entering the packet processing loop, to prevent - interference with necessary permissions to read or write - dumpfiles/etc. - - o fixed integer overflow with the snaplen that resulted from - an implicit signed/unsigned conversion - - o minor change to compensate for some broken compiler - optimizers - - o fixed double-free race condition during ngrep termination - - o reworked packet length calculation in the main processing - loop, improving performance and readability - - o simplified regex build logic in configure and Makefile - - o updated Win32 version to use config.h for preprocessor - definitions instead of the Visual Studio project files, - making manual tweaking and config of ngrep for Win32 - consistent with *NIX and more obvious - - o changed third-party Makefiles to properly clean up after - themselves - - o added support for radiotap (IEEE802_11_RADIO) - - o changed ``-s 0'' invocation to mimic the equivalent of tcpdump - -v1.44 - o added post-config section to configure: emit important - config option settings that weren't previously indicated - - o for BSD platforms, only emit pcap_restart warning from - configure if ``--disable-pcap-restart'' hasn't been - specified - - o added IPv6 and ICMPv6 support (all platforms); disabled by - default for common case where libpcap wasn't compiled with - IPv6 support - - o added support for displaying protocol number (``-N''), - useful for when observing raw packets - - o added support for new display method ``single'', similar to - ``byline'' but both header and data occupy one single line - - o introduced multiple levels of quiet (``-q''); the more it is - specified the more quiet ngrep becomes - - o reorganization of some internal support headers and core - code to eliminate redundancy, improve readability and - efficiency, and support new features - - o changed all integer types to be bit- and sign-explicit - -v1.43 - o healed the win32 code fork: ngrep now builds from the same - source tree for all platforms including Windows - - o re-wrote the privilege revocation logic after problems were - reported with the SPC version, and removed non-root - drop_privs capability altogether - - o fix off-by-one bug which caused ngrep to exit 1 packet early - when ``-A'' as invoked - - o Fixed problematic configtest for old broken-redhat-glibc UDP - header - - o ngrep now sets a pcap filter "ip" by default, if one is not - specified - - o header offset fix to 802.11 processing - - o support IGMP and Raw (unknown IP protocol) type packets - - o support for latest versions of libpcap (0.8.3) and winpcap - (3.1 beta 4) - - o updated configure to autoconf 2.59, and config.guess and - config.sub to latest versions - - o updated PCRE from 3.4 to 5.0 - - o and various minor changes and updates to improve ngrep - -v1.42 - o rewrote the entire configure.in/config.h.in to autoconf 2.57 - to be more consistent with normal autoconf'd programs. - corrects bugs around packaging impediments and typos - - o improved privilege dropping code and added more options to - configure to govern its behaviour - - o added flag to turn off privilege revocation logic - - o added multiline match as default and ability to enforce - previous default single-line match (bugfix + feature) - - o added ability to read bpf filter expression from file - - o added ability to force the column width to a certain size - - o added two new output modes: ``byline'', whose output - respects embedded carriage returns (useful for http dumps), - and ``none'', which prints out each dump as a single line no - matter what - - o added ability to specify alternate nonprintable character - (default is ``.'') - - o made ``-q'' effects more consistent and usable for scenarios - where ``-I'' and/or ``-O'' are being employed - - o documentation updated - -v1.41 - o added -S (set limitlen) - o added LOOP and SLL tests for portability/old libpcap'en - o added configure --safe-user and dropprivs code - o added TCP ECN congestion header recognition - o improved support for a few OSes - o relaxed some restrictions in the license (COPYRIGHT -> LICENSE) - o 802.11 support - -v1.40.1 - o MacOS X support - o ISDN (SLL) support - o OpenBSD tun device support - o updated configure.in to support specifying pcap directory - o updated config.sub and config.guess - o added scripts/multi.pl, parallel ngrep perl script - o very minor change to documentation - -v1.40 - o license change, amends the BSD advertising clause - o fixed bug from not considering caplen in payload length - calculations - o added -s (set bpf caplen) - o fixed header include for linux glibc 2.2 (time.h wasn't - being included) - -v1.39.2 - o typographical error, -p works now - -v1.39.1 - o added in AIX includes - o added BSD* includes for display updates - o added -p (don't go into promiscuous mode) - -v1.39 - o in standard match mode, the display now updates when window - sizes change - o configure now gives the user the option to compile with the - pcre library, which is more license-friendly (albeit slower) - o fixed minor bug in date printing with -t - o added configure option '--without-restart', which will - remove the pcap restart API call. Newer versions of libpcap - don't need it, and on certain platforms the API call - segfaults - o win32: compiled with winpcap's pcap.h, which apparently - breaks the pcap standard and introduces its own data link - layer types. fixes the 'unsupported interface' error folks - sometimes got when used with a 100bT adapter - -v1.38 - o binary matching - o windows compilation support - o 64-bit clean patch to regex.c - o dump and replay pcap_dump files - o officially licensed under the BSD license - o normal and diff/delta timestamps - -v1.37 - o added FDDI support - -v1.36 - o added -l (line buffer stdout) - o a few optimizations were made to shave off some cpu cycles - spent on processing each packet - o fixed bug where the blank regex algorithm wasn't even being - used - o fixed bug in blank regex algorithm that was preventing '-n' - from working - o change to compile on LinuxPPC - o change to nix potential warnings on other OSes - o change to not exit if pcap_lookupnet fails - -v1.35 - o appears that the release of 1.34 had only one of the - match optimizations: somehow only the tcp match was updated; - udp change was omitted. fixed - o moved -v (version) to -V - o added -v (grep -v), invert match - o added -d lo (null linktype) - o added ability to match proto icmp - o updated configure.in to handle old installations of pcap - more gracefully (i.e. continue on by adding the necessary - defines and just gripe) - -v1.34 - o merged in patch from Andrew W. Flury - for hex printing, made minor modification to patch to not - print off the end of the buffer - o added an optimization for the case where no regex was - specified; should account for a little speed up - -v1.33 - o fragment changes, this should be it - -v1.32 - o switched around regex -w/-i logic - o fragment bugfixes - -v1.31 - o added -A (match after) - o Makefile.in changes - o configure.in changes for solaris - o added manpage (ngrep.8) - -v1.30 - - o bugfix: wasn't malloc'ing enough for word_regex - o bugfix: case-insensitive was tolower()ing the word_regex - itself - -v1.29 - - o added -e (show empty) - o one or two safe, preemptive changes catching possible int - overflows - -v1.28 - - o added -n - o no required arguments anymore - o regex's are not required anymore, can just be bpf logic - o probably a bugfix or two - - - diff -Nru ngrep-1.45.ds2/doc/CREDITS.txt ngrep-1.47+ds1/doc/CREDITS.txt --- ngrep-1.45.ds2/doc/CREDITS.txt 2007-08-12 18:30:00.000000000 +0000 +++ ngrep-1.47+ds1/doc/CREDITS.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,63 +0,0 @@ -Author of ngrep: - - Jordan Ritter - -Use of couch whilst conceiving of the concept: - - Dave Goldsmith and - Window Snyder - -Original (old) porting of ngrep to Win32: - - Mike - -64-bit clean regex.c patch: - - Jeff - -Hexdump patch: - - Andrew W. Flury - -Elite ideas and loads of licensing advice: - - Dan Frasnelli and - cstone - -Use of OSF/1 box and DDoS research: - - Dave Dittrich - -Compilation patches: - - dugsong - Joerg Dorchain - -Tokenring Patch - - vacuum - -HPUX and Config Updates Patch - - Kevin Steves - -AIX patch - - "Joseph N. Wilson" - -TCP ECN patch - - Maik Pfeil - -Real RPM Packaging - - Dag Wieers - -Excellent patch for adding IPv6 support to ngrep - - Bernard Massot - -Assistance with IPv6 testing - - Ralph Logan - Arrigo Triulzi diff -Nru ngrep-1.45.ds2/doc/INSTALL.txt ngrep-1.47+ds1/doc/INSTALL.txt --- ngrep-1.45.ds2/doc/INSTALL.txt 2007-08-12 18:30:00.000000000 +0000 +++ ngrep-1.47+ds1/doc/INSTALL.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,81 +0,0 @@ -$Id: INSTALL.txt,v 1.5 2006/11/28 13:38:09 jpr5 Exp $ - -ngrep Installation Guide ------------------------- - -1. Install the latest Packet Capture Library - -In orer to compile ngrep on any platform, the relevant packet capture -(PCAP) client support library must be installed. - -On UNIX, this is called ``libpcap'' and can be installed either from -source or from a distribution's particular package management system. -Some distributions separate the library itself from its development -headers (i.e. libpcap-devel), so make sure to install both if this is -the case. - -On Windows, the client support library is called ``WinPcap Developer's -Pack'' and should be unpacked inside the parent directory of the ngrep -source tree. - -The latest versions (as of this writing) are located at: - - UNIX: http://tcpdump.org/release/libpcap-0.9.5.tar.gz - Win32: http://www.winpcap.org/install/bin/wpdpack_3_1.zip - - -2. Unpack the ngrep source - -Once the client packet capture client support library is installed, -unpack the ngrep source to a directory. - -On Windows, this must be under the same parent directory as the -WinPcap Developer's Pack. - - -3. Compile the ngrep program - -On UNIX, type the following from the root of the ngrep source tree: - - % ./configure && make - -On Windows, open the ``ngrep.sln'' file located in the ``win32'' -subdirectory of the ngrep source tree using Visual Studio.NET. From -there you should be able to Build the solution in either Debug or -Release mode. Once this is done, copy the resulting ``ngrep.exe'' -(located in either the ``Debug'' or ``Release'' subdirectory depending -on compile configuration) into any directory in your path for easy -usage (``c:\windows'', for instance). - -Please ignore the warnings associated with the GNU Regex library -included in the ngrep source tree. - - -4. Install the PCAP kernel driver - -ngrep is a PCAP-based program and therefore requires the PCAP kernel -driver to be installed before it will function properly. - -The PCAP Driver is already integrated into the vast majority of UNIX -and Linux kernels released within the last ~10 years. - -The Windows Platform, however, does not come with an integrated PCAP -kernel driver by default, so it is necessary to install one before -ngrep will work. The latest version (as of this writing) is located -at: - - http://www.winpcap.org/install/bin/WinPcap_3_1.exe - - -Getting Help ------------- - -On UNIX, if you still have problems compiling or are compiling on an -unsupported OS, try playing with other build types -- i.e. if you have -a BSD derived system, try the BSD build type. - -Please email me for help if you if you still have problems, however -please try to help yourself first and search Google for possible -answers before contacting me. - -Jordan Ritter diff -Nru ngrep-1.45.ds2/doc/README.txt ngrep-1.47+ds1/doc/README.txt --- ngrep-1.45.ds2/doc/README.txt 2007-08-12 18:30:00.000000000 +0000 +++ ngrep-1.47+ds1/doc/README.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,157 +0,0 @@ -$Id: README.txt,v 1.5 2006/11/28 13:37:34 jpr5 Exp $ - -Program: ngrep -Author: Jordan Ritter -Version: 1.45 (11.18.2006) - - -Goal: - - A program that mimicks as much functionality in GNU grep as - possible, applied at the network layer. - - -Description: - - ngrep strives to provide most of GNU grep's common features, - applying them to the network layer. ngrep is a pcap-aware tool that - will allow you to specify extended regular or hexadecimal - expressions to match against data payloads of packets. It currently - recognizes IPv4/6, TCP, UDP, ICMPv4/6, IGMP and Raw across Ethernet, - PPP, SLIP, FDDI, Token Ring and null interfaces, and understands BPF - filter logic in the same fashion as more common packet sniffing - tools, such as tcpdump and snoop. - - -Usage: ngrep <-IO pcap_dump> <-n num> <-d dev> <-A num> - <-s snaplen> <-S limitlen> <-W normal|byline|single|none> <-c cols> - <-P char> <-F file> - -h is help/usage - -V is version information - -q is be quiet (don't print packet reception hash marks) - -e is show empty packets - -i is ignore case - -v is invert match - -R is don't do privilege revocation logic - -x is print in alternate hexdump format - -X is interpret match expression as hexadecimal - -w is word-regex (expression must match as a word) - -p is don't go into promiscuous mode - -l is make stdout line buffered - -D is replay pcap_dumps with their recorded time intervals - -t is print timestamp every time a packet is matched - -T is print delta timestamp every time a packet is matched - -M is don't do multi-line match (do single-line match instead) - -I is read packet stream from pcap format file pcap_dump - -O is dump matched packets in pcap format to pcap_dump - -n is look at only num packets - -A is dump num packets after a match - -s is set the bpf caplen - -S is set the limitlen on matched packets - -W is set the dump format (normal, byline, single, none) - -c is force the column width to the specified size - -P is set the non-printable display char to what is specified - -F is read the bpf filter from the specified file - -N is show sub protocol number - -On UNIX: - -d is use specified device instead of the pcap default - -On Win32: - -d is use specified device (index) instead of the pcap default - -L is show the winpcap device list index - - -Tips: - - o When the intention is to match all packets (i.e. blank regex), it - is technically faster to use an empty regex (``'') than to use - ``.*'' or ``*''. - - o When sniffing interfaces that are very busy or are seeing large - amounts of packet traffic, make sure to craft a BPF filter to - limit what PCAP has to deliver to ngrep. The ngrep parser takes a - certain amount of time and while negligible on a slow interface, - it can add up very quickly on a busy one. - - o Hexadecimal expressions can be in straight numeric form, - 'DEADBEEF', or in symbolic form, '0xDEADBEEF'. A byte is the - smallest unit of measure you can match against. - - o As of v1.28, ngrep doesn't require a match expression. However, - there are cases where ngrep can be confused and think part of your - bpf filter is the match expression, as in: - - % ngrep not port 80 - interface: eth0 (192.168.1.0/255.255.255.0) - filter: ip and ( port 80 ) - match: not - - In cases like this, you will need to specify a blank match expression: - - % ngrep '' not port 80 - interface: eth0 (192.168.1.0/255.255.255.0) - filter: ip and ( not port 80 ) - - - Please see http://ngrep.sourceforge.net/usage.html for more detailed - examples describing ngrep usage. - - -Miscellany: - - Please see the ``doc/CREDITS.txt'' file for a listing of the people - who helped make ngrep what it is today. Also, please note that - ngrep is released under a BSD-style license, though it currently - relies upon the GNU regex library, which is protected under the GPL. - - Also, it is _highly recommended_ that you upgrade to the latest - version of libpcap. All versions 0.5 and more recent fix really - annoying and in some cases fatal problems with the packet capture - library. If you happen to be using Windows, please check the - WinPcap site to see if there are any updates. - - -Useful sites: - - o Unix libpcap: - - http://www.tcpdump.org/release/ - - o Windows libpcap: - - http://www.winpcap.org/install/ - - -Known Working Platforms: - - o Linux 2.0 - 2.6 - (RH6+, SuSE, TurboLinux, Debian, Gentoo, Ubuntu, Mandrake, Slackware)/x86 - RedHat/alpha - Cobalt (Qube2) Linux/MIPS - o Solaris 2.5.1, 2.6/SPARC, Solaris 7, Solaris 8/SPARC, Solaris 9/SPARC - o FreeBSD 2.2.5, 3.1, 3.2, 3.4-RC, 3.4-RELEASE, 4.0, 5.0 - o OpenBSD 2.4 (after upgrading pcap from 0.2), 2.9, 3.0, 3.1 - o NetBSD 1.5/SPARC - o Digital Unix V4.0D (OSF/1), Tru64 5.0, Tru64 5.1A - o HPUX 11 - o IRIX - o AIX 4.3.3.0/PowerPC - o BeOS R5 - o Mac OS X 10.2, 10.2.6, 10.3x, 10.4 - o Windows 95, 98, NT, 2000, XP, 2003/x86 - - In other words, pretty much everything. - - -Support, Feedback, & Patches - - If you need help, have constructive feedback, or would like to - submit a patch, please visit ngrep's project at SourceForge and use - the online tools there. It will help the author better manage the - various requests and patches so that nothing is lost or missed (as - has been the case in the past, unfortunately). - - ngrep Project Website: - - http://sourceforge.net/projects/ngrep/ diff -Nru ngrep-1.45.ds2/doc/REGEX.txt ngrep-1.47+ds1/doc/REGEX.txt --- ngrep-1.45.ds2/doc/REGEX.txt 2007-08-12 18:30:00.000000000 +0000 +++ ngrep-1.47+ds1/doc/REGEX.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,59 +0,0 @@ -$Id: REGEX.txt,v 1.3 2005/02/22 06:28:14 jpr5 Exp $ - -Date: 2/21/05 - -A note about PCRE vs. GNU regex: - - I ran several tests comparing GNU regex 0.12 to the PCRE 5.0 - library using 100 million loop iterations: optimized - vs. non-optimized, match vs. non-match. The obvious conclusion - is that GNU regex is the reigning king of speed, and that with - regular expression engines optimization matters significantly. - - (Please note that I tried other third-party regex libraries like - RxSpencer's and libhackerlab's, and none came close to - comparing.) - - The test subject was "how now brown cow", and the pattern we - were searching for in the match case was "now brown", and in the - non-match case "not brown". Obviously, the speed of matches is - directly related to the actual regex itself, and a - well-formulated regex certainly performs more efficiently than a - simple substring match. However, this test is reasonably - indicative of how most people use ngrep, so the test results are - still useful. - - Granted, on the single-match level the time difference is - absolutely unnoticeable (it took 100 million loop iterations to - compute something worthwhile), so this may not mean anything to - you. Likewise, the stripped binary sizes are also within 10k of - each other on the test compile box. - - If licensing terms are more sensitive for you than speed then - compile against PCRE, which is available under the Artistic - License (Free as in Beer). Otherwise, in all other cases the - GNU regex library is the best candidate, and the speed can - really help when piping those 500MB pcap dump files through - ngrep over and over for analysis. - - -Test results: - - CPU: Intel Pentium-M 2GHz - L1 I cache: 32K, L1 D cache: 32K - L2 cache: 2048K - - Iterations: 100M - - match nomatch - - [-O0] - GNU regex-0.12 17.369s/17.385s 32.656s/32.069s - PCRE-5.0 35.840s/35.795s 25.340s/25.344s - - [-O2] - GNU regex-0.12 12.240s/12.280s 19.512s/19.489s - PCRE-5.0 24.580s/24.578s 17.235s/17.238s - - - diff -Nru ngrep-1.45.ds2/EXAMPLES.md ngrep-1.47+ds1/EXAMPLES.md --- ngrep-1.45.ds2/EXAMPLES.md 1970-01-01 00:00:00.000000000 +0000 +++ ngrep-1.47+ds1/EXAMPLES.md 2017-09-07 21:28:35.000000000 +0000 @@ -0,0 +1,366 @@ +Some helpful tips: + + * When the intention is to match all packets (i.e. blank regex), it is + technically faster to use an empty regex (`''`) than to use a wildcard + (e.g. `'.*'`, `'*'`). + + * When sniffing interfaces that are very busy or are seeing large amounts of + packet traffic, make sure to craft a BPF filter to limit what PCAP has to + deliver to ngrep. The ngrep parser takes a certain amount of time and while + negligible on a slow interface, it can add up very quickly on a busy one. + + * Hexadecimal expressions can be in straight numeric form, 'DEADBEEF', or in + symbolic form, '0xDEADBEEF'. A byte is the smallest unit of measure you can + match against. + + * As of v1.28, ngrep doesn't require a match expression. However, there are + cases where ngrep can be confused and think part of your bpf filter is the + match expression, as in: + + ``` + % ngrep not port 80 + interface: eth0 (192.168.1.0/255.255.255.0) + filter: ip and ( port 80 ) + match: not + ``` + + In cases like this, you will need to specify a blank match expression: + + ``` + % ngrep '' not port 80 + interface: eth0 (192.168.1.0/255.255.255.0) + filter: ip and ( not port 80 ) + ``` + +## Basic Packet Sniffing + +Basic packet sniffing is easy with ngrep. It supports BPF filter logic, which +means to say constraining what ngrep sees and displays is as easy as saying +something like `ngrep host foo.bar.com and port 25`. Following are a few +examples of common invocations of ngrep to do basic packet sniffing. Please +note the usage of `any' as the specified ethernet adaptor to attach to; in most +recent UNIX libpcap implementations this will instruct ngrep to attach to all +interfaces at once, local (lo) and all external interfaces that may be active. + +* `ngrep -d any port 25` + +Monitor all activity crossing source or destination port 25 (SMTP). + +* `ngrep -d any 'error' port syslog` + +Monitor any network-based syslog traffic for the occurrence of the word "error". +ngrep knows how to convert service port names (on UNIX, located in +`/etc/services`) to port numbers. + +* `ngrep -wi -d any 'user|pass' port 21` + +Monitor any traffic crossing source or destination port 21 (FTP), looking +case-insensitively for the words "user" or "pass", matched as word-expressions +(the match term(s) must have non-alphanumeric, delimiting characters surrounding +them). + +## Debugging HTTP interactions + +In certain scenarios it is desirous to see how web browsers communicate with web +servers, and to inspect the HTTP headers and possibly cookie values that they +are exchanging. + +In this example, we run an ngrep on a webserver. Since it only has +one interface, eth0, we omit specifying the interface manually on the +command line and allow ngrep to choose the default interface for us, +for convenience. + +``` +# ngrep port 80 +interface: eth0 (64.90.164.72/255.255.255.252) +filter: ip and ( port 80 ) +#### +T 67.169.59.38:42167 -> 64.90.164.74:80 [AP] + GET / HTTP/1.1..User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; X11; Linux i + 686) Opera 7.21 [en]..Host: www.darkridge.com..Accept: text/html, applicat + ion/xml;q=0.9, application/xhtml+xml;q=0.9, image/png, image/jpeg, image/gi + f, image/x-xbitmap, */*;q=0.1..Accept-Charset: iso-8859-1, utf-8, utf-16, * + ;q=0.1..Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0..Cookie: SQ + MSESSID=5272f9ae21c07eca4dfd75f9a3cda22e..Cookie2: $Version=1..Connection: + Keep-Alive, TE..TE: deflate, gzip, chunked, identity, trailers.... +## +T 64.90.164.74:80 -> 67.169.59.38:42167 [AP] + HTTP/1.1 200 OK..Date: Mon, 29 Mar 2004 00:44:40 GMT..Server: Apache/2.0.49 + (Unix)..Last-Modified: Tue, 04 Nov 2003 12:09:41 GMT..ETag: "210e23-326-f8 + 200b40"..Accept-Ranges: bytes..Vary: Accept-Encoding,User-Agent..Content-En + coding: gzip..Content-Length: 476..Keep-Alive: timeout=15, max=100..Connect + ion: Keep-Alive..Content-Type: text/html; charset=ISO-8859-1..Content-Langu + age: en..............}S]..0.|...........H...8........@..\....(.....Dw.%.,.. + ;.k.....Y>q<........d ...........3.i..kdm.u@d{.Q..\....@..B1.0.2YI^..R..... + ....X......X..y...\.....,..(........1...g.......*...j..a.`._@.W....0.....?. + .R.K.j..Y.....>...;kw*U.j.<...\0Tn.l.:......>Fs....'....h.'...u.H4..'.6.vID + I.......N.r.O...}...I.w. ...mX...L.s..{.L.R..-...e....~nu..t.3...H..#..J... + .u.?..]....^..2.....e8v/gP.....].48...qD!..........#y...m}..>/?..#........I + ..I..4.P......2:...n8l.......!.Yr&... +## +``` + +As you can see, all headers and aspects of the HTTP transmission are exposed in +their gory detail. It's a little hard to parse though, so let's see what +happens when `-W byline` mode is used: + +``` +# ngrep -W byline port 80 +interface: eth0 (64.90.164.72/255.255.255.252) +filter: ip and ( port 80 ) +#### +T 67.169.59.38:42177 -> 64.90.164.74:80 [AP] +GET / HTTP/1.1. +User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; X11; Linux i686) Opera ... +Host: www.darkridge.com. +Accept: text/html, application/xml;q=0.9, application/xhtml+xml;q=0.9 ... +Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1. +Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0. +Cookie: SQMSESSID=5272f9ae21c07eca4dfd75f9a3cda22e. +Cookie2: $Version=1. +Cache-Control: no-cache. +Connection: Keep-Alive, TE. +TE: deflate, gzip, chunked, identity, trailers. +. + +## +T 64.90.164.74:80 -> 67.169.59.38:42177 [AP] +HTTP/1.1 200 OK. +Date: Mon, 29 Mar 2004 00:47:25 GMT. +Server: Apache/2.0.49 (Unix). +Last-Modified: Tue, 04 Nov 2003 12:09:41 GMT. +ETag: "210e23-326-f8200b40". +Accept-Ranges: bytes. +Vary: Accept-Encoding,User-Agent. +Content-Encoding: gzip. +Content-Length: 476. +Keep-Alive: timeout=15, max=100. +Connection: Keep-Alive. +Content-Type: text/html; charset=ISO-8859-1. +Content-Language: en. +. +..........}S]..0.|...........H...8........@..\....(.....Dw.%.,..;.k.. ... +.;kw*U.j.<...\0Tn.l.:......>Fs....'....h.'...u.H4..'.6.vIDI.......N.r ... +..H..#..J....u.?..]....^..2.....e8v/gP.....].48...qD!..........#y...m ... +#### +``` + +(Content visually truncated for display purposes.) + +`-W byline` mode tells ngrep to respect embedded line feeds when they occur. +You'll note from the output above that there is still a trailing dot (".") on +each line, which is the carriage-return portion of the CRLF pair. Using this +mode, now the output has become much easier to visually parse. + +## Processing PCAP dump files, looking for patterns + +I had a friend who worked at Network Solutions and among the things he did was +analyze huge 500M+ PCAP dump files of DNS traffic, looking for patterns and +anomalies. ngrep was an invaluable tool for this purpose; it allowed him to +take one instance of a network dump and search it quickly and repeatedly for +patterns in the data packets. + +To save a PCAP dump file from ngrep is very easy; simply run ngrep as you +normally would but add one more command line option: `-O some.file.dump` (the +name of the file is largely irrelevant). To illustrate another feature of +ngrep, we will use the `-T` option (print time differential information). + +``` +# ngrep -O /tmp/dns.dump -d any -T port domain +interface: any +filter: ip and ( port domain ) +output: /tmp/dns.dump +# +U +0.000000 203.115.225.24:53 -> 64.90.164.74:53 + .............m.razor2.cloudmark.com.......)........ +# +U +0.000281 64.90.164.74:53 -> 203.115.225.24:53 + .............m.razor2.cloudmark.com................'.ns1...hostmaster..ws.. + ..p.... ..:.......)........ +# +U +0.078184 195.113.155.7:2949 -> 64.90.164.74:53 + .............a.razor2.cloudmark.com..... +# +U +0.000351 64.90.164.74:53 -> 195.113.155.7:2949 + .............a.razor2.cloudmark.com..................agony...4..........B.. + ..............ns1...............ns2...............ns3...X..........@Z.J.j.. + ........@Z...|..........B..; +^Cexit +6 received, 0 dropped +``` + +Note the `output:` indicator and timestamp information. Now we have a PCAP dump +file, and so let's search it for some patterns: + +``` +# ngrep -w 'm' -I /tmp/dns.dump +input: /tmp/dns.dump +match: ((^m\W)|(\Wm$)|(\Wm\W)) +# +U 203.115.225.24:53 -> 64.90.164.74:53 + .............m.razor2.cloudmark.com.......)........ +# +U 64.90.164.74:53 -> 203.115.225.24:53 + .............m.razor2.cloudmark.com................'.ns1...hostmaster..ws.. + ..p.... ..:.......)........ +##exit +``` + +Above we searched for the letter "m", matched as a word (`-w`). This yields two +packets. + +``` +# ngrep -tD ns3 -I /tmp/dns.dump +input: /tmp/dns.dump +match: ns3 +#### +U 2004/03/28 20:32:37.088525 64.90.164.74:53 -> 195.113.155.7:2949 + .............a.razor2.cloudmark.com..................agony...4..........B.. + ..............ns1...............ns2...............ns3...X..........@Z.J.j.. + ........@Z...|..........B..; +exit +``` + +Here we've added `-t` which means print the absolute timestamp on the packet, +and `-D` which means replay the packets by the time interval at which they were +recorded. The latter is a neat little feature for observing the traffic at the +rates/times they originally seen, though in this example it's not terribly +effective as there is only one packet being matched. + +``` +# ngrep -I /tmp/dns.dump port 80 +input: /tmp/dns.dump +filter: ip and ( port 80 ) +exit +``` + +There's no port 80 traffic in the dump, so of course the BPF filter yields us no +results. + +## Observing binary being transferred across the wire + +One interesting feature of ngrep is its ability to take a hexademical (binary) +expression and search for that in lieu of a regular expression. ngrep can also +display the packets it observes in a hexadecimal format, which is more effective +for inspecting binary content patterns. + +In this example, we will simply look for a binary pattern in a web stream, but +the more obvious usage is to look for a DDoS Zombie's unique binary signature +(say, from a command packet), or even a Worm/Virus being transferred across the +wire as it propogates itself. + +For this test, let's assume we have a GIF on a web server that has the data +pattern "0xc5d5e5f55666768696a6b6c6d6e6" (hexademical) in it. Once `-X` is +specified, the expression will be interpreted as a hexademical pattern instead +of a regular expression, and the "0x" prefix is optional. + +To see a packet like this cross the wire: + +``` +# ngrep -xX '0xc5d5e5f55666768696a6b6c6d6e6' port 80 +interface: eth0 (64.90.164.72/255.255.255.252) +filter: ip and ( port 80 ) +match: 0xc5d5e5f55666768696a6b6c6d6e6 +### +T 64.90.164.74:80 -> 67.169.59.38:42306 [A] + ff d8 ff e0 00 10 4a 46 49 46 00 01 02 01 00 48 ......JFIF.....H + 00 48 00 00 ff ed 13 ba 50 68 6f 74 6f 73 68 6f .H......Photosho + 70 20 33 2e 30 00 38 42 49 4d 03 ed 00 00 00 00 p 3.0.8BIM...... + 00 10 00 48 00 00 00 01 00 01 00 48 00 00 00 01 ...H.......H.... + 00 01 38 42 49 4d 04 0d 00 00 00 00 00 04 00 00 ..8BIM.......... + 00 78 38 42 49 4d 03 f3 00 00 00 00 00 08 00 00 .x8BIM.......... + 00 00 00 00 00 00 38 42 49 4d 04 0a 00 00 00 00 ......8BIM...... + 00 01 00 00 38 42 49 4d 27 10 00 00 00 00 00 0a ....8BIM'....... + 00 01 00 00 00 00 00 00 00 02 38 42 49 4d 03 f5 ..........8BIM.. + 00 00 00 00 00 48 00 2f 66 66 00 01 00 6c 66 66 .....H./ff...lff + 00 06 00 00 00 00 00 01 00 2f 66 66 00 01 00 a1 ........./ff.... + 99 9a 00 06 00 00 00 00 00 01 00 32 00 00 00 01 ...........2.... + 00 5a 00 00 00 06 00 00 00 00 00 01 00 35 00 00 .Z...........5.. + 00 01 00 2d 00 00 00 06 00 00 00 00 00 01 38 42 ...-..........8B + 49 4d 03 f8 00 00 00 00 00 70 00 00 ff ff ff ff IM.......p...... + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + ff ff 03 e8 00 00 00 00 ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff ff ff ff ff ff ff ff 03 e8 ................ + 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff ff ff ff ff 03 e8 00 00 00 00 ................ + ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ + ff ff ff ff ff ff 03 e8 00 00 38 42 49 4d 04 08 ..........8BIM.. + 00 00 00 00 00 10 00 00 00 01 00 00 02 40 00 00 .............@.. + 02 40 00 00 00 00 38 42 49 4d 04 14 00 00 00 00 .@....8BIM...... + 00 04 00 00 00 06 38 42 49 4d 04 0c 00 00 00 00 ......8BIM...... + 12 2a 00 00 00 01 00 00 00 70 00 00 00 57 00 00 .*.......p...W.. + 01 50 00 00 72 30 00 00 12 0e 00 18 00 01 ff d8 .P..r0.......... + ff e0 00 10 4a 46 49 46 00 01 02 01 00 48 00 48 ....JFIF.....H.H + 00 00 ff fe 00 26 46 69 6c 65 20 77 72 69 74 74 .....&File writt + 65 6e 20 62 79 20 41 64 6f 62 65 20 50 68 6f 74 en by Adobe Phot + 6f 73 68 6f 70 a8 20 35 2e 30 ff ee 00 0e 41 64 oshop. 5.0....Ad + 6f 62 65 00 64 80 00 00 00 01 ff db 00 84 00 0c obe.d........... + 08 08 08 09 08 0c 09 09 0c 11 0b 0a 0b 11 15 0f ................ + 0c 0c 0f 15 18 13 13 15 13 13 18 11 0c 0c 0c 0c ................ + 0c 0c 11 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c ................ + 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 01 ................ + 0d 0b 0b 0d 0e 0d 10 0e 0e 10 14 0e 0e 0e 14 14 ................ + 0e 0e 0e 0e 14 11 0c 0c 0c 0c 0c 11 11 0c 0c 0c ................ + 0c 0c 0c 11 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c ................ + 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c ................ + ff c0 00 11 08 00 57 00 70 03 01 22 00 02 11 01 ......W.p..".... + 03 11 01 ff dd 00 04 00 07 ff c4 01 3f 00 00 01 ............?... + 05 01 01 01 01 01 01 00 00 00 00 00 00 00 03 00 ................ + 01 02 04 05 06 07 08 09 0a 0b 01 00 01 05 01 01 ................ + 01 01 01 01 00 00 00 00 00 00 00 01 00 02 03 04 ................ + 05 06 07 08 09 0a 0b 10 00 01 04 01 03 02 04 02 ................ + 05 07 06 08 05 03 0c 33 01 00 02 11 03 04 21 12 .......3......!. + 31 05 41 51 61 13 22 71 81 32 06 14 91 a1 b1 42 1.AQa."q.2.....B + 23 24 15 52 c1 62 33 34 72 82 d1 43 07 25 92 53 #$.R.b34r..C.%.S + f0 e1 f1 63 73 35 16 a2 b2 83 26 44 93 54 64 45 ...cs5....&D.TdE + c2 a3 74 36 17 d2 55 e2 65 f2 b3 84 c3 d3 75 e3 ..t6..U.e.....u. + f3 46 27 94 a4 85 b4 95 c4 d4 e4 f4 a5 b5 c5 d5 .F'............. + e5 f5 56 66 76 86 96 a6 b6 c6 d6 e6 f6 37 47 57 ..Vfv........7GW + 67 77 87 97 a7 b7 c7 d7 e7 f7 11 00 02 02 01 02 gw.............. + 04 04 03 04 05 06 07 07 06 05 35 01 00 02 11 03 ..........5..... + 21 31 12 04 41 51 61 71 22 13 05 32 81 91 14 a1 !1..AQaq"..2.... + b1 42 23 c1 52 d1 f0 33 24 62 e1 72 82 92 43 53 .B#.R..3$b.r..CS + 15 63 73 34 f1 25 06 16 a2 b2 83 07 26 35 c2 d2 .cs4.%......&5.. + 44 93 54 a3 17 64 45 55 36 74 65 e2 f2 b3 84 c3 D.T..dEU6te..... + d3 75 e3 f3 46 94 a4 85 b4 95 c4 d4 e4 f4 a5 b5 .u..F........... + c5 d5 e5 f5 56 66 76 86 96 a6 b6 c6 d6 e6 f6 27 ....Vfv........' + 37 47 57 67 77 87 97 a7 b7 c7 ff da 00 0c 03 01 7GWgw........... + 00 02 11 03 11 00 3f 00 f2 a5 3a ad 35 ba 40 0e ......?...:.5.@. + 04 16 90 78 20 a8 25 07 94 aa d3 19 18 90 41 a2 ...x .%.......A. + 13 9a 4b 9b b9 a0 91 c8 3d c8 ef a7 f2 14 46 35 ..K.....=.....F5 + af fe 6c 6f f8 73 e3 3b 7e 92 6a ad 2c 30 75 64 ..lo.s.;~.j.,0ud + 82 47 fd f9 a7 f3 5c 8a ec d7 b5 e4 d2 4b 79 0d .G....\......Ky. + 73 a0 ba 3f f2 49 87 8b 61 4d 88 fd de 40 4a 66 s..?.I..aM...@Jf + 51 fd e8 c7 e6 ff 00 03 f4 5a ee 63 d8 76 bd a5 Q........Z.c.v.. + a4 76 22 13 29 d9 75 b6 99 b1 ee 7c 71 b8 ca 82 .v".).u....|q... + 78 be ad 79 70 f1 1e 1b e1 e9 c5 f3 29 24 92 49 x..yp.......)$.I + 0a 49 24 92 52 92 45 c7 c4 bf 25 c5 b4 b7 76 d1 .I$.R.E...%...v. + 2e 3c 00 3f 94 ef a2 d5 6f 33 a3 64 e1 63 7a f9 .<.?....o3.d.cz. + 0f a9 85 c5 bb 29 f5 18 eb 1c 1c 1d b9 e2 ba 9c .....).......... + ff 00 63 36 fe 7a 69 c9 00 44 4c 87 11 da 3d 57 ..c6.zi..DL...=W + 8c 59 0c 4c c4 4f 08 fd 2e 8d 3a da e7 1d 8d 11 .Y.L.O....:..... + 22 75 47 ca fb 35 78 d5 d2 c2 1f 7c 87 58 f6 ea "uG..5x....|.X.. + 06 91 e9 ef fc e4 1b 5f 4c 33 d1 05 a7 68 0f 27 ......._L3...h.' + b9 fc e8 42 4a ac 83 a8 ae 8c 9e e0 84 65 00 23 ...BJ........e.# + 23 21 5c 7f 37 0c 7e 6f 47 f5 9f ff d0 f2 ae ca #!\.7.~oG....... + 62 36 c1 3a 1f c0 84 cd 69 71 81 c9 47 a6 f6 e3 b6.:....iq..G... + 3f 75 41 af 78 e1 ef 12 27 fe 0d bf f9 24 f1 3e ?uA.x...'....$.> + 0d 40 e2 24 55 7f 15 f0 80 91 1c 52 e0 85 eb 2a .@.$U......R...* + e2 ff 00 16 3f a4 c2 fc 5c 8a 1a c7 da c2 c6 d9 ....?...\....... + f4 67 c9 05 5f ca ea 37 3c fa 77 1a b2 1b e2 01 .g.._..7<.w..... + 81 3d 83 bd 8a 2e a8 67 39 b5 e0 63 90 e6 34 9b .=.....g9..c..4. + 00 20 ff 00 68 f1 ec 67 ef a8 63 29 50 e3 00 5f . ..h..g..c)P.._ + 51 f2 b3 f3 18 79 70 66 70 e5 26 30 e1 a8 65 1f Q....ypfp.&0..e. + ad 9c bf 4e 8e 3e 2c 5f f3 d8 62 f4 dc ac a6 ef ...N.>,_..b..... + a8 02 c0 40 73 8b 86 93 fb df 9c b6 3a 66 36 0d ...@s.......:f6. + 6c 73 18 45 b7 6a 2c de ls.E.j,. +######### +``` + +Above we specified `-X` to tell ngrep to treat the match expression as +hexadecimal, and `-x` to tell ngrep to print out the patterns it matches in +hexadecimal form. + +As it turns out, several other packets also matched this pattern, but this +should give you a good idea of how to use hexadecimal patterns and the hex +output mode. diff -Nru ngrep-1.45.ds2/INSTALL ngrep-1.47+ds1/INSTALL --- ngrep-1.45.ds2/INSTALL 1970-01-01 00:00:00.000000000 +0000 +++ ngrep-1.47+ds1/INSTALL 2017-09-07 21:28:35.000000000 +0000 @@ -0,0 +1,83 @@ + +================================================================= +NOTE: These instructions are from the 2006 release of ngrep 1.45. + They are sparse but will still give you the gist. Otherwise + try ngrep from your favorite package manager! +================================================================= + +ngrep Installation Guide +------------------------ + +1. Install the latest Packet Capture Library + +In orer to compile ngrep on any platform, the relevant packet capture +(PCAP) client support library must be installed. + +On UNIX, this is called ``libpcap'' and can be installed either from +source or from a distribution's particular package management system. +Some distributions separate the library itself from its development +headers (i.e. libpcap-devel), so make sure to install both if this is +the case. + +On Windows, the client support library is called ``WinPcap Developer's +Pack'' and should be unpacked inside the parent directory of the ngrep +source tree. + +The latest versions can be found at: + + UNIX: http://tcpdump.org/release/ + Win32: http://www.winpcap.org/ + + +2. Unpack the ngrep source + +Once the client packet capture client support library is installed, +unpack the ngrep source to a directory. + +On Windows, this must be under the same parent directory as the +WinPcap Developer's Pack. + + +3. Compile the ngrep program + +On UNIX, type the following from the root of the ngrep source tree: + + % ./configure && make + +On Windows, open the ``ngrep.sln'' file located in the ``win32'' +subdirectory of the ngrep source tree using Visual Studio.NET. From +there you should be able to Build the solution in either Debug or +Release mode. Once this is done, copy the resulting ``ngrep.exe'' +(located in either the ``Debug'' or ``Release'' subdirectory depending +on compile configuration) into any directory in your path for easy +usage (``c:\windows'', for instance). + +Please ignore the warnings associated with the GNU Regex library +included in the ngrep source tree. + + +4. Install the PCAP kernel driver + +ngrep is a PCAP-based program and therefore requires the PCAP kernel +driver to be installed before it will function properly. + +The PCAP Driver is already integrated into the vast majority of UNIX +and Linux kernels released within the last ~20 years. + +The Windows Platform, however, does not come with an integrated PCAP +kernel driver by default, so it is necessary to install one before +ngrep will work. + + +Getting Help +------------ + +On UNIX, if you still have problems compiling or are compiling on an +unsupported OS, try playing with other build types -- i.e. if you have +a BSD derived system, try the BSD build type. + +If you still have problems, please submit an issue on GitHub or feel +free to email me, however please try to help yourself first and search +Google for possible answers before reaching out. + +Jordan Ritter diff -Nru ngrep-1.45.ds2/LICENSE ngrep-1.47+ds1/LICENSE --- ngrep-1.45.ds2/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ ngrep-1.47+ds1/LICENSE 2017-09-07 21:28:35.000000000 +0000 @@ -0,0 +1,69 @@ +Copyright (c) 2017 Jordan Ritter. All rights reserved. + +Permission is granted to anyone to use this software for any purpose on +any computer system, and to alter it and redistribute it, subject +to the following restrictions: + +1. The origin of this software must not be misrepresented, either by + explicit claim or by omission. + +2. Altered versions must be plainly marked as such, and must not be + misrepresented as being the original software. Any altered version + must clearly and properly represent the origin of this software in + any accompanying documentation. + +3. All advertising materials which relate specifically to derivate + works of this software must display the following acknowledgement: + This product includes software developed by Jordan Ritter. + +4. The name of the Author may not be used to endorse or promote + products derived from this software without specific prior written + permission. + +5. This notice, and any references to this notice, in any original or + derived source distribution of or documentation for this software, + may not be removed or altered. + + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS +BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + +Portions were copied from tcpkill (part of dsniff), which has the +following copyright: + + Copyright (c) 1999, 2000 Dug Song + All rights reserved, all wrongs reversed. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. The name of author may not be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff -Nru ngrep-1.45.ds2/LICENSE.txt ngrep-1.47+ds1/LICENSE.txt --- ngrep-1.45.ds2/LICENSE.txt 2007-08-12 18:30:00.000000000 +0000 +++ ngrep-1.47+ds1/LICENSE.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,38 +0,0 @@ -Copyright (c) 2006 Jordan Ritter. All rights reserved. - -Permission is granted to anyone to use this software for any purpose on -any computer system, and to alter it and redistribute it, subject -to the following restrictions: - -1. The origin of this software must not be misrepresented, either by - explicit claim or by omission. - -2. Altered versions must be plainly marked as such, and must not be - misrepresented as being the original software. Any altered version - must clearly and properly represent the origin of this software in - any accompanying documentation. - -3. All advertising materials which relate specifically to derivate - works of this software must display the following acknowledgement: - This product includes software developed by Jordan Ritter. - -4. The name of the Author may not be used to endorse or promote - products derived from this software without specific prior written - permission. - -5. This notice, and any references to this notice, in any original or - derived source distribution of or documentation for this software, - may not be removed or altered. - - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS -BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff -Nru ngrep-1.45.ds2/Makefile.in ngrep-1.47+ds1/Makefile.in --- ngrep-1.45.ds2/Makefile.in 2007-08-12 18:30:00.000000000 +0000 +++ ngrep-1.47+ds1/Makefile.in 2017-09-07 21:28:35.000000000 +0000 @@ -1,22 +1,18 @@ # -# $Id: Makefile.in,v 1.23 2006/11/28 13:35:37 jpr5 Exp $ -# -# Copyright (c) 2006 Jordan Ritter +# Copyright (c) 2017 Jordan Ritter # # Please refer to the LICENSE file for more information. CC=@CC@ -CFLAGS=@CFLAGS@ -D@OS@ @DEFS@ @EXTRA_DEFINES@ -INCLUDES=-I@srcdir@ @PCAP_INCLUDE@ @EXTRA_INCLUDES@ - -LDFLAGS=@LDFLAGS@ @PCAP_LINK@ -LIBS=-lpcap @EXTRA_LIBS@ +CPPFLAGS = @DEFS@ -D@OS@ @EXTRA_DEFINES@ @CPPFLAGS@ +CFLAGS = @EXTRA_INCLUDES@ @CFLAGS@ +LDFLAGS = @EXTRA_LDFLAGS@ @LDFLAGS@ +LIBS = @LIBS@ @EXTRA_LIBS@ STRIPFLAG=@STRIPFLAG@ -SRC=ngrep.c -OBJS=ngrep.o +OBJS=ngrep.o @EXTRA_OBJS@ TARGET=ngrep MANPAGE=ngrep.8 @@ -32,58 +28,58 @@ INSTALL = ./install-sh -REGEX_DIR=@REGEX_DIR@ REGEX_OBJS=@REGEX_OBJS@ +REGEX_DIR=@REGEX_DIR@ -all: $(TARGET) +all: $(TARGET) -$(TARGET): $(REGEX_OBJS) $(OBJS) - $(CC) $(CFLAGS) $(LDFLAGS) $(STRIPFLAG) -o $(TARGET) $(OBJS) $(REGEX_OBJS) $(LIBS) +$(TARGET): $(REGEX_OBJS) $(OBJS) + $(CC) $(STRIPFLAG) -o $(TARGET) $(OBJS) $(REGEX_OBJS) $(LDFLAGS) $(LIBS) debug: $(REGEX_OBJS) $(OBJS) - $(CC) $(CFLAGS) $(LDFLAGS) -g -o $(TARGET) $(OBJS) $(REGEX_OBJS) $(LIBS) + $(CC) -g -o $(TARGET) $(OBJS) $(REGEX_OBJS) $(LDFLAGS) $(LIBS) static: $(REGEX_OBJS) $(OBJS) - $(CC) $(CFLAGS) $(LDFLAGS) $(STRIPFLAG) -o $(TARGET).static -static $(OBJS) $(REGEX_OBJS) $(LIBS) + $(CC) $(STRIPFLAG) -static -o $(TARGET).static $(OBJS) $(REGEX_OBJS) $(LDFLAGS) $(LIBS) install: $(TARGET) $(INSTALL) -c -m 0755 $(TARGET) $(DESTDIR)/$(BINDIR_INSTALL)/$(TARGET) $(INSTALL) -c -m 0644 $(MANPAGE) $(DESTDIR)/$(MANDIR_INSTALL)/$(MANPAGE) -.c.o: - $(CC) $(CFLAGS) $(INCLUDES) -g -c $< +.c.o: + $(CC) $(CPPFLAGS) $(CFLAGS) -g -c $< clean: - make -C $(REGEX_DIR) clean + test -n "$(REGEX_DIR)" && $(MAKE) -C $(REGEX_DIR) clean || exit 0 rm -f *~ $(OBJS) $(REGEX_OBJS) $(TARGET) $(TARGET).static -distclean: clean - make -C $(REGEX_DIR) distclean - rm -f config.status config.cache config.log config.h Makefile +distclean: clean + test -n "$(REGEX_DIR)" && $(MAKE) -C $(REGEX_DIR) distclean || exit 0 + rm -f config.status config.cache config.log config.h Makefile $(REGEX_OBJS): $(REGEX_OBJS:.o=.c) $(REGEX_DIR)/*.h $(MAKE) $(MAKEFLAGS) -C $(REGEX_DIR) $(notdir $(REGEX_OBJS)) -$(OBJS): Makefile ngrep.c ngrep.h +$(OBJS): Makefile $(OBJS:.o=.c) $(OBJS:.o=.h) tardist: @( VERSION=`perl -ne '/VERSION\s+"(.*)"/ && print "$$1\n"' ngrep.h` ; \ - PKG="ngrep-$$VERSION" ; \ - TMPDIR="/tmp" ; \ - DESTDIR="$$TMPDIR/$$PKG" ; \ - echo ; \ - echo "Building package $$PKG ... " ; \ - echo ; \ - sleep 2 ; \ - rm -rf $$DESTDIR && mkdir $$DESTDIR && \ - make distclean && \ - tar cf - . --exclude "CVS" | tar xf - -C $$DESTDIR && \ - find $$DESTDIR -name "*~" -o -name ".*#*" | xargs rm -f && \ - cd $$TMPDIR && tar jcf $$PKG.tar.bz2 $$PKG ; \ - rm -rf $$DESTDIR ; \ - cd $$TMPDIR && gpg -ba $$PKG.tar.bz2 ; \ - echo ; \ - ls -l $$TMPDIR/$$PKG.tar.bz2 $$TMPDIR/$$PKG.tar.bz2.asc ; \ - echo ; \ - ) + PKG="ngrep-$$VERSION" ; \ + TMPDIR="/tmp" ; \ + DESTDIR="$$TMPDIR/$$PKG" ; \ + echo ; \ + echo "Building package $$PKG ... " ; \ + echo ; \ + sleep 2 ; \ + rm -rf $$DESTDIR && mkdir $$DESTDIR && \ + make distclean && \ + tar --exclude "CVS" -cf - . | tar xf - -C $$DESTDIR && \ + find $$DESTDIR -name "*~" -o -name ".*#*" | xargs rm -f && \ + cd $$TMPDIR && tar zcf $$PKG.tar.gz $$PKG ; \ + rm -rf $$DESTDIR ; \ + cd $$TMPDIR && gpg -ba $$PKG.tar.gz ; \ + echo ; \ + ls -l $$TMPDIR/$$PKG.tar.gz $$TMPDIR/$$PKG.tar.gz.asc ; \ + echo ; \ + ) diff -Nru ngrep-1.45.ds2/ngrep.8 ngrep-1.47+ds1/ngrep.8 --- ngrep-1.45.ds2/ngrep.8 2007-08-12 18:30:00.000000000 +0000 +++ ngrep-1.47+ds1/ngrep.8 2017-09-07 21:28:35.000000000 +0000 @@ -1,12 +1,10 @@ -.\" $Id: ngrep.8,v 1.26 2006/11/28 13:36:31 jpr5 Exp $ -.\" .\" All content, except portions of the bpf filter explanation, are: .\" -.\" Copyright (c) 2006 Jordan Ritter +.\" Copyright (c) 2017 Jordan Ritter .\" .\" Please refer to the LICENSE file for more information. -.TH NGREP 8 "November 2006" *nux "User Manuals" +.TH NGREP 8 "September 2017" *nux "User Manuals" .SH NAME @@ -106,7 +104,8 @@ .IP -T Print a timestamp in the form of +S.UUUUUU, indicating the delta -between packet matches. +between packet matches. Specify a second time to indicate the delta +since the first packet match. .IP -R Do not try to drop privileges to the DROPPRIVS_USER. @@ -141,16 +140,20 @@ Specify an alternate character to signify non-printable characters when displayed. The default is ``.''. +.IP "-K num" +Kill matching TCP connections (like tcpkill). The numeric argument +controls how many RST segments are sent. + .IP "-W normal|byline|single|none" Specify an alternate manner for displaying packets, when not in hexadecimal mode. The ``byline'' mode honors embedded linefeeds, -wrapping text only when a linefeed is encountered. The ``none'' mode -doesn't wrap under any circumstance (entire payload is displayed on -one line). The ``single'' mode is conceptually the same as ``none'', -except that everything including IP and source/destination header -information is all on one line. ``normal'' is the default mode and is -only included for completeness. This option is incompatible with -``-x''. +wrapping text only when a linefeed is encountered (useful for observing +HTTP transactions, for instance). The ``none'' mode doesn't wrap under +any circumstance (entire payload is displayed on one line). The +``single'' mode is conceptually the same as ``none'', except that +everything including IP and source/destination header information is all +on one line. ``normal'' is the default mode and is only included for +completeness. This option is incompatible with ``-x''. .IP "-s snaplen" Set the bpf caplen to snaplen (default 65536). @@ -181,21 +184,6 @@ .IP "-A num" Dump \fInum\fP packets of trailing context after matching a packet. -.IP "-W normal|byline|none" -Alter the method by which ngrep displays packet payload. ``normal'' -mode represents the standard behaviour, ``byline'' instructs ngrep to -respect embedded linefeeds (useful for observing HTTP transactions, -for instance), and ``none'' results in the payload on one single line -(useful for scripted processing of ngrep output). - -.IP "-c cols" -Ignore the detected terminal width and force the column width to the -specified size. - -.IP "-P char" -Change the non-printable character from the default ``.'' to the -character specified. - .IP "\fI match expression\fP" A match expression is either an extended regular expression, or if the \fI-X\fP option is specified, a string signifying a hexadecimal value. @@ -500,18 +488,27 @@ .B GNU regex library are all output to stderr. +.SH EXIT STATUS + +The ngrep utility exits with one of the following values: + + 0 One or more frames were matched. + 1 No frames were matched. + 2 An error occurred. + 3+ Hell is freezing over, run! + .SH AUTHOR Written by Jordan Ritter . .SH REPORTING BUGS -Please report bugs to the ngrep's Sourceforge Bug Tracker, located at +Please report bugs to the ngrep's GitHub Issue Tracker, located at - http://sourceforge.net/projects/ngrep/ + http://github.com/jpr5/ngrep/issues -Non-bug, non-feature-request general feedback should be sent to the -author directly by email. +Non-bug, non-feature-request general feedback should be sent to the author +directly by email. .SH NOTES diff -Nru ngrep-1.45.ds2/ngrep.c ngrep-1.47+ds1/ngrep.c --- ngrep-1.45.ds2/ngrep.c 2007-08-12 18:30:00.000000000 +0000 +++ ngrep-1.47+ds1/ngrep.c 2017-09-07 21:28:35.000000000 +0000 @@ -1,7 +1,5 @@ /* - * $Id: ngrep.c,v 1.93 2006/11/28 13:38:43 jpr5 Exp $ - * - * Copyright (c) 2006 Jordan Ritter + * Copyright (c) 2017 Jordan Ritter * * Please refer to the LICENSE file for more information. * @@ -32,7 +30,7 @@ #include #endif -#if defined(LINUX) +#if defined(LINUX) || defined(__GLIBC__) || defined(__GNU__) #include #include #include @@ -55,11 +53,12 @@ #include #include #include +#include #include -#include #include #define strcasecmp stricmp +#define strncasecmp strnicmp #else @@ -74,6 +73,7 @@ #include #include #include +#include #if !defined(_WIN32) #include @@ -92,28 +92,32 @@ #endif #if USE_PCRE -#include "pcre-5.0/pcre.h" +#include #else -#include "regex-0.12/regex.h" +#include #endif #include "ngrep.h" -static char rcsver[] = "$Revision: 1.93 $"; - /* * Configuration Options */ -uint16_t snaplen = 65535, limitlen = 65535, promisc = 1, to = 100; -uint16_t match_after = 0, keep_matching = 0, matches = 0, max_matches = 0; +uint32_t snaplen = 65535, limitlen = 65535, promisc = 1, to = 100; +uint32_t match_after = 0, keep_matching = 0, matches = 0, max_matches = 0; +uint32_t seen_frames = 0; + +#if USE_TCPKILL +uint32_t tcpkill_active = 0; +#endif uint8_t re_match_word = 0, re_ignore_case = 0, re_multiline_match = 1; uint8_t show_empty = 0, show_hex = 0, show_proto = 0, quiet = 0; uint8_t invert_match = 0, bin_match = 0; uint8_t live_read = 1, want_delay = 0; uint8_t dont_dropprivs = 0; +uint8_t enable_hilite = 0; char *read_file = NULL, *dump_file = NULL; char *usedev = NULL; @@ -145,7 +149,7 @@ int8_t (*match_func)() = &blank_match_func; int8_t dump_single = 0; -void (*dump_func)(unsigned char *, uint32_t) = &dump_formatted; +void (*dump_func)(unsigned char *, uint32_t, uint16_t, uint16_t) = &dump_formatted; /* * BPF/Network @@ -155,8 +159,9 @@ char pc_err[PCAP_ERRBUF_SIZE]; uint8_t link_offset; uint8_t radiotap_present = 0; +uint8_t include_vlan = USE_VLAN_HACK; -pcap_t *pd = NULL; +pcap_t *pd = NULL, *pd_dumppcap = NULL; pcap_dumper_t *pd_dump = NULL; struct bpf_program pcapfilter; struct in_addr net, mask; @@ -176,8 +181,7 @@ /* - * When !Win32, windowsize stuff. We leave it in regardless to avoid - * any additional #if complication/obfuscation. + * Window-size functionality (adjust output based on width of console display) */ uint32_t ws_row, ws_col = 80, ws_col_forced = 0; @@ -195,7 +199,19 @@ signal(SIGWINCH, update_windowsize); #endif - while ((c = getopt(argc, argv, "LNhXViwqpevxlDtTRMs:n:c:d:A:I:O:S:P:F:W:")) != EOF) { + setlocale(LC_ALL, ""); + +#if !defined(_WIN32) + { + char const *locale = getenv("LANG"); + if (locale == NULL) + locale = "en_US"; + + setlocale(LC_CTYPE, locale); + } +#endif + + while ((c = getopt(argc, argv, "LNhXViwqpevxlDtTRMK:Cs:n:c:d:A:I:O:S:P:F:W:")) != EOF) { switch (c) { case 'W': { if (!strcasecmp(optarg, "normal")) @@ -209,7 +225,7 @@ dump_single = 1; } else { printf("fatal: unknown wrap method '%s'\n", optarg); - usage(-1); + usage(); } } break; @@ -219,9 +235,10 @@ case 'P': nonprint_char = *optarg; break; - case 'S': - limitlen = atoi(optarg); + case 'S': { + limitlen = _atoui32(optarg); break; + } case 'O': dump_file = optarg; break; @@ -229,34 +246,42 @@ read_file = optarg; break; case 'A': - match_after = atoi(optarg) + 1; + match_after = _atoui32(optarg); + if (match_after < UINT32_MAX) + match_after++; break; #if defined(_WIN32) case 'L': win32_listdevices(); - clean_exit(0); + clean_exit(2); case 'd': usedev = win32_usedevice(optarg); break; #else case 'L': perror("-L is a Win32-only option"); - clean_exit(-1); + clean_exit(2); case 'd': usedev = optarg; + /* Linux: any = DLT_LINUX_SLL, pcap says incompatible with VLAN */ + if (!strncasecmp(usedev, "any", 3)) + include_vlan = 0; break; #endif case 'c': ws_col_forced = atoi(optarg); break; case 'n': - max_matches = atoi(optarg); + max_matches = _atoui32(optarg); break; case 's': { - uint16_t value = atoi(optarg); + uint16_t value = _atoui32(optarg); if (value > 0) snaplen = value; } break; + case 'C': + enable_hilite = 1; + break; case 'M': re_multiline_match = 0; break; @@ -264,13 +289,18 @@ dont_dropprivs = 1; break; case 'T': - print_time = &print_time_diff; + if (print_time == &print_time_diff) { + print_time = print_time_offset; + memset(&prev_ts, 0, sizeof(prev_ts)); + } else { + print_time = &print_time_diff; #if defined(_WIN32) - prev_ts.tv_sec = (uint32_t)time(NULL); - prev_ts.tv_usec = 0; + prev_ts.tv_sec = (uint32_t)time(NULL); + prev_ts.tv_usec = 0; #else - gettimeofday(&prev_ts, NULL); + gettimeofday(&prev_ts, NULL); #endif + } break; case 't': print_time = &print_time_absolute; @@ -310,224 +340,141 @@ case 'N': show_proto++; break; +#if USE_TCPKILL + case 'K': + tcpkill_active = _atoui32(optarg); + break; +#endif case 'h': - usage(0); + usage(); default: - usage(-1); + usage(); } } if (show_hex && dump_func != &dump_formatted) { printf("fatal: -x (hex dump) is incompatible with -W (alternate format)\n"); - usage(-1); + usage(); } if (argv[optind]) match_data = argv[optind++]; - if (read_file) { - - if (!(pd = pcap_open_offline(read_file, pc_err))) { - perror(pc_err); - clean_exit(-1); - } - - live_read = 0; - printf("input: %s\n", read_file); +#if USE_TCPKILL + if (tcpkill_active) + tcpkill_init(); +#endif - } else { + /* Setup PCAP input */ - char *dev = usedev ? usedev : pcap_lookupdev(pc_err); + if (setup_pcap_source()) + clean_exit(2); - if (!dev) { - perror(pc_err); - clean_exit(-1); - } + /* Setup BPF filter */ - if ((pd = pcap_open_live(dev, snaplen, promisc, to, pc_err)) == NULL) { - perror(pc_err); - clean_exit(-1); - } - - if (pcap_lookupnet(dev, &net.s_addr, &mask.s_addr, pc_err) == -1) { - perror(pc_err); - memset(&net, 0, sizeof(net)); - memset(&mask, 0, sizeof(mask)); - } + if (setup_bpf_filter(argv)) { + include_vlan = 0; + if (filter) { free(filter); filter = NULL; } - if (quiet < 2) { - printf("interface: %s", dev); - if (net.s_addr && mask.s_addr) { - printf(" (%s/", inet_ntoa(net)); - printf("%s)", inet_ntoa(mask)); - } - printf("\n"); + if (setup_bpf_filter(argv)) { + pcap_perror(pd, "pcap"); + clean_exit(2); } } - if (filter_file) { - char buf[1024] = {0}; - FILE *f = fopen(filter_file, "r"); - - if (!f || !fgets(buf, sizeof(buf)-1, f)) { - fprintf(stderr, "fatal: unable to get filter from %s: %s\n", filter_file, strerror(errno)); - usage(-1); - } - - fclose(f); - - filter = get_filter_from_string(buf); - - if (pcap_compile(pd, &pcapfilter, filter, 0, mask.s_addr)) { - pcap_perror(pd, "pcap compile"); - clean_exit(-1); - } - - } else if (argv[optind]) { - filter = get_filter_from_argv(&argv[optind]); + if (filter) { + if (quiet < 2) + printf("filter: %s\n", filter); + free(filter); + } - if (pcap_compile(pd, &pcapfilter, filter, 0, mask.s_addr)) { - free(filter); - filter = get_filter_from_argv(&argv[optind-1]); + /* Setup matcher */ -#if USE_PCAP_RESTART - PCAP_RESTART_FUNC(); -#endif - if (pcap_compile(pd, &pcapfilter, filter, 0, mask.s_addr)) { - pcap_perror(pd, "pcap compile"); - clean_exit(-1); - } else match_data = NULL; - } + if (match_data) { + if (setup_matcher()) + clean_exit(2); - } else { - char *default_filter = BPF_FILTER_IP; + if (quiet < 2 && strlen(match_data)) + printf("%smatch: %s%s\n", invert_match?"don't ":"", + (bin_data && !strchr(match_data, 'x'))?"0x":"", match_data); - if (pcap_compile(pd, &pcapfilter, default_filter, 0, mask.s_addr)) { - pcap_perror(pd, "pcap compile"); - clean_exit(-1); - } + if (re_match_word) free(match_data); } - if (filter && quiet < 2) - printf("filter: %s\n", filter); + /* Misc */ - if (pcap_setfilter(pd, &pcapfilter)) { - pcap_perror(pd, "pcap set"); - clean_exit(-1); + if (dump_file) { + pd_dump = pcap_dump_open(pd, dump_file); + if (!pd_dump) { + fprintf(stderr, "fatal: %s\n", pcap_geterr(pd)); + clean_exit(2); + } else printf("output: %s\n", dump_file); } - if (match_data) { - if (bin_match) { - uint32_t i = 0, n; - uint32_t len; - char *s, *d; - - if (re_match_word || re_ignore_case) { - fprintf(stderr, "fatal: regex switches are incompatible with binary matching\n"); - clean_exit(-1); - } + update_windowsize(0); - len = (uint32_t)strlen(match_data); - if (len % 2 != 0 || !strishex(match_data)) { - fprintf(stderr, "fatal: invalid hex string specified\n"); - clean_exit(-1); - } +#if defined(_WIN32) + win32_initwinsock(); +#endif - bin_data = malloc(len / 2); - memset(bin_data, 0, len / 2); - d = bin_data; - - if ((s = strchr(match_data, 'x'))) - len -= (uint32_t)(++s - match_data - 1); - else s = match_data; - - while (i <= len) { - sscanf(s+i, "%2x", &n); - *d++ = n; - i += 2; - } +#if !defined(_WIN32) && USE_DROPPRIVS + drop_privs(); +#endif - match_len = len / 2; - match_func = &bin_match_func; + while (pcap_loop(pd, -1, (pcap_handler)process, 0)); - } else { + clean_exit(0); -#if USE_PCRE - uint32_t pcre_options = PCRE_UNGREEDY; + /* NOT REACHED */ + return 0; +} - if (re_ignore_case) - pcre_options |= PCRE_CASELESS; +int setup_pcap_source(void) { + if (read_file) { - if (re_multiline_match) - pcre_options |= PCRE_DOTALL; -#else - re_syntax_options = RE_CHAR_CLASSES | RE_NO_BK_PARENS | RE_NO_BK_VBAR | - RE_CONTEXT_INDEP_ANCHORS | RE_CONTEXT_INDEP_OPS; + if (!(pd = pcap_open_offline(read_file, pc_err))) { + perror(pc_err); + return 1; + } - if (re_multiline_match) - re_syntax_options |= RE_DOT_NEWLINE; + live_read = 0; + printf("input: %s\n", read_file); - if (re_ignore_case) { - uint32_t i; - char *s; - - pattern.translate = (char*)malloc(256); - s = pattern.translate; - - for (i = 0; i < 256; i++) - s[i] = i; - for (i = 'A'; i <= 'Z'; i++) - s[i] = i + 32; - - s = match_data; - while (*s) { - *s = tolower(*s); - s++; - } + } else { - } else pattern.translate = NULL; + char *dev = usedev ? usedev : +#if defined(_WIN32) + win32_choosedevice(); +#else + pcap_lookupdev(pc_err); #endif - if (re_match_word) { - char *word_regex = malloc(strlen(match_data) * 3 + strlen(WORD_REGEX)); - sprintf(word_regex, WORD_REGEX, match_data, match_data, match_data); - match_data = word_regex; - } - -#if USE_PCRE - pattern = pcre_compile(match_data, pcre_options, (const char **)&re_err, &err_offset, 0); + if (!dev) { + perror(pc_err); + return 1; + } - if (!pattern) { - fprintf(stderr, "compile failed: %s\n", re_err); - clean_exit(-1); - } + if ((pd = pcap_open_live(dev, snaplen, promisc, to, pc_err)) == NULL) { + perror(pc_err); + return 1; + } - pattern_extra = pcre_study(pattern, 0, (const char **)&re_err); -#else - re_err = re_compile_pattern(match_data, strlen(match_data), &pattern); - if (re_err) { - fprintf(stderr, "regex compile: %s\n", re_err); - clean_exit(-1); - } + if (pcap_lookupnet(dev, &net.s_addr, &mask.s_addr, pc_err) == -1) { + perror(pc_err); + memset(&net, 0, sizeof(net)); + memset(&mask, 0, sizeof(mask)); + } - pattern.fastmap = (char*)malloc(256); - if (re_compile_fastmap(&pattern)) { - perror("fastmap compile failed"); - clean_exit(-1); + if (quiet < 2) { + printf("interface: %s", dev); + if (net.s_addr && mask.s_addr) { + printf(" (%s/", inet_ntoa(net)); + printf("%s)", inet_ntoa(mask)); } -#endif - - match_func = &re_match_func; + printf("\n"); } - - if (quiet < 2 && match_data && strlen(match_data)) - printf("%smatch: %s%s\n", invert_match?"don't ":"", - (bin_data && !strchr(match_data, 'x'))?"0x":"", match_data); } - if (filter) free(filter); - if (re_match_word) free(match_data); - switch(pcap_datalink(pd)) { case DLT_EN10MB: link_offset = ETHHDR_SIZE; @@ -565,6 +512,7 @@ #if HAVE_DLT_LINUX_SLL case DLT_LINUX_SLL: link_offset = ISDNHDR_SIZE; + include_vlan = 0; break; #endif @@ -579,42 +527,203 @@ break; #endif +#if HAVE_DLT_PFLOG + case DLT_PFLOG: + link_offset = PFLOGHDR_SIZE; + break; +#endif + +#if HAVE_DLT_IPNET + case DLT_IPNET: + link_offset = IPNETHDR_SIZE; + include_vlan = 0; + break; +#endif + default: fprintf(stderr, "fatal: unsupported interface type %u\n", pcap_datalink(pd)); - clean_exit(-1); + return 1; } - if (dump_file) { - if (!(pd_dump = pcap_dump_open(pd, dump_file))) { - fprintf(stderr, "fatal: %s\n", pcap_geterr(pd)); - clean_exit(-1); - } else printf("output: %s\n", dump_file); - } + return 0; +} -#if !defined(_WIN32) - update_windowsize(0); -#endif +int setup_bpf_filter(char **argv) { + if (filter_file) { + char buf[1024] = {0}; + FILE *f = fopen(filter_file, "r"); -#if defined(_WIN32) - win32_initwinsock(); + if (!f || !fgets(buf, sizeof(buf)-1, f)) { + fprintf(stderr, "fatal: unable to get filter from %s: %s\n", filter_file, strerror(errno)); + usage(); + } + + fclose(f); + + filter = get_filter_from_string(buf); + + if (pcap_compile(pd, &pcapfilter, filter, 0, mask.s_addr)) + return 1; + + } else if (argv[optind]) { + filter = get_filter_from_argv(&argv[optind]); + + if (pcap_compile(pd, &pcapfilter, filter, 0, mask.s_addr)) { + free(filter); + filter = get_filter_from_argv(&argv[optind-1]); + +#if USE_PCAP_RESTART + PCAP_RESTART_FUNC(); #endif -#if !defined(_WIN32) && USE_DROPPRIVS - drop_privs(); + if (pcap_compile(pd, &pcapfilter, filter, 0, mask.s_addr)) + return 1; + + match_data = NULL; + } + + } else { + filter = include_vlan ? strdup(BPF_TEMPLATE_IP_VLAN) : strdup(BPF_TEMPLATE_IP); + + if (pcap_compile(pd, &pcapfilter, filter, 0, mask.s_addr)) + return 1; + } + + if (pcap_setfilter(pd, &pcapfilter)) + return 1; + + return 0; +} + +int setup_matcher(void) { + if (bin_match) { + uint32_t i = 0, n; + uint32_t len; + char *s, *d; + + if (re_match_word || re_ignore_case) { + fprintf(stderr, "fatal: regex switches are incompatible with binary matching\n"); + return 1; + } + + len = (uint32_t)strlen(match_data); + if (len % 2 != 0 || !strishex(match_data)) { + fprintf(stderr, "fatal: invalid hex string specified\n"); + return 1; + } + + bin_data = (char*)malloc(len / 2); + memset(bin_data, 0, len / 2); + d = bin_data; + + if ((s = strchr(match_data, 'x'))) + len -= (uint32_t)(++s - match_data - 1); + else s = match_data; + + while (i <= len) { + sscanf(s+i, "%2x", &n); + *d++ = n; + i += 2; + } + + match_len = len / 2; + match_func = &bin_match_func; + + } else { + +#if USE_PCRE + uint32_t pcre_options = PCRE_UNGREEDY; + + if (re_ignore_case) + pcre_options |= PCRE_CASELESS; + + if (re_multiline_match) + pcre_options |= PCRE_DOTALL; +#else + re_syntax_options = RE_CHAR_CLASSES | RE_NO_BK_PARENS | RE_NO_BK_VBAR | + RE_CONTEXT_INDEP_ANCHORS | RE_CONTEXT_INDEP_OPS; + + if (re_multiline_match) + re_syntax_options |= RE_DOT_NEWLINE; + + if (re_ignore_case) { + uint32_t i; + char *s; + + pattern.translate = (char*)malloc(256); + s = pattern.translate; + + for (i = 0; i < 256; i++) + s[i] = i; + for (i = 'A'; i <= 'Z'; i++) + s[i] = i + 32; + + s = match_data; + while (*s) { + *s = tolower(*s); + s++; + } + + } else pattern.translate = NULL; #endif - while (pcap_loop(pd, 0, (pcap_handler)process, 0)); + if (re_match_word) { + char *word_regex = (char*)malloc(strlen(match_data) * 3 + strlen(WORD_REGEX)); + sprintf(word_regex, WORD_REGEX, match_data, match_data, match_data); + match_data = word_regex; + } + +#if USE_PCRE + pattern = pcre_compile(match_data, pcre_options, (const char **)&re_err, &err_offset, 0); - clean_exit(0); + if (!pattern) { + fprintf(stderr, "compile failed: %s\n", re_err); + return 1; + } + + pattern_extra = pcre_study(pattern, 0, (const char **)&re_err); +#else + re_err = re_compile_pattern(match_data, strlen(match_data), &pattern); + if (re_err) { + fprintf(stderr, "regex compile: %s\n", re_err); + return 1; + } + + pattern.fastmap = (char*)malloc(256); + if (re_compile_fastmap(&pattern)) { + perror("fastmap compile failed"); + return 1; + } +#endif + + match_func = &re_match_func; + } - /* NOT REACHED */ return 0; } +static inline uint8_t vlan_frame_count(u_char *p, uint16_t limit) { + uint8_t *et = (uint8_t*)(p + 12); + uint16_t ether_type = EXTRACT_16BITS(et); + uint8_t count = 0; + + while ((void*)et < (void*)(p + limit) && + ether_type != ETHERTYPE_IP && + ether_type != ETHERTYPE_IPV6) { + count++; + et += VLANHDR_SIZE; + ether_type = EXTRACT_16BITS(et); + } + + return count; +} + void process(u_char *d, struct pcap_pkthdr *h, u_char *p) { - struct ip *ip4_pkt = (struct ip *) (p + link_offset); + uint8_t vlan_offset = include_vlan ? vlan_frame_count(p, h->caplen) * VLANHDR_SIZE : 0; + + struct ip *ip4_pkt = (struct ip *) (p + link_offset + vlan_offset); #if USE_IPv6 - struct ip6_hdr *ip6_pkt = (struct ip6_hdr*)(p + link_offset); + struct ip6_hdr *ip6_pkt = (struct ip6_hdr*)(p + link_offset + vlan_offset); #endif uint32_t ip_ver; @@ -631,7 +740,9 @@ ip_dst[INET6_ADDRSTRLEN + 1]; unsigned char *data; - uint32_t len = h->caplen; + uint32_t len = h->caplen - vlan_offset; + + seen_frames++; #if HAVE_DLT_IEEE802_11_RADIO if (radiotap_present) { @@ -699,11 +810,6 @@ data = (unsigned char *)(tcp_pkt) + tcphdr_offset; len -= link_offset + ip_hl + tcphdr_offset; -#if USE_IPv6 - if (ip_ver == 6) - len -= ntohs(ip6_pkt->ip6_plen); -#endif - if ((int32_t)len < 0) len = 0; @@ -719,20 +825,11 @@ data = (unsigned char *)(udp_pkt) + udphdr_offset; len -= link_offset + ip_hl + udphdr_offset; -#if USE_IPv6 - if (ip_ver == 6) - len -= ntohs(ip6_pkt->ip6_plen); -#endif - if ((int32_t)len < 0) len = 0; dump_packet(h, p, ip_proto, data, len, ip_src, ip_dst, -#if HAVE_DUMB_UDPHDR - ntohs(udp_pkt->source), ntohs(udp_pkt->dest), 0, -#else ntohs(udp_pkt->uh_sport), ntohs(udp_pkt->uh_dport), 0, -#endif udphdr_offset, fragmented, frag_offset, frag_id); } break; @@ -757,7 +854,7 @@ uint16_t icmp6hdr_offset = (frag_offset) ? 0 : 4; data = (unsigned char *)(icmp6_pkt) + icmp6hdr_offset; - len -= link_offset + ip_hl + ntohs(ip6_pkt->ip6_plen) + icmp6hdr_offset; + len -= link_offset + ip_hl + icmp6hdr_offset; if ((int32_t)len < 0) len = 0; @@ -808,13 +905,15 @@ const char *ip_src, const char *ip_dst, uint16_t sport, uint16_t dport, uint8_t flags, uint16_t hdr_offset, uint8_t frag, uint16_t frag_offset, uint32_t frag_id) { + uint16_t match_size, match_index; + if (!show_empty && len == 0) return; if (len > limitlen) len = limitlen; - if ((len > 0 && match_func(data, len) == invert_match) && !keep_matching) + if ((len > 0 && match_func(data, len, &match_index, &match_size) == invert_match) && !keep_matching) return; if (!live_read && want_delay) @@ -876,42 +975,58 @@ if (dump_single) printf(" "); else - printf("\n"); + printf(" #%u\n", seen_frames); if (quiet < 3) - dump_func(data, len); + dump_func(data, len, match_index, match_size); if (pd_dump) pcap_dump((u_char*)pd_dump, h, p); + +#if USE_TCPKILL + if (tcpkill_active) + tcpkill_kill(h, p, link_offset, tcpkill_active); +#endif } -int8_t re_match_func(unsigned char *data, uint32_t len) { +int8_t re_match_func(unsigned char *data, uint32_t len, uint16_t *mindex, uint16_t *msize) { #if USE_PCRE - switch(pcre_exec(pattern, 0, data, (int32_t)len, 0, 0, 0, 0)) { + + static int sub[2]; + switch(pcre_exec(pattern, 0, (char const *)data, (int32_t)len, 0, 0, 0, 0)) { case PCRE_ERROR_NULL: case PCRE_ERROR_BADOPTION: case PCRE_ERROR_BADMAGIC: case PCRE_ERROR_UNKNOWN_NODE: case PCRE_ERROR_NOMEMORY: perror("she's dead, jim\n"); - clean_exit(-2); + clean_exit(2); case PCRE_ERROR_NOMATCH: return 0; + + default: + *mindex = sub[0]; + *msize = sub[1] - sub[0]; } #else - switch (re_search(&pattern, data, (int32_t)len, 0, len, 0)) { + + static struct re_registers regs; + switch (re_search(&pattern, (char const *)data, (int32_t)len, 0, len, ®s)) { case -2: perror("she's dead, jim\n"); - clean_exit(-2); + clean_exit(2); case -1: return 0; + + default: + *mindex = regs.start[0]; + *msize = regs.end[0] - regs.start[0]; } #endif - if (max_matches) - matches++; + matches++; if (match_after && keep_matching != match_after) keep_matching = match_after; @@ -919,7 +1034,7 @@ return 1; } -int8_t bin_match_func(unsigned char *data, uint32_t len) { +int8_t bin_match_func(unsigned char *data, uint32_t len, uint16_t *mindex, uint16_t *msize) { int32_t stop = len - match_len; int32_t i = 0; @@ -928,77 +1043,122 @@ while (i <= stop) if (!memcmp(data+(i++), bin_data, match_len)) { - if (max_matches) - matches++; + matches++; if (match_after && keep_matching != match_after) keep_matching = match_after; + *mindex = i - 1; + *msize = match_len; + return 1; } return 0; } +int8_t blank_match_func(unsigned char *data, uint32_t len, uint16_t *mindex, uint16_t *msize) { + matches++; -int8_t blank_match_func(unsigned char *data, uint32_t len) { - if (max_matches) - matches++; + *mindex = 0; + *msize = 0; return 1; } -void dump_byline(unsigned char *data, uint32_t len) { +void dump_byline(unsigned char *data, uint32_t len, uint16_t mindex, uint16_t msize) { if (len > 0) { - const unsigned char *s = data; + const unsigned char *s = data; + uint8_t should_hilite = (msize && enable_hilite); + unsigned char *hilite_start = data + mindex; + unsigned char *hilite_end = hilite_start + msize; while (s < data + len) { + if (should_hilite && s == hilite_start) + printf("%s", ANSI_hilite); + printf("%c", (*s == '\n' || isprint(*s)) ? *s : nonprint_char); s++; + + if (should_hilite && s == hilite_end) + printf("%s", ANSI_off); } printf("\n"); } } -void dump_unwrapped(unsigned char *data, uint32_t len) { +void dump_unwrapped(unsigned char *data, uint32_t len, uint16_t mindex, uint16_t msize) { if (len > 0) { - const unsigned char *s = data; + const unsigned char *s = data; + uint8_t should_hilite = (msize && enable_hilite); + unsigned char *hilite_start = data + mindex; + unsigned char *hilite_end = hilite_start + msize; while (s < data + len) { + if (should_hilite && s == hilite_start) + printf("%s", ANSI_hilite); + printf("%c", isprint(*s) ? *s : nonprint_char); s++; + + if (should_hilite && s == hilite_end) + printf("%s", ANSI_off); } printf("\n"); } } -void dump_formatted(unsigned char *data, uint32_t len) { +void dump_formatted(unsigned char *data, uint32_t len, uint16_t mindex, uint16_t msize) { if (len > 0) { - unsigned char *str = data; - uint8_t width = show_hex ? 16 : (ws_col-5); - uint32_t i = 0, - j = 0; + uint8_t should_hilite = (msize && enable_hilite); + unsigned char *str = data; + uint8_t hiliting = 0; + uint8_t width = show_hex ? 16 : (ws_col-5); + uint32_t i = 0, + j = 0; while (i < len) { printf(" "); - if (show_hex) + if (show_hex) { for (j = 0; j < width; j++) { + if (should_hilite && (mindex <= (i+j) && (i+j) < mindex + msize)) { + hiliting = 1; + printf("%s", ANSI_hilite); + } + if (i + j < len) printf("%02x ", str[j]); else printf(" "); if ((j+1) % (width/2) == 0) printf(" "); + + if (hiliting) { + hiliting = 0; + printf("%s", ANSI_off); + } + } + } + + for (j = 0; j < width; j++) { + if (should_hilite && mindex <= (i+j) && (i+j) < mindex + msize) { + hiliting = 1; + printf("%s", ANSI_hilite); } - for (j = 0; j < width; j++) if (i + j < len) printf("%c", isprint(str[j]) ? str[j] : nonprint_char); else printf(" "); + if (hiliting) { + hiliting = 0; + printf("%s", ANSI_off); + } + } + str += width; i += j; @@ -1008,6 +1168,7 @@ } char *get_filter_from_string(char *str) { + const char *template = include_vlan ? BPF_TEMPLATE_USERSPEC_IP_VLAN : BPF_TEMPLATE_USERSPEC_IP; char *mine, *s; uint32_t len; @@ -1020,17 +1181,18 @@ if (*s == '\r' || *s == '\n') *s = ' '; - if (!(mine = (char*)malloc(len + sizeof(BPF_MAIN_FILTER)))) + if (!(mine = (char*)malloc(len + strlen(template) + 1))) return NULL; - memset(mine, 0, len + sizeof(BPF_MAIN_FILTER)); + memset(mine, 0, len + strlen(template) + 1); - sprintf(mine, BPF_MAIN_FILTER, str); + sprintf(mine, template, str); return mine; } char *get_filter_from_argv(char **argv) { + const char *template = include_vlan ? BPF_TEMPLATE_USERSPEC_IP_VLAN : BPF_TEMPLATE_USERSPEC_IP; char **arg = argv, *theirs, *mine; char *from, *to; uint32_t len = 0; @@ -1042,11 +1204,11 @@ len += (uint32_t)strlen(*arg++) + 1; if (!(theirs = (char*)malloc(len + 1)) || - !(mine = (char*)malloc(len + sizeof(BPF_MAIN_FILTER)))) + !(mine = (char*)malloc(len + strlen(template) + 1))) return NULL; memset(theirs, 0, len + 1); - memset(mine, 0, len + sizeof(BPF_MAIN_FILTER)); + memset(mine, 0, len + strlen(template) + 1); arg = argv; to = theirs; @@ -1056,7 +1218,7 @@ *(to-1) = ' '; } - sprintf(mine, BPF_MAIN_FILTER, theirs); + sprintf(mine, template, theirs); free(theirs); return mine; @@ -1104,6 +1266,27 @@ prev_ts.tv_usec = h->ts.tv_usec; } +void print_time_offset(struct pcap_pkthdr *h) { + uint32_t secs, usecs; + + secs = h->ts.tv_sec - prev_ts.tv_sec; + if (h->ts.tv_usec >= prev_ts.tv_usec) + usecs = h->ts.tv_usec - prev_ts.tv_usec; + else { + secs--; + usecs = 1000000 - (prev_ts.tv_usec - h->ts.tv_usec); + } + + if (prev_ts.tv_sec == 0 && prev_ts.tv_usec == 0) { + prev_ts.tv_sec = h->ts.tv_sec; + prev_ts.tv_usec = h->ts.tv_usec; + secs = 0; + usecs = 0; + } + + printf("+%u.%06u ", secs, usecs); +} + void dump_delay_proc_init(struct pcap_pkthdr *h) { dump_delay = &dump_delay_proc; @@ -1155,26 +1338,36 @@ prev_delay_ts.tv_usec = h->ts.tv_usec; } -#if !defined(_WIN32) void update_windowsize(int32_t e) { if (e == 0 && ws_col_forced) ws_col = ws_col_forced; else if (!ws_col_forced) { + +#if !defined(_WIN32) const struct winsize ws; if (!ioctl(0, TIOCGWINSZ, &ws)) { ws_row = ws.ws_row; ws_col = ws.ws_col; - } else { + } +#else + CONSOLE_SCREEN_BUFFER_INFO csbi; + if (GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi)) { + ws_row = csbi.dwSize.Y; + ws_col = csbi.dwSize.X; + } +#endif + else { ws_row = 24; ws_col = 80; } + } } -#if USE_DROPPRIVS +#if !defined(_WIN32) && USE_DROPPRIVS void drop_privs(void) { struct passwd *pw; uid_t newuid; @@ -1186,7 +1379,7 @@ pw = getpwnam(DROPPRIVS_USER); if (!pw) { perror("attempt to drop privileges failed: getpwnam failed"); - clean_exit(-1); + clean_exit(2); } newgid = pw->pw_gid; @@ -1195,7 +1388,7 @@ if (getgroups(0, NULL) > 0) if (setgroups(1, &newgid) == -1) { perror("attempt to drop privileges failed"); - clean_exit(-1); + clean_exit(2); } if (((getgid() != newgid) && (setgid(newgid) == -1)) || @@ -1204,21 +1397,25 @@ ((geteuid() != newuid) && (seteuid(newuid) == -1))) { perror("attempt to drop privileges failed"); - clean_exit(-1); + clean_exit(2); } } #endif -#endif -void usage(int8_t e) { +void usage(void) { printf("usage: ngrep <-" #if defined(_WIN32) "L" #endif "hNXViwqpevxlDtTRM> <-IO pcap_dump> <-n num> <-d dev> <-A num>\n" " <-s snaplen> <-S limitlen> <-W normal|byline|single|none> <-c cols>\n" - " <-P char> <-F file> \n" + " <-P char> <-F file>" +#if USE_TCPKILL + " <-K count>" +#endif + "\n" + " \n" " -h is help/usage\n" " -V is version information\n" " -q is be quiet (don't print packet reception hash marks)\n" @@ -1234,6 +1431,7 @@ " -D is replay pcap_dumps with their recorded time intervals\n" " -t is print timestamp every time a packet is matched\n" " -T is print delta timestamp every time a packet is matched\n" + " specify twice for delta from first match\n" " -M is don't do multi-line match (do single-line match instead)\n" " -I is read packet stream from pcap format file pcap_dump\n" " -O is dump matched packets in pcap format to pcap_dump\n" @@ -1252,14 +1450,17 @@ #else " -d is use specified device instead of the pcap default\n" #endif +#if USE_TCPKILL + " -K is send N packets to kill observed connections\n" +#endif ""); - exit(e); + exit(2); } void version(void) { - printf("ngrep: V%s, %s\n", VERSION, rcsver); + printf("ngrep: V%s, %s\n", VERSION, pcap_lib_version()); exit(0); } @@ -1288,12 +1489,15 @@ if (bin_data) free(bin_data); - if (quiet < 1 && sig >= 0 && !read_file - && pd && !pcap_stats(pd, &s)) - printf("%u received, %u dropped\n", s.ps_recv, s.ps_drop); - - if (pd) pcap_close(pd); - if (pd_dump) pcap_dump_close(pd_dump); + /* We used to report pcap_stats; but PCAP manpage says pcap_stats "may or + may not" be accurate. So useless. :-( And confusing for a user to see + counts not match what ngrep thinks. */ + if (quiet < 1 && sig >= 0 && !read_file) + printf("%u received, %u matched\n", seen_frames, matches); + + if (pd) pcap_close(pd); + if (pd_dumppcap) pcap_close(pd_dumppcap); + if (pd_dump) pcap_dump_close(pd_dump); #if defined(_WIN32) if (delay_socket) closesocket(delay_socket); @@ -1301,7 +1505,7 @@ if (usedev) free(usedev); #endif - exit(sig); + exit(matches ? 0 : 1); } #if defined(_WIN32) @@ -1332,7 +1536,7 @@ if (pcap_findalldevs(&alldevs, errbuf) == -1) { perror("unable to enumerate device list"); - clean_exit(-1); + clean_exit(2); } printf("idx\tdev\n"); @@ -1356,12 +1560,12 @@ if (idx <= 0) { perror("invalid device index"); - clean_exit(-1); + clean_exit(2); } if (pcap_findalldevs(&alldevs, errbuf) == -1) { perror("unable to enumerate devices"); - clean_exit(-1); + clean_exit(2); } for (d = alldevs; d != NULL && i != idx; d = d->next) @@ -1370,18 +1574,38 @@ if (i <= 0) { perror("no known devices"); - clean_exit(-1); + clean_exit(2); } if (i != idx) { perror("unknown device specified"); - clean_exit(-1); + clean_exit(2); } pcap_freealldevs(alldevs); return dev; } -#endif +char *win32_choosedevice(void) { + pcap_if_t *alldevs, *d; + char errbuf[PCAP_ERRBUF_SIZE]; + char *dev = NULL; + if (pcap_findalldevs(&alldevs, errbuf) == -1) { + perror("unable to enumerate devices"); + clean_exit(2); + } + + for (d = alldevs; d != NULL; d = d->next) + if ((d->addresses) && (d->addresses->addr)) + dev = _strdup(d->name); + + pcap_freealldevs(alldevs); + + if (!dev) + dev = pcap_lookupdev(errbuf); + + return dev; +} +#endif diff -Nru ngrep-1.45.ds2/ngrep.h ngrep-1.47+ds1/ngrep.h --- ngrep-1.45.ds2/ngrep.h 2007-08-12 18:30:00.000000000 +0000 +++ ngrep-1.47+ds1/ngrep.h 2017-09-07 21:28:35.000000000 +0000 @@ -1,13 +1,11 @@ /* - * $Id: ngrep.h,v 1.34 2006/11/28 13:38:43 jpr5 Exp $ - * - * Copyright (c) 2006 Jordan Ritter + * Copyright (c) 2017 Jordan Ritter * * Please refer to the LICENSE file for more information. * */ -#define VERSION "1.45" +#define VERSION "1.47.1-git" /* * We cache the standard frame sizes here to save us time and @@ -23,19 +21,56 @@ #define FDDIHDR_SIZE 21 #define ISDNHDR_SIZE 16 #define IEEE80211HDR_SIZE 32 +#define PFLOGHDR_SIZE 48 +#define VLANHDR_SIZE 4 +#define IPNETHDR_SIZE 24 + +#ifndef ETHERTYPE_IP +#define ETHERTYPE_IP 0x0800 +#endif +#ifndef ETHERTYPE_IPV6 +#define ETHERTYPE_IPV6 0x86dd +#endif + +#define EXTRACT_16BITS(p) \ + ((uint16_t)((uint16_t)*((const uint8_t *)(p) + 0) << 8 | \ + (uint16_t)*((const uint8_t *)(p) + 1))) + +#define _atoui32(p) \ + ((uint32_t)strtoul((p), (char **)NULL, 10)) /* * Default patterns for BPF and regular expression filters. + * + * When targeting IP frames with a BPF filter, optionally-present VLAN frames + * will be excluded by default, thus any IP traffic on a VLAN'd network is + * invisible to ngrep by default. This requires the user to specify "vlan" + * every time they are on a VLAN'd network, which gets irritating fast. + * + * In turn, this leads to a surprising behavior when working with pcap dump + * files created from a "vlan" filter: reading and re-processing them requires + * the same "vlan" filter to be specified, otherwise the traffic will be + * invisible. IOW, when the dump reader is targeting IP traffic in the dump but + * doesn't know (or remember) the "vlan" filter was specified, they will see + * nothing -- and mistakenly blame ngrep. + * + * While the behavior is technically consistent, to the user it can be + * surprising, confusing, and therefore Dumb As Shit. For convenience' sake, we + * fix this for them by including VLAN (optionally) back into the stream + * targeting IP traffic, and compensating for the variable offset in the packet + * decoder. */ #if USE_IPv6 -#define BPF_FILTER_IP "(ip or ip6)" +#define BPF_FILTER_IP_TYPE "(ip || ip6)" #else -#define BPF_FILTER_IP "(ip)" +#define BPF_FILTER_IP_TYPE "(ip)" #endif -#define BPF_FILTER_OTHER " and ( %s)" -#define BPF_MAIN_FILTER BPF_FILTER_IP BPF_FILTER_OTHER +#define BPF_TEMPLATE_IP BPF_FILTER_IP_TYPE +#define BPF_TEMPLATE_IP_VLAN "(" BPF_FILTER_IP_TYPE " || (vlan && " BPF_FILTER_IP_TYPE "))" +#define BPF_TEMPLATE_USERSPEC_IP "( %s) and " BPF_TEMPLATE_IP +#define BPF_TEMPLATE_USERSPEC_IP_VLAN "( %s) and " BPF_TEMPLATE_IP_VLAN #define WORD_REGEX "((^%s\\W)|(\\W%s$)|(\\W%s\\W))" @@ -73,29 +108,35 @@ * Prototypes function signatures. */ +int setup_pcap_source(void); +int setup_bpf_filter(char **); +int setup_matcher(void); + void process(u_char *, struct pcap_pkthdr *, u_char *); void version(void); -void usage(int8_t); +void usage(); +void update_windowsize(int32_t); void clean_exit(int32_t); void dump_packet(struct pcap_pkthdr *, u_char *, uint8_t, unsigned char *, uint32_t, const char *, const char *, uint16_t, uint16_t, uint8_t, uint16_t, uint8_t, uint16_t, uint32_t); -void dump_unwrapped(unsigned char *, uint32_t); -void dump_formatted(unsigned char *, uint32_t); -void dump_byline (unsigned char *, uint32_t); +void dump_unwrapped(unsigned char *, uint32_t, uint16_t, uint16_t); +void dump_formatted(unsigned char *, uint32_t, uint16_t, uint16_t); +void dump_byline (unsigned char *, uint32_t, uint16_t, uint16_t); void dump_delay_proc_init(struct pcap_pkthdr *); void dump_delay_proc (struct pcap_pkthdr *); -int8_t re_match_func (unsigned char *, uint32_t); -int8_t bin_match_func (unsigned char *, uint32_t); -int8_t blank_match_func(unsigned char *, uint32_t); +int8_t re_match_func (unsigned char *, uint32_t, uint16_t *, uint16_t *); +int8_t bin_match_func (unsigned char *, uint32_t, uint16_t *, uint16_t *); +int8_t blank_match_func(unsigned char *, uint32_t, uint16_t *, uint16_t *); void print_time_absolute(struct pcap_pkthdr *); void print_time_diff (struct pcap_pkthdr *); +void print_time_offset (struct pcap_pkthdr *); char *get_filter_from_string(char *); char *get_filter_from_argv (char **); @@ -103,7 +144,6 @@ uint8_t strishex(char *); #if !defined(_WIN32) -void update_windowsize(int32_t); void drop_privs(void); #endif @@ -111,6 +151,7 @@ int8_t win32_initwinsock(void); void win32_listdevices(void); char *win32_usedevice(const char *); +char *win32_choosedevice(void); #endif @@ -121,3 +162,13 @@ uint32_t it_present; }; + +/* + * ANSI color/hilite stuff. + */ + +const char ANSI_red[] = "\33[01;31m"; +const char ANSI_bold[] = "\33[01m"; + +const char *ANSI_hilite = ANSI_red; +const char ANSI_off[] = "\33[00m"; diff -Nru ngrep-1.45.ds2/README.md ngrep-1.47+ds1/README.md --- ngrep-1.45.ds2/README.md 1970-01-01 00:00:00.000000000 +0000 +++ ngrep-1.47+ds1/README.md 2017-09-07 21:28:35.000000000 +0000 @@ -0,0 +1,83 @@ +## ngrep 1.47 (9.7.2017) + +ngrep is like GNU grep applied to the network layer. It's a PCAP-based tool +that allows you to specify an extended regular or hexadecimal expression to +match against data payloads of packets. It understands many kinds of protocols, +including IPv4/6, TCP, UDP, ICMPv4/6, IGMP and Raw, across a wide variety of +interface types, and understands BPF filter logic in the same fashion as more +common packet sniffing tools, such as tcpdump and snoop. + + +## What's New + + * Fix "no VLAN support for XXX"-related problems + * Fix truncated/garbled output (e.g. SIP over SLL/Linux cooked sockets) + * Change exit behavior to match BSD & GNU grep (see manpage) + * Add Solaris IPnet support + * Update to use 32bit values where relevant + * Emit frame # in header, useful for reference/analysis + * Emit total received, matched upon exit (dropped unreliable PCAP stats) + * Import debian patches related to autotools, manpage, and compilation + * on other platforms + * Fix build clean/distclean when not linked against provided GNU regex + * Fix build --enable/--disable flag processing + * Fix building under MS VS2012 / Win32 + * Update to latest autotools (2017) + + +## How to use + +ngrep was originally developed to: + +* debug plaintext protocol interactions such as HTTP, IMAP, DNS, SIP, etc. +* identify and analyze anomalous network communications such as those between + malware, zombies and viruses +* store, read and reprocess pcap dump files while looking for specific data + patterns + +As well, it could be used to do plaintext credential collection, as with HTTP +Basic Authentication, FTP or POP3 authentication. Like all useful tools, it can +be used for good and for bad. + +Visit [EXAMPLES](EXAMPLES.md) to learn more about how ngrep works and can be +leveraged to see all sorts of neat things. + + +## Support, Feedback, & Patches + +If you need help, have constructive feedback, or would like to submit a patch, +please visit ngrep's project at GitHub and use the online tools there. It will +help the author better manage the various requests and patches so that nothing +is lost or missed (as has been the case in the past, unfortunately). + +* Issues: https://github.com/jpr5/ngrep/issues +* Patches: https://github.com/jpr5/ngrep/pulls + + +## Confirmed Working Platforms + +* Linux 2.0+ (RH6+, SuSE, TurboLinux, Debian, Gentoo, Ubuntu, Mandrake, Slackware)/x86, RedHat/alpha Cobalt, (Qube2) Linux/MIPS +* Solaris 2.5.1, 2.6/SPARC, Solaris 7, Solaris 8/SPARC, Solaris 9/SPARC +* FreeBSD 2.2.5, 3.1, 3.2, 3.4-RC, 3.4-RELEASE, 4.0, 5.0 +* OpenBSD 2.4 (after upgrading pcap from 0.2), 2.9, 3.0, 3.1+ +* NetBSD 1.5/SPARC +* Digital Unix V4.0D (OSF/1), Tru64 5.0, Tru64 5.1A +* HPUX 11 +* IRIX +* AIX 4.3.3.0/PowerPC +* BeOS R5 +* Mac OS X 10+ +* GNU HURD +* Windows 95, 98, NT, 2000, XP, 2003/x86, 7, 8, 8.1, 10 + + +## Miscellany + +Please see [CREDITS](CREDITS) for a partial list of the many people who helped make ngrep +what it is today. Also, please note that ngrep is released under a simple +BSD-style license, though depending on which regex library you compile +against, you'll either get the GPL (GNU regex) or Artistic (PCRE). + + * Unix libpcap: http://www.tcpdump.org/release/ + * Windows libpcap: http://www.winpcap.org/install/ + * PCRE: http://www.pcre.org/ diff -Nru ngrep-1.45.ds2/tcpkill.c ngrep-1.47+ds1/tcpkill.c --- ngrep-1.45.ds2/tcpkill.c 1970-01-01 00:00:00.000000000 +0000 +++ ngrep-1.47+ds1/tcpkill.c 2017-09-07 21:28:35.000000000 +0000 @@ -0,0 +1,87 @@ +/* + * tcpkill.c + * + * Kill TCP connections already in progress. + * + * Copyright (c) 2000 Dug Song + * + * $Id: tcpkill.c,v 1.17 2001/03/17 08:10:43 dugsong Exp $ + */ + +#include + +#include +#include +#include +#include +#include +#include + +#include "tcpkill.h" + +libnet_t *l; + +void +tcpkill_kill(const struct pcap_pkthdr *pcap, const u_char *pkt, + uint32_t pcap_off, uint32_t kill_count) +{ + struct libnet_ipv4_hdr *ip; + struct libnet_tcp_hdr *tcp; + u_char ctext[64]; + uint32_t seq, win, i, len; + + pkt += pcap_off; + len = pcap->caplen - pcap_off; + + ip = (struct libnet_ipv4_hdr *)pkt; + if (ip->ip_p != IPPROTO_TCP) + return; + + tcp = (struct libnet_tcp_hdr *)(pkt + (ip->ip_hl << 2)); + if (tcp->th_flags & (TH_SYN|TH_FIN|TH_RST)) + return; + + seq = ntohl(tcp->th_ack); + win = ntohs(tcp->th_win); + + snprintf(ctext, sizeof(ctext), "%s:%d > %s:%d:", + libnet_addr2name4(ip->ip_src.s_addr, LIBNET_DONT_RESOLVE), + ntohs(tcp->th_sport), + libnet_addr2name4(ip->ip_dst.s_addr, LIBNET_DONT_RESOLVE), + ntohs(tcp->th_dport)); + + for (i = 0; i < kill_count; i++) { + seq += (i * win); + + libnet_clear_packet(l); + + libnet_build_tcp(ntohs(tcp->th_dport), ntohs(tcp->th_sport), + seq, 0, TH_RST, 0, 0, 0, LIBNET_TCP_H, + NULL, 0, l, 0); + + libnet_build_ipv4(LIBNET_IPV4_H + LIBNET_TCP_H, 0, + libnet_get_prand(LIBNET_PRu16), 0, 64, + IPPROTO_TCP, 0, ip->ip_dst.s_addr, + ip->ip_src.s_addr, NULL, 0, l, 0); + + if (libnet_write(l) < 0) + warn("write"); + + fprintf(stderr, "%s R %lu:%lu(0) win 0\n", ctext, seq, seq); + } +} + +void +tcpkill_init(void) +{ + char *intf, ebuf[PCAP_ERRBUF_SIZE]; + char libnet_ebuf[LIBNET_ERRBUF_SIZE]; + + if ((intf = pcap_lookupdev(ebuf)) == NULL) + errx(1, "%s", ebuf); + + if ((l = libnet_init(LIBNET_RAW4, intf, libnet_ebuf)) == NULL) + errx(1, "couldn't initialize sending"); + + libnet_seed_prand(l); +} diff -Nru ngrep-1.45.ds2/tcpkill.h ngrep-1.47+ds1/tcpkill.h --- ngrep-1.45.ds2/tcpkill.h 1970-01-01 00:00:00.000000000 +0000 +++ ngrep-1.47+ds1/tcpkill.h 2017-09-07 21:28:35.000000000 +0000 @@ -0,0 +1,7 @@ +#ifndef TCPKILL_H +#define TCPKILL_H + +void tcpkill_init(void); +void tcpkill_kill(const struct pcap_pkthdr *pcap, const u_char *pkt, uint32_t pcap_off, uint32_t kill_count); + +#endif