#!/bin/sh
-# Use autoconf, autoheader, yodl, etc. to ready the generated files
-# in the release. This is typically used after applying a diff from
-# "patches" directory in CVS.
+# Either use autoconf and autoheader to create configure.sh and config.h.in
+# or (optionally) fetch the latest development versions of generated files.
#
-# NOTE: if you use a diff from the "patches" directory in a release
-# tar, this is not needed (but doesn't hurt anything).
+# 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 -o x"$dir" = x.; then
- make -f prepare-source.mak
-else
- make -C "$dir" -f prepare-source.mak
+if test x"$dir" != x -a x"$dir" != x.; then
+ cd "$dir"
+fi
+
+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