BSD 4_3 development
[unix-history] / usr / contrib / jove / Ovmakefile
CommitLineData
394a1d25
C
1#########################################################################
2# This program is copyright (C) 1985, 1986 by Jonathan Payne. It is #
3# provided to you without charge for use only on a licensed Unix #
4# system. You may copy JOVE provided that this notice is included with #
5# the copy. You may not sell copies of this program or versions #
6# modified for use on microcomputer systems, unless the copies are #
7# included with a Unix system distribution and the source is provided. #
8#########################################################################
9
10# Figure out the directories for things. TMPDIR is where the tmp files get
11# stored, usually /tmp or /tmp/jove. RECDIR is where the tmp files should be
12# moved when the system comes back up (and a call to recover -syscrash should
13# be put in /etc/rc before /tmp is cleared). If your system does not remove
14# subdirectories of /tmp on reboot (lots do remove them these days) then it
15# makes sense to make RECDIR and TMPDIR both be /tmp/jove. That way you
16# don't need the call to jove_recover in /etc/rc. LIBDIR is for online
17# documentation, the PORTSRV process, JOVE_RECOVER, and the system-wide
18# .joverc file. BINDIR is where to put the executables JOVE, JOVE_RECOVER
19# and TEACHJOVE. MANDIR is where the manual pages go for JOVE, JOVE_RECOVER
20# and TEACHJOVE. MANEXT is the extension for the man pages, e.g., jove.1 or
21# jove.l or jove.m.
22
23DESTDIR =
24TMPDIR = /tmp/jove
25RECDIR = /tmp/jove
26LIBDIR = /usr/lib/jove
27BINDIR = /bin
28MANDIR = /usr/man/man1
29MANEXT = 1
30SHELL = /bin/csh
31
32# These should all just be right if the above ones are.
33JOVE = $(DESTDIR)$(BINDIR)/jove
34RECOVER = $(DESTDIR)$(BINDIR)/recover
35TEACHJOVE = $(DESTDIR)$(BINDIR)/teachjove
36JOVERC = $(DESTDIR)$(LIBDIR)/.joverc
37CMDS.DOC = $(DESTDIR)$(LIBDIR)/cmds.doc
38TEACH-JOVE = $(DESTDIR)$(LIBDIR)/teach-jove
39PORTSRV = $(DESTDIR)$(LIBDIR)/portsrv
40JOVEM = $(DESTDIR)$(MANDIR)/jove.$(MANEXT)
41RECOVERM = $(DESTDIR)$(MANDIR)/recover.$(MANEXT)
42TEACHJOVEM = $(DESTDIR)$(MANDIR)/teachjove.$(MANEXT)
43
44# Select the right libraries for your system.
45# 2.9BSD: LIBS = -ltermlib -ljobs
46# v7: LIBS = -ltermlib
47# 4.1BSD: LIBS = -ltermlib -ljobs
48# 4.2BSD: LIBS = -ltermlib
49# 4.3BSD: LIBS = -ltermlib
50
51OVLIBS = -lovtermcap -lovjobs
52LIBS = -ltermcap -ljobs
53
54# If you are not VMUNIX (vax running Berkeley Version 4), you must specify
55# the -i flags (split I/D space) and maybe the -x option (for adb to work).
56# 2.9BSD: LDFLAGS = -x -i
57# v7: LDFLAGS = -x -i
58# 4.1BSD: LDFLAGS =
59# 4.2BSD: LDFLAGS =
60# 4.3BSD: LDFLAGS =
61
62LDFLAGS = -x -i
63
64CFLAGS = -O -V
65
66COFLAGS = -rworking -q
67
68BASESEG = funcdefs.o keymaps.o ask.o buf.o ctype.o delete.o disp.o fmt.o fp.o \
69 insert.o io.o jove.o malloc.o macros.o marks.o misc.o move.o re.o \
70 screen.o tune.o util.o vars.o version.o
71OVLAY1 = abbrev.o rec.o paragraph.o
72OVLAY2 = c.o wind.o
73OVLAY3 = extend.o
74OVLAY4 = iproc.o re1.o
75OVLAY5 = proc.o scandir.o term.o case.o
76
77OBJECTS = $(BASESEG) $(OVLAY1) $(OVLAY2) $(OVLAY3) $(OVLAY4) $(OVLAY5)
78
79C-FILES = funcdefs.c abbrev.c ask.c buf.c c.c case.c ctype.c delete.c disp.c \
80 extend.c fmt.c fp.c insert.c io.c iproc.c iproc-pipes.c iproc-ptys.c \
81 jove.c macros.c malloc.c marks.c misc.c move.c paragraph.c proc.c \
82 re.c re1.c rec.c scandir.c screen.c term.c util.c vars.c version.c \
83 wind.c
84
85H-FILES = ctype.h io.h jove.h re.h rec.h temp.h termcap.h tune.h
86
87BACKUPS = $(C-FILES) $(H-FILES) teachjove.c recover.c setmaps.c portsrv.c \
88 tune.template Makefile Ovmakefile keymaps.txt README tags \
89 doc
90
91all: xjove recover teachjove portsrv
92
93xjove: $(OBJECTS)
94 ld $(LDFLAGS) /lib/crt0.o \
95 -Z $(OVLAY1) \
96 -Z $(OVLAY2) \
97 -Z $(OVLAY3) \
98 -Z $(OVLAY4) \
99 -Z $(OVLAY5) \
100 -L $(BASESEG) \
101 -o xjove $(OVLIBS) -lovc
102 checkobj xjove
103 @-size xjove
104 @-date
105
106portsrv: portsrv.c
107 cc -o portsrv -n -O portsrv.c $(LIBS)
108
109recover: recover.c tune.o rec.h temp.h
110 cc -o recover -n -O recover.c tune.o -ljobs
111
112teachjove: teachjove.c
113 cc -o teachjove -n -O -DTEACHJOVE=\"$(TEACH-JOVE)\" teachjove.c
114
115setmaps: setmaps.c funcdefs.c
116 cc -o setmaps setmaps.c
117
118keymaps.c: setmaps keymaps.txt
119 setmaps < keymaps.txt > keymaps.c
120
121tune.c: Makefile tune.template
122 @echo "/* Changes should be made in Makefile, not to this file! */" > tune.c
123 @echo "" >> tune.c
124 @sed -e 's;TMPDIR;$(TMPDIR);' \
125 -e 's;RECDIR;$(RECDIR);' \
126 -e 's;LIBDIR;$(LIBDIR);' \
127 -e 's;BINDIR;$(BINDIR);' \
128 -e 's;SHELL;$(SHELL);' tune.template >> tune.c
129
130install: $(LIBDIR) $(TEACH-JOVE) $(CMDS.DOC) $(JOVERC) $(PORTSRV) $(RECOVER) \
131 $(JOVE) $(TEACHJOVE) $(JOVEM) $(RECOVERM) $(TEACHJOVEM)
132
133$(DESTDIR)$(LIBDIR):
134 -mkdir (DESTDIR)$(LIBDIR)
135
136$(TEACH-JOVE): doc/teach-jove
137 install -c -m 644 doc/teach-jove $(TEACH-JOVE)
138
139$(CMDS.DOC): doc/cmds.doc
140 install -c -m 644 doc/cmds.doc $(CMDS.DOC)
141
142$(JOVERC): doc/system.rc
143 install -c -m 644 doc/system.rc $(JOVERC)
144
145$(PORTSRV): portsrv
146 install -c -m 755 portsrv $(PORTSRV)
147
148$(RECOVER): recover
149 install -c -m 755 recover $(RECOVER)
150
151$(JOVE): xjove
152 install -c -m 755 xjove $(JOVE)
153
154$(TEACHJOVE): teachjove
155 install -c -m 755 teachjove $(TEACHJOVE)
156
157$(JOVEM): doc/jove.nr
158 @sed -e 's;TMPDIR;$(TMPDIR);' \
159 -e 's;RECDIR;$(RECDIR);' \
160 -e 's;LIBDIR;$(LIBDIR);' \
161 -e 's;SHELL;$(SHELL);' doc/jove.nr > /tmp/jove.nr
162 install -m 644 /tmp/jove.nr $(JOVEM)
163
164$(RECOVERM): doc/recover.nr
165 @sed -e 's;TMPDIR;$(TMPDIR);' \
166 -e 's;RECDIR;$(RECDIR);' \
167 -e 's;LIBDIR;$(LIBDIR);' \
168 -e 's;SHELL;$(SHELL);' doc/recover.nr > /tmp/recover.nr
169 install -m 644 /tmp/recover.nr $(RECOVERM)
170
171$(TEACHJOVEM): doc/teachjove.nr
172 @sed -e 's;TMPDIR;$(TMPDIR);' \
173 -e 's;RECDIR;$(RECDIR);' \
174 -e 's;LIBDIR;$(LIBDIR);' \
175 -e 's;SHELL;$(SHELL);' doc/teachjove.nr > /tmp/teachjove.nr
176 install -m 644 /tmp/teachjove.nr $(TEACHJOVEM)
177
178echo:
179 @echo $(C-FILES) $(H-FILES)
180
181lint:
182 lint -x $(C-FILES)
183 echo Done
184
185tags:
186 ctags -w $(C-FILES) $(H-FILES)
187
188
189jove.shar:
190 shar $(BACKUPS) doc/* > jove.shar
191
192backup:
193 tar cf backup $(BACKUPS)
194
195tape-backup:
196 tar cbf 20 /dev/rmt0 $(BACKUPS)
197
198clean:
199 rm -f a.out core $(OBJECTS) keymaps.c xjove \
200 portsrv recover setmaps teachjove
201
202# abbrev.o: jove.h tune.h
203# ask.o: jove.h tune.h
204# buf.o: jove.h tune.h
205# c.o: jove.h tune.h
206# delete.o: jove.h tune.h
207# disp.o: jove.h tune.h termcap.h
208# extend.o: jove.h tune.h
209# fmt.o: jove.h tune.h termcap.h
210# funcdefs.o: jove.h tune.h
211# insert.o: jove.h tune.h
212# io.o: jove.h tune.h termcap.h temp.h
213# iproc.o: jove.h tune.h
214# jove.o: jove.h tune.h termcap.h
215# macros.o: jove.h tune.h
216# marks.o: jove.h tune.h
217# misc.o: jove.h tune.h
218# move.o: jove.h tune.h
219# portsrv.o: jove.h tune.h
220# proc.o: jove.h tune.h
221# re.o: jove.h tune.h
222# rec.o: jove.h tune.h temp.h rec.h
223# recover.o: jove.h tune.h temp.h rec.h
224# screen.o: jove.h tune.h temp.h termcap.h
225# setmaps.o: jove.h tune.h
226# term.o: jove.h tune.h
227# tune.o: tune.h
228# util.o: jove.h tune.h
229# wind.o: jove.h tune.h termcap.h