#!/bin/sh
HERE=`dirname "$0"`
TARGET=$1
shift

if [ -d /opt/picolibc-ci ]; then
    TOP=/opt/picolibc-ci
else
    TOP=/opt
fi

# Put only the relevant toolchain in PATH for specific CI targets.
# Fallback to previous behavior for other targets.
case "$TARGET" in
    *clang-hexagon*)
        for p in "$TOP"/*hexagon*/bin "$TOP"/*/models/*; do
            [ -d "$p" ] && PATH="$p":$PATH
        done
        ;;
    *clang-arm*|*clang-aarch64*|*clang-thumb*)
        for p in "$TOP"/LLVM-ET-Arm*/bin "$TOP"/*/models/*; do
            [ -d "$p" ] && PATH="$p":$PATH
        done
        ;;
    *)
        for p in "$TOP"/*/bin "$TOP"/*/models/*; do
            PATH="$p":$PATH
        done
        ;;
esac

ANALYZER="-Danalyzer=true"

CDEFS="-Dtests-cdefs=true -Dtests=false"

# Disable analyzer on m68k because the compiler gets very confused
# about complex values

case "$TARGET" in
    *m68k*)
	ANALYZER=""
	;;
esac

OPTIONS="$ANALYZER $CDEFS"

"$HERE"/do-run "$TARGET" $OPTIONS "$@"
