blob: 8f598ca7ff6a9cbc63176ba106f6232a595ea275 [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 Martincigh01c91512019-01-31 15:40:08 +000040# Variables to control CL/NEON backend support
41# Set them to '0' to disable support for a specific backend
42ARMNN_COMPUTE_CL_ENABLED := 1
43ARMNN_COMPUTE_NEON_ENABLED := 1
44
Sadik Armagand6539c52019-05-22 18:00:30 +010045ifeq ($(ARMNN_COMPUTE_CL_ENABLE),0)
46ARMNN_COMPUTE_CL_ENABLED := 0
47endif
48
49ifeq ($(ARMNN_COMPUTE_NEON_ENABLE),0)
50ARMNN_COMPUTE_NEON_ENABLED := 0
51endif
52
telsoa01ce3e84a2018-08-31 09:31:35 +010053#######################
54# libarmnn-driver@1.0 #
55#######################
telsoa015307bc12018-03-09 13:51:08 +000056include $(CLEAR_VARS)
57
telsoa01ce3e84a2018-08-31 09:31:35 +010058LOCAL_MODULE := libarmnn-driver@1.0
Sadik Armagand6539c52019-05-22 18:00:30 +010059ifeq ($(Q_OR_LATER),1)
60# "eng" is deprecated in Android Q
61LOCAL_MODULE_TAGS := optional
62else
telsoa015307bc12018-03-09 13:51:08 +000063LOCAL_MODULE_TAGS := eng optional
Sadik Armagand6539c52019-05-22 18:00:30 +010064endif
telsoa015307bc12018-03-09 13:51:08 +000065LOCAL_ARM_MODE := arm
surmeh0149b9e102018-05-17 14:11:25 +010066LOCAL_PROPRIETARY_MODULE := true
telsoa015307bc12018-03-09 13:51:08 +000067# Mark source files as dependent on Android.mk
68LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
69
surmeh01deb3bdb2018-07-05 12:06:04 +010070LOCAL_C_INCLUDES := \
telsoa01ce3e84a2018-08-31 09:31:35 +010071 $(ARMNN_HEADER_PATH) \
72 $(ARMNN_UTILS_HEADER_PATH) \
73 $(OPENCL_HEADER_PATH) \
74 $(NN_HEADER_PATH)
telsoa015307bc12018-03-09 13:51:08 +000075
76LOCAL_CFLAGS := \
Mike Kellyb5fdf382019-06-11 16:35:25 +010077 -std=$(CPP_VERSION) \
telsoa01ce3e84a2018-08-31 09:31:35 +010078 -fexceptions \
79 -Werror \
80 -Wno-format-security
Sadik Armagand6539c52019-05-22 18:00:30 +010081
82ifeq ($(P_OR_LATER),1)
surmeh01deb3bdb2018-07-05 12:06:04 +010083# Required to build with the changes made to the Android ML framework starting from Android P,
84# regardless of the HAL version used for the build.
85LOCAL_CFLAGS+= \
86 -DARMNN_ANDROID_P
Matteo Martincigh69558df2018-08-31 16:18:19 +010087endif # PLATFORM_VERSION == 9
Sadik Armagand6539c52019-05-22 18:00:30 +010088
telsoa015307bc12018-03-09 13:51:08 +000089ifeq ($(ARMNN_DRIVER_DEBUG),1)
telsoa01ce3e84a2018-08-31 09:31:35 +010090LOCAL_CFLAGS+= \
91 -UNDEBUG
Matteo Martincigh69558df2018-08-31 16:18:19 +010092endif # ARMNN_DRIVER_DEBUG == 1
Sadik Armagand6539c52019-05-22 18:00:30 +010093
Mike Kellyb5fdf382019-06-11 16:35:25 +010094ifeq ($(Q_OR_LATER),1)
95LOCAL_CFLAGS += \
96 -DBOOST_NO_AUTO_PTR
97endif # PLATFORM_VERSION == Q or later
98
Matteo Martincigh01c91512019-01-31 15:40:08 +000099ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
100LOCAL_CFLAGS += \
101 -DARMCOMPUTECL_ENABLED
102endif # ARMNN_COMPUTE_CL_ENABLED == 1
Sadik Armagand6539c52019-05-22 18:00:30 +0100103
Matteo Martincigh01c91512019-01-31 15:40:08 +0000104ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
105LOCAL_CFLAGS += \
106 -DARMCOMPUTENEON_ENABLED
107endif # ARMNN_COMPUTE_NEON_ENABLED == 1
telsoa015307bc12018-03-09 13:51:08 +0000108
surmeh01deb3bdb2018-07-05 12:06:04 +0100109LOCAL_SRC_FILES := \
Matteo Martincigh79250ab2018-09-04 16:28:10 +0100110 1.0/ArmnnDriverImpl.cpp \
arovir01b0717b52018-09-05 17:03:25 +0100111 1.0/HalPolicy.cpp \
Matteo Martincighe48bdff2018-09-03 13:50:50 +0100112 ArmnnDriverImpl.cpp \
telsoa01ce3e84a2018-08-31 09:31:35 +0100113 DriverOptions.cpp \
114 ArmnnDevice.cpp \
115 ArmnnPreparedModel.cpp \
116 ModelToINetworkConverter.cpp \
117 RequestThread.cpp \
arovir01b0717b52018-09-05 17:03:25 +0100118 Utils.cpp \
119 ConversionUtils.cpp
telsoa015307bc12018-03-09 13:51:08 +0000120
121LOCAL_STATIC_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100122 libneuralnetworks_common \
telsoa01ce3e84a2018-08-31 09:31:35 +0100123 libboost_log \
124 libboost_program_options \
125 libboost_system \
126 libboost_thread \
127 armnn-arm_compute
telsoa015307bc12018-03-09 13:51:08 +0000128
David Beckc965f3c2018-10-12 17:23:16 +0100129LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
130
surmeh01deb3bdb2018-07-05 12:06:04 +0100131LOCAL_SHARED_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100132 libbase \
133 libhidlbase \
134 libhidltransport \
135 libhidlmemory \
136 liblog \
137 libutils \
138 android.hardware.neuralnetworks@1.0 \
139 android.hidl.allocator@1.0 \
Sadik Armagand6539c52019-05-22 18:00:30 +0100140 android.hidl.memory@1.0
141
142ifeq ($(P_OR_LATER),1)
surmeh01deb3bdb2018-07-05 12:06:04 +0100143# Required to build the 1.0 version of the NN Driver on Android P and later versions,
144# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
145LOCAL_SHARED_LIBRARIES+= \
telsoa01ce3e84a2018-08-31 09:31:35 +0100146 android.hardware.neuralnetworks@1.1
Matteo Martincigh69558df2018-08-31 16:18:19 +0100147endif # PLATFORM_VERSION == 9
telsoa015307bc12018-03-09 13:51:08 +0000148
Sadik Armagand6539c52019-05-22 18:00:30 +0100149ifeq ($(Q_OR_LATER),1)
150LOCAL_SHARED_LIBRARIES+= \
151 libnativewindow \
152 libui \
153 libfmq \
154 libcutils \
155 android.hardware.neuralnetworks@1.2
156endif # PLATFORM_VERSION == Q
157
158ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
159LOCAL_SHARED_LIBRARIES+= \
160 libOpenCL
161endif
162
telsoa015307bc12018-03-09 13:51:08 +0000163include $(BUILD_STATIC_LIBRARY)
164
Sadik Armagand6539c52019-05-22 18:00:30 +0100165ifeq ($(P_OR_LATER),1)
Matteo Martincigh69558df2018-08-31 16:18:19 +0100166# The following target is available starting from Android P
167
telsoa01ce3e84a2018-08-31 09:31:35 +0100168#######################
169# libarmnn-driver@1.1 #
170#######################
171include $(CLEAR_VARS)
172
173LOCAL_MODULE := libarmnn-driver@1.1
Sadik Armagand6539c52019-05-22 18:00:30 +0100174ifeq ($(Q_OR_LATER),1)
175# "eng" is deprecated in Android Q
176LOCAL_MODULE_TAGS := optional
177else
telsoa01ce3e84a2018-08-31 09:31:35 +0100178LOCAL_MODULE_TAGS := eng optional
Sadik Armagand6539c52019-05-22 18:00:30 +0100179endif
180#PRODUCT_PACKAGES_ENG := libarmnn-driver@1.1
telsoa01ce3e84a2018-08-31 09:31:35 +0100181LOCAL_ARM_MODE := arm
182LOCAL_PROPRIETARY_MODULE := true
183# Mark source files as dependent on Android.mk
184LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
185
186LOCAL_C_INCLUDES := \
187 $(ARMNN_HEADER_PATH) \
188 $(ARMNN_UTILS_HEADER_PATH) \
189 $(OPENCL_HEADER_PATH) \
190 $(NN_HEADER_PATH)
191
192LOCAL_CFLAGS := \
Mike Kellyb5fdf382019-06-11 16:35:25 +0100193 -std=$(CPP_VERSION) \
telsoa01ce3e84a2018-08-31 09:31:35 +0100194 -fexceptions \
195 -Werror \
196 -Wno-format-security \
197 -DARMNN_ANDROID_P \
198 -DARMNN_ANDROID_NN_V1_1
Sadik Armagand6539c52019-05-22 18:00:30 +0100199
telsoa01ce3e84a2018-08-31 09:31:35 +0100200ifeq ($(ARMNN_DRIVER_DEBUG),1)
201LOCAL_CFLAGS+= \
202 -UNDEBUG
Matteo Martincigh69558df2018-08-31 16:18:19 +0100203endif # ARMNN_DRIVER_DEBUG == 1
Sadik Armagand6539c52019-05-22 18:00:30 +0100204
Mike Kellyb5fdf382019-06-11 16:35:25 +0100205ifeq ($(Q_OR_LATER),1)
206LOCAL_CFLAGS += \
207 -DBOOST_NO_AUTO_PTR
208endif # PLATFORM_VERSION == Q or later
209
Matteo Martincigh01c91512019-01-31 15:40:08 +0000210ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
211LOCAL_CFLAGS += \
212 -DARMCOMPUTECL_ENABLED
213endif # ARMNN_COMPUTE_CL_ENABLED == 1
Sadik Armagand6539c52019-05-22 18:00:30 +0100214
Matteo Martincigh01c91512019-01-31 15:40:08 +0000215ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
216LOCAL_CFLAGS += \
217 -DARMCOMPUTENEON_ENABLED
218endif # ARMNN_COMPUTE_NEON_ENABLED == 1
telsoa01ce3e84a2018-08-31 09:31:35 +0100219
220LOCAL_SRC_FILES := \
Matteo Martincigh79250ab2018-09-04 16:28:10 +0100221 1.0/ArmnnDriverImpl.cpp \
arovir01b0717b52018-09-05 17:03:25 +0100222 1.0/HalPolicy.cpp \
Matteo Martincigh79250ab2018-09-04 16:28:10 +0100223 1.1/ArmnnDriverImpl.cpp \
arovir01b0717b52018-09-05 17:03:25 +0100224 1.1/HalPolicy.cpp \
Matteo Martincighe48bdff2018-09-03 13:50:50 +0100225 ArmnnDriverImpl.cpp \
telsoa01ce3e84a2018-08-31 09:31:35 +0100226 DriverOptions.cpp \
227 ArmnnDevice.cpp \
228 ArmnnPreparedModel.cpp \
229 ModelToINetworkConverter.cpp \
230 RequestThread.cpp \
arovir01b0717b52018-09-05 17:03:25 +0100231 Utils.cpp \
232 ConversionUtils.cpp
telsoa01ce3e84a2018-08-31 09:31:35 +0100233
234LOCAL_STATIC_LIBRARIES := \
235 libneuralnetworks_common \
telsoa01ce3e84a2018-08-31 09:31:35 +0100236 libboost_log \
237 libboost_program_options \
238 libboost_system \
239 libboost_thread \
240 armnn-arm_compute
241
David Beckc965f3c2018-10-12 17:23:16 +0100242LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
243
telsoa01ce3e84a2018-08-31 09:31:35 +0100244LOCAL_SHARED_LIBRARIES := \
245 libbase \
246 libhidlbase \
247 libhidltransport \
248 libhidlmemory \
249 liblog \
250 libutils \
251 android.hardware.neuralnetworks@1.0 \
252 android.hardware.neuralnetworks@1.1 \
253 android.hidl.allocator@1.0 \
Sadik Armagand6539c52019-05-22 18:00:30 +0100254 android.hidl.memory@1.0
255
256ifeq ($(Q_OR_LATER),1)
257LOCAL_SHARED_LIBRARIES+= \
258 libnativewindow \
259 libui \
260 libfmq \
261 libcutils \
262 android.hardware.neuralnetworks@1.2
263endif # PLATFORM_VERSION == Q
264
265ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
266LOCAL_SHARED_LIBRARIES+= \
telsoa01ce3e84a2018-08-31 09:31:35 +0100267 libOpenCL
Sadik Armagand6539c52019-05-22 18:00:30 +0100268endif
telsoa01ce3e84a2018-08-31 09:31:35 +0100269
270include $(BUILD_STATIC_LIBRARY)
271
Matteo Martincigh69558df2018-08-31 16:18:19 +0100272endif # PLATFORM_VERSION == 9
273
Mike Kellyb5fdf382019-06-11 16:35:25 +0100274ifeq ($(Q_OR_LATER),1)
275# The following target is available starting from Android Q
276
277#######################
278# libarmnn-driver@1.2 #
279#######################
280include $(CLEAR_VARS)
281
282LOCAL_MODULE := libarmnn-driver@1.2
283LOCAL_MODULE_TAGS := optional
284LOCAL_ARM_MODE := arm
285LOCAL_PROPRIETARY_MODULE := true
286# Mark source files as dependent on Android.mk
287LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
288
289LOCAL_C_INCLUDES := \
290 $(ARMNN_HEADER_PATH) \
291 $(ARMNN_UTILS_HEADER_PATH) \
292 $(OPENCL_HEADER_PATH) \
293 $(NN_HEADER_PATH)
294
295LOCAL_CFLAGS := \
296 -std=$(CPP_VERSION) \
297 -fexceptions \
298 -Werror \
299 -Wno-format-security \
300 -DARMNN_ANDROID_Q \
301 -DARMNN_ANDROID_NN_V1_2
302
303ifeq ($(ARMNN_DRIVER_DEBUG),1)
304LOCAL_CFLAGS+= \
305 -UNDEBUG
306endif # ARMNN_DRIVER_DEBUG == 1
307
308ifeq ($(Q_OR_LATER),1)
309LOCAL_CFLAGS += \
310 -DBOOST_NO_AUTO_PTR
311endif # PLATFORM_VERSION == Q or later
312
313ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
314LOCAL_CFLAGS += \
315 -DARMCOMPUTECL_ENABLED
316endif # ARMNN_COMPUTE_CL_ENABLED == 1
317
318ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
319LOCAL_CFLAGS += \
320 -DARMCOMPUTENEON_ENABLED
321endif # ARMNN_COMPUTE_NEON_ENABLED == 1
322
323LOCAL_SRC_FILES := \
324 1.0/ArmnnDriverImpl.cpp \
325 1.0/HalPolicy.cpp \
326 1.1/ArmnnDriverImpl.cpp \
327 1.1/HalPolicy.cpp \
328 1.2/ArmnnDriverImpl.cpp \
329 1.2/HalPolicy.cpp \
330 ArmnnDriverImpl.cpp \
331 DriverOptions.cpp \
332 ArmnnDevice.cpp \
333 ArmnnPreparedModel.cpp \
334 ArmnnPreparedModel_1_2.cpp \
335 ModelToINetworkConverter.cpp \
336 RequestThread.cpp \
337 Utils.cpp \
338 ConversionUtils.cpp
339
340LOCAL_STATIC_LIBRARIES := \
341 libneuralnetworks_common \
342 libboost_log \
343 libboost_program_options \
344 libboost_system \
345 libboost_thread \
346 armnn-arm_compute
347
348LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
349
350LOCAL_SHARED_LIBRARIES := \
351 libbase \
352 libhidlbase \
353 libhidltransport \
354 libhidlmemory \
355 liblog \
356 libutils \
357 libnativewindow \
358 libui \
359 libfmq \
360 libcutils \
361 android.hidl.allocator@1.0 \
362 android.hidl.memory@1.0 \
363 android.hardware.neuralnetworks@1.0 \
364 android.hardware.neuralnetworks@1.1 \
365 android.hardware.neuralnetworks@1.2
366
367ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
368LOCAL_SHARED_LIBRARIES+= \
369 libOpenCL
370endif
371
372include $(BUILD_STATIC_LIBRARY)
373
374endif # PLATFORM_VERSION == Q
375
telsoa015307bc12018-03-09 13:51:08 +0000376#####################################################
377# android.hardware.neuralnetworks@1.0-service-armnn #
378#####################################################
379include $(CLEAR_VARS)
380
381LOCAL_MODULE := android.hardware.neuralnetworks@1.0-service-armnn
382LOCAL_INIT_RC := android.hardware.neuralnetworks@1.0-service-armnn.rc
Sadik Armagand6539c52019-05-22 18:00:30 +0100383ifeq ($(Q_OR_LATER),1)
384# "eng" is deprecated in Android Q
385LOCAL_MODULE_TAGS := optional
386else
telsoa015307bc12018-03-09 13:51:08 +0000387LOCAL_MODULE_TAGS := eng optional
Sadik Armagand6539c52019-05-22 18:00:30 +0100388endif
telsoa015307bc12018-03-09 13:51:08 +0000389LOCAL_ARM_MODE := arm
390LOCAL_MODULE_RELATIVE_PATH := hw
391LOCAL_PROPRIETARY_MODULE := true
392# Mark source files as dependent on Android.mk
393LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
394
telsoa01ce3e84a2018-08-31 09:31:35 +0100395LOCAL_C_INCLUDES := \
396 $(ARMNN_HEADER_PATH) \
397 $(NN_HEADER_PATH)
telsoa015307bc12018-03-09 13:51:08 +0000398
399LOCAL_CFLAGS := \
Mike Kellyb5fdf382019-06-11 16:35:25 +0100400 -std=$(CPP_VERSION) \
telsoa01ce3e84a2018-08-31 09:31:35 +0100401 -fexceptions
telsoa015307bc12018-03-09 13:51:08 +0000402ifeq ($(ARMNN_DRIVER_DEBUG),1)
telsoa01ce3e84a2018-08-31 09:31:35 +0100403LOCAL_CFLAGS += \
404 -UNDEBUG
Matteo Martincigh69558df2018-08-31 16:18:19 +0100405endif # ARMNN_DRIVER_DEBUG == 1
telsoa015307bc12018-03-09 13:51:08 +0000406
Mike Kellyb5fdf382019-06-11 16:35:25 +0100407ifeq ($(Q_OR_LATER),1)
408LOCAL_CFLAGS += \
409 -DBOOST_NO_AUTO_PTR
410endif # PLATFORM_VERSION == Q or later
411
surmeh01deb3bdb2018-07-05 12:06:04 +0100412LOCAL_SRC_FILES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100413 service.cpp
telsoa015307bc12018-03-09 13:51:08 +0000414
415LOCAL_STATIC_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100416 libneuralnetworks_common \
telsoa01ce3e84a2018-08-31 09:31:35 +0100417 libboost_log \
418 libboost_program_options \
419 libboost_system \
420 libboost_thread \
421 armnn-arm_compute
telsoa015307bc12018-03-09 13:51:08 +0000422
David Beckbeb3e1f2018-10-15 14:15:42 +0100423LOCAL_WHOLE_STATIC_LIBRARIES := \
424 libarmnn-driver@1.0
David Beckc965f3c2018-10-12 17:23:16 +0100425
surmeh01deb3bdb2018-07-05 12:06:04 +0100426LOCAL_SHARED_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100427 libbase \
428 libhidlbase \
429 libhidltransport \
430 libhidlmemory \
431 libdl \
432 libhardware \
433 liblog \
434 libtextclassifier_hash \
435 libutils \
436 android.hardware.neuralnetworks@1.0 \
437 android.hidl.allocator@1.0 \
Sadik Armagand6539c52019-05-22 18:00:30 +0100438 android.hidl.memory@1.0
439
440ifeq ($(P_OR_LATER),1)
surmeh01deb3bdb2018-07-05 12:06:04 +0100441# Required to build the 1.0 version of the NN Driver on Android P and later versions,
442# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
443LOCAL_SHARED_LIBRARIES+= \
telsoa01ce3e84a2018-08-31 09:31:35 +0100444 android.hardware.neuralnetworks@1.1
Matteo Martincigh69558df2018-08-31 16:18:19 +0100445endif # PLATFORM_VERSION == 9
Sadik Armagand6539c52019-05-22 18:00:30 +0100446ifeq ($(Q_OR_LATER),1)
447LOCAL_SHARED_LIBRARIES+= \
448 libnativewindow \
449 libui \
450 libfmq \
451 libcutils \
452 android.hardware.neuralnetworks@1.2
453endif # PLATFORM_VERSION == Q
454
455ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
456LOCAL_SHARED_LIBRARIES+= \
457 libOpenCL
458endif
telsoa015307bc12018-03-09 13:51:08 +0000459
460include $(BUILD_EXECUTABLE)
461
Sadik Armagand6539c52019-05-22 18:00:30 +0100462ifeq ($(P_OR_LATER),1)
Matteo Martincigh69558df2018-08-31 16:18:19 +0100463# The following target is available starting from Android P
464
telsoa01ce3e84a2018-08-31 09:31:35 +0100465#####################################################
466# android.hardware.neuralnetworks@1.1-service-armnn #
467#####################################################
468include $(CLEAR_VARS)
469
470LOCAL_MODULE := android.hardware.neuralnetworks@1.1-service-armnn
471LOCAL_INIT_RC := android.hardware.neuralnetworks@1.1-service-armnn.rc
Sadik Armagand6539c52019-05-22 18:00:30 +0100472ifeq ($(Q_OR_LATER),1)
473# "eng" is deprecated in Android Q
474LOCAL_MODULE_TAGS := optional
475else
telsoa01ce3e84a2018-08-31 09:31:35 +0100476LOCAL_MODULE_TAGS := eng optional
Sadik Armagand6539c52019-05-22 18:00:30 +0100477endif
telsoa01ce3e84a2018-08-31 09:31:35 +0100478LOCAL_ARM_MODE := arm
479LOCAL_MODULE_RELATIVE_PATH := hw
480LOCAL_PROPRIETARY_MODULE := true
481# Mark source files as dependent on Android.mk
482LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
483
484LOCAL_C_INCLUDES := \
485 $(ARMNN_HEADER_PATH) \
486 $(NN_HEADER_PATH)
487
488LOCAL_CFLAGS := \
Mike Kellyb5fdf382019-06-11 16:35:25 +0100489 -std=$(CPP_VERSION) \
telsoa01ce3e84a2018-08-31 09:31:35 +0100490 -fexceptions \
491 -DARMNN_ANDROID_NN_V1_1
492ifeq ($(ARMNN_DRIVER_DEBUG),1)
493LOCAL_CFLAGS += \
494 -UNDEBUG
Matteo Martincigh69558df2018-08-31 16:18:19 +0100495endif # ARMNN_DRIVER_DEBUG == 1
telsoa01ce3e84a2018-08-31 09:31:35 +0100496
Mike Kellyb5fdf382019-06-11 16:35:25 +0100497ifeq ($(Q_OR_LATER),1)
498LOCAL_CFLAGS += \
499 -DBOOST_NO_AUTO_PTR
500endif # PLATFORM_VERSION == Q or later
501
telsoa01ce3e84a2018-08-31 09:31:35 +0100502LOCAL_SRC_FILES := \
503 service.cpp
504
505LOCAL_STATIC_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100506 libneuralnetworks_common \
telsoa01ce3e84a2018-08-31 09:31:35 +0100507 libboost_log \
508 libboost_program_options \
509 libboost_system \
510 libboost_thread \
511 armnn-arm_compute
512
David Beckbeb3e1f2018-10-15 14:15:42 +0100513LOCAL_WHOLE_STATIC_LIBRARIES := \
514 libarmnn-driver@1.1
David Beckc965f3c2018-10-12 17:23:16 +0100515
telsoa01ce3e84a2018-08-31 09:31:35 +0100516LOCAL_SHARED_LIBRARIES := \
517 libbase \
518 libhidlbase \
519 libhidltransport \
520 libhidlmemory \
521 libdl \
522 libhardware \
523 liblog \
524 libtextclassifier_hash \
525 libutils \
526 android.hardware.neuralnetworks@1.0 \
527 android.hardware.neuralnetworks@1.1 \
528 android.hidl.allocator@1.0 \
Sadik Armagand6539c52019-05-22 18:00:30 +0100529 android.hidl.memory@1.0
530
531ifeq ($(Q_OR_LATER),1)
532LOCAL_SHARED_LIBRARIES+= \
533 libnativewindow \
534 libui \
535 libfmq \
536 libcutils \
537 android.hardware.neuralnetworks@1.2
538endif # PLATFORM_VERSION == Q
539
540ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
541LOCAL_SHARED_LIBRARIES+= \
telsoa01ce3e84a2018-08-31 09:31:35 +0100542 libOpenCL
Sadik Armagand6539c52019-05-22 18:00:30 +0100543endif
telsoa01ce3e84a2018-08-31 09:31:35 +0100544
545include $(BUILD_EXECUTABLE)
546
Matteo Martincigh69558df2018-08-31 16:18:19 +0100547endif # PLATFORM_VERSION == 9
548
Mike Kellyb5fdf382019-06-11 16:35:25 +0100549ifeq ($(Q_OR_LATER),1)
550# The following target is available starting from Android Q
551
552#####################################################
553# android.hardware.neuralnetworks@1.2-service-armnn #
554#####################################################
555include $(CLEAR_VARS)
556
557LOCAL_MODULE := android.hardware.neuralnetworks@1.2-service-armnn
558LOCAL_INIT_RC := android.hardware.neuralnetworks@1.2-service-armnn.rc
559LOCAL_MODULE_TAGS := optional
560LOCAL_ARM_MODE := arm
561LOCAL_MODULE_RELATIVE_PATH := hw
562LOCAL_PROPRIETARY_MODULE := true
563# Mark source files as dependent on Android.mk
564LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
565
566LOCAL_C_INCLUDES := \
567 $(ARMNN_HEADER_PATH) \
568 $(NN_HEADER_PATH)
569
570LOCAL_CFLAGS := \
571 -std=$(CPP_VERSION) \
572 -fexceptions \
573 -DARMNN_ANDROID_NN_V1_2 \
574 -DBOOST_NO_AUTO_PTR
575ifeq ($(ARMNN_DRIVER_DEBUG),1)
576LOCAL_CFLAGS += \
577 -UNDEBUG
578endif # ARMNN_DRIVER_DEBUG == 1
579
580LOCAL_SRC_FILES := \
581 service.cpp
582
583LOCAL_STATIC_LIBRARIES := \
584 libneuralnetworks_common \
585 libboost_log \
586 libboost_program_options \
587 libboost_system \
588 libboost_thread \
589 armnn-arm_compute
590
591LOCAL_WHOLE_STATIC_LIBRARIES := \
592 libarmnn-driver@1.2
593
594LOCAL_SHARED_LIBRARIES := \
595 libbase \
596 libhidlbase \
597 libhidltransport \
598 libhidlmemory \
599 libdl \
600 libhardware \
601 liblog \
602 libtextclassifier_hash \
603 libutils \
604 libnativewindow \
605 libui \
606 libfmq \
607 libcutils \
608 android.hidl.allocator@1.0 \
609 android.hidl.memory@1.0 \
610 android.hardware.neuralnetworks@1.0 \
611 android.hardware.neuralnetworks@1.1 \
612 android.hardware.neuralnetworks@1.2
613
614ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
615LOCAL_SHARED_LIBRARIES+= \
616 libOpenCL
617endif
618
619include $(BUILD_EXECUTABLE)
620
621endif # PLATFORM_VERSION == Q
622
telsoa015307bc12018-03-09 13:51:08 +0000623##########################
624# armnn module and tests #
625##########################
626# Note we use ANDROID_NN_DRIVER_LOCAL_PATH rather than LOCAL_PATH because LOCAL_PATH will be overwritten
627# when including other .mk files that set it.
628include $(ANDROID_NN_DRIVER_LOCAL_PATH)/armnn/Android.mk
surmeh0149b9e102018-05-17 14:11:25 +0100629include $(ANDROID_NN_DRIVER_LOCAL_PATH)/test/Android.mk