blob: 38450705cb87aad672f9bf99d77e2d22af14d949 [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 Martincighe48bdff2018-09-03 13:50:50 +010050 ArmnnDriverImpl.cpp \
telsoa01ce3e84a2018-08-31 09:31:35 +010051 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 := \
Matteo Martincighe48bdff2018-09-03 13:50:50 +0100121 ArmnnDriverImpl.cpp \
telsoa01ce3e84a2018-08-31 09:31:35 +0100122 DriverOptions.cpp \
123 ArmnnDevice.cpp \
124 ArmnnPreparedModel.cpp \
125 ModelToINetworkConverter.cpp \
126 RequestThread.cpp \
127 Utils.cpp
128
129LOCAL_STATIC_LIBRARIES := \
130 libneuralnetworks_common \
131 libarmnn \
132 libboost_log \
133 libboost_program_options \
134 libboost_system \
135 libboost_thread \
136 armnn-arm_compute
137
138LOCAL_SHARED_LIBRARIES := \
139 libbase \
140 libhidlbase \
141 libhidltransport \
142 libhidlmemory \
143 liblog \
144 libutils \
145 android.hardware.neuralnetworks@1.0 \
146 android.hardware.neuralnetworks@1.1 \
147 android.hidl.allocator@1.0 \
148 android.hidl.memory@1.0 \
149 libOpenCL
150
151include $(BUILD_STATIC_LIBRARY)
152
Matteo Martincigh69558df2018-08-31 16:18:19 +0100153endif # PLATFORM_VERSION == 9
154
telsoa015307bc12018-03-09 13:51:08 +0000155#####################################################
156# android.hardware.neuralnetworks@1.0-service-armnn #
157#####################################################
158include $(CLEAR_VARS)
159
160LOCAL_MODULE := android.hardware.neuralnetworks@1.0-service-armnn
161LOCAL_INIT_RC := android.hardware.neuralnetworks@1.0-service-armnn.rc
162LOCAL_MODULE_TAGS := eng optional
163LOCAL_ARM_MODE := arm
164LOCAL_MODULE_RELATIVE_PATH := hw
165LOCAL_PROPRIETARY_MODULE := true
166# Mark source files as dependent on Android.mk
167LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
168
telsoa01ce3e84a2018-08-31 09:31:35 +0100169LOCAL_C_INCLUDES := \
170 $(ARMNN_HEADER_PATH) \
171 $(NN_HEADER_PATH)
telsoa015307bc12018-03-09 13:51:08 +0000172
173LOCAL_CFLAGS := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100174 -std=c++14 \
175 -fexceptions
telsoa015307bc12018-03-09 13:51:08 +0000176ifeq ($(ARMNN_DRIVER_DEBUG),1)
telsoa01ce3e84a2018-08-31 09:31:35 +0100177LOCAL_CFLAGS += \
178 -UNDEBUG
Matteo Martincigh69558df2018-08-31 16:18:19 +0100179endif # ARMNN_DRIVER_DEBUG == 1
telsoa015307bc12018-03-09 13:51:08 +0000180
surmeh01deb3bdb2018-07-05 12:06:04 +0100181LOCAL_SRC_FILES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100182 service.cpp
telsoa015307bc12018-03-09 13:51:08 +0000183
184LOCAL_STATIC_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100185 libarmnn-driver@1.0 \
186 libneuralnetworks_common \
187 libarmnn \
188 libboost_log \
189 libboost_program_options \
190 libboost_system \
191 libboost_thread \
192 armnn-arm_compute
telsoa015307bc12018-03-09 13:51:08 +0000193
surmeh01deb3bdb2018-07-05 12:06:04 +0100194LOCAL_SHARED_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100195 libbase \
196 libhidlbase \
197 libhidltransport \
198 libhidlmemory \
199 libdl \
200 libhardware \
201 liblog \
202 libtextclassifier_hash \
203 libutils \
204 android.hardware.neuralnetworks@1.0 \
205 android.hidl.allocator@1.0 \
206 android.hidl.memory@1.0 \
207 libOpenCL
surmeh01deb3bdb2018-07-05 12:06:04 +0100208ifeq ($(PLATFORM_VERSION),9)
209# Required to build the 1.0 version of the NN Driver on Android P and later versions,
210# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
211LOCAL_SHARED_LIBRARIES+= \
telsoa01ce3e84a2018-08-31 09:31:35 +0100212 android.hardware.neuralnetworks@1.1
Matteo Martincigh69558df2018-08-31 16:18:19 +0100213endif # PLATFORM_VERSION == 9
telsoa015307bc12018-03-09 13:51:08 +0000214
215include $(BUILD_EXECUTABLE)
216
Matteo Martincigh69558df2018-08-31 16:18:19 +0100217ifeq ($(PLATFORM_VERSION),9)
218# The following target is available starting from Android P
219
telsoa01ce3e84a2018-08-31 09:31:35 +0100220#####################################################
221# android.hardware.neuralnetworks@1.1-service-armnn #
222#####################################################
223include $(CLEAR_VARS)
224
225LOCAL_MODULE := android.hardware.neuralnetworks@1.1-service-armnn
226LOCAL_INIT_RC := android.hardware.neuralnetworks@1.1-service-armnn.rc
227LOCAL_MODULE_TAGS := eng optional
228LOCAL_ARM_MODE := arm
229LOCAL_MODULE_RELATIVE_PATH := hw
230LOCAL_PROPRIETARY_MODULE := true
231# Mark source files as dependent on Android.mk
232LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
233
234LOCAL_C_INCLUDES := \
235 $(ARMNN_HEADER_PATH) \
236 $(NN_HEADER_PATH)
237
238LOCAL_CFLAGS := \
239 -std=c++14 \
240 -fexceptions \
241 -DARMNN_ANDROID_NN_V1_1
242ifeq ($(ARMNN_DRIVER_DEBUG),1)
243LOCAL_CFLAGS += \
244 -UNDEBUG
Matteo Martincigh69558df2018-08-31 16:18:19 +0100245endif # ARMNN_DRIVER_DEBUG == 1
telsoa01ce3e84a2018-08-31 09:31:35 +0100246
247LOCAL_SRC_FILES := \
248 service.cpp
249
250LOCAL_STATIC_LIBRARIES := \
251 libarmnn-driver@1.1 \
252 libneuralnetworks_common \
253 libarmnn \
254 libboost_log \
255 libboost_program_options \
256 libboost_system \
257 libboost_thread \
258 armnn-arm_compute
259
260LOCAL_SHARED_LIBRARIES := \
261 libbase \
262 libhidlbase \
263 libhidltransport \
264 libhidlmemory \
265 libdl \
266 libhardware \
267 liblog \
268 libtextclassifier_hash \
269 libutils \
270 android.hardware.neuralnetworks@1.0 \
271 android.hardware.neuralnetworks@1.1 \
272 android.hidl.allocator@1.0 \
273 android.hidl.memory@1.0 \
274 libOpenCL
275
276include $(BUILD_EXECUTABLE)
277
Matteo Martincigh69558df2018-08-31 16:18:19 +0100278endif # PLATFORM_VERSION == 9
279
telsoa015307bc12018-03-09 13:51:08 +0000280##########################
281# armnn module and tests #
282##########################
283# Note we use ANDROID_NN_DRIVER_LOCAL_PATH rather than LOCAL_PATH because LOCAL_PATH will be overwritten
284# when including other .mk files that set it.
285include $(ANDROID_NN_DRIVER_LOCAL_PATH)/armnn/Android.mk
surmeh0149b9e102018-05-17 14:11:25 +0100286include $(ANDROID_NN_DRIVER_LOCAL_PATH)/test/Android.mk