mouse/src

Blob: scripts/mouse-cc

Raw · Blame

#!/bin/sh
set -eu

: "${MOUSE_SYSROOT:?MOUSE_SYSROOT is required}"
: "${MOUSE_LLD:?MOUSE_LLD is required}"
: "${MOUSE_BUILTINS:?MOUSE_BUILTINS is required}"
: "${MOUSE_LINK_COMPAT:?MOUSE_LINK_COMPAT is required}"

compiler=${MOUSE_CLANG:-clang}
link=yes

for argument do
    case "$argument" in
        -c|-E|-M|-MM|-S|-fsyntax-only|-shared|-r)
            link=no
            ;;
    esac
done

if [ "$link" = no ]; then
    exec "$compiler" \
        --target=x86_64-unknown-linux-musl \
        --sysroot="$MOUSE_SYSROOT" \
        "$@"
fi

exec "$compiler" \
    --target=x86_64-unknown-linux-musl \
    --sysroot="$MOUSE_SYSROOT" \
    --ld-path="$MOUSE_LLD" \
    -nostdlib \
    -static \
    "$MOUSE_SYSROOT/usr/lib/crt1.o" \
    "$MOUSE_SYSROOT/usr/lib/crti.o" \
    -L"$MOUSE_SYSROOT/usr/lib" \
    "$@" \
    -Wl,--start-group \
    "$MOUSE_BUILTINS" \
    "$MOUSE_LINK_COMPAT" \
    "$MOUSE_SYSROOT/usr/lib/libc.a" \
    -Wl,--end-group \
    "$MOUSE_SYSROOT/usr/lib/crtn.o"