blob: 1b4e248b6a7cec4212ac3c1f49b54e05e4e08bb8 [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
Colm Donelan08d9a1c2020-09-09 17:56:55 +010072ARMNN_THIRD_PARTY_PATH := $(LOCAL_PATH)/armnn/third-party
Mike Kelly0e415132020-02-11 11:21:25 +000073ARMNN_UTILS_HEADER_PATH := $(LOCAL_PATH)/armnn/src/armnnUtils
Colm Donelan0cc61782020-10-06 21:02:21 +010074ARMNN_THIRD_PARTY_PATH := $(LOCAL_PATH)/armnn/third-party
Mike Kelly0e415132020-02-11 11:21:25 +000075OPENCL_HEADER_PATH := $(LOCAL_PATH)/clframework/include
76NN_HEADER_PATH := $(LOCAL_PATH)/../../../frameworks/ml/nn/runtime/include
Sadik Armagan188675f2021-02-12 17:16:42 +000077ifeq ($(S_OR_LATER),1)
78NN_HEADER_PATH := $(LOCAL_PATH)/../../../packages/modules/NeuralNetworks/runtime/include
79endif
Mike Kelly0e415132020-02-11 11:21:25 +000080
81# Variables to control CL/NEON/reference backend support
82# Set them to '0' to disable support for a specific backend
83ARMNN_COMPUTE_CL_ENABLED := 1
84ARMNN_COMPUTE_NEON_ENABLED := 1
85ARMNN_REF_ENABLED := 1
FrancisMurtagh594b2832020-06-15 17:17:56 +010086ARMNN_ETHOSN_ENABLED := 1
Mike Kelly0e415132020-02-11 11:21:25 +000087
88ifeq ($(ARMNN_COMPUTE_CL_ENABLE),0)
89ARMNN_COMPUTE_CL_ENABLED := 0
90endif
91
92ifeq ($(ARMNN_COMPUTE_NEON_ENABLE),0)
93ARMNN_COMPUTE_NEON_ENABLED := 0
94endif
95
96ifeq ($(ARMNN_REF_ENABLE),0)
97ARMNN_REF_ENABLED := 0
98endif
99
FrancisMurtagh594b2832020-06-15 17:17:56 +0100100ifeq ($(ARMNN_ETHOSN_ENABLE),0)
101ARMNN_ETHOSN_ENABLED := 0
102endif
103
alered017c395b22020-04-03 15:37:24 +0100104# Variable to control inclusion of libOpenCL shared library
105ARMNN_INCLUDE_LIBOPENCL := $(ARMNN_COMPUTE_CL_ENABLED)
106ifeq ($(ARMNN_LIBOPENCL),0)
107ARMNN_INCLUDE_LIBOPENCL := 0
108endif
109
Narumol Prangnawaratcad4e912020-06-02 12:07:43 +0100110# Variable to control retire rate of priority queue
111RETIRE_RATE := 3
112
Mike Kelly0e415132020-02-11 11:21:25 +0000113#######################
114# libarmnn-driver@1.0 #
115#######################
116include $(CLEAR_VARS)
117
118LOCAL_MODULE := libarmnn-driver@1.0
119ifeq ($(Q_OR_LATER),1)
120# "eng" is deprecated in Android Q
121LOCAL_MODULE_TAGS := optional
122else
123LOCAL_MODULE_TAGS := eng optional
124endif
125LOCAL_ARM_MODE := arm
126LOCAL_PROPRIETARY_MODULE := true
127# Mark source files as dependent on Android.mk
128LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
129
130LOCAL_C_INCLUDES := \
131 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100132 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000133 $(ARMNN_UTILS_HEADER_PATH) \
Colm Donelan0cc61782020-10-06 21:02:21 +0100134 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000135 $(OPENCL_HEADER_PATH) \
136 $(NN_HEADER_PATH)
137
138LOCAL_CFLAGS := \
139 -std=$(CPP_VERSION) \
140 -fexceptions \
141 -Werror \
142 -Wno-format-security
143
Kevin Mayec1e5b82020-02-26 17:00:39 +0000144# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100145ifeq ($(ANDROID_R),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000146LOCAL_CFLAGS+= \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000147 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100148endif
Mike Kelly0e415132020-02-11 11:21:25 +0000149
Sadik Armagan188675f2021-02-12 17:16:42 +0000150ifeq ($(ANDROID_S),1)
151LOCAL_CFLAGS+= \
152 -DARMNN_ANDROID_S
153endif
154
Mike Kelly0e415132020-02-11 11:21:25 +0000155ifeq ($(ARMNN_DRIVER_DEBUG),1)
156LOCAL_CFLAGS+= \
157 -UNDEBUG
158endif # ARMNN_DRIVER_DEBUG == 1
159
Mike Kelly0e415132020-02-11 11:21:25 +0000160ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
161LOCAL_CFLAGS += \
162 -DARMCOMPUTECL_ENABLED
163endif # ARMNN_COMPUTE_CL_ENABLED == 1
164
165ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
166LOCAL_CFLAGS += \
167 -DARMCOMPUTENEON_ENABLED
168endif # ARMNN_COMPUTE_NEON_ENABLED == 1
169
170ifeq ($(ARMNN_REF_ENABLED),1)
171LOCAL_CFLAGS += \
172 -DARMNNREF_ENABLED
173endif # ARMNN_REF_ENABLED == 1
174
FrancisMurtagh594b2832020-06-15 17:17:56 +0100175ifeq ($(ARMNN_ETHOSN_ENABLED),1)
176LOCAL_CFLAGS += \
177 -DARMNNETHOSN_ENABLED
178endif # ARMNN_ETHOSN_ENABLED == 1
179
Mike Kelly0e415132020-02-11 11:21:25 +0000180LOCAL_SRC_FILES := \
181 1.0/ArmnnDriverImpl.cpp \
182 1.0/HalPolicy.cpp \
183 ArmnnDriverImpl.cpp \
184 DriverOptions.cpp \
185 ArmnnDevice.cpp \
186 ArmnnPreparedModel.cpp \
187 ModelToINetworkConverter.cpp \
188 RequestThread.cpp \
189 Utils.cpp \
190 ConversionUtils.cpp
191
192LOCAL_STATIC_LIBRARIES := \
193 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000194 libflatbuffers-framework \
Mike Kelly0e415132020-02-11 11:21:25 +0000195 arm_compute_library
196
197LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
198
199LOCAL_SHARED_LIBRARIES := \
200 libbase \
201 libhidlbase \
202 libhidltransport \
203 libhidlmemory \
204 liblog \
205 libutils \
206 android.hardware.neuralnetworks@1.0 \
207 android.hidl.allocator@1.0 \
208 android.hidl.memory@1.0
209
210ifeq ($(P_OR_LATER),1)
211# Required to build the 1.0 version of the NN Driver on Android P and later versions,
212# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
213LOCAL_SHARED_LIBRARIES+= \
214 android.hardware.neuralnetworks@1.1
215endif # PLATFORM_VERSION == 9
216
217ifeq ($(Q_OR_LATER),1)
218LOCAL_SHARED_LIBRARIES+= \
219 libnativewindow \
220 libui \
221 libfmq \
222 libcutils \
223 android.hardware.neuralnetworks@1.2
Kevin Mayec1e5b82020-02-26 17:00:39 +0000224endif # Q or later
225
226ifeq ($(R_OR_LATER),1)
227LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100228 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000229 android.hardware.neuralnetworks@1.3
230endif # R or later
Mike Kelly0e415132020-02-11 11:21:25 +0000231
alered01dbae2472020-04-07 12:31:10 +0100232ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000233LOCAL_SHARED_LIBRARIES+= \
234 libOpenCL
235endif
236
237include $(BUILD_STATIC_LIBRARY)
238
239ifeq ($(P_OR_LATER),1)
240# The following target is available starting from Android P
241
242#######################
243# libarmnn-driver@1.1 #
244#######################
245include $(CLEAR_VARS)
246
247LOCAL_MODULE := libarmnn-driver@1.1
248ifeq ($(Q_OR_LATER),1)
249# "eng" is deprecated in Android Q
250LOCAL_MODULE_TAGS := optional
251else
252LOCAL_MODULE_TAGS := eng optional
253endif
254#PRODUCT_PACKAGES_ENG := libarmnn-driver@1.1
255LOCAL_ARM_MODE := arm
256LOCAL_PROPRIETARY_MODULE := true
257# Mark source files as dependent on Android.mk
258LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
259
260LOCAL_C_INCLUDES := \
261 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100262 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000263 $(ARMNN_UTILS_HEADER_PATH) \
Colm Donelan0cc61782020-10-06 21:02:21 +0100264 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000265 $(OPENCL_HEADER_PATH) \
266 $(NN_HEADER_PATH)
267
268LOCAL_CFLAGS := \
269 -std=$(CPP_VERSION) \
270 -fexceptions \
271 -Werror \
Finn Williamsf769f292021-06-25 12:53:09 +0100272 -Wall \
273 -Wextra \
274 -Wno-unused-function \
Mike Kelly0e415132020-02-11 11:21:25 +0000275 -Wno-format-security \
Mike Kelly0e415132020-02-11 11:21:25 +0000276 -DARMNN_ANDROID_NN_V1_1
277
278ifeq ($(ARMNN_DRIVER_DEBUG),1)
279LOCAL_CFLAGS+= \
280 -UNDEBUG
281endif # ARMNN_DRIVER_DEBUG == 1
282
Kevin Mayec1e5b82020-02-26 17:00:39 +0000283# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100284ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000285LOCAL_CFLAGS+= \
286 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100287endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000288
Sadik Armagan188675f2021-02-12 17:16:42 +0000289ifeq ($(ANDROID_S),1)
290LOCAL_CFLAGS+= \
291 -DARMNN_ANDROID_S
292endif
293
Mike Kelly0e415132020-02-11 11:21:25 +0000294ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
295LOCAL_CFLAGS += \
296 -DARMCOMPUTECL_ENABLED
297endif # ARMNN_COMPUTE_CL_ENABLED == 1
298
299ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
300LOCAL_CFLAGS += \
301 -DARMCOMPUTENEON_ENABLED
302endif # ARMNN_COMPUTE_NEON_ENABLED == 1
303
304ifeq ($(ARMNN_REF_ENABLED),1)
305LOCAL_CFLAGS += \
306 -DARMNNREF_ENABLED
307endif # ARMNN_REF_ENABLED == 1
308
FrancisMurtagh594b2832020-06-15 17:17:56 +0100309ifeq ($(ARMNN_ETHOSN_ENABLED),1)
310LOCAL_CFLAGS += \
311 -DARMNNETHOSN_ENABLED
312endif # ARMNN_ETHOSN_ENABLED == 1
313
Mike Kelly0e415132020-02-11 11:21:25 +0000314LOCAL_SRC_FILES := \
315 1.0/ArmnnDriverImpl.cpp \
316 1.0/HalPolicy.cpp \
317 1.1/ArmnnDriverImpl.cpp \
318 1.1/HalPolicy.cpp \
319 ArmnnDriverImpl.cpp \
320 DriverOptions.cpp \
321 ArmnnDevice.cpp \
322 ArmnnPreparedModel.cpp \
323 ModelToINetworkConverter.cpp \
324 RequestThread.cpp \
325 Utils.cpp \
326 ConversionUtils.cpp
327
328LOCAL_STATIC_LIBRARIES := \
329 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000330 libflatbuffers-framework \
Mike Kelly0e415132020-02-11 11:21:25 +0000331 arm_compute_library
332
333LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
334
335LOCAL_SHARED_LIBRARIES := \
336 libbase \
337 libhidlbase \
338 libhidltransport \
339 libhidlmemory \
340 liblog \
341 libutils \
342 android.hardware.neuralnetworks@1.0 \
343 android.hardware.neuralnetworks@1.1 \
344 android.hidl.allocator@1.0 \
345 android.hidl.memory@1.0
346
347ifeq ($(Q_OR_LATER),1)
348LOCAL_SHARED_LIBRARIES+= \
349 libnativewindow \
350 libui \
351 libfmq \
352 libcutils \
353 android.hardware.neuralnetworks@1.2
354endif # PLATFORM_VERSION == Q
355
Kevin Mayec1e5b82020-02-26 17:00:39 +0000356ifeq ($(R_OR_LATER),1)
357LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100358 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000359 android.hardware.neuralnetworks@1.3
360endif # R or later
361
alered017c395b22020-04-03 15:37:24 +0100362ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000363LOCAL_SHARED_LIBRARIES+= \
364 libOpenCL
365endif
366
367include $(BUILD_STATIC_LIBRARY)
368
369endif # PLATFORM_VERSION == 9
370
371ifeq ($(Q_OR_LATER),1)
372# The following target is available starting from Android Q
373
374#######################
375# libarmnn-driver@1.2 #
376#######################
377include $(CLEAR_VARS)
378
379LOCAL_MODULE := libarmnn-driver@1.2
380LOCAL_MODULE_TAGS := optional
381LOCAL_ARM_MODE := arm
382LOCAL_PROPRIETARY_MODULE := true
383# Mark source files as dependent on Android.mk
384LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
385
386LOCAL_C_INCLUDES := \
387 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100388 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000389 $(ARMNN_UTILS_HEADER_PATH) \
Colm Donelan0cc61782020-10-06 21:02:21 +0100390 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000391 $(OPENCL_HEADER_PATH) \
392 $(NN_HEADER_PATH)
393
394LOCAL_CFLAGS := \
395 -std=$(CPP_VERSION) \
396 -fexceptions \
397 -Werror \
Finn Williamsf769f292021-06-25 12:53:09 +0100398 -Wall \
399 -Wextra \
400 -Wno-unused-function \
Mike Kelly0e415132020-02-11 11:21:25 +0000401 -Wno-format-security \
Mike Kelly0e415132020-02-11 11:21:25 +0000402 -DARMNN_ANDROID_NN_V1_2
403
404ifeq ($(ARMNN_DRIVER_DEBUG),1)
405LOCAL_CFLAGS+= \
406 -UNDEBUG
407endif # ARMNN_DRIVER_DEBUG == 1
408
Kevin Mayec1e5b82020-02-26 17:00:39 +0000409# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100410ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000411LOCAL_CFLAGS+= \
412 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100413endif
Mike Kelly0e415132020-02-11 11:21:25 +0000414
Sadik Armagan188675f2021-02-12 17:16:42 +0000415ifeq ($(ANDROID_S),1)
416LOCAL_CFLAGS+= \
417 -DARMNN_ANDROID_S
418endif
419
Mike Kelly0e415132020-02-11 11:21:25 +0000420ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
421LOCAL_CFLAGS += \
422 -DARMCOMPUTECL_ENABLED
423endif # ARMNN_COMPUTE_CL_ENABLED == 1
424
425ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
426LOCAL_CFLAGS += \
427 -DARMCOMPUTENEON_ENABLED
428endif # ARMNN_COMPUTE_NEON_ENABLED == 1
429
430ifeq ($(ARMNN_REF_ENABLED),1)
431LOCAL_CFLAGS += \
432 -DARMNNREF_ENABLED
433endif # ARMNN_REF_ENABLED == 1
434
FrancisMurtagh594b2832020-06-15 17:17:56 +0100435ifeq ($(ARMNN_ETHOSN_ENABLED),1)
436LOCAL_CFLAGS += \
437 -DARMNNETHOSN_ENABLED
438endif # ARMNN_ETHOSN_ENABLED == 1
439
Mike Kelly0e415132020-02-11 11:21:25 +0000440LOCAL_SRC_FILES := \
441 1.0/ArmnnDriverImpl.cpp \
442 1.0/HalPolicy.cpp \
443 1.1/ArmnnDriverImpl.cpp \
444 1.1/HalPolicy.cpp \
445 1.2/ArmnnDriverImpl.cpp \
446 1.2/HalPolicy.cpp \
447 ArmnnDevice.cpp \
448 ArmnnDriverImpl.cpp \
449 ArmnnPreparedModel.cpp \
450 ArmnnPreparedModel_1_2.cpp \
451 ConversionUtils.cpp \
452 DriverOptions.cpp \
453 ModelToINetworkConverter.cpp \
454 RequestThread.cpp \
455 Utils.cpp
456
457LOCAL_STATIC_LIBRARIES := \
458 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000459 libflatbuffers-framework \
Mike Kelly0e415132020-02-11 11:21:25 +0000460 arm_compute_library
461
462LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
463
464LOCAL_SHARED_LIBRARIES := \
465 libbase \
466 libhidlbase \
467 libhidltransport \
468 libhidlmemory \
469 liblog \
470 libutils \
471 libnativewindow \
472 libui \
473 libfmq \
474 libcutils \
475 android.hidl.allocator@1.0 \
476 android.hidl.memory@1.0 \
477 android.hardware.neuralnetworks@1.0 \
478 android.hardware.neuralnetworks@1.1 \
479 android.hardware.neuralnetworks@1.2
480
Kevin Mayec1e5b82020-02-26 17:00:39 +0000481ifeq ($(R_OR_LATER),1)
482LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100483 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000484 android.hardware.neuralnetworks@1.3
485endif # R or later
486
alered017c395b22020-04-03 15:37:24 +0100487ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000488LOCAL_SHARED_LIBRARIES+= \
489 libOpenCL
490endif
491
492include $(BUILD_STATIC_LIBRARY)
493
494endif # PLATFORM_VERSION == Q
495
Kevin May42477c12020-03-26 13:34:14 +0000496ifeq ($(R_OR_LATER),1)
497# The following target is available starting from Android R
498
499#######################
500# libarmnn-driver@1.3 #
501#######################
502include $(CLEAR_VARS)
503
504LOCAL_MODULE := libarmnn-driver@1.3
505LOCAL_MODULE_TAGS := optional
506LOCAL_ARM_MODE := arm
507LOCAL_PROPRIETARY_MODULE := true
508# Mark source files as dependent on Android.mk
509LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
510
511LOCAL_C_INCLUDES := \
512 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100513 $(ARMNN_THIRD_PARTY_PATH) \
Kevin May42477c12020-03-26 13:34:14 +0000514 $(ARMNN_UTILS_HEADER_PATH) \
Colm Donelan0cc61782020-10-06 21:02:21 +0100515 $(ARMNN_THIRD_PARTY_PATH) \
Kevin May42477c12020-03-26 13:34:14 +0000516 $(OPENCL_HEADER_PATH) \
517 $(NN_HEADER_PATH)
518
519LOCAL_CFLAGS := \
520 -std=$(CPP_VERSION) \
521 -fexceptions \
522 -Werror \
Finn Williamsf769f292021-06-25 12:53:09 +0100523 -Wall \
524 -Wextra \
525 -Wno-unused-function \
Kevin May42477c12020-03-26 13:34:14 +0000526 -Wno-format-security \
Kevin May42477c12020-03-26 13:34:14 +0000527 -DARMNN_ANDROID_NN_V1_3 \
Sadik Armagan188675f2021-02-12 17:16:42 +0000528
529ifeq ($(ANDROID_R),1)
530LOCAL_CFLAGS+= \
Kevin May42477c12020-03-26 13:34:14 +0000531 -DARMNN_ANDROID_R
Sadik Armagan188675f2021-02-12 17:16:42 +0000532endif
533
534ifeq ($(ANDROID_S),1)
535LOCAL_CFLAGS+= \
536 -DARMNN_ANDROID_S
537endif
Kevin May42477c12020-03-26 13:34:14 +0000538
539ifeq ($(ARMNN_DRIVER_DEBUG),1)
540LOCAL_CFLAGS+= \
541 -UNDEBUG
542endif # ARMNN_DRIVER_DEBUG == 1
543
544ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
545LOCAL_CFLAGS += \
546 -DARMCOMPUTECL_ENABLED
547endif # ARMNN_COMPUTE_CL_ENABLED == 1
548
549ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
550LOCAL_CFLAGS += \
551 -DARMCOMPUTENEON_ENABLED
552endif # ARMNN_COMPUTE_NEON_ENABLED == 1
553
554ifeq ($(ARMNN_REF_ENABLED),1)
555LOCAL_CFLAGS += \
556 -DARMNNREF_ENABLED
557endif # ARMNN_REF_ENABLED == 1
558
FrancisMurtagh594b2832020-06-15 17:17:56 +0100559ifeq ($(ARMNN_ETHOSN_ENABLED),1)
560LOCAL_CFLAGS += \
561 -DARMNNETHOSN_ENABLED
562endif # ARMNN_ETHOSN_ENABLED == 1
563
Narumol Prangnawaratcad4e912020-06-02 12:07:43 +0100564LOCAL_CFLAGS += \
565 -DRETIRE_RATE=$(RETIRE_RATE)
566
Kevin May42477c12020-03-26 13:34:14 +0000567LOCAL_SRC_FILES := \
568 1.0/ArmnnDriverImpl.cpp \
569 1.0/HalPolicy.cpp \
570 1.1/ArmnnDriverImpl.cpp \
571 1.1/HalPolicy.cpp \
572 1.2/ArmnnDriverImpl.cpp \
573 1.2/HalPolicy.cpp \
574 1.3/ArmnnDriverImpl.cpp \
575 1.3/HalPolicy.cpp \
576 ArmnnDevice.cpp \
577 ArmnnDriverImpl.cpp \
578 ArmnnPreparedModel.cpp \
579 ArmnnPreparedModel_1_2.cpp \
580 ArmnnPreparedModel_1_3.cpp \
581 ConversionUtils.cpp \
582 DriverOptions.cpp \
583 ModelToINetworkConverter.cpp \
584 RequestThread.cpp \
Narumol Prangnawaratcad4e912020-06-02 12:07:43 +0100585 RequestThread_1_3.cpp \
Kevin May42477c12020-03-26 13:34:14 +0000586 Utils.cpp
587
588LOCAL_STATIC_LIBRARIES := \
589 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000590 libflatbuffers-framework \
Kevin May42477c12020-03-26 13:34:14 +0000591 arm_compute_library
592
593LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
594
595LOCAL_SHARED_LIBRARIES := \
596 libbase \
597 libhidlbase \
598 libhidltransport \
599 libhidlmemory \
600 liblog \
601 libutils \
602 libnativewindow \
603 libui \
604 libfmq \
605 libcutils \
606 android.hidl.allocator@1.0 \
607 android.hidl.memory@1.0 \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100608 libsync \
Kevin May42477c12020-03-26 13:34:14 +0000609 android.hardware.neuralnetworks@1.0 \
610 android.hardware.neuralnetworks@1.1 \
611 android.hardware.neuralnetworks@1.2 \
612 android.hardware.neuralnetworks@1.3
613
alered017c395b22020-04-03 15:37:24 +0100614ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Kevin May42477c12020-03-26 13:34:14 +0000615LOCAL_SHARED_LIBRARIES+= \
616 libOpenCL
617endif
618
619include $(BUILD_STATIC_LIBRARY)
620
621endif # PLATFORM_VERSION == R
622
Mike Kelly0e415132020-02-11 11:21:25 +0000623#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100624# android.hardware.neuralnetworks@1.0-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000625#####################################################
626include $(CLEAR_VARS)
627
Kevin Mayabc95d02020-05-15 15:34:03 +0100628LOCAL_MODULE := android.hardware.neuralnetworks@1.0-service-armnn
629LOCAL_INIT_RC := android.hardware.neuralnetworks@1.0-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000630ifeq ($(Q_OR_LATER),1)
631# "eng" is deprecated in Android Q
632LOCAL_MODULE_TAGS := optional
633else
634LOCAL_MODULE_TAGS := eng optional
635endif
636LOCAL_ARM_MODE := arm
637LOCAL_MODULE_RELATIVE_PATH := hw
638LOCAL_PROPRIETARY_MODULE := true
639# Mark source files as dependent on Android.mk
640LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
641
642LOCAL_C_INCLUDES := \
643 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100644 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000645 $(NN_HEADER_PATH)
646
647LOCAL_CFLAGS := \
648 -std=$(CPP_VERSION) \
649 -fexceptions
650
651ifeq ($(ARMNN_DRIVER_DEBUG),1)
652LOCAL_CFLAGS += \
653 -UNDEBUG
654endif # ARMNN_DRIVER_DEBUG == 1
655
Kevin Mayec1e5b82020-02-26 17:00:39 +0000656# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100657ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000658LOCAL_CFLAGS+= \
659 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100660endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000661
Sadik Armagan188675f2021-02-12 17:16:42 +0000662ifeq ($(ANDROID_S),1)
663LOCAL_CFLAGS+= \
664 -DARMNN_ANDROID_S
665endif
666
Mike Kelly0e415132020-02-11 11:21:25 +0000667LOCAL_SRC_FILES := \
668 service.cpp
669
670LOCAL_STATIC_LIBRARIES := \
671 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000672 libflatbuffers-framework \
Mike Kelly0e415132020-02-11 11:21:25 +0000673 arm_compute_library
674
675LOCAL_WHOLE_STATIC_LIBRARIES := \
676 libarmnn-driver@1.0
677
678LOCAL_SHARED_LIBRARIES := \
679 libbase \
680 libhidlbase \
681 libhidltransport \
682 libhidlmemory \
683 libdl \
684 libhardware \
685 liblog \
686 libtextclassifier_hash \
687 libutils \
688 android.hardware.neuralnetworks@1.0 \
689 android.hidl.allocator@1.0 \
690 android.hidl.memory@1.0
691
692ifeq ($(P_OR_LATER),1)
693# Required to build the 1.0 version of the NN Driver on Android P and later versions,
694# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
695LOCAL_SHARED_LIBRARIES+= \
696 android.hardware.neuralnetworks@1.1
697endif # PLATFORM_VERSION == 9
Kevin Mayec1e5b82020-02-26 17:00:39 +0000698
Mike Kelly0e415132020-02-11 11:21:25 +0000699ifeq ($(Q_OR_LATER),1)
700LOCAL_SHARED_LIBRARIES+= \
701 libnativewindow \
702 libui \
703 libfmq \
704 libcutils \
705 android.hardware.neuralnetworks@1.2
706endif # PLATFORM_VERSION == Q
707
Kevin Mayec1e5b82020-02-26 17:00:39 +0000708ifeq ($(R_OR_LATER),1)
709LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100710 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000711 android.hardware.neuralnetworks@1.3
712endif # R or later
713
alered017c395b22020-04-03 15:37:24 +0100714ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000715LOCAL_SHARED_LIBRARIES+= \
716 libOpenCL
717endif
718
719include $(BUILD_EXECUTABLE)
720
721ifeq ($(P_OR_LATER),1)
722# The following target is available starting from Android P
723
724#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100725# android.hardware.neuralnetworks@1.1-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000726#####################################################
727include $(CLEAR_VARS)
728
Kevin Mayabc95d02020-05-15 15:34:03 +0100729LOCAL_MODULE := android.hardware.neuralnetworks@1.1-service-armnn
730LOCAL_INIT_RC := android.hardware.neuralnetworks@1.1-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000731ifeq ($(Q_OR_LATER),1)
732# "eng" is deprecated in Android Q
733LOCAL_MODULE_TAGS := optional
734else
735LOCAL_MODULE_TAGS := eng optional
736endif
737LOCAL_ARM_MODE := arm
738LOCAL_MODULE_RELATIVE_PATH := hw
739LOCAL_PROPRIETARY_MODULE := true
740# Mark source files as dependent on Android.mk
741LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
742
743LOCAL_C_INCLUDES := \
744 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100745 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000746 $(NN_HEADER_PATH)
747
748LOCAL_CFLAGS := \
749 -std=$(CPP_VERSION) \
750 -fexceptions \
751 -DARMNN_ANDROID_NN_V1_1
752
753ifeq ($(ARMNN_DRIVER_DEBUG),1)
754LOCAL_CFLAGS += \
755 -UNDEBUG
756endif # ARMNN_DRIVER_DEBUG == 1
757
Kevin Mayec1e5b82020-02-26 17:00:39 +0000758# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100759ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000760LOCAL_CFLAGS+= \
761 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100762endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000763
Sadik Armagan188675f2021-02-12 17:16:42 +0000764ifeq ($(ANDROID_S),1)
765LOCAL_CFLAGS+= \
766 -DARMNN_ANDROID_S
767endif
768
Mike Kelly0e415132020-02-11 11:21:25 +0000769LOCAL_SRC_FILES := \
770 service.cpp
771
772LOCAL_STATIC_LIBRARIES := \
773 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000774 libflatbuffers-framework \
Mike Kelly0e415132020-02-11 11:21:25 +0000775 arm_compute_library
776
777LOCAL_WHOLE_STATIC_LIBRARIES := \
778 libarmnn-driver@1.1
779
780LOCAL_SHARED_LIBRARIES := \
781 libbase \
782 libhidlbase \
783 libhidltransport \
784 libhidlmemory \
785 libdl \
786 libhardware \
787 liblog \
788 libtextclassifier_hash \
789 libutils \
790 android.hardware.neuralnetworks@1.0 \
791 android.hardware.neuralnetworks@1.1 \
792 android.hidl.allocator@1.0 \
793 android.hidl.memory@1.0
794
795ifeq ($(Q_OR_LATER),1)
796LOCAL_SHARED_LIBRARIES+= \
797 libnativewindow \
798 libui \
799 libfmq \
800 libcutils \
801 android.hardware.neuralnetworks@1.2
802endif # PLATFORM_VERSION == Q
803
Kevin Mayec1e5b82020-02-26 17:00:39 +0000804ifeq ($(R_OR_LATER),1)
805LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100806 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000807 android.hardware.neuralnetworks@1.3
808endif # PLATFORM_VERSION == R
809
alered017c395b22020-04-03 15:37:24 +0100810ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000811LOCAL_SHARED_LIBRARIES+= \
812 libOpenCL
813endif
814
815include $(BUILD_EXECUTABLE)
816
817endif # PLATFORM_VERSION == 9
818
819ifeq ($(Q_OR_LATER),1)
820# The following target is available starting from Android Q
821
822#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100823# android.hardware.neuralnetworks@1.2-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000824#####################################################
825include $(CLEAR_VARS)
826
Kevin Mayabc95d02020-05-15 15:34:03 +0100827LOCAL_MODULE := android.hardware.neuralnetworks@1.2-service-armnn
828LOCAL_INIT_RC := android.hardware.neuralnetworks@1.2-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000829LOCAL_MODULE_TAGS := optional
830LOCAL_ARM_MODE := arm
831LOCAL_MODULE_RELATIVE_PATH := hw
832LOCAL_PROPRIETARY_MODULE := true
833# Mark source files as dependent on Android.mk
834LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
835
836LOCAL_C_INCLUDES := \
837 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100838 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000839 $(NN_HEADER_PATH)
840
841LOCAL_CFLAGS := \
842 -std=$(CPP_VERSION) \
843 -fexceptions \
844 -DARMNN_ANDROID_NN_V1_2 \
Mike Kelly0e415132020-02-11 11:21:25 +0000845
846ifeq ($(ARMNN_DRIVER_DEBUG),1)
847LOCAL_CFLAGS += \
848 -UNDEBUG
849endif # ARMNN_DRIVER_DEBUG == 1
850
Kevin Mayec1e5b82020-02-26 17:00:39 +0000851# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100852ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000853LOCAL_CFLAGS+= \
854 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100855endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000856
Sadik Armagan188675f2021-02-12 17:16:42 +0000857ifeq ($(ANDROID_S),1)
858LOCAL_CFLAGS+= \
859 -DARMNN_ANDROID_S
860endif
861
Mike Kelly0e415132020-02-11 11:21:25 +0000862LOCAL_SRC_FILES := \
863 service.cpp
864
865LOCAL_STATIC_LIBRARIES := \
866 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000867 libflatbuffers-framework \
Mike Kelly0e415132020-02-11 11:21:25 +0000868 arm_compute_library
869
870LOCAL_WHOLE_STATIC_LIBRARIES := \
871 libarmnn-driver@1.2
872
873LOCAL_SHARED_LIBRARIES := \
874 libbase \
875 libhidlbase \
876 libhidltransport \
877 libhidlmemory \
878 libdl \
879 libhardware \
880 liblog \
881 libtextclassifier_hash \
882 libutils \
883 libnativewindow \
884 libui \
885 libfmq \
886 libcutils \
887 android.hidl.allocator@1.0 \
888 android.hidl.memory@1.0 \
889 android.hardware.neuralnetworks@1.0 \
890 android.hardware.neuralnetworks@1.1 \
891 android.hardware.neuralnetworks@1.2
892
Kevin Mayec1e5b82020-02-26 17:00:39 +0000893ifeq ($(R_OR_LATER),1)
894LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100895 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000896 android.hardware.neuralnetworks@1.3
897endif # R or later
898
alered017c395b22020-04-03 15:37:24 +0100899ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000900LOCAL_SHARED_LIBRARIES+= \
901 libOpenCL
902endif
903
904include $(BUILD_EXECUTABLE)
905
906endif # PLATFORM_VERSION == Q
907
Kevin May42477c12020-03-26 13:34:14 +0000908ifeq ($(R_OR_LATER),1)
909# The following target is available starting from Android R
910
911#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100912# android.hardware.neuralnetworks@1.3-service-armnn #
Kevin May42477c12020-03-26 13:34:14 +0000913#####################################################
914include $(CLEAR_VARS)
915
Kevin Mayabc95d02020-05-15 15:34:03 +0100916LOCAL_MODULE := android.hardware.neuralnetworks@1.3-service-armnn
917LOCAL_INIT_RC := android.hardware.neuralnetworks@1.3-service-armnn.rc
Kevin May42477c12020-03-26 13:34:14 +0000918LOCAL_MODULE_TAGS := optional
919LOCAL_ARM_MODE := arm
920LOCAL_MODULE_RELATIVE_PATH := hw
921LOCAL_PROPRIETARY_MODULE := true
922# Mark source files as dependent on Android.mk
923LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
924
925LOCAL_C_INCLUDES := \
926 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100927 $(ARMNN_THIRD_PARTY_PATH) \
Kevin May42477c12020-03-26 13:34:14 +0000928 $(NN_HEADER_PATH)
929
930LOCAL_CFLAGS := \
931 -std=$(CPP_VERSION) \
932 -fexceptions \
933 -DARMNN_ANDROID_NN_V1_3 \
Sadik Armagan188675f2021-02-12 17:16:42 +0000934
935ifeq ($(ANDROID_R),1)
936LOCAL_CFLAGS+= \
Kevin May42477c12020-03-26 13:34:14 +0000937 -DARMNN_ANDROID_R
Sadik Armagan188675f2021-02-12 17:16:42 +0000938endif
939
940ifeq ($(ANDROID_S),1)
941LOCAL_CFLAGS+= \
942 -DARMNN_ANDROID_S
943endif
Kevin May42477c12020-03-26 13:34:14 +0000944
945ifeq ($(ARMNN_DRIVER_DEBUG),1)
946LOCAL_CFLAGS += \
947 -UNDEBUG
948endif # ARMNN_DRIVER_DEBUG == 1
949
950LOCAL_SRC_FILES := \
951 service.cpp
952
953LOCAL_STATIC_LIBRARIES := \
954 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000955 libflatbuffers-framework \
Kevin May42477c12020-03-26 13:34:14 +0000956 arm_compute_library
957
958LOCAL_WHOLE_STATIC_LIBRARIES := \
959 libarmnn-driver@1.3
960
961LOCAL_SHARED_LIBRARIES := \
962 libbase \
963 libhidlbase \
964 libhidltransport \
965 libhidlmemory \
966 libdl \
967 libhardware \
968 liblog \
969 libtextclassifier_hash \
970 libutils \
971 libnativewindow \
972 libui \
973 libfmq \
974 libcutils \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100975 libsync \
Kevin May42477c12020-03-26 13:34:14 +0000976 android.hidl.allocator@1.0 \
977 android.hidl.memory@1.0 \
978 android.hardware.neuralnetworks@1.0 \
979 android.hardware.neuralnetworks@1.1 \
980 android.hardware.neuralnetworks@1.2 \
981 android.hardware.neuralnetworks@1.3
982
alered017c395b22020-04-03 15:37:24 +0100983ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Kevin May42477c12020-03-26 13:34:14 +0000984LOCAL_SHARED_LIBRARIES+= \
985 libOpenCL
986endif
987
988include $(BUILD_EXECUTABLE)
989
990endif # PLATFORM_VERSION == R
991
Mike Kelly0e415132020-02-11 11:21:25 +0000992##########################
993# armnn module and tests #
994##########################
995# Note we use ANDROID_NN_DRIVER_LOCAL_PATH rather than LOCAL_PATH because LOCAL_PATH will be overwritten
996# when including other .mk files that set it.
997include $(ANDROID_NN_DRIVER_LOCAL_PATH)/armnn/Android.mk
998include $(ANDROID_NN_DRIVER_LOCAL_PATH)/test/Android.mk