Alexandre Julliard : transl: Add config parameters for build tree and scripts directory.

Alexandre Julliard julliard at winehq.org
Sat Jun 20 12:10:25 CDT 2009


Module: tools
Branch: master
Commit: 04bc7e73ac4d03f9a1c201e7cc2d846e6b1858cf
URL:    http://source.winehq.org/git/tools.git/?a=commit;h=04bc7e73ac4d03f9a1c201e7cc2d846e6b1858cf

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Sat Jun 20 12:38:41 2009 +0200

transl: Add config parameters for build tree and scripts directory.

---

 transl/scripts/Master.sh        |   12 ++++++------
 transl/scripts/checkmakefile.pl |   26 +++++++++++++++-----------
 transl/scripts/config-example   |    6 ++++++
 transl/scripts/summary.pl       |    7 ++++---
 transl/scripts/ver.pl           |   15 ++++++++-------
 5 files changed, 39 insertions(+), 27 deletions(-)

diff --git a/transl/scripts/Master.sh b/transl/scripts/Master.sh
index ee7a27c..1c59744 100755
--- a/transl/scripts/Master.sh
+++ b/transl/scripts/Master.sh
@@ -27,12 +27,12 @@ if [ "$PREPARE_TREES" -eq 1 ]; then
         echo -n "Preparing tree(s)..."
     fi
     if [ ! -f "$WRCROOT/Makefile" ]; then
-        $WRCROOT/configure
+        (cd $WRCROOT && $SOURCEROOT/configure)
     fi
     make -C "$WRCROOT" depend >/dev/null 2>>"$WORKDIR/run.log" || die "make depend in wrc tree failed"
     make -C "$WRCROOT" tools >/dev/null 2>>"$WORKDIR/run.log" || die "make tools in wrc tree failed"
-    make -C "$SOURCEROOT" depend >/dev/null 2>>"$WORKDIR/run.log" || die "make depend in source tree failed"
-    make -C "$SOURCEROOT" include/stdole2.tlb >/dev/null 2>>"$WORKDIR/run.log" || die "make depend in source tree failed"
+    make -C "$BUILDROOT" depend >/dev/null 2>>"$WORKDIR/run.log" || die "make depend in build tree failed"
+    make -C "$BUILDROOT" include/stdole2.tlb >/dev/null 2>>"$WORKDIR/run.log" || die "make depend in build tree failed"
     if [ "x$NOVERBOSE" = "x" ]; then
         echo " done"
     fi
@@ -48,8 +48,8 @@ mkdir $WORKDIR/dumps/res
 mkdir $WORKDIR/new-langs
 
 # Analyze all the Makefiles
