# -*- 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 115783 2014-01-11 05:58:19Z larryv@macports.org $

PortSystem          1.0
PortGroup           python 1.0

name                HandBrake
version             0.9.8
platforms           macosx
categories          aqua multimedia
maintainers         nomaintainer
license             GPL-2

description         The open source video transcoder
long_description    HandBrake is a tool for converting video from \
                    nearly any format to a selection of modern, \
                    widely supported codecs.
homepage            http://handbrake.fr/

depends_build       port:autoconf \
                    port:automake \
                    port:libtool \
                    port:yasm

pre-fetch {
    if {${os.platform} eq "darwin" && ${os.major} < 10} {
        ui_error "${name} ${version} requires OS X 10.6 or greater."
        return -code error "incompatible OS X version"
    }
}

use_bzip2           yes
master_sites        http://handbrake.fr/rotation.php?file=${distname}${extract.suffix}&dummy=:src \
                    http://download.handbrake.fr/handbrake/contrib/:contrib
distfiles           ${distname}${extract.suffix}:src \
                    a52dec-0.7.4.tar.gz:contrib \
                    faac-1.28.tar.gz:contrib \
                    faad2-2.7.tar.gz:contrib \
                    ffmpeg-v0.7-1696-gcae4f4b.tar.bz2:contrib \
                    fontconfig-2.8.0.tar.gz:contrib \
                    freetype-2.4.7.tar.bz2:contrib \
                    fribidi-0.19.2.tar.gz:contrib \
                    lame-3.98.tar.gz:contrib \
                    libass-0.10.0-1.tar.gz:contrib \
                    libbluray-0.0.1-pre-213-ga869da8.tar.gz:contrib \
                    libdca-r81-strapped.tar.gz:contrib \
                    libdvdnav-svn1168.tar.gz:contrib \
                    libdvdread-svn1168.tar.gz:contrib \
                    libmkv-0.6.5-0-g82075ae.tar.gz:contrib \
                    libogg-1.3.0.tar.gz:contrib \
                    libsamplerate-0.1.4.tar.gz:contrib \
                    libtheora-1.1.0.tar.bz2:contrib \
                    libvorbis-aotuv_b6.03.tar.bz2:contrib \
                    libxml2-2.7.7.tar.gz:contrib \
                    mp4v2-trunk-r355.tar.bz2:contrib \
                    mpeg2dec-0.5.1.tar.gz:contrib \
                    x264-r2146-bcd41db.tar.gz:contrib

checksums           HandBrake-0.9.8.tar.bz2 \
                        rmd160  7392fa8783f8b114bf0cdc4adc6b96d148f75e09 \
                        sha256  dba75a9ff772e419c01d75532c1bf0d7253e73d7ead184eee755cd4c133dc798 \
                    a52dec-0.7.4.tar.gz \
                        rmd160  5f8ff682a43ffdafdb88a4231bfa64bb40f138d8 \
                        sha256  54981ab08fc09a675b9924372cf0cca5aa5363b918c4c19065c2d40e2858be47 \
                    faac-1.28.tar.gz \
                        rmd160  03902393488f04223aabdc804bfe77bb32a61c94 \
                        sha256  c5141199f4cfb17d749c36ba8cfe4b25f838da67c22f0fec40228b6b9c3d19df \
                    faad2-2.7.tar.gz \
                        rmd160  3f0ca461e2953014d5b17edccb3337767d478b8d \
                        sha256  ee26ed1e177c0cd8fa8458a481b14a0b24ca0b51468c8b4c8b676fd3ceccd330 \
                    ffmpeg-v0.7-1696-gcae4f4b.tar.bz2 \
                        rmd160  351d04575a50c042fe042c85b1feccd045a8804e \
                        sha256  f39b2ea8f47db9c84c9bb091707312cd19b927d8f4a957c20222add1a5dd2497 \
                    fribidi-0.19.2.tar.gz \
                        rmd160  4fafb4b3140bbbcf4c2c58c714b02db2d71e5491 \
                        sha256  49cf91586e48b52fe25872ff66c1da0dff0daac2593f9f300e2af12f44f64177 \
                    fontconfig-2.8.0.tar.gz \
                        rmd160  fefee412cad4fa71b573e997e14f1df12f439be2 \
                        sha256  fa2a1c6eea654d9fce7a4b1220f10c99cdec848dccaf1625c01f076b31382335 \
                    freetype-2.4.7.tar.bz2 \
                        rmd160  48abfcd4546cbd6626796ab121252e804ddcc6d8 \
                        sha256  ba22620479954582371286268ef75e6e932c0270ee67d6797bbf3ed9d31a5d77 \
                    lame-3.98.tar.gz \
                        rmd160  c10c20128622e16f9cac3d346bea8e390e4bfdc5 \
                        sha256  40235e84dfe4760ad3f352590a64b7bda1502a386c97d06229df356426e37686 \
                    libass-0.10.0-1.tar.gz \
                        rmd160  da29a27a4ae107629d0ea6dd7ec21f1d36167b16 \
                        sha256  a0c652f4a5c1bfd58cd47ff627fff2dfbd471b40f765aa96fd1b251c0058b867 \
                    libbluray-0.0.1-pre-213-ga869da8.tar.gz \
                        rmd160  77ea3b642fa1b58fe3acef32ee457173586ed403 \
                        sha256  4aa7127201a5d3d4148d99c37c7701ede6e0707456dacc8a59464dc68e231b76 \
                    libdca-r81-strapped.tar.gz \
                        rmd160  f8af6ac0df89e221d0b95caf68ee3aa3904ab178 \
                        sha256  ab2519af6c2f12411a2bd674b83615af9b0d5fb09f28ad5dab714ea1bfab9df1 \
                    libdvdnav-svn1168.tar.gz \
                        rmd160  9628b3cf9cf29bf617047da6c387552d35de5e3d \
                        sha256  7cf4ff6ab0b5d3db3c300fc3cdb24e1ad59f22dd90352df075a604bc698d01c7 \
                    libdvdread-svn1168.tar.gz \
                        rmd160  25d1460a175e4dedb0c463d0b2a9f1c826238c80 \
                        sha256  a489b618962e31a2b151b2e6d7b0c3fcb42cccc196ec7cb352c559898c3f1f1e \
                    libmkv-0.6.5-0-g82075ae.tar.gz \
                        rmd160  00b9ec85c000eae76349fb4e0a7176daf36b4e0d \
                        sha256  7314a296c68f42b826164074a96e247e52d8ef9287c21ebc5fe1bf9e73643e97 \
                    libogg-1.3.0.tar.gz \
                        rmd160  143fa1639ee2175a6609f32287414d6b23deea6f \
                        sha256  a8de807631014615549d2356fd36641833b8288221cea214f8a72750efe93780 \
                    libsamplerate-0.1.4.tar.gz \
                        rmd160  b2ac47d592702a410d5524e1550251c0e75f1879 \
                        sha256  4b4af3ecaee05c8875a9b113c6a2f816f06f283fb882914e57b21c0b08b67b75 \
                    libtheora-1.1.0.tar.bz2 \
                        rmd160  c89c7d0622a89dbf2fcb5e6cf00c7e1bae42b0da \
                        sha256  74be9fe9f85d18c45bdcbb018cebf12c74e2234aeecb4d4c4cb92d80bdd287e2 \
                    libvorbis-aotuv_b6.03.tar.bz2 \
                        rmd160  6e25b9b6545b2e568038349fafe559999b9c3387 \
                        sha256  95455420f07e4b3abdf32bda9f5921e9ed3f1afdc3739098dc090150a42fd7fd \
                    libxml2-2.7.7.tar.gz \
                        rmd160  9f72c778c3e9e348a68eada0cf624c012658c085 \
                        sha256  af5b781418ba4fff556fa43c50086658ea8a2f31909c2b625c2ce913a1d9eb68 \
                    mp4v2-trunk-r355.tar.bz2 \
                        rmd160  cc942dd7f20bb943cccfd9443694ebbd63558818 \
                        sha256  5b7d4e62df506b1246463da82cc2f02415eb462e6ccd5848f98f5cdcfc1f3d4f \
                    mpeg2dec-0.5.1.tar.gz \
                        rmd160  3986798a30b33e689b1d7c5390380c13b74f8c76 \
                        sha256  161539061aa89864968a5150ed6c6a028a830c4868f7dd7c500732baef47fb71 \
                    x264-r2146-bcd41db.tar.gz \
                        rmd160  9747178126c529c4bc807de356b57c077c95285b \
                        sha256  7b3d0ad309426ad49ff21df4d2ee5553b5769bc2bf2b7ae50f37f5fc72d190b1

