jniregen.pl
上传用户:lyxiangda
上传日期:2007-01-12
资源大小:3042k
文件大小:3k
源码类别:

CA认证

开发平台:

WINDOWS

  1. #!/usr/local/bin/perl
  2. #
  3. # The contents of this file are subject to the Mozilla Public
  4. # License Version 1.1 (the "License"); you may not use this file
  5. # except in compliance with the License. You may obtain a copy of
  6. # the License at http://www.mozilla.org/MPL/
  7. # Software distributed under the License is distributed on an "AS
  8. # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
  9. # implied. See the License for the specific language governing
  10. # rights and limitations under the License.
  11. # The Original Code is the Netscape security libraries.
  12. # The Initial Developer of the Original Code is Netscape
  13. # Communications Corporation.  Portions created by Netscape are 
  14. # Copyright (C) 1994-2000 Netscape Communications Corporation.  All
  15. # Rights Reserved.
  16. # Contributor(s):
  17. # Alternatively, the contents of this file may be used under the
  18. # terms of the GNU General Public License Version 2 or later (the
  19. # "GPL"), in which case the provisions of the GPL are applicable 
  20. # instead of those above.  If you wish to allow use of your 
  21. # version of this file only under the terms of the GPL and not to
  22. # allow others to use your version of this file under the MPL,
  23. # indicate your decision by deleting the provisions above and
  24. # replace them with the notice and other provisions required by
  25. # the GPL.  If you do not delete the provisions above, a recipient
  26. # may use your version of this file under either the MPL or the
  27. # GPL.
  28. #
  29. # Input: -d dir foo1 foo2 . . .
  30. #        Compares generated "_jni/foo1.h" file with "foo1.class", and
  31. #        generated "_jni/foo2.h" file with "foo2.class", etc.
  32. #        (NOTE:  unlike its closely related cousin, outofdate.pl,
  33. #                the "-d dir" must always be specified)
  34. #
  35. # Returns: list of headers which are OLDER than corresponding class
  36. #          files (non-existant class files are considered to be real old :-)
  37. $found = 1;
  38. if ($ARGV[0] eq '-d')
  39. {
  40.     $classdir = $ARGV[1];
  41.     $classdir .= "/";
  42.     shift;
  43.     shift;
  44. }
  45. else
  46. {
  47.     print STDERR "Usage:  perl ", $0, " -d dir foo1 foo2 . . .n";
  48.     exit -1;
  49. }
  50. foreach $filename (@ARGV)
  51. {
  52.     $headerfilename = "_jni/";
  53.     $headerfilename .= $filename;
  54.     $headerfilename =~ s/./_/g;
  55.     $headerfilename .= ".h";
  56.     $classfilename = $filename;
  57.     $classfilename =~ s|.|/|g;
  58.     $classfilename .= ".class";
  59.     $classfilename = $classdir . $classfilename;
  60.     ( $dev, $ino, $mode, $nlink, $uid, $gid, $rdev, $size, $atime, $headermtime,
  61.       $ctime, $blksize, $blocks ) = stat( $headerfilename );
  62.     ( $dev, $ino, $mode, $nlink, $uid, $gid, $rdev, $size, $atime, $classmtime,
  63.       $ctime, $blksize, $blocks ) = stat( $classfilename );
  64.     if( $headermtime < $classmtime )
  65.     {
  66. # NOTE:  Since this is used by "javah", and "javah" refuses to overwrite
  67. #        an existing file, we force an unlink from this script, since
  68. #        we actually want to regenerate the header file at this time.
  69. unlink $headerfilename;
  70.         print $filename, " ";
  71.         $found = 0;
  72.     }
  73. }
  74. print "n";
  75. exit 0;