ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/SCRAM/src/BuildSystem/BuildFile.pm
(Generate patch)

Comparing COMP/SCRAM/src/BuildSystem/BuildFile.pm (file contents):
Revision 1.21 by sashby, Mon Aug 5 11:54:07 2002 UTC vs.
Revision 1.23 by sashby, Wed Oct 23 07:35:39 2002 UTC

# Line 126 | Line 126 | sub _commontags
126                     \&IncludePath_Start,$self,
127                     \&OutToMakefile, $self,
128                     "",$self);
129 +   $switch->addtag($parse,"CompilerMap",
130 +                   \&CompilerMap_Start,$self,
131 +                   \&OutToMakefile, $self,
132 +                   "",$self);
133     return $switch;
134     }
135  
# Line 913 | Line 917 | sub AssociateGroup {
917          }
918   }
919  
920 < sub Arch_Start {
921 <        my $self=shift;
922 <        my $name=shift;
923 <        my $hashref=shift;
924 <
925 <        $self->verbose(">> Arch_Start: NM ".$name." <<");
926 <        
927 <        $self->{switch}->checktag($name, $hashref,'name');
928 <        ( ($ENV{SCRAM_ARCH}=~/$$hashref{name}.*/) )? ($self->{Arch}=1)
929 <                                                : ($self->{Arch}=0);
930 <        push @{$self->{ARCHBLOCK}}, $self->{Arch};
931 < }
920 > sub Arch_Start
921 >   {
922 >   my $self=shift;
923 >   my $name=shift;
924 >   my $hashref=shift;
925 >  
926 >   $self->verbose(">> Arch_Start: NM ".$name." <<");
927 >  
928 >   $self->{switch}->checktag($name, $hashref,'name');
929 >  
930 > #   if ($ENV{SCRAM_ARCH} =~ /$$hashref{name}$/)
931 >   if ( $$hashref{name} eq $ENV{SCRAM_ARCH} )
932 >      {
933 > #      print "HASHREFNAME= ",$$hashref{name},"\n";     # The tag read from BuildFile
934 > #      print "Scram arch()? ",$ENV{SCRAM_ARCH},"\n";   # Also SCRAM_ARCH
935 >      $self->{Arch}=1;
936 >      }
937 >   else
938 >      {
939 >      $self->{Arch}=0;
940 >      }
941 > #   ( ($ENV{SCRAM_ARCH}=~/$$hashref{name}.*/) )? ($self->{Arch}=1)
942 > #      : ($self->{Arch}=0);
943 >  
944 >   $self->verbose(($self->{Arch}?"OK":"skipping")." ".$$hashref{name});
945 >   push @{$self->{ARCHBLOCK}}, $self->{Arch};
946 >   }
947  
948   sub Arch_End {
949          my $self=shift;
# Line 1223 | Line 1242 | sub Store_start {
1242                          ."/".$dir.":".$ENV{RELEASETOP}."/".$dir."\n";
1243          }
1244   }
1245 +
1246 + sub CompilerMap_Start
1247 +   {
1248 +   ###############################################################
1249 +   # CompilerMap_Start                                           #
1250 +   ###############################################################
1251 +   # modified : Fri Oct  4 15:08:39 2002 / SFA                   #
1252 +   # params   :                                                  #
1253 +   #          :                                                  #
1254 +   #          :                                                  #
1255 +   #          :                                                  #
1256 +   # function : Create a map between a SUBARCH and specific      #
1257 +   #          : compiler and version.                            #
1258 +   #          :                                                  #
1259 +   #          :                                                  #
1260 +   ###############################################################
1261 +   my $self=shift;
1262 +   my $name=shift;
1263 +   my $hashref=shift;
1264 +
1265 +   $self->verbose(">> CompilerMap_Start: NM ".$name." <<");
1266 +   print "compiler check....",$self->{Arch},"\n";
1267 +   print "ARCH: ",$self->{ArchStack},"\n";
1268 +   # We can only map compilers to already-defined architectures, so
1269 +   # we check for 'Arch':
1270 +   if ( $self->{Arch} )
1271 +      {
1272 +      my @tagnames=keys %{$hashref};
1273 +      my @tagvalues=values %{$hashref};
1274 +      
1275 +      foreach my $tag ( @tagnames )
1276 +         {
1277 +         $self->{switch}->checktag($name,$hashref,$tag);
1278 +         print GNUmakefile $tag."=".$$hashref{$tag}."\n";
1279 + #       if ( defined $$hashref{'version'} ) {
1280 + #               print GNUmakefile "_V_".$$hashref{'version'};
1281 + #       }
1282 + #       print GNUmakefile "=true\n";
1283 +
1284 +         }
1285 + #        $self->{switch}->checktag($name,$hashref,'ref');
1286 +
1287 + #       # -- oo toolbox stuff
1288 + #       # - get the appropriate tool object
1289 + #       $$hashref{'ref'}=~tr[A-Z][a-z];
1290 + #       if ( ! exists $$hashref{'version'} ) {
1291 + #        $tool=$self->{toolbox}->gettool($$hashref{'ref'});
1292 + #       }
1293 + #       else {
1294 + #        $tool=$self->{toolbox}->gettool($$hashref{'ref'},$$hashref{'version'});
1295 + #       }
1296 + #       if ( ! defined $tool ) {
1297 + #         $self->{switch}->parseerror("Unknown Tool Specified ("
1298 + #                                                       .$$hashref{'ref'}.")");
1299 + #       }
1300 +
1301 + #       # -- old fashioned GNUmakefile stuff
1302 + #       print GNUmakefile $$hashref{'ref'};
1303 + #       if ( defined $$hashref{'version'} ) {
1304 + #               print GNUmakefile "_V_".$$hashref{'version'};
1305 + #       }
1306 + #       print GNUmakefile "=true\n";
1307 +        
1308 + #       # -- Sub system also specified?
1309 + #       if ( exists $$hashref{'use'} ) {
1310 + #          # -- look for a buildfile
1311 + #          my @paths=$tool->getfeature("INCLUDE");
1312 + #          my $file="";
1313 + #          my ($path,$testfile);
1314 + #          foreach $path ( @paths ) {
1315 + #            $testfile=$path."/".$$hashref{'use'}."/BuildFile" ;
1316 + #            if ( -f $testfile ) {
1317 + #               $file=$testfile;
1318 + #               $self->_pushremoteproject($path);
1319 + #            }
1320 + #          }
1321 + #          if ( $file eq "" ) {
1322 + #            $self->{switch}->parseerror("Unable to find SubSystem $testfile");
1323 + #          }
1324 + #          $self->ParseBuildFile_Export($file);
1325 + #          $self->_popremoteproject();
1326 + #        }
1327 +      }
1328 +   else
1329 +      {
1330 +      print "No architecture defined: not possible to define a compiler-to-subarch mapping.","\n";
1331 +      }
1332 +   }
1333 +

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines