#!/bin/bash ##CROSS_COMPILE=/opt/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf- TOOLCHAIN_DIR="/opt/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf/bin" CROSS_PREFIX="arm-none-linux-gnueabihf" readonly PKG_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" rm -rf ./install/ ./zlib-1.2.11/ ./libpng-1.6.34/ ./jpeg-9c/ ./freetype-2.13.2/ ./glew-2.1.0/ ./cJSON-v1.7.18/ ./expat-2.5.0/ ./libffi-3.4.6/ ./libdrm-2.4.120/ ./mesa-24.1.7/ tar -zxvf cJSON-v1.7.18.tar.gz tar -zxvf freetype-2.13.2.tar.gz tar -zxvf glew-2.1.0.tgz tar -zxvf jpegsrc.v9c.tar.gz tar -zxvf libpng-1.6.34.tar.gz tar -zxvf zlib-1.2.11.tar.gz tar -xzf expat-2.5.0.tar.gz tar -xvf libdrm-2.4.120.tar.xz tar -xzf libffi-3.4.6.tar.gz tar -xvf mesa-24.1.7.tar.xz mkdir -p install export CC=${TOOLCHAIN_DIR}/${CROSS_PREFIX}-gcc export CXX=${TOOLCHAIN_DIR}/${CROSS_PREFIX}-g++ export LD=${TOOLCHAIN_DIR}/${CROSS_PREFIX}-ld export AR=${TOOLCHAIN_DIR}/${CROSS_PREFIX}-ar export RANLIB=${TOOLCHAIN_DIR}/${CROSS_PREFIX}-ranlib export CFLAGS="-I${PKG_DIR}/install/include" export CPPFLAGS="-I${PKG_DIR}/install/include" export LDFLAGS="-L${PKG_DIR}/install/lib" # 1. zlib cd zlib-1.2.11 ./configure \ --prefix=${PKG_DIR}/install/ \ --enable-shared make make install cd .. # 2. libpng cd libpng-1.6.34 ./configure \ --prefix=${PKG_DIR}/install/ \ --host=${CROSS_PREFIX} \ --enable-shared \ --enable-static make make install cd .. # 3. JPEG cd jpeg-9c ./configure \ --prefix=${PKG_DIR}/install/ \ --host=${CROSS_PREFIX} \ --enable-shared \ --enable-static make make install cd .. #4.Freetype cd freetype-2.13.2 ./configure \ --prefix=${PKG_DIR}/install/ \ --host=${CROSS_PREFIX} \ --with-zlib=${PKG_DIR}/install/include \ --enable-shared \ --enable-static \ --without-brotli make make install cd .. # 5. GLEW(DRM) cd glew-2.1.0 make GLEW_EGL=1 make install GLEW_DEST=${PKG_DIR}/install/ cd .. #6. CJson cd cJSON-v1.7.18 mkdir -p build cd build cmake .. -DCMAKE_INSTALL_PREFIX=${PKG_DIR}/install/ -DBUILD_SHARED_LIBS=OFF #static complie make make install cd ../../ #expat cd expat-2.5.0 ./configure \ --host=${CROSS_PREFIX} \ --prefix=${PKG_DIR}/install/ \ --enable-shared \ --enable-static \ --without-docbook make make install cd .. #libffi cd libffi-3.4.6 ./configure \ --host=${CROSS_PREFIX} \ --prefix=${PKG_DIR}/install/ \ --enable-shared \ --enable-static make make install cd .. #drm cd libdrm-2.4.120 meson setup build_dir/ \ --prefix=${PKG_DIR}/install \ -Dc_args="-I${PKG_DIR}/install/include/" \ -Dc_link_args="-L${PKG_DIR}/install/lib" \ --cross-file ../cross_file.txt ninja -C build_dir/ install cd .. #. mesa (GLESv2,EGL, gbm) ## need :zlib,expat,libdrm,libffi,ibelf cd mesa-24.1.7 meson setup build_dir/ \ --prefix=${PKG_DIR}/install \ -D egl=enabled \ -D gles1=disabled \ -D gles2=enabled \ -D gbm=enabled \ -D glx=disabled \ -D platforms= \ -D gallium-drivers=panfrost \ -D vulkan-drivers= \ -D llvm=disabled \ -D xlib-lease=disabled \ -D gbm-backends-path= \ -Dc_args="-I${PKG_DIR}/install/include/" \ -Dc_link_args="-L${PKG_DIR}/install/lib" \ --cross-file ../cross_file.txt ninja -C build_dir/ install cd ..