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