jhbuild r1863 - in trunk: . jhbuild/modtypes



Author: fpeters
Date: Sun Jan 20 16:29:03 2008
New Revision: 1863
URL: http://svn.gnome.org/viewvc/jhbuild?rev=1863&view=rev

Log:
* jhbuild/modtypes/autotools.py: added possibility to run make clean or
make distclean on failures in configure or build states.
(closes: #119086)



Modified:
   trunk/ChangeLog
   trunk/jhbuild/modtypes/autotools.py

Modified: trunk/jhbuild/modtypes/autotools.py
==============================================================================
--- trunk/jhbuild/modtypes/autotools.py	(original)
+++ trunk/jhbuild/modtypes/autotools.py	Sun Jan 20 16:29:03 2008
@@ -38,6 +38,8 @@
     STATE_CHECKOUT       = 'checkout'
     STATE_FORCE_CHECKOUT = 'force_checkout'
     STATE_CLEAN          = 'clean'
+    STATE_FORCE_CLEAN    = 'force_clean'
+    STATE_FORCE_DISTCLEAN= 'force_distclean'
     STATE_CONFIGURE      = 'configure'
     STATE_BUILD          = 'build'
     STATE_CHECK          = 'check'
@@ -157,7 +159,8 @@
 
         buildscript.execute(cmd, cwd=builddir)
     do_configure.next_state = STATE_CLEAN
-    do_configure.error_states = [STATE_FORCE_CHECKOUT]
+    do_configure.error_states = [STATE_FORCE_CHECKOUT,
+            STATE_FORCE_CLEAN, STATE_FORCE_DISTCLEAN]
 
     def skip_clean(self, buildscript, last_state):
         return (not buildscript.config.makeclean or
@@ -178,7 +181,8 @@
         cmd = '%s %s' % (os.environ.get('MAKE', 'make'), self.makeargs)
         buildscript.execute(cmd, cwd=self.get_builddir(buildscript))
     do_build.next_state = STATE_CHECK
-    do_build.error_states = [STATE_FORCE_CHECKOUT, STATE_CONFIGURE]
+    do_build.error_states = [STATE_FORCE_CHECKOUT, STATE_CONFIGURE,
+            STATE_FORCE_CLEAN, STATE_FORCE_DISTCLEAN]
 
     def skip_check(self, buildscript, last_state):
         return (not buildscript.config.makecheck or
@@ -223,6 +227,24 @@
     do_install.next_state = Package.STATE_DONE
     do_install.error_states = []
 
+    def skip_force_clean(self, buildscript, last_state):
+        return False
+
+    def do_force_clean(self, buildscript):
+        self.do_clean(buildscript)
+    do_force_clean.next_state = STATE_CONFIGURE
+    do_force_clean.error_states = []
+
+    def skip_force_distclean(self, buildscript, last_state):
+        return False
+
+    def do_force_distclean(self, buildscript):
+        buildscript.set_action('Distcleaning', self)
+        cmd = '%s %s distclean' % (os.environ.get('MAKE', 'make'), self.makeargs)
+        buildscript.execute(cmd, cwd=self.get_builddir(buildscript))
+    do_force_distclean.next_state = STATE_CONFIGURE
+    do_force_distclean.error_states = []
+
 
 def parse_autotools(node, config, uri, repositories, default_repo):
     id = node.getAttribute('id')



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]