# -*- 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 92964 2012-05-12 05:50:48Z ciserlohn@macports.org $

PortSystem          1.0

name                git-core
version             1.7.10.2
description         A fast version control system
long_description    Git is a fast, scalable, distributed open source version \
                    control system focusing on speed and efficiency.
maintainers         ciserlohn
categories          devel
license             GPL-2 LGPL-2.1+
platforms           darwin
homepage            http://git-scm.com/
master_sites        googlecode
distname            git-${version}
distfiles           git-${version}${extract.suffix} \
                    git-manpages-${version}${extract.suffix}

checksums           git-${version}${extract.suffix} \
                    rmd160  347010cf7c2ea956ff8d8bb04e23035fe1965d68 \
                    sha256  335e978814659f328e377715b13a33336859275ae6f215bf28bbbb2ae711bb43 \
                    git-manpages-${version}${extract.suffix} \
                    rmd160  2f2cccfd9b18d0820a875def26a8e3b9f1c22713 \
                    sha256  bc57810ec8d87f7a10f320e31ceeb1f9eaf254e62e0f6414af67f17d0cf7d522 \

depends_run         port:rsync \
                    port:p5.12-error \
                    port:p5.12-term-readkey

depends_lib         port:perl5.12 \
                    port:curl \
                    port:zlib \
                    port:openssl \
                    port:expat \
                    port:libiconv

patchfiles          patch-Makefile.diff 0001-setup-Do-not-strip-trailing-from-paths.patch
patch.pre_args      -p1

extract.only        git-${version}${extract.suffix} \
                    git-manpages-${version}${extract.suffix}

use_configure       no

variant universal   {}

set CFLAGS          "-Wall -O2 -I${prefix}/include [get_canonical_archflags cc]"
set LDFLAGS         "-L${prefix}/lib [get_canonical_archflags ld]"

build.args          CFLAGS="${CFLAGS}" \
                    LDFLAGS="${LDFLAGS}" \
                    CC=${configure.cc} \
                    prefix=${prefix} \
                    CURLDIR=${prefix} \
                    OPENSSLDIR=${prefix} \
                    ICONVDIR=${prefix} \
                    PERL_PATH="${prefix}/bin/perl5.12" \
                    NO_FINK=1 \
                    NO_DARWIN_PORTS=1 \
                    NO_R_TO_GCC_LINKER=1 \
                    V=1

test.run            yes
test.cmd            make
test.target         test
test.dir            ${worksrcpath}
pre-test {
    eval test.args  ${build.args}
}

destroot.target     install
pre-destroot {
    eval destroot.args  ${build.args}
}

post-destroot {
    foreach f {1 5 7} {
        xinstall -d ${destroot}${prefix}/share/man/man${f}
        foreach m [glob -directory ${workpath} man${f}/*.${f}] {
            xinstall ${m} ${destroot}${prefix}/share/man/man${f}
        }
    }
    if {![variant_isset svn]} {
        system "rm ${destroot}${prefix}/libexec/git-core/git-svn*"
    }
    set docdestroot ${destroot}${prefix}/share/doc/${name}
    xinstall -d ${docdestroot}
    if {[variant_isset doc]} {
        system "cd ${docdestroot} && ${extract.cmd} ${extract.pre_args} \
            ${distpath}/git-htmldocs-${version}${extract.suffix} \
            ${extract.post_args}"
    }

    file copy ${worksrcpath}/contrib ${docdestroot}

    foreach badfile [exec find ${destroot} -name perllocal.pod] {
        ui_info "Removing ${badfile}"
        file delete ${badfile}
    }
}

if {![variant_isset python26] && ![variant_isset python27]} {
    default_variants    +python27
}

variant python26 conflicts python27 description {Use Python 2.6} {
    build.args-append       PYTHON_PATH="${prefix}/bin/python2.6"
    depends_lib-append      port:python26
}

variant python27 conflicts python26 description {Use Python 2.7} {
    build.args-append       PYTHON_PATH="${prefix}/bin/python2.7"
    depends_lib-append      port:python27
}

variant pcre {
    build.args-append       LIBPCREDIR=${prefix} USE_LIBPCRE=1
    depends_lib-append      port:pcre
}

variant doc description {Install HTML and plaintext documentation} {
    distfiles-append        git-htmldocs-${version}${extract.suffix}
    checksums-append        git-htmldocs-${version}${extract.suffix} \
                            rmd160  3910b023a636ef3b9d0065a2932780284324122c \
                            sha256  4cb17519eb621060d657c71ba8b10d755a6ea71123642ed6cc73d24ce8f0b734
}

variant gitweb description {Install gitweb.cgi} {
    build.target-append     gitweb/gitweb.cgi

    post-destroot {
        xinstall -d ${destroot}${prefix}/share/${name}/gitweb
        xinstall -W ${worksrcpath}/gitweb \
            gitweb.cgi \
            ${destroot}${prefix}/share/${name}/gitweb
        xinstall -m 444 -W ${worksrcpath}/gitweb/static \
            gitweb.css \
            gitweb.js \
            git-favicon.png \
            git-logo.png \
            ${destroot}${prefix}/share/${name}/gitweb
        xinstall -d ${destroot}${prefix}/share/doc/${name}/gitweb
        xinstall -m 444 -W ${worksrcpath}/gitweb README INSTALL \
            ${destroot}${prefix}/share/doc/${name}/gitweb
    }
}

variant svn description {Bi-directional subversion repository support} {
    depends_run-append  port:subversion \
                        port:p5.12-libwww-perl \
                        port:p5.12-svn-simple
}

variant bash_completion {
    depends_run-append  path:etc/bash_completion:bash-completion

    post-destroot {
        xinstall -d ${destroot}${prefix}/etc/bash_completion.d
        xinstall -m 644 ${worksrcpath}/contrib/completion/git-completion.bash \
            ${destroot}${prefix}/etc/bash_completion.d/git
    }
}


variant credential_osxkeychain description {Install git credential-osxkeychain utility from contrib} {
    patchfiles-append   patch-contrib-credential-osxkeychain-Makefile.diff

    post-build {
        system -W "${worksrcpath}/contrib/credential/osxkeychain" "make [join ${build.args}]"
    }

    pre-destroot {
        xinstall -m 755 "${worksrcpath}/contrib/credential/osxkeychain/git-credential-osxkeychain" \
            "${destroot}${prefix}/bin/"
        system -W "${worksrcpath}/contrib/credential/osxkeychain" "make clean"
    }
}

default_variants    +doc +pcre +credential_osxkeychain

livecheck.type          regex
livecheck.regex         {<span class='version'>(.*)</span>}
