DEBUGFLAG= ARCH=$(shell uname -m) SOURCES=Makefile memdep.c main.c HEADER.html CYCLES=cycles:u MHZ=0.000001 TIME=perf stat --log-fd 3 -x, -e $(CYCLES) 3>&1 #or call with "make CYCLES=apple_firestorm_pmu/cycles/" #or call with "make TIME="/bin/time -f %U 2>&1" MHZ=3228" ericp: memdep-$(ARCH) @$(TIME) ./memdep-$(ARCH) 0 8 16 24 32 40 48 56 | awk -F, '{printf("%5.2f ",$$1*'$(MHZ)'/1000)}' @$(TIME) ./memdep-$(ARCH) 0 9 18 27 36 45 54 63 | awk -F, '{printf("%5.2f ",$$1*'$(MHZ)'/1000)}' @$(TIME) ./memdep-$(ARCH) 0 513 994 11 524 989 22 535 | awk -F, '{printf("%5.2f ",$$1*'$(MHZ)'/1000)}' @make -s bench bench: memdep-$(ARCH) @$(TIME) ./memdep-$(ARCH) 0 1 2 3 4 5 6 7 | awk -F, '{printf("%5.2f ",$$1*'$(MHZ)'/1000)}' @$(TIME) ./memdep-$(ARCH) 0 1 1 2 2 3 3 4 | awk -F, '{printf("%5.2f ",$$1*'$(MHZ)'/1000)}' @$(TIME) ./memdep-$(ARCH) 0 1 1 1 1 1 1 1 | awk -F, '{printf("%5.2f ",$$1*'$(MHZ)'/1000)}' @$(TIME) ./memdep-$(ARCH) 0 1 1 1 2 1 1 1 | awk -F, '{printf("%5.2f ",$$1*'$(MHZ)'/1000)}' @$(TIME) ./memdep-$(ARCH) 0 0 2 2 4 4 6 6 | awk -F, '{printf("%5.2f ",$$1*'$(MHZ)'/1000)}' @$(TIME) ./memdep-$(ARCH) 0 1 1 0 2 3 3 2 | awk -F, '{printf("%5.2f ",$$1*'$(MHZ)'/1000)}' @$(TIME) ./memdep-$(ARCH) 0 1 2 3 1 0 3 2 | awk -F, '{printf("%5.2f ",$$1*'$(MHZ)'/1000)}' @$(TIME) ./memdep-$(ARCH) 0 1 1 2 2 0 3 3 | awk -F, '{printf("%5.2f ",$$1*'$(MHZ)'/1000)}' @$(TIME) ./memdep-$(ARCH) 0 1 1 2 3 3 2 0 | awk -F, '{printf("%5.2f ",$$1*'$(MHZ)'/1000)}' @$(TIME) ./memdep-$(ARCH) 0 0 0 0 0 0 0 0 | awk -F, '{printf("%5.2f ",$$1*'$(MHZ)'/1000)}' @echo memdep-$(ARCH): memdep-$(ARCH).o main-$(ARCH).o $(CC) -Wall $(DEBUGFLAG) -static -o $@ memdep-$(ARCH).o main-$(ARCH).o memdep-$(ARCH).o: memdep.c $(CC) -Wall -O $(DEBUGFLAG) -c $< -o $@ main-$(ARCH).o: main.c $(CC) -Wall -O $(DEBUGFLAG) -c $< -o $@ dist: rm -rf memdep mkdir memdep cp -p $(SOURCES) memdep-* main-*.o memdep zip -9r memdep.zip memdep -rm -rf memdep clean: rm *.o memdep-* main-*