From 9203c8d274b6f62e83dcc35f0a2514534ee8fd85 Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Mon, 17 Dec 2007 23:09:35 -0800 Subject: [PATCH] Improved prepare-source to make it more flexible. The script now lets the user choose which actions to perform and their order. --- configure | 6 ++--- prepare-source | 61 +++++++++++++++++++++++++++++++++++++------------- 2 files changed, 48 insertions(+), 19 deletions(-) diff --git a/configure b/configure index 813ca5e4..48d41eb9 100755 --- a/configure +++ b/configure @@ -9,11 +9,11 @@ realconfigure="$dir/configure.sh" if test ! -f "$realconfigure"; then if test -f "$HOME/build_farm/build_test.fns"; then # Allow the build farm to grab latest files via rsync. - fetch=fetch + actions='build fetch' else - fetch='' + actions='build' fi - if "$dir/prepare-source" $fetch; then + if "$dir/prepare-source" $actions; then : else echo 'Failed to build configure.sh and/or config.h.in -- giving up.' >&2 diff --git a/prepare-source b/prepare-source index 3cb7096e..0e73138d 100755 --- a/prepare-source +++ b/prepare-source @@ -1,22 +1,51 @@ #!/bin/sh -# Use autoconf and autoheader to create configure.sh and config.h.in. -# If unsuccessful and the "fetch" option was provided, grab the latest -# development versions of these files (only useful with a dev checkout). +# Either use autoconf and autoheader to create configure.sh and config.h.in +# or (optionally) fetch the latest development versions of generated files. +# +# Specify one action or more than one to provide a fall-back: +# +# build build the config files [the default w/no arg] +# fetch fetch the latest dev config files +# fetchgen fetch all the latest dev generated files +# fetchSRC fetch the latest dev source files [NON-GENERATED FILES] +# +# The script stops after the first successful action. + dir=`dirname $0` if test x"$dir" != x -a x"$dir" != x.; then cd "$dir" fi -if make -f prepare-source.mak; then - : -elif test x"$1" = x"fetch"; then - if perl --version >/dev/null 2>/dev/null; then - files='c*' - else - files='[cp]*' - fi - rsync -pvz rsync://rsync.samba.org/rsyncftp/generated-files/"$files" . -elif test x"$1" = x"fetchall"; then - rsync -pvz rsync://rsync.samba.org/rsyncftp/generated-files/'*' . -else - exit 1 + +if test $# = 0; then + set -- build fi + +for action in "${@}"; do + case "$action" in + build|make) + make -f prepare-source.mak + ;; + fetch) + if perl --version >/dev/null 2>/dev/null; then + files='c*' + else + files='[cp]*' + fi + rsync -pvz rsync://rsync.samba.org/rsyncftp/generated-files/"$files" . + ;; + fetchgen) + rsync -pvz rsync://rsync.samba.org/rsyncftp/generated-files/'*' . + ;; + fetchSRC) + rsync -pvrz --exclude=/.git/ rsync://rsync.samba.org/ftp/pub/unpacked/rsync/ . + ;; + *) + echo "Unknown action: $action" + exit 1 + esac + if test $? = 0; then + exit + fi +done + +exit 1 -- 2.34.1