50 lines
1.7 KiB
Bash
Executable File
50 lines
1.7 KiB
Bash
Executable File
#!/bin/bash -eu
|
|
|
|
#
|
|
# Example build script for use with Impinj ETK
|
|
#
|
|
# The target libraries are contained inside the sysroot at
|
|
# "$ETK_ROOT/arm-buildroot-linux-gnueabihf/sysroot/lib". The host libraries
|
|
# are contained in "$ETK_ROOT/lib".
|
|
#
|
|
# For a host build, CMake must be configured to correctly search for host
|
|
# headers and libraries in the correct location inside the ETK.
|
|
#
|
|
# For a target build, CMake must be configured to use the correct cross
|
|
# compiler and informed about the sysroot location in the ETK.
|
|
#
|
|
# The script allows overriding some variables when building, e.g.:
|
|
#
|
|
# [user@machine]$ BUILD_TYPE=Release VERBOSE=ON ./build.sh
|
|
#
|
|
|
|
SCRIPT_PATH=$(dirname $(realpath $0))
|
|
OUTPUT_PATH=${SCRIPT_PATH}/output
|
|
|
|
# defaults when building with ETK; override on command line for custom setup
|
|
ETK_PATH=${ETK_PATH:-$(realpath ${SCRIPT_PATH}/../../arm-toolchain)}
|
|
BUILD_TYPE=${BUILD_TYPE:-Debug}
|
|
VERBOSE=${VERBOSE:-OFF}
|
|
|
|
# host build; override on command line for custom setup
|
|
INC=${INC:-${ETK_PATH}/include}
|
|
LIB=${LIB:-${ETK_PATH}/lib}
|
|
cmake ${SCRIPT_PATH} -B"${OUTPUT_PATH}/host" \
|
|
-DCMAKE_VERBOSE_MAKEFILE:BOOL=${VERBOSE} \
|
|
-DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
|
|
-DCMAKE_C_FLAGS="-isystem ${INC}" \
|
|
-DCMAKE_LIBRARY_PATH=${LIB}
|
|
cmake --build "${OUTPUT_PATH}/host"
|
|
|
|
# target build
|
|
CC=$(find ${ETK_PATH}/bin -name arm-*-linux-*-gcc)
|
|
CC=${CC%gcc}
|
|
SYSROOT_PATH="$(${CC}gcc -print-sysroot)"
|
|
cmake ${SCRIPT_PATH} -B"${OUTPUT_PATH}/target" \
|
|
-DCMAKE_VERBOSE_MAKEFILE:BOOL=${VERBOSE} \
|
|
-DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
|
|
-DCMAKE_C_COMPILER=${CC}gcc \
|
|
-DCMAKE_CXX_COMPILER=${CC}g++ \
|
|
-DCMAKE_FIND_ROOT_PATH=${SYSROOT_PATH}
|
|
cmake --build "${OUTPUT_PATH}/target"
|