OpenCores
URL https://opencores.org/ocsvn/socgen/socgen/trunk

Subversion Repositories socgen

[/] [socgen/] [trunk/] [tools/] [yp/] [create_yp] - Diff between revs 127 and 130

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 127 Rev 130
Line 82... Line 82...
##############################################################################
##############################################################################
##
##
##############################################################################
##############################################################################
 
 
my $home                     = cwd();
my $home                     = cwd();
my $index_filename           = "./tools/yp/index.xml";
 
 
 
 
 
 
 
 
 
 
my $projects_dir    = $ARGV[0];
 
chomp($projects_dir);
 
$projects_dir = "/${projects_dir}";
 
 
 
 
 
 
 
 
 
use BerkeleyDB;
 
 
 
 
 
$repo_db                  = new BerkeleyDB::Hash( -Filename => 'tools/yp/Berkeley/repo.dbm',                  -Flags => DB_CREATE ) or die "Cannot open file: $!";
 
$component_db             = new BerkeleyDB::Hash( -Filename => 'tools/yp/Berkeley/component.dbm',             -Flags => DB_CREATE ) or die "Cannot open file: $!";
 
$design_db                = new BerkeleyDB::Hash( -Filename => 'tools/yp/Berkeley/design.dbm',                -Flags => DB_CREATE ) or die "Cannot open file: $!";
 
$busDefinition_db         = new BerkeleyDB::Hash( -Filename => 'tools/yp/Berkeley/busDefinition.dbm',         -Flags => DB_CREATE ) or die "Cannot open file: $!";
 
$abstractionDefinition_db = new BerkeleyDB::Hash( -Filename => 'tools/yp/Berkeley/abstractionDefinition.dbm', -Flags => DB_CREATE ) or die "Cannot open file: $!";
 
$libraryConfiguration_db  = new BerkeleyDB::Hash( -Filename => 'tools/yp/Berkeley/libraryConfiguration.dbm',  -Flags => DB_CREATE ) or die "Cannot open file: $!";
 
$componentConfiguration_db  = new BerkeleyDB::Hash( -Filename => 'tools/yp/Berkeley/componentConfiguration.dbm',  -Flags => DB_CREATE ) or die "Cannot open file: $!";
 
 
 
 
open   OUTFILE,">$index_filename" or die "unable to open $index_filename";
 
 
 
print  OUTFILE "\n";
 
print  OUTFILE "\n";
 
 
 
 
 
 
 
 
 
 
 
Line 109... Line 122...
#/                                                                                            */
#/                                                                                            */
#/                                                                                            */
#/                                                                                            */
#/*********************************************************************************************/
#/*********************************************************************************************/
 
 
my $parser = XML::LibXML->new();
my $parser = XML::LibXML->new();
$root = "${home}/projects";
$root = "${home}${projects_dir}";
&link_dir( "$root"  );
&link_dir( "$root"  );
 
 
print  OUTFILE "  \n";
 
 
 
 
 
#/*********************************************************************************************/
#/*********************************************************************************************/
#/                                                                                            */
#/                                                                                            */
#/                                                                                            */
#/                                                                                            */
Line 154... Line 166...
             if(/${home}(\S+)/) { $t_local = $1; }
             if(/${home}(\S+)/) { $t_local = $1; }
 
 
             my    $xml_file    = $parser->parse_file("${home}${t_local}/${t_name}.xml");
             my    $xml_file    = $parser->parse_file("${home}${t_local}/${t_name}.xml");
             eval {$xml_file->  findnodes('//socgen:componentConfiguration');};  #/ check for socgen namespace
             eval {$xml_file->  findnodes('//socgen:componentConfiguration');};  #/ check for socgen namespace
 
 
