Makefile (1632B)
1 CC = gcc 2 CFLAGS = -g -Wall -Wextra -Wpedantic 3 LIBS = -lpapi -lm 4 5 .PHONY: clean 6 7 all: main.c 8 # fortran 9 $(CC) -O2 $(CFLAGS) -DKERNEL=sgemv_ -o fort_O0 $< $(LIBS) fort/sgemv/sgemv_O0.o 10 $(CC) -O2 $(CFLAGS) -DKERNEL=sgemv_ -o fort_O1 $< $(LIBS) fort/sgemv/sgemv_O1.o 11 $(CC) -O2 $(CFLAGS) -DKERNEL=sgemv_ -o fort_O2 $< $(LIBS) fort/sgemv/sgemv_O2.o 12 $(CC) -O2 $(CFLAGS) -DKERNEL=sgemv_ -o fort_O3 $< $(LIBS) fort/sgemv/sgemv_O3.o 13 14 # c 15 $(CC) -O2 $(CFLAGS) -DKERNEL=sgemv_noalias -o c_noalias_O0 $< $(LIBS) c/sgemv/sgemv_O0.o 16 $(CC) -O2 $(CFLAGS) -DKERNEL=sgemv_alias -o c_alias_O0 $< $(LIBS) c/sgemv/sgemv_O0.o 17 $(CC) -O2 $(CFLAGS) -DKERNEL=sgemv_temporary -o c_temporary_O0 $< $(LIBS) c/sgemv/sgemv_O0.o 18 19 $(CC) -O2 $(CFLAGS) -DKERNEL=sgemv_noalias -o c_noalias_O1 $< $(LIBS) c/sgemv/sgemv_O1.o 20 $(CC) -O2 $(CFLAGS) -DKERNEL=sgemv_alias -o c_alias_O1 $< $(LIBS) c/sgemv/sgemv_O1.o 21 $(CC) -O2 $(CFLAGS) -DKERNEL=sgemv_temporary -o c_temporary_O1 $< $(LIBS) c/sgemv/sgemv_O1.o 22 23 $(CC) -O2 $(CFLAGS) -DKERNEL=sgemv_noalias -o c_noalias_O2 $< $(LIBS) c/sgemv/sgemv_O2.o 24 $(CC) -O2 $(CFLAGS) -DKERNEL=sgemv_alias -o c_alias_O2 $< $(LIBS) c/sgemv/sgemv_O2.o 25 $(CC) -O2 $(CFLAGS) -DKERNEL=sgemv_temporary -o c_temporary_O2 $< $(LIBS) c/sgemv/sgemv_O2.o 26 27 $(CC) -O2 $(CFLAGS) -DKERNEL=sgemv_noalias -o c_noalias_O3 $< $(LIBS) c/sgemv/sgemv_O3.o 28 $(CC) -O2 $(CFLAGS) -DKERNEL=sgemv_alias -o c_alias_O3 $< $(LIBS) c/sgemv/sgemv_O3.o 29 $(CC) -O2 $(CFLAGS) -DKERNEL=sgemv_temporary -o c_temporary_O3 $< $(LIBS) c/sgemv/sgemv_O3.o 30 31 main: main.c 32 $(CC) -O2 $(CFLAGS) -DKERNEL=$(kernel) -o $@ $< $(LIBS) $(kernel_lib) 33 34 clean: 35 rm -f main fort_* c_*