blob: b2edaf4b574f55b5edbbc9e3843d5945eac95fc5 [file] [log] [blame]
Mike Kelly0e415132020-02-11 11:21:25 +00001#
2# Copyright © 2017 ARM Ltd. All rights reserved.
3# SPDX-License-Identifier: MIT
4#
5
6ANDROID_NN_DRIVER_LOCAL_PATH := $(call my-dir)
7LOCAL_PATH := $(ANDROID_NN_DRIVER_LOCAL_PATH)
8
9P_OR_LATER := 0
10Q_OR_LATER := 0
Kevin Mayec1e5b82020-02-26 17:00:39 +000011R_OR_LATER := 0
Kevin May157f8f42020-06-02 14:50:01 +010012ANDROID_R := 0
Mike Kelly0e415132020-02-11 11:21:25 +000013
14ifeq ($(PLATFORM_VERSION),9)
15P_OR_LATER := 1
16endif # PLATFORM_VERSION == 9
17ifeq ($(PLATFORM_VERSION),P)
18P_OR_LATER := 1
19endif # PLATFORM_VERSION == P
20
21ifeq ($(PLATFORM_VERSION),10)
22P_OR_LATER := 1
23Q_OR_LATER := 1
24endif # PLATFORM_VERSION == 10
25ifeq ($(PLATFORM_VERSION),Q)
26P_OR_LATER := 1
27Q_OR_LATER := 1
28endif # PLATFORM_VERSION == Q
29
Kevin Mayec1e5b82020-02-26 17:00:39 +000030ifeq ($(PLATFORM_VERSION),R)
31P_OR_LATER := 1
32Q_OR_LATER := 1
33R_OR_LATER := 1
Kevin May157f8f42020-06-02 14:50:01 +010034ANDROID_R := 1
Kevin Mayec1e5b82020-02-26 17:00:39 +000035endif # PLATFORM_VERSION == R
36
Kevin May157f8f42020-06-02 14:50:01 +010037ifeq ($(PLATFORM_VERSION),11)
38P_OR_LATER := 1
39Q_OR_LATER := 1
40R_OR_LATER := 1
41ANDROID_R := 1
42endif # PLATFORM_VERSION == 11
43
Mike Kelly0e415132020-02-11 11:21:25 +000044CPP_VERSION := c++14
45
46ifeq ($(Q_OR_LATER),1)
47CPP_VERSION := c++17
48endif
49
50# Configure these paths if you move the source or Khronos headers
51ARMNN_HEADER_PATH := $(LOCAL_PATH)/armnn/include
52ARMNN_UTILS_HEADER_PATH := $(LOCAL_PATH)/armnn/src/armnnUtils
53OPENCL_HEADER_PATH := $(LOCAL_PATH)/clframework/include
54NN_HEADER_PATH := $(LOCAL_PATH)/../../../frameworks/ml/nn/runtime/include
55
56# Variables to control CL/NEON/reference backend support
57# Set them to '0' to disable support for a specific backend
58ARMNN_COMPUTE_CL_ENABLED := 1
59ARMNN_COMPUTE_NEON_ENABLED := 1
60ARMNN_REF_ENABLED := 1
61
62ifeq ($(ARMNN_COMPUTE_CL_ENABLE),0)
63ARMNN_COMPUTE_CL_ENABLED := 0
64endif
65
66ifeq ($(ARMNN_COMPUTE_NEON_ENABLE),0)
67ARMNN_COMPUTE_NEON_ENABLED := 0
68endif
69
70ifeq ($(ARMNN_REF_ENABLE),0)
71ARMNN_REF_ENABLED := 0
72endif
73
Kevin May157f8f42020-06-02 14:50:01 +010074ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +000075ARMNN_COMPUTE_CL_ENABLED := 0
Kevin May157f8f42020-06-02 14:50:01 +010076endif
Kevin Mayec1e5b82020-02-26 17:00:39 +000077
alered017c395b22020-04-03 15:37:24 +010078# Variable to control inclusion of libOpenCL shared library
79ARMNN_INCLUDE_LIBOPENCL := $(ARMNN_COMPUTE_CL_ENABLED)
80ifeq ($(ARMNN_LIBOPENCL),0)
81ARMNN_INCLUDE_LIBOPENCL := 0
82endif
83
Narumol Prangnawaratcad4e912020-06-02 12:07:43 +010084# Variable to control retire rate of priority queue
85RETIRE_RATE := 3
86
Mike Kelly0e415132020-02-11 11:21:25 +000087#######################
88# libarmnn-driver@1.0 #
89#######################
90include $(CLEAR_VARS)
91
92LOCAL_MODULE := libarmnn-driver@1.0
93ifeq ($(Q_OR_LATER),1)
94# "eng" is deprecated in Android Q
95LOCAL_MODULE_TAGS := optional
96else
97LOCAL_MODULE_TAGS := eng optional
98endif
99LOCAL_ARM_MODE := arm
100LOCAL_PROPRIETARY_MODULE := true
101# Mark source files as dependent on Android.mk
102LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
103
104LOCAL_C_INCLUDES := \
105 $(ARMNN_HEADER_PATH) \
106 $(ARMNN_UTILS_HEADER_PATH) \
107 $(OPENCL_HEADER_PATH) \
108 $(NN_HEADER_PATH)
109
110LOCAL_CFLAGS := \
111 -std=$(CPP_VERSION) \
112 -fexceptions \
113 -Werror \
114 -Wno-format-security
115
Kevin Mayec1e5b82020-02-26 17:00:39 +0000116# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100117ifeq ($(ANDROID_R),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000118LOCAL_CFLAGS+= \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000119 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100120endif
Mike Kelly0e415132020-02-11 11:21:25 +0000121
122ifeq ($(ARMNN_DRIVER_DEBUG),1)
123LOCAL_CFLAGS+= \
124 -UNDEBUG
125endif # ARMNN_DRIVER_DEBUG == 1
126
127ifeq ($(Q_OR_LATER),1)
128LOCAL_CFLAGS += \
129 -DBOOST_NO_AUTO_PTR
130endif # PLATFORM_VERSION == Q or later
131
132ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
133LOCAL_CFLAGS += \
134 -DARMCOMPUTECL_ENABLED
135endif # ARMNN_COMPUTE_CL_ENABLED == 1
136
137ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
138LOCAL_CFLAGS += \
139 -DARMCOMPUTENEON_ENABLED
140endif # ARMNN_COMPUTE_NEON_ENABLED == 1
141
142ifeq ($(ARMNN_REF_ENABLED),1)
143LOCAL_CFLAGS += \
144 -DARMNNREF_ENABLED
145endif # ARMNN_REF_ENABLED == 1
146
147LOCAL_SRC_FILES := \
148 1.0/ArmnnDriverImpl.cpp \
149 1.0/HalPolicy.cpp \
150 ArmnnDriverImpl.cpp \
151 DriverOptions.cpp \
152 ArmnnDevice.cpp \
153 ArmnnPreparedModel.cpp \
154 ModelToINetworkConverter.cpp \
155 RequestThread.cpp \
156 Utils.cpp \
157 ConversionUtils.cpp
158
159LOCAL_STATIC_LIBRARIES := \
160 libneuralnetworks_common \
161 libboost_log \
162 libboost_program_options \
163 libboost_system \
164 libboost_thread \
165 libboost_filesystem \
166 arm_compute_library
167
168LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
169
170LOCAL_SHARED_LIBRARIES := \
171 libbase \
172 libhidlbase \
173 libhidltransport \
174 libhidlmemory \
175 liblog \
176 libutils \
177 android.hardware.neuralnetworks@1.0 \
178 android.hidl.allocator@1.0 \
179 android.hidl.memory@1.0
180
181ifeq ($(P_OR_LATER),1)
182# Required to build the 1.0 version of the NN Driver on Android P and later versions,
183# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
184LOCAL_SHARED_LIBRARIES+= \
185 android.hardware.neuralnetworks@1.1
186endif # PLATFORM_VERSION == 9
187
188ifeq ($(Q_OR_LATER),1)
189LOCAL_SHARED_LIBRARIES+= \
190 libnativewindow \
191 libui \
192 libfmq \
193 libcutils \
194 android.hardware.neuralnetworks@1.2
Kevin Mayec1e5b82020-02-26 17:00:39 +0000195endif # Q or later
196
197ifeq ($(R_OR_LATER),1)
198LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100199 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000200 android.hardware.neuralnetworks@1.3
201endif # R or later
Mike Kelly0e415132020-02-11 11:21:25 +0000202
alered01dbae2472020-04-07 12:31:10 +0100203ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000204LOCAL_SHARED_LIBRARIES+= \
205 libOpenCL
206endif
207
208include $(BUILD_STATIC_LIBRARY)
209
210ifeq ($(P_OR_LATER),1)
211# The following target is available starting from Android P
212
213#######################
214# libarmnn-driver@1.1 #
215#######################
216include $(CLEAR_VARS)
217
218LOCAL_MODULE := libarmnn-driver@1.1
219ifeq ($(Q_OR_LATER),1)
220# "eng" is deprecated in Android Q
221LOCAL_MODULE_TAGS := optional
222else
223LOCAL_MODULE_TAGS := eng optional
224endif
225#PRODUCT_PACKAGES_ENG := libarmnn-driver@1.1
226LOCAL_ARM_MODE := arm
227LOCAL_PROPRIETARY_MODULE := true
228# Mark source files as dependent on Android.mk
229LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
230
231LOCAL_C_INCLUDES := \
232 $(ARMNN_HEADER_PATH) \
233 $(ARMNN_UTILS_HEADER_PATH) \
234 $(OPENCL_HEADER_PATH) \
235 $(NN_HEADER_PATH)
236
237LOCAL_CFLAGS := \
238 -std=$(CPP_VERSION) \
239 -fexceptions \
240 -Werror \
241 -Wno-format-security \
Mike Kelly0e415132020-02-11 11:21:25 +0000242 -DARMNN_ANDROID_NN_V1_1
243
244ifeq ($(ARMNN_DRIVER_DEBUG),1)
245LOCAL_CFLAGS+= \
246 -UNDEBUG
247endif # ARMNN_DRIVER_DEBUG == 1
248
249ifeq ($(Q_OR_LATER),1)
250LOCAL_CFLAGS += \
251 -DBOOST_NO_AUTO_PTR
252endif # PLATFORM_VERSION == Q or later
253
Kevin Mayec1e5b82020-02-26 17:00:39 +0000254# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100255ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000256LOCAL_CFLAGS+= \
257 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100258endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000259
Mike Kelly0e415132020-02-11 11:21:25 +0000260ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
261LOCAL_CFLAGS += \
262 -DARMCOMPUTECL_ENABLED
263endif # ARMNN_COMPUTE_CL_ENABLED == 1
264
265ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
266LOCAL_CFLAGS += \
267 -DARMCOMPUTENEON_ENABLED
268endif # ARMNN_COMPUTE_NEON_ENABLED == 1
269
270ifeq ($(ARMNN_REF_ENABLED),1)
271LOCAL_CFLAGS += \
272 -DARMNNREF_ENABLED
273endif # ARMNN_REF_ENABLED == 1
274
275LOCAL_SRC_FILES := \
276 1.0/ArmnnDriverImpl.cpp \
277 1.0/HalPolicy.cpp \
278 1.1/ArmnnDriverImpl.cpp \
279 1.1/HalPolicy.cpp \
280 ArmnnDriverImpl.cpp \
281 DriverOptions.cpp \
282 ArmnnDevice.cpp \
283 ArmnnPreparedModel.cpp \
284 ModelToINetworkConverter.cpp \
285 RequestThread.cpp \
286 Utils.cpp \
287 ConversionUtils.cpp
288
289LOCAL_STATIC_LIBRARIES := \
290 libneuralnetworks_common \
291 libboost_log \
292 libboost_program_options \
293 libboost_system \
294 libboost_thread \
295 libboost_filesystem \
296 arm_compute_library
297
298LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
299
300LOCAL_SHARED_LIBRARIES := \
301 libbase \
302 libhidlbase \
303 libhidltransport \
304 libhidlmemory \
305 liblog \
306 libutils \
307 android.hardware.neuralnetworks@1.0 \
308 android.hardware.neuralnetworks@1.1 \
309 android.hidl.allocator@1.0 \
310 android.hidl.memory@1.0
311
312ifeq ($(Q_OR_LATER),1)
313LOCAL_SHARED_LIBRARIES+= \
314 libnativewindow \
315 libui \
316 libfmq \
317 libcutils \
318 android.hardware.neuralnetworks@1.2
319endif # PLATFORM_VERSION == Q
320
Kevin Mayec1e5b82020-02-26 17:00:39 +0000321ifeq ($(R_OR_LATER),1)
322LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100323 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000324 android.hardware.neuralnetworks@1.3
325endif # R or later
326
alered017c395b22020-04-03 15:37:24 +0100327ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000328LOCAL_SHARED_LIBRARIES+= \
329 libOpenCL
330endif
331
332include $(BUILD_STATIC_LIBRARY)
333
334endif # PLATFORM_VERSION == 9
335
336ifeq ($(Q_OR_LATER),1)
337# The following target is available starting from Android Q
338
339#######################
340# libarmnn-driver@1.2 #
341#######################
342include $(CLEAR_VARS)
343
344LOCAL_MODULE := libarmnn-driver@1.2
345LOCAL_MODULE_TAGS := optional
346LOCAL_ARM_MODE := arm
347LOCAL_PROPRIETARY_MODULE := true
348# Mark source files as dependent on Android.mk
349LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
350
351LOCAL_C_INCLUDES := \
352 $(ARMNN_HEADER_PATH) \
353 $(ARMNN_UTILS_HEADER_PATH) \
354 $(OPENCL_HEADER_PATH) \
355 $(NN_HEADER_PATH)
356
357LOCAL_CFLAGS := \
358 -std=$(CPP_VERSION) \
359 -fexceptions \
360 -Werror \
361 -Wno-format-security \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000362 -DBOOST_NO_AUTO_PTR \
Mike Kelly0e415132020-02-11 11:21:25 +0000363 -DARMNN_ANDROID_NN_V1_2
364
365ifeq ($(ARMNN_DRIVER_DEBUG),1)
366LOCAL_CFLAGS+= \
367 -UNDEBUG
368endif # ARMNN_DRIVER_DEBUG == 1
369
Kevin Mayec1e5b82020-02-26 17:00:39 +0000370# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100371ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000372LOCAL_CFLAGS+= \
373 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100374endif
Mike Kelly0e415132020-02-11 11:21:25 +0000375
376ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
377LOCAL_CFLAGS += \
378 -DARMCOMPUTECL_ENABLED
379endif # ARMNN_COMPUTE_CL_ENABLED == 1
380
381ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
382LOCAL_CFLAGS += \
383 -DARMCOMPUTENEON_ENABLED
384endif # ARMNN_COMPUTE_NEON_ENABLED == 1
385
386ifeq ($(ARMNN_REF_ENABLED),1)
387LOCAL_CFLAGS += \
388 -DARMNNREF_ENABLED
389endif # ARMNN_REF_ENABLED == 1
390
391LOCAL_SRC_FILES := \
392 1.0/ArmnnDriverImpl.cpp \
393 1.0/HalPolicy.cpp \
394 1.1/ArmnnDriverImpl.cpp \
395 1.1/HalPolicy.cpp \
396 1.2/ArmnnDriverImpl.cpp \
397 1.2/HalPolicy.cpp \
398 ArmnnDevice.cpp \
399 ArmnnDriverImpl.cpp \
400 ArmnnPreparedModel.cpp \
401 ArmnnPreparedModel_1_2.cpp \
402 ConversionUtils.cpp \
403 DriverOptions.cpp \
404 ModelToINetworkConverter.cpp \
405 RequestThread.cpp \
406 Utils.cpp
407
408LOCAL_STATIC_LIBRARIES := \
409 libneuralnetworks_common \
410 libboost_log \
411 libboost_program_options \
412 libboost_system \
413 libboost_thread \
414 libboost_filesystem \
415 arm_compute_library
416
417LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
418
419LOCAL_SHARED_LIBRARIES := \
420 libbase \
421 libhidlbase \
422 libhidltransport \
423 libhidlmemory \
424 liblog \
425 libutils \
426 libnativewindow \
427 libui \
428 libfmq \
429 libcutils \
430 android.hidl.allocator@1.0 \
431 android.hidl.memory@1.0 \
432 android.hardware.neuralnetworks@1.0 \
433 android.hardware.neuralnetworks@1.1 \
434 android.hardware.neuralnetworks@1.2
435
Kevin Mayec1e5b82020-02-26 17:00:39 +0000436ifeq ($(R_OR_LATER),1)
437LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100438 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000439 android.hardware.neuralnetworks@1.3
440endif # R or later
441
alered017c395b22020-04-03 15:37:24 +0100442ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000443LOCAL_SHARED_LIBRARIES+= \
444 libOpenCL
445endif
446
447include $(BUILD_STATIC_LIBRARY)
448
449endif # PLATFORM_VERSION == Q
450
Kevin May42477c12020-03-26 13:34:14 +0000451ifeq ($(R_OR_LATER),1)
452# The following target is available starting from Android R
453
454#######################
455# libarmnn-driver@1.3 #
456#######################
457include $(CLEAR_VARS)
458
459LOCAL_MODULE := libarmnn-driver@1.3
460LOCAL_MODULE_TAGS := optional
461LOCAL_ARM_MODE := arm
462LOCAL_PROPRIETARY_MODULE := true
463# Mark source files as dependent on Android.mk
464LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
465
466LOCAL_C_INCLUDES := \
467 $(ARMNN_HEADER_PATH) \
468 $(ARMNN_UTILS_HEADER_PATH) \
469 $(OPENCL_HEADER_PATH) \
470 $(NN_HEADER_PATH)
471
472LOCAL_CFLAGS := \
473 -std=$(CPP_VERSION) \
474 -fexceptions \
475 -Werror \
476 -Wno-format-security \
477 -DBOOST_NO_AUTO_PTR \
478 -DARMNN_ANDROID_NN_V1_3 \
479 -DARMNN_ANDROID_R
480
481ifeq ($(ARMNN_DRIVER_DEBUG),1)
482LOCAL_CFLAGS+= \
483 -UNDEBUG
484endif # ARMNN_DRIVER_DEBUG == 1
485
486ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
487LOCAL_CFLAGS += \
488 -DARMCOMPUTECL_ENABLED
489endif # ARMNN_COMPUTE_CL_ENABLED == 1
490
491ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
492LOCAL_CFLAGS += \
493 -DARMCOMPUTENEON_ENABLED
494endif # ARMNN_COMPUTE_NEON_ENABLED == 1
495
496ifeq ($(ARMNN_REF_ENABLED),1)
497LOCAL_CFLAGS += \
498 -DARMNNREF_ENABLED
499endif # ARMNN_REF_ENABLED == 1
500
Narumol Prangnawaratcad4e912020-06-02 12:07:43 +0100501LOCAL_CFLAGS += \
502 -DRETIRE_RATE=$(RETIRE_RATE)
503
Kevin May42477c12020-03-26 13:34:14 +0000504LOCAL_SRC_FILES := \
505 1.0/ArmnnDriverImpl.cpp \
506 1.0/HalPolicy.cpp \
507 1.1/ArmnnDriverImpl.cpp \
508 1.1/HalPolicy.cpp \
509 1.2/ArmnnDriverImpl.cpp \
510 1.2/HalPolicy.cpp \
511 1.3/ArmnnDriverImpl.cpp \
512 1.3/HalPolicy.cpp \
513 ArmnnDevice.cpp \
514 ArmnnDriverImpl.cpp \
515 ArmnnPreparedModel.cpp \
516 ArmnnPreparedModel_1_2.cpp \
517 ArmnnPreparedModel_1_3.cpp \
518 ConversionUtils.cpp \
519 DriverOptions.cpp \
520 ModelToINetworkConverter.cpp \
521 RequestThread.cpp \
Narumol Prangnawaratcad4e912020-06-02 12:07:43 +0100522 RequestThread_1_3.cpp \
Kevin May42477c12020-03-26 13:34:14 +0000523 Utils.cpp
524
525LOCAL_STATIC_LIBRARIES := \
526 libneuralnetworks_common \
527 libboost_log \
528 libboost_program_options \
529 libboost_system \
530 libboost_thread \
531 libboost_filesystem \
532 arm_compute_library
533
534LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
535
536LOCAL_SHARED_LIBRARIES := \
537 libbase \
538 libhidlbase \
539 libhidltransport \
540 libhidlmemory \
541 liblog \
542 libutils \
543 libnativewindow \
544 libui \
545 libfmq \
546 libcutils \
547 android.hidl.allocator@1.0 \
548 android.hidl.memory@1.0 \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100549 libsync \
Kevin May42477c12020-03-26 13:34:14 +0000550 android.hardware.neuralnetworks@1.0 \
551 android.hardware.neuralnetworks@1.1 \
552 android.hardware.neuralnetworks@1.2 \
553 android.hardware.neuralnetworks@1.3
554
alered017c395b22020-04-03 15:37:24 +0100555ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Kevin May42477c12020-03-26 13:34:14 +0000556LOCAL_SHARED_LIBRARIES+= \
557 libOpenCL
558endif
559
560include $(BUILD_STATIC_LIBRARY)
561
562endif # PLATFORM_VERSION == R
563
Mike Kelly0e415132020-02-11 11:21:25 +0000564#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100565# android.hardware.neuralnetworks@1.0-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000566#####################################################
567include $(CLEAR_VARS)
568
Kevin Mayabc95d02020-05-15 15:34:03 +0100569LOCAL_MODULE := android.hardware.neuralnetworks@1.0-service-armnn
570LOCAL_INIT_RC := android.hardware.neuralnetworks@1.0-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000571ifeq ($(Q_OR_LATER),1)
572# "eng" is deprecated in Android Q
573LOCAL_MODULE_TAGS := optional
574else
575LOCAL_MODULE_TAGS := eng optional
576endif
577LOCAL_ARM_MODE := arm
578LOCAL_MODULE_RELATIVE_PATH := hw
579LOCAL_PROPRIETARY_MODULE := true
580# Mark source files as dependent on Android.mk
581LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
582
583LOCAL_C_INCLUDES := \
584 $(ARMNN_HEADER_PATH) \
585 $(NN_HEADER_PATH)
586
587LOCAL_CFLAGS := \
588 -std=$(CPP_VERSION) \
589 -fexceptions
590
591ifeq ($(ARMNN_DRIVER_DEBUG),1)
592LOCAL_CFLAGS += \
593 -UNDEBUG
594endif # ARMNN_DRIVER_DEBUG == 1
595
596ifeq ($(Q_OR_LATER),1)
597LOCAL_CFLAGS += \
598 -DBOOST_NO_AUTO_PTR
599endif # PLATFORM_VERSION == Q or later
600
Kevin Mayec1e5b82020-02-26 17:00:39 +0000601# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100602ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000603LOCAL_CFLAGS+= \
604 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100605endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000606
Mike Kelly0e415132020-02-11 11:21:25 +0000607LOCAL_SRC_FILES := \
608 service.cpp
609
610LOCAL_STATIC_LIBRARIES := \
611 libneuralnetworks_common \
612 libboost_log \
613 libboost_program_options \
614 libboost_system \
615 libboost_thread \
616 libboost_filesystem \
617 arm_compute_library
618
619LOCAL_WHOLE_STATIC_LIBRARIES := \
620 libarmnn-driver@1.0
621
622LOCAL_SHARED_LIBRARIES := \
623 libbase \
624 libhidlbase \
625 libhidltransport \
626 libhidlmemory \
627 libdl \
628 libhardware \
629 liblog \
630 libtextclassifier_hash \
631 libutils \
632 android.hardware.neuralnetworks@1.0 \
633 android.hidl.allocator@1.0 \
634 android.hidl.memory@1.0
635
636ifeq ($(P_OR_LATER),1)
637# Required to build the 1.0 version of the NN Driver on Android P and later versions,
638# as the 1.0 version of the NN API needs the 1.1 HAL headers to be included regardless.
639LOCAL_SHARED_LIBRARIES+= \
640 android.hardware.neuralnetworks@1.1
641endif # PLATFORM_VERSION == 9
Kevin Mayec1e5b82020-02-26 17:00:39 +0000642
Mike Kelly0e415132020-02-11 11:21:25 +0000643ifeq ($(Q_OR_LATER),1)
644LOCAL_SHARED_LIBRARIES+= \
645 libnativewindow \
646 libui \
647 libfmq \
648 libcutils \
649 android.hardware.neuralnetworks@1.2
650endif # PLATFORM_VERSION == Q
651
Kevin Mayec1e5b82020-02-26 17:00:39 +0000652ifeq ($(R_OR_LATER),1)
653LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100654 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000655 android.hardware.neuralnetworks@1.3
656endif # R or later
657
alered017c395b22020-04-03 15:37:24 +0100658ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000659LOCAL_SHARED_LIBRARIES+= \
660 libOpenCL
661endif
662
663include $(BUILD_EXECUTABLE)
664
665ifeq ($(P_OR_LATER),1)
666# The following target is available starting from Android P
667
668#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100669# android.hardware.neuralnetworks@1.1-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000670#####################################################
671include $(CLEAR_VARS)
672
Kevin Mayabc95d02020-05-15 15:34:03 +0100673LOCAL_MODULE := android.hardware.neuralnetworks@1.1-service-armnn
674LOCAL_INIT_RC := android.hardware.neuralnetworks@1.1-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000675ifeq ($(Q_OR_LATER),1)
676# "eng" is deprecated in Android Q
677LOCAL_MODULE_TAGS := optional
678else
679LOCAL_MODULE_TAGS := eng optional
680endif
681LOCAL_ARM_MODE := arm
682LOCAL_MODULE_RELATIVE_PATH := hw
683LOCAL_PROPRIETARY_MODULE := true
684# Mark source files as dependent on Android.mk
685LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
686
687LOCAL_C_INCLUDES := \
688 $(ARMNN_HEADER_PATH) \
689 $(NN_HEADER_PATH)
690
691LOCAL_CFLAGS := \
692 -std=$(CPP_VERSION) \
693 -fexceptions \
694 -DARMNN_ANDROID_NN_V1_1
695
696ifeq ($(ARMNN_DRIVER_DEBUG),1)
697LOCAL_CFLAGS += \
698 -UNDEBUG
699endif # ARMNN_DRIVER_DEBUG == 1
700
701ifeq ($(Q_OR_LATER),1)
702LOCAL_CFLAGS += \
703 -DBOOST_NO_AUTO_PTR
704endif # PLATFORM_VERSION == Q or later
705
Kevin Mayec1e5b82020-02-26 17:00:39 +0000706# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100707ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000708LOCAL_CFLAGS+= \
709 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100710endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000711
Mike Kelly0e415132020-02-11 11:21:25 +0000712LOCAL_SRC_FILES := \
713 service.cpp
714
715LOCAL_STATIC_LIBRARIES := \
716 libneuralnetworks_common \
717 libboost_log \
718 libboost_program_options \
719 libboost_system \
720 libboost_thread \
721 libboost_filesystem \
722 arm_compute_library
723
724LOCAL_WHOLE_STATIC_LIBRARIES := \
725 libarmnn-driver@1.1
726
727LOCAL_SHARED_LIBRARIES := \
728 libbase \
729 libhidlbase \
730 libhidltransport \
731 libhidlmemory \
732 libdl \
733 libhardware \
734 liblog \
735 libtextclassifier_hash \
736 libutils \
737 android.hardware.neuralnetworks@1.0 \
738 android.hardware.neuralnetworks@1.1 \
739 android.hidl.allocator@1.0 \
740 android.hidl.memory@1.0
741
742ifeq ($(Q_OR_LATER),1)
743LOCAL_SHARED_LIBRARIES+= \
744 libnativewindow \
745 libui \
746 libfmq \
747 libcutils \
748 android.hardware.neuralnetworks@1.2
749endif # PLATFORM_VERSION == Q
750
Kevin Mayec1e5b82020-02-26 17:00:39 +0000751ifeq ($(R_OR_LATER),1)
752LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100753 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000754 android.hardware.neuralnetworks@1.3
755endif # PLATFORM_VERSION == R
756
alered017c395b22020-04-03 15:37:24 +0100757ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000758LOCAL_SHARED_LIBRARIES+= \
759 libOpenCL
760endif
761
762include $(BUILD_EXECUTABLE)
763
764endif # PLATFORM_VERSION == 9
765
766ifeq ($(Q_OR_LATER),1)
767# The following target is available starting from Android Q
768
769#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100770# android.hardware.neuralnetworks@1.2-service-armnn #
Mike Kelly0e415132020-02-11 11:21:25 +0000771#####################################################
772include $(CLEAR_VARS)
773
Kevin Mayabc95d02020-05-15 15:34:03 +0100774LOCAL_MODULE := android.hardware.neuralnetworks@1.2-service-armnn
775LOCAL_INIT_RC := android.hardware.neuralnetworks@1.2-service-armnn.rc
Mike Kelly0e415132020-02-11 11:21:25 +0000776LOCAL_MODULE_TAGS := optional
777LOCAL_ARM_MODE := arm
778LOCAL_MODULE_RELATIVE_PATH := hw
779LOCAL_PROPRIETARY_MODULE := true
780# Mark source files as dependent on Android.mk
781LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
782
783LOCAL_C_INCLUDES := \
784 $(ARMNN_HEADER_PATH) \
785 $(NN_HEADER_PATH)
786
787LOCAL_CFLAGS := \
788 -std=$(CPP_VERSION) \
789 -fexceptions \
790 -DARMNN_ANDROID_NN_V1_2 \
791 -DBOOST_NO_AUTO_PTR
792
793ifeq ($(ARMNN_DRIVER_DEBUG),1)
794LOCAL_CFLAGS += \
795 -UNDEBUG
796endif # ARMNN_DRIVER_DEBUG == 1
797
Kevin Mayec1e5b82020-02-26 17:00:39 +0000798# Required to build with the changes made to the Android ML framework specific to Android R
Kevin May157f8f42020-06-02 14:50:01 +0100799ifeq ($(ANDROID_R),1)
Kevin Mayec1e5b82020-02-26 17:00:39 +0000800LOCAL_CFLAGS+= \
801 -DARMNN_ANDROID_R
Kevin May157f8f42020-06-02 14:50:01 +0100802endif
Kevin Mayec1e5b82020-02-26 17:00:39 +0000803
Mike Kelly0e415132020-02-11 11:21:25 +0000804LOCAL_SRC_FILES := \
805 service.cpp
806
807LOCAL_STATIC_LIBRARIES := \
808 libneuralnetworks_common \
809 libboost_log \
810 libboost_program_options \
811 libboost_system \
812 libboost_thread \
813 libboost_filesystem \
814 arm_compute_library
815
816LOCAL_WHOLE_STATIC_LIBRARIES := \
817 libarmnn-driver@1.2
818
819LOCAL_SHARED_LIBRARIES := \
820 libbase \
821 libhidlbase \
822 libhidltransport \
823 libhidlmemory \
824 libdl \
825 libhardware \
826 liblog \
827 libtextclassifier_hash \
828 libutils \
829 libnativewindow \
830 libui \
831 libfmq \
832 libcutils \
833 android.hidl.allocator@1.0 \
834 android.hidl.memory@1.0 \
835 android.hardware.neuralnetworks@1.0 \
836 android.hardware.neuralnetworks@1.1 \
837 android.hardware.neuralnetworks@1.2
838
Kevin Mayec1e5b82020-02-26 17:00:39 +0000839ifeq ($(R_OR_LATER),1)
840LOCAL_SHARED_LIBRARIES+= \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100841 libsync \
Kevin Mayec1e5b82020-02-26 17:00:39 +0000842 android.hardware.neuralnetworks@1.3
843endif # R or later
844
alered017c395b22020-04-03 15:37:24 +0100845ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Mike Kelly0e415132020-02-11 11:21:25 +0000846LOCAL_SHARED_LIBRARIES+= \
847 libOpenCL
848endif
849
850include $(BUILD_EXECUTABLE)
851
852endif # PLATFORM_VERSION == Q
853
Kevin May42477c12020-03-26 13:34:14 +0000854ifeq ($(R_OR_LATER),1)
855# The following target is available starting from Android R
856
857#####################################################
Kevin Mayabc95d02020-05-15 15:34:03 +0100858# android.hardware.neuralnetworks@1.3-service-armnn #
Kevin May42477c12020-03-26 13:34:14 +0000859#####################################################
860include $(CLEAR_VARS)
861
Kevin Mayabc95d02020-05-15 15:34:03 +0100862LOCAL_MODULE := android.hardware.neuralnetworks@1.3-service-armnn
863LOCAL_INIT_RC := android.hardware.neuralnetworks@1.3-service-armnn.rc
Kevin May42477c12020-03-26 13:34:14 +0000864LOCAL_MODULE_TAGS := optional
865LOCAL_ARM_MODE := arm
866LOCAL_MODULE_RELATIVE_PATH := hw
867LOCAL_PROPRIETARY_MODULE := true
868# Mark source files as dependent on Android.mk
869LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
870
871LOCAL_C_INCLUDES := \
872 $(ARMNN_HEADER_PATH) \
873 $(NN_HEADER_PATH)
874
875LOCAL_CFLAGS := \
876 -std=$(CPP_VERSION) \
877 -fexceptions \
878 -DARMNN_ANDROID_NN_V1_3 \
879 -DBOOST_NO_AUTO_PTR \
880 -DARMNN_ANDROID_R
881
882ifeq ($(ARMNN_DRIVER_DEBUG),1)
883LOCAL_CFLAGS += \
884 -UNDEBUG
885endif # ARMNN_DRIVER_DEBUG == 1
886
887LOCAL_SRC_FILES := \
888 service.cpp
889
890LOCAL_STATIC_LIBRARIES := \
891 libneuralnetworks_common \
892 libboost_log \
893 libboost_program_options \
894 libboost_system \
895 libboost_thread \
896 libboost_filesystem \
897 arm_compute_library
898
899LOCAL_WHOLE_STATIC_LIBRARIES := \
900 libarmnn-driver@1.3
901
902LOCAL_SHARED_LIBRARIES := \
903 libbase \
904 libhidlbase \
905 libhidltransport \
906 libhidlmemory \
907 libdl \
908 libhardware \
909 liblog \
910 libtextclassifier_hash \
911 libutils \
912 libnativewindow \
913 libui \
914 libfmq \
915 libcutils \
Sadik Armagand7be72e2020-04-23 12:56:05 +0100916 libsync \
Kevin May42477c12020-03-26 13:34:14 +0000917 android.hidl.allocator@1.0 \
918 android.hidl.memory@1.0 \
919 android.hardware.neuralnetworks@1.0 \
920 android.hardware.neuralnetworks@1.1 \
921 android.hardware.neuralnetworks@1.2 \
922 android.hardware.neuralnetworks@1.3
923
alered017c395b22020-04-03 15:37:24 +0100924ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
Kevin May42477c12020-03-26 13:34:14 +0000925LOCAL_SHARED_LIBRARIES+= \
926 libOpenCL
927endif
928
929include $(BUILD_EXECUTABLE)
930
931endif # PLATFORM_VERSION == R
932
Mike Kelly0e415132020-02-11 11:21:25 +0000933##########################
934# armnn module and tests #
935##########################
936# Note we use ANDROID_NN_DRIVER_LOCAL_PATH rather than LOCAL_PATH because LOCAL_PATH will be overwritten
937# when including other .mk files that set it.
938include $(ANDROID_NN_DRIVER_LOCAL_PATH)/armnn/Android.mk
939include $(ANDROID_NN_DRIVER_LOCAL_PATH)/test/Android.mk