blob: d6dbf0acefee0ce3ecd2557537264afe69ebc273 [file] [log] [blame]
Mike Kelly0e415132020-02-11 11:21:25 +00001#
Kevin May5862bc42023-07-19 11:38:29 +01002# Copyright © 2022-2023 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
Kevin May5862bc42023-07-19 11:38:29 +010046ifeq ($(PLATFORM_VERSION),$(filter $(PLATFORM_VERSION),12 13 14 S T U))
Sadik Armagan188675f2021-02-12 17:16:42 +000047P_OR_LATER := 1
48Q_OR_LATER := 1
49R_OR_LATER := 1
50S_OR_LATER := 1
51ANDROID_R := 0
52ANDROID_S := 1
Kevin May5862bc42023-07-19 11:38:29 +010053endif # PLATFORM_VERSION >= S
Sadik Armagan188675f2021-02-12 17:16:42 +000054
Kevin Mayb8fed7d2022-07-06 14:11:45 +010055
Mike Kelly0e415132020-02-11 11:21:25 +000056CPP_VERSION := c++14
57
58ifeq ($(Q_OR_LATER),1)
59CPP_VERSION := c++17
60endif
61
62# Configure these paths if you move the source or Khronos headers
Mike Kellya3ba4be2022-05-20 17:18:50 +010063ARMNN_GENERATED_HEADER_PATH := $(LOCAL_PATH)/armnn/generated
Jim Flynn06a4a8b2022-03-23 15:58:46 +000064ARMNN_PROFILING_HEADER_PATH := $(LOCAL_PATH)/armnn/profiling
65ARMNN_COMMON_PROFILING_HEADER_PATH := $(LOCAL_PATH)/armnn/profiling/common/include
66ARMNN_CLIENT_PROFILING_HEADER_PATH := $(LOCAL_PATH)/armnn/profiling/client/include
Mike Kelly0e415132020-02-11 11:21:25 +000067ARMNN_HEADER_PATH := $(LOCAL_PATH)/armnn/include
Zingo Andersenf65b2662021-10-27 07:04:11 +020068ARMNN_BACKEND_MAKEFILE_LOCAL_PATHS := $(wildcard $(LOCAL_PATH)/armnn/src/backends/*/backend.mk)
69ARMNN_BACKEND_MAKEFILE_PATHS := $(subst $(LOCAL_PATH),,$(ARMNN_BACKEND_MAKEFILE_LOCAL_PATHS))
70ARMNN_BACKEND_MAKEFILE_DIRS := $(subst /backend.mk,,$(ARMNN_BACKEND_MAKEFILE_PATHS))
Colm Donelan08d9a1c2020-09-09 17:56:55 +010071ARMNN_THIRD_PARTY_PATH := $(LOCAL_PATH)/armnn/third-party
Mike Kelly0e415132020-02-11 11:21:25 +000072ARMNN_UTILS_HEADER_PATH := $(LOCAL_PATH)/armnn/src/armnnUtils
73OPENCL_HEADER_PATH := $(LOCAL_PATH)/clframework/include
74NN_HEADER_PATH := $(LOCAL_PATH)/../../../frameworks/ml/nn/runtime/include
Sadik Armagan188675f2021-02-12 17:16:42 +000075ifeq ($(S_OR_LATER),1)
76NN_HEADER_PATH := $(LOCAL_PATH)/../../../packages/modules/NeuralNetworks/runtime/include
77endif
Mike Kelly0e415132020-02-11 11:21:25 +000078
79# Variables to control CL/NEON/reference backend support
80# Set them to '0' to disable support for a specific backend
81ARMNN_COMPUTE_CL_ENABLED := 1
82ARMNN_COMPUTE_NEON_ENABLED := 1
83ARMNN_REF_ENABLED := 1
Kevin May20c62252022-01-31 14:51:16 +000084ARMNN_ETHOSN_ENABLED := 0
Mike Kelly0e415132020-02-11 11:21:25 +000085
86ifeq ($(ARMNN_COMPUTE_CL_ENABLE),0)
87ARMNN_COMPUTE_CL_ENABLED := 0
88endif
89
90ifeq ($(ARMNN_COMPUTE_NEON_ENABLE),0)
91ARMNN_COMPUTE_NEON_ENABLED := 0
92endif
93
94ifeq ($(ARMNN_REF_ENABLE),0)
95ARMNN_REF_ENABLED := 0
96endif
97
Kevin May20c62252022-01-31 14:51:16 +000098ifeq ($(ARMNN_ETHOSN_ENABLE),1)
99ARMNN_ETHOSN_ENABLED := 1
FrancisMurtagh594b2832020-06-15 17:17:56 +0100100endif
101
alered017c395b22020-04-03 15:37:24 +0100102# Variable to control inclusion of libOpenCL shared library
103ARMNN_INCLUDE_LIBOPENCL := $(ARMNN_COMPUTE_CL_ENABLED)
104ifeq ($(ARMNN_LIBOPENCL),0)
105ARMNN_INCLUDE_LIBOPENCL := 0
106endif
107
Narumol Prangnawaratcad4e912020-06-02 12:07:43 +0100108# Variable to control retire rate of priority queue
109RETIRE_RATE := 3
110
Zingo Andersenf65b2662021-10-27 07:04:11 +0200111# Placeholder to hold all backend link files.
112ARMNN_BACKEND_STATIC_LIBRARIES :=
113ARMNN_BACKEND_SHARED_LIBRARIES :=
114
115# Iterate through the Arm NN backends and specific include paths, include them into the
116# current makefile and append the linkfiles held by
117# the optional BACKEND_STATIC_LIBRARIES and optional BACKEND_SHARED_LIBRARIES variable
118# (included from the given makefile) to
119# the ARMNN_BACKEND_STATIC_LIBRARIES and ARMNN_BACKEND_SHARED_LIBRARIES lists
120
121$(foreach mkPath,$(ARMNN_BACKEND_MAKEFILE_DIRS),\
122 $(eval include $(LOCAL_PATH)/$(mkPath)/backend.mk)\
123 $(eval ARMNN_BACKEND_STATIC_LIBRARIES += $(BACKEND_STATIC_LIBRARIES)))
124
125$(foreach mkPath,$(ARMNN_BACKEND_MAKEFILE_DIRS),\
126 $(eval include $(LOCAL_PATH)/$(mkPath)/backend.mk)\
127 $(eval ARMNN_BACKEND_SHARED_LIBRARIES += $(BACKEND_SHARED_LIBRARIES)))
128
Mike Kelly0e415132020-02-11 11:21:25 +0000129#######################
130# libarmnn-driver@1.0 #
131#######################
132include $(CLEAR_VARS)
133
134LOCAL_MODULE := libarmnn-driver@1.0
135ifeq ($(Q_OR_LATER),1)
136# "eng" is deprecated in Android Q
137LOCAL_MODULE_TAGS := optional
138else
139LOCAL_MODULE_TAGS := eng optional
140endif
141LOCAL_ARM_MODE := arm
142LOCAL_PROPRIETARY_MODULE := true
143# Mark source files as dependent on Android.mk
144LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
145
146LOCAL_C_INCLUDES := \
Mike Kellya3ba4be2022-05-20 17:18:50 +0100147 $(ARMNN_GENERATED_HEADER_PATH) \
Jim Flynn06a4a8b2022-03-23 15:58:46 +0000148 $(ARMNN_THIRD_PARTY_PATH) \
149 $(ARMNN_PROFILING_HEADER_PATH) \
150 $(ARMNN_COMMON_PROFILING_HEADER_PATH) \
151 $(ARMNN_CLIENT_PROFILING_HEADER_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000152 $(ARMNN_HEADER_PATH) \
153 $(ARMNN_UTILS_HEADER_PATH) \
154 $(OPENCL_HEADER_PATH) \
155 $(NN_HEADER_PATH)
156
157LOCAL_CFLAGS := \
158 -std=$(CPP_VERSION) \
159 -fexceptions \
160 -Werror \
161 -Wno-format-security
162
Kevin Mayec1e5b82020-02-26 17:00:39 +0000163# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100164ifeq ($(ANDROID_R),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000165LOCAL_CFLAGS+= \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000166 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100167endif
Mike Kelly0e415132020-02-11 11:21:25 +0000168
Sadik Armagan188675f2021-02-12 17:16:42 +0000169ifeq ($(ANDROID_S),1)
170LOCAL_CFLAGS+= \
171 -DARMNN_ANDROID_S
172endif
173
Mike Kelly0e415132020-02-11 11:21:25 +0000174ifeq ($(ARMNN_DRIVER_DEBUG),1)
175LOCAL_CFLAGS+= \
176 -UNDEBUG
Ryan OSheabc9721d2022-05-31 17:24:48 +0100177LOCAL_LDFLAGS += \
178 -Wl,-Map=libarmnndriver10MapFile.map
Mike Kelly0e415132020-02-11 11:21:25 +0000179endif # ARMNN_DRIVER_DEBUG == 1
180
Mike Kelly0e415132020-02-11 11:21:25 +0000181ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
182LOCAL_CFLAGS += \
183 -DARMCOMPUTECL_ENABLED
184endif # ARMNN_COMPUTE_CL_ENABLED == 1
185
186ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
187LOCAL_CFLAGS += \
188 -DARMCOMPUTENEON_ENABLED
189endif # ARMNN_COMPUTE_NEON_ENABLED == 1
190
191ifeq ($(ARMNN_REF_ENABLED),1)
192LOCAL_CFLAGS += \
193 -DARMNNREF_ENABLED
194endif # ARMNN_REF_ENABLED == 1
195
FrancisMurtagh594b2832020-06-15 17:17:56 +0100196ifeq ($(ARMNN_ETHOSN_ENABLED),1)
197LOCAL_CFLAGS += \
198 -DARMNNETHOSN_ENABLED
199endif # ARMNN_ETHOSN_ENABLED == 1
200
Mike Kelly0e415132020-02-11 11:21:25 +0000201LOCAL_SRC_FILES := \
202 1.0/ArmnnDriverImpl.cpp \
203 1.0/HalPolicy.cpp \
204 ArmnnDriverImpl.cpp \
205 DriverOptions.cpp \
206 ArmnnDevice.cpp \
207 ArmnnPreparedModel.cpp \
208 ModelToINetworkConverter.cpp \
209 RequestThread.cpp \
210 Utils.cpp \
211 ConversionUtils.cpp
212
213LOCAL_STATIC_LIBRARIES := \
214 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000215 libflatbuffers-framework \
Zingo Andersene02562b2021-12-14 13:58:56 +0100216 arm_compute_library \
217 $(ARMNN_BACKEND_STATIC_LIBRARIES)
Mike Kelly0e415132020-02-11 11:21:25 +0000218
219LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
220
221LOCAL_SHARED_LIBRARIES := \
222 libbase \
223 libhidlbase \
224 libhidltransport \
225 libhidlmemory \
226 liblog \
227 libutils \
228 android.hardware.neuralnetworks@1.0 \
229 android.hidl.allocator@1.0 \
230 android.hidl.memory@1.0
231
232ifeq ($(P_OR_LATER),1)
233# Required to build the 1.0 version of the NN Driver on Android P and later versions,
234# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
235LOCAL_SHARED_LIBRARIES+= \
236 android.hardware.neuralnetworks@1.1
237endif # PLATFORM_VERSION == 9
238
239ifeq ($(Q_OR_LATER),1)
240LOCAL_SHARED_LIBRARIES+= \
241 libnativewindow \
242 libui \
243 libfmq \
244 libcutils \
245 android.hardware.neuralnetworks@1.2
Kevin Mayec1e5b82020-02-26 17:00:39 +0000246endif # Q or later
247
248ifeq ($(R_OR_LATER),1)
249LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100250 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000251 android.hardware.neuralnetworks@1.3
252endif # R or later
Mike Kelly0e415132020-02-11 11:21:25 +0000253
alered01dbae2472020-04-07 12:31:10 +0100254ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000255LOCAL_SHARED_LIBRARIES+= \
256 libOpenCL
257endif
258
259include $(BUILD_STATIC_LIBRARY)
260
261ifeq ($(P_OR_LATER),1)
262# The following target is available starting from Android P
263
264#######################
265# libarmnn-driver@1.1 #
266#######################
267include $(CLEAR_VARS)
268
269LOCAL_MODULE := libarmnn-driver@1.1
270ifeq ($(Q_OR_LATER),1)
271# "eng" is deprecated in Android Q
272LOCAL_MODULE_TAGS := optional
273else
274LOCAL_MODULE_TAGS := eng optional
275endif
276#PRODUCT_PACKAGES_ENG := libarmnn-driver@1.1
277LOCAL_ARM_MODE := arm
278LOCAL_PROPRIETARY_MODULE := true
279# Mark source files as dependent on Android.mk
280LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
281
282LOCAL_C_INCLUDES := \
Mike Kellya3ba4be2022-05-20 17:18:50 +0100283 $(ARMNN_GENERATED_HEADER_PATH) \
Jim Flynn06a4a8b2022-03-23 15:58:46 +0000284 $(ARMNN_THIRD_PARTY_PATH) \
285 $(ARMNN_PROFILING_HEADER_PATH) \
286 $(ARMNN_COMMON_PROFILING_HEADER_PATH) \
287 $(ARMNN_CLIENT_PROFILING_HEADER_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000288 $(ARMNN_HEADER_PATH) \
289 $(ARMNN_UTILS_HEADER_PATH) \
290 $(OPENCL_HEADER_PATH) \
291 $(NN_HEADER_PATH)
292
293LOCAL_CFLAGS := \
294 -std=$(CPP_VERSION) \
295 -fexceptions \
296 -Werror \
Finn Williamsf769f292021-06-25 12:53:09 +0100297 -Wall \
298 -Wextra \
299 -Wno-unused-function \
Mike Kelly0e415132020-02-11 11:21:25 +0000300 -Wno-format-security \
Mike Kelly0e415132020-02-11 11:21:25 +0000301 -DARMNN_ANDROID_NN_V1_1
302
303ifeq ($(ARMNN_DRIVER_DEBUG),1)
304LOCAL_CFLAGS+= \
305 -UNDEBUG
Ryan OSheabc9721d2022-05-31 17:24:48 +0100306LOCAL_LDFLAGS += \
307 -Wl,-Map=libarmnnDriver11MapFile.map
Mike Kelly0e415132020-02-11 11:21:25 +0000308endif # ARMNN_DRIVER_DEBUG == 1
309
Kevin Mayec1e5b82020-02-26 17:00:39 +0000310# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100311ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000312LOCAL_CFLAGS+= \
313 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100314endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000315
Sadik Armagan188675f2021-02-12 17:16:42 +0000316ifeq ($(ANDROID_S),1)
317LOCAL_CFLAGS+= \
318 -DARMNN_ANDROID_S
319endif
320
Mike Kelly0e415132020-02-11 11:21:25 +0000321ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
322LOCAL_CFLAGS += \
323 -DARMCOMPUTECL_ENABLED
324endif # ARMNN_COMPUTE_CL_ENABLED == 1
325
326ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
327LOCAL_CFLAGS += \
328 -DARMCOMPUTENEON_ENABLED
329endif # ARMNN_COMPUTE_NEON_ENABLED == 1
330
331ifeq ($(ARMNN_REF_ENABLED),1)
332LOCAL_CFLAGS += \
333 -DARMNNREF_ENABLED
334endif # ARMNN_REF_ENABLED == 1
335
FrancisMurtagh594b2832020-06-15 17:17:56 +0100336ifeq ($(ARMNN_ETHOSN_ENABLED),1)
337LOCAL_CFLAGS += \
338 -DARMNNETHOSN_ENABLED
339endif # ARMNN_ETHOSN_ENABLED == 1
340
Mike Kelly0e415132020-02-11 11:21:25 +0000341LOCAL_SRC_FILES := \
342 1.0/ArmnnDriverImpl.cpp \
343 1.0/HalPolicy.cpp \
344 1.1/ArmnnDriverImpl.cpp \
345 1.1/HalPolicy.cpp \
346 ArmnnDriverImpl.cpp \
347 DriverOptions.cpp \
348 ArmnnDevice.cpp \
349 ArmnnPreparedModel.cpp \
350 ModelToINetworkConverter.cpp \
351 RequestThread.cpp \
352 Utils.cpp \
353 ConversionUtils.cpp
354
355LOCAL_STATIC_LIBRARIES := \
356 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000357 libflatbuffers-framework \
Zingo Andersene02562b2021-12-14 13:58:56 +0100358 arm_compute_library \
359 $(ARMNN_BACKEND_STATIC_LIBRARIES)
Mike Kelly0e415132020-02-11 11:21:25 +0000360
361LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
362
363LOCAL_SHARED_LIBRARIES := \
364 libbase \
365 libhidlbase \
366 libhidltransport \
367 libhidlmemory \
368 liblog \
369 libutils \
370 android.hardware.neuralnetworks@1.0 \
371 android.hardware.neuralnetworks@1.1 \
372 android.hidl.allocator@1.0 \
373 android.hidl.memory@1.0
374
375ifeq ($(Q_OR_LATER),1)
376LOCAL_SHARED_LIBRARIES+= \
377 libnativewindow \
378 libui \
379 libfmq \
380 libcutils \
381 android.hardware.neuralnetworks@1.2
382endif # PLATFORM_VERSION == Q
383
Kevin Mayec1e5b82020-02-26 17:00:39 +0000384ifeq ($(R_OR_LATER),1)
385LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100386 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000387 android.hardware.neuralnetworks@1.3
388endif # R or later
389
alered017c395b22020-04-03 15:37:24 +0100390ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000391LOCAL_SHARED_LIBRARIES+= \
392 libOpenCL
393endif
394
395include $(BUILD_STATIC_LIBRARY)
396
397endif # PLATFORM_VERSION == 9
398
399ifeq ($(Q_OR_LATER),1)
400# The following target is available starting from Android Q
401
402#######################
403# libarmnn-driver@1.2 #
404#######################
405include $(CLEAR_VARS)
406
407LOCAL_MODULE := libarmnn-driver@1.2
408LOCAL_MODULE_TAGS := optional
409LOCAL_ARM_MODE := arm
410LOCAL_PROPRIETARY_MODULE := true
411# Mark source files as dependent on Android.mk
412LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
413
414LOCAL_C_INCLUDES := \
Mike Kellya3ba4be2022-05-20 17:18:50 +0100415 $(ARMNN_GENERATED_HEADER_PATH) \
Jim Flynn06a4a8b2022-03-23 15:58:46 +0000416 $(ARMNN_THIRD_PARTY_PATH) \
417 $(ARMNN_PROFILING_HEADER_PATH) \
418 $(ARMNN_COMMON_PROFILING_HEADER_PATH) \
419 $(ARMNN_CLIENT_PROFILING_HEADER_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000420 $(ARMNN_HEADER_PATH) \
421 $(ARMNN_UTILS_HEADER_PATH) \
422 $(OPENCL_HEADER_PATH) \
423 $(NN_HEADER_PATH)
424
425LOCAL_CFLAGS := \
426 -std=$(CPP_VERSION) \
427 -fexceptions \
428 -Werror \
Finn Williamsf769f292021-06-25 12:53:09 +0100429 -Wall \
430 -Wextra \
431 -Wno-unused-function \
Mike Kelly0e415132020-02-11 11:21:25 +0000432 -Wno-format-security \
Mike Kelly0e415132020-02-11 11:21:25 +0000433 -DARMNN_ANDROID_NN_V1_2
434
435ifeq ($(ARMNN_DRIVER_DEBUG),1)
436LOCAL_CFLAGS+= \
437 -UNDEBUG
Ryan OSheabc9721d2022-05-31 17:24:48 +0100438LOCAL_LDFLAGS += \
439 -Wl,-Map=libarmnnDriver12MapFile.map
Mike Kelly0e415132020-02-11 11:21:25 +0000440endif # ARMNN_DRIVER_DEBUG == 1
441
Kevin Mayec1e5b82020-02-26 17:00:39 +0000442# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100443ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000444LOCAL_CFLAGS+= \
445 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100446endif
Mike Kelly0e415132020-02-11 11:21:25 +0000447
Sadik Armagan188675f2021-02-12 17:16:42 +0000448ifeq ($(ANDROID_S),1)
449LOCAL_CFLAGS+= \
450 -DARMNN_ANDROID_S
451endif
452
Mike Kelly0e415132020-02-11 11:21:25 +0000453ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
454LOCAL_CFLAGS += \
455 -DARMCOMPUTECL_ENABLED
456endif # ARMNN_COMPUTE_CL_ENABLED == 1
457
458ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
459LOCAL_CFLAGS += \
460 -DARMCOMPUTENEON_ENABLED
461endif # ARMNN_COMPUTE_NEON_ENABLED == 1
462
463ifeq ($(ARMNN_REF_ENABLED),1)
464LOCAL_CFLAGS += \
465 -DARMNNREF_ENABLED
466endif # ARMNN_REF_ENABLED == 1
467
FrancisMurtagh594b2832020-06-15 17:17:56 +0100468ifeq ($(ARMNN_ETHOSN_ENABLED),1)
469LOCAL_CFLAGS += \
470 -DARMNNETHOSN_ENABLED
471endif # ARMNN_ETHOSN_ENABLED == 1
472
Mike Kelly0e415132020-02-11 11:21:25 +0000473LOCAL_SRC_FILES := \
474 1.0/ArmnnDriverImpl.cpp \
475 1.0/HalPolicy.cpp \
476 1.1/ArmnnDriverImpl.cpp \
477 1.1/HalPolicy.cpp \
478 1.2/ArmnnDriverImpl.cpp \
479 1.2/HalPolicy.cpp \
480 ArmnnDevice.cpp \
481 ArmnnDriverImpl.cpp \
482 ArmnnPreparedModel.cpp \
483 ArmnnPreparedModel_1_2.cpp \
Sadik Armagan0a2dfab2021-10-06 16:41:44 +0100484 CacheDataHandler.cpp \
Mike Kelly0e415132020-02-11 11:21:25 +0000485 ConversionUtils.cpp \
486 DriverOptions.cpp \
487 ModelToINetworkConverter.cpp \
488 RequestThread.cpp \
489 Utils.cpp
490
491LOCAL_STATIC_LIBRARIES := \
492 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000493 libflatbuffers-framework \
Zingo Andersene02562b2021-12-14 13:58:56 +0100494 arm_compute_library \
495 $(ARMNN_BACKEND_STATIC_LIBRARIES)
Mike Kelly0e415132020-02-11 11:21:25 +0000496
497LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
498
499LOCAL_SHARED_LIBRARIES := \
500 libbase \
501 libhidlbase \
502 libhidltransport \
503 libhidlmemory \
504 liblog \
505 libutils \
506 libnativewindow \
507 libui \
508 libfmq \
509 libcutils \
510 android.hidl.allocator@1.0 \
511 android.hidl.memory@1.0 \
512 android.hardware.neuralnetworks@1.0 \
513 android.hardware.neuralnetworks@1.1 \
514 android.hardware.neuralnetworks@1.2
515
Kevin Mayec1e5b82020-02-26 17:00:39 +0000516ifeq ($(R_OR_LATER),1)
517LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100518 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000519 android.hardware.neuralnetworks@1.3
520endif # R or later
521
alered017c395b22020-04-03 15:37:24 +0100522ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000523LOCAL_SHARED_LIBRARIES+= \
524 libOpenCL
525endif
526
527include $(BUILD_STATIC_LIBRARY)
528
529endif # PLATFORM_VERSION == Q
530
Kevin May42477c12020-03-26 13:34:14 +0000531ifeq ($(R_OR_LATER),1)
532# The following target is available starting from Android R
533
534#######################
535# libarmnn-driver@1.3 #
536#######################
537include $(CLEAR_VARS)
538
539LOCAL_MODULE := libarmnn-driver@1.3
540LOCAL_MODULE_TAGS := optional
541LOCAL_ARM_MODE := arm
542LOCAL_PROPRIETARY_MODULE := true
543# Mark source files as dependent on Android.mk
544LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
545
546LOCAL_C_INCLUDES := \
Mike Kellya3ba4be2022-05-20 17:18:50 +0100547 $(ARMNN_GENERATED_HEADER_PATH) \
Jim Flynn06a4a8b2022-03-23 15:58:46 +0000548 $(ARMNN_THIRD_PARTY_PATH) \
549 $(ARMNN_PROFILING_HEADER_PATH) \
550 $(ARMNN_COMMON_PROFILING_HEADER_PATH) \
551 $(ARMNN_CLIENT_PROFILING_HEADER_PATH) \
Kevin May42477c12020-03-26 13:34:14 +0000552 $(ARMNN_HEADER_PATH) \
553 $(ARMNN_UTILS_HEADER_PATH) \
554 $(OPENCL_HEADER_PATH) \
555 $(NN_HEADER_PATH)
556
557LOCAL_CFLAGS := \
558 -std=$(CPP_VERSION) \
559 -fexceptions \
560 -Werror \
Finn Williamsf769f292021-06-25 12:53:09 +0100561 -Wall \
562 -Wextra \
563 -Wno-unused-function \
Kevin May42477c12020-03-26 13:34:14 +0000564 -Wno-format-security \
Kevin May42477c12020-03-26 13:34:14 +0000565 -DARMNN_ANDROID_NN_V1_3 \
Sadik Armagan188675f2021-02-12 17:16:42 +0000566
567ifeq ($(ANDROID_R),1)
568LOCAL_CFLAGS+= \
Kevin May42477c12020-03-26 13:34:14 +0000569 -DARMNN_ANDROID_R
Sadik Armagan188675f2021-02-12 17:16:42 +0000570endif
571
572ifeq ($(ANDROID_S),1)
573LOCAL_CFLAGS+= \
574 -DARMNN_ANDROID_S
575endif
Kevin May42477c12020-03-26 13:34:14 +0000576
577ifeq ($(ARMNN_DRIVER_DEBUG),1)
578LOCAL_CFLAGS+= \
579 -UNDEBUG
Ryan OSheabc9721d2022-05-31 17:24:48 +0100580LOCAL_LDFLAGS += \
581 -Wl,-Map=libarmnnDriver13MapFile.map
Kevin May42477c12020-03-26 13:34:14 +0000582endif # ARMNN_DRIVER_DEBUG == 1
583
584ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
585LOCAL_CFLAGS += \
586 -DARMCOMPUTECL_ENABLED
587endif # ARMNN_COMPUTE_CL_ENABLED == 1
588
589ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
590LOCAL_CFLAGS += \
591 -DARMCOMPUTENEON_ENABLED
592endif # ARMNN_COMPUTE_NEON_ENABLED == 1
593
594ifeq ($(ARMNN_REF_ENABLED),1)
595LOCAL_CFLAGS += \
596 -DARMNNREF_ENABLED
597endif # ARMNN_REF_ENABLED == 1
598
FrancisMurtagh594b2832020-06-15 17:17:56 +0100599ifeq ($(ARMNN_ETHOSN_ENABLED),1)
600LOCAL_CFLAGS += \
601 -DARMNNETHOSN_ENABLED
602endif # ARMNN_ETHOSN_ENABLED == 1
603
Narumol Prangnawaratcad4e912020-06-02 12:07:43 +0100604LOCAL_CFLAGS += \
605 -DRETIRE_RATE=$(RETIRE_RATE)
606
Kevin May42477c12020-03-26 13:34:14 +0000607LOCAL_SRC_FILES := \
608 1.0/ArmnnDriverImpl.cpp \
609 1.0/HalPolicy.cpp \
610 1.1/ArmnnDriverImpl.cpp \
611 1.1/HalPolicy.cpp \
612 1.2/ArmnnDriverImpl.cpp \
613 1.2/HalPolicy.cpp \
614 1.3/ArmnnDriverImpl.cpp \
615 1.3/HalPolicy.cpp \
616 ArmnnDevice.cpp \
617 ArmnnDriverImpl.cpp \
618 ArmnnPreparedModel.cpp \
619 ArmnnPreparedModel_1_2.cpp \
620 ArmnnPreparedModel_1_3.cpp \
Sadik Armagan0a2dfab2021-10-06 16:41:44 +0100621 CacheDataHandler.cpp \
Kevin May42477c12020-03-26 13:34:14 +0000622 ConversionUtils.cpp \
623 DriverOptions.cpp \
624 ModelToINetworkConverter.cpp \
625 RequestThread.cpp \
Narumol Prangnawaratcad4e912020-06-02 12:07:43 +0100626 RequestThread_1_3.cpp \
Kevin May42477c12020-03-26 13:34:14 +0000627 Utils.cpp
628
629LOCAL_STATIC_LIBRARIES := \
630 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000631 libflatbuffers-framework \
Zingo Andersene02562b2021-12-14 13:58:56 +0100632 arm_compute_library \
633 $(ARMNN_BACKEND_STATIC_LIBRARIES)
Kevin May42477c12020-03-26 13:34:14 +0000634
635LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
636
637LOCAL_SHARED_LIBRARIES := \
638 libbase \
639 libhidlbase \
640 libhidltransport \
641 libhidlmemory \
642 liblog \
643 libutils \
644 libnativewindow \
645 libui \
646 libfmq \
647 libcutils \
648 android.hidl.allocator@1.0 \
649 android.hidl.memory@1.0 \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100650 libsync \
Kevin May42477c12020-03-26 13:34:14 +0000651 android.hardware.neuralnetworks@1.0 \
652 android.hardware.neuralnetworks@1.1 \
653 android.hardware.neuralnetworks@1.2 \
654 android.hardware.neuralnetworks@1.3
655
alered017c395b22020-04-03 15:37:24 +0100656ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Kevin May42477c12020-03-26 13:34:14 +0000657LOCAL_SHARED_LIBRARIES+= \
658 libOpenCL
659endif
660
661include $(BUILD_STATIC_LIBRARY)
662
663endif # PLATFORM_VERSION == R
664
Mike Kelly0e415132020-02-11 11:21:25 +0000665#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100666# android.hardware.neuralnetworks@1.0-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000667#####################################################
668include $(CLEAR_VARS)
669
Kevin Mayabc95d02020-05-15 15:34:03 +0100670LOCAL_MODULE := android.hardware.neuralnetworks@1.0-service-armnn
671LOCAL_INIT_RC := android.hardware.neuralnetworks@1.0-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000672ifeq ($(Q_OR_LATER),1)
673# "eng" is deprecated in Android Q
674LOCAL_MODULE_TAGS := optional
675else
676LOCAL_MODULE_TAGS := eng optional
677endif
678LOCAL_ARM_MODE := arm
679LOCAL_MODULE_RELATIVE_PATH := hw
680LOCAL_PROPRIETARY_MODULE := true
681# Mark source files as dependent on Android.mk
682LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
683
684LOCAL_C_INCLUDES := \
Mike Kellya3ba4be2022-05-20 17:18:50 +0100685 $(ARMNN_GENERATED_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100686 $(ARMNN_THIRD_PARTY_PATH) \
Jim Flynn06a4a8b2022-03-23 15:58:46 +0000687 $(ARMNN_PROFILING_HEADER_PATH) \
688 $(ARMNN_COMMON_PROFILING_HEADER_PATH) \
689 $(ARMNN_CLIENT_PROFILING_HEADER_PATH) \
690 $(ARMNN_HEADER_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000691 $(NN_HEADER_PATH)
692
693LOCAL_CFLAGS := \
694 -std=$(CPP_VERSION) \
695 -fexceptions
696
697ifeq ($(ARMNN_DRIVER_DEBUG),1)
698LOCAL_CFLAGS += \
699 -UNDEBUG
Ryan OSheabc9721d2022-05-31 17:24:48 +0100700LOCAL_LDFLAGS += \
701 -Wl,-Map=neuralNetworks10MapFile.map
Mike Kelly0e415132020-02-11 11:21:25 +0000702endif # ARMNN_DRIVER_DEBUG == 1
703
Kevin Mayec1e5b82020-02-26 17:00:39 +0000704# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100705ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000706LOCAL_CFLAGS+= \
707 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100708endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000709
Sadik Armagan188675f2021-02-12 17:16:42 +0000710ifeq ($(ANDROID_S),1)
711LOCAL_CFLAGS+= \
712 -DARMNN_ANDROID_S
713endif
714
Mike Kelly0e415132020-02-11 11:21:25 +0000715LOCAL_SRC_FILES := \
716 service.cpp
717
718LOCAL_STATIC_LIBRARIES := \
719 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000720 libflatbuffers-framework \
Zingo Andersenf65b2662021-10-27 07:04:11 +0200721 arm_compute_library \
722 $(ARMNN_BACKEND_STATIC_LIBRARIES)
Mike Kelly0e415132020-02-11 11:21:25 +0000723
724LOCAL_WHOLE_STATIC_LIBRARIES := \
725 libarmnn-driver@1.0
726
727LOCAL_SHARED_LIBRARIES := \
728 libbase \
729 libhidlbase \
730 libhidltransport \
731 libhidlmemory \
732 libdl \
733 libhardware \
734 liblog \
735 libtextclassifier_hash \
736 libutils \
737 android.hardware.neuralnetworks@1.0 \
738 android.hidl.allocator@1.0 \
Zingo Andersenf65b2662021-10-27 07:04:11 +0200739 android.hidl.memory@1.0 \
740 $(ARMNN_BACKEND_SHARED_LIBRARIES)
Mike Kelly0e415132020-02-11 11:21:25 +0000741
742ifeq ($(P_OR_LATER),1)
743# Required to build the 1.0 version of the NN Driver on Android P and later versions,
744# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
745LOCAL_SHARED_LIBRARIES+= \
746 android.hardware.neuralnetworks@1.1
747endif # PLATFORM_VERSION == 9
Kevin Mayec1e5b82020-02-26 17:00:39 +0000748
Mike Kelly0e415132020-02-11 11:21:25 +0000749ifeq ($(Q_OR_LATER),1)
750LOCAL_SHARED_LIBRARIES+= \
751 libnativewindow \
752 libui \
753 libfmq \
754 libcutils \
755 android.hardware.neuralnetworks@1.2
756endif # PLATFORM_VERSION == Q
757
Kevin Mayec1e5b82020-02-26 17:00:39 +0000758ifeq ($(R_OR_LATER),1)
759LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100760 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000761 android.hardware.neuralnetworks@1.3
762endif # R or later
763
alered017c395b22020-04-03 15:37:24 +0100764ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000765LOCAL_SHARED_LIBRARIES+= \
766 libOpenCL
767endif
768
769include $(BUILD_EXECUTABLE)
770
771ifeq ($(P_OR_LATER),1)
772# The following target is available starting from Android P
773
774#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100775# android.hardware.neuralnetworks@1.1-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000776#####################################################
777include $(CLEAR_VARS)
778
Kevin Mayabc95d02020-05-15 15:34:03 +0100779LOCAL_MODULE := android.hardware.neuralnetworks@1.1-service-armnn
780LOCAL_INIT_RC := android.hardware.neuralnetworks@1.1-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000781ifeq ($(Q_OR_LATER),1)
782# "eng" is deprecated in Android Q
783LOCAL_MODULE_TAGS := optional
784else
785LOCAL_MODULE_TAGS := eng optional
786endif
787LOCAL_ARM_MODE := arm
788LOCAL_MODULE_RELATIVE_PATH := hw
789LOCAL_PROPRIETARY_MODULE := true
790# Mark source files as dependent on Android.mk
791LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
792
793LOCAL_C_INCLUDES := \
Mike Kellya3ba4be2022-05-20 17:18:50 +0100794 $(ARMNN_GENERATED_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100795 $(ARMNN_THIRD_PARTY_PATH) \
Jim Flynn06a4a8b2022-03-23 15:58:46 +0000796 $(ARMNN_PROFILING_HEADER_PATH) \
797 $(ARMNN_COMMON_PROFILING_HEADER_PATH) \
798 $(ARMNN_CLIENT_PROFILING_HEADER_PATH) \
799 $(ARMNN_HEADER_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000800 $(NN_HEADER_PATH)
801
802LOCAL_CFLAGS := \
803 -std=$(CPP_VERSION) \
804 -fexceptions \
805 -DARMNN_ANDROID_NN_V1_1
806
807ifeq ($(ARMNN_DRIVER_DEBUG),1)
808LOCAL_CFLAGS += \
809 -UNDEBUG
Ryan OSheabc9721d2022-05-31 17:24:48 +0100810LOCAL_LDFLAGS += \
811 -Wl,-Map=neuralNetworks11MapFile.map
Mike Kelly0e415132020-02-11 11:21:25 +0000812endif # ARMNN_DRIVER_DEBUG == 1
813
Kevin Mayec1e5b82020-02-26 17:00:39 +0000814# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100815ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000816LOCAL_CFLAGS+= \
817 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100818endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000819
Sadik Armagan188675f2021-02-12 17:16:42 +0000820ifeq ($(ANDROID_S),1)
821LOCAL_CFLAGS+= \
822 -DARMNN_ANDROID_S
823endif
824
Mike Kelly0e415132020-02-11 11:21:25 +0000825LOCAL_SRC_FILES := \
826 service.cpp
827
828LOCAL_STATIC_LIBRARIES := \
829 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000830 libflatbuffers-framework \
Zingo Andersenf65b2662021-10-27 07:04:11 +0200831 arm_compute_library \
832 $(ARMNN_BACKEND_STATIC_LIBRARIES)
Mike Kelly0e415132020-02-11 11:21:25 +0000833
834LOCAL_WHOLE_STATIC_LIBRARIES := \
835 libarmnn-driver@1.1
836
837LOCAL_SHARED_LIBRARIES := \
838 libbase \
839 libhidlbase \
840 libhidltransport \
841 libhidlmemory \
842 libdl \
843 libhardware \
844 liblog \
845 libtextclassifier_hash \
846 libutils \
847 android.hardware.neuralnetworks@1.0 \
848 android.hardware.neuralnetworks@1.1 \
849 android.hidl.allocator@1.0 \
Zingo Andersenf65b2662021-10-27 07:04:11 +0200850 android.hidl.memory@1.0 \
851 $(ARMNN_BACKEND_SHARED_LIBRARIES)
Mike Kelly0e415132020-02-11 11:21:25 +0000852
853ifeq ($(Q_OR_LATER),1)
854LOCAL_SHARED_LIBRARIES+= \
855 libnativewindow \
856 libui \
857 libfmq \
858 libcutils \
859 android.hardware.neuralnetworks@1.2
860endif # PLATFORM_VERSION == Q
861
Kevin Mayec1e5b82020-02-26 17:00:39 +0000862ifeq ($(R_OR_LATER),1)
863LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100864 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000865 android.hardware.neuralnetworks@1.3
866endif # PLATFORM_VERSION == R
867
alered017c395b22020-04-03 15:37:24 +0100868ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000869LOCAL_SHARED_LIBRARIES+= \
870 libOpenCL
871endif
872
873include $(BUILD_EXECUTABLE)
874
875endif # PLATFORM_VERSION == 9
876
877ifeq ($(Q_OR_LATER),1)
878# The following target is available starting from Android Q
879
880#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100881# android.hardware.neuralnetworks@1.2-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000882#####################################################
883include $(CLEAR_VARS)
884
Kevin Mayabc95d02020-05-15 15:34:03 +0100885LOCAL_MODULE := android.hardware.neuralnetworks@1.2-service-armnn
886LOCAL_INIT_RC := android.hardware.neuralnetworks@1.2-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000887LOCAL_MODULE_TAGS := optional
888LOCAL_ARM_MODE := arm
889LOCAL_MODULE_RELATIVE_PATH := hw
890LOCAL_PROPRIETARY_MODULE := true
891# Mark source files as dependent on Android.mk
892LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
893
894LOCAL_C_INCLUDES := \
Mike Kellya3ba4be2022-05-20 17:18:50 +0100895 $(ARMNN_GENERATED_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100896 $(ARMNN_THIRD_PARTY_PATH) \
Jim Flynn06a4a8b2022-03-23 15:58:46 +0000897 $(ARMNN_PROFILING_HEADER_PATH) \
898 $(ARMNN_COMMON_PROFILING_HEADER_PATH) \
899 $(ARMNN_CLIENT_PROFILING_HEADER_PATH) \
900 $(ARMNN_HEADER_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000901 $(NN_HEADER_PATH)
902
903LOCAL_CFLAGS := \
904 -std=$(CPP_VERSION) \
905 -fexceptions \
906 -DARMNN_ANDROID_NN_V1_2 \
Mike Kelly0e415132020-02-11 11:21:25 +0000907
908ifeq ($(ARMNN_DRIVER_DEBUG),1)
909LOCAL_CFLAGS += \
910 -UNDEBUG
Ryan OSheabc9721d2022-05-31 17:24:48 +0100911LOCAL_LDFLAGS += \
912 -Wl,-Map=neuralNetworks12MapFile.map
Mike Kelly0e415132020-02-11 11:21:25 +0000913endif # ARMNN_DRIVER_DEBUG == 1
914
Kevin Mayec1e5b82020-02-26 17:00:39 +0000915# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100916ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000917LOCAL_CFLAGS+= \
918 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100919endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000920
Sadik Armagan188675f2021-02-12 17:16:42 +0000921ifeq ($(ANDROID_S),1)
922LOCAL_CFLAGS+= \
923 -DARMNN_ANDROID_S
924endif
925
Mike Kelly0e415132020-02-11 11:21:25 +0000926LOCAL_SRC_FILES := \
927 service.cpp
928
929LOCAL_STATIC_LIBRARIES := \
930 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000931 libflatbuffers-framework \
Zingo Andersenf65b2662021-10-27 07:04:11 +0200932 arm_compute_library \
933 $(ARMNN_BACKEND_STATIC_LIBRARIES)
Mike Kelly0e415132020-02-11 11:21:25 +0000934
935LOCAL_WHOLE_STATIC_LIBRARIES := \
936 libarmnn-driver@1.2
937
938LOCAL_SHARED_LIBRARIES := \
939 libbase \
940 libhidlbase \
941 libhidltransport \
942 libhidlmemory \
943 libdl \
944 libhardware \
945 liblog \
946 libtextclassifier_hash \
947 libutils \
948 libnativewindow \
949 libui \
950 libfmq \
951 libcutils \
952 android.hidl.allocator@1.0 \
953 android.hidl.memory@1.0 \
954 android.hardware.neuralnetworks@1.0 \
955 android.hardware.neuralnetworks@1.1 \
Zingo Andersenf65b2662021-10-27 07:04:11 +0200956 android.hardware.neuralnetworks@1.2 \
957 $(ARMNN_BACKEND_SHARED_LIBRARIES)
Mike Kelly0e415132020-02-11 11:21:25 +0000958
Kevin Mayec1e5b82020-02-26 17:00:39 +0000959ifeq ($(R_OR_LATER),1)
960LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100961 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000962 android.hardware.neuralnetworks@1.3
963endif # R or later
964
alered017c395b22020-04-03 15:37:24 +0100965ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000966LOCAL_SHARED_LIBRARIES+= \
967 libOpenCL
968endif
969
970include $(BUILD_EXECUTABLE)
971
972endif # PLATFORM_VERSION == Q
973
Kevin May42477c12020-03-26 13:34:14 +0000974ifeq ($(R_OR_LATER),1)
975# The following target is available starting from Android R
976
977#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100978# android.hardware.neuralnetworks@1.3-service-armnn #
Kevin May42477c12020-03-26 13:34:14 +0000979#####################################################
980include $(CLEAR_VARS)
981
Kevin Mayabc95d02020-05-15 15:34:03 +0100982LOCAL_MODULE := android.hardware.neuralnetworks@1.3-service-armnn
983LOCAL_INIT_RC := android.hardware.neuralnetworks@1.3-service-armnn.rc
Kevin May42477c12020-03-26 13:34:14 +0000984LOCAL_MODULE_TAGS := optional
985LOCAL_ARM_MODE := arm
986LOCAL_MODULE_RELATIVE_PATH := hw
987LOCAL_PROPRIETARY_MODULE := true
988# Mark source files as dependent on Android.mk
989LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
990
991LOCAL_C_INCLUDES := \
Mike Kellya3ba4be2022-05-20 17:18:50 +0100992 $(ARMNN_GENERATED_HEADER_PATH) \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100993 $(ARMNN_THIRD_PARTY_PATH) \
Jim Flynn06a4a8b2022-03-23 15:58:46 +0000994 $(ARMNN_PROFILING_HEADER_PATH) \
995 $(ARMNN_COMMON_PROFILING_HEADER_PATH) \
996 $(ARMNN_CLIENT_PROFILING_HEADER_PATH) \
997 $(ARMNN_HEADER_PATH) \
Kevin May42477c12020-03-26 13:34:14 +0000998 $(NN_HEADER_PATH)
999
1000LOCAL_CFLAGS := \
1001 -std=$(CPP_VERSION) \
1002 -fexceptions \
1003 -DARMNN_ANDROID_NN_V1_3 \
Sadik Armagan188675f2021-02-12 17:16:42 +00001004
1005ifeq ($(ANDROID_R),1)
1006LOCAL_CFLAGS+= \
Kevin May42477c12020-03-26 13:34:14 +00001007 -DARMNN_ANDROID_R
Sadik Armagan188675f2021-02-12 17:16:42 +00001008endif
1009
1010ifeq ($(ANDROID_S),1)
1011LOCAL_CFLAGS+= \
1012 -DARMNN_ANDROID_S
1013endif
Kevin May42477c12020-03-26 13:34:14 +00001014
1015ifeq ($(ARMNN_DRIVER_DEBUG),1)
1016LOCAL_CFLAGS += \
1017 -UNDEBUG
Ryan OSheabc9721d2022-05-31 17:24:48 +01001018LOCAL_LDFLAGS += \
1019 -Wl,-Map=neuralNetworks13MapFile.map
Kevin May42477c12020-03-26 13:34:14 +00001020endif # ARMNN_DRIVER_DEBUG == 1
1021
1022LOCAL_SRC_FILES := \
1023 service.cpp
1024
1025LOCAL_STATIC_LIBRARIES := \
1026 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +00001027 libflatbuffers-framework \
Zingo Andersenf65b2662021-10-27 07:04:11 +02001028 arm_compute_library \
1029 $(ARMNN_BACKEND_STATIC_LIBRARIES)
Kevin May42477c12020-03-26 13:34:14 +00001030
1031LOCAL_WHOLE_STATIC_LIBRARIES := \
1032 libarmnn-driver@1.3
1033
1034LOCAL_SHARED_LIBRARIES := \
1035 libbase \
1036 libhidlbase \
1037 libhidltransport \
1038 libhidlmemory \
1039 libdl \
1040 libhardware \
1041 liblog \
1042 libtextclassifier_hash \
1043 libutils \
1044 libnativewindow \
1045 libui \
1046 libfmq \
1047 libcutils \
Sadik Armagand7be72e2020-04-23 12:56:05 +01001048 libsync \
Kevin May42477c12020-03-26 13:34:14 +00001049 android.hidl.allocator@1.0 \
1050 android.hidl.memory@1.0 \
1051 android.hardware.neuralnetworks@1.0 \
1052 android.hardware.neuralnetworks@1.1 \
1053 android.hardware.neuralnetworks@1.2 \
Zingo Andersenf65b2662021-10-27 07:04:11 +02001054 android.hardware.neuralnetworks@1.3 \
1055 $(ARMNN_BACKEND_SHARED_LIBRARIES)
Kevin May42477c12020-03-26 13:34:14 +00001056
alered017c395b22020-04-03 15:37:24 +01001057ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Kevin May42477c12020-03-26 13:34:14 +00001058LOCAL_SHARED_LIBRARIES+= \
1059 libOpenCL
1060endif
1061
1062include $(BUILD_EXECUTABLE)
1063
1064endif # PLATFORM_VERSION == R
1065
Mike Kelly0e415132020-02-11 11:21:25 +00001066##########################
1067# armnn module and tests #
1068##########################
1069# Note we use ANDROID_NN_DRIVER_LOCAL_PATH rather than LOCAL_PATH because LOCAL_PATH will be overwritten
1070# when including other .mk files that set it.
1071include $(ANDROID_NN_DRIVER_LOCAL_PATH)/armnn/Android.mk
1072include $(ANDROID_NN_DRIVER_LOCAL_PATH)/test/Android.mk