[PATCH 1/2] Add option to limit bootstrap to a single arch
Martin Erik Werner
martinerikwerner at gmail.com
Fri Feb 19 13:07:25 UTC 2016
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
More information about the devel
mailing list