# -*- coding: utf-8; mode: tcl; tab-width: 4; truncate-lines: t; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:et:sw=4:ts=4:sts=4
# $Id: Portfile 67259 2010-05-03 22:36:18Z ryandesign@macports.org $

PortSystem        1.0

name              git-core
version           1.7.1
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       larsen.st:bryan \
                  gmail.com:maccheck \
                  openmaintainer
categories        devel
platforms         darwin
homepage          http://git-scm.com
use_bzip2         yes
master_sites      http://www.kernel.org/pub/software/scm/git/
distname          git-${version}
distfiles         git-${version}${extract.suffix} \
                  git-manpages-${version}${extract.suffix}

checksums    git-${version}${extract.suffix} \
                    md5     3da231dbe82ad103373cb530ae7475d5 \
                    sha1    0b031d1ab63506f945ad3c6fb5f814c6a4fc3095 \
                    rmd160  b29995bac655e64d3c5d6911fe1235ba85ff58e6 \
             git-manpages-${version}${extract.suffix} \
                    md5     50c3e1119a2197de208cbb69c7da0a50 \
                    sha1    6b1e6738d30334f6e9071f983959644b4b3e9378 \
                    rmd160  8f32c0f06e9ff76751dff6849e6c3df7db4b77c7 \

depends_run  port:rsync port:p5-error
depends_lib  path:bin/perl:perl5 port:curl port:zlib port:openssl port:expat port:libiconv

patchfiles   patch-Makefile.diff

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

use_configure  no

set CFLAGS     "-Wall -O2 -I${prefix}/include ${configure.cc_archflags}"
set LDFLAGS    "-L${prefix}/lib"

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

test.run       yes
test.cmd       make
test.target    test
test.dir       ${worksrcpath}
test.args      prefix=${prefix} CURLDIR=${prefix} OPENSSLDIR=${prefix} ICONVDIR=${prefix} \
               PERL_PATH="${prefix}/bin/perl" NO_FINK=1 NO_DARWIN_PORTS=1

destroot.destdir  DESTDIR=${destroot} prefix=${prefix}
destroot.target   install
destroot.args     CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" \
                  prefix=${prefix} CURLDIR=${prefix} OPENSSLDIR=${prefix} ICONVDIR=${prefix} \
                  PERL_PATH="${prefix}/bin/perl" NO_FINK=1 NO_DARWIN_PORTS=1 \
                  NO_R_TO_GCC_LINKER=1

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}
    }
}

variant doc description {Install HTML and plaintext documentation} {
    distfiles-append    git-htmldocs-${version}${extract.suffix}
    checksums-append    git-htmldocs-${version}${extract.suffix} \
                    md5     bc4bdafdc1b257c40564d47bc5c97365 \
                    sha1    94d18dea549c52ae0c38b1568ace46bbbdb29b44 \
                    rmd160  7d14a9767884180451359b899ec8741b42f6da5f
}

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 \
            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-libwww-perl port:p5-svn-simple port:p5-term-readkey
}

variant bash_completion {
    depends_run-append  port: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
    }
}

default_variants    +doc

livecheck.type          regex
livecheck.regex         {<div id="ver">v([0-9.]+)}
