1# A makefile based framework for testing performance commits in retrospect, 2# based on work done by pippin@gimp.org done for GEGL, original code placed in the public domain. 3 4SELF = Makefile-retrospect 5 6MAKE_FLAGS = -j3 -k 7CC = "ccache gcc" # if you do not have ccache replace with just gcc 8 9PROJECT_PATH = ../../ 10 11# mute makes echoing of commands 12.SILENT: 13 14# replace sequential with random to build a random subset 15all: reset sequential 16#all: reset random 17 18retry: 19 rm -rf reports/`cat jobs | tail -n1`* 20 make -f $(SELF) 21 22prepare: 23 # uncomment these to make sure cpu is in high performance mode 24 #sudo sh -c 'echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor || true' 25 #sudo sh -c 'echo performance > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor || true' 26 27reset: 28 rm -rf jobs jobs 29 # remove checkout dir to have a full reset on each invokation 30 rm -rf checkout 31 # create clone 32 git clone -s $(PROJECT_PATH) checkout 33 mkdir reports > /dev/null 2>&1 || true 34 make -f $(SELF) jobs 35 make -f $(SELF) prepare 36 37jobs: joblist 38 ./makejobs.rb joblist > jobs 39 40sequential: 41 for a in `cat jobs`;do make -f $(SELF) reports/$$a;done 42 43random: 44 for a in `cat jobs|sort`;do make -f $(SELF) reports/$$a;done 45 46reports/%: 47 # check out revision 48 (cd checkout; git checkout `echo $@|sed s:reports/::`) 49 # write header for report 50 git log -1 `echo $@|sed s:reports/::` > $@ || true 51 # clean previous build 52 rm -rf install; mkdir install 53 # build revision 54 (cd checkout; if [ ! -f Makefile ]; then CC=$(CC) ./autogen.sh --disable-introspection --prefix=`pwd`/../install; fi ; \ 55 make $(MAKE_FLAGS) ; make -k install ) > $@.log 2>&1 || true 56 # testing 57 make -f Makefile-tests clean;\ 58 make -f Makefile-tests; sync;\ 59 make -f Makefile-tests check >> $@ || true 60 # update report.pdf / report.png 61 ./create-report.rb 62 echo 63 64clean: 65 rm -rf reports jobs report.pdf report.png checkout install 66 make -f Makefile-tests clean 67