blob: 9bbee43dc1a131c60e2db22e8567286a87a26063 [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 \
Aron Virginas-Tar366e0a62019-07-10 13:01:41 +0100117 OutputShapeUtils.cpp \
telsoa01ce3e84a2018-08-31 09:31:35 +0100118 RequestThread.cpp \
arovir01b0717b52018-09-05 17:03:25 +0100119 Utils.cpp \
120 ConversionUtils.cpp
telsoa015307bc12018-03-09 13:51:08 +0000121
122LOCAL_STATIC_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100123 libneuralnetworks_common \
telsoa01ce3e84a2018-08-31 09:31:35 +0100124 libboost_log \
125 libboost_program_options \
126 libboost_system \
127 libboost_thread \
128 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 \
Aron Virginas-Tar366e0a62019-07-10 13:01:41 +0100231 OutputShapeUtils.cpp \
telsoa01ce3e84a2018-08-31 09:31:35 +0100232 RequestThread.cpp \
arovir01b0717b52018-09-05 17:03:25 +0100233 Utils.cpp \
234 ConversionUtils.cpp
telsoa01ce3e84a2018-08-31 09:31:35 +0100235
236LOCAL_STATIC_LIBRARIES := \
237 libneuralnetworks_common \
telsoa01ce3e84a2018-08-31 09:31:35 +0100238 libboost_log \
239 libboost_program_options \
240 libboost_system \
241 libboost_thread \
242 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 \
Aron Virginas-Tarf03fcf02019-07-09 17:44:24 +0100339 OutputShapeUtils.cpp \
Mike Kellyb5fdf382019-06-11 16:35:25 +0100340 RequestThread.cpp \
Matteo Martincigh17ffff32019-06-27 14:12:55 +0100341 Utils.cpp
Mike Kellyb5fdf382019-06-11 16:35:25 +0100342
343LOCAL_STATIC_LIBRARIES := \
344 libneuralnetworks_common \
345 libboost_log \
346 libboost_program_options \
347 libboost_system \
348 libboost_thread \
349 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 \
424 armnn-arm_compute
telsoa015307bc12018-03-09 13:51:08 +0000425
David Beckbeb3e1f2018-10-15 14:15:42 +0100426LOCAL_WHOLE_STATIC_LIBRARIES := \
427 libarmnn-driver@1.0
David Beckc965f3c2018-10-12 17:23:16 +0100428
surmeh01deb3bdb2018-07-05 12:06:04 +0100429LOCAL_SHARED_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100430 libbase \
431 libhidlbase \
432 libhidltransport \
433 libhidlmemory \
434 libdl \
435 libhardware \
436 liblog \
437 libtextclassifier_hash \
438 libutils \
439 android.hardware.neuralnetworks@1.0 \
440 android.hidl.allocator@1.0 \
Sadik Armagand6539c52019-05-22 18:00:30 +0100441 android.hidl.memory@1.0
442
443ifeq ($(P_OR_LATER),1)
surmeh01deb3bdb2018-07-05 12:06:04 +0100444# Required to build the 1.0 version of the NN Driver on Android P and later versions,
445# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
446LOCAL_SHARED_LIBRARIES+= \
telsoa01ce3e84a2018-08-31 09:31:35 +0100447 android.hardware.neuralnetworks@1.1
Matteo Martincigh69558df2018-08-31 16:18:19 +0100448endif # PLATFORM_VERSION == 9
Sadik Armagand6539c52019-05-22 18:00:30 +0100449ifeq ($(Q_OR_LATER),1)
450LOCAL_SHARED_LIBRARIES+= \
451 libnativewindow \
452 libui \
453 libfmq \
454 libcutils \
455 android.hardware.neuralnetworks@1.2
456endif # PLATFORM_VERSION == Q
457
458ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
459LOCAL_SHARED_LIBRARIES+= \
460 libOpenCL
461endif
telsoa015307bc12018-03-09 13:51:08 +0000462
463include $(BUILD_EXECUTABLE)
464
Sadik Armagand6539c52019-05-22 18:00:30 +0100465ifeq ($(P_OR_LATER),1)
Matteo Martincigh69558df2018-08-31 16:18:19 +0100466# The following target is available starting from Android P
467
telsoa01ce3e84a2018-08-31 09:31:35 +0100468#####################################################
469# android.hardware.neuralnetworks@1.1-service-armnn #
470#####################################################
471include $(CLEAR_VARS)
472
473LOCAL_MODULE := android.hardware.neuralnetworks@1.1-service-armnn
474LOCAL_INIT_RC := android.hardware.neuralnetworks@1.1-service-armnn.rc
Sadik Armagand6539c52019-05-22 18:00:30 +0100475ifeq ($(Q_OR_LATER),1)
476# "eng" is deprecated in Android Q
477LOCAL_MODULE_TAGS := optional
478else
telsoa01ce3e84a2018-08-31 09:31:35 +0100479LOCAL_MODULE_TAGS := eng optional
Sadik Armagand6539c52019-05-22 18:00:30 +0100480endif
telsoa01ce3e84a2018-08-31 09:31:35 +0100481LOCAL_ARM_MODE := arm
482LOCAL_MODULE_RELATIVE_PATH := hw
483LOCAL_PROPRIETARY_MODULE := true
484# Mark source files as dependent on Android.mk
485LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
486
487LOCAL_C_INCLUDES := \
488 $(ARMNN_HEADER_PATH) \
489 $(NN_HEADER_PATH)
490
491LOCAL_CFLAGS := \
Mike Kellyb5fdf382019-06-11 16:35:25 +0100492 -std=$(CPP_VERSION) \
telsoa01ce3e84a2018-08-31 09:31:35 +0100493 -fexceptions \
494 -DARMNN_ANDROID_NN_V1_1
495ifeq ($(ARMNN_DRIVER_DEBUG),1)
496LOCAL_CFLAGS += \
497 -UNDEBUG
Matteo Martincigh69558df2018-08-31 16:18:19 +0100498endif # ARMNN_DRIVER_DEBUG == 1
telsoa01ce3e84a2018-08-31 09:31:35 +0100499
Mike Kellyb5fdf382019-06-11 16:35:25 +0100500ifeq ($(Q_OR_LATER),1)
501LOCAL_CFLAGS += \
502 -DBOOST_NO_AUTO_PTR
503endif # PLATFORM_VERSION == Q or later
504
telsoa01ce3e84a2018-08-31 09:31:35 +0100505LOCAL_SRC_FILES := \
506 service.cpp
507
508LOCAL_STATIC_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100509 libneuralnetworks_common \
telsoa01ce3e84a2018-08-31 09:31:35 +0100510 libboost_log \
511 libboost_program_options \
512 libboost_system \
513 libboost_thread \
514 armnn-arm_compute
515
David Beckbeb3e1f2018-10-15 14:15:42 +0100516LOCAL_WHOLE_STATIC_LIBRARIES := \
517 libarmnn-driver@1.1
David Beckc965f3c2018-10-12 17:23:16 +0100518
telsoa01ce3e84a2018-08-31 09:31:35 +0100519LOCAL_SHARED_LIBRARIES := \
520 libbase \
521 libhidlbase \
522 libhidltransport \
523 libhidlmemory \
524 libdl \
525 libhardware \
526 liblog \
527 libtextclassifier_hash \
528 libutils \
529 android.hardware.neuralnetworks@1.0 \
530 android.hardware.neuralnetworks@1.1 \
531 android.hidl.allocator@1.0 \
Sadik Armagand6539c52019-05-22 18:00:30 +0100532 android.hidl.memory@1.0
533
534ifeq ($(Q_OR_LATER),1)
535LOCAL_SHARED_LIBRARIES+= \
536 libnativewindow \
537 libui \
538 libfmq \
539 libcutils \
540 android.hardware.neuralnetworks@1.2
541endif # PLATFORM_VERSION == Q
542
543ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
544LOCAL_SHARED_LIBRARIES+= \
telsoa01ce3e84a2018-08-31 09:31:35 +0100545 libOpenCL
Sadik Armagand6539c52019-05-22 18:00:30 +0100546endif
telsoa01ce3e84a2018-08-31 09:31:35 +0100547
548include $(BUILD_EXECUTABLE)
549
Matteo Martincigh69558df2018-08-31 16:18:19 +0100550endif # PLATFORM_VERSION == 9
551
Mike Kellyb5fdf382019-06-11 16:35:25 +0100552ifeq ($(Q_OR_LATER),1)
553# The following target is available starting from Android Q
554
555#####################################################
556# android.hardware.neuralnetworks@1.2-service-armnn #
557#####################################################
558include $(CLEAR_VARS)
559
560LOCAL_MODULE := android.hardware.neuralnetworks@1.2-service-armnn
561LOCAL_INIT_RC := android.hardware.neuralnetworks@1.2-service-armnn.rc
562LOCAL_MODULE_TAGS := optional
563LOCAL_ARM_MODE := arm
564LOCAL_MODULE_RELATIVE_PATH := hw
565LOCAL_PROPRIETARY_MODULE := true
566# Mark source files as dependent on Android.mk
567LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
568
569LOCAL_C_INCLUDES := \
570 $(ARMNN_HEADER_PATH) \
571 $(NN_HEADER_PATH)
572
573LOCAL_CFLAGS := \
574 -std=$(CPP_VERSION) \
575 -fexceptions \
576 -DARMNN_ANDROID_NN_V1_2 \
577 -DBOOST_NO_AUTO_PTR
578ifeq ($(ARMNN_DRIVER_DEBUG),1)
579LOCAL_CFLAGS += \
580 -UNDEBUG
581endif # ARMNN_DRIVER_DEBUG == 1
582
583LOCAL_SRC_FILES := \
584 service.cpp
585
586LOCAL_STATIC_LIBRARIES := \
587 libneuralnetworks_common \
588 libboost_log \
589 libboost_program_options \
590 libboost_system \
591 libboost_thread \
592 armnn-arm_compute
593
594LOCAL_WHOLE_STATIC_LIBRARIES := \
595 libarmnn-driver@1.2
596
597LOCAL_SHARED_LIBRARIES := \
598 libbase \
599 libhidlbase \
600 libhidltransport \
601 libhidlmemory \
602 libdl \
603 libhardware \
604 liblog \
605 libtextclassifier_hash \
606 libutils \
607 libnativewindow \
608 libui \
609 libfmq \
610 libcutils \
611 android.hidl.allocator@1.0 \
612 android.hidl.memory@1.0 \
613 android.hardware.neuralnetworks@1.0 \
614 android.hardware.neuralnetworks@1.1 \
615 android.hardware.neuralnetworks@1.2
616
617ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
618LOCAL_SHARED_LIBRARIES+= \
619 libOpenCL
620endif
621
622include $(BUILD_EXECUTABLE)
623
624endif # PLATFORM_VERSION == Q
625
telsoa015307bc12018-03-09 13:51:08 +0000626##########################
627# armnn module and tests #
628##########################
629# Note we use ANDROID_NN_DRIVER_LOCAL_PATH rather than LOCAL_PATH because LOCAL_PATH will be overwritten
630# when including other .mk files that set it.
631include $(ANDROID_NN_DRIVER_LOCAL_PATH)/armnn/Android.mk
surmeh0149b9e102018-05-17 14:11:25 +0100632include $(ANDROID_NN_DRIVER_LOCAL_PATH)/test/Android.mk