* ALL: the build mechanism now uses automake. See HACKING for more details.
[vlc.git] / HACKING
1 $Id: HACKING,v 1.5 2002/09/30 11:05:32 sam Exp $
2
3 Hacking vlc
4 ===========
5
6 Requirements
7 ------------
8
9 You will need the following tools if you plan to use the CVS version of vlc:
10
11  - autoconf version 2.50 or later
12
13  - automake version 1.5 (but 1.6 or later is recommended)
14
15  - gettext version 0.10.40 (but 0.11.3 or later is recommended)
16
17 After retrieving the CVS tree, you need to run the bootstrap script to
18 generate all the files needed to build vlc. You can then run configure.
19
20 If you do not have the correct version of these tools, or if they are
21 simply not available for the operating system you plan to develop on,
22 you can check out a CVS tree on an OS that provides these tools (such
23 as a recent Linux distribution), run bootstrap, and then copy the whole
24 tree to your retarded OS.
25
26
27 The bootstrap sequence
28 ----------------------
29
30 The bootstrap script does the following actions:
31
32  - browse the modules/ directory for all available modules. A module "foo"
33    exists if there is a Modules.am file in the modules/ directory which
34    defines SOURCES_foo.
35
36  - create a top-level Modules.am file (which will be included by Makefile.am)
37    which contains additional build rules for modules, and includes all the
38    Modules.am files that were found in modules/
39
40  - create a top-level configure.ac file from configure.ac.in, generating
41    the AC_SUBST and AM_CONDITIONAL rules that will be needed.
42
43  - run autopoint (previously gettextize) to create an intl/ directory,
44    needed when libgettext is not available.
45
46  - run the usual aclocal, autoheader, automake and autoconf, which create
47    the various Makefile.in files from the corresponding Makefile.am and the
48    configure script from configure.ac.
49
50  - fix a few files in the vlc repository that may have been altered.
51
52
53 How to add a module
54 -------------------
55
56 To add a module to the repository, just add its sources to a Modules.am
57 file. If you create a new Modules.am, do not forget to add a corresponding
58 line to modules/Makefile.am.
59