Alexandre Julliard : make_dlls: Update the directory list in configure. ac too.

Alexandre Julliard julliard at wine.codeweavers.com
Fri Aug 25 05:26:58 CDT 2006


Module: wine
Branch: master
Commit: 39f357f873f1c51150c4a817503ef4286232cf51
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=39f357f873f1c51150c4a817503ef4286232cf51

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Fri Aug 25 11:32:42 2006 +0200

make_dlls: Update the directory list in configure.ac too.

---

 dlls/make_dlls |   78 +++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 63 insertions(+), 15 deletions(-)

diff --git a/dlls/make_dlls b/dlls/make_dlls
index 9bd3710..339e28c 100755
--- a/dlls/make_dlls
+++ b/dlls/make_dlls
@@ -1,7 +1,6 @@
 #!/usr/bin/perl -w
 #
 # Update the dll dependencies in the dlls main Makefile.in.
-# Must be run in the dlls/ directory of the Wine tree.
 #
 # Copyright 2001 Alexandre Julliard
 #
@@ -22,9 +21,8 @@ #
 
 use strict;
 
-my $makefiles = `find . -name Makefile.in -print`;
-
 my %directories = ();
+my %testdirs = ();
 my %importlibs = ();
 my %static_implibs = ();
 my %staticlib_dirs = ();
@@ -46,15 +44,39 @@ sub needs_symlink($)
     return $mod ne $directories{$_[0]};
 }
 
-foreach my $i (split(/\s/,$makefiles))
+sub update_file($)
 {
-    my $module;
+    my $file = shift;
+    if (!system "cmp $file $file.new >/dev/null")
+    {
+        unlink "$file.new";
+        print "$file is unchanged\n";
+    }
+    else
+    {
+        rename "$file.new", "$file";
+        print "$file updated\n";
+    }
+}
 
-    next if $i =~ /\/tests\/Makefile.in/;
+# if we are inside the dlls dir, go up one level
+if (! -f "configure.ac" && -f "../configure.ac") { chdir(".."); }
+
+my $makefiles = `find dlls -name Makefile.in -print`;
+
+foreach my $i (split(/\s/,$makefiles))
+{
+    if ($i =~ /dlls\/(.*)\/tests\/Makefile.in/)
+    {
+        $testdirs{$1} = "$1/tests";
+        next;
+    }
 
     open MAKE,$i;
 
-    $module = undef;
+    my $module = undef;
+    my $dir = $i;
+
     while (<MAKE>)
     {
         chop;
@@ -67,12 +89,12 @@ foreach my $i (split(/\s/,$makefiles))
             $module = $1;
             if ($module =~ /^lib.*\.a$/)
             {
-                ($staticlib_dirs{$module} = $i) =~ s/^\.\/(.*)\/[^\/]+$/$1/;
+                ($staticlib_dirs{$module} = $i) =~ s/^dlls\/(.*)\/[^\/]+$/$1/;
                 die "invalid module $module in dir $staticlib_dirs{$module}\n" if "lib$staticlib_dirs{$module}.a" ne $module;
             }
             else
             {
-                ($directories{$module} = $i) =~ s/^\.\/(.*)\/[^\/]+$/$1/;
+                ($directories{$module} = $i) =~ s/^dlls\/(.*)\/[^\/]+$/$1/;
             }
             next;
         }
@@ -99,7 +121,7 @@ foreach my $i (split(/\s/,$makefiles))
     close MAKE;
 }
 
-open NEWMAKE,">Makefile.in.new" or die "cannot create Makefile.in.new";
+open NEWMAKE,">dlls/Makefile.in.new" or die "cannot create dlls/Makefile.in.new";
 
 ################################################################
 # makefile header
@@ -349,13 +371,12 @@ ### Dependencies:
 EOF
 
 close NEWMAKE;
-rename "Makefile.in.new", "Makefile.in";
-printf "Successfully updated Makefile.in\n";
+update_file("dlls/Makefile.in");
 
 ################################################################
 # .gitignore file
 
-open GITIGNORE, ">.gitignore.new" or die "cannot create .gitignore.new";
+open GITIGNORE, ">dlls/.gitignore.new" or die "cannot create dlls/.gitignore.new";
 print GITIGNORE "# Automatically generated by make_dlls; DO NOT EDIT!!\n";
 
 my @ignores =
@@ -387,5 +408,32 @@ foreach my $mod (sort keys %importlibs)
 print GITIGNORE join("\n", sort @ignores) . "\n";
 
 close GITIGNORE;
-rename ".gitignore.new", ".gitignore";
-printf "Successfully updated .gitignore\n";
+update_file("dlls/.gitignore");
+
+################################################################
+# configure.ac file
+
+open OLD_CONFIG, "configure.ac" or die "cannot open configure.ac";
+open NEW_CONFIG, ">configure.ac.new" or die "cannot create configure.ac.new";
+
+while (<OLD_CONFIG>)
+{
+    print NEW_CONFIG $_;
+    last if /^dlls\/Makefile/;
+}
+
+foreach my $dir (sort (values %directories, values %staticlib_dirs, values %testdirs))
+{
+    print NEW_CONFIG "dlls/$dir/Makefile\n";
+}
+
+my $skip=1;
+while (<OLD_CONFIG>)
+{
+    $skip = 0 unless /^dlls\//;
+    print NEW_CONFIG $_ unless $skip;
+}
+
+close OLD_CONFIG;
+close NEW_CONFIG;
+update_file("configure.ac");




More information about the wine-cvs mailing list