Mercurial > octave-nkf
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 |