aboutsummaryrefslogtreecommitdiff
path: root/helpers/README.txt
blob: 1875f7a79868d2119e17a58f20bbc4dd8c54652e (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
LLVM Development Helpers
========================

These files do almost all needed actions for developing LLVM/Clang. They
create the initial source tree, build and test LLVM, coordinate branches
across repositories, control Git/Svn upstream/origin repositories, etc.

All scripts assume you use one of two development modes:

1. Read-Write Git-Svn Mode:

In this mode, all repositories will be based on Git-Svn and setup that way,
with the LLVM SVN repo as the source, the official LLVM Git repo as 'upstream',
a Linaro git repository as 'origin' (populated at prepare phase).

The origin repo is meant to be a back-up and share across Linaro developers,
and since this is public, even external developers. We may use branches on
those repos for Jenkins / Buildbot testing in the future.

All commits will be done via Git-Svn (dcommit) and git-svn-commit will check
if the repo is up-to-date before doing so. It'll also warn if you have more
than one commit, or if you try to commit from master. The former can be
forced, but not the latter.

2. Read-Only Git Mode:

In this mode, the prepare script doesn't setup Git-Svn, and relies only on
LLVM's public Git repo for read-only checkout. You can still have your own
local branches, but they will be de-coupled from the Linaro git tree (unless
you cherry-pick or rebase from them manually).

This type of repo is meant for dev boards, benchmarks and stress tests.

Environment Variables
---------------------

These scripts rely on three environment variables:

LLVM_SRC   : The path to the LLVM source directory. All other repos will be
             checked out relative to it in ($LLVM_SRC/../<project>) and linked
             to the right place inside $LLVM_SRC. It is recommended that you
             set it to a place where all source dirs will be, and only those,
             for example ~/devel/llvm/src/llvm.
LLVM_BLD   : The path to the (out-of-tree) directory for the release+asserts
             build. It is recommended that you set it two levels down from the
             source dirs, so you can have multiple build directories (debug,
             no-asserts, lld, etc), example ~/devel/llvm/build/llvm.
LLVM_GITRW : Git-Read-Write mode, which also means using Git-Svn or not.
             Values can be 'yes' or 'no'.

Dependencies
------------

In order to fully use these scripts, you're going to need to install a few
dependencies. Since people use different Linux distributions, the scripts
don't even try to install that automatically. The dependencies are:

Scripts/Build: libjson-perl cmake ninja-build perl python2.7 ccache
LLVM: libxml2-dev zlib1g-dev libtinfo-dev python-sphinx binutils-gold
Test-Suite: python-virtualenv bison groff gawk