summaryrefslogtreecommitdiff
path: root/src/Android.mk
blob: 0b15428a4f0b04aaa44fbce68edeb6500e09b568 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

include $(LOCAL_PATH)/../Android.common.mk

ocl_config_file = $(LOCAL_PATH)/OCLConfig.h
$(shell echo "// the configured options and settings for LIBCL" > $(ocl_config_file))
$(shell echo "#define LIBCL_DRIVER_VERSION_MAJOR 1" >> $(ocl_config_file))
$(shell echo "#define LIBCL_DRIVER_VERSION_MINOR 1" >> $(ocl_config_file))
$(shell echo "#define LIBCL_C_VERSION_MAJOR 1" >> $(ocl_config_file))
$(shell echo "#define LIBCL_C_VERSION_MINOR 2" >> $(ocl_config_file))

LOCAL_C_INCLUDES := $(TOP_C_INCLUDE) $(BEIGNET_ROOT_PATH)/backend/src/backend/ $(BEIGNET_ROOT_PATH)
LOCAL_C_INCLUDES += $(DRM_INCLUDE_PATH)
LOCAL_C_INCLUDES += $(LLVM_INCLUDE_DIRS)
LOCAL_C_INCLUDES += hardware/drm_gralloc
LOCAL_CPPFLAGS := $(TOP_CPPFLAGS) -std=c++11
LOCAL_CFLAGS := $(TOP_CFLAGS)
OPTIONAL_EGL_LIBRARY :=
LOCAL_LDFLAGS := -Wl,-Bsymbolic

LOCAL_LDLIBS := -lm -ldl
LOCAL_SHARED_LIBRARIES += liblog libcutils
LOCAL_ADDITIONAL_DEPENDENCIES := $(GBE_BIN_GENERATER)
LOCAL_MODULE := libcl

LOCAL_REQUIRED_MODULES := $(HOST_OUT_EXECUTABLES)/gbe_bin_generater
LOCAL_ADDITIONAL_DEPENDENCIES := $(BEIGNET_ROOT_PATH)/backend/src/Android.mk

KERNEL_PATH := $(BEIGNET_ROOT_PATH)/src/kernels
KERNEL_NAMES := cl_internal_copy_buf_align4 \
                cl_internal_copy_buf_align16 \
                cl_internal_copy_buf_unalign_same_offset \
                cl_internal_copy_buf_unalign_dst_offset \
                cl_internal_copy_buf_unalign_src_offset \
                cl_internal_copy_buf_rect \
                cl_internal_copy_buf_rect_align4 \
                cl_internal_copy_image_1d_to_1d \
                cl_internal_copy_image_2d_to_2d \
                cl_internal_copy_image_3d_to_2d \
                cl_internal_copy_image_2d_to_3d \
                cl_internal_copy_image_3d_to_3d \
                cl_internal_copy_image_2d_to_2d_array \
                cl_internal_copy_image_1d_array_to_1d_array \
                cl_internal_copy_image_2d_array_to_2d_array \
                cl_internal_copy_image_2d_array_to_2d \
                cl_internal_copy_image_2d_array_to_3d \
                cl_internal_copy_image_3d_to_2d_array \
                cl_internal_copy_image_2d_to_buffer \
                cl_internal_copy_image_2d_to_buffer_align16 \
                cl_internal_copy_image_3d_to_buffer \
                cl_internal_copy_buffer_to_image_2d \
                cl_internal_copy_buffer_to_image_2d_align16 \
                cl_internal_copy_buffer_to_image_3d \
                cl_internal_fill_buf_align8 \
                cl_internal_fill_buf_align4 \
                cl_internal_fill_buf_align2 \
                cl_internal_fill_buf_unalign \
                cl_internal_fill_buf_align128 \
                cl_internal_fill_image_1d \
                cl_internal_fill_image_1d_array \
                cl_internal_fill_image_2d \
                cl_internal_fill_image_2d_array \
                cl_internal_fill_image_3d
BUILT_IN_NAME := cl_internal_built_in_kernel

GBE_BIN_GENERATER := $(HOST_OUT_EXECUTABLES)/gbe_bin_generater

$(shell rm $(KERNEL_PATH)/$(BUILT_IN_NAME).cl)
define GEN_INTERNAL_KER
    # Use the python script to generate the header files.
    $(shell $(GBE_BIN_GENERATER) -s $(KERNEL_PATH)/$(1).cl -o $(KERNEL_PATH)/$(1)_str.c)
    $(shell cat $(KERNEL_PATH)/$(1).cl >> $(KERNEL_PATH)/$(BUILT_IN_NAME).cl)
endef
$(foreach KERNEL_NAME, ${KERNEL_NAMES}, $(eval $(call GEN_INTERNAL_KER,$(KERNEL_NAME))))

$(shell $(GBE_BIN_GENERATER) -s $(KERNEL_PATH)/$(BUILT_IN_NAME).cl -o $(KERNEL_PATH)/$(BUILT_IN_NAME)_str.c)

GIT_SHA1 = git_sha1.h
$(shell chmod +x $(LOCAL_PATH)/git_sha1.sh)
$(shell $(LOCAL_PATH)/git_sha1.sh $(LOCAL_PATH) ${GIT_SHA1})

LOCAL_SRC_FILES:= \
    $(addprefix kernels/,$(addsuffix _str.c, $(KERNEL_NAMES))) \
    $(addprefix kernels/,$(addsuffix _str.c, $(BUILT_IN_NAME))) \
    cl_api.c \
    cl_alloc.c \
    cl_kernel.c \
    cl_program.c \
    cl_gbe_loader.cpp \
    cl_sampler.c \
    cl_event.c \
    cl_enqueue.c \
    cl_image.c \
    cl_mem.c \
    cl_platform_id.c \
    cl_extensions.c \
    cl_device_id.c \
    cl_context.c \
    cl_command_queue.c \
    cl_command_queue.h \
    cl_command_queue_gen7.c \
    cl_thread.c \
    cl_driver.h \
    cl_driver.cpp \
    cl_driver_defs.c \
    intel/intel_gpgpu.c \
    intel/intel_batchbuffer.c \
    intel/intel_driver.c \
    performance.c \
    cl_accelerator_intel.c

LOCAL_SHARED_LIBRARIES := \
libgbe \
libdl \
$(DRM_INTEL_LIBRARY) \
$(DRM_LIBRARY) \
$(OPTIONAL_EGL_LIBRARY) \
libhardware

#LOCAL_CLANG := true
include external/libcxx/libcxx.mk
include $(BUILD_SHARED_LIBRARY)