1. For OS/2 and MSDOS, see the README.pc file in the pc directory.
For all flavours of Unix, run Configure and answer the questions.
Most of the time the default answers should do the trick, but here's some
tips; If you're using...
ANSI-C: Don't put the compiler in strict ISO/ANSI mode, since c2man uses a few
UNIX-isms that may disappear from your header files if you do that
(eg: popen). Don't use -ansi on gcc for example.
gcc: Do yourself a favour and use the latest version of gcc (>= 2.3.3).
If you use -Wall, also use -Wno-implicit if your system header files
don't declare basic stuff like fprintf in stdio.h (SunOS Release 4.1.2
bison: If you get link errors reporting `alloca' as undefined, try specifying
-lPW when Configure asks `Any additional libraries?'.
flex: You may need to specify -lfl when asked `Any additional libraries?'.
Flex versions 2.3 and older will cause c2man to hang if it encounters
an 8 bit character in the input file. If you require 8-bit character
support, use the flex flag '-8' (this is the default for flex 2.4).
Sun: Sun yacc outputs old prototypes for malloc and free (says they return
char * instead of void *), which conflict with the correct ones flex 2.3
generates if you use gcc. To make matters worse, gcc 2.2 errors on the
old prototypes even if you don't use flex. Use bison instead, or just
delete the incorrect prototypes on the first line of y.tab.c when the
make errors. If you use gcc 2.2, just upgrade your gcc.
HPUX: When using cc, don't specify -Aa. Adding -D_HPUX_SOURCE may help too.
If you use the optional c89 compiler instead of standard cc, specify
-D_INCLUDE_POSIX_SOURCE -D_INCLUDE_XOPEN_SOURCE as your compiler flags.
Specify a compiler flag of -DDBMALLOC (and optimization -g if you like)
and a library of -ldbmalloc for maximum checking. Don't use dbmalloc
with gcc and flex, or y.tab.c will fail to build; just use lex instead.
Don't use the shared version of your C library (eg: -lc_s), as
Configure will by default, lest you get multiply defined symbols.
Interactive Unix 2.2:
If you use gcc (which requires -posix) ignore the warnings about
popen/pclose not being defined - apparently they aren't in POSIX.
NeXT: In NeXTstep 3.1 and greater, `cc -C -E' is broken; tell Configure to
run the preprocessor as `/lib/cpp -C' or `cc -C -E -traditional-cpp'.
On NeXTstep 3.2, don't link with -lposix. It's busted. Sigh.
Otherwise, If you get any errors or warnings, please report them to me (with
fixes if possible!). Don't worry too much about warnings from y.tab.c or
lex.yy.c though, since they're generally at the mercy of your yacc & lex.
2. run make depend, if you didn't do it at the end of Configure.
3. run make
4. format (and read) the manual page in c2man.1.
The examples in it are automatically generated, so check that it looks OK.
5. Optionally, run "make test > /dev/null" if you don't want to wade though
heaps of output, or "make test | nroff -man | more" if you do. This runs
c2man over the examples, and on its own source. The test is assumed to pass
if it doesn't error or dump core.
If the preprocessor you told Configure that c2man is to use is different to
the one used to when compiling c2man itself, the test may fail because the
definitions in config.h may not match the preprocessor c2man will run
during the test and in normal use.
6. As root, do "make install". This will install the c2man binary, the example
files and the manual page.