blob: 1fd74492f82f1c26be3866fe27a085ba10b0f074 [file] [log] [blame]
telsoa015307bc12018-03-09 13:51:08 +00001#
2# Copyright © 2017 ARM Ltd. All rights reserved.
3# See LICENSE file in the project root for full license information.
4#
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 \
Matteo Martincighe48bdff2018-09-03 13:50:50 +010051 ArmnnDriverImpl.cpp \
telsoa01ce3e84a2018-08-31 09:31:35 +010052 DriverOptions.cpp \
53 ArmnnDevice.cpp \
54 ArmnnPreparedModel.cpp \
55 ModelToINetworkConverter.cpp \
56 RequestThread.cpp \
57 Utils.cpp
telsoa015307bc12018-03-09 13:51:08 +000058
59LOCAL_STATIC_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +010060 libneuralnetworks_common \
61 libarmnn \
62 libboost_log \
63 libboost_program_options \
64 libboost_system \
65 libboost_thread \
66 armnn-arm_compute
telsoa015307bc12018-03-09 13:51:08 +000067
surmeh01deb3bdb2018-07-05 12:06:04 +010068LOCAL_SHARED_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +010069 libbase \
70 libhidlbase \
71 libhidltransport \
72 libhidlmemory \
73 liblog \
74 libutils \
75 android.hardware.neuralnetworks@1.0 \
76 android.hidl.allocator@1.0 \
77 android.hidl.memory@1.0 \
78 libOpenCL
surmeh01deb3bdb2018-07-05 12:06:04 +010079ifeq ($(PLATFORM_VERSION),9)
80# Required to build the 1.0 version of the NN Driver on Android P and later versions,
81# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
82LOCAL_SHARED_LIBRARIES+= \
telsoa01ce3e84a2018-08-31 09:31:35 +010083 android.hardware.neuralnetworks@1.1
Matteo Martincigh69558df2018-08-31 16:18:19 +010084endif # PLATFORM_VERSION == 9
telsoa015307bc12018-03-09 13:51:08 +000085
86include $(BUILD_STATIC_LIBRARY)
87
Matteo Martincigh69558df2018-08-31 16:18:19 +010088ifeq ($(PLATFORM_VERSION),9)
89# The following target is available starting from Android P
90
telsoa01ce3e84a2018-08-31 09:31:35 +010091#######################
92# libarmnn-driver@1.1 #
93#######################
94include $(CLEAR_VARS)
95
96LOCAL_MODULE := libarmnn-driver@1.1
97LOCAL_MODULE_TAGS := eng optional
98LOCAL_ARM_MODE := arm
99LOCAL_PROPRIETARY_MODULE := true
100# Mark source files as dependent on Android.mk
101LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
102
103LOCAL_C_INCLUDES := \
104 $(ARMNN_HEADER_PATH) \
105 $(ARMNN_UTILS_HEADER_PATH) \
106 $(OPENCL_HEADER_PATH) \
107 $(NN_HEADER_PATH)
108
109LOCAL_CFLAGS := \
110 -std=c++14 \
111 -fexceptions \
112 -Werror \
113 -Wno-format-security \
114 -DARMNN_ANDROID_P \
115 -DARMNN_ANDROID_NN_V1_1
116ifeq ($(ARMNN_DRIVER_DEBUG),1)
117LOCAL_CFLAGS+= \
118 -UNDEBUG
Matteo Martincigh69558df2018-08-31 16:18:19 +0100119endif # ARMNN_DRIVER_DEBUG == 1
telsoa01ce3e84a2018-08-31 09:31:35 +0100120
121LOCAL_SRC_FILES := \
Matteo Martincigh79250ab2018-09-04 16:28:10 +0100122 1.0/ArmnnDriverImpl.cpp \
123 1.1/ArmnnDriverImpl.cpp \
Matteo Martincighe48bdff2018-09-03 13:50:50 +0100124 ArmnnDriverImpl.cpp \
telsoa01ce3e84a2018-08-31 09:31:35 +0100125 DriverOptions.cpp \
126 ArmnnDevice.cpp \
127 ArmnnPreparedModel.cpp \
128 ModelToINetworkConverter.cpp \
129 RequestThread.cpp \
130 Utils.cpp
131
132LOCAL_STATIC_LIBRARIES := \
133 libneuralnetworks_common \
134 libarmnn \
135 libboost_log \
136 libboost_program_options \
137 libboost_system \
138 libboost_thread \
139 armnn-arm_compute
140
141LOCAL_SHARED_LIBRARIES := \
142 libbase \
143 libhidlbase \
144 libhidltransport \
145 libhidlmemory \
146 liblog \
147 libutils \
148 android.hardware.neuralnetworks@1.0 \
149 android.hardware.neuralnetworks@1.1 \
150 android.hidl.allocator@1.0 \
151 android.hidl.memory@1.0 \
152 libOpenCL
153
154include $(BUILD_STATIC_LIBRARY)
155
Matteo Martincigh69558df2018-08-31 16:18:19 +0100156endif # PLATFORM_VERSION == 9
157
telsoa015307bc12018-03-09 13:51:08 +0000158#####################################################
159# android.hardware.neuralnetworks@1.0-service-armnn #
160#####################################################
161include $(CLEAR_VARS)
162
163LOCAL_MODULE := android.hardware.neuralnetworks@1.0-service-armnn
164LOCAL_INIT_RC := android.hardware.neuralnetworks@1.0-service-armnn.rc
165LOCAL_MODULE_TAGS := eng optional
166LOCAL_ARM_MODE := arm
167LOCAL_MODULE_RELATIVE_PATH := hw
168LOCAL_PROPRIETARY_MODULE := true
169# Mark source files as dependent on Android.mk
170LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
171
telsoa01ce3e84a2018-08-31 09:31:35 +0100172LOCAL_C_INCLUDES := \
173 $(ARMNN_HEADER_PATH) \
174 $(NN_HEADER_PATH)
telsoa015307bc12018-03-09 13:51:08 +0000175
176LOCAL_CFLAGS := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100177 -std=c++14 \
178 -fexceptions
telsoa015307bc12018-03-09 13:51:08 +0000179ifeq ($(ARMNN_DRIVER_DEBUG),1)
telsoa01ce3e84a2018-08-31 09:31:35 +0100180LOCAL_CFLAGS += \
181 -UNDEBUG
Matteo Martincigh69558df2018-08-31 16:18:19 +0100182endif # ARMNN_DRIVER_DEBUG == 1
telsoa015307bc12018-03-09 13:51:08 +0000183
surmeh01deb3bdb2018-07-05 12:06:04 +0100184LOCAL_SRC_FILES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100185 service.cpp
telsoa015307bc12018-03-09 13:51:08 +0000186
187LOCAL_STATIC_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100188 libarmnn-driver@1.0 \
189 libneuralnetworks_common \
190 libarmnn \
191 libboost_log \
192 libboost_program_options \
193 libboost_system \
194 libboost_thread \
195 armnn-arm_compute
telsoa015307bc12018-03-09 13:51:08 +0000196
surmeh01deb3bdb2018-07-05 12:06:04 +0100197LOCAL_SHARED_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100198 libbase \
199 libhidlbase \
200 libhidltransport \
201 libhidlmemory \
202 libdl \
203 libhardware \
204 liblog \
205 libtextclassifier_hash \
206 libutils \
207 android.hardware.neuralnetworks@1.0 \
208 android.hidl.allocator@1.0 \
209 android.hidl.memory@1.0 \
210 libOpenCL
surmeh01deb3bdb2018-07-05 12:06:04 +0100211ifeq ($(PLATFORM_VERSION),9)
212# Required to build the 1.0 version of the NN Driver on Android P and later versions,
213# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
214LOCAL_SHARED_LIBRARIES+= \
telsoa01ce3e84a2018-08-31 09:31:35 +0100215 android.hardware.neuralnetworks@1.1
Matteo Martincigh69558df2018-08-31 16:18:19 +0100216endif # PLATFORM_VERSION == 9
telsoa015307bc12018-03-09 13:51:08 +0000217
218include $(BUILD_EXECUTABLE)
219
Matteo Martincigh69558df2018-08-31 16:18:19 +0100220ifeq ($(PLATFORM_VERSION),9)
221# The following target is available starting from Android P
222
telsoa01ce3e84a2018-08-31 09:31:35 +0100223#####################################################
224# android.hardware.neuralnetworks@1.1-service-armnn #
225#####################################################
226include $(CLEAR_VARS)
227
228LOCAL_MODULE := android.hardware.neuralnetworks@1.1-service-armnn
229LOCAL_INIT_RC := android.hardware.neuralnetworks@1.1-service-armnn.rc
230LOCAL_MODULE_TAGS := eng optional
231LOCAL_ARM_MODE := arm
232LOCAL_MODULE_RELATIVE_PATH := hw
233LOCAL_PROPRIETARY_MODULE := true
234# Mark source files as dependent on Android.mk
235LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
236
237LOCAL_C_INCLUDES := \
238 $(ARMNN_HEADER_PATH) \
239 $(NN_HEADER_PATH)
240
241LOCAL_CFLAGS := \
242 -std=c++14 \
243 -fexceptions \
244 -DARMNN_ANDROID_NN_V1_1
245ifeq ($(ARMNN_DRIVER_DEBUG),1)
246LOCAL_CFLAGS += \
247 -UNDEBUG
Matteo Martincigh69558df2018-08-31 16:18:19 +0100248endif # ARMNN_DRIVER_DEBUG == 1
telsoa01ce3e84a2018-08-31 09:31:35 +0100249
250LOCAL_SRC_FILES := \
251 service.cpp
252
253LOCAL_STATIC_LIBRARIES := \
254 libarmnn-driver@1.1 \
255 libneuralnetworks_common \
256 libarmnn \
257 libboost_log \
258 libboost_program_options \
259 libboost_system \
260 libboost_thread \
261 armnn-arm_compute
262
263LOCAL_SHARED_LIBRARIES := \
264 libbase \
265 libhidlbase \
266 libhidltransport \
267 libhidlmemory \
268 libdl \
269 libhardware \
270 liblog \
271 libtextclassifier_hash \
272 libutils \
273 android.hardware.neuralnetworks@1.0 \
274 android.hardware.neuralnetworks@1.1 \
275 android.hidl.allocator@1.0 \
276 android.hidl.memory@1.0 \
277 libOpenCL
278
279include $(BUILD_EXECUTABLE)
280
Matteo Martincigh69558df2018-08-31 16:18:19 +0100281endif # PLATFORM_VERSION == 9
282
telsoa015307bc12018-03-09 13:51:08 +0000283##########################
284# armnn module and tests #
285##########################
286# Note we use ANDROID_NN_DRIVER_LOCAL_PATH rather than LOCAL_PATH because LOCAL_PATH will be overwritten
287# when including other .mk files that set it.
288include $(ANDROID_NN_DRIVER_LOCAL_PATH)/armnn/Android.mk
surmeh0149b9e102018-05-17 14:11:25 +0100289include $(ANDROID_NN_DRIVER_LOCAL_PATH)/test/Android.mk