Update drivers
[vuplus_openembedded] / classes / rm_work.bbclass
index e0a4ccf..a53d12b 100644 (file)
@@ -6,6 +6,10 @@
 # INHERIT += "rm_work"
 #
 
+# Use the completion scheulder by default when rm_work is active
+# to try and reduce disk usage
+BB_SCHEDULER ?= "completion"
+
 RMWORK_ORIG_TASK := "${BB_DEFAULT_TASK}"
 BB_DEFAULT_TASK = "rm_work_all"
 
@@ -13,19 +17,34 @@ do_rm_work () {
     cd ${WORKDIR}
     for dir in *
     do
-        if [ `basename ${S}` = $dir ]; then
-            rm -rf $dir/*
-        elif [ $dir != 'temp' ]; then
-            rm -rf $dir
+        if [ `basename ${dir}` = "temp" ]; then
+            echo "Not removing temp"
+        else 
+            echo "Removing $dir" ; rm $dir -rf         
         fi
     done
 }
-# Uncomment me when we can use bitbake 1.8.8
-#addtask rm_work after do_${RMWORK_ORIG_TASK}
-addtask rm_work after do_build
+addtask rm_work after do_${RMWORK_ORIG_TASK}
 
 do_rm_work_all () {
        :
 }
 do_rm_work_all[recrdeptask] = "do_rm_work"
-addtask rm_work_all
+addtask rm_work_all after do_rm_work
+
+
+addhandler rmwork_stampfixing_eventhandler
+python rmwork_stampfixing_eventhandler() {
+    if bb.event.getName(e) == "StampUpdate":
+        for (fn, task) in e.targets:
+            if task == 'rm_work_all':
+                continue
+            stamp = "%s.do_rm_work" % e.stampPrefix[fn]
+            if os.path.exists(stamp):
+                dir = "%s.*" % e.stampPrefix[fn]
+                bb.note("Removing stamps: " + dir)
+                os.system('rm -f '+ dir)
+
+    return NotHandled
+}
+