Ticket #30638: perl5-subports.diff

File perl5-subports.diff, 3.4 KB (added by jmroot (Joshua Root), 13 years ago)
  • _resources/port1.0/group/perl5-1.0.tcl

     
    3434# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    3535#
    3636
    37 # Set some variables.
    38 set perl5.bin ${prefix}/bin/perl
     37# portfile configuration options
     38# perl5.branches: the major perl version supported by this module. A
     39#   subport will be created for each. e.g. p5.12-foo, p5.10-foo, ...
     40# perl5.default_branch: the branch used when you request p5-foo
     41options perl5.default_branch perl5.branches
     42default perl5.default_branch 5.12
     43default perl5.branches {"5.8 5.10 5.12 5.14"}
    3944
    4045proc perl5.extract_config {var {default ""}} {
    4146    global perl5.bin
     
    4752    return $val
    4853}
    4954
    50 options perl5.version perl5.arch perl5.lib perl5.archlib
     55# Set some variables.
     56options perl5.version perl5.major perl5.arch perl5.lib perl5.archlib perl5.bin
    5157default perl5.version {[perl5.extract_config version]}
    5258default perl5.arch {[perl5.extract_config archname ${os.platform}]}
     59default perl5.bin {${prefix}/bin/perl${perl5.major}}
    5360
    5461# define installation libraries as vendor location
    5562default perl5.lib {${prefix}/lib/perl5/vendor_perl/${perl5.version}}
     
    6370
    6471# perl5 group setup procedure
    6572proc perl5.setup {module vers {cpandir ""}} {
    66     global perl5.bin perl5.lib perl5.module perl5.cpandir
    67     global prefix
     73    global perl5.branches perl5.bin perl5.lib perl5.module perl5.cpandir
     74    global prefix subport name
    6875
    6976    # define perl5.module
    7077    set perl5.module ${module}
     
    8996    distname            ${perl5.module}-${vers}
    9097    dist_subdir         perl5
    9198
    92     depends_lib     port:perl5
     99    foreach v ${perl5.branches} {
     100        subport p${v}-[string tolower ${perl5.module}] { depends_lib port:perl${v} }
     101    }
    93102
    94     configure.cmd       ${perl5.bin}
    95     configure.env       PERL_AUTOINSTALL=--skipdeps
    96     configure.pre_args  Makefile.PL
    97     configure.args      INSTALLDIRS=vendor
    98 
    99     test.run            yes
    100 
    101     destroot.target     pure_install
    102 
    103     post-destroot {
    104         fs-traverse file ${destroot}${perl5.lib} {
    105             if {[file tail ${file}] eq ".packlist"} {
    106                 ui_info "Fixing packlist ${file}"
    107                 reinplace "s|${destroot}||" ${file}
     103    if {$subport == $name} {
     104        distfiles
     105        supported_archs noarch
     106        replaced_by p[option perl5.default_branch]-[string tolower ${perl5.module}]
     107        depends_lib port:p[option perl5.default_branch]-[string tolower ${perl5.module}]
     108        use_configure no
     109        build {}
     110        destroot {
     111            system "echo $name is a stub port > ${destroot}${prefix}/share/doc/${name}/README"
     112        }
     113    } else {
     114        perl5.major [string range $subport 1 [expr [string first - $subport]-1]]
     115        configure.cmd       ${perl5.bin}
     116        configure.env       PERL_AUTOINSTALL=--skipdeps
     117        configure.pre_args  Makefile.PL
     118        configure.args      INSTALLDIRS=vendor
     119   
     120        test.run            yes
     121   
     122        destroot.target     pure_install
     123   
     124        post-destroot {
     125            fs-traverse file ${destroot}${perl5.lib} {
     126                if {[file tail ${file}] eq ".packlist"} {
     127                    ui_info "Fixing packlist ${file}"
     128                    reinplace "s|${destroot}||" ${file}
     129                }
    108130            }
    109131        }
    110132    }