#
# GCC is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
+# the Free Software Foundation; either version 3, or (at your option)
# any later version.
#
# GCC is distributed in the hope that it will be useful,
[-d destination_directory]
[-m make_boot_options]
[-o objdir]
+ [-b branch_name]
[-u username]
[-p protocol]
[-t tarfile]
# Checkout the tree
test -n "${SVN_USERNAME}" && SVN_USERNAME="${SVN_USERNAME}@"
- SVNROOT="${SVN_PROTOCOL}://${SVN_USERNAME}${SVN_SERVER}${SVN_REPOSITORY}"
+ SVNROOT="${SVN_PROTOCOL}://${SVN_USERNAME}${SVN_SERVER}${SVN_REPOSITORY}${SVN_BRANCH}"
$GCC_SVN co $SVNROOT ${DESTINATION} || \
error "Could not check out GCC"
# SVN command
GCC_SVN=${GCC_SVN-${SVN-svn}}
# The SVN server containing the GCC repository.
-SVN_SERVER="dberlin.org"
+SVN_SERVER="gcc.gnu.org"
# The path to the repository on that server.
-SVN_REPOSITORY="/trunk"
+SVN_REPOSITORY="/svn/gcc/"
+# The branch to check out from that server.
+# Defaults to trunk if no branch is defined with -b.
+SVN_BRANCH=""
# The SVN protocol to use.
SVN_PROTOCOL="svn"
# The username to use when connecting to the server.
test $# -eq 0 && usage
# Parse the options.
-while getopts "c:d:m:o:p:t:u:x:" ARG; do
+while getopts "c:d:m:o:p:t:b:u:x:" ARG; do
case $ARG in
c) CONFIGURE_OPTIONS="${OPTARG}";;
d) DESTINATION="${OPTARG}";;
p) SVN_PROTOCOL="${OPTARG}";;
t) TARFILE="${OPTARG}";;
x) MAKE_CHECK_OPTIONS="${OPTARG}";;
+ b) SVN_BRANCH="${OPTARG}";;
u) SVN_USERNAME="${OPTARG}";;
\?) usage;;
esac
error "Cannot checkout and update simultaneously"
fi
+if [ ${CHECKOUT} -eq 0 ] && test -n "${SVN_BRANCH}"; then
+ error "Branch argument only makes sense when doing a checkout"
+fi
+
+# Validate the branch name.
+if test -n "${SVN_BRANCH}"; then
+ SVN_BRANCH="branches/${SVN_BRANCH}";
+else
+ SVN_BRANCH="trunk";
+fi
+
# Checkout the tree.
if [ ${CHECKOUT} -ne 0 ]; then
checkout_gcc