Subversion Repositories DevTools

Rev

Rev 305 | Rev 313 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 305 Rev 311
Line 1993... Line 1993...
1993
        }
1993
        }
1994
    }
1994
    }
1995
}
1995
}
1996
 
1996
 
1997
#-------------------------------------------------------------------------------
1997
#-------------------------------------------------------------------------------
-
 
1998
# Function        : CreateInterfacePackage
-
 
1999
#
-
 
2000
# Description     : Create a dummy package entry to describe the Interface
-
 
2001
#                   This is done AFTER all the BuildPkgArchive directives have
-
 
2002
#                   been processed so that the interface directory is fully
-
 
2003
#                   processed
-
 
2004
#
-
 
2005
# Inputs          : None
-
 
2006
#
-
 
2007
# Returns         : 
-
 
2008
#
-
 
2009
sub CreateInterfacePackage
-
 
2010
{
-
 
2011
    foreach my $platform ( @BUILD_ACTIVEPLATFORMS )
-
 
2012
    {
-
 
2013
        my $entry = PackageEntry::Interface( "$::Cwd/$BUILDINTERFACE" );
-
 
2014
 
-
 
2015
        #
-
 
2016
        #   Locate include and lib bits within the interface
-
 
2017
        #   This is much simpler than for a LinkPkgArchive as the form
-
 
2018
        #   has been sanitized
-
 
2019
        #
-
 
2020
        my $parts = $BUILDINFO{$platform}{PARTS};
-
 
2021
 
-
 
2022
        foreach my $part ( @$parts )
-
 
2023
        {
-
 
2024
            $entry->RuleInc( "/include/" . $part );
-
 
2025
        }
-
 
2026
        $entry->RuleInc( "/include" );
-
 
2027
 
-
 
2028
        foreach my $part ( @$parts )
-
 
2029
        {
-
 
2030
            $entry->RuleLib("/lib/" . $part );
-
 
2031
        }
-
 
2032
 
-
 
2033
        $entry->ExamineToolPath();
-
 
2034
        $entry->ExamineThxPath($platform);
-
 
2035
        $entry->Cleanup();
-
 
2036
 
-
 
2037
        #
-
 
2038
        #   Add the package entry to the array of such entries for
-
 
2039
        #   the current platform. Force it to be the first one as
-
 
2040
        #   the interface directory will be scanned first
-
 
2041
        #
-
 
2042
        unshift ( @{$PKGRULES{$platform}}, $entry );
-
 
2043
    }
-
 
2044
}
-
 
2045
 
-
 
2046
#-------------------------------------------------------------------------------
1998
# Function        : GenerateInstallArgumentList
2047
# Function        : GenerateInstallArgumentList
1999
#
2048
#
2000
# Description     : Generate an argument list for the installpkg.pl script
2049
# Description     : Generate an argument list for the installpkg.pl script
2001
#                   The argument list is of the form
2050
#                   The argument list is of the form
2002
#                       --Platform:xx[:xx[:xx]] --Platform:yy[:yy[:yy]] ...
2051
#                       --Platform:xx[:xx[:xx]] --Platform:yy[:yy[:yy]] ...
Line 2662... Line 2711...
2662
    #   Calcuate the aliases that are being extracted from targets
2711
    #   Calcuate the aliases that are being extracted from targets
2663
    #
2712
    #
2664
    Process_TargetAlias();
2713
    Process_TargetAlias();
2665
 
2714
 
2666
    #
2715
    #
-
 
2716
    #   Create dummy package to describe the Interface directory
-
 
2717
    #
-
 
2718
    CreateInterfacePackage();
-
 
2719
 
-
 
2720
    #
2667
    #   Sanity test the users packages
2721
    #   Sanity test the users packages
2668
    #
2722
    #
2669
    PackageEntry::SanityTest() unless $Clobber;
2723
    PackageEntry::SanityTest() unless $Clobber;
2670
 
2724
 
2671
    #
2725
    #
Line 3541... Line 3595...
3541
        #
3595
        #
3542
        #   For each Available package accessable to this platform
3596
        #   For each Available package accessable to this platform
3543
        #
3597
        #
3544
        foreach my $package ( @{$pPlatform} )
3598
        foreach my $package ( @{$pPlatform} )
3545
        {
3599
        {
-
 
3600
            #
-
 
3601
            #   Skip the pseudo package that encapsulates the interface
-
 
3602
            #   directory. Currently the makefiles do this in a different
-
 
3603
            #   manner - to be resolved
-
 
3604
            #
-
 
3605
            #   Just comment out the lines so that the data is visible
-
 
3606
            #   Its a hint to make use of the data
-
 
3607
            #
-
 
3608
            my $prefix = '';
-
 
3609
            $prefix = '# ' if ( $package->{'type'} eq 'interface' );
-
 
3610
 
-
 
3611
 
3546
            my $name = $package->{'name'} . '/' . $package->{'version'};
3612
            my $name = $package->{'name'} . '/' . $package->{'version'};
3547
            my $base = $package->{'base'};
3613
            my $base = $package->{'base'};
3548
 
3614
 
3549
            $fh->Write ( "##########################################################\n");
3615
            $fh->Write ( "##########################################################\n");
3550
            $fh->Write ( "# Source:  $name\n" );
3616
            $fh->Write ( "# Source:  $name\n" );
Line 3561... Line 3627...
3561
            #
3627
            #
3562
            for my $type (qw (PINCDIRS PLIBDIRS) )
3628
            for my $type (qw (PINCDIRS PLIBDIRS) )
3563
            {
3629
            {
3564
                for my $path ( @{$package->{$type}} )
3630
                for my $path ( @{$package->{$type}} )
3565
                {
3631
                {
3566
                    $fh->Write ( "$type\t+= " . TruePath($base . $path) . "\n" );
3632
                    $fh->Write ( "$prefix$type\t+= " . TruePath($base . $path) . "\n" );
3567
                }
3633
                }
3568
            }
3634
            }
3569
            $fh->Write ( "\n" );
3635
            $fh->Write ( "\n" );
3570
        }
3636
        }
3571
        $fh->Close();
3637
        $fh->Close();
Line 3731... Line 3797...
3731
            push @paths, AbsPath("$BUILDINTERFACE/lib/$_");
3797
            push @paths, AbsPath("$BUILDINTERFACE/lib/$_");
3732
    }
3798
    }
3733
 
3799
 
3734
    #
3800
    #
3735
    #   $so may be a scalar of an array
3801
    #   $so may be a scalar of an array
3736
    #   Covert scalar to an array
3802
    #   Convert scalar to an array
3737
    #
3803
    #
3738
    my @solist = (ref($so) eq 'ARRAY') ? @$so : $so;
3804
    my @solist = (ref($so) eq 'ARRAY') ? @$so : $so;
3739
 
3805
 
3740
    #
3806
    #
3741
    #   For each LinkPkgArchive
3807
    #   For each LinkPkgArchive