aboutsummaryrefslogtreecommitdiff
path: root/tools/cross.sh
diff options
context:
space:
mode:
authorIan Moffett <ian@osmora.org>2024-06-24 22:55:29 -0400
committerIan Moffett <ian@osmora.org>2024-06-24 22:55:29 -0400
commit236963e7563be3e3f8220dac7bb4af446928e194 (patch)
treee521ea226db0345bbb3679fffe09d96254b7dc73 /tools/cross.sh
parent214eadc62b5578f76c98a38a28f8b3d80ac4d6ad (diff)
Clean out for expt
Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'tools/cross.sh')
-rw-r--r--tools/cross.sh164
1 files changed, 0 insertions, 164 deletions
diff --git a/tools/cross.sh b/tools/cross.sh
deleted file mode 100644
index 52e7b1b..0000000
--- a/tools/cross.sh
+++ /dev/null
@@ -1,164 +0,0 @@
-#!/bin/bash
-
-#
-# Copyright (c) 2023-2024 Ian Marco Moffett and the Osmora Team.
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# 1. Redistributions of source code must retain the above copyright notice,
-# this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-# 3. Neither the name of Hyra nor the names of its contributors may be used
-# to endorse or promote products derived from this software without
-# specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-#
-
-################################################################
-# Toolchain configuration
-################################################################
-
-set -e
-
-if [ "$1" == "amd64" ]
-then
- TARGET="x86_64-hyra"
-else
- TARGET="$1-elf"
-fi
-
-BINUTILS_VERSION=2.42
-GCC_VERSION=13.2.0
-BINUTILS_NAME="binutils-$BINUTILS_VERSION"
-BINUTILS_TARBALL="$BINUTILS_NAME.tar.xz"
-BINUTILS_URL="https://ftp.gnu.org/gnu/binutils/$BINUTILS_TARBALL"
-GCC_NAME="gcc-$GCC_VERSION"
-GCC_TARBALL="$GCC_NAME.tar.xz"
-GCC_URL="https://ftp.gnu.org/gnu/gcc/gcc-$GCC_VERSION/$GCC_TARBALL"
-
-# Remove debugging information, it takes up a lot of space
-export CFLAGS="-g0"
-export CXXFLAGS="-g0"
-
-# System-dependent configuration
-SYSTEM_NAME="$(uname -s)"
-MAKE="make"
-NPROC="nproc"
-if [ "$SYSTEM_NAME" = "OpenBSD" ]; then
- MAKE="gmake"
- NPROC="sysctl -n hw.ncpuonline"
-elif [ "$SYSTEM_NAME" = "FreeBSD" ]; then
- MAKE="gmake"
- NPROC="sysctl -n hw.ncpu"
-elif [ "$SYSTEM_NAME" = "Darwin" ]; then
- NPROC="sysctl -n hw.ncpu"
-fi
-CORES="$($NPROC)"
-
-# Set build paths
-PREFIX="$(pwd)/cross"
-export PATH="$PREFIX/bin:$PATH"
-
-# Create build directory
-mkdir -p "$PREFIX/build"
-cd "$PREFIX/build"
-
-################################################################
-# Download and extract sources
-################################################################
-
-if [ ! -f $BINUTILS_TARBALL ]; then
- echo "Downloading binutils..."
- curl $BINUTILS_URL -o $BINUTILS_TARBALL
-fi
-if [ ! -f $GCC_TARBALL ]; then
- echo "Downloading gcc..."
- curl $GCC_URL -o $GCC_TARBALL
-fi
-
-echo "Extracting binutils..."
-rm -rf $BINUTILS_NAME
-tar -xf $BINUTILS_TARBALL
-echo "Extracting gcc..."
-rm -rf $GCC_NAME
-tar -xf $GCC_TARBALL
-
-################################################################
-# Build packages
-################################################################
-
-echo "Removing previous builds..."
-rm -rf build-gcc build-binutils
-
-# Binutils build
-clear
-mkdir build-binutils
-
-echo "Applying binutils patch"
-cp -r $BINUTILS_NAME $BINUTILS_NAME-copy
-patch -s -p0 < ../../builddeps/binutils.patch
-rm -rf $BINUTILS_NAME-copy
-
-echo "Configuring $BINUTILS_NAME..."
-cd build-binutils
-../$BINUTILS_NAME/configure --target="$TARGET" --prefix="$PREFIX" --with-sysroot --disable-nls --disable-werror --enable-targets=all
-echo "Building $BINUTILS_NAME..."
-$MAKE -j$CORES
-echo "Installing $BINUTILS_NAME..."
-$MAKE install
-echo "Cleaning $BINUTILS_NAME..."
-cd ..
-rm -rf $BINUTILS_NAME build-binutils
-
-# GCC build
-clear
-echo "Downloading prerequisites for $GCC_NAME..."
-cd $GCC_NAME
-contrib/download_prerequisites
-cd ..
-
-echo "Applying GCC patch"
-cp -r $GCC_NAME $GCC_NAME-copy
-patch -s -p0 < ../../builddeps/gcc.patch
-rm -rf $GCC_NAME-copy
-
-echo "Configuring $GCC_NAME..."
-mkdir build-gcc
-cd build-gcc
-../$GCC_NAME/configure --target="$TARGET" --with-sysroot=/ --prefix="$PREFIX" --disable-nls --enable-languages=c,c++,lto --disable-multilib
-echo "Building all-gcc..."
-$MAKE all-gcc -j"$CORES"
-echo "Building all-target-libgcc..."
-$MAKE all-target-libgcc -j"$CORES"
-echo "Installing $GCC_NAME..."
-$MAKE install-gcc
-echo "Installing target-libgcc..."
-$MAKE install-target-libgcc
-echo "Cleaning $GCC_NAME..."
-cd ..
-rm -rf $GCC_NAME build-gcc
-
-################################################################
-# Cleanup
-################################################################
-
-clear
-"$TARGET"-ld -v
-"$TARGET"-gcc --version | head -n1
-echo "Build complete, binaries are in $PREFIX"
-echo "Finished in $(($SECONDS / 60)) minutes and $(($SECONDS % 60)) seconds"