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 | 2ca4696 | 2018-09-21 15:48:23 +0100 | [diff] [blame^] | 17 | # find the backend.mk files in the backend source folders |
| 18 | ARMNN_BACKEND_MAKEFILE_LOCAL_PATHS := $(wildcard $(LOCAL_PATH)/src/backends/*/backend.mk) |
| 19 | ARMNN_BACKEND_MAKEFILE_PATHS := $(subst $(LOCAL_PATH),,$(ARMNN_BACKEND_MAKEFILE_LOCAL_PATHS)) |
| 20 | ARMNN_BACKEND_MAKEFILE_DIRS := $(subst /backend.mk,,$(ARMNN_BACKEND_MAKEFILE_PATHS)) |
| 21 | |
surmeh01 | 4c7098b | 2018-07-05 14:03:08 +0100 | [diff] [blame] | 22 | ############## |
| 23 | # libarmnn.a # |
| 24 | ############## |
| 25 | include $(CLEAR_VARS) |
| 26 | |
| 27 | LOCAL_MODULE := libarmnn |
| 28 | LOCAL_MODULE_TAGS := eng optional |
| 29 | LOCAL_ARM_MODE := arm |
| 30 | LOCAL_PROPRIETARY_MODULE := true |
| 31 | |
David Beck | 2ca4696 | 2018-09-21 15:48:23 +0100 | [diff] [blame^] | 32 | # placeholder to hold all backend source files |
| 33 | ARMNN_BACKEND_SOURCES := |
| 34 | |
| 35 | # |
| 36 | # iterate through the backend include paths, include them into the current makefile |
| 37 | # and append the sources held by the BACKEND_SOURCES variable to the ARMNN_BACKEND_SOURCES list |
| 38 | # |
| 39 | $(foreach mkPath,$(ARMNN_BACKEND_MAKEFILE_DIRS),\ |
| 40 | $(eval include $(LOCAL_PATH)/$(mkPath)/backend.mk)\ |
| 41 | $(eval ARMNN_BACKEND_SOURCES := $(ARMNN_BACKEND_SOURCES) $(patsubst %,$(mkPath)/%,$(BACKEND_SOURCES)))) |
| 42 | |
| 43 | # Mark source files as dependent on Android.mk and backend makefiles |
| 44 | LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk \ |
| 45 | $(ARMNN_BACKEND_MAKEFILE_LOCAL_PATHS) |
surmeh01 | 4c7098b | 2018-07-05 14:03:08 +0100 | [diff] [blame] | 46 | |
| 47 | LOCAL_EXPORT_C_INCLUDES := \ |
David Beck | 10b4dfd | 2018-09-19 12:03:20 +0100 | [diff] [blame] | 48 | $(ARMNN_MAIN_HEADER_PATH) \ |
surmeh01 | 4c7098b | 2018-07-05 14:03:08 +0100 | [diff] [blame] | 49 | $(ARMNN_SOURCE_HEADER_PATH) \ |
| 50 | $(ARMNN_SOURCE_UTILS_HEADER_PATH) |
| 51 | |
| 52 | LOCAL_C_INCLUDES := \ |
telsoa01 | c577f2c | 2018-08-31 09:22:23 +0100 | [diff] [blame] | 53 | $(OPENCL_HEADER_PATH) \ |
| 54 | $(NN_HEADER_PATH) \ |
| 55 | $(ARMNN_HEADER_PATH) \ |
David Beck | 10b4dfd | 2018-09-19 12:03:20 +0100 | [diff] [blame] | 56 | $(ARMNN_MAIN_HEADER_PATH) \ |
telsoa01 | c577f2c | 2018-08-31 09:22:23 +0100 | [diff] [blame] | 57 | $(ARMNN_SOURCE_HEADER_PATH) \ |
| 58 | $(ARMNN_SOURCE_UTILS_HEADER_PATH) |
surmeh01 | 4c7098b | 2018-07-05 14:03:08 +0100 | [diff] [blame] | 59 | |
| 60 | LOCAL_SRC_FILES := \ |
David Beck | 2ca4696 | 2018-09-21 15:48:23 +0100 | [diff] [blame^] | 61 | $(ARMNN_BACKEND_SOURCES) \ |
telsoa01 | c577f2c | 2018-08-31 09:22:23 +0100 | [diff] [blame] | 62 | src/armnnUtils/DotSerializer.cpp \ |
| 63 | src/armnnUtils/FloatingPointConverter.cpp \ |
surmeh01 | 4c7098b | 2018-07-05 14:03:08 +0100 | [diff] [blame] | 64 | src/armnnUtils/Logging.cpp \ |
| 65 | src/armnnUtils/Permute.cpp \ |
David Beck | 10b4dfd | 2018-09-19 12:03:20 +0100 | [diff] [blame] | 66 | src/backends/ArmComputeTensorUtils.cpp \ |
David Beck | 10b4dfd | 2018-09-19 12:03:20 +0100 | [diff] [blame] | 67 | src/backends/ClWorkloadFactory.cpp \ |
| 68 | src/backends/ClContextControl.cpp \ |
| 69 | src/backends/CpuTensorHandle.cpp \ |
| 70 | src/backends/RefWorkloadFactory.cpp \ |
David Beck | 10b4dfd | 2018-09-19 12:03:20 +0100 | [diff] [blame] | 71 | src/backends/MemCopyWorkload.cpp \ |
| 72 | src/backends/WorkloadData.cpp \ |
| 73 | src/backends/WorkloadFactory.cpp \ |
David Beck | 2ca4696 | 2018-09-21 15:48:23 +0100 | [diff] [blame^] | 74 | src/backends/OutputHandler.cpp \ |
| 75 | src/backends/StringMapping.cpp \ |
| 76 | src/backends/RefLayerSupport.cpp \ |
| 77 | src/backends/ClLayerSupport.cpp \ |
| 78 | src/backends/NeonLayerSupport.cpp \ |
| 79 | src/backends/NeonWorkloadUtils.cpp \ |
| 80 | src/backends/NeonWorkloadFactory.cpp \ |
surmeh01 | 4c7098b | 2018-07-05 14:03:08 +0100 | [diff] [blame] | 81 | src/armnn/layers/ActivationLayer.cpp \ |
| 82 | src/armnn/layers/AdditionLayer.cpp \ |
Les Bell | 033626d | 2018-09-03 16:24:52 +0100 | [diff] [blame] | 83 | src/armnn/layers/ArithmeticBaseLayer.cpp \ |
surmeh01 | 4c7098b | 2018-07-05 14:03:08 +0100 | [diff] [blame] | 84 | src/armnn/layers/BatchNormalizationLayer.cpp \ |
| 85 | src/armnn/layers/ConstantLayer.cpp \ |
| 86 | src/armnn/layers/Convolution2dLayer.cpp \ |
telsoa01 | c577f2c | 2018-08-31 09:22:23 +0100 | [diff] [blame] | 87 | src/armnn/layers/ConvertFp16ToFp32Layer.cpp \ |
| 88 | src/armnn/layers/ConvertFp32ToFp16Layer.cpp \ |
surmeh01 | 4c7098b | 2018-07-05 14:03:08 +0100 | [diff] [blame] | 89 | src/armnn/layers/DepthwiseConvolution2dLayer.cpp \ |
| 90 | src/armnn/layers/FakeQuantizationLayer.cpp \ |
| 91 | src/armnn/layers/FloorLayer.cpp \ |
| 92 | src/armnn/layers/FullyConnectedLayer.cpp \ |
| 93 | src/armnn/layers/InputLayer.cpp \ |
| 94 | src/armnn/layers/L2NormalizationLayer.cpp \ |
telsoa01 | c577f2c | 2018-08-31 09:22:23 +0100 | [diff] [blame] | 95 | src/armnn/layers/LstmLayer.cpp \ |
narpra01 | 32b9046 | 2018-09-13 11:07:48 +0100 | [diff] [blame] | 96 | src/armnn/layers/MeanLayer.cpp \ |
surmeh01 | 4c7098b | 2018-07-05 14:03:08 +0100 | [diff] [blame] | 97 | src/armnn/layers/MemCopyLayer.cpp \ |
| 98 | src/armnn/layers/MergerLayer.cpp \ |
| 99 | src/armnn/layers/MultiplicationLayer.cpp \ |
| 100 | src/armnn/layers/NormalizationLayer.cpp \ |
| 101 | src/armnn/layers/OutputLayer.cpp \ |
| 102 | src/armnn/layers/PermuteLayer.cpp \ |
| 103 | src/armnn/layers/Pooling2dLayer.cpp \ |
Francis Murtagh | e7a86a4 | 2018-08-29 12:42:10 +0100 | [diff] [blame] | 104 | src/armnn/layers/DivisionLayer.cpp \ |
David Beck | c2044fe | 2018-09-05 15:00:38 +0100 | [diff] [blame] | 105 | src/armnn/layers/SubtractionLayer.cpp \ |
surmeh01 | 4c7098b | 2018-07-05 14:03:08 +0100 | [diff] [blame] | 106 | src/armnn/layers/ReshapeLayer.cpp \ |
| 107 | src/armnn/layers/ResizeBilinearLayer.cpp \ |
| 108 | src/armnn/layers/SoftmaxLayer.cpp \ |
| 109 | src/armnn/layers/SplitterLayer.cpp \ |
| 110 | src/armnn/Descriptors.cpp \ |
| 111 | src/armnn/Exceptions.cpp \ |
| 112 | src/armnn/Graph.cpp \ |
| 113 | src/armnn/Optimizer.cpp \ |
| 114 | src/armnn/Runtime.cpp \ |
| 115 | src/armnn/SerializeLayerParameters.cpp \ |
| 116 | src/armnn/InternalTypes.cpp \ |
| 117 | src/armnn/Layer.cpp \ |
| 118 | src/armnn/LoadedNetwork.cpp \ |
telsoa01 | c577f2c | 2018-08-31 09:22:23 +0100 | [diff] [blame] | 119 | src/armnn/NeonInterceptorScheduler.cpp \ |
| 120 | src/armnn/NeonTimer.cpp \ |
surmeh01 | 4c7098b | 2018-07-05 14:03:08 +0100 | [diff] [blame] | 121 | src/armnn/Network.cpp \ |
telsoa01 | c577f2c | 2018-08-31 09:22:23 +0100 | [diff] [blame] | 122 | src/armnn/OpenClTimer.cpp \ |
| 123 | src/armnn/WallClockTimer.cpp \ |
| 124 | src/armnn/ProfilingEvent.cpp \ |
surmeh01 | 4c7098b | 2018-07-05 14:03:08 +0100 | [diff] [blame] | 125 | src/armnn/Profiling.cpp \ |
telsoa01 | c577f2c | 2018-08-31 09:22:23 +0100 | [diff] [blame] | 126 | src/armnn/JsonPrinter.cpp \ |
surmeh01 | 4c7098b | 2018-07-05 14:03:08 +0100 | [diff] [blame] | 127 | src/armnn/Tensor.cpp \ |
| 128 | src/armnn/Utils.cpp \ |
| 129 | src/armnn/LayerSupport.cpp \ |
telsoa01 | c577f2c | 2018-08-31 09:22:23 +0100 | [diff] [blame] | 130 | src/armnn/Observable.cpp \ |
telsoa01 | c577f2c | 2018-08-31 09:22:23 +0100 | [diff] [blame] | 131 | src/armnn/memory/BaseMemoryManager.cpp \ |
| 132 | src/armnn/memory/BlobLifetimeManager.cpp \ |
| 133 | src/armnn/memory/BlobMemoryPool.cpp \ |
| 134 | src/armnn/memory/OffsetLifetimeManager.cpp \ |
| 135 | src/armnn/memory/OffsetMemoryPool.cpp \ |
| 136 | src/armnn/memory/PoolManager.cpp |
surmeh01 | 4c7098b | 2018-07-05 14:03:08 +0100 | [diff] [blame] | 137 | |
| 138 | LOCAL_STATIC_LIBRARIES := \ |
telsoa01 | c577f2c | 2018-08-31 09:22:23 +0100 | [diff] [blame] | 139 | armnn-arm_compute \ |
surmeh01 | 4c7098b | 2018-07-05 14:03:08 +0100 | [diff] [blame] | 140 | libboost_log \ |
| 141 | libboost_system \ |
| 142 | libboost_thread |
| 143 | |
| 144 | LOCAL_SHARED_LIBRARIES := \ |
| 145 | liblog |
| 146 | |
| 147 | LOCAL_CFLAGS := \ |
| 148 | -std=c++14 \ |
| 149 | -fexceptions \ |
| 150 | -DARMCOMPUTECL_ENABLED \ |
| 151 | -DARMCOMPUTENEON_ENABLED \ |
| 152 | -Wno-unused-parameter \ |
| 153 | -frtti |
| 154 | |
| 155 | include $(BUILD_STATIC_LIBRARY) |
telsoa01 | 4fcda01 | 2018-03-09 14:13:49 +0000 | [diff] [blame] | 156 | |
telsoa01 | c577f2c | 2018-08-31 09:22:23 +0100 | [diff] [blame] | 157 | ############### |
| 158 | # armnn-tests # |
| 159 | ############### |
telsoa01 | 4fcda01 | 2018-03-09 14:13:49 +0000 | [diff] [blame] | 160 | include $(CLEAR_VARS) |
| 161 | |
telsoa01 | c577f2c | 2018-08-31 09:22:23 +0100 | [diff] [blame] | 162 | LOCAL_MODULE := armnn-tests |
| 163 | LOCAL_MODULE_TAGS := eng optional |
| 164 | LOCAL_ARM_MODE := arm |
| 165 | LOCAL_PROPRIETARY_MODULE := true |
| 166 | |
| 167 | # Mark source files as dependent on Android.mk |
| 168 | LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk |
| 169 | |
| 170 | LOCAL_C_INCLUDES := \ |
telsoa01 | 4fcda01 | 2018-03-09 14:13:49 +0000 | [diff] [blame] | 171 | $(OPENCL_HEADER_PATH) \ |
| 172 | $(NN_HEADER_PATH) \ |
| 173 | $(ARMNN_HEADER_PATH) \ |
David Beck | 10b4dfd | 2018-09-19 12:03:20 +0100 | [diff] [blame] | 174 | $(ARMNN_MAIN_HEADER_PATH) \ |
surmeh01 | 4c7098b | 2018-07-05 14:03:08 +0100 | [diff] [blame] | 175 | $(ARMNN_SOURCE_HEADER_PATH) \ |
| 176 | $(ARMNN_SOURCE_UTILS_HEADER_PATH) |
telsoa01 | 4fcda01 | 2018-03-09 14:13:49 +0000 | [diff] [blame] | 177 | |
| 178 | LOCAL_CFLAGS := \ |
| 179 | -std=c++14 \ |
| 180 | -fexceptions \ |
| 181 | -frtti \ |
| 182 | -isystem vendor/arm/android-nn-driver/boost_1_64_0 \ |
| 183 | -DARMCOMPUTECL_ENABLED \ |
| 184 | -DARMCOMPUTENEON_ENABLED |
| 185 | |
telsoa01 | c577f2c | 2018-08-31 09:22:23 +0100 | [diff] [blame] | 186 | LOCAL_SRC_FILES := \ |
telsoa01 | 4fcda01 | 2018-03-09 14:13:49 +0000 | [diff] [blame] | 187 | src/armnn/test/UnitTests.cpp \ |
surmeh01 | 3537c2c | 2018-05-18 16:31:43 +0100 | [diff] [blame] | 188 | src/armnn/test/EndToEndTest.cpp \ |
| 189 | src/armnn/test/UtilsTests.cpp \ |
| 190 | src/armnn/test/GraphTests.cpp \ |
| 191 | src/armnn/test/RuntimeTests.cpp \ |
| 192 | src/armnn/test/TensorTest.cpp \ |
telsoa01 | c577f2c | 2018-08-31 09:22:23 +0100 | [diff] [blame] | 193 | src/armnn/test/NeonTimerTest.cpp \ |
| 194 | src/armnn/test/NetworkTests.cpp \ |
| 195 | src/armnn/test/InstrumentTests.cpp \ |
| 196 | src/armnn/test/OpenClTimerTest.cpp \ |
| 197 | src/armnn/test/ProfilingEventTest.cpp \ |
| 198 | src/armnn/test/ObservableTest.cpp \ |
David Beck | 10b4dfd | 2018-09-19 12:03:20 +0100 | [diff] [blame] | 199 | src/backends/test/IsLayerSupportedTest.cpp \ |
| 200 | src/backends/test/Reference.cpp \ |
| 201 | src/backends/test/WorkloadDataValidation.cpp \ |
| 202 | src/backends/test/TensorCopyUtils.cpp \ |
| 203 | src/backends/test/LayerTests.cpp \ |
| 204 | src/backends/test/CreateWorkloadRef.cpp \ |
| 205 | src/backends/test/ArmComputeCl.cpp \ |
| 206 | src/backends/test/ArmComputeNeon.cpp \ |
| 207 | src/backends/test/CreateWorkloadCl.cpp \ |
| 208 | src/backends/test/CreateWorkloadNeon.cpp \ |
| 209 | src/backends/test/MemCopyTests.cpp |
telsoa01 | 4fcda01 | 2018-03-09 14:13:49 +0000 | [diff] [blame] | 210 | |
| 211 | LOCAL_STATIC_LIBRARIES := \ |
| 212 | libneuralnetworks_common \ |
| 213 | libarmnn \ |
| 214 | libboost_log \ |
| 215 | libboost_system \ |
| 216 | libboost_unit_test_framework \ |
| 217 | libboost_thread \ |
| 218 | armnn-arm_compute |
| 219 | |
telsoa01 | c577f2c | 2018-08-31 09:22:23 +0100 | [diff] [blame] | 220 | LOCAL_SHARED_LIBRARIES := \ |
telsoa01 | 4fcda01 | 2018-03-09 14:13:49 +0000 | [diff] [blame] | 221 | libbase \ |
| 222 | libhidlbase \ |
| 223 | libhidltransport \ |
| 224 | libhidlmemory \ |
| 225 | liblog \ |
| 226 | libutils \ |
| 227 | android.hardware.neuralnetworks@1.0 \ |
| 228 | android.hidl.allocator@1.0 \ |
| 229 | android.hidl.memory@1.0 \ |
| 230 | libOpenCL |
| 231 | |
telsoa01 | 4fcda01 | 2018-03-09 14:13:49 +0000 | [diff] [blame] | 232 | include $(BUILD_EXECUTABLE) |
| 233 | |