OCLH_PATH ?= ~/opt/oclh IPR_PATH ?= ~/opt/iterative_point_recovery OPENCL_INCLUDES := -I /usr/local/cuda/include \ -I /opt/intel/system_studio_2020/opencl-sdk/include/CL TARGETDIR := build RM := rm -rf CC := gcc CFLAGS := -xc -std=c11 -pedantic -Wall -Wextra -Wconversion INCLUDES := -I $(IPR_PATH)/include_hd LIBRARIES := -L $(IPR_PATH)/lib LIBS := -lIterPntRcv OUTPUT_C11:= $(TARGETDIR)/ptrc_example-c11 DEFS := -D_PTRC_TS_VERBOSE_MODE MODEFLAGS := -O3 GPGPU_DEV_IDX ?= 0 OCL_DEV_NAME := $(shell $(OCLH_PATH)/bin/oclh_getDevNameByIndex $(GPGPU_DEV_IDX)) OCL_CR := $(OCLH_PATH)/bin/oclh_cr OCL_LR := $(OCLH_PATH)/bin/oclh_lr OCL_CFLAGS := -cl-std=CL1.2 -Werror OCL_INCLUDES := -I $(IPR_PATH)/include_hd \ -I $(OCLH_PATH)/include/include_d \ -I $(OCLH_PATH)/include/include_hd OCL_OBJ := $(TARGETDIR)/point_recovery_kernel-$(OCL_DEV_NAME).clo OCL_OUTPUT := point_recovery_kernel-$(OCL_DEV_NAME).clexe OCL_RT_OUTPUT := $(TARGETDIR)/ptrc_example-ocl OCL_RT_INCLUDES := -I $(OCLH_PATH)/include/include_h \ -I $(OCLH_PATH)/include/include_hd \ $(OPENCL_INCLUDES) OCL_MODEFLAGS := OCL_RT_LIBRARIES:= -L $(OCLH_PATH)/lib -L $(IPR_PATH)/lib OCL_RT_LIBS := -loclh -lOpenCL c11_debug: MODEFLAGS := -O0 -g c11_debug: c11 opencl_debug: MODEFLAGS := -O0 -g # the next string is acceptable for OpenCL v2.2 and higher only # opencl_debug: OCL_MODEFLAGS := -cl-opt-disable -g opencl_debug: opencl c11: mkdir -p $(TARGETDIR) ; \ $(CC) $(CFLAGS) $(INCLUDES) $(LIBRARIES) $(LIBS) $(DEFS) $(MODEFLAGS) \ -o $(OUTPUT_C11) point_recovery-C11.c opencl: mkdir -p $(TARGETDIR) ; \ $(OCL_CR) --dev-idxs=$(GPGPU_DEV_IDX) $(OCL_CFLAGS) $(OCL_INCLUDES) \ $(DEFS) $(OCL_MODEFLAGS) --verbatim-output-name -o "$(OCL_OBJ)" \ point_recovery_kernel.clc $(OCL_LR) --dev-idxs=$(GPGPU_DEV_IDX) $(OCL_MODEFLAGS) \ --verbatim-output-name -o $(TARGETDIR)/$(OCL_OUTPUT) \ $(OCL_OBJ) $(IPR_PATH)/lib/libIterPntRcv-$(OCL_DEV_NAME).clso $(CC) $(CFLAGS) $(OCL_RT_INCLUDES) $(OCL_RT_LIBRARIES) $(OCL_RT_LIBS) \ -DOCL_DEV_IDX=$(GPGPU_DEV_IDX) -DOCLExecFileName="\"$(OCL_OUTPUT)\"" \ $(MODEFLAGS) -o $(OCL_RT_OUTPUT)-$(OCL_DEV_NAME) point_recovery-OpenCL.c clean: $(RM) \ $(OUTPUT_C11) $(OCL_RT_OUTPUT)* \ $(TARGETDIR)/*.clo $(TARGETDIR)/*.clexe \ $(TARGETDIR)/*.log *.log