blob: 98c89032cb11b6a7b5cf7e87a3f6af41ded0c848 [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
52ARMNN_UTILS_HEADER_PATH := $(LOCAL_PATH)/armnn/src/armnnUtils
53OPENCL_HEADER_PATH := $(LOCAL_PATH)/clframework/include
54NN_HEADER_PATH := $(LOCAL_PATH)/../../../frameworks/ml/nn/runtime/include
55
56# Variables to control CL/NEON/reference backend support
57# Set them to '0' to disable support for a specific backend
58ARMNN_COMPUTE_CL_ENABLED := 1
59ARMNN_COMPUTE_NEON_ENABLED := 1
60ARMNN_REF_ENABLED := 1
FrancisMurtagh594b2832020-06-15 17:17:56 +010061ARMNN_ETHOSN_ENABLED := 1
Mike Kelly0e415132020-02-11 11:21:25 +000062
63ifeq ($(ARMNN_COMPUTE_CL_ENABLE),0)
64ARMNN_COMPUTE_CL_ENABLED := 0
65endif
66
67ifeq ($(ARMNN_COMPUTE_NEON_ENABLE),0)
68ARMNN_COMPUTE_NEON_ENABLED := 0
69endif
70
71ifeq ($(ARMNN_REF_ENABLE),0)
72ARMNN_REF_ENABLED := 0
73endif
74
FrancisMurtagh594b2832020-06-15 17:17:56 +010075ifeq ($(ARMNN_ETHOSN_ENABLE),0)
76ARMNN_ETHOSN_ENABLED := 0
77endif
78
alered017c395b22020-04-03 15:37:24 +010079# Variable to control inclusion of libOpenCL shared library
80ARMNN_INCLUDE_LIBOPENCL := $(ARMNN_COMPUTE_CL_ENABLED)
81ifeq ($(ARMNN_LIBOPENCL),0)
82ARMNN_INCLUDE_LIBOPENCL := 0
83endif
84
Narumol Prangnawaratcad4e912020-06-02 12:07:43 +010085# Variable to control retire rate of priority queue
86RETIRE_RATE := 3
87
Mike Kelly0e415132020-02-11 11:21:25 +000088#######################
89# libarmnn-driver@1.0 #
90#######################
91include $(CLEAR_VARS)
92
93LOCAL_MODULE := libarmnn-driver@1.0
94ifeq ($(Q_OR_LATER),1)
95# "eng" is deprecated in Android Q
96LOCAL_MODULE_TAGS := optional
97else
98LOCAL_MODULE_TAGS := eng optional
99endif
100LOCAL_ARM_MODE := arm
101LOCAL_PROPRIETARY_MODULE := true
102# Mark source files as dependent on Android.mk
103LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
104
105LOCAL_C_INCLUDES := \
106 $(ARMNN_HEADER_PATH) \
107 $(ARMNN_UTILS_HEADER_PATH) \
108 $(OPENCL_HEADER_PATH) \
109 $(NN_HEADER_PATH)
110
111LOCAL_CFLAGS := \
112 -std=$(CPP_VERSION) \
113 -fexceptions \
114 -Werror \
115 -Wno-format-security
116
Kevin Mayec1e5b82020-02-26 17:00:39 +0000117# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100118ifeq ($(ANDROID_R),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000119LOCAL_CFLAGS+= \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000120 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100121endif
Mike Kelly0e415132020-02-11 11:21:25 +0000122
123ifeq ($(ARMNN_DRIVER_DEBUG),1)
124LOCAL_CFLAGS+= \
125 -UNDEBUG
126endif # ARMNN_DRIVER_DEBUG == 1
127
128ifeq ($(Q_OR_LATER),1)
129LOCAL_CFLAGS += \
130 -DBOOST_NO_AUTO_PTR
131endif # PLATFORM_VERSION == Q or later
132
133ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
134LOCAL_CFLAGS += \
135 -DARMCOMPUTECL_ENABLED
136endif # ARMNN_COMPUTE_CL_ENABLED == 1
137
138ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
139LOCAL_CFLAGS += \
140 -DARMCOMPUTENEON_ENABLED
141endif # ARMNN_COMPUTE_NEON_ENABLED == 1
142
143ifeq ($(ARMNN_REF_ENABLED),1)
144LOCAL_CFLAGS += \
145 -DARMNNREF_ENABLED
146endif # ARMNN_REF_ENABLED == 1
147
FrancisMurtagh594b2832020-06-15 17:17:56 +0100148ifeq ($(ARMNN_ETHOSN_ENABLED),1)
149LOCAL_CFLAGS += \
150 -DARMNNETHOSN_ENABLED
151endif # ARMNN_ETHOSN_ENABLED == 1
152
Mike Kelly0e415132020-02-11 11:21:25 +0000153LOCAL_SRC_FILES := \
154 1.0/ArmnnDriverImpl.cpp \
155 1.0/HalPolicy.cpp \
156 ArmnnDriverImpl.cpp \
157 DriverOptions.cpp \
158 ArmnnDevice.cpp \
159 ArmnnPreparedModel.cpp \
160 ModelToINetworkConverter.cpp \
161 RequestThread.cpp \
162 Utils.cpp \
163 ConversionUtils.cpp
164
165LOCAL_STATIC_LIBRARIES := \
166 libneuralnetworks_common \
167 libboost_log \
168 libboost_program_options \
169 libboost_system \
170 libboost_thread \
171 libboost_filesystem \
172 arm_compute_library
173
174LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
175
176LOCAL_SHARED_LIBRARIES := \
177 libbase \
178 libhidlbase \
179 libhidltransport \
180 libhidlmemory \
181 liblog \
182 libutils \
183 android.hardware.neuralnetworks@1.0 \
184 android.hidl.allocator@1.0 \
185 android.hidl.memory@1.0
186
187ifeq ($(P_OR_LATER),1)
188# Required to build the 1.0 version of the NN Driver on Android P and later versions,
189# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
190LOCAL_SHARED_LIBRARIES+= \
191 android.hardware.neuralnetworks@1.1
192endif # PLATFORM_VERSION == 9
193
194ifeq ($(Q_OR_LATER),1)
195LOCAL_SHARED_LIBRARIES+= \
196 libnativewindow \
197 libui \
198 libfmq \
199 libcutils \
200 android.hardware.neuralnetworks@1.2
Kevin Mayec1e5b82020-02-26 17:00:39 +0000201endif # Q or later
202
203ifeq ($(R_OR_LATER),1)
204LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100205 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000206 android.hardware.neuralnetworks@1.3
207endif # R or later
Mike Kelly0e415132020-02-11 11:21:25 +0000208
alered01dbae2472020-04-07 12:31:10 +0100209ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000210LOCAL_SHARED_LIBRARIES+= \
211 libOpenCL
212endif
213
214include $(BUILD_STATIC_LIBRARY)
215
216ifeq ($(P_OR_LATER),1)
217# The following target is available starting from Android P
218
219#######################
220# libarmnn-driver@1.1 #
221#######################
222include $(CLEAR_VARS)
223
224LOCAL_MODULE := libarmnn-driver@1.1
225ifeq ($(Q_OR_LATER),1)
226# "eng" is deprecated in Android Q
227LOCAL_MODULE_TAGS := optional
228else
229LOCAL_MODULE_TAGS := eng optional
230endif
231#PRODUCT_PACKAGES_ENG := libarmnn-driver@1.1
232LOCAL_ARM_MODE := arm
233LOCAL_PROPRIETARY_MODULE := true
234# Mark source files as dependent on Android.mk
235LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
236
237LOCAL_C_INCLUDES := \
238 $(ARMNN_HEADER_PATH) \
239 $(ARMNN_UTILS_HEADER_PATH) \
240 $(OPENCL_HEADER_PATH) \
241 $(NN_HEADER_PATH)
242
243LOCAL_CFLAGS := \
244 -std=$(CPP_VERSION) \
245 -fexceptions \
246 -Werror \
247 -Wno-format-security \
Mike Kelly0e415132020-02-11 11:21:25 +0000248 -DARMNN_ANDROID_NN_V1_1
249
250ifeq ($(ARMNN_DRIVER_DEBUG),1)
251LOCAL_CFLAGS+= \
252 -UNDEBUG
253endif # ARMNN_DRIVER_DEBUG == 1
254
255ifeq ($(Q_OR_LATER),1)
256LOCAL_CFLAGS += \
257 -DBOOST_NO_AUTO_PTR
258endif # PLATFORM_VERSION == Q or later
259
Kevin Mayec1e5b82020-02-26 17:00:39 +0000260# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100261ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000262LOCAL_CFLAGS+= \
263 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100264endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000265
Mike Kelly0e415132020-02-11 11:21:25 +0000266ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
267LOCAL_CFLAGS += \
268 -DARMCOMPUTECL_ENABLED
269endif # ARMNN_COMPUTE_CL_ENABLED == 1
270
271ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
272LOCAL_CFLAGS += \
273 -DARMCOMPUTENEON_ENABLED
274endif # ARMNN_COMPUTE_NEON_ENABLED == 1
275
276ifeq ($(ARMNN_REF_ENABLED),1)
277LOCAL_CFLAGS += \
278 -DARMNNREF_ENABLED
279endif # ARMNN_REF_ENABLED == 1
280
FrancisMurtagh594b2832020-06-15 17:17:56 +0100281ifeq ($(ARMNN_ETHOSN_ENABLED),1)
282LOCAL_CFLAGS += \
283 -DARMNNETHOSN_ENABLED
284endif # ARMNN_ETHOSN_ENABLED == 1
285
Mike Kelly0e415132020-02-11 11:21:25 +0000286LOCAL_SRC_FILES := \
287 1.0/ArmnnDriverImpl.cpp \
288 1.0/HalPolicy.cpp \
289 1.1/ArmnnDriverImpl.cpp \
290 1.1/HalPolicy.cpp \
291 ArmnnDriverImpl.cpp \
292 DriverOptions.cpp \
293 ArmnnDevice.cpp \
294 ArmnnPreparedModel.cpp \
295 ModelToINetworkConverter.cpp \
296 RequestThread.cpp \
297 Utils.cpp \
298 ConversionUtils.cpp
299
300LOCAL_STATIC_LIBRARIES := \
301 libneuralnetworks_common \
302 libboost_log \
303 libboost_program_options \
304 libboost_system \
305 libboost_thread \
306 libboost_filesystem \
307 arm_compute_library
308
309LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
310
311LOCAL_SHARED_LIBRARIES := \
312 libbase \
313 libhidlbase \
314 libhidltransport \
315 libhidlmemory \
316 liblog \
317 libutils \
318 android.hardware.neuralnetworks@1.0 \
319 android.hardware.neuralnetworks@1.1 \
320 android.hidl.allocator@1.0 \
321 android.hidl.memory@1.0
322
323ifeq ($(Q_OR_LATER),1)
324LOCAL_SHARED_LIBRARIES+= \
325 libnativewindow \
326 libui \
327 libfmq \
328 libcutils \
329 android.hardware.neuralnetworks@1.2
330endif # PLATFORM_VERSION == Q
331
Kevin Mayec1e5b82020-02-26 17:00:39 +0000332ifeq ($(R_OR_LATER),1)
333LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100334 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000335 android.hardware.neuralnetworks@1.3
336endif # R or later
337
alered017c395b22020-04-03 15:37:24 +0100338ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000339LOCAL_SHARED_LIBRARIES+= \
340 libOpenCL
341endif
342
343include $(BUILD_STATIC_LIBRARY)
344
345endif # PLATFORM_VERSION == 9
346
347ifeq ($(Q_OR_LATER),1)
348# The following target is available starting from Android Q
349
350#######################
351# libarmnn-driver@1.2 #
352#######################
353include $(CLEAR_VARS)
354
355LOCAL_MODULE := libarmnn-driver@1.2
356LOCAL_MODULE_TAGS := optional
357LOCAL_ARM_MODE := arm
358LOCAL_PROPRIETARY_MODULE := true
359# Mark source files as dependent on Android.mk
360LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
361
362LOCAL_C_INCLUDES := \
363 $(ARMNN_HEADER_PATH) \
364 $(ARMNN_UTILS_HEADER_PATH) \
365 $(OPENCL_HEADER_PATH) \
366 $(NN_HEADER_PATH)
367
368LOCAL_CFLAGS := \
369 -std=$(CPP_VERSION) \
370 -fexceptions \
371 -Werror \
372 -Wno-format-security \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000373 -DBOOST_NO_AUTO_PTR \
Mike Kelly0e415132020-02-11 11:21:25 +0000374 -DARMNN_ANDROID_NN_V1_2
375
376ifeq ($(ARMNN_DRIVER_DEBUG),1)
377LOCAL_CFLAGS+= \
378 -UNDEBUG
379endif # ARMNN_DRIVER_DEBUG == 1
380
Kevin Mayec1e5b82020-02-26 17:00:39 +0000381# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100382ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000383LOCAL_CFLAGS+= \
384 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100385endif
Mike Kelly0e415132020-02-11 11:21:25 +0000386
387ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
388LOCAL_CFLAGS += \
389 -DARMCOMPUTECL_ENABLED
390endif # ARMNN_COMPUTE_CL_ENABLED == 1
391
392ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
393LOCAL_CFLAGS += \
394 -DARMCOMPUTENEON_ENABLED
395endif # ARMNN_COMPUTE_NEON_ENABLED == 1
396
397ifeq ($(ARMNN_REF_ENABLED),1)
398LOCAL_CFLAGS += \
399 -DARMNNREF_ENABLED
400endif # ARMNN_REF_ENABLED == 1
401
FrancisMurtagh594b2832020-06-15 17:17:56 +0100402ifeq ($(ARMNN_ETHOSN_ENABLED),1)
403LOCAL_CFLAGS += \
404 -DARMNNETHOSN_ENABLED
405endif # ARMNN_ETHOSN_ENABLED == 1
406
Mike Kelly0e415132020-02-11 11:21:25 +0000407LOCAL_SRC_FILES := \
408 1.0/ArmnnDriverImpl.cpp \
409 1.0/HalPolicy.cpp \
410 1.1/ArmnnDriverImpl.cpp \
411 1.1/HalPolicy.cpp \
412 1.2/ArmnnDriverImpl.cpp \
413 1.2/HalPolicy.cpp \
414 ArmnnDevice.cpp \
415 ArmnnDriverImpl.cpp \
416 ArmnnPreparedModel.cpp \
417 ArmnnPreparedModel_1_2.cpp \
418 ConversionUtils.cpp \
419 DriverOptions.cpp \
420 ModelToINetworkConverter.cpp \
421 RequestThread.cpp \
422 Utils.cpp
423
424LOCAL_STATIC_LIBRARIES := \
425 libneuralnetworks_common \
426 libboost_log \
427 libboost_program_options \
428 libboost_system \
429 libboost_thread \
430 libboost_filesystem \
431 arm_compute_library
432
433LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
434
435LOCAL_SHARED_LIBRARIES := \
436 libbase \
437 libhidlbase \
438 libhidltransport \
439 libhidlmemory \
440 liblog \
441 libutils \
442 libnativewindow \
443 libui \
444 libfmq \
445 libcutils \
446 android.hidl.allocator@1.0 \
447 android.hidl.memory@1.0 \
448 android.hardware.neuralnetworks@1.0 \
449 android.hardware.neuralnetworks@1.1 \
450 android.hardware.neuralnetworks@1.2
451
Kevin Mayec1e5b82020-02-26 17:00:39 +0000452ifeq ($(R_OR_LATER),1)
453LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100454 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000455 android.hardware.neuralnetworks@1.3
456endif # R or later
457
alered017c395b22020-04-03 15:37:24 +0100458ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000459LOCAL_SHARED_LIBRARIES+= \
460 libOpenCL
461endif
462
463include $(BUILD_STATIC_LIBRARY)
464
465endif # PLATFORM_VERSION == Q
466
Kevin May42477c12020-03-26 13:34:14 +0000467ifeq ($(R_OR_LATER),1)
468# The following target is available starting from Android R
469
470#######################
471# libarmnn-driver@1.3 #
472#######################
473include $(CLEAR_VARS)
474
475LOCAL_MODULE := libarmnn-driver@1.3
476LOCAL_MODULE_TAGS := optional
477LOCAL_ARM_MODE := arm
478LOCAL_PROPRIETARY_MODULE := true
479# Mark source files as dependent on Android.mk
480LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
481
482LOCAL_C_INCLUDES := \
483 $(ARMNN_HEADER_PATH) \
484 $(ARMNN_UTILS_HEADER_PATH) \
485 $(OPENCL_HEADER_PATH) \
486 $(NN_HEADER_PATH)
487
488LOCAL_CFLAGS := \
489 -std=$(CPP_VERSION) \
490 -fexceptions \
491 -Werror \
492 -Wno-format-security \
493 -DBOOST_NO_AUTO_PTR \
494 -DARMNN_ANDROID_NN_V1_3 \
495 -DARMNN_ANDROID_R
496
497ifeq ($(ARMNN_DRIVER_DEBUG),1)
498LOCAL_CFLAGS+= \
499 -UNDEBUG
500endif # ARMNN_DRIVER_DEBUG == 1
501
502ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
503LOCAL_CFLAGS += \
504 -DARMCOMPUTECL_ENABLED
505endif # ARMNN_COMPUTE_CL_ENABLED == 1
506
507ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
508LOCAL_CFLAGS += \
509 -DARMCOMPUTENEON_ENABLED
510endif # ARMNN_COMPUTE_NEON_ENABLED == 1
511
512ifeq ($(ARMNN_REF_ENABLED),1)
513LOCAL_CFLAGS += \
514 -DARMNNREF_ENABLED
515endif # ARMNN_REF_ENABLED == 1
516
FrancisMurtagh594b2832020-06-15 17:17:56 +0100517ifeq ($(ARMNN_ETHOSN_ENABLED),1)
518LOCAL_CFLAGS += \
519 -DARMNNETHOSN_ENABLED
520endif # ARMNN_ETHOSN_ENABLED == 1
521
Narumol Prangnawaratcad4e912020-06-02 12:07:43 +0100522LOCAL_CFLAGS += \
523 -DRETIRE_RATE=$(RETIRE_RATE)
524
Kevin May42477c12020-03-26 13:34:14 +0000525LOCAL_SRC_FILES := \
526 1.0/ArmnnDriverImpl.cpp \
527 1.0/HalPolicy.cpp \
528 1.1/ArmnnDriverImpl.cpp \
529 1.1/HalPolicy.cpp \
530 1.2/ArmnnDriverImpl.cpp \
531 1.2/HalPolicy.cpp \
532 1.3/ArmnnDriverImpl.cpp \
533 1.3/HalPolicy.cpp \
534 ArmnnDevice.cpp \
535 ArmnnDriverImpl.cpp \
536 ArmnnPreparedModel.cpp \
537 ArmnnPreparedModel_1_2.cpp \
538 ArmnnPreparedModel_1_3.cpp \
539 ConversionUtils.cpp \
540 DriverOptions.cpp \
541 ModelToINetworkConverter.cpp \
542 RequestThread.cpp \
Narumol Prangnawaratcad4e912020-06-02 12:07:43 +0100543 RequestThread_1_3.cpp \
Kevin May42477c12020-03-26 13:34:14 +0000544 Utils.cpp
545
546LOCAL_STATIC_LIBRARIES := \
547 libneuralnetworks_common \
548 libboost_log \
549 libboost_program_options \
550 libboost_system \
551 libboost_thread \
552 libboost_filesystem \
553 arm_compute_library
554
555LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
556
557LOCAL_SHARED_LIBRARIES := \
558 libbase \
559 libhidlbase \
560 libhidltransport \
561 libhidlmemory \
562 liblog \
563 libutils \
564 libnativewindow \
565 libui \
566 libfmq \
567 libcutils \
568 android.hidl.allocator@1.0 \
569 android.hidl.memory@1.0 \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100570 libsync \
Kevin May42477c12020-03-26 13:34:14 +0000571 android.hardware.neuralnetworks@1.0 \
572 android.hardware.neuralnetworks@1.1 \
573 android.hardware.neuralnetworks@1.2 \
574 android.hardware.neuralnetworks@1.3
575
alered017c395b22020-04-03 15:37:24 +0100576ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Kevin May42477c12020-03-26 13:34:14 +0000577LOCAL_SHARED_LIBRARIES+= \
578 libOpenCL
579endif
580
581include $(BUILD_STATIC_LIBRARY)
582
583endif # PLATFORM_VERSION == R
584
Mike Kelly0e415132020-02-11 11:21:25 +0000585#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100586# android.hardware.neuralnetworks@1.0-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000587#####################################################
588include $(CLEAR_VARS)
589
Kevin Mayabc95d02020-05-15 15:34:03 +0100590LOCAL_MODULE := android.hardware.neuralnetworks@1.0-service-armnn
591LOCAL_INIT_RC := android.hardware.neuralnetworks@1.0-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000592ifeq ($(Q_OR_LATER),1)
593# "eng" is deprecated in Android Q
594LOCAL_MODULE_TAGS := optional
595else
596LOCAL_MODULE_TAGS := eng optional
597endif
598LOCAL_ARM_MODE := arm
599LOCAL_MODULE_RELATIVE_PATH := hw
600LOCAL_PROPRIETARY_MODULE := true
601# Mark source files as dependent on Android.mk
602LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
603
604LOCAL_C_INCLUDES := \
605 $(ARMNN_HEADER_PATH) \
606 $(NN_HEADER_PATH)
607
608LOCAL_CFLAGS := \
609 -std=$(CPP_VERSION) \
610 -fexceptions
611
612ifeq ($(ARMNN_DRIVER_DEBUG),1)
613LOCAL_CFLAGS += \
614 -UNDEBUG
615endif # ARMNN_DRIVER_DEBUG == 1
616
617ifeq ($(Q_OR_LATER),1)
618LOCAL_CFLAGS += \
619 -DBOOST_NO_AUTO_PTR
620endif # PLATFORM_VERSION == Q or later
621
Kevin Mayec1e5b82020-02-26 17:00:39 +0000622# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100623ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000624LOCAL_CFLAGS+= \
625 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100626endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000627
Mike Kelly0e415132020-02-11 11:21:25 +0000628LOCAL_SRC_FILES := \
629 service.cpp
630
631LOCAL_STATIC_LIBRARIES := \
632 libneuralnetworks_common \
633 libboost_log \
634 libboost_program_options \
635 libboost_system \
636 libboost_thread \
637 libboost_filesystem \
638 arm_compute_library
639
640LOCAL_WHOLE_STATIC_LIBRARIES := \
641 libarmnn-driver@1.0
642
643LOCAL_SHARED_LIBRARIES := \
644 libbase \
645 libhidlbase \
646 libhidltransport \
647 libhidlmemory \
648 libdl \
649 libhardware \
650 liblog \
651 libtextclassifier_hash \
652 libutils \
653 android.hardware.neuralnetworks@1.0 \
654 android.hidl.allocator@1.0 \
655 android.hidl.memory@1.0
656
657ifeq ($(P_OR_LATER),1)
658# Required to build the 1.0 version of the NN Driver on Android P and later versions,
659# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
660LOCAL_SHARED_LIBRARIES+= \
661 android.hardware.neuralnetworks@1.1
662endif # PLATFORM_VERSION == 9
Kevin Mayec1e5b82020-02-26 17:00:39 +0000663
Mike Kelly0e415132020-02-11 11:21:25 +0000664ifeq ($(Q_OR_LATER),1)
665LOCAL_SHARED_LIBRARIES+= \
666 libnativewindow \
667 libui \
668 libfmq \
669 libcutils \
670 android.hardware.neuralnetworks@1.2
671endif # PLATFORM_VERSION == Q
672
Kevin Mayec1e5b82020-02-26 17:00:39 +0000673ifeq ($(R_OR_LATER),1)
674LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100675 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000676 android.hardware.neuralnetworks@1.3
677endif # R or later
678
alered017c395b22020-04-03 15:37:24 +0100679ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000680LOCAL_SHARED_LIBRARIES+= \
681 libOpenCL
682endif
683
684include $(BUILD_EXECUTABLE)
685
686ifeq ($(P_OR_LATER),1)
687# The following target is available starting from Android P
688
689#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100690# android.hardware.neuralnetworks@1.1-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000691#####################################################
692include $(CLEAR_VARS)
693
Kevin Mayabc95d02020-05-15 15:34:03 +0100694LOCAL_MODULE := android.hardware.neuralnetworks@1.1-service-armnn
695LOCAL_INIT_RC := android.hardware.neuralnetworks@1.1-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000696ifeq ($(Q_OR_LATER),1)
697# "eng" is deprecated in Android Q
698LOCAL_MODULE_TAGS := optional
699else
700LOCAL_MODULE_TAGS := eng optional
701endif
702LOCAL_ARM_MODE := arm
703LOCAL_MODULE_RELATIVE_PATH := hw
704LOCAL_PROPRIETARY_MODULE := true
705# Mark source files as dependent on Android.mk
706LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
707
708LOCAL_C_INCLUDES := \
709 $(ARMNN_HEADER_PATH) \
710 $(NN_HEADER_PATH)
711
712LOCAL_CFLAGS := \
713 -std=$(CPP_VERSION) \
714 -fexceptions \
715 -DARMNN_ANDROID_NN_V1_1
716
717ifeq ($(ARMNN_DRIVER_DEBUG),1)
718LOCAL_CFLAGS += \
719 -UNDEBUG
720endif # ARMNN_DRIVER_DEBUG == 1
721
722ifeq ($(Q_OR_LATER),1)
723LOCAL_CFLAGS += \
724 -DBOOST_NO_AUTO_PTR
725endif # PLATFORM_VERSION == Q or later
726
Kevin Mayec1e5b82020-02-26 17:00:39 +0000727# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100728ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000729LOCAL_CFLAGS+= \
730 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100731endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000732
Mike Kelly0e415132020-02-11 11:21:25 +0000733LOCAL_SRC_FILES := \
734 service.cpp
735
736LOCAL_STATIC_LIBRARIES := \
737 libneuralnetworks_common \
738 libboost_log \
739 libboost_program_options \
740 libboost_system \
741 libboost_thread \
742 libboost_filesystem \
743 arm_compute_library
744
745LOCAL_WHOLE_STATIC_LIBRARIES := \
746 libarmnn-driver@1.1
747
748LOCAL_SHARED_LIBRARIES := \
749 libbase \
750 libhidlbase \
751 libhidltransport \
752 libhidlmemory \
753 libdl \
754 libhardware \
755 liblog \
756 libtextclassifier_hash \
757 libutils \
758 android.hardware.neuralnetworks@1.0 \
759 android.hardware.neuralnetworks@1.1 \
760 android.hidl.allocator@1.0 \
761 android.hidl.memory@1.0
762
763ifeq ($(Q_OR_LATER),1)
764LOCAL_SHARED_LIBRARIES+= \
765 libnativewindow \
766 libui \
767 libfmq \
768 libcutils \
769 android.hardware.neuralnetworks@1.2
770endif # PLATFORM_VERSION == Q
771
Kevin Mayec1e5b82020-02-26 17:00:39 +0000772ifeq ($(R_OR_LATER),1)
773LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100774 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000775 android.hardware.neuralnetworks@1.3
776endif # PLATFORM_VERSION == R
777
alered017c395b22020-04-03 15:37:24 +0100778ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000779LOCAL_SHARED_LIBRARIES+= \
780 libOpenCL
781endif
782
783include $(BUILD_EXECUTABLE)
784
785endif # PLATFORM_VERSION == 9
786
787ifeq ($(Q_OR_LATER),1)
788# The following target is available starting from Android Q
789
790#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100791# android.hardware.neuralnetworks@1.2-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000792#####################################################
793include $(CLEAR_VARS)
794
Kevin Mayabc95d02020-05-15 15:34:03 +0100795LOCAL_MODULE := android.hardware.neuralnetworks@1.2-service-armnn
796LOCAL_INIT_RC := android.hardware.neuralnetworks@1.2-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000797LOCAL_MODULE_TAGS := optional
798LOCAL_ARM_MODE := arm
799LOCAL_MODULE_RELATIVE_PATH := hw
800LOCAL_PROPRIETARY_MODULE := true
801# Mark source files as dependent on Android.mk
802LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
803
804LOCAL_C_INCLUDES := \
805 $(ARMNN_HEADER_PATH) \
806 $(NN_HEADER_PATH)
807
808LOCAL_CFLAGS := \
809 -std=$(CPP_VERSION) \
810 -fexceptions \
811 -DARMNN_ANDROID_NN_V1_2 \
812 -DBOOST_NO_AUTO_PTR
813
814ifeq ($(ARMNN_DRIVER_DEBUG),1)
815LOCAL_CFLAGS += \
816 -UNDEBUG
817endif # ARMNN_DRIVER_DEBUG == 1
818
Kevin Mayec1e5b82020-02-26 17:00:39 +0000819# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100820ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000821LOCAL_CFLAGS+= \
822 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100823endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000824
Mike Kelly0e415132020-02-11 11:21:25 +0000825LOCAL_SRC_FILES := \
826 service.cpp
827
828LOCAL_STATIC_LIBRARIES := \
829 libneuralnetworks_common \
830 libboost_log \
831 libboost_program_options \
832 libboost_system \
833 libboost_thread \
834 libboost_filesystem \
835 arm_compute_library
836
837LOCAL_WHOLE_STATIC_LIBRARIES := \
838 libarmnn-driver@1.2
839
840LOCAL_SHARED_LIBRARIES := \
841 libbase \
842 libhidlbase \
843 libhidltransport \
844 libhidlmemory \
845 libdl \
846 libhardware \
847 liblog \
848 libtextclassifier_hash \
849 libutils \
850 libnativewindow \
851 libui \
852 libfmq \
853 libcutils \
854 android.hidl.allocator@1.0 \
855 android.hidl.memory@1.0 \
856 android.hardware.neuralnetworks@1.0 \
857 android.hardware.neuralnetworks@1.1 \
858 android.hardware.neuralnetworks@1.2
859
Kevin Mayec1e5b82020-02-26 17:00:39 +0000860ifeq ($(R_OR_LATER),1)
861LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100862 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000863 android.hardware.neuralnetworks@1.3
864endif # R or later
865
alered017c395b22020-04-03 15:37:24 +0100866ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000867LOCAL_SHARED_LIBRARIES+= \
868 libOpenCL
869endif
870
871include $(BUILD_EXECUTABLE)
872
873endif # PLATFORM_VERSION == Q
874
Kevin May42477c12020-03-26 13:34:14 +0000875ifeq ($(R_OR_LATER),1)
876# The following target is available starting from Android R
877
878#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100879# android.hardware.neuralnetworks@1.3-service-armnn #
Kevin May42477c12020-03-26 13:34:14 +0000880#####################################################
881include $(CLEAR_VARS)
882
Kevin Mayabc95d02020-05-15 15:34:03 +0100883LOCAL_MODULE := android.hardware.neuralnetworks@1.3-service-armnn
884LOCAL_INIT_RC := android.hardware.neuralnetworks@1.3-service-armnn.rc
Kevin May42477c12020-03-26 13:34:14 +0000885LOCAL_MODULE_TAGS := optional
886LOCAL_ARM_MODE := arm
887LOCAL_MODULE_RELATIVE_PATH := hw
888LOCAL_PROPRIETARY_MODULE := true
889# Mark source files as dependent on Android.mk
890LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
891
892LOCAL_C_INCLUDES := \
893 $(ARMNN_HEADER_PATH) \
894 $(NN_HEADER_PATH)
895
896LOCAL_CFLAGS := \
897 -std=$(CPP_VERSION) \
898 -fexceptions \
899 -DARMNN_ANDROID_NN_V1_3 \
900 -DBOOST_NO_AUTO_PTR \
901 -DARMNN_ANDROID_R
902
903ifeq ($(ARMNN_DRIVER_DEBUG),1)
904LOCAL_CFLAGS += \
905 -UNDEBUG
906endif # ARMNN_DRIVER_DEBUG == 1
907
908LOCAL_SRC_FILES := \
909 service.cpp
910
911LOCAL_STATIC_LIBRARIES := \
912 libneuralnetworks_common \
913 libboost_log \
914 libboost_program_options \
915 libboost_system \
916 libboost_thread \
917 libboost_filesystem \
918 arm_compute_library
919
920LOCAL_WHOLE_STATIC_LIBRARIES := \
921 libarmnn-driver@1.3
922
923LOCAL_SHARED_LIBRARIES := \
924 libbase \
925 libhidlbase \
926 libhidltransport \
927 libhidlmemory \
928 libdl \
929 libhardware \
930 liblog \
931 libtextclassifier_hash \
932 libutils \
933 libnativewindow \
934 libui \
935 libfmq \
936 libcutils \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100937 libsync \
Kevin May42477c12020-03-26 13:34:14 +0000938 android.hidl.allocator@1.0 \
939 android.hidl.memory@1.0 \
940 android.hardware.neuralnetworks@1.0 \
941 android.hardware.neuralnetworks@1.1 \
942 android.hardware.neuralnetworks@1.2 \
943 android.hardware.neuralnetworks@1.3
944
alered017c395b22020-04-03 15:37:24 +0100945ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Kevin May42477c12020-03-26 13:34:14 +0000946LOCAL_SHARED_LIBRARIES+= \
947 libOpenCL
948endif
949
950include $(BUILD_EXECUTABLE)
951
952endif # PLATFORM_VERSION == R
953
Mike Kelly0e415132020-02-11 11:21:25 +0000954##########################
955# armnn module and tests #
956##########################
957# Note we use ANDROID_NN_DRIVER_LOCAL_PATH rather than LOCAL_PATH because LOCAL_PATH will be overwritten
958# when including other .mk files that set it.
959include $(ANDROID_NN_DRIVER_LOCAL_PATH)/armnn/Android.mk
960include $(ANDROID_NN_DRIVER_LOCAL_PATH)/test/Android.mk