blob: f9d59c83d9dfcf4f5dad4dd4def36028f75ee7d3 [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 \
63 libarmnn \
64 libboost_log \
65 libboost_program_options \
66 libboost_system \
67 libboost_thread \
68 armnn-arm_compute
telsoa015307bc12018-03-09 13:51:08 +000069
surmeh01deb3bdb2018-07-05 12:06:04 +010070LOCAL_SHARED_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +010071 libbase \
72 libhidlbase \
73 libhidltransport \
74 libhidlmemory \
75 liblog \
76 libutils \
77 android.hardware.neuralnetworks@1.0 \
78 android.hidl.allocator@1.0 \
79 android.hidl.memory@1.0 \
80 libOpenCL
surmeh01deb3bdb2018-07-05 12:06:04 +010081ifeq ($(PLATFORM_VERSION),9)
82# Required to build the 1.0 version of the NN Driver on Android P and later versions,
83# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
84LOCAL_SHARED_LIBRARIES+= \
telsoa01ce3e84a2018-08-31 09:31:35 +010085 android.hardware.neuralnetworks@1.1
Matteo Martincigh69558df2018-08-31 16:18:19 +010086endif # PLATFORM_VERSION == 9
telsoa015307bc12018-03-09 13:51:08 +000087
88include $(BUILD_STATIC_LIBRARY)
89
Matteo Martincigh69558df2018-08-31 16:18:19 +010090ifeq ($(PLATFORM_VERSION),9)
91# The following target is available starting from Android P
92
telsoa01ce3e84a2018-08-31 09:31:35 +010093#######################
94# libarmnn-driver@1.1 #
95#######################
96include $(CLEAR_VARS)
97
98LOCAL_MODULE := libarmnn-driver@1.1
99LOCAL_MODULE_TAGS := eng optional
100LOCAL_ARM_MODE := arm
101LOCAL_PROPRIETARY_MODULE := true
102# Mark source files as dependent on Android.mk
103LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
104
105LOCAL_C_INCLUDES := \
106 $(ARMNN_HEADER_PATH) \
107 $(ARMNN_UTILS_HEADER_PATH) \
108 $(OPENCL_HEADER_PATH) \
109 $(NN_HEADER_PATH)
110
111LOCAL_CFLAGS := \
112 -std=c++14 \
113 -fexceptions \
114 -Werror \
115 -Wno-format-security \
116 -DARMNN_ANDROID_P \
117 -DARMNN_ANDROID_NN_V1_1
118ifeq ($(ARMNN_DRIVER_DEBUG),1)
119LOCAL_CFLAGS+= \
120 -UNDEBUG
Matteo Martincigh69558df2018-08-31 16:18:19 +0100121endif # ARMNN_DRIVER_DEBUG == 1
telsoa01ce3e84a2018-08-31 09:31:35 +0100122
123LOCAL_SRC_FILES := \
Matteo Martincigh79250ab2018-09-04 16:28:10 +0100124 1.0/ArmnnDriverImpl.cpp \
arovir01b0717b52018-09-05 17:03:25 +0100125 1.0/HalPolicy.cpp \
Matteo Martincigh79250ab2018-09-04 16:28:10 +0100126 1.1/ArmnnDriverImpl.cpp \
arovir01b0717b52018-09-05 17:03:25 +0100127 1.1/HalPolicy.cpp \
Matteo Martincighe48bdff2018-09-03 13:50:50 +0100128 ArmnnDriverImpl.cpp \
telsoa01ce3e84a2018-08-31 09:31:35 +0100129 DriverOptions.cpp \
130 ArmnnDevice.cpp \
131 ArmnnPreparedModel.cpp \
132 ModelToINetworkConverter.cpp \
133 RequestThread.cpp \
arovir01b0717b52018-09-05 17:03:25 +0100134 Utils.cpp \
135 ConversionUtils.cpp
telsoa01ce3e84a2018-08-31 09:31:35 +0100136
137LOCAL_STATIC_LIBRARIES := \
138 libneuralnetworks_common \
139 libarmnn \
140 libboost_log \
141 libboost_program_options \
142 libboost_system \
143 libboost_thread \
144 armnn-arm_compute
145
146LOCAL_SHARED_LIBRARIES := \
147 libbase \
148 libhidlbase \
149 libhidltransport \
150 libhidlmemory \
151 liblog \
152 libutils \
153 android.hardware.neuralnetworks@1.0 \
154 android.hardware.neuralnetworks@1.1 \
155 android.hidl.allocator@1.0 \
156 android.hidl.memory@1.0 \
157 libOpenCL
158
159include $(BUILD_STATIC_LIBRARY)
160
Matteo Martincigh69558df2018-08-31 16:18:19 +0100161endif # PLATFORM_VERSION == 9
162
telsoa015307bc12018-03-09 13:51:08 +0000163#####################################################
164# android.hardware.neuralnetworks@1.0-service-armnn #
165#####################################################
166include $(CLEAR_VARS)
167
168LOCAL_MODULE := android.hardware.neuralnetworks@1.0-service-armnn
169LOCAL_INIT_RC := android.hardware.neuralnetworks@1.0-service-armnn.rc
170LOCAL_MODULE_TAGS := eng optional
171LOCAL_ARM_MODE := arm
172LOCAL_MODULE_RELATIVE_PATH := hw
173LOCAL_PROPRIETARY_MODULE := true
174# Mark source files as dependent on Android.mk
175LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
176
telsoa01ce3e84a2018-08-31 09:31:35 +0100177LOCAL_C_INCLUDES := \
178 $(ARMNN_HEADER_PATH) \
179 $(NN_HEADER_PATH)
telsoa015307bc12018-03-09 13:51:08 +0000180
181LOCAL_CFLAGS := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100182 -std=c++14 \
183 -fexceptions
telsoa015307bc12018-03-09 13:51:08 +0000184ifeq ($(ARMNN_DRIVER_DEBUG),1)
telsoa01ce3e84a2018-08-31 09:31:35 +0100185LOCAL_CFLAGS += \
186 -UNDEBUG
Matteo Martincigh69558df2018-08-31 16:18:19 +0100187endif # ARMNN_DRIVER_DEBUG == 1
telsoa015307bc12018-03-09 13:51:08 +0000188
surmeh01deb3bdb2018-07-05 12:06:04 +0100189LOCAL_SRC_FILES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100190 service.cpp
telsoa015307bc12018-03-09 13:51:08 +0000191
192LOCAL_STATIC_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100193 libarmnn-driver@1.0 \
194 libneuralnetworks_common \
195 libarmnn \
196 libboost_log \
197 libboost_program_options \
198 libboost_system \
199 libboost_thread \
200 armnn-arm_compute
telsoa015307bc12018-03-09 13:51:08 +0000201
surmeh01deb3bdb2018-07-05 12:06:04 +0100202LOCAL_SHARED_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100203 libbase \
204 libhidlbase \
205 libhidltransport \
206 libhidlmemory \
207 libdl \
208 libhardware \
209 liblog \
210 libtextclassifier_hash \
211 libutils \
212 android.hardware.neuralnetworks@1.0 \
213 android.hidl.allocator@1.0 \
214 android.hidl.memory@1.0 \
215 libOpenCL
surmeh01deb3bdb2018-07-05 12:06:04 +0100216ifeq ($(PLATFORM_VERSION),9)
217# Required to build the 1.0 version of the NN Driver on Android P and later versions,
218# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
219LOCAL_SHARED_LIBRARIES+= \
telsoa01ce3e84a2018-08-31 09:31:35 +0100220 android.hardware.neuralnetworks@1.1
Matteo Martincigh69558df2018-08-31 16:18:19 +0100221endif # PLATFORM_VERSION == 9
telsoa015307bc12018-03-09 13:51:08 +0000222
223include $(BUILD_EXECUTABLE)
224
Matteo Martincigh69558df2018-08-31 16:18:19 +0100225ifeq ($(PLATFORM_VERSION),9)
226# The following target is available starting from Android P
227
telsoa01ce3e84a2018-08-31 09:31:35 +0100228#####################################################
229# android.hardware.neuralnetworks@1.1-service-armnn #
230#####################################################
231include $(CLEAR_VARS)
232
233LOCAL_MODULE := android.hardware.neuralnetworks@1.1-service-armnn
234LOCAL_INIT_RC := android.hardware.neuralnetworks@1.1-service-armnn.rc
235LOCAL_MODULE_TAGS := eng optional
236LOCAL_ARM_MODE := arm
237LOCAL_MODULE_RELATIVE_PATH := hw
238LOCAL_PROPRIETARY_MODULE := true
239# Mark source files as dependent on Android.mk
240LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
241
242LOCAL_C_INCLUDES := \
243 $(ARMNN_HEADER_PATH) \
244 $(NN_HEADER_PATH)
245
246LOCAL_CFLAGS := \
247 -std=c++14 \
248 -fexceptions \
249 -DARMNN_ANDROID_NN_V1_1
250ifeq ($(ARMNN_DRIVER_DEBUG),1)
251LOCAL_CFLAGS += \
252 -UNDEBUG
Matteo Martincigh69558df2018-08-31 16:18:19 +0100253endif # ARMNN_DRIVER_DEBUG == 1
telsoa01ce3e84a2018-08-31 09:31:35 +0100254
255LOCAL_SRC_FILES := \
256 service.cpp
257
258LOCAL_STATIC_LIBRARIES := \
259 libarmnn-driver@1.1 \
260 libneuralnetworks_common \
261 libarmnn \
262 libboost_log \
263 libboost_program_options \
264 libboost_system \
265 libboost_thread \
266 armnn-arm_compute
267
268LOCAL_SHARED_LIBRARIES := \
269 libbase \
270 libhidlbase \
271 libhidltransport \
272 libhidlmemory \
273 libdl \
274 libhardware \
275 liblog \
276 libtextclassifier_hash \
277 libutils \
278 android.hardware.neuralnetworks@1.0 \
279 android.hardware.neuralnetworks@1.1 \
280 android.hidl.allocator@1.0 \
281 android.hidl.memory@1.0 \
282 libOpenCL
283
284include $(BUILD_EXECUTABLE)
285
Matteo Martincigh69558df2018-08-31 16:18:19 +0100286endif # PLATFORM_VERSION == 9
287
telsoa015307bc12018-03-09 13:51:08 +0000288##########################
289# armnn module and tests #
290##########################
291# Note we use ANDROID_NN_DRIVER_LOCAL_PATH rather than LOCAL_PATH because LOCAL_PATH will be overwritten
292# when including other .mk files that set it.
293include $(ANDROID_NN_DRIVER_LOCAL_PATH)/armnn/Android.mk
surmeh0149b9e102018-05-17 14:11:25 +0100294include $(ANDROID_NN_DRIVER_LOCAL_PATH)/test/Android.mk