blob: 6cc85eecc2dd0f8774a8fe08c3fe790055a46faa [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
Mike Kelly0e415132020-02-11 11:21:25 +000069#######################
70# libarmnn-driver@1.0 #
71#######################
72include $(CLEAR_VARS)
73
74LOCAL_MODULE := libarmnn-driver@1.0
75ifeq ($(Q_OR_LATER),1)
76# "eng" is deprecated in Android Q
77LOCAL_MODULE_TAGS := optional
78else
79LOCAL_MODULE_TAGS := eng optional
80endif
81LOCAL_ARM_MODE := arm
82LOCAL_PROPRIETARY_MODULE := true
83# Mark source files as dependent on Android.mk
84LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
85
86LOCAL_C_INCLUDES := \
87 $(ARMNN_HEADER_PATH) \
88 $(ARMNN_UTILS_HEADER_PATH) \
89 $(OPENCL_HEADER_PATH) \
90 $(NN_HEADER_PATH)
91
92LOCAL_CFLAGS := \
93 -std=$(CPP_VERSION) \
94 -fexceptions \
95 -Werror \
96 -Wno-format-security
97
Kevin Mayec1e5b82020-02-26 17:00:39 +000098# Required to build with the changes made to the Android ML framework specific to Android R
99ifeq ($(PLATFORM_VERSION),R)
Mike Kelly0e415132020-02-11 11:21:25 +0000100LOCAL_CFLAGS+= \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000101 -DARMNN_ANDROID_R
102endif # R or later
Mike Kelly0e415132020-02-11 11:21:25 +0000103
104ifeq ($(ARMNN_DRIVER_DEBUG),1)
105LOCAL_CFLAGS+= \
106 -UNDEBUG
107endif # ARMNN_DRIVER_DEBUG == 1
108
109ifeq ($(Q_OR_LATER),1)
110LOCAL_CFLAGS += \
111 -DBOOST_NO_AUTO_PTR
112endif # PLATFORM_VERSION == Q or later
113
114ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
115LOCAL_CFLAGS += \
116 -DARMCOMPUTECL_ENABLED
117endif # ARMNN_COMPUTE_CL_ENABLED == 1
118
119ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
120LOCAL_CFLAGS += \
121 -DARMCOMPUTENEON_ENABLED
122endif # ARMNN_COMPUTE_NEON_ENABLED == 1
123
124ifeq ($(ARMNN_REF_ENABLED),1)
125LOCAL_CFLAGS += \
126 -DARMNNREF_ENABLED
127endif # ARMNN_REF_ENABLED == 1
128
129LOCAL_SRC_FILES := \
130 1.0/ArmnnDriverImpl.cpp \
131 1.0/HalPolicy.cpp \
132 ArmnnDriverImpl.cpp \
133 DriverOptions.cpp \
134 ArmnnDevice.cpp \
135 ArmnnPreparedModel.cpp \
136 ModelToINetworkConverter.cpp \
137 RequestThread.cpp \
138 Utils.cpp \
139 ConversionUtils.cpp
140
141LOCAL_STATIC_LIBRARIES := \
142 libneuralnetworks_common \
143 libboost_log \
144 libboost_program_options \
145 libboost_system \
146 libboost_thread \
147 libboost_filesystem \
148 arm_compute_library
149
150LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
151
152LOCAL_SHARED_LIBRARIES := \
153 libbase \
154 libhidlbase \
155 libhidltransport \
156 libhidlmemory \
157 liblog \
158 libutils \
159 android.hardware.neuralnetworks@1.0 \
160 android.hidl.allocator@1.0 \
161 android.hidl.memory@1.0
162
163ifeq ($(P_OR_LATER),1)
164# Required to build the 1.0 version of the NN Driver on Android P and later versions,
165# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
166LOCAL_SHARED_LIBRARIES+= \
167 android.hardware.neuralnetworks@1.1
168endif # PLATFORM_VERSION == 9
169
170ifeq ($(Q_OR_LATER),1)
171LOCAL_SHARED_LIBRARIES+= \
172 libnativewindow \
173 libui \
174 libfmq \
175 libcutils \
176 android.hardware.neuralnetworks@1.2
Kevin Mayec1e5b82020-02-26 17:00:39 +0000177endif # Q or later
178
179ifeq ($(R_OR_LATER),1)
180LOCAL_SHARED_LIBRARIES+= \
181 android.hardware.neuralnetworks@1.3
182endif # R or later
Mike Kelly0e415132020-02-11 11:21:25 +0000183
184ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
185LOCAL_SHARED_LIBRARIES+= \
186 libOpenCL
187endif
188
189include $(BUILD_STATIC_LIBRARY)
190
191ifeq ($(P_OR_LATER),1)
192# The following target is available starting from Android P
193
194#######################
195# libarmnn-driver@1.1 #
196#######################
197include $(CLEAR_VARS)
198
199LOCAL_MODULE := libarmnn-driver@1.1
200ifeq ($(Q_OR_LATER),1)
201# "eng" is deprecated in Android Q
202LOCAL_MODULE_TAGS := optional
203else
204LOCAL_MODULE_TAGS := eng optional
205endif
206#PRODUCT_PACKAGES_ENG := libarmnn-driver@1.1
207LOCAL_ARM_MODE := arm
208LOCAL_PROPRIETARY_MODULE := true
209# Mark source files as dependent on Android.mk
210LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
211
212LOCAL_C_INCLUDES := \
213 $(ARMNN_HEADER_PATH) \
214 $(ARMNN_UTILS_HEADER_PATH) \
215 $(OPENCL_HEADER_PATH) \
216 $(NN_HEADER_PATH)
217
218LOCAL_CFLAGS := \
219 -std=$(CPP_VERSION) \
220 -fexceptions \
221 -Werror \
222 -Wno-format-security \
Mike Kelly0e415132020-02-11 11:21:25 +0000223 -DARMNN_ANDROID_NN_V1_1
224
225ifeq ($(ARMNN_DRIVER_DEBUG),1)
226LOCAL_CFLAGS+= \
227 -UNDEBUG
228endif # ARMNN_DRIVER_DEBUG == 1
229
230ifeq ($(Q_OR_LATER),1)
231LOCAL_CFLAGS += \
232 -DBOOST_NO_AUTO_PTR
233endif # PLATFORM_VERSION == Q or later
234
Kevin Mayec1e5b82020-02-26 17:00:39 +0000235# Required to build with the changes made to the Android ML framework specific to Android R
236ifeq ($(PLATFORM_VERSION),R)
237LOCAL_CFLAGS+= \
238 -DARMNN_ANDROID_R
239endif # R or later
240
Mike Kelly0e415132020-02-11 11:21:25 +0000241ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
242LOCAL_CFLAGS += \
243 -DARMCOMPUTECL_ENABLED
244endif # ARMNN_COMPUTE_CL_ENABLED == 1
245
246ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
247LOCAL_CFLAGS += \
248 -DARMCOMPUTENEON_ENABLED
249endif # ARMNN_COMPUTE_NEON_ENABLED == 1
250
251ifeq ($(ARMNN_REF_ENABLED),1)
252LOCAL_CFLAGS += \
253 -DARMNNREF_ENABLED
254endif # ARMNN_REF_ENABLED == 1
255
256LOCAL_SRC_FILES := \
257 1.0/ArmnnDriverImpl.cpp \
258 1.0/HalPolicy.cpp \
259 1.1/ArmnnDriverImpl.cpp \
260 1.1/HalPolicy.cpp \
261 ArmnnDriverImpl.cpp \
262 DriverOptions.cpp \
263 ArmnnDevice.cpp \
264 ArmnnPreparedModel.cpp \
265 ModelToINetworkConverter.cpp \
266 RequestThread.cpp \
267 Utils.cpp \
268 ConversionUtils.cpp
269
270LOCAL_STATIC_LIBRARIES := \
271 libneuralnetworks_common \
272 libboost_log \
273 libboost_program_options \
274 libboost_system \
275 libboost_thread \
276 libboost_filesystem \
277 arm_compute_library
278
279LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
280
281LOCAL_SHARED_LIBRARIES := \
282 libbase \
283 libhidlbase \
284 libhidltransport \
285 libhidlmemory \
286 liblog \
287 libutils \
288 android.hardware.neuralnetworks@1.0 \
289 android.hardware.neuralnetworks@1.1 \
290 android.hidl.allocator@1.0 \
291 android.hidl.memory@1.0
292
293ifeq ($(Q_OR_LATER),1)
294LOCAL_SHARED_LIBRARIES+= \
295 libnativewindow \
296 libui \
297 libfmq \
298 libcutils \
299 android.hardware.neuralnetworks@1.2
300endif # PLATFORM_VERSION == Q
301
Kevin Mayec1e5b82020-02-26 17:00:39 +0000302ifeq ($(R_OR_LATER),1)
303LOCAL_SHARED_LIBRARIES+= \
304 android.hardware.neuralnetworks@1.3
305endif # R or later
306
Mike Kelly0e415132020-02-11 11:21:25 +0000307ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
308LOCAL_SHARED_LIBRARIES+= \
309 libOpenCL
310endif
311
312include $(BUILD_STATIC_LIBRARY)
313
314endif # PLATFORM_VERSION == 9
315
316ifeq ($(Q_OR_LATER),1)
317# The following target is available starting from Android Q
318
319#######################
320# libarmnn-driver@1.2 #
321#######################
322include $(CLEAR_VARS)
323
324LOCAL_MODULE := libarmnn-driver@1.2
325LOCAL_MODULE_TAGS := optional
326LOCAL_ARM_MODE := arm
327LOCAL_PROPRIETARY_MODULE := true
328# Mark source files as dependent on Android.mk
329LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
330
331LOCAL_C_INCLUDES := \
332 $(ARMNN_HEADER_PATH) \
333 $(ARMNN_UTILS_HEADER_PATH) \
334 $(OPENCL_HEADER_PATH) \
335 $(NN_HEADER_PATH)
336
337LOCAL_CFLAGS := \
338 -std=$(CPP_VERSION) \
339 -fexceptions \
340 -Werror \
341 -Wno-format-security \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000342 -DBOOST_NO_AUTO_PTR \
Mike Kelly0e415132020-02-11 11:21:25 +0000343 -DARMNN_ANDROID_NN_V1_2
344
345ifeq ($(ARMNN_DRIVER_DEBUG),1)
346LOCAL_CFLAGS+= \
347 -UNDEBUG
348endif # ARMNN_DRIVER_DEBUG == 1
349
Kevin Mayec1e5b82020-02-26 17:00:39 +0000350# Required to build with the changes made to the Android ML framework specific to Android R
351ifeq ($(PLATFORM_VERSION),R)
352LOCAL_CFLAGS+= \
353 -DARMNN_ANDROID_R
354endif # R or later
Mike Kelly0e415132020-02-11 11:21:25 +0000355
356ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
357LOCAL_CFLAGS += \
358 -DARMCOMPUTECL_ENABLED
359endif # ARMNN_COMPUTE_CL_ENABLED == 1
360
361ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
362LOCAL_CFLAGS += \
363 -DARMCOMPUTENEON_ENABLED
364endif # ARMNN_COMPUTE_NEON_ENABLED == 1
365
366ifeq ($(ARMNN_REF_ENABLED),1)
367LOCAL_CFLAGS += \
368 -DARMNNREF_ENABLED
369endif # ARMNN_REF_ENABLED == 1
370
371LOCAL_SRC_FILES := \
372 1.0/ArmnnDriverImpl.cpp \
373 1.0/HalPolicy.cpp \
374 1.1/ArmnnDriverImpl.cpp \
375 1.1/HalPolicy.cpp \
376 1.2/ArmnnDriverImpl.cpp \
377 1.2/HalPolicy.cpp \
378 ArmnnDevice.cpp \
379 ArmnnDriverImpl.cpp \
380 ArmnnPreparedModel.cpp \
381 ArmnnPreparedModel_1_2.cpp \
382 ConversionUtils.cpp \
383 DriverOptions.cpp \
384 ModelToINetworkConverter.cpp \
385 RequestThread.cpp \
386 Utils.cpp
387
388LOCAL_STATIC_LIBRARIES := \
389 libneuralnetworks_common \
390 libboost_log \
391 libboost_program_options \
392 libboost_system \
393 libboost_thread \
394 libboost_filesystem \
395 arm_compute_library
396
397LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
398
399LOCAL_SHARED_LIBRARIES := \
400 libbase \
401 libhidlbase \
402 libhidltransport \
403 libhidlmemory \
404 liblog \
405 libutils \
406 libnativewindow \
407 libui \
408 libfmq \
409 libcutils \
410 android.hidl.allocator@1.0 \
411 android.hidl.memory@1.0 \
412 android.hardware.neuralnetworks@1.0 \
413 android.hardware.neuralnetworks@1.1 \
414 android.hardware.neuralnetworks@1.2
415
Kevin Mayec1e5b82020-02-26 17:00:39 +0000416ifeq ($(R_OR_LATER),1)
417LOCAL_SHARED_LIBRARIES+= \
418 android.hardware.neuralnetworks@1.3
419endif # R or later
420
Mike Kelly0e415132020-02-11 11:21:25 +0000421ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
422LOCAL_SHARED_LIBRARIES+= \
423 libOpenCL
424endif
425
426include $(BUILD_STATIC_LIBRARY)
427
428endif # PLATFORM_VERSION == Q
429
430#####################################################
431# android.hardware.neuralnetworks@1.0-service-armnn #
432#####################################################
433include $(CLEAR_VARS)
434
435LOCAL_MODULE := android.hardware.neuralnetworks@1.0-service-armnn
436LOCAL_INIT_RC := android.hardware.neuralnetworks@1.0-service-armnn.rc
437ifeq ($(Q_OR_LATER),1)
438# "eng" is deprecated in Android Q
439LOCAL_MODULE_TAGS := optional
440else
441LOCAL_MODULE_TAGS := eng optional
442endif
443LOCAL_ARM_MODE := arm
444LOCAL_MODULE_RELATIVE_PATH := hw
445LOCAL_PROPRIETARY_MODULE := true
446# Mark source files as dependent on Android.mk
447LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
448
449LOCAL_C_INCLUDES := \
450 $(ARMNN_HEADER_PATH) \
451 $(NN_HEADER_PATH)
452
453LOCAL_CFLAGS := \
454 -std=$(CPP_VERSION) \
455 -fexceptions
456
457ifeq ($(ARMNN_DRIVER_DEBUG),1)
458LOCAL_CFLAGS += \
459 -UNDEBUG
460endif # ARMNN_DRIVER_DEBUG == 1
461
462ifeq ($(Q_OR_LATER),1)
463LOCAL_CFLAGS += \
464 -DBOOST_NO_AUTO_PTR
465endif # PLATFORM_VERSION == Q or later
466
Kevin Mayec1e5b82020-02-26 17:00:39 +0000467# Required to build with the changes made to the Android ML framework specific to Android R
468ifeq ($(PLATFORM_VERSION),R)
469LOCAL_CFLAGS+= \
470 -DARMNN_ANDROID_R
471endif # R or later
472
Mike Kelly0e415132020-02-11 11:21:25 +0000473LOCAL_SRC_FILES := \
474 service.cpp
475
476LOCAL_STATIC_LIBRARIES := \
477 libneuralnetworks_common \
478 libboost_log \
479 libboost_program_options \
480 libboost_system \
481 libboost_thread \
482 libboost_filesystem \
483 arm_compute_library
484
485LOCAL_WHOLE_STATIC_LIBRARIES := \
486 libarmnn-driver@1.0
487
488LOCAL_SHARED_LIBRARIES := \
489 libbase \
490 libhidlbase \
491 libhidltransport \
492 libhidlmemory \
493 libdl \
494 libhardware \
495 liblog \
496 libtextclassifier_hash \
497 libutils \
498 android.hardware.neuralnetworks@1.0 \
499 android.hidl.allocator@1.0 \
500 android.hidl.memory@1.0
501
502ifeq ($(P_OR_LATER),1)
503# Required to build the 1.0 version of the NN Driver on Android P and later versions,
504# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
505LOCAL_SHARED_LIBRARIES+= \
506 android.hardware.neuralnetworks@1.1
507endif # PLATFORM_VERSION == 9
Kevin Mayec1e5b82020-02-26 17:00:39 +0000508
Mike Kelly0e415132020-02-11 11:21:25 +0000509ifeq ($(Q_OR_LATER),1)
510LOCAL_SHARED_LIBRARIES+= \
511 libnativewindow \
512 libui \
513 libfmq \
514 libcutils \
515 android.hardware.neuralnetworks@1.2
516endif # PLATFORM_VERSION == Q
517
Kevin Mayec1e5b82020-02-26 17:00:39 +0000518ifeq ($(R_OR_LATER),1)
519LOCAL_SHARED_LIBRARIES+= \
520 android.hardware.neuralnetworks@1.3
521endif # R or later
522
Mike Kelly0e415132020-02-11 11:21:25 +0000523ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
524LOCAL_SHARED_LIBRARIES+= \
525 libOpenCL
526endif
527
528include $(BUILD_EXECUTABLE)
529
530ifeq ($(P_OR_LATER),1)
531# The following target is available starting from Android P
532
533#####################################################
534# android.hardware.neuralnetworks@1.1-service-armnn #
535#####################################################
536include $(CLEAR_VARS)
537
538LOCAL_MODULE := android.hardware.neuralnetworks@1.1-service-armnn
539LOCAL_INIT_RC := android.hardware.neuralnetworks@1.1-service-armnn.rc
540ifeq ($(Q_OR_LATER),1)
541# "eng" is deprecated in Android Q
542LOCAL_MODULE_TAGS := optional
543else
544LOCAL_MODULE_TAGS := eng optional
545endif
546LOCAL_ARM_MODE := arm
547LOCAL_MODULE_RELATIVE_PATH := hw
548LOCAL_PROPRIETARY_MODULE := true
549# Mark source files as dependent on Android.mk
550LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
551
552LOCAL_C_INCLUDES := \
553 $(ARMNN_HEADER_PATH) \
554 $(NN_HEADER_PATH)
555
556LOCAL_CFLAGS := \
557 -std=$(CPP_VERSION) \
558 -fexceptions \
559 -DARMNN_ANDROID_NN_V1_1
560
561ifeq ($(ARMNN_DRIVER_DEBUG),1)
562LOCAL_CFLAGS += \
563 -UNDEBUG
564endif # ARMNN_DRIVER_DEBUG == 1
565
566ifeq ($(Q_OR_LATER),1)
567LOCAL_CFLAGS += \
568 -DBOOST_NO_AUTO_PTR
569endif # PLATFORM_VERSION == Q or later
570
Kevin Mayec1e5b82020-02-26 17:00:39 +0000571# Required to build with the changes made to the Android ML framework specific to Android R
572ifeq ($(PLATFORM_VERSION),R)
573LOCAL_CFLAGS+= \
574 -DARMNN_ANDROID_R
575endif # R or later
576
Mike Kelly0e415132020-02-11 11:21:25 +0000577LOCAL_SRC_FILES := \
578 service.cpp
579
580LOCAL_STATIC_LIBRARIES := \
581 libneuralnetworks_common \
582 libboost_log \
583 libboost_program_options \
584 libboost_system \
585 libboost_thread \
586 libboost_filesystem \
587 arm_compute_library
588
589LOCAL_WHOLE_STATIC_LIBRARIES := \
590 libarmnn-driver@1.1
591
592LOCAL_SHARED_LIBRARIES := \
593 libbase \
594 libhidlbase \
595 libhidltransport \
596 libhidlmemory \
597 libdl \
598 libhardware \
599 liblog \
600 libtextclassifier_hash \
601 libutils \
602 android.hardware.neuralnetworks@1.0 \
603 android.hardware.neuralnetworks@1.1 \
604 android.hidl.allocator@1.0 \
605 android.hidl.memory@1.0
606
607ifeq ($(Q_OR_LATER),1)
608LOCAL_SHARED_LIBRARIES+= \
609 libnativewindow \
610 libui \
611 libfmq \
612 libcutils \
613 android.hardware.neuralnetworks@1.2
614endif # PLATFORM_VERSION == Q
615
Kevin Mayec1e5b82020-02-26 17:00:39 +0000616ifeq ($(R_OR_LATER),1)
617LOCAL_SHARED_LIBRARIES+= \
618 android.hardware.neuralnetworks@1.3
619endif # PLATFORM_VERSION == R
620
Mike Kelly0e415132020-02-11 11:21:25 +0000621ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
622LOCAL_SHARED_LIBRARIES+= \
623 libOpenCL
624endif
625
626include $(BUILD_EXECUTABLE)
627
628endif # PLATFORM_VERSION == 9
629
630ifeq ($(Q_OR_LATER),1)
631# The following target is available starting from Android Q
632
633#####################################################
634# android.hardware.neuralnetworks@1.2-service-armnn #
635#####################################################
636include $(CLEAR_VARS)
637
638LOCAL_MODULE := android.hardware.neuralnetworks@1.2-service-armnn
639LOCAL_INIT_RC := android.hardware.neuralnetworks@1.2-service-armnn.rc
640LOCAL_MODULE_TAGS := optional
641LOCAL_ARM_MODE := arm
642LOCAL_MODULE_RELATIVE_PATH := hw
643LOCAL_PROPRIETARY_MODULE := true
644# Mark source files as dependent on Android.mk
645LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
646
647LOCAL_C_INCLUDES := \
648 $(ARMNN_HEADER_PATH) \
649 $(NN_HEADER_PATH)
650
651LOCAL_CFLAGS := \
652 -std=$(CPP_VERSION) \
653 -fexceptions \
654 -DARMNN_ANDROID_NN_V1_2 \
655 -DBOOST_NO_AUTO_PTR
656
657ifeq ($(ARMNN_DRIVER_DEBUG),1)
658LOCAL_CFLAGS += \
659 -UNDEBUG
660endif # ARMNN_DRIVER_DEBUG == 1
661
Kevin Mayec1e5b82020-02-26 17:00:39 +0000662# Required to build with the changes made to the Android ML framework specific to Android R
663ifeq ($(PLATFORM_VERSION),R)
664LOCAL_CFLAGS+= \
665 -DARMNN_ANDROID_R
666endif # R or later
667
Mike Kelly0e415132020-02-11 11:21:25 +0000668LOCAL_SRC_FILES := \
669 service.cpp
670
671LOCAL_STATIC_LIBRARIES := \
672 libneuralnetworks_common \
673 libboost_log \
674 libboost_program_options \
675 libboost_system \
676 libboost_thread \
677 libboost_filesystem \
678 arm_compute_library
679
680LOCAL_WHOLE_STATIC_LIBRARIES := \
681 libarmnn-driver@1.2
682
683LOCAL_SHARED_LIBRARIES := \
684 libbase \
685 libhidlbase \
686 libhidltransport \
687 libhidlmemory \
688 libdl \
689 libhardware \
690 liblog \
691 libtextclassifier_hash \
692 libutils \
693 libnativewindow \
694 libui \
695 libfmq \
696 libcutils \
697 android.hidl.allocator@1.0 \
698 android.hidl.memory@1.0 \
699 android.hardware.neuralnetworks@1.0 \
700 android.hardware.neuralnetworks@1.1 \
701 android.hardware.neuralnetworks@1.2
702
Kevin Mayec1e5b82020-02-26 17:00:39 +0000703ifeq ($(R_OR_LATER),1)
704LOCAL_SHARED_LIBRARIES+= \
705 android.hardware.neuralnetworks@1.3
706endif # R or later
707
Mike Kelly0e415132020-02-11 11:21:25 +0000708ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
709LOCAL_SHARED_LIBRARIES+= \
710 libOpenCL
711endif
712
713include $(BUILD_EXECUTABLE)
714
715endif # PLATFORM_VERSION == Q
716
717##########################
718# armnn module and tests #
719##########################
720# Note we use ANDROID_NN_DRIVER_LOCAL_PATH rather than LOCAL_PATH because LOCAL_PATH will be overwritten
721# when including other .mk files that set it.
722include $(ANDROID_NN_DRIVER_LOCAL_PATH)/armnn/Android.mk
723include $(ANDROID_NN_DRIVER_LOCAL_PATH)/test/Android.mk