GNUmakefile for standalone builds
linux compat: it builds and seems to work
tests for the command line tool

tests/cmp.py is a partial, trivial cmp(1) implementation
to have something to compare the cmp(1) results to.

the tests have found a bug right away: -z ignores skip offsets!
see tests/0600-cmp-z.t for details.

plus, there's a portability problem with errno values.
cmp -s / cmp -z was broken when used with skips
POSIX: open(..., O_NOFOLLOW) sets errno = ELOOP
tabs expanded to two spaces each

i could handle tabs, but what for?  should this little project
get off to unexpected heights and FreeBSD wanted the code (hah!),
they can always run it through their prettyfier.

the FreeBSD coding style is *very interesting*, this is the first
time i see tab-indented program look ok with any tab width, though
this is achieved through a few ugly warts (function arguments
overflowing a line are aligned with nothing, simply indented from
the line opening the argument list by four spaces).

a single line in special.c betrays that the style defines tabwidth
to 8; it stands out with git show -b (long: --ignore-space-change).

also see the discussion of whitespace changes in git-apply(1).
main loses the meat to compare

oflag is global for now
CFLAGS with stricter warnings
add README.rest, LICENSE, extend GNUmakefile
cmp.c: struct finfo, compare redone
struct finfo moves to extern.h, pushed to c_* functions

-z check gets pushed down to c_regular to bring regularity
to compare for a change.
exit(3) calls turned into return statements

everything returns int, but there's still a heap of
err(3) and errx(3) calls.
link.c: symmetry w/o verbiage