[PATCH 1/2] Add option to limit bootstrap to a single arch

Gedare Bloom gedare at rtems.org
Fri Feb 19 14:50:50 UTC 2016


You may want to use the sb-bootstrap in RSB.

You can invoke bootstrap from any directory with config.ac to avoid
rebootstrapping the whole tree..

On Fri, Feb 19, 2016 at 8:07 AM, Martin Erik Werner
<martinerikwerner at gmail.com> wrote:
> Using the -o|--only <arch> option, it is now possible to limit the
> bootstrapping operation of arch-specific libbsp, libcpu and cpukit paths
> to a single arch, for example:
>
>   $ bootstrap -p -o or1k
>
> and
>
>   $ bootstrap -o or1k
>
> This is a somewhat ugly implementation, but may be sufficient for the
> intended usage.
>
> * The cleaning operation is not currently able to selectively clean
>   archs
> * It is currently not possible to specify more than one arch at a time
>
> This reduces bootstrap time to around a third compared to a full run.
> ---
>  bootstrap | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 60 insertions(+)
>
> diff --git a/bootstrap b/bootstrap
> index e9cb851..3434e51 100755
> --- a/bootstrap
> +++ b/bootstrap
> @@ -17,6 +17,7 @@ verbose=""
>  quiet="false"
>  mode="autoreconf"
>  force=0
> +bsp_to_build=
>
>  usage()
>  {
> @@ -27,6 +28,7 @@ usage()
>    echo "       -c .. clean, remove all aclocal/autoconf/automake generated files"
>    echo "       -h .. display this message and exit"
>    echo "       -p .. regenerate preinstall.am files"
> +  echo "       -o <arch> .. only generate for given <arch>"
>    echo "       -q .. quiet, don't display directories"
>    echo "       -v .. verbose, pass -v to autotools"
>    echo
> @@ -94,6 +96,11 @@ case $1 in
>  -g|--ge|--gen|--gene|--gener|--genera|--generat|--generate)
>    mode="generate"
>    shift;;
> +-o|--on|--onl|--only)
> +  test $# -gt 1 || usage
> +  bsp_to_build=$2
> +  shift
> +  shift;;
>  -*) echo "unknown option $1"
>    usage ;;
>  *) echo "invalid parameter $1"
> @@ -105,6 +112,27 @@ case $mode in
>  preinstall)
>    confs=`find . -name Makefile.am -exec grep -l 'include .*/preinstall\.am' {} \;`
>    for i in $confs; do
> +    if test -n "$bsp_to_build"; then
> +      case $i in
> +       ./c/src/lib/libbsp/$bsp_to_build/*)
> +         ;;
> +       ./c/src/lib/libbsp/*)
> +         continue; # skip this file
> +         ;;
> +       ./c/src/lib/libcpu/$bsp_to_build/*)
> +         ;;
> +       ./c/src/lib/libcpu/*)
> +         continue #skip this file
> +         ;;
> +       ./cpukit/score/cpu/$bsp_to_build/*)
> +         ;;
> +       ./cpukit/score/cpu/*)
> +         continue #skip this file
> +         ;;
> +       *)
> +         ;;
> +      esac
> +    fi
>      dir=$(dirname $i)
>      test "$quite" = "true" || echo "Generating $dir/preinstall.am"
>      ${top_srcdir}/ampolish3 "$dir/Makefile.am" > "$dir/preinstall.am"
> @@ -145,6 +173,22 @@ generate)
>
>    confs=`find . \( -name 'configure.in' -o -name 'configure.ac' \) -print`
>    for i in $confs; do
> +  if test -n "$bsp_to_build"; then
> +    case $i in
> +      ./c/src/lib/libbsp/$bsp_to_build/*)
> +       ;;
> +      ./c/src/lib/libbsp/*)
> +       continue # skip this file
> +       ;;
> +      ./c/src/lib/libcpu/$bsp_to_build/*)
> +       ;;
> +      ./c/src/lib/libcpu/*)
> +       continue #skip this file
> +       ;;
> +      *)
> +       ;;
> +    esac
> +  fi
>    dir=`dirname $i`
>    configure=`basename $i`
>    ( test "$quiet" = "true" || echo "$dir"
> @@ -177,6 +221,22 @@ autoreconf)
>
>    confs=`find . -name 'configure.ac' -print`
>    for i in $confs; do
> +  if test -n "$bsp_to_build"; then
> +    case $i in
> +      ./c/src/lib/libbsp/$bsp_to_build/*)
> +       ;;
> +      ./c/src/lib/libbsp/*)
> +       continue # skip this file
> +       ;;
> +      ./c/src/lib/libcpu/$bsp_to_build/*)
> +       ;;
> +      ./c/src/lib/libcpu/*)
> +       continue #skip this file
> +       ;;
> +      *)
> +       ;;
> +    esac
> +  fi
>    dir=`dirname $i`
>    configure=`basename $i`
>    ( test "$quiet" = "true" || echo "$dir"
> --
> 1.9.1
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel



More information about the devel mailing list