comparison HACKING @ 9977:711aa22ff83d

Elaborate which DIRNAME to use for --gnulib-srcdir option in HACKING file
author Rik <rdrider0-list@yahoo.com>
date Sun, 13 Dec 2009 14:21:58 -0800
parents a6308dcad5ac
children 2162104d40b1
comparison
equal deleted inserted replaced
9976:702b998698ea 9977:711aa22ff83d
1 -*- outline -*- 1 -*- outline -*-
2 2
3 This file attempts to describe the rules to use when hacking Octave. 3 This file attempts to describe the rules to use when hacking Octave.
4 Don't put this file into the distribution. 4 DO NOT put this file into the distribution.
5 5
6 * Working from the repository 6 * Working from the repository
7 7
8 These notes intend to help people working on the checked-out sources. 8 These notes are intended to help people working on sources checked-out from
9 the savannah source code repository.
9 These requirements do not apply when building from a distribution 10 These requirements do not apply when building from a distribution
10 tarball. 11 tarball.
11 12
12 ** Requirements 13 ** Requirements
13 14
14 We've opted to keep only the highest-level sources in the repository. 15 We've opted to keep only the highest-level sources in the repository.
15 This eases our maintenance burden, (fewer merges etc.), but imposes 16 This eases our maintenance burden, (fewer merges, etc.), but imposes
16 more requirements on anyone wishing to build from the just-checked-out 17 more requirements on anyone wishing to build from the just-checked-out
17 sources. For example, you have to use the latest stable versions of 18 sources. For example, you have to use the latest stable versions of
18 the maintainer tools we depend upon, including: 19 the maintainer tools we depend upon, including:
19 20
20 - Autoconf <http://www.gnu.org/software/autoconf/> 21 - Autoconf <http://www.gnu.org/software/autoconf/>
30 - Perl <http://www.cpan.org/> 31 - Perl <http://www.cpan.org/>
31 - Rsync <http://samba.anu.edu.au/rsync/> 32 - Rsync <http://samba.anu.edu.au/rsync/>
32 - Tar <http://www.gnu.org/software/tar/> 33 - Tar <http://www.gnu.org/software/tar/>
33 34
34 Only building the initial full source tree will be a bit painful. 35 Only building the initial full source tree will be a bit painful.
35 Later, after synchronizing from the repository a plain `make' should 36 Later, after synchronizing from the repository, a plain `make' should
36 be sufficient. 37 be sufficient.
37 38
38 ** First checkout 39 ** First checkout
39 40
40 Obviously, if you are reading these notes, you did manage to check out 41 Obviously, if you are reading these notes, you did manage to check out
41 this package from the repository. For the record, you will find all the 42 this package from the repository. For the record, you will find all the
42 relevant information on: 43 relevant information on downloading sources at:
43 44
44 http://savannah.gnu.org/hg/?group=octave 45 http://savannah.gnu.org/hg/?group=octave
45 46
46 After checking out Octave, you will need to run the autogen.sh 47 After checking out Octave, you will need to run the autogen.sh script:
47 script:
48 48
49 $ ./autogen.sh 49 $ ./autogen.sh
50 50
51 This script will examine the source tree and generate some Makefile 51 This script will examine the source tree and generate some Makefile
52 fragments and then runs the bootstrap script. The bootstrap script comes 52 fragments and then runs the bootstrap script. The bootstrap script comes
53 from gnulib but is kept in the Octave source archive. It should be 53 from gnulib, but is kept in the Octave source archive. It should be
54 updated from the gnulib source as necssary. The bootstrap script takes 54 updated from the gnulib sources as necssary. The bootstrap script takes
55 care of checking out a copy of gnulib, running the autotools, and 55 care of checking out a copy of gnulib, running the autotools, and
56 generating the configure script. 56 generating the configure script.
57 57
58 If you have a copy of gnulib in some directory apart from the Octave 58 If you have a copy of gnulib in some directory apart from the Octave
59 source tree, then pass the name of that directory to the bootstrap 59 source tree, then pass the name of the directory containing gnulib-tool
60 script using the 60 to the bootstrap script using the option:
61 61
62 --gnulib-srcdir=DIRNAME 62 --gnulib-srcdir=DIRNAME
63 63
64 option (all options passed to autogen.sh are forwarded to the 64 If you have downloaded gnulib directly, DIRNAME will be the directory where
65 bootstrap script). This way, you can share a single gnulib source 65 gnulib was unpacked. If you have installed gnulib using a package
66 manager, DIRNAME is likely to be /usr/bin or /usr/local/bin(where the
67 gnulib-tool script resides).
68
69 By using an external gnulib directory, you can share a single gnulib source
66 tree among several projects. Regardless of the location of the gnulib 70 tree among several projects. Regardless of the location of the gnulib
67 sources, the bootstrap script will try to update them if it appears 71 sources, the bootstrap script will try to update them if it appears
68 that they are checked out using git. Otherwise, it is your 72 that they are checked out using git. Otherwise, it is your
69 responsibility to keep the gnulib sources up to date. They change 73 responsibility to keep the gnulib sources up to date. They change
70 frequently, so the best way to stay current is probably to use git to 74 frequently, so the best way to stay current is probably to use git to
71 do the job. 75 do the job.
76
77 Additional options besides --gnulib-srcdir can be passed to autogen.sh and
78 they will be forwarded without modification to the bootstrap script.
72 79
73 Once the autogen.sh and bootstrap scripts complete successfully, you may 80 Once the autogen.sh and bootstrap scripts complete successfully, you may
74 run 81 run
75 82
76 $ ./configure 83 $ ./configure