Line 91... |
Line 91... |
|
|
|
|
|
|
open OUTFILE,">$index_filename" or die "unable to open $index_filename";
|
open OUTFILE,">$index_filename" or die "unable to open $index_filename";
|
|
|
|
|
print OUTFILE "\n";
|
print OUTFILE "\n";
|
print OUTFILE "\n";
|
print OUTFILE "\n";
|
|
|
|
|
|
|
Line 116... |
Line 115... |
&link_dir( "$root" );
|
&link_dir( "$root" );
|
|
|
print OUTFILE " \n";
|
print OUTFILE " \n";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#/*********************************************************************************************/
|
#/*********************************************************************************************/
|
#/ */
|
#/ */
|
#/ */
|
#/ */
|
#/ */
|
#/ */
|
#/ */
|
#/ */
|
Line 149... |
Line 132... |
my $src = shift;
|
my $src = shift;
|
return unless( -e $src );
|
return unless( -e $src );
|
|
|
if( -d $src )
|
if( -d $src )
|
{
|
{
|
|
|
my @contents = ( );
|
my @contents = ( );
|
opendir( DIR, $src );
|
opendir( DIR, $src );
|
while( my $item = readdir( DIR ))
|
while( my $item = readdir( DIR ))
|
{
|
{
|
next if( $item eq '.' or $item eq '..' or $item eq '.svn' );
|
next if( $item eq '.' or $item eq '..' or $item eq '.svn' );
|
Line 163... |
Line 145... |
|
|
# recurse on items in the directory
|
# recurse on items in the directory
|
foreach my $item ( @contents )
|
foreach my $item ( @contents )
|
{
|
{
|
$_ = $item;
|
$_ = $item;
|
if(/(\S+).xml/)
|
if(/(\S+)\.xml/)
|
{
|
{
|
my $t_name = $1;
|
my $t_name = $1;
|
$_ = $src;
|
$_ = $src;
|
if(/${home}(\S+)/) { $t_local = $1; }
|
if(/${home}(\S+)/) { $t_local = $1; }
|
|
|
|
my $xml_file = $parser->parse_file("${home}${t_local}/${t_name}.xml");
|
|
eval {$xml_file-> findnodes('//socgen:componentConfiguration');}; #/ check for socgen namespace
|
|
|
|
if($@) #/ Nope, must be spirit namespace
|
|
|
|
|
|
|
|
|
if($t_name eq "design")
|
|
{
|
{
|
my $socgen_file = $parser->parse_file("${home}${t_local}/${t_name}.xml");
|
foreach my $comp ($xml_file->findnodes('//spirit:component'))
|
foreach my $design ($socgen_file->findnodes('//socgen:ip'))
|
|
{
|
{
|
$name = $design->findnodes('./socgen:component/text()')->to_literal ;
|
|
$vendor = $design->findnodes('./socgen:vendor/text()')->to_literal ;
|
|
$library = $design->findnodes('./socgen:library/text()')->to_literal ;
|
|
$version = "";
|
|
$type = "socgen:ip";
|
|
}
|
|
}
|
|
|
|
|
|
elsif($t_name eq "library")
|
|
{
|
|
my $socgen_file = $parser->parse_file("${home}${t_local}/${t_name}.xml");
|
|
|
|
|
|
foreach my $design ($socgen_file->findnodes('//socgen:lib'))
|
|
{
|
|
$vendor = $design->findnodes('./socgen:vendor/text()')->to_literal ;
|
|
$library = $design->findnodes('./socgen:library/text()')->to_literal ;
|
|
$lib_ip_dir = $design->findnodes('./socgen:lib_ip_dir/text()')->to_literal ;
|
|
$lib_sw_dir = $design->findnodes('./socgen:lib_sw_dir/text()')->to_literal ;
|
|
$version = "";
|
|
$name = "";
|
|
$type = "socgen:lib";
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
else
|
|
{
|
|
my $spirit_file = $parser->parse_file("${home}${t_local}/${t_name}.xml");
|
|
|
|
|
|
foreach my $comp ($spirit_file->findnodes('//spirit:component'))
|
|
{
|
|
$name = $comp->findnodes('./spirit:name/text()')->to_literal ;
|
|
$version = $comp->findnodes('./spirit:version/text()')->to_literal ;
|
|
$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 ;
|
|
$version = $comp->findnodes('./spirit:version/text()')->to_literal ;
|
|
$lib_ip_dir = "";
|
|
$lib_sw_dir = "";
|
}
|
}
|
|
|
|
|
foreach my $design ($spirit_file->findnodes('//spirit:design'))
|
foreach my $design ($xml_file->findnodes('//spirit:design'))
|
{
|
{
|
$name = $design->findnodes('./spirit:name/text()')->to_literal ;
|
|
$version = $design->findnodes('./spirit:version/text()')->to_literal ;
|
|
$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 ;
|
|
$version = $design->findnodes('./spirit:version/text()')->to_literal ;
|
$type = "spirit:design";
|
$type = "spirit:design";
|
|
$lib_ip_dir = "";
|
|
$lib_sw_dir = "";
|
|
|
}
|
}
|
|
|
|
|
foreach my $design ($spirit_file->findnodes('//spirit:designConfiguration'))
|
foreach my $design ($xml_file->findnodes('//spirit:designConfiguration'))
|
{
|
{
|
$name = $design->findnodes('./spirit:name/text()')->to_literal ;
|
|
$version = $design->findnodes('./spirit:version/text()')->to_literal ;
|
|
$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 ;
|
|
$version = $design->findnodes('./spirit:version/text()')->to_literal ;
|
$type = "spirit:designConfiguration";
|
$type = "spirit:designConfiguration";
|
|
$lib_ip_dir = "";
|
|
$lib_sw_dir = "";
|
|
|
}
|
}
|
|
|
|
|
|
|
|
|
foreach my $design ($spirit_file->findnodes('//spirit:abstractionDefinition'))
|
foreach my $design ($xml_file->findnodes('//spirit:abstractionDefinition'))
|
{
|
{
|
$name = $design->findnodes('./spirit:name/text()')->to_literal ;
|
|
$version = $design->findnodes('./spirit:version/text()')->to_literal ;
|
|
$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 ;
|
|
$version = $design->findnodes('./spirit:version/text()')->to_literal ;
|
$type = "spirit:abstractionDefinition";
|
$type = "spirit:abstractionDefinition";
|
|
$lib_ip_dir = "";
|
|
$lib_sw_dir = "";
|
}
|
}
|
|
|
|
|
foreach my $design ($spirit_file->findnodes('//spirit:busDefinition'))
|
foreach my $design ($xml_file->findnodes('//spirit:busDefinition'))
|
{
|
{
|
$name = $design->findnodes('./spirit:name/text()')->to_literal ;
|
|
$version = $design->findnodes('./spirit:version/text()')->to_literal ;
|
|
$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 ;
|
|
$version = $design->findnodes('./spirit:version/text()')->to_literal ;
|
$type = "spirit:busDefinition";
|
$type = "spirit:busDefinition";
|
|
$lib_ip_dir = "";
|
|
$lib_sw_dir = "";
|
|
}
|
}
|
}
|
|
|
|
else #/ socgen namespace
|
|
|
|
{
|
|
|
|
|
|
foreach my $design ($xml_file->findnodes('//socgen:componentConfiguration'))
|
|
{
|
|
$vendor = $design->findnodes('./socgen:vendor/text()')->to_literal ;
|
|
$library = $design->findnodes('./socgen:library/text()')->to_literal ;
|
|
$name = $design->findnodes('./socgen:component/text()')->to_literal ;
|
|
$version = "";
|
|
$type = "socgen:componentConfiguration";
|
|
$lib_ip_dir = "";
|
|
$lib_sw_dir = "";
|
|
}
|
|
|
|
|
|
foreach my $design ($xml_file->findnodes('//socgen:libraryConfiguration'))
|
|
{
|
|
$vendor = $design->findnodes('./socgen:vendor/text()')->to_literal ;
|
|
$library = $design->findnodes('./socgen:name/text()')->to_literal ;
|
|
$name = "";
|
|
$version = "";
|
|
$type = "socgen:libraryConfiguration";
|
|
$lib_ip_dir = $design->findnodes('./socgen:lib_ip_dir/text()')->to_literal ;
|
|
$lib_sw_dir = $design->findnodes('./socgen:lib_sw_dir/text()')->to_literal ;
|
|
}
|
}
|
}
|
|
|
|
|
$vendor_match = "/${vendor}/";
|
$vendor_match = "/${vendor}/";
|
$library_match = "/${library}/";
|
$library_match = "/${library}/";
|
Line 311... |
Line 282... |
print OUTFILE " ${lib_comp_sep}\n";
|
print OUTFILE " ${lib_comp_sep}\n";
|
print OUTFILE " ${lib_ip_dir}\n";
|
print OUTFILE " ${lib_ip_dir}\n";
|
print OUTFILE " ${lib_sw_dir}\n";
|
print OUTFILE " ${lib_sw_dir}\n";
|
print OUTFILE " \n\n";
|
print OUTFILE " \n\n";
|
|
|
$lib_ip_dir = "";
|
|
$lib_sw_dir = "";
|
|
}
|
}
|
|
|
&link_dir("$src/$item" );
|
&link_dir("$src/$item" );
|
}
|
}
|
|
|