[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
77-language-class.patch
From: |
Akim Demaille |
Subject: |
77-language-class.patch |
Date: |
Fri, 23 Mar 2001 11:20:43 +0100 |
Index: ChangeLog
from Akim Demaille <address@hidden>
* 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.
Index: automake.in
--- automake.in Sun, 18 Mar 2001 20:59:31 +0100 akim (am/f/39_automake.i 1.200
755)
+++ automake.in Wed, 21 Mar 2001 01:31:42 +0100 akim (am/f/39_automake.i 1.200
755)
@@ -27,6 +27,17 @@
# Originally written by David Mackenzie <address@hidden>.
# Perl reimplementation by Tom Tromey <address@hidden>.
+package Language;
+use Class::Struct;
+struct ('ansi' => '$',
+ 'autodep' => '$',
+ 'derived_autodep' => '$',
+ 'linker' => '$',
+ 'pure' => '$');
+
+
+package Automake;
+
require 5.005;
use strict 'vars', 'subs';
use File::Basename;
@@ -390,6 +401,8 @@
# 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.
@@ -1442,6 +1455,8 @@ sub handle_single_transform_list ($$$@)
$extension = &derive_suffix ($extension);
my $lang = $extension_map{$extension};
+ # Extract the language object.
+ my $lang_obj = $languages{$lang};
if ($lang)
{
&saw_extension ($extension);
@@ -1456,7 +1471,10 @@ sub handle_single_transform_list ($$$@)
$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;
@@ -5206,6 +5224,15 @@ sub register_language
$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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- 77-language-class.patch,
Akim Demaille <=