home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
back2roots/padua
/
padua.7z
/
padua
/
uucp
/
pathalias_V10.lzh
/
make.honey
< prev
next >
Wrap
Text File
|
1992-01-23
|
3KB
|
112 lines
#!/bin/make -f
# pathalias -- by steve bellovin, as told to peter honeyman
### configuration section
###
# if you can't or don't intend to use dbm files,
# don't bother with DBM or makedb
DBM = -ldbm
# or if you roll your own ...
# DBM = dbm.o
###
# where is getopt (if not in the c library)?
# GETOPT = -lgetopt
###
# where is the resolver (if not in the c library)?
RESOLV = -lresolv
### end of configuration section
CC = cc -g
CFLAGS =
LDFLAGS =$(DBM) $(GETOPT) $(RESOLV)
YFLAGS = -dD
YYDEBUG=0
OBJ = addlink.o addnode.o domain.o local.o main.o mapit.o mapaux.o mem.o parse.o printit.o
OFILES = addlink.O addnode.O domain.O local.O main.O mapit.O mapaux.O mem.O parse.O printit.O
HDRS = def.h config.h
CSRC = addlink.c addnode.c domain.c local.c main.c mapit.c mapaux.c mem.c printit.c
LSRC = $(CSRC) parse.c
SRC = $(CSRC) parse.y makedb.c
pathalias: & $(OBJ)
$(CC) $(OBJ) $(LDFLAGS) -o pathalias
all: pathalias makedb
$(OBJ): $(HDRS)
parse.c: parse.y $(HDRS)
$(YACC) $(YFLAGS) parse.y
mv y.tab.c parse.c
# echo '#define YYDEBUG' > parse.c
# sed -e '/^# line/d' -e 's/yydebug = 0/yydebug = $(YYDEBUG)/' y.tab.c >> parse.c
makedb: makedb.o
$(CC) makedb.o $(LDFLAGS) -o makedb
makedb.o: config.h
clean:
rm -f *.o y.tab.? parse.c
tags: $(SRC) $(HDRS)
ctags -w $(SRC) $(HDRS)
bundle: README CHANGES pathalias.8 Makefile ${HDRS} ${SRC} make.honey
@bundle README CHANGES pathalias.8 Makefile ${HDRS} ${SRC} make.honey
bundle1: README CHANGES pathalias.8 Makefile make.honey ${HDRS}
@bundle README CHANGES pathalias.8 Makefile make.honey ${HDRS}
bundle2: addlink.c addnode.c domain.c local.c main.c
@bundle addlink.c addnode.c domain.c local.c main.c
bundle3: mapaux.c mapit.c
@bundle mapaux.c mapit.c
bundle4: mem.c printit.c parse.y makedb.c
@bundle mem.c printit.c parse.y makedb.c
ftp:
@make -s bundle | compress > /usr/ftp/usr/honey/pathalias/pathalias.Z
make.honey: makefile
@cp makefile make.honey
lint: $(LSRC)
lint -hbu $(CFLAGS) $(LSRC)
lint makedb.c
# the remainder is site specific.
LOCAL = paths/citi # paths/internet
FILES = uumap/* $(LOCAL)
AVOID =
# map output (input, really) to lower case; verbose; terminal domains
ARGS = -iDI
PARGS=$(ARGS) $(AVOID) $(FILES)
# desperation debugging -- examine the costs.
costs:
pathalias -icvvD ${PARGS} 2>error.costs | awk '{printf("%s\t%s\t%s\n", $$2, $$1, $$3)}' | sort -o pa.costs
# make one BIG file. a BIG bad idea.
cat:
for i in $(FILES); do echo "file {$$i}"; cat $$i; echo 'private {}'; done > CAT
# make a pathparse database. -g is undocumented.
edges:
pathalias -g edges $(PARGS) 2>ERRORS > edges.hosts
# makedb edges pa
# let dns do its job
POSTPROC = egrep -v '(\.(com|edu|mil|gov|net|org|arpa|int|[a-z][a-z]) )' | sort
# round up the usual suspects
citi doom: $(LOCAL)
time pathalias -l $@ $(PARGS) | $(POSTPROC) > $@