blob: ce3582fc15da8419e36719399b1dde61ee4d322f [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
132ifeq ($(Q_OR_LATER),1)
133LOCAL_CFLAGS += \
134 -DBOOST_NO_AUTO_PTR
135endif # PLATFORM_VERSION == Q or later
136
137ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
138LOCAL_CFLAGS += \
139 -DARMCOMPUTECL_ENABLED
140endif # ARMNN_COMPUTE_CL_ENABLED == 1
141
142ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
143LOCAL_CFLAGS += \
144 -DARMCOMPUTENEON_ENABLED
145endif # ARMNN_COMPUTE_NEON_ENABLED == 1
146
147ifeq ($(ARMNN_REF_ENABLED),1)
148LOCAL_CFLAGS += \
149 -DARMNNREF_ENABLED
150endif # ARMNN_REF_ENABLED == 1
151
FrancisMurtagh594b2832020-06-15 17:17:56 +0100152ifeq ($(ARMNN_ETHOSN_ENABLED),1)
153LOCAL_CFLAGS += \
154 -DARMNNETHOSN_ENABLED
155endif # ARMNN_ETHOSN_ENABLED == 1
156
Mike Kelly0e415132020-02-11 11:21:25 +0000157LOCAL_SRC_FILES := \
158 1.0/ArmnnDriverImpl.cpp \
159 1.0/HalPolicy.cpp \
160 ArmnnDriverImpl.cpp \
161 DriverOptions.cpp \
162 ArmnnDevice.cpp \
163 ArmnnPreparedModel.cpp \
164 ModelToINetworkConverter.cpp \
165 RequestThread.cpp \
166 Utils.cpp \
167 ConversionUtils.cpp
168
169LOCAL_STATIC_LIBRARIES := \
170 libneuralnetworks_common \
171 libboost_log \
172 libboost_program_options \
173 libboost_system \
174 libboost_thread \
175 libboost_filesystem \
176 arm_compute_library
177
178LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
179
180LOCAL_SHARED_LIBRARIES := \
181 libbase \
182 libhidlbase \
183 libhidltransport \
184 libhidlmemory \
185 liblog \
186 libutils \
187 android.hardware.neuralnetworks@1.0 \
188 android.hidl.allocator@1.0 \
189 android.hidl.memory@1.0
190
191ifeq ($(P_OR_LATER),1)
192# Required to build the 1.0 version of the NN Driver on Android P and later versions,
193# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
194LOCAL_SHARED_LIBRARIES+= \
195 android.hardware.neuralnetworks@1.1
196endif # PLATFORM_VERSION == 9
197
198ifeq ($(Q_OR_LATER),1)
199LOCAL_SHARED_LIBRARIES+= \
200 libnativewindow \
201 libui \
202 libfmq \
203 libcutils \
204 android.hardware.neuralnetworks@1.2
Kevin Mayec1e5b82020-02-26 17:00:39 +0000205endif # Q or later
206
207ifeq ($(R_OR_LATER),1)
208LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100209 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000210 android.hardware.neuralnetworks@1.3
211endif # R or later
Mike Kelly0e415132020-02-11 11:21:25 +0000212
alered01dbae2472020-04-07 12:31:10 +0100213ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000214LOCAL_SHARED_LIBRARIES+= \
215 libOpenCL
216endif
217
218include $(BUILD_STATIC_LIBRARY)
219
220ifeq ($(P_OR_LATER),1)
221# The following target is available starting from Android P
222
223#######################
224# libarmnn-driver@1.1 #
225#######################
226include $(CLEAR_VARS)
227
228LOCAL_MODULE := libarmnn-driver@1.1
229ifeq ($(Q_OR_LATER),1)
230# "eng" is deprecated in Android Q
231LOCAL_MODULE_TAGS := optional
232else
233LOCAL_MODULE_TAGS := eng optional
234endif
235#PRODUCT_PACKAGES_ENG := libarmnn-driver@1.1
236LOCAL_ARM_MODE := arm
237LOCAL_PROPRIETARY_MODULE := true
238# Mark source files as dependent on Android.mk
239LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
240
241LOCAL_C_INCLUDES := \
242 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100243 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000244 $(ARMNN_UTILS_HEADER_PATH) \
Colm Donelan0cc61782020-10-06 21:02:21 +0100245 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000246 $(OPENCL_HEADER_PATH) \
247 $(NN_HEADER_PATH)
248
249LOCAL_CFLAGS := \
250 -std=$(CPP_VERSION) \
251 -fexceptions \
252 -Werror \
253 -Wno-format-security \
Mike Kelly0e415132020-02-11 11:21:25 +0000254 -DARMNN_ANDROID_NN_V1_1
255
256ifeq ($(ARMNN_DRIVER_DEBUG),1)
257LOCAL_CFLAGS+= \
258 -UNDEBUG
259endif # ARMNN_DRIVER_DEBUG == 1
260
261ifeq ($(Q_OR_LATER),1)
262LOCAL_CFLAGS += \
263 -DBOOST_NO_AUTO_PTR
264endif # PLATFORM_VERSION == Q or later
265
Kevin Mayec1e5b82020-02-26 17:00:39 +0000266# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100267ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000268LOCAL_CFLAGS+= \
269 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100270endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000271
Mike Kelly0e415132020-02-11 11:21:25 +0000272ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
273LOCAL_CFLAGS += \
274 -DARMCOMPUTECL_ENABLED
275endif # ARMNN_COMPUTE_CL_ENABLED == 1
276
277ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
278LOCAL_CFLAGS += \
279 -DARMCOMPUTENEON_ENABLED
280endif # ARMNN_COMPUTE_NEON_ENABLED == 1
281
282ifeq ($(ARMNN_REF_ENABLED),1)
283LOCAL_CFLAGS += \
284 -DARMNNREF_ENABLED
285endif # ARMNN_REF_ENABLED == 1
286
FrancisMurtagh594b2832020-06-15 17:17:56 +0100287ifeq ($(ARMNN_ETHOSN_ENABLED),1)
288LOCAL_CFLAGS += \
289 -DARMNNETHOSN_ENABLED
290endif # ARMNN_ETHOSN_ENABLED == 1
291
Mike Kelly0e415132020-02-11 11:21:25 +0000292LOCAL_SRC_FILES := \
293 1.0/ArmnnDriverImpl.cpp \
294 1.0/HalPolicy.cpp \
295 1.1/ArmnnDriverImpl.cpp \
296 1.1/HalPolicy.cpp \
297 ArmnnDriverImpl.cpp \
298 DriverOptions.cpp \
299 ArmnnDevice.cpp \
300 ArmnnPreparedModel.cpp \
301 ModelToINetworkConverter.cpp \
302 RequestThread.cpp \
303 Utils.cpp \
304 ConversionUtils.cpp
305
306LOCAL_STATIC_LIBRARIES := \
307 libneuralnetworks_common \
308 libboost_log \
309 libboost_program_options \
310 libboost_system \
311 libboost_thread \
312 libboost_filesystem \
313 arm_compute_library
314
315LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
316
317LOCAL_SHARED_LIBRARIES := \
318 libbase \
319 libhidlbase \
320 libhidltransport \
321 libhidlmemory \
322 liblog \
323 libutils \
324 android.hardware.neuralnetworks@1.0 \
325 android.hardware.neuralnetworks@1.1 \
326 android.hidl.allocator@1.0 \
327 android.hidl.memory@1.0
328
329ifeq ($(Q_OR_LATER),1)
330LOCAL_SHARED_LIBRARIES+= \
331 libnativewindow \
332 libui \
333 libfmq \
334 libcutils \
335 android.hardware.neuralnetworks@1.2
336endif # PLATFORM_VERSION == Q
337
Kevin Mayec1e5b82020-02-26 17:00:39 +0000338ifeq ($(R_OR_LATER),1)
339LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100340 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000341 android.hardware.neuralnetworks@1.3
342endif # R or later
343
alered017c395b22020-04-03 15:37:24 +0100344ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000345LOCAL_SHARED_LIBRARIES+= \
346 libOpenCL
347endif
348
349include $(BUILD_STATIC_LIBRARY)
350
351endif # PLATFORM_VERSION == 9
352
353ifeq ($(Q_OR_LATER),1)
354# The following target is available starting from Android Q
355
356#######################
357# libarmnn-driver@1.2 #
358#######################
359include $(CLEAR_VARS)
360
361LOCAL_MODULE := libarmnn-driver@1.2
362LOCAL_MODULE_TAGS := optional
363LOCAL_ARM_MODE := arm
364LOCAL_PROPRIETARY_MODULE := true
365# Mark source files as dependent on Android.mk
366LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
367
368LOCAL_C_INCLUDES := \
369 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100370 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000371 $(ARMNN_UTILS_HEADER_PATH) \
Colm Donelan0cc61782020-10-06 21:02:21 +0100372 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000373 $(OPENCL_HEADER_PATH) \
374 $(NN_HEADER_PATH)
375
376LOCAL_CFLAGS := \
377 -std=$(CPP_VERSION) \
378 -fexceptions \
379 -Werror \
380 -Wno-format-security \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000381 -DBOOST_NO_AUTO_PTR \
Mike Kelly0e415132020-02-11 11:21:25 +0000382 -DARMNN_ANDROID_NN_V1_2
383
384ifeq ($(ARMNN_DRIVER_DEBUG),1)
385LOCAL_CFLAGS+= \
386 -UNDEBUG
387endif # ARMNN_DRIVER_DEBUG == 1
388
Kevin Mayec1e5b82020-02-26 17:00:39 +0000389# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100390ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000391LOCAL_CFLAGS+= \
392 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100393endif
Mike Kelly0e415132020-02-11 11:21:25 +0000394
395ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
396LOCAL_CFLAGS += \
397 -DARMCOMPUTECL_ENABLED
398endif # ARMNN_COMPUTE_CL_ENABLED == 1
399
400ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
401LOCAL_CFLAGS += \
402 -DARMCOMPUTENEON_ENABLED
403endif # ARMNN_COMPUTE_NEON_ENABLED == 1
404
405ifeq ($(ARMNN_REF_ENABLED),1)
406LOCAL_CFLAGS += \
407 -DARMNNREF_ENABLED
408endif # ARMNN_REF_ENABLED == 1
409
FrancisMurtagh594b2832020-06-15 17:17:56 +0100410ifeq ($(ARMNN_ETHOSN_ENABLED),1)
411LOCAL_CFLAGS += \
412 -DARMNNETHOSN_ENABLED
413endif # ARMNN_ETHOSN_ENABLED == 1
414
Mike Kelly0e415132020-02-11 11:21:25 +0000415LOCAL_SRC_FILES := \
416 1.0/ArmnnDriverImpl.cpp \
417 1.0/HalPolicy.cpp \
418 1.1/ArmnnDriverImpl.cpp \
419 1.1/HalPolicy.cpp \
420 1.2/ArmnnDriverImpl.cpp \
421 1.2/HalPolicy.cpp \
422 ArmnnDevice.cpp \
423 ArmnnDriverImpl.cpp \
424 ArmnnPreparedModel.cpp \
425 ArmnnPreparedModel_1_2.cpp \
426 ConversionUtils.cpp \
427 DriverOptions.cpp \
428 ModelToINetworkConverter.cpp \
429 RequestThread.cpp \
430 Utils.cpp
431
432LOCAL_STATIC_LIBRARIES := \
433 libneuralnetworks_common \
434 libboost_log \
435 libboost_program_options \
436 libboost_system \
437 libboost_thread \
438 libboost_filesystem \
439 arm_compute_library
440
441LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
442
443LOCAL_SHARED_LIBRARIES := \
444 libbase \
445 libhidlbase \
446 libhidltransport \
447 libhidlmemory \
448 liblog \
449 libutils \
450 libnativewindow \
451 libui \
452 libfmq \
453 libcutils \
454 android.hidl.allocator@1.0 \
455 android.hidl.memory@1.0 \
456 android.hardware.neuralnetworks@1.0 \
457 android.hardware.neuralnetworks@1.1 \
458 android.hardware.neuralnetworks@1.2
459
Kevin Mayec1e5b82020-02-26 17:00:39 +0000460ifeq ($(R_OR_LATER),1)
461LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100462 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000463 android.hardware.neuralnetworks@1.3
464endif # R or later
465
alered017c395b22020-04-03 15:37:24 +0100466ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000467LOCAL_SHARED_LIBRARIES+= \
468 libOpenCL
469endif
470
471include $(BUILD_STATIC_LIBRARY)
472
473endif # PLATFORM_VERSION == Q
474
Kevin May42477c12020-03-26 13:34:14 +0000475ifeq ($(R_OR_LATER),1)
476# The following target is available starting from Android R
477
478#######################
479# libarmnn-driver@1.3 #
480#######################
481include $(CLEAR_VARS)
482
483LOCAL_MODULE := libarmnn-driver@1.3
484LOCAL_MODULE_TAGS := optional
485LOCAL_ARM_MODE := arm
486LOCAL_PROPRIETARY_MODULE := true
487# Mark source files as dependent on Android.mk
488LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
489
490LOCAL_C_INCLUDES := \
491 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100492 $(ARMNN_THIRD_PARTY_PATH) \
Kevin May42477c12020-03-26 13:34:14 +0000493 $(ARMNN_UTILS_HEADER_PATH) \
Colm Donelan0cc61782020-10-06 21:02:21 +0100494 $(ARMNN_THIRD_PARTY_PATH) \
Kevin May42477c12020-03-26 13:34:14 +0000495 $(OPENCL_HEADER_PATH) \
496 $(NN_HEADER_PATH)
497
498LOCAL_CFLAGS := \
499 -std=$(CPP_VERSION) \
500 -fexceptions \
501 -Werror \
502 -Wno-format-security \
503 -DBOOST_NO_AUTO_PTR \
504 -DARMNN_ANDROID_NN_V1_3 \
505 -DARMNN_ANDROID_R
506
507ifeq ($(ARMNN_DRIVER_DEBUG),1)
508LOCAL_CFLAGS+= \
509 -UNDEBUG
510endif # ARMNN_DRIVER_DEBUG == 1
511
512ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
513LOCAL_CFLAGS += \
514 -DARMCOMPUTECL_ENABLED
515endif # ARMNN_COMPUTE_CL_ENABLED == 1
516
517ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
518LOCAL_CFLAGS += \
519 -DARMCOMPUTENEON_ENABLED
520endif # ARMNN_COMPUTE_NEON_ENABLED == 1
521
522ifeq ($(ARMNN_REF_ENABLED),1)
523LOCAL_CFLAGS += \
524 -DARMNNREF_ENABLED
525endif # ARMNN_REF_ENABLED == 1
526
FrancisMurtagh594b2832020-06-15 17:17:56 +0100527ifeq ($(ARMNN_ETHOSN_ENABLED),1)
528LOCAL_CFLAGS += \
529 -DARMNNETHOSN_ENABLED
530endif # ARMNN_ETHOSN_ENABLED == 1
531
Narumol Prangnawaratcad4e912020-06-02 12:07:43 +0100532LOCAL_CFLAGS += \
533 -DRETIRE_RATE=$(RETIRE_RATE)
534
Kevin May42477c12020-03-26 13:34:14 +0000535LOCAL_SRC_FILES := \
536 1.0/ArmnnDriverImpl.cpp \
537 1.0/HalPolicy.cpp \
538 1.1/ArmnnDriverImpl.cpp \
539 1.1/HalPolicy.cpp \
540 1.2/ArmnnDriverImpl.cpp \
541 1.2/HalPolicy.cpp \
542 1.3/ArmnnDriverImpl.cpp \
543 1.3/HalPolicy.cpp \
544 ArmnnDevice.cpp \
545 ArmnnDriverImpl.cpp \
546 ArmnnPreparedModel.cpp \
547 ArmnnPreparedModel_1_2.cpp \
548 ArmnnPreparedModel_1_3.cpp \
549 ConversionUtils.cpp \
550 DriverOptions.cpp \
551 ModelToINetworkConverter.cpp \
552 RequestThread.cpp \
Narumol Prangnawaratcad4e912020-06-02 12:07:43 +0100553 RequestThread_1_3.cpp \
Kevin May42477c12020-03-26 13:34:14 +0000554 Utils.cpp
555
556LOCAL_STATIC_LIBRARIES := \
557 libneuralnetworks_common \
558 libboost_log \
559 libboost_program_options \
560 libboost_system \
561 libboost_thread \
562 libboost_filesystem \
563 arm_compute_library
564
565LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
566
567LOCAL_SHARED_LIBRARIES := \
568 libbase \
569 libhidlbase \
570 libhidltransport \
571 libhidlmemory \
572 liblog \
573 libutils \
574 libnativewindow \
575 libui \
576 libfmq \
577 libcutils \
578 android.hidl.allocator@1.0 \
579 android.hidl.memory@1.0 \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100580 libsync \
Kevin May42477c12020-03-26 13:34:14 +0000581 android.hardware.neuralnetworks@1.0 \
582 android.hardware.neuralnetworks@1.1 \
583 android.hardware.neuralnetworks@1.2 \
584 android.hardware.neuralnetworks@1.3
585
alered017c395b22020-04-03 15:37:24 +0100586ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Kevin May42477c12020-03-26 13:34:14 +0000587LOCAL_SHARED_LIBRARIES+= \
588 libOpenCL
589endif
590
591include $(BUILD_STATIC_LIBRARY)
592
593endif # PLATFORM_VERSION == R
594
Mike Kelly0e415132020-02-11 11:21:25 +0000595#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100596# android.hardware.neuralnetworks@1.0-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000597#####################################################
598include $(CLEAR_VARS)
599
Kevin Mayabc95d02020-05-15 15:34:03 +0100600LOCAL_MODULE := android.hardware.neuralnetworks@1.0-service-armnn
601LOCAL_INIT_RC := android.hardware.neuralnetworks@1.0-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000602ifeq ($(Q_OR_LATER),1)
603# "eng" is deprecated in Android Q
604LOCAL_MODULE_TAGS := optional
605else
606LOCAL_MODULE_TAGS := eng optional
607endif
608LOCAL_ARM_MODE := arm
609LOCAL_MODULE_RELATIVE_PATH := hw
610LOCAL_PROPRIETARY_MODULE := true
611# Mark source files as dependent on Android.mk
612LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
613
614LOCAL_C_INCLUDES := \
615 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100616 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000617 $(NN_HEADER_PATH)
618
619LOCAL_CFLAGS := \
620 -std=$(CPP_VERSION) \
621 -fexceptions
622
623ifeq ($(ARMNN_DRIVER_DEBUG),1)
624LOCAL_CFLAGS += \
625 -UNDEBUG
626endif # ARMNN_DRIVER_DEBUG == 1
627
628ifeq ($(Q_OR_LATER),1)
629LOCAL_CFLAGS += \
630 -DBOOST_NO_AUTO_PTR
631endif # PLATFORM_VERSION == Q or later
632
Kevin Mayec1e5b82020-02-26 17:00:39 +0000633# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100634ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000635LOCAL_CFLAGS+= \
636 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100637endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000638
Mike Kelly0e415132020-02-11 11:21:25 +0000639LOCAL_SRC_FILES := \
640 service.cpp
641
642LOCAL_STATIC_LIBRARIES := \
643 libneuralnetworks_common \
644 libboost_log \
645 libboost_program_options \
646 libboost_system \
647 libboost_thread \
648 libboost_filesystem \
649 arm_compute_library
650
651LOCAL_WHOLE_STATIC_LIBRARIES := \
652 libarmnn-driver@1.0
653
654LOCAL_SHARED_LIBRARIES := \
655 libbase \
656 libhidlbase \
657 libhidltransport \
658 libhidlmemory \
659 libdl \
660 libhardware \
661 liblog \
662 libtextclassifier_hash \
663 libutils \
664 android.hardware.neuralnetworks@1.0 \
665 android.hidl.allocator@1.0 \
666 android.hidl.memory@1.0
667
668ifeq ($(P_OR_LATER),1)
669# Required to build the 1.0 version of the NN Driver on Android P and later versions,
670# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
671LOCAL_SHARED_LIBRARIES+= \
672 android.hardware.neuralnetworks@1.1
673endif # PLATFORM_VERSION == 9
Kevin Mayec1e5b82020-02-26 17:00:39 +0000674
Mike Kelly0e415132020-02-11 11:21:25 +0000675ifeq ($(Q_OR_LATER),1)
676LOCAL_SHARED_LIBRARIES+= \
677 libnativewindow \
678 libui \
679 libfmq \
680 libcutils \
681 android.hardware.neuralnetworks@1.2
682endif # PLATFORM_VERSION == Q
683
Kevin Mayec1e5b82020-02-26 17:00:39 +0000684ifeq ($(R_OR_LATER),1)
685LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100686 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000687 android.hardware.neuralnetworks@1.3
688endif # R or later
689
alered017c395b22020-04-03 15:37:24 +0100690ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000691LOCAL_SHARED_LIBRARIES+= \
692 libOpenCL
693endif
694
695include $(BUILD_EXECUTABLE)
696
697ifeq ($(P_OR_LATER),1)
698# The following target is available starting from Android P
699
700#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100701# android.hardware.neuralnetworks@1.1-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000702#####################################################
703include $(CLEAR_VARS)
704
Kevin Mayabc95d02020-05-15 15:34:03 +0100705LOCAL_MODULE := android.hardware.neuralnetworks@1.1-service-armnn
706LOCAL_INIT_RC := android.hardware.neuralnetworks@1.1-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000707ifeq ($(Q_OR_LATER),1)
708# "eng" is deprecated in Android Q
709LOCAL_MODULE_TAGS := optional
710else
711LOCAL_MODULE_TAGS := eng optional
712endif
713LOCAL_ARM_MODE := arm
714LOCAL_MODULE_RELATIVE_PATH := hw
715LOCAL_PROPRIETARY_MODULE := true
716# Mark source files as dependent on Android.mk
717LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
718
719LOCAL_C_INCLUDES := \
720 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100721 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000722 $(NN_HEADER_PATH)
723
724LOCAL_CFLAGS := \
725 -std=$(CPP_VERSION) \
726 -fexceptions \
727 -DARMNN_ANDROID_NN_V1_1
728
729ifeq ($(ARMNN_DRIVER_DEBUG),1)
730LOCAL_CFLAGS += \
731 -UNDEBUG
732endif # ARMNN_DRIVER_DEBUG == 1
733
734ifeq ($(Q_OR_LATER),1)
735LOCAL_CFLAGS += \
736 -DBOOST_NO_AUTO_PTR
737endif # PLATFORM_VERSION == Q or later
738
Kevin Mayec1e5b82020-02-26 17:00:39 +0000739# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100740ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000741LOCAL_CFLAGS+= \
742 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100743endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000744
Mike Kelly0e415132020-02-11 11:21:25 +0000745LOCAL_SRC_FILES := \
746 service.cpp
747
748LOCAL_STATIC_LIBRARIES := \
749 libneuralnetworks_common \
750 libboost_log \
751 libboost_program_options \
752 libboost_system \
753 libboost_thread \
754 libboost_filesystem \
755 arm_compute_library
756
757LOCAL_WHOLE_STATIC_LIBRARIES := \
758 libarmnn-driver@1.1
759
760LOCAL_SHARED_LIBRARIES := \
761 libbase \
762 libhidlbase \
763 libhidltransport \
764 libhidlmemory \
765 libdl \
766 libhardware \
767 liblog \
768 libtextclassifier_hash \
769 libutils \
770 android.hardware.neuralnetworks@1.0 \
771 android.hardware.neuralnetworks@1.1 \
772 android.hidl.allocator@1.0 \
773 android.hidl.memory@1.0
774
775ifeq ($(Q_OR_LATER),1)
776LOCAL_SHARED_LIBRARIES+= \
777 libnativewindow \
778 libui \
779 libfmq \
780 libcutils \
781 android.hardware.neuralnetworks@1.2
782endif # PLATFORM_VERSION == Q
783
Kevin Mayec1e5b82020-02-26 17:00:39 +0000784ifeq ($(R_OR_LATER),1)
785LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100786 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000787 android.hardware.neuralnetworks@1.3
788endif # PLATFORM_VERSION == R
789
alered017c395b22020-04-03 15:37:24 +0100790ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000791LOCAL_SHARED_LIBRARIES+= \
792 libOpenCL
793endif
794
795include $(BUILD_EXECUTABLE)
796
797endif # PLATFORM_VERSION == 9
798
799ifeq ($(Q_OR_LATER),1)
800# The following target is available starting from Android Q
801
802#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100803# android.hardware.neuralnetworks@1.2-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000804#####################################################
805include $(CLEAR_VARS)
806
Kevin Mayabc95d02020-05-15 15:34:03 +0100807LOCAL_MODULE := android.hardware.neuralnetworks@1.2-service-armnn
808LOCAL_INIT_RC := android.hardware.neuralnetworks@1.2-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000809LOCAL_MODULE_TAGS := optional
810LOCAL_ARM_MODE := arm
811LOCAL_MODULE_RELATIVE_PATH := hw
812LOCAL_PROPRIETARY_MODULE := true
813# Mark source files as dependent on Android.mk
814LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
815
816LOCAL_C_INCLUDES := \
817 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100818 $(ARMNN_THIRD_PARTY_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000819 $(NN_HEADER_PATH)
820
821LOCAL_CFLAGS := \
822 -std=$(CPP_VERSION) \
823 -fexceptions \
824 -DARMNN_ANDROID_NN_V1_2 \
825 -DBOOST_NO_AUTO_PTR
826
827ifeq ($(ARMNN_DRIVER_DEBUG),1)
828LOCAL_CFLAGS += \
829 -UNDEBUG
830endif # ARMNN_DRIVER_DEBUG == 1
831
Kevin Mayec1e5b82020-02-26 17:00:39 +0000832# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100833ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000834LOCAL_CFLAGS+= \
835 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100836endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000837
Mike Kelly0e415132020-02-11 11:21:25 +0000838LOCAL_SRC_FILES := \
839 service.cpp
840
841LOCAL_STATIC_LIBRARIES := \
842 libneuralnetworks_common \
843 libboost_log \
844 libboost_program_options \
845 libboost_system \
846 libboost_thread \
847 libboost_filesystem \
848 arm_compute_library
849
850LOCAL_WHOLE_STATIC_LIBRARIES := \
851 libarmnn-driver@1.2
852
853LOCAL_SHARED_LIBRARIES := \
854 libbase \
855 libhidlbase \
856 libhidltransport \
857 libhidlmemory \
858 libdl \
859 libhardware \
860 liblog \
861 libtextclassifier_hash \
862 libutils \
863 libnativewindow \
864 libui \
865 libfmq \
866 libcutils \
867 android.hidl.allocator@1.0 \
868 android.hidl.memory@1.0 \
869 android.hardware.neuralnetworks@1.0 \
870 android.hardware.neuralnetworks@1.1 \
871 android.hardware.neuralnetworks@1.2
872
Kevin Mayec1e5b82020-02-26 17:00:39 +0000873ifeq ($(R_OR_LATER),1)
874LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100875 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000876 android.hardware.neuralnetworks@1.3
877endif # R or later
878
alered017c395b22020-04-03 15:37:24 +0100879ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000880LOCAL_SHARED_LIBRARIES+= \
881 libOpenCL
882endif
883
884include $(BUILD_EXECUTABLE)
885
886endif # PLATFORM_VERSION == Q
887
Kevin May42477c12020-03-26 13:34:14 +0000888ifeq ($(R_OR_LATER),1)
889# The following target is available starting from Android R
890
891#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100892# android.hardware.neuralnetworks@1.3-service-armnn #
Kevin May42477c12020-03-26 13:34:14 +0000893#####################################################
894include $(CLEAR_VARS)
895
Kevin Mayabc95d02020-05-15 15:34:03 +0100896LOCAL_MODULE := android.hardware.neuralnetworks@1.3-service-armnn
897LOCAL_INIT_RC := android.hardware.neuralnetworks@1.3-service-armnn.rc
Kevin May42477c12020-03-26 13:34:14 +0000898LOCAL_MODULE_TAGS := optional
899LOCAL_ARM_MODE := arm
900LOCAL_MODULE_RELATIVE_PATH := hw
901LOCAL_PROPRIETARY_MODULE := true
902# Mark source files as dependent on Android.mk
903LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
904
905LOCAL_C_INCLUDES := \
906 $(ARMNN_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100907 $(ARMNN_THIRD_PARTY_PATH) \
Kevin May42477c12020-03-26 13:34:14 +0000908 $(NN_HEADER_PATH)
909
910LOCAL_CFLAGS := \
911 -std=$(CPP_VERSION) \
912 -fexceptions \
913 -DARMNN_ANDROID_NN_V1_3 \
914 -DBOOST_NO_AUTO_PTR \
915 -DARMNN_ANDROID_R
916
917ifeq ($(ARMNN_DRIVER_DEBUG),1)
918LOCAL_CFLAGS += \
919 -UNDEBUG
920endif # ARMNN_DRIVER_DEBUG == 1
921
922LOCAL_SRC_FILES := \
923 service.cpp
924
925LOCAL_STATIC_LIBRARIES := \
926 libneuralnetworks_common \
927 libboost_log \
928 libboost_program_options \
929 libboost_system \
930 libboost_thread \
931 libboost_filesystem \
932 arm_compute_library
933
934LOCAL_WHOLE_STATIC_LIBRARIES := \
935 libarmnn-driver@1.3
936
937LOCAL_SHARED_LIBRARIES := \
938 libbase \
939 libhidlbase \
940 libhidltransport \
941 libhidlmemory \
942 libdl \
943 libhardware \
944 liblog \
945 libtextclassifier_hash \
946 libutils \
947 libnativewindow \
948 libui \
949 libfmq \
950 libcutils \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100951 libsync \
Kevin May42477c12020-03-26 13:34:14 +0000952 android.hidl.allocator@1.0 \
953 android.hidl.memory@1.0 \
954 android.hardware.neuralnetworks@1.0 \
955 android.hardware.neuralnetworks@1.1 \
956 android.hardware.neuralnetworks@1.2 \
957 android.hardware.neuralnetworks@1.3
958
alered017c395b22020-04-03 15:37:24 +0100959ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Kevin May42477c12020-03-26 13:34:14 +0000960LOCAL_SHARED_LIBRARIES+= \
961 libOpenCL
962endif
963
964include $(BUILD_EXECUTABLE)
965
966endif # PLATFORM_VERSION == R
967
Mike Kelly0e415132020-02-11 11:21:25 +0000968##########################
969# armnn module and tests #
970##########################
971# Note we use ANDROID_NN_DRIVER_LOCAL_PATH rather than LOCAL_PATH because LOCAL_PATH will be overwritten
972# when including other .mk files that set it.
973include $(ANDROID_NN_DRIVER_LOCAL_PATH)/armnn/Android.mk
974include $(ANDROID_NN_DRIVER_LOCAL_PATH)/test/Android.mk