srcdir = . CFLAGS = -g C_FLAGS = $(CFLAGS) -I$(srcdir) -I.. -I$(srcdir)/.. -DDBZ_FINISH='_IO_flush_all()' CC = `if [ -f ../../../gcc/gcc ] ; \ then echo ../../../gcc/gcc -B../../../gcc/ ; \ else echo gcc ; fi` LIBIO = ../libio.a ../../libiberty/libiberty.a LIBS = $(LIBIO) # LIBS = ../libcnews.a DBM = RFC = -DHAVERFCIZE CASE = case.o DEBUG = -DDBZDEBUG LINTFLAGS = -h $(DEBUG) $(RFC) -I$(srcdir) LDFLAGS = # =()@>()= NEWSBIN = /usr/lib/newsbin # workaround for System V make bug SHELL = /bin/sh # database sizes for performance tests, regression, and regression prime-find TSIZE=12007 RSIZE=4019 RPSIZE=2679 #### host and target dependent Makefile fragments come in here. ## # history files for regression and performance tests RHIST=hist3.3 R2HIST=hist10 THIST=hist13 #all: dbz all: install: install-info: info: check: r $(MAKE) rclean bininstall: dbz cp dbz $(NEWSBIN) cmp: dbz cmp dbz $(NEWSBIN)/dbz newsinstall: : nothing u: dbz.o ar ruv ../libcnews.a dbz.o cmp dbz.h ../h/dbz.h t: tdbz fake lint: lint $(LINTFLAGS) dbzmain.c dbz.c .c.o: $(CC) $(C_FLAGS) -c $< rdbz.o: rdbz.c $(CC) $(C_FLAGS) $(DEBUG) -DDEFSIZE=$(RSIZE) -c rdbz.c rdbzmain.o: rdbzmain.c $(CC) $(C_FLAGS) $(RFC) -c rdbzmain.c tdbz.o: $(srcdir)/dbz.c cp $(srcdir)/dbz.c tdbz.c $(CC) $(C_FLAGS) -DDEFSIZE=$(TSIZE) -c tdbz.c rm tdbz.c dbz: dbzmain.o $(CASE) $(CC) $(LDFLAGS) dbzmain.o $(CASE) $(PRE) $(DBM) $(LIBS) $(POST) -o $@ tdbz: dbzmain.o tdbz.o $(CASE) $(CC) $(LDFLAGS) dbzmain.o tdbz.o $(CASE) $(PRE) $(LIBS) $(POST) -o $@ rdbz: rdbzmain.o rdbz.o $(CASE) $(CC) $(LDFLAGS) rdbzmain.o rdbz.o $(CASE) $(PRE) $(LIBS) $(POST) -o $@ fake: fake.o random.o $(CC) $(LDFLAGS) fake.o random.o $(PRE) $(LIBS) $(POST) -o $@ byteflip: byteflip.o $(CC) $(LDFLAGS) byteflip.o $(PRE) $(LIBS) $(POST) -o $@ hist10: fake ./fake -t -e 75 10000 >$@ hist3.3: fake ./fake -t -e 75 3300 >$@ hist13: fake ./fake -t -e 75 13000 >$@ r: $(srcdir)/getmap $(srcdir)/revbytes $(srcdir)/altbytes stamp-r8 : success! stamp-r0: : 'WARNING: creates about 2MB of debris; do "make rclean" afterward' rm -f dbase dbase[23] dbase.* dbase[23].* test ! -d xx || rmdir xx @touch stamp-r0 stamp-r1: $(RHIST) $(R2HIST) stamp-r0 : crude check of synthetic history file ( sed 25q $(RHIST) ; tail -25 $(RHIST) ) >histjunk cmp histjunk $(srcdir)/firstlast25 rm histjunk @touch stamp-r1 r2a: rdbz stamp-r1 : basic tests, exercising as many options as possible cp $(RHIST) dbase mkdir xx chmod -w xx ./rdbz -E 1000 -0 -M -i -S -u -U -C xx dbase rmdir xx sed '/> 0/d' $(RHIST) >dbase.used test "`cat dbase.used | wc -l`" -eq "`sed -n '2s/ .*//p' dbase.dir`" ; stamp-r2: r2a cp $(RHIST) dbase2 ./rdbz -E 1000 -0 -p $(RPSIZE) -t ' ' dbase2 cmp $(RHIST) dbase cmp dbase dbase2 cmp dbase.dir dbase2.dir cmp dbase.pag dbase2.pag ./rdbz -E 1000 -0 -c dbase ./rdbz -E 1000 -0 -c -i -q -M -U dbase @touch stamp-r2 stamp-r3: stamp-r2 : build a database and then add to it sed 1000q $(RHIST) >dbase2 sed 1,1000d $(RHIST) >dbase2.add ./rdbz -E 1000 -0 dbase2 ./rdbz -E 1000 -0 -a dbase2 dbase2.add cmp dbase dbase2 cmp dbase.dir dbase2.dir cmp dbase.pag dbase2.pag @touch stamp-r3 stamp-r4: stamp-r3 : build based on existing one, test extraction and readonly files ./rdbz -E 1000 -0 -f dbase dbase2 test "`cat dbase.used | wc -l`" -eq "`awk 'NR==2{print $$1}' dbase2.dir`" ; test "`cat dbase.used | wc -l`" -eq "`awk 'NR==2{print $$2}' dbase2.dir`" ; chmod -w dbase2.dir dbase2.pag ./rdbz -E 1000 -x dbase2 dbase >dbase.temp cmp dbase.used dbase.temp @touch stamp-r4 stamp-r5: stamp-r4 : try some small case perversions sed 's/\(@[^ ]*\)A/\1a/' dbase >dbase.ick ./rdbz -E 1000 -x dbase2 dbase.ick >dbase.temp cmp dbase.used dbase.temp sed -n 's/A\([^ ]*@\)/a\1/p' dbase >dbase.ick ./rdbz -x dbase2 dbase.ick >dbase.temp test ! -s dbase.temp ; rm -f dbase2.dir dbase2.pag @touch stamp-r5 stamp-r6: stamp-r5 : try it without tags, case-insensitive, with case perversions ./rdbz -E 1000 -0 -p '0 b 1' dbase2 tr 'ABCDEFGHIJKLMnopqrstuvwxyz' 'abcdefghijklmNOPQRSTUVWXYZ' dbase.ick ./rdbz -E 1000 -x dbase2 dbase.ick >dbase.temp cmp dbase.used dbase.temp rm -f dbase.temp dbase.ick @touch stamp-r6 stamp-r7: byteflip stamp-r6 : test various perversions of byte ordering awk -f $(srcdir)/revbytes dbase.dir >dbase2.dir ./byteflip `$(srcdir)/getmap dbase.dir` `$(srcdir)/getmap dbase2.dir` dbase2.pag cp dbase dbase2 ./rdbz -E 1000 -0 -c dbase2 awk -f $(srcdir)/altbytes dbase.dir >dbase2.dir dd conv=swab dbase2.pag ./rdbz -E 1000 -0 -c dbase2 cp dbase2 dbase3 ./rdbz -E 1000 -0 -f dbase2 dbase3 ./rdbz -E 1000 -0 -c dbase3 test " `$(srcdir)/getmap dbase2.dir`" = " `$(srcdir)/getmap dbase3.dir`" ; @touch stamp-r7 stamp-r8: stamp-r7 : test massive overflow, throw in case sensitivity and tag mask cp $(R2HIST) dbase ./rdbz -E 1000 -0 -p '0 0 7ffc0000' dbase ./rdbz -E 1000 -0 -cq dbase sed 100q dbase | egrep '[aA].* ' | tr aA Aa >dbase.ick ./rdbz -x dbase dbase.ick >dbase.temp test ! -s dbase.temp ; @touch stamp-r8 rclean: rm -f dbase dbase[23] dbase.* dbase[23].* fake fake.o random.o rm -f rdbz rdbz.o rdbzmain.o $(RHIST) $(R2HIST) byteflip byteflip.o rm -f histjunk core stamp-r? *~ test ! -d xx || rmdir xx mostlyclean: rclean rm -f *.o [a-z]dbz [a-z][a-z]dbz junk* PostScript.out rm -f hist* dbase* *.bak mon.out gmon.out core dbm.h clean: mostlyclean rm -f dbz distclean: clean rm -rf Makefile config.status rdbz.c rdbzmain.c maintainer-clean realclean: distclean