* lib/am/yacc.am, lib/am/lex.am: Only compile these targets in
maintainer mode.
* doc/automake.texi (Yacc and Lex): Note dependence on maintainer mode.
* NEWS: Note same dependency.
* tests/mmode-lexyacc.test: New file.
* m4/mkdirp.m4 (AM_PROG_MKDIR_P): Remove `.' from the mkdir_p
definition, it causes `make install' to fails for user with no
right to write in the source-tree.
* automake.in (handle_configure): Do not use mkdir_p in the
definition for $(mkdir_p).
Report from Harlan Stenn.
* lib/am/distdir.am (distdir): Always use $(DIST_SUBDIRS) now
that it is always defined. This is less confusing for users
reading the generated Makefiles.
* automake.in (handle_dist): Do not substitute DIST_SUBDIR_NAME.
* lib/am/texibuild.am (?GENERIC?%SOURCE_SUFFIX%.html,
?!GENERIC?%DEST_PREFIX%.html): Output .htp, and then rename to .html
on success. In case the target is a directory, this ensures its
time stamp is updated and the no files are left over inside.
* tests/txinfo21.test: Augment to test missing timestamp update
reported by Akim Demaille.
* doc/automake.texi (Top level): Rename as ...
(Directories): ... this, and split into ...
(Subdirectories, Conditional Subdirectories): ... these.
(Conditional Subdirectories): Describe SUBDIRS and DIST_SUBDIRS
before the example. Append a discussion about non-configured
conditional directories.
(Alternative): Move as a child of Directories.
(Subpackages): New section.
(Dist): Adjust links to Subdirectories, a Subpackages.
(Third-Party Makefiles): Link to Conditional Subdirectories.
* automake.in (target_hook): Accept %transform as last argument.
(define_objects_from_sources): Pass %transform to target_hook.
(handle_source_transform): Define DIST_SOURCE to tell whether
a the source of a file is distributed or not.
(lang_yacc_target_hook): Check DIST_SOURCE, and do not distribute
the generated header if the .y source is not distributed.
* tests/pr204.test: Use AM_YFLAGS = -d and make sure generated
headers are not distributed.
For PR automake/428:
Support for conditionally defined -hook and -local rules.
* automake.in (user_phony_rule): New function.
(handle_dist, handle_install, handle_all, do_check_merge_target,
handle_factored_dependencies): Use user_phony_rule before
adding a user -hook or -local rule as a dependency to ensure
it is always defined an phony.
* tests/cond37.test, tests/condhook.test: New files.
* tests/Makefile.am (TESTS): Add them.
Report from Simon Josefsson and Nik A. Melchior.
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