Update ACL pin to 8abbabd6ad946441c8ef1a03896fa98f7801af1f
[platform/upstream/armnn.git] / BuildGuideCrossCompilation.md
index 85c46a9..6b03f13 100644 (file)
@@ -42,8 +42,8 @@ The instructions show how to build the ArmNN core library and the Boost, Protobu
     ```
     mkdir arm64_build
     cd arm64_build
-    CC=aarch64-linux-gnu-gcc \
-    CXX=aarch64-linux-gnu-g++ \
+    export CC=aarch64-linux-gnu-gcc \
+    export CXX=aarch64-linux-gnu-g++ \
     ../configure --host=aarch64-linux \
     --prefix=$HOME/armnn-devenv/google/arm64_pb_install \
     --with-protoc=$HOME/armnn-devenv/google/x86_64_pb_install/bin/protoc
@@ -93,7 +93,7 @@ The instructions show how to build the ArmNN core library and the Boost, Protobu
 #### <a name="installBaarch">Build Boost library for arm64</a>
 * Build Boost library for arm64
     Download Boost version 1.64 from http://www.boost.org/doc/libs/1_64_0/more/getting_started/unix-variants.html
-    Version 1.66 is not supported.
+    Using any version of Boost greater than 1.64 will fail to build ArmNN, due to different dependency issues.
     ```bash
     tar -zxvf boost_1_64_0.tar.gz
     cd boost_1_64_0
@@ -122,8 +122,8 @@ The instructions show how to build the ArmNN core library and the Boost, Protobu
 * Use CMake to configure your build environment, update the following script and run it from the armnn/build directory to set up the armNN build:
     ```bash
     #!/bin/bash
-    CXX=aarch64-linux-gnu-g++ \
-    CC=aarch64-linux-gnu-gcc \
+    export CXX=aarch64-linux-gnu-g++ \
+    export CC=aarch64-linux-gnu-gcc \
     cmake .. \
     -DARMCOMPUTE_ROOT=$HOME/armnn-devenv/ComputeLibrary \
     -DARMCOMPUTE_BUILD_DIR=$HOME/armnn-devenv/ComputeLibrary/build/ \
@@ -135,14 +135,46 @@ The instructions show how to build the ArmNN core library and the Boost, Protobu
     -DPROTOBUF_LIBRARY_DEBUG=$HOME/armnn-devenv/google/arm64_pb_install/lib/libprotobuf.so.15.0.1 \
     -DPROTOBUF_LIBRARY_RELEASE=$HOME/armnn-devenv/google/arm64_pb_install/lib/libprotobuf.so.15.0.1
     ```
+
+* If you want to include standalone sample dynamic backend tests, add the argument to enable the tests and the dynamic backend path to the CMake command:
+    ```bash
+    -DSAMPLE_DYNAMIC_BACKEND=1 \
+    -DDYNAMIC_BACKEND_PATHS=$SAMPLE_DYNAMIC_BACKEND_PATH
+    ```
 * Run the build
     ```bash
     make -j32
     ```
 
+#### <a name="buildStandaloneBackend">Build Standalone Sample Dynamic Backend</a>
+* The sample dynamic backend is located in armnn/src/dynamic/sample
+    ```bash
+    mkdir build
+    cd build
+    ```
+
+* Use CMake to configure your build environment, update the following script and run it from the armnn/src/dynamic/sample/build directory to set up the armNN build:
+    ```bash
+    #!/bin/bash
+    export CXX=aarch64-linux-gnu-g++ \
+    export CC=aarch64-linux-gnu-gcc \
+    cmake .. \
+    -DCMAKE_CXX_FLAGS=--std=c++14 \
+    -DBOOST_ROOT=$HOME/armnn-devenv/boost_arm64_install/ \
+    -DBoost_SYSTEM_LIBRARY=$HOME/armnn-devenv/boost_arm64_install/lib/libboost_system.a \
+    -DBoost_FILESYSTEM_LIBRARY=$HOME/armnn-devenv/boost_arm64_install/lib/libboost_filesystem.a \
+    -DARMNN_PATH=$HOME/armnn-devenv/armnn/build/libarmnn.so
+    ```
+
+* Run the build
+    ```bash
+    make
+    ```
+
 #### <a name="unittests">Run Unit Tests</a>
 * Copy the build folder to an arm64 linux machine
 * Copy the libprotobuf.so.15.0.1 library file to the build folder
+* If you enable the standalone sample dynamic tests, also copy libArm_SampleDynamic_backend.so library file to the folder specified as $SAMPLE_DYNAMIC_BACKEND_PATH when you build ArmNN 
 * cd to the build folder on your arm64 machine and set your LD_LIBRARY_PATH to its current location:
     ```
     cd build/