| ================================================================ | |
| = This file | |
| * This file attempts to describe the rules to use when hacking | |
| automake. | |
| * Don't put this file into the distribution. Don't mention it in the | |
| ChangeLog. | |
| ================================================================ | |
| = Administrivia | |
| * If you incorporate a change from somebody on the net: | |
| First, if it is a large change, you must make sure they have signed the | |
| appropriate paperwork. | |
| Second, be sure to add their name and email address to THANKS | |
| * If a change fixes a test, mention the test in the ChangeLog entry. | |
| * If somebody reports a new bug, mention his name in the ChangeLog entry | |
| and in the test case you write. Put him into THANKS. | |
| * The correct response to most actual bugs is to write a new test case | |
| which demonstrates the bug. Then fix the bug, re-run the test suite, | |
| and check everything in. | |
| * Some files in the automake package are not owned by automake. These | |
| files should never be edited here. These files are | |
| COPYING (from FSF), | |
| INSTALL (autoconf-patches@gnu.org), | |
| config.guess, config.sub (config-patches@gnu.org), | |
| texinfo.tex (bug-texinfo@gnu.org), | |
| Most of them are updated before release with `make fetch'. | |
| * Changes other than bug fixes must be mentioned in NEWS | |
| ================================================================ | |
| = Naming | |
| * We've adopted the convention that internal AC_SUBSTs should be | |
| named with a leading `am__', and internally generated targets should | |
| be named with a leading `am--'. This convention is very new | |
| (as of Feb 7 2001) and so it isn't yet universally used. But all | |
| new code should use it. | |
| We used to use `_am_' as the prefix for an internal AC_SUBST. | |
| However, it turns out that NEWS-OS 4.2R complains if a Makefile | |
| variable begins with `_'. Yay for them. I changed the target | |
| naming convention just to be safe. | |
| ================================================================ | |
| = Editing `.am' files | |
| * Always use $(...) and not ${...} | |
| * Use `:', not `true'. Use `exit 1', not `false'. | |
| * Use `##' comments liberally. Comment anything even remotely | |
| unusual. | |
| * Never use basename or dirname. Instead use sed | |
| * Do not use `cd' within back-quotes, use `$(am__cd)' instead. | |
| Otherwise the directory name may be printed, depending on CDPATH. | |
| * For install and uninstall rules, if a loop is required, it should be | |
| silent. Then the body of the loop itself should print each | |
| "important" command it runs. The printed commands should be preceded | |
| by a single space. | |
| ================================================================ | |
| = Editing automake.in and aclocal.in | |
| * Indent using GNU style. For historical reasons, the perl code | |
| contains portions indented using Larry Wall's style (perl-mode's | |
| default), and other portions using the GNU style (cperl-mode's | |
| default). Write new code using GNU style. | |
| * Don't use & for function calls, unless required. | |
| The use of & prevents prototypes from being checked. | |
| Just as above, don't change massively all the code to strip the | |
| &, just convert the old code as you work on it, and write new | |
| code without. | |
| * Perl 5 is now OK. | |
| ================================================================ | |
| = Working with CVS | |
| * To regenerate dependent files created by aclocal and automake, | |
| use the `bootstrap' script. It uses the code from the source | |
| tree, so the resulting files (aclocal.m4 and Makefile.in) should | |
| be the same as you would get if you install this version of | |
| automake and use it to generate those files. | |
| * Dependent files aclocal.m4, configure and Makefile.in in all | |
| directories should be up to date in the CVS repository, so that | |
| the changes in them can be easily noticed and analyzed. | |
| ================================================================ | |
| = Test suite | |
| * Use "make check" and "make maintainer-check" liberally | |
| * Make sure each test file is executable | |
| ================================================================ | |
| = Release procedure | |
| * Fetch new versions of the files that are maintained by the FSF. | |
| Commit. Unfortunately you need an FSF account to do this. | |
| (You can also use `make fetch', but that is still woefully incomplete.) | |
| * Update NEWS. For an alpha release, update README-alpha. | |
| * Update the version number in configure.ac. | |
| (The idea is that every other alpha number will be a net release. | |
| The repository will always have its own "odd" number so we can easily | |
| distinguish net and repo versions.) | |
| * Update ChangeLog. | |
| * Run ./bootstrap, ./configure, make. | |
| * Run `make cvs-release'. | |
| This will run distcheck to create the tarballs, commit the last | |
| NEWS/configure.ac/ChangeLog changes, tag the repository, sign | |
| the tarballs, and upload them. | |
| Use `make GNUPLOADFLAGS="--user key" cvs-release' to sign with | |
| a non-default key. | |
| * Update version number in configure.ac to next alpha number. | |
| Re-run ./bootstrap and commit. | |
| * Send announcement at least to autotools-announce@gnu.org, and | |
| automake@gnu.org. If not an alpha, announcement must also go to | |
| info-gnu@gnu.org. | |
| ----- | |
| Copyright (C) 2003 Free Software Foundation, Inc. | |
| This file is part of GNU Automake. | |
| GNU Automake is free software; you can redistribute it and/or modify | |
| it under the terms of the GNU General Public License as published by | |
| the Free Software Foundation; either version 2, or (at your option) | |
| any later version. | |
| GNU Automake is distributed in the hope that it will be useful, | |
| but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| GNU General Public License for more details. | |
| You should have received a copy of the GNU General Public License | |
| along with autoconf; see the file COPYING. If not, write to | |
| the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | |
| Boston, MA 02110-1301, USA. | |
| Local Variables: | |
| mode: text | |
| End: |