if 0;
# automake - create Makefile.in from Makefile.am
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
BEGIN
{
- my $perllibdir = $ENV{'perllibdir'} || '@datadir@/@PACKAGE@-@APIVERSION@';
- unshift @INC, (split '@PATH_SEPARATOR@', $perllibdir);
+ @Automake::perl_libdirs = ('@datadir@/@PACKAGE@-@APIVERSION@')
+ unless @Automake::perl_libdirs;
+ unshift @INC, @Automake::perl_libdirs;
# Override SHELL. This is required on DJGPP so that system() uses
# bash, not COMMAND.COM which doesn't quote arguments properly.
# Files found by scanning configure.ac for LIBOBJS.
my %libsources = ();
-# Names used in AC_CONFIG_HEADER call.
+# Names used in AC_CONFIG_HEADERS call.
my @config_headers = ();
# Names used in AC_CONFIG_LINKS call.
# List of files in AC_CONFIG_FILES/AC_OUTPUT without Makefile.am's,
# and their outputs.
my @other_input_files = ();
-# Where each AC_CONFIG_FILES/AC_OUTPUT/AC_CONFIG_LINK/AC_CONFIG_HEADER appears.
-# The keys are the files created by these macros.
+# Where each AC_CONFIG_FILES/AC_OUTPUT/AC_CONFIG_LINK/AC_CONFIG_HEADERS
+# appears. The keys are the files created by these macros.
my %ac_config_files_location = ();
# The condition under which AC_CONFIG_FOOS appears.
my %ac_config_files_condition = ();
msg_var ('unsupported', $ext_var, $ext_var->name . " can assume at most one value")
if $default_source_ext =~ /[\t ]/;
(my $default_source = $unxformed) =~ s,(\.[^./\\]*)?$,$default_source_ext,;
+ # TODO: Remove this backward-compatibility hack in Automake 2.0.
if ($old_default_source ne $default_source
&& !$ext_var
&& (rule $old_default_source
my($xlink, $vlink) = &define_per_target_linker_variable ($linker, $xname);
$vlink = verbose_flag ($vlink || 'GEN');
- # If the resulting program lies into a subdirectory,
- # make sure this directory will exist.
+ # If the resulting program lies in a subdirectory,
+ # ensure that the directory exists before we need it.
my $dirstamp = require_build_directory_maybe ($one_file);
$libtool_clean_directories{dirname ($one_file)} = 1;
&handle_source_transform ($xlib, $onelib, $obj, $where,
NONLIBTOOL => 1, LIBTOOL => 0);
- # If the resulting library lies into a subdirectory,
+ # If the resulting library lies in a subdirectory,
# make sure this directory will exist.
my $dirstamp = require_build_directory_maybe ($onelib);
my $verbose = verbose_flag ('AR');
}
}
- # If the resulting library lies into a subdirectory,
+ # If the resulting library lies in a subdirectory,
# make sure this directory will exist.
my $dirstamp = require_build_directory_maybe ($onelib);
next if $outfile;
$outfile = $1;
- if ($outfile =~ /\.([^.]+)$/ && $1 ne 'info')
+ if (index ($outfile, '.') < 0)
+ {
+ msg 'obsolete', "$filename:$.",
+ "use of suffix-less info files is discouraged"
+ }
+ elsif ($outfile !~ /\.info$/)
{
error ("$filename:$.",
"output '$outfile' has unrecognized extension");
return;
}
- my $infobase = basename ($filename);
- $infobase =~ s/\.te?xi(nfo)?$//;
return ($outfile, $vfile);
}
# extension).
my $generic_info = ($generic && $dsfx) ? 1 : 0;
- # If the resulting file lie into a subdirectory,
+ # If the resulting file lies in a subdirectory,
# make sure this directory will exist.
my $dirstamp = require_build_directory_maybe ($dest);
($info_texinfos->value_as_list_recursive (inner_expand => 1))
{
my $infobase = $texi;
- $infobase =~ s/\.(txi|texinfo|texi)$//;
-
- if ($infobase eq $texi)
+ if ($infobase =~ s/\.texi$//)
+ {
+ 1; # Nothing more to do.
+ }
+ elsif ($infobase =~ s/\.(txi|texinfo)$//)
+ {
+ msg_var 'obsolete', $info_texinfos,
+ "suffix '.$1' for Texinfo files is discouraged;" .
+ " use '.texi' instead";
+ }
+ else
{
# FIXME: report line number.
err_am "texinfo file '$texi' has unrecognized extension";
file_contents ('remake-hdr',
new Automake::Location,
FILES => "@files",
+ 'FIRST-HDR' => ($hdr_index == 1),
CONFIG_H => $cn_sans_dir,
CONFIG_HIN => $ins[0],
CONFIG_H_DEPS => "@ins",
# Distribute and define mkinstalldirs only if it is already present
# in the package, for backward compatibility (some people may still
# use $(mkinstalldirs)).
+ # TODO: start warning about this in Automake 1.14, and have
+ # TODO: Automake 2.0 drop it (and the mkinstalldirs script
+ # TODO: as well).
my $mkidpath = "$config_aux_dir/mkinstalldirs";
if (-f $mkidpath)
{
# Handle $local:$input syntax.
my ($local, @rest) = split (/:/);
@rest = ("$local.in",) unless @rest;
- # Keep in sync with 'conffile-leading-dot.test'.
+ # Keep in sync with test 'conffile-leading-dot.sh'.
msg ('unsupported', $where,
"omit leading './' from config file names such as '$local';"
. "\nremake rules might be subtly broken otherwise")
AC_REQUIRE_AUX_FILE => 1,
AC_SUBST_TRACE => 1,
AM_AUTOMAKE_VERSION => 1,
+ AM_PROG_MKDIR_P => 0,
AM_CONDITIONAL => 2,
- _AM_EXTRA_RECURSIVE_TARGETS => 1,
+ AM_EXTRA_RECURSIVE_TARGETS => 1,
AM_GNU_GETTEXT => 0,
AM_GNU_GETTEXT_INTL_SUBDIR => 0,
AM_INIT_AUTOMAKE => 0,
$seen_automake_version = 1;
}
+ elsif ($macro eq 'AM_PROG_MKDIR_P')
+ {
+ msg 'obsolete', $where, <<'EOF';
+The 'AM_PROG_MKDIR_P' macro is deprecated, and its use is discouraged.
+You should use the Autoconf-provided 'AC_PROG_MKDIR_P' macro instead,
+and use '$(MKDIR_P)' instead of '$(mkdir_p)'in your Makefile.am files.
+EOF
+ }
elsif ($macro eq 'AM_CONDITIONAL')
{
$configure_cond{$args[1]} = $where;
}
- elsif ($macro eq '_AM_EXTRA_RECURSIVE_TARGETS')
+ elsif ($macro eq 'AM_EXTRA_RECURSIVE_TARGETS')
{
- push @extra_recursive_targets, split (' ', $args[1]);
+ # Empty leading/trailing fields might be produced by split,
+ # hence the grep is really needed.
+ push @extra_recursive_targets,
+ grep (/./, (split /\s+/, $args[1]));
}
elsif ($macro eq 'AM_GNU_GETTEXT')
{
{
msg 'obsolete', $where, <<'EOF';
AM_INIT_AUTOMAKE: two- and three-arguments forms are deprecated. For more info, see:
-http://www.gnu.org/software/automake/manual/automake.html#Modernize-AM_INIT_AUTOMAKE-invocation
+http://www.gnu.org/software/automake/manual/automake.html#Modernize-AM_005fINIT_005fAUTOMAKE-invocation
EOF
$package_version = $args[2];
$package_version_location = $where;
# Update the pattern of known extensions.
accept_extensions (@{$lang->extensions});
- # Upate the $suffix_rule map.
+ # Update the suffix rules map.
foreach my $suffix (@{$lang->extensions})
{
foreach my $dest (&{$lang->output_extensions} ($suffix))
{
my ($source_ext, $obj) = @_;
- while (! $extension_map{$source_ext}
- && $source_ext ne $obj
- && exists $suffix_rules->{$source_ext}
- && exists $suffix_rules->{$source_ext}{$obj})
+ while (!$extension_map{$source_ext} && $source_ext ne $obj)
{
- $source_ext = $suffix_rules->{$source_ext}{$obj}[0];
+ my $new_source_ext = next_in_suffix_chain ($source_ext, $obj);
+ last if not defined $new_source_ext;
+ $source_ext = $new_source_ext;
}
return $source_ext;
# otherwise OSF make will implicitly copy the included
# file in the build tree during "make distdir" to satisfy
# the dependency.
- # (subdircond2.test and subdircond3.test will fail.)
+ # (subdir-am-cond.sh and subdir-ac-cond.sh will fail)
push_dist_common ("\$\(top_srcdir\)/$path");
}
else
# otherwise OSF make will implicitly copy the included
# file in the build tree during "make distdir" to satisfy
# the dependency.
- # (subdircond2.test and subdircond3.test will fail.)
+ # (subdir-am-cond.sh and subdir-ac-cond.sh will fail)
push_dist_common ("\$\(srcdir\)/$path");
$path = $relative_dir . "/" . $path if $relative_dir ne '.';
}
}
# This is needed to allow a construct in a non-top-level Makefile.am
# to require a file in the build-aux directory (see at least the test
- # script 'test-driver-is-distributed.test'). This is related to the
+ # script 'test-driver-is-distributed.sh'). This is related to the
# automake bug#9546. Note that the use of $config_aux_dir instead
# of $am_config_aux_dir here is deliberate and necessary.
elsif ($dir eq $config_aux_dir)