1% This file is part of CWEB.
2% The CWEB programs by Silvio Levy are based on programs by D. E. Knuth.
3% They are distributed WITHOUT ANY WARRANTY, express or implied.
4% This README file last updated May 2000 by Don Knuth
5
6% Copyright (C) 1987,1990,1993,2000 Silvio Levy and Donald E. Knuth
7
8% Permission is granted to make and distribute verbatim copies of this
9% document provided that the copyright notice and this permission notice
10% are preserved on all copies.
11
12% Permission is granted to copy and distribute modified versions of this
13% document under the conditions for verbatim copying, provided that the
14% entire resulting derived work is given a different name and distributed
15% under the terms of a permission notice identical to this one.
16
17% Please send comments, suggestions, etc. to levy@math.berkeley.edu.
18
19This directory contains the following files:
20
21Makefile
22README
23comm-amiga.ch
24comm-bs.ch
25comm-mac.ch
26comm-man.ch
27comm-pc.ch
28comm-ql.ch
29comm-vms.ch
30comm-w32.ch
31common.c
32common.h
33common.w
34ctang-bs.ch
35ctang-man.ch
36ctang-pc.ch
37ctang-ql.ch
38ctang-vms.ch
39ctang-w32.ch
40ctangle.c
41ctangle.w
42cweav-bs.ch
43cweav-man.ch
44cweav-pc.ch
45cweav-ql.ch
46cweav-vms.ch
47cweave-w32.ch
48cweave.w
49cweb.1
50cweb.el
51cwebmac.tex
52cwebman.tex
53examples/
54makefile.bs
55prod.w
56readme.ql
57c++lib.w
58
59The file cwebman.tex is the user manual.
60The examples directory contains additional examples of the use of CWEB.
61The files common.c and ctangle.c are used for bootstrapping.
62The file cweb.1 is a manual page.
63The file cweb.el is suggested for GNU-Emacs users.
64The file c++lib.w is for C++ users (say `@i c++lib.w' at beginning of program).
65The files *-man.ch are used if you want to make the full 239-page CWEB manual.
66The files *-bs.ch are used instead of *-pc.ch if you are doing BIG programs.
67You can use makefile.bs to make CWEB with *-bs.ch.
68The files *-ql.ch are for QDOS/SMSQ systems; see readme.ql for further info.
69The files *-w32.ch use __fastcall conventions on win32 systems.
70The file comm-mac.ch is for Macintosh conventions.
71The other files named *.ch are sample change files for local customization.
72
73IMPORTANT: Please touch *.c before proceeding.
74Then edit the opening lines of Makefile so that it has the proper
75directory information for your local system.
76
77To make ctangle and cweave say `make all'; this should produce roughly
78the following actions (possibly with harmless warning messages from cc):
79
80cc -g -w -c ctangle.c
81cc -g -w -DCWEBINPUTS=\"/usr/local/lib/cweb\" -c common.c
82cc -g -o ctangle ctangle.o common.o
83./ctangle cweave
84cc -g -w -c cweave.c
85cc -g -w -o cweave cweave.o common.o
86
87To get some reassurance that things are OK, you can say `make cautiously',
88which ensures that CTANGLE will reproduce itself. (Otherwise the source
89files common.w and ctangle.w won't actually have been used.)
90
91To install cweave and ctangle say `make install'. You probably need to
92be superuser to do this; but it's wise to `make all' first, BEFORE
93becoming superuser and saying `make install'.
94
95Note that change files for VMS, AMIGA, MAC, and PCs are provided.  When you
96are first bootstrapping to a new system, you may need to edit common.c and
97ctangle.c by hand, but the vast majority of the change-file changes are
98minor refinements that are not necessary for a rudimentary ctangle.
99