blob: 960a2f6effb3d3867c1c99566344b863187a076b [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 := \
telsoa01ce3e84a2018-08-31 09:31:35 +010050 1.0/ArmnnDriverImpl.cpp \
51 DriverOptions.cpp \
52 ArmnnDevice.cpp \
53 ArmnnPreparedModel.cpp \
54 ModelToINetworkConverter.cpp \
55 RequestThread.cpp \
56 Utils.cpp
telsoa015307bc12018-03-09 13:51:08 +000057
58LOCAL_STATIC_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +010059 libneuralnetworks_common \
60 libarmnn \
61 libboost_log \
62 libboost_program_options \
63 libboost_system \
64 libboost_thread \
65 armnn-arm_compute
telsoa015307bc12018-03-09 13:51:08 +000066
surmeh01deb3bdb2018-07-05 12:06:04 +010067LOCAL_SHARED_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +010068 libbase \
69 libhidlbase \
70 libhidltransport \
71 libhidlmemory \
72 liblog \
73 libutils \
74 android.hardware.neuralnetworks@1.0 \
75 android.hidl.allocator@1.0 \
76 android.hidl.memory@1.0 \
77 libOpenCL
surmeh01deb3bdb2018-07-05 12:06:04 +010078ifeq ($(PLATFORM_VERSION),9)
79# Required to build the 1.0 version of the NN Driver on Android P and later versions,
80# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
81LOCAL_SHARED_LIBRARIES+= \
telsoa01ce3e84a2018-08-31 09:31:35 +010082 android.hardware.neuralnetworks@1.1
Matteo Martincigh69558df2018-08-31 16:18:19 +010083endif # PLATFORM_VERSION == 9
telsoa015307bc12018-03-09 13:51:08 +000084
85include $(BUILD_STATIC_LIBRARY)
86
Matteo Martincigh69558df2018-08-31 16:18:19 +010087ifeq ($(PLATFORM_VERSION),9)
88# The following target is available starting from Android P
89
telsoa01ce3e84a2018-08-31 09:31:35 +010090#######################
91# libarmnn-driver@1.1 #
92#######################
93include $(CLEAR_VARS)
94
95LOCAL_MODULE := libarmnn-driver@1.1
96LOCAL_MODULE_TAGS := eng optional
97LOCAL_ARM_MODE := arm
98LOCAL_PROPRIETARY_MODULE := true
99# Mark source files as dependent on Android.mk
100LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
101
102LOCAL_C_INCLUDES := \
103 $(ARMNN_HEADER_PATH) \
104 $(ARMNN_UTILS_HEADER_PATH) \
105 $(OPENCL_HEADER_PATH) \
106 $(NN_HEADER_PATH)
107
108LOCAL_CFLAGS := \
109 -std=c++14 \
110 -fexceptions \
111 -Werror \
112 -Wno-format-security \
113 -DARMNN_ANDROID_P \
114 -DARMNN_ANDROID_NN_V1_1
115ifeq ($(ARMNN_DRIVER_DEBUG),1)
116LOCAL_CFLAGS+= \
117 -UNDEBUG
Matteo Martincigh69558df2018-08-31 16:18:19 +0100118endif # ARMNN_DRIVER_DEBUG == 1
telsoa01ce3e84a2018-08-31 09:31:35 +0100119
120LOCAL_SRC_FILES := \
121 1.0/ArmnnDriverImpl.cpp \
122 1.1/ArmnnDriverImpl.cpp \
123 DriverOptions.cpp \
124 ArmnnDevice.cpp \
125 ArmnnPreparedModel.cpp \
126 ModelToINetworkConverter.cpp \
127 RequestThread.cpp \
128 Utils.cpp
129
130LOCAL_STATIC_LIBRARIES := \
131 libneuralnetworks_common \
132 libarmnn \
133 libboost_log \
134 libboost_program_options \
135 libboost_system \
136 libboost_thread \
137 armnn-arm_compute
138
139LOCAL_SHARED_LIBRARIES := \
140 libbase \
141 libhidlbase \
142 libhidltransport \
143 libhidlmemory \
144 liblog \
145 libutils \
146 android.hardware.neuralnetworks@1.0 \
147 android.hardware.neuralnetworks@1.1 \
148 android.hidl.allocator@1.0 \
149 android.hidl.memory@1.0 \
150 libOpenCL
151
152include $(BUILD_STATIC_LIBRARY)
153
Matteo Martincigh69558df2018-08-31 16:18:19 +0100154endif # PLATFORM_VERSION == 9
155
telsoa015307bc12018-03-09 13:51:08 +0000156#####################################################
157# android.hardware.neuralnetworks@1.0-service-armnn #
158#####################################################
159include $(CLEAR_VARS)
160
161LOCAL_MODULE := android.hardware.neuralnetworks@1.0-service-armnn
162LOCAL_INIT_RC := android.hardware.neuralnetworks@1.0-service-armnn.rc
163LOCAL_MODULE_TAGS := eng optional
164LOCAL_ARM_MODE := arm
165LOCAL_MODULE_RELATIVE_PATH := hw
166LOCAL_PROPRIETARY_MODULE := true
167# Mark source files as dependent on Android.mk
168LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
169
telsoa01ce3e84a2018-08-31 09:31:35 +0100170LOCAL_C_INCLUDES := \
171 $(ARMNN_HEADER_PATH) \
172 $(NN_HEADER_PATH)
telsoa015307bc12018-03-09 13:51:08 +0000173
174LOCAL_CFLAGS := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100175 -std=c++14 \
176 -fexceptions
telsoa015307bc12018-03-09 13:51:08 +0000177ifeq ($(ARMNN_DRIVER_DEBUG),1)
telsoa01ce3e84a2018-08-31 09:31:35 +0100178LOCAL_CFLAGS += \
179 -UNDEBUG
Matteo Martincigh69558df2018-08-31 16:18:19 +0100180endif # ARMNN_DRIVER_DEBUG == 1
telsoa015307bc12018-03-09 13:51:08 +0000181
surmeh01deb3bdb2018-07-05 12:06:04 +0100182LOCAL_SRC_FILES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100183 service.cpp
telsoa015307bc12018-03-09 13:51:08 +0000184
185LOCAL_STATIC_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100186 libarmnn-driver@1.0 \
187 libneuralnetworks_common \
188 libarmnn \
189 libboost_log \
190 libboost_program_options \
191 libboost_system \
192 libboost_thread \
193 armnn-arm_compute
telsoa015307bc12018-03-09 13:51:08 +0000194
surmeh01deb3bdb2018-07-05 12:06:04 +0100195LOCAL_SHARED_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100196 libbase \
197 libhidlbase \
198 libhidltransport \
199 libhidlmemory \
200 libdl \
201 libhardware \
202 liblog \
203 libtextclassifier_hash \
204 libutils \
205 android.hardware.neuralnetworks@1.0 \
206 android.hidl.allocator@1.0 \
207 android.hidl.memory@1.0 \
208 libOpenCL
surmeh01deb3bdb2018-07-05 12:06:04 +0100209ifeq ($(PLATFORM_VERSION),9)
210# Required to build the 1.0 version of the NN Driver on Android P and later versions,
211# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
212LOCAL_SHARED_LIBRARIES+= \
telsoa01ce3e84a2018-08-31 09:31:35 +0100213 android.hardware.neuralnetworks@1.1
Matteo Martincigh69558df2018-08-31 16:18:19 +0100214endif # PLATFORM_VERSION == 9
telsoa015307bc12018-03-09 13:51:08 +0000215
216include $(BUILD_EXECUTABLE)
217
Matteo Martincigh69558df2018-08-31 16:18:19 +0100218ifeq ($(PLATFORM_VERSION),9)
219# The following target is available starting from Android P
220
telsoa01ce3e84a2018-08-31 09:31:35 +0100221#####################################################
222# android.hardware.neuralnetworks@1.1-service-armnn #
223#####################################################
224include $(CLEAR_VARS)
225
226LOCAL_MODULE := android.hardware.neuralnetworks@1.1-service-armnn
227LOCAL_INIT_RC := android.hardware.neuralnetworks@1.1-service-armnn.rc
228LOCAL_MODULE_TAGS := eng optional
229LOCAL_ARM_MODE := arm
230LOCAL_MODULE_RELATIVE_PATH := hw
231LOCAL_PROPRIETARY_MODULE := true
232# Mark source files as dependent on Android.mk
233LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
234
235LOCAL_C_INCLUDES := \
236 $(ARMNN_HEADER_PATH) \
237 $(NN_HEADER_PATH)
238
239LOCAL_CFLAGS := \
240 -std=c++14 \
241 -fexceptions \
242 -DARMNN_ANDROID_NN_V1_1
243ifeq ($(ARMNN_DRIVER_DEBUG),1)
244LOCAL_CFLAGS += \
245 -UNDEBUG
Matteo Martincigh69558df2018-08-31 16:18:19 +0100246endif # ARMNN_DRIVER_DEBUG == 1
telsoa01ce3e84a2018-08-31 09:31:35 +0100247
248LOCAL_SRC_FILES := \
249 service.cpp
250
251LOCAL_STATIC_LIBRARIES := \
252 libarmnn-driver@1.1 \
253 libneuralnetworks_common \
254 libarmnn \
255 libboost_log \
256 libboost_program_options \
257 libboost_system \
258 libboost_thread \
259 armnn-arm_compute
260
261LOCAL_SHARED_LIBRARIES := \
262 libbase \
263 libhidlbase \
264 libhidltransport \
265 libhidlmemory \
266 libdl \
267 libhardware \
268 liblog \
269 libtextclassifier_hash \
270 libutils \
271 android.hardware.neuralnetworks@1.0 \
272 android.hardware.neuralnetworks@1.1 \
273 android.hidl.allocator@1.0 \
274 android.hidl.memory@1.0 \
275 libOpenCL
276
277include $(BUILD_EXECUTABLE)
278
Matteo Martincigh69558df2018-08-31 16:18:19 +0100279endif # PLATFORM_VERSION == 9
280
telsoa015307bc12018-03-09 13:51:08 +0000281##########################
282# armnn module and tests #
283##########################
284# Note we use ANDROID_NN_DRIVER_LOCAL_PATH rather than LOCAL_PATH because LOCAL_PATH will be overwritten
285# when including other .mk files that set it.
286include $(ANDROID_NN_DRIVER_LOCAL_PATH)/armnn/Android.mk
surmeh0149b9e102018-05-17 14:11:25 +0100287include $(ANDROID_NN_DRIVER_LOCAL_PATH)/test/Android.mk