|
|
1.1 root 1: ###########################################################################
2: # This program is Copyright (C) 1986, 1987, 1988 by Jonathan Payne. JOVE #
3: # is provided to you without charge, and with no warranty. You may give #
4: # away copies of JOVE, including sources, provided that this notice is #
5: # included in all the files. #
6: ###########################################################################
7:
8: # TMPDIR is where the tmp files get stored, usually /tmp or /tmp/jove. If
9: # your system does not remove subdirectories of /tmp on reboot (lots do
10: # remove them these days) then it makes sense to make TMPDIR be /tmp/jove.
11: # But if you want to recover buffers on system crashes, you should create a
12: # directory that doesn't get clearned upon reboot, and use that instead.
13: # You would probably want to clean out that directory periodically with
14: # /etc/cron. LIBDIR is for online documentation, the PORTSRV process,
15: # RECOVER, and the system-wide .joverc file. BINDIR is where to put the
16: # executables JOVE and TEACHJOVE. MANDIR is where the manual pages go for
17: # JOVE, RECOVER and TEACHJOVE. MANEXT is the extension for the man pages,
18: # e.g., jove.1 or jove.l or jove.m.
19:
20: DESTDIR =
21: TMPDIR = /tmp
22: LIBDIR = /usr/new/lib/jove
23: BINDIR = /usr/new
24: MANDIR = /usr/new/man/cat1
25: MANEXT = 0
26: SHELL = /bin/csh
27:
28: # These should all just be right if the above ones are.
29: JOVE = $(DESTDIR)$(BINDIR)/jove
30: TEACHJOVE = $(DESTDIR)$(BINDIR)/teachjove
31: RECOVER = $(DESTDIR)$(LIBDIR)/recover
32: PORTSRV = $(DESTDIR)$(LIBDIR)/portsrv
33: JOVERC = $(DESTDIR)$(LIBDIR)/.joverc
34: CMDS.DOC = $(DESTDIR)$(LIBDIR)/cmds.doc
35: TEACH-JOVE = $(DESTDIR)$(LIBDIR)/teach-jove
36: JOVEM = $(DESTDIR)$(MANDIR)/jove.$(MANEXT)
37: TEACHJOVEM = $(DESTDIR)$(MANDIR)/teachjove.$(MANEXT)
38:
39: # Select the right libraries for your system.
40: # 2.10BSD:LIBS = -ltermcap
41: # v7: LIBS = -ltermcap
42: # 4.1BSD: LIBS = -ltermcap -ljobs
43: # 4.2BSD: LIBS = -ltermcap
44: # 4.3BSD: LIBS = -ltermcap
45: # SysV Rel. 2: LIBS = -lcurses
46: # SCO Xenix: LIBS = -ltermcap -lx
47:
48: LIBS = -ltermcap
49:
50: # If you are not VMUNIX (vax running Berkeley Version 4), you must specify
51: # the -i flags (split I/D space) and maybe the -x option (for adb to work).
52: # 2.10BSD:LDFLAGS =
53: # v7: LDFLAGS =
54: # 4.1BSD: LDFLAGS =
55: # 4.2BSD: LDFLAGS =
56: # 4.3BSD: LDFLAGS =
57: # SysV Rel. 2: LDFLAGS = -Ml
58: # SCO Xenix: LDFLAGS = -Ml -F 3000
59: #
60: # SEPFLAG should be:
61: # not on a PDP-11: SEPFLAG =
62: # PDP-11 with separate I&D: SEPFLAG = -i
63: # PDP-11 without separate I&D: SEPFLAG = -n
64: #
65:
66: LDFLAGS =
67:
68: SEPFLAG =
69:
70: # for SCO Xenix, set
71: # MEMFLAGS = -Mle
72: # CFLAGS = -LARGE -O -F 3000 -K -Mle (say -Mle2 for an 80286)
73:
74: CFLAGS = -O
75:
76: BASESEG = funcdefs.o keymaps.o ask.o buf.o ctype.o delete.o \
77: disp.o insert.o io.o jove.o marks.o misc.o re.o \
78: screen.o tune.o util.o version.o
79: OVLAY1 = abbrev.o rec.o paragraph.o fmt.o malloc.o vars.o table.o
80: OVLAY2 = c.o wind.o fp.o
81: OVLAY3 = extend.o macros.o
82: OVLAY4 = iproc.o re1.o argcount.o
83: OVLAY5 = proc.o scandir.o term.o case.o move.o
84:
85: OBJECTS = $(BASESEG) $(OVLAY1) $(OVLAY2) $(OVLAY3) $(OVLAY4) $(OVLAY5)
86:
87: C_SRC = funcdefs.c abbrev.c argcount.c ask.c buf.c c.c case.c ctype.c \
88: delete.c disp.c extend.c fp.c fmt.c insert.c io.c iproc.c \
89: jove.c macros.c malloc.c marks.c misc.c move.c paragraph.c \
90: proc.c re.c re1.c rec.c scandir.c screen.c table.c term.c util.c \
91: vars.c version.c wind.c getch.c mac.c
92:
93: SOURCES = $(C_SRC) portsrv.c recover.c setmaps.c teachjove.c
94:
95: HEADERS = ctype.h io.h jove.h re.h rec.h table.h temp.h termcap.h \
96: tune.h externs.h mac.h
97:
98: DOCS = doc/cmds.doc.nr doc/example.rc doc/jove.1 doc/jove.2 doc/jove.3 \
99: doc/jove.4 doc/jove.5 doc/jove.nr doc/system.rc \
100: doc/teach-jove doc/teachjove.nr doc/README doc/jove.qref
101:
102: MISC = Makefile Ovmakefile Makefile.dos tune.dos tune.template \
103: README Readme.dos Readme.mac iproc-pipes.c iproc-ptys.c
104:
105: SUPPORT = teachjove.c recover.c setmaps.c portsrv.c keymaps.txt \
106: macvert.c menumaps.txt mjovers.Hqx
107:
108: BACKUPS = $(HEADERS) $(C_SRC) $(DOCS) $(SUPPORT) $(MISC)
109:
110: all: sdate xjove recover teachjove portsrv macvert edate
111:
112: sdate:
113: @echo "**** make started at `date` ****"
114:
115: edate:
116: @echo "**** make completed at `date` ****"
117:
118: xjove: $(OBJECTS)
119: -if [ X$(SEPFLAG) = X ]; then \
120: $(CC) $(LDFLAGS) -o xjove $(OBJECTS) $(LIBS); \
121: elif [ X${SEPFLAG} = X-i ]; then \
122: ld $(SEPFLAG) $(LDFLAGS) -X /lib/crt0.o \
123: -Z $(OVLAY1) \
124: -Z $(OVLAY2) \
125: -Z $(OVLAY3) \
126: -Z $(OVLAY4) \
127: -Z $(OVLAY5) \
128: -Y $(BASESEG) \
129: -o xjove $(LIBS) -lc; \
130: else \
131: echo "Need overlay scheme for nonseparate I&D"; \
132: fi
133: @-size xjove
134:
135: gjove: $(OBJECTS)
136: ld -X /lib/gcrt0.o -o gjove $(OBJECTS) -lc $(LIBS)
137: @-size gjove
138:
139: ovjove: $(OBJECTS)
140: ld $(SEPFLAG) $(LDFLAGS) -X /lib/crt0.o \
141: -Z $(OVLAY1) \
142: -Z $(OVLAY2) \
143: -Z $(OVLAY3) \
144: -Z $(OVLAY4) \
145: -Z $(OVLAY5) \
146: -Y $(BASESEG) \
147: -o xjove $(LIBS) -lc; \
148: @-size xjove
149:
150: portsrv: portsrv.o
151: $(CC) $(LDFLAGS) -o portsrv $(SEPFLAG) portsrv.o $(LIBS)
152:
153: recover: recover.o tune.o rec.h temp.h
154: $(CC) $(LDFLAGS) -o recover $(SEPFLAG) recover.o tune.o $(LIBS)
155:
156: teachjove: teachjove.o
157: $(CC) $(LDFLAGS) -o teachjove $(SEPFLAG) teachjove.o $(LIBS)
158:
159: setmaps: setmaps.o funcdefs.c
160: $(CC) $(LDFLAGS) -o setmaps setmaps.o
161:
162: teachjove.o: teachjove.c /usr/include/sys/types.h /usr/include/sys/file.h
163: cc -c $(CFLAGS) -DTEACHJOVE=\"$(TEACH-JOVE)\" teachjove.c
164:
165: # don't optimize setmaps.c because it produces bad code in some places
166: # for some reason
167: setmaps.o: funcdefs.c keymaps.txt
168: $(CC) $(MEMFLAGS) -c setmaps.c
169:
170: # ignore error messages from setmaps
171: # it doesn't understand ifdefs
172:
173: keymaps.c: setmaps keymaps.txt
174: -setmaps < keymaps.txt > keymaps.c
175:
176: keymaps.o: keymaps.c jove.h
177:
178: tune.c: Makefile tune.template
179: @echo "/* Changes should be made in Makefile, not to this file! */" > tune.c
180: @echo "" >> tune.c
181: @sed -e 's;TMPDIR;$(TMPDIR);' \
182: -e 's;LIBDIR;$(LIBDIR);' \
183: -e 's;BINDIR;$(BINDIR);' \
184: -e 's;SHELL;$(SHELL);' tune.template >> tune.c
185:
186: iproc.o: iproc-ptys.c iproc-pipes.c iproc.c
187: $(CC) -c $(CFLAGS) iproc.c
188:
189: macvert: macvert.c
190: $(CC) $(CFLAGS) -o macvert macvert.c
191:
192: # install doesn't work for Xenix (no install program)
193:
194: install: $(DESTDIR)$(LIBDIR) $(TEACH-JOVE) $(CMDS.DOC) $(JOVERC) \
195: $(PORTSRV) $(RECOVER) $(JOVE) $(TEACHJOVE) $(JOVEM) \
196: $(RECOVERM) $(TEACHJOVEM)
197:
198: $(DESTDIR)$(LIBDIR):
199: -mkdir $(DESTDIR)$(LIBDIR)
200:
201: $(TEACH-JOVE): doc/teach-jove
202: install -c -m 644 doc/teach-jove $(TEACH-JOVE)
203:
204: doc/cmds.doc: doc/cmds.doc.nr doc/jove.4 doc/jove.5
205: nroff doc/cmds.doc.nr doc/jove.4 doc/jove.5 > doc/cmds.doc
206:
207: $(CMDS.DOC): doc/cmds.doc
208: install -c -m 644 doc/cmds.doc $(CMDS.DOC)
209:
210: $(JOVERC): doc/system.rc
211: install -c -m 644 doc/system.rc $(JOVERC)
212:
213: $(PORTSRV): portsrv
214: install -c -s -m 755 portsrv $(PORTSRV)
215:
216: $(RECOVER): recover
217: install -c -s -m 755 recover $(RECOVER)
218:
219: $(JOVE): xjove
220: install -c -s -m 755 xjove $(JOVE)
221:
222: $(TEACHJOVE): teachjove
223: install -c -s -m 755 teachjove $(TEACHJOVE)
224:
225: $(JOVEM): doc/jove.nr
226: @sed -e 's;TMPDIR;$(TMPDIR);' \
227: -e 's;LIBDIR;$(LIBDIR);' \
228: -e 's;SHELL;$(SHELL);' doc/jove.nr > /tmp/jove.nr \
229: | /usr/man/manroff /tmp/jove.nr \
230: > $(JOVEM)
231: chmod 644 $(JOVEM)
232:
233: $(TEACHJOVEM): doc/teachjove.nr
234: @sed -e 's;TMPDIR;$(TMPDIR);' \
235: -e 's;LIBDIR;$(LIBDIR);' \
236: -e 's;SHELL;$(SHELL);' doc/teachjove.nr > /tmp/teachjove.nr
237: install -m 644 /tmp/teachjove.nr $(TEACHJOVEM)
238:
239: echo:
240: @echo $(C-FILES) $(HEADERS)
241:
242: lint:
243: lint -n $(C_SRC) tune.c keymaps.c
244: @echo Done
245:
246: tags:
247: ctags -w $(C_SRC) $(HEADERS) iproc-ptys.c
248:
249: ciall:
250: ci $(BACKUPS)
251:
252: coall:
253: co $(BACKUPS)
254:
255: jove.shar:
256: shar $(BACKUPS) > jove.shar
257:
258: backup: $(BACKUPS)
259: tar chf backup $(BACKUPS)
260:
261: tape-backup:
262: tar c $(BACKUPS)
263:
264: srcdownload:
265: kermit -s $(SUPPORT) $(MISC) $(HEADERS) $(C_SRC)
266:
267: docdownload:
268: kermit -s $(DOCS)
269:
270: touch:
271: touch $(OBJECTS)
272:
273: clean:
274: rm -f a.out core *.o keymaps.c tune.c xjove portsrv recover setmaps \
275: teachjove macvert
276:
277: # This version only works under 4.3BSD
278: #depend:
279: # for i in ${SOURCES} ; do \
280: # cc -M ${CFLAGS} $$i | awk ' { if ($$1 != prev) \
281: # { if (rec != "") print rec; rec = $$0; prev = $$1; } \
282: # else { if (length(rec $$2) > 78) { print rec; rec = $$0; } \
283: # else rec = rec " " $$2 } } \
284: # END { print rec } ' >> makedep; done
285: # echo '/^# DO NOT DELETE THIS LINE/+2,$$d' >eddep
286: # echo '$$r makedep' >>eddep
287: # echo 'w' >>eddep
288: # cp Makefile Makefile.bak
289: # ed - Makefile < eddep
290: # rm eddep makedep
291: # echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile
292: # echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile
293: # echo '# see make depend above' >> Makefile
294: #
295: ## DO NOT DELETE THIS LINE -- make depend uses it
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.