diff --git a/Ports/.hosted_defs.sh b/Ports/.hosted_defs.sh index f7c3c4d8c0b..c430da4012f 100644 --- a/Ports/.hosted_defs.sh +++ b/Ports/.hosted_defs.sh @@ -1,11 +1,23 @@ #!/usr/bin/env bash + export SERENITY_SOURCE_DIR="$(realpath "${SCRIPT}/../")" -export SERENITY_BUILD_DIR="${SERENITY_SOURCE_DIR}/Build/${SERENITY_ARCH}" -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 PATH="${SERENITY_SOURCE_DIR}/Toolchain/Local/${SERENITY_ARCH}/bin:${HOST_PATH}" + +if [ "$SERENITY_TOOLCHAIN" = "Clang" ]; then + export SERENITY_BUILD_DIR="${SERENITY_SOURCE_DIR}/Build/${SERENITY_ARCH}clang" + export CC="clang --target=${SERENITY_ARCH}-pc-serenity --sysroot=${SERENITY_BUILD_DIR}/Root" + export CXX="clang++ --target=${SERENITY_ARCH}-pc-serenity --sysroot=${SERENITY_BUILD_DIR}/Root" + export AR="llvm-ar" + export RANLIB="llvm-ranlib" + export PATH="${SERENITY_SOURCE_DIR}/Toolchain/Local/clang/bin:${HOST_PATH}" +else + export SERENITY_BUILD_DIR="${SERENITY_SOURCE_DIR}/Build/${SERENITY_ARCH}" + 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 PATH="${SERENITY_SOURCE_DIR}/Toolchain/Local/${SERENITY_ARCH}/bin:${HOST_PATH}" +fi + export PKG_CONFIG_DIR="" export PKG_CONFIG_SYSROOT_DIR="${SERENITY_BUILD_DIR}/Root" export PKG_CONFIG_LIBDIR="${PKG_CONFIG_SYSROOT_DIR}/usr/lib/pkgconfig/:${PKG_CONFIG_SYSROOT_DIR}/usr/local/lib/pkgconfig" diff --git a/Ports/.port_include.sh b/Ports/.port_include.sh index d2fe8cc4ffd..acfab9ec145 100755 --- a/Ports/.port_include.sh +++ b/Ports/.port_include.sh @@ -3,6 +3,7 @@ set -eu SCRIPT="$(dirname "${0}")" export SERENITY_ARCH="${SERENITY_ARCH:-i686}" +export SERENITY_TOOLCHAIN="${SERENITY_TOOLCHAIN:-GCC}" if [ -z "${HOST_CC:=}" ]; then export HOST_CC="${CC:=cc}"