# the given input file and parse the output to add a *.d target with the same
# dependencies.
-# The first two arguments to that script are special: $1 is the object
-# directory. This string is prefixed to both the .o and the .d target. $2 is
-# the directory that contains the *.cmdline.h files generated by gengetopt.
+# The first three arguments to that script are special: $1 is the
+# dependency directory and $2 is the object directory. These are used
+# to prefix the .d and .o targets respectively. $3 is the directory
+# that contains the *.cmdline.h files generated by gengetopt.
-# As gcc outputs the dependencies on the *.cmdline.h files either as either
-# foo.cmdline.h or as $cmdline_dir/foo,cmdline.h, depending on whether the
+# As gcc outputs the dependencies on the *.cmdline.h files either as
+# foo.cmdline.h or as $cmdline_dir/foo.cmdline.h, depending on whether the
# latter file exists, we prefix the former with $2/
-object_dir="$1"
-cmdline_dir="$2"
+dep_dir="$1"
+object_dir="$2"
+cmdline_dir="$3"
+shift
shift
shift
LC_ALL=C gcc -MM -MG "$@" \
- | sed -e "s@^\(.*\)\.o:@$object_dir/\1.d $object_dir/\1.o:@" \
+ | sed -e "s@^\(.*\)\.o:@$dep_dir/\1.d $object_dir/\1.o:@" \
-e "s@[ ^]\([a-zA-Z0-9_]\{1,\}\.cmdline.h\)@ $cmdline_dir/\1@g"