summaryrefslogtreecommitdiffstats
path: root/prepare-source
diff options
context:
space:
mode:
Diffstat (limited to 'prepare-source')
-rwxr-xr-xprepare-source72
1 files changed, 72 insertions, 0 deletions
diff --git a/prepare-source b/prepare-source
new file mode 100755
index 0000000..a4e78e6
--- /dev/null
+++ b/prepare-source
@@ -0,0 +1,72 @@
+#!/bin/sh
+# 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 autoconfig files
+# fetchgen fetch all the latest dev generated files (including manpages)
+# 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; then
+ dir=.
+fi
+
+if test "$dir" = '.'; then
+ branch=`packaging/prep-auto-dir` || exit 1
+ if test x"$branch" != x; then
+ cd build || exit 1
+ dir=..
+ fi
+fi
+
+if test "$dir" != '.'; then
+ for lnk in configure.ac m4; do
+ if test ! -h $lnk; then
+ rm -f $lnk # Just in case
+ ln -s "$dir/$lnk" $lnk
+ fi
+ done
+ for fn in configure.sh config.h.in aclocal.m4; do
+ test ! -f $fn && test -f "$dir/$fn" && cp -p "$dir/$fn" $fn
+ done
+fi
+
+if test $# = 0; then
+ set -- build
+fi
+
+for action in "${@}"; do
+ case "$action" in
+ build|make)
+ make -f "$dir/prepare-source.mak"
+ ;;
+ fetch|fetchgen)
+ if test "$action" = fetchgen; then
+ match='*'
+ else
+ match='[ca]*'
+ fi
+ $dir/rsync-ssl -iipc --no-motd "rsync://download.samba.org/rsyncftp/generated-files/$match" ./
+ test $? != 0 && continue
+ sleep 1 # The following files need to be newer than aclocal.m4
+ touch configure.sh config.h.in
+ ;;
+ fetchSRC)
+ ./rsync-ssl -iipr --no-motd --exclude=/.git/ rsync://download.samba.org/ftp/pub/unpacked/rsync/ .
+ ;;
+ *)
+ echo "Unknown action: $action"
+ exit 1
+ ;;
+ esac
+ if test $? = 0; then
+ exit
+ fi
+done
+
+exit 1