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-*

