X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=utils%2FmkdependC%2FmkdependC.prl;h=e1f8f39fc0603338a712fa6cf466f093fed35bd2;hb=b20e2bee6b0a734563f456dc346f91a3286d84b0;hp=166c3f16a701e4b33602e916a697b17a068c4f45;hpb=34cc75e1a62638f2833815746ebce0a9114dc26b;p=ghc-hetmet.git diff --git a/utils/mkdependC/mkdependC.prl b/utils/mkdependC/mkdependC.prl index 166c3f1..e1f8f39 100644 --- a/utils/mkdependC/mkdependC.prl +++ b/utils/mkdependC/mkdependC.prl @@ -6,6 +6,9 @@ # # ToDo: strip out all the .h junk # + +use File::Temp qw/ tempfile tempdir /;; + ($Pgm = $0) =~ s/.*\/([^\/]+)$/\1/; $Usage = "usage: $Pgm: not done yet\n"; @@ -178,17 +181,17 @@ sub slurp_file { # follows an example in the `open' item in perl man page $fname = &tidy_dir_names($fname); - ($tempfile = $fname) =~ s/\.[^\.]*$/\.d/; - $tempfile =~ s|.*/([^/]+)$|$1|g; + ($fh, $tempfile) = tempfile(DIR => '.', SUFFIX => '.d'); + close $fh; # ${CPP} better be 'gcc -E', or the -x option will fail... # ..and the -MM & -MMD. - $result = system("${CPP} -MM -MMD $Include_dirs @Defines -x c $fname $ignore_output"); + $result = system("${CPP} -MM -MMD $Include_dirs @Defines -x c $fname -o $tempfile $ignore_output"); if ($result != 0) { # On the cheesy side..we do want to know what went wrong, so # re-run the command. - $result = system("${CPP} -MM -MMD $Include_dirs @Defines -x c $fname "); + $result = system("${CPP} -MM -MMD $Include_dirs @Defines -x c $fname -o $tempfile"); if ($result != 0) { unlink($tempfile); exit($result);