[PATCH build] Add -L cmd-line option to list build components.

Trevor Woerner twoerner at gmail.com
Sat Sep 4 15:12:13 PDT 2010


From: Trevor Woerner <twoerner at gmail.com>

Useful for running arbitrary git commands from top-most
directory on all modules which are being built.

Signed-off-by: Trevor Woerner <twoerner at gmail.com>
---
 build.sh |  113 +++++++++++++++++++++++++++++++++----------------------------
 1 files changed, 61 insertions(+), 52 deletions(-)

diff --git a/build.sh b/build.sh
index 0bc366b..4d8956f 100755
--- a/build.sh
+++ b/build.sh
@@ -28,6 +28,47 @@ global environment variables you may set to augment functionality:
 EOF
 }
 
+setup_buildenv() {
+    export HOST_OS=`uname -s`
+    export HOST_CPU=`uname -m`
+
+    if test x$LIBDIR = x ; then
+	export LIBDIR=lib
+    fi
+
+    # Must create local aclocal dir or aclocal fails
+    ACLOCAL_LOCALDIR="${DESTDIR}${PREFIX}/share/aclocal"
+    $SUDO mkdir -p ${ACLOCAL_LOCALDIR}
+
+    # The following is required to make aclocal find our .m4 macros
+    if test x"$ACLOCAL" = x; then
+	ACLOCAL="aclocal"
+    fi
+    export ACLOCAL="${ACLOCAL} -I ${ACLOCAL_LOCALDIR}"
+
+    # The following is required to make pkg-config find our .pc metadata files
+    export PKG_CONFIG_PATH=${DESTDIR}${PREFIX}/share/pkgconfig:${DESTDIR}${PREFIX}/${LIBDIR}/pkgconfig${PKG_CONFIG_PATH+:$PKG_CONFIG_PATH}
+
+    # Set the library path so that locally built libs will be found by apps
+    export LD_LIBRARY_PATH=${DESTDIR}${PREFIX}/${LIBDIR}${LD_LIBRARY_PATH+:$LD_LIBRARY_PATH}
+
+    # Set the path so that locally built apps will be found and used
+    export PATH=${DESTDIR}${PREFIX}/bin${PATH+:$PATH}
+
+    # Choose which make program to use
+    if test x"$MAKE" = x; then
+	MAKE=make
+    fi
+
+    # Set the default font path for xserver/xorg unless it's already set
+    if test x"$FONTPATH" = x; then
+	export FONTPATH="${PREFIX}/${LIBDIR}/X11/fonts/misc/,${PREFIX}/${LIBDIR}/X11/fonts/Type1/,${PREFIX}/${LIBDIR}/X11/fonts/75dpi/,${PREFIX}/${LIBDIR}/X11/fonts/100dpi/,${PREFIX}/${LIBDIR}/X11/fonts/cyrillic/,${PREFIX}/${LIBDIR}/X11/fonts/TTF/"
+    fi
+
+    # Create the log file directory
+    $SUDO mkdir -p ${DESTDIR}${PREFIX}/var/log
+}
+
 failed_components=""
 nonexistent_components=""
 clonefailed_components=""
@@ -145,6 +186,11 @@ clone() {
 }
 
 build() {
+    if [ -n "$LISTONLY" ]; then
+	echo "$1/$2"
+	return 0
+    fi
+
     if [ -n "$RESUME" ]; then
 	if [ "$RESUME" = "$1/$2" ]; then
 	    unset RESUME
@@ -701,6 +747,9 @@ usage() {
     echo "  --autoresume file : autoresume from file"
     echo "  --check : run make check in addition to others"
     echo ""
+    echo "Usage: $0 -L"
+    echo "  -L : just list modules to build"
+    echo ""
     envoptions
 }
 
@@ -779,6 +828,9 @@ do
 	shift
 	SUDO=$1
 	;;
+    -L)
+	LISTONLY=1
+	;;
     *)
 	PREFIX=$1
 	;;
@@ -787,64 +839,17 @@ do
     shift
 done
 
-if test x"${PREFIX}" = x ; then
+if test x"${PREFIX}" = x && test -z "$LISTONLY" ; then
     usage
     exit
 fi
 
-HOST_OS=`uname -s`
-HOST_CPU=`uname -m`
-
-if test x$LIBDIR = x ; then
-    LIBDIR=lib
-fi
-
-export HOST_OS
-export HOST_CPU
-export LIBDIR
-
-echo "Building to run $HOST_OS / $HOST_CPU ($HOST)"
-
-# Must create local aclocal dir or aclocal fails
-ACLOCAL_LOCALDIR="${DESTDIR}${PREFIX}/share/aclocal"
-$SUDO mkdir -p ${ACLOCAL_LOCALDIR}
-
-# The following is required to make aclocal find our .m4 macros
-if test x"$ACLOCAL" = x; then
-    ACLOCAL="aclocal"
+if test -z "$LISTONLY" ; then
+    setup_buildenv
+    echo "Building to run $HOST_OS / $HOST_CPU ($HOST)"
+    date
 fi
 
-ACLOCAL="${ACLOCAL} -I ${ACLOCAL_LOCALDIR}"
-export ACLOCAL
-
-# The following is required to make pkg-config find our .pc metadata files
-PKG_CONFIG_PATH=${DESTDIR}${PREFIX}/share/pkgconfig:${DESTDIR}${PREFIX}/${LIBDIR}/pkgconfig${PKG_CONFIG_PATH+:$PKG_CONFIG_PATH}
-export PKG_CONFIG_PATH
-
-# Set the library path so that locally built libs will be found by apps
-LD_LIBRARY_PATH=${DESTDIR}${PREFIX}/${LIBDIR}${LD_LIBRARY_PATH+:$LD_LIBRARY_PATH}
-export LD_LIBRARY_PATH
-
-# Set the path so that locally built apps will be found and used
-PATH=${DESTDIR}${PREFIX}/bin${PATH+:$PATH}
-export PATH
-
-# Choose which make program to use
-if test x"$MAKE" = x; then
-    MAKE=make
-fi
-
-# Set the default font path for xserver/xorg unless it's already set
-if test x"$FONTPATH" = x; then
-    FONTPATH="${PREFIX}/${LIBDIR}/X11/fonts/misc/,${PREFIX}/${LIBDIR}/X11/fonts/Type1/,${PREFIX}/${LIBDIR}/X11/fonts/75dpi/,${PREFIX}/${LIBDIR}/X11/fonts/100dpi/,${PREFIX}/${LIBDIR}/X11/fonts/cyrillic/,${PREFIX}/${LIBDIR}/X11/fonts/TTF/"
-    export FONTPATH
-fi
-
-# Create the log file directory
-$SUDO mkdir -p ${DESTDIR}${PREFIX}/var/log
-
-date
-
 # We must install the global macros before anything else
 build util macros
 build font util
@@ -864,6 +869,10 @@ if test $LIB_ONLY -eq 0; then
     build_util
 fi
 
+if test -n "$LISTONLY" ; then
+    exit 0
+fi
+
 date
 
 if test "x$nonexistent_components" != x ; then
-- 
1.7.1



More information about the xorg-devel mailing list