mirror of
https://github.com/SerenityOS/serenity
synced 2024-11-03 03:29:38 +00:00
ad0a001f0a
This lets us eliminate the extra arguments on CC and CXX for ports that care about CC and CXX pointing to actual filenames they can invoke realpath or basename on.
61 lines
2.6 KiB
Bash
61 lines
2.6 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
SCRIPT="$(dirname "${0}")"
|
|
|
|
export SERENITY_ARCH="${SERENITY_ARCH:-i686}"
|
|
export SERENITY_TOOLCHAIN="${SERENITY_TOOLCHAIN:-GNU}"
|
|
|
|
if [ -z "${HOST_CC:=}" ]; then
|
|
export HOST_CC="${CC:=cc}"
|
|
export HOST_CXX="${CXX:=c++}"
|
|
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_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 SERENITY_SOURCE_DIR="$(realpath "${SCRIPT}/../")"
|
|
|
|
if [ "$SERENITY_TOOLCHAIN" = "Clang" ]; then
|
|
export SERENITY_BUILD_DIR="${SERENITY_SOURCE_DIR}/Build/${SERENITY_ARCH}clang"
|
|
export SERENITY_TOOLCHAIN_BINDIR="${SERENITY_SOURCE_DIR}/Toolchain/Local/clang/bin"
|
|
export CC="${SERENITY_ARCH}-pc-serenity-clang"
|
|
export CXX="${SERENITY_ARCH}-pc-serenity-clang++"
|
|
export AR="llvm-ar"
|
|
export RANLIB="llvm-ranlib"
|
|
export READELF="llvm-readelf"
|
|
export OBJCOPY="llvm-objcopy"
|
|
export STRIP="llvm-strip"
|
|
export CXXFILT="llvm-cxxfilt"
|
|
# FIXME: Remove after next toolchain update (symlinks already in BuildClang.sh)
|
|
if [ ! -f "${SERENITY_TOOLCHAIN_BINDIR}/${SERENITY_ARCH}-pc-serenity-clang" ]; then
|
|
ln -s clang "${SERENITY_TOOLCHAIN_BINDIR}/${SERENITY_ARCH}-pc-serenity-clang"
|
|
ln -s clang++ "${SERENITY_TOOLCHAIN_BINDIR}/${SERENITY_ARCH}-pc-serenity-clang++"
|
|
echo "--sysroot=${SERENITY_BUILD_DIR}/Root" > "${SERENITY_TOOLCHAIN_BINDIR}/${SERENITY_ARCH}-pc-serenity.cfg"
|
|
fi
|
|
else
|
|
export SERENITY_BUILD_DIR="${SERENITY_SOURCE_DIR}/Build/${SERENITY_ARCH}"
|
|
export SERENITY_TOOLCHAIN_BINDIR="${SERENITY_SOURCE_DIR}/Toolchain/Local/${SERENITY_ARCH}/bin"
|
|
export CC="${SERENITY_ARCH}-pc-serenity-gcc"
|
|
export CXX="${SERENITY_ARCH}-pc-serenity-g++"
|
|
export AR="${SERENITY_ARCH}-pc-serenity-ar"
|
|
export RANLIB="${SERENITY_ARCH}-pc-serenity-ranlib"
|
|
export READELF="${SERENITY_ARCH}-pc-serenity-readelf"
|
|
export OBJCOPY="${SERENITY_ARCH}-pc-serenity-objcopy"
|
|
export STRIP="${SERENITY_ARCH}-pc-serenity-strip"
|
|
export CXXFILT="${SERENITY_ARCH}-pc-serenity-c++filt"
|
|
fi
|
|
|
|
export PATH="${SERENITY_TOOLCHAIN_BINDIR}:${HOST_PATH}"
|
|
|
|
export PKG_CONFIG_DIR=""
|
|
export PKG_CONFIG_SYSROOT_DIR="${SERENITY_BUILD_DIR}/Root"
|
|
export PKG_CONFIG_LIBDIR="${PKG_CONFIG_SYSROOT_DIR}/usr/local/lib/pkgconfig"
|
|
|
|
export SERENITY_INSTALL_ROOT="${SERENITY_BUILD_DIR}/Root"
|