summaryrefslogtreecommitdiff
path: root/INSTALL
blob: 3f4622ac63e4669bf333f2eb5cbd24d5f6751209 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
INSTALLING c2man:

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
	for example!).

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.

dbmalloc:
	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.