# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4

PortSystem          1.0

name                mplayer-devel
conflicts           MPlayer

# svn info svn://svn.mplayerhq.hu/mplayer/trunk
# This is 2024.03.04. New series of commits, 2024.04.09, introduce breaking changes
# both in regard of FFMpeg API and C11 requirement.
# Later versions may potentially be broken or at least need some work.
version             38449

# https://git.videolan.org/?p=ffmpeg.git;a=shortlog
# 2025.05.28 in 6.1 branch.
set ffmpeg_branch   release/6.1
set ffmpeg_ver      f120f66838b04b41913d135f56b90792f85a33a6

revision            3
categories          multimedia audio
license             GPL-2+
maintainers         {jeremyhu @jeremyhu} openmaintainer

description         Versatile movie player - development version
long_description    ${name} plays most movie files in popular and less popular formats. \
                    This version tracks a recent upstream mplayer commit.

homepage            https://www.mplayerhq.hu

fetch.type          svn
depends_fetch-append \
                    path:bin/git:git
worksrcdir          trunk

fetch {
    system "svn export -r${version} --ignore-externals svn://svn.mplayerhq.hu/mplayer/trunk ${worksrcpath}/"

    # 10000 should be deep enough to find out checkout within a year
    # however, see https://trac.macports.org/ticket/57390
    system "git clone -b ${ffmpeg_branch} --depth 20000 git://git.videolan.org/ffmpeg.git ${worksrcpath}/ffmpeg"
    system "cd ${worksrcpath}/ffmpeg && git checkout -f ${ffmpeg_ver}"
}

# TODO: is this one needed?
# Fix i386 builds:
patchfiles          patch-mplayer-i386.diff

# Still needed.
# libao2/ao_coreaudio.c:176: error: 'kAudioFileEndOfFileError' undeclared (first use in this function)
patchfiles-append   patch-libao2.diff

depends_build-append \
                    path:bin/pkg-config:pkgconfig

if {${configure.build_arch} in [list i386 x86_64]} {
    depends_build-append \
                    port:yasm
}

depends_lib-append  port:aom \
                    port:bzip2 \
                    port:dav1d \
                    port:faac \
                    port:faad2 \
                    path:lib/pkgconfig/fontconfig.pc:fontconfig \
                    path:lib/pkgconfig/freetype2.pc:freetype \
                    port:fribidi \
                    path:lib/pkgconfig/gnutls.pc:gnutls \
                    port:lame \
                    port:libdv \
                    port:libiconv \
                    path:include/turbojpeg.h:libjpeg-turbo \
                    port:libmad \
                    port:libmng \
                    port:libpng \
                    port:libtheora \
                    port:libvorbis \
                    path:lib/pkgconfig/vpx.pc:libvpx \
                    port:libxml2 \
                    port:lzo2 \
                    port:ncurses \
                    port:openjpeg \
                    path:lib/libspeex.dylib:speex \
                    port:x264 \
                    port:XviD \
                    port:zlib

# https://trac.macports.org/ticket/70804
if {${os.platform} eq "darwin" && ${os.version} > 22} {
    configure.cflags-append -Wno-error=incompatible-function-pointer-types -Wno-error=int-conversion
}

configure.args      --cc=${configure.cc} \
                    --host-cc=${configure.cc} \
                    --enable-freetype \
                    --enable-menu

platform darwin powerpc {
    variant G4 conflicts G5 description "Optimize for G4" {
        configure.cflags-append \
                    -mtune=G4 -mcpu=G4
    }

    variant G5 conflicts G4 description "Optimize for G5" {
        # Only allow -mcpu=970 with old gcc 4.x. G5-specific codegen
        # has bitrotten and does not work in the modern gcc:
        # https://github.com/iains/gcc-14-branch/issues/24
        if {[string match gcc-4.* ${configure.compiler}]} {
            configure.cflags-append \
                    -mtune=970 -mcpu=970
        } else {
            configure.cflags-append \
                    -mtune=970
        }
    }
}

# TODO: if we properly support Linux or *BSD, these must be adjusted.
foreach option {

3dfx aa alsa apple-ir arts bl bluray caca cddb cdparanoia dart dga1 dga2 direct3d directfb \
directx dvb dvdnav dvdread dxr2 dxr3 enca esd fbdev ggi ggiwmh gif gui jack joystick kai kva \
ladspa liba52 libbs2b libdca libgsm libmpeg2 libnut lirc lircc live macosx-finder \
mga mpg123 musepack nas nemesi openal ossaudio pulse pvr radio radio-capture \
s3fb sdl sgiaudio smb sndio sunaudio svga tdfxfb tdfxvid toolame tv-bsdbt848 tv-dshow \
tv-v4l1 tv-v4l2 twolame v4l2 vcd vdpau vesa vidix vm vstream wii win32dll win32waveout \
x11 xf86keysym xinerama xmga xmms xshape xss xv xvmc xvr100 zr

} {
    configure.args-append --disable-${option}
}
