blob: 098e49ca416118574d14af9d7a020c1f9c3bd8ce [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 Martincighff645b62019-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 Martincigh57130dd2019-08-27 16:35:44 +010044ARMNN_REF_ENABLED := 1
Matteo Martincighff645b62019-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 \
85 -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 Martincigh57130dd2019-08-27 16:35:44 +0100114ifeq ($(ARMNN_REF_ENABLED),1)
Matteo Martincigh5eb5f1f2019-08-14 14:13:47 +0100115LOCAL_CFLAGS += \
Matteo Martincigh57130dd2019-08-27 16:35:44 +0100116 -DARMNNREF_ENABLED
117endif # 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 Martincigh57130dd2019-08-27 16:35:44 +0100231ifeq ($(ARMNN_REF_ENABLED),1)
Matteo Martincigh5eb5f1f2019-08-14 14:13:47 +0100232LOCAL_CFLAGS += \
Matteo Martincigh57130dd2019-08-27 16:35:44 +0100233 -DARMNNREF_ENABLED
234endif # 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 Martincigh57130dd2019-08-27 16:35:44 +0100340ifeq ($(ARMNN_REF_ENABLED),1)
Matteo Martincigh5eb5f1f2019-08-14 14:13:47 +0100341LOCAL_CFLAGS += \
Matteo Martincigh57130dd2019-08-27 16:35:44 +0100342 -DARMNNREF_ENABLED
343endif # 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) \
telsoa01ce3e84a2018-08-31 09:31:35 +0100424 -fexceptions
telsoa015307bc12018-03-09 13:51:08 +0000425ifeq ($(ARMNN_DRIVER_DEBUG),1)
telsoa01ce3e84a2018-08-31 09:31:35 +0100426LOCAL_CFLAGS += \
427 -UNDEBUG
Matteo Martincigh69558df2018-08-31 16:18:19 +0100428endif # ARMNN_DRIVER_DEBUG == 1
telsoa015307bc12018-03-09 13:51:08 +0000429
Mike Kellyb5fdf382019-06-11 16:35:25 +0100430ifeq ($(Q_OR_LATER),1)
431LOCAL_CFLAGS += \
432 -DBOOST_NO_AUTO_PTR
433endif # PLATFORM_VERSION == Q or later
434
surmeh01deb3bdb2018-07-05 12:06:04 +0100435LOCAL_SRC_FILES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100436 service.cpp
telsoa015307bc12018-03-09 13:51:08 +0000437
438LOCAL_STATIC_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100439 libneuralnetworks_common \
telsoa01ce3e84a2018-08-31 09:31:35 +0100440 libboost_log \
441 libboost_program_options \
442 libboost_system \
443 libboost_thread \
Matteo Martincighd80ed2f2019-08-07 12:20:42 +0100444 libboost_filesystem \
telsoa01ce3e84a2018-08-31 09:31:35 +0100445 armnn-arm_compute
telsoa015307bc12018-03-09 13:51:08 +0000446
David Beckbeb3e1f2018-10-15 14:15:42 +0100447LOCAL_WHOLE_STATIC_LIBRARIES := \
448 libarmnn-driver@1.0
David Beckc965f3c2018-10-12 17:23:16 +0100449
surmeh01deb3bdb2018-07-05 12:06:04 +0100450LOCAL_SHARED_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100451 libbase \
452 libhidlbase \
453 libhidltransport \
454 libhidlmemory \
455 libdl \
456 libhardware \
457 liblog \
458 libtextclassifier_hash \
459 libutils \
460 android.hardware.neuralnetworks@1.0 \
461 android.hidl.allocator@1.0 \
Sadik Armagand6539c52019-05-22 18:00:30 +0100462 android.hidl.memory@1.0
463
464ifeq ($(P_OR_LATER),1)
surmeh01deb3bdb2018-07-05 12:06:04 +0100465# Required to build the 1.0 version of the NN Driver on Android P and later versions,
466# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
467LOCAL_SHARED_LIBRARIES+= \
telsoa01ce3e84a2018-08-31 09:31:35 +0100468 android.hardware.neuralnetworks@1.1
Matteo Martincigh69558df2018-08-31 16:18:19 +0100469endif # PLATFORM_VERSION == 9
Sadik Armagand6539c52019-05-22 18:00:30 +0100470ifeq ($(Q_OR_LATER),1)
471LOCAL_SHARED_LIBRARIES+= \
472 libnativewindow \
473 libui \
474 libfmq \
475 libcutils \
476 android.hardware.neuralnetworks@1.2
477endif # PLATFORM_VERSION == Q
478
479ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
480LOCAL_SHARED_LIBRARIES+= \
481 libOpenCL
482endif
telsoa015307bc12018-03-09 13:51:08 +0000483
484include $(BUILD_EXECUTABLE)
485
Sadik Armagand6539c52019-05-22 18:00:30 +0100486ifeq ($(P_OR_LATER),1)
Matteo Martincigh69558df2018-08-31 16:18:19 +0100487# The following target is available starting from Android P
488
telsoa01ce3e84a2018-08-31 09:31:35 +0100489#####################################################
490# android.hardware.neuralnetworks@1.1-service-armnn #
491#####################################################
492include $(CLEAR_VARS)
493
494LOCAL_MODULE := android.hardware.neuralnetworks@1.1-service-armnn
495LOCAL_INIT_RC := android.hardware.neuralnetworks@1.1-service-armnn.rc
Sadik Armagand6539c52019-05-22 18:00:30 +0100496ifeq ($(Q_OR_LATER),1)
497# "eng" is deprecated in Android Q
498LOCAL_MODULE_TAGS := optional
499else
telsoa01ce3e84a2018-08-31 09:31:35 +0100500LOCAL_MODULE_TAGS := eng optional
Sadik Armagand6539c52019-05-22 18:00:30 +0100501endif
telsoa01ce3e84a2018-08-31 09:31:35 +0100502LOCAL_ARM_MODE := arm
503LOCAL_MODULE_RELATIVE_PATH := hw
504LOCAL_PROPRIETARY_MODULE := true
505# Mark source files as dependent on Android.mk
506LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
507
508LOCAL_C_INCLUDES := \
509 $(ARMNN_HEADER_PATH) \
510 $(NN_HEADER_PATH)
511
512LOCAL_CFLAGS := \
Mike Kellyb5fdf382019-06-11 16:35:25 +0100513 -std=$(CPP_VERSION) \
telsoa01ce3e84a2018-08-31 09:31:35 +0100514 -fexceptions \
515 -DARMNN_ANDROID_NN_V1_1
516ifeq ($(ARMNN_DRIVER_DEBUG),1)
517LOCAL_CFLAGS += \
518 -UNDEBUG
Matteo Martincigh69558df2018-08-31 16:18:19 +0100519endif # ARMNN_DRIVER_DEBUG == 1
telsoa01ce3e84a2018-08-31 09:31:35 +0100520
Mike Kellyb5fdf382019-06-11 16:35:25 +0100521ifeq ($(Q_OR_LATER),1)
522LOCAL_CFLAGS += \
523 -DBOOST_NO_AUTO_PTR
524endif # PLATFORM_VERSION == Q or later
525
telsoa01ce3e84a2018-08-31 09:31:35 +0100526LOCAL_SRC_FILES := \
527 service.cpp
528
529LOCAL_STATIC_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100530 libneuralnetworks_common \
telsoa01ce3e84a2018-08-31 09:31:35 +0100531 libboost_log \
532 libboost_program_options \
533 libboost_system \
534 libboost_thread \
Matteo Martincighd80ed2f2019-08-07 12:20:42 +0100535 libboost_filesystem \
telsoa01ce3e84a2018-08-31 09:31:35 +0100536 armnn-arm_compute
537
David Beckbeb3e1f2018-10-15 14:15:42 +0100538LOCAL_WHOLE_STATIC_LIBRARIES := \
539 libarmnn-driver@1.1
David Beckc965f3c2018-10-12 17:23:16 +0100540
telsoa01ce3e84a2018-08-31 09:31:35 +0100541LOCAL_SHARED_LIBRARIES := \
542 libbase \
543 libhidlbase \
544 libhidltransport \
545 libhidlmemory \
546 libdl \
547 libhardware \
548 liblog \
549 libtextclassifier_hash \
550 libutils \
551 android.hardware.neuralnetworks@1.0 \
552 android.hardware.neuralnetworks@1.1 \
553 android.hidl.allocator@1.0 \
Sadik Armagand6539c52019-05-22 18:00:30 +0100554 android.hidl.memory@1.0
555
556ifeq ($(Q_OR_LATER),1)
557LOCAL_SHARED_LIBRARIES+= \
558 libnativewindow \
559 libui \
560 libfmq \
561 libcutils \
562 android.hardware.neuralnetworks@1.2
563endif # PLATFORM_VERSION == Q
564
565ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
566LOCAL_SHARED_LIBRARIES+= \
telsoa01ce3e84a2018-08-31 09:31:35 +0100567 libOpenCL
Sadik Armagand6539c52019-05-22 18:00:30 +0100568endif
telsoa01ce3e84a2018-08-31 09:31:35 +0100569
570include $(BUILD_EXECUTABLE)
571
Matteo Martincigh69558df2018-08-31 16:18:19 +0100572endif # PLATFORM_VERSION == 9
573
Mike Kellyb5fdf382019-06-11 16:35:25 +0100574ifeq ($(Q_OR_LATER),1)
575# The following target is available starting from Android Q
576
577#####################################################
578# android.hardware.neuralnetworks@1.2-service-armnn #
579#####################################################
580include $(CLEAR_VARS)
581
582LOCAL_MODULE := android.hardware.neuralnetworks@1.2-service-armnn
583LOCAL_INIT_RC := android.hardware.neuralnetworks@1.2-service-armnn.rc
584LOCAL_MODULE_TAGS := optional
585LOCAL_ARM_MODE := arm
586LOCAL_MODULE_RELATIVE_PATH := hw
587LOCAL_PROPRIETARY_MODULE := true
588# Mark source files as dependent on Android.mk
589LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
590
591LOCAL_C_INCLUDES := \
592 $(ARMNN_HEADER_PATH) \
593 $(NN_HEADER_PATH)
594
595LOCAL_CFLAGS := \
596 -std=$(CPP_VERSION) \
597 -fexceptions \
598 -DARMNN_ANDROID_NN_V1_2 \
599 -DBOOST_NO_AUTO_PTR
600ifeq ($(ARMNN_DRIVER_DEBUG),1)
601LOCAL_CFLAGS += \
602 -UNDEBUG
603endif # ARMNN_DRIVER_DEBUG == 1
604
605LOCAL_SRC_FILES := \
606 service.cpp
607
608LOCAL_STATIC_LIBRARIES := \
609 libneuralnetworks_common \
610 libboost_log \
611 libboost_program_options \
612 libboost_system \
613 libboost_thread \
Matteo Martincighd80ed2f2019-08-07 12:20:42 +0100614 libboost_filesystem \
Mike Kellyb5fdf382019-06-11 16:35:25 +0100615 armnn-arm_compute
616
617LOCAL_WHOLE_STATIC_LIBRARIES := \
618 libarmnn-driver@1.2
619
620LOCAL_SHARED_LIBRARIES := \
621 libbase \
622 libhidlbase \
623 libhidltransport \
624 libhidlmemory \
625 libdl \
626 libhardware \
627 liblog \
628 libtextclassifier_hash \
629 libutils \
630 libnativewindow \
631 libui \
632 libfmq \
633 libcutils \
634 android.hidl.allocator@1.0 \
635 android.hidl.memory@1.0 \
636 android.hardware.neuralnetworks@1.0 \
637 android.hardware.neuralnetworks@1.1 \
638 android.hardware.neuralnetworks@1.2
639
640ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
641LOCAL_SHARED_LIBRARIES+= \
642 libOpenCL
643endif
644
645include $(BUILD_EXECUTABLE)
646
647endif # PLATFORM_VERSION == Q
648
telsoa015307bc12018-03-09 13:51:08 +0000649##########################
650# armnn module and tests #
651##########################
652# Note we use ANDROID_NN_DRIVER_LOCAL_PATH rather than LOCAL_PATH because LOCAL_PATH will be overwritten
653# when including other .mk files that set it.
654include $(ANDROID_NN_DRIVER_LOCAL_PATH)/armnn/Android.mk
surmeh0149b9e102018-05-17 14:11:25 +0100655include $(ANDROID_NN_DRIVER_LOCAL_PATH)/test/Android.mk