xref: /aosp_15_r20/external/llvm/utils/release/export.sh (revision 9880d6810fe72a1726cb53787c6711e909410d58)
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