mirror of
https://github.com/clearlinux/graphene.git
synced 2026-09-06 05:41:37 +00:00
On NixOS/Guix tools are not installed under /usr/bin but are composed as symlink trees from immutable packages under /nix/store. Since pal_loader script already relies on bash to be in the PATH env var, we already have PATH defined here and can use relative paths.
97 lines
1.8 KiB
Bash
Executable File
97 lines
1.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
while :
|
|
do
|
|
case "$1" in
|
|
"SGX")
|
|
SGX=1
|
|
export SGX
|
|
;;
|
|
"GDB")
|
|
GDB=1
|
|
;;
|
|
*)
|
|
break
|
|
;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
RUNTIME_DIR=$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")
|
|
if [ -z "$PAL_HOST" ]; then
|
|
if ! command -v make >/dev/null; then
|
|
libpal="$RUNTIME_DIR/libpal-*.so"
|
|
libpal="$(echo -n "$libpal")"
|
|
libpal="${libpal//$RUNTIME_DIR\//}"
|
|
if [ "$libpal" = 'libpal-*.so' ]; then
|
|
echo "Unable to detect PAL_HOST. Please install the make program."
|
|
exit 1
|
|
fi
|
|
|
|
array=("$libpal")
|
|
if [ ${#array[@]} -ne 1 ]; then
|
|
echo "Multiple libpal detected ($libpal). Please explicitly set the environment variable PAL_HOST."
|
|
exit 1
|
|
fi
|
|
|
|
PAL_HOST="${libpal%.so}"
|
|
PAL_HOST="${PAL_HOST#libpal-}"
|
|
else
|
|
PAL_HOST=$(make --no-print-directory --quiet -f "$RUNTIME_DIR/../Scripts/Makefile.configs" print_host 2>&1)
|
|
fi
|
|
fi
|
|
|
|
MANIFEST=
|
|
PREFIX=()
|
|
PAL_CMD=$RUNTIME_DIR/pal-$PAL_HOST
|
|
|
|
if [ "$GDB" == "1" ]; then
|
|
GDB=$RUNTIME_DIR/pal_gdb-$PAL_HOST
|
|
if [ ! -f "$GDB" ]; then
|
|
GDB="gdb"
|
|
fi
|
|
fi
|
|
|
|
if [ "$GDB" != "" ] && [ "$GDB" != "0" ]; then
|
|
PREFIX=("$GDB" -q)
|
|
if [ -n "$INSIDE_EMACS" ]; then
|
|
PREFIX+=("-i=mi")
|
|
fi
|
|
PREFIX+=("--args")
|
|
fi
|
|
|
|
if [ "$PERF" == "1" ]; then
|
|
PREFIX=(perf stat)
|
|
fi
|
|
|
|
if [ "$MEMUSG" == "1" ]; then
|
|
PREFIX=("$RUNTIME_DIR/../Scripts/memusg")
|
|
fi
|
|
|
|
while [ "$1" != "" ];
|
|
do
|
|
if [ "$MANIFEST" == "" ]; then
|
|
MANIFEST=$1
|
|
shift
|
|
continue
|
|
fi
|
|
|
|
break
|
|
done
|
|
|
|
if [ "$MANIFEST" == "" ]; then
|
|
echo "Usage: $0 [<executable_path>|<manifest_path>] <args>..."
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -f "$PAL_CMD" ]; then
|
|
echo "$PAL_CMD is not built"
|
|
exit 1
|
|
fi
|
|
|
|
if [ ${#PREFIX[@]} -eq 0 ]; then
|
|
exec "$PAL_CMD" init "$MANIFEST" "$@"
|
|
else
|
|
exec "${PREFIX[@]}" "$PAL_CMD" init "$MANIFEST" "$@"
|
|
fi
|