9946
|
1 -*- outline -*- |
|
2 |
|
3 This file attempts to describe the rules to use when hacking Octave. |
|
4 Don't put this file into the distribution. |
|
5 |
|
6 * Working from the repository |
|
7 |
|
8 These notes intend to help people working on the checked-out sources. |
|
9 These requirements do not apply when building from a distribution |
|
10 tarball. |
|
11 |
|
12 ** Requirements |
|
13 |
|
14 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 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 the maintainer tools we depend upon, including: |
|
19 |
|
20 - Autoconf <http://www.gnu.org/software/autoconf/> |
|
21 - Automake <http://www.gnu.org/software/automake/> |
|
22 - Bison <http://www.gnu.org/software/bison/> |
|
23 - Flex <http://www.gnu.org/software/flex/> |
|
24 - Git <http://git-scm.com/> |
|
25 - Gnulib <http://www.gnu.org/software/gnulib/> |
|
26 - GNU Make <http://www.gnu.org/software/make/> |
|
27 - Gzip <http://www.gnu.org/software/gzip/> |
|
28 - Libtool <http://www.gnu.org/software/libtool/> |
|
29 - Mercurial <http://mercurial.selenic.com/> |
|
30 - Perl <http://www.cpan.org/> |
|
31 - Rsync <http://samba.anu.edu.au/rsync/> |
|
32 - Tar <http://www.gnu.org/software/tar/> |
|
33 |
|
34 Only building the initial full source tree will be a bit painful. |
|
35 Later, after synchronizing from the repository a plain `make' should |
|
36 be sufficient. |
|
37 |
|
38 ** First checkout |
|
39 |
|
40 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 relevant information on: |
|
43 |
|
44 http://savannah.gnu.org/hg/?group=octave |
|
45 |
|
46 After checking out Octave, you will need to run the autogen.sh |
|
47 script: |
|
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 |
|
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 |
|
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 |
|
59 source tree, then pass the name of that directory to the bootstrap |
|
60 script using the |
|
61 |
|
62 --gnulib-srcdir=DIRNAME |
|
63 |
|
64 option (all options passed to autogen.sh are forwarded to the |
|
65 bootstrap script). This way, you can share a single gnulib source |
|
66 tree among several projects. Regardless of the location of the gnulib |
|
67 sources, the bootstrap script will try to update them if it appears |
|
68 that they are checked out using git. Otherwise, it is your |
|
69 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 |
|
71 do the job. |
|
72 |
|
73 Once the autogen.sh and bootstrap scripts complete successfully, you may |
|
74 run |
9946
|
75 |
|
76 $ ./configure |
|
77 $ make |
|
78 $ make check |
|
79 |
|
80 At this point, there should be no difference between your local copy, |
|
81 and the master copy: |
|
82 |
|
83 $ hg diff |
|
84 |
|
85 should output no difference. |
|
86 |
|
87 Additional information about coding style |
|
88 |
|
89 This file will eventually be extended to explain more about updating |
|
90 Octave, preparing patches, and making releases. |
|
91 |
|
92 Enjoy! |
|
93 |
|
94 ----- |
|
95 |
|
96 Copyright (C) 2009 John W. Eaton |
|
97 |
|
98 This file is part of Octave. |
|
99 |
|
100 Octave is free software; you can redistribute it and/or modify it |
|
101 under the terms of the GNU General Public License as published by the |
|
102 Free Software Foundation; either version 3 of the License, or (at |
|
103 your option) any later version. |
|
104 |
|
105 Octave is distributed in the hope that it will be useful, but WITHOUT |
|
106 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
107 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|
108 for more details. |
|
109 |
|
110 You should have received a copy of the GNU General Public License |
|
111 along with Octave; see the file COPYING. If not, see |
|
112 <http://www.gnu.org/licenses/>. |
|
113 |
|
114 |
|
115 This file was adapted for Octave from the HACKING file that is part of |
|
116 GNU Bison, which contained the following Copyright notice: |
|
117 |
|
118 Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2009 |
|
119 Free Software Foundation, Inc. |
|
120 |
|
121 This file is part of GNU Bison. |
|
122 |
|
123 This program is free software: you can redistribute it and/or modify |
|
124 it under the terms of the GNU General Public License as published by |
|
125 the Free Software Foundation, either version 3 of the License, or |
|
126 (at your option) any later version. |
|
127 |
|
128 This program is distributed in the hope that it will be useful, |
|
129 but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
130 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
131 GNU General Public License for more details. |
|
132 |
|
133 You should have received a copy of the GNU General Public License |
|
134 along with this program. If not, see <http://www.gnu.org/licenses/>. |