#!/bin/sh
-# Use autoconf, autoheader, yodl, etc. to ready the generated files in the
-# release. This is typically used after applying a diff from the "patches"
-# directory in a CVS-checked-out version.
+# 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 of a *release tar*
-# (as opposed to from CVS), 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 -a x"$dir" != x.; then
cd "$dir"
fi
-make -f prepare-source.mak
+
+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