CFABUILD = ~/cfa2/build-perf LIBCFA = $(CFABUILD)/libcfa/*/src/.libs/libcfa.so CFA = $(CFABUILD)/driver/cfa PERFFLAGS_CFA = -nodebug -O2 PERFFLAGS_CXX = -DNDEBUG -O2 PERFPROGS = \ perfexp-cfa-hl-pta-share \ perfexp-cfa-hl-peq-share \ perfexp-cfa-ll-pta-share \ perfexp-cfa-ll-peq-share \ perfexp-cfa-hl-pta-noshare \ perfexp-cfa-hl-peq-noshare \ perfexp-cfa-ll-pta-noshare \ perfexp-cfa-ll-peq-noshare \ perfexp-stl-pta \ perfexp-stl-peq \ perfexp-buhr94-pta \ perfexp-buhr94-peq all : $(PERFPROGS) # upper-case conversion function define uc $(shell echo $(1) | tr '[:lower:]' '[:upper:]') endef perfexp-cfa-%: APILEVEL=$(call uc,$(word 3,$(subst -, ,$@))) perfexp-cfa-%: OPERATION=$(call uc,$(word 4,$(subst -, ,$@))) perfexp-cfa-%: SHARING=$(call uc,$(word 5,$(subst -, ,$@))) perfexp-cfa-%: prog.cfa $(LIBCFA) $(CFA) $(PERFFLAGS_CFA) $< -o $@ -DIMPL_CFA_$(APILEVEL)_$(SHARING) -DOP_$(OPERATION) perfexp-stl-%: OPERATION=$(call uc,$(word 3,$(subst -, ,$@))) perfexp-stl-%: prog.cfa $(CXX) -xc++ $(PERFFLAGS_CXX) $< -o $@ -DIMPL_STL -DOP_$(OPERATION) perfexp-buhr94-%.o: OPERATION=$(call uc,$(word 3,$(subst -, ,$(basename $@)))) perfexp-buhr94-%.o: prog.cfa $(CXX) -xc++ -c $(PERFFLAGS_CXX) $< -o $@ -DIMPL_BUHR94 -DOP_$(OPERATION) buhr94-string.o: $(CXX) -xc++ -c $(PERFFLAGS_CXX) ~/usys1/sm/string/StringSharing/src/string.cc -o $@ buhr94-VbyteSM.o: $(CXX) -xc++ -c $(PERFFLAGS_CXX) ~/usys1/sm/string/StringSharing/src/VbyteSM.cc -o $@ perfexp-buhr94-% : perfexp-buhr94-%.o buhr94-string.o buhr94-VbyteSM.o $(CXX) $(PERFFLAGS_CXX) $^ -o $@ clean: rm -f *.o perfexp* MEASURE = $(PERFPROGS) CORPORI = corpus-100-*-1.txt measurement: $(MEASURE) tofile=measurement-`date '+%F--%H-%M-%S'`.csv ; \ echo $$tofile ; \ for prog in $(MEASURE) ; do \ for corpus in $(CORPORI) ; do \ corpusbody=`cat $$corpus` ; \ printed=`./$$prog 100 10 $$corpusbody` ; \ echo $$prog,$$corpus,$$printed >> $$tofile ; \ done ; \ done ; \ cat $$tofile