summaryrefslogtreecommitdiffstats
path: root/scripts/genenv
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2014-02-17 17:47:38 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2014-02-18 10:42:07 +0100
commit658af1caf30d8bf88508a03dad2c411fb039b661 (patch)
tree937d55aaeb935325d60d611025a8931dc3c17a01 /scripts/genenv
parent72230bad19b2ec14e9b8e46d7abf9da04208a41f (diff)
downloadbarebox-658af1caf30d8bf88508a03dad2c411fb039b661.tar.gz
barebox-658af1caf30d8bf88508a03dad2c411fb039b661.tar.xz
defaultenv: simplify env dependencies
Finding out whether to rebuild the environment is a difficult task since we have to track all files in a directory. Instead of trying this, just rebuild the environment during every build and only if it differs to the last one overwrite the target. This way make only sees a change when the environment is changed. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'scripts/genenv')
-rwxr-xr-xscripts/genenv12
1 files changed, 10 insertions, 2 deletions
diff --git a/scripts/genenv b/scripts/genenv
index c14cd87a8c..d0b0ffd47f 100755
--- a/scripts/genenv
+++ b/scripts/genenv
@@ -10,7 +10,8 @@ basedir=$1
target=$3
shift 3
-tempdir="$objtree/.barebox_default_env"
+tempdir="${target}.genenv.tmp"
+tmpfile="$(mktemp)"
mkdir -p "$tempdir"
@@ -26,6 +27,13 @@ done
find $tempdir -name '.svn' -o -name '*~' -delete
-$objtree/scripts/bareboxenv -s $tempdir $target
+$objtree/scripts/bareboxenv -s $tempdir ${tmpfile}
+
+diff "${tmpfile}" "${target}" >/dev/null 2>/dev/null
+if [ $? != 0 ]; then
+ mv "${tmpfile}" "${target}"
+else
+ rm ${tmpfile}
+fi
rm -r $tempdir