blob: 2e83e27c89cbb2ce0aa771067e818d9b2e13e6e9 [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
41#
42# They can be optionally passed from the command line to build the backends programmatically
43# For example, to disable CL support, do from the top of the Android source tree:
44# ARMNN_COMPUTE_CL_ENABLED=0 make
45# Or export it as an environment variable, export ARMNN_COMPUTE_CL_ENABLED=0, and then run the make command
46#
47# Set the following default values to '0' to disable support for a specific backend
48ifndef ARMNN_COMPUTE_CL_ENABLED
49# ARMNN_COMPUTE_CL_ENABLED is undefined, use the following default value
Matteo Martincigh01c91512019-01-31 15:40:08 +000050ARMNN_COMPUTE_CL_ENABLED := 1
Sadik Armagand6539c52019-05-22 18:00:30 +010051endif
Matteo Martincigh5eb5f1f2019-08-14 14:13:47 +010052ifndef ARMNN_COMPUTE_NEON_ENABLED
53# ARMNN_COMPUTE_NEON_ENABLED is undefined, use the following default value
54ARMNN_COMPUTE_NEON_ENABLED := 1
55endif
Matteo Martincighbb689562019-08-27 16:35:44 +010056ifndef ARMNN_REF_ENABLED
57# ARMNN_REF_ENABLED is undefined, use the following default value
58ARMNN_REF_ENABLED := 1
Sadik Armagand6539c52019-05-22 18:00:30 +010059endif
60
telsoa01ce3e84a2018-08-31 09:31:35 +010061#######################
62# libarmnn-driver@1.0 #
63#######################
telsoa015307bc12018-03-09 13:51:08 +000064include $(CLEAR_VARS)
65
telsoa01ce3e84a2018-08-31 09:31:35 +010066LOCAL_MODULE := libarmnn-driver@1.0
Sadik Armagand6539c52019-05-22 18:00:30 +010067ifeq ($(Q_OR_LATER),1)
68# "eng" is deprecated in Android Q
69LOCAL_MODULE_TAGS := optional
70else
telsoa015307bc12018-03-09 13:51:08 +000071LOCAL_MODULE_TAGS := eng optional
Sadik Armagand6539c52019-05-22 18:00:30 +010072endif
telsoa015307bc12018-03-09 13:51:08 +000073LOCAL_ARM_MODE := arm
surmeh0149b9e102018-05-17 14:11:25 +010074LOCAL_PROPRIETARY_MODULE := true
telsoa015307bc12018-03-09 13:51:08 +000075# Mark source files as dependent on Android.mk
76LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
77
surmeh01deb3bdb2018-07-05 12:06:04 +010078LOCAL_C_INCLUDES := \
telsoa01ce3e84a2018-08-31 09:31:35 +010079 $(ARMNN_HEADER_PATH) \
80 $(ARMNN_UTILS_HEADER_PATH) \
81 $(OPENCL_HEADER_PATH) \
82 $(NN_HEADER_PATH)
telsoa015307bc12018-03-09 13:51:08 +000083
84LOCAL_CFLAGS := \
Mike Kellyb5fdf382019-06-11 16:35:25 +010085 -std=$(CPP_VERSION) \
telsoa01ce3e84a2018-08-31 09:31:35 +010086 -fexceptions \
87 -Werror \
88 -Wno-format-security
Sadik Armagand6539c52019-05-22 18:00:30 +010089
90ifeq ($(P_OR_LATER),1)
surmeh01deb3bdb2018-07-05 12:06:04 +010091# Required to build with the changes made to the Android ML framework starting from Android P,
92# regardless of the HAL version used for the build.
93LOCAL_CFLAGS+= \
94 -DARMNN_ANDROID_P
Matteo Martincigh69558df2018-08-31 16:18:19 +010095endif # PLATFORM_VERSION == 9
Sadik Armagand6539c52019-05-22 18:00:30 +010096
telsoa015307bc12018-03-09 13:51:08 +000097ifeq ($(ARMNN_DRIVER_DEBUG),1)
telsoa01ce3e84a2018-08-31 09:31:35 +010098LOCAL_CFLAGS+= \
99 -UNDEBUG
Matteo Martincigh69558df2018-08-31 16:18:19 +0100100endif # ARMNN_DRIVER_DEBUG == 1
Sadik Armagand6539c52019-05-22 18:00:30 +0100101
Mike Kellyb5fdf382019-06-11 16:35:25 +0100102ifeq ($(Q_OR_LATER),1)
103LOCAL_CFLAGS += \
104 -DBOOST_NO_AUTO_PTR
105endif # PLATFORM_VERSION == Q or later
106
Matteo Martincigh01c91512019-01-31 15:40:08 +0000107ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
108LOCAL_CFLAGS += \
109 -DARMCOMPUTECL_ENABLED
110endif # ARMNN_COMPUTE_CL_ENABLED == 1
Sadik Armagand6539c52019-05-22 18:00:30 +0100111
Matteo Martincigh01c91512019-01-31 15:40:08 +0000112ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
113LOCAL_CFLAGS += \
114 -DARMCOMPUTENEON_ENABLED
115endif # ARMNN_COMPUTE_NEON_ENABLED == 1
telsoa015307bc12018-03-09 13:51:08 +0000116
Matteo Martincighbb689562019-08-27 16:35:44 +0100117ifeq ($(ARMNN_REF_ENABLED),1)
Matteo Martincigh5eb5f1f2019-08-14 14:13:47 +0100118LOCAL_CFLAGS += \
Matteo Martincigh206ef702019-08-27 16:35:44 +0100119 -DARMNNREF_ENABLED
Matteo Martincighbb689562019-08-27 16:35:44 +0100120endif # ARMNN_REF_ENABLED == 1
Matteo Martincigh5eb5f1f2019-08-14 14:13:47 +0100121
surmeh01deb3bdb2018-07-05 12:06:04 +0100122LOCAL_SRC_FILES := \
Matteo Martincigh79250ab2018-09-04 16:28:10 +0100123 1.0/ArmnnDriverImpl.cpp \
arovir01b0717b52018-09-05 17:03:25 +0100124 1.0/HalPolicy.cpp \
Matteo Martincighe48bdff2018-09-03 13:50:50 +0100125 ArmnnDriverImpl.cpp \
telsoa01ce3e84a2018-08-31 09:31:35 +0100126 DriverOptions.cpp \
127 ArmnnDevice.cpp \
128 ArmnnPreparedModel.cpp \
129 ModelToINetworkConverter.cpp \
130 RequestThread.cpp \
arovir01b0717b52018-09-05 17:03:25 +0100131 Utils.cpp \
132 ConversionUtils.cpp
telsoa015307bc12018-03-09 13:51:08 +0000133
134LOCAL_STATIC_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100135 libneuralnetworks_common \
telsoa01ce3e84a2018-08-31 09:31:35 +0100136 libboost_log \
137 libboost_program_options \
138 libboost_system \
139 libboost_thread \
Matteo Martincighd80ed2f2019-08-07 12:20:42 +0100140 libboost_filesystem \
telsoa01ce3e84a2018-08-31 09:31:35 +0100141 armnn-arm_compute
telsoa015307bc12018-03-09 13:51:08 +0000142
David Beckc965f3c2018-10-12 17:23:16 +0100143LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
144
surmeh01deb3bdb2018-07-05 12:06:04 +0100145LOCAL_SHARED_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100146 libbase \
147 libhidlbase \
148 libhidltransport \
149 libhidlmemory \
150 liblog \
151 libutils \
152 android.hardware.neuralnetworks@1.0 \
153 android.hidl.allocator@1.0 \
Sadik Armagand6539c52019-05-22 18:00:30 +0100154 android.hidl.memory@1.0
155
156ifeq ($(P_OR_LATER),1)
surmeh01deb3bdb2018-07-05 12:06:04 +0100157# Required to build the 1.0 version of the NN Driver on Android P and later versions,
158# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
159LOCAL_SHARED_LIBRARIES+= \
telsoa01ce3e84a2018-08-31 09:31:35 +0100160 android.hardware.neuralnetworks@1.1
Matteo Martincigh69558df2018-08-31 16:18:19 +0100161endif # PLATFORM_VERSION == 9
telsoa015307bc12018-03-09 13:51:08 +0000162
Sadik Armagand6539c52019-05-22 18:00:30 +0100163ifeq ($(Q_OR_LATER),1)
164LOCAL_SHARED_LIBRARIES+= \
165 libnativewindow \
166 libui \
167 libfmq \
168 libcutils \
169 android.hardware.neuralnetworks@1.2
170endif # PLATFORM_VERSION == Q
171
172ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
173LOCAL_SHARED_LIBRARIES+= \
174 libOpenCL
175endif
176
telsoa015307bc12018-03-09 13:51:08 +0000177include $(BUILD_STATIC_LIBRARY)
178
Sadik Armagand6539c52019-05-22 18:00:30 +0100179ifeq ($(P_OR_LATER),1)
Matteo Martincigh69558df2018-08-31 16:18:19 +0100180# The following target is available starting from Android P
181
telsoa01ce3e84a2018-08-31 09:31:35 +0100182#######################
183# libarmnn-driver@1.1 #
184#######################
185include $(CLEAR_VARS)
186
187LOCAL_MODULE := libarmnn-driver@1.1
Sadik Armagand6539c52019-05-22 18:00:30 +0100188ifeq ($(Q_OR_LATER),1)
189# "eng" is deprecated in Android Q
190LOCAL_MODULE_TAGS := optional
191else
telsoa01ce3e84a2018-08-31 09:31:35 +0100192LOCAL_MODULE_TAGS := eng optional
Sadik Armagand6539c52019-05-22 18:00:30 +0100193endif
194#PRODUCT_PACKAGES_ENG := libarmnn-driver@1.1
telsoa01ce3e84a2018-08-31 09:31:35 +0100195LOCAL_ARM_MODE := arm
196LOCAL_PROPRIETARY_MODULE := true
197# Mark source files as dependent on Android.mk
198LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
199
200LOCAL_C_INCLUDES := \
201 $(ARMNN_HEADER_PATH) \
202 $(ARMNN_UTILS_HEADER_PATH) \
203 $(OPENCL_HEADER_PATH) \
204 $(NN_HEADER_PATH)
205
206LOCAL_CFLAGS := \
Mike Kellyb5fdf382019-06-11 16:35:25 +0100207 -std=$(CPP_VERSION) \
telsoa01ce3e84a2018-08-31 09:31:35 +0100208 -fexceptions \
209 -Werror \
210 -Wno-format-security \
211 -DARMNN_ANDROID_P \
212 -DARMNN_ANDROID_NN_V1_1
Sadik Armagand6539c52019-05-22 18:00:30 +0100213
telsoa01ce3e84a2018-08-31 09:31:35 +0100214ifeq ($(ARMNN_DRIVER_DEBUG),1)
215LOCAL_CFLAGS+= \
216 -UNDEBUG
Matteo Martincigh69558df2018-08-31 16:18:19 +0100217endif # ARMNN_DRIVER_DEBUG == 1
Sadik Armagand6539c52019-05-22 18:00:30 +0100218
Mike Kellyb5fdf382019-06-11 16:35:25 +0100219ifeq ($(Q_OR_LATER),1)
220LOCAL_CFLAGS += \
221 -DBOOST_NO_AUTO_PTR
222endif # PLATFORM_VERSION == Q or later
223
Matteo Martincigh01c91512019-01-31 15:40:08 +0000224ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
225LOCAL_CFLAGS += \
226 -DARMCOMPUTECL_ENABLED
227endif # ARMNN_COMPUTE_CL_ENABLED == 1
Sadik Armagand6539c52019-05-22 18:00:30 +0100228
Matteo Martincigh01c91512019-01-31 15:40:08 +0000229ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
230LOCAL_CFLAGS += \
231 -DARMCOMPUTENEON_ENABLED
232endif # ARMNN_COMPUTE_NEON_ENABLED == 1
telsoa01ce3e84a2018-08-31 09:31:35 +0100233
Matteo Martincighbb689562019-08-27 16:35:44 +0100234ifeq ($(ARMNN_REF_ENABLED),1)
Matteo Martincigh5eb5f1f2019-08-14 14:13:47 +0100235LOCAL_CFLAGS += \
Matteo Martincigh206ef702019-08-27 16:35:44 +0100236 -DARMNNREF_ENABLED
Matteo Martincighbb689562019-08-27 16:35:44 +0100237endif # ARMNN_REF_ENABLED == 1
Matteo Martincigh5eb5f1f2019-08-14 14:13:47 +0100238
telsoa01ce3e84a2018-08-31 09:31:35 +0100239LOCAL_SRC_FILES := \
Matteo Martincigh79250ab2018-09-04 16:28:10 +0100240 1.0/ArmnnDriverImpl.cpp \
arovir01b0717b52018-09-05 17:03:25 +0100241 1.0/HalPolicy.cpp \
Matteo Martincigh79250ab2018-09-04 16:28:10 +0100242 1.1/ArmnnDriverImpl.cpp \
arovir01b0717b52018-09-05 17:03:25 +0100243 1.1/HalPolicy.cpp \
Matteo Martincighe48bdff2018-09-03 13:50:50 +0100244 ArmnnDriverImpl.cpp \
telsoa01ce3e84a2018-08-31 09:31:35 +0100245 DriverOptions.cpp \
246 ArmnnDevice.cpp \
247 ArmnnPreparedModel.cpp \
248 ModelToINetworkConverter.cpp \
249 RequestThread.cpp \
arovir01b0717b52018-09-05 17:03:25 +0100250 Utils.cpp \
251 ConversionUtils.cpp
telsoa01ce3e84a2018-08-31 09:31:35 +0100252
253LOCAL_STATIC_LIBRARIES := \
254 libneuralnetworks_common \
telsoa01ce3e84a2018-08-31 09:31:35 +0100255 libboost_log \
256 libboost_program_options \
257 libboost_system \
258 libboost_thread \
Matteo Martincighd80ed2f2019-08-07 12:20:42 +0100259 libboost_filesystem \
telsoa01ce3e84a2018-08-31 09:31:35 +0100260 armnn-arm_compute
261
David Beckc965f3c2018-10-12 17:23:16 +0100262LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
263
telsoa01ce3e84a2018-08-31 09:31:35 +0100264LOCAL_SHARED_LIBRARIES := \
265 libbase \
266 libhidlbase \
267 libhidltransport \
268 libhidlmemory \
269 liblog \
270 libutils \
271 android.hardware.neuralnetworks@1.0 \
272 android.hardware.neuralnetworks@1.1 \
273 android.hidl.allocator@1.0 \
Sadik Armagand6539c52019-05-22 18:00:30 +0100274 android.hidl.memory@1.0
275
276ifeq ($(Q_OR_LATER),1)
277LOCAL_SHARED_LIBRARIES+= \
278 libnativewindow \
279 libui \
280 libfmq \
281 libcutils \
282 android.hardware.neuralnetworks@1.2
283endif # PLATFORM_VERSION == Q
284
285ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
286LOCAL_SHARED_LIBRARIES+= \
telsoa01ce3e84a2018-08-31 09:31:35 +0100287 libOpenCL
Sadik Armagand6539c52019-05-22 18:00:30 +0100288endif
telsoa01ce3e84a2018-08-31 09:31:35 +0100289
290include $(BUILD_STATIC_LIBRARY)
291
Matteo Martincigh69558df2018-08-31 16:18:19 +0100292endif # PLATFORM_VERSION == 9
293
Mike Kellyb5fdf382019-06-11 16:35:25 +0100294ifeq ($(Q_OR_LATER),1)
295# The following target is available starting from Android Q
296
297#######################
298# libarmnn-driver@1.2 #
299#######################
300include $(CLEAR_VARS)
301
302LOCAL_MODULE := libarmnn-driver@1.2
303LOCAL_MODULE_TAGS := optional
304LOCAL_ARM_MODE := arm
305LOCAL_PROPRIETARY_MODULE := true
306# Mark source files as dependent on Android.mk
307LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
308
309LOCAL_C_INCLUDES := \
310 $(ARMNN_HEADER_PATH) \
311 $(ARMNN_UTILS_HEADER_PATH) \
312 $(OPENCL_HEADER_PATH) \
313 $(NN_HEADER_PATH)
314
315LOCAL_CFLAGS := \
316 -std=$(CPP_VERSION) \
317 -fexceptions \
318 -Werror \
319 -Wno-format-security \
320 -DARMNN_ANDROID_Q \
321 -DARMNN_ANDROID_NN_V1_2
322
323ifeq ($(ARMNN_DRIVER_DEBUG),1)
324LOCAL_CFLAGS+= \
325 -UNDEBUG
326endif # ARMNN_DRIVER_DEBUG == 1
327
328ifeq ($(Q_OR_LATER),1)
329LOCAL_CFLAGS += \
330 -DBOOST_NO_AUTO_PTR
331endif # PLATFORM_VERSION == Q or later
332
333ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
334LOCAL_CFLAGS += \
335 -DARMCOMPUTECL_ENABLED
336endif # ARMNN_COMPUTE_CL_ENABLED == 1
337
338ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
339LOCAL_CFLAGS += \
340 -DARMCOMPUTENEON_ENABLED
341endif # ARMNN_COMPUTE_NEON_ENABLED == 1
342
Matteo Martincighbb689562019-08-27 16:35:44 +0100343ifeq ($(ARMNN_REF_ENABLED),1)
Matteo Martincigh5eb5f1f2019-08-14 14:13:47 +0100344LOCAL_CFLAGS += \
Matteo Martincigh206ef702019-08-27 16:35:44 +0100345 -DARMNNREF_ENABLED
Matteo Martincighbb689562019-08-27 16:35:44 +0100346endif # ARMNN_REF_ENABLED == 1
Matteo Martincigh5eb5f1f2019-08-14 14:13:47 +0100347
Mike Kellyb5fdf382019-06-11 16:35:25 +0100348LOCAL_SRC_FILES := \
349 1.0/ArmnnDriverImpl.cpp \
350 1.0/HalPolicy.cpp \
351 1.1/ArmnnDriverImpl.cpp \
352 1.1/HalPolicy.cpp \
353 1.2/ArmnnDriverImpl.cpp \
354 1.2/HalPolicy.cpp \
Mike Kellyb5fdf382019-06-11 16:35:25 +0100355 ArmnnDevice.cpp \
Matteo Martincigh17ffff32019-06-27 14:12:55 +0100356 ArmnnDriverImpl.cpp \
Mike Kellyb5fdf382019-06-11 16:35:25 +0100357 ArmnnPreparedModel.cpp \
358 ArmnnPreparedModel_1_2.cpp \
Matteo Martincigh17ffff32019-06-27 14:12:55 +0100359 ConversionUtils.cpp \
360 DriverOptions.cpp \
Mike Kellyb5fdf382019-06-11 16:35:25 +0100361 ModelToINetworkConverter.cpp \
362 RequestThread.cpp \
Matteo Martincigh17ffff32019-06-27 14:12:55 +0100363 Utils.cpp
Mike Kellyb5fdf382019-06-11 16:35:25 +0100364
365LOCAL_STATIC_LIBRARIES := \
366 libneuralnetworks_common \
367 libboost_log \
368 libboost_program_options \
369 libboost_system \
370 libboost_thread \
Matteo Martincighd80ed2f2019-08-07 12:20:42 +0100371 libboost_filesystem \
Mike Kellyb5fdf382019-06-11 16:35:25 +0100372 armnn-arm_compute
373
374LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
375
376LOCAL_SHARED_LIBRARIES := \
377 libbase \
378 libhidlbase \
379 libhidltransport \
380 libhidlmemory \
381 liblog \
382 libutils \
383 libnativewindow \
384 libui \
385 libfmq \
386 libcutils \
387 android.hidl.allocator@1.0 \
388 android.hidl.memory@1.0 \
389 android.hardware.neuralnetworks@1.0 \
390 android.hardware.neuralnetworks@1.1 \
391 android.hardware.neuralnetworks@1.2
392
393ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
394LOCAL_SHARED_LIBRARIES+= \
395 libOpenCL
396endif
397
398include $(BUILD_STATIC_LIBRARY)
399
400endif # PLATFORM_VERSION == Q
401
telsoa015307bc12018-03-09 13:51:08 +0000402#####################################################
403# android.hardware.neuralnetworks@1.0-service-armnn #
404#####################################################
405include $(CLEAR_VARS)
406
407LOCAL_MODULE := android.hardware.neuralnetworks@1.0-service-armnn
408LOCAL_INIT_RC := android.hardware.neuralnetworks@1.0-service-armnn.rc
Sadik Armagand6539c52019-05-22 18:00:30 +0100409ifeq ($(Q_OR_LATER),1)
410# "eng" is deprecated in Android Q
411LOCAL_MODULE_TAGS := optional
412else
telsoa015307bc12018-03-09 13:51:08 +0000413LOCAL_MODULE_TAGS := eng optional
Sadik Armagand6539c52019-05-22 18:00:30 +0100414endif
telsoa015307bc12018-03-09 13:51:08 +0000415LOCAL_ARM_MODE := arm
416LOCAL_MODULE_RELATIVE_PATH := hw
417LOCAL_PROPRIETARY_MODULE := true
418# Mark source files as dependent on Android.mk
419LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
420
telsoa01ce3e84a2018-08-31 09:31:35 +0100421LOCAL_C_INCLUDES := \
422 $(ARMNN_HEADER_PATH) \
423 $(NN_HEADER_PATH)
telsoa015307bc12018-03-09 13:51:08 +0000424
425LOCAL_CFLAGS := \
Mike Kellyb5fdf382019-06-11 16:35:25 +0100426 -std=$(CPP_VERSION) \
telsoa01ce3e84a2018-08-31 09:31:35 +0100427 -fexceptions
telsoa015307bc12018-03-09 13:51:08 +0000428ifeq ($(ARMNN_DRIVER_DEBUG),1)
telsoa01ce3e84a2018-08-31 09:31:35 +0100429LOCAL_CFLAGS += \
430 -UNDEBUG
Matteo Martincigh69558df2018-08-31 16:18:19 +0100431endif # ARMNN_DRIVER_DEBUG == 1
telsoa015307bc12018-03-09 13:51:08 +0000432
Mike Kellyb5fdf382019-06-11 16:35:25 +0100433ifeq ($(Q_OR_LATER),1)
434LOCAL_CFLAGS += \
435 -DBOOST_NO_AUTO_PTR
436endif # PLATFORM_VERSION == Q or later
437
surmeh01deb3bdb2018-07-05 12:06:04 +0100438LOCAL_SRC_FILES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100439 service.cpp
telsoa015307bc12018-03-09 13:51:08 +0000440
441LOCAL_STATIC_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100442 libneuralnetworks_common \
telsoa01ce3e84a2018-08-31 09:31:35 +0100443 libboost_log \
444 libboost_program_options \
445 libboost_system \
446 libboost_thread \
Matteo Martincighd80ed2f2019-08-07 12:20:42 +0100447 libboost_filesystem \
telsoa01ce3e84a2018-08-31 09:31:35 +0100448 armnn-arm_compute
telsoa015307bc12018-03-09 13:51:08 +0000449
David Beckbeb3e1f2018-10-15 14:15:42 +0100450LOCAL_WHOLE_STATIC_LIBRARIES := \
451 libarmnn-driver@1.0
David Beckc965f3c2018-10-12 17:23:16 +0100452
surmeh01deb3bdb2018-07-05 12:06:04 +0100453LOCAL_SHARED_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100454 libbase \
455 libhidlbase \
456 libhidltransport \
457 libhidlmemory \
458 libdl \
459 libhardware \
460 liblog \
461 libtextclassifier_hash \
462 libutils \
463 android.hardware.neuralnetworks@1.0 \
464 android.hidl.allocator@1.0 \
Sadik Armagand6539c52019-05-22 18:00:30 +0100465 android.hidl.memory@1.0
466
467ifeq ($(P_OR_LATER),1)
surmeh01deb3bdb2018-07-05 12:06:04 +0100468# Required to build the 1.0 version of the NN Driver on Android P and later versions,
469# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
470LOCAL_SHARED_LIBRARIES+= \
telsoa01ce3e84a2018-08-31 09:31:35 +0100471 android.hardware.neuralnetworks@1.1
Matteo Martincigh69558df2018-08-31 16:18:19 +0100472endif # PLATFORM_VERSION == 9
Sadik Armagand6539c52019-05-22 18:00:30 +0100473ifeq ($(Q_OR_LATER),1)
474LOCAL_SHARED_LIBRARIES+= \
475 libnativewindow \
476 libui \
477 libfmq \
478 libcutils \
479 android.hardware.neuralnetworks@1.2
480endif # PLATFORM_VERSION == Q
481
482ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
483LOCAL_SHARED_LIBRARIES+= \
484 libOpenCL
485endif
telsoa015307bc12018-03-09 13:51:08 +0000486
487include $(BUILD_EXECUTABLE)
488
Sadik Armagand6539c52019-05-22 18:00:30 +0100489ifeq ($(P_OR_LATER),1)
Matteo Martincigh69558df2018-08-31 16:18:19 +0100490# The following target is available starting from Android P
491
telsoa01ce3e84a2018-08-31 09:31:35 +0100492#####################################################
493# android.hardware.neuralnetworks@1.1-service-armnn #
494#####################################################
495include $(CLEAR_VARS)
496
497LOCAL_MODULE := android.hardware.neuralnetworks@1.1-service-armnn
498LOCAL_INIT_RC := android.hardware.neuralnetworks@1.1-service-armnn.rc
Sadik Armagand6539c52019-05-22 18:00:30 +0100499ifeq ($(Q_OR_LATER),1)
500# "eng" is deprecated in Android Q
501LOCAL_MODULE_TAGS := optional
502else
telsoa01ce3e84a2018-08-31 09:31:35 +0100503LOCAL_MODULE_TAGS := eng optional
Sadik Armagand6539c52019-05-22 18:00:30 +0100504endif
telsoa01ce3e84a2018-08-31 09:31:35 +0100505LOCAL_ARM_MODE := arm
506LOCAL_MODULE_RELATIVE_PATH := hw
507LOCAL_PROPRIETARY_MODULE := true
508# Mark source files as dependent on Android.mk
509LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
510
511LOCAL_C_INCLUDES := \
512 $(ARMNN_HEADER_PATH) \
513 $(NN_HEADER_PATH)
514
515LOCAL_CFLAGS := \
Mike Kellyb5fdf382019-06-11 16:35:25 +0100516 -std=$(CPP_VERSION) \
telsoa01ce3e84a2018-08-31 09:31:35 +0100517 -fexceptions \
518 -DARMNN_ANDROID_NN_V1_1
519ifeq ($(ARMNN_DRIVER_DEBUG),1)
520LOCAL_CFLAGS += \
521 -UNDEBUG
Matteo Martincigh69558df2018-08-31 16:18:19 +0100522endif # ARMNN_DRIVER_DEBUG == 1
telsoa01ce3e84a2018-08-31 09:31:35 +0100523
Mike Kellyb5fdf382019-06-11 16:35:25 +0100524ifeq ($(Q_OR_LATER),1)
525LOCAL_CFLAGS += \
526 -DBOOST_NO_AUTO_PTR
527endif # PLATFORM_VERSION == Q or later
528
telsoa01ce3e84a2018-08-31 09:31:35 +0100529LOCAL_SRC_FILES := \
530 service.cpp
531
532LOCAL_STATIC_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100533 libneuralnetworks_common \
telsoa01ce3e84a2018-08-31 09:31:35 +0100534 libboost_log \
535 libboost_program_options \
536 libboost_system \
537 libboost_thread \
Matteo Martincighd80ed2f2019-08-07 12:20:42 +0100538 libboost_filesystem \
telsoa01ce3e84a2018-08-31 09:31:35 +0100539 armnn-arm_compute
540
David Beckbeb3e1f2018-10-15 14:15:42 +0100541LOCAL_WHOLE_STATIC_LIBRARIES := \
542 libarmnn-driver@1.1
David Beckc965f3c2018-10-12 17:23:16 +0100543
telsoa01ce3e84a2018-08-31 09:31:35 +0100544LOCAL_SHARED_LIBRARIES := \
545 libbase \
546 libhidlbase \
547 libhidltransport \
548 libhidlmemory \
549 libdl \
550 libhardware \
551 liblog \
552 libtextclassifier_hash \
553 libutils \
554 android.hardware.neuralnetworks@1.0 \
555 android.hardware.neuralnetworks@1.1 \
556 android.hidl.allocator@1.0 \
Sadik Armagand6539c52019-05-22 18:00:30 +0100557 android.hidl.memory@1.0
558
559ifeq ($(Q_OR_LATER),1)
560LOCAL_SHARED_LIBRARIES+= \
561 libnativewindow \
562 libui \
563 libfmq \
564 libcutils \
565 android.hardware.neuralnetworks@1.2
566endif # PLATFORM_VERSION == Q
567
568ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
569LOCAL_SHARED_LIBRARIES+= \
telsoa01ce3e84a2018-08-31 09:31:35 +0100570 libOpenCL
Sadik Armagand6539c52019-05-22 18:00:30 +0100571endif
telsoa01ce3e84a2018-08-31 09:31:35 +0100572
573include $(BUILD_EXECUTABLE)
574
Matteo Martincigh69558df2018-08-31 16:18:19 +0100575endif # PLATFORM_VERSION == 9
576
Mike Kellyb5fdf382019-06-11 16:35:25 +0100577ifeq ($(Q_OR_LATER),1)
578# The following target is available starting from Android Q
579
580#####################################################
581# android.hardware.neuralnetworks@1.2-service-armnn #
582#####################################################
583include $(CLEAR_VARS)
584
585LOCAL_MODULE := android.hardware.neuralnetworks@1.2-service-armnn
586LOCAL_INIT_RC := android.hardware.neuralnetworks@1.2-service-armnn.rc
587LOCAL_MODULE_TAGS := optional
588LOCAL_ARM_MODE := arm
589LOCAL_MODULE_RELATIVE_PATH := hw
590LOCAL_PROPRIETARY_MODULE := true
591# Mark source files as dependent on Android.mk
592LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
593
594LOCAL_C_INCLUDES := \
595 $(ARMNN_HEADER_PATH) \
596 $(NN_HEADER_PATH)
597
598LOCAL_CFLAGS := \
599 -std=$(CPP_VERSION) \
600 -fexceptions \
601 -DARMNN_ANDROID_NN_V1_2 \
602 -DBOOST_NO_AUTO_PTR
603ifeq ($(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