Makefile 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. OCLH_PATH ?= ~/opt/oclh
  2. IPR_PATH ?= ~/opt/iterative_point_recovery
  3. OPENCL_INCLUDES := -I /usr/local/cuda/include \
  4. -I /opt/intel/system_studio_2020/opencl-sdk/include/CL
  5. TARGETDIR := build
  6. RM := rm -rf
  7. CC := gcc
  8. CFLAGS := -xc -std=c11 -pedantic -Wall -Wextra -Wconversion
  9. INCLUDES := -I $(IPR_PATH)/include_hd
  10. LIBRARIES := -L $(IPR_PATH)/lib
  11. LIBS := -lIterPntRcv
  12. OUTPUT_C11:= $(TARGETDIR)/ptrc_example-c11
  13. DEFS := -D_PTRC_TS_VERBOSE_MODE
  14. MODEFLAGS := -O3
  15. GPGPU_DEV_IDX ?= 0
  16. OCL_DEV_NAME := $(shell $(OCLH_PATH)/bin/oclh_getDevNameByIndex $(GPGPU_DEV_IDX))
  17. OCL_CR := $(OCLH_PATH)/bin/oclh_cr
  18. OCL_LR := $(OCLH_PATH)/bin/oclh_lr
  19. OCL_CFLAGS := -cl-std=CL1.2 -Werror
  20. OCL_INCLUDES := -I $(IPR_PATH)/include_hd \
  21. -I $(OCLH_PATH)/include/include_d \
  22. -I $(OCLH_PATH)/include/include_hd
  23. OCL_OBJ := $(TARGETDIR)/point_recovery_kernel-$(OCL_DEV_NAME).clo
  24. OCL_OUTPUT := point_recovery_kernel-$(OCL_DEV_NAME).clexe
  25. OCL_RT_OUTPUT := $(TARGETDIR)/ptrc_example-ocl
  26. OCL_RT_INCLUDES := -I $(OCLH_PATH)/include/include_h \
  27. -I $(OCLH_PATH)/include/include_hd \
  28. $(OPENCL_INCLUDES)
  29. OCL_MODEFLAGS :=
  30. OCL_RT_LIBRARIES:= -L $(OCLH_PATH)/lib -L $(IPR_PATH)/lib
  31. OCL_RT_LIBS := -loclh -lOpenCL
  32. c11_debug: MODEFLAGS := -O0 -g
  33. c11_debug: c11
  34. opencl_debug: MODEFLAGS := -O0 -g
  35. # the next string is acceptable for OpenCL v2.2 and higher only
  36. # opencl_debug: OCL_MODEFLAGS := -cl-opt-disable -g
  37. opencl_debug: opencl
  38. c11:
  39. mkdir -p $(TARGETDIR) ; \
  40. $(CC) $(CFLAGS) $(INCLUDES) $(LIBRARIES) $(LIBS) $(DEFS) $(MODEFLAGS) \
  41. -o $(OUTPUT_C11) point_recovery-C11.c
  42. opencl:
  43. mkdir -p $(TARGETDIR) ; \
  44. $(OCL_CR) --dev-idxs=$(GPGPU_DEV_IDX) $(OCL_CFLAGS) $(OCL_INCLUDES) \
  45. $(DEFS) $(OCL_MODEFLAGS) --verbatim-output-name -o "$(OCL_OBJ)" \
  46. point_recovery_kernel.clc
  47. $(OCL_LR) --dev-idxs=$(GPGPU_DEV_IDX) $(OCL_MODEFLAGS) \
  48. --verbatim-output-name -o $(TARGETDIR)/$(OCL_OUTPUT) \
  49. $(OCL_OBJ) $(IPR_PATH)/lib/libIterPntRcv-$(OCL_DEV_NAME).clso
  50. $(CC) $(CFLAGS) $(OCL_RT_INCLUDES) $(OCL_RT_LIBRARIES) $(OCL_RT_LIBS) \
  51. -DOCL_DEV_IDX=$(GPGPU_DEV_IDX) -DOCLExecFileName="\"$(OCL_OUTPUT)\"" \
  52. $(MODEFLAGS) -o $(OCL_RT_OUTPUT)-$(OCL_DEV_NAME) point_recovery-OpenCL.c
  53. clean:
  54. $(RM) \
  55. $(OUTPUT_C11) $(OCL_RT_OUTPUT)* \
  56. $(TARGETDIR)/*.clo $(TARGETDIR)/*.clexe \
  57. $(TARGETDIR)/*.log *.log