|
|
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.