* 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.
* automake.in (shadow_unconditionally): New function...
(handle_source_transform): ... extracted from here.
(am_install_var): Use shadow_unconditionally to define %DISTVAR%.
* lib/am/data.am, lib/am/java.am, lib/am/lisp.am, lib/am/python.am,
lib/am/script.am: Add %DISTVAR% to DIST_COMMON.
* tests/cond33.test: Make sure all conditional files are distributed.
Report from Ralf Corsepius.
* m4/mkdirp.m4 (AM_PROG_MKDIR_P): Append `.' to $(mkdir_p).
* lib/install-sh: Accept `install-sh -d' with 0..n arguments,
as well as `install-sh sources... dest' with multiple sources.
* tests/cond33.test: New file.
* tests/instsh2.test: Add more checks for install-sh.
* tests/transform.test: Test for installdirs.
* tests/Makefile.am (TESTS): Add cond33.test
Report from Ralf Corsepius.
* automake.in (handle_configure): Skip AC_CONFIG_LINKS items which
do not look like DEST:SRC.
* tests/conflnk3.test: Check for AC_CONFIG_LINKS($computed).
Fix for PR automake/289:
* automake.in (Automake::Struct::libtool_tag): New attribute. Define
it for the language that have a Libtool tag.
(%libtool_tags): New variable.
(handle_languages, define_compiler_variable)
(define_linker_variable): Pass --tag=XXX to libtool if supported.
(scan_autoconf_traces): Scan for _LT_AC_TAGCONFIG and AC_LIBTOOL_TAGS.
* tests/libtool3.test, tests/subobj9.test: Check that --tag=XXX is
output.
Fix for PR automake/289:
* automake.in (Automake::Struct::libtool_tag): New attribute. Define
it for the language that have a Libtool tag.
(%libtool_tags): New variable.
(handle_languages, define_compiler_variable)
(define_linker_variable): Pass --tag=XXX to libtool if supported.
(scan_autoconf_traces): Scan for _LT_AC_TAGCONFIG and AC_LIBTOOL_TAGS.
* tests/libtool3.test, tests/subobj9.test: Check that --tag=XXX is
output.