sbsv1/abld/bldmake/linkdeps.pl
author Bob Rosenberg <bob.rosenberg@nokia.com>
Mon, 18 Oct 2010 10:33:54 +0100
changeset 660 66ff3e731c60
parent 599 fa7a3cc6effd
permissions -rw-r--r--
Sysdeftools additional support for merging misordered system definitions. More extensive validation. Minor bug fixes. Bash wrappers for perl scripts for unix installs.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
599
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     1
# Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     2
# All rights reserved.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     3
# This component and the accompanying materials are made available
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     4
# under the terms of "Eclipse Public License v1.0"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     5
# which accompanies this distribution, and is available
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     6
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     7
#
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     8
# Initial Contributors:
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     9
# Nokia Corporation - initial contribution.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    10
#
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    11
# Contributors:
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    12
#
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    13
# Description:
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    14
# Generate a link-dependency graph
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    15
# Given a baseline list of components, look through the BLDMAKE
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    16
# generated files to find the individual DLL and EXE makefiles.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    17
# Scan those makefile to find out which .LIB files are generated,
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    18
# and which .LIB files are required, thereby deducing the 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    19
# component dependency graph.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    20
# 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    21
#
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    22
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    23
my @components;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    24
my %component_releases;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    25
my %components_by_lib;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    26
my %libs_needed;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    27
my %component_deps;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    28
my $errors = 0;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    29
my @platforms = ("WINS", "ARMI", "MAWD");
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    30
my $makefile_count=0;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    31
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    32
while (<>)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    33
	{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    34
	s/\s*#.*$//;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    35
	if ($_ =~ /^$/)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    36
		{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    37
		next;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    38
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    39
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    40
	if ($_ =~ /<option (\w+)(.*)>/)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    41
		{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    42
		# placeholder
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    43
		next;	
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    44
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    45
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    46
	push @components, lc $_;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    47
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    48
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    49
scan_bldmakes();
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    50
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    51
if ($makefile_count==0)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    52
	{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    53
	error("No makefiles scanned!??");
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    54
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    55
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    56
if (%libs_needed==0)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    57
	{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    58
	error("No libraries needed!??");
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    59
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    60
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    61
foreach $lib (sort keys %libs_needed)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    62
	{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    63
	if ($components_by_lib{$lib} eq "")
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    64
		{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    65
		error("library $lib is not produced by any component!");
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    66
		$components_by_lib{$lib} = "($lib)";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    67
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    68
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    69
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    70
if ($errors > 0)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    71
	{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    72
	print "\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    73
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    74
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    75
foreach $component (sort keys %component_deps)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    76
	{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    77
	my %dependencies;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    78
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    79
	foreach $lib (split /\s+/, $component_deps{$component})
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    80
		{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    81
		next if ($lib eq "");
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    82
		my $dependent = $components_by_lib{$lib};
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    83
		$dependencies{$dependent} = 1;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    84
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    85
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    86
	print "$component $component_releases{$component}:";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    87
	foreach $dependent (sort keys %dependencies)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    88
		{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    89
		next if ($dependent eq $component);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    90
		print " $dependent";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    91
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    92
	print "\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    93
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    94
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    95
sub scan_bldmakes
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    96
	{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    97
	foreach $line (@components)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    98
		{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    99
		next if ($line =~ /<special (\w+)(.*)>/);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   100
		my ($name, $groupdir, $subdir, $release) = split /\s+/,$line;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   101
		$component_releases{$name} = $release;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   102
		my $bldmake = "\\epoc32\\build\\$groupdir";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   103
		if (! -d $bldmake)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   104
			{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   105
			error("bldmake failed for $name $release");
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   106
			next;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   107
			}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   108
		foreach $platform (@platforms)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   109
			{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   110
			scan_bldmake_makefile($name,"$bldmake\\$platform.make");
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   111
			}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   112
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   113
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   114
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   115
exit ($errors > 0);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   116
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   117
sub error
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   118
	{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   119
	my ($text) = @_;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   120
	print "# ERROR: $text\n";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   121
	$errors+=1;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   122
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   123
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   124
# In \epoc32\build\<place>\wins.make
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   125
#
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   126
# SAVESPACEAPPARC :
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   127
#	nmake -nologo $(VERBOSE) -f "\EPOC32\BUILD\APPARC\GROUP\WINS\APPARC.WINS" $(CFG) CLEANBUILD$(CFG)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   128
#
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   129
# repeated N times
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   130
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   131
sub scan_bldmake_makefile
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   132
	{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   133
	my ($component, $makefile) = @_;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   134
	if (! -e $makefile) 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   135
		{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   136
		return;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   137
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   138
	open FILE, "<$makefile" or error("Can't open $makefile") and return;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   139
	while ($line = <FILE>)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   140
		{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   141
		if ($line =~ /^SAVESPACE/)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   142
			{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   143
			$line = <FILE>;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   144
			if ($line =~ /-f "(\S+)"\s/i)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   145
				{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   146
				scan_mmp_makefile($component,$1);
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   147
				}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   148
			}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   149
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   150
	close FILE;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   151
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   152
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   153
# In \EPOC32\MAKE\LEXICON\WINS\INSO.WINS
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   154
#
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   155
# # MMPFile \LEXICON\GROUP\INSO.MMP
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   156
# # Target INSO.LIB
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   157
# # TargetType LIB
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   158
# # GeneralTargetType LIB
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   159
#
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   160
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   161
# In \EPOC32\BUILD\APPARC\GROUP\WINS\APPARC.WINS
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   162
#
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   163
# LIBRARY : "$(EPOCLIB)UDEB\APPARC.LIB"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   164
#
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   165
# LIBS= \
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   166
#	"$(EPOCLINKDEB)\EUSER.LIB" \
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   167
#	"$(EPOCLINKDEB)\EFSRV.LIB" \
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   168
#	"$(EPOCLINKDEB)\GDI.LIB" \
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   169
#	"$(EPOCLINKDEB)\ESTOR.LIB"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   170
#
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   171
sub scan_mmp_makefile
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   172
	{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   173
	my ($component, $makefile) = @_;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   174
	open SUBFILE, "<$makefile" or error("Can't open mmp $makefile for $component") and return;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   175
	$makefile_count++;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   176
	while ($line = <SUBFILE>)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   177
		{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   178
		if ($line =~ /^LIBRARY : .*\\(\S+)"/ || 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   179
			$line =~ /^# Target (\S+\.LIB)/)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   180
			{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   181
			my $built_lib = $1;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   182
			my $previous = $components_by_lib{$built_lib};
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   183
			if ($previous && $previous ne $component)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   184
				{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   185
				error("$built_lib is generated by $component and $previous");
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   186
				next;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   187
				}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   188
			$components_by_lib{$built_lib} = $component;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   189
			next
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   190
			}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   191
		if ($line =~ /^LIBS= \\/)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   192
			{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   193
			while ($line = <SUBFILE>)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   194
				{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   195
				if ($line =~ /\\(\S+)"/)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   196
					{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   197
					$component_deps{$component} .= " $1";
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   198
					$libs_needed{$1} = 1;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   199
					}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   200
				if ($line !~ /\\$/)
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   201
					{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   202
					last;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   203
					}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   204
				}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   205
			}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   206
		}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   207
	close SUBFILE;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   208
	}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   209
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   210