Diff for /embedaddon/sudo/mkdep.pl between versions 1.1.1.1 and 1.1.1.2

version 1.1.1.1, 2012/02/21 16:23:02 version 1.1.1.2, 2012/05/29 12:26:49
Line 9  die "usage: $0 Makefile ...\n" unless $#ARGV >= 0; Line 9  die "usage: $0 Makefile ...\n" unless $#ARGV >= 0;
 my @incpaths;  my @incpaths;
 my %dir_vars;  my %dir_vars;
 my %implicit;  my %implicit;
   my %generated;
   
 # Read in MANIFEST fail if present  # Read in MANIFEST fail if present
 my %manifest;  my %manifest;
Line 48  sub mkdep { Line 49  sub mkdep {
     $makefile =~ s/\\\n//mg;      $makefile =~ s/\\\n//mg;
   
     # Expand some configure bits      # Expand some configure bits
       $makefile =~ s:\@DEV\@::g;
     $makefile =~ s:\@COMMON_OBJS\@:aix.lo:;      $makefile =~ s:\@COMMON_OBJS\@:aix.lo:;
     $makefile =~ s:\@SUDO_OBJS\@:preload.o selinux.o sesh.o sudo_noexec.lo:;      $makefile =~ s:\@SUDO_OBJS\@:preload.o selinux.o sesh.o sudo_noexec.lo:;
     $makefile =~ s:\@SUDOERS_OBJS\@:bsm_audit.lo linux_audit.lo ldap.lo plugin_error.lo:;      $makefile =~ s:\@SUDOERS_OBJS\@:bsm_audit.lo linux_audit.lo ldap.lo plugin_error.lo:;
     # XXX - fill in AUTH_OBJS from contents of the auth dir instead      # XXX - fill in AUTH_OBJS from contents of the auth dir instead
    $makefile =~ s:\@AUTH_OBJS\@:afs.lo aix_auth.lo bsdauth.lo dce.lo fwtk.lo getspwuid.lo kerb4.lo kerb5.lo pam.lo passwd.lo rfc1938.lo secureware.lo securid.lo securid5.lo sia.lo:;    $makefile =~ s:\@AUTH_OBJS\@:afs.lo aix_auth.lo bsdauth.lo dce.lo fwtk.lo getspwuid.lo kerb5.lo pam.lo passwd.lo rfc1938.lo secureware.lo securid5.lo sia.lo:;
    $makefile =~ s:\@LTLIBOBJS\@:closefrom.lo dlopen.lo fnmatch.lo getcwd.lo getgrouplist.lo getline.lo getprogname.lo glob.lo isblank.lo memrchr.lo mksiglist.lo mktemp.lo nanosleep.lo setenv.lo siglist.lo snprintf.lo strlcat.lo strlcpy.lo strsignal.lo unsetenv.lo utimes.lo globtest.o fnm_test.o:;    $makefile =~ s:\@LTLIBOBJS\@:closefrom.lo dlopen.lo fnmatch.lo getcwd.lo getgrouplist.lo getline.lo getprogname.lo glob.lo isblank.lo memrchr.lo mksiglist.lo mktemp.lo nanosleep.lo pw_dup.lo siglist.lo snprintf.lo strlcat.lo strlcpy.lo strsignal.lo utimes.lo globtest.o fnm_test.o:;
   
     # Parse OBJS lines      # Parse OBJS lines
     my %objs;      my %objs;
Line 70  sub mkdep { Line 72  sub mkdep {
         push(@incpaths, $1) unless $1 eq ".";          push(@incpaths, $1) unless $1 eq ".";
     }      }
   
       # Check for generated files
       if ($makefile =~ /GENERATED\s*=\s*(.+)$/m) {
           foreach (split(/\s+/, $1)) {
               $generated{$_} = 1;
           }
       }
   
     # Values of srcdir, top_srcdir, top_builddir, incdir      # Values of srcdir, top_srcdir, top_builddir, incdir
     %dir_vars = ();      %dir_vars = ();
     $file =~ m:^(.*)/+[^/]+:;      $file =~ m:^(.*)/+[^/]+:;
Line 108  sub mkdep { Line 117  sub mkdep {
             } elsif (exists $manifest{$src}) {              } elsif (exists $manifest{$src}) {
                 $src = $manifest{$src};                  $src = $manifest{$src};
                 foreach (sort { length($b) <=> length($a) } keys %dir_vars) {                  foreach (sort { length($b) <=> length($a) } keys %dir_vars) {
                       next if $_ eq "devdir";
                     last if $src =~ s:^\Q$dir_vars{$_}/\E:\$\($_\)/:;                      last if $src =~ s:^\Q$dir_vars{$_}/\E:\$\($_\)/:;
                 }                  }
             } else {              } else {
Line 141  sub mkdep { Line 151  sub mkdep {
         }          }
     }      }
   
    rename($file, $file . ".old");    my $newfile = $file . ".new";
    if (!open(MF, ">$file")) {    if (!open(MF, ">$newfile")) {
        warn("cannot open $file: $!\n");        warn("cannot open $newfile: $!\n");
        rename($file . ".old", $file); 
     } else {      } else {
        print MF $new_makefile || warn("cannot write $file: $!\n");        print MF $new_makefile || warn("cannot write $newfile: $!\n");
        close(MF);        close(MF) || warn("cannot close $newfile: $!\n");;
         rename($newfile, $file);
     }      }
 }  }
   
Line 198  sub find_header { Line 208  sub find_header {
     return ("\$(top_builddir\)/$hdr", "./${hdr}.in") if -r "./${hdr}.in";      return ("\$(top_builddir\)/$hdr", "./${hdr}.in") if -r "./${hdr}.in";
     return ("./$hdr", "$dir_vars{'srcdir'}/${hdr}.in") if -r "$dir_vars{'srcdir'}/${hdr}.in";      return ("./$hdr", "$dir_vars{'srcdir'}/${hdr}.in") if -r "$dir_vars{'srcdir'}/${hdr}.in";
   
       if (exists $generated{$hdr}) {
           my $hdr_path = $dir_vars{'devdir'} . '/' . $hdr;
           return ('$(devdir)/' . $hdr, $hdr_path) if -r $hdr_path;
       }
     foreach my $inc (@incpaths) {      foreach my $inc (@incpaths) {
         my $hdr_path = "$inc/$hdr";          my $hdr_path = "$inc/$hdr";
         # resolve variables in include path          # resolve variables in include path
         foreach (keys %dir_vars) {          foreach (keys %dir_vars) {
               next if $_ eq "devdir";
             $hdr_path =~ s/\$[\(\{]$_[\)\}]/$dir_vars{$_}/g;              $hdr_path =~ s/\$[\(\{]$_[\)\}]/$dir_vars{$_}/g;
         }          }
         return ("$inc/$hdr", $hdr_path) if -r $hdr_path;          return ("$inc/$hdr", $hdr_path) if -r $hdr_path;

Removed from v.1.1.1.1  
changed lines
  Added in v.1.1.1.2


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>