Newer
Older
minerva / Ports / .hosted_defs.sh
@minerva minerva on 13 Jul 2 KB Initial commit
#!/usr/bin/env bash

SCRIPT="$(realpath $(dirname "${BASH_SOURCE[0]}"))"

export MINERVA_ARCH="${MINERVA_ARCH:-x86_64}"
export MINERVA_TOOLCHAIN="${MINERVA_TOOLCHAIN:-GNU}"

if [ -z "${HOST_CC:=}" ]; then
    export HOST_CC="${CC:=cc}"
    export HOST_CXX="${CXX:=c++}"
    export HOST_LD="${LD:=ld}"
    export HOST_AR="${AR:=ar}"
    export HOST_RANLIB="${RANLIB:=ranlib}"
    export HOST_PATH="${PATH:=}"
    export HOST_READELF="${READELF:=readelf}"
    export HOST_OBJCOPY="${OBJCOPY:=objcopy}"
    export HOST_OBJDUMP="${OBJDUMP:=objdump}"
    export HOST_STRIP="${STRIP:=strip}"
    export HOST_CXXFILT="${CXXFILT:=c++filt}"
    export HOST_PKG_CONFIG_DIR="${PKG_CONFIG_DIR:=}"
    export HOST_PKG_CONFIG_SYSROOT_DIR="${PKG_CONFIG_SYSROOT_DIR:=}"
    export HOST_PKG_CONFIG_LIBDIR="${PKG_CONFIG_LIBDIR:=}"
fi

export MINERVA_SOURCE_DIR="$(realpath "${SCRIPT}/../")"

if [ "$MINERVA_TOOLCHAIN" = "Clang" ]; then
    export MINERVA_BUILD_DIR="${MINERVA_SOURCE_DIR}/Build/${MINERVA_ARCH}clang"
    export MINERVA_TOOLCHAIN_BINDIR="${MINERVA_SOURCE_DIR}/Toolchain/Local/clang/bin"
    export CC="${MINERVA_ARCH}-pc-minerva-clang"
    export CXX="${MINERVA_ARCH}-pc-minerva-clang++"
    export LD="${MINERVA_TOOLCHAIN_BINDIR}/ld.lld"
    export AR="llvm-ar"
    export RANLIB="llvm-ranlib"
    export READELF="llvm-readelf"
    export OBJCOPY="llvm-objcopy"
    export OBJDUMP="llvm-objdump"
    export STRIP="llvm-strip"
    export CXXFILT="llvm-cxxfilt"
else
    export MINERVA_BUILD_DIR="${MINERVA_SOURCE_DIR}/Build/${MINERVA_ARCH}"
    export MINERVA_TOOLCHAIN_BINDIR="${MINERVA_SOURCE_DIR}/Toolchain/Local/${MINERVA_ARCH}/bin"
    export CC="${MINERVA_ARCH}-pc-minerva-gcc"
    export CXX="${MINERVA_ARCH}-pc-minerva-g++"
    export LD="${MINERVA_TOOLCHAIN_BINDIR}/${MINERVA_ARCH}-pc-minerva-ld"
    export AR="${MINERVA_ARCH}-pc-minerva-ar"
    export RANLIB="${MINERVA_ARCH}-pc-minerva-ranlib"
    export READELF="${MINERVA_ARCH}-pc-minerva-readelf"
    export OBJCOPY="${MINERVA_ARCH}-pc-minerva-objcopy"
    export OBJDUMP="${MINERVA_ARCH}-pc-minerva-objdump"
    export STRIP="${MINERVA_ARCH}-pc-minerva-strip"
    export CXXFILT="${MINERVA_ARCH}-pc-minerva-c++filt"
fi

export PATH="${MINERVA_TOOLCHAIN_BINDIR}:${MINERVA_SOURCE_DIR}/Toolchain/Local/cmake/bin:${HOST_PATH}"

export PKG_CONFIG_DIR=""
export PKG_CONFIG_SYSROOT_DIR="${MINERVA_BUILD_DIR}/Root"
export PKG_CONFIG_LIBDIR="${PKG_CONFIG_SYSROOT_DIR}/usr/local/lib/pkgconfig"

export MINERVA_INSTALL_ROOT="${MINERVA_BUILD_DIR}/Root"
export MINERVA_PORT_DIRS="${MINERVA_PORT_DIRS:+${MINERVA_PORT_DIRS}:}${MINERVA_SOURCE_DIR}/Ports"