-find $SOURCEROOT/ -name Makefile.in -exec ./checkmakefile.pl \{\} \;
-./summary.pl "$WORKDIR"
+find $SOURCEROOT/ -name Makefile.in -exec $SCRIPTSDIR/checkmakefile.pl \{\} \;
+$SCRIPTSDIR/summary.pl "$WORKDIR" "$SCRIPTSDIR"
 
 # Check for a new languages
 for i in $WORKDIR/new-langs/*; do
@@ -68,7 +68,7 @@ mv -f $WORKDIR/langs $DESTDIR/langs
 mv -f $WORKDIR/dumps $DESTDIR/dumps
 cp -f $WORKDIR/run.log $DESTDIR/dumps/run.log
 
-rsync -r --delete conf $DESTDIR
+rsync -r --delete $SCRIPTSDIR/conf $DESTDIR
 
 # Deleting can take a bit longer so we do it after the new version is set up
 rm -Rf $DESTDIR/langs.old
diff --git a/transl/scripts/checkmakefile.pl b/transl/scripts/checkmakefile.pl
index c13c31f..e54c434 100755
--- a/transl/scripts/checkmakefile.pl
+++ b/transl/scripts/checkmakefile.pl
@@ -29,26 +29,28 @@ sub mycheck
 
     # files in dlls/ are compiled with __WINESRC__    
     my($defs) = "";
-    $defs = "-D__WINESRC__" if ($name =~ m,^${winedir}/?dlls,);
+    $defs = "-D__WINESRC__" if ($name =~ m,^${srcdir}/?dlls,);
 
     log_string("*** $name [$defs]");
 
     my($respath) = dirname($name);
-    $ret = system("$wrc -I$respath -I$winedir/include -I$winedir/dlls/user32 --verify-translation $defs $name $workdir/tmp.res 2>>$workdir/run.log >$workdir/ver.txt");
+    my $srcincl = "-I$respath -I$srcdir/include -I$srcdir/dlls/user32";
+    (my $objincl = $srcincl) =~ s!I$srcdir!I$objdir!g;
+    $ret = system("$wrc $srcincl $objincl --verify-translation $defs $name $workdir/tmp.res 2>>$workdir/run.log >$workdir/ver.txt");
     if ($ret == 0)
     {
-        $name =~ s,$winedir,,;
+        $name =~ s,$srcdir/,,;
         if ($name eq "dlls/kernel32/kernel.rc") {
-            system("./ver.pl \"$name\" \"$workdir\" nonlocale <$workdir/ver.txt");
+            system("$scriptsdir/ver.pl \"$name\" \"$workdir\" nonlocale $scriptsdir <$workdir/ver.txt");
             log_string("*** $name [$defs] (locale run)");
-            system("./ver.pl \"$name\" \"$workdir\" locale <$workdir/ver.txt");
+            system("$scriptsdir/ver.pl \"$name\" \"$workdir\" locale $scriptsdir <$workdir/ver.txt");
         } else {
-            system("./ver.pl \"$name\" \"$workdir\" normal <$workdir/ver.txt");
+            system("$scriptsdir/ver.pl \"$name\" \"$workdir\" normal $scriptsdir <$workdir/ver.txt");
         }
         $norm_fn= $name;
         $norm_fn =~ s/\.rc$//;
         $norm_fn =~ s/[^a-zA-Z0-9]/-/g;
-        $ret = system("$wrc -I$respath -I$winedir/include -I$winedir/dlls/user32 $defs $winedir$name $workdir/dumps/res/$norm_fn.res 2>>$workdir/run.log >/dev/null");
+        $ret = system("$wrc $srcincl $objincl $defs $srcdir/$name $workdir/dumps/res/$norm_fn.res 2>>$workdir/run.log >/dev/null");
         if ($ret != 0)
         {
             print "!!!!!!! 2nd pass return value: ".$ret."\n";        
@@ -98,11 +100,13 @@ while (<CONFIG>)
 }
 close(CONFIG);
 
-$winedir = $CONFIG{"SOURCEROOT"}."/";
-$wrc = $CONFIG{"WRCROOT"}."/tools/wrc/wrc";
-$workdir = $CONFIG{"WORKDIR"}."/";
+$srcdir = $CONFIG{"SOURCEROOT"};
+$objdir = $CONFIG{"BUILDROOT"} || $srcdir;
+$wrc = ($CONFIG{"WRCROOT"} || $objdir) . "/tools/wrc/wrc";
+$workdir = $CONFIG{"WORKDIR"};
+$scriptsdir = $CONFIG{"SCRIPTSDIR"} || ".";
 
-if ($winedir eq "/" || $wrc eq "/tools/wrc/wrc" || $workdir eq "/")
+if ($srcdir eq "" || $wrc eq "/tools/wrc/wrc" || $workdir eq "")
 {
     die("Config entry for SOURCEROOT, WRCROOT or WORKDIR missing\n");
 }
diff --git a/transl/scripts/config-example b/transl/scripts/config-example
index b8068dd..47cc4c5 100644
--- a/transl/scripts/config-example
+++ b/transl/scripts/config-example
@@ -3,9 +3,15 @@
 # Path to the Wine source tree to analyze
 SOURCEROOT=/path/to/wine-src
 
+# Path to the Wine build tree (if different from SOURCEROOT)
+BUILDROOT=/path/to/wine-src
+
 # Path to the Wine tree to take wrc from. Usually the same as SOURCEROOT. 
 WRCROOT=/path/to/wine-src
 
+# Directory containing the various scripts
+SCRIPTSDIR=.
+
 # The directory where to store the generated langs/ and dumps/. Usually the
 # directory with the PHP scripts.
 DESTDIR=../php
diff --git a/transl/scripts/summary.pl b/transl/scripts/summary.pl
index 377fea3..f1290b5 100755
--- a/transl/scripts/summary.pl
+++ b/transl/scripts/summary.pl
@@ -3,9 +3,10 @@
 # Helper script - create a summary for each language about how
 # many resources are translated
 
-die "This helper script take one argument" unless ($#ARGV == 0);
+die "This helper script takes two arguments" unless ($#ARGV == 1);
 
 $workdir = $ARGV[0];
+$scriptsdir = $ARGV[1];
 
 sub collapse {
     my($name) = shift @_;
@@ -13,7 +14,7 @@ sub collapse {
     $base_name =~ s/:[0-9a-f]{2}/:00/;
     if (not exists $tab_should_collapse{$name})
     {
-        open(NAMEFILE, "<conf/$base_name");
+        open(NAMEFILE, "<$scriptsdir/conf/$base_name");
         $content = <NAMEFILE>;
         close(NAMEFILE);
         if ($content =~  /\[ignore-sublang\]/) {
@@ -27,7 +28,7 @@ sub collapse {
     return $name;
 }
 
-opendir(DIR, "conf");
+opendir(DIR, "$scriptsdir/conf");
 @files = grep(!/^\./, readdir(DIR));
 closedir(DIR);
 
diff --git a/transl/scripts/ver.pl b/transl/scripts/ver.pl
index bafd8bb..9b7f289 100755
--- a/transl/scripts/ver.pl
+++ b/transl/scripts/ver.pl
@@ -3,11 +3,12 @@
 # Helper script - parse the results of wrc --verify-translation
 # and store then in $2/langs/* and $2/dumps/*
 
-die "This helper script takes three arguments" unless ($#ARGV == 2);
+die "This helper script takes at least three arguments" unless ($#ARGV >= 2);
 
 $filename = $ARGV[0];
 $workdir = $ARGV[1];
 $mode = $ARGV[2];
+$scriptsdir = $ARGV[3] || ".";
 
 $type=-1;
 $types[1] = "CURSOR";
@@ -64,7 +65,7 @@ sub collapse {
     $base_name =~ s/:[0-9a-f]{2}/:00/;
     if (not exists $tab_should_collapse{$name})
     {
-        open(NAMEFILE, "<conf/$base_name");
+        open(NAMEFILE, "<$scriptsdir/conf/$base_name");
         $content = <NAMEFILE>;
         close(NAMEFILE);
         if ($content =~  /\[ignore-sublang\]/) {
@@ -204,9 +205,9 @@ foreach $lang (@file_langs)
     {
         $basic_lang = $lang;
         $basic_lang =~ s/:[0-9a-f]{2}/:00/;
-        if (-e "conf/$lang") {
+        if (-e "$scriptsdir/conf/$lang") {
             open(LANGOUT, ">>$workdir/langs/$lang");
-        } elsif (-e "conf/$basic_lang") {
+        } elsif (-e "$scriptsdir/conf/$basic_lang") {
             open(LANGOUT, ">>$workdir/langs/$basic_lang");
         } else {
 #            print("Ignoring locale $lang\n");
@@ -214,7 +215,7 @@ foreach $lang (@file_langs)
         print LANGOUT "LOCALE $lang $filename ".($transl_count{$lang}+0)." ".($missing_count{$lang}+0)." ".($err_count{$lang}+0)."\n";
         $suffix = "#locale$lang";
     } else  {
-        if (-e "conf/$lang") {
+        if (-e "$scriptsdir/conf/$lang") {
             open(LANGOUT, ">>$workdir/langs/$lang");
         } else {
             open(LANGOUT, ">>$workdir/new-langs/$lang");
@@ -255,7 +256,7 @@ foreach $lang (@file_langs)
 
 if (!($mode eq "locale"))
 {
-    opendir(DIR, "conf");
+    opendir(DIR, "$scriptsdir/conf");
     @files = grep(!/^\./, readdir(DIR));
     closedir(DIR);
     foreach $lang (@files) {
@@ -269,4 +270,4 @@ if (!($mode eq "locale"))
             close(LANGOUT);
         }    
     }
-}
\ No newline at end of file
+}




More information about the wine-cvs mailing list