Ignore:
Timestamp:
Feb 9, 2012, 3:37:51 PM (8 years ago)
Author:
ryandesign@…
Message:

ruby-1.0.tcl: tabs to spaces and add standard modeline

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/dports/_resources/port1.0/group/ruby-1.0.tcl

    r81442 r89755  
     1# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
    12# $Id$
    23# ruby-1.0.tcl
     
    3637# the portfile after port group declaration. They can be modified by
    3738# ruby.setup, e.g. to use another ruby than 1.8.
    38 set ruby.bin            ${prefix}/bin/ruby
    39 set ruby.rdoc           ${prefix}/bin/rdoc
     39set ruby.bin            ${prefix}/bin/ruby
     40set ruby.rdoc           ${prefix}/bin/rdoc
    4041set ruby.gem            ${prefix}/bin/gem
    4142
    4243proc ruby.extract_config {var {default ""}} {
    43         global ruby.bin
    44         if {[catch {set val [exec ${ruby.bin} -e "require 'rbconfig';puts Config::CONFIG\[\"${var}\"\]"]}]} {
    45                 set val ${default}
    46         }
    47         return $val
     44    global ruby.bin
     45    if {[catch {set val [exec ${ruby.bin} -e "require 'rbconfig';puts Config::CONFIG\[\"${var}\"\]"]}]} {
     46        set val ${default}
     47    }
     48    return $val
    4849}
    4950
    5051options ruby.version ruby.arch ruby.lib ruby.archlib
    51 default ruby.version    {[ruby.extract_config ruby_version]}
    52 default ruby.arch               {[ruby.extract_config arch "${os.arch}-${os.platform}${os.major}"]}
     52default ruby.version    {[ruby.extract_config ruby_version]}
     53default ruby.arch       {[ruby.extract_config arch "${os.arch}-${os.platform}${os.major}"]}
    5354# define installation libraries as vendor location
    54 default ruby.lib                {[ruby.extract_config vendorlibdir ${prefix}/lib/ruby/vendor_ruby/${ruby.version}]}
    55 default ruby.archlib    {[ruby.extract_config vendorarchdir ${ruby.lib}/${ruby.arch}]}
    56 
    57 set ruby.module         ""
    58 set ruby.filename       ""
    59 set ruby.project        ""
    60 set ruby.docs           {}
    61 set ruby.srcdir         ""
     55default ruby.lib        {[ruby.extract_config vendorlibdir ${prefix}/lib/ruby/vendor_ruby/${ruby.version}]}
     56default ruby.archlib    {[ruby.extract_config vendorarchdir ${ruby.lib}/${ruby.arch}]}
     57
     58set ruby.module     ""
     59set ruby.filename   ""
     60set ruby.project    ""
     61set ruby.docs       {}
     62set ruby.srcdir     ""
    6263
    6364# ruby group setup procedure; optional for ruby 1.8 if you want only
    6465# basic variables, like ruby.lib and ruby.archlib.
    6566proc ruby.setup {module vers {type "install.rb"} {docs {}} {source "custom"} {implementation "ruby"}} {
    66         global destroot prefix worksrcpath os.platform
    67         global ruby.bin ruby.rdoc ruby.gem
    68         global ruby.version ruby.lib
    69         global ruby.module ruby.filename ruby.project ruby.docs ruby.srcdir
    70         global ruby.prog_suffix
    71 
    72         if {${implementation} eq "ruby19"} {
    73             set ruby.port_prefix rb19
    74             set ruby.prog_suffix "1.9"
    75         } elseif {${implementation} eq "ruby"} {
    76                 # ruby.bin, ruby.rdoc, and ruby.gem set to 1.8 by default
    77                 set ruby.port_prefix rb
    78                 # no program suffix by default, so leave as blank
    79                 set ruby.prog_suffix ""
    80         } else {
    81                 ui_error "ruby.setup: unknown implementation '${implementation}' specified (ruby, ruby19 possible)"
    82                 return -code error "ruby.setup failed"
    83         }
    84         set ruby.bin    ${prefix}/bin/ruby${ruby.prog_suffix}
    85         set ruby.rdoc   ${prefix}/bin/rdoc${ruby.prog_suffix}
    86         set ruby.gem    ${prefix}/bin/gem${ruby.prog_suffix}
    87 
    88         # define ruby global names and lists
    89         # check if module is a list or string
    90         if {[llength ${module}] > 1} {
    91                 # if a list, first item is the module name
    92                 set ruby.module         [lindex ${module} 0]
    93                 # second argument is the project & file name
    94                 set ruby.project        [lindex ${module} 1]
    95                 set ruby.filename       [lindex ${module} 1]
    96         } else {
    97                 # else, module, project, and file name are the same
    98                 set ruby.module         ${module}
    99                 set ruby.project        ${module}
    100                 set ruby.filename       ${module}
    101         }
    102         set ruby.docs   ${docs}
    103 
    104         name                    ${ruby.port_prefix}-[string tolower ${ruby.module}]
    105         version                 ${vers}
    106         categories              ruby
    107 
    108         switch -glob ${source} {
    109                 rubyforge:*:* {
    110                         set num [lindex [split ${source} {:}] 1]
    111                         set ruby.project [string tolower [lindex [split ${source} {:}] 2]]
    112                         homepage                http://rubyforge.org/projects/${ruby.project}
    113                         master_sites    http://rubyforge.org/frs/download.php/${num}/
    114                         livecheck.type  regex
    115                         livecheck.url   http://rubyforge.org/projects/${ruby.project}
    116                         livecheck.regex "<strong>${ruby.project}</strong></td><td>(?:REL )?(.*)$"
    117                 }
    118                 rubyforge:* {
    119                         set num [lindex [split ${source} {:}] 1]
    120                         homepage                http://rubyforge.org/projects/${ruby.project}
    121                         master_sites    http://rubyforge.org/frs/download.php/${num}/
    122                         livecheck.type  regex
    123                         livecheck.url   http://rubyforge.org/projects/${ruby.project}
    124                         livecheck.regex "<strong>${ruby.project}</strong></td><td>(?:REL )?(.*)$"
    125                 }
    126                 rubyforge_gem:* {
    127                         set ruby.project [lindex [split ${source} {:}] 1]
    128                         homepage                http://rubyforge.org/projects/${ruby.project}
    129                         master_sites    http://gems.rubyforge.vm.bytemark.co.uk/gems/ \
    130                                         http://rubyforge.iasi.roedu.net/gems/
    131                         livecheck.type  regex
    132                         livecheck.url   http://rubyforge.org/projects/${ruby.project}
    133                         livecheck.regex "<strong>${ruby.module}</strong></td><td>(?:REL )?(.*)$"
    134                 }
    135                 rubyforge_gem {
    136                         homepage                http://rubyforge.org/projects/${ruby.project}
    137                         master_sites    http://gems.rubyforge.vm.bytemark.co.uk/gems/ \
    138                                         http://rubyforge.iasi.roedu.net/gems/
    139                         livecheck.type  regex
    140                         livecheck.url   http://rubyforge.org/projects/${ruby.project}
    141                         livecheck.regex "<strong>${ruby.module}</strong></td><td>(?:REL )?(.*)$"
    142                 }
    143                 rubygems {
    144                     homepage        http://www.rubygems.org/gems/${ruby.project}
    145                     master_sites    http://www.rubygems.org/downloads/
    146                     livecheck.type  regex
    147                     livecheck.url   http://www.rubygems.org/gems/${ruby.project}
    148                     livecheck.regex {<h3>(\d|\d[0-9.]*\d)</h3>}
    149                 }
    150                 sourceforge:* {
    151                         set ruby.project [lindex [split ${source} {:}] 1]
    152                         homepage                http://sourceforge.net/projects/${ruby.project}
    153                         master_sites    sourceforge:${ruby.project}
    154                 }
    155                 sourceforge {
    156                         homepage                http://sourceforge.net/projects/${ruby.project}
    157                         master_sites    sourceforge:${ruby.project}
    158                 }
    159         }
    160 
    161         distname                ${ruby.filename}-${vers}
    162         dist_subdir             ruby
    163 
    164         depends_lib             port:${implementation}
    165 
    166         post-extract {
    167                 # Create the work directory for gem-based ruby ports.
    168                 system "mkdir -p ${worksrcpath}"
    169                 system "find ${worksrcpath} -type d -name CVS | xargs rm -rf"
    170         }
    171 
    172         switch -glob ${type} {
    173                 basic_install.rb {
    174                         post-patch {
    175                                 # create destroot setup file
    176                                 set fp [open ${worksrcpath}/destroot.rb w]
    177                                 puts $fp "
    178                                         require 'rbconfig'
    179                                         include Config
    180                                         DESTROOT=ENV\['DESTROOT'\] || ''
    181                                         CONFIG.keys.find_all { |d|
    182                                                 d.match(/dir\$/) and !d.match(/(src|build|compile)/)
    183                                         }.each {|confdir|
    184                                                 CONFIG\[confdir\]=DESTROOT+CONFIG\[confdir\]
    185                                         }
    186                                         \$:.reverse.each { |d| \$:.unshift(DESTROOT+d) }
    187                                 "
    188                                 close $fp
    189                                 # adjust basic install.rb script
    190                                 reinplace "s|site_ruby|vendor_ruby|" ${worksrcpath}/install.rb
    191                         }
    192 
    193                         use_configure   no
    194 
    195                         build                   {}
    196 
    197                         pre-destroot {
    198                                 xinstall -d -m 0755 ${destroot}${ruby.lib}
    199                         }
    200                         destroot.env    DESTROOT=${destroot}
    201                         destroot.cmd    ${ruby.bin} -rvendor-specific -rdestroot install.rb
    202                         destroot.target
    203                         destroot.destdir
    204                 }
    205                 copy_install:* {
    206                         set ruby.srcdir [lindex [split ${type} {:}] 1]
    207 
    208                         use_configure   no
    209 
    210                         build                   {}
    211 
    212                         destroot {
    213                                 set root ${worksrcpath}/${ruby.srcdir}
    214                                 xinstall -d -m 0755 ${destroot}${ruby.lib}
    215                                 fs-traverse file $root {
    216                                         set file [trimroot $root $file]
    217                                         if {$file ne ""} {
    218                                                 set filepath [file join $root $file]
    219                                                 if {[file isdirectory $filepath]} {
    220                                                         xinstall -d -m 0755 ${destroot}${ruby.lib}/${file}
    221                                                 } else {
    222                                                         xinstall -m 0644 $filepath ${destroot}${ruby.lib}/${file}
    223                                                 }
    224                                         }
    225                                 }
    226                         }
    227                 }
    228                 install.rb {
    229                         configure.cmd           ${ruby.bin} -rvendor-specific install.rb
    230                         configure.pre_args      config
    231 
    232                         build.cmd                       ${ruby.bin} -rvendor-specific install.rb
    233                         build.target            setup
    234 
    235                         pre-destroot {
    236                                 if {[file isfile ${worksrcpath}/config.save]} {
    237                                         reinplace "s|^prefix=${prefix}|prefix=${destroot}${prefix}|g" \
    238                                                 ${worksrcpath}/config.save
    239                                 }
    240                                 if {[file isfile ${worksrcpath}/.config]} {
    241                                         reinplace "s|^prefix=${prefix}|prefix=${destroot}${prefix}|g" \
    242                                                 ${worksrcpath}/.config
    243                                 }
    244                         }
    245                         destroot.cmd            ${ruby.bin} -rvendor-specific install.rb
    246                         destroot.target         install
    247                         destroot.destdir
    248                 }
    249                 setup.rb {
    250                         configure.cmd           ${ruby.bin} -rvendor-specific setup.rb
    251                         configure.pre_args      config
    252 
    253                         build.cmd                       ${ruby.bin} -rvendor-specific setup.rb
    254                         build.target            setup
    255 
    256                         pre-destroot {
    257                                 if {[file isfile ${worksrcpath}/config.save]} {
    258                                         reinplace "s|${prefix}|${destroot}${prefix}|g" \
    259                                                 ${worksrcpath}/config.save
    260                                 }
    261                                 if {[file isfile ${worksrcpath}/.config]} {
    262                                         reinplace "s|${prefix}|${destroot}${prefix}|g" \
    263                                                 ${worksrcpath}/.config
    264                                 }
    265                         }
    266                         destroot.cmd            ${ruby.bin} -rvendor-specific setup.rb
    267                         destroot.target         install
    268                         destroot.destdir
    269                 }
    270                 extconf.rb {
    271                         configure.cmd           ${ruby.bin} -rvendor-specific extconf.rb
    272                         configure.pre_args
    273                         configure.args          --prefix=${prefix}
    274 
    275                         build.args                      RUBY="${ruby.bin} -rvendor-specific"
    276 
    277                         destroot.args           RUBY="${ruby.bin} -rvendor-specific"
    278                 }
    279                 gnu {
    280                         build.args                      RUBY="${ruby.bin} -rvendor-specific"
    281 
    282                         pre-destroot {
    283                                 if {[file isfile ${worksrcpath}/config.save]} {
    284                                         reinplace "s|${prefix}|${destroot}${prefix}|g" \
    285                                                 ${worksrcpath}/config.save
    286                                 }
    287                                 if {[file isfile ${worksrcpath}/.config]} {
    288                                         reinplace "s|${prefix}|${destroot}${prefix}|g" \
    289                                                 ${worksrcpath}/.config
    290                                 }
    291                         }
    292                         destroot.args           RUBY="${ruby.bin} -rvendor-specific"
    293                 }
    294                 gem {
    295                         use_configure no
    296                         extract.suffix .gem
    297                        
    298                         if {${implementation} eq "ruby"} {
    299                             depends_lib-append  port:rb-rubygems
    300                         }
    301                        
    302                         extract {}
    303                         build {}
    304                        
    305                         pre-destroot {
    306                                 xinstall -d -m 0755 ${destroot}${prefix}/lib/ruby${ruby.prog_suffix}/gems/${ruby.version}
    307                         }
    308                        
    309                         destroot {
    310                           system "cd ${worksrcpath} && ${ruby.gem} install --local --force --install-dir ${destroot}${prefix}/lib/ruby${ruby.prog_suffix}/gems/${ruby.version} ${distpath}/${distname}"
    311                        
    312                                 set binDir ${destroot}${prefix}/lib/ruby${ruby.prog_suffix}/gems/${ruby.version}/bin
    313                                 if {[file isdirectory $binDir]} {
    314                                         foreach file [readdir $binDir] {
    315                                                 file copy [file join $binDir $file] ${destroot}${prefix}/bin
    316                                         }
    317                                 }
    318                         }
    319                 }
    320                 fetch {
    321                         # do nothing but fetch and extract - for strange installers
    322                         build {}
    323                 }
    324                 default {
    325                         ui_error "ruby.setup: unknown setup type '${type}' specified!"
    326                         return -code error "ruby.setup failed"
    327                 }
    328         }
    329 
     67    global destroot prefix worksrcpath os.platform
     68    global ruby.bin ruby.rdoc ruby.gem
     69    global ruby.version ruby.lib
     70    global ruby.module ruby.filename ruby.project ruby.docs ruby.srcdir
     71    global ruby.prog_suffix
     72   
     73    if {${implementation} eq "ruby19"} {
     74        set ruby.port_prefix rb19
     75        set ruby.prog_suffix "1.9"
     76    } elseif {${implementation} eq "ruby"} {
     77        # ruby.bin, ruby.rdoc, and ruby.gem set to 1.8 by default
     78        set ruby.port_prefix rb
     79        # no program suffix by default, so leave as blank
     80        set ruby.prog_suffix ""
     81    } else {
     82        ui_error "ruby.setup: unknown implementation '${implementation}' specified (ruby, ruby19 possible)"
     83        return -code error "ruby.setup failed"
     84    }
     85    set ruby.bin    ${prefix}/bin/ruby${ruby.prog_suffix}
     86    set ruby.rdoc   ${prefix}/bin/rdoc${ruby.prog_suffix}
     87    set ruby.gem    ${prefix}/bin/gem${ruby.prog_suffix}
     88   
     89    # define ruby global names and lists
     90    # check if module is a list or string
     91    if {[llength ${module}] > 1} {
     92        # if a list, first item is the module name
     93        set ruby.module     [lindex ${module} 0]
     94        # second argument is the project & file name
     95        set ruby.project    [lindex ${module} 1]
     96        set ruby.filename   [lindex ${module} 1]
     97    } else {
     98        # else, module, project, and file name are the same
     99        set ruby.module     ${module}
     100        set ruby.project    ${module}
     101        set ruby.filename   ${module}
     102    }
     103    set ruby.docs   ${docs}
     104   
     105    name            ${ruby.port_prefix}-[string tolower ${ruby.module}]
     106    version         ${vers}
     107    categories      ruby
     108   
     109    switch -glob ${source} {
     110        rubyforge:*:* {
     111            set num [lindex [split ${source} {:}] 1]
     112            set ruby.project [string tolower [lindex [split ${source} {:}] 2]]
     113            homepage        http://rubyforge.org/projects/${ruby.project}
     114            master_sites    http://rubyforge.org/frs/download.php/${num}/
     115            livecheck.type  regex
     116            livecheck.url   http://rubyforge.org/projects/${ruby.project}
     117            livecheck.regex "<strong>${ruby.project}</strong></td><td>(?:REL )?(.*)$"
     118        }
     119        rubyforge:* {
     120            set num [lindex [split ${source} {:}] 1]
     121            homepage        http://rubyforge.org/projects/${ruby.project}
     122            master_sites    http://rubyforge.org/frs/download.php/${num}/
     123            livecheck.type  regex
     124            livecheck.url   http://rubyforge.org/projects/${ruby.project}
     125            livecheck.regex "<strong>${ruby.project}</strong></td><td>(?:REL )?(.*)$"
     126        }
     127        rubyforge_gem:* {
     128            set ruby.project [lindex [split ${source} {:}] 1]
     129            homepage        http://rubyforge.org/projects/${ruby.project}
     130            master_sites    http://gems.rubyforge.vm.bytemark.co.uk/gems/ \
     131                            http://rubyforge.iasi.roedu.net/gems/
     132            livecheck.type  regex
     133            livecheck.url   http://rubyforge.org/projects/${ruby.project}
     134            livecheck.regex "<strong>${ruby.module}</strong></td><td>(?:REL )?(.*)$"
     135        }
     136        rubyforge_gem {
     137            homepage        http://rubyforge.org/projects/${ruby.project}
     138            master_sites    http://gems.rubyforge.vm.bytemark.co.uk/gems/ \
     139                            http://rubyforge.iasi.roedu.net/gems/
     140            livecheck.type  regex
     141            livecheck.url   http://rubyforge.org/projects/${ruby.project}
     142            livecheck.regex "<strong>${ruby.module}</strong></td><td>(?:REL )?(.*)$"
     143        }
     144        rubygems {
     145            homepage        http://www.rubygems.org/gems/${ruby.project}
     146            master_sites    http://www.rubygems.org/downloads/
     147            livecheck.type  regex
     148            livecheck.url   http://www.rubygems.org/gems/${ruby.project}
     149            livecheck.regex {<h3>(\d|\d[0-9.]*\d)</h3>}
     150        }
     151        sourceforge:* {
     152            set ruby.project [lindex [split ${source} {:}] 1]
     153            homepage        http://sourceforge.net/projects/${ruby.project}
     154            master_sites    sourceforge:${ruby.project}
     155        }
     156        sourceforge {
     157            homepage        http://sourceforge.net/projects/${ruby.project}
     158            master_sites    sourceforge:${ruby.project}
     159        }
     160    }
     161   
     162    distname        ${ruby.filename}-${vers}
     163    dist_subdir     ruby
     164   
     165    depends_lib     port:${implementation}
     166   
     167    post-extract {
     168        # Create the work directory for gem-based ruby ports.
     169        system "mkdir -p ${worksrcpath}"
     170        system "find ${worksrcpath} -type d -name CVS | xargs rm -rf"
     171    }
     172   
     173    switch -glob ${type} {
     174        basic_install.rb {
     175            post-patch {
     176                # create destroot setup file
     177                set fp [open ${worksrcpath}/destroot.rb w]
     178                puts $fp "
     179                    require 'rbconfig'
     180                    include Config
     181                    DESTROOT=ENV\['DESTROOT'\] || ''
     182                    CONFIG.keys.find_all { |d|
     183                        d.match(/dir\$/) and !d.match(/(src|build|compile)/)
     184                    }.each {|confdir|
     185                        CONFIG\[confdir\]=DESTROOT+CONFIG\[confdir\]
     186                    }
     187                    \$:.reverse.each { |d| \$:.unshift(DESTROOT+d) }
     188                "
     189                close $fp
     190                # adjust basic install.rb script
     191                reinplace "s|site_ruby|vendor_ruby|" ${worksrcpath}/install.rb
     192            }
     193           
     194            use_configure   no
     195           
     196            build           {}
     197           
     198            pre-destroot {
     199                xinstall -d -m 0755 ${destroot}${ruby.lib}
     200            }
     201            destroot.env    DESTROOT=${destroot}
     202            destroot.cmd    ${ruby.bin} -rvendor-specific -rdestroot install.rb
     203            destroot.target
     204            destroot.destdir
     205        }
     206        copy_install:* {
     207            set ruby.srcdir [lindex [split ${type} {:}] 1]
     208           
     209            use_configure   no
     210           
     211            build           {}
     212           
     213            destroot {
     214                set root ${worksrcpath}/${ruby.srcdir}
     215                xinstall -d -m 0755 ${destroot}${ruby.lib}
     216                fs-traverse file $root {
     217                    set file [trimroot $root $file]
     218                    if {$file ne ""} {
     219                        set filepath [file join $root $file]
     220                        if {[file isdirectory $filepath]} {
     221                            xinstall -d -m 0755 ${destroot}${ruby.lib}/${file}
     222                        } else {
     223                            xinstall -m 0644 $filepath ${destroot}${ruby.lib}/${file}
     224                        }
     225                    }
     226                }
     227            }
     228        }
     229        install.rb {
     230            configure.cmd       ${ruby.bin} -rvendor-specific install.rb
     231            configure.pre_args  config
     232           
     233            build.cmd           ${ruby.bin} -rvendor-specific install.rb
     234            build.target        setup
     235           
     236            pre-destroot {
     237                if {[file isfile ${worksrcpath}/config.save]} {
     238                    reinplace "s|^prefix=${prefix}|prefix=${destroot}${prefix}|g" \
     239                        ${worksrcpath}/config.save
     240                }
     241                if {[file isfile ${worksrcpath}/.config]} {
     242                    reinplace "s|^prefix=${prefix}|prefix=${destroot}${prefix}|g" \
     243                        ${worksrcpath}/.config
     244                }
     245            }
     246            destroot.cmd        ${ruby.bin} -rvendor-specific install.rb
     247            destroot.target     install
     248            destroot.destdir
     249        }
     250        setup.rb {
     251            configure.cmd       ${ruby.bin} -rvendor-specific setup.rb
     252            configure.pre_args  config
     253           
     254            build.cmd           ${ruby.bin} -rvendor-specific setup.rb
     255            build.target        setup
     256           
     257            pre-destroot {
     258                if {[file isfile ${worksrcpath}/config.save]} {
     259                    reinplace "s|${prefix}|${destroot}${prefix}|g" \
     260                        ${worksrcpath}/config.save
     261                }
     262                if {[file isfile ${worksrcpath}/.config]} {
     263                    reinplace "s|${prefix}|${destroot}${prefix}|g" \
     264                        ${worksrcpath}/.config
     265                }
     266            }
     267            destroot.cmd        ${ruby.bin} -rvendor-specific setup.rb
     268            destroot.target     install
     269            destroot.destdir
     270        }
     271        extconf.rb {
     272            configure.cmd       ${ruby.bin} -rvendor-specific extconf.rb
     273            configure.pre_args
     274            configure.args      --prefix=${prefix}
     275           
     276            build.args          RUBY="${ruby.bin} -rvendor-specific"
     277           
     278            destroot.args       RUBY="${ruby.bin} -rvendor-specific"
     279        }
     280        gnu {
     281            build.args          RUBY="${ruby.bin} -rvendor-specific"
     282           
     283            pre-destroot {
     284                if {[file isfile ${worksrcpath}/config.save]} {
     285                    reinplace "s|${prefix}|${destroot}${prefix}|g" \
     286                        ${worksrcpath}/config.save
     287                }
     288                if {[file isfile ${worksrcpath}/.config]} {
     289                    reinplace "s|${prefix}|${destroot}${prefix}|g" \
     290                        ${worksrcpath}/.config
     291                }
     292            }
     293            destroot.args       RUBY="${ruby.bin} -rvendor-specific"
     294        }
     295        gem {
     296            use_configure no
     297            extract.suffix .gem
     298           
     299            if {${implementation} eq "ruby"} {
     300                depends_lib-append  port:rb-rubygems
     301            }
     302           
     303            extract {}
     304            build {}
     305           
     306            pre-destroot {
     307                xinstall -d -m 0755 ${destroot}${prefix}/lib/ruby${ruby.prog_suffix}/gems/${ruby.version}
     308            }
     309           
     310            destroot {
     311                system "cd ${worksrcpath} && ${ruby.gem} install --local --force --install-dir ${destroot}${prefix}/lib/ruby${ruby.prog_suffix}/gems/${ruby.version} ${distpath}/${distname}"
     312               
     313                set binDir ${destroot}${prefix}/lib/ruby${ruby.prog_suffix}/gems/${ruby.version}/bin
     314                if {[file isdirectory $binDir]} {
     315                    foreach file [readdir $binDir] {
     316                        file copy [file join $binDir $file] ${destroot}${prefix}/bin
     317                    }
     318                }
     319            }
     320        }
     321        fetch {
     322            # do nothing but fetch and extract - for strange installers
     323            build {}
     324        }
     325        default {
     326            ui_error "ruby.setup: unknown setup type '${type}' specified!"
     327            return -code error "ruby.setup failed"
     328        }
     329    }
     330   
    330331    if {$type != "gnu"} {
    331332        configure.universal_args-delete  --disable-dependency-tracking
    332         }
    333 
    334         post-destroot {
    335                 # Install documentation files (if specified)
    336                 if {[llength ${ruby.docs}] > 0} {
    337                         set docPath ${prefix}/share/doc/${name}
    338                         xinstall -d -m 0755 ${destroot}${docPath}
    339                         foreach docitem ${ruby.docs} {
    340                                 set docitem [file join ${worksrcpath} ${docitem}]
    341                                 if {[file isdirectory ${docitem}]} {
    342                                     set subdir [file tail $docitem]
    343                                     xinstall -d -m 0755 ${destroot}${docPath}/${subdir}
    344                                         fs-traverse file $docitem {
    345                                                 set file [trimroot $docitem $file]
    346                                                 if {$file ne ""} {
    347                                                         set filepath [file join $docitem $file]
    348                                                         if {[file isdirectory $filepath]} {
    349                                                                 xinstall -d -m 0755 ${destroot}${docPath}/${subdir}/${file}
    350                                                         } else {
    351                                                                 xinstall -m 0644 $filepath ${destroot}${docPath}/${subdir}/${file}
    352                                                         }
    353                                                 }
    354                                         }
    355                                 } else {
    356                                         xinstall -m 0644 ${docitem} ${destroot}${docPath}
    357                                 }
    358                         }
    359                 }
    360         }
     333    }
     334   
     335    post-destroot {
     336        # Install documentation files (if specified)
     337        if {[llength ${ruby.docs}] > 0} {
     338            set docPath ${prefix}/share/doc/${name}
     339            xinstall -d -m 0755 ${destroot}${docPath}
     340            foreach docitem ${ruby.docs} {
     341                set docitem [file join ${worksrcpath} ${docitem}]
     342                if {[file isdirectory ${docitem}]} {
     343                    set subdir [file tail $docitem]
     344                    xinstall -d -m 0755 ${destroot}${docPath}/${subdir}
     345                    fs-traverse file $docitem {
     346                        set file [trimroot $docitem $file]
     347                        if {$file ne ""} {
     348                            set filepath [file join $docitem $file]
     349                            if {[file isdirectory $filepath]} {
     350                                xinstall -d -m 0755 ${destroot}${docPath}/${subdir}/${file}
     351                            } else {
     352                                xinstall -m 0644 $filepath ${destroot}${docPath}/${subdir}/${file}
     353                            }
     354                        }
     355                    }
     356                } else {
     357                    xinstall -m 0644 ${docitem} ${destroot}${docPath}
     358                }
     359            }
     360        }
     361    }
    361362}
    362363
    363364proc trimroot {root path} {
    364         set acc {}
    365         set skiproot no
    366         foreach rootf [file split $root] pathf [file split $path] {
    367                 if {$pathf eq ""} {
    368                         # we've hit the end of the path
    369                         break
    370                 } elseif {$skiproot eq "yes" || $rootf eq ""} {
    371                         lappend acc $pathf
    372                 } elseif {$rootf ne $pathf} {
    373                         # diverged from the root
    374                         lappend acc $pathf
    375                         set skiproot yes
    376                 }
    377         }
    378         if {[llength $acc] == 0} {
    379                 return ""
    380         } else {
    381                 return [eval [subst -nobackslashes -nocommands {file join $acc}]]
    382         }
     365    set acc {}
     366    set skiproot no
     367    foreach rootf [file split $root] pathf [file split $path] {
     368        if {$pathf eq ""} {
     369            # we've hit the end of the path
     370            break
     371        } elseif {$skiproot eq "yes" || $rootf eq ""} {
     372            lappend acc $pathf
     373        } elseif {$rootf ne $pathf} {
     374            # diverged from the root
     375            lappend acc $pathf
     376            set skiproot yes
     377        }
     378    }
     379    if {[llength $acc] == 0} {
     380        return ""
     381    } else {
     382        return [eval [subst -nobackslashes -nocommands {file join $acc}]]
     383    }
    383384}
Note: See TracChangeset for help on using the changeset viewer.