getdep.pl
上传用户:xinjie
上传日期:2021-05-30
资源大小:491k
文件大小:3k
源码类别:

BREW编程

开发平台:

Visual C++

  1. #! /usr/bin/env perl
  2. #############################################################################
  3. #
  4. #                             G E T D E P
  5. #
  6. # GENERAL DESCRIPTION
  7. #   Process the output of the C preprocessor into a nice list of dependencies.
  8. #   The -M option on tcc works poorly, and can't handle an assembly file.
  9. #   The first argument is the name of our object file.
  10. #   The second object is the name of our source (needed for <stdin>
  11. #   replacement).
  12. #
  13. # INVOCATION
  14. #   perl getdep.pl file.o file.c
  15. #
  16. # Copyright (c) 1998, 1999 by QUALCOMM Incorporated.  All Rights Reserved.
  17. #############################################################################
  18. #
  19. #                        EDIT HISTORY FOR FILE
  20. #
  21. # $Header:   L:/src/asw/MSM5100/vcs/getdep.plv   1.2   16 Jul 2001 16:48:56   karthick  $
  22. #
  23. # when       who     what, where, why
  24. # --------   ---     -------------------------------------------------------- 
  25. # 07/13/01   jmk     Modified #line pattern matching string to accept leading
  26. #                    whitespace as well
  27. # 02/21/00    mt     Changes for GNU make - put source as first dependency.
  28. # 09/15/00    mt     Change algorithm to remove dependencies on files that
  29. #                    are not in the directory.  Previous algorithm did not
  30. #                    always remove them.  Also, we now only want to remove
  31. #                    dependencies that are .h files.  This is because for
  32. #                    internal RAM builds we have dependencies that are
  33. #                    source files located in TARGETDIR.
  34. # 06/20/00   jcw     Changed TARGET to TARGETDIR since they can be different
  35. #                    in MSM5000 builds
  36. # 10/13/98   dlb     Initial version.
  37. #
  38. #############################################################################
  39. die "Usage: perl getdep.pl file.o file.cn"
  40.     unless $#ARGV == 1;
  41. $object = $ARGV[0];
  42. $source = $ARGV[1];
  43. $source =~ s///\/g;
  44. # The object is probably of the form 'XXnnnnname.o'.  Fix this to be
  45. # '$(TARGETDIR)name.o'.
  46. $object =~ s/^[A-Z0-9a-z]+\/$(TARGETDIR)\/;
  47. print "# Autogenerated dependency file via getdep.pl and preprocessor outputnn";
  48. print "$object: $sourcen";
  49. %deps = ();
  50. while (<STDIN>) {
  51.   next unless (/^s*#lines+d+s+"(.*)"/);
  52.   # Fix up a few names.
  53.   $name = $1;
  54.   $name =~ s/<stdin>/$source/;
  55.   $name =~ s///\/g;
  56.   print "$object: $namen" if $name =~ m/\/ && $name ne $source;
  57.   
  58.   #if ($name !~  /$source/ ) { print STDERR "$object: $namen"; }
  59.   #$deps{$name} = 1 if $name !~ /$source/;
  60. }
  61. ###########################################################################
  62. # End of Perl script.
  63. ###########################################################################