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