|
|
1.1 root 1: #$Header: /usr/src/local/bin/rcs/src/RCS/Makefile,v 1.13 89/05/02 14:53:40 narten Exp $
2: # Copyright (C) 1982, 1988, 1989 Walter Tichy
3: # All rights reserved.
4: #
5: # Redistribution and use in source and binary forms are permitted
6: # provided that the above copyright notice and this paragraph are
7: # duplicated in all such forms and that any documentation,
8: # advertising materials, and other materials related to such
9: # distribution and use acknowledge that the software was developed
10: # by Walter Tichy.
11: # THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
12: # IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
13: # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
14: #
15: # Report all problems and direct all questions to:
16: # [email protected]
17: #
18: #
19: #
20: #
21: #
22: #
23: #
24: #
25: # INSTRUCTIONS
26: # ============
27: # 0. If you are porting to different hardware,
28: # check the instructions in rcsbase.h
29: #
30: # Note: instructions 1-5 are normally taken care of by the calling make,
31: # which passes in DIFF, DIFF3, RCSDIR, OLDDIR, OS, and LOCKING.
32: #
33: # 1. Early version of diff did not support options needed by RCS.
34: # Newer versions of diff, support them and diff is no longer distributed with
35: # RCS. The following definitions apply only if you have both old versions
36: # and new versions of diff, and you want RCS to use the new versions.
37: # The default should be :
38: #
39:
40: DIFF = /usr/bin/diff
41: DIFF3 = /usr/bin/diff3
42:
43: # 2. Figure out where to put the RCS commands; define RCSDIR accordingly.
44:
45: RCSDIR = /usr/contrib
46:
47:
48: # 3. Figure out where to put your old RCS commands; define OLDDIR
49: # accordingly. This is not needed if you don't have an old release of RCS.
50: OLDDIR = /usr/old/bin
51:
52: # 4. Set the operating system variable OS. If you run on 4.1 BSD, do not
53: # define OS:
54: # OS =
55: # If you run on USG Unix or UN*X, use:
56: # OS = -DUSG
57: # If you run on Version 6 Unix, use:
58: # OS = -DV6
59: # If you run on 4.2 or 4.3 BSD, use:
60: # OS = -DV4_2BSD
61: OS = -DV4_2BSD
62:
63: # Also, set SIGNAL_TYPE to be what your signal() handlers yield.
64: # Old-fashioned signal handlers yield 'int'; the newer ones 'void'.
65:
66: SIGNAL_TYPE = void
67:
68: # 5. Decide whether you want strict locking as the default or not.
69: # If you want strict locking, use:
70: # LOCKING = 1
71: # otherwise:
72: # LOCKING = 0
73: LOCKING = 1
74:
75: # 6. Decide what loader flags you need, and define LDFLAGS accordingly.
76: # On the Vax you need none, on PDP-11s with split i/d you need -i.
77: #LDFLAGS = -i
78: LDFLAGS =
79:
80: # 7. RCS can maintain a log of the use of the co and ci commands. If you
81: # want the logging, you must
82: # a) define SNOOP (that's where the process that writes the log goes),
83: # b) define SNOOPFILE (that's the file where SNOOP writes the log;
84: # it must be owned by the same user that owns SNOOP),
85: # c) include SNOOP and SNOOPFILE in the CFLAGS macro.
86: # If you don't want the logging of command usage, omit the SNOOP and
87: # SNOOPFILE definitions from CFLAGS.
88: # The two variants of the CFLAG macros are given below.
89: SNOOPFILE = /var/log/rcslog
90: SNOOP = /usr/contrib/snoop
91:
92: DEFINES= -DCOMPAT2 $(OS) -DSIGNAL_TYPE=$(SIGNAL_TYPE) -DSTRICT_LOCKING=$(LOCKING) -DDIFF='"$(DIFF)"' -DCO='"${RCSDIR}/co"' -DMERGE='"${RCSDIR}/merge"'
93: CFLAGS = -O $(DEFINES)
94: LINTFLAGS = -c -u
95: LINT = lint $(LINTFLAGS) -Dlint $(DEFINES)
96:
97: # 8. If you don't have release 2 RCS files around (e.g., if you don't
98: # have release 2 of RCS), remove the word -DCOMPAT2 from whatever
99: # variant of CFLAGS you selected. -DCOMPAT2 assures that release 2
100: # RCS files can still be read. (After all release 2 RCS files have
101: # been updated with release 3 or 4 ci or rcs, you can remake RCS without
102: # -DCOMPAT2.) Also, make sure that the co commands at the end of this
103: # file are commented out; otherwise, Make will complain.
104: #
105: # 9. Now you are ready. Try to make 'depend' and 'all'. If all went well, make
106: # 'install' if you want no logging of command usage, 'installog' otherwise.
107: #
108: # 10. IMPORTANT! When you have RCS installed, rename old
109: # release 2 RCS files as follows (if you have any):
110: # If the working file was "f.c" and the RCS file "f.c.v", rename the
111: # RCS file to "f.c,v". If the working file was "f.c" and the RCS file
112: # "f.v", rename the RCS file "f.c,v". Thus, suffixes are no longer
113: # dropped and RCS files end in ",v" rather than ".v".
114: #
115: # 11. If you want to maintain RCS with itself, be sure you preserve the
116: # original revision numbers, dates, etc. This is done by checking the
117: # files in with the -k option. When done, remove the comments from the
118: # co-rules at the end of this file.
119: #
120: BCOMMANDS = ci ident rcs rcsdiff rcsmerge rlog co
121: # binary comands
122:
123: RCSCOMMANDS = merge $(BCOMMANDS)
124: # all commands
125:
126: BOBJECTS = ci.o co.o ident.o rcs.o rcsdiff.o rcsedit.o\
127: rcsfcmp.o rcsfnms.o rcsgen.o rcskeep.o rcskeys.o rcslex.o rcsmerge.o\
128: rcsrev.o rcssyn.o rcsutil.o rlog.o snoop.o\
129: rcssynTST.o rcsrevTST.o rcsfnmsTST.o rcsfcmpTST.o rcskeepTST.o
130:
131: all: $(RCSCOMMANDS)
132:
133: INSTALL = install
134:
135: $(BOBJECTS): rcsbase.h
136:
137: partime.o maketime.o co.o ci.o rcs.o rlog.o rcsutil.o: time.h
138:
139: install: all
140: # Save the old commands if you have any.
141: # -cd ${RCSDIR}; mv $(RCSCOMMANDS) ${RCSDIR}$(OLDDIR)
142: ${INSTALL} -m 775 -o bin -g bin -s ci ${RCSDIR}
143: ${INSTALL} -m 775 -o bin -g bin -s ident ${RCSDIR}
144: ${INSTALL} -m 775 -o bin -g bin -s rcs ${RCSDIR}
145: ${INSTALL} -m 775 -o bin -g bin -s rcsdiff ${RCSDIR}
146: ${INSTALL} -m 775 -o bin -g bin -s rcsmerge ${RCSDIR}
147: ${INSTALL} -m 775 -o bin -g bin -s rlog ${RCSDIR}
148: ${INSTALL} -m 775 -o bin -g bin -s co ${RCSDIR}
149: ${INSTALL} -m 775 -o bin -g bin -c merge ${RCSDIR}
150: # ${INSTALL} -m 775 -o bin -g bin -c rcsclean ${RCSDIR}
151: # ${INSTALL} -m 775 -o bin -g bin -c rcsfreeze.sh ${RCSDIR}/rcsfreeze
152:
153: installog: installsnoop install
154:
155: installsnoop: snoop
156: install -m 4775 -o bin -g bin -s snoop ${RCSDIR}$(SNOOP)
157: chmod u+s ${RCSDIR}$(SNOOP)
158: touch ${RCSDIR}$(SNOOPFILE)
159: chown bin.bin ${RCSDIR}$(SNOOPFILE)
160: chmod 644 ${RCSDIR}$(SNOOPFILE)
161: # CAUTION: You may have to do a chown of SNOOP and SNOOPFILE (if not owned by root).
162: lint: ci.lint co.lint ident.lint rlog.lint rcs.lint rcsdiff.lint rcsmerge.lint snoop.lint
163:
164: clean:
165: rm -f *.o; rm -f $(RCSCOMMANDS) snoop
166:
167: cleandir: clean
168: rm -f tags .depend
169:
170: CIFILES = ci.o rcslex.o rcssyn.o rcsgen.o rcsedit.o rcskeys.o rcsrev.o rcsutil.o rcsfnms.o partime.o maketime.o localzone.o rcskeep.o rcsfcmp.o
171:
172: CISRC = ci.c rcslex.c rcssyn.c rcsgen.c rcsedit.c rcskeys.c rcsrev.c rcsutil.c rcsfnms.c partime.c maketime.c localzone.c rcskeep.c rcsfcmp.c
173:
174: ci.lint:
175: $(LINT) $(CISRC)
176:
177: ci: $(CIFILES)
178: ${CC} $(LDFLAGS) -o ci $(CIFILES)
179:
180: COFILES = co.o rcslex.o rcssyn.o rcsgen.o rcsedit.o rcskeys.o rcsrev.o rcsutil.o rcsfnms.o partime.o maketime.o localzone.o
181:
182: COSRC = co.c rcslex.c rcssyn.c rcsgen.c rcsedit.c rcskeys.c rcsrev.c rcsutil.c rcsfnms.c partime.c maketime.c localzone.c
183: co.lint:
184: $(LINT) $(COSRC)
185: co: $(COFILES)
186: ${CC} $(LDFLAGS) -o co $(COFILES)
187:
188: ident: ident.o rcskeys.o
189: ${CC} $(LDFLAGS) -o ident ident.o rcskeys.o
190:
191: ident.lint:
192: $(LINT) ident.c rcskeys.c
193:
194: merge: merge.sh
195: sed -e '/^#/d' \
196: -e 's:DIFF=.*$$:DIFF=$(DIFF):' \
197: -e 's:DIFF3=.*$$:DIFF3=$(DIFF3):' \
198: merge.sh > merge
199: # This takes out the comment lines and substitutes in DIFF and DIFF3.
200: # (Comments are not permitted in some older shells.)
201: chmod 755 merge
202:
203: RLOG = rlog.o rcslex.o rcssyn.o rcsrev.o rcsutil.o partime.o maketime.o localzone.o rcsfnms.o
204: RLOGSRC = rlog.c rcslex.c rcssyn.c rcsrev.c rcsutil.c partime.c maketime.c localzone.c rcsfnms.c
205: rlog: $(RLOG)
206: ${CC} $(LDFLAGS) -o rlog $(RLOG)
207:
208: rlog.lint:
209: $(LINT) $(RLOGSRC)
210:
211: RCS = rcs.o rcslex.o rcssyn.o rcsrev.o rcsutil.o rcsgen.o rcsedit.o rcskeys.o rcsfnms.o
212:
213: RCSSRC = rcs.c rcslex.c rcssyn.c rcsrev.c rcsutil.c rcsgen.c rcsedit.c rcskeys.c rcsfnms.c
214: rcs: $(RCS)
215: ${CC} $(LDFLAGS) -o rcs $(RCS)
216:
217: rcs.lint:
218: $(LINT) $(RCSSRC)
219:
220: rcsclean: rcsclean.sh
221: sed -e '/^#/d' rcsclean.sh > rcsclean
222: # This takes out the comments (not permitted in older shells).
223: chmod 755 rcsclean
224:
225: RCSDIFF = rcsdiff.o rcsutil.o rcsfnms.o rcsrev.o rcssyn.o rcslex.o
226: RCSDIFFSRC = rcsdiff.c rcsutil.c rcsfnms.c rcsrev.c rcssyn.c rcslex.c
227:
228: rcsdiff: $(RCSDIFF)
229: ${CC} ${LDFLAGS} -o rcsdiff $(RCSDIFF)
230:
231: rcsdiff.lint:
232: $(LINT) $(RCSDIFFSRC)
233: RCSMERGE = rcsmerge.o rcsutil.o rcsfnms.o rcsrev.o rcssyn.o rcslex.o
234: RCSMERGESRC = rcsmerge.c rcsutil.c rcsfnms.c rcsrev.c rcssyn.c rcslex.c
235: rcsmerge: $(RCSMERGE)
236: ${CC} ${LDFLAGS} -o rcsmerge $(RCSMERGE)
237: rcsmerge.lint:
238: $(LINT) $(RCSMERGESRC)
239:
240: snoop: snoop.o
241: ${CC} ${LDFLAGS} -o snoop snoop.o
242: snoop.lint:
243: $(LINT) snoop.c
244:
245: SOURCE= ci.c co.c curdir.c ident.c maketime.c localzone.c partime.c rcs.c \
246: rcsclean.c rcsdiff.c rcsedit.c rcsfcmp.c rcsfnms.c rcsgen.c \
247: rcskeep.c rcskeys.c rcslex.c rcsmerge.c rcsrev.c rcssyn.c rcsutil.c \
248: rlog.c snoop.c
249:
250: HFILES= rcsbase.h time.h
251:
252: depend: ${SOURCE} ${HFILES}
253: mkdep ${CFLAGS} ${SOURCE}
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.