#!/bin/bash # PROJECT: XTchain # LICENSE: See the COPYING.md in the top level directory # FILE: build-linux.sh # DESCRIPTION: Toolchain building and assembly script # DEVELOPERS: Rafal Kupiec # Working Directories WRKDIR="$(pwd)" BINDIR="${WRKDIR}/binaries" # Architecture Settings ARCHS="i686 x86_64" # This function installs XTCHAIN scripts, wrappers and symlinks xtchain_build() { echo ">>> Building XTchain ..." mkdir -p ${BINDIR}/bin mkdir -p ${BINDIR}/lib/xtchain for ARCH in ${ARCHS}; do for EXEC in bin2c exetool windres xtcspecc; do if [ ! -e ${BINDIR}/bin/${EXEC} ]; then gcc ${WRKDIR}/tools/${EXEC}.c -o ${BINDIR}/bin/${EXEC} fi ln -sf ${EXEC} ${BINDIR}/bin/${ARCH}-w64-mingw32-${EXEC} done done cp ${WRKDIR}/scripts/xtclib ${BINDIR}/lib/xtchain/ cp ${WRKDIR}/scripts/xtchain ${BINDIR}/ } # Exit immediately on any failure set -e # Check number of CPU cores available if [[ ! -n ${CORES} ]]; then : ${CORES:=$(sysctl -n hw.ncpu 2>/dev/null)} : ${CORES:=$(nproc 2>/dev/null)} : ${CORES:=1} fi # Create working directories mkdir -p ${BINDIR} # XTchain xtchain_build # Save XT Toolchain version cd ${WRKDIR} : ${XTCVER:=$(git describe --exact-match --tags 2>/dev/null)} : ${XTCVER:=DEVEL} echo "${XTCVER}" > ${BINDIR}/Version # Prepare archive echo ">>> Creating toolchain archive ..." tar -I 'zstd -19' -cpf xtchain-${XTCVER}-linux.tar.zst -C ${BINDIR} .