| 1 | # |
| 2 | # Makefile 4.1 %G% |
| 3 | # |
| 4 | # C Shell with process control; VM/UNIX VAX Makefile |
| 5 | # Bill Joy UC Berkeley; Jim Kulp IIASA, Austria |
| 6 | # |
| 7 | CFLAGS= -O -DTELL -DVMUNIX -Ddebug -DVFORK |
| 8 | XSTR= /usr/ucb/xstr |
| 9 | ED= -ed |
| 10 | AS= -as |
| 11 | RM= -rm |
| 12 | CXREF= /usr/ucb/cxref |
| 13 | VGRIND= csh /usr/ucb/vgrind |
| 14 | CTAGS= /usr/ucb/ctags |
| 15 | LIBES= -ljobs |
| 16 | SCCS= /usr/local/sccs |
| 17 | |
| 18 | # strings.o must be last in OBJS since it can change when previous files compile |
| 19 | OBJS= sh.o sh.dol.o sh.err.o sh.exec.o sh.exp.o sh.func.o sh.glob.o \ |
| 20 | sh.hist.o sh.lex.o sh.misc.o sh.parse.o sh.print.o sh.sem.o sh.set.o \ |
| 21 | sh.proc.o sh.dir.o sh.time.o alloc.o sh.init.o printf.o \ |
| 22 | strings.o doprnt.o |
| 23 | |
| 24 | # Special massaging of C files for sharing of strings |
| 25 | .c.o: |
| 26 | ${CC} -E ${CFLAGS} $*.c | ${XSTR} -c - |
| 27 | ${CC} -c ${CFLAGS} x.c |
| 28 | mv x.o $*.o |
| 29 | |
| 30 | csh: ${OBJS} sh.local.h |
| 31 | rm -f csh |
| 32 | cc ${OBJS} -o csh ${LIBES} |
| 33 | |
| 34 | csh.prof: ${OBJS} sh.prof.o sh.local.h mcrt0.o |
| 35 | rm -f csh.prof |
| 36 | ld -X mcrt0.o ${OBJS} -o csh.prof ${LIBES} -lc |
| 37 | |
| 38 | sh.o.prof: |
| 39 | cp sh.c sh.prof.c |
| 40 | cc -c ${CFLAGS} -DPROF sh.prof.c |
| 41 | |
| 42 | .DEFAULT: |
| 43 | ${SCCS} get $< |
| 44 | |
| 45 | # need an old doprnt, whose output we can trap |
| 46 | doprnt.o: doprnt.c |
| 47 | cc -E doprnt.c > doprnt.s |
| 48 | as -o doprnt.o doprnt.s |
| 49 | rm -f doprnt.s |
| 50 | |
| 51 | # strings.o and sh.init.o are specially processed to be shared |
| 52 | strings.o: strings |
| 53 | ${XSTR} |
| 54 | ${CC} -c -R xs.c |
| 55 | mv xs.o strings.o |
| 56 | |
| 57 | sh.init.o: |
| 58 | ${CC} -E ${CFLAGS} sh.init.c | ${XSTR} -c - |
| 59 | ${CC} ${CFLAGS} -c -R x.c |
| 60 | mv x.o sh.init.o |
| 61 | |
| 62 | lint: |
| 63 | lint ${CFLAGS} sh*.c |
| 64 | |
| 65 | print: |
| 66 | @pr READ_ME |
| 67 | @pr makefile makefile.* |
| 68 | @(size -l a.out; size *.o) | pr -h SIZES |
| 69 | @${CXREF} sh*.c | pr -h XREF |
| 70 | @ls -l | pr |
| 71 | @pr sh*.h [a-rt-z]*.h sh*.c alloc.c |
| 72 | |
| 73 | vprint: |
| 74 | @pr -l84 READ_ME TODO |
| 75 | @pr -l84 makefile makefile.* |
| 76 | @(size -l a.out; size *.o) | pr -l84 -h SIZES |
| 77 | @${CXREF} sh*.c | pr -l84 -h XREF |
| 78 | @ls -l | pr -l84 |
| 79 | @${CXREF} sh*.c | pr -l84 -h XREF |
| 80 | @pr -l84 sh*.h [a-rt-z]*.h sh*.c alloc.c |
| 81 | |
| 82 | vgrind: |
| 83 | @cp /dev/null index |
| 84 | @for i in *.h; do vgrind -t -h "C Shell" $$i >/crp/bill/csh/$$i.t; done |
| 85 | @for i in *.c; do vgrind -t -h "C Shell" $$i >/crp/bill/csh/$$i.t; done |
| 86 | @vgrind -t -x -h Index index >/crp/bill/csh/index.t |
| 87 | |
| 88 | install: csh sh.local.h |
| 89 | install -s csh ${DESTDIR}/bin/csh |
| 90 | |
| 91 | clean: |
| 92 | ${RM} -f a.out strings x.c xs.c csh |
| 93 | ${RM} -f *.o sh.prof.c |
| 94 | |
| 95 | tags: /tmp |
| 96 | ${CTAGS} sh*.c |