blob: bac6db17201369ff6299523827bce19e82798d59 [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
Kevin May42477c12020-03-26 13:34:14 +0000430ifeq ($(R_OR_LATER),1)
431# The following target is available starting from Android R
432
433#######################
434# libarmnn-driver@1.3 #
435#######################
436include $(CLEAR_VARS)
437
438LOCAL_MODULE := libarmnn-driver@1.3
439LOCAL_MODULE_TAGS := optional
440LOCAL_ARM_MODE := arm
441LOCAL_PROPRIETARY_MODULE := true
442# Mark source files as dependent on Android.mk
443LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
444
445LOCAL_C_INCLUDES := \
446 $(ARMNN_HEADER_PATH) \
447 $(ARMNN_UTILS_HEADER_PATH) \
448 $(OPENCL_HEADER_PATH) \
449 $(NN_HEADER_PATH)
450
451LOCAL_CFLAGS := \
452 -std=$(CPP_VERSION) \
453 -fexceptions \
454 -Werror \
455 -Wno-format-security \
456 -DBOOST_NO_AUTO_PTR \
457 -DARMNN_ANDROID_NN_V1_3 \
458 -DARMNN_ANDROID_R
459
460ifeq ($(ARMNN_DRIVER_DEBUG),1)
461LOCAL_CFLAGS+= \
462 -UNDEBUG
463endif # ARMNN_DRIVER_DEBUG == 1
464
465ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
466LOCAL_CFLAGS += \
467 -DARMCOMPUTECL_ENABLED
468endif # ARMNN_COMPUTE_CL_ENABLED == 1
469
470ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
471LOCAL_CFLAGS += \
472 -DARMCOMPUTENEON_ENABLED
473endif # ARMNN_COMPUTE_NEON_ENABLED == 1
474
475ifeq ($(ARMNN_REF_ENABLED),1)
476LOCAL_CFLAGS += \
477 -DARMNNREF_ENABLED
478endif # ARMNN_REF_ENABLED == 1
479
480LOCAL_SRC_FILES := \
481 1.0/ArmnnDriverImpl.cpp \
482 1.0/HalPolicy.cpp \
483 1.1/ArmnnDriverImpl.cpp \
484 1.1/HalPolicy.cpp \
485 1.2/ArmnnDriverImpl.cpp \
486 1.2/HalPolicy.cpp \
487 1.3/ArmnnDriverImpl.cpp \
488 1.3/HalPolicy.cpp \
489 ArmnnDevice.cpp \
490 ArmnnDriverImpl.cpp \
491 ArmnnPreparedModel.cpp \
492 ArmnnPreparedModel_1_2.cpp \
493 ArmnnPreparedModel_1_3.cpp \
494 ConversionUtils.cpp \
495 DriverOptions.cpp \
496 ModelToINetworkConverter.cpp \
497 RequestThread.cpp \
498 Utils.cpp
499
500LOCAL_STATIC_LIBRARIES := \
501 libneuralnetworks_common \
502 libboost_log \
503 libboost_program_options \
504 libboost_system \
505 libboost_thread \
506 libboost_filesystem \
507 arm_compute_library
508
509LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
510
511LOCAL_SHARED_LIBRARIES := \
512 libbase \
513 libhidlbase \
514 libhidltransport \
515 libhidlmemory \
516 liblog \
517 libutils \
518 libnativewindow \
519 libui \
520 libfmq \
521 libcutils \
522 android.hidl.allocator@1.0 \
523 android.hidl.memory@1.0 \
524 android.hardware.neuralnetworks@1.0 \
525 android.hardware.neuralnetworks@1.1 \
526 android.hardware.neuralnetworks@1.2 \
527 android.hardware.neuralnetworks@1.3
528
529ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
530LOCAL_SHARED_LIBRARIES+= \
531 libOpenCL
532endif
533
534include $(BUILD_STATIC_LIBRARY)
535
536endif # PLATFORM_VERSION == R
537
Mike Kelly0e415132020-02-11 11:21:25 +0000538#####################################################
539# android.hardware.neuralnetworks@1.0-service-armnn #
540#####################################################
541include $(CLEAR_VARS)
542
543LOCAL_MODULE := android.hardware.neuralnetworks@1.0-service-armnn
544LOCAL_INIT_RC := android.hardware.neuralnetworks@1.0-service-armnn.rc
545ifeq ($(Q_OR_LATER),1)
546# "eng" is deprecated in Android Q
547LOCAL_MODULE_TAGS := optional
548else
549LOCAL_MODULE_TAGS := eng optional
550endif
551LOCAL_ARM_MODE := arm
552LOCAL_MODULE_RELATIVE_PATH := hw
553LOCAL_PROPRIETARY_MODULE := true
554# Mark source files as dependent on Android.mk
555LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
556
557LOCAL_C_INCLUDES := \
558 $(ARMNN_HEADER_PATH) \
559 $(NN_HEADER_PATH)
560
561LOCAL_CFLAGS := \
562 -std=$(CPP_VERSION) \
563 -fexceptions
564
565ifeq ($(ARMNN_DRIVER_DEBUG),1)
566LOCAL_CFLAGS += \
567 -UNDEBUG
568endif # ARMNN_DRIVER_DEBUG == 1
569
570ifeq ($(Q_OR_LATER),1)
571LOCAL_CFLAGS += \
572 -DBOOST_NO_AUTO_PTR
573endif # PLATFORM_VERSION == Q or later
574
Kevin Mayec1e5b82020-02-26 17:00:39 +0000575# Required to build with the changes made to the Android ML framework specific to Android R
576ifeq ($(PLATFORM_VERSION),R)
577LOCAL_CFLAGS+= \
578 -DARMNN_ANDROID_R
579endif # R or later
580
Mike Kelly0e415132020-02-11 11:21:25 +0000581LOCAL_SRC_FILES := \
582 service.cpp
583
584LOCAL_STATIC_LIBRARIES := \
585 libneuralnetworks_common \
586 libboost_log \
587 libboost_program_options \
588 libboost_system \
589 libboost_thread \
590 libboost_filesystem \
591 arm_compute_library
592
593LOCAL_WHOLE_STATIC_LIBRARIES := \
594 libarmnn-driver@1.0
595
596LOCAL_SHARED_LIBRARIES := \
597 libbase \
598 libhidlbase \
599 libhidltransport \
600 libhidlmemory \
601 libdl \
602 libhardware \
603 liblog \
604 libtextclassifier_hash \
605 libutils \
606 android.hardware.neuralnetworks@1.0 \
607 android.hidl.allocator@1.0 \
608 android.hidl.memory@1.0
609
610ifeq ($(P_OR_LATER),1)
611# Required to build the 1.0 version of the NN Driver on Android P and later versions,
612# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
613LOCAL_SHARED_LIBRARIES+= \
614 android.hardware.neuralnetworks@1.1
615endif # PLATFORM_VERSION == 9
Kevin Mayec1e5b82020-02-26 17:00:39 +0000616
Mike Kelly0e415132020-02-11 11:21:25 +0000617ifeq ($(Q_OR_LATER),1)
618LOCAL_SHARED_LIBRARIES+= \
619 libnativewindow \
620 libui \
621 libfmq \
622 libcutils \
623 android.hardware.neuralnetworks@1.2
624endif # PLATFORM_VERSION == Q
625
Kevin Mayec1e5b82020-02-26 17:00:39 +0000626ifeq ($(R_OR_LATER),1)
627LOCAL_SHARED_LIBRARIES+= \
628 android.hardware.neuralnetworks@1.3
629endif # R or later
630
Mike Kelly0e415132020-02-11 11:21:25 +0000631ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
632LOCAL_SHARED_LIBRARIES+= \
633 libOpenCL
634endif
635
636include $(BUILD_EXECUTABLE)
637
638ifeq ($(P_OR_LATER),1)
639# The following target is available starting from Android P
640
641#####################################################
642# android.hardware.neuralnetworks@1.1-service-armnn #
643#####################################################
644include $(CLEAR_VARS)
645
646LOCAL_MODULE := android.hardware.neuralnetworks@1.1-service-armnn
647LOCAL_INIT_RC := android.hardware.neuralnetworks@1.1-service-armnn.rc
648ifeq ($(Q_OR_LATER),1)
649# "eng" is deprecated in Android Q
650LOCAL_MODULE_TAGS := optional
651else
652LOCAL_MODULE_TAGS := eng optional
653endif
654LOCAL_ARM_MODE := arm
655LOCAL_MODULE_RELATIVE_PATH := hw
656LOCAL_PROPRIETARY_MODULE := true
657# Mark source files as dependent on Android.mk
658LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
659
660LOCAL_C_INCLUDES := \
661 $(ARMNN_HEADER_PATH) \
662 $(NN_HEADER_PATH)
663
664LOCAL_CFLAGS := \
665 -std=$(CPP_VERSION) \
666 -fexceptions \
667 -DARMNN_ANDROID_NN_V1_1
668
669ifeq ($(ARMNN_DRIVER_DEBUG),1)
670LOCAL_CFLAGS += \
671 -UNDEBUG
672endif # ARMNN_DRIVER_DEBUG == 1
673
674ifeq ($(Q_OR_LATER),1)
675LOCAL_CFLAGS += \
676 -DBOOST_NO_AUTO_PTR
677endif # PLATFORM_VERSION == Q or later
678
Kevin Mayec1e5b82020-02-26 17:00:39 +0000679# Required to build with the changes made to the Android ML framework specific to Android R
680ifeq ($(PLATFORM_VERSION),R)
681LOCAL_CFLAGS+= \
682 -DARMNN_ANDROID_R
683endif # R or later
684
Mike Kelly0e415132020-02-11 11:21:25 +0000685LOCAL_SRC_FILES := \
686 service.cpp
687
688LOCAL_STATIC_LIBRARIES := \
689 libneuralnetworks_common \
690 libboost_log \
691 libboost_program_options \
692 libboost_system \
693 libboost_thread \
694 libboost_filesystem \
695 arm_compute_library
696
697LOCAL_WHOLE_STATIC_LIBRARIES := \
698 libarmnn-driver@1.1
699
700LOCAL_SHARED_LIBRARIES := \
701 libbase \
702 libhidlbase \
703 libhidltransport \
704 libhidlmemory \
705 libdl \
706 libhardware \
707 liblog \
708 libtextclassifier_hash \
709 libutils \
710 android.hardware.neuralnetworks@1.0 \
711 android.hardware.neuralnetworks@1.1 \
712 android.hidl.allocator@1.0 \
713 android.hidl.memory@1.0
714
715ifeq ($(Q_OR_LATER),1)
716LOCAL_SHARED_LIBRARIES+= \
717 libnativewindow \
718 libui \
719 libfmq \
720 libcutils \
721 android.hardware.neuralnetworks@1.2
722endif # PLATFORM_VERSION == Q
723
Kevin Mayec1e5b82020-02-26 17:00:39 +0000724ifeq ($(R_OR_LATER),1)
725LOCAL_SHARED_LIBRARIES+= \
726 android.hardware.neuralnetworks@1.3
727endif # PLATFORM_VERSION == R
728
Mike Kelly0e415132020-02-11 11:21:25 +0000729ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
730LOCAL_SHARED_LIBRARIES+= \
731 libOpenCL
732endif
733
734include $(BUILD_EXECUTABLE)
735
736endif # PLATFORM_VERSION == 9
737
738ifeq ($(Q_OR_LATER),1)
739# The following target is available starting from Android Q
740
741#####################################################
742# android.hardware.neuralnetworks@1.2-service-armnn #
743#####################################################
744include $(CLEAR_VARS)
745
746LOCAL_MODULE := android.hardware.neuralnetworks@1.2-service-armnn
747LOCAL_INIT_RC := android.hardware.neuralnetworks@1.2-service-armnn.rc
748LOCAL_MODULE_TAGS := optional
749LOCAL_ARM_MODE := arm
750LOCAL_MODULE_RELATIVE_PATH := hw
751LOCAL_PROPRIETARY_MODULE := true
752# Mark source files as dependent on Android.mk
753LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
754
755LOCAL_C_INCLUDES := \
756 $(ARMNN_HEADER_PATH) \
757 $(NN_HEADER_PATH)
758
759LOCAL_CFLAGS := \
760 -std=$(CPP_VERSION) \
761 -fexceptions \
762 -DARMNN_ANDROID_NN_V1_2 \
763 -DBOOST_NO_AUTO_PTR
764
765ifeq ($(ARMNN_DRIVER_DEBUG),1)
766LOCAL_CFLAGS += \
767 -UNDEBUG
768endif # ARMNN_DRIVER_DEBUG == 1
769
Kevin Mayec1e5b82020-02-26 17:00:39 +0000770# Required to build with the changes made to the Android ML framework specific to Android R
771ifeq ($(PLATFORM_VERSION),R)
772LOCAL_CFLAGS+= \
773 -DARMNN_ANDROID_R
774endif # R or later
775
Mike Kelly0e415132020-02-11 11:21:25 +0000776LOCAL_SRC_FILES := \
777 service.cpp
778
779LOCAL_STATIC_LIBRARIES := \
780 libneuralnetworks_common \
781 libboost_log \
782 libboost_program_options \
783 libboost_system \
784 libboost_thread \
785 libboost_filesystem \
786 arm_compute_library
787
788LOCAL_WHOLE_STATIC_LIBRARIES := \
789 libarmnn-driver@1.2
790
791LOCAL_SHARED_LIBRARIES := \
792 libbase \
793 libhidlbase \
794 libhidltransport \
795 libhidlmemory \
796 libdl \
797 libhardware \
798 liblog \
799 libtextclassifier_hash \
800 libutils \
801 libnativewindow \
802 libui \
803 libfmq \
804 libcutils \
805 android.hidl.allocator@1.0 \
806 android.hidl.memory@1.0 \
807 android.hardware.neuralnetworks@1.0 \
808 android.hardware.neuralnetworks@1.1 \
809 android.hardware.neuralnetworks@1.2
810
Kevin Mayec1e5b82020-02-26 17:00:39 +0000811ifeq ($(R_OR_LATER),1)
812LOCAL_SHARED_LIBRARIES+= \
813 android.hardware.neuralnetworks@1.3
814endif # R or later
815
Mike Kelly0e415132020-02-11 11:21:25 +0000816ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
817LOCAL_SHARED_LIBRARIES+= \
818 libOpenCL
819endif
820
821include $(BUILD_EXECUTABLE)
822
823endif # PLATFORM_VERSION == Q
824
Kevin May42477c12020-03-26 13:34:14 +0000825ifeq ($(R_OR_LATER),1)
826# The following target is available starting from Android R
827
828#####################################################
829# android.hardware.neuralnetworks@1.3-service-armnn #
830#####################################################
831include $(CLEAR_VARS)
832
833LOCAL_MODULE := android.hardware.neuralnetworks@1.3-service-armnn
834LOCAL_INIT_RC := android.hardware.neuralnetworks@1.3-service-armnn.rc
835LOCAL_MODULE_TAGS := optional
836LOCAL_ARM_MODE := arm
837LOCAL_MODULE_RELATIVE_PATH := hw
838LOCAL_PROPRIETARY_MODULE := true
839# Mark source files as dependent on Android.mk
840LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
841
842LOCAL_C_INCLUDES := \
843 $(ARMNN_HEADER_PATH) \
844 $(NN_HEADER_PATH)
845
846LOCAL_CFLAGS := \
847 -std=$(CPP_VERSION) \
848 -fexceptions \
849 -DARMNN_ANDROID_NN_V1_3 \
850 -DBOOST_NO_AUTO_PTR \
851 -DARMNN_ANDROID_R
852
853ifeq ($(ARMNN_DRIVER_DEBUG),1)
854LOCAL_CFLAGS += \
855 -UNDEBUG
856endif # ARMNN_DRIVER_DEBUG == 1
857
858LOCAL_SRC_FILES := \
859 service.cpp
860
861LOCAL_STATIC_LIBRARIES := \
862 libneuralnetworks_common \
863 libboost_log \
864 libboost_program_options \
865 libboost_system \
866 libboost_thread \
867 libboost_filesystem \
868 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 \
887 android.hidl.allocator@1.0 \
888 android.hidl.memory@1.0 \
889 android.hardware.neuralnetworks@1.0 \
890 android.hardware.neuralnetworks@1.1 \
891 android.hardware.neuralnetworks@1.2 \
892 android.hardware.neuralnetworks@1.3
893
894ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
895LOCAL_SHARED_LIBRARIES+= \
896 libOpenCL
897endif
898
899include $(BUILD_EXECUTABLE)
900
901endif # PLATFORM_VERSION == R
902
Mike Kelly0e415132020-02-11 11:21:25 +0000903##########################
904# armnn module and tests #
905##########################
906# Note we use ANDROID_NN_DRIVER_LOCAL_PATH rather than LOCAL_PATH because LOCAL_PATH will be overwritten
907# when including other .mk files that set it.
908include $(ANDROID_NN_DRIVER_LOCAL_PATH)/armnn/Android.mk
909include $(ANDROID_NN_DRIVER_LOCAL_PATH)/test/Android.mk