1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- # Names of target, sources and object files
- BIN = benchmark
- SRC = timer.c utilities.c benchmark.c opencl_fft.c
- # Dependencies
- DEP_OCLFFT = .deps/oclfft/src/liboclfft.so
- DEP_CLFFT = .deps/clFFT/src/library/libclFFT.so
- DEPS = $(DEP_OCLFFT) $(DEP_CLFFT)
- # Debug mode
- CC_MARK := @
- ifeq ($(V), 1)
- override CC_MARK =
- endif
- # Libs titiles
- LIBS_MSG =
- # Common flags definition
- CPPFLAGS =
- CFLAGS ?= -O3 -Wall -Werror -Wno-unused-variable -fmessage-length=0
- CFLAGS += -std=c99
- LDFLAGS += -lm -lOpenCL
- ifneq ($(CUDA_PATH),)
- override CPPFLAGS += -DHAVE_CUDA_FFT
- override CFLAGS += -I$(CUDA_PATH)/include
- override LDFLAGS += -L$(CUDA_PATH)/lib$(ARCH) -lcufft -lcudart -Wl,-rpath=$(CUDA_PATH)/lib$(ARCH)
- override LIBS_MSG += " +cuda"
- override SRC += $(wildcard cuda*.c)
- endif
- # AMD FFT library
- override DEPS += $(DEP_CLFFT)
- override CFLAGS += -I.deps/clFFT/src/include -DHAVE_AMD_FFT
- override LDFLAGS += -L.deps/clFFT/src/library -lclFFT -Wl,-rpath=.deps/clFFT/src/library
- override LIBS_MSG += " +amd"
- # Apple FFT library
- override CPPFLAGS += -DHAVE_APPLE_FFT
- override CFLAGS += -I.deps/
- override LDFLAGS += -L.deps/oclfft/src -loclfft -Wl,-rpath=.deps/oclfft/src
- override LIBS_MSG += " +apple"
- # FFTW library
- FFTW_EXISTS = $(shell pkg-config --exists fftw3 && echo "1" || echo "0")
- ifeq ($(FFTW_EXISTS),1)
- override CPPFLAGS += -DHAVE_FFTW
- override CFLAGS += $(shell pkg-config --cflags fftw3)
- override LDFLAGS += $(shell pkg-config --libs fftw3)
- override LIBS_MSG += " +fftw"
- override SRC += $(wildcard cpu*.c)
- endif
- ALL_CPPFLAGS :=
- ALL_CFLAGS :=
- ALL_LDFLAGS :=
- override ALL_CFLAGS += $(CFLAGS)
- override ALL_LDFLAGS += $(LDFLAGS)
- override ALL_CPPFLAGS += $(CPPFLAGS)
- OBJS = $(subst .c,.o,$(SRC))
- .PHONY: all clean distclean run
- all: $(BIN)
- %.o: %.c Makefile $(DEPS)
- @echo [CC] $@
- $(CC_MARK)$(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) -c $< -o $@
- $(BIN): $(OBJS) $(DEPS)
- @echo [LD] $@
- $(CC_MARK)$(CC) $(OBJS) -o $@ $(ALL_LDFLAGS)
- @echo " built with:$(LIBS_MSG)"
- run: $(BIN)
- @echo "Run benchmark"
- @./benchmark
- clean:
- rm -f $(BIN) $(OBJS)
- distclean:
- rm -rf .deps
- $(DEP_OCLFFT):
- @mkdir -p .deps
- @git clone http://ufo.kit.edu/git/oclfft .deps/oclfft
- @cd .deps/oclfft; cmake .; make; ln -s src/clFFT.h clFFT.h
- $(DEP_CLFFT):
- @mkdir -p .deps
- @git clone https://github.com/clMathLibraries/clFFT .deps/clFFT
- @cd .deps/clFFT/src; AMDAPPSDKROOT="" cmake . -DOPENCL_ROOT=/usr; AMDAPPSDKROOT="" make
|