From: Trevor Woerner <[email protected]> The script can now accept and perform an arbitrary git or make command over all the modules to build. If no such command is provided "make" followed by "make install" is assumed.
Signed-off-by: Trevor Woerner <[email protected]> --- build.sh | 109 ++++++++++++++++++++++++-------------------------------------- 1 files changed, 42 insertions(+), 67 deletions(-) diff --git a/build.sh b/build.sh index 5a0501b..f199b8b 100755 --- a/build.sh +++ b/build.sh @@ -248,6 +248,7 @@ clone() { # 1 - bad process() { local _need_config=0 + local _rtn # preconds if [ -z "$1" ]; then @@ -297,13 +298,17 @@ process() { return 1 fi - if [ -n "$PULL" ]; then - git pull --rebase - if [ $? -ne 0 ]; then - failed "git pull" $1 $2 - cd $old_pwd + # perform git command + if [ -n "$GITCMD" ]; then + echo "performing git command: '$GITCMD'" + $GITCMD + _rtn=$? + cd $old_pwd + if [ $_rtn -ne 0 ]; then + failed "$GITCMD" $1 $2 return 1 fi + return 0 fi # Build outside source directory @@ -345,62 +350,32 @@ process() { fi fi - # make - ${MAKE} $MAKEFLAGS - if [ $? -ne 0 ]; then - failed "$MAKE $MAKEFLAGS" $1 $2 - cd $old_pwd - return 1 - fi - - # make check - if [ -n "$CHECK" ]; then - ${MAKE} $MAKEFLAGS check + if [ -n "$MAKECMD" ]; then + echo "performing make command: '$MAKECMD $MAKEFLAGS'" + $MAKECMD $MAKEFLAGS if [ $? -ne 0 ]; then - failed "$MAKE $MAKEFLAGS check" $1 $2 + failed "$MAKECMD $MAKEFLAGS" $1 $2 cd $old_pwd return 1 fi - fi - - # make clean - if [ -n "$CLEAN" ]; then - ${MAKE} $MAKEFLAGS clean - if [ $? -ne 0 ]; then - failed "$MAKE $MAKEFLAGS clean" $1 $2 - cd $old_pwd - return 1 - fi - fi - - # make dist - if [ -n "$DIST" ]; then - ${MAKE} $MAKEFLAGS dist + else + # make + ${MAKE} $MAKEFLAGS if [ $? -ne 0 ]; then - failed "$MAKE $MAKEFLAGS dist" $1 $2 + failed "$MAKE $MAKEFLAGS" $1 $2 cd $old_pwd return 1 fi - fi - # make distcheck - if [ -n "$DISTCHECK" ]; then - ${MAKE} $MAKEFLAGS distcheck + # make install + $SUDO env LD_LIBRARY_PATH=$LD_LIBRARY_PATH ${MAKE} $MAKEFLAGS install if [ $? -ne 0 ]; then - failed "$MAKE $MAKEFLAGS distcheck" $1 $2 + failed "$SUDO env LD_LIBRARY_PATH=$LD_LIBRARY_PATH ${MAKE} $MAKEFLAGS install" $1 $2 cd $old_pwd return 1 fi fi - # make install - $SUDO env LD_LIBRARY_PATH=$LD_LIBRARY_PATH ${MAKE} $MAKEFLAGS install - if [ $? -ne 0 ]; then - failed "$SUDO env LD_LIBRARY_PATH=$LD_LIBRARY_PATH ${MAKE} $MAKEFLAGS install" $1 $2 - cd $old_pwd - return 1 - fi - cd ${old_pwd} return 0 } @@ -894,9 +869,6 @@ usage() { echo " where options are:" echo " -a : do NOT run auto config tools (autogen.sh, configure)" echo " -b : use .build.$HAVE_ARCH build directory" - echo " -c : run make clean in addition to others" - echo " -d : run make distcheck in addition to others" - echo " -D : run make dist in addition to others" echo " -f file: append module being built to file. The last line of this" echo " file can be used for resuming with -r." echo " -g : build with debug information" @@ -904,12 +876,12 @@ usage() { echo " -k | --keep-going : do not stop after an error" echo " -l : build libraries only (i.e. no drivers, no docs, etc.)" echo " -o module/component : build just this component" - echo " -p : run git pull on each component" echo " -r module/component : resume building with this component" echo " -s sudo-command : sudo command to use" echo " --autoresume file : autoresume from file" - echo " --check : run make check in addition to others" echo " --reconfigure : run configure scripts again" + echo " --cmd cmd : specify a git or make command to run" + echo " by default \"make\" and \"make install\" will be performed" echo "" echo "Usage: $0 -L" echo " -L : just list modules to build" @@ -923,7 +895,7 @@ DIR_CONFIG="." LIB_ONLY=0 # Process command line args -CMDLINE=`getopt -o bcdDf:ghklo:pr:s:L --long check,help,autoresume:,keep-going,reconfigure -n $0 -- "$@"` +CMDLINE=`getopt -o bf:ghklo:r:s:L --long cmd:,help,autoresume:,keep-going,reconfigure -n $0 -- "$@"` if [ $? != 0 ]; then errout "getopt(1) invocation error" exit 1 @@ -935,18 +907,6 @@ while [ 1 ]; do DIR_ARCH=".build.$HAVE_ARCH" DIR_CONFIG=".." ;; - -c) - CLEAN=1 - ;; - --check) - CHECK=1 - ;; - -d) - DISTCHECK=1 - ;; - -D) - DIST=1 - ;; -f) shift BUILT_MODULES_FILE=$1 @@ -971,9 +931,6 @@ while [ 1 ]; do RESUME=$1 BUILD_ONE=1 ;; - -p) - PULL=1 - ;; -r) shift RESUME=$1 @@ -993,6 +950,24 @@ while [ 1 ]; do --reconfigure) RECONFIG=1 ;; + --cmd) + shift + _first=`echo $1 | cut -d' ' -f1` + if [ "$_first" = "git" ]; then + _second=`echo $1 | cut -d' ' -f2` + if [ "$_second" = "clone" ]; then + echo "git cloning happens automatically, ignoring --cmd" + else + GITCMD=$1 + fi + elif [ "$_first" = "make" ]; then + MAKECMD=$1 + else + errout "script can only handle \"git\" and \"make\" commands" + errout "don't know how to handle \"$_first\" commands" + exit 1 + fi + ;; --) shift break -- 1.7.3.rc2 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