variant python26 conflicts python27 description {Use Python 2.6} {
    python.default_version 26
}

variant python27 conflicts python26 description {Use Python 2.7} {
    python.default_version 27
}

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

extract.only        ${distname}${extract.suffix}
post-extract {
    file mkdir ${worksrcpath}/download
    foreach distfile ${distfiles} {
        if {[regexp {^(.+):([^:]+)} ${distfile} -> distfilename distfiletag]} {
            if {${distfiletag} == "contrib"} {
                copy ${distpath}/${distfilename} ${worksrcpath}/download
            }
        }
    }

    # make mp4v2 build with clang, see
    # http://code.google.com/p/mp4v2/issues/detail?id=80
    file copy ${filespath}/mp4v2-r355-clang-compatibility-src-bmff-typebmff.cpp.patch \
        ${worksrcpath}/contrib/mp4v2/A01-clang-compatibility.patch
    file copy ${filespath}/mp4v2-r355-clang-compatibility-src-itmf-type.cpp.patch \
        ${worksrcpath}/contrib/mp4v2/A02-clang-compatibility.patch
    # make ffmpeg build with jack support on OS X, see
    # http://ffmpeg.org/trac/ffmpeg/ticket/43
    file copy ${filespath}/ffmpeg-jack-osx.patch \
        ${worksrcpath}/contrib/ffmpeg/A06-jack-osx.patch

    # Fix missing <Carbon.h>
    file copy ${filespath}/libsamplerate-carbon.patch \
        ${worksrcpath}/contrib/libsamplerate/A01-libsamplerate-carbon.patch
}

patchfiles          missing-delegate.patch

# the Python PortGroup disables configure, we still want to use it, though
use_configure       yes
pre-configure {
    # this needs to be set in a phase, since setting it without a phase will not
    # give the correct python version selected by the variants
    configure.cmd   ${python.bin} make/configure.py
}
configure.pre_args
configure.args      --fetch=curl \
                    --curl=false \
                    --arch=${configure.build_arch} \
                    --gcc=${configure.cc}

# +universal would be possible, but not implemented yet
# see ${worksrcpath}/doc/BUILD-Mac for details
universal_variant   no

build.cmd           [portbuild::build_getmaketype]
build.dir           ${worksrcpath}/build
build.target

destroot {
    file copy ${worksrcpath}/build/xroot/${name}.app \
        ${destroot}${applications_dir}/${name}.app
}

livecheck.url       http://sourceforge.net/projects/handbrake/files/
livecheck.regex     "handbrake\/files\/(\\d+(?:\\.\\d+)*)"
