Subversion Repositories DevTools

Rev

Rev 6133 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6133 Rev 6177
Line 1... Line 1...
1
#! perl
1
#! perl
2
########################################################################
2
########################################################################
3
# Copyright (c) VIX TECHNOLOGY (AUST) LTD
3
# COPYRIGHT - VIX IP PTY LTD ("VIX"). ALL RIGHTS RESERVED.
4
#
4
#
5
# Module name   : jats_buildperl.pl
5
# Module name   : jats_buildperl.pl
6
# Module type   : Makefile system
6
# Module type   : Makefile system
7
# Compiler(s)   : n/a
7
# Compiler(s)   : n/a
8
# Environment(s): jats
8
# Environment(s): jats
Line 50... Line 50...
50
my $opt_help = 0;
50
my $opt_help = 0;
51
my $opt_manual = 0;
51
my $opt_manual = 0;
52
my $opt_test = 1;
52
my $opt_test = 1;
53
my $opt_clean = 0;
53
my $opt_clean = 0;
54
my $opt_clean_build = 0;
54
my $opt_clean_build = 0;
-
 
55
my $opt_simple;
55
 
56
 
56
my @MAKE = 'make';
57
my @MAKE = 'make';
57
my $BASE = Getcwd();
58
my $BASE = Getcwd();
58
my $PKG_DIR;
59
my $PKG_DIR;
59
my @PACKAGES;
60
my @PACKAGES;
Line 72... Line 73...
72
                "clean!"        => \$opt_clean,             # Flag, NoFlag
73
                "clean!"        => \$opt_clean,             # Flag, NoFlag
73
                "PackageDir=s"  => \$PKG_DIR,               # String
74
                "PackageDir=s"  => \$PKG_DIR,               # String
74
                "PerlPackage=s" => \@PACKAGES,              # String
75
                "PerlPackage=s" => \@PACKAGES,              # String
75
                "MachType=s"    => \$GBE_MACHTYPE,          # String
76
                "MachType=s"    => \$GBE_MACHTYPE,          # String
76
                "clean_build"   => \$opt_clean_build,       # Flag
77
                "clean_build"   => \$opt_clean_build,       # Flag
-
 
78
                "simple"        => \$opt_simple,            # Flag
77
                );
79
                );
78
 
80
 
79
#
81
#
80
#   Process help and manual options
82
#   Process help and manual options
81
#
83
#
Line 115... Line 117...
115
 
117
 
116
 
118
 
117
Message    "======================================================================";
119
Message    "======================================================================";
118
Message    "Build Perl using the native build method";
120
Message    "Build Perl using the native build method";
119
Message    "     GBE_MACHTYPE : $GBE_MACHTYPE";
121
Message    "     GBE_MACHTYPE : $GBE_MACHTYPE";
-
 
122
Message    " Output Structure : " . ( $opt_simple ? 'Simple' : 'Legacy');
120
Message    "          Package : $PKG_DIR";
123
Message    "          Package : $PKG_DIR";
121
for my $ii (@PACKAGES)
124
for my $ii (@PACKAGES)
122
{
125
{
123
    Message    "      PerlPackage : $ii";
126
    Message    "      PerlPackage : $ii";
124
}
127
}
Line 214... Line 217...
214
    #
217
    #
215
    CalcLibPath();
218
    CalcLibPath();
216
 
219
 
217
    #
220
    #
218
    #   Generate the Makefile
221
    #   Generate the Makefile
-
 
222
    #   Force installation into a known (and simple) structure
219
    #
223
    #
220
    Message ("Building: $ii", @{$PCMDS{$ii}} );
224
    Message ("Building: $ii", @{$PCMDS{$ii}} );
221
    chdir $ii || Error( "Cannot change to directory: $ii");
225
    chdir $ii || Error( "Cannot change to directory: $ii");
-
 
226
 
-
 
227
    my @opts;
-
 
228
    if ($opt_simple)
-
 
