Commit Graph

16 Commits

Author SHA1 Message Date
Zack Weinberg
6027e99358
Update .gitignore for move of version.m4.
Commit af5c11ed moved version.m4 from lib/m4sugar to lib, but did not
update .gitignore to match.
2021-10-03 18:15:20 -04:00
Zack Weinberg
f060c7e5fd
Rewrite bin/autoconf in Perl.
Of all the installed programs (autoconf, autoheader, autom4te,
autoreconf, autoscan, autoupdate, ifnames) autoconf is the only one
that is a shell script instead of a Perl script.  This means it has to
do a lot of fiddly quoting and requoting to assemble an autom4te
command line, it doesn’t get to use the shared option handling code in
Autom4te/{General,Getopt}.pm, and it has to duplicate usage text that
properly should only be in Autom4te/ChannelDefs.pm.  It also means
there’s extra code in build-aux/help-extract.pl just for it, and a
special two-phase generation process in bin/local.mk.

This also paves the way for the bootstrap script mentioned in the
previous commit; it will only have to know how to deal with
substitution variables, not generation of m4sh scripts.

The new script winds up being slightly longer on disk but that’s
because our boilerplate for Perl scripts is quite long.  The code is
visibly simpler.

* bin/autoconf.as: Rename to bin/autoconf.in and rewrite in Perl.
* bin/local.mk (EXTRA_DIST): Change autoconf.as to autoconf.in.
  (MOSTLYCLEANFILES): Don’t delete autoconf.in.
  (bin/autoconf.in): Delete rule.
  (ETAGS_PERL): Add autoconf.in and sort list.
  (ETAGS_SH): Delete, no longer needed.
* tests/tools.at: Syntax-check autoconf as a Perl script.

* build-aux/help-extract.pl: Remove all code for extracting usage text
  from shell scripts.
