aboutsummaryrefslogtreecommitdiff
path: root/helpers/llvm-sync
blob: 4ed2203351a55f099398e3762f5851de5b52178d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#!/usr/bin/env bash

# This script checks out all repositories from upstream and pushes master
# to the origin repo on Linaro's Git server, rebasing all local branches,
# but *not* pushing them, too.

. llvm-common

function repo_sync () {
  if [ ! -d $2 ]; then return; fi
  echo " + Updating $1"
  cd $2
  branch=`get_branch`
  safe_run git-refresh
  safe_run git-rebase-all $branch
}

prog=`basename $0`
syntax="Syntax: $prog [-clang-tools-e(x)tra] [-compiler(r)T] [-(l)ibs] [-Lin(k)er] [-(d)ebugger] [-(t)ests] [-(w)eb pages] [-(a)ll]"
cextra=false
rt=false
libs=false
linker=false
debug=false
tests=false
web=false

while getopts "xrlkdtwa" opt; do
  case $opt in
    x)
      cextra=true
      ;;
    r)
      rt=true
      ;;
    l)
      libs=true
      ;;
    k)
      linker=true
      ;;
    d)
      debug=true
      ;;
    t)
      tests=true
      ;;
    w)
      web=true
      ;;
    a)
      cextra=true
      rt=true
      libs=true
      linker=true
      debug=true
      tests=true
      ;;
    *)
      echo $syntax
      exit 1
      ;;
  esac
done

# Compulsory updates
repo_sync LLVM $LLVM_SRC
repo_sync Clang $LLVM_SRC/../clang

# Optional updates
if $cextra; then
  repo_sync ClangToolsExtra $LLVM_SRC/../clang-tools-extra
fi

if $rt; then
  repo_sync RT $LLVM_SRC/../compiler-rt
fi

if $libs; then
  repo_sync LibC++ $LLVM_SRC/../libcxx
  repo_sync LibC++ABI $LLVM_SRC/../libcxxabi
  repo_sync LibUnwind $LLVM_SRC/../libunwind
fi

if $linker; then
  repo_sync Linker $LLVM_SRC/../lld
fi

if $debug; then
  repo_sync Debugger $LLVM_SRC/../lldb
fi

if $tests; then
  repo_sync Test-Suite $LLVM_SRC/../test-suite
  repo_sync LNT $LLVM_SRC/../lnt
  repo_sync Zorg $LLVM_SRC/../zorg
fi

# These are pure SVN repos, not enabled with -a
# You have to manually force with -w
if $web; then
  if [ -d $LLVM_SRC/../www ]; then
    echo " + Updating WWW"
    cd $LLVM_SRC/../www
    svn up
  fi
  if [ -d $LLVM_SRC/../pubs ]; then
    echo " + Updating Pubs"
    cd $LLVM_SRC/../pubs
    svn up
  fi
fi