#!/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