Subversion Repositories DevTools

Rev

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

Rev 293 Rev 299
Line 268... Line 268...
268
#
268
#
269
#   Some toolset options that affect the generation of the makefile
269
#   Some toolset options that affect the generation of the makefile
270
#
270
#
271
our $UseAbsObjects          = 0;                # Default is relative paths to objects
271
our $UseAbsObjects          = 0;                # Default is relative paths to objects
272
our $UseRelativeRoot        = 0;                # Default is absolute paths to build root
272
our $UseRelativeRoot        = 0;                # Default is absolute paths to build root
-
 
273
our $DPackageDirective      = 0;
273
 
274
 
274
#
275
#
275
#   Arrays of hook functions
276
#   Arrays of hook functions
276
#
277
#
277
our %MF_RegisterSrcHooks;                       # Hook source file discovery
278
our %MF_RegisterSrcHooks;                       # Hook source file discovery
Line 643... Line 644...
643
#
644
#
644
#   b)  Secondly the global DPACKAGE definitions, which may pull in
645
#   b)  Secondly the global DPACKAGE definitions, which may pull in
645
#       $ScmTarget specific definitions.
646
#       $ScmTarget specific definitions.
646
#
647
#
647
    if ( -e "$ScmRoot/$ScmInterface/$ScmPlatform.rul" )
648
    if ( -e "$ScmRoot/$ScmInterface/$ScmPlatform.rul" )
648
    {                                           # static configuration
-
 
-
 
649
    {
649
        Defines( "$ScmRoot/$ScmInterface", "$ScmPlatform.rul" );
650
        Defines( "$ScmRoot/$ScmInterface", "$ScmPlatform.rul" );
650
    }
651
    }
651
 
652
 
652
    MakeIf::PackageLoad( $ScmPlatform );        # DPACKAGE's (if any)
653
    MakeIf::PackageLoad( $ScmPlatform );        # DPACKAGE's (if any)
653
 
654
 
Line 6036... Line 6037...
6036
#.. Files
6037
#.. Files
6037
#
6038
#
6038
    foreach ( @elements )
6039
    foreach ( @elements )
6039
    {
6040
    {
6040
        my %package_entry;
6041
        my %package_entry;
-
 
6042
        $name = $_;
-
 
6043
 
-
 
6044
        #
-
 
6045
        #   Trap special files
-
 
6046
        #       DPACKAGE - but only if we have a DPackageLibrary directive
-
 
6047
        #                  in the same makefile.
-
 
6048
        #
-
 
6049
        if ( m~^DPACKAGE$~ && $DPackageDirective ) {
-
 
6050
            $name = 'DPACKAGE.' . $::GBE_MACHTYPE;
-
 
6051
        }
-
 
6052
 
6041
        #
6053
        #
6042
        #   Special cases: Provide make-style $ escape processing.
6054
        #   Special cases: Provide make-style $ escape processing.
6043
        #       Allow files with a $ in the name
6055
        #       Allow files with a $ in the name
6044
        #       Allow files with a space in the name
6056
        #       Allow files with a space in the name
6045
        #   Only for file names that don't look like $(GBE_...) as these
6057
        #   Only for file names that don't look like $(GBE_...) as these
Line 6051... Line 6063...
6051
            s~ ~\\ ~g;
6063
            s~ ~\\ ~g;
6052
        }
6064
        }
6053
 
6065
 
6054
        if ( ! /^--(.*)/ )
6066
        if ( ! /^--(.*)/ )
6055
        {
6067
        {
6056
            $name = $_;
-
 
6057
            $basename = StripDir( $name );
6068
            $basename = StripDir( $name );
6058
            if ( $full )
6069
            if ( $full )
6059
            {
6070
            {
6060
                if ($abs || ! ($srcfile = $SRCS{ $basename }) ||
6071
                if ($abs || ! ($srcfile = $SRCS{ $basename }) ||
6061
                        ($len = rindex($srcfile, "/")) == -1)
6072
                        ($len = rindex($srcfile, "/")) == -1)
Line 6810... Line 6821...
6810
 
6821
 
6811
#-------------------------------------------------------------------------------
6822
#-------------------------------------------------------------------------------
6812
# Function        : DPackageLibrary
6823
# Function        : DPackageLibrary
6813
#
6824
#
6814
# Description     : Collect information to allow the generation of a DPACKAGE
6825
# Description     : Collect information to allow the generation of a DPACKAGE
6815
#                   file. This directive allows the gneration of "Library"
6826
#                   file. This directive allows the generation of "Library"
6816
#                   directives within the final DPACKAGE
6827
#                   directives within the final DPACKAGE
6817
#
6828
#
6818
#                   This directive does generate the DPACKAGE file.
6829
#                   This directive does generate the DPACKAGE file.
6819
#
6830
#
6820
# Inputs          : platform    - This does not need to be an active platform
6831
# Inputs          : platform    - This does not need to be an active platform
Line 6827... Line 6838...
6827
# Returns         :
6838
# Returns         :
6828
#
6839
#
6829
sub DPackageLibrary
6840
sub DPackageLibrary
6830
{
6841
{
6831
    JatsDPackage::DPackageAdd ( @_ );
6842
    JatsDPackage::DPackageAdd ( @_ );
-
 
6843
    $DPackageDirective = 1;
6832
}
6844
}
6833
 
6845
 
6834
#-------------------------------------------------------------------------------
6846
#-------------------------------------------------------------------------------
6835
# Function        : SetProjectBase
6847
# Function        : SetProjectBase
6836
#
6848
#
Line 8586... Line 8598...
8586
    {
8598
    {
8587
        my $pLib  = $LIBS->Get($i);
8599
        my $pLib  = $LIBS->Get($i);
8588
        my $pArgs = $pLib->getItems('ARGS');
8600
        my $pArgs = $pLib->getItems('ARGS');
8589
        my $pObjs = $pLib->getItems('OBJS');
8601
        my $pObjs = $pLib->getItems('OBJS');
8590
 
8602
 
-
 
8603
        Error ("Library has no component objects: $i")
-
 
8604
            if ( scalar @$pObjs <= 0 );
-
 
8605
 
8591
        MakePrint "#---- (${i})\n\n";
8606
        MakePrint "#---- (${i})\n\n";
8592
        $if->AR(     $i, $pArgs, $pObjs, $pLib);
8607
        $if->AR(     $i, $pArgs, $pObjs, $pLib);
8593
        $if->ARLINT( $i, $pArgs, $pObjs, $pLib );
8608
        $if->ARLINT( $i, $pArgs, $pObjs, $pLib );
8594
    }
8609
    }
8595
 
8610
 
Line 9886... Line 9901...
9886
# Description     : Generate rules and recipes to "install" and "package" files
9901
# Description     : Generate rules and recipes to "install" and "package" files
9887
#
9902
#
9888
# Inputs          : codecmd     - A code reference to the actual installer routine
9903
# Inputs          : codecmd     - A code reference to the actual installer routine
9889
#                   hashp       - A reference to a INSTALL or PACKAGE hash
9904
#                   hashp       - A reference to a INSTALL or PACKAGE hash
9890
#
9905
#
9891
#                   hasp is a reference to a hash
9906
#                   hashp is a reference to a hash
9892
#                       The key is the full path of the install target
9907
#                       The key is the full path of the install target
9893
#                       The value is (another) hash that describes the install options
9908
#                       The value is (another) hash that describes the install options
9894
#
9909
#
9895
#                   Valid keys are:
9910
#                   Valid keys are:
9896
#                       src                 - Path of the source file [Mandatory]
9911
#                       src                 - Path of the source file [Mandatory]