blob: 3d23ecc712d1277a74a362fc5060e6f0f8567876 [file] [log] [blame]
telsoa015307bc12018-03-09 13:51:08 +00001#
2# Copyright © 2017 ARM Ltd. All rights reserved.
David Beck93e48982018-09-05 13:05:09 +01003# SPDX-License-Identifier: MIT
telsoa015307bc12018-03-09 13:51:08 +00004#
5
6ANDROID_NN_DRIVER_LOCAL_PATH := $(call my-dir)
7LOCAL_PATH := $(ANDROID_NN_DRIVER_LOCAL_PATH)
8
9# Configure these paths if you move the source or Khronos headers
surmeh01deb3bdb2018-07-05 12:06:04 +010010ARMNN_HEADER_PATH := $(LOCAL_PATH)/armnn/include
11ARMNN_UTILS_HEADER_PATH := $(LOCAL_PATH)/armnn/src/armnnUtils
surmeh0149b9e102018-05-17 14:11:25 +010012OPENCL_HEADER_PATH := $(LOCAL_PATH)/clframework/include
telsoa015307bc12018-03-09 13:51:08 +000013NN_HEADER_PATH := $(LOCAL_PATH)/../../../frameworks/ml/nn/runtime/include
14
Matteo Martincigh01c91512019-01-31 15:40:08 +000015# Variables to control CL/NEON backend support
16# Set them to '0' to disable support for a specific backend
17ARMNN_COMPUTE_CL_ENABLED := 1
18ARMNN_COMPUTE_NEON_ENABLED := 1
19
telsoa01ce3e84a2018-08-31 09:31:35 +010020#######################
21# libarmnn-driver@1.0 #
22#######################
telsoa015307bc12018-03-09 13:51:08 +000023include $(CLEAR_VARS)
24
telsoa01ce3e84a2018-08-31 09:31:35 +010025LOCAL_MODULE := libarmnn-driver@1.0
telsoa015307bc12018-03-09 13:51:08 +000026LOCAL_MODULE_TAGS := eng optional
27LOCAL_ARM_MODE := arm
surmeh0149b9e102018-05-17 14:11:25 +010028LOCAL_PROPRIETARY_MODULE := true
telsoa015307bc12018-03-09 13:51:08 +000029# Mark source files as dependent on Android.mk
30LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
31
surmeh01deb3bdb2018-07-05 12:06:04 +010032LOCAL_C_INCLUDES := \
telsoa01ce3e84a2018-08-31 09:31:35 +010033 $(ARMNN_HEADER_PATH) \
34 $(ARMNN_UTILS_HEADER_PATH) \
35 $(OPENCL_HEADER_PATH) \
36 $(NN_HEADER_PATH)
telsoa015307bc12018-03-09 13:51:08 +000037
38LOCAL_CFLAGS := \
telsoa01ce3e84a2018-08-31 09:31:35 +010039 -std=c++14 \
40 -fexceptions \
41 -Werror \
42 -Wno-format-security
surmeh01deb3bdb2018-07-05 12:06:04 +010043ifeq ($(PLATFORM_VERSION),9)
44# Required to build with the changes made to the Android ML framework starting from Android P,
45# regardless of the HAL version used for the build.
46LOCAL_CFLAGS+= \
47 -DARMNN_ANDROID_P
Matteo Martincigh69558df2018-08-31 16:18:19 +010048endif # PLATFORM_VERSION == 9
telsoa015307bc12018-03-09 13:51:08 +000049ifeq ($(ARMNN_DRIVER_DEBUG),1)
telsoa01ce3e84a2018-08-31 09:31:35 +010050LOCAL_CFLAGS+= \
51 -UNDEBUG
Matteo Martincigh69558df2018-08-31 16:18:19 +010052endif # ARMNN_DRIVER_DEBUG == 1
Matteo Martincigh01c91512019-01-31 15:40:08 +000053ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
54LOCAL_CFLAGS += \
55 -DARMCOMPUTECL_ENABLED
56endif # ARMNN_COMPUTE_CL_ENABLED == 1
57ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
58LOCAL_CFLAGS += \
59 -DARMCOMPUTENEON_ENABLED
60endif # ARMNN_COMPUTE_NEON_ENABLED == 1
telsoa015307bc12018-03-09 13:51:08 +000061
surmeh01deb3bdb2018-07-05 12:06:04 +010062LOCAL_SRC_FILES := \
Matteo Martincigh79250ab2018-09-04 16:28:10 +010063 1.0/ArmnnDriverImpl.cpp \
arovir01b0717b52018-09-05 17:03:25 +010064 1.0/HalPolicy.cpp \
Matteo Martincighe48bdff2018-09-03 13:50:50 +010065 ArmnnDriverImpl.cpp \
telsoa01ce3e84a2018-08-31 09:31:35 +010066 DriverOptions.cpp \
67 ArmnnDevice.cpp \
68 ArmnnPreparedModel.cpp \
69 ModelToINetworkConverter.cpp \
70 RequestThread.cpp \
arovir01b0717b52018-09-05 17:03:25 +010071 Utils.cpp \
72 ConversionUtils.cpp
telsoa015307bc12018-03-09 13:51:08 +000073
74LOCAL_STATIC_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +010075 libneuralnetworks_common \
telsoa01ce3e84a2018-08-31 09:31:35 +010076 libboost_log \
77 libboost_program_options \
78 libboost_system \
79 libboost_thread \
80 armnn-arm_compute
telsoa015307bc12018-03-09 13:51:08 +000081
David Beckc965f3c2018-10-12 17:23:16 +010082LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
83
surmeh01deb3bdb2018-07-05 12:06:04 +010084LOCAL_SHARED_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +010085 libbase \
86 libhidlbase \
87 libhidltransport \
88 libhidlmemory \
89 liblog \
90 libutils \
91 android.hardware.neuralnetworks@1.0 \
92 android.hidl.allocator@1.0 \
93 android.hidl.memory@1.0 \
94 libOpenCL
surmeh01deb3bdb2018-07-05 12:06:04 +010095ifeq ($(PLATFORM_VERSION),9)
96# Required to build the 1.0 version of the NN Driver on Android P and later versions,
97# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
98LOCAL_SHARED_LIBRARIES+= \
telsoa01ce3e84a2018-08-31 09:31:35 +010099 android.hardware.neuralnetworks@1.1
Matteo Martincigh69558df2018-08-31 16:18:19 +0100100endif # PLATFORM_VERSION == 9
telsoa015307bc12018-03-09 13:51:08 +0000101
102include $(BUILD_STATIC_LIBRARY)
103
Matteo Martincigh69558df2018-08-31 16:18:19 +0100104ifeq ($(PLATFORM_VERSION),9)
105# The following target is available starting from Android P
106
telsoa01ce3e84a2018-08-31 09:31:35 +0100107#######################
108# libarmnn-driver@1.1 #
109#######################
110include $(CLEAR_VARS)
111
112LOCAL_MODULE := libarmnn-driver@1.1
113LOCAL_MODULE_TAGS := eng optional
114LOCAL_ARM_MODE := arm
115LOCAL_PROPRIETARY_MODULE := true
116# Mark source files as dependent on Android.mk
117LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
118
119LOCAL_C_INCLUDES := \
120 $(ARMNN_HEADER_PATH) \
121 $(ARMNN_UTILS_HEADER_PATH) \
122 $(OPENCL_HEADER_PATH) \
123 $(NN_HEADER_PATH)
124
125LOCAL_CFLAGS := \
126 -std=c++14 \
127 -fexceptions \
128 -Werror \
129 -Wno-format-security \
130 -DARMNN_ANDROID_P \
131 -DARMNN_ANDROID_NN_V1_1
132ifeq ($(ARMNN_DRIVER_DEBUG),1)
133LOCAL_CFLAGS+= \
134 -UNDEBUG
Matteo Martincigh69558df2018-08-31 16:18:19 +0100135endif # ARMNN_DRIVER_DEBUG == 1
Matteo Martincigh01c91512019-01-31 15:40:08 +0000136ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
137LOCAL_CFLAGS += \
138 -DARMCOMPUTECL_ENABLED
139endif # ARMNN_COMPUTE_CL_ENABLED == 1
140ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
141LOCAL_CFLAGS += \
142 -DARMCOMPUTENEON_ENABLED
143endif # ARMNN_COMPUTE_NEON_ENABLED == 1
telsoa01ce3e84a2018-08-31 09:31:35 +0100144
145LOCAL_SRC_FILES := \
Matteo Martincigh79250ab2018-09-04 16:28:10 +0100146 1.0/ArmnnDriverImpl.cpp \
arovir01b0717b52018-09-05 17:03:25 +0100147 1.0/HalPolicy.cpp \
Matteo Martincigh79250ab2018-09-04 16:28:10 +0100148 1.1/ArmnnDriverImpl.cpp \
arovir01b0717b52018-09-05 17:03:25 +0100149 1.1/HalPolicy.cpp \
Matteo Martincighe48bdff2018-09-03 13:50:50 +0100150 ArmnnDriverImpl.cpp \
telsoa01ce3e84a2018-08-31 09:31:35 +0100151 DriverOptions.cpp \
152 ArmnnDevice.cpp \
153 ArmnnPreparedModel.cpp \
154 ModelToINetworkConverter.cpp \
155 RequestThread.cpp \
arovir01b0717b52018-09-05 17:03:25 +0100156 Utils.cpp \
157 ConversionUtils.cpp
telsoa01ce3e84a2018-08-31 09:31:35 +0100158
159LOCAL_STATIC_LIBRARIES := \
160 libneuralnetworks_common \
telsoa01ce3e84a2018-08-31 09:31:35 +0100161 libboost_log \
162 libboost_program_options \
163 libboost_system \
164 libboost_thread \
165 armnn-arm_compute
166
David Beckc965f3c2018-10-12 17:23:16 +0100167LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
168
telsoa01ce3e84a2018-08-31 09:31:35 +0100169LOCAL_SHARED_LIBRARIES := \
170 libbase \
171 libhidlbase \
172 libhidltransport \
173 libhidlmemory \
174 liblog \
175 libutils \
176 android.hardware.neuralnetworks@1.0 \
177 android.hardware.neuralnetworks@1.1 \
178 android.hidl.allocator@1.0 \
179 android.hidl.memory@1.0 \
180 libOpenCL
181
182include $(BUILD_STATIC_LIBRARY)
183
Matteo Martincigh69558df2018-08-31 16:18:19 +0100184endif # PLATFORM_VERSION == 9
185
telsoa015307bc12018-03-09 13:51:08 +0000186#####################################################
187# android.hardware.neuralnetworks@1.0-service-armnn #
188#####################################################
189include $(CLEAR_VARS)
190
191LOCAL_MODULE := android.hardware.neuralnetworks@1.0-service-armnn
192LOCAL_INIT_RC := android.hardware.neuralnetworks@1.0-service-armnn.rc
193LOCAL_MODULE_TAGS := eng optional
194LOCAL_ARM_MODE := arm
195LOCAL_MODULE_RELATIVE_PATH := hw
196LOCAL_PROPRIETARY_MODULE := true
197# Mark source files as dependent on Android.mk
198LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
199
telsoa01ce3e84a2018-08-31 09:31:35 +0100200LOCAL_C_INCLUDES := \
201 $(ARMNN_HEADER_PATH) \
202 $(NN_HEADER_PATH)
telsoa015307bc12018-03-09 13:51:08 +0000203
204LOCAL_CFLAGS := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100205 -std=c++14 \
206 -fexceptions
telsoa015307bc12018-03-09 13:51:08 +0000207ifeq ($(ARMNN_DRIVER_DEBUG),1)
telsoa01ce3e84a2018-08-31 09:31:35 +0100208LOCAL_CFLAGS += \
209 -UNDEBUG
Matteo Martincigh69558df2018-08-31 16:18:19 +0100210endif # ARMNN_DRIVER_DEBUG == 1
telsoa015307bc12018-03-09 13:51:08 +0000211
surmeh01deb3bdb2018-07-05 12:06:04 +0100212LOCAL_SRC_FILES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100213 service.cpp
telsoa015307bc12018-03-09 13:51:08 +0000214
215LOCAL_STATIC_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100216 libneuralnetworks_common \
telsoa01ce3e84a2018-08-31 09:31:35 +0100217 libboost_log \
218 libboost_program_options \
219 libboost_system \
220 libboost_thread \
221 armnn-arm_compute
telsoa015307bc12018-03-09 13:51:08 +0000222
David Beckbeb3e1f2018-10-15 14:15:42 +0100223LOCAL_WHOLE_STATIC_LIBRARIES := \
224 libarmnn-driver@1.0
David Beckc965f3c2018-10-12 17:23:16 +0100225
surmeh01deb3bdb2018-07-05 12:06:04 +0100226LOCAL_SHARED_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100227 libbase \
228 libhidlbase \
229 libhidltransport \
230 libhidlmemory \
231 libdl \
232 libhardware \
233 liblog \
234 libtextclassifier_hash \
235 libutils \
236 android.hardware.neuralnetworks@1.0 \
237 android.hidl.allocator@1.0 \
238 android.hidl.memory@1.0 \
239 libOpenCL
surmeh01deb3bdb2018-07-05 12:06:04 +0100240ifeq ($(PLATFORM_VERSION),9)
241# Required to build the 1.0 version of the NN Driver on Android P and later versions,
242# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
243LOCAL_SHARED_LIBRARIES+= \
telsoa01ce3e84a2018-08-31 09:31:35 +0100244 android.hardware.neuralnetworks@1.1
Matteo Martincigh69558df2018-08-31 16:18:19 +0100245endif # PLATFORM_VERSION == 9
telsoa015307bc12018-03-09 13:51:08 +0000246
247include $(BUILD_EXECUTABLE)
248
Matteo Martincigh69558df2018-08-31 16:18:19 +0100249ifeq ($(PLATFORM_VERSION),9)
250# The following target is available starting from Android P
251
telsoa01ce3e84a2018-08-31 09:31:35 +0100252#####################################################
253# android.hardware.neuralnetworks@1.1-service-armnn #
254#####################################################
255include $(CLEAR_VARS)
256
257LOCAL_MODULE := android.hardware.neuralnetworks@1.1-service-armnn
258LOCAL_INIT_RC := android.hardware.neuralnetworks@1.1-service-armnn.rc
259LOCAL_MODULE_TAGS := eng optional
260LOCAL_ARM_MODE := arm
261LOCAL_MODULE_RELATIVE_PATH := hw
262LOCAL_PROPRIETARY_MODULE := true
263# Mark source files as dependent on Android.mk
264LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
265
266LOCAL_C_INCLUDES := \
267 $(ARMNN_HEADER_PATH) \
268 $(NN_HEADER_PATH)
269
270LOCAL_CFLAGS := \
271 -std=c++14 \
272 -fexceptions \
273 -DARMNN_ANDROID_NN_V1_1
274ifeq ($(ARMNN_DRIVER_DEBUG),1)
275LOCAL_CFLAGS += \
276 -UNDEBUG
Matteo Martincigh69558df2018-08-31 16:18:19 +0100277endif # ARMNN_DRIVER_DEBUG == 1
telsoa01ce3e84a2018-08-31 09:31:35 +0100278
279LOCAL_SRC_FILES := \
280 service.cpp
281
282LOCAL_STATIC_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100283 libneuralnetworks_common \
telsoa01ce3e84a2018-08-31 09:31:35 +0100284 libboost_log \
285 libboost_program_options \
286 libboost_system \
287 libboost_thread \
288 armnn-arm_compute
289
David Beckbeb3e1f2018-10-15 14:15:42 +0100290LOCAL_WHOLE_STATIC_LIBRARIES := \
291 libarmnn-driver@1.1
David Beckc965f3c2018-10-12 17:23:16 +0100292
telsoa01ce3e84a2018-08-31 09:31:35 +0100293LOCAL_SHARED_LIBRARIES := \
294 libbase \
295 libhidlbase \
296 libhidltransport \
297 libhidlmemory \
298 libdl \
299 libhardware \
300 liblog \
301 libtextclassifier_hash \
302 libutils \
303 android.hardware.neuralnetworks@1.0 \
304 android.hardware.neuralnetworks@1.1 \
305 android.hidl.allocator@1.0 \
306 android.hidl.memory@1.0 \
307 libOpenCL
308
309include $(BUILD_EXECUTABLE)
310
Matteo Martincigh69558df2018-08-31 16:18:19 +0100311endif # PLATFORM_VERSION == 9
312
telsoa015307bc12018-03-09 13:51:08 +0000313##########################
314# armnn module and tests #
315##########################
316# Note we use ANDROID_NN_DRIVER_LOCAL_PATH rather than LOCAL_PATH because LOCAL_PATH will be overwritten
317# when including other .mk files that set it.
318include $(ANDROID_NN_DRIVER_LOCAL_PATH)/armnn/Android.mk
surmeh0149b9e102018-05-17 14:11:25 +0100319include $(ANDROID_NN_DRIVER_LOCAL_PATH)/test/Android.mk