96 lines
2.8 KiB
Makefile
96 lines
2.8 KiB
Makefile
|
|
## .SECONDARY means that the files will be deleted if their generation
|
|
## is interrupted, but will not be automatically deleted when make
|
|
## exits normally.
|
|
|
|
.SECONDARY :
|
|
# %.ci-raw %.def
|
|
|
|
|
|
# This lets us keep the .def files in their own directory, but treat
|
|
# them as though they're in the current (per run) directory.
|
|
#VPATH=../defs/
|
|
|
|
VPATH=../..:../../berkeleyDB
|
|
|
|
GRAPHS=BULK_LOAD
|
|
# BULK_LOAD_RAW LLADD_HASH_TPS TPS
|
|
BINARIES=linearHashNTA logicalHash bdbHash
|
|
|
|
all-binaries = $(patsubst %, %.exe, ${BINARIES})
|
|
all-r-files = $(patsubst %, %.R, $(GRAPHS))
|
|
all-defs = $(patsubst %, %.def, $(GRAPHS))
|
|
|
|
MAKEFLAGS=--no-print-directory
|
|
RFLAGS=--no-save --no-load
|
|
|
|
all: all-graphs all-results ${all-binaries}
|
|
|
|
all-graphs : all-png-graphs all-pdf-graphs all-ps-graphs
|
|
|
|
all-results : $(patsubst %, %.results, $(GRAPHS))
|
|
all-png-graphs : $(patsubst %, %.png, $(GRAPHS))
|
|
all-pdf-graphs : $(patsubst %, %.pdf, $(GRAPHS))
|
|
all-ps-graphs : $(patsubst %, %.ps, $(GRAPHS))
|
|
|
|
# XXX the "|| true" is a hack; grep -v returns failure if there
|
|
# are no matching lines.... Really, we should check to see if it returned 2.
|
|
%.results : %.def ${all-binaries}
|
|
$(MAKE) $(MAKEFLAGS) `grep Data-Series\: $< | \
|
|
perl -ne 's/[\"\s]+/\t/g;print;print"\n"' | \
|
|
cut -f2 | \
|
|
perl -ne 'chomp;print"$*-";print;print".dat\n"'`
|
|
touch $*.results
|
|
|
|
# \
|
|
# | grep -v 'is up to date.' || true
|
|
|
|
%.png: %.results %.def
|
|
../plot --format png $* | R $(RFLAGS) > /dev/null
|
|
%.pdf: %.results %.def
|
|
../plot --format pdf $* | R $(RFLAGS) > /dev/null
|
|
%.ps: %.results %.def
|
|
../plot --format ps $* | R $(RFLAGS) > /dev/null
|
|
|
|
%.def : defs/%.def
|
|
ln -s $< .
|
|
|
|
|
|
%.ci-raw : ${all-binaries} ${all-defs}
|
|
# echo "Foo" > $*.ci-raw
|
|
../generateGraphData $*
|
|
|
|
%.dat: %.ci-raw ${all-defs}
|
|
../ci-parser $*.def < $*.ci-raw > $*.dat
|
|
|
|
%.R : %.def
|
|
plotting.pl $* > $*.R
|
|
|
|
clean :
|
|
rm -f *.def *.R *.png *.pdf *.ps
|
|
veryclean : clean
|
|
rm -f *.exe *.dat *.ci-raw *.results binaries
|
|
|
|
binaries:
|
|
touch binaries
|
|
# "binaries" is an empty file that's newer than the executables in
|
|
# this directory. It is used as an empty target, and records the time
|
|
# at which this run was initiated. (It is 'built' from the
|
|
# executables by copying them into the current directory, and touching
|
|
# 'binaries'. This prevents new binaries from inadvertantly being
|
|
# copied into archived benchmark directories.
|
|
|
|
# Note that this makefile recursively calls itself... there must be a
|
|
# better way. The problem is that we need to prevent make from
|
|
# realizing that we build the .exe from the original binary.
|
|
# Otherwise, it would copy over the archived binary when we recompile...
|
|
%.exe : binaries
|
|
$(MAKE) $(MAKEFLAGS) $*.exe.tmp
|
|
mv $*.exe.tmp $*.exe
|
|
|
|
%.exe.tmp : %
|
|
cp $< $*.exe.tmp
|
|
|
|
benchmarks : binaries $(patsubst %.exe, %.dat, $(wildcard *.exe))
|
|
touch benchmarks
|
|
|