aboutsummaryrefslogtreecommitdiffstats
path: root/default.tool.do
blob: a4e18e73e36819092695610d43768bf03b70cc1d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/usr/bin/env bash
set -e
redo-ifchange .vars.rc
if [[ $1 = *-host.tool ]]; then prefix=H; else prefix=T; fi
case "${1##*/}" in
compile*.tool)
	vars=(CC CFLAGS CPPFLAGS)
	cmd='"$CC" -MMD -MF - "${CFLAGS[@]}" "${CPPFLAGS[@]}" -c -o "$3" "${1%.o}.c"'
	;;
link-*.tool)
	vars=(CC LDFLAGS LDLIBS)
	if [[ $1 = *-library* ]]; then shared='-shared '; else shared=''; fi
	cmd='"$CC" "${LDFLAGS[@]}" '"$shared"'"${objects[@]}" "${LDLIBS[@]}" -o "$3"'
	;;
*)
	echo "Invalid tool name $1" >&2
	exit 1 ;;
esac
for v in "${vars[@]}"; do cmd=${cmd//$v/$prefix$v}; done
. ./.vars.rc
exec >"$3"
echo "#generated by $0 $1"
declare -p "${vars[@]/#/$prefix}"
echo "$cmd"
if command -v redo-stamp &>/dev/null; then redo-stamp <"$3"; fi