summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWayne Davison <wayned@samba.org>2007-12-17 23:09:35 -0800
committerWayne Davison <wayned@samba.org>2007-12-17 23:32:47 -0800
commit9203c8d274b6f62e83dcc35f0a2514534ee8fd85 (patch)
tree99323d86e735534254ad453bfd6e0f1f86477c30
parent9468cf796daf9824070acea5fa0ec0f34f393d25 (diff)
downloadrsync-9203c8d274b6f62e83dcc35f0a2514534ee8fd85.tar.gz
rsync-9203c8d274b6f62e83dcc35f0a2514534ee8fd85.tar.bz2
rsync-9203c8d274b6f62e83dcc35f0a2514534ee8fd85.zip
Improved prepare-source to make it more flexible. The script now
lets the user choose which actions to perform and their order.
-rwxr-xr-xconfigure6
-rwxr-xr-xprepare-source61
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