blob: c0dd1e6df22150c7ed46972bd394cd2b8a9db1cf [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
43endif
telsoa015307bc12018-03-09 13:51:08 +000044ifeq ($(ARMNN_DRIVER_DEBUG),1)
telsoa01ce3e84a2018-08-31 09:31:35 +010045LOCAL_CFLAGS+= \
46 -UNDEBUG
telsoa015307bc12018-03-09 13:51:08 +000047endif
48
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
surmeh01deb3bdb2018-07-05 12:06:04 +010083endif
telsoa015307bc12018-03-09 13:51:08 +000084
85include $(BUILD_STATIC_LIBRARY)
86
telsoa01ce3e84a2018-08-31 09:31:35 +010087#######################
88# libarmnn-driver@1.1 #
89#######################
90include $(CLEAR_VARS)
91
92LOCAL_MODULE := libarmnn-driver@1.1
93LOCAL_MODULE_TAGS := eng optional
94LOCAL_ARM_MODE := arm
95LOCAL_PROPRIETARY_MODULE := true
96# Mark source files as dependent on Android.mk
97LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
98
99LOCAL_C_INCLUDES := \
100 $(ARMNN_HEADER_PATH) \
101 $(ARMNN_UTILS_HEADER_PATH) \
102 $(OPENCL_HEADER_PATH) \
103 $(NN_HEADER_PATH)
104
105LOCAL_CFLAGS := \
106 -std=c++14 \
107 -fexceptions \
108 -Werror \
109 -Wno-format-security \
110 -DARMNN_ANDROID_P \
111 -DARMNN_ANDROID_NN_V1_1
112ifeq ($(ARMNN_DRIVER_DEBUG),1)
113LOCAL_CFLAGS+= \
114 -UNDEBUG
115endif
116
117LOCAL_SRC_FILES := \
118 1.0/ArmnnDriverImpl.cpp \
119 1.1/ArmnnDriverImpl.cpp \
120 DriverOptions.cpp \
121 ArmnnDevice.cpp \
122 ArmnnPreparedModel.cpp \
123 ModelToINetworkConverter.cpp \
124 RequestThread.cpp \
125 Utils.cpp
126
127LOCAL_STATIC_LIBRARIES := \
128 libneuralnetworks_common \
129 libarmnn \
130 libboost_log \
131 libboost_program_options \
132 libboost_system \
133 libboost_thread \
134 armnn-arm_compute
135
136LOCAL_SHARED_LIBRARIES := \
137 libbase \
138 libhidlbase \
139 libhidltransport \
140 libhidlmemory \
141 liblog \
142 libutils \
143 android.hardware.neuralnetworks@1.0 \
144 android.hardware.neuralnetworks@1.1 \
145 android.hidl.allocator@1.0 \
146 android.hidl.memory@1.0 \
147 libOpenCL
148
149include $(BUILD_STATIC_LIBRARY)
150
telsoa015307bc12018-03-09 13:51:08 +0000151#####################################################
152# android.hardware.neuralnetworks@1.0-service-armnn #
153#####################################################
154include $(CLEAR_VARS)
155
156LOCAL_MODULE := android.hardware.neuralnetworks@1.0-service-armnn
157LOCAL_INIT_RC := android.hardware.neuralnetworks@1.0-service-armnn.rc
158LOCAL_MODULE_TAGS := eng optional
159LOCAL_ARM_MODE := arm
160LOCAL_MODULE_RELATIVE_PATH := hw
161LOCAL_PROPRIETARY_MODULE := true
162# Mark source files as dependent on Android.mk
163LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
164
telsoa01ce3e84a2018-08-31 09:31:35 +0100165LOCAL_C_INCLUDES := \
166 $(ARMNN_HEADER_PATH) \
167 $(NN_HEADER_PATH)
telsoa015307bc12018-03-09 13:51:08 +0000168
169LOCAL_CFLAGS := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100170 -std=c++14 \
171 -fexceptions
telsoa015307bc12018-03-09 13:51:08 +0000172ifeq ($(ARMNN_DRIVER_DEBUG),1)
telsoa01ce3e84a2018-08-31 09:31:35 +0100173LOCAL_CFLAGS += \
174 -UNDEBUG
telsoa015307bc12018-03-09 13:51:08 +0000175endif
176
surmeh01deb3bdb2018-07-05 12:06:04 +0100177LOCAL_SRC_FILES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100178 service.cpp
telsoa015307bc12018-03-09 13:51:08 +0000179
180LOCAL_STATIC_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100181 libarmnn-driver@1.0 \
182 libneuralnetworks_common \
183 libarmnn \
184 libboost_log \
185 libboost_program_options \
186 libboost_system \
187 libboost_thread \
188 armnn-arm_compute
telsoa015307bc12018-03-09 13:51:08 +0000189
surmeh01deb3bdb2018-07-05 12:06:04 +0100190LOCAL_SHARED_LIBRARIES := \
telsoa01ce3e84a2018-08-31 09:31:35 +0100191 libbase \
192 libhidlbase \
193 libhidltransport \
194 libhidlmemory \
195 libdl \
196 libhardware \
197 liblog \
198 libtextclassifier_hash \
199 libutils \
200 android.hardware.neuralnetworks@1.0 \
201 android.hidl.allocator@1.0 \
202 android.hidl.memory@1.0 \
203 libOpenCL
surmeh01deb3bdb2018-07-05 12:06:04 +0100204ifeq ($(PLATFORM_VERSION),9)
205# Required to build the 1.0 version of the NN Driver on Android P and later versions,
206# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
207LOCAL_SHARED_LIBRARIES+= \
telsoa01ce3e84a2018-08-31 09:31:35 +0100208 android.hardware.neuralnetworks@1.1
surmeh01deb3bdb2018-07-05 12:06:04 +0100209endif
telsoa015307bc12018-03-09 13:51:08 +0000210
211include $(BUILD_EXECUTABLE)
212
telsoa01ce3e84a2018-08-31 09:31:35 +0100213#####################################################
214# android.hardware.neuralnetworks@1.1-service-armnn #
215#####################################################
216include $(CLEAR_VARS)
217
218LOCAL_MODULE := android.hardware.neuralnetworks@1.1-service-armnn
219LOCAL_INIT_RC := android.hardware.neuralnetworks@1.1-service-armnn.rc
220LOCAL_MODULE_TAGS := eng optional
221LOCAL_ARM_MODE := arm
222LOCAL_MODULE_RELATIVE_PATH := hw
223LOCAL_PROPRIETARY_MODULE := true
224# Mark source files as dependent on Android.mk
225LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
226
227LOCAL_C_INCLUDES := \
228 $(ARMNN_HEADER_PATH) \
229 $(NN_HEADER_PATH)
230
231LOCAL_CFLAGS := \
232 -std=c++14 \
233 -fexceptions \
234 -DARMNN_ANDROID_NN_V1_1
235ifeq ($(ARMNN_DRIVER_DEBUG),1)
236LOCAL_CFLAGS += \
237 -UNDEBUG
238endif
239
240LOCAL_SRC_FILES := \
241 service.cpp
242
243LOCAL_STATIC_LIBRARIES := \
244 libarmnn-driver@1.1 \
245 libneuralnetworks_common \
246 libarmnn \
247 libboost_log \
248 libboost_program_options \
249 libboost_system \
250 libboost_thread \
251 armnn-arm_compute
252
253LOCAL_SHARED_LIBRARIES := \
254 libbase \
255 libhidlbase \
256 libhidltransport \
257 libhidlmemory \
258 libdl \
259 libhardware \
260 liblog \
261 libtextclassifier_hash \
262 libutils \
263 android.hardware.neuralnetworks@1.0 \
264 android.hardware.neuralnetworks@1.1 \
265 android.hidl.allocator@1.0 \
266 android.hidl.memory@1.0 \
267 libOpenCL
268
269include $(BUILD_EXECUTABLE)
270
telsoa015307bc12018-03-09 13:51:08 +0000271##########################
272# armnn module and tests #
273##########################
274# Note we use ANDROID_NN_DRIVER_LOCAL_PATH rather than LOCAL_PATH because LOCAL_PATH will be overwritten
275# when including other .mk files that set it.
276include $(ANDROID_NN_DRIVER_LOCAL_PATH)/armnn/Android.mk
surmeh0149b9e102018-05-17 14:11:25 +0100277include $(ANDROID_NN_DRIVER_LOCAL_PATH)/test/Android.mk