openpilot is an open source driver assistance system. openpilot performs the functions of Automated Lane Centering and Adaptive Cruise Control for over 200 supported car makes and models.
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.
 
 
 
 
 
 

77 lines
2.1 KiB

#!/usr/bin/bash -e
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null && pwd)"
ARCHNAME="x86_64"
BLAS_TARGET="X64_AUTOMATIC"
if [ -f /TICI ]; then
ARCHNAME="larch64"
BLAS_TARGET="ARMV8A_ARM_CORTEX_A57"
elif [ -f /EON ]; then
ARCHNAME="aarch64"
BLAS_TARGET="ARMV8A_ARM_CORTEX_A57"
fi
if [ ! -d acados_repo/ ]; then
git clone https://github.com/acados/acados.git $DIR/acados_repo
# git clone https://github.com/commaai/acados.git $DIR/acados_repo
fi
cd acados_repo
git fetch --all
git checkout 8ea8827fafb1b23b4c7da1c4cf650de1cbd73584
git submodule update --recursive --init
# build
mkdir -p build
cd build
cmake -DACADOS_WITH_QPOASES=ON -UBLASFEO_TARGET -DBLASFEO_TARGET=$BLAS_TARGET ..
make -j20 install
INSTALL_DIR="$DIR/$ARCHNAME"
rm -rf $INSTALL_DIR
mkdir -p $INSTALL_DIR
rm $DIR/acados_repo/lib/*.json
rm -rf $DIR/include
cp -r $DIR/acados_repo/include $DIR
cp -r $DIR/acados_repo/lib $INSTALL_DIR
rm -rf $DIR/../../pyextra/acados_template
cp -r $DIR/acados_repo/interfaces/acados_template/acados_template $DIR/../../pyextra
#pip3 install -e $DIR/acados/interfaces/acados_template
# hack to workaround no rpath on android
if [ -f /EON ]; then
pushd $INSTALL_DIR/lib
for lib in $(ls .); do
if ! readlink $lib; then
patchelf --set-soname $PWD/$lib $lib
if [ "$lib" = "libacados.so" ]; then
for nlib in "libhpipm.so" "libblasfeo.so" "libqpOASES_e.so.3.1"; do
patchelf --replace-needed $nlib $PWD/$nlib $lib
done
fi
if [ "$lib" = "libhpipm.so" ]; then
patchelf --replace-needed libblasfeo.so $PWD/libblasfeo.so $lib
fi
# pad extra byte to workaround bionic linker bug
# https://android.googlesource.com/platform/bionic/+/93ce35434ca5af43a7449e289959543f0a2426fa%5E%21/#F0
dd if=/dev/zero bs=1 count=1 >> $lib
fi
done
popd
cd $DIR
git checkout $INSTALL_DIR/t_renderer
fi
# build tera
# build with commaai/termux-packages for NEOS
if [ ! -f /EON ]; then
cd $DIR/acados_repo/interfaces/acados_template/tera_renderer/
cargo build --verbose --release
cp target/release/t_renderer $INSTALL_DIR/
fi