# # Compiler settings # CC = gcc CFLAGS = -Wall -Wextra -O2 -funroll-loops LDLIBS = -lm # # Compiler options for packages # SSE = -msse2 -mfpmath=sse AVX = -mavx -mfpmath=sse OPENCL = -lOpenCL # # SSE test programs # PROGRAMS_SSE = \ sse_axpy \ sse_addmul \ sse_if \ sse_exp # # AVX test programs # PROGRAMS_AVX = \ avx_axpy \ avx_exp # # OpenCL test # PROGRAMS_OPENCL = \ cl_info \ cl_axpy \ cl_exp # # Build targets # all: $(PROGRAMS_SSE) $(PROGRAMS_AVX) $(PROGRAMS_OPENCL) sse: $(PROGRAMS_SSE) avx: $(PROGRAMS_AVX) opencl: $(PROGRAMS_OPENCL) clean: rm -f $(PROGRAMS_SSE) $(PROGRAMS_AVX) $(PROGRAMS_OPENCL) # # Build rule for SSE programs # $(PROGRAMS_SSE): %: %.c $(CC) $(CFLAGS) $< stopwatch.o $(SSE) $(LDLIBS) -o $@ $(PROGRAMS_SSE): stopwatch.h stopwatch.o # # Build rule for AVX programs # $(PROGRAMS_AVX): %: %.c $(CC) $(CFLAGS) $< stopwatch.o $(AVX) $(LDLIBS) -o $@ $(PROGRAMS_AVX): stopwatch.h stopwatch.o # # Build rule for OpenCL programs # $(PROGRAMS_OPENCL): %: %.c $(CC) $(CFLAGS) $< stopwatch.o $(OPENCL) $(LDLIBS) -o $@ $(PROGRAMS_AVX): stopwatch.h stopwatch.o