|
|
1.1 ! root 1: # combined Makefile for ELVIS - a clone of `vi` ! 2: # ! 3: # After editing this Makefile as described below, you should... ! 4: # ! 5: # Use `make` to compile all programs ! 6: # Use `make install` to copy the programs to the BIN directory ! 7: # Use `make clean` to remove all object files ! 8: # Use `make clobber` to remove everything except source & documentation ! 9: # Use `make tags` to build new "tags" and "refs" files ! 10: # Use `make uue` to produce uuencoded compressed tar archives of the source ! 11: # Use `make sh` to produce shar archives of the source ! 12: # Use `make print` to print the Elvis documentation ! 13: # ! 14: # Several groups of Makefile settings are included below. Choose *ONE* group ! 15: # of settings for your particular system, and leave the others commented out. ! 16: # The meanings of these settings are: ! 17: # O the filename extension for unlinked object files -- usually .o ! 18: # E the filename extension for executable files -- usually null ! 19: # EXTRA version-specific object files used in elvis ! 20: # EXTRA2 version-specific object files used in elvis, virec, & refont ! 21: # LIBS any special libraries, such as "-ltermcap" ! 22: # BIN directory where executables should be installed ! 23: # CC the C compiler command, possibly with "memory model" flags ! 24: # CFLAGS compiler flags used to select compile-time options ! 25: # OF link flag to control the output file's name -- usually -o<space> ! 26: # RF flag used to denote "compile but don't link" -- usually -c ! 27: # DATE a "cc" flag that defines "DATE". e.g. DATE=-DDATE=\"7/4/76\" ! 28: # EVAL the word "eval", if DATE requires it ! 29: # PROGS the list of all programs ! 30: # CHMEM any extra commands to be run after ELVIS is linked ! 31: # SORT if the "tags" file must be sorted, then SORT=-DSORT ! 32: # INST installation method: inst.dos, inst.os9, or inst.unix ! 33: # RM the name of a program that deletes files ! 34: # PR1 used to print documentation -- typically "refont -c" ! 35: # PR2 used to send text to printer -- typically "| lpr" ! 36: # DUMMY usually nothing, but OS9 needs "dummy" ! 37: # DOC name of "doc" directory, with a trailing slash ! 38: ! 39: ! 40: #---- These settings are recommended for Coherent ---- ! 41: O=.o ! 42: E= ! 43: EXTRA= ! 44: EXTRA2= ! 45: LIBS= -lterm ! 46: BIN= /usr/bin ! 47: CC= cc ! 48: CFLAGS= -O -DCOHERENT -DCRUNCH -DNO_CHARATTR -DNO_CURSORSHAPE \ ! 49: -DNO_DIGRAPH -DNO_MKEXRC ! 50: OF= -o ! 51: RF= -c ! 52: DATE= -DDATE=\'\"`date`\"\' ! 53: EVAL= eval ! 54: PROGS= elvis$E ctags$E ref$E virec$E refont$E ! 55: CHMEM= fixstack 2000 $(DESTDIR)elvis$E ! 56: SORT= ! 57: INST= inst.unix ! 58: RM= rm -f ! 59: PR1= refont -b ! 60: PR2= >Elvis.doc ! 61: DUMMY= ! 62: DOC= doc/ ! 63: DESTDIR= /interim/usr/bin/ ! 64: ! 65: ! 66: ########################################################################### ! 67: ########################################################################### ! 68: ### ### ! 69: ### The rest of this Makefile contains no user-servicable parts ### ! 70: ### ### ! 71: ########################################################################### ! 72: ########################################################################### ! 73: ! 74: OBJS= blk$O cmd1$O cmd2$O curses$O cut$O ex$O input$O main$O misc$O \ ! 75: modify$O move1$O move2$O move3$O move4$O move5$O opts$O recycle$O \ ! 76: redraw$O regexp$O regsub$O system$O tio$O tmp$O vars$O vcmd$O \ ! 77: vi$O ! 78: ! 79: ALIAS= alias$O ! 80: ! 81: DOCS= $(DOC)index.doc $(DOC)intro.doc $(DOC)visual.doc $(DOC)ex.doc \ ! 82: $(DOC)regexp.doc $(DOC)options.doc $(DOC)cutbufs.doc $(DOC)differ.doc \ ! 83: $(DOC)internal.doc $(DOC)cflags.doc $(DOC)termcap.doc \ ! 84: $(DOC)environ.doc $(DOC)versions.doc ! 85: ! 86: SRC1= README $(DOC)intro.doc $(DOC)visual.doc $(DOC)ex.doc \ ! 87: $(DOC)versions.doc $(DOC)cflags.doc $(DOC)differ.doc ! 88: SRC2= $(DOC)cutbufs.doc $(DOC)options.doc $(DOC)environ.doc $(DOC)regexp.doc \ ! 89: $(DOC)internal.doc $(DOC)termcap.doc $(DOC)index.doc $(DOC)ctags.man \ ! 90: $(DOC)elvis.man $(DOC)ref.man $(DOC)refont.man $(DOC)virec.man ! 91: SRC3= Elvis.lnk Elvis.mak Elvis.prj Makefile.mix alias.c atari.c \ ! 92: ctags.c pc.c ref.c shell.c sysdos.c virec.c wildcard.c \ ! 93: profile.sh osk.c osk.h date.c ! 94: SRC4= blk.c cmd1.c cmd2.c config.h curses.c ! 95: SRC5= curses.h cut.c ex.c input.c main.c misc.c ! 96: SRC6= modify.c move1.c move2.c move3.c move4.c move5.c opts.c recycle.c \ ! 97: redraw.c ! 98: SRC7= regexp.c regexp.h regsub.c system.c tinytcap.c tio.c tmp.c ! 99: SRC8= vars.c vcmd.c vi.c vi.h refont.c ! 100: ! 101: ########################################################################### ! 102: ! 103: all: $(PROGS) ! 104: @echo done. ! 105: ! 106: elvis$E: $(OBJS) $(EXTRA) $(EXTRA2) ! 107: $(CC) $(CFLAGS) $(OF) $(DESTDIR)elvis$E $(OBJS) $(EXTRA) $(EXTRA2) $(LIBS) ! 108: -$(CHMEM) ! 109: su root chown bin $(DESTDIR)elvis ! 110: su root chgrp bin $(DESTDIR)elvis ! 111: su root chmod 755 $(DESTDIR)elvis ! 112: su root ln -f $(DESTDIR)elvis $(DESTDIR)vi ! 113: su root ln -f $(DESTDIR)elvis $(DESTDIR)ex ! 114: su root ln -f $(DESTDIR)elvis $(DESTDIR)view ! 115: su root ln -f $(DESTDIR)elvis $(DESTDIR)input ! 116: ! 117: ctags$E: ctags.c ! 118: $(CC) $(CFLAGS) $(SORT) $(OF) $(DESTDIR)ctags$E ctags.c ! 119: su root chown bin $(DESTDIR)ctags ! 120: su root chgrp bin $(DESTDIR)ctags ! 121: su root chmod 511 $(DESTDIR)ctags ! 122: ! 123: ref$E: ref.c ! 124: $(CC) $(CFLAGS) $(OF) $(DESTDIR)ref$E ref.c ! 125: su root chown bin $(DESTDIR)ref ! 126: su root chgrp bin $(DESTDIR)ref ! 127: su root chmod 511 $(DESTDIR)ref ! 128: ! 129: virec$E: virec.c ! 130: $(CC) $(CFLAGS) $(OF) $(DESTDIR)virec$E virec.c $(EXTRA2) ! 131: su root chown bin $(DESTDIR)virec ! 132: su root chgrp bin $(DESTDIR)virec ! 133: su root chmod 511 $(DESTDIR)virec ! 134: ! 135: view$E: $(ALIAS) ! 136: $(CC) $(CFLAGS) $(OF) view$E $(ALIAS) ! 137: ! 138: ex$E: $(ALIAS) ! 139: $(CC) $(CFLAGS) $(OF) ex$E $(ALIAS) ! 140: ! 141: vi$E: $(ALIAS) ! 142: $(CC) $(CFLAGS) $(OF) vi$E $(ALIAS) ! 143: ! 144: input$E: $(ALIAS) ! 145: $(CC) $(CFLAGS) $(OF) input$E $(ALIAS) ! 146: ! 147: wildcard$E: wildcard.c ! 148: $(CC) $(CFLAGS) $(OF) wildcard$E wildcard.c ! 149: ! 150: refont$E: refont.c ! 151: $(CC) $(CFLAGS) $(OF) refont$E refont.c $(EXTRA2) ! 152: ! 153: ############################################################################## ! 154: ! 155: # The file cmd1.c is compiled with the extra flag -DDATE="today's date". ! 156: cmd1$O: cmd1.c vi.h config.h ! 157: $(EVAL) $(CC) $(CFLAGS) $(RF) $(DATE) cmd1.c ! 158: ! 159: # "It all depends..." ! 160: $(OBJS): vi.h curses.h config.h ! 161: ! 162: # OS9 must create a custom date.c file, and compile it. ! 163: date$O: $(OBJS) ! 164: @echo '/* compilation date of elvis */' >-date.c ! 165: @echo -r 'char date[] = "' >+date.c ! 166: @echo -r 'echo -r ' >-/dd/tmp/date.c ! 167: @date >+/dd/tmp/date.c ! 168: @shell /dd/tmp/date.c >+date.c ! 169: @echo '";' >+date.c ! 170: @del /dd/tmp/date.c ! 171: $(CC) $(CFLAGS) $(RF) date.c ! 172: ! 173: ############################################################################## ! 174: install: $(INST) ! 175: @echo Installation complete. ! 176: ! 177: inst.unix: $(DUMMY) ! 178: su root chown bin $(DESTDIR)elvis ! 179: su root chgrp bin $(DESTDIR)elvis ! 180: su root chmod 755 $(DESTDIR)elvis ! 181: su root ln $(DESTDIR)elvis $(DESTDIR)vi ! 182: su root ln $(DESTDIR)elvis $(DESTDIR)ex ! 183: su root ln $(DESTDIR)elvis $(DESTDIR)view ! 184: su root ln $(DESTDIR)elvis $(DESTDIR)input ! 185: ! 186: inst.dos: $(DUMMY) ! 187: copy $(PROGS) $(BIN) ! 188: copy $(BIN)/ex$E $(BIN)/vi$E ! 189: copy $(BIN)/ex$E $(BIN)/view$E ! 190: copy $(BIN)/ex$E $(BIN)/input$E ! 191: ! 192: inst.os9: $(DUMMY) ! 193: copy $(PROGS) -rw=$(BIN) ! 194: chd $(BIN); attr -epenprnpw $(PROGS) ! 195: ! 196: ############################################################################## ! 197: clean: $(DUMMY) ! 198: $(RM) *$O $(DOC)*.1 elvis?.uue elvis?.sh core ! 199: ! 200: clobber: clean ! 201: $(RM) tags refs $(PROGS) ! 202: ! 203: ############################################################################## ! 204: print: refont$E ! 205: $(PR1) $(DOCS) $(PR2) ! 206: ! 207: tags refs: ctags$E ! 208: ./ctags -r *.c *.h ! 209: ! 210: ############################################################################## ! 211: uue: elvis1.uue elvis2.uue elvis3.uue elvis4.uue elvis5.uue \ ! 212: elvis6.uue elvis7.uue elvis8.uue ! 213: ! 214: elvis1.uue: $(SRC1) ! 215: tar cf elvis1.tar $(SRC1) ! 216: compress -b13 elvis1.tar ! 217: cp README elvis1.uue ! 218: uue elvis1.tar.Z - >>elvis1.uue ! 219: $(RM) elvis1.tar* ! 220: ! 221: elvis2.uue: $(SRC2) ! 222: tar cf elvis2.tar $(SRC2) ! 223: compress -b13 elvis2.tar ! 224: uue elvis2.tar.Z ! 225: $(RM) elvis2.tar* ! 226: ! 227: elvis3.uue: $(SRC3) ! 228: tar cf elvis3.tar $(SRC3) ! 229: compress -b13 elvis3.tar ! 230: uuencode elvis3.tar.Z <elvis3.tar.Z >elvis3.uue ! 231: $(RM) elvis3.tar* ! 232: ! 233: elvis4.uue: $(SRC4) ! 234: tar cf elvis4.tar $(SRC4) ! 235: compress -b13 elvis4.tar ! 236: uuencode elvis4.tar.Z <elvis4.tar.Z >elvis4.uue ! 237: $(RM) elvis4.tar* ! 238: ! 239: elvis5.uue: $(SRC5) ! 240: tar cf elvis5.tar $(SRC5) ! 241: compress -b13 elvis5.tar ! 242: uuencode elvis5.tar.Z <elvis5.tar.Z >elvis5.uue ! 243: $(RM) elvis5.tar* ! 244: ! 245: elvis6.uue: $(SRC6) ! 246: tar cf elvis6.tar $(SRC6) ! 247: compress -b13 elvis6.tar ! 248: uuencode elvis6.tar.Z <elvis6.tar.Z >elvis6.uue ! 249: $(RM) elvis6.tar* ! 250: ! 251: elvis7.uue: $(SRC7) ! 252: tar cf elvis7.tar $(SRC7) ! 253: compress -b13 elvis7.tar ! 254: uuencode elvis7.tar.Z <elvis7.tar.Z >elvis7.uue ! 255: $(RM) elvis7.tar* ! 256: ! 257: elvis8.uue: $(SRC8) ! 258: tar cf elvis8.tar $(SRC8) ! 259: compress -b13 elvis8.tar ! 260: uuencode elvis8.tar.Z <elvis8.tar.Z >elvis8.uue ! 261: $(RM) elvis8.tar* ! 262: ! 263: ############################################################################## ! 264: sh: elvis1.sh elvis2.sh elvis3.sh elvis4.sh elvis5.sh elvis6.sh \ ! 265: elvis7.sh elvis8.sh ! 266: ! 267: elvis1.sh: $(SRC1) ! 268: cat >elvis1.sh README ! 269: echo >>elvis1.sh ': ------------------------ CUT HERE --------------------' ! 270: echo >>elvis1.sh 'test -d doc || mkdir doc || exit 2' ! 271: shar >>elvis1.sh -h $(SRC1) ! 272: ! 273: elvis2.sh: $(SRC2) ! 274: echo >elvis2.sh ': ------------------------ CUT HERE --------------------' ! 275: echo >>elvis2.sh 'test -d doc || mkdir doc || exit 2' ! 276: shar >>elvis2.sh -h $(SRC2) ! 277: ! 278: elvis3.sh: $(SRC3) ! 279: shar $(SRC3) >elvis3.sh ! 280: ! 281: elvis4.sh: $(SRC4) ! 282: shar $(SRC4) >elvis4.sh ! 283: ! 284: elvis5.sh: $(SRC5) ! 285: shar $(SRC5) >elvis5.sh ! 286: ! 287: elvis6.sh: $(SRC6) ! 288: shar $(SRC6) >elvis6.sh ! 289: ! 290: elvis7.sh: $(SRC7) ! 291: shar $(SRC7) >elvis7.sh ! 292: ! 293: elvis8.sh: $(SRC8) ! 294: shar $(SRC8) >elvis8.sh ! 295: ! 296: ############################################################################## ! 297: ! 298: # Under XENIX only! This stores all sources on a 3.5" 720k floppy disk. ! 299: floppy: $(SRC1) $(SRC2) $(SRC3) $(SRC4) $(SRC5) $(SRC6) $(SRC7) $(SRC8) ! 300: tar c5v $(SRC1) $(SRC2) $(SRC3) $(SRC4) $(SRC5) $(SRC6) $(SRC7) $(SRC8)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.