mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
116 lines
3.3 KiB
116 lines
3.3 KiB
#!/bin/bash |
|
|
|
set -e |
|
|
|
dArmNN=/work |
|
dComputeLib=/home/armnn-devenv/ComputeLibrary |
|
dTensorflow=/home/armnn-devenv/google/tensorflow |
|
dFlatBuffer=/home/armnn-devenv/flatbuffers |
|
|
|
#Function to build ARMNN |
|
function buildArmNN() |
|
{ |
|
mkdir -p ${dArmNN}/armnn-devenv && cd ${dArmNN}/armnn-devenv |
|
git clone https://github.com/ARM-software/armnn.git && cd armnn/ |
|
mkdir build && cd build |
|
CXX=aarch64-linux-android-clang++ \ |
|
CC=aarch64-linux-android-clang \ |
|
CXX_FLAGS="-fPIE -fPIC" \ |
|
cmake .. \ |
|
-DCMAKE_SYSTEM_NAME=Android \ |
|
-DCMAKE_ANDROID_ARCH_ABI=arm64-v8a \ |
|
-DCMAKE_ANDROID_STANDALONE_TOOLCHAIN=/home/armnn-devenv/toolchains/aarch64-android-r17b/ \ |
|
-DCMAKE_EXE_LINKER_FLAGS="-pie -llog" \ |
|
-DARMCOMPUTE_ROOT=/home/armnn-devenv/ComputeLibrary/ \ |
|
-DARMCOMPUTE_BUILD_DIR=/home/armnn-devenv/ComputeLibrary/build \ |
|
-DBOOST_ROOT=/home/armnn-devenv/boost/install/ \ |
|
-DARMCOMPUTENEON=1 -DARMCOMPUTECL=1 -DARMNNREF=1 \ |
|
-DTF_GENERATED_SOURCES=/home/armnn-devenv/google/tf_pb/ -DBUILD_TF_PARSER=1 \ |
|
-DPROTOBUF_ROOT=/home/armnn-devenv/google/arm64_pb_install/ |
|
make -j8 |
|
} |
|
|
|
# Function to update Compute Lib |
|
function updateComputeLib() |
|
{ |
|
pushd ${dComputeLib} |
|
git pull |
|
scons arch=arm64-v8a neon=1 opencl=1 embed_kernels=1 extra_cxx_flags="-fPIC" \ |
|
benchmark_tests=0 validation_tests=0 os=android -j8 |
|
echo "Compute Lib updated" |
|
popd |
|
} |
|
|
|
# Function to update FlatBuffer Lib |
|
function updateFlatBuffer() |
|
{ |
|
pushd ${dFlatBuffer} |
|
git pull |
|
cd android && cd jni && \ |
|
rm -rf Application.mk && \ |
|
echo "APP_STL := c++_static" >> Application.mk && \ |
|
echo "NDK_TOOLCHAIN_VERSION" := clang >> Application.mk && \ |
|
echo "APP_CPPFLAGS :=-std=c++11" >> Application.mk && \ |
|
echo "APP_ABI := arm64-v8a" >> Application.mk && \ |
|
echo "APP_PLATFORM := android-23" >> Application.mk && \ |
|
echo "NDK_PLATFORM=android-23" >> Application.mk && \ |
|
cd ../ && ndk-build -B |
|
echo "Compute Lib updated" |
|
popd |
|
} |
|
|
|
# Main |
|
if [ ! -d "/work/armnn-devenv/armnn/" ]; |
|
then |
|
buildArmNN |
|
fi |
|
|
|
# Check Compute Library changes from repo |
|
cd ${dComputeLib} |
|
if [ $(git rev-parse HEAD) = $(git ls-remote $(git rev-parse --abbrev-ref @{u} | |
|
sed 's/\// /g') | cut -f1) ] |
|
then |
|
echo "Compute Lib Up-to-date" |
|
else |
|
echo "New changes are availble for Compute Library repo." |
|
echo "Do you wanna update (y/n)?" |
|
read answer |
|
if [ "$answer" != "${answer#[Yy]}" ] ;then |
|
updateComputeLib |
|
fi |
|
fi |
|
|
|
# Check Tensorflow changes from repo |
|
cd ${dTensorflow} |
|
if [ $(git rev-parse HEAD) = $(git ls-remote $(git rev-parse --abbrev-ref @{u} | |
|
sed 's/\// /g') | cut -f1) ] |
|
then |
|
echo "Tensrflow Lib Up-to-date" |
|
else |
|
echo "Tensrflow Lib Not Up-to-date" |
|
echo "Skipping for now. Issue: #267" |
|
#echo "New changes are availble for Compute Library repo." |
|
#echo "Do you wanna update (y/n)?" |
|
#read answer |
|
#if [ "$answer" != "${answer#[Yy]}" ] ;then |
|
# |
|
#fi |
|
fi |
|
|
|
# Check FlatBuffer changes from repo |
|
cd ${dFlatBuffer} |
|
if [ $(git rev-parse HEAD) = $(git ls-remote $(git rev-parse --abbrev-ref @{u} | |
|
sed 's/\// /g') | cut -f1) ] |
|
then |
|
echo "FlatBuffer Up-to-date" |
|
else |
|
echo "FlatBuffer Not Up-to-date" |
|
echo "New changes are availble for Compute Library repo." |
|
echo "Do you wanna update (y/n)?" |
|
read answer |
|
if [ "$answer" != "${answer#[Yy]}" ] ;then |
|
updateFlatBuffer |
|
fi |
|
fi |
|
|
|
exec "$@" |