[PATCH modular] Per-component configure options

Trevor Woerner twoerner at gmail.com
Mon Jan 16 15:22:16 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 |   40 +++++++++++++++++++++++++++-------------
 1 files changed, 27 insertions(+), 13 deletions(-)

diff --git a/build.sh b/build.sh
index b01d652..5c34eb7 100755
--- a/build.sh
+++ b/build.sh
@@ -148,11 +148,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
@@ -161,6 +163,7 @@ module_title() {
     echo ""
     echo "======================================================================"
     echo "==  Processing module/component:  \"$module/$component\""
+    echo "==        configuration options:  \"$confopts\""
 }
 
 checkfortars() {
@@ -341,7 +344,8 @@ clone() {
 # perform processing of each module/component
 # arguments:
 #   $1 - module
-#   $2 - component (optional)
+#   $2 - component
+#   $3 - configure options
 # returns:
 #   0 - good
 #   1 - bad
@@ -349,29 +353,30 @@ process() {
     needs_config=0
 
     module=$1
-    component=$2
+    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=""
-    if [ -f $module/$component/autogen.sh ]; then
+    if [ -f $module/"$component"/autogen.sh ]; then
         SRCDIR="$module/$component"
         CONFCMD="autogen.sh"
     elif [ X"$CLONE" != X ]; then
-        clone $module $component
+        clone $module "$component"
         if [ $? -eq 0 ]; then
 	    SRCDIR="$module/$component"
 	    CONFCMD="autogen.sh"
         fi
 	needs_config=1
     else
-        checkfortars $module $component
+        checkfortars $module "$component"
         CONFCMD="configure"
     fi
 
@@ -451,7 +456,8 @@ process() {
 	    ${CPP:+CPP="$CPP"} \
 	    ${CPPFLAGS:+CPPFLAGS="$CPPFLAGS"} \
 	    ${CFLAGS:+CFLAGS="$CFLAGS"} \
-	    ${LDFLAGS:+LDFLAGS="$LDFLAGS"}
+	    ${LDFLAGS:+LDFLAGS="$LDFLAGS"} \
+	    $confopts
 	if [ $? -ne 0 ]; then
 	    failed ${CONFCMD} $module $component
 	    cd $old_pwd
@@ -536,13 +542,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
+    component="$2"
+    confopts="$3"
     if [ X"$LISTONLY" != X ]; then
 	echo "$module/$component"
 	return 0
@@ -558,7 +566,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
@@ -1009,9 +1017,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
-- 
1.7.6.233.gd79bc



More information about the xorg-devel mailing list