Module: tools Branch: master Commit: 04bc7e73ac4d03f9a1c201e7cc2d846e6b1858cf URL: http://source.winehq.org/git/tools.git/?a=commit;h=04bc7e73ac4d03f9a1c201e7c...
Author: Alexandre Julliard julliard@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 +}