# $Id: Portfile 53131 2009-06-30 06:15:52Z blb@macports.org $

PortSystem 1.0

name             R
version          2.9.1
categories       math science
maintainers      epfl.ch:kjell.konis
platforms        darwin

description      R is GNU S - an interpreted language for statistical computing

long_description \
    R is a language and environment for statistical computing and graphics. \
    R provides a wide variety of statistical (linear and nonlinear modelling, \
    classical statistical tests, time-series analysis, classification, \
    clustering, ...) and graphical techniques, and is highly extensible.

homepage         http://www.r-project.org/

master_sites     http://cran.us.r-project.org/src/base/R-2/ \
                 http://cran.ms.unimelb.edu.au/src/base/R-2/ \
                 http://cran.at.r-project.org/src/base/R-2/ \
                 http://cran.hu.r-project.org/src/base/R-2/ \
                 http://cran.r-project.org/src/base/R-2/

checksums        md5     54a79eebdf0cec3fd2c489fc94d99b00 \
                 sha1    59bcc4e775db5c681aefbfafe9fc357bc99e1fad \
                 rmd160  cdce66673d301555c3a4c128283b456b85d9dcaa

depends_lib      port:gettext \
                 port:glib2 \
                 port:jpeg \
                 port:libiconv \
                 port:pango \
                 port:readline \
                 port:tcl \
                 port:tk \
                 port:tiff \
                 port:xorg-libXmu \
                 port:xorg-libXScrnSaver

universal_variant no


variant gcc42 description {Build with gcc42} {
    configure.compiler macports-gcc-4.2
    depends_lib-append port:gcc42
}

variant gcc43 description {Build with gcc43 (default)} {
    configure.compiler macports-gcc-4.3
    depends_lib-append port:gcc43
}

if {![variant_isset gcc42] && ![variant_isset gcc43]} {
    default_variants +gcc43
}

post-extract {
  reinplace "s|R_HOME|\"${prefix}/lib/R\"|" ${worksrcpath}/src/unix/Rscript.c
}

configure.args   --mandir=\\\${prefix}/share/man \
                 --enable-R-shlib \
                 --disable-nls \
                 --without-libintl-prefix \
                 --disable-R-framework \
                 --without-aqua \
                 --with-tcl-config=${prefix}/lib/tclConfig.sh \
                 --with-tk-config=${prefix}/lib/tkConfig.sh \
                 --x-include=${prefix}/include \
                 --x-lib=${prefix}/lib

test.run         yes
test.target      check
destroot.destdir prefix=${destroot}${prefix}

post-destroot {
  foreach r { "/bin/R" "/lib/R/bin/R" } {
    foreach dir { "R_HOME_DIR" "R_SHARE_DIR" "R_INCLUDE_DIR" "R_DOC_DIR" } {
      reinplace "s|${dir}=${destroot}|${dir}=|" \
        "${destroot}${prefix}${r}"
    }
  }

  foreach v { "rhome" "rincludedir"} {
    reinplace "s|${v}=${destroot}|${v}=|" "${destroot}${prefix}/lib/pkgconfig/libR.pc"
  }

  system "install_name_tool -id ${prefix}/lib/R/lib/libR.dylib \
    ${destroot}${prefix}/lib/R/lib/libR.dylib"
  system "install_name_tool -change libRblas.dylib ${prefix}/lib/R/lib/libRblas.dylib \
    ${destroot}${prefix}/lib/R/lib/libR.dylib"

  system "install_name_tool -id ${prefix}/lib/R/lib/libRblas.dylib \
    ${destroot}${prefix}/lib/R/lib/libRblas.dylib"

  system "install_name_tool -id ${prefix}/lib/R/lib/libRlapack.dylib \
    ${destroot}${prefix}/lib/R/lib/libRlapack.dylib"
  system "install_name_tool -change libRblas.dylib ${prefix}/lib/R/lib/libRblas.dylib \
    ${destroot}${prefix}/lib/R/lib/libRlapack.dylib"
  system "install_name_tool -change libR.dylib ${prefix}/lib/R/lib/libR.dylib \
    ${destroot}${prefix}/lib/R/lib/libRlapack.dylib"

  foreach so [ exec find ${destroot}${prefix}/lib/R -name "\*.so" ] {
    regsub ":$" ${so} "" destroot_so_path
    regsub ${destroot} ${destroot_so_path} "" so_path
    system "install_name_tool -id ${so_path} ${destroot_so_path}"
    system "install_name_tool -change libR.dylib ${prefix}/lib/R/lib/libR.dylib ${destroot_so_path}"
  }
}

