blob: a61bd6280a66b1fee41fd8a9511d0d940e54fc60 (
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
# This file is part of CWEB, version x3.0.
#
# Read the README file, then edit this file to reflect local conditions
#
# The C compiler should be ANSI compatible
CC = gcc
# We let CWEAVE report syntax errors by setting +d.
# The flag +m makes the TeX output slightly more compact.
# We use the +e flag since our printer is two-sided.
CWFLAGS = +mde
CTFLAGS =
# We keep debugging info around to enable the `+d' option of cweave
CFLAGS = -DDEBUG -DSTAT -g
# RM and CP are used below in case rm and cp are aliased
RM= /bin/rm
CP= /bin/cp
RENAME= /bin/mv
# Set CCHANGES to common-foo.ch if you need changes to common.w in another
# file than common.ch
CCHANGES=
# Set TCHANGES to ctangle-foo.ch if you need changes to ctangle.w in another
# file than ctangle.ch
TCHANGES=
# Set WCHANGES to cweave-foo.ch if you need changes to cweave.w in another
# file than cweave.ch
WCHANGES=
########## You shouldn't have to change anything after this point #######
CWEAVE = ./cweave $(CWFLAGS)
CTANGLE = ./ctangle $(CTFLAGS)
.SUFFIXES: .tex .dvi .w
.w.tex:
$(CWEAVE) $*
.tex.dvi:
tex $*.tex
.w.c:
$(CTANGLE) $*
.w.dvi:
make $*.tex
make $*.dvi
.w.o:
make $*.c
make $*.o
all: cweb doc listings
cweb: ctangle cweave
manual doc: manual.dvi
listings: common.dvi ctangle.dvi cweave.dvi
cautiously:
make common.c ctangle.c cweave.c
$(RENAME) ctangle SAVEctangle # save version in case things mess up
make ctangle
$(RENAME) common.c SAVEcommon.c
./ctangle common $(CCHANGES)
diff common.c SAVEcommon.c
$(RENAME) SAVEcommon.c common.c # restore date
$(RENAME) ctangle.c SAVEctangle.c
./ctangle ctangle $(TCHANGES)
diff ctangle.c SAVEctangle.c
$(RENAME) SAVEctangle.c ctangle.c # restore date
$(RENAME) cweave.c SAVEcweave.c
./ctangle cweave $(WCHANGES)
diff cweave.c SAVEcweave.c
$(RENAME) SAVEcweave.c cweave.c # restore date
$(RM) SAVEctangle # succeeded, use new binary from now on
SAVEctangle.c:
$(CP) ctangle.c SAVEctangle.c
SAVEcommon.c:
$(CP) common.c SAVEcommon.c
common.c: common.w $(CCHANGES) common.inc
$(CTANGLE) common $(CCHANGES)
common.h: common.w $(CCHANGES)
$(CTANGLE) common $(CCHANGES)
common.tex: common.w common.inc
$(CWEAVE) common $(CCHANGES)
ctangle: ctangle.o common.o
$(CC) $(CFLAGS) -o ctangle ctangle.o common.o
ctangle.c: ctangle.w $(TCHANGES) common.inc common.h
$(CTANGLE) ctangle $(TCHANGES)
ctangle.tex: ctangle.w $(TCHANGES) common.inc intro.inc
$(CWEAVE) ctangle $(TCHANGES)
cweave: cweave.o common.o
$(CC) $(CFLAGS) -o cweave cweave.o common.o
cweave.c: cweave.w $(WCHANGES) common.inc common.h parser.w rules.w
$(CTANGLE) cweave $(WCHANGES)
cweave.tex: cweave.w $(WCHANGES) parser.w rules.w common.inc intro.inc
$(CWEAVE) cweave $(WCHANGES)
manual.dvi: compare.tex
|