#             print ("Name  ${t_local}/${t_name}.xml  \n");
 
 
 
             if($@)             #/ Nope, must be spirit  namespace
             if($@)             #/ Nope, must be spirit  namespace
               {
               {
               foreach my $comp ($xml_file->findnodes('//spirit:component'))
               foreach my $comp ($xml_file->findnodes('//spirit:component'))
                  {
                  {
                  $vendor   = $comp->findnodes('./spirit:vendor/text()')->to_literal ;
                  $vendor   = $comp->findnodes('./spirit:vendor/text()')->to_literal ;
                  $library  = $comp->findnodes('./spirit:library/text()')->to_literal ;
                  $library  = $comp->findnodes('./spirit:library/text()')->to_literal ;
                  $type     = "spirit:component";
                  $type     = "spirit:component";
                  $name     = $comp->findnodes('./spirit:name/text()')->to_literal ;
                  $name     = $comp->findnodes('./spirit:name/text()')->to_literal ;
                  $version  = $comp->findnodes('./spirit:version/text()')->to_literal ;
                  $version  = $comp->findnodes('./spirit:version/text()')->to_literal ;
                  $lib_sw_dir = "";
 
                  }
                  }
 
 
 
 
               foreach my $design ($xml_file->findnodes('//spirit:design'))
               foreach my $design ($xml_file->findnodes('//spirit:design'))
                  {
                  {
                  $vendor   = $design->findnodes('./spirit:vendor/text()')->to_literal ;
                  $vendor   = $design->findnodes('./spirit:vendor/text()')->to_literal ;
                  $library  = $design->findnodes('./spirit:library/text()')->to_literal ;
                  $library  = $design->findnodes('./spirit:library/text()')->to_literal ;
                  $name     = $design->findnodes('./spirit:name/text()')->to_literal ;
                  $name     = $design->findnodes('./spirit:name/text()')->to_literal ;
                  $version  = $design->findnodes('./spirit:version/text()')->to_literal ;
                  $version  = $design->findnodes('./spirit:version/text()')->to_literal ;
                  $type     = "spirit:design";
                  $type     = "spirit:design";
                  $lib_sw_dir = "";
 
 
 
                  }
                  }
 
 
 
 
               foreach my $design ($xml_file->findnodes('//spirit:designConfiguration'))
 
                  {
 
                  $vendor   = $design->findnodes('./spirit:vendor/text()')->to_literal ;
 
                  $library  = $design->findnodes('./spirit:library/text()')->to_literal ;
 
                  $name     = $design->findnodes('./spirit:name/text()')->to_literal ;
 
                  $version  = $design->findnodes('./spirit:version/text()')->to_literal ;
 
                  $type     = "spirit:designConfiguration";
 
                  $lib_sw_dir = "";
 
 
 
                  }
 
 
 
 
 
 
 
 
 
               foreach my $design ($xml_file->findnodes('//spirit:abstractionDefinition'))
               foreach my $design ($xml_file->findnodes('//spirit:abstractionDefinition'))
                  {
                  {
                  $vendor   = $design->findnodes('./spirit:vendor/text()')->to_literal ;
                  $vendor   = $design->findnodes('./spirit:vendor/text()')->to_literal ;
                  $library  = $design->findnodes('./spirit:library/text()')->to_literal ;
                  $library  = $design->findnodes('./spirit:library/text()')->to_literal ;
                  $name     = $design->findnodes('./spirit:name/text()')->to_literal ;
                  $name     = $design->findnodes('./spirit:name/text()')->to_literal ;
                  $version  = $design->findnodes('./spirit:version/text()')->to_literal ;
                  $version  = $design->findnodes('./spirit:version/text()')->to_literal ;
                  $type     = "spirit:abstractionDefinition";
                  $type     = "spirit:abstractionDefinition";
                  $lib_sw_dir = "";
 
                  }
                  }
 
 
 
 
               foreach my $design ($xml_file->findnodes('//spirit:busDefinition'))
               foreach my $design ($xml_file->findnodes('//spirit:busDefinition'))
                  {
                  {
                  $vendor   = $design->findnodes('./spirit:vendor/text()')->to_literal ;
                  $vendor   = $design->findnodes('./spirit:vendor/text()')->to_literal ;
                  $library  = $design->findnodes('./spirit:library/text()')->to_literal ;
                  $library  = $design->findnodes('./spirit:library/text()')->to_literal ;
                  $name     = $design->findnodes('./spirit:name/text()')->to_literal ;
                  $name     = $design->findnodes('./spirit:name/text()')->to_literal ;
                  $version  = $design->findnodes('./spirit:version/text()')->to_literal ;
                  $version  = $design->findnodes('./spirit:version/text()')->to_literal ;
                  $type     = "spirit:busDefinition";
                  $type     = "spirit:busDefinition";
                  $lib_sw_dir = "";
 
                  }
                  }
               }
               }
 
 
               else               #/  socgen  namespace
               else               #/  socgen  namespace
 
 
