]> sourceware.org Git - automake.git/commitdiff
* automake.in (Language): New package, temporarily in this file.
authorAkim Demaille <akim@epita.fr>
Thu, 12 Apr 2001 09:13:45 +0000 (09:13 +0000)
committerAkim Demaille <akim@epita.fr>
Thu, 12 Apr 2001 09:13:45 +0000 (09:13 +0000)
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"}'.
(&register_language): Build and register the language too.

ChangeLog
automake.in

index c9aa18f466133ba9a4ecf90e7a7e6af246e20ab4..404a3abed88e1b68a6c561b659aba5449d76cf35 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+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"}'.
+       (&register_language): Build and register the language too.
+
 2001-04-11  Tom Tromey  <tromey@redhat.com>
 
        Fixes report from Larry Jones:
index ecafd6e79f2e6b0390642d2d744e2bfdbb855a9e..db63d1c5a0a18b5c5378b789400781d756ffe2c0 100755 (executable)
@@ -27,6 +27,17 @@ eval 'exec @PERL@ -S $0 ${1+"$@"}'
 # 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;
@@ -390,6 +401,8 @@ my $configure_dist_common = '';
 
 # 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.
@@ -1439,6 +1452,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);
@@ -1453,7 +1468,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;
@@ -5228,6 +5246,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
This page took 0.080198 seconds and 5 git commands to generate.