Home | History | Annotate | Download | only in release
      1 #!/bin/sh
      2 #===-- tag.sh - Tag the LLVM release candidates ----------------------------===#
      3 #
      4 #                     The LLVM Compiler Infrastructure
      5 #
      6 # This file is distributed under the University of Illinois Open Source
      7 # License.
      8 #
      9 #===------------------------------------------------------------------------===#
     10 #
     11 # Create branches and release candidates for the LLVM release.
     12 #
     13 #===------------------------------------------------------------------------===#
     14 
     15 set -e
     16 
     17 projects="llvm cfe dragonegg test-suite compiler-rt libcxx clang-tools-extra polly lldb"
     18 base_url="https://llvm.org/svn/llvm-project"
     19 
     20 release=""
     21 rc=""
     22 
     23 function usage() {
     24     echo "Export the SVN sources and build tarballs from them"
     25     echo "usage: `basename $0`"
     26     echo " "
     27     echo "  -release <num> The version number of the release"
     28     echo "  -rc <num>      The release candidate number"
     29     echo "  -final         The final tag"
     30 }
     31 
     32 function export_sources() {
     33     release_no_dot=`echo $release | sed -e 's,\.,,g'`
     34     tag_dir="tags/RELEASE_$release_no_dot/$rc"
     35 
     36     if [ "$rc" = "final" ]; then
     37         rc=""
     38     fi
     39 
     40     for proj in $projects; do
     41         echo "Exporting $proj ..."
     42         svn export \
     43             $base_url/$proj/$tag_dir \
     44             $proj-$release$rc.src
     45 
     46         echo "Creating tarball ..."
     47         tar cfz $proj-$release$rc.src.tar.gz $proj-$release$rc.src
     48     done
     49 }
     50 
     51 while [ $# -gt 0 ]; do
     52     case $1 in
     53         -release | --release )
     54             shift
     55             release=$1
     56             ;;
     57         -rc | --rc )
     58             shift
     59             rc="rc$1"
     60             ;;
     61         -final | --final )
     62             rc="final"
     63             ;;
     64         -h | -help | --help )
     65             usage
     66             exit 0
     67             ;;
     68         * )
     69             echo "unknown option: $1"
     70             usage
     71             exit 1
     72             ;;
     73     esac
     74     shift
     75 done
     76 
     77 if [ "x$release" = "x" ]; then
     78     echo "error: need to specify a release version"
     79     exit 1
     80 fi
     81 
     82 export_sources
     83 exit 0
     84