blob: cab4a45fbb7515890c1acb513387209c44cc9fe7 [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
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
Mike Kelly0e415132020-02-11 11:21:25 +000064CPP_VERSION := c++14
65
66ifeq ($(Q_OR_LATER),1)
67CPP_VERSION := c++17
68endif
69
70# Configure these paths if you move the source or Khronos headers
Jim Flynn06a4a8b2022-03-23 15:58:46 +000071ARMNN_PROFILING_HEADER_PATH := $(LOCAL_PATH)/armnn/profiling
72ARMNN_COMMON_PROFILING_HEADER_PATH := $(LOCAL_PATH)/armnn/profiling/common/include
73ARMNN_CLIENT_PROFILING_HEADER_PATH := $(LOCAL_PATH)/armnn/profiling/client/include
Mike Kelly0e415132020-02-11 11:21:25 +000074ARMNN_HEADER_PATH := $(LOCAL_PATH)/armnn/include
Zingo Andersenf65b2662021-10-27 07:04:11 +020075ARMNN_BACKEND_MAKEFILE_LOCAL_PATHS := $(wildcard $(LOCAL_PATH)/armnn/src/backends/*/backend.mk)
76ARMNN_BACKEND_MAKEFILE_PATHS := $(subst $(LOCAL_PATH),,$(ARMNN_BACKEND_MAKEFILE_LOCAL_PATHS))
77ARMNN_BACKEND_MAKEFILE_DIRS := $(subst /backend.mk,,$(ARMNN_BACKEND_MAKEFILE_PATHS))
Colm Donelan08d9a1c2020-09-09 17:56:55 +010078ARMNN_THIRD_PARTY_PATH := $(LOCAL_PATH)/armnn/third-party
Mike Kelly0e415132020-02-11 11:21:25 +000079ARMNN_UTILS_HEADER_PATH := $(LOCAL_PATH)/armnn/src/armnnUtils
Colm Donelan0cc61782020-10-06 21:02:21 +010080ARMNN_THIRD_PARTY_PATH := $(LOCAL_PATH)/armnn/third-party
Mike Kelly0e415132020-02-11 11:21:25 +000081OPENCL_HEADER_PATH := $(LOCAL_PATH)/clframework/include
82NN_HEADER_PATH := $(LOCAL_PATH)/../../../frameworks/ml/nn/runtime/include
Sadik Armagan188675f2021-02-12 17:16:42 +000083ifeq ($(S_OR_LATER),1)
84NN_HEADER_PATH := $(LOCAL_PATH)/../../../packages/modules/NeuralNetworks/runtime/include
85endif
Mike Kelly0e415132020-02-11 11:21:25 +000086
87# Variables to control CL/NEON/reference backend support
88# Set them to '0' to disable support for a specific backend
89ARMNN_COMPUTE_CL_ENABLED := 1
90ARMNN_COMPUTE_NEON_ENABLED := 1
91ARMNN_REF_ENABLED := 1
Kevin May20c62252022-01-31 14:51:16 +000092ARMNN_ETHOSN_ENABLED := 0
Mike Kelly0e415132020-02-11 11:21:25 +000093
94ifeq ($(ARMNN_COMPUTE_CL_ENABLE),0)
95ARMNN_COMPUTE_CL_ENABLED := 0
96endif
97
98ifeq ($(ARMNN_COMPUTE_NEON_ENABLE),0)
99ARMNN_COMPUTE_NEON_ENABLED := 0
100endif
101
102ifeq ($(ARMNN_REF_ENABLE),0)
103ARMNN_REF_ENABLED := 0
104endif
105
Kevin May20c62252022-01-31 14:51:16 +0000106ifeq ($(ARMNN_ETHOSN_ENABLE),1)
107ARMNN_ETHOSN_ENABLED := 1
FrancisMurtagh594b2832020-06-15 17:17:56 +0100108endif
109
alered017c395b22020-04-03 15:37:24 +0100110# Variable to control inclusion of libOpenCL shared library
111ARMNN_INCLUDE_LIBOPENCL := $(ARMNN_COMPUTE_CL_ENABLED)
112ifeq ($(ARMNN_LIBOPENCL),0)
113ARMNN_INCLUDE_LIBOPENCL := 0
114endif
115
Narumol Prangnawaratcad4e912020-06-02 12:07:43 +0100116# Variable to control retire rate of priority queue
117RETIRE_RATE := 3
118
Zingo Andersenf65b2662021-10-27 07:04:11 +0200119# Placeholder to hold all backend link files.
120ARMNN_BACKEND_STATIC_LIBRARIES :=
121ARMNN_BACKEND_SHARED_LIBRARIES :=
122
123# Iterate through the Arm NN backends and specific include paths, include them into the
124# current makefile and append the linkfiles held by
125# the optional BACKEND_STATIC_LIBRARIES and optional BACKEND_SHARED_LIBRARIES variable
126# (included from the given makefile) to
127# the ARMNN_BACKEND_STATIC_LIBRARIES and ARMNN_BACKEND_SHARED_LIBRARIES lists
128
129$(foreach mkPath,$(ARMNN_BACKEND_MAKEFILE_DIRS),\
130 $(eval include $(LOCAL_PATH)/$(mkPath)/backend.mk)\
131 $(eval ARMNN_BACKEND_STATIC_LIBRARIES += $(BACKEND_STATIC_LIBRARIES)))
132
133$(foreach mkPath,$(ARMNN_BACKEND_MAKEFILE_DIRS),\
134 $(eval include $(LOCAL_PATH)/$(mkPath)/backend.mk)\
135 $(eval ARMNN_BACKEND_SHARED_LIBRARIES += $(BACKEND_SHARED_LIBRARIES)))
136
Mike Kelly0e415132020-02-11 11:21:25 +0000137#######################
138# libarmnn-driver@1.0 #
139#######################
140include $(CLEAR_VARS)
141
142LOCAL_MODULE := libarmnn-driver@1.0
143ifeq ($(Q_OR_LATER),1)
144# "eng" is deprecated in Android Q
145LOCAL_MODULE_TAGS := optional
146else
147LOCAL_MODULE_TAGS := eng optional
148endif
149LOCAL_ARM_MODE := arm
150LOCAL_PROPRIETARY_MODULE := true
151# Mark source files as dependent on Android.mk
152LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
153
154LOCAL_C_INCLUDES := \
Jim Flynn06a4a8b2022-03-23 15:58:46 +0000155 $(ARMNN_THIRD_PARTY_PATH) \
156 $(ARMNN_PROFILING_HEADER_PATH) \
157 $(ARMNN_COMMON_PROFILING_HEADER_PATH) \
158 $(ARMNN_CLIENT_PROFILING_HEADER_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000159 $(ARMNN_HEADER_PATH) \
160 $(ARMNN_UTILS_HEADER_PATH) \
161 $(OPENCL_HEADER_PATH) \
162 $(NN_HEADER_PATH)
163
164LOCAL_CFLAGS := \
165 -std=$(CPP_VERSION) \
166 -fexceptions \
167 -Werror \
168 -Wno-format-security
169
Kevin Mayec1e5b82020-02-26 17:00:39 +0000170# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100171ifeq ($(ANDROID_R),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000172LOCAL_CFLAGS+= \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000173 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100174endif
Mike Kelly0e415132020-02-11 11:21:25 +0000175
Sadik Armagan188675f2021-02-12 17:16:42 +0000176ifeq ($(ANDROID_S),1)
177LOCAL_CFLAGS+= \
178 -DARMNN_ANDROID_S
179endif
180
Mike Kelly0e415132020-02-11 11:21:25 +0000181ifeq ($(ARMNN_DRIVER_DEBUG),1)
182LOCAL_CFLAGS+= \
183 -UNDEBUG
184endif # ARMNN_DRIVER_DEBUG == 1
185
Mike Kelly0e415132020-02-11 11:21:25 +0000186ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
187LOCAL_CFLAGS += \
188 -DARMCOMPUTECL_ENABLED
189endif # ARMNN_COMPUTE_CL_ENABLED == 1
190
191ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
192LOCAL_CFLAGS += \
193 -DARMCOMPUTENEON_ENABLED
194endif # ARMNN_COMPUTE_NEON_ENABLED == 1
195
196ifeq ($(ARMNN_REF_ENABLED),1)
197LOCAL_CFLAGS += \
198 -DARMNNREF_ENABLED
199endif # ARMNN_REF_ENABLED == 1
200
FrancisMurtagh594b2832020-06-15 17:17:56 +0100201ifeq ($(ARMNN_ETHOSN_ENABLED),1)
202LOCAL_CFLAGS += \
203 -DARMNNETHOSN_ENABLED
204endif # ARMNN_ETHOSN_ENABLED == 1
205
Mike Kelly0e415132020-02-11 11:21:25 +0000206LOCAL_SRC_FILES := \
207 1.0/ArmnnDriverImpl.cpp \
208 1.0/HalPolicy.cpp \
209 ArmnnDriverImpl.cpp \
210 DriverOptions.cpp \
211 ArmnnDevice.cpp \
212 ArmnnPreparedModel.cpp \
213 ModelToINetworkConverter.cpp \
214 RequestThread.cpp \
215 Utils.cpp \
216 ConversionUtils.cpp
217
218LOCAL_STATIC_LIBRARIES := \
219 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000220 libflatbuffers-framework \
Zingo Andersene02562b2021-12-14 13:58:56 +0100221 arm_compute_library \
222 $(ARMNN_BACKEND_STATIC_LIBRARIES)
Mike Kelly0e415132020-02-11 11:21:25 +0000223
224LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
225
226LOCAL_SHARED_LIBRARIES := \
227 libbase \
228 libhidlbase \
229 libhidltransport \
230 libhidlmemory \
231 liblog \
232 libutils \
233 android.hardware.neuralnetworks@1.0 \
234 android.hidl.allocator@1.0 \
235 android.hidl.memory@1.0
236
237ifeq ($(P_OR_LATER),1)
238# Required to build the 1.0 version of the NN Driver on Android P and later versions,
239# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
240LOCAL_SHARED_LIBRARIES+= \
241 android.hardware.neuralnetworks@1.1
242endif # PLATFORM_VERSION == 9
243
244ifeq ($(Q_OR_LATER),1)
245LOCAL_SHARED_LIBRARIES+= \
246 libnativewindow \
247 libui \
248 libfmq \
249 libcutils \
250 android.hardware.neuralnetworks@1.2
Kevin Mayec1e5b82020-02-26 17:00:39 +0000251endif # Q or later
252
253ifeq ($(R_OR_LATER),1)
254LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100255 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000256 android.hardware.neuralnetworks@1.3
257endif # R or later
Mike Kelly0e415132020-02-11 11:21:25 +0000258
alered01dbae2472020-04-07 12:31:10 +0100259ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000260LOCAL_SHARED_LIBRARIES+= \
261 libOpenCL
262endif
263
264include $(BUILD_STATIC_LIBRARY)
265
266ifeq ($(P_OR_LATER),1)
267# The following target is available starting from Android P
268
269#######################
270# libarmnn-driver@1.1 #
271#######################
272include $(CLEAR_VARS)
273
274LOCAL_MODULE := libarmnn-driver@1.1
275ifeq ($(Q_OR_LATER),1)
276# "eng" is deprecated in Android Q
277LOCAL_MODULE_TAGS := optional
278else
279LOCAL_MODULE_TAGS := eng optional
280endif
281#PRODUCT_PACKAGES_ENG := libarmnn-driver@1.1
282LOCAL_ARM_MODE := arm
283LOCAL_PROPRIETARY_MODULE := true
284# Mark source files as dependent on Android.mk
285LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
286
287LOCAL_C_INCLUDES := \
Jim Flynn06a4a8b2022-03-23 15:58:46 +0000288 $(ARMNN_THIRD_PARTY_PATH) \
289 $(ARMNN_PROFILING_HEADER_PATH) \
290 $(ARMNN_COMMON_PROFILING_HEADER_PATH) \
291 $(ARMNN_CLIENT_PROFILING_HEADER_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000292 $(ARMNN_HEADER_PATH) \
293 $(ARMNN_UTILS_HEADER_PATH) \
294 $(OPENCL_HEADER_PATH) \
295 $(NN_HEADER_PATH)
296
297LOCAL_CFLAGS := \
298 -std=$(CPP_VERSION) \
299 -fexceptions \
300 -Werror \
Finn Williamsf769f292021-06-25 12:53:09 +0100301 -Wall \
302 -Wextra \
303 -Wno-unused-function \
Mike Kelly0e415132020-02-11 11:21:25 +0000304 -Wno-format-security \
Mike Kelly0e415132020-02-11 11:21:25 +0000305 -DARMNN_ANDROID_NN_V1_1
306
307ifeq ($(ARMNN_DRIVER_DEBUG),1)
308LOCAL_CFLAGS+= \
309 -UNDEBUG
310endif # ARMNN_DRIVER_DEBUG == 1
311
Kevin Mayec1e5b82020-02-26 17:00:39 +0000312# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100313ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000314LOCAL_CFLAGS+= \
315 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100316endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000317
Sadik Armagan188675f2021-02-12 17:16:42 +0000318ifeq ($(ANDROID_S),1)
319LOCAL_CFLAGS+= \
320 -DARMNN_ANDROID_S
321endif
322
Mike Kelly0e415132020-02-11 11:21:25 +0000323ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
324LOCAL_CFLAGS += \
325 -DARMCOMPUTECL_ENABLED
326endif # ARMNN_COMPUTE_CL_ENABLED == 1
327
328ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
329LOCAL_CFLAGS += \
330 -DARMCOMPUTENEON_ENABLED
331endif # ARMNN_COMPUTE_NEON_ENABLED == 1
332
333ifeq ($(ARMNN_REF_ENABLED),1)
334LOCAL_CFLAGS += \
335 -DARMNNREF_ENABLED
336endif # ARMNN_REF_ENABLED == 1
337
FrancisMurtagh594b2832020-06-15 17:17:56 +0100338ifeq ($(ARMNN_ETHOSN_ENABLED),1)
339LOCAL_CFLAGS += \
340 -DARMNNETHOSN_ENABLED
341endif # ARMNN_ETHOSN_ENABLED == 1
342
Mike Kelly0e415132020-02-11 11:21:25 +0000343LOCAL_SRC_FILES := \
344 1.0/ArmnnDriverImpl.cpp \
345 1.0/HalPolicy.cpp \
346 1.1/ArmnnDriverImpl.cpp \
347 1.1/HalPolicy.cpp \
348 ArmnnDriverImpl.cpp \
349 DriverOptions.cpp \
350 ArmnnDevice.cpp \
351 ArmnnPreparedModel.cpp \
352 ModelToINetworkConverter.cpp \
353 RequestThread.cpp \
354 Utils.cpp \
355 ConversionUtils.cpp
356
357LOCAL_STATIC_LIBRARIES := \
358 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000359 libflatbuffers-framework \
Zingo Andersene02562b2021-12-14 13:58:56 +0100360 arm_compute_library \
361 $(ARMNN_BACKEND_STATIC_LIBRARIES)
Mike Kelly0e415132020-02-11 11:21:25 +0000362
363LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
364
365LOCAL_SHARED_LIBRARIES := \
366 libbase \
367 libhidlbase \
368 libhidltransport \
369 libhidlmemory \
370 liblog \
371 libutils \
372 android.hardware.neuralnetworks@1.0 \
373 android.hardware.neuralnetworks@1.1 \
374 android.hidl.allocator@1.0 \
375 android.hidl.memory@1.0
376
377ifeq ($(Q_OR_LATER),1)
378LOCAL_SHARED_LIBRARIES+= \
379 libnativewindow \
380 libui \
381 libfmq \
382 libcutils \
383 android.hardware.neuralnetworks@1.2
384endif # PLATFORM_VERSION == Q
385
Kevin Mayec1e5b82020-02-26 17:00:39 +0000386ifeq ($(R_OR_LATER),1)
387LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100388 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000389 android.hardware.neuralnetworks@1.3
390endif # R or later
391
alered017c395b22020-04-03 15:37:24 +0100392ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000393LOCAL_SHARED_LIBRARIES+= \
394 libOpenCL
395endif
396
397include $(BUILD_STATIC_LIBRARY)
398
399endif # PLATFORM_VERSION == 9
400
401ifeq ($(Q_OR_LATER),1)
402# The following target is available starting from Android Q
403
404#######################
405# libarmnn-driver@1.2 #
406#######################
407include $(CLEAR_VARS)
408
409LOCAL_MODULE := libarmnn-driver@1.2
410LOCAL_MODULE_TAGS := optional
411LOCAL_ARM_MODE := arm
412LOCAL_PROPRIETARY_MODULE := true
413# Mark source files as dependent on Android.mk
414LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
415
416LOCAL_C_INCLUDES := \
Jim Flynn06a4a8b2022-03-23 15:58:46 +0000417 $(ARMNN_THIRD_PARTY_PATH) \
418 $(ARMNN_PROFILING_HEADER_PATH) \
419 $(ARMNN_COMMON_PROFILING_HEADER_PATH) \
420 $(ARMNN_CLIENT_PROFILING_HEADER_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000421 $(ARMNN_HEADER_PATH) \
422 $(ARMNN_UTILS_HEADER_PATH) \
423 $(OPENCL_HEADER_PATH) \
424 $(NN_HEADER_PATH)
425
426LOCAL_CFLAGS := \
427 -std=$(CPP_VERSION) \
428 -fexceptions \
429 -Werror \
Finn Williamsf769f292021-06-25 12:53:09 +0100430 -Wall \
431 -Wextra \
432 -Wno-unused-function \
Mike Kelly0e415132020-02-11 11:21:25 +0000433 -Wno-format-security \
Mike Kelly0e415132020-02-11 11:21:25 +0000434 -DARMNN_ANDROID_NN_V1_2
435
436ifeq ($(ARMNN_DRIVER_DEBUG),1)
437LOCAL_CFLAGS+= \
438 -UNDEBUG
439endif # ARMNN_DRIVER_DEBUG == 1
440
Kevin Mayec1e5b82020-02-26 17:00:39 +0000441# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100442ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000443LOCAL_CFLAGS+= \
444 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100445endif
Mike Kelly0e415132020-02-11 11:21:25 +0000446
Sadik Armagan188675f2021-02-12 17:16:42 +0000447ifeq ($(ANDROID_S),1)
448LOCAL_CFLAGS+= \
449 -DARMNN_ANDROID_S
450endif
451
Mike Kelly0e415132020-02-11 11:21:25 +0000452ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
453LOCAL_CFLAGS += \
454 -DARMCOMPUTECL_ENABLED
455endif # ARMNN_COMPUTE_CL_ENABLED == 1
456
457ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
458LOCAL_CFLAGS += \
459 -DARMCOMPUTENEON_ENABLED
460endif # ARMNN_COMPUTE_NEON_ENABLED == 1
461
462ifeq ($(ARMNN_REF_ENABLED),1)
463LOCAL_CFLAGS += \
464 -DARMNNREF_ENABLED
465endif # ARMNN_REF_ENABLED == 1
466
FrancisMurtagh594b2832020-06-15 17:17:56 +0100467ifeq ($(ARMNN_ETHOSN_ENABLED),1)
468LOCAL_CFLAGS += \
469 -DARMNNETHOSN_ENABLED
470endif # ARMNN_ETHOSN_ENABLED == 1
471
Mike Kelly0e415132020-02-11 11:21:25 +0000472LOCAL_SRC_FILES := \
473 1.0/ArmnnDriverImpl.cpp \
474 1.0/HalPolicy.cpp \
475 1.1/ArmnnDriverImpl.cpp \
476 1.1/HalPolicy.cpp \
477 1.2/ArmnnDriverImpl.cpp \
478 1.2/HalPolicy.cpp \
479 ArmnnDevice.cpp \
480 ArmnnDriverImpl.cpp \
481 ArmnnPreparedModel.cpp \
482 ArmnnPreparedModel_1_2.cpp \
Sadik Armagan0a2dfab2021-10-06 16:41:44 +0100483 CacheDataHandler.cpp \
Mike Kelly0e415132020-02-11 11:21:25 +0000484 ConversionUtils.cpp \
485 DriverOptions.cpp \
486 ModelToINetworkConverter.cpp \
487 RequestThread.cpp \
488 Utils.cpp
489
490LOCAL_STATIC_LIBRARIES := \
491 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000492 libflatbuffers-framework \
Zingo Andersene02562b2021-12-14 13:58:56 +0100493 arm_compute_library \
494 $(ARMNN_BACKEND_STATIC_LIBRARIES)
Mike Kelly0e415132020-02-11 11:21:25 +0000495
496LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
497
498LOCAL_SHARED_LIBRARIES := \
499 libbase \
500 libhidlbase \
501 libhidltransport \
502 libhidlmemory \
503 liblog \
504 libutils \
505 libnativewindow \
506 libui \
507 libfmq \
508 libcutils \
509 android.hidl.allocator@1.0 \
510 android.hidl.memory@1.0 \
511 android.hardware.neuralnetworks@1.0 \
512 android.hardware.neuralnetworks@1.1 \
513 android.hardware.neuralnetworks@1.2
514
Kevin Mayec1e5b82020-02-26 17:00:39 +0000515ifeq ($(R_OR_LATER),1)
516LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100517 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000518 android.hardware.neuralnetworks@1.3
519endif # R or later
520
alered017c395b22020-04-03 15:37:24 +0100521ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000522LOCAL_SHARED_LIBRARIES+= \
523 libOpenCL
524endif
525
526include $(BUILD_STATIC_LIBRARY)
527
528endif # PLATFORM_VERSION == Q
529
Kevin May42477c12020-03-26 13:34:14 +0000530ifeq ($(R_OR_LATER),1)
531# The following target is available starting from Android R
532
533#######################
534# libarmnn-driver@1.3 #
535#######################
536include $(CLEAR_VARS)
537
538LOCAL_MODULE := libarmnn-driver@1.3
539LOCAL_MODULE_TAGS := optional
540LOCAL_ARM_MODE := arm
541LOCAL_PROPRIETARY_MODULE := true
542# Mark source files as dependent on Android.mk
543LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
544
545LOCAL_C_INCLUDES := \
Jim Flynn06a4a8b2022-03-23 15:58:46 +0000546 $(ARMNN_THIRD_PARTY_PATH) \
547 $(ARMNN_PROFILING_HEADER_PATH) \
548 $(ARMNN_COMMON_PROFILING_HEADER_PATH) \
549 $(ARMNN_CLIENT_PROFILING_HEADER_PATH) \
Kevin May42477c12020-03-26 13:34:14 +0000550 $(ARMNN_HEADER_PATH) \
551 $(ARMNN_UTILS_HEADER_PATH) \
552 $(OPENCL_HEADER_PATH) \
553 $(NN_HEADER_PATH)
554
555LOCAL_CFLAGS := \
556 -std=$(CPP_VERSION) \
557 -fexceptions \
558 -Werror \
Finn Williamsf769f292021-06-25 12:53:09 +0100559 -Wall \
560 -Wextra \
561 -Wno-unused-function \
Kevin May42477c12020-03-26 13:34:14 +0000562 -Wno-format-security \
Kevin May42477c12020-03-26 13:34:14 +0000563 -DARMNN_ANDROID_NN_V1_3 \
Sadik Armagan188675f2021-02-12 17:16:42 +0000564
565ifeq ($(ANDROID_R),1)
566LOCAL_CFLAGS+= \
Kevin May42477c12020-03-26 13:34:14 +0000567 -DARMNN_ANDROID_R
Sadik Armagan188675f2021-02-12 17:16:42 +0000568endif
569
570ifeq ($(ANDROID_S),1)
571LOCAL_CFLAGS+= \
572 -DARMNN_ANDROID_S
573endif
Kevin May42477c12020-03-26 13:34:14 +0000574
575ifeq ($(ARMNN_DRIVER_DEBUG),1)
576LOCAL_CFLAGS+= \
577 -UNDEBUG
578endif # ARMNN_DRIVER_DEBUG == 1
579
580ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
581LOCAL_CFLAGS += \
582 -DARMCOMPUTECL_ENABLED
583endif # ARMNN_COMPUTE_CL_ENABLED == 1
584
585ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
586LOCAL_CFLAGS += \
587 -DARMCOMPUTENEON_ENABLED
588endif # ARMNN_COMPUTE_NEON_ENABLED == 1
589
590ifeq ($(ARMNN_REF_ENABLED),1)
591LOCAL_CFLAGS += \
592 -DARMNNREF_ENABLED
593endif # ARMNN_REF_ENABLED == 1
594
FrancisMurtagh594b2832020-06-15 17:17:56 +0100595ifeq ($(ARMNN_ETHOSN_ENABLED),1)
596LOCAL_CFLAGS += \
597 -DARMNNETHOSN_ENABLED
598endif # ARMNN_ETHOSN_ENABLED == 1
599
Narumol Prangnawaratcad4e912020-06-02 12:07:43 +0100600LOCAL_CFLAGS += \
601 -DRETIRE_RATE=$(RETIRE_RATE)
602
Kevin May42477c12020-03-26 13:34:14 +0000603LOCAL_SRC_FILES := \
604 1.0/ArmnnDriverImpl.cpp \
605 1.0/HalPolicy.cpp \
606 1.1/ArmnnDriverImpl.cpp \
607 1.1/HalPolicy.cpp \
608 1.2/ArmnnDriverImpl.cpp \
609 1.2/HalPolicy.cpp \
610 1.3/ArmnnDriverImpl.cpp \
611 1.3/HalPolicy.cpp \
612 ArmnnDevice.cpp \
613 ArmnnDriverImpl.cpp \
614 ArmnnPreparedModel.cpp \
615 ArmnnPreparedModel_1_2.cpp \
616 ArmnnPreparedModel_1_3.cpp \
Sadik Armagan0a2dfab2021-10-06 16:41:44 +0100617 CacheDataHandler.cpp \
Kevin May42477c12020-03-26 13:34:14 +0000618 ConversionUtils.cpp \
619 DriverOptions.cpp \
620 ModelToINetworkConverter.cpp \
621 RequestThread.cpp \
Narumol Prangnawaratcad4e912020-06-02 12:07:43 +0100622 RequestThread_1_3.cpp \
Kevin May42477c12020-03-26 13:34:14 +0000623 Utils.cpp
624
625LOCAL_STATIC_LIBRARIES := \
626 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000627 libflatbuffers-framework \
Zingo Andersene02562b2021-12-14 13:58:56 +0100628 arm_compute_library \
629 $(ARMNN_BACKEND_STATIC_LIBRARIES)
Kevin May42477c12020-03-26 13:34:14 +0000630
631LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
632
633LOCAL_SHARED_LIBRARIES := \
634 libbase \
635 libhidlbase \
636 libhidltransport \
637 libhidlmemory \
638 liblog \
639 libutils \
640 libnativewindow \
641 libui \
642 libfmq \
643 libcutils \
644 android.hidl.allocator@1.0 \
645 android.hidl.memory@1.0 \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100646 libsync \
Kevin May42477c12020-03-26 13:34:14 +0000647 android.hardware.neuralnetworks@1.0 \
648 android.hardware.neuralnetworks@1.1 \
649 android.hardware.neuralnetworks@1.2 \
650 android.hardware.neuralnetworks@1.3
651
alered017c395b22020-04-03 15:37:24 +0100652ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Kevin May42477c12020-03-26 13:34:14 +0000653LOCAL_SHARED_LIBRARIES+= \
654 libOpenCL
655endif
656
657include $(BUILD_STATIC_LIBRARY)
658
659endif # PLATFORM_VERSION == R
660
Mike Kelly0e415132020-02-11 11:21:25 +0000661#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100662# android.hardware.neuralnetworks@1.0-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000663#####################################################
664include $(CLEAR_VARS)
665
Kevin Mayabc95d02020-05-15 15:34:03 +0100666LOCAL_MODULE := android.hardware.neuralnetworks@1.0-service-armnn
667LOCAL_INIT_RC := android.hardware.neuralnetworks@1.0-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000668ifeq ($(Q_OR_LATER),1)
669# "eng" is deprecated in Android Q
670LOCAL_MODULE_TAGS := optional
671else
672LOCAL_MODULE_TAGS := eng optional
673endif
674LOCAL_ARM_MODE := arm
675LOCAL_MODULE_RELATIVE_PATH := hw
676LOCAL_PROPRIETARY_MODULE := true
677# Mark source files as dependent on Android.mk
678LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
679
680LOCAL_C_INCLUDES := \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100681 $(ARMNN_THIRD_PARTY_PATH) \
Jim Flynn06a4a8b2022-03-23 15:58:46 +0000682 $(ARMNN_PROFILING_HEADER_PATH) \
683 $(ARMNN_COMMON_PROFILING_HEADER_PATH) \
684 $(ARMNN_CLIENT_PROFILING_HEADER_PATH) \
685 $(ARMNN_HEADER_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000686 $(NN_HEADER_PATH)
687
688LOCAL_CFLAGS := \
689 -std=$(CPP_VERSION) \
690 -fexceptions
691
692ifeq ($(ARMNN_DRIVER_DEBUG),1)
693LOCAL_CFLAGS += \
694 -UNDEBUG
695endif # ARMNN_DRIVER_DEBUG == 1
696
Kevin Mayec1e5b82020-02-26 17:00:39 +0000697# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100698ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000699LOCAL_CFLAGS+= \
700 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100701endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000702
Sadik Armagan188675f2021-02-12 17:16:42 +0000703ifeq ($(ANDROID_S),1)
704LOCAL_CFLAGS+= \
705 -DARMNN_ANDROID_S
706endif
707
Mike Kelly0e415132020-02-11 11:21:25 +0000708LOCAL_SRC_FILES := \
709 service.cpp
710
711LOCAL_STATIC_LIBRARIES := \
712 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000713 libflatbuffers-framework \
Zingo Andersenf65b2662021-10-27 07:04:11 +0200714 arm_compute_library \
715 $(ARMNN_BACKEND_STATIC_LIBRARIES)
Mike Kelly0e415132020-02-11 11:21:25 +0000716
717LOCAL_WHOLE_STATIC_LIBRARIES := \
718 libarmnn-driver@1.0
719
720LOCAL_SHARED_LIBRARIES := \
721 libbase \
722 libhidlbase \
723 libhidltransport \
724 libhidlmemory \
725 libdl \
726 libhardware \
727 liblog \
728 libtextclassifier_hash \
729 libutils \
730 android.hardware.neuralnetworks@1.0 \
731 android.hidl.allocator@1.0 \
Zingo Andersenf65b2662021-10-27 07:04:11 +0200732 android.hidl.memory@1.0 \
733 $(ARMNN_BACKEND_SHARED_LIBRARIES)
Mike Kelly0e415132020-02-11 11:21:25 +0000734
735ifeq ($(P_OR_LATER),1)
736# Required to build the 1.0 version of the NN Driver on Android P and later versions,
737# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
738LOCAL_SHARED_LIBRARIES+= \
739 android.hardware.neuralnetworks@1.1
740endif # PLATFORM_VERSION == 9
Kevin Mayec1e5b82020-02-26 17:00:39 +0000741
Mike Kelly0e415132020-02-11 11:21:25 +0000742ifeq ($(Q_OR_LATER),1)
743LOCAL_SHARED_LIBRARIES+= \
744 libnativewindow \
745 libui \
746 libfmq \
747 libcutils \
748 android.hardware.neuralnetworks@1.2
749endif # PLATFORM_VERSION == Q
750
Kevin Mayec1e5b82020-02-26 17:00:39 +0000751ifeq ($(R_OR_LATER),1)
752LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100753 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000754 android.hardware.neuralnetworks@1.3
755endif # R or later
756
alered017c395b22020-04-03 15:37:24 +0100757ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000758LOCAL_SHARED_LIBRARIES+= \
759 libOpenCL
760endif
761
762include $(BUILD_EXECUTABLE)
763
764ifeq ($(P_OR_LATER),1)
765# The following target is available starting from Android P
766
767#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100768# android.hardware.neuralnetworks@1.1-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000769#####################################################
770include $(CLEAR_VARS)
771
Kevin Mayabc95d02020-05-15 15:34:03 +0100772LOCAL_MODULE := android.hardware.neuralnetworks@1.1-service-armnn
773LOCAL_INIT_RC := android.hardware.neuralnetworks@1.1-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000774ifeq ($(Q_OR_LATER),1)
775# "eng" is deprecated in Android Q
776LOCAL_MODULE_TAGS := optional
777else
778LOCAL_MODULE_TAGS := eng optional
779endif
780LOCAL_ARM_MODE := arm
781LOCAL_MODULE_RELATIVE_PATH := hw
782LOCAL_PROPRIETARY_MODULE := true
783# Mark source files as dependent on Android.mk
784LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
785
786LOCAL_C_INCLUDES := \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100787 $(ARMNN_THIRD_PARTY_PATH) \
Jim Flynn06a4a8b2022-03-23 15:58:46 +0000788 $(ARMNN_PROFILING_HEADER_PATH) \
789 $(ARMNN_COMMON_PROFILING_HEADER_PATH) \
790 $(ARMNN_CLIENT_PROFILING_HEADER_PATH) \
791 $(ARMNN_HEADER_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000792 $(NN_HEADER_PATH)
793
794LOCAL_CFLAGS := \
795 -std=$(CPP_VERSION) \
796 -fexceptions \
797 -DARMNN_ANDROID_NN_V1_1
798
799ifeq ($(ARMNN_DRIVER_DEBUG),1)
800LOCAL_CFLAGS += \
801 -UNDEBUG
802endif # ARMNN_DRIVER_DEBUG == 1
803
Kevin Mayec1e5b82020-02-26 17:00:39 +0000804# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100805ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000806LOCAL_CFLAGS+= \
807 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100808endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000809
Sadik Armagan188675f2021-02-12 17:16:42 +0000810ifeq ($(ANDROID_S),1)
811LOCAL_CFLAGS+= \
812 -DARMNN_ANDROID_S
813endif
814
Mike Kelly0e415132020-02-11 11:21:25 +0000815LOCAL_SRC_FILES := \
816 service.cpp
817
818LOCAL_STATIC_LIBRARIES := \
819 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000820 libflatbuffers-framework \
Zingo Andersenf65b2662021-10-27 07:04:11 +0200821 arm_compute_library \
822 $(ARMNN_BACKEND_STATIC_LIBRARIES)
Mike Kelly0e415132020-02-11 11:21:25 +0000823
824LOCAL_WHOLE_STATIC_LIBRARIES := \
825 libarmnn-driver@1.1
826
827LOCAL_SHARED_LIBRARIES := \
828 libbase \
829 libhidlbase \
830 libhidltransport \
831 libhidlmemory \
832 libdl \
833 libhardware \
834 liblog \
835 libtextclassifier_hash \
836 libutils \
837 android.hardware.neuralnetworks@1.0 \
838 android.hardware.neuralnetworks@1.1 \
839 android.hidl.allocator@1.0 \
Zingo Andersenf65b2662021-10-27 07:04:11 +0200840 android.hidl.memory@1.0 \
841 $(ARMNN_BACKEND_SHARED_LIBRARIES)
Mike Kelly0e415132020-02-11 11:21:25 +0000842
843ifeq ($(Q_OR_LATER),1)
844LOCAL_SHARED_LIBRARIES+= \
845 libnativewindow \
846 libui \
847 libfmq \
848 libcutils \
849 android.hardware.neuralnetworks@1.2
850endif # PLATFORM_VERSION == Q
851
Kevin Mayec1e5b82020-02-26 17:00:39 +0000852ifeq ($(R_OR_LATER),1)
853LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100854 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000855 android.hardware.neuralnetworks@1.3
856endif # PLATFORM_VERSION == R
857
alered017c395b22020-04-03 15:37:24 +0100858ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000859LOCAL_SHARED_LIBRARIES+= \
860 libOpenCL
861endif
862
863include $(BUILD_EXECUTABLE)
864
865endif # PLATFORM_VERSION == 9
866
867ifeq ($(Q_OR_LATER),1)
868# The following target is available starting from Android Q
869
870#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100871# android.hardware.neuralnetworks@1.2-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000872#####################################################
873include $(CLEAR_VARS)
874
Kevin Mayabc95d02020-05-15 15:34:03 +0100875LOCAL_MODULE := android.hardware.neuralnetworks@1.2-service-armnn
876LOCAL_INIT_RC := android.hardware.neuralnetworks@1.2-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000877LOCAL_MODULE_TAGS := optional
878LOCAL_ARM_MODE := arm
879LOCAL_MODULE_RELATIVE_PATH := hw
880LOCAL_PROPRIETARY_MODULE := true
881# Mark source files as dependent on Android.mk
882LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
883
884LOCAL_C_INCLUDES := \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100885 $(ARMNN_THIRD_PARTY_PATH) \
Jim Flynn06a4a8b2022-03-23 15:58:46 +0000886 $(ARMNN_PROFILING_HEADER_PATH) \
887 $(ARMNN_COMMON_PROFILING_HEADER_PATH) \
888 $(ARMNN_CLIENT_PROFILING_HEADER_PATH) \
889 $(ARMNN_HEADER_PATH) \
Mike Kelly0e415132020-02-11 11:21:25 +0000890 $(NN_HEADER_PATH)
891
892LOCAL_CFLAGS := \
893 -std=$(CPP_VERSION) \
894 -fexceptions \
895 -DARMNN_ANDROID_NN_V1_2 \
Mike Kelly0e415132020-02-11 11:21:25 +0000896
897ifeq ($(ARMNN_DRIVER_DEBUG),1)
898LOCAL_CFLAGS += \
899 -UNDEBUG
900endif # ARMNN_DRIVER_DEBUG == 1
901
Kevin Mayec1e5b82020-02-26 17:00:39 +0000902# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100903ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000904LOCAL_CFLAGS+= \
905 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100906endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000907
Sadik Armagan188675f2021-02-12 17:16:42 +0000908ifeq ($(ANDROID_S),1)
909LOCAL_CFLAGS+= \
910 -DARMNN_ANDROID_S
911endif
912
Mike Kelly0e415132020-02-11 11:21:25 +0000913LOCAL_SRC_FILES := \
914 service.cpp
915
916LOCAL_STATIC_LIBRARIES := \
917 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +0000918 libflatbuffers-framework \
Zingo Andersenf65b2662021-10-27 07:04:11 +0200919 arm_compute_library \
920 $(ARMNN_BACKEND_STATIC_LIBRARIES)
Mike Kelly0e415132020-02-11 11:21:25 +0000921
922LOCAL_WHOLE_STATIC_LIBRARIES := \
923 libarmnn-driver@1.2
924
925LOCAL_SHARED_LIBRARIES := \
926 libbase \
927 libhidlbase \
928 libhidltransport \
929 libhidlmemory \
930 libdl \
931 libhardware \
932 liblog \
933 libtextclassifier_hash \
934 libutils \
935 libnativewindow \
936 libui \
937 libfmq \
938 libcutils \
939 android.hidl.allocator@1.0 \
940 android.hidl.memory@1.0 \
941 android.hardware.neuralnetworks@1.0 \
942 android.hardware.neuralnetworks@1.1 \
Zingo Andersenf65b2662021-10-27 07:04:11 +0200943 android.hardware.neuralnetworks@1.2 \
944 $(ARMNN_BACKEND_SHARED_LIBRARIES)
Mike Kelly0e415132020-02-11 11:21:25 +0000945
Kevin Mayec1e5b82020-02-26 17:00:39 +0000946ifeq ($(R_OR_LATER),1)
947LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100948 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000949 android.hardware.neuralnetworks@1.3
950endif # R or later
951
alered017c395b22020-04-03 15:37:24 +0100952ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000953LOCAL_SHARED_LIBRARIES+= \
954 libOpenCL
955endif
956
957include $(BUILD_EXECUTABLE)
958
959endif # PLATFORM_VERSION == Q
960
Kevin May42477c12020-03-26 13:34:14 +0000961ifeq ($(R_OR_LATER),1)
962# The following target is available starting from Android R
963
964#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100965# android.hardware.neuralnetworks@1.3-service-armnn #
Kevin May42477c12020-03-26 13:34:14 +0000966#####################################################
967include $(CLEAR_VARS)
968
Kevin Mayabc95d02020-05-15 15:34:03 +0100969LOCAL_MODULE := android.hardware.neuralnetworks@1.3-service-armnn
970LOCAL_INIT_RC := android.hardware.neuralnetworks@1.3-service-armnn.rc
Kevin May42477c12020-03-26 13:34:14 +0000971LOCAL_MODULE_TAGS := optional
972LOCAL_ARM_MODE := arm
973LOCAL_MODULE_RELATIVE_PATH := hw
974LOCAL_PROPRIETARY_MODULE := true
975# Mark source files as dependent on Android.mk
976LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
977
978LOCAL_C_INCLUDES := \
Colm Donelan08d9a1c2020-09-09 17:56:55 +0100979 $(ARMNN_THIRD_PARTY_PATH) \
Jim Flynn06a4a8b2022-03-23 15:58:46 +0000980 $(ARMNN_PROFILING_HEADER_PATH) \
981 $(ARMNN_COMMON_PROFILING_HEADER_PATH) \
982 $(ARMNN_CLIENT_PROFILING_HEADER_PATH) \
983 $(ARMNN_HEADER_PATH) \
Kevin May42477c12020-03-26 13:34:14 +0000984 $(NN_HEADER_PATH)
985
986LOCAL_CFLAGS := \
987 -std=$(CPP_VERSION) \
988 -fexceptions \
989 -DARMNN_ANDROID_NN_V1_3 \
Sadik Armagan188675f2021-02-12 17:16:42 +0000990
991ifeq ($(ANDROID_R),1)
992LOCAL_CFLAGS+= \
Kevin May42477c12020-03-26 13:34:14 +0000993 -DARMNN_ANDROID_R
Sadik Armagan188675f2021-02-12 17:16:42 +0000994endif
995
996ifeq ($(ANDROID_S),1)
997LOCAL_CFLAGS+= \
998 -DARMNN_ANDROID_S
999endif
Kevin May42477c12020-03-26 13:34:14 +00001000
1001ifeq ($(ARMNN_DRIVER_DEBUG),1)
1002LOCAL_CFLAGS += \
1003 -UNDEBUG
1004endif # ARMNN_DRIVER_DEBUG == 1
1005
1006LOCAL_SRC_FILES := \
1007 service.cpp
1008
1009LOCAL_STATIC_LIBRARIES := \
1010 libneuralnetworks_common \
Sadik Armaganf36e10b2021-01-11 16:34:01 +00001011 libflatbuffers-framework \
Zingo Andersenf65b2662021-10-27 07:04:11 +02001012 arm_compute_library \
1013 $(ARMNN_BACKEND_STATIC_LIBRARIES)
Kevin May42477c12020-03-26 13:34:14 +00001014
1015LOCAL_WHOLE_STATIC_LIBRARIES := \
1016 libarmnn-driver@1.3
1017
1018LOCAL_SHARED_LIBRARIES := \
1019 libbase \
1020 libhidlbase \
1021 libhidltransport \
1022 libhidlmemory \
1023 libdl \
1024 libhardware \
1025 liblog \
1026 libtextclassifier_hash \
1027 libutils \
1028 libnativewindow \
1029 libui \
1030 libfmq \
1031 libcutils \
Sadik Armagand7be72e2020-04-23 12:56:05 +01001032 libsync \
Kevin May42477c12020-03-26 13:34:14 +00001033 android.hidl.allocator@1.0 \
1034 android.hidl.memory@1.0 \
1035 android.hardware.neuralnetworks@1.0 \
1036 android.hardware.neuralnetworks@1.1 \
1037 android.hardware.neuralnetworks@1.2 \
Zingo Andersenf65b2662021-10-27 07:04:11 +02001038 android.hardware.neuralnetworks@1.3 \
1039 $(ARMNN_BACKEND_SHARED_LIBRARIES)
Kevin May42477c12020-03-26 13:34:14 +00001040
alered017c395b22020-04-03 15:37:24 +01001041ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Kevin May42477c12020-03-26 13:34:14 +00001042LOCAL_SHARED_LIBRARIES+= \
1043 libOpenCL
1044endif
1045
1046include $(BUILD_EXECUTABLE)
1047
1048endif # PLATFORM_VERSION == R
1049
Mike Kelly0e415132020-02-11 11:21:25 +00001050##########################
1051# armnn module and tests #
1052##########################
1053# Note we use ANDROID_NN_DRIVER_LOCAL_PATH rather than LOCAL_PATH because LOCAL_PATH will be overwritten
1054# when including other .mk files that set it.
1055include $(ANDROID_NN_DRIVER_LOCAL_PATH)/armnn/Android.mk
1056include $(ANDROID_NN_DRIVER_LOCAL_PATH)/test/Android.mk