blob: bf8bc65b0060334dae106d5bd537eb5ae401bc18 [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+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100187 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000188 android.hardware.neuralnetworks@1.3
189endif # R or later
Mike Kelly0e415132020-02-11 11:21:25 +0000190
alered01dbae2472020-04-07 12:31:10 +0100191ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000192LOCAL_SHARED_LIBRARIES+= \
193 libOpenCL
194endif
195
196include $(BUILD_STATIC_LIBRARY)
197
198ifeq ($(P_OR_LATER),1)
199# The following target is available starting from Android P
200
201#######################
202# libarmnn-driver@1.1 #
203#######################
204include $(CLEAR_VARS)
205
206LOCAL_MODULE := libarmnn-driver@1.1
207ifeq ($(Q_OR_LATER),1)
208# "eng" is deprecated in Android Q
209LOCAL_MODULE_TAGS := optional
210else
211LOCAL_MODULE_TAGS := eng optional
212endif
213#PRODUCT_PACKAGES_ENG := libarmnn-driver@1.1
214LOCAL_ARM_MODE := arm
215LOCAL_PROPRIETARY_MODULE := true
216# Mark source files as dependent on Android.mk
217LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
218
219LOCAL_C_INCLUDES := \
220 $(ARMNN_HEADER_PATH) \
221 $(ARMNN_UTILS_HEADER_PATH) \
222 $(OPENCL_HEADER_PATH) \
223 $(NN_HEADER_PATH)
224
225LOCAL_CFLAGS := \
226 -std=$(CPP_VERSION) \
227 -fexceptions \
228 -Werror \
229 -Wno-format-security \
Mike Kelly0e415132020-02-11 11:21:25 +0000230 -DARMNN_ANDROID_NN_V1_1
231
232ifeq ($(ARMNN_DRIVER_DEBUG),1)
233LOCAL_CFLAGS+= \
234 -UNDEBUG
235endif # ARMNN_DRIVER_DEBUG == 1
236
237ifeq ($(Q_OR_LATER),1)
238LOCAL_CFLAGS += \
239 -DBOOST_NO_AUTO_PTR
240endif # PLATFORM_VERSION == Q or later
241
Kevin Mayec1e5b82020-02-26 17:00:39 +0000242# Required to build with the changes made to the Android ML framework specific to Android R
243ifeq ($(PLATFORM_VERSION),R)
244LOCAL_CFLAGS+= \
245 -DARMNN_ANDROID_R
246endif # R or later
247
Mike Kelly0e415132020-02-11 11:21:25 +0000248ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
249LOCAL_CFLAGS += \
250 -DARMCOMPUTECL_ENABLED
251endif # ARMNN_COMPUTE_CL_ENABLED == 1
252
253ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
254LOCAL_CFLAGS += \
255 -DARMCOMPUTENEON_ENABLED
256endif # ARMNN_COMPUTE_NEON_ENABLED == 1
257
258ifeq ($(ARMNN_REF_ENABLED),1)
259LOCAL_CFLAGS += \
260 -DARMNNREF_ENABLED
261endif # ARMNN_REF_ENABLED == 1
262
263LOCAL_SRC_FILES := \
264 1.0/ArmnnDriverImpl.cpp \
265 1.0/HalPolicy.cpp \
266 1.1/ArmnnDriverImpl.cpp \
267 1.1/HalPolicy.cpp \
268 ArmnnDriverImpl.cpp \
269 DriverOptions.cpp \
270 ArmnnDevice.cpp \
271 ArmnnPreparedModel.cpp \
272 ModelToINetworkConverter.cpp \
273 RequestThread.cpp \
274 Utils.cpp \
275 ConversionUtils.cpp
276
277LOCAL_STATIC_LIBRARIES := \
278 libneuralnetworks_common \
279 libboost_log \
280 libboost_program_options \
281 libboost_system \
282 libboost_thread \
283 libboost_filesystem \
284 arm_compute_library
285
286LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
287
288LOCAL_SHARED_LIBRARIES := \
289 libbase \
290 libhidlbase \
291 libhidltransport \
292 libhidlmemory \
293 liblog \
294 libutils \
295 android.hardware.neuralnetworks@1.0 \
296 android.hardware.neuralnetworks@1.1 \
297 android.hidl.allocator@1.0 \
298 android.hidl.memory@1.0
299
300ifeq ($(Q_OR_LATER),1)
301LOCAL_SHARED_LIBRARIES+= \
302 libnativewindow \
303 libui \
304 libfmq \
305 libcutils \
306 android.hardware.neuralnetworks@1.2
307endif # PLATFORM_VERSION == Q
308
Kevin Mayec1e5b82020-02-26 17:00:39 +0000309ifeq ($(R_OR_LATER),1)
310LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100311 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000312 android.hardware.neuralnetworks@1.3
313endif # R or later
314
alered017c395b22020-04-03 15:37:24 +0100315ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000316LOCAL_SHARED_LIBRARIES+= \
317 libOpenCL
318endif
319
320include $(BUILD_STATIC_LIBRARY)
321
322endif # PLATFORM_VERSION == 9
323
324ifeq ($(Q_OR_LATER),1)
325# The following target is available starting from Android Q
326
327#######################
328# libarmnn-driver@1.2 #
329#######################
330include $(CLEAR_VARS)
331
332LOCAL_MODULE := libarmnn-driver@1.2
333LOCAL_MODULE_TAGS := optional
334LOCAL_ARM_MODE := arm
335LOCAL_PROPRIETARY_MODULE := true
336# Mark source files as dependent on Android.mk
337LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
338
339LOCAL_C_INCLUDES := \
340 $(ARMNN_HEADER_PATH) \
341 $(ARMNN_UTILS_HEADER_PATH) \
342 $(OPENCL_HEADER_PATH) \
343 $(NN_HEADER_PATH)
344
345LOCAL_CFLAGS := \
346 -std=$(CPP_VERSION) \
347 -fexceptions \
348 -Werror \
349 -Wno-format-security \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000350 -DBOOST_NO_AUTO_PTR \
Mike Kelly0e415132020-02-11 11:21:25 +0000351 -DARMNN_ANDROID_NN_V1_2
352
353ifeq ($(ARMNN_DRIVER_DEBUG),1)
354LOCAL_CFLAGS+= \
355 -UNDEBUG
356endif # ARMNN_DRIVER_DEBUG == 1
357
Kevin Mayec1e5b82020-02-26 17:00:39 +0000358# Required to build with the changes made to the Android ML framework specific to Android R
359ifeq ($(PLATFORM_VERSION),R)
360LOCAL_CFLAGS+= \
361 -DARMNN_ANDROID_R
362endif # R or later
Mike Kelly0e415132020-02-11 11:21:25 +0000363
364ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
365LOCAL_CFLAGS += \
366 -DARMCOMPUTECL_ENABLED
367endif # ARMNN_COMPUTE_CL_ENABLED == 1
368
369ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
370LOCAL_CFLAGS += \
371 -DARMCOMPUTENEON_ENABLED
372endif # ARMNN_COMPUTE_NEON_ENABLED == 1
373
374ifeq ($(ARMNN_REF_ENABLED),1)
375LOCAL_CFLAGS += \
376 -DARMNNREF_ENABLED
377endif # ARMNN_REF_ENABLED == 1
378
379LOCAL_SRC_FILES := \
380 1.0/ArmnnDriverImpl.cpp \
381 1.0/HalPolicy.cpp \
382 1.1/ArmnnDriverImpl.cpp \
383 1.1/HalPolicy.cpp \
384 1.2/ArmnnDriverImpl.cpp \
385 1.2/HalPolicy.cpp \
386 ArmnnDevice.cpp \
387 ArmnnDriverImpl.cpp \
388 ArmnnPreparedModel.cpp \
389 ArmnnPreparedModel_1_2.cpp \
390 ConversionUtils.cpp \
391 DriverOptions.cpp \
392 ModelToINetworkConverter.cpp \
393 RequestThread.cpp \
394 Utils.cpp
395
396LOCAL_STATIC_LIBRARIES := \
397 libneuralnetworks_common \
398 libboost_log \
399 libboost_program_options \
400 libboost_system \
401 libboost_thread \
402 libboost_filesystem \
403 arm_compute_library
404
405LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
406
407LOCAL_SHARED_LIBRARIES := \
408 libbase \
409 libhidlbase \
410 libhidltransport \
411 libhidlmemory \
412 liblog \
413 libutils \
414 libnativewindow \
415 libui \
416 libfmq \
417 libcutils \
418 android.hidl.allocator@1.0 \
419 android.hidl.memory@1.0 \
420 android.hardware.neuralnetworks@1.0 \
421 android.hardware.neuralnetworks@1.1 \
422 android.hardware.neuralnetworks@1.2
423
Kevin Mayec1e5b82020-02-26 17:00:39 +0000424ifeq ($(R_OR_LATER),1)
425LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100426 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000427 android.hardware.neuralnetworks@1.3
428endif # R or later
429
alered017c395b22020-04-03 15:37:24 +0100430ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000431LOCAL_SHARED_LIBRARIES+= \
432 libOpenCL
433endif
434
435include $(BUILD_STATIC_LIBRARY)
436
437endif # PLATFORM_VERSION == Q
438
Kevin May42477c12020-03-26 13:34:14 +0000439ifeq ($(R_OR_LATER),1)
440# The following target is available starting from Android R
441
442#######################
443# libarmnn-driver@1.3 #
444#######################
445include $(CLEAR_VARS)
446
447LOCAL_MODULE := libarmnn-driver@1.3
448LOCAL_MODULE_TAGS := optional
449LOCAL_ARM_MODE := arm
450LOCAL_PROPRIETARY_MODULE := true
451# Mark source files as dependent on Android.mk
452LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
453
454LOCAL_C_INCLUDES := \
455 $(ARMNN_HEADER_PATH) \
456 $(ARMNN_UTILS_HEADER_PATH) \
457 $(OPENCL_HEADER_PATH) \
458 $(NN_HEADER_PATH)
459
460LOCAL_CFLAGS := \
461 -std=$(CPP_VERSION) \
462 -fexceptions \
463 -Werror \
464 -Wno-format-security \
465 -DBOOST_NO_AUTO_PTR \
466 -DARMNN_ANDROID_NN_V1_3 \
467 -DARMNN_ANDROID_R
468
469ifeq ($(ARMNN_DRIVER_DEBUG),1)
470LOCAL_CFLAGS+= \
471 -UNDEBUG
472endif # ARMNN_DRIVER_DEBUG == 1
473
474ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
475LOCAL_CFLAGS += \
476 -DARMCOMPUTECL_ENABLED
477endif # ARMNN_COMPUTE_CL_ENABLED == 1
478
479ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
480LOCAL_CFLAGS += \
481 -DARMCOMPUTENEON_ENABLED
482endif # ARMNN_COMPUTE_NEON_ENABLED == 1
483
484ifeq ($(ARMNN_REF_ENABLED),1)
485LOCAL_CFLAGS += \
486 -DARMNNREF_ENABLED
487endif # ARMNN_REF_ENABLED == 1
488
489LOCAL_SRC_FILES := \
490 1.0/ArmnnDriverImpl.cpp \
491 1.0/HalPolicy.cpp \
492 1.1/ArmnnDriverImpl.cpp \
493 1.1/HalPolicy.cpp \
494 1.2/ArmnnDriverImpl.cpp \
495 1.2/HalPolicy.cpp \
496 1.3/ArmnnDriverImpl.cpp \
497 1.3/HalPolicy.cpp \
498 ArmnnDevice.cpp \
499 ArmnnDriverImpl.cpp \
500 ArmnnPreparedModel.cpp \
501 ArmnnPreparedModel_1_2.cpp \
502 ArmnnPreparedModel_1_3.cpp \
503 ConversionUtils.cpp \
504 DriverOptions.cpp \
505 ModelToINetworkConverter.cpp \
506 RequestThread.cpp \
507 Utils.cpp
508
509LOCAL_STATIC_LIBRARIES := \
510 libneuralnetworks_common \
511 libboost_log \
512 libboost_program_options \
513 libboost_system \
514 libboost_thread \
515 libboost_filesystem \
516 arm_compute_library
517
518LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
519
520LOCAL_SHARED_LIBRARIES := \
521 libbase \
522 libhidlbase \
523 libhidltransport \
524 libhidlmemory \
525 liblog \
526 libutils \
527 libnativewindow \
528 libui \
529 libfmq \
530 libcutils \
531 android.hidl.allocator@1.0 \
532 android.hidl.memory@1.0 \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100533 libsync \
Kevin May42477c12020-03-26 13:34:14 +0000534 android.hardware.neuralnetworks@1.0 \
535 android.hardware.neuralnetworks@1.1 \
536 android.hardware.neuralnetworks@1.2 \
537 android.hardware.neuralnetworks@1.3
538
alered017c395b22020-04-03 15:37:24 +0100539ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Kevin May42477c12020-03-26 13:34:14 +0000540LOCAL_SHARED_LIBRARIES+= \
541 libOpenCL
542endif
543
544include $(BUILD_STATIC_LIBRARY)
545
546endif # PLATFORM_VERSION == R
547
Mike Kelly0e415132020-02-11 11:21:25 +0000548#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100549# android.hardware.neuralnetworks@1.0-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000550#####################################################
551include $(CLEAR_VARS)
552
Kevin Mayabc95d02020-05-15 15:34:03 +0100553LOCAL_MODULE := android.hardware.neuralnetworks@1.0-service-armnn
554LOCAL_INIT_RC := android.hardware.neuralnetworks@1.0-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000555ifeq ($(Q_OR_LATER),1)
556# "eng" is deprecated in Android Q
557LOCAL_MODULE_TAGS := optional
558else
559LOCAL_MODULE_TAGS := eng optional
560endif
561LOCAL_ARM_MODE := arm
562LOCAL_MODULE_RELATIVE_PATH := hw
563LOCAL_PROPRIETARY_MODULE := true
564# Mark source files as dependent on Android.mk
565LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
566
567LOCAL_C_INCLUDES := \
568 $(ARMNN_HEADER_PATH) \
569 $(NN_HEADER_PATH)
570
571LOCAL_CFLAGS := \
572 -std=$(CPP_VERSION) \
573 -fexceptions
574
575ifeq ($(ARMNN_DRIVER_DEBUG),1)
576LOCAL_CFLAGS += \
577 -UNDEBUG
578endif # ARMNN_DRIVER_DEBUG == 1
579
580ifeq ($(Q_OR_LATER),1)
581LOCAL_CFLAGS += \
582 -DBOOST_NO_AUTO_PTR
583endif # PLATFORM_VERSION == Q or later
584
Kevin Mayec1e5b82020-02-26 17:00:39 +0000585# Required to build with the changes made to the Android ML framework specific to Android R
586ifeq ($(PLATFORM_VERSION),R)
587LOCAL_CFLAGS+= \
588 -DARMNN_ANDROID_R
589endif # R or later
590
Mike Kelly0e415132020-02-11 11:21:25 +0000591LOCAL_SRC_FILES := \
592 service.cpp
593
594LOCAL_STATIC_LIBRARIES := \
595 libneuralnetworks_common \
596 libboost_log \
597 libboost_program_options \
598 libboost_system \
599 libboost_thread \
600 libboost_filesystem \
601 arm_compute_library
602
603LOCAL_WHOLE_STATIC_LIBRARIES := \
604 libarmnn-driver@1.0
605
606LOCAL_SHARED_LIBRARIES := \
607 libbase \
608 libhidlbase \
609 libhidltransport \
610 libhidlmemory \
611 libdl \
612 libhardware \
613 liblog \
614 libtextclassifier_hash \
615 libutils \
616 android.hardware.neuralnetworks@1.0 \
617 android.hidl.allocator@1.0 \
618 android.hidl.memory@1.0
619
620ifeq ($(P_OR_LATER),1)
621# Required to build the 1.0 version of the NN Driver on Android P and later versions,
622# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
623LOCAL_SHARED_LIBRARIES+= \
624 android.hardware.neuralnetworks@1.1
625endif # PLATFORM_VERSION == 9
Kevin Mayec1e5b82020-02-26 17:00:39 +0000626
Mike Kelly0e415132020-02-11 11:21:25 +0000627ifeq ($(Q_OR_LATER),1)
628LOCAL_SHARED_LIBRARIES+= \
629 libnativewindow \
630 libui \
631 libfmq \
632 libcutils \
633 android.hardware.neuralnetworks@1.2
634endif # PLATFORM_VERSION == Q
635
Kevin Mayec1e5b82020-02-26 17:00:39 +0000636ifeq ($(R_OR_LATER),1)
637LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100638 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000639 android.hardware.neuralnetworks@1.3
640endif # R or later
641
alered017c395b22020-04-03 15:37:24 +0100642ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000643LOCAL_SHARED_LIBRARIES+= \
644 libOpenCL
645endif
646
647include $(BUILD_EXECUTABLE)
648
649ifeq ($(P_OR_LATER),1)
650# The following target is available starting from Android P
651
652#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100653# android.hardware.neuralnetworks@1.1-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000654#####################################################
655include $(CLEAR_VARS)
656
Kevin Mayabc95d02020-05-15 15:34:03 +0100657LOCAL_MODULE := android.hardware.neuralnetworks@1.1-service-armnn
658LOCAL_INIT_RC := android.hardware.neuralnetworks@1.1-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000659ifeq ($(Q_OR_LATER),1)
660# "eng" is deprecated in Android Q
661LOCAL_MODULE_TAGS := optional
662else
663LOCAL_MODULE_TAGS := eng optional
664endif
665LOCAL_ARM_MODE := arm
666LOCAL_MODULE_RELATIVE_PATH := hw
667LOCAL_PROPRIETARY_MODULE := true
668# Mark source files as dependent on Android.mk
669LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
670
671LOCAL_C_INCLUDES := \
672 $(ARMNN_HEADER_PATH) \
673 $(NN_HEADER_PATH)
674
675LOCAL_CFLAGS := \
676 -std=$(CPP_VERSION) \
677 -fexceptions \
678 -DARMNN_ANDROID_NN_V1_1
679
680ifeq ($(ARMNN_DRIVER_DEBUG),1)
681LOCAL_CFLAGS += \
682 -UNDEBUG
683endif # ARMNN_DRIVER_DEBUG == 1
684
685ifeq ($(Q_OR_LATER),1)
686LOCAL_CFLAGS += \
687 -DBOOST_NO_AUTO_PTR
688endif # PLATFORM_VERSION == Q or later
689
Kevin Mayec1e5b82020-02-26 17:00:39 +0000690# Required to build with the changes made to the Android ML framework specific to Android R
691ifeq ($(PLATFORM_VERSION),R)
692LOCAL_CFLAGS+= \
693 -DARMNN_ANDROID_R
694endif # R or later
695
Mike Kelly0e415132020-02-11 11:21:25 +0000696LOCAL_SRC_FILES := \
697 service.cpp
698
699LOCAL_STATIC_LIBRARIES := \
700 libneuralnetworks_common \
701 libboost_log \
702 libboost_program_options \
703 libboost_system \
704 libboost_thread \
705 libboost_filesystem \
706 arm_compute_library
707
708LOCAL_WHOLE_STATIC_LIBRARIES := \
709 libarmnn-driver@1.1
710
711LOCAL_SHARED_LIBRARIES := \
712 libbase \
713 libhidlbase \
714 libhidltransport \
715 libhidlmemory \
716 libdl \
717 libhardware \
718 liblog \
719 libtextclassifier_hash \
720 libutils \
721 android.hardware.neuralnetworks@1.0 \
722 android.hardware.neuralnetworks@1.1 \
723 android.hidl.allocator@1.0 \
724 android.hidl.memory@1.0
725
726ifeq ($(Q_OR_LATER),1)
727LOCAL_SHARED_LIBRARIES+= \
728 libnativewindow \
729 libui \
730 libfmq \
731 libcutils \
732 android.hardware.neuralnetworks@1.2
733endif # PLATFORM_VERSION == Q
734
Kevin Mayec1e5b82020-02-26 17:00:39 +0000735ifeq ($(R_OR_LATER),1)
736LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100737 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000738 android.hardware.neuralnetworks@1.3
739endif # PLATFORM_VERSION == R
740
alered017c395b22020-04-03 15:37:24 +0100741ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000742LOCAL_SHARED_LIBRARIES+= \
743 libOpenCL
744endif
745
746include $(BUILD_EXECUTABLE)
747
748endif # PLATFORM_VERSION == 9
749
750ifeq ($(Q_OR_LATER),1)
751# The following target is available starting from Android Q
752
753#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100754# android.hardware.neuralnetworks@1.2-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000755#####################################################
756include $(CLEAR_VARS)
757
Kevin Mayabc95d02020-05-15 15:34:03 +0100758LOCAL_MODULE := android.hardware.neuralnetworks@1.2-service-armnn
759LOCAL_INIT_RC := android.hardware.neuralnetworks@1.2-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000760LOCAL_MODULE_TAGS := optional
761LOCAL_ARM_MODE := arm
762LOCAL_MODULE_RELATIVE_PATH := hw
763LOCAL_PROPRIETARY_MODULE := true
764# Mark source files as dependent on Android.mk
765LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
766
767LOCAL_C_INCLUDES := \
768 $(ARMNN_HEADER_PATH) \
769 $(NN_HEADER_PATH)
770
771LOCAL_CFLAGS := \
772 -std=$(CPP_VERSION) \
773 -fexceptions \
774 -DARMNN_ANDROID_NN_V1_2 \
775 -DBOOST_NO_AUTO_PTR
776
777ifeq ($(ARMNN_DRIVER_DEBUG),1)
778LOCAL_CFLAGS += \
779 -UNDEBUG
780endif # ARMNN_DRIVER_DEBUG == 1
781
Kevin Mayec1e5b82020-02-26 17:00:39 +0000782# Required to build with the changes made to the Android ML framework specific to Android R
783ifeq ($(PLATFORM_VERSION),R)
784LOCAL_CFLAGS+= \
785 -DARMNN_ANDROID_R
786endif # R or later
787
Mike Kelly0e415132020-02-11 11:21:25 +0000788LOCAL_SRC_FILES := \
789 service.cpp
790
791LOCAL_STATIC_LIBRARIES := \
792 libneuralnetworks_common \
793 libboost_log \
794 libboost_program_options \
795 libboost_system \
796 libboost_thread \
797 libboost_filesystem \
798 arm_compute_library
799
800LOCAL_WHOLE_STATIC_LIBRARIES := \
801 libarmnn-driver@1.2
802
803LOCAL_SHARED_LIBRARIES := \
804 libbase \
805 libhidlbase \
806 libhidltransport \
807 libhidlmemory \
808 libdl \
809 libhardware \
810 liblog \
811 libtextclassifier_hash \
812 libutils \
813 libnativewindow \
814 libui \
815 libfmq \
816 libcutils \
817 android.hidl.allocator@1.0 \
818 android.hidl.memory@1.0 \
819 android.hardware.neuralnetworks@1.0 \
820 android.hardware.neuralnetworks@1.1 \
821 android.hardware.neuralnetworks@1.2
822
Kevin Mayec1e5b82020-02-26 17:00:39 +0000823ifeq ($(R_OR_LATER),1)
824LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100825 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000826 android.hardware.neuralnetworks@1.3
827endif # R or later
828
alered017c395b22020-04-03 15:37:24 +0100829ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000830LOCAL_SHARED_LIBRARIES+= \
831 libOpenCL
832endif
833
834include $(BUILD_EXECUTABLE)
835
836endif # PLATFORM_VERSION == Q
837
Kevin May42477c12020-03-26 13:34:14 +0000838ifeq ($(R_OR_LATER),1)
839# The following target is available starting from Android R
840
841#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100842# android.hardware.neuralnetworks@1.3-service-armnn #
Kevin May42477c12020-03-26 13:34:14 +0000843#####################################################
844include $(CLEAR_VARS)
845
Kevin Mayabc95d02020-05-15 15:34:03 +0100846LOCAL_MODULE := android.hardware.neuralnetworks@1.3-service-armnn
847LOCAL_INIT_RC := android.hardware.neuralnetworks@1.3-service-armnn.rc
Kevin May42477c12020-03-26 13:34:14 +0000848LOCAL_MODULE_TAGS := optional
849LOCAL_ARM_MODE := arm
850LOCAL_MODULE_RELATIVE_PATH := hw
851LOCAL_PROPRIETARY_MODULE := true
852# Mark source files as dependent on Android.mk
853LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
854
855LOCAL_C_INCLUDES := \
856 $(ARMNN_HEADER_PATH) \
857 $(NN_HEADER_PATH)
858
859LOCAL_CFLAGS := \
860 -std=$(CPP_VERSION) \
861 -fexceptions \
862 -DARMNN_ANDROID_NN_V1_3 \
863 -DBOOST_NO_AUTO_PTR \
864 -DARMNN_ANDROID_R
865
866ifeq ($(ARMNN_DRIVER_DEBUG),1)
867LOCAL_CFLAGS += \
868 -UNDEBUG
869endif # ARMNN_DRIVER_DEBUG == 1
870
871LOCAL_SRC_FILES := \
872 service.cpp
873
874LOCAL_STATIC_LIBRARIES := \
875 libneuralnetworks_common \
876 libboost_log \
877 libboost_program_options \
878 libboost_system \
879 libboost_thread \
880 libboost_filesystem \
881 arm_compute_library
882
883LOCAL_WHOLE_STATIC_LIBRARIES := \
884 libarmnn-driver@1.3
885
886LOCAL_SHARED_LIBRARIES := \
887 libbase \
888 libhidlbase \
889 libhidltransport \
890 libhidlmemory \
891 libdl \
892 libhardware \
893 liblog \
894 libtextclassifier_hash \
895 libutils \
896 libnativewindow \
897 libui \
898 libfmq \
899 libcutils \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100900 libsync \
Kevin May42477c12020-03-26 13:34:14 +0000901 android.hidl.allocator@1.0 \
902 android.hidl.memory@1.0 \
903 android.hardware.neuralnetworks@1.0 \
904 android.hardware.neuralnetworks@1.1 \
905 android.hardware.neuralnetworks@1.2 \
906 android.hardware.neuralnetworks@1.3
907
alered017c395b22020-04-03 15:37:24 +0100908ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Kevin May42477c12020-03-26 13:34:14 +0000909LOCAL_SHARED_LIBRARIES+= \
910 libOpenCL
911endif
912
913include $(BUILD_EXECUTABLE)
914
915endif # PLATFORM_VERSION == R
916
Mike Kelly0e415132020-02-11 11:21:25 +0000917##########################
918# armnn module and tests #
919##########################
920# Note we use ANDROID_NN_DRIVER_LOCAL_PATH rather than LOCAL_PATH because LOCAL_PATH will be overwritten
921# when including other .mk files that set it.
922include $(ANDROID_NN_DRIVER_LOCAL_PATH)/armnn/Android.mk
923include $(ANDROID_NN_DRIVER_LOCAL_PATH)/test/Android.mk