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.
* lib/am/inst-vars.am: New file, define am__vpath_adj_setup,
am__vpath_adj, and am__strip_dir.
* lib/am/Makefile.am (dist_am_DATA): Add inst-vars.am.
* lib/am/data.am, lib/am/lisp.am, lib/am/python.am,
lib/am/scripts.am: Include inst-vars.am, and use $(am__vpath_adj),
$(am__vpath_adj_setup), and $(am__strip_dir) in install and
uninstall rules. This fixes installation of nobase_ files in
VPATH setups with Sun and OSF1/Tru64 Make.
* lib/am/libs.am, lib/am/ltlib.am: Include inst-vars.am, and use
$(am__strip_dir) to simplify install and uninstall rules.
* tests/nobase.test: Augment to check installation from VPATH builds.
* automake.in (%transformed_files): New variable.
(initialize_per_input): Reset it.
(make_paragraphs): Fill %transformed_files, and define %FIRST%
each time a file is transformed for the first time.
(handle_configure): Do not define %FIRST_CONFIG_HIN%.
(am_install_var): Do not define %FIRST%.
* lib/am/remake-hdr.am: Use %?FIRST% instead of %?FIRST_CONFIG_HIN%.
* m4/mkdirp.m4: Do not use `-m 0755'. This overrides special bits
and break setups where 775 directories are expected. Just obey
umask as we did in the past.
Report from Harlan Stenn.
* lib/Automake/Variable.pm (define): Rework the way we check
Automake variable definition. Ensure consistent :=/+=/=
definitions only for variables that have been and are defined by
Automake, and make it an internal error. Ignore Automake
attempts to touch a user variable, even with += assignments.
* tests/txinfo29.test: New file.
* tests/Makefile.am (TESTS): Add txinfo29.test.
Reported by Bruce Korb.
Tom Tromey [Fri, 2 Jan 2004 21:38:06 +0000 (21:38 +0000)]
* automake.in (handle_source_transform): Don't generate dist
variables when no-dist is set.
(generate_makefile): Likewise.
* tests/nodist3.test: Ensure that DIST_SOURCES is not created,
and that dist target does not exist.
Reported by Tom Fitzsimmons.
* tests/libtool5.test, tests/ltcond.test, tests/ltcond2.test,
* tests/ltconv.test: Run automake with --add-missing, because
the CVS version of libtoolize no longer install config.sub and
config.guess by default.
Fix for PR automake/319:
* aclocal.in (scan_m4_files): Scan configure.ac.
(trace_used_macros, write_aclocal): Remove configure.ac from the
list of files to include.
* tests/Makefile.am (TESTS): Add acloca15.test.
* tests/acloca15.test: New file.
* aclocal.in (%file_includes): New variable.
(scan_configure_dep): Compile $m4_include_rx and $ac_require_rx once.
(scan_file): Scan for included files, and process these files
recursively. Fill %file_includes and %file_contents. Return the
list of included files, not the contents.
(scan_m4_files): Adjust calls to scan_files.
(strip_redundant_includes): New function.
(trace_used_macros): Call it.
(write_aclocal): Likewise. Also check the mtime of included files.
* tests/Makfile.am (TESTS): Add acloca14.test.
* tests/acloca14.test: New file.
Report from Phil Edwards.
* automake.in (handle_languages): Do not define DEP_FILES.
* m4/depout.m4 (_AM_OUTPUT_DEPENDENCY_COMMANDS): Extract included
files with $(DEPDIR) in their name instead of DEP_FILES.
* tests/depend.test, tests/depend4.test, tests/exsource.test:
Adjust.
Suggested by Tom Tromey.
Do not output .lo rules for programs and static libraries objects,
and do not output .o/.obj rules for libtool libraries. This is
about explicit rules only, not inference rules.
* automake.in (handle_single_transform_list): Rename as ...
(handle_single_transform): ... this. Take a single file
to transform (it was only called this way) and accept a new
%transform argument. Fill %lang_specific_files with list
references instead of strings, and append %transform to each
of these lists.
(define_objects_from_sources, handle_source_transform):
Take a %transform argument, and forward it to &handle_single_transform.
(handle_languages): Adjust to the new format of
%lang_specific_files, and honor its %transform part.
(handle_programs, handle_libraries, handle_ltlibraries): Override
%NONLIBTOOL% and %LIBTOOL% while calling handle_source_transform.
(make_paragraphs): Define %NONLIBTOOL% by default. Make sure
%transform settings override global settings.
* lib/am/depend2.am (%OBJ%, %OBJOBJ%): Define only if %NONLIBTOOL%.
* tests/libtool3.test: Augment to check Makefile.ins for unneeded
rules.
Suggested by Thomas Fitzsimmons.
* automake.in (handle_languages): Define %DEPBASE% conditionally
on subdir-objects. Define SUBDIROBJ. Do not clean *_.c files
here ...
(lang_c_finish): ... do it here.
(handle_single_transform_list): Do not output specific rules for
subdir-objects files which are not renamed. This should reduce
the size of Makefiles with lots of subdirectory sources.
* lib/depcomp: Simplify computation of dependency output, and use
DEPDIR.
* lib/am/depend2.am (%EXT%.o, %EXT%.obj, %EXT%.lo): Adjust call
to depcomp. Compute depbase on-the-fly in generic fastdep rules
for subdir-objects.
* tests/ansi9.test: Do not grep for an explicit rule that
we no longer expect. Really run $MAKE to make sure the chain
of rules works.
* tests/yacc5.test: Do not grep for an explicit rule that
we no longer expect. Adjust to use set -e.
* automake.in (@common_files): Move configure, configure.ac, and
configure.in ...
(@common_sometimes): ... here so that these files do not appear
twice in DIST_COMMON.
* automake.in (maybe_push_required_file): Add $(srcdir) in front
a required files outside the current directory or its subdirectories.
* lib/am/distdir.am (distdir): Update comment.
Report from Nicolas Joly.
* doc/automake.texi (@copying): Do not repeat the version.
(Top): Use @insertcopying. Add a @detailmenu, this works around
Emacs 21's inability to lookup indices in sub-nodes (reported
by Kevin Ryde).
(C++ Support, Assembly Support, Fortran 77 Support, Java Support,
Support for Other Languages, Preprocessing Fortran 77, Compiling
Fortran 77 Files, Mixing Fortran 77 With C and C++, How the Linker
is Chosen): Add missing descriptions in menus.
(Fortran 77 and Autoconf): Remove, this node was just saying "use
Autoconf 2.53 or greater".
* Makefile.am (do_subst): Fix the substitution of @configure_input@.
(automake, aclocal): Create the output atomically and make it
read-only, as done in the Autoconf package.
* lib/Automake/Makefile.am (do_subst): Fix the substitution of
@configure_input@.
(Config.pm): Create the output atomically and make it read-only.
* m4/Makefile.am ($(top_srcdir)/m4/amversion.m4): Substitute
@configure_input@ and make the output read-only.
* lib/Automake/Config.in, m4/amversion.in, tests/aclocal.in,
tests/automake.in, tests/defs.in: Add a @configure_input@ line.
* lib/Automake/Variable.pm (hook): Use $$ as prototype, not $&.
Perl 5.6.0 will not accept a reference sub reference for the
latter.
* automake.in (var_SUFFIXES_trigger): Adjust registration via
Automake::Variabke::hook.
(handle_texinfo_helper): Make sure `inner_expand => 1' appears
on one line, so that Perl 5.6.0 does not complain about
inner_expand being a bare identifier.
* doc/automake.texi (Rebuilding): Document CONFIGURE_DEPENDENCIES
and CONFIG_STATUS_DEPENDENCIES. Move this sections later
in the manual since it's pretty advanced material.
* automake.in ($config_header_location): Remove. Use
%ac_config_files_location instead.
(rewrite_inputs_into_dependencies): Do not prepend $(top_builddir)/
at the top-level.
(handle_configure): Use rewrite_inputs_into_dependencies to
distribute and compute AC_CONFIG_HEADERS dependencies.
(scan_autoconf_traces) <AC_CONFIG_HEADERS>: Fill
%ac_config_files_location.
* lib/am/remake-hdr.am ($(srcdir)/%CONFIG_HIN%): Rename as ...
(%CONFIG_HIN%): ... this. $(srcdir) is already added in
scan_autoconf_traces.
* tests/Makefile.am (TESTS): Add confh5.test.
* tests/confh5.test: New file.
* automake.in (handle_configure): Do not require link sources if
they contain a dollar, or if they were built. Likewise, do not
clean link destination if they contain a dollar.
(scan_autoconf_traces) <AC_CONFIG_LINKS>: Populate
%ac_config_files_location with link destinations. Do not
store locations in @config_links, now that %ac_config_files_location
have them.
* tests/conflnk3.test: New file.
* tests/Makefile.am (TESTS): Add conflnk3.test.