f% wc *
       3       4      29 BUGS
       9      92     558 CHANGES
     485    1499   11941 config.C
      52     105    1031 config.H
     272     896    7122 configure
     495     960    8984 dbparser.C
      14      23     177 dbparser.H
      37     146     957 dict.C
     372    1103    9196 dict.H
       0       0       0 docs
       0       0       0 emacs
      46     120     983 fatal.C
      13      21     144 fatal.H
     235     675    5769 formatter.C
      13      21     171 formatter.H
    1030    4432   29775 getopt.c
     149     812    5277 getopt.h
      74     358    2399 getopt1.c
     399    1201   10536 handlers.C
      25     116     878 handlers.H
      38     236    1587 INSTALL
     250     870    5585 install-sh
    2311    4253   37640 lex.C
      99     327    2866 lex.H
     147    1220    7529 LICENCE
      54      97     925 main.C
      55     222    2140 MAKEFILE
      65     266    2416 Makefile
      48     213    1966 Makefile.in
      54     104     883 query.C
      14      24     172 query.H
      11     100     658 README
      56     125    1040 resultsdb.C
      28      63     447 resultsdb.H
     321     778    7490 scanner.C
      74     172    1701 scanner.H
      68     189    1240 strpool.C
      15      29     232 strpool.H
     101     253    1743 strutils.C
      13      24     163 strutils.H
      50      92     636 toctou.H
      39     257    1509 TODO
      76     189    1753 token.C
     412    1178    9164 token.H
       0       0       0 typescript
     232     557    4413 vulndb.C
      22      72     507 vulndb.H
      36      85     676 vulninfo.H
     821    2669   14741 vulns.i4d
    9233   27248  207749 total
f% make
g++ -c -DDATA_DIR=/tmp/its4 -Wall -DHAVE_SNPRINTF -DHAVE_UNISTD -O3 token.C
g++ -c -DDATA_DIR=/tmp/its4 -Wall -DHAVE_SNPRINTF -DHAVE_UNISTD -O3 lex.C
g++ -c -DDATA_DIR=/tmp/its4 -Wall -DHAVE_SNPRINTF -DHAVE_UNISTD -O3 main.C
g++ -c -DDATA_DIR=/tmp/its4 -Wall -DHAVE_SNPRINTF -DHAVE_UNISTD -O3 scanner.C
g++ -c -DDATA_DIR=/tmp/its4 -Wall -DHAVE_SNPRINTF -DHAVE_UNISTD -O3 resultsdb.C
g++ -c -DDATA_DIR=/tmp/its4 -Wall -DHAVE_SNPRINTF -DHAVE_UNISTD -O3 vulndb.C
g++ -c -DDATA_DIR=/tmp/its4 -Wall -DHAVE_SNPRINTF -DHAVE_UNISTD -O3 handlers.C
g++ -c -DDATA_DIR=/tmp/its4 -Wall -DHAVE_SNPRINTF -DHAVE_UNISTD -O3 formatter.C
g++ -c -DDATA_DIR=/tmp/its4 -Wall -DHAVE_SNPRINTF -DHAVE_UNISTD -O3 config.C
config.C:12: warning: `__cplusplus' redefined
*Initialization*:1: warning: this is the location of the previous definition
In file included from /usr/include/stdio.h:24,
                 from config.H:15,
                 from config.C:16:
/usr/include/stdio_tag.h:16: parse error
make: *** [config.o] Error 1
f% ed config.C
11941
10,14p
extern "C" {
  // Hack for MS Windows
#define __cplusplus
#include "getopt.h"
}
12s:^:  // :p
  // #define __cplusplus
w
11946
q
f% make
g++ -c -DDATA_DIR=/tmp/its4 -Wall -DHAVE_SNPRINTF -DHAVE_UNISTD -O3 config.C
g++ -c -DDATA_DIR=/tmp/its4 -Wall -DHAVE_SNPRINTF -DHAVE_UNISTD -O3 query.C
g++ -c -DDATA_DIR=/tmp/its4 -Wall -DHAVE_SNPRINTF -DHAVE_UNISTD -O3 fatal.C
g++ -c -DDATA_DIR=/tmp/its4 -Wall -DHAVE_SNPRINTF -DHAVE_UNISTD -O3 dict.C
g++ -c -DDATA_DIR=/tmp/its4 -Wall -DHAVE_SNPRINTF -DHAVE_UNISTD -O3 strutils.C
g++ -c -DDATA_DIR=/tmp/its4 -Wall -DHAVE_SNPRINTF -DHAVE_UNISTD -O3 dbparser.C
g++ -c -DDATA_DIR=/tmp/its4 -Wall -DHAVE_SNPRINTF -DHAVE_UNISTD -O3 strpool.C
g++ -c -Wall -DHAVE_SNPRINTF -DHAVE_UNISTD -O3 getopt.c
g++ -c -Wall -DHAVE_SNPRINTF -DHAVE_UNISTD -O3 getopt1.c
g++ -o its4 token.o lex.o main.o scanner.o resultsdb.o vulndb.o handlers.o formatter.o config.o query.o fatal.o dict.o strutils.o dbparser.o strpool.o getopt.o getopt1.o
f% grep -i alphab.t *
vulndb.C:// the data file, so make sure they stay alphabetical.
vulns.i4d: *  WARNING:  Keep things in alphabetical order by category if you want
vulns.i4d: *            output to alphabatize properly.
                                        ^
f% make install
/usr/sbin/install -c -d /tmp/bin
install: The -c, -f, -n options each require a directory following!
make: *** [install] Error 2

But ./configure noticed that I *do* have a Berkeley-compatible install,
so it must have found /usr/ucb/install.  Why'd it choose to ues
/usr/sbin/install instead?

f% ed Makefile
2416
/INSTALL/
INSTALL=/usr/sbin/install -c
s/sbin/ucb/p
INSTALL=/usr/ucb/install -c
w
2415
q
f% make install
/usr/ucb/install -c -d /tmp/bin
/usr/ucb/install -c its4 /tmp/bin 
/usr/ucb/install -c -d /tmp/its4
/usr/ucb/install -c vulns.i4d /tmp/its4
/usr/ucb/install -c -d /tmp/man/man1
/usr/ucb/install -c docs/its4.1 /tmp/man/man1/
echo "Installation complete."
Installation complete.
% nroff -man /tmp/man/man1/its4.1 
[trimmed]
BUGS
     This man page is wrong if your  system  does  not  have  GNU
     getopt,  which  supports long options.  If that is the case,
     only short versions of options are supported.
[trimmed]

f% head -1 getopt.c
/* Getopt for GNU.

So, does it or doesn't it?