* man/autoconf.w, man/local.mk: Refer to autoconf.in, not autoconf.as.
2021-09-15 14:02:41 -04:00
Zack Weinberg
d1a65dc043
Check in install-sh as synced from automake (#110368)
As pointed out in sr #110368, since install-sh is now being installed
as part of autoconf, we should make sure to ship the latest version
rather than the version shipped by the automake that was used to
bootstrap the autoconf release tarball.

The build-aux/fetch.pl script is already supposed to fetch the latest
version, but install-sh is listed in .gitignore so any updates are
discarded when starting from a clean tree.  Correct this.

At the same time, since mdate-sh is *not* installed by autoconf nor is
it directly referenced in any code maintained in the autoconf
repository, remove it from the list of files to fetch and keep it in
.gitignore.

This change exposed a bug in fetch.pl where it would crash when
there was no old copy of a file being updated.

 * .gitignore: Remove /build-aux/install-sh.
 * build-aux/fetch.pl (%to_fetch): Remove build-aux/mdate-sh.
   (slurp): Don’t die on ENOENT, return undef.
   (replace_if_change): Handle $oldcontents being undef.
 * build-aux/install-sh: Is now checked in.
2020-11-09 13:51:20 -05:00
Stefano Lattarini
b1aba910b3 build: remove refs to obsolescent 'mkinstalldir' script and variable
* .gitignore: Here.
* Makefile.am (check-coverage-run): Use $(MKDIR_P) rather than
$(mkinstalldirs).

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
2013-05-06 12:53:41 +02:00
Stefano Lattarini
ac62b53ff7 build: no more make recursion for 'doc' subdir
* .gitignore: Adjust.
* Makefile.am ($(srcdir)/doc/local.mk): New include.
(SUBDIRS): Drop 'doc'.
(AM_MAKEINFOFLAGS): Rename ...
(custom_MAKEINFOFLAGS): ... like this, to avoid conflicting with
the AM_MAKEINFOFLAGS defined in the included 'doc/local.mk'
($(srcdir)/INSTALL): Adjust recipe.
* doc/Makefile.am: Rename ...
* doc/local.mk: ... like this, and adjust.
* configure.ac (AC_CONFIG_FILES): Drop 'doc/Makefile'.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
2013-05-06 12:22:00 +02:00
Stefano Lattarini
6ed5195ee1 maint: generate ChangeLog from git log
Following the practice set by various other GNU projects, we start
to automatically generate the ChangeLog file from the git commit
messages.  This will avoid duplication (as the ChangeLog entries
were always inserted both in the git commit message and in the
version-controlled ChangeLog file), and potential problems with
spurious merge conflicts (which, although greatly mitigated by
Bruno Haible's `git-merge-changelog' helper program, have never
been completely solved).

* ChangeLog: Moved ...
* ChangeLog.3: ... to this.
* build-aux/gitlog-to-changelog: New script, synced from gnulib.
* cfg.mk (gnulib-update): Also sync gitlog-to-changelog.
* Makefile.am (gen-ChangeLog): New .PHONY rule, generate the
ChangeLog for distribution.
(dist-hook): Depend on it.
($(srcdir)/ChangeLog): New dummy rule, to pacify automake "gnu"
strictness.  Creates a dummy ChangeLog, that will be overridden
by the proper one at distribution time.
(gen_start_date): New variable, the date starting from which the
git log entries are to be copied in the generated ChangeLog.
(EXTRA_DIST): Add ChangeLog.3 and gitlog-to-changelog.
* configure.ac (AC_CONFIG_SRCDIR): Use 'lib/autoconf/autoconf.m4'
instead of 'ChangeLog' as the sentinel file.
* .gitignore: Add ChangeLog.
2012-01-17 09:18:58 +01:00
Eric Blake
ef9e3bf13a * .gitignore: Ignore html files.
Signed-off-by: Eric Blake <ebb9@byu.net>
2009-09-04 05:23:39 -06:00
Eric Blake
4cdf58d4f0 Simplify version control metadata.
* .cvsignore: Delete.
* bin/.cvsignore: Likewise.
* config/.cvsignore: Likewise.
* doc/.cvsignore: Likewise.
* lib/.cvsignore: Likewise.
* lib/autoconf/.cvsignore: Likewise.
* lib/Autom4te/.cvsignore: Likewise.
* lib/autoscan/.cvsignore: Likewise.
* lib/autotest/.cvsignore: Likewise.
* lib/emacs/.cvsignore: Likewise.
* lib/m4sugar/.cvsignore: Likewise.
* man/.cvsignore: Likewise.
* tests/.cvsignore: Likewise.
* bin/.gitignore: Likewise.
* build-aux/.gitignore: Likewise.
* config/.gitignore: Likewise.
* doc/.gitignore: Likewise.
* lib/.gitignore: Likewise.
* lib/autoconf/.gitignore: Likewise.
* lib/Autom4te/.gitignore: Likewise.
* lib/autoscan/.gitignore: Likewise.
* lib/autotest/.gitignore: Likewise.
* lib/emacs/.gitignore: Likewise.
* lib/m4sugar/.gitignore: Likewise.
* man/.gitignore: Likewise.
* tests/.gitignore: Likewise.
* .gitignore: Consolidate all rules into one file.

Signed-off-by: Eric Blake <ebb9@byu.net>
2009-08-17 06:50:43 -06:00
Eric Blake
c474ab9084 Shuffle maintainer-specific rules.
* Makefile.am (maintainer-check-tests): Delete.
(autom4te-update): Move...
* cfg.mk (autom4te-update): ...here.
(fetch): Depend on autom4te-update.  Split...
(gnulib-update): ...into new rule.  Import move-if-change from
gnulib.
* maint.mk (maintainer-distcheck): Absorb former maintainer-check
rule.
* build-aux/move-if-change: New file, undistributed.
* .gitattributes: Handle new upstream file.
* .gitignore: Ignore maintainer cruft.
* HACKING: Update maintainer instructions.
* build-aux/config.guess: Update from upstream.
* build-aux/config.sub: Likewise.
* build-aux/gendocs.sh: Likewise.
* build-aux/texinfo.tex: Likewise.
* doc/gendocs_template: Likewise.
* doc/standards.texi: Likewise.

Signed-off-by: Eric Blake <ebb9@byu.net>
2009-04-21 06:51:35 -06:00
Jim Meyering
20cb79c19f Remove two more generated files from version control.
* INSTALL: Remove generated file.
* lib/autoscan/autoscan.list: Remove generated file.
2007-11-11 09:22:43 +01:00
Jim Meyering
441bb2a1c3 Make inter-release --version output more useful.
Now, each unofficial build has a version "number" like 2.61a-19-58dd,
which indicates that it is built using the 19th change set
(in _some_ repository) following the "v2.61a" tag, and that 58dd
is a prefix of the commit SHA1.
* build-aux/git-version-gen: New file.
* configure.ac: Run it to set the version.
(AM_INIT_AUTOMAKE): Don't check NEWS here.
* Makefile.am (dist-hook): Arrange so that .version appears only
in distribution tarballs, never in a checked-out repository.
* .gitignore: Add .version here, too.  Just in case.
* tests/Makefile.am ($(srcdir)/package.m4): Depend on Makefile,
not configure.ac, now that the version number changes automatically.

Ensure that $(VERSION) is up to date for dist-related targets.
* GNUmakefile: Arrange to rerun autoconf, if the version reported by
git-version-gen doesn't match $(VERSION), but only for dist targets.
2007-10-28 15:29:01 +01:00
Jim Meyering
7ffc555888 Remove all generated files from version control.
* aclocal.m4: Remove.
* configure: Remove.
* Makefile.in: Remove, along with all other Makefile.in in subdirs.
* .gitignore: Add aclocal.m4, configure and Makefile.in.  Sort.
* README-hacking: New file: how to build from just-checked-out sources.
2007-10-27 12:44:59 +02:00
Ralf Wildenhues
cddf173dbc * .gitignore: Ignore tags and TAGS files. 2007-10-11 19:30:24 +02:00
Eric Blake
bc4dab1cee Avoid committing editor backup files.
Signed-off-by: Eric Blake <ebb9@byu.net>
2007-09-25 06:31:43 -06:00
Eric Blake
2746ed2fc0 Ignore additional files, when copying cross-repository.
* .gitignore: Ignore CVS directories, emacs edits.
* .cvsignore: Ignore .git directory, emacs edits.
2007-09-20 09:06:28 -06:00
Eric Blake
bf1af030e2 Prepare for conversion to git.
* doc/.cvsignore: Avoid multiple listings on one line.
* bin/.cvsignore: Likewise.
* .gitignore, bin/.gitignore, config/.gitignore, doc/.gitignore,
lib/.gitignore, lib/Autom4te/.gitignore, lib/autoconf/.gitignore,
lib/autoscan/.gitignore, lib/autotest/.gitignore,
lib/emacs/.gitignore, lib/m4sugar/.gitignore, man/.gitignore,
tests/.gitignore: New files, identical to .cvsignore counterpart.
2007-09-14 22:25:56 +00:00