source: trunk/dports/lang/ruby19/Portfile @ 87161

Last change on this file since 87161 was 87161, checked in by kimuraw@…, 6 years ago

lang/ruby19: upgrade to 1.9.3-p0.

  • license changed {Ruby GPL-2} -> {Ruby BSD}
  • allow build with Xcode-4.2 llvm-clang
  • add variant "doc"
  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 5.0 KB
Line 
1# $Id: Portfile 87161 2011-11-12 16:44:41Z kimuraw@macports.org $
2
3PortSystem                      1.0
4
5name                            ruby19
6version                         1.9.3-p0
7revision                        0
8
9categories                      lang ruby
10maintainers                     kimuraw openmaintainer
11platforms                       darwin
12description                     Powerful and clean object-oriented scripting language
13long_description        Ruby is the interpreted scripting language for quick \
14                                        and easy object-oriented programming. It has many \
15                                        features to process text files and to do system \
16                                        management tasks (as in Perl). It is simple, \
17                                        straight-forward, extensible, and portable. \
18                                        Version 1.9 contains a new VM called YARV, is faster \
19                                        and slightly incompatible from version 1.8.
20
21homepage                        http://www.ruby-lang.org/
22license                         {Ruby BSD}
23
24master_sites            ruby:1.9
25use_bzip2                       yes
26distname                        ruby-${version}
27
28checksums                       md5 65401fb3194cdccd6c1175ab29b8fdb8 \
29                                        rmd160 92e95f1d41f89864e2e4791b522a815e6bf51711 \
30                                        sha1 f63c116411b981ef54c2caeefb9ccc4d71a5d2cf
31use_parallel_build      yes
32
33depends_lib                     port:libiconv \
34                                        port:readline \
35                                        port:openssl \
36                                        port:zlib \
37                                        port:ncurses \
38                                        port:libyaml \
39                                        port:libffi \
40                                        port:gdbm
41
42default_variants        +doc
43
44# https://github.com/rubygems/rubygems/pull/196
45# fix 'Invalid gemspec in [... json-1.6.1.gemspec]: invalid date format in
46#      specification: "2011-09-18 00:00:00.000000000Z"'
47patchfiles                      patch-lib-rubygems-specification.rb.diff
48
49# ruby-1.9.3 supports Xcode-4.2 clang and gcc-4.2.
50# ruby built with llvm-gcc will be broken.
51# http://svn.ruby-lang.org/repos/ruby/tags/v1_9_3_0/NEWS
52# http://redmine.ruby-lang.org/projects/ruby-trunk/wiki/SupportedPlatforms
53if {${configure.compiler} == "llvm-gcc-4.2"} {
54    if {[vercmp $xcodeversion 4.2] >= 0} {
55                configure.compiler clang
56        else
57                configure.compiler gcc-4.2
58                if {![file executable ${configure.cc}]} {
59                        depends_build-append port:apple-gcc42
60                        configure.compiler apple-gcc-4.2
61                }
62        }
63}
64
65configure.args          --enable-shared \
66                                        --disable-install-doc \
67                                        --mandir="${prefix}/share/man" \
68                                        --enable-pthread \
69                                        --without-tk \
70                                        --with-opt-dir="${prefix}" \
71                                        --program-suffix=1.9 \
72                                        --with-rubylibprefix=${prefix}/lib/ruby1.9
73
74# Ignore minor version for archdir, like i686-darwin9.
75# Port "ruby" does the same.
76configure.env           UNAME_RELEASE=${os.major}
77
78post-destroot {
79        foreach type {site vendor} {
80                        set libdir ${destroot}${prefix}/lib/ruby1.9/${type}_ruby/1.9.1
81                        xinstall -m 0755 -d ${libdir}
82                        xinstall -m 0644 ${filespath}/${type}-specific.rb ${libdir}
83        }
84
85        foreach subdir [exec find ${libdir} -type d -empty] {
86                        destroot.keepdirs-append ${subdir}
87        }
88
89    # error at activate, for these case sensitive files
90        foreach rdoc {Exception2MessageMapper/fail-i.yaml \
91                                  REXML/Parsers/XPathParser/predicate-i.yaml} {
92                if {[file exists ${destroot}${prefix}/share/ri1.9/1.9.1/system/${rdoc}]} {
93                        delete ${destroot}${prefix}/share/ri1.9/1.9.1/system/${rdoc}
94                }
95        }
96}
97
98pre-activate {
99        # Bug #3805 [ruby-core:32165]
100        # http://redmine.ruby-lang.org/issues/show/3805
101        #
102        # the two gems of "rake", contained in ruby-1.9.2 and installed via gem
103        # command, might be installed.
104        # `port activate' fails when the two rake are installed.
105        set rake_dup_gemspec ${prefix}/lib/ruby1.9/gems/1.9.1/specifications/rake-0.8.7.gemspec
106        if {[file exists ${rake_dup_gemspec}]} {
107                delete ${rake_dup_gemspec}
108        }
109}
110
111variant nosuffix description "Don't add the 1.9 program suffix to the executables. Note: that makes the port conflict with ruby (1.8), rb-rubygems, and rb-rake ports." {
112                configure.args-delete           --program-suffix=1.9
113}
114
115variant c_api_docs description "Generate documentation for Ruby C API" {
116        depends_build-append port:doxygen
117
118        post-build {
119                file mkdir ${workpath}/c_api
120                set doxygen_conf ${name}-doxygen.conf
121                file copy -force ${filespath}/${doxygen_conf} ${workpath}
122                set doxygen_conf_path ${workpath}/${name}-doxygen.conf
123                reinplace "s|%WORKPATH%|${workpath}|" ${doxygen_conf_path}
124                reinplace "s|%WORKSRCPATH%|${worksrcpath}|" ${doxygen_conf_path}
125                system "doxygen ${doxygen_conf_path}"
126        }
127
128        post-destroot {
129                set api_docs ${destroot}${prefix}/share/doc/${name}-${version}/html/c_api
130                xinstall -m 755 -d ${api_docs}
131                eval xinstall -m 640 [glob ${workpath}/c_api/html/*] ${api_docs}
132        }
133}
134
135variant doc description "Install rdoc indexes and C API documents" {
136                configure.args-delete   --disable-install-doc
137}
138
139variant tk conflicts mactk description "Build using MacPorts Tk" {
140                configure.args-delete   --without-tk
141                configure.args-append   --with-tk
142                depends_lib-append      port:tcl \
143                                                                port:tk
144}
145
146variant mactk conflicts tk description "Build using Mac OS X Tk Framework" {
147                configure.args-delete   --without-tk
148                configure.args-append   --enable-tcltk-framework
149}
150
151variant universal {
152                # use ruby built-in universal mechanism.
153                configure.args-append   --with-arch=[join ${universal_archs} ,]
154                # clear macports' universal flags
155                configure.universal_cflags
156                configure.universal_cppflags
157                configure.universal_cxxflags
158                configure.universal_ldflags
159}
160
161livecheck.type  regex
162livecheck.url   http://ftp.ruby-lang.org/pub/ruby/1.9/
163livecheck.regex ruby-(${version})${extract.suffix}
164
Note: See TracBrowser for help on using the repository browser.