blob: cf37efcda1a6b70643f7d7cc53b4c2673b3c76d8 [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
Narumol Prangnawaratcad4e912020-06-02 12:07:43 +010075# Variable to control retire rate of priority queue
76RETIRE_RATE := 3
77
Mike Kelly0e415132020-02-11 11:21:25 +000078#######################
79# libarmnn-driver@1.0 #
80#######################
81include $(CLEAR_VARS)
82
83LOCAL_MODULE := libarmnn-driver@1.0
84ifeq ($(Q_OR_LATER),1)
85# "eng" is deprecated in Android Q
86LOCAL_MODULE_TAGS := optional
87else
88LOCAL_MODULE_TAGS := eng optional
89endif
90LOCAL_ARM_MODE := arm
91LOCAL_PROPRIETARY_MODULE := true
92# Mark source files as dependent on Android.mk
93LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
94
95LOCAL_C_INCLUDES := \
96 $(ARMNN_HEADER_PATH) \
97 $(ARMNN_UTILS_HEADER_PATH) \
98 $(OPENCL_HEADER_PATH) \
99 $(NN_HEADER_PATH)
100
101LOCAL_CFLAGS := \
102 -std=$(CPP_VERSION) \
103 -fexceptions \
104 -Werror \
105 -Wno-format-security
106
Kevin Mayec1e5b82020-02-26 17:00:39 +0000107# Required to build with the changes made to the Android ML framework specific to Android R
108ifeq ($(PLATFORM_VERSION),R)
Mike Kelly0e415132020-02-11 11:21:25 +0000109LOCAL_CFLAGS+= \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000110 -DARMNN_ANDROID_R
111endif # R or later
Mike Kelly0e415132020-02-11 11:21:25 +0000112
113ifeq ($(ARMNN_DRIVER_DEBUG),1)
114LOCAL_CFLAGS+= \
115 -UNDEBUG
116endif # ARMNN_DRIVER_DEBUG == 1
117
118ifeq ($(Q_OR_LATER),1)
119LOCAL_CFLAGS += \
120 -DBOOST_NO_AUTO_PTR
121endif # PLATFORM_VERSION == Q or later
122
123ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
124LOCAL_CFLAGS += \
125 -DARMCOMPUTECL_ENABLED
126endif # ARMNN_COMPUTE_CL_ENABLED == 1
127
128ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
129LOCAL_CFLAGS += \
130 -DARMCOMPUTENEON_ENABLED
131endif # ARMNN_COMPUTE_NEON_ENABLED == 1
132
133ifeq ($(ARMNN_REF_ENABLED),1)
134LOCAL_CFLAGS += \
135 -DARMNNREF_ENABLED
136endif # ARMNN_REF_ENABLED == 1
137
138LOCAL_SRC_FILES := \
139 1.0/ArmnnDriverImpl.cpp \
140 1.0/HalPolicy.cpp \
141 ArmnnDriverImpl.cpp \
142 DriverOptions.cpp \
143 ArmnnDevice.cpp \
144 ArmnnPreparedModel.cpp \
145 ModelToINetworkConverter.cpp \
146 RequestThread.cpp \
147 Utils.cpp \
148 ConversionUtils.cpp
149
150LOCAL_STATIC_LIBRARIES := \
151 libneuralnetworks_common \
152 libboost_log \
153 libboost_program_options \
154 libboost_system \
155 libboost_thread \
156 libboost_filesystem \
157 arm_compute_library
158
159LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
160
161LOCAL_SHARED_LIBRARIES := \
162 libbase \
163 libhidlbase \
164 libhidltransport \
165 libhidlmemory \
166 liblog \
167 libutils \
168 android.hardware.neuralnetworks@1.0 \
169 android.hidl.allocator@1.0 \
170 android.hidl.memory@1.0
171
172ifeq ($(P_OR_LATER),1)
173# Required to build the 1.0 version of the NN Driver on Android P and later versions,
174# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
175LOCAL_SHARED_LIBRARIES+= \
176 android.hardware.neuralnetworks@1.1
177endif # PLATFORM_VERSION == 9
178
179ifeq ($(Q_OR_LATER),1)
180LOCAL_SHARED_LIBRARIES+= \
181 libnativewindow \
182 libui \
183 libfmq \
184 libcutils \
185 android.hardware.neuralnetworks@1.2
Kevin Mayec1e5b82020-02-26 17:00:39 +0000186endif # Q or later
187
188ifeq ($(R_OR_LATER),1)
189LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100190 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000191 android.hardware.neuralnetworks@1.3
192endif # R or later
Mike Kelly0e415132020-02-11 11:21:25 +0000193
alered01dbae2472020-04-07 12:31:10 +0100194ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000195LOCAL_SHARED_LIBRARIES+= \
196 libOpenCL
197endif
198
199include $(BUILD_STATIC_LIBRARY)
200
201ifeq ($(P_OR_LATER),1)
202# The following target is available starting from Android P
203
204#######################
205# libarmnn-driver@1.1 #
206#######################
207include $(CLEAR_VARS)
208
209LOCAL_MODULE := libarmnn-driver@1.1
210ifeq ($(Q_OR_LATER),1)
211# "eng" is deprecated in Android Q
212LOCAL_MODULE_TAGS := optional
213else
214LOCAL_MODULE_TAGS := eng optional
215endif
216#PRODUCT_PACKAGES_ENG := libarmnn-driver@1.1
217LOCAL_ARM_MODE := arm
218LOCAL_PROPRIETARY_MODULE := true
219# Mark source files as dependent on Android.mk
220LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
221
222LOCAL_C_INCLUDES := \
223 $(ARMNN_HEADER_PATH) \
224 $(ARMNN_UTILS_HEADER_PATH) \
225 $(OPENCL_HEADER_PATH) \
226 $(NN_HEADER_PATH)
227
228LOCAL_CFLAGS := \
229 -std=$(CPP_VERSION) \
230 -fexceptions \
231 -Werror \
232 -Wno-format-security \
Mike Kelly0e415132020-02-11 11:21:25 +0000233 -DARMNN_ANDROID_NN_V1_1
234
235ifeq ($(ARMNN_DRIVER_DEBUG),1)
236LOCAL_CFLAGS+= \
237 -UNDEBUG
238endif # ARMNN_DRIVER_DEBUG == 1
239
240ifeq ($(Q_OR_LATER),1)
241LOCAL_CFLAGS += \
242 -DBOOST_NO_AUTO_PTR
243endif # PLATFORM_VERSION == Q or later
244
Kevin Mayec1e5b82020-02-26 17:00:39 +0000245# Required to build with the changes made to the Android ML framework specific to Android R
246ifeq ($(PLATFORM_VERSION),R)
247LOCAL_CFLAGS+= \
248 -DARMNN_ANDROID_R
249endif # R or later
250
Mike Kelly0e415132020-02-11 11:21:25 +0000251ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
252LOCAL_CFLAGS += \
253 -DARMCOMPUTECL_ENABLED
254endif # ARMNN_COMPUTE_CL_ENABLED == 1
255
256ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
257LOCAL_CFLAGS += \
258 -DARMCOMPUTENEON_ENABLED
259endif # ARMNN_COMPUTE_NEON_ENABLED == 1
260
261ifeq ($(ARMNN_REF_ENABLED),1)
262LOCAL_CFLAGS += \
263 -DARMNNREF_ENABLED
264endif # ARMNN_REF_ENABLED == 1
265
266LOCAL_SRC_FILES := \
267 1.0/ArmnnDriverImpl.cpp \
268 1.0/HalPolicy.cpp \
269 1.1/ArmnnDriverImpl.cpp \
270 1.1/HalPolicy.cpp \
271 ArmnnDriverImpl.cpp \
272 DriverOptions.cpp \
273 ArmnnDevice.cpp \
274 ArmnnPreparedModel.cpp \
275 ModelToINetworkConverter.cpp \
276 RequestThread.cpp \
277 Utils.cpp \
278 ConversionUtils.cpp
279
280LOCAL_STATIC_LIBRARIES := \
281 libneuralnetworks_common \
282 libboost_log \
283 libboost_program_options \
284 libboost_system \
285 libboost_thread \
286 libboost_filesystem \
287 arm_compute_library
288
289LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
290
291LOCAL_SHARED_LIBRARIES := \
292 libbase \
293 libhidlbase \
294 libhidltransport \
295 libhidlmemory \
296 liblog \
297 libutils \
298 android.hardware.neuralnetworks@1.0 \
299 android.hardware.neuralnetworks@1.1 \
300 android.hidl.allocator@1.0 \
301 android.hidl.memory@1.0
302
303ifeq ($(Q_OR_LATER),1)
304LOCAL_SHARED_LIBRARIES+= \
305 libnativewindow \
306 libui \
307 libfmq \
308 libcutils \
309 android.hardware.neuralnetworks@1.2
310endif # PLATFORM_VERSION == Q
311
Kevin Mayec1e5b82020-02-26 17:00:39 +0000312ifeq ($(R_OR_LATER),1)
313LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100314 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000315 android.hardware.neuralnetworks@1.3
316endif # R or later
317
alered017c395b22020-04-03 15:37:24 +0100318ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000319LOCAL_SHARED_LIBRARIES+= \
320 libOpenCL
321endif
322
323include $(BUILD_STATIC_LIBRARY)
324
325endif # PLATFORM_VERSION == 9
326
327ifeq ($(Q_OR_LATER),1)
328# The following target is available starting from Android Q
329
330#######################
331# libarmnn-driver@1.2 #
332#######################
333include $(CLEAR_VARS)
334
335LOCAL_MODULE := libarmnn-driver@1.2
336LOCAL_MODULE_TAGS := optional
337LOCAL_ARM_MODE := arm
338LOCAL_PROPRIETARY_MODULE := true
339# Mark source files as dependent on Android.mk
340LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
341
342LOCAL_C_INCLUDES := \
343 $(ARMNN_HEADER_PATH) \
344 $(ARMNN_UTILS_HEADER_PATH) \
345 $(OPENCL_HEADER_PATH) \
346 $(NN_HEADER_PATH)
347
348LOCAL_CFLAGS := \
349 -std=$(CPP_VERSION) \
350 -fexceptions \
351 -Werror \
352 -Wno-format-security \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000353 -DBOOST_NO_AUTO_PTR \
Mike Kelly0e415132020-02-11 11:21:25 +0000354 -DARMNN_ANDROID_NN_V1_2
355
356ifeq ($(ARMNN_DRIVER_DEBUG),1)
357LOCAL_CFLAGS+= \
358 -UNDEBUG
359endif # ARMNN_DRIVER_DEBUG == 1
360
Kevin Mayec1e5b82020-02-26 17:00:39 +0000361# Required to build with the changes made to the Android ML framework specific to Android R
362ifeq ($(PLATFORM_VERSION),R)
363LOCAL_CFLAGS+= \
364 -DARMNN_ANDROID_R
365endif # R or later
Mike Kelly0e415132020-02-11 11:21:25 +0000366
367ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
368LOCAL_CFLAGS += \
369 -DARMCOMPUTECL_ENABLED
370endif # ARMNN_COMPUTE_CL_ENABLED == 1
371
372ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
373LOCAL_CFLAGS += \
374 -DARMCOMPUTENEON_ENABLED
375endif # ARMNN_COMPUTE_NEON_ENABLED == 1
376
377ifeq ($(ARMNN_REF_ENABLED),1)
378LOCAL_CFLAGS += \
379 -DARMNNREF_ENABLED
380endif # ARMNN_REF_ENABLED == 1
381
382LOCAL_SRC_FILES := \
383 1.0/ArmnnDriverImpl.cpp \
384 1.0/HalPolicy.cpp \
385 1.1/ArmnnDriverImpl.cpp \
386 1.1/HalPolicy.cpp \
387 1.2/ArmnnDriverImpl.cpp \
388 1.2/HalPolicy.cpp \
389 ArmnnDevice.cpp \
390 ArmnnDriverImpl.cpp \
391 ArmnnPreparedModel.cpp \
392 ArmnnPreparedModel_1_2.cpp \
393 ConversionUtils.cpp \
394 DriverOptions.cpp \
395 ModelToINetworkConverter.cpp \
396 RequestThread.cpp \
397 Utils.cpp
398
399LOCAL_STATIC_LIBRARIES := \
400 libneuralnetworks_common \
401 libboost_log \
402 libboost_program_options \
403 libboost_system \
404 libboost_thread \
405 libboost_filesystem \
406 arm_compute_library
407
408LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
409
410LOCAL_SHARED_LIBRARIES := \
411 libbase \
412 libhidlbase \
413 libhidltransport \
414 libhidlmemory \
415 liblog \
416 libutils \
417 libnativewindow \
418 libui \
419 libfmq \
420 libcutils \
421 android.hidl.allocator@1.0 \
422 android.hidl.memory@1.0 \
423 android.hardware.neuralnetworks@1.0 \
424 android.hardware.neuralnetworks@1.1 \
425 android.hardware.neuralnetworks@1.2
426
Kevin Mayec1e5b82020-02-26 17:00:39 +0000427ifeq ($(R_OR_LATER),1)
428LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100429 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000430 android.hardware.neuralnetworks@1.3
431endif # R or later
432
alered017c395b22020-04-03 15:37:24 +0100433ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000434LOCAL_SHARED_LIBRARIES+= \
435 libOpenCL
436endif
437
438include $(BUILD_STATIC_LIBRARY)
439
440endif # PLATFORM_VERSION == Q
441
Kevin May42477c12020-03-26 13:34:14 +0000442ifeq ($(R_OR_LATER),1)
443# The following target is available starting from Android R
444
445#######################
446# libarmnn-driver@1.3 #
447#######################
448include $(CLEAR_VARS)
449
450LOCAL_MODULE := libarmnn-driver@1.3
451LOCAL_MODULE_TAGS := optional
452LOCAL_ARM_MODE := arm
453LOCAL_PROPRIETARY_MODULE := true
454# Mark source files as dependent on Android.mk
455LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
456
457LOCAL_C_INCLUDES := \
458 $(ARMNN_HEADER_PATH) \
459 $(ARMNN_UTILS_HEADER_PATH) \
460 $(OPENCL_HEADER_PATH) \
461 $(NN_HEADER_PATH)
462
463LOCAL_CFLAGS := \
464 -std=$(CPP_VERSION) \
465 -fexceptions \
466 -Werror \
467 -Wno-format-security \
468 -DBOOST_NO_AUTO_PTR \
469 -DARMNN_ANDROID_NN_V1_3 \
470 -DARMNN_ANDROID_R
471
472ifeq ($(ARMNN_DRIVER_DEBUG),1)
473LOCAL_CFLAGS+= \
474 -UNDEBUG
475endif # ARMNN_DRIVER_DEBUG == 1
476
477ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
478LOCAL_CFLAGS += \
479 -DARMCOMPUTECL_ENABLED
480endif # ARMNN_COMPUTE_CL_ENABLED == 1
481
482ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
483LOCAL_CFLAGS += \
484 -DARMCOMPUTENEON_ENABLED
485endif # ARMNN_COMPUTE_NEON_ENABLED == 1
486
487ifeq ($(ARMNN_REF_ENABLED),1)
488LOCAL_CFLAGS += \
489 -DARMNNREF_ENABLED
490endif # ARMNN_REF_ENABLED == 1
491
Narumol Prangnawaratcad4e912020-06-02 12:07:43 +0100492LOCAL_CFLAGS += \
493 -DRETIRE_RATE=$(RETIRE_RATE)
494
Kevin May42477c12020-03-26 13:34:14 +0000495LOCAL_SRC_FILES := \
496 1.0/ArmnnDriverImpl.cpp \
497 1.0/HalPolicy.cpp \
498 1.1/ArmnnDriverImpl.cpp \
499 1.1/HalPolicy.cpp \
500 1.2/ArmnnDriverImpl.cpp \
501 1.2/HalPolicy.cpp \
502 1.3/ArmnnDriverImpl.cpp \
503 1.3/HalPolicy.cpp \
504 ArmnnDevice.cpp \
505 ArmnnDriverImpl.cpp \
506 ArmnnPreparedModel.cpp \
507 ArmnnPreparedModel_1_2.cpp \
508 ArmnnPreparedModel_1_3.cpp \
509 ConversionUtils.cpp \
510 DriverOptions.cpp \
511 ModelToINetworkConverter.cpp \
512 RequestThread.cpp \
Narumol Prangnawaratcad4e912020-06-02 12:07:43 +0100513 RequestThread_1_3.cpp \
Kevin May42477c12020-03-26 13:34:14 +0000514 Utils.cpp
515
516LOCAL_STATIC_LIBRARIES := \
517 libneuralnetworks_common \
518 libboost_log \
519 libboost_program_options \
520 libboost_system \
521 libboost_thread \
522 libboost_filesystem \
523 arm_compute_library
524
525LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
526
527LOCAL_SHARED_LIBRARIES := \
528 libbase \
529 libhidlbase \
530 libhidltransport \
531 libhidlmemory \
532 liblog \
533 libutils \
534 libnativewindow \
535 libui \
536 libfmq \
537 libcutils \
538 android.hidl.allocator@1.0 \
539 android.hidl.memory@1.0 \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100540 libsync \
Kevin May42477c12020-03-26 13:34:14 +0000541 android.hardware.neuralnetworks@1.0 \
542 android.hardware.neuralnetworks@1.1 \
543 android.hardware.neuralnetworks@1.2 \
544 android.hardware.neuralnetworks@1.3
545
alered017c395b22020-04-03 15:37:24 +0100546ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Kevin May42477c12020-03-26 13:34:14 +0000547LOCAL_SHARED_LIBRARIES+= \
548 libOpenCL
549endif
550
551include $(BUILD_STATIC_LIBRARY)
552
553endif # PLATFORM_VERSION == R
554
Mike Kelly0e415132020-02-11 11:21:25 +0000555#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100556# android.hardware.neuralnetworks@1.0-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000557#####################################################
558include $(CLEAR_VARS)
559
Kevin Mayabc95d02020-05-15 15:34:03 +0100560LOCAL_MODULE := android.hardware.neuralnetworks@1.0-service-armnn
561LOCAL_INIT_RC := android.hardware.neuralnetworks@1.0-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000562ifeq ($(Q_OR_LATER),1)
563# "eng" is deprecated in Android Q
564LOCAL_MODULE_TAGS := optional
565else
566LOCAL_MODULE_TAGS := eng optional
567endif
568LOCAL_ARM_MODE := arm
569LOCAL_MODULE_RELATIVE_PATH := hw
570LOCAL_PROPRIETARY_MODULE := true
571# Mark source files as dependent on Android.mk
572LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
573
574LOCAL_C_INCLUDES := \
575 $(ARMNN_HEADER_PATH) \
576 $(NN_HEADER_PATH)
577
578LOCAL_CFLAGS := \
579 -std=$(CPP_VERSION) \
580 -fexceptions
581
582ifeq ($(ARMNN_DRIVER_DEBUG),1)
583LOCAL_CFLAGS += \
584 -UNDEBUG
585endif # ARMNN_DRIVER_DEBUG == 1
586
587ifeq ($(Q_OR_LATER),1)
588LOCAL_CFLAGS += \
589 -DBOOST_NO_AUTO_PTR
590endif # PLATFORM_VERSION == Q or later
591
Kevin Mayec1e5b82020-02-26 17:00:39 +0000592# Required to build with the changes made to the Android ML framework specific to Android R
593ifeq ($(PLATFORM_VERSION),R)
594LOCAL_CFLAGS+= \
595 -DARMNN_ANDROID_R
596endif # R or later
597
Mike Kelly0e415132020-02-11 11:21:25 +0000598LOCAL_SRC_FILES := \
599 service.cpp
600
601LOCAL_STATIC_LIBRARIES := \
602 libneuralnetworks_common \
603 libboost_log \
604 libboost_program_options \
605 libboost_system \
606 libboost_thread \
607 libboost_filesystem \
608 arm_compute_library
609
610LOCAL_WHOLE_STATIC_LIBRARIES := \
611 libarmnn-driver@1.0
612
613LOCAL_SHARED_LIBRARIES := \
614 libbase \
615 libhidlbase \
616 libhidltransport \
617 libhidlmemory \
618 libdl \
619 libhardware \
620 liblog \
621 libtextclassifier_hash \
622 libutils \
623 android.hardware.neuralnetworks@1.0 \
624 android.hidl.allocator@1.0 \
625 android.hidl.memory@1.0
626
627ifeq ($(P_OR_LATER),1)
628# Required to build the 1.0 version of the NN Driver on Android P and later versions,
629# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
630LOCAL_SHARED_LIBRARIES+= \
631 android.hardware.neuralnetworks@1.1
632endif # PLATFORM_VERSION == 9
Kevin Mayec1e5b82020-02-26 17:00:39 +0000633
Mike Kelly0e415132020-02-11 11:21:25 +0000634ifeq ($(Q_OR_LATER),1)
635LOCAL_SHARED_LIBRARIES+= \
636 libnativewindow \
637 libui \
638 libfmq \
639 libcutils \
640 android.hardware.neuralnetworks@1.2
641endif # PLATFORM_VERSION == Q
642
Kevin Mayec1e5b82020-02-26 17:00:39 +0000643ifeq ($(R_OR_LATER),1)
644LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100645 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000646 android.hardware.neuralnetworks@1.3
647endif # R or later
648
alered017c395b22020-04-03 15:37:24 +0100649ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000650LOCAL_SHARED_LIBRARIES+= \
651 libOpenCL
652endif
653
654include $(BUILD_EXECUTABLE)
655
656ifeq ($(P_OR_LATER),1)
657# The following target is available starting from Android P
658
659#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100660# android.hardware.neuralnetworks@1.1-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000661#####################################################
662include $(CLEAR_VARS)
663
Kevin Mayabc95d02020-05-15 15:34:03 +0100664LOCAL_MODULE := android.hardware.neuralnetworks@1.1-service-armnn
665LOCAL_INIT_RC := android.hardware.neuralnetworks@1.1-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000666ifeq ($(Q_OR_LATER),1)
667# "eng" is deprecated in Android Q
668LOCAL_MODULE_TAGS := optional
669else
670LOCAL_MODULE_TAGS := eng optional
671endif
672LOCAL_ARM_MODE := arm
673LOCAL_MODULE_RELATIVE_PATH := hw
674LOCAL_PROPRIETARY_MODULE := true
675# Mark source files as dependent on Android.mk
676LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
677
678LOCAL_C_INCLUDES := \
679 $(ARMNN_HEADER_PATH) \
680 $(NN_HEADER_PATH)
681
682LOCAL_CFLAGS := \
683 -std=$(CPP_VERSION) \
684 -fexceptions \
685 -DARMNN_ANDROID_NN_V1_1
686
687ifeq ($(ARMNN_DRIVER_DEBUG),1)
688LOCAL_CFLAGS += \
689 -UNDEBUG
690endif # ARMNN_DRIVER_DEBUG == 1
691
692ifeq ($(Q_OR_LATER),1)
693LOCAL_CFLAGS += \
694 -DBOOST_NO_AUTO_PTR
695endif # PLATFORM_VERSION == Q or later
696
Kevin Mayec1e5b82020-02-26 17:00:39 +0000697# Required to build with the changes made to the Android ML framework specific to Android R
698ifeq ($(PLATFORM_VERSION),R)
699LOCAL_CFLAGS+= \
700 -DARMNN_ANDROID_R
701endif # R or later
702
Mike Kelly0e415132020-02-11 11:21:25 +0000703LOCAL_SRC_FILES := \
704 service.cpp
705
706LOCAL_STATIC_LIBRARIES := \
707 libneuralnetworks_common \
708 libboost_log \
709 libboost_program_options \
710 libboost_system \
711 libboost_thread \
712 libboost_filesystem \
713 arm_compute_library
714
715LOCAL_WHOLE_STATIC_LIBRARIES := \
716 libarmnn-driver@1.1
717
718LOCAL_SHARED_LIBRARIES := \
719 libbase \
720 libhidlbase \
721 libhidltransport \
722 libhidlmemory \
723 libdl \
724 libhardware \
725 liblog \
726 libtextclassifier_hash \
727 libutils \
728 android.hardware.neuralnetworks@1.0 \
729 android.hardware.neuralnetworks@1.1 \
730 android.hidl.allocator@1.0 \
731 android.hidl.memory@1.0
732
733ifeq ($(Q_OR_LATER),1)
734LOCAL_SHARED_LIBRARIES+= \
735 libnativewindow \
736 libui \
737 libfmq \
738 libcutils \
739 android.hardware.neuralnetworks@1.2
740endif # PLATFORM_VERSION == Q
741
Kevin Mayec1e5b82020-02-26 17:00:39 +0000742ifeq ($(R_OR_LATER),1)
743LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100744 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000745 android.hardware.neuralnetworks@1.3
746endif # PLATFORM_VERSION == R
747
alered017c395b22020-04-03 15:37:24 +0100748ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000749LOCAL_SHARED_LIBRARIES+= \
750 libOpenCL
751endif
752
753include $(BUILD_EXECUTABLE)
754
755endif # PLATFORM_VERSION == 9
756
757ifeq ($(Q_OR_LATER),1)
758# The following target is available starting from Android Q
759
760#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100761# android.hardware.neuralnetworks@1.2-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000762#####################################################
763include $(CLEAR_VARS)
764
Kevin Mayabc95d02020-05-15 15:34:03 +0100765LOCAL_MODULE := android.hardware.neuralnetworks@1.2-service-armnn
766LOCAL_INIT_RC := android.hardware.neuralnetworks@1.2-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000767LOCAL_MODULE_TAGS := optional
768LOCAL_ARM_MODE := arm
769LOCAL_MODULE_RELATIVE_PATH := hw
770LOCAL_PROPRIETARY_MODULE := true
771# Mark source files as dependent on Android.mk
772LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
773
774LOCAL_C_INCLUDES := \
775 $(ARMNN_HEADER_PATH) \
776 $(NN_HEADER_PATH)
777
778LOCAL_CFLAGS := \
779 -std=$(CPP_VERSION) \
780 -fexceptions \
781 -DARMNN_ANDROID_NN_V1_2 \
782 -DBOOST_NO_AUTO_PTR
783
784ifeq ($(ARMNN_DRIVER_DEBUG),1)
785LOCAL_CFLAGS += \
786 -UNDEBUG
787endif # ARMNN_DRIVER_DEBUG == 1
788
Kevin Mayec1e5b82020-02-26 17:00:39 +0000789# Required to build with the changes made to the Android ML framework specific to Android R
790ifeq ($(PLATFORM_VERSION),R)
791LOCAL_CFLAGS+= \
792 -DARMNN_ANDROID_R
793endif # R or later
794
Mike Kelly0e415132020-02-11 11:21:25 +0000795LOCAL_SRC_FILES := \
796 service.cpp
797
798LOCAL_STATIC_LIBRARIES := \
799 libneuralnetworks_common \
800 libboost_log \
801 libboost_program_options \
802 libboost_system \
803 libboost_thread \
804 libboost_filesystem \
805 arm_compute_library
806
807LOCAL_WHOLE_STATIC_LIBRARIES := \
808 libarmnn-driver@1.2
809
810LOCAL_SHARED_LIBRARIES := \
811 libbase \
812 libhidlbase \
813 libhidltransport \
814 libhidlmemory \
815 libdl \
816 libhardware \
817 liblog \
818 libtextclassifier_hash \
819 libutils \
820 libnativewindow \
821 libui \
822 libfmq \
823 libcutils \
824 android.hidl.allocator@1.0 \
825 android.hidl.memory@1.0 \
826 android.hardware.neuralnetworks@1.0 \
827 android.hardware.neuralnetworks@1.1 \
828 android.hardware.neuralnetworks@1.2
829
Kevin Mayec1e5b82020-02-26 17:00:39 +0000830ifeq ($(R_OR_LATER),1)
831LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100832 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000833 android.hardware.neuralnetworks@1.3
834endif # R or later
835
alered017c395b22020-04-03 15:37:24 +0100836ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000837LOCAL_SHARED_LIBRARIES+= \
838 libOpenCL
839endif
840
841include $(BUILD_EXECUTABLE)
842
843endif # PLATFORM_VERSION == Q
844
Kevin May42477c12020-03-26 13:34:14 +0000845ifeq ($(R_OR_LATER),1)
846# The following target is available starting from Android R
847
848#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100849# android.hardware.neuralnetworks@1.3-service-armnn #
Kevin May42477c12020-03-26 13:34:14 +0000850#####################################################
851include $(CLEAR_VARS)
852
Kevin Mayabc95d02020-05-15 15:34:03 +0100853LOCAL_MODULE := android.hardware.neuralnetworks@1.3-service-armnn
854LOCAL_INIT_RC := android.hardware.neuralnetworks@1.3-service-armnn.rc
Kevin May42477c12020-03-26 13:34:14 +0000855LOCAL_MODULE_TAGS := optional
856LOCAL_ARM_MODE := arm
857LOCAL_MODULE_RELATIVE_PATH := hw
858LOCAL_PROPRIETARY_MODULE := true
859# Mark source files as dependent on Android.mk
860LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
861
862LOCAL_C_INCLUDES := \
863 $(ARMNN_HEADER_PATH) \
864 $(NN_HEADER_PATH)
865
866LOCAL_CFLAGS := \
867 -std=$(CPP_VERSION) \
868 -fexceptions \
869 -DARMNN_ANDROID_NN_V1_3 \
870 -DBOOST_NO_AUTO_PTR \
871 -DARMNN_ANDROID_R
872
873ifeq ($(ARMNN_DRIVER_DEBUG),1)
874LOCAL_CFLAGS += \
875 -UNDEBUG
876endif # ARMNN_DRIVER_DEBUG == 1
877
878LOCAL_SRC_FILES := \
879 service.cpp
880
881LOCAL_STATIC_LIBRARIES := \
882 libneuralnetworks_common \
883 libboost_log \
884 libboost_program_options \
885 libboost_system \
886 libboost_thread \
887 libboost_filesystem \
888 arm_compute_library
889
890LOCAL_WHOLE_STATIC_LIBRARIES := \
891 libarmnn-driver@1.3
892
893LOCAL_SHARED_LIBRARIES := \
894 libbase \
895 libhidlbase \
896 libhidltransport \
897 libhidlmemory \
898 libdl \
899 libhardware \
900 liblog \
901 libtextclassifier_hash \
902 libutils \
903 libnativewindow \
904 libui \
905 libfmq \
906 libcutils \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100907 libsync \
Kevin May42477c12020-03-26 13:34:14 +0000908 android.hidl.allocator@1.0 \
909 android.hidl.memory@1.0 \
910 android.hardware.neuralnetworks@1.0 \
911 android.hardware.neuralnetworks@1.1 \
912 android.hardware.neuralnetworks@1.2 \
913 android.hardware.neuralnetworks@1.3
914
alered017c395b22020-04-03 15:37:24 +0100915ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Kevin May42477c12020-03-26 13:34:14 +0000916LOCAL_SHARED_LIBRARIES+= \
917 libOpenCL
918endif
919
920include $(BUILD_EXECUTABLE)
921
922endif # PLATFORM_VERSION == R
923
Mike Kelly0e415132020-02-11 11:21:25 +0000924##########################
925# armnn module and tests #
926##########################
927# Note we use ANDROID_NN_DRIVER_LOCAL_PATH rather than LOCAL_PATH because LOCAL_PATH will be overwritten
928# when including other .mk files that set it.
929include $(ANDROID_NN_DRIVER_LOCAL_PATH)/armnn/Android.mk
930include $(ANDROID_NN_DRIVER_LOCAL_PATH)/test/Android.mk