229
    {
-
 
230
        push @opts,
-
 
231
            'INSTALLPRIVLIB=$(PREFIX)/share/perl',
-
 
232
            'INSTALLSITELIB=$(PREFIX)/share/perl',
-
 
233
            'INSTALLVENDORLIB=$(PREFIX)/share/perl',
-
 
234
            'INSTALLARCHLIB=$(PERLPREFIX)/lib/perl',
-
 
235
            'INSTALLSITEARCH=$(PREFIX)/lib/perl',
-
 
236
            'INSTALLVENDORARCH=$(PREFIX)/lib/perl',
-
 
237
            'INSTALLBIN=$(PERLPREFIX)/bin',
-
 
238
            'INSTALLSITEBIN=$(PREFIX)/bin',
-
 
239
            'INSTALLVENDORBIN=$(PREFIX)/bin',
-
 
240
            'INSTALLSCRIPT=$(PERLPREFIX)/bin',
-
 
241
            'INSTALLSITESCRIPT=$(PREFIX)/bin',
-
 
242
            'INSTALLVENDORSCRIPT=$(PREFIX)/bin',
-
 
243
            'INSTALLMAN1DIR=$(PERLPREFIX)/share/man/man1',
-
 
244
            'INSTALLSITEMAN1DIR=$(PREFIX)/share/man/man1',
-
 
245
            'INSTALLVENDORMAN1DIR=$(PREFIX)/share/man/man1',
-
 
246
            'INSTALLMAN3DIR=$(PERLPREFIX)/share/man/man3',
-
 
247
            'INSTALLSITEMAN3DIR=$(PREFIX)/share/man/man3',
-
 
248
            'INSTALLVENDORMAN3DIR=$(PREFIX)/share/man/man3';
-
 
249
 
-
 
250
    }
-
 
251
 
222
    System ( $ENV{GBE_PERL},  'Makefile.PL', "PREFIX=$PKG_PERL", @{$PCMDS{$ii}} );
252
    System ( $ENV{GBE_PERL},  
-
 
253
            'Makefile.PL', 
-
 
254
            "PREFIX=$PKG_PERL", 
-
 
255
            @opts,
-
 
256
            @{$PCMDS{$ii}} );
223
    FixUpMakefile();
257
    FixUpMakefile();
224
    chdir $BASE;
258
    chdir $BASE;
225
 
259
 
226
    rmtree("$ii/blib");
260
    rmtree("$ii/blib");
227
    unlink("$ii/pm_to_blib");
261
    unlink("$ii/pm_to_blib");
Line 405... Line 439...
405
    -[no]clean                  - Clean the build area
439
    -[no]clean                  - Clean the build area
406
    -PerlPackage=path[,options] - Path to the Perl Package to build
440
    -PerlPackage=path[,options] - Path to the Perl Package to build
407
                                  Multiple packages are allowed
441
                                  Multiple packages are allowed
408
    -PackageDir=path            - Root of the output directory
442
    -PackageDir=path            - Root of the output directory
409
    -GBE_MACHTYPE=name          - Type of the machine being used
443
    -GBE_MACHTYPE=name          - Type of the machine being used
-
 
444
    -Simple                     - SImple output directory structure
410
 
445
 
411
=head1 OPTIONS
446
=head1 OPTIONS
412
 
447
 
413
=over 8
448
=over 8
414
 
449
 
Line 455... Line 490...
455
=item B<-GBE_MACHTYPE=name>
490
=item B<-GBE_MACHTYPE=name>
456
 
491
 
457
Mandatory option. This option specifies the type of machine on which the package
492
Mandatory option. This option specifies the type of machine on which the package
458
is being built. This is used to package up the  build artifacts.
493
is being built. This is used to package up the  build artifacts.
459
 
494
 
-
 
495
=item B<-Simple>
-
 
496
 
-
 
497
Recommended. This option will simplify the output directory structure and make it uniform 
-
 
498
between build platforms.
-
 
499
 
460
=back
500
=back
461
 
501
 
462
=head1 DESCRIPTION
502
=head1 DESCRIPTION
463
 
503
 
464
This program is used internally by Jats to implement the body of the MakePerlModule
504
This program is used internally by Jats to implement the body of the MakePerlModule