summaryrefslogtreecommitdiff
path: root/README-hacking
blob: 4e02fd854c4cdbdd40bfc2e29382342419645aae (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
-*- outline -*-

These notes intend to help people working on the checked-out sources.
These requirements do not apply when building from a distribution tarball.
See also HACKING for more detailed libvirt contribution guidelines.

* Requirements

We've opted to keep only the highest-level sources in the GIT repository.
This eases our maintenance burden, (fewer merges etc.), but imposes more
requirements on anyone wishing to build from the just-checked-out sources.
Note the requirements to build the released archive are much less and
are just the requirements of the standard ./configure && make procedure.
Specific development tools and versions will be checked for and listed by
the bootstrap script.

Valgrind <http://valgrind.org/> is also highly recommended, if
Valgrind supports your architecture.

While building from a just-cloned source tree may require installing a
few prerequisites, later, a plain `git pull && make' should be sufficient.

* First GIT checkout

You can get a copy of the source repository like this:

        $ git clone git://libvirt.org/libvirt
        $ cd libvirt

As an optional step, if you already have a copy of the gnulib git
repository on your hard drive, then you can use it as a reference to
reduce download time and disk space requirements:

        $ export GNULIB_SRCDIR=/path/to/gnulib

The next step is to get all required pieces from gnulib,
to run autoreconf, and to invoke ./configure:

        $ ./autogen.sh

And there you are!  Just

        $ make
        $ make check

At this point, there should be no difference between your local copy,
and the GIT master copy:

        $ git diff

should output no difference.

Enjoy!

Local Variables:
indent-tabs-mode: nil
End: