Blame sofort/tools/srctree.sh

e97786
#!/bin/sh
e97786
e97786
# srctree.sh: support for out-of-tree builds in posix make mode.
e97786
# this file is covered by COPYING.SOFORT.
e97786
e97786
set -eu
e97786
e97786
usage()
e97786
{
e97786
cat << EOF >&2
e97786
e97786
Usage:
e97786
  --help              show this HELP message
e97786
  --srctree=SRCTREE   set source directory
e97786
e97786
EOF
e97786
exit 1
e97786
}
e97786
e97786
e97786
# one
e97786
workdir=$(pwd -P)
e97786
srctree=
e97786
argloop=
e97786
e97786
e97786
for arg ; do
e97786
	case "$arg" in
e97786
		--help)
e97786
			usage
e97786
			;;
e97786
e97786
		--srctree=*)
e97786
			srctree=${arg#*=}
e97786
			;;
e97786
e97786
		--)
e97786
			argloop='done'
e97786
			;;
e97786
e97786
		*)
e97786
			if [ -z "$argloop" ]; then
e97786
				printf 'Invalid option: %s\n' "$arg" >&2
e97786
				usage
e97786
			fi
e97786
			;;
e97786
	esac
e97786
done
e97786
e97786
e97786
# two
e97786
if [ -z "$srctree" ] ; then
e97786
	usage
e97786
fi
e97786
e97786
cd -- "$srctree"
e97786
srctree=$(pwd -P)
e97786
cd -- "$workdir"
e97786
e97786
if [ "$srctree" = "$workdir" ]; then
e97786
	exit 0
e97786
fi
e97786
e97786
e97786
# three
e97786
for arg ; do
e97786
	case "$arg" in
e97786
		--srctree=*)
e97786
			;;
e97786
e97786
		--)
e97786
			;;
e97786
e97786
		*)
e97786
			stat "$arg" > /dev/null 2>&1 \
e97786
				|| ln -s -- "$srctree/$arg" "$arg"
e97786
			;;
e97786
	esac
e97786
done
e97786
e97786
e97786
# all done
e97786
exit 0