X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=depend.sh;h=60d4eba6b8fc22ca5d0431444ec65d7cb2c74ab2;hp=db32f6c6ab834c88dceba94cdc2dd37fd6cfcb87;hb=656a02453498156bab09763011ff43b81db57634;hpb=2aa98426fca67a8b9c075ca7efea54aef18c0380 diff --git a/depend.sh b/depend.sh index db32f6c6..60d4eba6 100755 --- a/depend.sh +++ b/depend.sh @@ -1,4 +1,22 @@ #!/bin/sh -dir="$1" + +# Call gcc to output a rule suitable for make describing the dependencies of +# 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. + +# 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 +# latter file exists, we prefix the former with $2/ + +object_dir="$1" +cmdline_dir="$2" shift -gcc -MM -MG "$@" | sed -e "s@^\(.*\)\.o:@$dir/\1.d $dir/\1.o:@" +shift + +LC_ALL=C gcc -MM -MG "$@" \ + | sed -e "s@^\(.*\)\.o:@$object_dir/\1.d $object_dir/\1.o:@" \ + -e "s@[ ^]\([a-zA-Z0-9_]\{1,\}\.cmdline.h\)@ $cmdline_dir/\1@g"