summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2011-01-06 19:43:41 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-01-06 19:43:56 +0000
commitec6e4793dc79c61b780b74571db4cd66c1c04251 (patch)
tree116fa2753ef2ba81facd490eef6fab8bade1b898
parent4a10a5b438f49577fb29f4e277e2300cdce10ab8 (diff)
downloadopenembedded-core-ec6e4793dc79c61b780b74571db4cd66c1c04251.tar.gz
openembedded-core-ec6e4793dc79c61b780b74571db4cd66c1c04251.tar.bz2
openembedded-core-ec6e4793dc79c61b780b74571db4cd66c1c04251.zip
bitbake build.py: Stamp handling improvements
* Move stamp file deletion out of the internal stamp helper function * Add a new function to return the path to a stamp for a given task Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--bitbake/lib/bb/build.py16
1 files changed, 11 insertions, 5 deletions
diff --git a/bitbake/lib/bb/build.py b/bitbake/lib/bb/build.py
index 967aa21a70..3fc01486ca 100644
--- a/bitbake/lib/bb/build.py
+++ b/bitbake/lib/bb/build.py
@@ -376,7 +376,6 @@ def exec_task(fn, task, d):
def stamp_internal(task, d, file_name):
"""
Internal stamp helper function
- Removes any stamp for the given task
Makes sure the stamp directory exists
Returns the stamp path+filename
@@ -392,11 +391,9 @@ def stamp_internal(task, d, file_name):
return
stamp = "%s.%s" % (stamp, task)
+
bb.utils.mkdirhier(os.path.dirname(stamp))
- # Remove the file and recreate to force timestamp
- # change on broken NFS filesystems
- if os.access(stamp, os.F_OK):
- os.remove(stamp)
+
return stamp
def make_stamp(task, d, file_name = None):
@@ -405,6 +402,10 @@ def make_stamp(task, d, file_name = None):
(d can be a data dict or dataCache)
"""
stamp = stamp_internal(task, d, file_name)
+ # Remove the file and recreate to force timestamp
+ # change on broken NFS filesystems
+ if os.access(stamp, os.F_OK):
+ os.remove(stamp)
if stamp:
f = open(stamp, "w")
f.close()
@@ -415,6 +416,11 @@ def del_stamp(task, d, file_name = None):
(d can be a data dict or dataCache)
"""
stamp_internal(task, d, file_name)
+ if os.access(stamp, os.F_OK):
+ os.remove(stamp)
+
+def stampfile(taskname, d):
+ return stamp_internal(taskname, d, None)
def add_tasks(tasklist, d):
task_deps = data.getVar('_task_deps', d)