# $Id: Portfile 66926 2010-04-26 01:20:19Z jmr@macports.org $

PortSystem      1.0

name            perl5.12
conflicts       perl5.8 perl5.10
version         5.12.0
revision        0
categories      lang
platforms       darwin freebsd linux
maintainers     ricci openmaintainer
description     Perl 5.12.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           md5     3e15696f4160775a90f6b2fb3ccc98c2 \
                    sha1    f533687077e2da113b48a6c5e578f4a206fbf173 \
                    rmd160  10819912e62e14777942c482903f354170e73990


patchfiles	patch-Configure.diff patch-darwin.sh.diff

platform darwin {
    patchfiles-append   patch-hints_darwin.diff
##    patchfiles-append   patch-hints_darwin.diff \
## 						patch-perl.c.diff
}

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 \
					-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 siteman1dir='${prefix}/share/man/man1' \
					-D siteman3dir='${prefix}/share/man/man3' \
					-D vendorman1dir='${prefix}/share/man/man1' \
					-D vendorman3dir='${prefix}/share/man/man3'	\
					-D pager="/usr/bin/less -sR"

configure.ccache	no

if {[variant_isset universal]} {
    post-configure {
        system "cd ${worksrcpath} && ed - ${worksrcpath}/config.h < ${filespath}/config.h.ed"
    }
} elseif {![info exists configure.ld_archflags]} {
    eval configure.ldflags-append ${configure.cc_archflags}
}

test.run            yes

variant threads description {Build with thread support} {
    configure.args-append   -Dusethreads
}

variant shared description {Build shared perl library} {
    configure.args-append   -Duseshrplib
}

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

variant mangle_names description {mangle the installed names by appending -5.12 to avoid conflicting with perl5.8 and perl5.10} {
    conflicts-delete perl5.8
    conflicts-delete perl5.10
    post-destroot {
        file delete ${destroot}${prefix}/bin/perl
        set branch [join [lrange [split ${version} .] 0 1] .]
        foreach bin [glob ${destroot}${prefix}/bin/*] {
            if {$bin != "${destroot}${prefix}/bin/perl${version}"} {
                move ${bin} ${bin}-${branch}
            }
        }
    
        ln -s ${prefix}/bin/perl${version} ${destroot}${prefix}/bin/$name
    
        foreach man1File [glob ${destroot}${prefix}/share/man/man1p/*] {
            regexp (.*)(\.1.*) ${man1File} -> program suffix
            file rename ${man1File} ${program}-${branch}${suffix}
        }
        foreach man3File [glob ${destroot}${prefix}/share/man/man3p/*] {
            regexp (.*)(\.3.*) ${man3File} -> program suffix
            file rename ${man3File} ${program}-${branch}${suffix}
        }
    }
}

livecheck.type  regex
livecheck.url   http://www.cpan.org/src
livecheck.regex latest_[join [lrange [split ${version} .] 0 1] .]_is_(\\d+(?:\\.\\d+)*)

