# -*- 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
# $Id: Portfile 119374 2014-04-24 11:39:53Z mojca@macports.org $

PortSystem          1.0

name                perl5.18
version             5.18.2
set branch          [join [lrange [split ${version} .] 0 1] .]
categories          lang
license             {Artistic-1 GPL}
platforms           darwin freebsd linux
maintainers         emer.net:emer openmaintainer
description         Perl 5.18.x - Practical Extraction and Report Language

long_description    Perl is a general-purpose programming language originally developed \
                    for text manipulation and now used for a wide range of tasks including \
                    system administration, web development, network programming, GUI \
                    development, and more.

distname            perl-${version}
use_bzip2           yes
homepage            http://www.perl.org/
master_sites        http://www.cpan.org/src/5.0/

checksums           rmd160  1b656ae4f53845aac11e62b71c2d84c156ebfbd0 \
                    sha256  06a0cd490be36d829606aa41d8c9c4c72ae70542f8d4f23ec554335b3d9e2746

depends_lib-append  port:gdbm

pre-configure {
    reinplace "s|/opt/local|${prefix}|g" ${worksrcpath}/Configure
}

configure.ccache    no
configure.distcc    no
configure.env       LC_ALL=C
configure.cmd       sh Configure
configure.pre_args
configure.universal_args-delete \
                    --disable-dependency-tracking
configure.post_args -des \
                    -Dprefix='${prefix}' \
                    -Dscriptdir='${prefix}/bin' \
                    -Dcppflags="\${CPPFLAGS}" \
                    -Dccflags="\${CFLAGS}" \
                    -Dldflags="\${LDFLAGS}" \
                    -Dvendorprefix='${prefix}' \
                    -Dusemultiplicity=y \
                    -Dusethreads \
                    -Duseshrplib \
                    -D cc=\${CC} \
                    -D ld=\${CC} \
                    -D man1ext='1pm' \
                    -D man3ext='3pm' \
                    -D man1dir='${prefix}/share/man/man1p' \
                    -D man3dir='${prefix}/share/man/man3p' \
                    -D sitebin='${prefix}/libexec/perl${branch}/sitebin' \
                    -D siteman1dir='${prefix}/share/perl${branch}/siteman/man1' \
                    -D siteman3dir='${prefix}/share/perl${branch}/siteman/man3' \
                    -D vendorbin='${prefix}/libexec/perl${branch}' \
                    -D vendorman1dir='${prefix}/share/perl${branch}/man/man1' \
                    -D vendorman3dir='${prefix}/share/perl${branch}/man/man3' \
                    -D pager="/usr/bin/less -sR" \
                    -D perlpath="${prefix}/bin/perl${branch}" \
                    -D startperl="#!${prefix}/bin/perl${branch}"

# Allow perl to find p5-* ports installed by previous (minor) versions
set platsuffix ""
if {${os.platform} eq "darwin"} {
    set platsuffix "-2level"
}
configure.args-append "-D inc_version_list=\"5.18.0/${os.platform}-thread-multi${platsuffix} 5.18.0 \""

if {[variant_isset universal]} {
    post-configure {
        system "cd ${worksrcpath} && ed - ${worksrcpath}/config.h < ${filespath}/config.h.ed"
    }
}

post-build {
    reinplace -E {s|-arch [a-z0-9_]+||g} \
        ${worksrcpath}/lib/Config_heavy.pl
}

test.run            yes

variant dtrace description {Build with DTrace probes} {
    configure.args-append   -Dusedtrace
}

post-destroot {
    # avoid conflicting with other perl versions
    # perl5 creates unversioned symlinks
    delete ${destroot}${prefix}/bin/perl
    foreach binFile [glob -directory "${destroot}${prefix}/bin" *] {
        if {$binFile != "${destroot}${prefix}/bin/perl${version}"} {
            move ${binFile} ${binFile}-${branch}
        }
    }
    move ${destroot}${prefix}/bin/perl${version} ${destroot}${prefix}/bin/${name}
    ln -s ${name} ${destroot}${prefix}/bin/perl${version}
    foreach man1File [glob -directory "${destroot}${prefix}/share/man/man1p" *] {
        regexp (.*)(\.1.*) ${man1File} -> program suffix
        move ${man1File} ${program}-${branch}${suffix}
    }
    foreach man3File [glob -directory "${destroot}${prefix}/share/man/man3p" *] {
        regexp (.*)(\.3.*) ${man3File} -> program suffix
        move ${man3File} ${program}-${branch}${suffix}
    }
}

livecheck.type      regex
livecheck.url       http://www.cpan.org/src
livecheck.regex     {perl-(5\.18\.\d)\.}
