More tweaks for Actions.
[rsync.git] / prepare-source
index e4232408e3c1f592d268055aa4ca620a9832219a..a4e78e61ea63bd5970d95028bba5b3dfc17b709b 100755 (executable)
@@ -5,15 +5,35 @@
 # 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
+#   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 -a x"$dir" != x.; then
-    cd "$dir"
+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
@@ -23,25 +43,26 @@ fi
 for action in "${@}"; do
     case "$action" in
     build|make)
-       make -f prepare-source.mak
+       make -f "$dir/prepare-source.mak"
        ;;
-    fetch)
-       if perl --version >/dev/null 2>/dev/null; then
-           files='[ca]*'
+    fetch|fetchgen)
+       if test "$action" = fetchgen; then
+           match='*'
        else
-           files='[cap]*'
+           match='[ca]*'
        fi
-       ./rsync-ssl -ip rsync://download.samba.org/rsyncftp/generated-files/"$files" .
-       ;;
-    fetchgen)
-       ./rsync-ssl -ip rsync://download.samba.org/rsyncftp/generated-files/'*' .
+       $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 -ipr --exclude=/.git/ rsync://download.samba.org/ftp/pub/unpacked/rsync/ .
+       ./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