comparison HACKING @ 9946:55061c7c8d6e

start using gnulib
author John W. Eaton <jwe@octave.org>
date Wed, 09 Dec 2009 01:36:50 -0500
parents
children a6308dcad5ac
comparison
equal deleted inserted replaced
9945:b4661b498a7e 9946:55061c7c8d6e
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
56 generating the configure script. Once the autogen.sh and bootstrap
57 scripts complete successfully, you may run
58
59 $ ./configure
60 $ make
61 $ make check
62
63 At this point, there should be no difference between your local copy,
64 and the master copy:
65
66 $ hg diff
67
68 should output no difference.
69
70 Additional information about coding style
71
72 This file will eventually be extended to explain more about updating
73 Octave, preparing patches, and making releases.
74
75 Enjoy!
76
77 -----
78
79 Copyright (C) 2009 John W. Eaton
80
81 This file is part of Octave.
82
83 Octave is free software; you can redistribute it and/or modify it
84 under the terms of the GNU General Public License as published by the
85 Free Software Foundation; either version 3 of the License, or (at
86 your option) any later version.
87
88 Octave is distributed in the hope that it will be useful, but WITHOUT
89 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
90 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
91 for more details.
92
93 You should have received a copy of the GNU General Public License
94 along with Octave; see the file COPYING. If not, see
95 <http://www.gnu.org/licenses/>.
96
97
98 This file was adapted for Octave from the HACKING file that is part of
99 GNU Bison, which contained the following Copyright notice:
100
101 Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2009
102 Free Software Foundation, Inc.
103
104 This file is part of GNU Bison.
105
106 This program is free software: you can redistribute it and/or modify
107 it under the terms of the GNU General Public License as published by
108 the Free Software Foundation, either version 3 of the License, or
109 (at your option) any later version.
110
111 This program is distributed in the hope that it will be useful,
112 but WITHOUT ANY WARRANTY; without even the implied warranty of
113 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
114 GNU General Public License for more details.
115
116 You should have received a copy of the GNU General Public License
117 along with this program. If not, see <http://www.gnu.org/licenses/>.