BuildSystem: Install meson as part of the toolchain
Debian based distros have meson 0.6x in their repositories. These cause some obscure error messages when building meson based ports.
This commit is contained in:
parent
78cd054d59
commit
7a49a0d986
|
|
@ -17,6 +17,10 @@ CMAKE_VERSION="cmake-3.26.6-linux-x86_64"
|
||||||
CMAKE_TAR="$CMAKE_VERSION.tar.gz"
|
CMAKE_TAR="$CMAKE_VERSION.tar.gz"
|
||||||
CMAKE_URL="https://cmake.org/files/v3.26/$CMAKE_TAR"
|
CMAKE_URL="https://cmake.org/files/v3.26/$CMAKE_TAR"
|
||||||
|
|
||||||
|
MESON_VERSION="meson-1.10.0"
|
||||||
|
MESON_TAR="$MESON_VERSION.tar.gz"
|
||||||
|
MESON_URL="https://github.com/mesonbuild/meson/releases/download/1.10.0/$MESON_TAR"
|
||||||
|
|
||||||
if [[ -z $BANAN_SYSROOT ]]; then
|
if [[ -z $BANAN_SYSROOT ]]; then
|
||||||
echo "You must set the BANAN_SYSROOT environment variable" >&2
|
echo "You must set the BANAN_SYSROOT environment variable" >&2
|
||||||
exit 1
|
exit 1
|
||||||
|
|
@ -68,14 +72,14 @@ enter_clean_build () {
|
||||||
}
|
}
|
||||||
|
|
||||||
build_binutils () {
|
build_binutils () {
|
||||||
echo "Building ${BINUTILS_VERSION}"
|
|
||||||
|
|
||||||
cd $BANAN_BUILD_DIR/toolchain
|
cd $BANAN_BUILD_DIR/toolchain
|
||||||
|
|
||||||
if [ ! -d $BINUTILS_VERSION ]; then
|
if [ ! -d $BINUTILS_VERSION ]; then
|
||||||
if [ ! -f $BINUTILS_TAR ]; then
|
if [ ! -f $BINUTILS_TAR ]; then
|
||||||
|
echo "Downloading ${BINUTILS_TAR}"
|
||||||
wget $BINUTILS_URL
|
wget $BINUTILS_URL
|
||||||
fi
|
fi
|
||||||
|
echo "Unpacking ${BINUTILS_TAR}"
|
||||||
tar xf $BINUTILS_TAR
|
tar xf $BINUTILS_TAR
|
||||||
patch -ruN -p1 -d "$BINUTILS_VERSION" < "$BANAN_TOOLCHAIN_DIR/$BINUTILS_VERSION.patch"
|
patch -ruN -p1 -d "$BINUTILS_VERSION" < "$BANAN_TOOLCHAIN_DIR/$BINUTILS_VERSION.patch"
|
||||||
fi
|
fi
|
||||||
|
|
@ -83,6 +87,8 @@ build_binutils () {
|
||||||
cd $BANAN_BUILD_DIR/toolchain/$BINUTILS_VERSION
|
cd $BANAN_BUILD_DIR/toolchain/$BINUTILS_VERSION
|
||||||
enter_clean_build
|
enter_clean_build
|
||||||
|
|
||||||
|
echo "Building ${BINUTILS_VERSION}"
|
||||||
|
|
||||||
../configure \
|
../configure \
|
||||||
--target="$BANAN_TOOLCHAIN_TRIPLE" \
|
--target="$BANAN_TOOLCHAIN_TRIPLE" \
|
||||||
--prefix="$BANAN_TOOLCHAIN_PREFIX" \
|
--prefix="$BANAN_TOOLCHAIN_PREFIX" \
|
||||||
|
|
@ -98,14 +104,14 @@ build_binutils () {
|
||||||
}
|
}
|
||||||
|
|
||||||
build_gcc () {
|
build_gcc () {
|
||||||
echo "Building ${GCC_VERSION}"
|
|
||||||
|
|
||||||
cd $BANAN_BUILD_DIR/toolchain
|
cd $BANAN_BUILD_DIR/toolchain
|
||||||
|
|
||||||
if [ ! -d $GCC_VERSION ]; then
|
if [ ! -d $GCC_VERSION ]; then
|
||||||
if [ ! -f $GCC_TAR ]; then
|
if [ ! -f $GCC_TAR ]; then
|
||||||
|
echo "Downloading ${GCC_TAR}"
|
||||||
wget $GCC_URL
|
wget $GCC_URL
|
||||||
fi
|
fi
|
||||||
|
echo "Unpacking ${GCC_TAR}"
|
||||||
tar xf $GCC_TAR
|
tar xf $GCC_TAR
|
||||||
patch -ruN -p1 -d "$GCC_VERSION" < "$BANAN_TOOLCHAIN_DIR/$GCC_VERSION.patch"
|
patch -ruN -p1 -d "$GCC_VERSION" < "$BANAN_TOOLCHAIN_DIR/$GCC_VERSION.patch"
|
||||||
fi
|
fi
|
||||||
|
|
@ -113,6 +119,8 @@ build_gcc () {
|
||||||
cd $BANAN_BUILD_DIR/toolchain/$GCC_VERSION
|
cd $BANAN_BUILD_DIR/toolchain/$GCC_VERSION
|
||||||
enter_clean_build
|
enter_clean_build
|
||||||
|
|
||||||
|
echo "Building ${GCC_VERSION}"
|
||||||
|
|
||||||
../configure \
|
../configure \
|
||||||
--target="$BANAN_TOOLCHAIN_TRIPLE" \
|
--target="$BANAN_TOOLCHAIN_TRIPLE" \
|
||||||
--prefix="$BANAN_TOOLCHAIN_PREFIX" \
|
--prefix="$BANAN_TOOLCHAIN_PREFIX" \
|
||||||
|
|
@ -147,21 +155,22 @@ build_libstdcpp () {
|
||||||
}
|
}
|
||||||
|
|
||||||
build_grub () {
|
build_grub () {
|
||||||
echo "Building ${GRUB_VERSION}"
|
|
||||||
|
|
||||||
cd $BANAN_BUILD_DIR/toolchain
|
cd $BANAN_BUILD_DIR/toolchain
|
||||||
|
|
||||||
if [ ! -f $GRUB_TAR ]; then
|
|
||||||
wget $GRUB_URL
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -d $GRUB_VERSION ]; then
|
if [ ! -d $GRUB_VERSION ]; then
|
||||||
|
if [ ! -f $GRUB_TAR ]; then
|
||||||
|
echo "Downloading ${GRUB_TAR}"
|
||||||
|
wget $GRUB_URL
|
||||||
|
fi
|
||||||
|
echo "Unpacking ${GRUB_TAR}"
|
||||||
tar xvf $GRUB_TAR
|
tar xvf $GRUB_TAR
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cd $GRUB_VERSION
|
cd $GRUB_VERSION
|
||||||
enter_clean_build
|
enter_clean_build
|
||||||
|
|
||||||
|
echo "Building ${GRUB_VERSION}"
|
||||||
|
|
||||||
../configure \
|
../configure \
|
||||||
--target="$BANAN_ARCH" \
|
--target="$BANAN_ARCH" \
|
||||||
--prefix="$BANAN_TOOLCHAIN_PREFIX" \
|
--prefix="$BANAN_TOOLCHAIN_PREFIX" \
|
||||||
|
|
@ -174,20 +183,21 @@ build_grub () {
|
||||||
}
|
}
|
||||||
|
|
||||||
build_cmake() {
|
build_cmake() {
|
||||||
echo "Downloading ${CMAKE_VERSION}"
|
|
||||||
|
|
||||||
cd $BANAN_BUILD_DIR/toolchain
|
cd $BANAN_BUILD_DIR/toolchain
|
||||||
|
|
||||||
if [ ! -f $CMAKE_TAR ]; then
|
|
||||||
wget $CMAKE_URL
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -d $CMAKE_VERSION ]; then
|
if [ ! -d $CMAKE_VERSION ]; then
|
||||||
|
if [ ! -f $CMAKE_TAR ]; then
|
||||||
|
echo "Downloading ${CMAKE_TAR}"
|
||||||
|
wget $CMAKE_URL
|
||||||
|
fi
|
||||||
|
echo "Unpacking ${CMAKE_TAR}"
|
||||||
tar xvf $CMAKE_TAR
|
tar xvf $CMAKE_TAR
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cd $CMAKE_VERSION
|
cd $CMAKE_VERSION
|
||||||
|
|
||||||
|
echo "Building ${CMAKE_VERSION}"
|
||||||
|
|
||||||
mkdir -p $BANAN_TOOLCHAIN_PREFIX/bin
|
mkdir -p $BANAN_TOOLCHAIN_PREFIX/bin
|
||||||
mkdir -p $BANAN_TOOLCHAIN_PREFIX/share
|
mkdir -p $BANAN_TOOLCHAIN_PREFIX/share
|
||||||
|
|
||||||
|
|
@ -197,6 +207,27 @@ build_cmake() {
|
||||||
cp $BANAN_TOOLCHAIN_DIR/cmake-platform/* $BANAN_TOOLCHAIN_PREFIX/share/cmake-3.26/Modules/Platform/
|
cp $BANAN_TOOLCHAIN_DIR/cmake-platform/* $BANAN_TOOLCHAIN_PREFIX/share/cmake-3.26/Modules/Platform/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
build_meson() {
|
||||||
|
cd "$BANAN_BUILD_DIR/toolchain"
|
||||||
|
|
||||||
|
if [ ! -d $MESON_VERSION ]; then
|
||||||
|
if [ ! -f $MESON_TAR ]; then
|
||||||
|
echo "Downloading ${MESON_TAR}"
|
||||||
|
wget $MESON_URL
|
||||||
|
fi
|
||||||
|
echo "Unpacking ${MESON_TAR}"
|
||||||
|
tar xvf $MESON_TAR
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd $MESON_VERSION
|
||||||
|
|
||||||
|
echo "Building ${MESON_VERSION}"
|
||||||
|
|
||||||
|
mkdir -p "$BANAN_TOOLCHAIN_PREFIX/bin"
|
||||||
|
|
||||||
|
./packaging/create_zipapp.py --outfile "$BANAN_TOOLCHAIN_PREFIX/bin/meson" --interpreter '/usr/bin/env python3'
|
||||||
|
}
|
||||||
|
|
||||||
BUILD_BINUTILS=1
|
BUILD_BINUTILS=1
|
||||||
if [[ -f $BANAN_TOOLCHAIN_PREFIX/bin/$BANAN_TOOLCHAIN_TRIPLE-ld ]]; then
|
if [[ -f $BANAN_TOOLCHAIN_PREFIX/bin/$BANAN_TOOLCHAIN_TRIPLE-ld ]]; then
|
||||||
echo "You already seem to have a binutils installed."
|
echo "You already seem to have a binutils installed."
|
||||||
|
|
@ -241,6 +272,15 @@ if [[ -f $BANAN_TOOLCHAIN_PREFIX/bin/cmake ]]; then
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
BUILD_MESON=1
|
||||||
|
if [[ -f $BANAN_TOOLCHAIN_PREFIX/bin/meson ]]; then
|
||||||
|
echo "You already seem to have a meson installed."
|
||||||
|
read -e -p "Do you want to rebuild it [y/N]? " choice
|
||||||
|
if ! [[ "$choice" == [Yy]* ]]; then
|
||||||
|
BUILD_MESON=0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# delete everything but toolchain
|
# delete everything but toolchain
|
||||||
mkdir -p $BANAN_BUILD_DIR
|
mkdir -p $BANAN_BUILD_DIR
|
||||||
find $BANAN_BUILD_DIR -mindepth 1 -maxdepth 1 ! -name toolchain -exec rm -r {} +
|
find $BANAN_BUILD_DIR -mindepth 1 -maxdepth 1 ! -name toolchain -exec rm -r {} +
|
||||||
|
|
@ -268,6 +308,10 @@ if (($BUILD_CMAKE)); then
|
||||||
build_cmake
|
build_cmake
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if (($BUILD_MESON)); then
|
||||||
|
build_meson
|
||||||
|
fi
|
||||||
|
|
||||||
if (($BUILD_LIBSTDCPP)); then
|
if (($BUILD_LIBSTDCPP)); then
|
||||||
# delete sysroot and install libc
|
# delete sysroot and install libc
|
||||||
rm -r $BANAN_SYSROOT
|
rm -r $BANAN_SYSROOT
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue