blob: 419d2784f873b4fe6092cf0d6fc822d878785e1f [file] [log] [blame]
James Conroy919ec712022-07-13 12:57:53 +01001#!/bin/bash
2#
John Mcloughlin35bae832023-07-24 11:55:13 +01003# Copyright © 2022-2023 Arm Ltd and Contributors. All rights reserved.
James Conroy919ec712022-07-13 12:57:53 +01004# SPDX-License-Identifier: MIT
5#
6
7# Script which stores common variables and paths used by setup-armnn.sh and build-armnn.sh
8
9# shellcheck disable=SC2034
10# SC2034: false positives for variables appear unused - variables are used in setup-armnn.sh and build-armnn.sh
11
12set -o nounset # Catch references to undefined variables.
13set -o pipefail # Catch non zero exit codes within pipelines.
14set -o errexit # Catch and propagate non zero exit codes.
15
16# ROOT_DIR is the directory in which a script is called from
17ROOT_DIR=$(pwd)
18SOURCE_DIR="$ROOT_DIR"/source
19BUILD_DIR="$ROOT_DIR"/build
20
21# Host architecture e.g. x86_64, aarch64
22HOST_ARCH=$(uname -m)
23
24# Number of online cores on host
25NUM_THREADS=$(getconf _NPROCESSORS_ONLN)
26
27# Validate common user-defined options
28# shellcheck source=validation.sh
29source "$rel_path"/validation.sh
30
31# target_arch supplied as command line arg
32TARGET_ARCH="$target_arch"
33
34NATIVE_BUILD=0
35if [ "$TARGET_ARCH" == "$HOST_ARCH" ]; then
36 NATIVE_BUILD=1
37fi
38
39AARCH64_COMPILER_FLAGS+="CC=/usr/bin/aarch64-linux-gnu-gcc CXX=/usr/bin/aarch64-linux-gnu-g++ "
James Conroy919ec712022-07-13 12:57:53 +010040
John Mcloughlin35bae832023-07-24 11:55:13 +010041# NDK
42NDK_VERSION=25
43NDK_SRC="$SOURCE_DIR"/android-ndk-r"$NDK_VERSION"
44
45# ANDROID
46ANDROID_API_VERSION=30
47ANDROID_ARM_ARCH="arm64-v8a"
Nikhil Rajba6dcb22023-11-24 16:25:10 +000048ANDROID64_x86_TOOLCHAIN="$NDK_SRC/toolchains/llvm/prebuilt/linux-x86_64/"
49ANDROID64_COMPILER_FLAGS="CC="$ANDROID64_x86_TOOLCHAIN"/bin/aarch64-linux-android"$ANDROID_API_VERSION"-clang \
John Mcloughlin35bae832023-07-24 11:55:13 +010050 CXX="$ANDROID64_x86_TOOLCHAIN"/bin/aarch64-linux-android"$ANDROID_API_VERSION"-clang++ "
51
James Conroy919ec712022-07-13 12:57:53 +010052# Flatbuffers
Ciara Sookarry4a43c942023-09-20 12:10:31 +010053FLATBUFFERS_VERSION=23.5.26
James Conroy919ec712022-07-13 12:57:53 +010054FLATBUFFERS_SRC="$SOURCE_DIR"/flatbuffers-"$FLATBUFFERS_VERSION"
55FLATBUFFERS_BUILD_ROOT="$BUILD_DIR"/flatbuffers
56FLATBUFFERS_BUILD_TARGET="$FLATBUFFERS_BUILD_ROOT"/"$TARGET_ARCH"_build
57FLATBUFFERS_BUILD_HOST="$FLATBUFFERS_BUILD_ROOT"/"$HOST_ARCH"_build # Location of flatc compiler
58
59# Tensorflow
Idriss Chaouch13823a92023-09-28 11:07:20 +010060TENSORFLOW_VERSION=v2.14.0 # v2.14.0
James Conroy919ec712022-07-13 12:57:53 +010061TENSORFLOW_SRC="$SOURCE_DIR"/tensorflow
62TFLITE_SRC="$TENSORFLOW_SRC"/tensorflow/lite
63SCHEMA_SRC="$TFLITE_SRC"/schema/schema.fbs
64
65# TF Lite Schema
66FLATC="$FLATBUFFERS_BUILD_HOST"/bin/flatc
67TFLITE_BUILD_ROOT="$BUILD_DIR"/tflite # Generated TF Lite Schema location
68TFLITE_BUILD_TARGET="$TFLITE_BUILD_ROOT"/"$TARGET_ARCH"_build
69
70# Protobuf
71PROTOBUF_VERSION=3.12.0
72PROTOBUF_SRC="$SOURCE_DIR"/protobuf-"$PROTOBUF_VERSION"
73PROTOBUF_BUILD_ROOT="$BUILD_DIR"/protobuf
74PROTOBUF_BUILD_HOST="$PROTOBUF_BUILD_ROOT"/"$HOST_ARCH"_build
75PROTOCOL_COMPILER_HOST="$PROTOBUF_BUILD_HOST"/bin/protoc
76PROTOBUF_BUILD_TARGET="$PROTOBUF_BUILD_ROOT"/"$TARGET_ARCH"_build
77PROTOBUF_LIBRARY_TARGET="$PROTOBUF_BUILD_TARGET"/lib/libprotobuf.so.23.0.0
John Mcloughlin35bae832023-07-24 11:55:13 +010078PROTOBUF_ANDROID_LIB_TARGET="$PROTOBUF_BUILD_TARGET"/lib/libprotobuf.so
James Conroy919ec712022-07-13 12:57:53 +010079
80# ONNX
81ONNX_VERSION=1.6.0
82ONNX_SRC="$SOURCE_DIR"/onnx-"$ONNX_VERSION"
83ONNX_BUILD_TARGET="$BUILD_DIR"/onnx/"$TARGET_ARCH"_build
84
85# Arm NN / ACL
86ARMNN_SRC="$SOURCE_DIR"/armnn
James Conroy210897d2022-08-04 16:55:05 +010087ACL_SRC="$SOURCE_DIR"/acl
88
89# Check if directory at $1 is a repository or not
90check_if_repository()
91{
92 pushd "$1" > /dev/null
93
94 if [ "$(git rev-parse --is-inside-work-tree 2> /dev/null)" ]; then
95 popd > /dev/null
96 return 0
97 else
98 popd > /dev/null
99 return 1
100 fi
101}