blob: 673bf325d7a1c42f265026a479f357650997bb22 [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
Kevin May157f8f42020-06-02 14:50:01 +010012ANDROID_R := 0
Mike Kelly0e415132020-02-11 11:21:25 +000013
14ifeq ($(PLATFORM_VERSION),9)
15P_OR_LATER := 1
16endif # PLATFORM_VERSION == 9
17ifeq ($(PLATFORM_VERSION),P)
18P_OR_LATER := 1
19endif # PLATFORM_VERSION == P
20
21ifeq ($(PLATFORM_VERSION),10)
22P_OR_LATER := 1
23Q_OR_LATER := 1
24endif # PLATFORM_VERSION == 10
25ifeq ($(PLATFORM_VERSION),Q)
26P_OR_LATER := 1
27Q_OR_LATER := 1
28endif # PLATFORM_VERSION == Q
29
Kevin Mayec1e5b82020-02-26 17:00:39 +000030ifeq ($(PLATFORM_VERSION),R)
31P_OR_LATER := 1
32Q_OR_LATER := 1
33R_OR_LATER := 1
Kevin May157f8f42020-06-02 14:50:01 +010034ANDROID_R := 1
Kevin Mayec1e5b82020-02-26 17:00:39 +000035endif # PLATFORM_VERSION == R
36
Kevin May157f8f42020-06-02 14:50:01 +010037ifeq ($(PLATFORM_VERSION),11)
38P_OR_LATER := 1
39Q_OR_LATER := 1
40R_OR_LATER := 1
41ANDROID_R := 1
42endif # PLATFORM_VERSION == 11
43
Mike Kelly0e415132020-02-11 11:21:25 +000044CPP_VERSION := c++14
45
46ifeq ($(Q_OR_LATER),1)
47CPP_VERSION := c++17
48endif
49
50# Configure these paths if you move the source or Khronos headers
51ARMNN_HEADER_PATH := $(LOCAL_PATH)/armnn/include
Colm Donelan08d9a1c2020-09-09 17:56:55 +010052ARMNN_THIRD_PARTY_PATH := $(LOCAL_PATH)/armnn/third-party
Mike Kelly0e415132020-02-11 11:21:25 +000053ARMNN_UTILS_HEADER_PATH := $(LOCAL_PATH)/armnn/src/armnnUtils
54OPENCL_HEADER_PATH := $(LOCAL_PATH)/clframework/include
55NN_HEADER_PATH := $(LOCAL_PATH)/../../../frameworks/ml/nn/runtime/include
56
57# Variables to control CL/NEON/reference backend support
58# Set them to '0' to disable support for a specific backend
59ARMNN_COMPUTE_CL_ENABLED := 1
60ARMNN_COMPUTE_NEON_ENABLED := 1
61ARMNN_REF_ENABLED := 1
FrancisMurtagh594b2832020-06-15 17:17:56 +010062ARMNN_ETHOSN_ENABLED := 1
Mike Kelly0e415132020-02-11 11:21:25 +000063
64ifeq ($(ARMNN_COMPUTE_CL_ENABLE),0)
65ARMNN_COMPUTE_CL_ENABLED := 0
66endif
67
68ifeq ($(ARMNN_COMPUTE_NEON_ENABLE),0)
69ARMNN_COMPUTE_NEON_ENABLED := 0
70endif
71
72ifeq ($(ARMNN_REF_ENABLE),0)
73ARMNN_REF_ENABLED := 0
74endif
75
FrancisMurtagh594b2832020-06-15 17:17:56 +010076ifeq ($(ARMNN_ETHOSN_ENABLE),0)
77ARMNN_ETHOSN_ENABLED := 0
78endif
79
alered017c395b22020-04-03 15:37:24 +010080# Variable to control inclusion of libOpenCL shared library
81ARMNN_INCLUDE_LIBOPENCL := $(ARMNN_COMPUTE_CL_ENABLED)
82ifeq ($(ARMNN_LIBOPENCL),0)
83ARMNN_INCLUDE_LIBOPENCL := 0
84endif
85
Narumol Prangnawaratcad4e912020-06-02 12:07:43 +010086# Variable to control retire rate of priority queue
87RETIRE_RATE := 3
88
Mike Kelly0e415132020-02-11 11:21:25 +000089#######################
90# libarmnn-driver@1.0 #
91#######################
92include $(CLEAR_VARS)
93
94LOCAL_MODULE := libarmnn-driver@1.0
95ifeq ($(Q_OR_LATER),1)
96# "eng" is deprecated in Android Q
97LOCAL_MODULE_TAGS := optional
98else
99LOCAL_MODULE_TAGS := eng optional
100endif
101LOCAL_ARM_MODE := arm
102LOCAL_PROPRIETARY_MODULE := true
103# Mark source files as dependent on Android.mk
104LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
105
106LOCAL_C_INCLUDES := \
107 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100108 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000109 $(ARMNN_UTILS_HEADER_PATH) \
110 $(OPENCL_HEADER_PATH) \
111 $(NN_HEADER_PATH)
112
113LOCAL_CFLAGS := \
114 -std=$(CPP_VERSION) \
115 -fexceptions \
116 -Werror \
117 -Wno-format-security
118
Kevin Mayec1e5b82020-02-26 17:00:39 +0000119# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100120ifeq ($(ANDROID_R),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000121LOCAL_CFLAGS+= \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000122 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100123endif
Mike Kelly0e415132020-02-11 11:21:25 +0000124
125ifeq ($(ARMNN_DRIVER_DEBUG),1)
126LOCAL_CFLAGS+= \
127 -UNDEBUG
128endif # ARMNN_DRIVER_DEBUG == 1
129
130ifeq ($(Q_OR_LATER),1)
131LOCAL_CFLAGS += \
132 -DBOOST_NO_AUTO_PTR
133endif # PLATFORM_VERSION == Q or later
134
135ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
136LOCAL_CFLAGS += \
137 -DARMCOMPUTECL_ENABLED
138endif # ARMNN_COMPUTE_CL_ENABLED == 1
139
140ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
141LOCAL_CFLAGS += \
142 -DARMCOMPUTENEON_ENABLED
143endif # ARMNN_COMPUTE_NEON_ENABLED == 1
144
145ifeq ($(ARMNN_REF_ENABLED),1)
146LOCAL_CFLAGS += \
147 -DARMNNREF_ENABLED
148endif # ARMNN_REF_ENABLED == 1
149
FrancisMurtagh594b2832020-06-15 17:17:56 +0100150ifeq ($(ARMNN_ETHOSN_ENABLED),1)
151LOCAL_CFLAGS += \
152 -DARMNNETHOSN_ENABLED
153endif # ARMNN_ETHOSN_ENABLED == 1
154
Mike Kelly0e415132020-02-11 11:21:25 +0000155LOCAL_SRC_FILES := \
156 1.0/ArmnnDriverImpl.cpp \
157 1.0/HalPolicy.cpp \
158 ArmnnDriverImpl.cpp \
159 DriverOptions.cpp \
160 ArmnnDevice.cpp \
161 ArmnnPreparedModel.cpp \
162 ModelToINetworkConverter.cpp \
163 RequestThread.cpp \
164 Utils.cpp \
165 ConversionUtils.cpp
166
167LOCAL_STATIC_LIBRARIES := \
168 libneuralnetworks_common \
169 libboost_log \
170 libboost_program_options \
171 libboost_system \
172 libboost_thread \
173 libboost_filesystem \
174 arm_compute_library
175
176LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
177
178LOCAL_SHARED_LIBRARIES := \
179 libbase \
180 libhidlbase \
181 libhidltransport \
182 libhidlmemory \
183 liblog \
184 libutils \
185 android.hardware.neuralnetworks@1.0 \
186 android.hidl.allocator@1.0 \
187 android.hidl.memory@1.0
188
189ifeq ($(P_OR_LATER),1)
190# Required to build the 1.0 version of the NN Driver on Android P and later versions,
191# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
192LOCAL_SHARED_LIBRARIES+= \
193 android.hardware.neuralnetworks@1.1
194endif # PLATFORM_VERSION == 9
195
196ifeq ($(Q_OR_LATER),1)
197LOCAL_SHARED_LIBRARIES+= \
198 libnativewindow \
199 libui \
200 libfmq \
201 libcutils \
202 android.hardware.neuralnetworks@1.2
Kevin Mayec1e5b82020-02-26 17:00:39 +0000203endif # Q or later
204
205ifeq ($(R_OR_LATER),1)
206LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100207 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000208 android.hardware.neuralnetworks@1.3
209endif # R or later
Mike Kelly0e415132020-02-11 11:21:25 +0000210
alered01dbae2472020-04-07 12:31:10 +0100211ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000212LOCAL_SHARED_LIBRARIES+= \
213 libOpenCL
214endif
215
216include $(BUILD_STATIC_LIBRARY)
217
218ifeq ($(P_OR_LATER),1)
219# The following target is available starting from Android P
220
221#######################
222# libarmnn-driver@1.1 #
223#######################
224include $(CLEAR_VARS)
225
226LOCAL_MODULE := libarmnn-driver@1.1
227ifeq ($(Q_OR_LATER),1)
228# "eng" is deprecated in Android Q
229LOCAL_MODULE_TAGS := optional
230else
231LOCAL_MODULE_TAGS := eng optional
232endif
233#PRODUCT_PACKAGES_ENG := libarmnn-driver@1.1
234LOCAL_ARM_MODE := arm
235LOCAL_PROPRIETARY_MODULE := true
236# Mark source files as dependent on Android.mk
237LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
238
239LOCAL_C_INCLUDES := \
240 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100241 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000242 $(ARMNN_UTILS_HEADER_PATH) \
243 $(OPENCL_HEADER_PATH) \
244 $(NN_HEADER_PATH)
245
246LOCAL_CFLAGS := \
247 -std=$(CPP_VERSION) \
248 -fexceptions \
249 -Werror \
250 -Wno-format-security \
Mike Kelly0e415132020-02-11 11:21:25 +0000251 -DARMNN_ANDROID_NN_V1_1
252
253ifeq ($(ARMNN_DRIVER_DEBUG),1)
254LOCAL_CFLAGS+= \
255 -UNDEBUG
256endif # ARMNN_DRIVER_DEBUG == 1
257
258ifeq ($(Q_OR_LATER),1)
259LOCAL_CFLAGS += \
260 -DBOOST_NO_AUTO_PTR
261endif # PLATFORM_VERSION == Q or later
262
Kevin Mayec1e5b82020-02-26 17:00:39 +0000263# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100264ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000265LOCAL_CFLAGS+= \
266 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100267endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000268
Mike Kelly0e415132020-02-11 11:21:25 +0000269ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
270LOCAL_CFLAGS += \
271 -DARMCOMPUTECL_ENABLED
272endif # ARMNN_COMPUTE_CL_ENABLED == 1
273
274ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
275LOCAL_CFLAGS += \
276 -DARMCOMPUTENEON_ENABLED
277endif # ARMNN_COMPUTE_NEON_ENABLED == 1
278
279ifeq ($(ARMNN_REF_ENABLED),1)
280LOCAL_CFLAGS += \
281 -DARMNNREF_ENABLED
282endif # ARMNN_REF_ENABLED == 1
283
FrancisMurtagh594b2832020-06-15 17:17:56 +0100284ifeq ($(ARMNN_ETHOSN_ENABLED),1)
285LOCAL_CFLAGS += \
286 -DARMNNETHOSN_ENABLED
287endif # ARMNN_ETHOSN_ENABLED == 1
288
Mike Kelly0e415132020-02-11 11:21:25 +0000289LOCAL_SRC_FILES := \
290 1.0/ArmnnDriverImpl.cpp \
291 1.0/HalPolicy.cpp \
292 1.1/ArmnnDriverImpl.cpp \
293 1.1/HalPolicy.cpp \
294 ArmnnDriverImpl.cpp \
295 DriverOptions.cpp \
296 ArmnnDevice.cpp \
297 ArmnnPreparedModel.cpp \
298 ModelToINetworkConverter.cpp \
299 RequestThread.cpp \
300 Utils.cpp \
301 ConversionUtils.cpp
302
303LOCAL_STATIC_LIBRARIES := \
304 libneuralnetworks_common \
305 libboost_log \
306 libboost_program_options \
307 libboost_system \
308 libboost_thread \
309 libboost_filesystem \
310 arm_compute_library
311
312LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
313
314LOCAL_SHARED_LIBRARIES := \
315 libbase \
316 libhidlbase \
317 libhidltransport \
318 libhidlmemory \
319 liblog \
320 libutils \
321 android.hardware.neuralnetworks@1.0 \
322 android.hardware.neuralnetworks@1.1 \
323 android.hidl.allocator@1.0 \
324 android.hidl.memory@1.0
325
326ifeq ($(Q_OR_LATER),1)
327LOCAL_SHARED_LIBRARIES+= \
328 libnativewindow \
329 libui \
330 libfmq \
331 libcutils \
332 android.hardware.neuralnetworks@1.2
333endif # PLATFORM_VERSION == Q
334
Kevin Mayec1e5b82020-02-26 17:00:39 +0000335ifeq ($(R_OR_LATER),1)
336LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100337 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000338 android.hardware.neuralnetworks@1.3
339endif # R or later
340
alered017c395b22020-04-03 15:37:24 +0100341ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000342LOCAL_SHARED_LIBRARIES+= \
343 libOpenCL
344endif
345
346include $(BUILD_STATIC_LIBRARY)
347
348endif # PLATFORM_VERSION == 9
349
350ifeq ($(Q_OR_LATER),1)
351# The following target is available starting from Android Q
352
353#######################
354# libarmnn-driver@1.2 #
355#######################
356include $(CLEAR_VARS)
357
358LOCAL_MODULE := libarmnn-driver@1.2
359LOCAL_MODULE_TAGS := optional
360LOCAL_ARM_MODE := arm
361LOCAL_PROPRIETARY_MODULE := true
362# Mark source files as dependent on Android.mk
363LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
364
365LOCAL_C_INCLUDES := \
366 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100367 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000368 $(ARMNN_UTILS_HEADER_PATH) \
369 $(OPENCL_HEADER_PATH) \
370 $(NN_HEADER_PATH)
371
372LOCAL_CFLAGS := \
373 -std=$(CPP_VERSION) \
374 -fexceptions \
375 -Werror \
376 -Wno-format-security \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000377 -DBOOST_NO_AUTO_PTR \
Mike Kelly0e415132020-02-11 11:21:25 +0000378 -DARMNN_ANDROID_NN_V1_2
379
380ifeq ($(ARMNN_DRIVER_DEBUG),1)
381LOCAL_CFLAGS+= \
382 -UNDEBUG
383endif # ARMNN_DRIVER_DEBUG == 1
384
Kevin Mayec1e5b82020-02-26 17:00:39 +0000385# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100386ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000387LOCAL_CFLAGS+= \
388 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100389endif
Mike Kelly0e415132020-02-11 11:21:25 +0000390
391ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
392LOCAL_CFLAGS += \
393 -DARMCOMPUTECL_ENABLED
394endif # ARMNN_COMPUTE_CL_ENABLED == 1
395
396ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
397LOCAL_CFLAGS += \
398 -DARMCOMPUTENEON_ENABLED
399endif # ARMNN_COMPUTE_NEON_ENABLED == 1
400
401ifeq ($(ARMNN_REF_ENABLED),1)
402LOCAL_CFLAGS += \
403 -DARMNNREF_ENABLED
404endif # ARMNN_REF_ENABLED == 1
405
FrancisMurtagh594b2832020-06-15 17:17:56 +0100406ifeq ($(ARMNN_ETHOSN_ENABLED),1)
407LOCAL_CFLAGS += \
408 -DARMNNETHOSN_ENABLED
409endif # ARMNN_ETHOSN_ENABLED == 1
410
Mike Kelly0e415132020-02-11 11:21:25 +0000411LOCAL_SRC_FILES := \
412 1.0/ArmnnDriverImpl.cpp \
413 1.0/HalPolicy.cpp \
414 1.1/ArmnnDriverImpl.cpp \
415 1.1/HalPolicy.cpp \
416 1.2/ArmnnDriverImpl.cpp \
417 1.2/HalPolicy.cpp \
418 ArmnnDevice.cpp \
419 ArmnnDriverImpl.cpp \
420 ArmnnPreparedModel.cpp \
421 ArmnnPreparedModel_1_2.cpp \
422 ConversionUtils.cpp \
423 DriverOptions.cpp \
424 ModelToINetworkConverter.cpp \
425 RequestThread.cpp \
426 Utils.cpp
427
428LOCAL_STATIC_LIBRARIES := \
429 libneuralnetworks_common \
430 libboost_log \
431 libboost_program_options \
432 libboost_system \
433 libboost_thread \
434 libboost_filesystem \
435 arm_compute_library
436
437LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
438
439LOCAL_SHARED_LIBRARIES := \
440 libbase \
441 libhidlbase \
442 libhidltransport \
443 libhidlmemory \
444 liblog \
445 libutils \
446 libnativewindow \
447 libui \
448 libfmq \
449 libcutils \
450 android.hidl.allocator@1.0 \
451 android.hidl.memory@1.0 \
452 android.hardware.neuralnetworks@1.0 \
453 android.hardware.neuralnetworks@1.1 \
454 android.hardware.neuralnetworks@1.2
455
Kevin Mayec1e5b82020-02-26 17:00:39 +0000456ifeq ($(R_OR_LATER),1)
457LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100458 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000459 android.hardware.neuralnetworks@1.3
460endif # R or later
461
alered017c395b22020-04-03 15:37:24 +0100462ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000463LOCAL_SHARED_LIBRARIES+= \
464 libOpenCL
465endif
466
467include $(BUILD_STATIC_LIBRARY)
468
469endif # PLATFORM_VERSION == Q
470
Kevin May42477c12020-03-26 13:34:14 +0000471ifeq ($(R_OR_LATER),1)
472# The following target is available starting from Android R
473
474#######################
475# libarmnn-driver@1.3 #
476#######################
477include $(CLEAR_VARS)
478
479LOCAL_MODULE := libarmnn-driver@1.3
480LOCAL_MODULE_TAGS := optional
481LOCAL_ARM_MODE := arm
482LOCAL_PROPRIETARY_MODULE := true
483# Mark source files as dependent on Android.mk
484LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
485
486LOCAL_C_INCLUDES := \
487 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100488 $(ARMNN_THIRD_PARTY_PATH) \
Kevin May42477c12020-03-26 13:34:14 +0000489 $(ARMNN_UTILS_HEADER_PATH) \
490 $(OPENCL_HEADER_PATH) \
491 $(NN_HEADER_PATH)
492
493LOCAL_CFLAGS := \
494 -std=$(CPP_VERSION) \
495 -fexceptions \
496 -Werror \
497 -Wno-format-security \
498 -DBOOST_NO_AUTO_PTR \
499 -DARMNN_ANDROID_NN_V1_3 \
500 -DARMNN_ANDROID_R
501
502ifeq ($(ARMNN_DRIVER_DEBUG),1)
503LOCAL_CFLAGS+= \
504 -UNDEBUG
505endif # ARMNN_DRIVER_DEBUG == 1
506
507ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
508LOCAL_CFLAGS += \
509 -DARMCOMPUTECL_ENABLED
510endif # ARMNN_COMPUTE_CL_ENABLED == 1
511
512ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
513LOCAL_CFLAGS += \
514 -DARMCOMPUTENEON_ENABLED
515endif # ARMNN_COMPUTE_NEON_ENABLED == 1
516
517ifeq ($(ARMNN_REF_ENABLED),1)
518LOCAL_CFLAGS += \
519 -DARMNNREF_ENABLED
520endif # ARMNN_REF_ENABLED == 1
521
FrancisMurtagh594b2832020-06-15 17:17:56 +0100522ifeq ($(ARMNN_ETHOSN_ENABLED),1)
523LOCAL_CFLAGS += \
524 -DARMNNETHOSN_ENABLED
525endif # ARMNN_ETHOSN_ENABLED == 1
526
Narumol Prangnawaratcad4e912020-06-02 12:07:43 +0100527LOCAL_CFLAGS += \
528 -DRETIRE_RATE=$(RETIRE_RATE)
529
Kevin May42477c12020-03-26 13:34:14 +0000530LOCAL_SRC_FILES := \
531 1.0/ArmnnDriverImpl.cpp \
532 1.0/HalPolicy.cpp \
533 1.1/ArmnnDriverImpl.cpp \
534 1.1/HalPolicy.cpp \
535 1.2/ArmnnDriverImpl.cpp \
536 1.2/HalPolicy.cpp \
537 1.3/ArmnnDriverImpl.cpp \
538 1.3/HalPolicy.cpp \
539 ArmnnDevice.cpp \
540 ArmnnDriverImpl.cpp \
541 ArmnnPreparedModel.cpp \
542 ArmnnPreparedModel_1_2.cpp \
543 ArmnnPreparedModel_1_3.cpp \
544 ConversionUtils.cpp \
545 DriverOptions.cpp \
546 ModelToINetworkConverter.cpp \
547 RequestThread.cpp \
Narumol Prangnawaratcad4e912020-06-02 12:07:43 +0100548 RequestThread_1_3.cpp \
Kevin May42477c12020-03-26 13:34:14 +0000549 Utils.cpp
550
551LOCAL_STATIC_LIBRARIES := \
552 libneuralnetworks_common \
553 libboost_log \
554 libboost_program_options \
555 libboost_system \
556 libboost_thread \
557 libboost_filesystem \
558 arm_compute_library
559
560LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
561
562LOCAL_SHARED_LIBRARIES := \
563 libbase \
564 libhidlbase \
565 libhidltransport \
566 libhidlmemory \
567 liblog \
568 libutils \
569 libnativewindow \
570 libui \
571 libfmq \
572 libcutils \
573 android.hidl.allocator@1.0 \
574 android.hidl.memory@1.0 \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100575 libsync \
Kevin May42477c12020-03-26 13:34:14 +0000576 android.hardware.neuralnetworks@1.0 \
577 android.hardware.neuralnetworks@1.1 \
578 android.hardware.neuralnetworks@1.2 \
579 android.hardware.neuralnetworks@1.3
580
alered017c395b22020-04-03 15:37:24 +0100581ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Kevin May42477c12020-03-26 13:34:14 +0000582LOCAL_SHARED_LIBRARIES+= \
583 libOpenCL
584endif
585
586include $(BUILD_STATIC_LIBRARY)
587
588endif # PLATFORM_VERSION == R
589
Mike Kelly0e415132020-02-11 11:21:25 +0000590#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100591# android.hardware.neuralnetworks@1.0-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000592#####################################################
593include $(CLEAR_VARS)
594
Kevin Mayabc95d02020-05-15 15:34:03 +0100595LOCAL_MODULE := android.hardware.neuralnetworks@1.0-service-armnn
596LOCAL_INIT_RC := android.hardware.neuralnetworks@1.0-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000597ifeq ($(Q_OR_LATER),1)
598# "eng" is deprecated in Android Q
599LOCAL_MODULE_TAGS := optional
600else
601LOCAL_MODULE_TAGS := eng optional
602endif
603LOCAL_ARM_MODE := arm
604LOCAL_MODULE_RELATIVE_PATH := hw
605LOCAL_PROPRIETARY_MODULE := true
606# Mark source files as dependent on Android.mk
607LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
608
609LOCAL_C_INCLUDES := \
610 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100611 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000612 $(NN_HEADER_PATH)
613
614LOCAL_CFLAGS := \
615 -std=$(CPP_VERSION) \
616 -fexceptions
617
618ifeq ($(ARMNN_DRIVER_DEBUG),1)
619LOCAL_CFLAGS += \
620 -UNDEBUG
621endif # ARMNN_DRIVER_DEBUG == 1
622
623ifeq ($(Q_OR_LATER),1)
624LOCAL_CFLAGS += \
625 -DBOOST_NO_AUTO_PTR
626endif # PLATFORM_VERSION == Q or later
627
Kevin Mayec1e5b82020-02-26 17:00:39 +0000628# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100629ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000630LOCAL_CFLAGS+= \
631 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100632endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000633
Mike Kelly0e415132020-02-11 11:21:25 +0000634LOCAL_SRC_FILES := \
635 service.cpp
636
637LOCAL_STATIC_LIBRARIES := \
638 libneuralnetworks_common \
639 libboost_log \
640 libboost_program_options \
641 libboost_system \
642 libboost_thread \
643 libboost_filesystem \
644 arm_compute_library
645
646LOCAL_WHOLE_STATIC_LIBRARIES := \
647 libarmnn-driver@1.0
648
649LOCAL_SHARED_LIBRARIES := \
650 libbase \
651 libhidlbase \
652 libhidltransport \
653 libhidlmemory \
654 libdl \
655 libhardware \
656 liblog \
657 libtextclassifier_hash \
658 libutils \
659 android.hardware.neuralnetworks@1.0 \
660 android.hidl.allocator@1.0 \
661 android.hidl.memory@1.0
662
663ifeq ($(P_OR_LATER),1)
664# Required to build the 1.0 version of the NN Driver on Android P and later versions,
665# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
666LOCAL_SHARED_LIBRARIES+= \
667 android.hardware.neuralnetworks@1.1
668endif # PLATFORM_VERSION == 9
Kevin Mayec1e5b82020-02-26 17:00:39 +0000669
Mike Kelly0e415132020-02-11 11:21:25 +0000670ifeq ($(Q_OR_LATER),1)
671LOCAL_SHARED_LIBRARIES+= \
672 libnativewindow \
673 libui \
674 libfmq \
675 libcutils \
676 android.hardware.neuralnetworks@1.2
677endif # PLATFORM_VERSION == Q
678
Kevin Mayec1e5b82020-02-26 17:00:39 +0000679ifeq ($(R_OR_LATER),1)
680LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100681 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000682 android.hardware.neuralnetworks@1.3
683endif # R or later
684
alered017c395b22020-04-03 15:37:24 +0100685ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000686LOCAL_SHARED_LIBRARIES+= \
687 libOpenCL
688endif
689
690include $(BUILD_EXECUTABLE)
691
692ifeq ($(P_OR_LATER),1)
693# The following target is available starting from Android P
694
695#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100696# android.hardware.neuralnetworks@1.1-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000697#####################################################
698include $(CLEAR_VARS)
699
Kevin Mayabc95d02020-05-15 15:34:03 +0100700LOCAL_MODULE := android.hardware.neuralnetworks@1.1-service-armnn
701LOCAL_INIT_RC := android.hardware.neuralnetworks@1.1-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000702ifeq ($(Q_OR_LATER),1)
703# "eng" is deprecated in Android Q
704LOCAL_MODULE_TAGS := optional
705else
706LOCAL_MODULE_TAGS := eng optional
707endif
708LOCAL_ARM_MODE := arm
709LOCAL_MODULE_RELATIVE_PATH := hw
710LOCAL_PROPRIETARY_MODULE := true
711# Mark source files as dependent on Android.mk
712LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
713
714LOCAL_C_INCLUDES := \
715 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100716 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000717 $(NN_HEADER_PATH)
718
719LOCAL_CFLAGS := \
720 -std=$(CPP_VERSION) \
721 -fexceptions \
722 -DARMNN_ANDROID_NN_V1_1
723
724ifeq ($(ARMNN_DRIVER_DEBUG),1)
725LOCAL_CFLAGS += \
726 -UNDEBUG
727endif # ARMNN_DRIVER_DEBUG == 1
728
729ifeq ($(Q_OR_LATER),1)
730LOCAL_CFLAGS += \
731 -DBOOST_NO_AUTO_PTR
732endif # PLATFORM_VERSION == Q or later
733
Kevin Mayec1e5b82020-02-26 17:00:39 +0000734# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100735ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000736LOCAL_CFLAGS+= \
737 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100738endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000739
Mike Kelly0e415132020-02-11 11:21:25 +0000740LOCAL_SRC_FILES := \
741 service.cpp
742
743LOCAL_STATIC_LIBRARIES := \
744 libneuralnetworks_common \
745 libboost_log \
746 libboost_program_options \
747 libboost_system \
748 libboost_thread \
749 libboost_filesystem \
750 arm_compute_library
751
752LOCAL_WHOLE_STATIC_LIBRARIES := \
753 libarmnn-driver@1.1
754
755LOCAL_SHARED_LIBRARIES := \
756 libbase \
757 libhidlbase \
758 libhidltransport \
759 libhidlmemory \
760 libdl \
761 libhardware \
762 liblog \
763 libtextclassifier_hash \
764 libutils \
765 android.hardware.neuralnetworks@1.0 \
766 android.hardware.neuralnetworks@1.1 \
767 android.hidl.allocator@1.0 \
768 android.hidl.memory@1.0
769
770ifeq ($(Q_OR_LATER),1)
771LOCAL_SHARED_LIBRARIES+= \
772 libnativewindow \
773 libui \
774 libfmq \
775 libcutils \
776 android.hardware.neuralnetworks@1.2
777endif # PLATFORM_VERSION == Q
778
Kevin Mayec1e5b82020-02-26 17:00:39 +0000779ifeq ($(R_OR_LATER),1)
780LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100781 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000782 android.hardware.neuralnetworks@1.3
783endif # PLATFORM_VERSION == R
784
alered017c395b22020-04-03 15:37:24 +0100785ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000786LOCAL_SHARED_LIBRARIES+= \
787 libOpenCL
788endif
789
790include $(BUILD_EXECUTABLE)
791
792endif # PLATFORM_VERSION == 9
793
794ifeq ($(Q_OR_LATER),1)
795# The following target is available starting from Android Q
796
797#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100798# android.hardware.neuralnetworks@1.2-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000799#####################################################
800include $(CLEAR_VARS)
801
Kevin Mayabc95d02020-05-15 15:34:03 +0100802LOCAL_MODULE := android.hardware.neuralnetworks@1.2-service-armnn
803LOCAL_INIT_RC := android.hardware.neuralnetworks@1.2-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000804LOCAL_MODULE_TAGS := optional
805LOCAL_ARM_MODE := arm
806LOCAL_MODULE_RELATIVE_PATH := hw
807LOCAL_PROPRIETARY_MODULE := true
808# Mark source files as dependent on Android.mk
809LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
810
811LOCAL_C_INCLUDES := \
812 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100813 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000814 $(NN_HEADER_PATH)
815
816LOCAL_CFLAGS := \
817 -std=$(CPP_VERSION) \
818 -fexceptions \
819 -DARMNN_ANDROID_NN_V1_2 \
820 -DBOOST_NO_AUTO_PTR
821
822ifeq ($(ARMNN_DRIVER_DEBUG),1)
823LOCAL_CFLAGS += \
824 -UNDEBUG
825endif # ARMNN_DRIVER_DEBUG == 1
826
Kevin Mayec1e5b82020-02-26 17:00:39 +0000827# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100828ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000829LOCAL_CFLAGS+= \
830 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100831endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000832
Mike Kelly0e415132020-02-11 11:21:25 +0000833LOCAL_SRC_FILES := \
834 service.cpp
835
836LOCAL_STATIC_LIBRARIES := \
837 libneuralnetworks_common \
838 libboost_log \
839 libboost_program_options \
840 libboost_system \
841 libboost_thread \
842 libboost_filesystem \
843 arm_compute_library
844
845LOCAL_WHOLE_STATIC_LIBRARIES := \
846 libarmnn-driver@1.2
847
848LOCAL_SHARED_LIBRARIES := \
849 libbase \
850 libhidlbase \
851 libhidltransport \
852 libhidlmemory \
853 libdl \
854 libhardware \
855 liblog \
856 libtextclassifier_hash \
857 libutils \
858 libnativewindow \
859 libui \
860 libfmq \
861 libcutils \
862 android.hidl.allocator@1.0 \
863 android.hidl.memory@1.0 \
864 android.hardware.neuralnetworks@1.0 \
865 android.hardware.neuralnetworks@1.1 \
866 android.hardware.neuralnetworks@1.2
867
Kevin Mayec1e5b82020-02-26 17:00:39 +0000868ifeq ($(R_OR_LATER),1)
869LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100870 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000871 android.hardware.neuralnetworks@1.3
872endif # R or later
873
alered017c395b22020-04-03 15:37:24 +0100874ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000875LOCAL_SHARED_LIBRARIES+= \
876 libOpenCL
877endif
878
879include $(BUILD_EXECUTABLE)
880
881endif # PLATFORM_VERSION == Q
882
Kevin May42477c12020-03-26 13:34:14 +0000883ifeq ($(R_OR_LATER),1)
884# The following target is available starting from Android R
885
886#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100887# android.hardware.neuralnetworks@1.3-service-armnn #
Kevin May42477c12020-03-26 13:34:14 +0000888#####################################################
889include $(CLEAR_VARS)
890
Kevin Mayabc95d02020-05-15 15:34:03 +0100891LOCAL_MODULE := android.hardware.neuralnetworks@1.3-service-armnn
892LOCAL_INIT_RC := android.hardware.neuralnetworks@1.3-service-armnn.rc
Kevin May42477c12020-03-26 13:34:14 +0000893LOCAL_MODULE_TAGS := optional
894LOCAL_ARM_MODE := arm
895LOCAL_MODULE_RELATIVE_PATH := hw
896LOCAL_PROPRIETARY_MODULE := true
897# Mark source files as dependent on Android.mk
898LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
899
900LOCAL_C_INCLUDES := \
901 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100902 $(ARMNN_THIRD_PARTY_PATH) \
Kevin May42477c12020-03-26 13:34:14 +0000903 $(NN_HEADER_PATH)
904
905LOCAL_CFLAGS := \
906 -std=$(CPP_VERSION) \
907 -fexceptions \
908 -DARMNN_ANDROID_NN_V1_3 \
909 -DBOOST_NO_AUTO_PTR \
910 -DARMNN_ANDROID_R
911
912ifeq ($(ARMNN_DRIVER_DEBUG),1)
913LOCAL_CFLAGS += \
914 -UNDEBUG
915endif # ARMNN_DRIVER_DEBUG == 1
916
917LOCAL_SRC_FILES := \
918 service.cpp
919
920LOCAL_STATIC_LIBRARIES := \
921 libneuralnetworks_common \
922 libboost_log \
923 libboost_program_options \
924 libboost_system \
925 libboost_thread \
926 libboost_filesystem \
927 arm_compute_library
928
929LOCAL_WHOLE_STATIC_LIBRARIES := \
930 libarmnn-driver@1.3
931
932LOCAL_SHARED_LIBRARIES := \
933 libbase \
934 libhidlbase \
935 libhidltransport \
936 libhidlmemory \
937 libdl \
938 libhardware \
939 liblog \
940 libtextclassifier_hash \
941 libutils \
942 libnativewindow \
943 libui \
944 libfmq \
945 libcutils \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100946 libsync \
Kevin May42477c12020-03-26 13:34:14 +0000947 android.hidl.allocator@1.0 \
948 android.hidl.memory@1.0 \
949 android.hardware.neuralnetworks@1.0 \
950 android.hardware.neuralnetworks@1.1 \
951 android.hardware.neuralnetworks@1.2 \
952 android.hardware.neuralnetworks@1.3
953
alered017c395b22020-04-03 15:37:24 +0100954ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Kevin May42477c12020-03-26 13:34:14 +0000955LOCAL_SHARED_LIBRARIES+= \
956 libOpenCL
957endif
958
959include $(BUILD_EXECUTABLE)
960
961endif # PLATFORM_VERSION == R
962
Mike Kelly0e415132020-02-11 11:21:25 +0000963##########################
964# armnn module and tests #
965##########################
966# Note we use ANDROID_NN_DRIVER_LOCAL_PATH rather than LOCAL_PATH because LOCAL_PATH will be overwritten
967# when including other .mk files that set it.
968include $(ANDROID_NN_DRIVER_LOCAL_PATH)/armnn/Android.mk
969include $(ANDROID_NN_DRIVER_LOCAL_PATH)/test/Android.mk