blob: 8b884e1606485adc299826103c3ab01d13f0202c [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
Colm Donelan0cc61782020-10-06 21:02:21 +010054ARMNN_THIRD_PARTY_PATH := $(LOCAL_PATH)/armnn/third-party
Mike Kelly0e415132020-02-11 11:21:25 +000055OPENCL_HEADER_PATH := $(LOCAL_PATH)/clframework/include
56NN_HEADER_PATH := $(LOCAL_PATH)/../../../frameworks/ml/nn/runtime/include
57
58# Variables to control CL/NEON/reference backend support
59# Set them to '0' to disable support for a specific backend
60ARMNN_COMPUTE_CL_ENABLED := 1
61ARMNN_COMPUTE_NEON_ENABLED := 1
62ARMNN_REF_ENABLED := 1
FrancisMurtagh594b2832020-06-15 17:17:56 +010063ARMNN_ETHOSN_ENABLED := 1
Mike Kelly0e415132020-02-11 11:21:25 +000064
65ifeq ($(ARMNN_COMPUTE_CL_ENABLE),0)
66ARMNN_COMPUTE_CL_ENABLED := 0
67endif
68
69ifeq ($(ARMNN_COMPUTE_NEON_ENABLE),0)
70ARMNN_COMPUTE_NEON_ENABLED := 0
71endif
72
73ifeq ($(ARMNN_REF_ENABLE),0)
74ARMNN_REF_ENABLED := 0
75endif
76
FrancisMurtagh594b2832020-06-15 17:17:56 +010077ifeq ($(ARMNN_ETHOSN_ENABLE),0)
78ARMNN_ETHOSN_ENABLED := 0
79endif
80
alered017c395b22020-04-03 15:37:24 +010081# Variable to control inclusion of libOpenCL shared library
82ARMNN_INCLUDE_LIBOPENCL := $(ARMNN_COMPUTE_CL_ENABLED)
83ifeq ($(ARMNN_LIBOPENCL),0)
84ARMNN_INCLUDE_LIBOPENCL := 0
85endif
86
Narumol Prangnawaratcad4e912020-06-02 12:07:43 +010087# Variable to control retire rate of priority queue
88RETIRE_RATE := 3
89
Mike Kelly0e415132020-02-11 11:21:25 +000090#######################
91# libarmnn-driver@1.0 #
92#######################
93include $(CLEAR_VARS)
94
95LOCAL_MODULE := libarmnn-driver@1.0
96ifeq ($(Q_OR_LATER),1)
97# "eng" is deprecated in Android Q
98LOCAL_MODULE_TAGS := optional
99else
100LOCAL_MODULE_TAGS := eng optional
101endif
102LOCAL_ARM_MODE := arm
103LOCAL_PROPRIETARY_MODULE := true
104# Mark source files as dependent on Android.mk
105LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
106
107LOCAL_C_INCLUDES := \
108 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100109 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000110 $(ARMNN_UTILS_HEADER_PATH) \
Colm Donelan0cc61782020-10-06 21:02:21 +0100111 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000112 $(OPENCL_HEADER_PATH) \
113 $(NN_HEADER_PATH)
114
115LOCAL_CFLAGS := \
116 -std=$(CPP_VERSION) \
117 -fexceptions \
118 -Werror \
119 -Wno-format-security
120
Kevin Mayec1e5b82020-02-26 17:00:39 +0000121# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100122ifeq ($(ANDROID_R),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000123LOCAL_CFLAGS+= \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000124 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100125endif
Mike Kelly0e415132020-02-11 11:21:25 +0000126
127ifeq ($(ARMNN_DRIVER_DEBUG),1)
128LOCAL_CFLAGS+= \
129 -UNDEBUG
130endif # ARMNN_DRIVER_DEBUG == 1
131
Mike Kelly0e415132020-02-11 11:21:25 +0000132ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
133LOCAL_CFLAGS += \
134 -DARMCOMPUTECL_ENABLED
135endif # ARMNN_COMPUTE_CL_ENABLED == 1
136
137ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
138LOCAL_CFLAGS += \
139 -DARMCOMPUTENEON_ENABLED
140endif # ARMNN_COMPUTE_NEON_ENABLED == 1
141
142ifeq ($(ARMNN_REF_ENABLED),1)
143LOCAL_CFLAGS += \
144 -DARMNNREF_ENABLED
145endif # ARMNN_REF_ENABLED == 1
146
FrancisMurtagh594b2832020-06-15 17:17:56 +0100147ifeq ($(ARMNN_ETHOSN_ENABLED),1)
148LOCAL_CFLAGS += \
149 -DARMNNETHOSN_ENABLED
150endif # ARMNN_ETHOSN_ENABLED == 1
151
Mike Kelly0e415132020-02-11 11:21:25 +0000152LOCAL_SRC_FILES := \
153 1.0/ArmnnDriverImpl.cpp \
154 1.0/HalPolicy.cpp \
155 ArmnnDriverImpl.cpp \
156 DriverOptions.cpp \
157 ArmnnDevice.cpp \
158 ArmnnPreparedModel.cpp \
159 ModelToINetworkConverter.cpp \
160 RequestThread.cpp \
161 Utils.cpp \
162 ConversionUtils.cpp
163
164LOCAL_STATIC_LIBRARIES := \
165 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000166 libflatbuffers-framework \
Mike Kelly0e415132020-02-11 11:21:25 +0000167 arm_compute_library
168
169LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
170
171LOCAL_SHARED_LIBRARIES := \
172 libbase \
173 libhidlbase \
174 libhidltransport \
175 libhidlmemory \
176 liblog \
177 libutils \
178 android.hardware.neuralnetworks@1.0 \
179 android.hidl.allocator@1.0 \
180 android.hidl.memory@1.0
181
182ifeq ($(P_OR_LATER),1)
183# Required to build the 1.0 version of the NN Driver on Android P and later versions,
184# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
185LOCAL_SHARED_LIBRARIES+= \
186 android.hardware.neuralnetworks@1.1
187endif # PLATFORM_VERSION == 9
188
189ifeq ($(Q_OR_LATER),1)
190LOCAL_SHARED_LIBRARIES+= \
191 libnativewindow \
192 libui \
193 libfmq \
194 libcutils \
195 android.hardware.neuralnetworks@1.2
Kevin Mayec1e5b82020-02-26 17:00:39 +0000196endif # Q or later
197
198ifeq ($(R_OR_LATER),1)
199LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100200 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000201 android.hardware.neuralnetworks@1.3
202endif # R or later
Mike Kelly0e415132020-02-11 11:21:25 +0000203
alered01dbae2472020-04-07 12:31:10 +0100204ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000205LOCAL_SHARED_LIBRARIES+= \
206 libOpenCL
207endif
208
209include $(BUILD_STATIC_LIBRARY)
210
211ifeq ($(P_OR_LATER),1)
212# The following target is available starting from Android P
213
214#######################
215# libarmnn-driver@1.1 #
216#######################
217include $(CLEAR_VARS)
218
219LOCAL_MODULE := libarmnn-driver@1.1
220ifeq ($(Q_OR_LATER),1)
221# "eng" is deprecated in Android Q
222LOCAL_MODULE_TAGS := optional
223else
224LOCAL_MODULE_TAGS := eng optional
225endif
226#PRODUCT_PACKAGES_ENG := libarmnn-driver@1.1
227LOCAL_ARM_MODE := arm
228LOCAL_PROPRIETARY_MODULE := true
229# Mark source files as dependent on Android.mk
230LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
231
232LOCAL_C_INCLUDES := \
233 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100234 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000235 $(ARMNN_UTILS_HEADER_PATH) \
Colm Donelan0cc61782020-10-06 21:02:21 +0100236 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000237 $(OPENCL_HEADER_PATH) \
238 $(NN_HEADER_PATH)
239
240LOCAL_CFLAGS := \
241 -std=$(CPP_VERSION) \
242 -fexceptions \
243 -Werror \
244 -Wno-format-security \
Mike Kelly0e415132020-02-11 11:21:25 +0000245 -DARMNN_ANDROID_NN_V1_1
246
247ifeq ($(ARMNN_DRIVER_DEBUG),1)
248LOCAL_CFLAGS+= \
249 -UNDEBUG
250endif # ARMNN_DRIVER_DEBUG == 1
251
Kevin Mayec1e5b82020-02-26 17:00:39 +0000252# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100253ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000254LOCAL_CFLAGS+= \
255 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100256endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000257
Mike Kelly0e415132020-02-11 11:21:25 +0000258ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
259LOCAL_CFLAGS += \
260 -DARMCOMPUTECL_ENABLED
261endif # ARMNN_COMPUTE_CL_ENABLED == 1
262
263ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
264LOCAL_CFLAGS += \
265 -DARMCOMPUTENEON_ENABLED
266endif # ARMNN_COMPUTE_NEON_ENABLED == 1
267
268ifeq ($(ARMNN_REF_ENABLED),1)
269LOCAL_CFLAGS += \
270 -DARMNNREF_ENABLED
271endif # ARMNN_REF_ENABLED == 1
272
FrancisMurtagh594b2832020-06-15 17:17:56 +0100273ifeq ($(ARMNN_ETHOSN_ENABLED),1)
274LOCAL_CFLAGS += \
275 -DARMNNETHOSN_ENABLED
276endif # ARMNN_ETHOSN_ENABLED == 1
277
Mike Kelly0e415132020-02-11 11:21:25 +0000278LOCAL_SRC_FILES := \
279 1.0/ArmnnDriverImpl.cpp \
280 1.0/HalPolicy.cpp \
281 1.1/ArmnnDriverImpl.cpp \
282 1.1/HalPolicy.cpp \
283 ArmnnDriverImpl.cpp \
284 DriverOptions.cpp \
285 ArmnnDevice.cpp \
286 ArmnnPreparedModel.cpp \
287 ModelToINetworkConverter.cpp \
288 RequestThread.cpp \
289 Utils.cpp \
290 ConversionUtils.cpp
291
292LOCAL_STATIC_LIBRARIES := \
293 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000294 libflatbuffers-framework \
Mike Kelly0e415132020-02-11 11:21:25 +0000295 arm_compute_library
296
297LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
298
299LOCAL_SHARED_LIBRARIES := \
300 libbase \
301 libhidlbase \
302 libhidltransport \
303 libhidlmemory \
304 liblog \
305 libutils \
306 android.hardware.neuralnetworks@1.0 \
307 android.hardware.neuralnetworks@1.1 \
308 android.hidl.allocator@1.0 \
309 android.hidl.memory@1.0
310
311ifeq ($(Q_OR_LATER),1)
312LOCAL_SHARED_LIBRARIES+= \
313 libnativewindow \
314 libui \
315 libfmq \
316 libcutils \
317 android.hardware.neuralnetworks@1.2
318endif # PLATFORM_VERSION == Q
319
Kevin Mayec1e5b82020-02-26 17:00:39 +0000320ifeq ($(R_OR_LATER),1)
321LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100322 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000323 android.hardware.neuralnetworks@1.3
324endif # R or later
325
alered017c395b22020-04-03 15:37:24 +0100326ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000327LOCAL_SHARED_LIBRARIES+= \
328 libOpenCL
329endif
330
331include $(BUILD_STATIC_LIBRARY)
332
333endif # PLATFORM_VERSION == 9
334
335ifeq ($(Q_OR_LATER),1)
336# The following target is available starting from Android Q
337
338#######################
339# libarmnn-driver@1.2 #
340#######################
341include $(CLEAR_VARS)
342
343LOCAL_MODULE := libarmnn-driver@1.2
344LOCAL_MODULE_TAGS := optional
345LOCAL_ARM_MODE := arm
346LOCAL_PROPRIETARY_MODULE := true
347# Mark source files as dependent on Android.mk
348LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
349
350LOCAL_C_INCLUDES := \
351 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100352 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000353 $(ARMNN_UTILS_HEADER_PATH) \
Colm Donelan0cc61782020-10-06 21:02:21 +0100354 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000355 $(OPENCL_HEADER_PATH) \
356 $(NN_HEADER_PATH)
357
358LOCAL_CFLAGS := \
359 -std=$(CPP_VERSION) \
360 -fexceptions \
361 -Werror \
362 -Wno-format-security \
Mike Kelly0e415132020-02-11 11:21:25 +0000363 -DARMNN_ANDROID_NN_V1_2
364
365ifeq ($(ARMNN_DRIVER_DEBUG),1)
366LOCAL_CFLAGS+= \
367 -UNDEBUG
368endif # ARMNN_DRIVER_DEBUG == 1
369
Kevin Mayec1e5b82020-02-26 17:00:39 +0000370# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100371ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000372LOCAL_CFLAGS+= \
373 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100374endif
Mike Kelly0e415132020-02-11 11:21:25 +0000375
376ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
377LOCAL_CFLAGS += \
378 -DARMCOMPUTECL_ENABLED
379endif # ARMNN_COMPUTE_CL_ENABLED == 1
380
381ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
382LOCAL_CFLAGS += \
383 -DARMCOMPUTENEON_ENABLED
384endif # ARMNN_COMPUTE_NEON_ENABLED == 1
385
386ifeq ($(ARMNN_REF_ENABLED),1)
387LOCAL_CFLAGS += \
388 -DARMNNREF_ENABLED
389endif # ARMNN_REF_ENABLED == 1
390
FrancisMurtagh594b2832020-06-15 17:17:56 +0100391ifeq ($(ARMNN_ETHOSN_ENABLED),1)
392LOCAL_CFLAGS += \
393 -DARMNNETHOSN_ENABLED
394endif # ARMNN_ETHOSN_ENABLED == 1
395
Mike Kelly0e415132020-02-11 11:21:25 +0000396LOCAL_SRC_FILES := \
397 1.0/ArmnnDriverImpl.cpp \
398 1.0/HalPolicy.cpp \
399 1.1/ArmnnDriverImpl.cpp \
400 1.1/HalPolicy.cpp \
401 1.2/ArmnnDriverImpl.cpp \
402 1.2/HalPolicy.cpp \
403 ArmnnDevice.cpp \
404 ArmnnDriverImpl.cpp \
405 ArmnnPreparedModel.cpp \
406 ArmnnPreparedModel_1_2.cpp \
407 ConversionUtils.cpp \
408 DriverOptions.cpp \
409 ModelToINetworkConverter.cpp \
410 RequestThread.cpp \
411 Utils.cpp
412
413LOCAL_STATIC_LIBRARIES := \
414 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000415 libflatbuffers-framework \
Mike Kelly0e415132020-02-11 11:21:25 +0000416 arm_compute_library
417
418LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
419
420LOCAL_SHARED_LIBRARIES := \
421 libbase \
422 libhidlbase \
423 libhidltransport \
424 libhidlmemory \
425 liblog \
426 libutils \
427 libnativewindow \
428 libui \
429 libfmq \
430 libcutils \
431 android.hidl.allocator@1.0 \
432 android.hidl.memory@1.0 \
433 android.hardware.neuralnetworks@1.0 \
434 android.hardware.neuralnetworks@1.1 \
435 android.hardware.neuralnetworks@1.2
436
Kevin Mayec1e5b82020-02-26 17:00:39 +0000437ifeq ($(R_OR_LATER),1)
438LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100439 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000440 android.hardware.neuralnetworks@1.3
441endif # R or later
442
alered017c395b22020-04-03 15:37:24 +0100443ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000444LOCAL_SHARED_LIBRARIES+= \
445 libOpenCL
446endif
447
448include $(BUILD_STATIC_LIBRARY)
449
450endif # PLATFORM_VERSION == Q
451
Kevin May42477c12020-03-26 13:34:14 +0000452ifeq ($(R_OR_LATER),1)
453# The following target is available starting from Android R
454
455#######################
456# libarmnn-driver@1.3 #
457#######################
458include $(CLEAR_VARS)
459
460LOCAL_MODULE := libarmnn-driver@1.3
461LOCAL_MODULE_TAGS := optional
462LOCAL_ARM_MODE := arm
463LOCAL_PROPRIETARY_MODULE := true
464# Mark source files as dependent on Android.mk
465LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
466
467LOCAL_C_INCLUDES := \
468 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100469 $(ARMNN_THIRD_PARTY_PATH) \
Kevin May42477c12020-03-26 13:34:14 +0000470 $(ARMNN_UTILS_HEADER_PATH) \
Colm Donelan0cc61782020-10-06 21:02:21 +0100471 $(ARMNN_THIRD_PARTY_PATH) \
Kevin May42477c12020-03-26 13:34:14 +0000472 $(OPENCL_HEADER_PATH) \
473 $(NN_HEADER_PATH)
474
475LOCAL_CFLAGS := \
476 -std=$(CPP_VERSION) \
477 -fexceptions \
478 -Werror \
479 -Wno-format-security \
Kevin May42477c12020-03-26 13:34:14 +0000480 -DARMNN_ANDROID_NN_V1_3 \
481 -DARMNN_ANDROID_R
482
483ifeq ($(ARMNN_DRIVER_DEBUG),1)
484LOCAL_CFLAGS+= \
485 -UNDEBUG
486endif # ARMNN_DRIVER_DEBUG == 1
487
488ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
489LOCAL_CFLAGS += \
490 -DARMCOMPUTECL_ENABLED
491endif # ARMNN_COMPUTE_CL_ENABLED == 1
492
493ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
494LOCAL_CFLAGS += \
495 -DARMCOMPUTENEON_ENABLED
496endif # ARMNN_COMPUTE_NEON_ENABLED == 1
497
498ifeq ($(ARMNN_REF_ENABLED),1)
499LOCAL_CFLAGS += \
500 -DARMNNREF_ENABLED
501endif # ARMNN_REF_ENABLED == 1
502
FrancisMurtagh594b2832020-06-15 17:17:56 +0100503ifeq ($(ARMNN_ETHOSN_ENABLED),1)
504LOCAL_CFLAGS += \
505 -DARMNNETHOSN_ENABLED
506endif # ARMNN_ETHOSN_ENABLED == 1
507
Narumol Prangnawaratcad4e912020-06-02 12:07:43 +0100508LOCAL_CFLAGS += \
509 -DRETIRE_RATE=$(RETIRE_RATE)
510
Kevin May42477c12020-03-26 13:34:14 +0000511LOCAL_SRC_FILES := \
512 1.0/ArmnnDriverImpl.cpp \
513 1.0/HalPolicy.cpp \
514 1.1/ArmnnDriverImpl.cpp \
515 1.1/HalPolicy.cpp \
516 1.2/ArmnnDriverImpl.cpp \
517 1.2/HalPolicy.cpp \
518 1.3/ArmnnDriverImpl.cpp \
519 1.3/HalPolicy.cpp \
520 ArmnnDevice.cpp \
521 ArmnnDriverImpl.cpp \
522 ArmnnPreparedModel.cpp \
523 ArmnnPreparedModel_1_2.cpp \
524 ArmnnPreparedModel_1_3.cpp \
525 ConversionUtils.cpp \
526 DriverOptions.cpp \
527 ModelToINetworkConverter.cpp \
528 RequestThread.cpp \
Narumol Prangnawaratcad4e912020-06-02 12:07:43 +0100529 RequestThread_1_3.cpp \
Kevin May42477c12020-03-26 13:34:14 +0000530 Utils.cpp
531
532LOCAL_STATIC_LIBRARIES := \
533 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000534 libflatbuffers-framework \
Kevin May42477c12020-03-26 13:34:14 +0000535 arm_compute_library
536
537LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
538
539LOCAL_SHARED_LIBRARIES := \
540 libbase \
541 libhidlbase \
542 libhidltransport \
543 libhidlmemory \
544 liblog \
545 libutils \
546 libnativewindow \
547 libui \
548 libfmq \
549 libcutils \
550 android.hidl.allocator@1.0 \
551 android.hidl.memory@1.0 \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100552 libsync \
Kevin May42477c12020-03-26 13:34:14 +0000553 android.hardware.neuralnetworks@1.0 \
554 android.hardware.neuralnetworks@1.1 \
555 android.hardware.neuralnetworks@1.2 \
556 android.hardware.neuralnetworks@1.3
557
alered017c395b22020-04-03 15:37:24 +0100558ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Kevin May42477c12020-03-26 13:34:14 +0000559LOCAL_SHARED_LIBRARIES+= \
560 libOpenCL
561endif
562
563include $(BUILD_STATIC_LIBRARY)
564
565endif # PLATFORM_VERSION == R
566
Mike Kelly0e415132020-02-11 11:21:25 +0000567#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100568# android.hardware.neuralnetworks@1.0-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000569#####################################################
570include $(CLEAR_VARS)
571
Kevin Mayabc95d02020-05-15 15:34:03 +0100572LOCAL_MODULE := android.hardware.neuralnetworks@1.0-service-armnn
573LOCAL_INIT_RC := android.hardware.neuralnetworks@1.0-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000574ifeq ($(Q_OR_LATER),1)
575# "eng" is deprecated in Android Q
576LOCAL_MODULE_TAGS := optional
577else
578LOCAL_MODULE_TAGS := eng optional
579endif
580LOCAL_ARM_MODE := arm
581LOCAL_MODULE_RELATIVE_PATH := hw
582LOCAL_PROPRIETARY_MODULE := true
583# Mark source files as dependent on Android.mk
584LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
585
586LOCAL_C_INCLUDES := \
587 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100588 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000589 $(NN_HEADER_PATH)
590
591LOCAL_CFLAGS := \
592 -std=$(CPP_VERSION) \
593 -fexceptions
594
595ifeq ($(ARMNN_DRIVER_DEBUG),1)
596LOCAL_CFLAGS += \
597 -UNDEBUG
598endif # ARMNN_DRIVER_DEBUG == 1
599
Kevin Mayec1e5b82020-02-26 17:00:39 +0000600# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100601ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000602LOCAL_CFLAGS+= \
603 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100604endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000605
Mike Kelly0e415132020-02-11 11:21:25 +0000606LOCAL_SRC_FILES := \
607 service.cpp
608
609LOCAL_STATIC_LIBRARIES := \
610 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000611 libflatbuffers-framework \
Mike Kelly0e415132020-02-11 11:21:25 +0000612 arm_compute_library
613
614LOCAL_WHOLE_STATIC_LIBRARIES := \
615 libarmnn-driver@1.0
616
617LOCAL_SHARED_LIBRARIES := \
618 libbase \
619 libhidlbase \
620 libhidltransport \
621 libhidlmemory \
622 libdl \
623 libhardware \
624 liblog \
625 libtextclassifier_hash \
626 libutils \
627 android.hardware.neuralnetworks@1.0 \
628 android.hidl.allocator@1.0 \
629 android.hidl.memory@1.0
630
631ifeq ($(P_OR_LATER),1)
632# Required to build the 1.0 version of the NN Driver on Android P and later versions,
633# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
634LOCAL_SHARED_LIBRARIES+= \
635 android.hardware.neuralnetworks@1.1
636endif # PLATFORM_VERSION == 9
Kevin Mayec1e5b82020-02-26 17:00:39 +0000637
Mike Kelly0e415132020-02-11 11:21:25 +0000638ifeq ($(Q_OR_LATER),1)
639LOCAL_SHARED_LIBRARIES+= \
640 libnativewindow \
641 libui \
642 libfmq \
643 libcutils \
644 android.hardware.neuralnetworks@1.2
645endif # PLATFORM_VERSION == Q
646
Kevin Mayec1e5b82020-02-26 17:00:39 +0000647ifeq ($(R_OR_LATER),1)
648LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100649 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000650 android.hardware.neuralnetworks@1.3
651endif # R or later
652
alered017c395b22020-04-03 15:37:24 +0100653ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000654LOCAL_SHARED_LIBRARIES+= \
655 libOpenCL
656endif
657
658include $(BUILD_EXECUTABLE)
659
660ifeq ($(P_OR_LATER),1)
661# The following target is available starting from Android P
662
663#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100664# android.hardware.neuralnetworks@1.1-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000665#####################################################
666include $(CLEAR_VARS)
667
Kevin Mayabc95d02020-05-15 15:34:03 +0100668LOCAL_MODULE := android.hardware.neuralnetworks@1.1-service-armnn
669LOCAL_INIT_RC := android.hardware.neuralnetworks@1.1-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000670ifeq ($(Q_OR_LATER),1)
671# "eng" is deprecated in Android Q
672LOCAL_MODULE_TAGS := optional
673else
674LOCAL_MODULE_TAGS := eng optional
675endif
676LOCAL_ARM_MODE := arm
677LOCAL_MODULE_RELATIVE_PATH := hw
678LOCAL_PROPRIETARY_MODULE := true
679# Mark source files as dependent on Android.mk
680LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
681
682LOCAL_C_INCLUDES := \
683 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100684 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000685 $(NN_HEADER_PATH)
686
687LOCAL_CFLAGS := \
688 -std=$(CPP_VERSION) \
689 -fexceptions \
690 -DARMNN_ANDROID_NN_V1_1
691
692ifeq ($(ARMNN_DRIVER_DEBUG),1)
693LOCAL_CFLAGS += \
694 -UNDEBUG
695endif # ARMNN_DRIVER_DEBUG == 1
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
Kevin May157f8f42020-06-02 14:50:01 +0100698ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000699LOCAL_CFLAGS+= \
700 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100701endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000702
Mike Kelly0e415132020-02-11 11:21:25 +0000703LOCAL_SRC_FILES := \
704 service.cpp
705
706LOCAL_STATIC_LIBRARIES := \
707 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000708 libflatbuffers-framework \
Mike Kelly0e415132020-02-11 11:21:25 +0000709 arm_compute_library
710
711LOCAL_WHOLE_STATIC_LIBRARIES := \
712 libarmnn-driver@1.1
713
714LOCAL_SHARED_LIBRARIES := \
715 libbase \
716 libhidlbase \
717 libhidltransport \
718 libhidlmemory \
719 libdl \
720 libhardware \
721 liblog \
722 libtextclassifier_hash \
723 libutils \
724 android.hardware.neuralnetworks@1.0 \
725 android.hardware.neuralnetworks@1.1 \
726 android.hidl.allocator@1.0 \
727 android.hidl.memory@1.0
728
729ifeq ($(Q_OR_LATER),1)
730LOCAL_SHARED_LIBRARIES+= \
731 libnativewindow \
732 libui \
733 libfmq \
734 libcutils \
735 android.hardware.neuralnetworks@1.2
736endif # PLATFORM_VERSION == Q
737
Kevin Mayec1e5b82020-02-26 17:00:39 +0000738ifeq ($(R_OR_LATER),1)
739LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100740 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000741 android.hardware.neuralnetworks@1.3
742endif # PLATFORM_VERSION == R
743
alered017c395b22020-04-03 15:37:24 +0100744ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000745LOCAL_SHARED_LIBRARIES+= \
746 libOpenCL
747endif
748
749include $(BUILD_EXECUTABLE)
750
751endif # PLATFORM_VERSION == 9
752
753ifeq ($(Q_OR_LATER),1)
754# The following target is available starting from Android Q
755
756#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100757# android.hardware.neuralnetworks@1.2-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000758#####################################################
759include $(CLEAR_VARS)
760
Kevin Mayabc95d02020-05-15 15:34:03 +0100761LOCAL_MODULE := android.hardware.neuralnetworks@1.2-service-armnn
762LOCAL_INIT_RC := android.hardware.neuralnetworks@1.2-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000763LOCAL_MODULE_TAGS := optional
764LOCAL_ARM_MODE := arm
765LOCAL_MODULE_RELATIVE_PATH := hw
766LOCAL_PROPRIETARY_MODULE := true
767# Mark source files as dependent on Android.mk
768LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
769
770LOCAL_C_INCLUDES := \
771 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100772 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000773 $(NN_HEADER_PATH)
774
775LOCAL_CFLAGS := \
776 -std=$(CPP_VERSION) \
777 -fexceptions \
778 -DARMNN_ANDROID_NN_V1_2 \
Mike Kelly0e415132020-02-11 11:21:25 +0000779
780ifeq ($(ARMNN_DRIVER_DEBUG),1)
781LOCAL_CFLAGS += \
782 -UNDEBUG
783endif # ARMNN_DRIVER_DEBUG == 1
784
Kevin Mayec1e5b82020-02-26 17:00:39 +0000785# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100786ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000787LOCAL_CFLAGS+= \
788 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100789endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000790
Mike Kelly0e415132020-02-11 11:21:25 +0000791LOCAL_SRC_FILES := \
792 service.cpp
793
794LOCAL_STATIC_LIBRARIES := \
795 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000796 libflatbuffers-framework \
Mike Kelly0e415132020-02-11 11:21:25 +0000797 arm_compute_library
798
799LOCAL_WHOLE_STATIC_LIBRARIES := \
800 libarmnn-driver@1.2
801
802LOCAL_SHARED_LIBRARIES := \
803 libbase \
804 libhidlbase \
805 libhidltransport \
806 libhidlmemory \
807 libdl \
808 libhardware \
809 liblog \
810 libtextclassifier_hash \
811 libutils \
812 libnativewindow \
813 libui \
814 libfmq \
815 libcutils \
816 android.hidl.allocator@1.0 \
817 android.hidl.memory@1.0 \
818 android.hardware.neuralnetworks@1.0 \
819 android.hardware.neuralnetworks@1.1 \
820 android.hardware.neuralnetworks@1.2
821
Kevin Mayec1e5b82020-02-26 17:00:39 +0000822ifeq ($(R_OR_LATER),1)
823LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100824 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000825 android.hardware.neuralnetworks@1.3
826endif # R or later
827
alered017c395b22020-04-03 15:37:24 +0100828ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000829LOCAL_SHARED_LIBRARIES+= \
830 libOpenCL
831endif
832
833include $(BUILD_EXECUTABLE)
834
835endif # PLATFORM_VERSION == Q
836
Kevin May42477c12020-03-26 13:34:14 +0000837ifeq ($(R_OR_LATER),1)
838# The following target is available starting from Android R
839
840#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100841# android.hardware.neuralnetworks@1.3-service-armnn #
Kevin May42477c12020-03-26 13:34:14 +0000842#####################################################
843include $(CLEAR_VARS)
844
Kevin Mayabc95d02020-05-15 15:34:03 +0100845LOCAL_MODULE := android.hardware.neuralnetworks@1.3-service-armnn
846LOCAL_INIT_RC := android.hardware.neuralnetworks@1.3-service-armnn.rc
Kevin May42477c12020-03-26 13:34:14 +0000847LOCAL_MODULE_TAGS := optional
848LOCAL_ARM_MODE := arm
849LOCAL_MODULE_RELATIVE_PATH := hw
850LOCAL_PROPRIETARY_MODULE := true
851# Mark source files as dependent on Android.mk
852LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
853
854LOCAL_C_INCLUDES := \
855 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100856 $(ARMNN_THIRD_PARTY_PATH) \
Kevin May42477c12020-03-26 13:34:14 +0000857 $(NN_HEADER_PATH)
858
859LOCAL_CFLAGS := \
860 -std=$(CPP_VERSION) \
861 -fexceptions \
862 -DARMNN_ANDROID_NN_V1_3 \
Kevin May42477c12020-03-26 13:34:14 +0000863 -DARMNN_ANDROID_R
864
865ifeq ($(ARMNN_DRIVER_DEBUG),1)
866LOCAL_CFLAGS += \
867 -UNDEBUG
868endif # ARMNN_DRIVER_DEBUG == 1
869
870LOCAL_SRC_FILES := \
871 service.cpp
872
873LOCAL_STATIC_LIBRARIES := \
874 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000875 libflatbuffers-framework \
Kevin May42477c12020-03-26 13:34:14 +0000876 arm_compute_library
877
878LOCAL_WHOLE_STATIC_LIBRARIES := \
879 libarmnn-driver@1.3
880
881LOCAL_SHARED_LIBRARIES := \
882 libbase \
883 libhidlbase \
884 libhidltransport \
885 libhidlmemory \
886 libdl \
887 libhardware \
888 liblog \
889 libtextclassifier_hash \
890 libutils \
891 libnativewindow \
892 libui \
893 libfmq \
894 libcutils \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100895 libsync \
Kevin May42477c12020-03-26 13:34:14 +0000896 android.hidl.allocator@1.0 \
897 android.hidl.memory@1.0 \
898 android.hardware.neuralnetworks@1.0 \
899 android.hardware.neuralnetworks@1.1 \
900 android.hardware.neuralnetworks@1.2 \
901 android.hardware.neuralnetworks@1.3
902
alered017c395b22020-04-03 15:37:24 +0100903ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Kevin May42477c12020-03-26 13:34:14 +0000904LOCAL_SHARED_LIBRARIES+= \
905 libOpenCL
906endif
907
908include $(BUILD_EXECUTABLE)
909
910endif # PLATFORM_VERSION == R
911
Mike Kelly0e415132020-02-11 11:21:25 +0000912##########################
913# armnn module and tests #
914##########################
915# Note we use ANDROID_NN_DRIVER_LOCAL_PATH rather than LOCAL_PATH because LOCAL_PATH will be overwritten
916# when including other .mk files that set it.
917include $(ANDROID_NN_DRIVER_LOCAL_PATH)/armnn/Android.mk
918include $(ANDROID_NN_DRIVER_LOCAL_PATH)/test/Android.mk