OPENCL_STD := -cl-std=CL1.2 OPENCL_PRE := __OPENCL_C_VERSION__=120 IOC_IR_OPTS_OPT := $(OPENCL_STD) -cl-single-precision-constant -cl-denorms-are-zero \ -cl-mad-enable -cl-no-signed-zeros -cl-fast-relaxed-math -cl-kernel-arg-info TARGETS := hs_kernels.src.xxd hs_kernels.src.len.xxd hs_kernels.bin.xxd hs_kernels.bin.len.xxd hs_target.bin all: $(TARGETS) clean: rm $(TARGETS) hs_kernels.pre.cl hs_kernels.bin hs_target.bin: hs_kernels.bin gcc -D HS_DUMP -x c hs_target.h -o hs_dump hs_dump hs_kernels.bin.len.xxd: hs_kernels.bin $(shell bytes=$$(wc -c < $<); printf "%.8x" $$bytes | xxd -r -p | xxd -i 1> $@) hs_kernels.bin.xxd: hs_kernels.bin $(shell xxd -i < $< 1> $@) hs_kernels.bin: hs_kernels.pre.cl ioc64 -cmd=build -bo="$(IOC_IR_OPTS_OPT)" -device=gpu -input=$< -ir=$@ hs_kernels.src.len.xxd: hs_kernels.pre.cl $(shell bytes=$$(wc -c < $<); printf "%.8x" $$bytes | xxd -r -p | xxd -i 1> $@) hs_kernels.src.xxd: hs_kernels.pre.cl $(shell xxd -i < $< 1> $@) hs_kernels.pre.cl: hs_kernels.cl gcc -x c -E -P -I . -D $(OPENCL_PRE) $< -o $@