Annotation of 43BSD/contrib/pathalias/make.v8, revision 1.1.1.1

1.1       root        1: #!/bin/make -f
                      2: # pathalias -- by steve bellovin, as told to peter honeyman
                      3: 
                      4: # if you can't or don't intend to use dbm files, don't bother with makedb
                      5: DBM = -ldbm
                      6: # or if you roll your own ...
                      7: # DBM = dbm.o
                      8: 
                      9: CC = cc -g -p
                     10: CFLAGS = 
                     11: LDFLAGS =
                     12: YFLAGS = -d
                     13: 
                     14: OBJ = addlink.o addnode.o extern.o local.o main.o mapit.o mapaux.o mem.o parse.o printit.o
                     15: HDRS = def.h config.h
                     16: CSRC = addlink.c addnode.c extern.c local.c main.c mapit.c mapaux.c mem.c printit.c
                     17: SRC = $(CSRC) parse.y
                     18: LSRC = $(CSRC) parse.c
                     19: 
                     20: pathalias: & $(OBJ)
                     21:        $(CC) $(LDFLAGS) $(OBJ) -o pathalias
                     22: 
                     23: all: pathalias makedb
                     24: 
                     25: $(OBJ):        def.h
                     26: 
                     27: # if touch had a proper exit status, this would work...
                     28: def.h: config.h
                     29:        -touch -c def.h
                     30:        get -s sccs/s.def.h
                     31: 
                     32: parse.c: parse.y def.h
                     33:        $(YACC) $(YFLAGS) parse.y
                     34:        mv y.tab.c parse.c
                     35: 
                     36: makedb: makedb.o
                     37:        $(CC) makedb.o $(DBM) -o makedb
                     38: 
                     39: makedb.o: config.h
                     40: 
                     41: clean:
                     42:        rm -f *.o y.tab.? parse.c
                     43: 
                     44: tags: $(SRC) $(HDRS) makedb.c
                     45:        ctags -w $^
                     46: 
                     47: bundle: README CHANGES pathalias.1 Makefile ${HDRS} ${SRC} makedb.c make.v8
                     48:        @bundle $^
                     49: 
                     50: bundle1: README CHANGES pathalias.1 Makefile def.h config.h addlink.c
                     51:        @bundle $^
                     52: 
                     53: bundle2: addnode.c extern.c local.c main.c mapit.c
                     54:        @bundle $^
                     55: 
                     56: bundle3: mapaux.c mem.c printit.c parse.y makedb.c make.v8
                     57:        @bundle $^
                     58: 
                     59: make.v8: makefile
                     60:        @cp makefile make.v8
                     61: 
                     62: lint:  $(LSRC)
                     63:        lint $(CFLAGS) $(LSRC)
                     64:        lint makedb.c
                     65: 
                     66: # v8 make rules for sccs
                     67: %: & sccs/s.%
                     68:        get -s sccs/s.$%
                     69: 
                     70: # the remainder is site specific and can be deleted.  it doesn't have
                     71: # to be this complicated, but a makefile tends to swell after three or
                     72: # four years.
                     73: 
                     74: # hosts running delivermail
                     75: DELIVERMAIL = tilt
                     76: 
                     77: # hosts running sendmail
                     78: SENDMAIL = quirky flakey yoyo panic
                     79: 
                     80: # all neighbors
                     81: NEIGHBORS = princeton ${DELIVERMAIL} ${SENDMAIL}
                     82: 
                     83: # including me
                     84: SITES = down ${NEIGHBORS}
                     85: 
                     86: PATHFILES = paths/[^.]* paths.bell/[^.]* paths.internet/[^.]* path.map/[^.]*
                     87: 
                     88: # from observation and rumor.  avoid like the plague
                     89: DEADHOSTS = -d tucc -d netword -d harvard -d whuxlb -d conejo
                     90: 
                     91: DEADLINKS = -d siemens!uiucdcs -d allegra!rcalabs -d amdcad!chi -d allegra!shasta -d allegra!olympus -d shasta!imagen
                     92: 
                     93: DEADNETS = -d internet
                     94: 
                     95: DEAD = ${DEADHOSTS} ${DEADLINKS} ${DEADNETS}
                     96: 
                     97: # map output (input, really) to lower case.  dead links.
                     98: ARGS = -i
                     99: 
                    100: paths: ${SITES}
                    101: 
                    102: down:  paths/princeton
                    103:        time -v pathalias -v ${ARGS} $(DEAD) $(PATHFILES) 2>ERRORS > down.new
                    104:        sort -o down down.new
                    105: 
                    106: # DELIVERMAIL and SENDMAIL have exactly the same links as down, so turn
                    107: #      down    %s
                    108: #      up      up!%s
                    109: # into
                    110: #      up      %s
                    111: #      down    down!%s
                    112: 
                    113: ${DELIVERMAIL}:        down
                    114:        sed -e 's/^down %s$$/$@ %s/' \
                    115:            -e 's/^$@   $@!%s$$/down    down!%s/'\
                    116:            -e 's/^/0   /' down | sort > $@
                    117:        
                    118: # reorder the output and generate phoney costs for sendmail neighbors
                    119: ${SENDMAIL}: down
                    120:        sed -e 's/^down %s$$/$@ %s/' \
                    121:             -e 's/$@   $@!%s$$/down    down!%s/'\
                    122:             -e 's/     /       0       /' down |sort > $@
                    123: 
                    124: # install everywhere
                    125: shipit: ${NEIGHBORS}
                    126:        for i in ${SENDMAIL} princeton; do cp $$i /n/$$i/usr/local/lib/pathaliases; done
                    127:        for i in ${DELIVERMAIL}; do cp $$i /n/$$i/usr/local/lib/pathaliases; $$i newaliases done
                    128:        touch shipit
                    129: 
                    130: # reorder the output for princeton/sendmail/uubang and generate phoney costs.
                    131: princeton: down
                    132:        pathalias ${ARGS} $(DEAD) -l princeton $(PATHFILES) 2>ERRORS | sort | sed 's/\(.*\)     \(.*\)/\1       0       \2/' > princeton
                    133: 
                    134: # desperation debugging -- examine the costs.
                    135: costs:
                    136:        pathalias -vci ${DEAD} -l down $(PATHFILES) > down.costs 2>ERRORS
                    137: 
                    138: # make one BIG file.  a BIG bad idea.
                    139: cat:
                    140:        cat $(PATHFILES) > CAT
                    141: 
                    142: # make a pathparse database.  -g flag is undocumented.
                    143: edges: down
                    144:        pathalias -i -g edges $(PATHFILES) >/dev/null
                    145:        makedb edges down

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.