automake/lib/Automake/Language.pm
Karl Berry fc1c3f6585 automake: just use warnings, with no => FATAL.
Per Perl recommendation:
  https://perldoc.perl.org/warnings#Fatal-Warnings
Suggested by Collin Funk:
  https://lists.gnu.org/archive/html/automake/2025-01/msg00003.html
And in the Perl discussion:
  https://github.com/Perl/perl5/issues/22954#issuecomment-2622966302

* bin/aclocal.in: just use warnings, not making them fatal.
* bin/automake.in:
* contrib/tap-driver.pl:
* gen-testsuite-part:
* lib/Automake/ChannelDefs.pm:
* lib/Automake/Channels.pm:
* lib/Automake/Condition.pm:
* lib/Automake/Config.in:
* lib/Automake/Configure_ac.pm:
* lib/Automake/DisjConditions.pm:
* lib/Automake/FileUtils.pm:
* lib/Automake/General.pm:
* lib/Automake/Getopt.pm:
* lib/Automake/Item.pm:
* lib/Automake/ItemDef.pm:
* lib/Automake/Language.pm:
* lib/Automake/Location.pm:
* lib/Automake/Options.pm:
* lib/Automake/Rule.pm:
* lib/Automake/RuleDef.pm:
* lib/Automake/VarDef.pm:
* lib/Automake/Variable.pm:
* lib/Automake/Version.pm:
* lib/Automake/Wrap.pm:
* lib/Automake/XFile.pm:
* t/ax/deltree.pl:
* t/ax/extract-testsuite-summary.pl:
* t/check-fd-redirect.sh:
* t/tap-signal.tap:
* t/tests-environment-fd-redirect.sh:
* t/testsuite-summary-count-many.sh:
2025-01-31 09:20:47 -08:00

106 lines
2.8 KiB
Perl

# Copyright (C) 2013-2025 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
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
package Automake::Language;
use 5.006; use strict; use warnings;
use Class::Struct ();
Class::Struct::struct (
# Short name of the language (c, f77...).
'name' => "\$",
# Nice name of the language (C, Fortran 77...).
'Name' => "\$",
# List of configure variables which must be defined.
'config_vars' => '@',
# 'pure' is '1' or ''. A 'pure' language is one where, if
# all the files in a directory are of that language, then we
# do not require the C compiler or any code to call it.
'pure' => "\$",
'autodep' => "\$",
# Name of the compiling variable (COMPILE).
'compiler' => "\$",
# Content of the compiling variable.
'compile' => "\$",
# Flag to require compilation without linking (-c).
'compile_flag' => "\$",
'extensions' => '@',
# A subroutine to compute a list of possible extensions of
# the product given the input extensions.
# (defaults to a subroutine which returns ('.$(OBJEXT)', '.lo'))
'output_extensions' => "\$",
# A list of flag variables used in 'compile'.
# (defaults to [])
'flags' => "@",
# Any tag to pass to libtool while compiling.
'libtool_tag' => "\$",
# The file to use when generating rules for this language.
# The default is 'depend2'.
'rule_file' => "\$",
# Name of the linking variable (LINK).
'linker' => "\$",
# Content of the linking variable.
'link' => "\$",
# Name of the compiler variable (CC).
'ccer' => "\$",
# Name of the linker variable (LD).
'lder' => "\$",
# Content of the linker variable ($(CC)).
'ld' => "\$",
# Flag to specify the output file (-o).
'output_flag' => "\$",
'_finish' => "\$",
# This is a subroutine which is called whenever we finally
# determine the context in which a source file will be
# compiled.
'_target_hook' => "\$",
# If TRUE, nodist_ sources will be compiled using specific rules
# (i.e. not inference rules). The default is FALSE.
'nodist_specific' => "\$");
sub finish ($)
{
my ($self) = @_;
if (defined $self->_finish)
{
&{$self->_finish} (@_);
}
}
sub target_hook ($$$$%)
{
my ($self) = @_;
if (defined $self->_target_hook)
{
$self->_target_hook->(@_);
}
}
1;