telsoa01 | 4fcda01 | 2018-03-09 14:13:49 +0000 | [diff] [blame] | 1 | # |
| 2 | # Copyright © 2017 ARM Ltd. All rights reserved. |
David Beck | ecb56cd | 2018-09-05 12:52:57 +0100 | [diff] [blame] | 3 | # SPDX-License-Identifier: MIT |
telsoa01 | 4fcda01 | 2018-03-09 14:13:49 +0000 | [diff] [blame] | 4 | # |
| 5 | |
| 6 | LOCAL_PATH := $(call my-dir) |
| 7 | |
| 8 | # Configure these paths if you move the source or Khronos headers |
| 9 | # |
surmeh01 | 3537c2c | 2018-05-18 16:31:43 +0100 | [diff] [blame] | 10 | OPENCL_HEADER_PATH := $(LOCAL_PATH)/../clframework/include |
telsoa01 | 4fcda01 | 2018-03-09 14:13:49 +0000 | [diff] [blame] | 11 | NN_HEADER_PATH := $(LOCAL_PATH)/../../../../frameworks/ml/nn/runtime/include |
| 12 | ARMNN_HEADER_PATH := $(LOCAL_PATH)/include |
David Beck | 10b4dfd | 2018-09-19 12:03:20 +0100 | [diff] [blame] | 13 | ARMNN_MAIN_HEADER_PATH := $(LOCAL_PATH)/src |
telsoa01 | 4fcda01 | 2018-03-09 14:13:49 +0000 | [diff] [blame] | 14 | ARMNN_SOURCE_HEADER_PATH := $(LOCAL_PATH)/src/armnn |
surmeh01 | 4c7098b | 2018-07-05 14:03:08 +0100 | [diff] [blame] | 15 | ARMNN_SOURCE_UTILS_HEADER_PATH := $(LOCAL_PATH)/src/armnnUtils |
| 16 | |
David Beck | b30c533 | 2018-09-28 16:51:01 +0100 | [diff] [blame] | 17 | # find the common.mk and backend.mk files in the backend source folders |
| 18 | ARMNN_BACKEND_COMMON_MAKEFILE_LOCAL_PATHS := $(wildcard $(LOCAL_PATH)/src/backends/*/common.mk) \ |
| 19 | $(LOCAL_PATH)/src/backends/common.mk |
| 20 | ARMNN_BACKEND_COMMON_MAKEFILE_PATHS := $(subst $(LOCAL_PATH),,$(ARMNN_BACKEND_COMMON_MAKEFILE_LOCAL_PATHS)) |
| 21 | ARMNN_BACKEND_COMMON_MAKEFILE_DIRS := $(subst /common.mk,,$(ARMNN_BACKEND_COMMON_MAKEFILE_PATHS)) |
| 22 | |
David Beck | 2ca4696 | 2018-09-21 15:48:23 +0100 | [diff] [blame] | 23 | ARMNN_BACKEND_MAKEFILE_LOCAL_PATHS := $(wildcard $(LOCAL_PATH)/src/backends/*/backend.mk) |
| 24 | ARMNN_BACKEND_MAKEFILE_PATHS := $(subst $(LOCAL_PATH),,$(ARMNN_BACKEND_MAKEFILE_LOCAL_PATHS)) |
| 25 | ARMNN_BACKEND_MAKEFILE_DIRS := $(subst /backend.mk,,$(ARMNN_BACKEND_MAKEFILE_PATHS)) |
| 26 | |
surmeh01 | 4c7098b | 2018-07-05 14:03:08 +0100 | [diff] [blame] | 27 | ############## |
| 28 | # libarmnn.a # |
| 29 | ############## |
| 30 | include $(CLEAR_VARS) |
| 31 | |
| 32 | LOCAL_MODULE := libarmnn |
| 33 | LOCAL_MODULE_TAGS := eng optional |
| 34 | LOCAL_ARM_MODE := arm |
| 35 | LOCAL_PROPRIETARY_MODULE := true |
| 36 | |
David Beck | b30c533 | 2018-09-28 16:51:01 +0100 | [diff] [blame] | 37 | # placeholder to hold all backend source files, common and specific to the backends |
David Beck | 2ca4696 | 2018-09-21 15:48:23 +0100 | [diff] [blame] | 38 | ARMNN_BACKEND_SOURCES := |
| 39 | |
| 40 | # |
David Beck | b30c533 | 2018-09-28 16:51:01 +0100 | [diff] [blame] | 41 | # iterate through the backend common and specific include paths, include them into the |
| 42 | # current makefile and append the sources held by the COMMON_SOURCES and BACKEND_SOURCES variable |
| 43 | # (included from the given makefile) to the ARMNN_BACKEND_SOURCES list |
David Beck | 2ca4696 | 2018-09-21 15:48:23 +0100 | [diff] [blame] | 44 | # |
David Beck | b30c533 | 2018-09-28 16:51:01 +0100 | [diff] [blame] | 45 | $(foreach mkPath,$(ARMNN_BACKEND_COMMON_MAKEFILE_DIRS),\ |
| 46 | $(eval include $(LOCAL_PATH)/$(mkPath)/common.mk)\ |
| 47 | $(eval ARMNN_BACKEND_SOURCES := $(ARMNN_BACKEND_SOURCES) $(patsubst %,$(mkPath)/%,$(COMMON_SOURCES)))) |
| 48 | |
David Beck | 2ca4696 | 2018-09-21 15:48:23 +0100 | [diff] [blame] | 49 | $(foreach mkPath,$(ARMNN_BACKEND_MAKEFILE_DIRS),\ |
| 50 | $(eval include $(LOCAL_PATH)/$(mkPath)/backend.mk)\ |
| 51 | $(eval ARMNN_BACKEND_SOURCES := $(ARMNN_BACKEND_SOURCES) $(patsubst %,$(mkPath)/%,$(BACKEND_SOURCES)))) |
| 52 | |
| 53 | # Mark source files as dependent on Android.mk and backend makefiles |
| 54 | LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk \ |
| 55 | $(ARMNN_BACKEND_MAKEFILE_LOCAL_PATHS) |
surmeh01 | 4c7098b | 2018-07-05 14:03:08 +0100 | [diff] [blame] | 56 | |
| 57 | LOCAL_EXPORT_C_INCLUDES := \ |
David Beck | 10b4dfd | 2018-09-19 12:03:20 +0100 | [diff] [blame] | 58 | $(ARMNN_MAIN_HEADER_PATH) \ |
surmeh01 | 4c7098b | 2018-07-05 14:03:08 +0100 | [diff] [blame] | 59 | $(ARMNN_SOURCE_HEADER_PATH) \ |
| 60 | $(ARMNN_SOURCE_UTILS_HEADER_PATH) |
| 61 | |
| 62 | LOCAL_C_INCLUDES := \ |
telsoa01 | c577f2c | 2018-08-31 09:22:23 +0100 | [diff] [blame] | 63 | $(OPENCL_HEADER_PATH) \ |
| 64 | $(NN_HEADER_PATH) \ |
| 65 | $(ARMNN_HEADER_PATH) \ |
David Beck | 10b4dfd | 2018-09-19 12:03:20 +0100 | [diff] [blame] | 66 | $(ARMNN_MAIN_HEADER_PATH) \ |
telsoa01 | c577f2c | 2018-08-31 09:22:23 +0100 | [diff] [blame] | 67 | $(ARMNN_SOURCE_HEADER_PATH) \ |
| 68 | $(ARMNN_SOURCE_UTILS_HEADER_PATH) |
surmeh01 | 4c7098b | 2018-07-05 14:03:08 +0100 | [diff] [blame] | 69 | |
| 70 | LOCAL_SRC_FILES := \ |
David Beck | 2ca4696 | 2018-09-21 15:48:23 +0100 | [diff] [blame] | 71 | $(ARMNN_BACKEND_SOURCES) \ |
telsoa01 | c577f2c | 2018-08-31 09:22:23 +0100 | [diff] [blame] | 72 | src/armnnUtils/DotSerializer.cpp \ |
| 73 | src/armnnUtils/FloatingPointConverter.cpp \ |
surmeh01 | 4c7098b | 2018-07-05 14:03:08 +0100 | [diff] [blame] | 74 | src/armnnUtils/Logging.cpp \ |
| 75 | src/armnnUtils/Permute.cpp \ |
Sadik Armagan | 479045b | 2018-10-01 11:51:37 +0100 | [diff] [blame] | 76 | src/armnnUtils/ParserHelper.cpp \ |
surmeh01 | 4c7098b | 2018-07-05 14:03:08 +0100 | [diff] [blame] | 77 | src/armnn/layers/ActivationLayer.cpp \ |
| 78 | src/armnn/layers/AdditionLayer.cpp \ |
Les Bell | 033626d | 2018-09-03 16:24:52 +0100 | [diff] [blame] | 79 | src/armnn/layers/ArithmeticBaseLayer.cpp \ |
surmeh01 | 4c7098b | 2018-07-05 14:03:08 +0100 | [diff] [blame] | 80 | src/armnn/layers/BatchNormalizationLayer.cpp \ |
| 81 | src/armnn/layers/ConstantLayer.cpp \ |
| 82 | src/armnn/layers/Convolution2dLayer.cpp \ |
telsoa01 | c577f2c | 2018-08-31 09:22:23 +0100 | [diff] [blame] | 83 | src/armnn/layers/ConvertFp16ToFp32Layer.cpp \ |
| 84 | src/armnn/layers/ConvertFp32ToFp16Layer.cpp \ |
surmeh01 | 4c7098b | 2018-07-05 14:03:08 +0100 | [diff] [blame] | 85 | src/armnn/layers/DepthwiseConvolution2dLayer.cpp \ |
| 86 | src/armnn/layers/FakeQuantizationLayer.cpp \ |
| 87 | src/armnn/layers/FloorLayer.cpp \ |
| 88 | src/armnn/layers/FullyConnectedLayer.cpp \ |
| 89 | src/armnn/layers/InputLayer.cpp \ |
| 90 | src/armnn/layers/L2NormalizationLayer.cpp \ |
telsoa01 | c577f2c | 2018-08-31 09:22:23 +0100 | [diff] [blame] | 91 | src/armnn/layers/LstmLayer.cpp \ |
narpra01 | 32b9046 | 2018-09-13 11:07:48 +0100 | [diff] [blame] | 92 | src/armnn/layers/MeanLayer.cpp \ |
surmeh01 | 4c7098b | 2018-07-05 14:03:08 +0100 | [diff] [blame] | 93 | src/armnn/layers/MemCopyLayer.cpp \ |
| 94 | src/armnn/layers/MergerLayer.cpp \ |
| 95 | src/armnn/layers/MultiplicationLayer.cpp \ |
| 96 | src/armnn/layers/NormalizationLayer.cpp \ |
| 97 | src/armnn/layers/OutputLayer.cpp \ |
Mohamed Nour Abouelseoud | 5662c20 | 2018-09-24 13:30:09 +0100 | [diff] [blame] | 98 | src/armnn/layers/PadLayer.cpp \ |
surmeh01 | 4c7098b | 2018-07-05 14:03:08 +0100 | [diff] [blame] | 99 | src/armnn/layers/PermuteLayer.cpp \ |
| 100 | src/armnn/layers/Pooling2dLayer.cpp \ |
Francis Murtagh | e7a86a4 | 2018-08-29 12:42:10 +0100 | [diff] [blame] | 101 | src/armnn/layers/DivisionLayer.cpp \ |
David Beck | c2044fe | 2018-09-05 15:00:38 +0100 | [diff] [blame] | 102 | src/armnn/layers/SubtractionLayer.cpp \ |
surmeh01 | 4c7098b | 2018-07-05 14:03:08 +0100 | [diff] [blame] | 103 | src/armnn/layers/ReshapeLayer.cpp \ |
| 104 | src/armnn/layers/ResizeBilinearLayer.cpp \ |
| 105 | src/armnn/layers/SoftmaxLayer.cpp \ |
| 106 | src/armnn/layers/SplitterLayer.cpp \ |
| 107 | src/armnn/Descriptors.cpp \ |
| 108 | src/armnn/Exceptions.cpp \ |
| 109 | src/armnn/Graph.cpp \ |
| 110 | src/armnn/Optimizer.cpp \ |
| 111 | src/armnn/Runtime.cpp \ |
| 112 | src/armnn/SerializeLayerParameters.cpp \ |
| 113 | src/armnn/InternalTypes.cpp \ |
| 114 | src/armnn/Layer.cpp \ |
| 115 | src/armnn/LoadedNetwork.cpp \ |
| 116 | src/armnn/Network.cpp \ |
telsoa01 | c577f2c | 2018-08-31 09:22:23 +0100 | [diff] [blame] | 117 | src/armnn/WallClockTimer.cpp \ |
| 118 | src/armnn/ProfilingEvent.cpp \ |
surmeh01 | 4c7098b | 2018-07-05 14:03:08 +0100 | [diff] [blame] | 119 | src/armnn/Profiling.cpp \ |
telsoa01 | c577f2c | 2018-08-31 09:22:23 +0100 | [diff] [blame] | 120 | src/armnn/JsonPrinter.cpp \ |
surmeh01 | 4c7098b | 2018-07-05 14:03:08 +0100 | [diff] [blame] | 121 | src/armnn/Tensor.cpp \ |
| 122 | src/armnn/Utils.cpp \ |
| 123 | src/armnn/LayerSupport.cpp \ |
Aron Virginas-Tar | f9aeef0 | 2018-10-12 15:18:03 +0100 | [diff] [blame] | 124 | src/armnn/Observable.cpp |
surmeh01 | 4c7098b | 2018-07-05 14:03:08 +0100 | [diff] [blame] | 125 | |
| 126 | LOCAL_STATIC_LIBRARIES := \ |
telsoa01 | c577f2c | 2018-08-31 09:22:23 +0100 | [diff] [blame] | 127 | armnn-arm_compute \ |
surmeh01 | 4c7098b | 2018-07-05 14:03:08 +0100 | [diff] [blame] | 128 | libboost_log \ |
| 129 | libboost_system \ |
| 130 | libboost_thread |
| 131 | |
| 132 | LOCAL_SHARED_LIBRARIES := \ |
| 133 | liblog |
| 134 | |
| 135 | LOCAL_CFLAGS := \ |
| 136 | -std=c++14 \ |
| 137 | -fexceptions \ |
| 138 | -DARMCOMPUTECL_ENABLED \ |
| 139 | -DARMCOMPUTENEON_ENABLED \ |
| 140 | -Wno-unused-parameter \ |
| 141 | -frtti |
| 142 | |
| 143 | include $(BUILD_STATIC_LIBRARY) |
telsoa01 | 4fcda01 | 2018-03-09 14:13:49 +0000 | [diff] [blame] | 144 | |
telsoa01 | c577f2c | 2018-08-31 09:22:23 +0100 | [diff] [blame] | 145 | ############### |
| 146 | # armnn-tests # |
| 147 | ############### |
telsoa01 | 4fcda01 | 2018-03-09 14:13:49 +0000 | [diff] [blame] | 148 | include $(CLEAR_VARS) |
| 149 | |
telsoa01 | c577f2c | 2018-08-31 09:22:23 +0100 | [diff] [blame] | 150 | LOCAL_MODULE := armnn-tests |
| 151 | LOCAL_MODULE_TAGS := eng optional |
| 152 | LOCAL_ARM_MODE := arm |
| 153 | LOCAL_PROPRIETARY_MODULE := true |
| 154 | |
| 155 | # Mark source files as dependent on Android.mk |
| 156 | LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk |
| 157 | |
| 158 | LOCAL_C_INCLUDES := \ |
telsoa01 | 4fcda01 | 2018-03-09 14:13:49 +0000 | [diff] [blame] | 159 | $(OPENCL_HEADER_PATH) \ |
| 160 | $(NN_HEADER_PATH) \ |
| 161 | $(ARMNN_HEADER_PATH) \ |
David Beck | 10b4dfd | 2018-09-19 12:03:20 +0100 | [diff] [blame] | 162 | $(ARMNN_MAIN_HEADER_PATH) \ |
surmeh01 | 4c7098b | 2018-07-05 14:03:08 +0100 | [diff] [blame] | 163 | $(ARMNN_SOURCE_HEADER_PATH) \ |
| 164 | $(ARMNN_SOURCE_UTILS_HEADER_PATH) |
telsoa01 | 4fcda01 | 2018-03-09 14:13:49 +0000 | [diff] [blame] | 165 | |
| 166 | LOCAL_CFLAGS := \ |
| 167 | -std=c++14 \ |
| 168 | -fexceptions \ |
| 169 | -frtti \ |
| 170 | -isystem vendor/arm/android-nn-driver/boost_1_64_0 \ |
| 171 | -DARMCOMPUTECL_ENABLED \ |
| 172 | -DARMCOMPUTENEON_ENABLED |
| 173 | |
telsoa01 | c577f2c | 2018-08-31 09:22:23 +0100 | [diff] [blame] | 174 | LOCAL_SRC_FILES := \ |
telsoa01 | 4fcda01 | 2018-03-09 14:13:49 +0000 | [diff] [blame] | 175 | src/armnn/test/UnitTests.cpp \ |
surmeh01 | 3537c2c | 2018-05-18 16:31:43 +0100 | [diff] [blame] | 176 | src/armnn/test/EndToEndTest.cpp \ |
| 177 | src/armnn/test/UtilsTests.cpp \ |
| 178 | src/armnn/test/GraphTests.cpp \ |
| 179 | src/armnn/test/RuntimeTests.cpp \ |
| 180 | src/armnn/test/TensorTest.cpp \ |
telsoa01 | c577f2c | 2018-08-31 09:22:23 +0100 | [diff] [blame] | 181 | src/armnn/test/NetworkTests.cpp \ |
| 182 | src/armnn/test/InstrumentTests.cpp \ |
telsoa01 | c577f2c | 2018-08-31 09:22:23 +0100 | [diff] [blame] | 183 | src/armnn/test/ProfilingEventTest.cpp \ |
| 184 | src/armnn/test/ObservableTest.cpp \ |
David Beck | 5eec11d | 2018-10-04 15:43:17 +0100 | [diff] [blame] | 185 | src/armnn/test/OptionalTest.cpp \ |
David Beck | 10b4dfd | 2018-09-19 12:03:20 +0100 | [diff] [blame] | 186 | src/backends/test/WorkloadDataValidation.cpp \ |
| 187 | src/backends/test/TensorCopyUtils.cpp \ |
| 188 | src/backends/test/LayerTests.cpp \ |
Aron Virginas-Tar | 3b278e9 | 2018-10-12 13:00:55 +0100 | [diff] [blame] | 189 | src/backends/aclCommon/test/MemCopyTests.cpp \ |
arovir01 | 43095f3 | 2018-10-09 18:04:24 +0100 | [diff] [blame] | 190 | src/backends/cl/test/ClCreateWorkloadTests.cpp \ |
| 191 | src/backends/cl/test/ClLayerSupportTests.cpp \ |
| 192 | src/backends/cl/test/ClLayerTests.cpp \ |
Aron Virginas-Tar | 3b278e9 | 2018-10-12 13:00:55 +0100 | [diff] [blame] | 193 | src/backends/cl/test/ClMemCopyTests.cpp \ |
| 194 | src/backends/cl/test/Fp16SupportTest.cpp \ |
| 195 | src/backends/cl/test/OpenClTimerTest.cpp \ |
arovir01 | 43095f3 | 2018-10-09 18:04:24 +0100 | [diff] [blame] | 196 | src/backends/neon/test/NeonCreateWorkloadTests.cpp \ |
| 197 | src/backends/neon/test/NeonLayerSupportTests.cpp \ |
| 198 | src/backends/neon/test/NeonLayerTests.cpp \ |
Aron Virginas-Tar | 3b278e9 | 2018-10-12 13:00:55 +0100 | [diff] [blame] | 199 | src/backends/neon/test/NeonMemCopyTests.cpp \ |
| 200 | src/backends/neon/test/NeonTimerTest.cpp \ |
arovir01 | 43095f3 | 2018-10-09 18:04:24 +0100 | [diff] [blame] | 201 | src/backends/reference/test/RefCreateWorkloadTests.cpp \ |
| 202 | src/backends/reference/test/RefLayerSupportTests.cpp \ |
| 203 | src/backends/reference/test/RefLayerTests.cpp |
telsoa01 | 4fcda01 | 2018-03-09 14:13:49 +0000 | [diff] [blame] | 204 | |
| 205 | LOCAL_STATIC_LIBRARIES := \ |
| 206 | libneuralnetworks_common \ |
telsoa01 | 4fcda01 | 2018-03-09 14:13:49 +0000 | [diff] [blame] | 207 | libboost_log \ |
| 208 | libboost_system \ |
| 209 | libboost_unit_test_framework \ |
| 210 | libboost_thread \ |
| 211 | armnn-arm_compute |
| 212 | |
David Beck | 3cc9a62 | 2018-10-12 10:38:31 +0100 | [diff] [blame^] | 213 | LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn |
| 214 | |
telsoa01 | c577f2c | 2018-08-31 09:22:23 +0100 | [diff] [blame] | 215 | LOCAL_SHARED_LIBRARIES := \ |
telsoa01 | 4fcda01 | 2018-03-09 14:13:49 +0000 | [diff] [blame] | 216 | libbase \ |
| 217 | libhidlbase \ |
| 218 | libhidltransport \ |
| 219 | libhidlmemory \ |
| 220 | liblog \ |
| 221 | libutils \ |
| 222 | android.hardware.neuralnetworks@1.0 \ |
| 223 | android.hidl.allocator@1.0 \ |
| 224 | android.hidl.memory@1.0 \ |
| 225 | libOpenCL |
| 226 | |
telsoa01 | 4fcda01 | 2018-03-09 14:13:49 +0000 | [diff] [blame] | 227 | include $(BUILD_EXECUTABLE) |
| 228 | |