blob: 9cbf71f3236bd857ec964f099c526814b642346d [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
Kevin May157f8f42020-06-02 14:50:01 +010012ANDROID_R := 0
Mike Kelly0e415132020-02-11 11:21:25 +000013
14ifeq ($(PLATFORM_VERSION),9)
15P_OR_LATER := 1
16endif # PLATFORM_VERSION == 9
17ifeq ($(PLATFORM_VERSION),P)
18P_OR_LATER := 1
19endif # PLATFORM_VERSION == P
20
21ifeq ($(PLATFORM_VERSION),10)
22P_OR_LATER := 1
23Q_OR_LATER := 1
24endif # PLATFORM_VERSION == 10
25ifeq ($(PLATFORM_VERSION),Q)
26P_OR_LATER := 1
27Q_OR_LATER := 1
28endif # PLATFORM_VERSION == Q
29
Kevin Mayec1e5b82020-02-26 17:00:39 +000030ifeq ($(PLATFORM_VERSION),R)
31P_OR_LATER := 1
32Q_OR_LATER := 1
33R_OR_LATER := 1
Kevin May157f8f42020-06-02 14:50:01 +010034ANDROID_R := 1
Kevin Mayec1e5b82020-02-26 17:00:39 +000035endif # PLATFORM_VERSION == R
36
Kevin May157f8f42020-06-02 14:50:01 +010037ifeq ($(PLATFORM_VERSION),11)
38P_OR_LATER := 1
39Q_OR_LATER := 1
40R_OR_LATER := 1
41ANDROID_R := 1
42endif # PLATFORM_VERSION == 11
43
Mike Kelly0e415132020-02-11 11:21:25 +000044CPP_VERSION := c++14
45
46ifeq ($(Q_OR_LATER),1)
47CPP_VERSION := c++17
48endif
49
50# Configure these paths if you move the source or Khronos headers
51ARMNN_HEADER_PATH := $(LOCAL_PATH)/armnn/include
Colm Donelan08d9a1c2020-09-09 17:56:55 +010052ARMNN_THIRD_PARTY_PATH := $(LOCAL_PATH)/armnn/third-party
Mike Kelly0e415132020-02-11 11:21:25 +000053ARMNN_UTILS_HEADER_PATH := $(LOCAL_PATH)/armnn/src/armnnUtils
Colm Donelan0cc61782020-10-06 21:02:21 +010054ARMNN_THIRD_PARTY_PATH := $(LOCAL_PATH)/armnn/third-party
Mike Kelly0e415132020-02-11 11:21:25 +000055OPENCL_HEADER_PATH := $(LOCAL_PATH)/clframework/include
56NN_HEADER_PATH := $(LOCAL_PATH)/../../../frameworks/ml/nn/runtime/include
57
58# Variables to control CL/NEON/reference backend support
59# Set them to '0' to disable support for a specific backend
60ARMNN_COMPUTE_CL_ENABLED := 1
61ARMNN_COMPUTE_NEON_ENABLED := 1
62ARMNN_REF_ENABLED := 1
FrancisMurtagh594b2832020-06-15 17:17:56 +010063ARMNN_ETHOSN_ENABLED := 1
Mike Kelly0e415132020-02-11 11:21:25 +000064
65ifeq ($(ARMNN_COMPUTE_CL_ENABLE),0)
66ARMNN_COMPUTE_CL_ENABLED := 0
67endif
68
69ifeq ($(ARMNN_COMPUTE_NEON_ENABLE),0)
70ARMNN_COMPUTE_NEON_ENABLED := 0
71endif
72
73ifeq ($(ARMNN_REF_ENABLE),0)
74ARMNN_REF_ENABLED := 0
75endif
76
FrancisMurtagh594b2832020-06-15 17:17:56 +010077ifeq ($(ARMNN_ETHOSN_ENABLE),0)
78ARMNN_ETHOSN_ENABLED := 0
79endif
80
alered017c395b22020-04-03 15:37:24 +010081# Variable to control inclusion of libOpenCL shared library
82ARMNN_INCLUDE_LIBOPENCL := $(ARMNN_COMPUTE_CL_ENABLED)
83ifeq ($(ARMNN_LIBOPENCL),0)
84ARMNN_INCLUDE_LIBOPENCL := 0
85endif
86
Narumol Prangnawaratcad4e912020-06-02 12:07:43 +010087# Variable to control retire rate of priority queue
88RETIRE_RATE := 3
89
Mike Kelly0e415132020-02-11 11:21:25 +000090#######################
91# libarmnn-driver@1.0 #
92#######################
93include $(CLEAR_VARS)
94
95LOCAL_MODULE := libarmnn-driver@1.0
96ifeq ($(Q_OR_LATER),1)
97# "eng" is deprecated in Android Q
98LOCAL_MODULE_TAGS := optional
99else
100LOCAL_MODULE_TAGS := eng optional
101endif
102LOCAL_ARM_MODE := arm
103LOCAL_PROPRIETARY_MODULE := true
104# Mark source files as dependent on Android.mk
105LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
106
107LOCAL_C_INCLUDES := \
108 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100109 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000110 $(ARMNN_UTILS_HEADER_PATH) \
Colm Donelan0cc61782020-10-06 21:02:21 +0100111 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000112 $(OPENCL_HEADER_PATH) \
113 $(NN_HEADER_PATH)
114
115LOCAL_CFLAGS := \
116 -std=$(CPP_VERSION) \
117 -fexceptions \
118 -Werror \
119 -Wno-format-security
120
Kevin Mayec1e5b82020-02-26 17:00:39 +0000121# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100122ifeq ($(ANDROID_R),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000123LOCAL_CFLAGS+= \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000124 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100125endif
Mike Kelly0e415132020-02-11 11:21:25 +0000126
127ifeq ($(ARMNN_DRIVER_DEBUG),1)
128LOCAL_CFLAGS+= \
129 -UNDEBUG
130endif # ARMNN_DRIVER_DEBUG == 1
131
Mike Kelly0e415132020-02-11 11:21:25 +0000132ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
133LOCAL_CFLAGS += \
134 -DARMCOMPUTECL_ENABLED
135endif # ARMNN_COMPUTE_CL_ENABLED == 1
136
137ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
138LOCAL_CFLAGS += \
139 -DARMCOMPUTENEON_ENABLED
140endif # ARMNN_COMPUTE_NEON_ENABLED == 1
141
142ifeq ($(ARMNN_REF_ENABLED),1)
143LOCAL_CFLAGS += \
144 -DARMNNREF_ENABLED
145endif # ARMNN_REF_ENABLED == 1
146
FrancisMurtagh594b2832020-06-15 17:17:56 +0100147ifeq ($(ARMNN_ETHOSN_ENABLED),1)
148LOCAL_CFLAGS += \
149 -DARMNNETHOSN_ENABLED
150endif # ARMNN_ETHOSN_ENABLED == 1
151
Mike Kelly0e415132020-02-11 11:21:25 +0000152LOCAL_SRC_FILES := \
153 1.0/ArmnnDriverImpl.cpp \
154 1.0/HalPolicy.cpp \
155 ArmnnDriverImpl.cpp \
156 DriverOptions.cpp \
157 ArmnnDevice.cpp \
158 ArmnnPreparedModel.cpp \
159 ModelToINetworkConverter.cpp \
160 RequestThread.cpp \
161 Utils.cpp \
162 ConversionUtils.cpp
163
164LOCAL_STATIC_LIBRARIES := \
165 libneuralnetworks_common \
Mike Kelly0e415132020-02-11 11:21:25 +0000166 arm_compute_library
167
168LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
169
170LOCAL_SHARED_LIBRARIES := \
171 libbase \
172 libhidlbase \
173 libhidltransport \
174 libhidlmemory \
175 liblog \
176 libutils \
177 android.hardware.neuralnetworks@1.0 \
178 android.hidl.allocator@1.0 \
179 android.hidl.memory@1.0
180
181ifeq ($(P_OR_LATER),1)
182# Required to build the 1.0 version of the NN Driver on Android P and later versions,
183# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
184LOCAL_SHARED_LIBRARIES+= \
185 android.hardware.neuralnetworks@1.1
186endif # PLATFORM_VERSION == 9
187
188ifeq ($(Q_OR_LATER),1)
189LOCAL_SHARED_LIBRARIES+= \
190 libnativewindow \
191 libui \
192 libfmq \
193 libcutils \
194 android.hardware.neuralnetworks@1.2
Kevin Mayec1e5b82020-02-26 17:00:39 +0000195endif # Q or later
196
197ifeq ($(R_OR_LATER),1)
198LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100199 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000200 android.hardware.neuralnetworks@1.3
201endif # R or later
Mike Kelly0e415132020-02-11 11:21:25 +0000202
alered01dbae2472020-04-07 12:31:10 +0100203ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000204LOCAL_SHARED_LIBRARIES+= \
205 libOpenCL
206endif
207
208include $(BUILD_STATIC_LIBRARY)
209
210ifeq ($(P_OR_LATER),1)
211# The following target is available starting from Android P
212
213#######################
214# libarmnn-driver@1.1 #
215#######################
216include $(CLEAR_VARS)
217
218LOCAL_MODULE := libarmnn-driver@1.1
219ifeq ($(Q_OR_LATER),1)
220# "eng" is deprecated in Android Q
221LOCAL_MODULE_TAGS := optional
222else
223LOCAL_MODULE_TAGS := eng optional
224endif
225#PRODUCT_PACKAGES_ENG := libarmnn-driver@1.1
226LOCAL_ARM_MODE := arm
227LOCAL_PROPRIETARY_MODULE := true
228# Mark source files as dependent on Android.mk
229LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
230
231LOCAL_C_INCLUDES := \
232 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100233 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000234 $(ARMNN_UTILS_HEADER_PATH) \
Colm Donelan0cc61782020-10-06 21:02:21 +0100235 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000236 $(OPENCL_HEADER_PATH) \
237 $(NN_HEADER_PATH)
238
239LOCAL_CFLAGS := \
240 -std=$(CPP_VERSION) \
241 -fexceptions \
242 -Werror \
243 -Wno-format-security \
Mike Kelly0e415132020-02-11 11:21:25 +0000244 -DARMNN_ANDROID_NN_V1_1
245
246ifeq ($(ARMNN_DRIVER_DEBUG),1)
247LOCAL_CFLAGS+= \
248 -UNDEBUG
249endif # ARMNN_DRIVER_DEBUG == 1
250
Kevin Mayec1e5b82020-02-26 17:00:39 +0000251# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100252ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000253LOCAL_CFLAGS+= \
254 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100255endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000256
Mike Kelly0e415132020-02-11 11:21:25 +0000257ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
258LOCAL_CFLAGS += \
259 -DARMCOMPUTECL_ENABLED
260endif # ARMNN_COMPUTE_CL_ENABLED == 1
261
262ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
263LOCAL_CFLAGS += \
264 -DARMCOMPUTENEON_ENABLED
265endif # ARMNN_COMPUTE_NEON_ENABLED == 1
266
267ifeq ($(ARMNN_REF_ENABLED),1)
268LOCAL_CFLAGS += \
269 -DARMNNREF_ENABLED
270endif # ARMNN_REF_ENABLED == 1
271
FrancisMurtagh594b2832020-06-15 17:17:56 +0100272ifeq ($(ARMNN_ETHOSN_ENABLED),1)
273LOCAL_CFLAGS += \
274 -DARMNNETHOSN_ENABLED
275endif # ARMNN_ETHOSN_ENABLED == 1
276
Mike Kelly0e415132020-02-11 11:21:25 +0000277LOCAL_SRC_FILES := \
278 1.0/ArmnnDriverImpl.cpp \
279 1.0/HalPolicy.cpp \
280 1.1/ArmnnDriverImpl.cpp \
281 1.1/HalPolicy.cpp \
282 ArmnnDriverImpl.cpp \
283 DriverOptions.cpp \
284 ArmnnDevice.cpp \
285 ArmnnPreparedModel.cpp \
286 ModelToINetworkConverter.cpp \
287 RequestThread.cpp \
288 Utils.cpp \
289 ConversionUtils.cpp
290
291LOCAL_STATIC_LIBRARIES := \
292 libneuralnetworks_common \
Mike Kelly0e415132020-02-11 11:21:25 +0000293 arm_compute_library
294
295LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
296
297LOCAL_SHARED_LIBRARIES := \
298 libbase \
299 libhidlbase \
300 libhidltransport \
301 libhidlmemory \
302 liblog \
303 libutils \
304 android.hardware.neuralnetworks@1.0 \
305 android.hardware.neuralnetworks@1.1 \
306 android.hidl.allocator@1.0 \
307 android.hidl.memory@1.0
308
309ifeq ($(Q_OR_LATER),1)
310LOCAL_SHARED_LIBRARIES+= \
311 libnativewindow \
312 libui \
313 libfmq \
314 libcutils \
315 android.hardware.neuralnetworks@1.2
316endif # PLATFORM_VERSION == Q
317
Kevin Mayec1e5b82020-02-26 17:00:39 +0000318ifeq ($(R_OR_LATER),1)
319LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100320 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000321 android.hardware.neuralnetworks@1.3
322endif # R or later
323
alered017c395b22020-04-03 15:37:24 +0100324ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000325LOCAL_SHARED_LIBRARIES+= \
326 libOpenCL
327endif
328
329include $(BUILD_STATIC_LIBRARY)
330
331endif # PLATFORM_VERSION == 9
332
333ifeq ($(Q_OR_LATER),1)
334# The following target is available starting from Android Q
335
336#######################
337# libarmnn-driver@1.2 #
338#######################
339include $(CLEAR_VARS)
340
341LOCAL_MODULE := libarmnn-driver@1.2
342LOCAL_MODULE_TAGS := optional
343LOCAL_ARM_MODE := arm
344LOCAL_PROPRIETARY_MODULE := true
345# Mark source files as dependent on Android.mk
346LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
347
348LOCAL_C_INCLUDES := \
349 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100350 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000351 $(ARMNN_UTILS_HEADER_PATH) \
Colm Donelan0cc61782020-10-06 21:02:21 +0100352 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000353 $(OPENCL_HEADER_PATH) \
354 $(NN_HEADER_PATH)
355
356LOCAL_CFLAGS := \
357 -std=$(CPP_VERSION) \
358 -fexceptions \
359 -Werror \
360 -Wno-format-security \
Mike Kelly0e415132020-02-11 11:21:25 +0000361 -DARMNN_ANDROID_NN_V1_2
362
363ifeq ($(ARMNN_DRIVER_DEBUG),1)
364LOCAL_CFLAGS+= \
365 -UNDEBUG
366endif # ARMNN_DRIVER_DEBUG == 1
367
Kevin Mayec1e5b82020-02-26 17:00:39 +0000368# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100369ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000370LOCAL_CFLAGS+= \
371 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100372endif
Mike Kelly0e415132020-02-11 11:21:25 +0000373
374ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
375LOCAL_CFLAGS += \
376 -DARMCOMPUTECL_ENABLED
377endif # ARMNN_COMPUTE_CL_ENABLED == 1
378
379ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
380LOCAL_CFLAGS += \
381 -DARMCOMPUTENEON_ENABLED
382endif # ARMNN_COMPUTE_NEON_ENABLED == 1
383
384ifeq ($(ARMNN_REF_ENABLED),1)
385LOCAL_CFLAGS += \
386 -DARMNNREF_ENABLED
387endif # ARMNN_REF_ENABLED == 1
388
FrancisMurtagh594b2832020-06-15 17:17:56 +0100389ifeq ($(ARMNN_ETHOSN_ENABLED),1)
390LOCAL_CFLAGS += \
391 -DARMNNETHOSN_ENABLED
392endif # ARMNN_ETHOSN_ENABLED == 1
393
Mike Kelly0e415132020-02-11 11:21:25 +0000394LOCAL_SRC_FILES := \
395 1.0/ArmnnDriverImpl.cpp \
396 1.0/HalPolicy.cpp \
397 1.1/ArmnnDriverImpl.cpp \
398 1.1/HalPolicy.cpp \
399 1.2/ArmnnDriverImpl.cpp \
400 1.2/HalPolicy.cpp \
401 ArmnnDevice.cpp \
402 ArmnnDriverImpl.cpp \
403 ArmnnPreparedModel.cpp \
404 ArmnnPreparedModel_1_2.cpp \
405 ConversionUtils.cpp \
406 DriverOptions.cpp \
407 ModelToINetworkConverter.cpp \
408 RequestThread.cpp \
409 Utils.cpp
410
411LOCAL_STATIC_LIBRARIES := \
412 libneuralnetworks_common \
Mike Kelly0e415132020-02-11 11:21:25 +0000413 arm_compute_library
414
415LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
416
417LOCAL_SHARED_LIBRARIES := \
418 libbase \
419 libhidlbase \
420 libhidltransport \
421 libhidlmemory \
422 liblog \
423 libutils \
424 libnativewindow \
425 libui \
426 libfmq \
427 libcutils \
428 android.hidl.allocator@1.0 \
429 android.hidl.memory@1.0 \
430 android.hardware.neuralnetworks@1.0 \
431 android.hardware.neuralnetworks@1.1 \
432 android.hardware.neuralnetworks@1.2
433
Kevin Mayec1e5b82020-02-26 17:00:39 +0000434ifeq ($(R_OR_LATER),1)
435LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100436 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000437 android.hardware.neuralnetworks@1.3
438endif # R or later
439
alered017c395b22020-04-03 15:37:24 +0100440ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000441LOCAL_SHARED_LIBRARIES+= \
442 libOpenCL
443endif
444
445include $(BUILD_STATIC_LIBRARY)
446
447endif # PLATFORM_VERSION == Q
448
Kevin May42477c12020-03-26 13:34:14 +0000449ifeq ($(R_OR_LATER),1)
450# The following target is available starting from Android R
451
452#######################
453# libarmnn-driver@1.3 #
454#######################
455include $(CLEAR_VARS)
456
457LOCAL_MODULE := libarmnn-driver@1.3
458LOCAL_MODULE_TAGS := optional
459LOCAL_ARM_MODE := arm
460LOCAL_PROPRIETARY_MODULE := true
461# Mark source files as dependent on Android.mk
462LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
463
464LOCAL_C_INCLUDES := \
465 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100466 $(ARMNN_THIRD_PARTY_PATH) \
Kevin May42477c12020-03-26 13:34:14 +0000467 $(ARMNN_UTILS_HEADER_PATH) \
Colm Donelan0cc61782020-10-06 21:02:21 +0100468 $(ARMNN_THIRD_PARTY_PATH) \
Kevin May42477c12020-03-26 13:34:14 +0000469 $(OPENCL_HEADER_PATH) \
470 $(NN_HEADER_PATH)
471
472LOCAL_CFLAGS := \
473 -std=$(CPP_VERSION) \
474 -fexceptions \
475 -Werror \
476 -Wno-format-security \
Kevin May42477c12020-03-26 13:34:14 +0000477 -DARMNN_ANDROID_NN_V1_3 \
478 -DARMNN_ANDROID_R
479
480ifeq ($(ARMNN_DRIVER_DEBUG),1)
481LOCAL_CFLAGS+= \
482 -UNDEBUG
483endif # ARMNN_DRIVER_DEBUG == 1
484
485ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
486LOCAL_CFLAGS += \
487 -DARMCOMPUTECL_ENABLED
488endif # ARMNN_COMPUTE_CL_ENABLED == 1
489
490ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
491LOCAL_CFLAGS += \
492 -DARMCOMPUTENEON_ENABLED
493endif # ARMNN_COMPUTE_NEON_ENABLED == 1
494
495ifeq ($(ARMNN_REF_ENABLED),1)
496LOCAL_CFLAGS += \
497 -DARMNNREF_ENABLED
498endif # ARMNN_REF_ENABLED == 1
499
FrancisMurtagh594b2832020-06-15 17:17:56 +0100500ifeq ($(ARMNN_ETHOSN_ENABLED),1)
501LOCAL_CFLAGS += \
502 -DARMNNETHOSN_ENABLED
503endif # ARMNN_ETHOSN_ENABLED == 1
504
Narumol Prangnawaratcad4e912020-06-02 12:07:43 +0100505LOCAL_CFLAGS += \
506 -DRETIRE_RATE=$(RETIRE_RATE)
507
Kevin May42477c12020-03-26 13:34:14 +0000508LOCAL_SRC_FILES := \
509 1.0/ArmnnDriverImpl.cpp \
510 1.0/HalPolicy.cpp \
511 1.1/ArmnnDriverImpl.cpp \
512 1.1/HalPolicy.cpp \
513 1.2/ArmnnDriverImpl.cpp \
514 1.2/HalPolicy.cpp \
515 1.3/ArmnnDriverImpl.cpp \
516 1.3/HalPolicy.cpp \
517 ArmnnDevice.cpp \
518 ArmnnDriverImpl.cpp \
519 ArmnnPreparedModel.cpp \
520 ArmnnPreparedModel_1_2.cpp \
521 ArmnnPreparedModel_1_3.cpp \
522 ConversionUtils.cpp \
523 DriverOptions.cpp \
524 ModelToINetworkConverter.cpp \
525 RequestThread.cpp \
Narumol Prangnawaratcad4e912020-06-02 12:07:43 +0100526 RequestThread_1_3.cpp \
Kevin May42477c12020-03-26 13:34:14 +0000527 Utils.cpp
528
529LOCAL_STATIC_LIBRARIES := \
530 libneuralnetworks_common \
Kevin May42477c12020-03-26 13:34:14 +0000531 arm_compute_library
532
533LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
534
535LOCAL_SHARED_LIBRARIES := \
536 libbase \
537 libhidlbase \
538 libhidltransport \
539 libhidlmemory \
540 liblog \
541 libutils \
542 libnativewindow \
543 libui \
544 libfmq \
545 libcutils \
546 android.hidl.allocator@1.0 \
547 android.hidl.memory@1.0 \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100548 libsync \
Kevin May42477c12020-03-26 13:34:14 +0000549 android.hardware.neuralnetworks@1.0 \
550 android.hardware.neuralnetworks@1.1 \
551 android.hardware.neuralnetworks@1.2 \
552 android.hardware.neuralnetworks@1.3
553
alered017c395b22020-04-03 15:37:24 +0100554ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Kevin May42477c12020-03-26 13:34:14 +0000555LOCAL_SHARED_LIBRARIES+= \
556 libOpenCL
557endif
558
559include $(BUILD_STATIC_LIBRARY)
560
561endif # PLATFORM_VERSION == R
562
Mike Kelly0e415132020-02-11 11:21:25 +0000563#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100564# android.hardware.neuralnetworks@1.0-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000565#####################################################
566include $(CLEAR_VARS)
567
Kevin Mayabc95d02020-05-15 15:34:03 +0100568LOCAL_MODULE := android.hardware.neuralnetworks@1.0-service-armnn
569LOCAL_INIT_RC := android.hardware.neuralnetworks@1.0-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000570ifeq ($(Q_OR_LATER),1)
571# "eng" is deprecated in Android Q
572LOCAL_MODULE_TAGS := optional
573else
574LOCAL_MODULE_TAGS := eng optional
575endif
576LOCAL_ARM_MODE := arm
577LOCAL_MODULE_RELATIVE_PATH := hw
578LOCAL_PROPRIETARY_MODULE := true
579# Mark source files as dependent on Android.mk
580LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
581
582LOCAL_C_INCLUDES := \
583 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100584 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000585 $(NN_HEADER_PATH)
586
587LOCAL_CFLAGS := \
588 -std=$(CPP_VERSION) \
589 -fexceptions
590
591ifeq ($(ARMNN_DRIVER_DEBUG),1)
592LOCAL_CFLAGS += \
593 -UNDEBUG
594endif # ARMNN_DRIVER_DEBUG == 1
595
Kevin Mayec1e5b82020-02-26 17:00:39 +0000596# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100597ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000598LOCAL_CFLAGS+= \
599 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100600endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000601
Mike Kelly0e415132020-02-11 11:21:25 +0000602LOCAL_SRC_FILES := \
603 service.cpp
604
605LOCAL_STATIC_LIBRARIES := \
606 libneuralnetworks_common \
Mike Kelly0e415132020-02-11 11:21:25 +0000607 arm_compute_library
608
609LOCAL_WHOLE_STATIC_LIBRARIES := \
610 libarmnn-driver@1.0
611
612LOCAL_SHARED_LIBRARIES := \
613 libbase \
614 libhidlbase \
615 libhidltransport \
616 libhidlmemory \
617 libdl \
618 libhardware \
619 liblog \
620 libtextclassifier_hash \
621 libutils \
622 android.hardware.neuralnetworks@1.0 \
623 android.hidl.allocator@1.0 \
624 android.hidl.memory@1.0
625
626ifeq ($(P_OR_LATER),1)
627# Required to build the 1.0 version of the NN Driver on Android P and later versions,
628# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
629LOCAL_SHARED_LIBRARIES+= \
630 android.hardware.neuralnetworks@1.1
631endif # PLATFORM_VERSION == 9
Kevin Mayec1e5b82020-02-26 17:00:39 +0000632
Mike Kelly0e415132020-02-11 11:21:25 +0000633ifeq ($(Q_OR_LATER),1)
634LOCAL_SHARED_LIBRARIES+= \
635 libnativewindow \
636 libui \
637 libfmq \
638 libcutils \
639 android.hardware.neuralnetworks@1.2
640endif # PLATFORM_VERSION == Q
641
Kevin Mayec1e5b82020-02-26 17:00:39 +0000642ifeq ($(R_OR_LATER),1)
643LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100644 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000645 android.hardware.neuralnetworks@1.3
646endif # R or later
647
alered017c395b22020-04-03 15:37:24 +0100648ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000649LOCAL_SHARED_LIBRARIES+= \
650 libOpenCL
651endif
652
653include $(BUILD_EXECUTABLE)
654
655ifeq ($(P_OR_LATER),1)
656# The following target is available starting from Android P
657
658#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100659# android.hardware.neuralnetworks@1.1-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000660#####################################################
661include $(CLEAR_VARS)
662
Kevin Mayabc95d02020-05-15 15:34:03 +0100663LOCAL_MODULE := android.hardware.neuralnetworks@1.1-service-armnn
664LOCAL_INIT_RC := android.hardware.neuralnetworks@1.1-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000665ifeq ($(Q_OR_LATER),1)
666# "eng" is deprecated in Android Q
667LOCAL_MODULE_TAGS := optional
668else
669LOCAL_MODULE_TAGS := eng optional
670endif
671LOCAL_ARM_MODE := arm
672LOCAL_MODULE_RELATIVE_PATH := hw
673LOCAL_PROPRIETARY_MODULE := true
674# Mark source files as dependent on Android.mk
675LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
676
677LOCAL_C_INCLUDES := \
678 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100679 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000680 $(NN_HEADER_PATH)
681
682LOCAL_CFLAGS := \
683 -std=$(CPP_VERSION) \
684 -fexceptions \
685 -DARMNN_ANDROID_NN_V1_1
686
687ifeq ($(ARMNN_DRIVER_DEBUG),1)
688LOCAL_CFLAGS += \
689 -UNDEBUG
690endif # ARMNN_DRIVER_DEBUG == 1
691
Kevin Mayec1e5b82020-02-26 17:00:39 +0000692# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100693ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000694LOCAL_CFLAGS+= \
695 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100696endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000697
Mike Kelly0e415132020-02-11 11:21:25 +0000698LOCAL_SRC_FILES := \
699 service.cpp
700
701LOCAL_STATIC_LIBRARIES := \
702 libneuralnetworks_common \
Mike Kelly0e415132020-02-11 11:21:25 +0000703 arm_compute_library
704
705LOCAL_WHOLE_STATIC_LIBRARIES := \
706 libarmnn-driver@1.1
707
708LOCAL_SHARED_LIBRARIES := \
709 libbase \
710 libhidlbase \
711 libhidltransport \
712 libhidlmemory \
713 libdl \
714 libhardware \
715 liblog \
716 libtextclassifier_hash \
717 libutils \
718 android.hardware.neuralnetworks@1.0 \
719 android.hardware.neuralnetworks@1.1 \
720 android.hidl.allocator@1.0 \
721 android.hidl.memory@1.0
722
723ifeq ($(Q_OR_LATER),1)
724LOCAL_SHARED_LIBRARIES+= \
725 libnativewindow \
726 libui \
727 libfmq \
728 libcutils \
729 android.hardware.neuralnetworks@1.2
730endif # PLATFORM_VERSION == Q
731
Kevin Mayec1e5b82020-02-26 17:00:39 +0000732ifeq ($(R_OR_LATER),1)
733LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100734 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000735 android.hardware.neuralnetworks@1.3
736endif # PLATFORM_VERSION == R
737
alered017c395b22020-04-03 15:37:24 +0100738ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000739LOCAL_SHARED_LIBRARIES+= \
740 libOpenCL
741endif
742
743include $(BUILD_EXECUTABLE)
744
745endif # PLATFORM_VERSION == 9
746
747ifeq ($(Q_OR_LATER),1)
748# The following target is available starting from Android Q
749
750#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100751# android.hardware.neuralnetworks@1.2-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000752#####################################################
753include $(CLEAR_VARS)
754
Kevin Mayabc95d02020-05-15 15:34:03 +0100755LOCAL_MODULE := android.hardware.neuralnetworks@1.2-service-armnn
756LOCAL_INIT_RC := android.hardware.neuralnetworks@1.2-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000757LOCAL_MODULE_TAGS := optional
758LOCAL_ARM_MODE := arm
759LOCAL_MODULE_RELATIVE_PATH := hw
760LOCAL_PROPRIETARY_MODULE := true
761# Mark source files as dependent on Android.mk
762LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
763
764LOCAL_C_INCLUDES := \
765 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100766 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000767 $(NN_HEADER_PATH)
768
769LOCAL_CFLAGS := \
770 -std=$(CPP_VERSION) \
771 -fexceptions \
772 -DARMNN_ANDROID_NN_V1_2 \
Mike Kelly0e415132020-02-11 11:21:25 +0000773
774ifeq ($(ARMNN_DRIVER_DEBUG),1)
775LOCAL_CFLAGS += \
776 -UNDEBUG
777endif # ARMNN_DRIVER_DEBUG == 1
778
Kevin Mayec1e5b82020-02-26 17:00:39 +0000779# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100780ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000781LOCAL_CFLAGS+= \
782 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100783endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000784
Mike Kelly0e415132020-02-11 11:21:25 +0000785LOCAL_SRC_FILES := \
786 service.cpp
787
788LOCAL_STATIC_LIBRARIES := \
789 libneuralnetworks_common \
Mike Kelly0e415132020-02-11 11:21:25 +0000790 arm_compute_library
791
792LOCAL_WHOLE_STATIC_LIBRARIES := \
793 libarmnn-driver@1.2
794
795LOCAL_SHARED_LIBRARIES := \
796 libbase \
797 libhidlbase \
798 libhidltransport \
799 libhidlmemory \
800 libdl \
801 libhardware \
802 liblog \
803 libtextclassifier_hash \
804 libutils \
805 libnativewindow \
806 libui \
807 libfmq \
808 libcutils \
809 android.hidl.allocator@1.0 \
810 android.hidl.memory@1.0 \
811 android.hardware.neuralnetworks@1.0 \
812 android.hardware.neuralnetworks@1.1 \
813 android.hardware.neuralnetworks@1.2
814
Kevin Mayec1e5b82020-02-26 17:00:39 +0000815ifeq ($(R_OR_LATER),1)
816LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100817 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000818 android.hardware.neuralnetworks@1.3
819endif # R or later
820
alered017c395b22020-04-03 15:37:24 +0100821ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000822LOCAL_SHARED_LIBRARIES+= \
823 libOpenCL
824endif
825
826include $(BUILD_EXECUTABLE)
827
828endif # PLATFORM_VERSION == Q
829
Kevin May42477c12020-03-26 13:34:14 +0000830ifeq ($(R_OR_LATER),1)
831# The following target is available starting from Android R
832
833#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100834# android.hardware.neuralnetworks@1.3-service-armnn #
Kevin May42477c12020-03-26 13:34:14 +0000835#####################################################
836include $(CLEAR_VARS)
837
Kevin Mayabc95d02020-05-15 15:34:03 +0100838LOCAL_MODULE := android.hardware.neuralnetworks@1.3-service-armnn
839LOCAL_INIT_RC := android.hardware.neuralnetworks@1.3-service-armnn.rc
Kevin May42477c12020-03-26 13:34:14 +0000840LOCAL_MODULE_TAGS := optional
841LOCAL_ARM_MODE := arm
842LOCAL_MODULE_RELATIVE_PATH := hw
843LOCAL_PROPRIETARY_MODULE := true
844# Mark source files as dependent on Android.mk
845LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
846
847LOCAL_C_INCLUDES := \
848 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100849 $(ARMNN_THIRD_PARTY_PATH) \
Kevin May42477c12020-03-26 13:34:14 +0000850 $(NN_HEADER_PATH)
851
852LOCAL_CFLAGS := \
853 -std=$(CPP_VERSION) \
854 -fexceptions \
855 -DARMNN_ANDROID_NN_V1_3 \
Kevin May42477c12020-03-26 13:34:14 +0000856 -DARMNN_ANDROID_R
857
858ifeq ($(ARMNN_DRIVER_DEBUG),1)
859LOCAL_CFLAGS += \
860 -UNDEBUG
861endif # ARMNN_DRIVER_DEBUG == 1
862
863LOCAL_SRC_FILES := \
864 service.cpp
865
866LOCAL_STATIC_LIBRARIES := \
867 libneuralnetworks_common \
Kevin May42477c12020-03-26 13:34:14 +0000868 arm_compute_library
869
870LOCAL_WHOLE_STATIC_LIBRARIES := \
871 libarmnn-driver@1.3
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 \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100887 libsync \
Kevin May42477c12020-03-26 13:34:14 +0000888 android.hidl.allocator@1.0 \
889 android.hidl.memory@1.0 \
890 android.hardware.neuralnetworks@1.0 \
891 android.hardware.neuralnetworks@1.1 \
892 android.hardware.neuralnetworks@1.2 \
893 android.hardware.neuralnetworks@1.3
894
alered017c395b22020-04-03 15:37:24 +0100895ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Kevin May42477c12020-03-26 13:34:14 +0000896LOCAL_SHARED_LIBRARIES+= \
897 libOpenCL
898endif
899
900include $(BUILD_EXECUTABLE)
901
902endif # PLATFORM_VERSION == R
903
Mike Kelly0e415132020-02-11 11:21:25 +0000904##########################
905# armnn module and tests #
906##########################
907# Note we use ANDROID_NN_DRIVER_LOCAL_PATH rather than LOCAL_PATH because LOCAL_PATH will be overwritten
908# when including other .mk files that set it.
909include $(ANDROID_NN_DRIVER_LOCAL_PATH)/armnn/Android.mk
910include $(ANDROID_NN_DRIVER_LOCAL_PATH)/test/Android.mk