SUMMARY = "C and C++ cross-platform library for decoding tracked music files (modules)" 
 | 
DESCRIPTION = "libopenmpt is a cross-platform C++ and C library to decode tracked \ 
 | 
music files (modules) into a raw PCM audio stream. It also comes with openmpt123, a \ 
 | 
cross-platform command-line or terminal based module file player, and libopenmpt_modplug, \ 
 | 
a wrapper around libopenmpt that provides an interface that is ABI compatile with \ 
 | 
libmodplug. libopenmpt is based on the player code of the OpenMPT project." 
 | 
HOMEPAGE = "https://lib.openmpt.org/libopenmpt/" 
 | 
SECTION = "libs" 
 | 
  
 | 
LICENSE = "BSD-3-Clause" 
 | 
LIC_FILES_CHKSUM = "file://LICENSE;md5=e804150573f149befef6c07e173f20c3" 
 | 
  
 | 
DEPENDS = "virtual/libiconv" 
 | 
  
 | 
SRC_URI = "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${PV}+release.autotools.tar.gz \ 
 | 
           file://run-ptest \ 
 | 
          " 
 | 
SRC_URI[md5sum] = "66bbc6fbb5f27a554cb145d805e9ef9d" 
 | 
SRC_URI[sha256sum] = "14a137b8d1a20e1b6a5e67cbc9467ab7e5e4e67d5aa38a247afc825685c53939" 
 | 
  
 | 
S = "${WORKDIR}/libopenmpt-${PV}+release.autotools" 
 | 
  
 | 
inherit autotools pkgconfig ptest 
 | 
  
 | 
PACKAGECONFIG ??= " \ 
 | 
    libopenmpt-modplug openmpt123 \ 
 | 
    ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \ 
 | 
    flac mpg123 ogg sndfile vorbis vorbisfile zlib \ 
 | 
    ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)} \ 
 | 
" 
 | 
  
 | 
# libopenmpt_modplug is a library that wraps libopenmpt calls into 
 | 
# functions that are ABI compatible with libmodplug. This allows for 
 | 
# using modplug headers and linking against libopenmpt_modplug 
 | 
# instead of against the original libmodplug library. 
 | 
# NOTE: The wrapper is compatible to the ABI from libmodplug version 
 | 
# 0.8.8 and newer. 
 | 
PACKAGECONFIG[libopenmpt-modplug] = "--enable-libopenmpt_modplug,--disable-libopenmpt_modplug" 
 | 
PACKAGECONFIG[openmpt123]         = "--enable-openmpt123,--disable-openmpt123" 
 | 
PACKAGECONFIG[tests]              = "--enable-tests,--disable-tests" 
 | 
  
 | 
# These packageconfigs affect openmpt123 
 | 
PACKAGECONFIG[flac]               = "--with-flac,--without-flac,flac" 
 | 
PACKAGECONFIG[mpg123]             = "--with-mpg123,--without-mpg123,mpg123" 
 | 
PACKAGECONFIG[ogg]                = "--with-ogg,--without-ogg,libogg" 
 | 
PACKAGECONFIG[portaudio]          = "--with-portaudio,--without-portaudio,portaudio-v19" 
 | 
PACKAGECONFIG[pulseaudio]         = "--with-pulseaudio,--without-pulseaudio,pulseaudio" 
 | 
PACKAGECONFIG[sdl]                = "--with-sdl,--without-sdl,virtual/libsdl" 
 | 
PACKAGECONFIG[sdl2]               = "--with-sdl2,--without-sdl2,virtual/libsdl2" 
 | 
PACKAGECONFIG[sndfile]            = "--with-sndfile,--without-sndfile,libsndfile1" 
 | 
PACKAGECONFIG[vorbis]             = "--with-vorbis,--without-vorbis,libvorbis" 
 | 
PACKAGECONFIG[vorbisfile]         = "--with-vorbisfile,--without-vorbisfile,libvorbis" 
 | 
PACKAGECONFIG[zlib]               = "--with-zlib,--without-zlib,zlib" 
 | 
  
 | 
# --disable-libmodplug is necessary, since otherwise we'd 
 | 
# have a collision with the libmodplug package, because of the 
 | 
# libmodplug.so file. (libmodplug.so from libopenmpt isintended 
 | 
# to be used as a drop-in replacement, and according to the 
 | 
# documentation, is not complete.) 
 | 
EXTRA_OECONF += " \ 
 | 
    --disable-doxygen-doc \ 
 | 
    --disable-examples \ 
 | 
    --disable-libmodplug \ 
 | 
    --without-portaudiocpp \ 
 | 
" 
 | 
  
 | 
do_compile_ptest() { 
 | 
    oe_runmake ${PARALLEL_MAKE} libopenmpttest 
 | 
} 
 | 
  
 | 
do_install_ptest() { 
 | 
    install -d ${D}${PTEST_PATH}/test 
 | 
    install -m 0755 ${B}/libopenmpttest ${D}${PTEST_PATH} 
 | 
    install -m 0644 ${S}/test/test.mptm ${D}${PTEST_PATH}/test 
 | 
    install -m 0644 ${S}/test/test.s3m ${D}${PTEST_PATH}/test 
 | 
    install -m 0644 ${S}/test/test.xm ${D}${PTEST_PATH}/test 
 | 
  
 | 
    install -d ${D}${PTEST_PATH}/libopenmpt 
 | 
    install -m 0644 ${S}/libopenmpt/libopenmpt_version.mk ${D}${PTEST_PATH}/libopenmpt 
 | 
} 
 | 
  
 | 
python __anonymous() { 
 | 
    packageconfig = (d.getVar("PACKAGECONFIG") or "").split() 
 | 
    if ("sdl" in packageconfig) and ("sdl2" in packageconfig): 
 | 
        bb.error("sdl and sdl2 packageconfigs cannot be both enabled") 
 | 
} 
 | 
  
 | 
PACKAGES =+ "${PN}-modplug ${PN}-openmpt123 ${PN}-openmpt123-doc" 
 | 
FILES:${PN}-modplug = "${libdir}/libopenmpt_modplug.so.*" 
 | 
FILES:${PN}-openmpt123 = "${bindir}/openmpt123" 
 | 
FILES:${PN}-openmpt123-doc = "${mandir}/man1/openmpt123*" 
 | 
  
 | 
# Since version 0.3, libopenmpt uses SemVer 2.0.0 versioning. 
 | 
# The SemVer versioning scheme is incompatible with Debian/Ubuntu 
 | 
# package version names. 
 | 
DEBIAN_NOAUTONAME:${PN} = "1" 
 | 
DEBIAN_NOAUTONAME:${PN}-modplug = "1" 
 | 
  
 | 
RDEPENDS:${PN}:libc-glibc = " \ 
 | 
    glibc-gconv-cp1252 \ 
 | 
    glibc-gconv-ibm437 \ 
 | 
    glibc-gconv-iso8859-1 \ 
 | 
    glibc-gconv-iso8859-15 \ 
 | 
" 
 |