setup_toolchain() { export SDK_PATH="$(cd "$1" && pwd)" export TARGET_SYS="$2" shift 2 # TODO: arguments with spaces will break this local FLAGS="$@" export CONFIG_SITE="$SDK_PATH/site-config" export PATH="$SDK_PATH/scripts:$SDK_PATH/bin:$PATH:$SDK_PATH/usr/bin" export LIBTOOL_SYSROOT_PATH="$SDK_PATH" export PKG_CONFIG_SYSROOT_DIR="$SDK_PATH" export PKG_CONFIG_PATH="$SDK_PATH/pkgconfig" export CXX_DEFINES="-I$SDK_PATH/include -I$SDK_PATH/usr/include $FLAGS" export CPATH="$SDK_PATH/include:$CPATH" CFLAGS="$CXX_DEFINES" LDFLAGS="-L$SDK_PATH/lib -L$SDK_PATH/usr/lib -Wl,-rpath,$SDK_PATH/lib -Wl,-rpath,$SDK_PATH/usr/lib" export CPPFLAGS="$CFLAGS" export CXXFLAGS="$CFLAGS" export CROSSTOOL="$SDK_PATH/bin/$TARGET_SYS" export CXX="$CROSSTOOL-g++" CC="$CROSSTOOL-gcc" CPP="$CROSSTOOL-cpp" export AR="$CROSSTOOL-ar" AS="$CROSSTOOL-as" RANLIB="$CROSSTOOL-ranlib" export STRIP="$CROSSTOOL-strip" export HOST_CC=gcc HOST_CXX=g++ HOST_CPP=cpp export CMAKE_SYSTEM_INCLUDE_PATH="$SDK_PATH/include:$SDK_PATH/usr/include" export CMAKE_SYSTEM_LIBRARY_PATH="$SDK_PATH/lib:$SDK_PATH/usr/lib" export CMAKE_FIND_ROOT_PATH="$SDK_PATH" }