[PATCH v2 modular] Per-component configure options
Trevor Woerner
twoerner at gmail.com
Thu Jan 19 13:52:17 PST 2012
From: Trevor Woerner <twoerner at gmail.com>
Allow a user to specify per-component configure options by
providing them in the --modfile file. Any text remaining on
a line following a given module/component is assumed to be
options which will be passed to the configuration script.
Signed-off-by: Trevor Woerner <twoerner at gmail.com>
---
build.sh | 35 ++++++++++++++++++++++++++---------
1 files changed, 26 insertions(+), 9 deletions(-)
diff --git a/build.sh b/build.sh
index 29bdd17..94202c2 100755
--- a/build.sh
+++ b/build.sh
@@ -150,11 +150,13 @@ failed() {
# arguments:
# $1 - module
# $2 - component
+# $3 - configuration options
# returns:
# (irrelevant)
module_title() {
module=$1
component=$2
+ confopts="$3"
# preconds
if [ X"$module" = X ]; then
return
@@ -163,6 +165,7 @@ module_title() {
echo ""
echo "======================================================================"
echo "== Processing module/component: \"$module/$component\""
+ echo "== configuration options: $CONFFLAGS $confopts"
}
checkfortars() {
@@ -343,7 +346,8 @@ clone() {
# perform processing of each module/component
# arguments:
# $1 - module
-# $2 - component (optional)
+# $2 - component
+# $3 - configure options
# returns:
# 0 - good
# 1 - bad
@@ -352,13 +356,14 @@ process() {
module=$1
component=$2
+ confopts="$3"
# preconds
if [ X"$module" = X ]; then
echo "process() required first argument is missing"
return 1
fi
- module_title $module $component
+ module_title $module "$component" "$confopts"
SRCDIR=""
CONFCMD=""
@@ -448,7 +453,7 @@ process() {
${LIBDIR_USER:+--libdir="$LIBDIR"} \
${LOCALSTATEDIR_USER:+--localstatedir="$LOCALSTATEDIR"} \
${QUIET:+--quiet} \
- ${CONFFLAGS} \
+ ${CONFFLAGS} $confopts \
${CC:+CC="$CC"} \
${CPP:+CPP="$CPP"} \
${CPPFLAGS:+CPPFLAGS="$CPPFLAGS"} \
@@ -538,13 +543,15 @@ process() {
# LISTONLY, RESUME, NOQUIT, and BUILD_ONE
# arguments:
# $1 - module
-# $2 - component (optional)
+# $2 - component
+# $3 - configure options
# returns:
# 0 - good
# 1 - bad
build() {
module=$1
component=$2
+ confopts="$3"
if [ X"$LISTONLY" != X ]; then
echo "$module/$component"
return 0
@@ -560,7 +567,7 @@ build() {
fi
fi
- process $module $component
+ process $module "$component" "$confopts"
if [ $? -ne 0 ]; then
echo "build.sh: error processing module/component: \"$module/$component\""
if [ X"$NOQUIT" = X ]; then
@@ -982,6 +989,7 @@ build_doc() {
# (prerequisites and ordering are the responsibility of the user)
# globals used:
# $MODFILE - readable file containing list of modules to process
+# and their optional configuration options
# arguments:
# (none)
# returns:
@@ -1011,9 +1019,15 @@ process_module_file() {
continue
fi
- module=`echo $line | cut -d'/' -f1`
- component=`echo $line | cut -d'/' -f2`
- build $module $component
+ module=`echo $line | cut -d' ' -f1 | cut -d'/' -f1`
+ component=`echo $line | cut -d' ' -f1 | cut -d'/' -f2`
+ confopts_check=`echo $line | cut -d' ' -f2-`
+ if [ "$module/$component" = "$confopts_check" ]; then
+ confopts=""
+ else
+ confopts="$confopts_check"
+ fi
+ build $module "$component" "$confopts"
done <"$MODFILE"
return 0
@@ -1038,8 +1052,11 @@ usage() {
echo " --check Run make check in addition \"all install\""
echo " --clone Clone non-existing repositories (uses \$GITROOT if set)"
echo " --cmd <cmd> Execute arbitrary git, gmake, or make command <cmd>"
- echo " --confflags <options> Pass options to autgen.sh/configure"
+ echo " --confflags <options> Pass <options> to autgen.sh/configure of all modules"
echo " --modfile <file> Only process the module/components specified in <file>"
+ echo " Any text after, and on the same line as, the module/component"
+ echo " is assumed to be configuration options for the configuration"
+ echo " of each module/component specifically"
echo " --retry-v1 Remake 'all' on failure with Automake silent rules disabled"
echo ""
echo "Usage: $basename -L"
--
1.7.6.233.gd79bc
More information about the xorg-devel
mailing list