34 | | distname R-${version} |
35 | | dist_subdir R |
36 | | |
37 | | checksums rmd160 d588100f075e3a370a2cd6400e3c61dcc5b7a09e \ |
38 | | sha256 c583a38f8dad3bc012c08116f4ba1eb2182cadfad4b0f8d7bd3cdba24bc255d6 |
39 | | |
40 | | depends_build port:pkgconfig |
41 | | |
42 | | depends_lib port:readline \ |
43 | | port:icu \ |
44 | | port:libiconv |
45 | | |
46 | | universal_variant no |
47 | | |
48 | | set resources ${frameworks_dir}/R.framework/Versions/${major}.${minor}/Resources |
49 | | |
50 | | post-patch { |
51 | | reinplace "s|R_HOME|\"${resources}\"|" "${worksrcpath}/src/unix/Rscript.c" |
52 | | } |
53 | | |
54 | | configure.env-append r_arch=${build_arch} |
55 | | |
56 | | configure.pre_args --prefix=${frameworks_dir} |
57 | | |
58 | | configure.cflags-append -DOS_OBJECT_USE_OBJC=0 |
59 | | |
60 | | configure.args --enable-R-framework \ |
61 | | --enable-R-shlib \ |
62 | | --enable-BLAS-shlib \ |
63 | | --enable-openmp \ |
64 | | --with-readline \ |
65 | | --with-aqua \ |
66 | | --without-tcltk \ |
67 | | --without-cairo \ |
68 | | --with-libpng \ |
69 | | --without-jpeglib \ |
70 | | --without-recommended-packages \ |
71 | | --with-ICU \ |
72 | | --without-x \ |
73 | | --with-included-gettext |
74 | | |
75 | | variant cairo requires x11 description {Use cairo and pango} { |
76 | | depends_lib-append path:lib/pkgconfig/cairo.pc:cairo \ |
77 | | path:lib/pkgconfig/pango.pc:pango \ |
78 | | path:lib/pkgconfig/glib-2.0.pc:glib2 \ |
79 | | port:freetype \ |
80 | | port:fontconfig \ |
81 | | port:gettext |
82 | | configure.args-delete --without-cairo |
83 | | configure.args-append --with-cairo |
84 | | } |
85 | | |
86 | | variant accelerate conflicts atlas builtin_lapack description {build using the BLAS and Lapack in Apple's Accelerate framework} { |
87 | | configure.args-append --with-blas="-framework vecLib" \ |
88 | | --with-lapack="-framework vecLib" |
89 | | } |
90 | | |
91 | | variant atlas conflicts accelerate builtin_lapack description {build using the BLAS and Lapack provided by the atlas port} { |
92 | | #more in post-destroot phase |
93 | | configure.args-append --without-blas --without-lapack |
94 | | } |
95 | | |
96 | | variant builtin_lapack conflicts accelerate atlas description {build using reference BLAS and Lapack} { |
97 | | configure.args-append --without-blas --without-lapack |
98 | | } |
99 | | |
100 | | variant debug description {build with debug symbols} { |
101 | | configure.optflags-append -g |
102 | | } |
103 | | |
104 | | variant gcc45 conflicts gcc46 gcc47 description {build with gcc45} { |
105 | | depends_lib-append port:gcc45 |
106 | | configure.compiler macports-gcc-4.5 |
107 | | configure.objc /usr/bin/gcc |
108 | | configure.env-append "OBJCXX=${configure.objc}" |
| 30 | pre-configure { |
| 31 | ui_error "Please do not install this port since it has been replaced by 'R'." |
| 32 | return -code error |
111 | | variant gcc46 conflicts gcc45 gcc47 description {build with gcc46} { |
112 | | depends_lib-append port:gcc46 |
113 | | configure.compiler macports-gcc-4.6 |
114 | | configure.objc /usr/bin/gcc |
115 | | configure.env-append "OBJCXX=${configure.objc}" |
116 | | } |
117 | | |
118 | | variant gcc47 conflicts gcc45 gcc46 description {build with gcc47} { |
119 | | depends_lib-append port:gcc47 |
120 | | configure.compiler macports-gcc-4.7 |
121 | | configure.objc /usr/bin/gcc |
122 | | configure.env-append "OBJCXX=${configure.objc}" |
123 | | } |
124 | | |
125 | | variant recommended description {Install recommended R packages} { |
126 | | configure.args-delete --without-recommended-packages |
127 | | configure.args-append --with-recommended-packages |
128 | | } |
129 | | |
130 | | variant tcltk requires x11 description {Use tcltk} { |
131 | | depends_lib-append port:tcl \ |
132 | | port:tk \ |
133 | | port:xorg-libXScrnSaver \ |
134 | | port:xorg-libXext |
135 | | configure.args-delete --without-tcltk |
136 | | configure.args-append --with-tcltk \ |
137 | | --with-tcl-config=${prefix}/lib/tclConfig.sh \ |
138 | | --with-tk-config=${prefix}/lib/tkConfig.sh |
139 | | } |
140 | | |
141 | | variant x11 description { |
142 | | depends_lib-append port:xorg-libsm \ |
143 | | port:xorg-libice \ |
144 | | port:xorg-libX11 \ |
145 | | port:xorg-libXt \ |
146 | | port:tiff \ |
147 | | port:jpeg \ |
148 | | port:libpng \ |
149 | | port:zlib |
150 | | configure.args-delete --without-x \ |
151 | | --without-jpeglib |
152 | | configure.args-append --with-x \ |
153 | | --with-jpeglib \ |
154 | | --x-include=${prefix}/include/X11 \ |
155 | | --x-lib=${prefix}/lib |
156 | | } |
157 | | |
158 | | default_variants +cairo +recommended +x11 |
159 | | |
160 | | if {![variant_isset accelerate] && ![variant_isset atlas] && ![variant_isset builtin_lapack]} { |
161 | | default_variants-append +accelerate |
162 | | } |
163 | | |
164 | | if {![variant_isset gcc45] && ![variant_isset gcc46] && ![variant_isset gcc47]} { |
165 | | default_variants-append +gcc47 |
166 | | } |
167 | | |
168 | | destroot.destdir prefix=${destroot}${frameworks_dir} |
169 | | |
170 | | post-destroot { |
171 | | move ${destroot}${frameworks_dir}/lib/pkgconfig/libR.pc ${destroot}${prefix}/lib/pkgconfig/libR.pc |
172 | | |
173 | | foreach v { "rhome" "rincludedir" } { |
174 | | reinplace "s|${v}=${destroot}|${v}=|" "${destroot}${prefix}/lib/pkgconfig/libR.pc" |
175 | | } |
176 | | |
177 | | foreach dir { "R_HOME_DIR" "R_SHARE_DIR" "R_INCLUDE_DIR" "R_DOC_DIR" } { |
178 | | reinplace "s|${dir}=${destroot}|${dir}=|" "${destroot}${resources}/bin/R" |
179 | | } |
180 | | |
181 | | reinplace "s|R_ARCH=/`arch`|R_ARCH=/${build_arch}|" "${destroot}${resources}/bin/R" |
182 | | reinplace "s|-F${destroot}|-F|" "${destroot}${resources}/etc/${build_arch}/Makeconf" |
183 | | reinplace "s|OBJCXX = |OBJCXX = /usr/bin/g++|" "${destroot}${resources}/etc/${build_arch}/Makeconf" |
184 | | reinplace "s|OBJC_LIBS = none |OBJC_LIBS = -lobjc |" "${destroot}${resources}/etc/${build_arch}/Makeconf" |
185 | | |
186 | | file delete ${destroot}${resources}/lib/libR.dylib |
187 | | file delete ${destroot}${resources}/lib/libRblas.dylib |
188 | | file delete ${destroot}${resources}/lib/libRlapack.dylib |
189 | | |
190 | | foreach dylib [ exec find ${destroot}${frameworks_dir}/R.framework -name "\*.dylib" ] { |
191 | | regsub ":$" ${dylib} "" destroot_dylib_path |
192 | | regsub ${destroot} ${destroot_dylib_path} "" dylib_path |
193 | | system "install_name_tool -id ${dylib_path} ${destroot_dylib_path}" |
194 | | system "install_name_tool -change ${destroot}${resources}/lib/libR.dylib ${resources}/lib/${build_arch}/libR.dylib \ |
195 | | ${destroot_dylib_path}" |
196 | | system "install_name_tool -change ${destroot}${resources}/lib/libRblas.dylib ${resources}/lib/${build_arch}/libRblas.dylib \ |
197 | | ${destroot_dylib_path}" |
198 | | system "install_name_tool -change ${destroot}${resources}/lib/libRlapack.dylib ${resources}/lib/${build_arch}/libRlapack.dylib \ |
199 | | ${destroot_dylib_path}" |
200 | | } |
201 | | |
202 | | foreach so [ exec find ${destroot}${frameworks_dir}/R.framework -name "\*.so" ] { |
203 | | regsub ":$" ${so} "" destroot_so_path |
204 | | regsub ${destroot} ${destroot_so_path} "" so_path |
205 | | system "install_name_tool -id ${so_path} ${destroot_so_path}" |
206 | | system "install_name_tool -change ${destroot}${resources}/lib/libR.dylib ${resources}/lib/${build_arch}/libR.dylib \ |
207 | | ${destroot_so_path}" |
208 | | system "install_name_tool -change ${destroot}${resources}/lib/libRblas.dylib ${resources}/lib/${build_arch}/libRblas.dylib \ |
209 | | ${destroot_so_path}" |
210 | | system "install_name_tool -change ${destroot}${resources}/lib/libRlapack.dylib ${resources}/lib/${build_arch}/libRlapack.dylib \ |
211 | | ${destroot_so_path}" |
212 | | } |
213 | | |
214 | | system "install_name_tool -change ${destroot}${resources}/lib/libR.dylib ${resources}/lib/${build_arch}/libR.dylib \ |
215 | | ${destroot}${resources}/bin/exec/${build_arch}/R" |
216 | | system "install_name_tool -change ${destroot}${resources}/lib/libRblas.dylib ${resources}/lib/${build_arch}/libRblas.dylib \ |
217 | | ${destroot}${resources}/bin/exec/${build_arch}/R" |
218 | | |
219 | | ln -s ${build_arch}/libR.dylib ${destroot}${resources}/lib/libR.dylib |
220 | | |
221 | | if {[variant_isset atlas]} { |
222 | | file delete ${destroot}${resources}/lib/${build_arch}/libRblas.dylib |
223 | | file delete ${destroot}${resources}/lib/${build_arch}/libRlapack.dylib |
224 | | ln -s ${prefix}/lib/libtatlas.dylib ${destroot}${resources}/lib/${build_arch}/libRblas.dylib |
225 | | ln -s ${prefix}/lib/libtatlas.dylib ${destroot}${resources}/lib/${build_arch}/libRlapack.dylib |
226 | | ln -s ${prefix}/lib/libtatlas.dylib ${destroot}${resources}/lib/libRblas.dylib |
227 | | ln -s ${prefix}/lib/libtatlas.dylib ${destroot}${resources}/lib/libRlapack.dylib |
228 | | } else { |
229 | | ln -s ${build_arch}/libRblas.dylib ${destroot}${resources}/lib/libRblas.dylib |
230 | | ln -s ${build_arch}/libRlapack.dylib ${destroot}${resources}/lib/libRlapack.dylib |
231 | | } |
232 | | |
233 | | ln -s ${resources}/bin/R ${destroot}${prefix}/bin/R |
234 | | ln -s ${resources}/bin/Rscript ${destroot}${prefix}/bin/Rscript |
235 | | } |
236 | | |
237 | | livecheck.type regex |
238 | | livecheck.url [lindex ${master_sites} 0] |
239 | | livecheck.regex >R-(\[0-9.\]+)${extract.suffix}< |
240 | | |
| 35 | distfiles |