[Tools v4 1/2] testbot: Run make_makefiles when a file is added or removed.

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

[Tools v4 1/2] testbot: Run make_makefiles when a file is added or removed.

Zebediah Figura
Signed-off-by: Zebediah Figura <[hidden email]>
---
v2: also run 'git add -A' so that new files will actually be seen by
make_makefiles.
v3: also check if tools/make_makefiles itself was modified.

 testbot/bin/build/Build.pl | 24 ++++++++++++++++++++++--
 1 file changed, 22 insertions(+), 2 deletions(-)

diff --git a/testbot/bin/build/Build.pl b/testbot/bin/build/Build.pl
index 051039f..82cd66a 100755
--- a/testbot/bin/build/Build.pl
+++ b/testbot/bin/build/Build.pl
@@ -74,6 +74,7 @@ sub ApplyPatch($$$)
 {
   my ($PatchFile, $PatchType, $BaseName) = @_;
 
+  my $NeedMakeMakefiles = !1;
   my $NeedMakefile = 0;
   my $NeedMakeInclude = !1;
   my $NeedBuildDeps = !1;
@@ -84,7 +85,7 @@ sub ApplyPatch($$$)
   {
     my $Line;
     while (defined($Line = <FH>) &&
-           ($NeedMakefile == 0 || ! $NeedMakeInclude || ! $NeedBuildDeps ||
+           (! $NeedMakeMakefiles || $NeedMakefile == 0 || ! $NeedMakeInclude || ! $NeedBuildDeps ||
             ! $NeedImplib || ! $NeedAutoconf || ! $NeedConfigure))
     {
       if ($Line =~ m=^diff.*(?:tests/Makefile\.in|Make\.vars\.in|Make\.rules\.in|Maketest\.rules\.in)$=)
@@ -111,13 +112,19 @@ sub ApplyPatch($$$)
       {
         $NeedConfigure = 1;
       }
+      elsif ($Line =~ m=^new file= || $Line =~ m=^deleted file= || $Line =~ m=^rename= ||
+             $Line =~ m=diff.*tools/make_makefiles=)
+      {
+        $NeedMakeMakefiles = $NeedConfigure = 1;
+      }
     }
     close FH;
   }
 
   InfoMsg "Applying patch\n";
   system("( cd $DataDir/wine && set -x && " .
-         "  git apply --verbose $PatchFile " .
+         "  git apply --verbose $PatchFile && " .
+         "  git add -A " .
          ") >> $LogDir/Build.log 2>&1");
   if ($? != 0)
   {
@@ -125,6 +132,19 @@ sub ApplyPatch($$$)
     return (-1, $NeedMakeInclude, $NeedBuildDeps, $NeedImplib, $NeedConfigure);
   }
 
+  if ($NeedMakeMakefiles)
+  {
+    InfoMsg "Running make_makefiles\n";
+    system("( cd $DataDir/wine && set -x && " .
+           " ./tools/make_makefiles " .
+           ") >> $LogDir/Build.log 2>&1");
+    if ($? != 0)
+    {
+      LogMsg "make_makefiles failed\n";
+      return (-1, $NeedMakeInclude, $NeedBuildDeps, $NeedImplib, $NeedConfigure);
+    }
+  }
+
   if ($NeedAutoconf && ! $NeedConfigure)
   {
     InfoMsg "Running autoconf\n";
--
2.7.4



Reply | Threaded
Open this post in threaded view
|

[Tools v4 2/2] testbot: Rebuild the tools when they are modified.

Zebediah Figura
Signed-off-by: Zebediah Figura <[hidden email]>
---
 testbot/bin/build/Build.pl | 41 +++++++++++++++++++++++++++++++++++++++--
 1 file changed, 39 insertions(+), 2 deletions(-)

diff --git a/testbot/bin/build/Build.pl b/testbot/bin/build/Build.pl
index 82cd66a..0261433 100755
--- a/testbot/bin/build/Build.pl
+++ b/testbot/bin/build/Build.pl
@@ -70,10 +70,30 @@ sub FatalError(@)
   exit 1;
 }
 
+sub BuildNative()
+{
+  mkdir "$DataDir/build-native" if (! -d "$DataDir/build-native");
+  system("( cd $DataDir/build-native && set -x && " .
+         "  rm -rf * && " .
+         "  time ../wine/configure --enable-win64 --without-x --without-freetype && " .
+         "  time make -j$ncpus depend && " .
+         "  time make -j$ncpus __tooldeps__ " .
+         ") >>$LogDir/Build.log 2>&1");
+
+  if ($? != 0)
+  {
+    LogMsg "Build native failed\n";
+    return !1;
+  }
+
+  return 1;
+}
+
 sub ApplyPatch($$$)
 {
   my ($PatchFile, $PatchType, $BaseName) = @_;
 
+  my $NeedBuildNative = !1;
   my $NeedMakeMakefiles = !1;
   my $NeedMakefile = 0;
   my $NeedMakeInclude = !1;
@@ -85,8 +105,8 @@ sub ApplyPatch($$$)
   {
     my $Line;
     while (defined($Line = <FH>) &&
-           (! $NeedMakeMakefiles || $NeedMakefile == 0 || ! $NeedMakeInclude || ! $NeedBuildDeps ||
-            ! $NeedImplib || ! $NeedAutoconf || ! $NeedConfigure))
+           (! $NeedBuildNative || ! $NeedMakeMakefiles || $NeedMakefile == 0 || ! $NeedMakeInclude ||
+            ! $NeedBuildDeps || ! $NeedImplib || ! $NeedAutoconf || ! $NeedConfigure))
     {
       if ($Line =~ m=^diff.*(?:tests/Makefile\.in|Make\.vars\.in|Make\.rules\.in|Maketest\.rules\.in)$=)
       {
@@ -117,6 +137,14 @@ sub ApplyPatch($$$)
       {
         $NeedMakeMakefiles = $NeedConfigure = 1;
       }
+      elsif ($Line =~ m=^diff.*tools/makedep.c=)
+      {
+        $NeedBuildNative = $NeedMakeMakefiles = $NeedConfigure = 1;
+      }
+      elsif ($Line =~ m=^diff.*tools/(?:winebuild|wrc)=)
+      {
+        $NeedBuildNative = 1;
+      }
     }
     close FH;
   }
@@ -132,6 +160,15 @@ sub ApplyPatch($$$)
     return (-1, $NeedMakeInclude, $NeedBuildDeps, $NeedImplib, $NeedConfigure);
   }
 
+  if ($NeedBuildNative)
+  {
+    InfoMsg "Building tools\n";
+    if (!BuildNative())
+    {
+      return (-1, $NeedMakeInclude, $NeedBuildDeps, $NeedImplib, $NeedConfigure);
+    }
+  }
+
   if ($NeedMakeMakefiles)
   {
     InfoMsg "Running make_makefiles\n";
--
2.7.4