+2001-04-12 Akim Demaille <akim@epita.fr>
+
+ * automake.in (Language): New package, temporarily in this file.
+ Use Class::Struct.
+ (Automake): New package.
+ (%languages): New.
+ (&handle_single_transform_list): Use the language object's `ansi'
+ attribute instead of `$language_map{"$lang-ansi-p"}'.
+ (®ister_language): Build and register the language too.
+
2001-04-11 Tom Tromey <tromey@redhat.com>
Fixes report from Larry Jones:
# Originally written by David Mackenzie <djm@gnu.ai.mit.edu>.
# Perl reimplementation by Tom Tromey <tromey@cygnus.com>.
+package Language;
+use Class::Struct;
+struct ('ansi' => '$',
+ 'autodep' => '$',
+ 'derived_autodep' => '$',
+ 'linker' => '$',
+ 'pure' => '$');
+
+
+package Automake;
+
require 5.005;
use strict 'vars', 'subs';
use File::Basename;
# This maps languages names onto properties.
my %language_map = ();
+# This maps languages names onto objects.
+my %languages = ();
# List of targets we must always output.
# FIXME: Complete, and remove falsely required targets.
$extension = &derive_suffix ($extension);
my $lang = $extension_map{$extension};
+ # Extract the language object.
+ my $lang_obj = $languages{$lang};
if ($lang)
{
&saw_extension ($extension);
$linker = $language_map{"$lang-linker"};
my $this_obj_ext;
- if ($language_map{"$lang-ansi-p"})
+ prog_error ("$lang-ansi-p = " . $language_map{"$lang-ansi-p"}
+ . " != ". $lang_obj->ansi)
+ if $language_map{"$lang-ansi-p"} != $lang_obj->ansi;
+ if ($lang_obj->ansi)
{
$object = $base . $obj;
$this_obj_ext = $obj;
$extension_map{$iter} = $lang;
}
}
+
+ my $obj = new Language;
+ $obj->ansi ($language_map{"$lang-ansi-p"});
+ $obj->autodep ($language_map{"$lang-autodep"});
+ $obj->derived_autodep ($language_map{"$lang-derived-autodep"});
+ $obj->linker ($language_map{"$lang-linker"});
+ $obj->pure ($language_map{"$lang-pure"});
+
+ $languages{$lang} = $obj;
}
# This function is used to find a path from a user-specified suffix to