Line 229... Line 226...
                  $vendor   = $design->findnodes('./socgen:vendor/text()')->to_literal ;
                  $vendor   = $design->findnodes('./socgen:vendor/text()')->to_literal ;
                  $library  = $design->findnodes('./socgen:library/text()')->to_literal ;
                  $library  = $design->findnodes('./socgen:library/text()')->to_literal ;
                  $name     = $design->findnodes('./socgen:component/text()')->to_literal ;
                  $name     = $design->findnodes('./socgen:component/text()')->to_literal ;
                  $version  = "";
                  $version  = "";
                  $type     = "socgen:componentConfiguration";
                  $type     = "socgen:componentConfiguration";
                  $lib_sw_dir = "";
 
                  }
                  }
 
 
 
 
               foreach my $design ($xml_file->findnodes('//socgen:libraryConfiguration'))
               foreach my $design ($xml_file->findnodes('//socgen:libraryConfiguration'))
                  {
                  {
                  $vendor   = $design->findnodes('./socgen:vendor/text()')->to_literal ;
                  $vendor   = $design->findnodes('./socgen:vendor/text()')->to_literal ;
                  $library  = $design->findnodes('./socgen:name/text()')->to_literal ;
                  $library  = $design->findnodes('./socgen:name/text()')->to_literal ;
                  $name     = "";
                  $name     = "";
                  $version  = "";
                  $version  = "";
                  $type     = "socgen:libraryConfiguration";
                  $type     = "socgen:libraryConfiguration";
                  $lib_sw_dir  = $design->findnodes('./socgen:lib_sw_dir/text()')->to_literal ;
 
                  }
                  }
 
 
               foreach my $comp ($xml_file->findnodes('//spirit:component'))
               foreach my $comp ($xml_file->findnodes('//spirit:component'))
                  {
                  {
                  $vendor   = $comp->findnodes('./spirit:vendor/text()')->to_literal ;
                  $vendor   = $comp->findnodes('./spirit:vendor/text()')->to_literal ;
                  $library  = $comp->findnodes('./spirit:library/text()')->to_literal ;
                  $library  = $comp->findnodes('./spirit:library/text()')->to_literal ;
                  $type     = "spirit:component";
                  $type     = "spirit:component";
                  $name     = $comp->findnodes('./spirit:name/text()')->to_literal ;
                  $name     = $comp->findnodes('./spirit:name/text()')->to_literal ;
                  $version  = $comp->findnodes('./spirit:version/text()')->to_literal ;
                  $version  = $comp->findnodes('./spirit:version/text()')->to_literal ;
                  $lib_sw_dir = "";
 
                  }
                  }
 
 
 
 
               foreach my $design ($xml_file->findnodes('//spirit:design'))
               foreach my $design ($xml_file->findnodes('//spirit:design'))
                  {
                  {
                  $vendor   = $design->findnodes('./spirit:vendor/text()')->to_literal ;
                  $vendor   = $design->findnodes('./spirit:vendor/text()')->to_literal ;
                  $library  = $design->findnodes('./spirit:library/text()')->to_literal ;
                  $library  = $design->findnodes('./spirit:library/text()')->to_literal ;
                  $name     = $design->findnodes('./spirit:name/text()')->to_literal ;
                  $name     = $design->findnodes('./spirit:name/text()')->to_literal ;
                  $version  = $design->findnodes('./spirit:version/text()')->to_literal ;
                  $version  = $design->findnodes('./spirit:version/text()')->to_literal ;
                  $type     = "spirit:design";
                  $type     = "spirit:design";
                  $lib_sw_dir = "";
 
 
 
                  }
                  }
 
 
 
 
               foreach my $design ($xml_file->findnodes('//spirit:designConfiguration'))
 
                  {
 
                  $vendor   = $design->findnodes('./spirit:vendor/text()')->to_literal ;
 
                  $library  = $design->findnodes('./spirit:library/text()')->to_literal ;
 
                  $name     = $design->findnodes('./spirit:name/text()')->to_literal ;
 
                  $version  = $design->findnodes('./spirit:version/text()')->to_literal ;
 
                  $type     = "spirit:designConfiguration";
 
                  $lib_sw_dir = "";
 
 
 
                  }
 
 
 
 
 
 
 
 
 
               foreach my $design ($xml_file->findnodes('//spirit:abstractionDefinition'))
               foreach my $design ($xml_file->findnodes('//spirit:abstractionDefinition'))
                  {
                  {
                  $vendor   = $design->findnodes('./spirit:vendor/text()')->to_literal ;
                  $vendor   = $design->findnodes('./spirit:vendor/text()')->to_literal ;
                  $library  = $design->findnodes('./spirit:library/text()')->to_literal ;
                  $library  = $design->findnodes('./spirit:library/text()')->to_literal ;
                  $name     = $design->findnodes('./spirit:name/text()')->to_literal ;
                  $name     = $design->findnodes('./spirit:name/text()')->to_literal ;
                  $version  = $design->findnodes('./spirit:version/text()')->to_literal ;
                  $version  = $design->findnodes('./spirit:version/text()')->to_literal ;
                  $type     = "spirit:abstractionDefinition";
                  $type     = "spirit:abstractionDefinition";
                  $lib_sw_dir = "";
 
                  }
                  }
 
 
 
 
               foreach my $design ($xml_file->findnodes('//spirit:busDefinition'))
               foreach my $design ($xml_file->findnodes('//spirit:busDefinition'))
                  {
                  {
                  $vendor   = $design->findnodes('./spirit:vendor/text()')->to_literal ;
                  $vendor   = $design->findnodes('./spirit:vendor/text()')->to_literal ;
                  $library  = $design->findnodes('./spirit:library/text()')->to_literal ;
                  $library  = $design->findnodes('./spirit:library/text()')->to_literal ;
                  $name     = $design->findnodes('./spirit:name/text()')->to_literal ;
                  $name     = $design->findnodes('./spirit:name/text()')->to_literal ;
                  $version  = $design->findnodes('./spirit:version/text()')->to_literal ;
                  $version  = $design->findnodes('./spirit:version/text()')->to_literal ;
                  $type     = "spirit:busDefinition";
                  $type     = "spirit:busDefinition";
                  $lib_sw_dir = "";
 
                  }
                  }
 
 
 
 
 
 
 
               }
 
 
 
 
 
             $vendor_match = "/${vendor}/";
 
             $library_match = "/${library}/";
 
             $name_match = "/${name}/";
 
 
 
             $_ = $t_local;
 
             if(/\S+($vendor_match)(\S+)/)                     { $vendor_path      = $2; }
 
             else                                              { $vendor_path      = ""; }
 
             if(/\S+($library_match)(\S+)/)                    { $library_path     = $2; }
 
             else                                              { $library_path     = ""; }
 
             if(/\S+($library_match)(\S+)($name_match)(\S+)/)  { $lib_comp_sep     = "/${2}/"; }
 
             else                                              { $lib_comp_sep     = "/"; }
 
             if(/(\S+)($name_match)(\S+)/)
 
               {
 
               $component_path   = "/${3}";
 
               $environment_path = $1;
 
               }
 
             else                                              { $component_path   = "/"; }
 
 
 
 
 
 
 
 
 
 
 
               $V_L_N_V  = "${vendor}__${library}_${name}_${version}"    ;
 
 
 
 
 
 
 
             if($type eq "spirit:component")
 
               {
 
 
 
               my $V = "${vendor}"    ;
 
               my @repo_info  = ("vendor","$vendor","$vendor_path" );
 
               $repo_db->db_put( $V, join(':', @repo_info) );
 
 
 
 
 
               my $V_L = "${vendor}__${library}"    ;
 
               @repo_info  = ("library","$library","$library_path" );
 
               $repo_db->db_put( $V_L, join(':', @repo_info) );
 
 
 
 
 
 
 
               my $V_L_N = "${vendor}__${library}_${name}"    ;
 
               @repo_info  = ("component","$name","$lib_comp_sep" );
 
               $repo_db->db_put( $V_L_N, join(':', @repo_info) );
 
 
 
 
 
 
 
               my @comp_info  = (".${t_local}/${t_name}.xml","${component_path}","${version}" );
 
               $component_db->db_put( $V_L_N_V, join(':', @comp_info) );
 
 
 
#               print "${vendor}__${library}_${name}_${version} \n";
 
#               print " .${t_local}/${t_name}.xml , ${component_path}                     \n  ";
 
 
 
 
               }
               }
 
 
 
 
             $vendor_match = "/${vendor}/";
               $V_L_N_V  = "${vendor}__${library}_${name}_${version}"    ;
             $library_match = "/${library}/";
 
             $name_match = "/${name}/";
 
 
 
 
             if($type eq "spirit:design")
 
               {
 
               @info  = (".${t_local}/${t_name}.xml","${component_path}","${version}" );
 
               $design_db->db_put( $V_L_N_V, join(':', @info) );
 
               }
 
 
 
 
 
             elsif($type eq "spirit:abstractionDefinition")
 
               {
 
               @info  = (".${t_local}/${t_name}.xml","${component_path}","${version}" );
 
               $abstractionDefinition_db->db_put( $V_L_N_V, join(':', @info) );
 
               }
 
 
 
 
 
             elsif($type eq "spirit:busDefinition")
 
               {
 
               @info  = (".${t_local}/${t_name}.xml","${component_path}","${version}" );
 
               $busDefinition_db->db_put( $V_L_N_V, join(':', @info) );
 
               }
 
 
 
 
 
             if($type eq "socgen:libraryConfiguration")
 
               {
 
               $V_L  = "${vendor}__${library}"    ;
 
               @info  = (".${t_local}/${t_name}.xml" );
 
               $libraryConfiguration_db->db_put( $V_L, join(':', @info) );
 
               }
 
 
 
 
 
             if($type eq "socgen:componentConfiguration")
 
               {
 
               my $V_L_N = "${vendor}__${library}_${name}"    ;
 
               @info  = (".${t_local}/${t_name}.xml" );
 
               $componentConfiguration_db->db_put( $V_L_N, join(':', @info) );
 
               }
 
 
 
 
 
 
 
 
             $_ = $t_local;
 
             if(/\S+($vendor_match)(\S+)/)                     { $vendor_path      = $2; }
 
             else                                              { $vendor_path      = ""; }
 
             if(/\S+($library_match)(\S+)/)                    { $library_path     = $2; }
 
             else                                              { $library_path     = ""; }
 
             if(/\S+($library_match)(\S+)($name_match)(\S+)/)  { $lib_comp_sep     = $2; }
 
             else                                              { $lib_comp_sep     = ""; }
 
             if(/\S?($name_match)(\S+)/)                       { $component_path   = $2; }
 
             else                                              { $component_path   = ""; }
 
 
 
 
 
 
 
             print  OUTFILE "   \n";
 
             print  OUTFILE "   ${type}\n";
 
             print  OUTFILE "   ${vendor}\n";
 
             print  OUTFILE "   ${library}\n";
 
             print  OUTFILE "   ${name}\n";
 
             print  OUTFILE "   ${version}\n";
 
             print  OUTFILE "   ${t_name}.xml\n";
 
             print  OUTFILE "   ${t_local}\n";
 
             print  OUTFILE "   ${vendor_path}\n";
 
             print  OUTFILE "   ${library_path}\n";
 
             print  OUTFILE "   ${component_path}\n";
 
             print  OUTFILE "   ${lib_comp_sep}\n";
 
             print  OUTFILE "   ${lib_sw_dir}\n";
 
             print  OUTFILE " \n\n";
 
 
 
             }
             }
 
 
          &link_dir("$src/$item" );
          &link_dir("$src/$item" );
          }
          }
Line 358... Line 400...
 
 
}
}
 
 
 
 
 
 
 
 
 
 
 
 
 
$repo_db->db_close();
 
$component_db->db_close();
 
$design_db->db_close();
 
$abstractionDefinition_db->db_close();
 
$busDefinition_db->db_close();
 
$libraryConfiguration_db->db_close();
 
$componentConfiguration_db->db_close();

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.