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.
 
 
 
 
 
 

75 lines
2.0 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
git clone https://github.com/commaai/acados.git $DIR/acados_repo
fi
cd acados_repo
git fetch
git checkout 79e9e3e76f2751198858adf382c97837833ad31f
git submodule update --recursive --init
# build
mkdir -p build
cd build
cmake -DACADOS_WITH_QPOASES=ON -UBLASFEO_TARGET -DBLASFEO_TARGET=$BLAS_TARGET ..
make -j4 install
INSTALL_DIR="$DIR/$ARCHNAME"
rm -rf $INSTALL_DIR
mkdir -p $INSTALL_DIR
rm $DIR/acados_repo/lib/*.json
cp -r $DIR/acados_repo/include $DIR
cp -r $DIR/acados_repo/lib $INSTALL_DIR
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