Commit Graph

17 Commits

Author SHA1 Message Date
Gary V. Vaughan
61e09a5566 syntax-check: fix violations and implement sc_prohibit_sed_s_comma.
I like to name temporary directories that I will remove shortly
with two leading commas so that they sort lexicographically at
the top of `ls' output.  Now, `./configure
--prefix=`pwd`/,,inst' works again, for the first time in
several years.
* cfg.mk (sc_prohibit_sed_s_comma): Comma is too common a
character to use routinely as the separator for sed
substitutions on file paths and other variables determined by
the user, causing bugs like the one I describe above.  Make sure
we don't accidentally reintroduce any comma separators in
future.
* Makefile.am, bootstrap, bootstrap.conf, build-aux/extract-trace,
build-aux/general.m4sh, build-aux/git-hooks/commit-msg,
build-aux/git-log-fix, build-aux/ltmain.m4sh, libtoolize.m4sh,
m4/libtool.m4, m4/ltdl.m4, tests/cdemo-undef.test,
tests/cmdline_wrap.at, tests/darwin.at, tests/defs.m4sh,
tests/getopt-m4sh.at, tests/install.at, tests/libtoolize.at,
tests/mdemo/Makefile.am, tests/need_lib_prefix.at,
tests/sysroot.at, tests/tagdemo-undef.test, tests/testsuite.at:
Try to use `|' as the default separator wherever possible,
otherwise something else that doesn't occur in the substitution
expression.
* NEWS: Updated.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2011-11-25 14:53:42 +07:00
Gary V. Vaughan
06c6555d4a syntax-check: fix violations and implement sc_useless_quotes_in_assignment.
Contrary to popular belief, Bourne shell does not resplit RHS of
assignments after expansion, so if there are no unquoted shell
metacharacters or whitespace, the quotes are useless.
* cfg.mk (_sc_search_regexp_or_exclude): A variation of gnulib's
_sc_search_regexp that also allows individual exclusions at the
site of what would otherwise match by adding a comment.
(sc_useless_quotes_in_assignment): New syntax-check rule to
ensure we don't reintroduce useless quoted assignments.
* bootstrap, bootstrap.conf, build-aux/edit-readme-alpha,
build-aux/general.m4sh, build-aux/getopt.m4sh,
build-aux/ltmain.m4sh, build-aux/options-parser, configure.ac,
doc/libtool.texi, libtoolize.m4sh, m4/libtool.m4, m4/ltdl.m4,
m4/ltoptions.m4, tests/cwrapper.at, tests/defs.m4sh,
tests/lalib-syntax.at, tests/libtoolize.at,
tests/lt_dlopenext.at, tests/mdemo/configure.ac,
tests/mdemo2/configure.ac, tests/need_lib_prefix.at,
tests/no-executables.at, tests/quote.test, tests/suffix.test:
Remove spurious quotes.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2011-11-25 14:53:41 +07:00
Gary V. Vaughan
d7919d50d0 syntax-check: fix violations and implement sc_trailing_blank-non-rfc3676.
* cfg.mk (local-checks-to-fix): Move sc_trailing_blank from
here...
(local-checks-to-skip): ...to here, because otherwise it flags
valid RFC3676 signature blocks.
(sc_trailing_blank-non-rfc3676): An improved sc_trailing_blank
implementation that doesn't flag signature blocks as violations.
* Makefile.am, bootstrap.conf, doc/PLATFORMS,
libltdl/config/ltmain.m4sh, libltdl/m4/libtool.m4,
libltdl/m4/lt~obsolete.m4, tests/archive-in-archive.at,
tests/convenience.at, tests/darwin.at, tests/depdemo/l1/l1.c,
tests/depdemo/l2/l2.c, tests/depdemo/l3/l3.c,
tests/depdemo/l4/l4.c, tests/f77demo/README,
tests/f77demo/cprogram.c, tests/f77demo/foof.f,
tests/f77demo/foof2.f, tests/f77demo/foof3.f,
tests/f77demo/fprogram.f, tests/fcdemo/README,
tests/fcdemo/cprogram.c, tests/fcdemo/foof.f90,
tests/fcdemo/foof2.f90, tests/fcdemo/foof3.f90,
tests/fcdemo/fprogram.f90, tests/mdemo/README,
tests/mdemo/main.c, tests/mdemo/mlib.c, tests/objectlist.test,
tests/static.at, tests/template.at, tests/testsuite.at: Remove
trailing blanks.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2011-11-17 19:22:35 +07:00
Gary V. Vaughan
aa2b2b71fa libtoolize: rename libltdl/config' directory to standard build-aux'.
In addition to moving the autoconf auxiliary script directory
into the place expected by GNU developers ($top_srcdir/build-aux)
we also simplify libtoolize somewhat by having libltdl use
whatever directory was specified by the parent project.  This is
much more flexible, allows libltdl client projects to also use a
single canonical `$top_srcdir/build-aux' auxiliary script
directory, and maintains backward compatibility with existing
projects that wish to continue using $ltdl_dir/config.
* libltdl/config: Moved whole directory from here...
* build-aux: ...to here.
* libtoolize.m4sh (func_install_pkgaux_subproject): Remove.
(func_install_pkgaux_parent): Remove.
(func_install_pkgaux_files): Considerably simplified now that we
have only a single auxiliary directory to worry about.
(subproject_aux_dir): Remove.
* bootstrap.conf (libtool_readme_release_package_substitutions):
No need to substitute our old unusual aux_dir location into
README-release any more.
* cfg.mk (_build-aux): Now that we use the standard location for
this directory, no need to set this variable either.
* configure.ac (AC_INIT): git-version-gen has moved.
(AC_CONFIG_AUX_DIR): Adjust.
* Makefile.am (stamp-mk, auxexefiles, auxfiles)
(install-data-local): Use build-aux instead of config.
(libltdl/stamp-mk): Ditto.
* libltdl/configure.ac, tests/cdemo/configure.ac,
tests/demo/configure.ac, tests/depdemo/configure.ac,
tests/f77demo/configure.ac, tests/fcdemo/configure.ac,
tests/mdemo/configure.ac, tests/mdemo2/configure.ac,
tests/pdemo/configure.ac, tests/tagdemo/configure.ac
(AC_CONFIG_AUX_DIR): Ditto.
* tests/defs.m4sh (aux_dir): Ditto.
* tests/configure-iface.at, tests/getopt-m4sh.at,
tests/libtoolize.at, tests/subproject.at, tests/testsuite.at:
Ditto.
* Makefile.am (ltdl_ac_aux_dir): Extract at build-time...
* libtoolize.m4sh (require_ltdl_ac_aux_dir): ...so that
libtoolize can access it at runtime without requiring GNU M4 via
the extract-trace script.
(require_Makefile_am_filter): Use it to determine whether the
aux_dir declared in the current (parent) project configure is
compatible with the declarations in installed ltdl autotools
source files.
(require_configure_ac_filter): New function to perform similar
checks and rewrite configure.ac during installation if necessary.
* NEWS: Updated.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2011-11-17 17:56:40 +07:00
Gary V. Vaughan
76fff42c2a libtoolize: rename Makefile.inc' to standard ltdl.mk'.
* libltdl/Makefile.inc: Moved from here...
* libltdl/ltdl.mk: ...to here.
* Makefile.am, bootstrap.conf, tests/libtoolize.at,
tests/nonrecursive.at: Adjust.
* libtoolize.m4sh (func_install_pkgltdl_files): Set the
destination file to `Makefile.inc' if grep finds an include for
that name in a top-level Makefile.am.
(func_check_macros): Print a deprecation warning if use of the
old `Makefile.inc' convention is found.
* tests/old-ltdl-iface.at: New test for renaming and warning
correctly when `Makefile.inc' convention is still in use.
* NEWS: Updated.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2011-11-17 17:51:14 +07:00
Gary V. Vaughan
de4c35b810 options-parser: provide a saner pluggable API.
It's much too easy to forget that the functions you hook into
the option parser need to return unconsumed options in the
variable `func_run_hooks_result'; better to follow the
convention used in the rest of bootstrap and return results in a
variable named after the function with `_result' appended.
* libltdl/config/options-parser (func_run_hooks): implement this
new API.
(Option parsing): Update the example in the header comment for
this section to reflect the changes.
* bootstrap (bootstrap_options_prep, bootstrap_parse_options)
(bootstrap_validate_options): Adjust.
* bootstrap.conf (libtool_options_prep, libtool_parse_options)
(libtool_validate_options): Ditto.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2011-11-16 12:43:53 +07:00
Gary V. Vaughan
d5393524f6 bootstrap: split into reusable parts.
* bootstrap: Bourne shell has no scoping, so be extremely
careful with namespaces, functions in `^func_' and `^require_';
private variables in `^_G_', and public variables all well
documented by comments.
* libltdl/config/extract-trace: New file, containing the minimum
of code previously in bootstrap plus a little glue to make the
GNU M4 based autotools tracing function (as opposed to the
kludgy sed extraction currently used everywhere else) a
standalone script that can be executed or sourced.
* libltdl/config/options-parser: New file, containing the
pluggable options parser code shared between the other two.
* bootstrap.conf: Adjust.
* Makefile.am (EXTRA_DIST): Be sure to distribute the new
extract-trace and options-parser scripts.
(install-data-local): And install them where libtoolize can find
them.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2011-11-08 20:38:27 +07:00
Gary V. Vaughan
af4537cd8a maint: add autobuild prerequisite only if autobuild.m4 is absent.
* bootstrap (func_require_autobuild_buildreq): Skip if autobuild.m4
is already present.
* bootstrap.conf (require_autobuild_bulidreq): No need to set this
specially any more.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2011-10-31 19:51:18 +07:00
Gary V. Vaughan
c9f43dcc39 maint: ensure bootstrap runs from dist tarball.
* bootstrap (func_gnulib_tool_copy_file): When gnulib-tool is
not available, check that there is a copy of the file from a
previous run available before bailing out with a diagnostic.
(func_install_gnulib_non_module_files): Don't diagnose missing
files explicitly - func_gnulib_tool_copy_file takes care of it
now.
(func_require_checkout_only_file): In the diagnostic for
not being in a source-controlled tree, note that `--force' must
be used to rebootstrap.
(func_require_gnulib_files_already_present): Removed.  All the
necessary checks are correctly performed in
func_gnulib_tool_copy_file withot resorting to heuristics.
(func_require_gnulib_mk): Don't continue to try to access
gnulib-cache.m4 after discovering we're running from a dist
tarball.
(func_require_dotgitmodules_parameters): Skip if .gitmodules
file is missing and git binary is not available.
* bootstrap.conf (checkout_only_file): Set to HACKING, which is
a non-distributed file.
(libtool_cleanup_empty_dirs): Don't print spurious errors when
trying to delete gnulib-tool droppings, in case gnulib-tool is
not available on this run.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2011-10-31 19:51:18 +07:00
Gary V. Vaughan
bba5b84fcd maint: use gnulib's gitlog-to-changelog instead of a ChangeLog file.
* ChangeLog: Removed.
* HACKING (Editing 'ChangeLog'): Removed. Renumbered other sections to
compensate.
* bootstrap.conf (gnulib_modules): Add gitlog-to-changelog.
* Makefile.am (ChangeLog): Generate the ChangeLog for 2011...
(dist-hook): ...from the output of `git log' before rolling a
distribution tarball.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2011-10-27 10:22:45 +07:00
Gary V. Vaughan
4008119bcc maint: use gnulib's git-version-gen instead of mkstamp.
* libltdl/config/mkstamp: File removed.
* bootstrap.conf (gnulib_modules): Add git-version-gen.
* configure.ac (AC_INIT, package_revision): Use git-version-gen to
calculate version number.
(TIMESTAMP): Removed.
* libtoolize.m4sh, libltdl/config/ltmain.m4sh, libltdl/m4/libtool.m4
(TIMESTAMP): Ditto.
* Makefile.am (TIMESTAMP): Ditto.
(MKSTAMP): Renamed from this...
(git_version_gen): ...to this. Set revision here.  An alpha is now a
release with an odd micro relase number.
(rebuild): Don't reset revision here.
(build_scripts): Remove mkstamp, add git-version-gen.
(EXTRA_DIST, BUILT_SOURCES): Add .version.
(libltdl/config/ltmain.sh, libltdl/m4/ltversion.m4, tests/package.m4):
Don't depend on configure.ac or ChangeLog to determine when the
version number has reved, use .version directly.
(.version): Flush most recent configure calculated VERSION to disk.
(dist-hook): Flush current VERSION to disk at dist time.
(dotserial): Distributed file to cache the serial number for
when git is not available to recalculate it when building from a
release tarball.
(dist-hook): Make sure .serial is created.
(libltdl/config/ltversion.m4): Use .serial when it is present
(in a dist tarball) or calculate with git otherwise (in a git
working directory).
(EXTRA_DIST): Add .serial file.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2011-10-27 10:22:44 +07:00
Gary V. Vaughan
a7d34118b2 maint: use gnulib's maint.mk and support scripts release procedure.
* Makefile.maint: Removed.
* configure.ac (LASTRELEASE, lt_major, lt_minor, lt_micro, lt_alpha):
All removed. Makefile.maint was the only client.
* HACKING (Release Procedure): Removed.
* bootstrap.conf (gnulib_modules): Add announce-gen,
do-release-commit-and-tag, gendocs, gnu-web-doc-update, gnupload and
readme-release.
* cfg.mk (manual_title): Set it for web-manual rule.
(announcement_Cc_): Release announcement email addresses.
* Makefile.am (build_scripts): Add to EXTRA_DIST additional files
imported from gnulib for maint.mk release procedure.
* NEWS: Updated.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2011-10-27 10:22:32 +07:00
Gary V. Vaughan
48a213a248 maint: don't make autobuild a hard bootstrap requirement.
* bootstrap.conf (require_autobuild_buildreq): Reset this to ':' so
that bootstrap doesn't auto-add autobuild to $buildreq.
2011-10-24 08:45:38 +07:00
Gary V. Vaughan
adb7abda11 maint: use gnulib's maintainer-makefile module.
* bootstrap.conf (gnulib_modules): Add maintainer-makefile.
(gnulib_tool_options): Add --avoid=dummy now that we have a real
module to import.
* cfg.mk: New file. Customize maint.mk for Libtool.
* Makefile.am (EXTRA_DIST): Add GNUmakefile, cfg.mk and maint.mk.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2011-10-23 19:17:23 +07:00
Gary V. Vaughan
d4afacc29c maint: use gnulib's canonical fdl.texi.
* doc/fdl.texi: Removed.
* bootstrap.conf (gnulib_non_module_files): Add fdl.texi.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2011-10-23 19:17:23 +07:00
Gary V. Vaughan
3fc61c5669 maint: use gnulib's canonical COPYING files.
* COPYING, libltdl/COPYING.LIB: Removed.
* bootstrap.conf (gnulib_non_module_files): Add COPYING.
(libtool_add_libltdl_copying): New func_gnulib_tool hook
function to copy the canonical LGPL2 COPYING file from gnulib at
bootstrap.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2011-10-23 19:17:23 +07:00
Gary V. Vaughan
8e756c52ee maint: use gnulib's (pending saner) bootstrap script.
* bootstrap: Replaced with gnulib script.
* bootstrap.conf: New file with Libtool specific bootstrap
configuration.
* Makefile.am (EXTRA_DIST): Add bootstrap.conf.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2011-10-23 19:17:22 +07:00