Edit

kc3-lang/automake/lib/Automake/Language.pm

Branch :

  • Show log

    Commit

  • Author : Karl Berry
    Date : 2025-01-31 09:20:47
    Hash : fc1c3f65
    Message : 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:

  • lib/Automake/Language.pm
  • # 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;