blob: 21ef13637ea9daa3bb7d1beba2fc8c8b480af273 [file] [log] [blame]
Mike Kelly0e415132020-02-11 11:21:25 +00001#
2# Copyright © 2017 ARM Ltd. All rights reserved.
3# SPDX-License-Identifier: MIT
4#
5
6ANDROID_NN_DRIVER_LOCAL_PATH := $(call my-dir)
7LOCAL_PATH := $(ANDROID_NN_DRIVER_LOCAL_PATH)
8
9P_OR_LATER := 0
10Q_OR_LATER := 0
Kevin Mayec1e5b82020-02-26 17:00:39 +000011R_OR_LATER := 0
Sadik Armagan188675f2021-02-12 17:16:42 +000012S_OR_LATER := 0
Kevin May157f8f42020-06-02 14:50:01 +010013ANDROID_R := 0
Sadik Armagan188675f2021-02-12 17:16:42 +000014ANDROID_S := 0
Mike Kelly0e415132020-02-11 11:21:25 +000015
16ifeq ($(PLATFORM_VERSION),9)
17P_OR_LATER := 1
18endif # PLATFORM_VERSION == 9
19ifeq ($(PLATFORM_VERSION),P)
20P_OR_LATER := 1
21endif # PLATFORM_VERSION == P
22
23ifeq ($(PLATFORM_VERSION),10)
24P_OR_LATER := 1
25Q_OR_LATER := 1
26endif # PLATFORM_VERSION == 10
27ifeq ($(PLATFORM_VERSION),Q)
28P_OR_LATER := 1
29Q_OR_LATER := 1
30endif # PLATFORM_VERSION == Q
31
Kevin Mayec1e5b82020-02-26 17:00:39 +000032ifeq ($(PLATFORM_VERSION),R)
33P_OR_LATER := 1
34Q_OR_LATER := 1
35R_OR_LATER := 1
Kevin May157f8f42020-06-02 14:50:01 +010036ANDROID_R := 1
Kevin Mayec1e5b82020-02-26 17:00:39 +000037endif # PLATFORM_VERSION == R
38
Kevin May157f8f42020-06-02 14:50:01 +010039ifeq ($(PLATFORM_VERSION),11)
40P_OR_LATER := 1
41Q_OR_LATER := 1
42R_OR_LATER := 1
43ANDROID_R := 1
44endif # PLATFORM_VERSION == 11
45
Sadik Armagan188675f2021-02-12 17:16:42 +000046ifeq ($(PLATFORM_VERSION),S)
47P_OR_LATER := 1
48Q_OR_LATER := 1
49R_OR_LATER := 1
50S_OR_LATER := 1
51ANDROID_R := 0
52ANDROID_S := 1
53endif # PLATFORM_VERSION == S
54
55ifeq ($(PLATFORM_VERSION),12)
56P_OR_LATER := 1
57Q_OR_LATER := 1
58R_OR_LATER := 1
59S_OR_LATER := 1
60ANDROID_R := 0
61ANDROID_S := 1
62endif # PLATFORM_VERSION == 12
63
Mike Kelly0e415132020-02-11 11:21:25 +000064CPP_VERSION := c++14
65
66ifeq ($(Q_OR_LATER),1)
67CPP_VERSION := c++17
68endif
69
70# Configure these paths if you move the source or Khronos headers
71ARMNN_HEADER_PATH := $(LOCAL_PATH)/armnn/include
Zingo Andersenf65b2662021-10-27 07:04:11 +020072ARMNN_BACKEND_MAKEFILE_LOCAL_PATHS := $(wildcard $(LOCAL_PATH)/armnn/src/backends/*/backend.mk)
73ARMNN_BACKEND_MAKEFILE_PATHS := $(subst $(LOCAL_PATH),,$(ARMNN_BACKEND_MAKEFILE_LOCAL_PATHS))
74ARMNN_BACKEND_MAKEFILE_DIRS := $(subst /backend.mk,,$(ARMNN_BACKEND_MAKEFILE_PATHS))
Colm Donelan08d9a1c2020-09-09 17:56:55 +010075ARMNN_THIRD_PARTY_PATH := $(LOCAL_PATH)/armnn/third-party
Mike Kelly0e415132020-02-11 11:21:25 +000076ARMNN_UTILS_HEADER_PATH := $(LOCAL_PATH)/armnn/src/armnnUtils
Colm Donelan0cc61782020-10-06 21:02:21 +010077ARMNN_THIRD_PARTY_PATH := $(LOCAL_PATH)/armnn/third-party
Mike Kelly0e415132020-02-11 11:21:25 +000078OPENCL_HEADER_PATH := $(LOCAL_PATH)/clframework/include
79NN_HEADER_PATH := $(LOCAL_PATH)/../../../frameworks/ml/nn/runtime/include
Sadik Armagan188675f2021-02-12 17:16:42 +000080ifeq ($(S_OR_LATER),1)
81NN_HEADER_PATH := $(LOCAL_PATH)/../../../packages/modules/NeuralNetworks/runtime/include
82endif
Mike Kelly0e415132020-02-11 11:21:25 +000083
84# Variables to control CL/NEON/reference backend support
85# Set them to '0' to disable support for a specific backend
86ARMNN_COMPUTE_CL_ENABLED := 1
87ARMNN_COMPUTE_NEON_ENABLED := 1
88ARMNN_REF_ENABLED := 1
Kevin May20c62252022-01-31 14:51:16 +000089ARMNN_ETHOSN_ENABLED := 0
Mike Kelly0e415132020-02-11 11:21:25 +000090
91ifeq ($(ARMNN_COMPUTE_CL_ENABLE),0)
92ARMNN_COMPUTE_CL_ENABLED := 0
93endif
94
95ifeq ($(ARMNN_COMPUTE_NEON_ENABLE),0)
96ARMNN_COMPUTE_NEON_ENABLED := 0
97endif
98
99ifeq ($(ARMNN_REF_ENABLE),0)
100ARMNN_REF_ENABLED := 0
101endif
102
Kevin May20c62252022-01-31 14:51:16 +0000103ifeq ($(ARMNN_ETHOSN_ENABLE),1)
104ARMNN_ETHOSN_ENABLED := 1
FrancisMurtagh594b2832020-06-15 17:17:56 +0100105endif
106
alered017c395b22020-04-03 15:37:24 +0100107# Variable to control inclusion of libOpenCL shared library
108ARMNN_INCLUDE_LIBOPENCL := $(ARMNN_COMPUTE_CL_ENABLED)
109ifeq ($(ARMNN_LIBOPENCL),0)
110ARMNN_INCLUDE_LIBOPENCL := 0
111endif
112
Narumol Prangnawaratcad4e912020-06-02 12:07:43 +0100113# Variable to control retire rate of priority queue
114RETIRE_RATE := 3
115
Zingo Andersenf65b2662021-10-27 07:04:11 +0200116# Placeholder to hold all backend link files.
117ARMNN_BACKEND_STATIC_LIBRARIES :=
118ARMNN_BACKEND_SHARED_LIBRARIES :=
119
120# Iterate through the Arm NN backends and specific include paths, include them into the
121# current makefile and append the linkfiles held by
122# the optional BACKEND_STATIC_LIBRARIES and optional BACKEND_SHARED_LIBRARIES variable
123# (included from the given makefile) to
124# the ARMNN_BACKEND_STATIC_LIBRARIES and ARMNN_BACKEND_SHARED_LIBRARIES lists
125
126$(foreach mkPath,$(ARMNN_BACKEND_MAKEFILE_DIRS),\
127 $(eval include $(LOCAL_PATH)/$(mkPath)/backend.mk)\
128 $(eval ARMNN_BACKEND_STATIC_LIBRARIES += $(BACKEND_STATIC_LIBRARIES)))
129
130$(foreach mkPath,$(ARMNN_BACKEND_MAKEFILE_DIRS),\
131 $(eval include $(LOCAL_PATH)/$(mkPath)/backend.mk)\
132 $(eval ARMNN_BACKEND_SHARED_LIBRARIES += $(BACKEND_SHARED_LIBRARIES)))
133
Mike Kelly0e415132020-02-11 11:21:25 +0000134#######################
135# libarmnn-driver@1.0 #
136#######################
137include $(CLEAR_VARS)
138
139LOCAL_MODULE := libarmnn-driver@1.0
140ifeq ($(Q_OR_LATER),1)
141# "eng" is deprecated in Android Q
142LOCAL_MODULE_TAGS := optional
143else
144LOCAL_MODULE_TAGS := eng optional
145endif
146LOCAL_ARM_MODE := arm
147LOCAL_PROPRIETARY_MODULE := true
148# Mark source files as dependent on Android.mk
149LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
150
151LOCAL_C_INCLUDES := \
152 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100153 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000154 $(ARMNN_UTILS_HEADER_PATH) \
Colm Donelan0cc61782020-10-06 21:02:21 +0100155 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000156 $(OPENCL_HEADER_PATH) \
157 $(NN_HEADER_PATH)
158
159LOCAL_CFLAGS := \
160 -std=$(CPP_VERSION) \
161 -fexceptions \
162 -Werror \
163 -Wno-format-security
164
Kevin Mayec1e5b82020-02-26 17:00:39 +0000165# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100166ifeq ($(ANDROID_R),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000167LOCAL_CFLAGS+= \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000168 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100169endif
Mike Kelly0e415132020-02-11 11:21:25 +0000170
Sadik Armagan188675f2021-02-12 17:16:42 +0000171ifeq ($(ANDROID_S),1)
172LOCAL_CFLAGS+= \
173 -DARMNN_ANDROID_S
174endif
175
Mike Kelly0e415132020-02-11 11:21:25 +0000176ifeq ($(ARMNN_DRIVER_DEBUG),1)
177LOCAL_CFLAGS+= \
178 -UNDEBUG
179endif # ARMNN_DRIVER_DEBUG == 1
180
Mike Kelly0e415132020-02-11 11:21:25 +0000181ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
182LOCAL_CFLAGS += \
183 -DARMCOMPUTECL_ENABLED
184endif # ARMNN_COMPUTE_CL_ENABLED == 1
185
186ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
187LOCAL_CFLAGS += \
188 -DARMCOMPUTENEON_ENABLED
189endif # ARMNN_COMPUTE_NEON_ENABLED == 1
190
191ifeq ($(ARMNN_REF_ENABLED),1)
192LOCAL_CFLAGS += \
193 -DARMNNREF_ENABLED
194endif # ARMNN_REF_ENABLED == 1
195
FrancisMurtagh594b2832020-06-15 17:17:56 +0100196ifeq ($(ARMNN_ETHOSN_ENABLED),1)
197LOCAL_CFLAGS += \
198 -DARMNNETHOSN_ENABLED
199endif # ARMNN_ETHOSN_ENABLED == 1
200
Mike Kelly0e415132020-02-11 11:21:25 +0000201LOCAL_SRC_FILES := \
202 1.0/ArmnnDriverImpl.cpp \
203 1.0/HalPolicy.cpp \
204 ArmnnDriverImpl.cpp \
205 DriverOptions.cpp \
206 ArmnnDevice.cpp \
207 ArmnnPreparedModel.cpp \
208 ModelToINetworkConverter.cpp \
209 RequestThread.cpp \
210 Utils.cpp \
211 ConversionUtils.cpp
212
213LOCAL_STATIC_LIBRARIES := \
214 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000215 libflatbuffers-framework \
Zingo Andersene02562b2021-12-14 13:58:56 +0100216 arm_compute_library \
217 $(ARMNN_BACKEND_STATIC_LIBRARIES)
Mike Kelly0e415132020-02-11 11:21:25 +0000218
219LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
220
221LOCAL_SHARED_LIBRARIES := \
222 libbase \
223 libhidlbase \
224 libhidltransport \
225 libhidlmemory \
226 liblog \
227 libutils \
228 android.hardware.neuralnetworks@1.0 \
229 android.hidl.allocator@1.0 \
230 android.hidl.memory@1.0
231
232ifeq ($(P_OR_LATER),1)
233# Required to build the 1.0 version of the NN Driver on Android P and later versions,
234# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
235LOCAL_SHARED_LIBRARIES+= \
236 android.hardware.neuralnetworks@1.1
237endif # PLATFORM_VERSION == 9
238
239ifeq ($(Q_OR_LATER),1)
240LOCAL_SHARED_LIBRARIES+= \
241 libnativewindow \
242 libui \
243 libfmq \
244 libcutils \
245 android.hardware.neuralnetworks@1.2
Kevin Mayec1e5b82020-02-26 17:00:39 +0000246endif # Q or later
247
248ifeq ($(R_OR_LATER),1)
249LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100250 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000251 android.hardware.neuralnetworks@1.3
252endif # R or later
Mike Kelly0e415132020-02-11 11:21:25 +0000253
alered01dbae2472020-04-07 12:31:10 +0100254ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000255LOCAL_SHARED_LIBRARIES+= \
256 libOpenCL
257endif
258
259include $(BUILD_STATIC_LIBRARY)
260
261ifeq ($(P_OR_LATER),1)
262# The following target is available starting from Android P
263
264#######################
265# libarmnn-driver@1.1 #
266#######################
267include $(CLEAR_VARS)
268
269LOCAL_MODULE := libarmnn-driver@1.1
270ifeq ($(Q_OR_LATER),1)
271# "eng" is deprecated in Android Q
272LOCAL_MODULE_TAGS := optional
273else
274LOCAL_MODULE_TAGS := eng optional
275endif
276#PRODUCT_PACKAGES_ENG := libarmnn-driver@1.1
277LOCAL_ARM_MODE := arm
278LOCAL_PROPRIETARY_MODULE := true
279# Mark source files as dependent on Android.mk
280LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
281
282LOCAL_C_INCLUDES := \
283 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100284 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000285 $(ARMNN_UTILS_HEADER_PATH) \
Colm Donelan0cc61782020-10-06 21:02:21 +0100286 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000287 $(OPENCL_HEADER_PATH) \
288 $(NN_HEADER_PATH)
289
290LOCAL_CFLAGS := \
291 -std=$(CPP_VERSION) \
292 -fexceptions \
293 -Werror \
Finn Williamsf769f292021-06-25 12:53:09 +0100294 -Wall \
295 -Wextra \
296 -Wno-unused-function \
Mike Kelly0e415132020-02-11 11:21:25 +0000297 -Wno-format-security \
Mike Kelly0e415132020-02-11 11:21:25 +0000298 -DARMNN_ANDROID_NN_V1_1
299
300ifeq ($(ARMNN_DRIVER_DEBUG),1)
301LOCAL_CFLAGS+= \
302 -UNDEBUG
303endif # ARMNN_DRIVER_DEBUG == 1
304
Kevin Mayec1e5b82020-02-26 17:00:39 +0000305# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100306ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000307LOCAL_CFLAGS+= \
308 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100309endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000310
Sadik Armagan188675f2021-02-12 17:16:42 +0000311ifeq ($(ANDROID_S),1)
312LOCAL_CFLAGS+= \
313 -DARMNN_ANDROID_S
314endif
315
Mike Kelly0e415132020-02-11 11:21:25 +0000316ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
317LOCAL_CFLAGS += \
318 -DARMCOMPUTECL_ENABLED
319endif # ARMNN_COMPUTE_CL_ENABLED == 1
320
321ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
322LOCAL_CFLAGS += \
323 -DARMCOMPUTENEON_ENABLED
324endif # ARMNN_COMPUTE_NEON_ENABLED == 1
325
326ifeq ($(ARMNN_REF_ENABLED),1)
327LOCAL_CFLAGS += \
328 -DARMNNREF_ENABLED
329endif # ARMNN_REF_ENABLED == 1
330
FrancisMurtagh594b2832020-06-15 17:17:56 +0100331ifeq ($(ARMNN_ETHOSN_ENABLED),1)
332LOCAL_CFLAGS += \
333 -DARMNNETHOSN_ENABLED
334endif # ARMNN_ETHOSN_ENABLED == 1
335
Mike Kelly0e415132020-02-11 11:21:25 +0000336LOCAL_SRC_FILES := \
337 1.0/ArmnnDriverImpl.cpp \
338 1.0/HalPolicy.cpp \
339 1.1/ArmnnDriverImpl.cpp \
340 1.1/HalPolicy.cpp \
341 ArmnnDriverImpl.cpp \
342 DriverOptions.cpp \
343 ArmnnDevice.cpp \
344 ArmnnPreparedModel.cpp \
345 ModelToINetworkConverter.cpp \
346 RequestThread.cpp \
347 Utils.cpp \
348 ConversionUtils.cpp
349
350LOCAL_STATIC_LIBRARIES := \
351 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000352 libflatbuffers-framework \
Zingo Andersene02562b2021-12-14 13:58:56 +0100353 arm_compute_library \
354 $(ARMNN_BACKEND_STATIC_LIBRARIES)
Mike Kelly0e415132020-02-11 11:21:25 +0000355
356LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
357
358LOCAL_SHARED_LIBRARIES := \
359 libbase \
360 libhidlbase \
361 libhidltransport \
362 libhidlmemory \
363 liblog \
364 libutils \
365 android.hardware.neuralnetworks@1.0 \
366 android.hardware.neuralnetworks@1.1 \
367 android.hidl.allocator@1.0 \
368 android.hidl.memory@1.0
369
370ifeq ($(Q_OR_LATER),1)
371LOCAL_SHARED_LIBRARIES+= \
372 libnativewindow \
373 libui \
374 libfmq \
375 libcutils \
376 android.hardware.neuralnetworks@1.2
377endif # PLATFORM_VERSION == Q
378
Kevin Mayec1e5b82020-02-26 17:00:39 +0000379ifeq ($(R_OR_LATER),1)
380LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100381 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000382 android.hardware.neuralnetworks@1.3
383endif # R or later
384
alered017c395b22020-04-03 15:37:24 +0100385ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000386LOCAL_SHARED_LIBRARIES+= \
387 libOpenCL
388endif
389
390include $(BUILD_STATIC_LIBRARY)
391
392endif # PLATFORM_VERSION == 9
393
394ifeq ($(Q_OR_LATER),1)
395# The following target is available starting from Android Q
396
397#######################
398# libarmnn-driver@1.2 #
399#######################
400include $(CLEAR_VARS)
401
402LOCAL_MODULE := libarmnn-driver@1.2
403LOCAL_MODULE_TAGS := optional
404LOCAL_ARM_MODE := arm
405LOCAL_PROPRIETARY_MODULE := true
406# Mark source files as dependent on Android.mk
407LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
408
409LOCAL_C_INCLUDES := \
410 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100411 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000412 $(ARMNN_UTILS_HEADER_PATH) \
Colm Donelan0cc61782020-10-06 21:02:21 +0100413 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000414 $(OPENCL_HEADER_PATH) \
415 $(NN_HEADER_PATH)
416
417LOCAL_CFLAGS := \
418 -std=$(CPP_VERSION) \
419 -fexceptions \
420 -Werror \
Finn Williamsf769f292021-06-25 12:53:09 +0100421 -Wall \
422 -Wextra \
423 -Wno-unused-function \
Mike Kelly0e415132020-02-11 11:21:25 +0000424 -Wno-format-security \
Mike Kelly0e415132020-02-11 11:21:25 +0000425 -DARMNN_ANDROID_NN_V1_2
426
427ifeq ($(ARMNN_DRIVER_DEBUG),1)
428LOCAL_CFLAGS+= \
429 -UNDEBUG
430endif # ARMNN_DRIVER_DEBUG == 1
431
Kevin Mayec1e5b82020-02-26 17:00:39 +0000432# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100433ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000434LOCAL_CFLAGS+= \
435 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100436endif
Mike Kelly0e415132020-02-11 11:21:25 +0000437
Sadik Armagan188675f2021-02-12 17:16:42 +0000438ifeq ($(ANDROID_S),1)
439LOCAL_CFLAGS+= \
440 -DARMNN_ANDROID_S
441endif
442
Mike Kelly0e415132020-02-11 11:21:25 +0000443ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
444LOCAL_CFLAGS += \
445 -DARMCOMPUTECL_ENABLED
446endif # ARMNN_COMPUTE_CL_ENABLED == 1
447
448ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
449LOCAL_CFLAGS += \
450 -DARMCOMPUTENEON_ENABLED
451endif # ARMNN_COMPUTE_NEON_ENABLED == 1
452
453ifeq ($(ARMNN_REF_ENABLED),1)
454LOCAL_CFLAGS += \
455 -DARMNNREF_ENABLED
456endif # ARMNN_REF_ENABLED == 1
457
FrancisMurtagh594b2832020-06-15 17:17:56 +0100458ifeq ($(ARMNN_ETHOSN_ENABLED),1)
459LOCAL_CFLAGS += \
460 -DARMNNETHOSN_ENABLED
461endif # ARMNN_ETHOSN_ENABLED == 1
462
Mike Kelly0e415132020-02-11 11:21:25 +0000463LOCAL_SRC_FILES := \
464 1.0/ArmnnDriverImpl.cpp \
465 1.0/HalPolicy.cpp \
466 1.1/ArmnnDriverImpl.cpp \
467 1.1/HalPolicy.cpp \
468 1.2/ArmnnDriverImpl.cpp \
469 1.2/HalPolicy.cpp \
470 ArmnnDevice.cpp \
471 ArmnnDriverImpl.cpp \
472 ArmnnPreparedModel.cpp \
473 ArmnnPreparedModel_1_2.cpp \
Sadik Armagan0a2dfab2021-10-06 16:41:44 +0100474 CacheDataHandler.cpp \
Mike Kelly0e415132020-02-11 11:21:25 +0000475 ConversionUtils.cpp \
476 DriverOptions.cpp \
477 ModelToINetworkConverter.cpp \
478 RequestThread.cpp \
479 Utils.cpp
480
481LOCAL_STATIC_LIBRARIES := \
482 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000483 libflatbuffers-framework \
Zingo Andersene02562b2021-12-14 13:58:56 +0100484 arm_compute_library \
485 $(ARMNN_BACKEND_STATIC_LIBRARIES)
Mike Kelly0e415132020-02-11 11:21:25 +0000486
487LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
488
489LOCAL_SHARED_LIBRARIES := \
490 libbase \
491 libhidlbase \
492 libhidltransport \
493 libhidlmemory \
494 liblog \
495 libutils \
496 libnativewindow \
497 libui \
498 libfmq \
499 libcutils \
500 android.hidl.allocator@1.0 \
501 android.hidl.memory@1.0 \
502 android.hardware.neuralnetworks@1.0 \
503 android.hardware.neuralnetworks@1.1 \
504 android.hardware.neuralnetworks@1.2
505
Kevin Mayec1e5b82020-02-26 17:00:39 +0000506ifeq ($(R_OR_LATER),1)
507LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100508 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000509 android.hardware.neuralnetworks@1.3
510endif # R or later
511
alered017c395b22020-04-03 15:37:24 +0100512ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000513LOCAL_SHARED_LIBRARIES+= \
514 libOpenCL
515endif
516
517include $(BUILD_STATIC_LIBRARY)
518
519endif # PLATFORM_VERSION == Q
520
Kevin May42477c12020-03-26 13:34:14 +0000521ifeq ($(R_OR_LATER),1)
522# The following target is available starting from Android R
523
524#######################
525# libarmnn-driver@1.3 #
526#######################
527include $(CLEAR_VARS)
528
529LOCAL_MODULE := libarmnn-driver@1.3
530LOCAL_MODULE_TAGS := optional
531LOCAL_ARM_MODE := arm
532LOCAL_PROPRIETARY_MODULE := true
533# Mark source files as dependent on Android.mk
534LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
535
536LOCAL_C_INCLUDES := \
537 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100538 $(ARMNN_THIRD_PARTY_PATH) \
Kevin May42477c12020-03-26 13:34:14 +0000539 $(ARMNN_UTILS_HEADER_PATH) \
Colm Donelan0cc61782020-10-06 21:02:21 +0100540 $(ARMNN_THIRD_PARTY_PATH) \
Kevin May42477c12020-03-26 13:34:14 +0000541 $(OPENCL_HEADER_PATH) \
542 $(NN_HEADER_PATH)
543
544LOCAL_CFLAGS := \
545 -std=$(CPP_VERSION) \
546 -fexceptions \
547 -Werror \
Finn Williamsf769f292021-06-25 12:53:09 +0100548 -Wall \
549 -Wextra \
550 -Wno-unused-function \
Kevin May42477c12020-03-26 13:34:14 +0000551 -Wno-format-security \
Kevin May42477c12020-03-26 13:34:14 +0000552 -DARMNN_ANDROID_NN_V1_3 \
Sadik Armagan188675f2021-02-12 17:16:42 +0000553
554ifeq ($(ANDROID_R),1)
555LOCAL_CFLAGS+= \
Kevin May42477c12020-03-26 13:34:14 +0000556 -DARMNN_ANDROID_R
Sadik Armagan188675f2021-02-12 17:16:42 +0000557endif
558
559ifeq ($(ANDROID_S),1)
560LOCAL_CFLAGS+= \
561 -DARMNN_ANDROID_S
562endif
Kevin May42477c12020-03-26 13:34:14 +0000563
564ifeq ($(ARMNN_DRIVER_DEBUG),1)
565LOCAL_CFLAGS+= \
566 -UNDEBUG
567endif # ARMNN_DRIVER_DEBUG == 1
568
569ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
570LOCAL_CFLAGS += \
571 -DARMCOMPUTECL_ENABLED
572endif # ARMNN_COMPUTE_CL_ENABLED == 1
573
574ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
575LOCAL_CFLAGS += \
576 -DARMCOMPUTENEON_ENABLED
577endif # ARMNN_COMPUTE_NEON_ENABLED == 1
578
579ifeq ($(ARMNN_REF_ENABLED),1)
580LOCAL_CFLAGS += \
581 -DARMNNREF_ENABLED
582endif # ARMNN_REF_ENABLED == 1
583
FrancisMurtagh594b2832020-06-15 17:17:56 +0100584ifeq ($(ARMNN_ETHOSN_ENABLED),1)
585LOCAL_CFLAGS += \
586 -DARMNNETHOSN_ENABLED
587endif # ARMNN_ETHOSN_ENABLED == 1
588
Narumol Prangnawaratcad4e912020-06-02 12:07:43 +0100589LOCAL_CFLAGS += \
590 -DRETIRE_RATE=$(RETIRE_RATE)
591
Kevin May42477c12020-03-26 13:34:14 +0000592LOCAL_SRC_FILES := \
593 1.0/ArmnnDriverImpl.cpp \
594 1.0/HalPolicy.cpp \
595 1.1/ArmnnDriverImpl.cpp \
596 1.1/HalPolicy.cpp \
597 1.2/ArmnnDriverImpl.cpp \
598 1.2/HalPolicy.cpp \
599 1.3/ArmnnDriverImpl.cpp \
600 1.3/HalPolicy.cpp \
601 ArmnnDevice.cpp \
602 ArmnnDriverImpl.cpp \
603 ArmnnPreparedModel.cpp \
604 ArmnnPreparedModel_1_2.cpp \
605 ArmnnPreparedModel_1_3.cpp \
Sadik Armagan0a2dfab2021-10-06 16:41:44 +0100606 CacheDataHandler.cpp \
Kevin May42477c12020-03-26 13:34:14 +0000607 ConversionUtils.cpp \
608 DriverOptions.cpp \
609 ModelToINetworkConverter.cpp \
610 RequestThread.cpp \
Narumol Prangnawaratcad4e912020-06-02 12:07:43 +0100611 RequestThread_1_3.cpp \
Kevin May42477c12020-03-26 13:34:14 +0000612 Utils.cpp
613
614LOCAL_STATIC_LIBRARIES := \
615 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000616 libflatbuffers-framework \
Zingo Andersene02562b2021-12-14 13:58:56 +0100617 arm_compute_library \
618 $(ARMNN_BACKEND_STATIC_LIBRARIES)
Kevin May42477c12020-03-26 13:34:14 +0000619
620LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
621
622LOCAL_SHARED_LIBRARIES := \
623 libbase \
624 libhidlbase \
625 libhidltransport \
626 libhidlmemory \
627 liblog \
628 libutils \
629 libnativewindow \
630 libui \
631 libfmq \
632 libcutils \
633 android.hidl.allocator@1.0 \
634 android.hidl.memory@1.0 \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100635 libsync \
Kevin May42477c12020-03-26 13:34:14 +0000636 android.hardware.neuralnetworks@1.0 \
637 android.hardware.neuralnetworks@1.1 \
638 android.hardware.neuralnetworks@1.2 \
639 android.hardware.neuralnetworks@1.3
640
alered017c395b22020-04-03 15:37:24 +0100641ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Kevin May42477c12020-03-26 13:34:14 +0000642LOCAL_SHARED_LIBRARIES+= \
643 libOpenCL
644endif
645
646include $(BUILD_STATIC_LIBRARY)
647
648endif # PLATFORM_VERSION == R
649
Mike Kelly0e415132020-02-11 11:21:25 +0000650#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100651# android.hardware.neuralnetworks@1.0-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000652#####################################################
653include $(CLEAR_VARS)
654
Kevin Mayabc95d02020-05-15 15:34:03 +0100655LOCAL_MODULE := android.hardware.neuralnetworks@1.0-service-armnn
656LOCAL_INIT_RC := android.hardware.neuralnetworks@1.0-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000657ifeq ($(Q_OR_LATER),1)
658# "eng" is deprecated in Android Q
659LOCAL_MODULE_TAGS := optional
660else
661LOCAL_MODULE_TAGS := eng optional
662endif
663LOCAL_ARM_MODE := arm
664LOCAL_MODULE_RELATIVE_PATH := hw
665LOCAL_PROPRIETARY_MODULE := true
666# Mark source files as dependent on Android.mk
667LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
668
669LOCAL_C_INCLUDES := \
670 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100671 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000672 $(NN_HEADER_PATH)
673
674LOCAL_CFLAGS := \
675 -std=$(CPP_VERSION) \
676 -fexceptions
677
678ifeq ($(ARMNN_DRIVER_DEBUG),1)
679LOCAL_CFLAGS += \
680 -UNDEBUG
681endif # ARMNN_DRIVER_DEBUG == 1
682
Kevin Mayec1e5b82020-02-26 17:00:39 +0000683# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100684ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000685LOCAL_CFLAGS+= \
686 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100687endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000688
Sadik Armagan188675f2021-02-12 17:16:42 +0000689ifeq ($(ANDROID_S),1)
690LOCAL_CFLAGS+= \
691 -DARMNN_ANDROID_S
692endif
693
Mike Kelly0e415132020-02-11 11:21:25 +0000694LOCAL_SRC_FILES := \
695 service.cpp
696
697LOCAL_STATIC_LIBRARIES := \
698 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000699 libflatbuffers-framework \
Zingo Andersenf65b2662021-10-27 07:04:11 +0200700 arm_compute_library \
701 $(ARMNN_BACKEND_STATIC_LIBRARIES)
Mike Kelly0e415132020-02-11 11:21:25 +0000702
703LOCAL_WHOLE_STATIC_LIBRARIES := \
704 libarmnn-driver@1.0
705
706LOCAL_SHARED_LIBRARIES := \
707 libbase \
708 libhidlbase \
709 libhidltransport \
710 libhidlmemory \
711 libdl \
712 libhardware \
713 liblog \
714 libtextclassifier_hash \
715 libutils \
716 android.hardware.neuralnetworks@1.0 \
717 android.hidl.allocator@1.0 \
Zingo Andersenf65b2662021-10-27 07:04:11 +0200718 android.hidl.memory@1.0 \
719 $(ARMNN_BACKEND_SHARED_LIBRARIES)
Mike Kelly0e415132020-02-11 11:21:25 +0000720
721ifeq ($(P_OR_LATER),1)
722# Required to build the 1.0 version of the NN Driver on Android P and later versions,
723# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
724LOCAL_SHARED_LIBRARIES+= \
725 android.hardware.neuralnetworks@1.1
726endif # PLATFORM_VERSION == 9
Kevin Mayec1e5b82020-02-26 17:00:39 +0000727
Mike Kelly0e415132020-02-11 11:21:25 +0000728ifeq ($(Q_OR_LATER),1)
729LOCAL_SHARED_LIBRARIES+= \
730 libnativewindow \
731 libui \
732 libfmq \
733 libcutils \
734 android.hardware.neuralnetworks@1.2
735endif # PLATFORM_VERSION == Q
736
Kevin Mayec1e5b82020-02-26 17:00:39 +0000737ifeq ($(R_OR_LATER),1)
738LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100739 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000740 android.hardware.neuralnetworks@1.3
741endif # R or later
742
alered017c395b22020-04-03 15:37:24 +0100743ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000744LOCAL_SHARED_LIBRARIES+= \
745 libOpenCL
746endif
747
748include $(BUILD_EXECUTABLE)
749
750ifeq ($(P_OR_LATER),1)
751# The following target is available starting from Android P
752
753#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100754# android.hardware.neuralnetworks@1.1-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000755#####################################################
756include $(CLEAR_VARS)
757
Kevin Mayabc95d02020-05-15 15:34:03 +0100758LOCAL_MODULE := android.hardware.neuralnetworks@1.1-service-armnn
759LOCAL_INIT_RC := android.hardware.neuralnetworks@1.1-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000760ifeq ($(Q_OR_LATER),1)
761# "eng" is deprecated in Android Q
762LOCAL_MODULE_TAGS := optional
763else
764LOCAL_MODULE_TAGS := eng optional
765endif
766LOCAL_ARM_MODE := arm
767LOCAL_MODULE_RELATIVE_PATH := hw
768LOCAL_PROPRIETARY_MODULE := true
769# Mark source files as dependent on Android.mk
770LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
771
772LOCAL_C_INCLUDES := \
773 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100774 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000775 $(NN_HEADER_PATH)
776
777LOCAL_CFLAGS := \
778 -std=$(CPP_VERSION) \
779 -fexceptions \
780 -DARMNN_ANDROID_NN_V1_1
781
782ifeq ($(ARMNN_DRIVER_DEBUG),1)
783LOCAL_CFLAGS += \
784 -UNDEBUG
785endif # ARMNN_DRIVER_DEBUG == 1
786
Kevin Mayec1e5b82020-02-26 17:00:39 +0000787# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100788ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000789LOCAL_CFLAGS+= \
790 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100791endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000792
Sadik Armagan188675f2021-02-12 17:16:42 +0000793ifeq ($(ANDROID_S),1)
794LOCAL_CFLAGS+= \
795 -DARMNN_ANDROID_S
796endif
797
Mike Kelly0e415132020-02-11 11:21:25 +0000798LOCAL_SRC_FILES := \
799 service.cpp
800
801LOCAL_STATIC_LIBRARIES := \
802 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000803 libflatbuffers-framework \
Zingo Andersenf65b2662021-10-27 07:04:11 +0200804 arm_compute_library \
805 $(ARMNN_BACKEND_STATIC_LIBRARIES)
Mike Kelly0e415132020-02-11 11:21:25 +0000806
807LOCAL_WHOLE_STATIC_LIBRARIES := \
808 libarmnn-driver@1.1
809
810LOCAL_SHARED_LIBRARIES := \
811 libbase \
812 libhidlbase \
813 libhidltransport \
814 libhidlmemory \
815 libdl \
816 libhardware \
817 liblog \
818 libtextclassifier_hash \
819 libutils \
820 android.hardware.neuralnetworks@1.0 \
821 android.hardware.neuralnetworks@1.1 \
822 android.hidl.allocator@1.0 \
Zingo Andersenf65b2662021-10-27 07:04:11 +0200823 android.hidl.memory@1.0 \
824 $(ARMNN_BACKEND_SHARED_LIBRARIES)
Mike Kelly0e415132020-02-11 11:21:25 +0000825
826ifeq ($(Q_OR_LATER),1)
827LOCAL_SHARED_LIBRARIES+= \
828 libnativewindow \
829 libui \
830 libfmq \
831 libcutils \
832 android.hardware.neuralnetworks@1.2
833endif # PLATFORM_VERSION == Q
834
Kevin Mayec1e5b82020-02-26 17:00:39 +0000835ifeq ($(R_OR_LATER),1)
836LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100837 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000838 android.hardware.neuralnetworks@1.3
839endif # PLATFORM_VERSION == R
840
alered017c395b22020-04-03 15:37:24 +0100841ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000842LOCAL_SHARED_LIBRARIES+= \
843 libOpenCL
844endif
845
846include $(BUILD_EXECUTABLE)
847
848endif # PLATFORM_VERSION == 9
849
850ifeq ($(Q_OR_LATER),1)
851# The following target is available starting from Android Q
852
853#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100854# android.hardware.neuralnetworks@1.2-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000855#####################################################
856include $(CLEAR_VARS)
857
Kevin Mayabc95d02020-05-15 15:34:03 +0100858LOCAL_MODULE := android.hardware.neuralnetworks@1.2-service-armnn
859LOCAL_INIT_RC := android.hardware.neuralnetworks@1.2-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000860LOCAL_MODULE_TAGS := optional
861LOCAL_ARM_MODE := arm
862LOCAL_MODULE_RELATIVE_PATH := hw
863LOCAL_PROPRIETARY_MODULE := true
864# Mark source files as dependent on Android.mk
865LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
866
867LOCAL_C_INCLUDES := \
868 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100869 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000870 $(NN_HEADER_PATH)
871
872LOCAL_CFLAGS := \
873 -std=$(CPP_VERSION) \
874 -fexceptions \
875 -DARMNN_ANDROID_NN_V1_2 \
Mike Kelly0e415132020-02-11 11:21:25 +0000876
877ifeq ($(ARMNN_DRIVER_DEBUG),1)
878LOCAL_CFLAGS += \
879 -UNDEBUG
880endif # ARMNN_DRIVER_DEBUG == 1
881
Kevin Mayec1e5b82020-02-26 17:00:39 +0000882# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100883ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000884LOCAL_CFLAGS+= \
885 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100886endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000887
Sadik Armagan188675f2021-02-12 17:16:42 +0000888ifeq ($(ANDROID_S),1)
889LOCAL_CFLAGS+= \
890 -DARMNN_ANDROID_S
891endif
892
Mike Kelly0e415132020-02-11 11:21:25 +0000893LOCAL_SRC_FILES := \
894 service.cpp
895
896LOCAL_STATIC_LIBRARIES := \
897 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000898 libflatbuffers-framework \
Zingo Andersenf65b2662021-10-27 07:04:11 +0200899 arm_compute_library \
900 $(ARMNN_BACKEND_STATIC_LIBRARIES)
Mike Kelly0e415132020-02-11 11:21:25 +0000901
902LOCAL_WHOLE_STATIC_LIBRARIES := \
903 libarmnn-driver@1.2
904
905LOCAL_SHARED_LIBRARIES := \
906 libbase \
907 libhidlbase \
908 libhidltransport \
909 libhidlmemory \
910 libdl \
911 libhardware \
912 liblog \
913 libtextclassifier_hash \
914 libutils \
915 libnativewindow \
916 libui \
917 libfmq \
918 libcutils \
919 android.hidl.allocator@1.0 \
920 android.hidl.memory@1.0 \
921 android.hardware.neuralnetworks@1.0 \
922 android.hardware.neuralnetworks@1.1 \
Zingo Andersenf65b2662021-10-27 07:04:11 +0200923 android.hardware.neuralnetworks@1.2 \
924 $(ARMNN_BACKEND_SHARED_LIBRARIES)
Mike Kelly0e415132020-02-11 11:21:25 +0000925
Kevin Mayec1e5b82020-02-26 17:00:39 +0000926ifeq ($(R_OR_LATER),1)
927LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100928 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000929 android.hardware.neuralnetworks@1.3
930endif # R or later
931
alered017c395b22020-04-03 15:37:24 +0100932ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000933LOCAL_SHARED_LIBRARIES+= \
934 libOpenCL
935endif
936
937include $(BUILD_EXECUTABLE)
938
939endif # PLATFORM_VERSION == Q
940
Kevin May42477c12020-03-26 13:34:14 +0000941ifeq ($(R_OR_LATER),1)
942# The following target is available starting from Android R
943
944#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100945# android.hardware.neuralnetworks@1.3-service-armnn #
Kevin May42477c12020-03-26 13:34:14 +0000946#####################################################
947include $(CLEAR_VARS)
948
Kevin Mayabc95d02020-05-15 15:34:03 +0100949LOCAL_MODULE := android.hardware.neuralnetworks@1.3-service-armnn
950LOCAL_INIT_RC := android.hardware.neuralnetworks@1.3-service-armnn.rc
Kevin May42477c12020-03-26 13:34:14 +0000951LOCAL_MODULE_TAGS := optional
952LOCAL_ARM_MODE := arm
953LOCAL_MODULE_RELATIVE_PATH := hw
954LOCAL_PROPRIETARY_MODULE := true
955# Mark source files as dependent on Android.mk
956LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
957
958LOCAL_C_INCLUDES := \
959 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100960 $(ARMNN_THIRD_PARTY_PATH) \
Kevin May42477c12020-03-26 13:34:14 +0000961 $(NN_HEADER_PATH)
962
963LOCAL_CFLAGS := \
964 -std=$(CPP_VERSION) \
965 -fexceptions \
966 -DARMNN_ANDROID_NN_V1_3 \
Sadik Armagan188675f2021-02-12 17:16:42 +0000967
968ifeq ($(ANDROID_R),1)
969LOCAL_CFLAGS+= \
Kevin May42477c12020-03-26 13:34:14 +0000970 -DARMNN_ANDROID_R
Sadik Armagan188675f2021-02-12 17:16:42 +0000971endif
972
973ifeq ($(ANDROID_S),1)
974LOCAL_CFLAGS+= \
975 -DARMNN_ANDROID_S
976endif
Kevin May42477c12020-03-26 13:34:14 +0000977
978ifeq ($(ARMNN_DRIVER_DEBUG),1)
979LOCAL_CFLAGS += \
980 -UNDEBUG
981endif # ARMNN_DRIVER_DEBUG == 1
982
983LOCAL_SRC_FILES := \
984 service.cpp
985
986LOCAL_STATIC_LIBRARIES := \
987 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000988 libflatbuffers-framework \
Zingo Andersenf65b2662021-10-27 07:04:11 +0200989 arm_compute_library \
990 $(ARMNN_BACKEND_STATIC_LIBRARIES)
Kevin May42477c12020-03-26 13:34:14 +0000991
992LOCAL_WHOLE_STATIC_LIBRARIES := \
993 libarmnn-driver@1.3
994
995LOCAL_SHARED_LIBRARIES := \
996 libbase \
997 libhidlbase \
998 libhidltransport \
999 libhidlmemory \
1000 libdl \
1001 libhardware \
1002 liblog \
1003 libtextclassifier_hash \
1004 libutils \
1005 libnativewindow \
1006 libui \
1007 libfmq \
1008 libcutils \
Sadik Armagand7be72e2020-04-23 12:56:05 +01001009 libsync \
Kevin May42477c12020-03-26 13:34:14 +00001010 android.hidl.allocator@1.0 \
1011 android.hidl.memory@1.0 \
1012 android.hardware.neuralnetworks@1.0 \
1013 android.hardware.neuralnetworks@1.1 \
1014 android.hardware.neuralnetworks@1.2 \
Zingo Andersenf65b2662021-10-27 07:04:11 +02001015 android.hardware.neuralnetworks@1.3 \
1016 $(ARMNN_BACKEND_SHARED_LIBRARIES)
Kevin May42477c12020-03-26 13:34:14 +00001017
alered017c395b22020-04-03 15:37:24 +01001018ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Kevin May42477c12020-03-26 13:34:14 +00001019LOCAL_SHARED_LIBRARIES+= \
1020 libOpenCL
1021endif
1022
1023include $(BUILD_EXECUTABLE)
1024
1025endif # PLATFORM_VERSION == R
1026
Mike Kelly0e415132020-02-11 11:21:25 +00001027##########################
1028# armnn module and tests #
1029##########################
1030# Note we use ANDROID_NN_DRIVER_LOCAL_PATH rather than LOCAL_PATH because LOCAL_PATH will be overwritten
1031# when including other .mk files that set it.
1032include $(ANDROID_NN_DRIVER_LOCAL_PATH)/armnn/Android.mk
1033include $(ANDROID_NN_DRIVER_LOCAL_PATH)/test/Android.mk