blob: 0fdc94958eaf9feaa441a04efe5fd751e7b4f876 [file] [log] [blame]
Mike Kelly0e415132020-02-11 11:21:25 +00001#
Kevin Mayb8fed7d2022-07-06 14:11:45 +01002# Copyright © 2022 ARM Ltd. and Contributors. All rights reserved.
Mike Kelly0e415132020-02-11 11:21:25 +00003# 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
Sadik Armagan188675f2021-02-12 17:16:42 +000012S_OR_LATER := 0
Kevin May157f8f42020-06-02 14:50:01 +010013ANDROID_R := 0
Sadik Armagan188675f2021-02-12 17:16:42 +000014ANDROID_S := 0
Mike Kelly0e415132020-02-11 11:21:25 +000015
16ifeq ($(PLATFORM_VERSION),9)
17P_OR_LATER := 1
18endif # PLATFORM_VERSION == 9
19ifeq ($(PLATFORM_VERSION),P)
20P_OR_LATER := 1
21endif # PLATFORM_VERSION == P
22
23ifeq ($(PLATFORM_VERSION),10)
24P_OR_LATER := 1
25Q_OR_LATER := 1
26endif # PLATFORM_VERSION == 10
27ifeq ($(PLATFORM_VERSION),Q)
28P_OR_LATER := 1
29Q_OR_LATER := 1
30endif # PLATFORM_VERSION == Q
31
Kevin Mayec1e5b82020-02-26 17:00:39 +000032ifeq ($(PLATFORM_VERSION),R)
33P_OR_LATER := 1
34Q_OR_LATER := 1
35R_OR_LATER := 1
Kevin May157f8f42020-06-02 14:50:01 +010036ANDROID_R := 1
Kevin Mayec1e5b82020-02-26 17:00:39 +000037endif # PLATFORM_VERSION == R
38
Kevin May157f8f42020-06-02 14:50:01 +010039ifeq ($(PLATFORM_VERSION),11)
40P_OR_LATER := 1
41Q_OR_LATER := 1
42R_OR_LATER := 1
43ANDROID_R := 1
44endif # PLATFORM_VERSION == 11
45
Sadik Armagan188675f2021-02-12 17:16:42 +000046ifeq ($(PLATFORM_VERSION),S)
47P_OR_LATER := 1
48Q_OR_LATER := 1
49R_OR_LATER := 1
50S_OR_LATER := 1
51ANDROID_R := 0
52ANDROID_S := 1
53endif # PLATFORM_VERSION == S
54
55ifeq ($(PLATFORM_VERSION),12)
56P_OR_LATER := 1
57Q_OR_LATER := 1
58R_OR_LATER := 1
59S_OR_LATER := 1
60ANDROID_R := 0
61ANDROID_S := 1
62endif # PLATFORM_VERSION == 12
63
Kevin Mayb8fed7d2022-07-06 14:11:45 +010064ifeq ($(PLATFORM_VERSION),T)
65P_OR_LATER := 1
66Q_OR_LATER := 1
67R_OR_LATER := 1
68S_OR_LATER := 1
69ANDROID_R := 0
70ANDROID_S := 1
71endif # PLATFORM_VERSION == S
72
73ifeq ($(PLATFORM_VERSION),13)
74P_OR_LATER := 1
75Q_OR_LATER := 1
76R_OR_LATER := 1
77S_OR_LATER := 1
78ANDROID_R := 0
79ANDROID_S := 1
80endif # PLATFORM_VERSION == 13
81
Mike Kelly0e415132020-02-11 11:21:25 +000082CPP_VERSION := c++14
83
84ifeq ($(Q_OR_LATER),1)
85CPP_VERSION := c++17
86endif
87
88# Configure these paths if you move the source or Khronos headers
Mike Kellya3ba4be2022-05-20 17:18:50 +010089ARMNN_GENERATED_HEADER_PATH := $(LOCAL_PATH)/armnn/generated
Jim Flynn06a4a8b2022-03-23 15:58:46 +000090ARMNN_PROFILING_HEADER_PATH := $(LOCAL_PATH)/armnn/profiling
91ARMNN_COMMON_PROFILING_HEADER_PATH := $(LOCAL_PATH)/armnn/profiling/common/include
92ARMNN_CLIENT_PROFILING_HEADER_PATH := $(LOCAL_PATH)/armnn/profiling/client/include
Mike Kelly0e415132020-02-11 11:21:25 +000093ARMNN_HEADER_PATH := $(LOCAL_PATH)/armnn/include
Zingo Andersenf65b2662021-10-27 07:04:11 +020094ARMNN_BACKEND_MAKEFILE_LOCAL_PATHS := $(wildcard $(LOCAL_PATH)/armnn/src/backends/*/backend.mk)
95ARMNN_BACKEND_MAKEFILE_PATHS := $(subst $(LOCAL_PATH),,$(ARMNN_BACKEND_MAKEFILE_LOCAL_PATHS))
96ARMNN_BACKEND_MAKEFILE_DIRS := $(subst /backend.mk,,$(ARMNN_BACKEND_MAKEFILE_PATHS))
Colm Donelan08d9a1c2020-09-09 17:56:55 +010097ARMNN_THIRD_PARTY_PATH := $(LOCAL_PATH)/armnn/third-party
Mike Kelly0e415132020-02-11 11:21:25 +000098ARMNN_UTILS_HEADER_PATH := $(LOCAL_PATH)/armnn/src/armnnUtils
99OPENCL_HEADER_PATH := $(LOCAL_PATH)/clframework/include
100NN_HEADER_PATH := $(LOCAL_PATH)/../../../frameworks/ml/nn/runtime/include
Sadik Armagan188675f2021-02-12 17:16:42 +0000101ifeq ($(S_OR_LATER),1)
102NN_HEADER_PATH := $(LOCAL_PATH)/../../../packages/modules/NeuralNetworks/runtime/include
103endif
Mike Kelly0e415132020-02-11 11:21:25 +0000104
105# Variables to control CL/NEON/reference backend support
106# Set them to '0' to disable support for a specific backend
107ARMNN_COMPUTE_CL_ENABLED := 1
108ARMNN_COMPUTE_NEON_ENABLED := 1
109ARMNN_REF_ENABLED := 1
Kevin May20c62252022-01-31 14:51:16 +0000110ARMNN_ETHOSN_ENABLED := 0
Mike Kelly0e415132020-02-11 11:21:25 +0000111
112ifeq ($(ARMNN_COMPUTE_CL_ENABLE),0)
113ARMNN_COMPUTE_CL_ENABLED := 0
114endif
115
116ifeq ($(ARMNN_COMPUTE_NEON_ENABLE),0)
117ARMNN_COMPUTE_NEON_ENABLED := 0
118endif
119
120ifeq ($(ARMNN_REF_ENABLE),0)
121ARMNN_REF_ENABLED := 0
122endif
123
Kevin May20c62252022-01-31 14:51:16 +0000124ifeq ($(ARMNN_ETHOSN_ENABLE),1)
125ARMNN_ETHOSN_ENABLED := 1
FrancisMurtagh594b2832020-06-15 17:17:56 +0100126endif
127
alered017c395b22020-04-03 15:37:24 +0100128# Variable to control inclusion of libOpenCL shared library
129ARMNN_INCLUDE_LIBOPENCL := $(ARMNN_COMPUTE_CL_ENABLED)
130ifeq ($(ARMNN_LIBOPENCL),0)
131ARMNN_INCLUDE_LIBOPENCL := 0
132endif
133
Narumol Prangnawaratcad4e912020-06-02 12:07:43 +0100134# Variable to control retire rate of priority queue
135RETIRE_RATE := 3
136
Zingo Andersenf65b2662021-10-27 07:04:11 +0200137# Placeholder to hold all backend link files.
138ARMNN_BACKEND_STATIC_LIBRARIES :=
139ARMNN_BACKEND_SHARED_LIBRARIES :=
140
141# Iterate through the Arm NN backends and specific include paths, include them into the
142# current makefile and append the linkfiles held by
143# the optional BACKEND_STATIC_LIBRARIES and optional BACKEND_SHARED_LIBRARIES variable
144# (included from the given makefile) to
145# the ARMNN_BACKEND_STATIC_LIBRARIES and ARMNN_BACKEND_SHARED_LIBRARIES lists
146
147$(foreach mkPath,$(ARMNN_BACKEND_MAKEFILE_DIRS),\
148 $(eval include $(LOCAL_PATH)/$(mkPath)/backend.mk)\
149 $(eval ARMNN_BACKEND_STATIC_LIBRARIES += $(BACKEND_STATIC_LIBRARIES)))
150
151$(foreach mkPath,$(ARMNN_BACKEND_MAKEFILE_DIRS),\
152 $(eval include $(LOCAL_PATH)/$(mkPath)/backend.mk)\
153 $(eval ARMNN_BACKEND_SHARED_LIBRARIES += $(BACKEND_SHARED_LIBRARIES)))
154
Mike Kelly0e415132020-02-11 11:21:25 +0000155#######################
156# libarmnn-driver@1.0 #
157#######################
158include $(CLEAR_VARS)
159
160LOCAL_MODULE := libarmnn-driver@1.0
161ifeq ($(Q_OR_LATER),1)
162# "eng" is deprecated in Android Q
163LOCAL_MODULE_TAGS := optional
164else
165LOCAL_MODULE_TAGS := eng optional
166endif
167LOCAL_ARM_MODE := arm
168LOCAL_PROPRIETARY_MODULE := true
169# Mark source files as dependent on Android.mk
170LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
171
172LOCAL_C_INCLUDES := \
Mike Kellya3ba4be2022-05-20 17:18:50 +0100173 $(ARMNN_GENERATED_HEADER_PATH) \
Jim Flynn06a4a8b2022-03-23 15:58:46 +0000174 $(ARMNN_THIRD_PARTY_PATH) \
175 $(ARMNN_PROFILING_HEADER_PATH) \
176 $(ARMNN_COMMON_PROFILING_HEADER_PATH) \
177 $(ARMNN_CLIENT_PROFILING_HEADER_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000178 $(ARMNN_HEADER_PATH) \
179 $(ARMNN_UTILS_HEADER_PATH) \
180 $(OPENCL_HEADER_PATH) \
181 $(NN_HEADER_PATH)
182
183LOCAL_CFLAGS := \
184 -std=$(CPP_VERSION) \
185 -fexceptions \
186 -Werror \
187 -Wno-format-security
188
Kevin Mayec1e5b82020-02-26 17:00:39 +0000189# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100190ifeq ($(ANDROID_R),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000191LOCAL_CFLAGS+= \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000192 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100193endif
Mike Kelly0e415132020-02-11 11:21:25 +0000194
Sadik Armagan188675f2021-02-12 17:16:42 +0000195ifeq ($(ANDROID_S),1)
196LOCAL_CFLAGS+= \
197 -DARMNN_ANDROID_S
198endif
199
Mike Kelly0e415132020-02-11 11:21:25 +0000200ifeq ($(ARMNN_DRIVER_DEBUG),1)
201LOCAL_CFLAGS+= \
202 -UNDEBUG
Ryan OSheabc9721d2022-05-31 17:24:48 +0100203LOCAL_LDFLAGS += \
204 -Wl,-Map=libarmnndriver10MapFile.map
Mike Kelly0e415132020-02-11 11:21:25 +0000205endif # ARMNN_DRIVER_DEBUG == 1
206
Mike Kelly0e415132020-02-11 11:21:25 +0000207ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
208LOCAL_CFLAGS += \
209 -DARMCOMPUTECL_ENABLED
210endif # ARMNN_COMPUTE_CL_ENABLED == 1
211
212ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
213LOCAL_CFLAGS += \
214 -DARMCOMPUTENEON_ENABLED
215endif # ARMNN_COMPUTE_NEON_ENABLED == 1
216
217ifeq ($(ARMNN_REF_ENABLED),1)
218LOCAL_CFLAGS += \
219 -DARMNNREF_ENABLED
220endif # ARMNN_REF_ENABLED == 1
221
FrancisMurtagh594b2832020-06-15 17:17:56 +0100222ifeq ($(ARMNN_ETHOSN_ENABLED),1)
223LOCAL_CFLAGS += \
224 -DARMNNETHOSN_ENABLED
225endif # ARMNN_ETHOSN_ENABLED == 1
226
Mike Kelly0e415132020-02-11 11:21:25 +0000227LOCAL_SRC_FILES := \
228 1.0/ArmnnDriverImpl.cpp \
229 1.0/HalPolicy.cpp \
230 ArmnnDriverImpl.cpp \
231 DriverOptions.cpp \
232 ArmnnDevice.cpp \
233 ArmnnPreparedModel.cpp \
234 ModelToINetworkConverter.cpp \
235 RequestThread.cpp \
236 Utils.cpp \
237 ConversionUtils.cpp
238
239LOCAL_STATIC_LIBRARIES := \
240 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000241 libflatbuffers-framework \
Zingo Andersene02562b2021-12-14 13:58:56 +0100242 arm_compute_library \
243 $(ARMNN_BACKEND_STATIC_LIBRARIES)
Mike Kelly0e415132020-02-11 11:21:25 +0000244
245LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
246
247LOCAL_SHARED_LIBRARIES := \
248 libbase \
249 libhidlbase \
250 libhidltransport \
251 libhidlmemory \
252 liblog \
253 libutils \
254 android.hardware.neuralnetworks@1.0 \
255 android.hidl.allocator@1.0 \
256 android.hidl.memory@1.0
257
258ifeq ($(P_OR_LATER),1)
259# Required to build the 1.0 version of the NN Driver on Android P and later versions,
260# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
261LOCAL_SHARED_LIBRARIES+= \
262 android.hardware.neuralnetworks@1.1
263endif # PLATFORM_VERSION == 9
264
265ifeq ($(Q_OR_LATER),1)
266LOCAL_SHARED_LIBRARIES+= \
267 libnativewindow \
268 libui \
269 libfmq \
270 libcutils \
271 android.hardware.neuralnetworks@1.2
Kevin Mayec1e5b82020-02-26 17:00:39 +0000272endif # Q or later
273
274ifeq ($(R_OR_LATER),1)
275LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100276 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000277 android.hardware.neuralnetworks@1.3
278endif # R or later
Mike Kelly0e415132020-02-11 11:21:25 +0000279
alered01dbae2472020-04-07 12:31:10 +0100280ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000281LOCAL_SHARED_LIBRARIES+= \
282 libOpenCL
283endif
284
285include $(BUILD_STATIC_LIBRARY)
286
287ifeq ($(P_OR_LATER),1)
288# The following target is available starting from Android P
289
290#######################
291# libarmnn-driver@1.1 #
292#######################
293include $(CLEAR_VARS)
294
295LOCAL_MODULE := libarmnn-driver@1.1
296ifeq ($(Q_OR_LATER),1)
297# "eng" is deprecated in Android Q
298LOCAL_MODULE_TAGS := optional
299else
300LOCAL_MODULE_TAGS := eng optional
301endif
302#PRODUCT_PACKAGES_ENG := libarmnn-driver@1.1
303LOCAL_ARM_MODE := arm
304LOCAL_PROPRIETARY_MODULE := true
305# Mark source files as dependent on Android.mk
306LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
307
308LOCAL_C_INCLUDES := \
Mike Kellya3ba4be2022-05-20 17:18:50 +0100309 $(ARMNN_GENERATED_HEADER_PATH) \
Jim Flynn06a4a8b2022-03-23 15:58:46 +0000310 $(ARMNN_THIRD_PARTY_PATH) \
311 $(ARMNN_PROFILING_HEADER_PATH) \
312 $(ARMNN_COMMON_PROFILING_HEADER_PATH) \
313 $(ARMNN_CLIENT_PROFILING_HEADER_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000314 $(ARMNN_HEADER_PATH) \
315 $(ARMNN_UTILS_HEADER_PATH) \
316 $(OPENCL_HEADER_PATH) \
317 $(NN_HEADER_PATH)
318
319LOCAL_CFLAGS := \
320 -std=$(CPP_VERSION) \
321 -fexceptions \
322 -Werror \
Finn Williamsf769f292021-06-25 12:53:09 +0100323 -Wall \
324 -Wextra \
325 -Wno-unused-function \
Mike Kelly0e415132020-02-11 11:21:25 +0000326 -Wno-format-security \
Mike Kelly0e415132020-02-11 11:21:25 +0000327 -DARMNN_ANDROID_NN_V1_1
328
329ifeq ($(ARMNN_DRIVER_DEBUG),1)
330LOCAL_CFLAGS+= \
331 -UNDEBUG
Ryan OSheabc9721d2022-05-31 17:24:48 +0100332LOCAL_LDFLAGS += \
333 -Wl,-Map=libarmnnDriver11MapFile.map
Mike Kelly0e415132020-02-11 11:21:25 +0000334endif # ARMNN_DRIVER_DEBUG == 1
335
Kevin Mayec1e5b82020-02-26 17:00:39 +0000336# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100337ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000338LOCAL_CFLAGS+= \
339 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100340endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000341
Sadik Armagan188675f2021-02-12 17:16:42 +0000342ifeq ($(ANDROID_S),1)
343LOCAL_CFLAGS+= \
344 -DARMNN_ANDROID_S
345endif
346
Mike Kelly0e415132020-02-11 11:21:25 +0000347ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
348LOCAL_CFLAGS += \
349 -DARMCOMPUTECL_ENABLED
350endif # ARMNN_COMPUTE_CL_ENABLED == 1
351
352ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
353LOCAL_CFLAGS += \
354 -DARMCOMPUTENEON_ENABLED
355endif # ARMNN_COMPUTE_NEON_ENABLED == 1
356
357ifeq ($(ARMNN_REF_ENABLED),1)
358LOCAL_CFLAGS += \
359 -DARMNNREF_ENABLED
360endif # ARMNN_REF_ENABLED == 1
361
FrancisMurtagh594b2832020-06-15 17:17:56 +0100362ifeq ($(ARMNN_ETHOSN_ENABLED),1)
363LOCAL_CFLAGS += \
364 -DARMNNETHOSN_ENABLED
365endif # ARMNN_ETHOSN_ENABLED == 1
366
Mike Kelly0e415132020-02-11 11:21:25 +0000367LOCAL_SRC_FILES := \
368 1.0/ArmnnDriverImpl.cpp \
369 1.0/HalPolicy.cpp \
370 1.1/ArmnnDriverImpl.cpp \
371 1.1/HalPolicy.cpp \
372 ArmnnDriverImpl.cpp \
373 DriverOptions.cpp \
374 ArmnnDevice.cpp \
375 ArmnnPreparedModel.cpp \
376 ModelToINetworkConverter.cpp \
377 RequestThread.cpp \
378 Utils.cpp \
379 ConversionUtils.cpp
380
381LOCAL_STATIC_LIBRARIES := \
382 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000383 libflatbuffers-framework \
Zingo Andersene02562b2021-12-14 13:58:56 +0100384 arm_compute_library \
385 $(ARMNN_BACKEND_STATIC_LIBRARIES)
Mike Kelly0e415132020-02-11 11:21:25 +0000386
387LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
388
389LOCAL_SHARED_LIBRARIES := \
390 libbase \
391 libhidlbase \
392 libhidltransport \
393 libhidlmemory \
394 liblog \
395 libutils \
396 android.hardware.neuralnetworks@1.0 \
397 android.hardware.neuralnetworks@1.1 \
398 android.hidl.allocator@1.0 \
399 android.hidl.memory@1.0
400
401ifeq ($(Q_OR_LATER),1)
402LOCAL_SHARED_LIBRARIES+= \
403 libnativewindow \
404 libui \
405 libfmq \
406 libcutils \
407 android.hardware.neuralnetworks@1.2
408endif # PLATFORM_VERSION == Q
409
Kevin Mayec1e5b82020-02-26 17:00:39 +0000410ifeq ($(R_OR_LATER),1)
411LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100412 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000413 android.hardware.neuralnetworks@1.3
414endif # R or later
415
alered017c395b22020-04-03 15:37:24 +0100416ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000417LOCAL_SHARED_LIBRARIES+= \
418 libOpenCL
419endif
420
421include $(BUILD_STATIC_LIBRARY)
422
423endif # PLATFORM_VERSION == 9
424
425ifeq ($(Q_OR_LATER),1)
426# The following target is available starting from Android Q
427
428#######################
429# libarmnn-driver@1.2 #
430#######################
431include $(CLEAR_VARS)
432
433LOCAL_MODULE := libarmnn-driver@1.2
434LOCAL_MODULE_TAGS := optional
435LOCAL_ARM_MODE := arm
436LOCAL_PROPRIETARY_MODULE := true
437# Mark source files as dependent on Android.mk
438LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
439
440LOCAL_C_INCLUDES := \
Mike Kellya3ba4be2022-05-20 17:18:50 +0100441 $(ARMNN_GENERATED_HEADER_PATH) \
Jim Flynn06a4a8b2022-03-23 15:58:46 +0000442 $(ARMNN_THIRD_PARTY_PATH) \
443 $(ARMNN_PROFILING_HEADER_PATH) \
444 $(ARMNN_COMMON_PROFILING_HEADER_PATH) \
445 $(ARMNN_CLIENT_PROFILING_HEADER_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000446 $(ARMNN_HEADER_PATH) \
447 $(ARMNN_UTILS_HEADER_PATH) \
448 $(OPENCL_HEADER_PATH) \
449 $(NN_HEADER_PATH)
450
451LOCAL_CFLAGS := \
452 -std=$(CPP_VERSION) \
453 -fexceptions \
454 -Werror \
Finn Williamsf769f292021-06-25 12:53:09 +0100455 -Wall \
456 -Wextra \
457 -Wno-unused-function \
Mike Kelly0e415132020-02-11 11:21:25 +0000458 -Wno-format-security \
Mike Kelly0e415132020-02-11 11:21:25 +0000459 -DARMNN_ANDROID_NN_V1_2
460
461ifeq ($(ARMNN_DRIVER_DEBUG),1)
462LOCAL_CFLAGS+= \
463 -UNDEBUG
Ryan OSheabc9721d2022-05-31 17:24:48 +0100464LOCAL_LDFLAGS += \
465 -Wl,-Map=libarmnnDriver12MapFile.map
Mike Kelly0e415132020-02-11 11:21:25 +0000466endif # ARMNN_DRIVER_DEBUG == 1
467
Kevin Mayec1e5b82020-02-26 17:00:39 +0000468# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100469ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000470LOCAL_CFLAGS+= \
471 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100472endif
Mike Kelly0e415132020-02-11 11:21:25 +0000473
Sadik Armagan188675f2021-02-12 17:16:42 +0000474ifeq ($(ANDROID_S),1)
475LOCAL_CFLAGS+= \
476 -DARMNN_ANDROID_S
477endif
478
Mike Kelly0e415132020-02-11 11:21:25 +0000479ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
480LOCAL_CFLAGS += \
481 -DARMCOMPUTECL_ENABLED
482endif # ARMNN_COMPUTE_CL_ENABLED == 1
483
484ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
485LOCAL_CFLAGS += \
486 -DARMCOMPUTENEON_ENABLED
487endif # ARMNN_COMPUTE_NEON_ENABLED == 1
488
489ifeq ($(ARMNN_REF_ENABLED),1)
490LOCAL_CFLAGS += \
491 -DARMNNREF_ENABLED
492endif # ARMNN_REF_ENABLED == 1
493
FrancisMurtagh594b2832020-06-15 17:17:56 +0100494ifeq ($(ARMNN_ETHOSN_ENABLED),1)
495LOCAL_CFLAGS += \
496 -DARMNNETHOSN_ENABLED
497endif # ARMNN_ETHOSN_ENABLED == 1
498
Mike Kelly0e415132020-02-11 11:21:25 +0000499LOCAL_SRC_FILES := \
500 1.0/ArmnnDriverImpl.cpp \
501 1.0/HalPolicy.cpp \
502 1.1/ArmnnDriverImpl.cpp \
503 1.1/HalPolicy.cpp \
504 1.2/ArmnnDriverImpl.cpp \
505 1.2/HalPolicy.cpp \
506 ArmnnDevice.cpp \
507 ArmnnDriverImpl.cpp \
508 ArmnnPreparedModel.cpp \
509 ArmnnPreparedModel_1_2.cpp \
Sadik Armagan0a2dfab2021-10-06 16:41:44 +0100510 CacheDataHandler.cpp \
Mike Kelly0e415132020-02-11 11:21:25 +0000511 ConversionUtils.cpp \
512 DriverOptions.cpp \
513 ModelToINetworkConverter.cpp \
514 RequestThread.cpp \
515 Utils.cpp
516
517LOCAL_STATIC_LIBRARIES := \
518 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000519 libflatbuffers-framework \
Zingo Andersene02562b2021-12-14 13:58:56 +0100520 arm_compute_library \
521 $(ARMNN_BACKEND_STATIC_LIBRARIES)
Mike Kelly0e415132020-02-11 11:21:25 +0000522
523LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
524
525LOCAL_SHARED_LIBRARIES := \
526 libbase \
527 libhidlbase \
528 libhidltransport \
529 libhidlmemory \
530 liblog \
531 libutils \
532 libnativewindow \
533 libui \
534 libfmq \
535 libcutils \
536 android.hidl.allocator@1.0 \
537 android.hidl.memory@1.0 \
538 android.hardware.neuralnetworks@1.0 \
539 android.hardware.neuralnetworks@1.1 \
540 android.hardware.neuralnetworks@1.2
541
Kevin Mayec1e5b82020-02-26 17:00:39 +0000542ifeq ($(R_OR_LATER),1)
543LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100544 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000545 android.hardware.neuralnetworks@1.3
546endif # R or later
547
alered017c395b22020-04-03 15:37:24 +0100548ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000549LOCAL_SHARED_LIBRARIES+= \
550 libOpenCL
551endif
552
553include $(BUILD_STATIC_LIBRARY)
554
555endif # PLATFORM_VERSION == Q
556
Kevin May42477c12020-03-26 13:34:14 +0000557ifeq ($(R_OR_LATER),1)
558# The following target is available starting from Android R
559
560#######################
561# libarmnn-driver@1.3 #
562#######################
563include $(CLEAR_VARS)
564
565LOCAL_MODULE := libarmnn-driver@1.3
566LOCAL_MODULE_TAGS := optional
567LOCAL_ARM_MODE := arm
568LOCAL_PROPRIETARY_MODULE := true
569# Mark source files as dependent on Android.mk
570LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
571
572LOCAL_C_INCLUDES := \
Mike Kellya3ba4be2022-05-20 17:18:50 +0100573 $(ARMNN_GENERATED_HEADER_PATH) \
Jim Flynn06a4a8b2022-03-23 15:58:46 +0000574 $(ARMNN_THIRD_PARTY_PATH) \
575 $(ARMNN_PROFILING_HEADER_PATH) \
576 $(ARMNN_COMMON_PROFILING_HEADER_PATH) \
577 $(ARMNN_CLIENT_PROFILING_HEADER_PATH) \
Kevin May42477c12020-03-26 13:34:14 +0000578 $(ARMNN_HEADER_PATH) \
579 $(ARMNN_UTILS_HEADER_PATH) \
580 $(OPENCL_HEADER_PATH) \
581 $(NN_HEADER_PATH)
582
583LOCAL_CFLAGS := \
584 -std=$(CPP_VERSION) \
585 -fexceptions \
586 -Werror \
Finn Williamsf769f292021-06-25 12:53:09 +0100587 -Wall \
588 -Wextra \
589 -Wno-unused-function \
Kevin May42477c12020-03-26 13:34:14 +0000590 -Wno-format-security \
Kevin May42477c12020-03-26 13:34:14 +0000591 -DARMNN_ANDROID_NN_V1_3 \
Sadik Armagan188675f2021-02-12 17:16:42 +0000592
593ifeq ($(ANDROID_R),1)
594LOCAL_CFLAGS+= \
Kevin May42477c12020-03-26 13:34:14 +0000595 -DARMNN_ANDROID_R
Sadik Armagan188675f2021-02-12 17:16:42 +0000596endif
597
598ifeq ($(ANDROID_S),1)
599LOCAL_CFLAGS+= \
600 -DARMNN_ANDROID_S
601endif
Kevin May42477c12020-03-26 13:34:14 +0000602
603ifeq ($(ARMNN_DRIVER_DEBUG),1)
604LOCAL_CFLAGS+= \
605 -UNDEBUG
Ryan OSheabc9721d2022-05-31 17:24:48 +0100606LOCAL_LDFLAGS += \
607 -Wl,-Map=libarmnnDriver13MapFile.map
Kevin May42477c12020-03-26 13:34:14 +0000608endif # ARMNN_DRIVER_DEBUG == 1
609
610ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
611LOCAL_CFLAGS += \
612 -DARMCOMPUTECL_ENABLED
613endif # ARMNN_COMPUTE_CL_ENABLED == 1
614
615ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
616LOCAL_CFLAGS += \
617 -DARMCOMPUTENEON_ENABLED
618endif # ARMNN_COMPUTE_NEON_ENABLED == 1
619
620ifeq ($(ARMNN_REF_ENABLED),1)
621LOCAL_CFLAGS += \
622 -DARMNNREF_ENABLED
623endif # ARMNN_REF_ENABLED == 1
624
FrancisMurtagh594b2832020-06-15 17:17:56 +0100625ifeq ($(ARMNN_ETHOSN_ENABLED),1)
626LOCAL_CFLAGS += \
627 -DARMNNETHOSN_ENABLED
628endif # ARMNN_ETHOSN_ENABLED == 1
629
Narumol Prangnawaratcad4e912020-06-02 12:07:43 +0100630LOCAL_CFLAGS += \
631 -DRETIRE_RATE=$(RETIRE_RATE)
632
Kevin May42477c12020-03-26 13:34:14 +0000633LOCAL_SRC_FILES := \
634 1.0/ArmnnDriverImpl.cpp \
635 1.0/HalPolicy.cpp \
636 1.1/ArmnnDriverImpl.cpp \
637 1.1/HalPolicy.cpp \
638 1.2/ArmnnDriverImpl.cpp \
639 1.2/HalPolicy.cpp \
640 1.3/ArmnnDriverImpl.cpp \
641 1.3/HalPolicy.cpp \
642 ArmnnDevice.cpp \
643 ArmnnDriverImpl.cpp \
644 ArmnnPreparedModel.cpp \
645 ArmnnPreparedModel_1_2.cpp \
646 ArmnnPreparedModel_1_3.cpp \
Sadik Armagan0a2dfab2021-10-06 16:41:44 +0100647 CacheDataHandler.cpp \
Kevin May42477c12020-03-26 13:34:14 +0000648 ConversionUtils.cpp \
649 DriverOptions.cpp \
650 ModelToINetworkConverter.cpp \
651 RequestThread.cpp \
Narumol Prangnawaratcad4e912020-06-02 12:07:43 +0100652 RequestThread_1_3.cpp \
Kevin May42477c12020-03-26 13:34:14 +0000653 Utils.cpp
654
655LOCAL_STATIC_LIBRARIES := \
656 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000657 libflatbuffers-framework \
Zingo Andersene02562b2021-12-14 13:58:56 +0100658 arm_compute_library \
659 $(ARMNN_BACKEND_STATIC_LIBRARIES)
Kevin May42477c12020-03-26 13:34:14 +0000660
661LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
662
663LOCAL_SHARED_LIBRARIES := \
664 libbase \
665 libhidlbase \
666 libhidltransport \
667 libhidlmemory \
668 liblog \
669 libutils \
670 libnativewindow \
671 libui \
672 libfmq \
673 libcutils \
674 android.hidl.allocator@1.0 \
675 android.hidl.memory@1.0 \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100676 libsync \
Kevin May42477c12020-03-26 13:34:14 +0000677 android.hardware.neuralnetworks@1.0 \
678 android.hardware.neuralnetworks@1.1 \
679 android.hardware.neuralnetworks@1.2 \
680 android.hardware.neuralnetworks@1.3
681
alered017c395b22020-04-03 15:37:24 +0100682ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Kevin May42477c12020-03-26 13:34:14 +0000683LOCAL_SHARED_LIBRARIES+= \
684 libOpenCL
685endif
686
687include $(BUILD_STATIC_LIBRARY)
688
689endif # PLATFORM_VERSION == R
690
Mike Kelly0e415132020-02-11 11:21:25 +0000691#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100692# android.hardware.neuralnetworks@1.0-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000693#####################################################
694include $(CLEAR_VARS)
695
Kevin Mayabc95d02020-05-15 15:34:03 +0100696LOCAL_MODULE := android.hardware.neuralnetworks@1.0-service-armnn
697LOCAL_INIT_RC := android.hardware.neuralnetworks@1.0-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000698ifeq ($(Q_OR_LATER),1)
699# "eng" is deprecated in Android Q
700LOCAL_MODULE_TAGS := optional
701else
702LOCAL_MODULE_TAGS := eng optional
703endif
704LOCAL_ARM_MODE := arm
705LOCAL_MODULE_RELATIVE_PATH := hw
706LOCAL_PROPRIETARY_MODULE := true
707# Mark source files as dependent on Android.mk
708LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
709
710LOCAL_C_INCLUDES := \
Mike Kellya3ba4be2022-05-20 17:18:50 +0100711 $(ARMNN_GENERATED_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100712 $(ARMNN_THIRD_PARTY_PATH) \
Jim Flynn06a4a8b2022-03-23 15:58:46 +0000713 $(ARMNN_PROFILING_HEADER_PATH) \
714 $(ARMNN_COMMON_PROFILING_HEADER_PATH) \
715 $(ARMNN_CLIENT_PROFILING_HEADER_PATH) \
716 $(ARMNN_HEADER_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000717 $(NN_HEADER_PATH)
718
719LOCAL_CFLAGS := \
720 -std=$(CPP_VERSION) \
721 -fexceptions
722
723ifeq ($(ARMNN_DRIVER_DEBUG),1)
724LOCAL_CFLAGS += \
725 -UNDEBUG
Ryan OSheabc9721d2022-05-31 17:24:48 +0100726LOCAL_LDFLAGS += \
727 -Wl,-Map=neuralNetworks10MapFile.map
Mike Kelly0e415132020-02-11 11:21:25 +0000728endif # ARMNN_DRIVER_DEBUG == 1
729
Kevin Mayec1e5b82020-02-26 17:00:39 +0000730# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100731ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000732LOCAL_CFLAGS+= \
733 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100734endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000735
Sadik Armagan188675f2021-02-12 17:16:42 +0000736ifeq ($(ANDROID_S),1)
737LOCAL_CFLAGS+= \
738 -DARMNN_ANDROID_S
739endif
740
Mike Kelly0e415132020-02-11 11:21:25 +0000741LOCAL_SRC_FILES := \
742 service.cpp
743
744LOCAL_STATIC_LIBRARIES := \
745 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000746 libflatbuffers-framework \
Zingo Andersenf65b2662021-10-27 07:04:11 +0200747 arm_compute_library \
748 $(ARMNN_BACKEND_STATIC_LIBRARIES)
Mike Kelly0e415132020-02-11 11:21:25 +0000749
750LOCAL_WHOLE_STATIC_LIBRARIES := \
751 libarmnn-driver@1.0
752
753LOCAL_SHARED_LIBRARIES := \
754 libbase \
755 libhidlbase \
756 libhidltransport \
757 libhidlmemory \
758 libdl \
759 libhardware \
760 liblog \
761 libtextclassifier_hash \
762 libutils \
763 android.hardware.neuralnetworks@1.0 \
764 android.hidl.allocator@1.0 \
Zingo Andersenf65b2662021-10-27 07:04:11 +0200765 android.hidl.memory@1.0 \
766 $(ARMNN_BACKEND_SHARED_LIBRARIES)
Mike Kelly0e415132020-02-11 11:21:25 +0000767
768ifeq ($(P_OR_LATER),1)
769# Required to build the 1.0 version of the NN Driver on Android P and later versions,
770# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
771LOCAL_SHARED_LIBRARIES+= \
772 android.hardware.neuralnetworks@1.1
773endif # PLATFORM_VERSION == 9
Kevin Mayec1e5b82020-02-26 17:00:39 +0000774
Mike Kelly0e415132020-02-11 11:21:25 +0000775ifeq ($(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 # R or later
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
797ifeq ($(P_OR_LATER),1)
798# The following target is available starting from Android P
799
800#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100801# android.hardware.neuralnetworks@1.1-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000802#####################################################
803include $(CLEAR_VARS)
804
Kevin Mayabc95d02020-05-15 15:34:03 +0100805LOCAL_MODULE := android.hardware.neuralnetworks@1.1-service-armnn
806LOCAL_INIT_RC := android.hardware.neuralnetworks@1.1-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000807ifeq ($(Q_OR_LATER),1)
808# "eng" is deprecated in Android Q
809LOCAL_MODULE_TAGS := optional
810else
811LOCAL_MODULE_TAGS := eng optional
812endif
813LOCAL_ARM_MODE := arm
814LOCAL_MODULE_RELATIVE_PATH := hw
815LOCAL_PROPRIETARY_MODULE := true
816# Mark source files as dependent on Android.mk
817LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
818
819LOCAL_C_INCLUDES := \
Mike Kellya3ba4be2022-05-20 17:18:50 +0100820 $(ARMNN_GENERATED_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100821 $(ARMNN_THIRD_PARTY_PATH) \
Jim Flynn06a4a8b2022-03-23 15:58:46 +0000822 $(ARMNN_PROFILING_HEADER_PATH) \
823 $(ARMNN_COMMON_PROFILING_HEADER_PATH) \
824 $(ARMNN_CLIENT_PROFILING_HEADER_PATH) \
825 $(ARMNN_HEADER_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000826 $(NN_HEADER_PATH)
827
828LOCAL_CFLAGS := \
829 -std=$(CPP_VERSION) \
830 -fexceptions \
831 -DARMNN_ANDROID_NN_V1_1
832
833ifeq ($(ARMNN_DRIVER_DEBUG),1)
834LOCAL_CFLAGS += \
835 -UNDEBUG
Ryan OSheabc9721d2022-05-31 17:24:48 +0100836LOCAL_LDFLAGS += \
837 -Wl,-Map=neuralNetworks11MapFile.map
Mike Kelly0e415132020-02-11 11:21:25 +0000838endif # ARMNN_DRIVER_DEBUG == 1
839
Kevin Mayec1e5b82020-02-26 17:00:39 +0000840# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100841ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000842LOCAL_CFLAGS+= \
843 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100844endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000845
Sadik Armagan188675f2021-02-12 17:16:42 +0000846ifeq ($(ANDROID_S),1)
847LOCAL_CFLAGS+= \
848 -DARMNN_ANDROID_S
849endif
850
Mike Kelly0e415132020-02-11 11:21:25 +0000851LOCAL_SRC_FILES := \
852 service.cpp
853
854LOCAL_STATIC_LIBRARIES := \
855 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000856 libflatbuffers-framework \
Zingo Andersenf65b2662021-10-27 07:04:11 +0200857 arm_compute_library \
858 $(ARMNN_BACKEND_STATIC_LIBRARIES)
Mike Kelly0e415132020-02-11 11:21:25 +0000859
860LOCAL_WHOLE_STATIC_LIBRARIES := \
861 libarmnn-driver@1.1
862
863LOCAL_SHARED_LIBRARIES := \
864 libbase \
865 libhidlbase \
866 libhidltransport \
867 libhidlmemory \
868 libdl \
869 libhardware \
870 liblog \
871 libtextclassifier_hash \
872 libutils \
873 android.hardware.neuralnetworks@1.0 \
874 android.hardware.neuralnetworks@1.1 \
875 android.hidl.allocator@1.0 \
Zingo Andersenf65b2662021-10-27 07:04:11 +0200876 android.hidl.memory@1.0 \
877 $(ARMNN_BACKEND_SHARED_LIBRARIES)
Mike Kelly0e415132020-02-11 11:21:25 +0000878
879ifeq ($(Q_OR_LATER),1)
880LOCAL_SHARED_LIBRARIES+= \
881 libnativewindow \
882 libui \
883 libfmq \
884 libcutils \
885 android.hardware.neuralnetworks@1.2
886endif # PLATFORM_VERSION == Q
887
Kevin Mayec1e5b82020-02-26 17:00:39 +0000888ifeq ($(R_OR_LATER),1)
889LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100890 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000891 android.hardware.neuralnetworks@1.3
892endif # PLATFORM_VERSION == R
893
alered017c395b22020-04-03 15:37:24 +0100894ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000895LOCAL_SHARED_LIBRARIES+= \
896 libOpenCL
897endif
898
899include $(BUILD_EXECUTABLE)
900
901endif # PLATFORM_VERSION == 9
902
903ifeq ($(Q_OR_LATER),1)
904# The following target is available starting from Android Q
905
906#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100907# android.hardware.neuralnetworks@1.2-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000908#####################################################
909include $(CLEAR_VARS)
910
Kevin Mayabc95d02020-05-15 15:34:03 +0100911LOCAL_MODULE := android.hardware.neuralnetworks@1.2-service-armnn
912LOCAL_INIT_RC := android.hardware.neuralnetworks@1.2-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000913LOCAL_MODULE_TAGS := optional
914LOCAL_ARM_MODE := arm
915LOCAL_MODULE_RELATIVE_PATH := hw
916LOCAL_PROPRIETARY_MODULE := true
917# Mark source files as dependent on Android.mk
918LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
919
920LOCAL_C_INCLUDES := \
Mike Kellya3ba4be2022-05-20 17:18:50 +0100921 $(ARMNN_GENERATED_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100922 $(ARMNN_THIRD_PARTY_PATH) \
Jim Flynn06a4a8b2022-03-23 15:58:46 +0000923 $(ARMNN_PROFILING_HEADER_PATH) \
924 $(ARMNN_COMMON_PROFILING_HEADER_PATH) \
925 $(ARMNN_CLIENT_PROFILING_HEADER_PATH) \
926 $(ARMNN_HEADER_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000927 $(NN_HEADER_PATH)
928
929LOCAL_CFLAGS := \
930 -std=$(CPP_VERSION) \
931 -fexceptions \
932 -DARMNN_ANDROID_NN_V1_2 \
Mike Kelly0e415132020-02-11 11:21:25 +0000933
934ifeq ($(ARMNN_DRIVER_DEBUG),1)
935LOCAL_CFLAGS += \
936 -UNDEBUG
Ryan OSheabc9721d2022-05-31 17:24:48 +0100937LOCAL_LDFLAGS += \
938 -Wl,-Map=neuralNetworks12MapFile.map
Mike Kelly0e415132020-02-11 11:21:25 +0000939endif # ARMNN_DRIVER_DEBUG == 1
940
Kevin Mayec1e5b82020-02-26 17:00:39 +0000941# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100942ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000943LOCAL_CFLAGS+= \
944 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100945endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000946
Sadik Armagan188675f2021-02-12 17:16:42 +0000947ifeq ($(ANDROID_S),1)
948LOCAL_CFLAGS+= \
949 -DARMNN_ANDROID_S
950endif
951
Mike Kelly0e415132020-02-11 11:21:25 +0000952LOCAL_SRC_FILES := \
953 service.cpp
954
955LOCAL_STATIC_LIBRARIES := \
956 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000957 libflatbuffers-framework \
Zingo Andersenf65b2662021-10-27 07:04:11 +0200958 arm_compute_library \
959 $(ARMNN_BACKEND_STATIC_LIBRARIES)
Mike Kelly0e415132020-02-11 11:21:25 +0000960
961LOCAL_WHOLE_STATIC_LIBRARIES := \
962 libarmnn-driver@1.2
963
964LOCAL_SHARED_LIBRARIES := \
965 libbase \
966 libhidlbase \
967 libhidltransport \
968 libhidlmemory \
969 libdl \
970 libhardware \
971 liblog \
972 libtextclassifier_hash \
973 libutils \
974 libnativewindow \
975 libui \
976 libfmq \
977 libcutils \
978 android.hidl.allocator@1.0 \
979 android.hidl.memory@1.0 \
980 android.hardware.neuralnetworks@1.0 \
981 android.hardware.neuralnetworks@1.1 \
Zingo Andersenf65b2662021-10-27 07:04:11 +0200982 android.hardware.neuralnetworks@1.2 \
983 $(ARMNN_BACKEND_SHARED_LIBRARIES)
Mike Kelly0e415132020-02-11 11:21:25 +0000984
Kevin Mayec1e5b82020-02-26 17:00:39 +0000985ifeq ($(R_OR_LATER),1)
986LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100987 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000988 android.hardware.neuralnetworks@1.3
989endif # R or later
990
alered017c395b22020-04-03 15:37:24 +0100991ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000992LOCAL_SHARED_LIBRARIES+= \
993 libOpenCL
994endif
995
996include $(BUILD_EXECUTABLE)
997
998endif # PLATFORM_VERSION == Q
999
Kevin May42477c12020-03-26 13:34:14 +00001000ifeq ($(R_OR_LATER),1)
1001# The following target is available starting from Android R
1002
1003#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +01001004# android.hardware.neuralnetworks@1.3-service-armnn #
Kevin May42477c12020-03-26 13:34:14 +00001005#####################################################
1006include $(CLEAR_VARS)
1007
Kevin Mayabc95d02020-05-15 15:34:03 +01001008LOCAL_MODULE := android.hardware.neuralnetworks@1.3-service-armnn
1009LOCAL_INIT_RC := android.hardware.neuralnetworks@1.3-service-armnn.rc
Kevin May42477c12020-03-26 13:34:14 +00001010LOCAL_MODULE_TAGS := optional
1011LOCAL_ARM_MODE := arm
1012LOCAL_MODULE_RELATIVE_PATH := hw
1013LOCAL_PROPRIETARY_MODULE := true
1014# Mark source files as dependent on Android.mk
1015LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
1016
1017LOCAL_C_INCLUDES := \
Mike Kellya3ba4be2022-05-20 17:18:50 +01001018 $(ARMNN_GENERATED_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +01001019 $(ARMNN_THIRD_PARTY_PATH) \
Jim Flynn06a4a8b2022-03-23 15:58:46 +00001020 $(ARMNN_PROFILING_HEADER_PATH) \
1021 $(ARMNN_COMMON_PROFILING_HEADER_PATH) \
1022 $(ARMNN_CLIENT_PROFILING_HEADER_PATH) \
1023 $(ARMNN_HEADER_PATH) \
Kevin May42477c12020-03-26 13:34:14 +00001024 $(NN_HEADER_PATH)
1025
1026LOCAL_CFLAGS := \
1027 -std=$(CPP_VERSION) \
1028 -fexceptions \
1029 -DARMNN_ANDROID_NN_V1_3 \
Sadik Armagan188675f2021-02-12 17:16:42 +00001030
1031ifeq ($(ANDROID_R),1)
1032LOCAL_CFLAGS+= \
Kevin May42477c12020-03-26 13:34:14 +00001033 -DARMNN_ANDROID_R
Sadik Armagan188675f2021-02-12 17:16:42 +00001034endif
1035
1036ifeq ($(ANDROID_S),1)
1037LOCAL_CFLAGS+= \
1038 -DARMNN_ANDROID_S
1039endif
Kevin May42477c12020-03-26 13:34:14 +00001040
1041ifeq ($(ARMNN_DRIVER_DEBUG),1)
1042LOCAL_CFLAGS += \
1043 -UNDEBUG
Ryan OSheabc9721d2022-05-31 17:24:48 +01001044LOCAL_LDFLAGS += \
1045 -Wl,-Map=neuralNetworks13MapFile.map
Kevin May42477c12020-03-26 13:34:14 +00001046endif # ARMNN_DRIVER_DEBUG == 1
1047
1048LOCAL_SRC_FILES := \
1049 service.cpp
1050
1051LOCAL_STATIC_LIBRARIES := \
1052 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +00001053 libflatbuffers-framework \
Zingo Andersenf65b2662021-10-27 07:04:11 +02001054 arm_compute_library \
1055 $(ARMNN_BACKEND_STATIC_LIBRARIES)
Kevin May42477c12020-03-26 13:34:14 +00001056
1057LOCAL_WHOLE_STATIC_LIBRARIES := \
1058 libarmnn-driver@1.3
1059
1060LOCAL_SHARED_LIBRARIES := \
1061 libbase \
1062 libhidlbase \
1063 libhidltransport \
1064 libhidlmemory \
1065 libdl \
1066 libhardware \
1067 liblog \
1068 libtextclassifier_hash \
1069 libutils \
1070 libnativewindow \
1071 libui \
1072 libfmq \
1073 libcutils \
Sadik Armagand7be72e2020-04-23 12:56:05 +01001074 libsync \
Kevin May42477c12020-03-26 13:34:14 +00001075 android.hidl.allocator@1.0 \
1076 android.hidl.memory@1.0 \
1077 android.hardware.neuralnetworks@1.0 \
1078 android.hardware.neuralnetworks@1.1 \
1079 android.hardware.neuralnetworks@1.2 \
Zingo Andersenf65b2662021-10-27 07:04:11 +02001080 android.hardware.neuralnetworks@1.3 \
1081 $(ARMNN_BACKEND_SHARED_LIBRARIES)
Kevin May42477c12020-03-26 13:34:14 +00001082
alered017c395b22020-04-03 15:37:24 +01001083ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Kevin May42477c12020-03-26 13:34:14 +00001084LOCAL_SHARED_LIBRARIES+= \
1085 libOpenCL
1086endif
1087
1088include $(BUILD_EXECUTABLE)
1089
1090endif # PLATFORM_VERSION == R
1091
Mike Kelly0e415132020-02-11 11:21:25 +00001092##########################
1093# armnn module and tests #
1094##########################
1095# Note we use ANDROID_NN_DRIVER_LOCAL_PATH rather than LOCAL_PATH because LOCAL_PATH will be overwritten
1096# when including other .mk files that set it.
1097include $(ANDROID_NN_DRIVER_LOCAL_PATH)/armnn/Android.mk
1098include $(ANDROID_NN_DRIVER_LOCAL_PATH)/test/Android.mk