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

PortSystem      1.0

name            perl5.10
conflicts       perl5.8
version         5.10.1
revision        1
categories      lang
platforms       darwin freebsd linux
maintainers     ricci openmaintainer
description     Perl 5.10.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     82400c6d34f7b7b43d0196c76cd2bbb1 \
                    sha1    98b762b5cd4fb76dd354dfa5ba0d21bc2acacaf2 \
                    rmd160  840b3a5ac3d7f517770ce789676ebd9154d9ee5a

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

platform darwin {
    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.10 to avoid conflicting with perl5.8} {
    conflicts-delete perl5.8
    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+)*)

