[111463] trunk/dports/_resources/port1.0/group/ruby-1.0.tcl
kimuraw at macports.org
kimuraw at macports.org
Mon Sep 23 07:16:54 PDT 2013
Revision: 111463
https://trac.macports.org/changeset/111463
Author: kimuraw at macports.org
Date: 2013-09-23 07:16:53 -0700 (Mon, 23 Sep 2013)
Log Message:
-----------
port1.0/group/ruby-1.0.tcl: support ruby-1.8 universal extentions with setup.rb (#39096)
write "Portgroup muniversal 1.0" to Portfile, then rb-* ports with
setup.rb contains C-extention become to support universal.
examples:
[port:rb-xslt]
- add "Portgroup muniversal 1.0"
Index: ruby/rb-xslt/Portfile
===================================================================
--- ruby/rb-xslt/Portfile (revision 111446)
+++ ruby/rb-xslt/Portfile (working copy)
@@ -2,6 +2,7 @@
PortSystem 1.0
PortGroup ruby 1.0
+PortGroup muniversal 1.0
ruby.setup ruby-xslt 0.9.6 setup.rb {AUTHORS COPYING ChangeLog README} rubyforge:35058
extract.suffix .tgz
[port:rb-sqlite3]
- add "Portgroup muniversal 1.0"
- add ruby.config_rubyprog_name
Index: ruby/rb-sqlite3/Portfile
===================================================================
--- ruby/rb-sqlite3/Portfile (revision 111446)
+++ ruby/rb-sqlite3/Portfile (working copy)
@@ -2,7 +2,9 @@
PortSystem 1.0
PortGroup ruby 1.0
+PortGroup muniversal 1.0
+ruby.config_rubyprog_name --ruby-prog
ruby.setup {sqlite3 sqlite3-ruby} 1.2.4 setup.rb \
{README.rdoc LICENSE CHANGELOG.rdoc api doc} \
rubyforge:42055
Revision Links:
--------------
https://trac.macports.org/changeset/111446
https://trac.macports.org/changeset/111446
Modified Paths:
--------------
trunk/dports/_resources/port1.0/group/ruby-1.0.tcl
Modified: trunk/dports/_resources/port1.0/group/ruby-1.0.tcl
===================================================================
--- trunk/dports/_resources/port1.0/group/ruby-1.0.tcl 2013-09-23 13:27:09 UTC (rev 111462)
+++ trunk/dports/_resources/port1.0/group/ruby-1.0.tcl 2013-09-23 14:16:53 UTC (rev 111463)
@@ -126,6 +126,12 @@
options ruby.link_binaries
default ruby.link_binaries yes
+# detect setup.rb config option name of --rubyprog.
+# some setup.rb accepts this option by other name, such as --ruby-prog.
+# NOTE: set the value *before ruby.setup* to use ohter name.
+options ruby.config_rubyprog_name
+default ruby.config_rubyprog_name --rubyprog
+
default ruby.branch ${ruby.default_branch}
# ruby group setup procedure; optional for ruby 1.8 if you want only
@@ -139,7 +145,10 @@
# ruby.version is obsoleted. use ruby.gemdir.
global ruby.prog_suffix
# from muniversal
- global universal_archs_supported merger_configure_env
+ global universal_archs_supported
+ global merger_configure_env merger_build_env merger_destroot_env
+ # for setup.rb +universal
+ global ruby.config_rubyprog_name
if {${implementation} eq "ruby19"} {
ruby.branch 1.9
@@ -328,18 +337,49 @@
build.target setup
pre-destroot {
- if {[file isfile ${worksrcpath}/config.save]} {
- reinplace "s|${prefix}|${destroot}${prefix}|g" \
- ${worksrcpath}/config.save
+ foreach conf {config.save .config} {
+ if {[file isfile ${worksrcpath}/${conf}]} {
+ reinplace "s|${prefix}|${destroot}${prefix}|g" \
+ ${worksrcpath}/${conf}
+ }
+ if {[variant_isset universal] && [info exists universal_archs_supported]} {
+ foreach arch ${universal_archs_supported} {
+ if {[file isfile ${worksrcpath}-${arch}/${conf}]} {
+ reinplace "s|${prefix}|${destroot}-${arch}${prefix}|g" \
+ ${worksrcpath}-${arch}/${conf}
+ }
+ }
+ }
}
- if {[file isfile ${worksrcpath}/.config]} {
- reinplace "s|${prefix}|${destroot}${prefix}|g" \
- ${worksrcpath}/.config
- }
}
destroot.cmd ${ruby.bin} -rvendor-specific setup.rb
destroot.target install
destroot.destdir
+ # extconf.rb|mkmf.rb of ruby-1.8 does not support universal binary.
+ # to build universal extentions, write "Portgrourp muniversal 1.0" in the Portfile.
+ if {[variant_isset universal] && (${ruby.branch} eq "1.8") && [info exists universal_archs_supported]} {
+ # generate wrapper for --rubyprog option
+ pre-configure {
+ set fo [open ${worksrcpath}/_mp_arch_ruby w]
+ puts $fo "#!/bin/sh"
+ puts $fo "/usr/bin/arch ${ruby.bin} \$@"
+ close $fo
+ system "chmod +x ${worksrcpath}/_mp_arch_ruby"
+ }
+ configure.args-append \
+ ${ruby.config_rubyprog_name}=${worksrcpath}/_mp_arch_ruby
+ foreach arch ${universal_archs_supported} {
+ lappend merger_configure_env(${arch}) \
+ ARCHPREFERENCE=ruby${ruby.branch}:${arch}
+ lappend merger_build_env(${arch}) \
+ ARCHPREFERENCE=ruby${ruby.branch}:${arch}
+ lappend merger_destroot_env(${arch}) \
+ ARCHPREFERENCE=ruby${ruby.branch}:${arch}
+ }
+ configure.cmd /usr/bin/arch ${ruby.bin} -rvendor-specific setup.rb
+ build.cmd /usr/bin/arch ${ruby.bin} -rvendor-specific setup.rb
+ destroot.cmd /usr/bin/arch ${ruby.bin} -rvendor-specific setup.rb
+ }
post-destroot {
foreach file [readdir ${destroot}${prefix}/bin] {
move [file join ${destroot}${prefix}/bin $file] ${destroot}${ruby.bindir}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20130923/1b86d3c8/attachment.html>
More information about the macports-changes
mailing list