blob: 66e651db89178a62fa522677e291f943d2e25bab [file] [log] [blame]
telsoa015307bc12018-03-09 13:51:08 +00001#
2# Copyright © 2017 ARM Ltd. All rights reserved.
David Beck93e48982018-09-05 13:05:09 +01003# SPDX-License-Identifier: MIT
telsoa015307bc12018-03-09 13:51:08 +00004#
5
6ANDROID_NN_DRIVER_LOCAL_PATH := $(call my-dir)
7LOCAL_PATH := $(ANDROID_NN_DRIVER_LOCAL_PATH)
8
Sadik Armagand6539c52019-05-22 18:00:30 +01009P_OR_LATER := 0
10Q_OR_LATER := 0
11
12ifeq ($(PLATFORM_VERSION),9)
13P_OR_LATER := 1
14endif # PLATFORM_VERSION == 9
15ifeq ($(PLATFORM_VERSION),P)
16P_OR_LATER := 1
17endif # PLATFORM_VERSION == P
18
19ifeq ($(PLATFORM_VERSION),10)
20P_OR_LATER := 1
21Q_OR_LATER := 1
22endif # PLATFORM_VERSION == 10
23ifeq ($(PLATFORM_VERSION),Q)
24P_OR_LATER := 1
25Q_OR_LATER := 1
26endif # PLATFORM_VERSION == Q
27
Mike Kellyb5fdf382019-06-11 16:35:25 +010028CPP_VERSION := c++14
29
30ifeq ($(Q_OR_LATER),1)
31CPP_VERSION := c++17
32endif
33
telsoa015307bc12018-03-09 13:51:08 +000034# Configure these paths if you move the source or Khronos headers
surmeh01deb3bdb2018-07-05 12:06:04 +010035ARMNN_HEADER_PATH := $(LOCAL_PATH)/armnn/include
36ARMNN_UTILS_HEADER_PATH := $(LOCAL_PATH)/armnn/src/armnnUtils
surmeh0149b9e102018-05-17 14:11:25 +010037OPENCL_HEADER_PATH := $(LOCAL_PATH)/clframework/include
telsoa015307bc12018-03-09 13:51:08 +000038NN_HEADER_PATH := $(LOCAL_PATH)/../../../frameworks/ml/nn/runtime/include
39
Matteo Martincigh5eb5f1f2019-08-14 14:13:47 +010040# Variables to control CL/NEON/reference backend support
Matteo Martincigh2917b492019-08-29 17:10:55 +010041# Set them to '0' to disable support for a specific backend
Matteo Martincigh01c91512019-01-31 15:40:08 +000042ARMNN_COMPUTE_CL_ENABLED := 1
Matteo Martincigh5eb5f1f2019-08-14 14:13:47 +010043ARMNN_COMPUTE_NEON_ENABLED := 1
Matteo Martincighbb689562019-08-27 16:35:44 +010044ARMNN_REF_ENABLED := 1
Matteo Martincigh2917b492019-08-29 17:10:55 +010045
46ifeq ($(ARMNN_COMPUTE_CL_ENABLE),0)
47ARMNN_COMPUTE_CL_ENABLED := 0
48endif
49
50ifeq ($(ARMNN_COMPUTE_NEON_ENABLE),0)
51ARMNN_COMPUTE_NEON_ENABLED := 0
52endif
53
54ifeq ($(ARMNN_REF_ENABLE),0)
55ARMNN_REF_ENABLED := 0
Sadik Armagand6539c52019-05-22 18:00:30 +010056endif
57
telsoa01ce3e84a2018-08-31 09:31:35 +010058#######################
59# libarmnn-driver@1.0 #
60#######################
telsoa015307bc12018-03-09 13:51:08 +000061include $(CLEAR_VARS)
62
telsoa01ce3e84a2018-08-31 09:31:35 +010063LOCAL_MODULE := libarmnn-driver@1.0
Sadik Armagand6539c52019-05-22 18:00:30 +010064ifeq ($(Q_OR_LATER),1)
65# "eng" is deprecated in Android Q
66LOCAL_MODULE_TAGS := optional
67else
telsoa015307bc12018-03-09 13:51:08 +000068LOCAL_MODULE_TAGS := eng optional
Sadik Armagand6539c52019-05-22 18:00:30 +010069endif
telsoa015307bc12018-03-09 13:51:08 +000070LOCAL_ARM_MODE := arm
surmeh0149b9e102018-05-17 14:11:25 +010071LOCAL_PROPRIETARY_MODULE := true
telsoa015307bc12018-03-09 13:51:08 +000072# Mark source files as dependent on Android.mk
73LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
74
surmeh01deb3bdb2018-07-05 12:06:04 +010075LOCAL_C_INCLUDES := \
telsoa01ce3e84a2018-08-31 09:31:35 +010076 $(ARMNN_HEADER_PATH) \
77 $(ARMNN_UTILS_HEADER_PATH) \
78 $(OPENCL_HEADER_PATH) \
79 $(NN_HEADER_PATH)
telsoa015307bc12018-03-09 13:51:08 +000080
81LOCAL_CFLAGS := \
Mike Kellyb5fdf382019-06-11 16:35:25 +010082 -std=$(CPP_VERSION) \
telsoa01ce3e84a2018-08-31 09:31:35 +010083 -fexceptions \
84 -Werror \
Matteo Martincigh4d05ae72019-10-18 15:04:03 +010085 -Wno-format-security
Sadik Armagand6539c52019-05-22 18:00:30 +010086
87ifeq ($(P_OR_LATER),1)
surmeh01deb3bdb2018-07-05 12:06:04 +010088# Required to build with the changes made to the Android ML framework starting from Android P,
89# regardless of the HAL version used for the build.
90LOCAL_CFLAGS+= \
91 -DARMNN_ANDROID_P
Matteo Martincigh69558df2018-08-31 16:18:19 +010092endif # PLATFORM_VERSION == 9
Sadik Armagand6539c52019-05-22 18:00:30 +010093
telsoa015307bc12018-03-09 13:51:08 +000094ifeq ($(ARMNN_DRIVER_DEBUG),1)
telsoa01ce3e84a2018-08-31 09:31:35 +010095LOCAL_CFLAGS+= \
96 -UNDEBUG
Matteo Martincigh69558df2018-08-31 16:18:19 +010097endif # ARMNN_DRIVER_DEBUG == 1
Sadik Armagand6539c52019-05-22 18:00:30 +010098
Mike Kellyb5fdf382019-06-11 16:35:25 +010099ifeq ($(Q_OR_LATER),1)
100LOCAL_CFLAGS += \
101 -DBOOST_NO_AUTO_PTR
102endif # PLATFORM_VERSION == Q or later
103
Matteo Martincigh01c91512019-01-31 15:40:08 +0000104ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
105LOCAL_CFLAGS += \
106 -DARMCOMPUTECL_ENABLED
107endif # ARMNN_COMPUTE_CL_ENABLED == 1
Sadik Armagand6539c52019-05-22 18:00:30 +0100108
Matteo Martincigh01c91512019-01-31 15:40:08 +0000109ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
110LOCAL_CFLAGS += \
111 -DARMCOMPUTENEON_ENABLED
112endif # ARMNN_COMPUTE_NEON_ENABLED == 1
telsoa015307bc12018-03-09 13:51:08 +0000113
Matteo Martincighbb689562019-08-27 16:35:44 +0100114ifeq ($(ARMNN_REF_ENABLED),1)
Matteo Martincigh5eb5f1f2019-08-14 14:13:47 +0100115LOCAL_CFLAGS += \
Matteo Martincigh206ef702019-08-27 16:35:44 +0100116 -DARMNNREF_ENABLED
Matteo Martincighbb689562019-08-27 16:35:44 +0100117endif # ARMNN_REF_ENABLED == 1
Matteo Martincigh5eb5f1f2019-08-14 14:13:47 +0100118
surmeh01deb3bdb2018-07-05 12:06:04 +0100119LOCAL_SRC_FILES := \
Matteo Martincigh79250ab2018-09-04 16:28:10 +0100120 1.0/ArmnnDriverImpl.cpp \
arovir01b0717b52018-09-05 17:03:25 +0100121 1.0/HalPolicy.cpp \
Matteo Martincighe48bdff2018-09-03 13:50:50 +0100122 ArmnnDriverImpl.cpp \
telsoa01ce3e84a2018-08-31 09:31:35 +0100123 DriverOptions.cpp \
124 ArmnnDevice.cpp \
125 ArmnnPreparedModel.cpp \
126 ModelToINetworkConverter.cpp \
127 RequestThread.cpp \
arovir01b0717b52018-09-05 17:03:25 +0100128 Utils.cpp \
129 ConversionUtils.cpp
telsoa015307bc12018-03-09 13:51:08 +0000130
131LOCAL_STATIC_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100132 libneuralnetworks_common \
telsoa01ce3e84a2018-08-31 09:31:35 +0100133 libboost_log \
134 libboost_program_options \
135 libboost_system \
136 libboost_thread \
Matteo Martincighd80ed2f2019-08-07 12:20:42 +0100137 libboost_filesystem \
telsoa01ce3e84a2018-08-31 09:31:35 +0100138 armnn-arm_compute
telsoa015307bc12018-03-09 13:51:08 +0000139
David Beckc965f3c2018-10-12 17:23:16 +0100140LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
141
surmeh01deb3bdb2018-07-05 12:06:04 +0100142LOCAL_SHARED_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100143 libbase \
144 libhidlbase \
145 libhidltransport \
146 libhidlmemory \
147 liblog \
148 libutils \
149 android.hardware.neuralnetworks@1.0 \
150 android.hidl.allocator@1.0 \
Sadik Armagand6539c52019-05-22 18:00:30 +0100151 android.hidl.memory@1.0
152
153ifeq ($(P_OR_LATER),1)
surmeh01deb3bdb2018-07-05 12:06:04 +0100154# Required to build the 1.0 version of the NN Driver on Android P and later versions,
155# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
156LOCAL_SHARED_LIBRARIES+= \
telsoa01ce3e84a2018-08-31 09:31:35 +0100157 android.hardware.neuralnetworks@1.1
Matteo Martincigh69558df2018-08-31 16:18:19 +0100158endif # PLATFORM_VERSION == 9
telsoa015307bc12018-03-09 13:51:08 +0000159
Sadik Armagand6539c52019-05-22 18:00:30 +0100160ifeq ($(Q_OR_LATER),1)
161LOCAL_SHARED_LIBRARIES+= \
162 libnativewindow \
163 libui \
164 libfmq \
165 libcutils \
166 android.hardware.neuralnetworks@1.2
167endif # PLATFORM_VERSION == Q
168
169ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
170LOCAL_SHARED_LIBRARIES+= \
171 libOpenCL
172endif
173
telsoa015307bc12018-03-09 13:51:08 +0000174include $(BUILD_STATIC_LIBRARY)
175
Sadik Armagand6539c52019-05-22 18:00:30 +0100176ifeq ($(P_OR_LATER),1)
Matteo Martincigh69558df2018-08-31 16:18:19 +0100177# The following target is available starting from Android P
178
telsoa01ce3e84a2018-08-31 09:31:35 +0100179#######################
180# libarmnn-driver@1.1 #
181#######################
182include $(CLEAR_VARS)
183
184LOCAL_MODULE := libarmnn-driver@1.1
Sadik Armagand6539c52019-05-22 18:00:30 +0100185ifeq ($(Q_OR_LATER),1)
186# "eng" is deprecated in Android Q
187LOCAL_MODULE_TAGS := optional
188else
telsoa01ce3e84a2018-08-31 09:31:35 +0100189LOCAL_MODULE_TAGS := eng optional
Sadik Armagand6539c52019-05-22 18:00:30 +0100190endif
191#PRODUCT_PACKAGES_ENG := libarmnn-driver@1.1
telsoa01ce3e84a2018-08-31 09:31:35 +0100192LOCAL_ARM_MODE := arm
193LOCAL_PROPRIETARY_MODULE := true
194# Mark source files as dependent on Android.mk
195LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
196
197LOCAL_C_INCLUDES := \
198 $(ARMNN_HEADER_PATH) \
199 $(ARMNN_UTILS_HEADER_PATH) \
200 $(OPENCL_HEADER_PATH) \
201 $(NN_HEADER_PATH)
202
203LOCAL_CFLAGS := \
Mike Kellyb5fdf382019-06-11 16:35:25 +0100204 -std=$(CPP_VERSION) \
telsoa01ce3e84a2018-08-31 09:31:35 +0100205 -fexceptions \
206 -Werror \
207 -Wno-format-security \
208 -DARMNN_ANDROID_P \
209 -DARMNN_ANDROID_NN_V1_1
Sadik Armagand6539c52019-05-22 18:00:30 +0100210
telsoa01ce3e84a2018-08-31 09:31:35 +0100211ifeq ($(ARMNN_DRIVER_DEBUG),1)
212LOCAL_CFLAGS+= \
213 -UNDEBUG
Matteo Martincigh69558df2018-08-31 16:18:19 +0100214endif # ARMNN_DRIVER_DEBUG == 1
Sadik Armagand6539c52019-05-22 18:00:30 +0100215
Mike Kellyb5fdf382019-06-11 16:35:25 +0100216ifeq ($(Q_OR_LATER),1)
217LOCAL_CFLAGS += \
218 -DBOOST_NO_AUTO_PTR
219endif # PLATFORM_VERSION == Q or later
220
Matteo Martincigh01c91512019-01-31 15:40:08 +0000221ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
222LOCAL_CFLAGS += \
223 -DARMCOMPUTECL_ENABLED
224endif # ARMNN_COMPUTE_CL_ENABLED == 1
Sadik Armagand6539c52019-05-22 18:00:30 +0100225
Matteo Martincigh01c91512019-01-31 15:40:08 +0000226ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
227LOCAL_CFLAGS += \
228 -DARMCOMPUTENEON_ENABLED
229endif # ARMNN_COMPUTE_NEON_ENABLED == 1
telsoa01ce3e84a2018-08-31 09:31:35 +0100230
Matteo Martincighbb689562019-08-27 16:35:44 +0100231ifeq ($(ARMNN_REF_ENABLED),1)
Matteo Martincigh5eb5f1f2019-08-14 14:13:47 +0100232LOCAL_CFLAGS += \
Matteo Martincigh206ef702019-08-27 16:35:44 +0100233 -DARMNNREF_ENABLED
Matteo Martincighbb689562019-08-27 16:35:44 +0100234endif # ARMNN_REF_ENABLED == 1
Matteo Martincigh5eb5f1f2019-08-14 14:13:47 +0100235
telsoa01ce3e84a2018-08-31 09:31:35 +0100236LOCAL_SRC_FILES := \
Matteo Martincigh79250ab2018-09-04 16:28:10 +0100237 1.0/ArmnnDriverImpl.cpp \
arovir01b0717b52018-09-05 17:03:25 +0100238 1.0/HalPolicy.cpp \
Matteo Martincigh79250ab2018-09-04 16:28:10 +0100239 1.1/ArmnnDriverImpl.cpp \
arovir01b0717b52018-09-05 17:03:25 +0100240 1.1/HalPolicy.cpp \
Matteo Martincighe48bdff2018-09-03 13:50:50 +0100241 ArmnnDriverImpl.cpp \
telsoa01ce3e84a2018-08-31 09:31:35 +0100242 DriverOptions.cpp \
243 ArmnnDevice.cpp \
244 ArmnnPreparedModel.cpp \
245 ModelToINetworkConverter.cpp \
246 RequestThread.cpp \
arovir01b0717b52018-09-05 17:03:25 +0100247 Utils.cpp \
248 ConversionUtils.cpp
telsoa01ce3e84a2018-08-31 09:31:35 +0100249
250LOCAL_STATIC_LIBRARIES := \
251 libneuralnetworks_common \
telsoa01ce3e84a2018-08-31 09:31:35 +0100252 libboost_log \
253 libboost_program_options \
254 libboost_system \
255 libboost_thread \
Matteo Martincighd80ed2f2019-08-07 12:20:42 +0100256 libboost_filesystem \
telsoa01ce3e84a2018-08-31 09:31:35 +0100257 armnn-arm_compute
258
David Beckc965f3c2018-10-12 17:23:16 +0100259LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
260
telsoa01ce3e84a2018-08-31 09:31:35 +0100261LOCAL_SHARED_LIBRARIES := \
262 libbase \
263 libhidlbase \
264 libhidltransport \
265 libhidlmemory \
266 liblog \
267 libutils \
268 android.hardware.neuralnetworks@1.0 \
269 android.hardware.neuralnetworks@1.1 \
270 android.hidl.allocator@1.0 \
Sadik Armagand6539c52019-05-22 18:00:30 +0100271 android.hidl.memory@1.0
272
273ifeq ($(Q_OR_LATER),1)
274LOCAL_SHARED_LIBRARIES+= \
275 libnativewindow \
276 libui \
277 libfmq \
278 libcutils \
279 android.hardware.neuralnetworks@1.2
280endif # PLATFORM_VERSION == Q
281
282ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
283LOCAL_SHARED_LIBRARIES+= \
telsoa01ce3e84a2018-08-31 09:31:35 +0100284 libOpenCL
Sadik Armagand6539c52019-05-22 18:00:30 +0100285endif
telsoa01ce3e84a2018-08-31 09:31:35 +0100286
287include $(BUILD_STATIC_LIBRARY)
288
Matteo Martincigh69558df2018-08-31 16:18:19 +0100289endif # PLATFORM_VERSION == 9
290
Mike Kellyb5fdf382019-06-11 16:35:25 +0100291ifeq ($(Q_OR_LATER),1)
292# The following target is available starting from Android Q
293
294#######################
295# libarmnn-driver@1.2 #
296#######################
297include $(CLEAR_VARS)
298
299LOCAL_MODULE := libarmnn-driver@1.2
300LOCAL_MODULE_TAGS := optional
301LOCAL_ARM_MODE := arm
302LOCAL_PROPRIETARY_MODULE := true
303# Mark source files as dependent on Android.mk
304LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
305
306LOCAL_C_INCLUDES := \
307 $(ARMNN_HEADER_PATH) \
308 $(ARMNN_UTILS_HEADER_PATH) \
309 $(OPENCL_HEADER_PATH) \
310 $(NN_HEADER_PATH)
311
312LOCAL_CFLAGS := \
313 -std=$(CPP_VERSION) \
314 -fexceptions \
315 -Werror \
316 -Wno-format-security \
317 -DARMNN_ANDROID_Q \
318 -DARMNN_ANDROID_NN_V1_2
319
320ifeq ($(ARMNN_DRIVER_DEBUG),1)
321LOCAL_CFLAGS+= \
322 -UNDEBUG
323endif # ARMNN_DRIVER_DEBUG == 1
324
325ifeq ($(Q_OR_LATER),1)
326LOCAL_CFLAGS += \
327 -DBOOST_NO_AUTO_PTR
328endif # PLATFORM_VERSION == Q or later
329
330ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
331LOCAL_CFLAGS += \
332 -DARMCOMPUTECL_ENABLED
333endif # ARMNN_COMPUTE_CL_ENABLED == 1
334
335ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
336LOCAL_CFLAGS += \
337 -DARMCOMPUTENEON_ENABLED
338endif # ARMNN_COMPUTE_NEON_ENABLED == 1
339
Matteo Martincighbb689562019-08-27 16:35:44 +0100340ifeq ($(ARMNN_REF_ENABLED),1)
Matteo Martincigh5eb5f1f2019-08-14 14:13:47 +0100341LOCAL_CFLAGS += \
Matteo Martincigh206ef702019-08-27 16:35:44 +0100342 -DARMNNREF_ENABLED
Matteo Martincighbb689562019-08-27 16:35:44 +0100343endif # ARMNN_REF_ENABLED == 1
Matteo Martincigh5eb5f1f2019-08-14 14:13:47 +0100344
Mike Kellyb5fdf382019-06-11 16:35:25 +0100345LOCAL_SRC_FILES := \
346 1.0/ArmnnDriverImpl.cpp \
347 1.0/HalPolicy.cpp \
348 1.1/ArmnnDriverImpl.cpp \
349 1.1/HalPolicy.cpp \
350 1.2/ArmnnDriverImpl.cpp \
351 1.2/HalPolicy.cpp \
Mike Kellyb5fdf382019-06-11 16:35:25 +0100352 ArmnnDevice.cpp \
Matteo Martincigh17ffff32019-06-27 14:12:55 +0100353 ArmnnDriverImpl.cpp \
Mike Kellyb5fdf382019-06-11 16:35:25 +0100354 ArmnnPreparedModel.cpp \
355 ArmnnPreparedModel_1_2.cpp \
Matteo Martincigh17ffff32019-06-27 14:12:55 +0100356 ConversionUtils.cpp \
357 DriverOptions.cpp \
Mike Kellyb5fdf382019-06-11 16:35:25 +0100358 ModelToINetworkConverter.cpp \
359 RequestThread.cpp \
Matteo Martincigh17ffff32019-06-27 14:12:55 +0100360 Utils.cpp
Mike Kellyb5fdf382019-06-11 16:35:25 +0100361
362LOCAL_STATIC_LIBRARIES := \
363 libneuralnetworks_common \
364 libboost_log \
365 libboost_program_options \
366 libboost_system \
367 libboost_thread \
Matteo Martincighd80ed2f2019-08-07 12:20:42 +0100368 libboost_filesystem \
Mike Kellyb5fdf382019-06-11 16:35:25 +0100369 armnn-arm_compute
370
371LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
372
373LOCAL_SHARED_LIBRARIES := \
374 libbase \
375 libhidlbase \
376 libhidltransport \
377 libhidlmemory \
378 liblog \
379 libutils \
380 libnativewindow \
381 libui \
382 libfmq \
383 libcutils \
384 android.hidl.allocator@1.0 \
385 android.hidl.memory@1.0 \
386 android.hardware.neuralnetworks@1.0 \
387 android.hardware.neuralnetworks@1.1 \
388 android.hardware.neuralnetworks@1.2
389
390ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
391LOCAL_SHARED_LIBRARIES+= \
392 libOpenCL
393endif
394
395include $(BUILD_STATIC_LIBRARY)
396
397endif # PLATFORM_VERSION == Q
398
telsoa015307bc12018-03-09 13:51:08 +0000399#####################################################
400# android.hardware.neuralnetworks@1.0-service-armnn #
401#####################################################
402include $(CLEAR_VARS)
403
404LOCAL_MODULE := android.hardware.neuralnetworks@1.0-service-armnn
405LOCAL_INIT_RC := android.hardware.neuralnetworks@1.0-service-armnn.rc
Sadik Armagand6539c52019-05-22 18:00:30 +0100406ifeq ($(Q_OR_LATER),1)
407# "eng" is deprecated in Android Q
408LOCAL_MODULE_TAGS := optional
409else
telsoa015307bc12018-03-09 13:51:08 +0000410LOCAL_MODULE_TAGS := eng optional
Sadik Armagand6539c52019-05-22 18:00:30 +0100411endif
telsoa015307bc12018-03-09 13:51:08 +0000412LOCAL_ARM_MODE := arm
413LOCAL_MODULE_RELATIVE_PATH := hw
414LOCAL_PROPRIETARY_MODULE := true
415# Mark source files as dependent on Android.mk
416LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
417
telsoa01ce3e84a2018-08-31 09:31:35 +0100418LOCAL_C_INCLUDES := \
419 $(ARMNN_HEADER_PATH) \
420 $(NN_HEADER_PATH)
telsoa015307bc12018-03-09 13:51:08 +0000421
422LOCAL_CFLAGS := \
Mike Kellyb5fdf382019-06-11 16:35:25 +0100423 -std=$(CPP_VERSION) \
Matteo Martincigh4d05ae72019-10-18 15:04:03 +0100424 -fexceptions
Matteo Martincighffdae272019-10-16 16:24:43 +0100425
telsoa015307bc12018-03-09 13:51:08 +0000426ifeq ($(ARMNN_DRIVER_DEBUG),1)
telsoa01ce3e84a2018-08-31 09:31:35 +0100427LOCAL_CFLAGS += \
428 -UNDEBUG
Matteo Martincigh69558df2018-08-31 16:18:19 +0100429endif # ARMNN_DRIVER_DEBUG == 1
telsoa015307bc12018-03-09 13:51:08 +0000430
Mike Kellyb5fdf382019-06-11 16:35:25 +0100431ifeq ($(Q_OR_LATER),1)
432LOCAL_CFLAGS += \
433 -DBOOST_NO_AUTO_PTR
434endif # PLATFORM_VERSION == Q or later
435
surmeh01deb3bdb2018-07-05 12:06:04 +0100436LOCAL_SRC_FILES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100437 service.cpp
telsoa015307bc12018-03-09 13:51:08 +0000438
439LOCAL_STATIC_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100440 libneuralnetworks_common \
telsoa01ce3e84a2018-08-31 09:31:35 +0100441 libboost_log \
442 libboost_program_options \
443 libboost_system \
444 libboost_thread \
Matteo Martincighd80ed2f2019-08-07 12:20:42 +0100445 libboost_filesystem \
telsoa01ce3e84a2018-08-31 09:31:35 +0100446 armnn-arm_compute
telsoa015307bc12018-03-09 13:51:08 +0000447
David Beckbeb3e1f2018-10-15 14:15:42 +0100448LOCAL_WHOLE_STATIC_LIBRARIES := \
449 libarmnn-driver@1.0
David Beckc965f3c2018-10-12 17:23:16 +0100450
surmeh01deb3bdb2018-07-05 12:06:04 +0100451LOCAL_SHARED_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100452 libbase \
453 libhidlbase \
454 libhidltransport \
455 libhidlmemory \
456 libdl \
457 libhardware \
458 liblog \
459 libtextclassifier_hash \
460 libutils \
461 android.hardware.neuralnetworks@1.0 \
462 android.hidl.allocator@1.0 \
Sadik Armagand6539c52019-05-22 18:00:30 +0100463 android.hidl.memory@1.0
464
465ifeq ($(P_OR_LATER),1)
surmeh01deb3bdb2018-07-05 12:06:04 +0100466# Required to build the 1.0 version of the NN Driver on Android P and later versions,
467# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
468LOCAL_SHARED_LIBRARIES+= \
telsoa01ce3e84a2018-08-31 09:31:35 +0100469 android.hardware.neuralnetworks@1.1
Matteo Martincigh69558df2018-08-31 16:18:19 +0100470endif # PLATFORM_VERSION == 9
Sadik Armagand6539c52019-05-22 18:00:30 +0100471ifeq ($(Q_OR_LATER),1)
472LOCAL_SHARED_LIBRARIES+= \
473 libnativewindow \
474 libui \
475 libfmq \
476 libcutils \
477 android.hardware.neuralnetworks@1.2
478endif # PLATFORM_VERSION == Q
479
480ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
481LOCAL_SHARED_LIBRARIES+= \
482 libOpenCL
483endif
telsoa015307bc12018-03-09 13:51:08 +0000484
485include $(BUILD_EXECUTABLE)
486
Sadik Armagand6539c52019-05-22 18:00:30 +0100487ifeq ($(P_OR_LATER),1)
Matteo Martincigh69558df2018-08-31 16:18:19 +0100488# The following target is available starting from Android P
489
telsoa01ce3e84a2018-08-31 09:31:35 +0100490#####################################################
491# android.hardware.neuralnetworks@1.1-service-armnn #
492#####################################################
493include $(CLEAR_VARS)
494
495LOCAL_MODULE := android.hardware.neuralnetworks@1.1-service-armnn
496LOCAL_INIT_RC := android.hardware.neuralnetworks@1.1-service-armnn.rc
Sadik Armagand6539c52019-05-22 18:00:30 +0100497ifeq ($(Q_OR_LATER),1)
498# "eng" is deprecated in Android Q
499LOCAL_MODULE_TAGS := optional
500else
telsoa01ce3e84a2018-08-31 09:31:35 +0100501LOCAL_MODULE_TAGS := eng optional
Sadik Armagand6539c52019-05-22 18:00:30 +0100502endif
telsoa01ce3e84a2018-08-31 09:31:35 +0100503LOCAL_ARM_MODE := arm
504LOCAL_MODULE_RELATIVE_PATH := hw
505LOCAL_PROPRIETARY_MODULE := true
506# Mark source files as dependent on Android.mk
507LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
508
509LOCAL_C_INCLUDES := \
510 $(ARMNN_HEADER_PATH) \
511 $(NN_HEADER_PATH)
512
513LOCAL_CFLAGS := \
Mike Kellyb5fdf382019-06-11 16:35:25 +0100514 -std=$(CPP_VERSION) \
telsoa01ce3e84a2018-08-31 09:31:35 +0100515 -fexceptions \
516 -DARMNN_ANDROID_NN_V1_1
Matteo Martincighffdae272019-10-16 16:24:43 +0100517
telsoa01ce3e84a2018-08-31 09:31:35 +0100518ifeq ($(ARMNN_DRIVER_DEBUG),1)
519LOCAL_CFLAGS += \
520 -UNDEBUG
Matteo Martincigh69558df2018-08-31 16:18:19 +0100521endif # ARMNN_DRIVER_DEBUG == 1
telsoa01ce3e84a2018-08-31 09:31:35 +0100522
Mike Kellyb5fdf382019-06-11 16:35:25 +0100523ifeq ($(Q_OR_LATER),1)
524LOCAL_CFLAGS += \
525 -DBOOST_NO_AUTO_PTR
526endif # PLATFORM_VERSION == Q or later
527
telsoa01ce3e84a2018-08-31 09:31:35 +0100528LOCAL_SRC_FILES := \
529 service.cpp
530
531LOCAL_STATIC_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100532 libneuralnetworks_common \
telsoa01ce3e84a2018-08-31 09:31:35 +0100533 libboost_log \
534 libboost_program_options \
535 libboost_system \
536 libboost_thread \
Matteo Martincighd80ed2f2019-08-07 12:20:42 +0100537 libboost_filesystem \
telsoa01ce3e84a2018-08-31 09:31:35 +0100538 armnn-arm_compute
539
David Beckbeb3e1f2018-10-15 14:15:42 +0100540LOCAL_WHOLE_STATIC_LIBRARIES := \
541 libarmnn-driver@1.1
David Beckc965f3c2018-10-12 17:23:16 +0100542
telsoa01ce3e84a2018-08-31 09:31:35 +0100543LOCAL_SHARED_LIBRARIES := \
544 libbase \
545 libhidlbase \
546 libhidltransport \
547 libhidlmemory \
548 libdl \
549 libhardware \
550 liblog \
551 libtextclassifier_hash \
552 libutils \
553 android.hardware.neuralnetworks@1.0 \
554 android.hardware.neuralnetworks@1.1 \
555 android.hidl.allocator@1.0 \
Sadik Armagand6539c52019-05-22 18:00:30 +0100556 android.hidl.memory@1.0
557
558ifeq ($(Q_OR_LATER),1)
559LOCAL_SHARED_LIBRARIES+= \
560 libnativewindow \
561 libui \
562 libfmq \
563 libcutils \
564 android.hardware.neuralnetworks@1.2
565endif # PLATFORM_VERSION == Q
566
567ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
568LOCAL_SHARED_LIBRARIES+= \
telsoa01ce3e84a2018-08-31 09:31:35 +0100569 libOpenCL
Sadik Armagand6539c52019-05-22 18:00:30 +0100570endif
telsoa01ce3e84a2018-08-31 09:31:35 +0100571
572include $(BUILD_EXECUTABLE)
573
Matteo Martincigh69558df2018-08-31 16:18:19 +0100574endif # PLATFORM_VERSION == 9
575
Mike Kellyb5fdf382019-06-11 16:35:25 +0100576ifeq ($(Q_OR_LATER),1)
577# The following target is available starting from Android Q
578
579#####################################################
580# android.hardware.neuralnetworks@1.2-service-armnn #
581#####################################################
582include $(CLEAR_VARS)
583
584LOCAL_MODULE := android.hardware.neuralnetworks@1.2-service-armnn
585LOCAL_INIT_RC := android.hardware.neuralnetworks@1.2-service-armnn.rc
586LOCAL_MODULE_TAGS := optional
587LOCAL_ARM_MODE := arm
588LOCAL_MODULE_RELATIVE_PATH := hw
589LOCAL_PROPRIETARY_MODULE := true
590# Mark source files as dependent on Android.mk
591LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
592
593LOCAL_C_INCLUDES := \
594 $(ARMNN_HEADER_PATH) \
595 $(NN_HEADER_PATH)
596
597LOCAL_CFLAGS := \
598 -std=$(CPP_VERSION) \
599 -fexceptions \
600 -DARMNN_ANDROID_NN_V1_2 \
601 -DBOOST_NO_AUTO_PTR
Matteo Martincighffdae272019-10-16 16:24:43 +0100602
Mike Kellyb5fdf382019-06-11 16:35:25 +0100603ifeq ($(ARMNN_DRIVER_DEBUG),1)
604LOCAL_CFLAGS += \
605 -UNDEBUG
606endif # ARMNN_DRIVER_DEBUG == 1
607
608LOCAL_SRC_FILES := \
609 service.cpp
610
611LOCAL_STATIC_LIBRARIES := \
612 libneuralnetworks_common \
613 libboost_log \
614 libboost_program_options \
615 libboost_system \
616 libboost_thread \
Matteo Martincighd80ed2f2019-08-07 12:20:42 +0100617 libboost_filesystem \
Mike Kellyb5fdf382019-06-11 16:35:25 +0100618 armnn-arm_compute
619
620LOCAL_WHOLE_STATIC_LIBRARIES := \
621 libarmnn-driver@1.2
622
623LOCAL_SHARED_LIBRARIES := \
624 libbase \
625 libhidlbase \
626 libhidltransport \
627 libhidlmemory \
628 libdl \
629 libhardware \
630 liblog \
631 libtextclassifier_hash \
632 libutils \
633 libnativewindow \
634 libui \
635 libfmq \
636 libcutils \
637 android.hidl.allocator@1.0 \
638 android.hidl.memory@1.0 \
639 android.hardware.neuralnetworks@1.0 \
640 android.hardware.neuralnetworks@1.1 \
641 android.hardware.neuralnetworks@1.2
642
643ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
644LOCAL_SHARED_LIBRARIES+= \
645 libOpenCL
646endif
647
648include $(BUILD_EXECUTABLE)
649
650endif # PLATFORM_VERSION == Q
651
telsoa015307bc12018-03-09 13:51:08 +0000652##########################
653# armnn module and tests #
654##########################
655# Note we use ANDROID_NN_DRIVER_LOCAL_PATH rather than LOCAL_PATH because LOCAL_PATH will be overwritten
656# when including other .mk files that set it.
657include $(ANDROID_NN_DRIVER_LOCAL_PATH)/armnn/Android.mk
surmeh0149b9e102018-05-17 14:11:25 +0100658include $(ANDROID_NN_DRIVER_LOCAL_PATH)/test/Android.mk