blob: 5431a74c791283d6a6cf59329194d5a9e46a5093 [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
Mike Kelly0e415132020-02-11 11:21:25 +000012
13ifeq ($(PLATFORM_VERSION),9)
14P_OR_LATER := 1
15endif # PLATFORM_VERSION == 9
16ifeq ($(PLATFORM_VERSION),P)
17P_OR_LATER := 1
18endif # PLATFORM_VERSION == P
19
20ifeq ($(PLATFORM_VERSION),10)
21P_OR_LATER := 1
22Q_OR_LATER := 1
23endif # PLATFORM_VERSION == 10
24ifeq ($(PLATFORM_VERSION),Q)
25P_OR_LATER := 1
26Q_OR_LATER := 1
27endif # PLATFORM_VERSION == Q
28
Kevin Mayec1e5b82020-02-26 17:00:39 +000029ifeq ($(PLATFORM_VERSION),R)
30P_OR_LATER := 1
31Q_OR_LATER := 1
32R_OR_LATER := 1
33endif # PLATFORM_VERSION == R
34
Mike Kelly0e415132020-02-11 11:21:25 +000035CPP_VERSION := c++14
36
37ifeq ($(Q_OR_LATER),1)
38CPP_VERSION := c++17
39endif
40
41# Configure these paths if you move the source or Khronos headers
42ARMNN_HEADER_PATH := $(LOCAL_PATH)/armnn/include
43ARMNN_UTILS_HEADER_PATH := $(LOCAL_PATH)/armnn/src/armnnUtils
44OPENCL_HEADER_PATH := $(LOCAL_PATH)/clframework/include
45NN_HEADER_PATH := $(LOCAL_PATH)/../../../frameworks/ml/nn/runtime/include
46
47# Variables to control CL/NEON/reference backend support
48# Set them to '0' to disable support for a specific backend
49ARMNN_COMPUTE_CL_ENABLED := 1
50ARMNN_COMPUTE_NEON_ENABLED := 1
51ARMNN_REF_ENABLED := 1
52
53ifeq ($(ARMNN_COMPUTE_CL_ENABLE),0)
54ARMNN_COMPUTE_CL_ENABLED := 0
55endif
56
57ifeq ($(ARMNN_COMPUTE_NEON_ENABLE),0)
58ARMNN_COMPUTE_NEON_ENABLED := 0
59endif
60
61ifeq ($(ARMNN_REF_ENABLE),0)
62ARMNN_REF_ENABLED := 0
63endif
64
Kevin Mayec1e5b82020-02-26 17:00:39 +000065ifeq ($(PLATFORM_VERSION),R)
66ARMNN_COMPUTE_CL_ENABLED := 0
67endif # PLATFORM_VERSION == R
68
alered017c395b22020-04-03 15:37:24 +010069# Variable to control inclusion of libOpenCL shared library
70ARMNN_INCLUDE_LIBOPENCL := $(ARMNN_COMPUTE_CL_ENABLED)
71ifeq ($(ARMNN_LIBOPENCL),0)
72ARMNN_INCLUDE_LIBOPENCL := 0
73endif
74
Mike Kelly0e415132020-02-11 11:21:25 +000075#######################
76# libarmnn-driver@1.0 #
77#######################
78include $(CLEAR_VARS)
79
80LOCAL_MODULE := libarmnn-driver@1.0
81ifeq ($(Q_OR_LATER),1)
82# "eng" is deprecated in Android Q
83LOCAL_MODULE_TAGS := optional
84else
85LOCAL_MODULE_TAGS := eng optional
86endif
87LOCAL_ARM_MODE := arm
88LOCAL_PROPRIETARY_MODULE := true
89# Mark source files as dependent on Android.mk
90LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
91
92LOCAL_C_INCLUDES := \
93 $(ARMNN_HEADER_PATH) \
94 $(ARMNN_UTILS_HEADER_PATH) \
95 $(OPENCL_HEADER_PATH) \
96 $(NN_HEADER_PATH)
97
98LOCAL_CFLAGS := \
99 -std=$(CPP_VERSION) \
100 -fexceptions \
101 -Werror \
102 -Wno-format-security
103
Kevin Mayec1e5b82020-02-26 17:00:39 +0000104# Required to build with the changes made to the Android ML framework specific to Android R
105ifeq ($(PLATFORM_VERSION),R)
Mike Kelly0e415132020-02-11 11:21:25 +0000106LOCAL_CFLAGS+= \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000107 -DARMNN_ANDROID_R
108endif # R or later
Mike Kelly0e415132020-02-11 11:21:25 +0000109
110ifeq ($(ARMNN_DRIVER_DEBUG),1)
111LOCAL_CFLAGS+= \
112 -UNDEBUG
113endif # ARMNN_DRIVER_DEBUG == 1
114
115ifeq ($(Q_OR_LATER),1)
116LOCAL_CFLAGS += \
117 -DBOOST_NO_AUTO_PTR
118endif # PLATFORM_VERSION == Q or later
119
120ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
121LOCAL_CFLAGS += \
122 -DARMCOMPUTECL_ENABLED
123endif # ARMNN_COMPUTE_CL_ENABLED == 1
124
125ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
126LOCAL_CFLAGS += \
127 -DARMCOMPUTENEON_ENABLED
128endif # ARMNN_COMPUTE_NEON_ENABLED == 1
129
130ifeq ($(ARMNN_REF_ENABLED),1)
131LOCAL_CFLAGS += \
132 -DARMNNREF_ENABLED
133endif # ARMNN_REF_ENABLED == 1
134
135LOCAL_SRC_FILES := \
136 1.0/ArmnnDriverImpl.cpp \
137 1.0/HalPolicy.cpp \
138 ArmnnDriverImpl.cpp \
139 DriverOptions.cpp \
140 ArmnnDevice.cpp \
141 ArmnnPreparedModel.cpp \
142 ModelToINetworkConverter.cpp \
143 RequestThread.cpp \
144 Utils.cpp \
145 ConversionUtils.cpp
146
147LOCAL_STATIC_LIBRARIES := \
148 libneuralnetworks_common \
149 libboost_log \
150 libboost_program_options \
151 libboost_system \
152 libboost_thread \
153 libboost_filesystem \
154 arm_compute_library
155
156LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
157
158LOCAL_SHARED_LIBRARIES := \
159 libbase \
160 libhidlbase \
161 libhidltransport \
162 libhidlmemory \
163 liblog \
164 libutils \
165 android.hardware.neuralnetworks@1.0 \
166 android.hidl.allocator@1.0 \
167 android.hidl.memory@1.0
168
169ifeq ($(P_OR_LATER),1)
170# Required to build the 1.0 version of the NN Driver on Android P and later versions,
171# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
172LOCAL_SHARED_LIBRARIES+= \
173 android.hardware.neuralnetworks@1.1
174endif # PLATFORM_VERSION == 9
175
176ifeq ($(Q_OR_LATER),1)
177LOCAL_SHARED_LIBRARIES+= \
178 libnativewindow \
179 libui \
180 libfmq \
181 libcutils \
182 android.hardware.neuralnetworks@1.2
Kevin Mayec1e5b82020-02-26 17:00:39 +0000183endif # Q or later
184
185ifeq ($(R_OR_LATER),1)
186LOCAL_SHARED_LIBRARIES+= \
187 android.hardware.neuralnetworks@1.3
188endif # R or later
Mike Kelly0e415132020-02-11 11:21:25 +0000189
alered01dbae2472020-04-07 12:31:10 +0100190ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000191LOCAL_SHARED_LIBRARIES+= \
192 libOpenCL
193endif
194
195include $(BUILD_STATIC_LIBRARY)
196
197ifeq ($(P_OR_LATER),1)
198# The following target is available starting from Android P
199
200#######################
201# libarmnn-driver@1.1 #
202#######################
203include $(CLEAR_VARS)
204
205LOCAL_MODULE := libarmnn-driver@1.1
206ifeq ($(Q_OR_LATER),1)
207# "eng" is deprecated in Android Q
208LOCAL_MODULE_TAGS := optional
209else
210LOCAL_MODULE_TAGS := eng optional
211endif
212#PRODUCT_PACKAGES_ENG := libarmnn-driver@1.1
213LOCAL_ARM_MODE := arm
214LOCAL_PROPRIETARY_MODULE := true
215# Mark source files as dependent on Android.mk
216LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
217
218LOCAL_C_INCLUDES := \
219 $(ARMNN_HEADER_PATH) \
220 $(ARMNN_UTILS_HEADER_PATH) \
221 $(OPENCL_HEADER_PATH) \
222 $(NN_HEADER_PATH)
223
224LOCAL_CFLAGS := \
225 -std=$(CPP_VERSION) \
226 -fexceptions \
227 -Werror \
228 -Wno-format-security \
Mike Kelly0e415132020-02-11 11:21:25 +0000229 -DARMNN_ANDROID_NN_V1_1
230
231ifeq ($(ARMNN_DRIVER_DEBUG),1)
232LOCAL_CFLAGS+= \
233 -UNDEBUG
234endif # ARMNN_DRIVER_DEBUG == 1
235
236ifeq ($(Q_OR_LATER),1)
237LOCAL_CFLAGS += \
238 -DBOOST_NO_AUTO_PTR
239endif # PLATFORM_VERSION == Q or later
240
Kevin Mayec1e5b82020-02-26 17:00:39 +0000241# Required to build with the changes made to the Android ML framework specific to Android R
242ifeq ($(PLATFORM_VERSION),R)
243LOCAL_CFLAGS+= \
244 -DARMNN_ANDROID_R
245endif # R or later
246
Mike Kelly0e415132020-02-11 11:21:25 +0000247ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
248LOCAL_CFLAGS += \
249 -DARMCOMPUTECL_ENABLED
250endif # ARMNN_COMPUTE_CL_ENABLED == 1
251
252ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
253LOCAL_CFLAGS += \
254 -DARMCOMPUTENEON_ENABLED
255endif # ARMNN_COMPUTE_NEON_ENABLED == 1
256
257ifeq ($(ARMNN_REF_ENABLED),1)
258LOCAL_CFLAGS += \
259 -DARMNNREF_ENABLED
260endif # ARMNN_REF_ENABLED == 1
261
262LOCAL_SRC_FILES := \
263 1.0/ArmnnDriverImpl.cpp \
264 1.0/HalPolicy.cpp \
265 1.1/ArmnnDriverImpl.cpp \
266 1.1/HalPolicy.cpp \
267 ArmnnDriverImpl.cpp \
268 DriverOptions.cpp \
269 ArmnnDevice.cpp \
270 ArmnnPreparedModel.cpp \
271 ModelToINetworkConverter.cpp \
272 RequestThread.cpp \
273 Utils.cpp \
274 ConversionUtils.cpp
275
276LOCAL_STATIC_LIBRARIES := \
277 libneuralnetworks_common \
278 libboost_log \
279 libboost_program_options \
280 libboost_system \
281 libboost_thread \
282 libboost_filesystem \
283 arm_compute_library
284
285LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
286
287LOCAL_SHARED_LIBRARIES := \
288 libbase \
289 libhidlbase \
290 libhidltransport \
291 libhidlmemory \
292 liblog \
293 libutils \
294 android.hardware.neuralnetworks@1.0 \
295 android.hardware.neuralnetworks@1.1 \
296 android.hidl.allocator@1.0 \
297 android.hidl.memory@1.0
298
299ifeq ($(Q_OR_LATER),1)
300LOCAL_SHARED_LIBRARIES+= \
301 libnativewindow \
302 libui \
303 libfmq \
304 libcutils \
305 android.hardware.neuralnetworks@1.2
306endif # PLATFORM_VERSION == Q
307
Kevin Mayec1e5b82020-02-26 17:00:39 +0000308ifeq ($(R_OR_LATER),1)
309LOCAL_SHARED_LIBRARIES+= \
310 android.hardware.neuralnetworks@1.3
311endif # R or later
312
alered017c395b22020-04-03 15:37:24 +0100313ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000314LOCAL_SHARED_LIBRARIES+= \
315 libOpenCL
316endif
317
318include $(BUILD_STATIC_LIBRARY)
319
320endif # PLATFORM_VERSION == 9
321
322ifeq ($(Q_OR_LATER),1)
323# The following target is available starting from Android Q
324
325#######################
326# libarmnn-driver@1.2 #
327#######################
328include $(CLEAR_VARS)
329
330LOCAL_MODULE := libarmnn-driver@1.2
331LOCAL_MODULE_TAGS := optional
332LOCAL_ARM_MODE := arm
333LOCAL_PROPRIETARY_MODULE := true
334# Mark source files as dependent on Android.mk
335LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
336
337LOCAL_C_INCLUDES := \
338 $(ARMNN_HEADER_PATH) \
339 $(ARMNN_UTILS_HEADER_PATH) \
340 $(OPENCL_HEADER_PATH) \
341 $(NN_HEADER_PATH)
342
343LOCAL_CFLAGS := \
344 -std=$(CPP_VERSION) \
345 -fexceptions \
346 -Werror \
347 -Wno-format-security \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000348 -DBOOST_NO_AUTO_PTR \
Mike Kelly0e415132020-02-11 11:21:25 +0000349 -DARMNN_ANDROID_NN_V1_2
350
351ifeq ($(ARMNN_DRIVER_DEBUG),1)
352LOCAL_CFLAGS+= \
353 -UNDEBUG
354endif # ARMNN_DRIVER_DEBUG == 1
355
Kevin Mayec1e5b82020-02-26 17:00:39 +0000356# Required to build with the changes made to the Android ML framework specific to Android R
357ifeq ($(PLATFORM_VERSION),R)
358LOCAL_CFLAGS+= \
359 -DARMNN_ANDROID_R
360endif # R or later
Mike Kelly0e415132020-02-11 11:21:25 +0000361
362ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
363LOCAL_CFLAGS += \
364 -DARMCOMPUTECL_ENABLED
365endif # ARMNN_COMPUTE_CL_ENABLED == 1
366
367ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
368LOCAL_CFLAGS += \
369 -DARMCOMPUTENEON_ENABLED
370endif # ARMNN_COMPUTE_NEON_ENABLED == 1
371
372ifeq ($(ARMNN_REF_ENABLED),1)
373LOCAL_CFLAGS += \
374 -DARMNNREF_ENABLED
375endif # ARMNN_REF_ENABLED == 1
376
377LOCAL_SRC_FILES := \
378 1.0/ArmnnDriverImpl.cpp \
379 1.0/HalPolicy.cpp \
380 1.1/ArmnnDriverImpl.cpp \
381 1.1/HalPolicy.cpp \
382 1.2/ArmnnDriverImpl.cpp \
383 1.2/HalPolicy.cpp \
384 ArmnnDevice.cpp \
385 ArmnnDriverImpl.cpp \
386 ArmnnPreparedModel.cpp \
387 ArmnnPreparedModel_1_2.cpp \
388 ConversionUtils.cpp \
389 DriverOptions.cpp \
390 ModelToINetworkConverter.cpp \
391 RequestThread.cpp \
392 Utils.cpp
393
394LOCAL_STATIC_LIBRARIES := \
395 libneuralnetworks_common \
396 libboost_log \
397 libboost_program_options \
398 libboost_system \
399 libboost_thread \
400 libboost_filesystem \
401 arm_compute_library
402
403LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
404
405LOCAL_SHARED_LIBRARIES := \
406 libbase \
407 libhidlbase \
408 libhidltransport \
409 libhidlmemory \
410 liblog \
411 libutils \
412 libnativewindow \
413 libui \
414 libfmq \
415 libcutils \
416 android.hidl.allocator@1.0 \
417 android.hidl.memory@1.0 \
418 android.hardware.neuralnetworks@1.0 \
419 android.hardware.neuralnetworks@1.1 \
420 android.hardware.neuralnetworks@1.2
421
Kevin Mayec1e5b82020-02-26 17:00:39 +0000422ifeq ($(R_OR_LATER),1)
423LOCAL_SHARED_LIBRARIES+= \
424 android.hardware.neuralnetworks@1.3
425endif # R or later
426
alered017c395b22020-04-03 15:37:24 +0100427ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000428LOCAL_SHARED_LIBRARIES+= \
429 libOpenCL
430endif
431
432include $(BUILD_STATIC_LIBRARY)
433
434endif # PLATFORM_VERSION == Q
435
Kevin May42477c12020-03-26 13:34:14 +0000436ifeq ($(R_OR_LATER),1)
437# The following target is available starting from Android R
438
439#######################
440# libarmnn-driver@1.3 #
441#######################
442include $(CLEAR_VARS)
443
444LOCAL_MODULE := libarmnn-driver@1.3
445LOCAL_MODULE_TAGS := optional
446LOCAL_ARM_MODE := arm
447LOCAL_PROPRIETARY_MODULE := true
448# Mark source files as dependent on Android.mk
449LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
450
451LOCAL_C_INCLUDES := \
452 $(ARMNN_HEADER_PATH) \
453 $(ARMNN_UTILS_HEADER_PATH) \
454 $(OPENCL_HEADER_PATH) \
455 $(NN_HEADER_PATH)
456
457LOCAL_CFLAGS := \
458 -std=$(CPP_VERSION) \
459 -fexceptions \
460 -Werror \
461 -Wno-format-security \
462 -DBOOST_NO_AUTO_PTR \
463 -DARMNN_ANDROID_NN_V1_3 \
464 -DARMNN_ANDROID_R
465
466ifeq ($(ARMNN_DRIVER_DEBUG),1)
467LOCAL_CFLAGS+= \
468 -UNDEBUG
469endif # ARMNN_DRIVER_DEBUG == 1
470
471ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
472LOCAL_CFLAGS += \
473 -DARMCOMPUTECL_ENABLED
474endif # ARMNN_COMPUTE_CL_ENABLED == 1
475
476ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
477LOCAL_CFLAGS += \
478 -DARMCOMPUTENEON_ENABLED
479endif # ARMNN_COMPUTE_NEON_ENABLED == 1
480
481ifeq ($(ARMNN_REF_ENABLED),1)
482LOCAL_CFLAGS += \
483 -DARMNNREF_ENABLED
484endif # ARMNN_REF_ENABLED == 1
485
486LOCAL_SRC_FILES := \
487 1.0/ArmnnDriverImpl.cpp \
488 1.0/HalPolicy.cpp \
489 1.1/ArmnnDriverImpl.cpp \
490 1.1/HalPolicy.cpp \
491 1.2/ArmnnDriverImpl.cpp \
492 1.2/HalPolicy.cpp \
493 1.3/ArmnnDriverImpl.cpp \
494 1.3/HalPolicy.cpp \
495 ArmnnDevice.cpp \
496 ArmnnDriverImpl.cpp \
497 ArmnnPreparedModel.cpp \
498 ArmnnPreparedModel_1_2.cpp \
499 ArmnnPreparedModel_1_3.cpp \
500 ConversionUtils.cpp \
501 DriverOptions.cpp \
502 ModelToINetworkConverter.cpp \
503 RequestThread.cpp \
504 Utils.cpp
505
506LOCAL_STATIC_LIBRARIES := \
507 libneuralnetworks_common \
508 libboost_log \
509 libboost_program_options \
510 libboost_system \
511 libboost_thread \
512 libboost_filesystem \
513 arm_compute_library
514
515LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
516
517LOCAL_SHARED_LIBRARIES := \
518 libbase \
519 libhidlbase \
520 libhidltransport \
521 libhidlmemory \
522 liblog \
523 libutils \
524 libnativewindow \
525 libui \
526 libfmq \
527 libcutils \
528 android.hidl.allocator@1.0 \
529 android.hidl.memory@1.0 \
530 android.hardware.neuralnetworks@1.0 \
531 android.hardware.neuralnetworks@1.1 \
532 android.hardware.neuralnetworks@1.2 \
533 android.hardware.neuralnetworks@1.3
534
alered017c395b22020-04-03 15:37:24 +0100535ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Kevin May42477c12020-03-26 13:34:14 +0000536LOCAL_SHARED_LIBRARIES+= \
537 libOpenCL
538endif
539
540include $(BUILD_STATIC_LIBRARY)
541
542endif # PLATFORM_VERSION == R
543
Mike Kelly0e415132020-02-11 11:21:25 +0000544#####################################################
545# android.hardware.neuralnetworks@1.0-service-armnn #
546#####################################################
547include $(CLEAR_VARS)
548
549LOCAL_MODULE := android.hardware.neuralnetworks@1.0-service-armnn
550LOCAL_INIT_RC := android.hardware.neuralnetworks@1.0-service-armnn.rc
551ifeq ($(Q_OR_LATER),1)
552# "eng" is deprecated in Android Q
553LOCAL_MODULE_TAGS := optional
554else
555LOCAL_MODULE_TAGS := eng optional
556endif
557LOCAL_ARM_MODE := arm
558LOCAL_MODULE_RELATIVE_PATH := hw
559LOCAL_PROPRIETARY_MODULE := true
560# Mark source files as dependent on Android.mk
561LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
562
563LOCAL_C_INCLUDES := \
564 $(ARMNN_HEADER_PATH) \
565 $(NN_HEADER_PATH)
566
567LOCAL_CFLAGS := \
568 -std=$(CPP_VERSION) \
569 -fexceptions
570
571ifeq ($(ARMNN_DRIVER_DEBUG),1)
572LOCAL_CFLAGS += \
573 -UNDEBUG
574endif # ARMNN_DRIVER_DEBUG == 1
575
576ifeq ($(Q_OR_LATER),1)
577LOCAL_CFLAGS += \
578 -DBOOST_NO_AUTO_PTR
579endif # PLATFORM_VERSION == Q or later
580
Kevin Mayec1e5b82020-02-26 17:00:39 +0000581# Required to build with the changes made to the Android ML framework specific to Android R
582ifeq ($(PLATFORM_VERSION),R)
583LOCAL_CFLAGS+= \
584 -DARMNN_ANDROID_R
585endif # R or later
586
Mike Kelly0e415132020-02-11 11:21:25 +0000587LOCAL_SRC_FILES := \
588 service.cpp
589
590LOCAL_STATIC_LIBRARIES := \
591 libneuralnetworks_common \
592 libboost_log \
593 libboost_program_options \
594 libboost_system \
595 libboost_thread \
596 libboost_filesystem \
597 arm_compute_library
598
599LOCAL_WHOLE_STATIC_LIBRARIES := \
600 libarmnn-driver@1.0
601
602LOCAL_SHARED_LIBRARIES := \
603 libbase \
604 libhidlbase \
605 libhidltransport \
606 libhidlmemory \
607 libdl \
608 libhardware \
609 liblog \
610 libtextclassifier_hash \
611 libutils \
612 android.hardware.neuralnetworks@1.0 \
613 android.hidl.allocator@1.0 \
614 android.hidl.memory@1.0
615
616ifeq ($(P_OR_LATER),1)
617# Required to build the 1.0 version of the NN Driver on Android P and later versions,
618# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
619LOCAL_SHARED_LIBRARIES+= \
620 android.hardware.neuralnetworks@1.1
621endif # PLATFORM_VERSION == 9
Kevin Mayec1e5b82020-02-26 17:00:39 +0000622
Mike Kelly0e415132020-02-11 11:21:25 +0000623ifeq ($(Q_OR_LATER),1)
624LOCAL_SHARED_LIBRARIES+= \
625 libnativewindow \
626 libui \
627 libfmq \
628 libcutils \
629 android.hardware.neuralnetworks@1.2
630endif # PLATFORM_VERSION == Q
631
Kevin Mayec1e5b82020-02-26 17:00:39 +0000632ifeq ($(R_OR_LATER),1)
633LOCAL_SHARED_LIBRARIES+= \
634 android.hardware.neuralnetworks@1.3
635endif # R or later
636
alered017c395b22020-04-03 15:37:24 +0100637ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000638LOCAL_SHARED_LIBRARIES+= \
639 libOpenCL
640endif
641
642include $(BUILD_EXECUTABLE)
643
644ifeq ($(P_OR_LATER),1)
645# The following target is available starting from Android P
646
647#####################################################
648# android.hardware.neuralnetworks@1.1-service-armnn #
649#####################################################
650include $(CLEAR_VARS)
651
652LOCAL_MODULE := android.hardware.neuralnetworks@1.1-service-armnn
653LOCAL_INIT_RC := android.hardware.neuralnetworks@1.1-service-armnn.rc
654ifeq ($(Q_OR_LATER),1)
655# "eng" is deprecated in Android Q
656LOCAL_MODULE_TAGS := optional
657else
658LOCAL_MODULE_TAGS := eng optional
659endif
660LOCAL_ARM_MODE := arm
661LOCAL_MODULE_RELATIVE_PATH := hw
662LOCAL_PROPRIETARY_MODULE := true
663# Mark source files as dependent on Android.mk
664LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
665
666LOCAL_C_INCLUDES := \
667 $(ARMNN_HEADER_PATH) \
668 $(NN_HEADER_PATH)
669
670LOCAL_CFLAGS := \
671 -std=$(CPP_VERSION) \
672 -fexceptions \
673 -DARMNN_ANDROID_NN_V1_1
674
675ifeq ($(ARMNN_DRIVER_DEBUG),1)
676LOCAL_CFLAGS += \
677 -UNDEBUG
678endif # ARMNN_DRIVER_DEBUG == 1
679
680ifeq ($(Q_OR_LATER),1)
681LOCAL_CFLAGS += \
682 -DBOOST_NO_AUTO_PTR
683endif # PLATFORM_VERSION == Q or later
684
Kevin Mayec1e5b82020-02-26 17:00:39 +0000685# Required to build with the changes made to the Android ML framework specific to Android R
686ifeq ($(PLATFORM_VERSION),R)
687LOCAL_CFLAGS+= \
688 -DARMNN_ANDROID_R
689endif # R or later
690
Mike Kelly0e415132020-02-11 11:21:25 +0000691LOCAL_SRC_FILES := \
692 service.cpp
693
694LOCAL_STATIC_LIBRARIES := \
695 libneuralnetworks_common \
696 libboost_log \
697 libboost_program_options \
698 libboost_system \
699 libboost_thread \
700 libboost_filesystem \
701 arm_compute_library
702
703LOCAL_WHOLE_STATIC_LIBRARIES := \
704 libarmnn-driver@1.1
705
706LOCAL_SHARED_LIBRARIES := \
707 libbase \
708 libhidlbase \
709 libhidltransport \
710 libhidlmemory \
711 libdl \
712 libhardware \
713 liblog \
714 libtextclassifier_hash \
715 libutils \
716 android.hardware.neuralnetworks@1.0 \
717 android.hardware.neuralnetworks@1.1 \
718 android.hidl.allocator@1.0 \
719 android.hidl.memory@1.0
720
721ifeq ($(Q_OR_LATER),1)
722LOCAL_SHARED_LIBRARIES+= \
723 libnativewindow \
724 libui \
725 libfmq \
726 libcutils \
727 android.hardware.neuralnetworks@1.2
728endif # PLATFORM_VERSION == Q
729
Kevin Mayec1e5b82020-02-26 17:00:39 +0000730ifeq ($(R_OR_LATER),1)
731LOCAL_SHARED_LIBRARIES+= \
732 android.hardware.neuralnetworks@1.3
733endif # PLATFORM_VERSION == R
734
alered017c395b22020-04-03 15:37:24 +0100735ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000736LOCAL_SHARED_LIBRARIES+= \
737 libOpenCL
738endif
739
740include $(BUILD_EXECUTABLE)
741
742endif # PLATFORM_VERSION == 9
743
744ifeq ($(Q_OR_LATER),1)
745# The following target is available starting from Android Q
746
747#####################################################
748# android.hardware.neuralnetworks@1.2-service-armnn #
749#####################################################
750include $(CLEAR_VARS)
751
752LOCAL_MODULE := android.hardware.neuralnetworks@1.2-service-armnn
753LOCAL_INIT_RC := android.hardware.neuralnetworks@1.2-service-armnn.rc
754LOCAL_MODULE_TAGS := optional
755LOCAL_ARM_MODE := arm
756LOCAL_MODULE_RELATIVE_PATH := hw
757LOCAL_PROPRIETARY_MODULE := true
758# Mark source files as dependent on Android.mk
759LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
760
761LOCAL_C_INCLUDES := \
762 $(ARMNN_HEADER_PATH) \
763 $(NN_HEADER_PATH)
764
765LOCAL_CFLAGS := \
766 -std=$(CPP_VERSION) \
767 -fexceptions \
768 -DARMNN_ANDROID_NN_V1_2 \
769 -DBOOST_NO_AUTO_PTR
770
771ifeq ($(ARMNN_DRIVER_DEBUG),1)
772LOCAL_CFLAGS += \
773 -UNDEBUG
774endif # ARMNN_DRIVER_DEBUG == 1
775
Kevin Mayec1e5b82020-02-26 17:00:39 +0000776# Required to build with the changes made to the Android ML framework specific to Android R
777ifeq ($(PLATFORM_VERSION),R)
778LOCAL_CFLAGS+= \
779 -DARMNN_ANDROID_R
780endif # R or later
781
Mike Kelly0e415132020-02-11 11:21:25 +0000782LOCAL_SRC_FILES := \
783 service.cpp
784
785LOCAL_STATIC_LIBRARIES := \
786 libneuralnetworks_common \
787 libboost_log \
788 libboost_program_options \
789 libboost_system \
790 libboost_thread \
791 libboost_filesystem \
792 arm_compute_library
793
794LOCAL_WHOLE_STATIC_LIBRARIES := \
795 libarmnn-driver@1.2
796
797LOCAL_SHARED_LIBRARIES := \
798 libbase \
799 libhidlbase \
800 libhidltransport \
801 libhidlmemory \
802 libdl \
803 libhardware \
804 liblog \
805 libtextclassifier_hash \
806 libutils \
807 libnativewindow \
808 libui \
809 libfmq \
810 libcutils \
811 android.hidl.allocator@1.0 \
812 android.hidl.memory@1.0 \
813 android.hardware.neuralnetworks@1.0 \
814 android.hardware.neuralnetworks@1.1 \
815 android.hardware.neuralnetworks@1.2
816
Kevin Mayec1e5b82020-02-26 17:00:39 +0000817ifeq ($(R_OR_LATER),1)
818LOCAL_SHARED_LIBRARIES+= \
819 android.hardware.neuralnetworks@1.3
820endif # R or later
821
alered017c395b22020-04-03 15:37:24 +0100822ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000823LOCAL_SHARED_LIBRARIES+= \
824 libOpenCL
825endif
826
827include $(BUILD_EXECUTABLE)
828
829endif # PLATFORM_VERSION == Q
830
Kevin May42477c12020-03-26 13:34:14 +0000831ifeq ($(R_OR_LATER),1)
832# The following target is available starting from Android R
833
834#####################################################
835# android.hardware.neuralnetworks@1.3-service-armnn #
836#####################################################
837include $(CLEAR_VARS)
838
839LOCAL_MODULE := android.hardware.neuralnetworks@1.3-service-armnn
840LOCAL_INIT_RC := android.hardware.neuralnetworks@1.3-service-armnn.rc
841LOCAL_MODULE_TAGS := optional
842LOCAL_ARM_MODE := arm
843LOCAL_MODULE_RELATIVE_PATH := hw
844LOCAL_PROPRIETARY_MODULE := true
845# Mark source files as dependent on Android.mk
846LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
847
848LOCAL_C_INCLUDES := \
849 $(ARMNN_HEADER_PATH) \
850 $(NN_HEADER_PATH)
851
852LOCAL_CFLAGS := \
853 -std=$(CPP_VERSION) \
854 -fexceptions \
855 -DARMNN_ANDROID_NN_V1_3 \
856 -DBOOST_NO_AUTO_PTR \
857 -DARMNN_ANDROID_R
858
859ifeq ($(ARMNN_DRIVER_DEBUG),1)
860LOCAL_CFLAGS += \
861 -UNDEBUG
862endif # ARMNN_DRIVER_DEBUG == 1
863
864LOCAL_SRC_FILES := \
865 service.cpp
866
867LOCAL_STATIC_LIBRARIES := \
868 libneuralnetworks_common \
869 libboost_log \
870 libboost_program_options \
871 libboost_system \
872 libboost_thread \
873 libboost_filesystem \
874 arm_compute_library
875
876LOCAL_WHOLE_STATIC_LIBRARIES := \
877 libarmnn-driver@1.3
878
879LOCAL_SHARED_LIBRARIES := \
880 libbase \
881 libhidlbase \
882 libhidltransport \
883 libhidlmemory \
884 libdl \
885 libhardware \
886 liblog \
887 libtextclassifier_hash \
888 libutils \
889 libnativewindow \
890 libui \
891 libfmq \
892 libcutils \
893 android.hidl.allocator@1.0 \
894 android.hidl.memory@1.0 \
895 android.hardware.neuralnetworks@1.0 \
896 android.hardware.neuralnetworks@1.1 \
897 android.hardware.neuralnetworks@1.2 \
898 android.hardware.neuralnetworks@1.3
899
alered017c395b22020-04-03 15:37:24 +0100900ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Kevin May42477c12020-03-26 13:34:14 +0000901LOCAL_SHARED_LIBRARIES+= \
902 libOpenCL
903endif
904
905include $(BUILD_EXECUTABLE)
906
907endif # PLATFORM_VERSION == R
908
Mike Kelly0e415132020-02-11 11:21:25 +0000909##########################
910# armnn module and tests #
911##########################
912# Note we use ANDROID_NN_DRIVER_LOCAL_PATH rather than LOCAL_PATH because LOCAL_PATH will be overwritten
913# when including other .mk files that set it.
914include $(ANDROID_NN_DRIVER_LOCAL_PATH)/armnn/Android.mk
915include $(ANDROID_NN_DRIVER_LOCAL_PATH)/test/Android.mk