blob: aeea704d2a4e7637a19ad3d384502c8d0295fe10 [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
Sadik Armagand6539c52019-05-22 18:00:30 +01009P_OR_LATER := 0
10Q_OR_LATER := 0
11
12ifeq ($(PLATFORM_VERSION),9)
13P_OR_LATER := 1
14endif # PLATFORM_VERSION == 9
15ifeq ($(PLATFORM_VERSION),P)
16P_OR_LATER := 1
17endif # PLATFORM_VERSION == P
18
19ifeq ($(PLATFORM_VERSION),10)
20P_OR_LATER := 1
21Q_OR_LATER := 1
22endif # PLATFORM_VERSION == 10
23ifeq ($(PLATFORM_VERSION),Q)
24P_OR_LATER := 1
25Q_OR_LATER := 1
26endif # PLATFORM_VERSION == Q
27
Mike Kellyb5fdf382019-06-11 16:35:25 +010028CPP_VERSION := c++14
29
30ifeq ($(Q_OR_LATER),1)
31CPP_VERSION := c++17
32endif
33
telsoa015307bc12018-03-09 13:51:08 +000034# Configure these paths if you move the source or Khronos headers
surmeh01deb3bdb2018-07-05 12:06:04 +010035ARMNN_HEADER_PATH := $(LOCAL_PATH)/armnn/include
36ARMNN_UTILS_HEADER_PATH := $(LOCAL_PATH)/armnn/src/armnnUtils
surmeh0149b9e102018-05-17 14:11:25 +010037OPENCL_HEADER_PATH := $(LOCAL_PATH)/clframework/include
telsoa015307bc12018-03-09 13:51:08 +000038NN_HEADER_PATH := $(LOCAL_PATH)/../../../frameworks/ml/nn/runtime/include
39
Matteo Martincigh01c91512019-01-31 15:40:08 +000040# Variables to control CL/NEON backend support
41# Set them to '0' to disable support for a specific backend
42ARMNN_COMPUTE_CL_ENABLED := 1
43ARMNN_COMPUTE_NEON_ENABLED := 1
44
Sadik Armagand6539c52019-05-22 18:00:30 +010045ifeq ($(ARMNN_COMPUTE_CL_ENABLE),0)
46ARMNN_COMPUTE_CL_ENABLED := 0
47endif
48
49ifeq ($(ARMNN_COMPUTE_NEON_ENABLE),0)
50ARMNN_COMPUTE_NEON_ENABLED := 0
51endif
52
telsoa01ce3e84a2018-08-31 09:31:35 +010053#######################
54# libarmnn-driver@1.0 #
55#######################
telsoa015307bc12018-03-09 13:51:08 +000056include $(CLEAR_VARS)
57
telsoa01ce3e84a2018-08-31 09:31:35 +010058LOCAL_MODULE := libarmnn-driver@1.0
Sadik Armagand6539c52019-05-22 18:00:30 +010059ifeq ($(Q_OR_LATER),1)
60# "eng" is deprecated in Android Q
61LOCAL_MODULE_TAGS := optional
62else
telsoa015307bc12018-03-09 13:51:08 +000063LOCAL_MODULE_TAGS := eng optional
Sadik Armagand6539c52019-05-22 18:00:30 +010064endif
telsoa015307bc12018-03-09 13:51:08 +000065LOCAL_ARM_MODE := arm
surmeh0149b9e102018-05-17 14:11:25 +010066LOCAL_PROPRIETARY_MODULE := true
telsoa015307bc12018-03-09 13:51:08 +000067# Mark source files as dependent on Android.mk
68LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
69
surmeh01deb3bdb2018-07-05 12:06:04 +010070LOCAL_C_INCLUDES := \
telsoa01ce3e84a2018-08-31 09:31:35 +010071 $(ARMNN_HEADER_PATH) \
72 $(ARMNN_UTILS_HEADER_PATH) \
73 $(OPENCL_HEADER_PATH) \
74 $(NN_HEADER_PATH)
telsoa015307bc12018-03-09 13:51:08 +000075
76LOCAL_CFLAGS := \
Mike Kellyb5fdf382019-06-11 16:35:25 +010077 -std=$(CPP_VERSION) \
telsoa01ce3e84a2018-08-31 09:31:35 +010078 -fexceptions \
79 -Werror \
80 -Wno-format-security
Sadik Armagand6539c52019-05-22 18:00:30 +010081
82ifeq ($(P_OR_LATER),1)
surmeh01deb3bdb2018-07-05 12:06:04 +010083# Required to build with the changes made to the Android ML framework starting from Android P,
84# regardless of the HAL version used for the build.
85LOCAL_CFLAGS+= \
86 -DARMNN_ANDROID_P
Matteo Martincigh69558df2018-08-31 16:18:19 +010087endif # PLATFORM_VERSION == 9
Sadik Armagand6539c52019-05-22 18:00:30 +010088
telsoa015307bc12018-03-09 13:51:08 +000089ifeq ($(ARMNN_DRIVER_DEBUG),1)
telsoa01ce3e84a2018-08-31 09:31:35 +010090LOCAL_CFLAGS+= \
91 -UNDEBUG
Matteo Martincigh69558df2018-08-31 16:18:19 +010092endif # ARMNN_DRIVER_DEBUG == 1
Sadik Armagand6539c52019-05-22 18:00:30 +010093
Mike Kellyb5fdf382019-06-11 16:35:25 +010094ifeq ($(Q_OR_LATER),1)
95LOCAL_CFLAGS += \
96 -DBOOST_NO_AUTO_PTR
97endif # PLATFORM_VERSION == Q or later
98
Matteo Martincigh01c91512019-01-31 15:40:08 +000099ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
100LOCAL_CFLAGS += \
101 -DARMCOMPUTECL_ENABLED
102endif # ARMNN_COMPUTE_CL_ENABLED == 1
Sadik Armagand6539c52019-05-22 18:00:30 +0100103
Matteo Martincigh01c91512019-01-31 15:40:08 +0000104ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
105LOCAL_CFLAGS += \
106 -DARMCOMPUTENEON_ENABLED
107endif # ARMNN_COMPUTE_NEON_ENABLED == 1
telsoa015307bc12018-03-09 13:51:08 +0000108
surmeh01deb3bdb2018-07-05 12:06:04 +0100109LOCAL_SRC_FILES := \
Matteo Martincigh79250ab2018-09-04 16:28:10 +0100110 1.0/ArmnnDriverImpl.cpp \
arovir01b0717b52018-09-05 17:03:25 +0100111 1.0/HalPolicy.cpp \
Matteo Martincighe48bdff2018-09-03 13:50:50 +0100112 ArmnnDriverImpl.cpp \
telsoa01ce3e84a2018-08-31 09:31:35 +0100113 DriverOptions.cpp \
114 ArmnnDevice.cpp \
115 ArmnnPreparedModel.cpp \
116 ModelToINetworkConverter.cpp \
117 RequestThread.cpp \
arovir01b0717b52018-09-05 17:03:25 +0100118 Utils.cpp \
119 ConversionUtils.cpp
telsoa015307bc12018-03-09 13:51:08 +0000120
121LOCAL_STATIC_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100122 libneuralnetworks_common \
telsoa01ce3e84a2018-08-31 09:31:35 +0100123 libboost_log \
124 libboost_program_options \
125 libboost_system \
126 libboost_thread \
Matteo Martincighd80ed2f2019-08-07 12:20:42 +0100127 libboost_filesystem \
telsoa01ce3e84a2018-08-31 09:31:35 +0100128 armnn-arm_compute
telsoa015307bc12018-03-09 13:51:08 +0000129
David Beckc965f3c2018-10-12 17:23:16 +0100130LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
131
surmeh01deb3bdb2018-07-05 12:06:04 +0100132LOCAL_SHARED_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100133 libbase \
134 libhidlbase \
135 libhidltransport \
136 libhidlmemory \
137 liblog \
138 libutils \
139 android.hardware.neuralnetworks@1.0 \
140 android.hidl.allocator@1.0 \
Sadik Armagand6539c52019-05-22 18:00:30 +0100141 android.hidl.memory@1.0
142
143ifeq ($(P_OR_LATER),1)
surmeh01deb3bdb2018-07-05 12:06:04 +0100144# Required to build the 1.0 version of the NN Driver on Android P and later versions,
145# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
146LOCAL_SHARED_LIBRARIES+= \
telsoa01ce3e84a2018-08-31 09:31:35 +0100147 android.hardware.neuralnetworks@1.1
Matteo Martincigh69558df2018-08-31 16:18:19 +0100148endif # PLATFORM_VERSION == 9
telsoa015307bc12018-03-09 13:51:08 +0000149
Sadik Armagand6539c52019-05-22 18:00:30 +0100150ifeq ($(Q_OR_LATER),1)
151LOCAL_SHARED_LIBRARIES+= \
152 libnativewindow \
153 libui \
154 libfmq \
155 libcutils \
156 android.hardware.neuralnetworks@1.2
157endif # PLATFORM_VERSION == Q
158
159ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
160LOCAL_SHARED_LIBRARIES+= \
161 libOpenCL
162endif
163
telsoa015307bc12018-03-09 13:51:08 +0000164include $(BUILD_STATIC_LIBRARY)
165
Sadik Armagand6539c52019-05-22 18:00:30 +0100166ifeq ($(P_OR_LATER),1)
Matteo Martincigh69558df2018-08-31 16:18:19 +0100167# The following target is available starting from Android P
168
telsoa01ce3e84a2018-08-31 09:31:35 +0100169#######################
170# libarmnn-driver@1.1 #
171#######################
172include $(CLEAR_VARS)
173
174LOCAL_MODULE := libarmnn-driver@1.1
Sadik Armagand6539c52019-05-22 18:00:30 +0100175ifeq ($(Q_OR_LATER),1)
176# "eng" is deprecated in Android Q
177LOCAL_MODULE_TAGS := optional
178else
telsoa01ce3e84a2018-08-31 09:31:35 +0100179LOCAL_MODULE_TAGS := eng optional
Sadik Armagand6539c52019-05-22 18:00:30 +0100180endif
181#PRODUCT_PACKAGES_ENG := libarmnn-driver@1.1
telsoa01ce3e84a2018-08-31 09:31:35 +0100182LOCAL_ARM_MODE := arm
183LOCAL_PROPRIETARY_MODULE := true
184# Mark source files as dependent on Android.mk
185LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
186
187LOCAL_C_INCLUDES := \
188 $(ARMNN_HEADER_PATH) \
189 $(ARMNN_UTILS_HEADER_PATH) \
190 $(OPENCL_HEADER_PATH) \
191 $(NN_HEADER_PATH)
192
193LOCAL_CFLAGS := \
Mike Kellyb5fdf382019-06-11 16:35:25 +0100194 -std=$(CPP_VERSION) \
telsoa01ce3e84a2018-08-31 09:31:35 +0100195 -fexceptions \
196 -Werror \
197 -Wno-format-security \
198 -DARMNN_ANDROID_P \
199 -DARMNN_ANDROID_NN_V1_1
Sadik Armagand6539c52019-05-22 18:00:30 +0100200
telsoa01ce3e84a2018-08-31 09:31:35 +0100201ifeq ($(ARMNN_DRIVER_DEBUG),1)
202LOCAL_CFLAGS+= \
203 -UNDEBUG
Matteo Martincigh69558df2018-08-31 16:18:19 +0100204endif # ARMNN_DRIVER_DEBUG == 1
Sadik Armagand6539c52019-05-22 18:00:30 +0100205
Mike Kellyb5fdf382019-06-11 16:35:25 +0100206ifeq ($(Q_OR_LATER),1)
207LOCAL_CFLAGS += \
208 -DBOOST_NO_AUTO_PTR
209endif # PLATFORM_VERSION == Q or later
210
Matteo Martincigh01c91512019-01-31 15:40:08 +0000211ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
212LOCAL_CFLAGS += \
213 -DARMCOMPUTECL_ENABLED
214endif # ARMNN_COMPUTE_CL_ENABLED == 1
Sadik Armagand6539c52019-05-22 18:00:30 +0100215
Matteo Martincigh01c91512019-01-31 15:40:08 +0000216ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
217LOCAL_CFLAGS += \
218 -DARMCOMPUTENEON_ENABLED
219endif # ARMNN_COMPUTE_NEON_ENABLED == 1
telsoa01ce3e84a2018-08-31 09:31:35 +0100220
221LOCAL_SRC_FILES := \
Matteo Martincigh79250ab2018-09-04 16:28:10 +0100222 1.0/ArmnnDriverImpl.cpp \
arovir01b0717b52018-09-05 17:03:25 +0100223 1.0/HalPolicy.cpp \
Matteo Martincigh79250ab2018-09-04 16:28:10 +0100224 1.1/ArmnnDriverImpl.cpp \
arovir01b0717b52018-09-05 17:03:25 +0100225 1.1/HalPolicy.cpp \
Matteo Martincighe48bdff2018-09-03 13:50:50 +0100226 ArmnnDriverImpl.cpp \
telsoa01ce3e84a2018-08-31 09:31:35 +0100227 DriverOptions.cpp \
228 ArmnnDevice.cpp \
229 ArmnnPreparedModel.cpp \
230 ModelToINetworkConverter.cpp \
231 RequestThread.cpp \
arovir01b0717b52018-09-05 17:03:25 +0100232 Utils.cpp \
233 ConversionUtils.cpp
telsoa01ce3e84a2018-08-31 09:31:35 +0100234
235LOCAL_STATIC_LIBRARIES := \
236 libneuralnetworks_common \
telsoa01ce3e84a2018-08-31 09:31:35 +0100237 libboost_log \
238 libboost_program_options \
239 libboost_system \
240 libboost_thread \
Matteo Martincighd80ed2f2019-08-07 12:20:42 +0100241 libboost_filesystem \
telsoa01ce3e84a2018-08-31 09:31:35 +0100242 armnn-arm_compute
243
David Beckc965f3c2018-10-12 17:23:16 +0100244LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
245
telsoa01ce3e84a2018-08-31 09:31:35 +0100246LOCAL_SHARED_LIBRARIES := \
247 libbase \
248 libhidlbase \
249 libhidltransport \
250 libhidlmemory \
251 liblog \
252 libutils \
253 android.hardware.neuralnetworks@1.0 \
254 android.hardware.neuralnetworks@1.1 \
255 android.hidl.allocator@1.0 \
Sadik Armagand6539c52019-05-22 18:00:30 +0100256 android.hidl.memory@1.0
257
258ifeq ($(Q_OR_LATER),1)
259LOCAL_SHARED_LIBRARIES+= \
260 libnativewindow \
261 libui \
262 libfmq \
263 libcutils \
264 android.hardware.neuralnetworks@1.2
265endif # PLATFORM_VERSION == Q
266
267ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
268LOCAL_SHARED_LIBRARIES+= \
telsoa01ce3e84a2018-08-31 09:31:35 +0100269 libOpenCL
Sadik Armagand6539c52019-05-22 18:00:30 +0100270endif
telsoa01ce3e84a2018-08-31 09:31:35 +0100271
272include $(BUILD_STATIC_LIBRARY)
273
Matteo Martincigh69558df2018-08-31 16:18:19 +0100274endif # PLATFORM_VERSION == 9
275
Mike Kellyb5fdf382019-06-11 16:35:25 +0100276ifeq ($(Q_OR_LATER),1)
277# The following target is available starting from Android Q
278
279#######################
280# libarmnn-driver@1.2 #
281#######################
282include $(CLEAR_VARS)
283
284LOCAL_MODULE := libarmnn-driver@1.2
285LOCAL_MODULE_TAGS := optional
286LOCAL_ARM_MODE := arm
287LOCAL_PROPRIETARY_MODULE := true
288# Mark source files as dependent on Android.mk
289LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
290
291LOCAL_C_INCLUDES := \
292 $(ARMNN_HEADER_PATH) \
293 $(ARMNN_UTILS_HEADER_PATH) \
294 $(OPENCL_HEADER_PATH) \
295 $(NN_HEADER_PATH)
296
297LOCAL_CFLAGS := \
298 -std=$(CPP_VERSION) \
299 -fexceptions \
300 -Werror \
301 -Wno-format-security \
302 -DARMNN_ANDROID_Q \
303 -DARMNN_ANDROID_NN_V1_2
304
305ifeq ($(ARMNN_DRIVER_DEBUG),1)
306LOCAL_CFLAGS+= \
307 -UNDEBUG
308endif # ARMNN_DRIVER_DEBUG == 1
309
310ifeq ($(Q_OR_LATER),1)
311LOCAL_CFLAGS += \
312 -DBOOST_NO_AUTO_PTR
313endif # PLATFORM_VERSION == Q or later
314
315ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
316LOCAL_CFLAGS += \
317 -DARMCOMPUTECL_ENABLED
318endif # ARMNN_COMPUTE_CL_ENABLED == 1
319
320ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
321LOCAL_CFLAGS += \
322 -DARMCOMPUTENEON_ENABLED
323endif # ARMNN_COMPUTE_NEON_ENABLED == 1
324
325LOCAL_SRC_FILES := \
326 1.0/ArmnnDriverImpl.cpp \
327 1.0/HalPolicy.cpp \
328 1.1/ArmnnDriverImpl.cpp \
329 1.1/HalPolicy.cpp \
330 1.2/ArmnnDriverImpl.cpp \
331 1.2/HalPolicy.cpp \
Mike Kellyb5fdf382019-06-11 16:35:25 +0100332 ArmnnDevice.cpp \
Matteo Martincigh17ffff32019-06-27 14:12:55 +0100333 ArmnnDriverImpl.cpp \
Mike Kellyb5fdf382019-06-11 16:35:25 +0100334 ArmnnPreparedModel.cpp \
335 ArmnnPreparedModel_1_2.cpp \
Matteo Martincigh17ffff32019-06-27 14:12:55 +0100336 ConversionUtils.cpp \
337 DriverOptions.cpp \
Mike Kellyb5fdf382019-06-11 16:35:25 +0100338 ModelToINetworkConverter.cpp \
339 RequestThread.cpp \
Matteo Martincigh17ffff32019-06-27 14:12:55 +0100340 Utils.cpp
Mike Kellyb5fdf382019-06-11 16:35:25 +0100341
342LOCAL_STATIC_LIBRARIES := \
343 libneuralnetworks_common \
344 libboost_log \
345 libboost_program_options \
346 libboost_system \
347 libboost_thread \
Matteo Martincighd80ed2f2019-08-07 12:20:42 +0100348 libboost_filesystem \
Mike Kellyb5fdf382019-06-11 16:35:25 +0100349 armnn-arm_compute
350
351LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
352
353LOCAL_SHARED_LIBRARIES := \
354 libbase \
355 libhidlbase \
356 libhidltransport \
357 libhidlmemory \
358 liblog \
359 libutils \
360 libnativewindow \
361 libui \
362 libfmq \
363 libcutils \
364 android.hidl.allocator@1.0 \
365 android.hidl.memory@1.0 \
366 android.hardware.neuralnetworks@1.0 \
367 android.hardware.neuralnetworks@1.1 \
368 android.hardware.neuralnetworks@1.2
369
370ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
371LOCAL_SHARED_LIBRARIES+= \
372 libOpenCL
373endif
374
375include $(BUILD_STATIC_LIBRARY)
376
377endif # PLATFORM_VERSION == Q
378
telsoa015307bc12018-03-09 13:51:08 +0000379#####################################################
380# android.hardware.neuralnetworks@1.0-service-armnn #
381#####################################################
382include $(CLEAR_VARS)
383
384LOCAL_MODULE := android.hardware.neuralnetworks@1.0-service-armnn
385LOCAL_INIT_RC := android.hardware.neuralnetworks@1.0-service-armnn.rc
Sadik Armagand6539c52019-05-22 18:00:30 +0100386ifeq ($(Q_OR_LATER),1)
387# "eng" is deprecated in Android Q
388LOCAL_MODULE_TAGS := optional
389else
telsoa015307bc12018-03-09 13:51:08 +0000390LOCAL_MODULE_TAGS := eng optional
Sadik Armagand6539c52019-05-22 18:00:30 +0100391endif
telsoa015307bc12018-03-09 13:51:08 +0000392LOCAL_ARM_MODE := arm
393LOCAL_MODULE_RELATIVE_PATH := hw
394LOCAL_PROPRIETARY_MODULE := true
395# Mark source files as dependent on Android.mk
396LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
397
telsoa01ce3e84a2018-08-31 09:31:35 +0100398LOCAL_C_INCLUDES := \
399 $(ARMNN_HEADER_PATH) \
400 $(NN_HEADER_PATH)
telsoa015307bc12018-03-09 13:51:08 +0000401
402LOCAL_CFLAGS := \
Mike Kellyb5fdf382019-06-11 16:35:25 +0100403 -std=$(CPP_VERSION) \
telsoa01ce3e84a2018-08-31 09:31:35 +0100404 -fexceptions
telsoa015307bc12018-03-09 13:51:08 +0000405ifeq ($(ARMNN_DRIVER_DEBUG),1)
telsoa01ce3e84a2018-08-31 09:31:35 +0100406LOCAL_CFLAGS += \
407 -UNDEBUG
Matteo Martincigh69558df2018-08-31 16:18:19 +0100408endif # ARMNN_DRIVER_DEBUG == 1
telsoa015307bc12018-03-09 13:51:08 +0000409
Mike Kellyb5fdf382019-06-11 16:35:25 +0100410ifeq ($(Q_OR_LATER),1)
411LOCAL_CFLAGS += \
412 -DBOOST_NO_AUTO_PTR
413endif # PLATFORM_VERSION == Q or later
414
surmeh01deb3bdb2018-07-05 12:06:04 +0100415LOCAL_SRC_FILES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100416 service.cpp
telsoa015307bc12018-03-09 13:51:08 +0000417
418LOCAL_STATIC_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100419 libneuralnetworks_common \
telsoa01ce3e84a2018-08-31 09:31:35 +0100420 libboost_log \
421 libboost_program_options \
422 libboost_system \
423 libboost_thread \
Matteo Martincighd80ed2f2019-08-07 12:20:42 +0100424 libboost_filesystem \
telsoa01ce3e84a2018-08-31 09:31:35 +0100425 armnn-arm_compute
telsoa015307bc12018-03-09 13:51:08 +0000426
David Beckbeb3e1f2018-10-15 14:15:42 +0100427LOCAL_WHOLE_STATIC_LIBRARIES := \
428 libarmnn-driver@1.0
David Beckc965f3c2018-10-12 17:23:16 +0100429
surmeh01deb3bdb2018-07-05 12:06:04 +0100430LOCAL_SHARED_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100431 libbase \
432 libhidlbase \
433 libhidltransport \
434 libhidlmemory \
435 libdl \
436 libhardware \
437 liblog \
438 libtextclassifier_hash \
439 libutils \
440 android.hardware.neuralnetworks@1.0 \
441 android.hidl.allocator@1.0 \
Sadik Armagand6539c52019-05-22 18:00:30 +0100442 android.hidl.memory@1.0
443
444ifeq ($(P_OR_LATER),1)
surmeh01deb3bdb2018-07-05 12:06:04 +0100445# Required to build the 1.0 version of the NN Driver on Android P and later versions,
446# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
447LOCAL_SHARED_LIBRARIES+= \
telsoa01ce3e84a2018-08-31 09:31:35 +0100448 android.hardware.neuralnetworks@1.1
Matteo Martincigh69558df2018-08-31 16:18:19 +0100449endif # PLATFORM_VERSION == 9
Sadik Armagand6539c52019-05-22 18:00:30 +0100450ifeq ($(Q_OR_LATER),1)
451LOCAL_SHARED_LIBRARIES+= \
452 libnativewindow \
453 libui \
454 libfmq \
455 libcutils \
456 android.hardware.neuralnetworks@1.2
457endif # PLATFORM_VERSION == Q
458
459ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
460LOCAL_SHARED_LIBRARIES+= \
461 libOpenCL
462endif
telsoa015307bc12018-03-09 13:51:08 +0000463
464include $(BUILD_EXECUTABLE)
465
Sadik Armagand6539c52019-05-22 18:00:30 +0100466ifeq ($(P_OR_LATER),1)
Matteo Martincigh69558df2018-08-31 16:18:19 +0100467# The following target is available starting from Android P
468
telsoa01ce3e84a2018-08-31 09:31:35 +0100469#####################################################
470# android.hardware.neuralnetworks@1.1-service-armnn #
471#####################################################
472include $(CLEAR_VARS)
473
474LOCAL_MODULE := android.hardware.neuralnetworks@1.1-service-armnn
475LOCAL_INIT_RC := android.hardware.neuralnetworks@1.1-service-armnn.rc
Sadik Armagand6539c52019-05-22 18:00:30 +0100476ifeq ($(Q_OR_LATER),1)
477# "eng" is deprecated in Android Q
478LOCAL_MODULE_TAGS := optional
479else
telsoa01ce3e84a2018-08-31 09:31:35 +0100480LOCAL_MODULE_TAGS := eng optional
Sadik Armagand6539c52019-05-22 18:00:30 +0100481endif
telsoa01ce3e84a2018-08-31 09:31:35 +0100482LOCAL_ARM_MODE := arm
483LOCAL_MODULE_RELATIVE_PATH := hw
484LOCAL_PROPRIETARY_MODULE := true
485# Mark source files as dependent on Android.mk
486LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
487
488LOCAL_C_INCLUDES := \
489 $(ARMNN_HEADER_PATH) \
490 $(NN_HEADER_PATH)
491
492LOCAL_CFLAGS := \
Mike Kellyb5fdf382019-06-11 16:35:25 +0100493 -std=$(CPP_VERSION) \
telsoa01ce3e84a2018-08-31 09:31:35 +0100494 -fexceptions \
495 -DARMNN_ANDROID_NN_V1_1
496ifeq ($(ARMNN_DRIVER_DEBUG),1)
497LOCAL_CFLAGS += \
498 -UNDEBUG
Matteo Martincigh69558df2018-08-31 16:18:19 +0100499endif # ARMNN_DRIVER_DEBUG == 1
telsoa01ce3e84a2018-08-31 09:31:35 +0100500
Mike Kellyb5fdf382019-06-11 16:35:25 +0100501ifeq ($(Q_OR_LATER),1)
502LOCAL_CFLAGS += \
503 -DBOOST_NO_AUTO_PTR
504endif # PLATFORM_VERSION == Q or later
505
telsoa01ce3e84a2018-08-31 09:31:35 +0100506LOCAL_SRC_FILES := \
507 service.cpp
508
509LOCAL_STATIC_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100510 libneuralnetworks_common \
telsoa01ce3e84a2018-08-31 09:31:35 +0100511 libboost_log \
512 libboost_program_options \
513 libboost_system \
514 libboost_thread \
Matteo Martincighd80ed2f2019-08-07 12:20:42 +0100515 libboost_filesystem \
telsoa01ce3e84a2018-08-31 09:31:35 +0100516 armnn-arm_compute
517
David Beckbeb3e1f2018-10-15 14:15:42 +0100518LOCAL_WHOLE_STATIC_LIBRARIES := \
519 libarmnn-driver@1.1
David Beckc965f3c2018-10-12 17:23:16 +0100520
telsoa01ce3e84a2018-08-31 09:31:35 +0100521LOCAL_SHARED_LIBRARIES := \
522 libbase \
523 libhidlbase \
524 libhidltransport \
525 libhidlmemory \
526 libdl \
527 libhardware \
528 liblog \
529 libtextclassifier_hash \
530 libutils \
531 android.hardware.neuralnetworks@1.0 \
532 android.hardware.neuralnetworks@1.1 \
533 android.hidl.allocator@1.0 \
Sadik Armagand6539c52019-05-22 18:00:30 +0100534 android.hidl.memory@1.0
535
536ifeq ($(Q_OR_LATER),1)
537LOCAL_SHARED_LIBRARIES+= \
538 libnativewindow \
539 libui \
540 libfmq \
541 libcutils \
542 android.hardware.neuralnetworks@1.2
543endif # PLATFORM_VERSION == Q
544
545ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
546LOCAL_SHARED_LIBRARIES+= \
telsoa01ce3e84a2018-08-31 09:31:35 +0100547 libOpenCL
Sadik Armagand6539c52019-05-22 18:00:30 +0100548endif
telsoa01ce3e84a2018-08-31 09:31:35 +0100549
550include $(BUILD_EXECUTABLE)
551
Matteo Martincigh69558df2018-08-31 16:18:19 +0100552endif # PLATFORM_VERSION == 9
553
Mike Kellyb5fdf382019-06-11 16:35:25 +0100554ifeq ($(Q_OR_LATER),1)
555# The following target is available starting from Android Q
556
557#####################################################
558# android.hardware.neuralnetworks@1.2-service-armnn #
559#####################################################
560include $(CLEAR_VARS)
561
562LOCAL_MODULE := android.hardware.neuralnetworks@1.2-service-armnn
563LOCAL_INIT_RC := android.hardware.neuralnetworks@1.2-service-armnn.rc
564LOCAL_MODULE_TAGS := optional
565LOCAL_ARM_MODE := arm
566LOCAL_MODULE_RELATIVE_PATH := hw
567LOCAL_PROPRIETARY_MODULE := true
568# Mark source files as dependent on Android.mk
569LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
570
571LOCAL_C_INCLUDES := \
572 $(ARMNN_HEADER_PATH) \
573 $(NN_HEADER_PATH)
574
575LOCAL_CFLAGS := \
576 -std=$(CPP_VERSION) \
577 -fexceptions \
578 -DARMNN_ANDROID_NN_V1_2 \
579 -DBOOST_NO_AUTO_PTR
580ifeq ($(ARMNN_DRIVER_DEBUG),1)
581LOCAL_CFLAGS += \
582 -UNDEBUG
583endif # ARMNN_DRIVER_DEBUG == 1
584
585LOCAL_SRC_FILES := \
586 service.cpp
587
588LOCAL_STATIC_LIBRARIES := \
589 libneuralnetworks_common \
590 libboost_log \
591 libboost_program_options \
592 libboost_system \
593 libboost_thread \
Matteo Martincighd80ed2f2019-08-07 12:20:42 +0100594 libboost_filesystem \
Mike Kellyb5fdf382019-06-11 16:35:25 +0100595 armnn-arm_compute
596
597LOCAL_WHOLE_STATIC_LIBRARIES := \
598 libarmnn-driver@1.2
599
600LOCAL_SHARED_LIBRARIES := \
601 libbase \
602 libhidlbase \
603 libhidltransport \
604 libhidlmemory \
605 libdl \
606 libhardware \
607 liblog \
608 libtextclassifier_hash \
609 libutils \
610 libnativewindow \
611 libui \
612 libfmq \
613 libcutils \
614 android.hidl.allocator@1.0 \
615 android.hidl.memory@1.0 \
616 android.hardware.neuralnetworks@1.0 \
617 android.hardware.neuralnetworks@1.1 \
618 android.hardware.neuralnetworks@1.2
619
620ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
621LOCAL_SHARED_LIBRARIES+= \
622 libOpenCL
623endif
624
625include $(BUILD_EXECUTABLE)
626
627endif # PLATFORM_VERSION == Q
628
telsoa015307bc12018-03-09 13:51:08 +0000629##########################
630# armnn module and tests #
631##########################
632# Note we use ANDROID_NN_DRIVER_LOCAL_PATH rather than LOCAL_PATH because LOCAL_PATH will be overwritten
633# when including other .mk files that set it.
634include $(ANDROID_NN_DRIVER_LOCAL_PATH)/armnn/Android.mk
surmeh0149b9e102018-05-17 14:11:25 +0100635include $(ANDROID_NN_DRIVER_LOCAL_PATH)/test/Android.mk