Mercurial > hg > octave-nkf
annotate HACKING @ 11117:3cbc0d77db48 ss-3-3-53
update version info for snapshot
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Tue, 19 Oct 2010 02:25:32 -0400 |
parents | 711aa22ff83d |
children | 2162104d40b1 |
rev | line source |
---|---|
9946 | 1 -*- outline -*- |
2 | |
3 This file attempts to describe the rules to use when hacking Octave. | |
9977
711aa22ff83d
Elaborate which DIRNAME to use for --gnulib-srcdir option in HACKING file
Rik <rdrider0-list@yahoo.com>
parents:
9949
diff
changeset
|
4 DO NOT put this file into the distribution. |
9946 | 5 |
6 * Working from the repository | |
7 | |
9977
711aa22ff83d
Elaborate which DIRNAME to use for --gnulib-srcdir option in HACKING file
Rik <rdrider0-list@yahoo.com>
parents:
9949
diff
changeset
|
8 These notes are intended to help people working on sources checked-out from |
711aa22ff83d
Elaborate which DIRNAME to use for --gnulib-srcdir option in HACKING file
Rik <rdrider0-list@yahoo.com>
parents:
9949
diff
changeset
|
9 the savannah source code repository. |
9946 | 10 These requirements do not apply when building from a distribution |
11 tarball. | |
12 | |
13 ** Requirements | |
14 | |
15 We've opted to keep only the highest-level sources in the repository. | |
9977
711aa22ff83d
Elaborate which DIRNAME to use for --gnulib-srcdir option in HACKING file
Rik <rdrider0-list@yahoo.com>
parents:
9949
diff
changeset
|
16 This eases our maintenance burden, (fewer merges, etc.), but imposes |
9946 | 17 more requirements on anyone wishing to build from the just-checked-out |
18 sources. For example, you have to use the latest stable versions of | |
19 the maintainer tools we depend upon, including: | |
20 | |
21 - Autoconf <http://www.gnu.org/software/autoconf/> | |
22 - Automake <http://www.gnu.org/software/automake/> | |
23 - Bison <http://www.gnu.org/software/bison/> | |
24 - Flex <http://www.gnu.org/software/flex/> | |
25 - Git <http://git-scm.com/> | |
26 - Gnulib <http://www.gnu.org/software/gnulib/> | |
27 - GNU Make <http://www.gnu.org/software/make/> | |
28 - Gzip <http://www.gnu.org/software/gzip/> | |
29 - Libtool <http://www.gnu.org/software/libtool/> | |
30 - Mercurial <http://mercurial.selenic.com/> | |
31 - Perl <http://www.cpan.org/> | |
32 - Rsync <http://samba.anu.edu.au/rsync/> | |
33 - Tar <http://www.gnu.org/software/tar/> | |
34 | |
35 Only building the initial full source tree will be a bit painful. | |
9977
711aa22ff83d
Elaborate which DIRNAME to use for --gnulib-srcdir option in HACKING file
Rik <rdrider0-list@yahoo.com>
parents:
9949
diff
changeset
|
36 Later, after synchronizing from the repository, a plain `make' should |
9946 | 37 be sufficient. |
38 | |
39 ** First checkout | |
40 | |
41 Obviously, if you are reading these notes, you did manage to check out | |
42 this package from the repository. For the record, you will find all the | |
9977
711aa22ff83d
Elaborate which DIRNAME to use for --gnulib-srcdir option in HACKING file
Rik <rdrider0-list@yahoo.com>
parents:
9949
diff
changeset
|
43 relevant information on downloading sources at: |
9946 | 44 |
45 http://savannah.gnu.org/hg/?group=octave | |
46 | |
9977
711aa22ff83d
Elaborate which DIRNAME to use for --gnulib-srcdir option in HACKING file
Rik <rdrider0-list@yahoo.com>
parents:
9949
diff
changeset
|
47 After checking out Octave, you will need to run the autogen.sh script: |
9946 | 48 |
49 $ ./autogen.sh | |
50 | |
51 This script will examine the source tree and generate some Makefile | |
52 fragments and then runs the bootstrap script. The bootstrap script comes | |
9977
711aa22ff83d
Elaborate which DIRNAME to use for --gnulib-srcdir option in HACKING file
Rik <rdrider0-list@yahoo.com>
parents:
9949
diff
changeset
|
53 from gnulib, but is kept in the Octave source archive. It should be |
711aa22ff83d
Elaborate which DIRNAME to use for --gnulib-srcdir option in HACKING file
Rik <rdrider0-list@yahoo.com>
parents:
9949
diff
changeset
|
54 updated from the gnulib sources as necssary. The bootstrap script takes |
9946 | 55 care of checking out a copy of gnulib, running the autotools, and |
9949 | 56 generating the configure script. |
57 | |
58 If you have a copy of gnulib in some directory apart from the Octave | |
9977
711aa22ff83d
Elaborate which DIRNAME to use for --gnulib-srcdir option in HACKING file
Rik <rdrider0-list@yahoo.com>
parents:
9949
diff
changeset
|
59 source tree, then pass the name of the directory containing gnulib-tool |
711aa22ff83d
Elaborate which DIRNAME to use for --gnulib-srcdir option in HACKING file
Rik <rdrider0-list@yahoo.com>
parents:
9949
diff
changeset
|
60 to the bootstrap script using the option: |
9949 | 61 |
62 --gnulib-srcdir=DIRNAME | |
63 | |
9977
711aa22ff83d
Elaborate which DIRNAME to use for --gnulib-srcdir option in HACKING file
Rik <rdrider0-list@yahoo.com>
parents:
9949
diff
changeset
|
64 If you have downloaded gnulib directly, DIRNAME will be the directory where |
711aa22ff83d
Elaborate which DIRNAME to use for --gnulib-srcdir option in HACKING file
Rik <rdrider0-list@yahoo.com>
parents:
9949
diff
changeset
|
65 gnulib was unpacked. If you have installed gnulib using a package |
711aa22ff83d
Elaborate which DIRNAME to use for --gnulib-srcdir option in HACKING file
Rik <rdrider0-list@yahoo.com>
parents:
9949
diff
changeset
|
66 manager, DIRNAME is likely to be /usr/bin or /usr/local/bin(where the |
711aa22ff83d
Elaborate which DIRNAME to use for --gnulib-srcdir option in HACKING file
Rik <rdrider0-list@yahoo.com>
parents:
9949
diff
changeset
|
67 gnulib-tool script resides). |
711aa22ff83d
Elaborate which DIRNAME to use for --gnulib-srcdir option in HACKING file
Rik <rdrider0-list@yahoo.com>
parents:
9949
diff
changeset
|
68 |
711aa22ff83d
Elaborate which DIRNAME to use for --gnulib-srcdir option in HACKING file
Rik <rdrider0-list@yahoo.com>
parents:
9949
diff
changeset
|
69 By using an external gnulib directory, you can share a single gnulib source |
9949 | 70 tree among several projects. Regardless of the location of the gnulib |
71 sources, the bootstrap script will try to update them if it appears | |
72 that they are checked out using git. Otherwise, it is your | |
73 responsibility to keep the gnulib sources up to date. They change | |
74 frequently, so the best way to stay current is probably to use git to | |
75 do the job. | |
76 | |
9977
711aa22ff83d
Elaborate which DIRNAME to use for --gnulib-srcdir option in HACKING file
Rik <rdrider0-list@yahoo.com>
parents:
9949
diff
changeset
|
77 Additional options besides --gnulib-srcdir can be passed to autogen.sh and |
711aa22ff83d
Elaborate which DIRNAME to use for --gnulib-srcdir option in HACKING file
Rik <rdrider0-list@yahoo.com>
parents:
9949
diff
changeset
|
78 they will be forwarded without modification to the bootstrap script. |
711aa22ff83d
Elaborate which DIRNAME to use for --gnulib-srcdir option in HACKING file
Rik <rdrider0-list@yahoo.com>
parents:
9949
diff
changeset
|
79 |
9949 | 80 Once the autogen.sh and bootstrap scripts complete successfully, you may |
81 run | |
9946 | 82 |
83 $ ./configure | |
84 $ make | |
85 $ make check | |
86 | |
87 At this point, there should be no difference between your local copy, | |
88 and the master copy: | |
89 | |
90 $ hg diff | |
91 | |
92 should output no difference. | |
93 | |
94 Additional information about coding style | |
95 | |
96 This file will eventually be extended to explain more about updating | |
97 Octave, preparing patches, and making releases. | |
98 | |
99 Enjoy! | |
100 | |
101 ----- | |
102 | |
103 Copyright (C) 2009 John W. Eaton | |
104 | |
105 This file is part of Octave. | |
106 | |
107 Octave is free software; you can redistribute it and/or modify it | |
108 under the terms of the GNU General Public License as published by the | |
109 Free Software Foundation; either version 3 of the License, or (at | |
110 your option) any later version. | |
111 | |
112 Octave is distributed in the hope that it will be useful, but WITHOUT | |
113 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
114 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
115 for more details. | |
116 | |
117 You should have received a copy of the GNU General Public License | |
118 along with Octave; see the file COPYING. If not, see | |
119 <http://www.gnu.org/licenses/>. | |
120 | |
121 | |
122 This file was adapted for Octave from the HACKING file that is part of | |
123 GNU Bison, which contained the following Copyright notice: | |
124 | |
125 Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2009 | |
126 Free Software Foundation, Inc. | |
127 | |
128 This file is part of GNU Bison. | |
129 | |
130 This program is free software: you can redistribute it and/or modify | |
131 it under the terms of the GNU General Public License as published by | |
132 the Free Software Foundation, either version 3 of the License, or | |
133 (at your option) any later version. | |
134 | |
135 This program is distributed in the hope that it will be useful, | |
136 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
137 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
138 GNU General Public License for more details. | |
139 | |
140 You should have received a copy of the GNU General Public License | |
141 along with this program. If not, see <http://www.gnu.org/licenses/>. |