blob: 84b5c5ab92b5b9bccb69715877a198fc81938389 [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
9# Configure these paths if you move the source or Khronos headers
surmeh01deb3bdb2018-07-05 12:06:04 +010010ARMNN_HEADER_PATH := $(LOCAL_PATH)/armnn/include
11ARMNN_UTILS_HEADER_PATH := $(LOCAL_PATH)/armnn/src/armnnUtils
surmeh0149b9e102018-05-17 14:11:25 +010012OPENCL_HEADER_PATH := $(LOCAL_PATH)/clframework/include
telsoa015307bc12018-03-09 13:51:08 +000013NN_HEADER_PATH := $(LOCAL_PATH)/../../../frameworks/ml/nn/runtime/include
14
telsoa01ce3e84a2018-08-31 09:31:35 +010015#######################
16# libarmnn-driver@1.0 #
17#######################
telsoa015307bc12018-03-09 13:51:08 +000018include $(CLEAR_VARS)
19
telsoa01ce3e84a2018-08-31 09:31:35 +010020LOCAL_MODULE := libarmnn-driver@1.0
telsoa015307bc12018-03-09 13:51:08 +000021LOCAL_MODULE_TAGS := eng optional
22LOCAL_ARM_MODE := arm
surmeh0149b9e102018-05-17 14:11:25 +010023LOCAL_PROPRIETARY_MODULE := true
telsoa015307bc12018-03-09 13:51:08 +000024# Mark source files as dependent on Android.mk
25LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
26
surmeh01deb3bdb2018-07-05 12:06:04 +010027LOCAL_C_INCLUDES := \
telsoa01ce3e84a2018-08-31 09:31:35 +010028 $(ARMNN_HEADER_PATH) \
29 $(ARMNN_UTILS_HEADER_PATH) \
30 $(OPENCL_HEADER_PATH) \
31 $(NN_HEADER_PATH)
telsoa015307bc12018-03-09 13:51:08 +000032
33LOCAL_CFLAGS := \
telsoa01ce3e84a2018-08-31 09:31:35 +010034 -std=c++14 \
35 -fexceptions \
36 -Werror \
37 -Wno-format-security
surmeh01deb3bdb2018-07-05 12:06:04 +010038ifeq ($(PLATFORM_VERSION),9)
39# Required to build with the changes made to the Android ML framework starting from Android P,
40# regardless of the HAL version used for the build.
41LOCAL_CFLAGS+= \
42 -DARMNN_ANDROID_P
Matteo Martincigh69558df2018-08-31 16:18:19 +010043endif # PLATFORM_VERSION == 9
telsoa015307bc12018-03-09 13:51:08 +000044ifeq ($(ARMNN_DRIVER_DEBUG),1)
telsoa01ce3e84a2018-08-31 09:31:35 +010045LOCAL_CFLAGS+= \
46 -UNDEBUG
Matteo Martincigh69558df2018-08-31 16:18:19 +010047endif # ARMNN_DRIVER_DEBUG == 1
telsoa015307bc12018-03-09 13:51:08 +000048
surmeh01deb3bdb2018-07-05 12:06:04 +010049LOCAL_SRC_FILES := \
Matteo Martincigh79250ab2018-09-04 16:28:10 +010050 1.0/ArmnnDriverImpl.cpp \
arovir01b0717b52018-09-05 17:03:25 +010051 1.0/HalPolicy.cpp \
Matteo Martincighe48bdff2018-09-03 13:50:50 +010052 ArmnnDriverImpl.cpp \
telsoa01ce3e84a2018-08-31 09:31:35 +010053 DriverOptions.cpp \
54 ArmnnDevice.cpp \
55 ArmnnPreparedModel.cpp \
56 ModelToINetworkConverter.cpp \
57 RequestThread.cpp \
arovir01b0717b52018-09-05 17:03:25 +010058 Utils.cpp \
59 ConversionUtils.cpp
telsoa015307bc12018-03-09 13:51:08 +000060
61LOCAL_STATIC_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +010062 libneuralnetworks_common \
telsoa01ce3e84a2018-08-31 09:31:35 +010063 libboost_log \
64 libboost_program_options \
65 libboost_system \
66 libboost_thread \
67 armnn-arm_compute
telsoa015307bc12018-03-09 13:51:08 +000068
David Beckc965f3c2018-10-12 17:23:16 +010069LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
70
surmeh01deb3bdb2018-07-05 12:06:04 +010071LOCAL_SHARED_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +010072 libbase \
73 libhidlbase \
74 libhidltransport \
75 libhidlmemory \
76 liblog \
77 libutils \
78 android.hardware.neuralnetworks@1.0 \
79 android.hidl.allocator@1.0 \
80 android.hidl.memory@1.0 \
81 libOpenCL
surmeh01deb3bdb2018-07-05 12:06:04 +010082ifeq ($(PLATFORM_VERSION),9)
83# Required to build the 1.0 version of the NN Driver on Android P and later versions,
84# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
85LOCAL_SHARED_LIBRARIES+= \
telsoa01ce3e84a2018-08-31 09:31:35 +010086 android.hardware.neuralnetworks@1.1
Matteo Martincigh69558df2018-08-31 16:18:19 +010087endif # PLATFORM_VERSION == 9
telsoa015307bc12018-03-09 13:51:08 +000088
89include $(BUILD_STATIC_LIBRARY)
90
Matteo Martincigh69558df2018-08-31 16:18:19 +010091ifeq ($(PLATFORM_VERSION),9)
92# The following target is available starting from Android P
93
telsoa01ce3e84a2018-08-31 09:31:35 +010094#######################
95# libarmnn-driver@1.1 #
96#######################
97include $(CLEAR_VARS)
98
99LOCAL_MODULE := libarmnn-driver@1.1
100LOCAL_MODULE_TAGS := eng optional
101LOCAL_ARM_MODE := arm
102LOCAL_PROPRIETARY_MODULE := true
103# Mark source files as dependent on Android.mk
104LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
105
106LOCAL_C_INCLUDES := \
107 $(ARMNN_HEADER_PATH) \
108 $(ARMNN_UTILS_HEADER_PATH) \
109 $(OPENCL_HEADER_PATH) \
110 $(NN_HEADER_PATH)
111
112LOCAL_CFLAGS := \
113 -std=c++14 \
114 -fexceptions \
115 -Werror \
116 -Wno-format-security \
117 -DARMNN_ANDROID_P \
118 -DARMNN_ANDROID_NN_V1_1
119ifeq ($(ARMNN_DRIVER_DEBUG),1)
120LOCAL_CFLAGS+= \
121 -UNDEBUG
Matteo Martincigh69558df2018-08-31 16:18:19 +0100122endif # ARMNN_DRIVER_DEBUG == 1
telsoa01ce3e84a2018-08-31 09:31:35 +0100123
124LOCAL_SRC_FILES := \
Matteo Martincigh79250ab2018-09-04 16:28:10 +0100125 1.0/ArmnnDriverImpl.cpp \
arovir01b0717b52018-09-05 17:03:25 +0100126 1.0/HalPolicy.cpp \
Matteo Martincigh79250ab2018-09-04 16:28:10 +0100127 1.1/ArmnnDriverImpl.cpp \
arovir01b0717b52018-09-05 17:03:25 +0100128 1.1/HalPolicy.cpp \
Matteo Martincighe48bdff2018-09-03 13:50:50 +0100129 ArmnnDriverImpl.cpp \
telsoa01ce3e84a2018-08-31 09:31:35 +0100130 DriverOptions.cpp \
131 ArmnnDevice.cpp \
132 ArmnnPreparedModel.cpp \
133 ModelToINetworkConverter.cpp \
134 RequestThread.cpp \
arovir01b0717b52018-09-05 17:03:25 +0100135 Utils.cpp \
136 ConversionUtils.cpp
telsoa01ce3e84a2018-08-31 09:31:35 +0100137
138LOCAL_STATIC_LIBRARIES := \
139 libneuralnetworks_common \
telsoa01ce3e84a2018-08-31 09:31:35 +0100140 libboost_log \
141 libboost_program_options \
142 libboost_system \
143 libboost_thread \
144 armnn-arm_compute
145
David Beckc965f3c2018-10-12 17:23:16 +0100146LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
147
telsoa01ce3e84a2018-08-31 09:31:35 +0100148LOCAL_SHARED_LIBRARIES := \
149 libbase \
150 libhidlbase \
151 libhidltransport \
152 libhidlmemory \
153 liblog \
154 libutils \
155 android.hardware.neuralnetworks@1.0 \
156 android.hardware.neuralnetworks@1.1 \
157 android.hidl.allocator@1.0 \
158 android.hidl.memory@1.0 \
159 libOpenCL
160
161include $(BUILD_STATIC_LIBRARY)
162
Matteo Martincigh69558df2018-08-31 16:18:19 +0100163endif # PLATFORM_VERSION == 9
164
telsoa015307bc12018-03-09 13:51:08 +0000165#####################################################
166# android.hardware.neuralnetworks@1.0-service-armnn #
167#####################################################
168include $(CLEAR_VARS)
169
170LOCAL_MODULE := android.hardware.neuralnetworks@1.0-service-armnn
171LOCAL_INIT_RC := android.hardware.neuralnetworks@1.0-service-armnn.rc
172LOCAL_MODULE_TAGS := eng optional
173LOCAL_ARM_MODE := arm
174LOCAL_MODULE_RELATIVE_PATH := hw
175LOCAL_PROPRIETARY_MODULE := true
176# Mark source files as dependent on Android.mk
177LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
178
telsoa01ce3e84a2018-08-31 09:31:35 +0100179LOCAL_C_INCLUDES := \
180 $(ARMNN_HEADER_PATH) \
181 $(NN_HEADER_PATH)
telsoa015307bc12018-03-09 13:51:08 +0000182
183LOCAL_CFLAGS := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100184 -std=c++14 \
185 -fexceptions
telsoa015307bc12018-03-09 13:51:08 +0000186ifeq ($(ARMNN_DRIVER_DEBUG),1)
telsoa01ce3e84a2018-08-31 09:31:35 +0100187LOCAL_CFLAGS += \
188 -UNDEBUG
Matteo Martincigh69558df2018-08-31 16:18:19 +0100189endif # ARMNN_DRIVER_DEBUG == 1
telsoa015307bc12018-03-09 13:51:08 +0000190
surmeh01deb3bdb2018-07-05 12:06:04 +0100191LOCAL_SRC_FILES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100192 service.cpp
telsoa015307bc12018-03-09 13:51:08 +0000193
194LOCAL_STATIC_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100195 libneuralnetworks_common \
telsoa01ce3e84a2018-08-31 09:31:35 +0100196 libboost_log \
197 libboost_program_options \
198 libboost_system \
199 libboost_thread \
200 armnn-arm_compute
telsoa015307bc12018-03-09 13:51:08 +0000201
David Beckbeb3e1f2018-10-15 14:15:42 +0100202LOCAL_WHOLE_STATIC_LIBRARIES := \
203 libarmnn-driver@1.0
David Beckc965f3c2018-10-12 17:23:16 +0100204
surmeh01deb3bdb2018-07-05 12:06:04 +0100205LOCAL_SHARED_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100206 libbase \
207 libhidlbase \
208 libhidltransport \
209 libhidlmemory \
210 libdl \
211 libhardware \
212 liblog \
213 libtextclassifier_hash \
214 libutils \
215 android.hardware.neuralnetworks@1.0 \
216 android.hidl.allocator@1.0 \
217 android.hidl.memory@1.0 \
218 libOpenCL
surmeh01deb3bdb2018-07-05 12:06:04 +0100219ifeq ($(PLATFORM_VERSION),9)
220# Required to build the 1.0 version of the NN Driver on Android P and later versions,
221# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
222LOCAL_SHARED_LIBRARIES+= \
telsoa01ce3e84a2018-08-31 09:31:35 +0100223 android.hardware.neuralnetworks@1.1
Matteo Martincigh69558df2018-08-31 16:18:19 +0100224endif # PLATFORM_VERSION == 9
telsoa015307bc12018-03-09 13:51:08 +0000225
226include $(BUILD_EXECUTABLE)
227
Matteo Martincigh69558df2018-08-31 16:18:19 +0100228ifeq ($(PLATFORM_VERSION),9)
229# The following target is available starting from Android P
230
telsoa01ce3e84a2018-08-31 09:31:35 +0100231#####################################################
232# android.hardware.neuralnetworks@1.1-service-armnn #
233#####################################################
234include $(CLEAR_VARS)
235
236LOCAL_MODULE := android.hardware.neuralnetworks@1.1-service-armnn
237LOCAL_INIT_RC := android.hardware.neuralnetworks@1.1-service-armnn.rc
238LOCAL_MODULE_TAGS := eng optional
239LOCAL_ARM_MODE := arm
240LOCAL_MODULE_RELATIVE_PATH := hw
241LOCAL_PROPRIETARY_MODULE := true
242# Mark source files as dependent on Android.mk
243LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
244
245LOCAL_C_INCLUDES := \
246 $(ARMNN_HEADER_PATH) \
247 $(NN_HEADER_PATH)
248
249LOCAL_CFLAGS := \
250 -std=c++14 \
251 -fexceptions \
252 -DARMNN_ANDROID_NN_V1_1
253ifeq ($(ARMNN_DRIVER_DEBUG),1)
254LOCAL_CFLAGS += \
255 -UNDEBUG
Matteo Martincigh69558df2018-08-31 16:18:19 +0100256endif # ARMNN_DRIVER_DEBUG == 1
telsoa01ce3e84a2018-08-31 09:31:35 +0100257
258LOCAL_SRC_FILES := \
259 service.cpp
260
261LOCAL_STATIC_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100262 libneuralnetworks_common \
telsoa01ce3e84a2018-08-31 09:31:35 +0100263 libboost_log \
264 libboost_program_options \
265 libboost_system \
266 libboost_thread \
267 armnn-arm_compute
268
David Beckbeb3e1f2018-10-15 14:15:42 +0100269LOCAL_WHOLE_STATIC_LIBRARIES := \
270 libarmnn-driver@1.1
David Beckc965f3c2018-10-12 17:23:16 +0100271
telsoa01ce3e84a2018-08-31 09:31:35 +0100272LOCAL_SHARED_LIBRARIES := \
273 libbase \
274 libhidlbase \
275 libhidltransport \
276 libhidlmemory \
277 libdl \
278 libhardware \
279 liblog \
280 libtextclassifier_hash \
281 libutils \
282 android.hardware.neuralnetworks@1.0 \
283 android.hardware.neuralnetworks@1.1 \
284 android.hidl.allocator@1.0 \
285 android.hidl.memory@1.0 \
286 libOpenCL
287
288include $(BUILD_EXECUTABLE)
289
Matteo Martincigh69558df2018-08-31 16:18:19 +0100290endif # PLATFORM_VERSION == 9
291
telsoa015307bc12018-03-09 13:51:08 +0000292##########################
293# armnn module and tests #
294##########################
295# Note we use ANDROID_NN_DRIVER_LOCAL_PATH rather than LOCAL_PATH because LOCAL_PATH will be overwritten
296# when including other .mk files that set it.
297include $(ANDROID_NN_DRIVER_LOCAL_PATH)/armnn/Android.mk
surmeh0149b9e102018-05-17 14:11:25 +0100298include $(ANDROID_NN_DRIVER_LOCAL_PATH)/test/Android.mk