* 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.
* 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".