Paul Eggert [Mon, 5 Jul 2004 07:07:32 +0000 (07:07 +0000)]
Remove support for -b= and -t= options; this
has been moribund for a decade.
Add support for -t and -T options (new in coreutils install).
-c option now does nothing (the default is to copy), for
compatibility with BSD and coreutils 'install'.
Fix usage message; it referred to nonexistent variables.
Don't assume 'lasterr' is unset in environment.
For Debian Bug #251820:
* aclocal.in (scan_file): Keep track of the location where each
file is included, and display it when reporting a missing file.
Pass this location to scan_file as a second argument.
(scan_m4_files): Adjust calls to scan_file.
* tests/acloca14.test: Add a test for this diagnostic.
* tests/defs.in (required=icc): Use `-V -help' instead of
`-V -dryrun'. icc 8.0 fails on the latter.
* tests/depcomp5.test: Require depmode=icc for icc 7.x, and
depmod=gcc otherwise.
Report from Ralf Wildenhues.
* lib/depcomp (tru64) [libtool]: Use $dir$base.o.d instead
of $dir.libs/$base.o.d. Libtool 1.5 causes both to be output,
and we will clean the second automatically during distclean.
Using the latter and leaving the former as we did before cause
"files left in build directory" failures during distcheck.
Suggested by Nicolas Joly.
* doc/automake.texi (Built sources example): Explain what
nodist_foo_SOURCES is (not) useful to, and use it in all the
examples.
(Tags): Mention nodist_noinst_HEADERS and nodist_prog_SOURCES.
Suggested by Akim Demaille.
* lib/am/multilib.am: Add $(MAKE) comments to multido and
multiclean lines, to enable parallel make. Based on a patch
by Alexandre Oliva applied to newlib on 2003-10-15.
* automake.in (scan_autoconf_traces): Trace for LT_SUPPORTED_TAG
instead of AC_LIBTOOL_TAGS, since that how CVS Libtool has been
changed.
* tests/libtool3.test: Do not grep for --tag=CC, since CVS
Libtool (unlike Libtool 1.5) does not has any CC tag.
* automake.in (handle_libraries): Make the diagnostic about
non standard libraries a warning in foreign packages. This
is already the case in handle_ltlibraries.
(handle_libraries, handle_ltlibraries): Suggest a standard
library name in the diagnostic, to help newcomers.
* tests/stdlib.test, tests/stdlib2.test: Check for these
suggestions.
Check directory names for unportable names. Shaking the code
to check this also led to the removal of the no-"/"-in-SUBDIRS
restriction, and a fix to _do_recursive_traversal.
* automake.in (check_directory): New function extracted from
handle_subdirs, and augmented to check for reserved W32/DOS name.
(check_directories_in_var): New function.
(handle_subdirs): Call check_directories_in_var. Doing so also
suppress the restriction that SUBDIRS should not contain slashes.
(scan_autoconf_traces) <AC_CONFIG_AUX_DIR>: Call check_directory
to ensure the argument exists and is safe.
* doc/automake.texi (Top level): Do not say that src/subdir
cannot be put in SUBDIRS.
(Dist): Mention that distdir and top_distdir can be absolute.
* lib/Automake/Variable.pm (_do_recursive_traversal) Support
undefined $fun_collect, and fix two bugs introduced with
skip_ac_subst on 2004-03-07.
* lib/am/distdir.am (distdir): Use absolute distdir and
top_distdir when recursing, because we can no longer prepend only
`..' in case of SUBDIRS with `/'.
* tests/auxdir4.test, tests/subdir9.test: New files.
* tests/Makefile.am (TESTS): Add auxdir4.test.
* tests/cond2.test, tests/subdir7.test: Augment to check location
in diagnostics.
* m4/cond.m4 (AM_CONDITIONAL): Double-quote diagnostic.
* tests/condd.test: Define a macro with the same name as a
conditional.
* tests/pr220.test: Modernize, and make sure the diagnostics
contains the macro name.
Report from Volker Boerchers.
* automake.in (handle_dist): Always define DIST_SUBDIRS, even when
the no-dist or cygnus options are used.
* tests/clean2.test: New file.
* tests/Makefile.am (TESTS): Add clean2.test.
Report from Daniel Jacobowitz.
* aclocal.in (add_macro): Do not error out on undefined required
macros. We are not sure they are really used, and Autoconf
already diagnoses them.
(scan_configure_dep): Diagnose missing AM_ macros as warnings rather
than errors.
* tests/aclocal3.test, tests/ammissing.test: Adjust to expect a
warning instead of an error.
* tests/aclocal8.test: AC_REQUIRE an undefined macro in an unused
macro, and ensure aclocal works anyway.
* tests/acloca17.test: New file.
* tests/error.test: Delete, superseded by tests/acloca17.test.
* tests/Makefile.am (TESTS): Add acloca17.test and remove error.test.
Report from Jim Meyering.
* automake.in (parse_arguments, MAIN): Give more precise
diagnostics when not input file is found.
* tests/output5.test: Adjust.
Suggested by Jens Petersen.
* lib/am/libs.am (AR, ARFLAGS): Move these definition ...
* automake.in (handle_libraries): ... here, so that they are
output even for EXTRA_LIBRARIES.
* tests/ar2.test: New file.
* tests/Makefile.am (TESTS): Add it.
Report from Kevin Ryde.
* automake.in (generate_makefile): Do not output Makefile.in on
errors.
* tests/werror2.test: New file.
* tests/Makefile.am (TESTS): Add werror2.test.
* tests/substtarg.test, tests/cond36.test, tests/backsl4.test:
Adjust to run automake with -Wno-error when the output is expected
in spite of the error.
Report from Harlan Stenn.
* automake.in (handle_source_transform): Also check for a
$(srcdir)/old_source rule when computing the default source name.
Propagate this $(srcdir) prefix in Automake variables.
* tests/ltlibsrc.test (noinst_LTLIBRARIES): Explicitly refer to
$(srcdir)/zoo_d_old2_la.c. This fixes another failure with BSD Make.
* tests/lex3.test, tests/yacc6.test: Require GNU Make.
Fixing these for BSD Make requires invasive changes (lexers and
parsers must be built into $srcdir, and--most annoyingly--all
references to parse.h must be changed to $(srcdir)/parse.h).
Report from Mark D. Baushke.
* lib/Automake/VarDef.pm (append): Turn VAR_ASIS variables into
VAR_PRETTY variables to work around make implementation with
limited line length, such as OSF1/Tru64 make.
* tests/longline.test: New file.
* tests/Makefile.am (TESTS): Add it.
* tests/pluseq3.test, tests/pluseq8.test: Adjust.
Report from Simon Josefsson.
* lib/am/tags.am (TAGS): Pass `.' to Exuberant Ctags if
--etags-include is used but no other files are supplied, so it
creates the TAGS file anyway.
Report from Akim Demaille.
* lib/depcomp (tru64) [libtool]: Nicolas Joly reported on
2002-06-12 that dependencies were output in $dir.libs/$base.lo.d.
Teun Burgers reported on 2004-03-30 they were in
$dir.libs/$base.o.d. Try both.
For PR automake/414:
Introduce options tar-v7, tar-ustar, and tar-pax to select
tar format.
* doc/automake.texi (Options): Document them.
* lib/Automake/Options.pm (_process_option_list): Process
these new options.
* lib/am/distdir.am (dist-gzip, dist-bzip2, dist-tarZ, dist,
distcheck): Adjust to use am__tar and am__untar.
* m4/tar.m4: New file.
* m4/Makefile.am (dist_m4data_DATA): Add tar.m4.
* m4/init.m4 (AM_INIT_AUTOMAKE): Support the new options
and call _AM_PROG_TAR.
* tests/tar.test, tests/tar2.test, tests/tar3.test: New files.
* tests/Makefile.am (TESTS): Add them.
* aclocal.in (%map_traced_defs): New variable.
(scan_m4_files): Normalize filenames.
(trace_used_macros): Trace for AC_DEFUN and AU_DEFUN, also
ask for the filename and the first argument. Populate
%map_traced_defs.
(write_aclocal): Use $map_traced_defs to filter out unused
definitions.
* tests/acloca15.test: New file.
* tests/Makefile.am (TESTS): Add acloca15.test.
* automake.in ($automake_needs_to_reprocess_all_files): Remove.
($automake_will_process_aux_dir): New variable.
(scan_autoconf_traces): Reorder @input_files so that the Makefile
that distributes aux files is processed last. This way we do not
have to process all files twice using
$automake_will_process_aux_dir.
(require_file_internal): Suggest a full run of automake when
appropriate.
(MAIN): Remove the loop on $automake_needs_to_reprocess_all_files.
* tests/distcom7.test: New file.
* tests/reqd2.test: Do not check for the "running more than two"
message.
* tests/Makefile.am (TESTS): Add distcom7.test.
* automake.in (@config_aux_path, $config_aux_dir): Rename as ...
($config_aux_dir, $am_config_aux_dir): ... these.
($config_aux_dir_set_in_configure_in): Rename as ...
($config_aux_dir_set_in_configure_ac): ... this.
(%require_file_found): Rename as ...
(%required_file_not_found): ... this.
(handle_languages, handle_texinfo_helper, handle_dist,
handle_configure, handle_emacs_lisp, handle_python,
scan_autoconf_traces, yacc_lex_finish_helper): Adjust to new names.
(scan_autoconf_traces): Call locate_aux_dir.
(locate_aux_dir): New function.
(@require_file_paths): Remove, not used anymore.
(require_file_internal): Look files in only one directory (instead
of @require_file_internal) passed in argument.
(require_file, require_conf_file): Pass the destination directory
to require_file_internal.
* aclocal.in, automake.in, configure.ac, Makefile.am,
tests/aclocal.in, tests/automake.in, tests/defs.in:
Use PATH_SEPARATOR from autoconf instead of ':'.
* automake.in (handle_lib_objects): Pass the condition of
the variable definition to handle_LIBOBJS and handle_ALLOCA,
not the aggregated conditions.
* tests/Makefile.am (TESTS): Add libobj14.test.
* tests/libobj14.test: New file.
Report from Bill Davidson.
Better support for Fortran 9x.
* automake.in: Add "fc" and "ppfc" languages for Fortran 9x.
* doc/automake.texi (Fortran 9x Support): New section.
* lib/Automake/Variable.pm (%_ac_macro_for_var): Add AC_PROG_FC.
* tests/compile_f90_c_cxx.test: New file.
* tests/ext.test: Add AC_PROG_FC.
* tests/f90only.test: New file.
* tests/link_f90_only.test: New file.
* tests/Makefile.am (TESTS): Add new tests.
Overriding JAVAROOT is legitimate, do not warn about it.
* lib/Automake/Variable.pm (%_silent_variable_override): Add JAVAROOT.
* tests/java2.test: Run automake without -Wno-override.
Report from Simon Josefsson.
Fix for PR automake/285:
* automake.in (handle_ltlibraries): Keep track of installation
directories for each condition, then define a $(am_TARGET_rpath)
variable to hold the -rpath flags of Libtool libraries conditionally
installed in different directories.
* lib/Automake/DisjConditions.pm (merge): New function.
* tests/libtool6.test: Adjust.
* tests/libtool8.test: New file.
* tests/Makefile.am (TEST): Add libtool8.test.
* m4/depend.m4 (_AM_DEPENDENCIES): Use `touch' rather than `: >'
to create numbered dependencies. This fixes a portability issue
when CONFIG_SHELL is forced to /bin/sh on Solaris 8.
Reported by Mark Phillips.
* automake.in (lang_yacc_target_hook): Use Automake::Rule::define
so that rules for the same headers are not output twice.
* lib/Automake/Variable.pm (value_as_list_recursive): Do not
call `return' inside `map'.
* tests/cond30.test: Make sure `a.c' and `b.c' both appear
in the Makefile.in.
* tests/cond35.test, tests/cond36.test: New files.
* tests/Makefile.am (TESTS): Add cond35.test and cond36.test.
Report from Roman Fietze.
Fix for PR/413:
* lib/am/distdir.am (distcheck): Create $dc_destdir with `umask
077 && mkdir' instead of `$(mkdir_p)'. This prevents possible
symlink attacks reported by Stefan Nordhausen.
* m4/mkdirp.m4: Use `mkdir -p' only with GNU mkdir, because
Solaris 8's mkdir is not thread-safe.
* lib/mkinstalldirs: Likewise.
* lib/install-sh: Abort when mkdir fails to create a directory.
Report from Nathanael Nerode.
* aclocal.in (rel2abs): New function.
(scan_configure_dep): Use rel2abs instead of File::Spec->rel2abs,
the later does was introduced in Perl 5.6 so using it breaks with
Perl 5.005.
Report from Werner John.
* lib/Automake/Variable.pm (transform_variable_recursively):
Define rewritten variables in all conditions not *covered* by user
definitions, not simply in conditions without a previous
definition.
* tests/cond34.test: New file.
* tests/Makefile.am (TESTS): Add cond34.test.
Report from Elena A. Vengerova
Support for conditional _LISP.
* automake.in (handle_emacs_lisp): Define $(ELCFILES) from LISP, not
from $(am__ELCFILES).
* lib/am/lisp.am (elc-stamp): Use $(LISP) instead of $(am__ELFILES).
* tests/lisp6.test: New file.
* tests/Makefile.am (TESTS): Add it.
* automake.in (handle_emacs_lisp): Define $(ELCFILES) as
$(am__ELCFILES), and always push it on @all. Do not mention
elc-stamp.
* lib/am/lisp.am (.el.elc): Rewrite as ...
($(am__ELCFILES)): ... this, and depend on elc-stamp.
(elc-stamp): Make sure elc-stamp is older that all .elc files, as
explained in the manual entry below.
* Makefile.am (maintainer-check): Check for unquoted $(DESTDIR) uses.
* lib/am/data.am, lib/am/distdir.am, lib/am/java.am, lib/am/libs.am,
lib/am/lisp.am, lib/am/ltlib.am, lib/am/mans.am, lib/am/progs.am,
lib/am/python.am, lib/am/scripts.am, lib/am/texinfos.am: Quote
installation paths in install, uninstall, and installcheck rules,
as well as in am__installdirs variables. This is for the sake
of paths containing spaces.
* lib/am/install.am (installdirs-am, installdirs): Do not try
to create "" directories.
* test/instspc.test: New file.
* test/Makefile.am (TESTS): Add instspc.test.
Report from James Amundson.
* lib/gnupload (GPG): Use an absolute path. Suggestion from Gary
V. Vaughan.
(passphrase): Unset it this variable before using it, in case it
was exported. Report from Scott James Remnant.
* m4/depout.m4 (_AM_OUTPUT_DEPENDENCY_COMMANDS): Use `s/xx//p'
instead of `/xx/ s///p'; the latter fails when GNU sed is run with
POSIXLY_CORRECT. Also strip superfluous -e.
Report from Miloslav Trmac.
* tests/lex5.test: Sleep before calling AUTOMAKE the second time,
this fixes a spurious failure reported by Andreas Schwab. Also
make sure ylwrap is not installed unless needed, and exercise
--no-force.
* lib/py-compile: Check input files after option processing.
Ensure --basedir has an argument.
* lib/am/python.am (install-%DIR%PYTHON): Do not run py-compile
if nothing was installed.
* tests/python10.test: New file.
* tests/Makefile.am (TESTS): Add python10.test.
Suggested by Sander Niemeijer.