blob: 80cf419e67de8196498b3e83eced39f9caa77a3a [file] [log] [blame]
#!/bin/sh -e
OUTPUT="$1"
shift
DEPFILE="$1"
shift
deps=()
args=()
while [ $# -gt 0 ]; do
arg="$1"
shift
case "$arg" in
@*)
file="${arg#@}"
# Weed out the duplicates.
new=true
for dep in "${deps[@]}"; do
if [ "$dep" = "$file" ]; then
new=false
fi
done
$new || continue
deps+=("$file")
set -- $(cat "$file") ${1+"$@"}
;;
--files)
args+=("$arg")
;;
--*)
args+=("$arg" "$1")
shift
;;
*)
args+=("$arg")
deps+=("$arg")
;;
esac
done
echo "$OUTPUT:" "${deps[@]}" > "$DEPFILE"
for arg in "${args[@]}"; do
echo "$arg"
done > "$OUTPUT"