Patchwork [1/3] scripts/bitbake: try harder to check if pseudo exists

login
register
mail settings
Submitter Paul Eggleton
Date March 27, 2012, 11:50 a.m.
Message ID <4a226262b48b8f0c56019183604b70c0f565d5f2.1332848153.git.paul.eggleton@linux.intel.com>
Download mbox | patch
Permalink /patch/24641/
State New
Headers show

Comments

Paul Eggleton - March 27, 2012, 11:50 a.m.
If pseudodone doesn't exist, we can get STAGING_BINDIR_NATIVE by calling
bitbake -e and use that as the path to check for pseudo before we give
up and try to build it explicitly first.

This is useful for people who share TMPDIR between multiple build
directories.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
---
 scripts/bitbake |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)
Andreas Oberritter - March 27, 2012, 1:08 p.m.
On 27.03.2012 13:50, Paul Eggleton wrote:
> If pseudodone doesn't exist, we can get STAGING_BINDIR_NATIVE by calling
> bitbake -e and use that as the path to check for pseudo before we give
> up and try to build it explicitly first.
> 
> This is useful for people who share TMPDIR between multiple build
> directories.
> 
> Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>

This adds a 3s delay over the previous setup on my build system, which I 
deem acceptable. See one minor suggestion inline.

Acked-by: Andreas Oberritter <obi@opendreambox.org>

> ---
>  scripts/bitbake |   12 +++++++++---
>  1 files changed, 9 insertions(+), 3 deletions(-)
> 
> diff --git a/scripts/bitbake b/scripts/bitbake
> index 45c8697..1ba1839 100755
> --- a/scripts/bitbake
> +++ b/scripts/bitbake
> @@ -53,14 +53,21 @@ if [ "`pwd`" != "$BUILDDIR" ] ; then
>  fi
>  
>  buildpseudo="1"
> -if [ $needpseudo = "1" ] && [ -e "$BUILDDIR/pseudodone" ]; then
> -    PSEUDOBINDIR=`cat $BUILDDIR/pseudodone`
> +if [ $needpseudo = "1" ]; then
> +    if [ -e "$BUILDDIR/pseudodone" ]; then
> +        PSEUDOBINDIR=`cat $BUILDDIR/pseudodone`
> +    else
> +        PSEUDOBINDIR=`bitbake -e | grep STAGING_BINDIR_NATIVE=\" | cut -d '=' -f2 | cut -d '"' -f2`

I think using sed might improve readability:

bitbake -e | grep ^STAGING_BINDIR_NATIVE= | sed -e 's,^STAGING_BINDIR_NATIVE="\(.*\)"$,\1,'

This may be a subjective impression, though.

> +    fi
>      if [ -e "$PSEUDOBINDIR/pseudo" -a -e "$PSEUDOBINDIR/tar" -a "$needtar" = "1" ]; then
>          buildpseudo="0"
>      fi
>      if [ -e "$PSEUDOBINDIR/pseudo" -a $needtar = "0" ]; then
>          buildpseudo="0"
>      fi
> +    if [ $buildpseudo = "0" -a ! -e "$BUILDDIR/pseudodone" ] ; then
> +        echo $PSEUDOBINDIR > $BUILDDIR/pseudodone
> +    fi
>  fi
>  if [ $needpseudo = "0" ]; then
>      buildpseudo="0"
> @@ -104,7 +111,6 @@ BITBAKE=`which bitbake`
>  export PATH=$OLDPATH
>  if [ $needpseudo = "1" ]; then
>      export PSEUDO_BUILD=2
> -    PSEUDOBINDIR=`cat $BUILDDIR/pseudodone`
>      PSEUDO_BINDIR=$PSEUDOBINDIR PSEUDO_LIBDIR=$PSEUDOBINDIR/../lib/pseudo/lib PSEUDO_PREFIX=$PSEUDOBINDIR/../../ PSEUDO_DISABLED=1 $PSEUDOBINDIR/pseudo $BITBAKE $@
>  else
>      export PSEUDO_BUILD=0
Paul Eggleton - March 27, 2012, 1:14 p.m.
On Tuesday 27 March 2012 15:08:28 Andreas Oberritter wrote:
> On 27.03.2012 13:50, Paul Eggleton wrote:
> > +        PSEUDOBINDIR=`bitbake -e | grep STAGING_BINDIR_NATIVE=\" | cut -d
> > '=' -f2 | cut -d '"' -f2`
> I think using sed might improve readability:
> 
> bitbake -e | grep ^STAGING_BINDIR_NATIVE= | sed -e
> 's,^STAGING_BINDIR_NATIVE="\(.*\)"$,\1,'
> 
> This may be a subjective impression, though.

I just copied this from further down in the script. Personally I find the 
original more readable although the sed version spawns less processes.

Cheers,
Paul

Patch

diff --git a/scripts/bitbake b/scripts/bitbake
index 45c8697..1ba1839 100755
--- a/scripts/bitbake
+++ b/scripts/bitbake
@@ -53,14 +53,21 @@  if [ "`pwd`" != "$BUILDDIR" ] ; then
 fi
 
 buildpseudo="1"
-if [ $needpseudo = "1" ] && [ -e "$BUILDDIR/pseudodone" ]; then
-    PSEUDOBINDIR=`cat $BUILDDIR/pseudodone`
+if [ $needpseudo = "1" ]; then
+    if [ -e "$BUILDDIR/pseudodone" ]; then
+        PSEUDOBINDIR=`cat $BUILDDIR/pseudodone`
+    else
+        PSEUDOBINDIR=`bitbake -e | grep STAGING_BINDIR_NATIVE=\" | cut -d '=' -f2 | cut -d '"' -f2`
+    fi
     if [ -e "$PSEUDOBINDIR/pseudo" -a -e "$PSEUDOBINDIR/tar" -a "$needtar" = "1" ]; then
         buildpseudo="0"
     fi
     if [ -e "$PSEUDOBINDIR/pseudo" -a $needtar = "0" ]; then
         buildpseudo="0"
     fi
+    if [ $buildpseudo = "0" -a ! -e "$BUILDDIR/pseudodone" ] ; then
+        echo $PSEUDOBINDIR > $BUILDDIR/pseudodone
+    fi
 fi
 if [ $needpseudo = "0" ]; then
     buildpseudo="0"
@@ -104,7 +111,6 @@  BITBAKE=`which bitbake`
 export PATH=$OLDPATH
 if [ $needpseudo = "1" ]; then
     export PSEUDO_BUILD=2
-    PSEUDOBINDIR=`cat $BUILDDIR/pseudodone`
     PSEUDO_BINDIR=$PSEUDOBINDIR PSEUDO_LIBDIR=$PSEUDOBINDIR/../lib/pseudo/lib PSEUDO_PREFIX=$PSEUDOBINDIR/../../ PSEUDO_DISABLED=1 $PSEUDOBINDIR/pseudo $BITBAKE $@
 else
     export PSEUDO_BUILD=0