summaryrefslogtreecommitdiff
path: root/meta-openembedded/meta-multimedia/recipes-multimedia/libopenmpt
diff options
context:
space:
mode:
authorBrad Bishop <bradleyb@fuzziesquirrel.com>2018-12-17 04:11:34 +0300
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2019-01-09 02:21:44 +0300
commit1a4b7ee28bf7413af6513fb45ad0d0736048f866 (patch)
tree79f6d8ea698cab8f2eaf4f54b793d2ca7a1451ce /meta-openembedded/meta-multimedia/recipes-multimedia/libopenmpt
parent5b9ede0403237c7dace972affa65cf64a1aadd0e (diff)
downloadopenbmc-1a4b7ee28bf7413af6513fb45ad0d0736048f866.tar.xz
reset upstream subtrees to yocto 2.6
Reset the following subtrees on thud HEAD: poky: 87e3a9739d meta-openembedded: 6094ae18c8 meta-security: 31dc4e7532 meta-raspberrypi: a48743dc36 meta-xilinx: c42016e2e6 Also re-apply backports that didn't make it into thud: poky: 17726d0 systemd-systemctl-native: handle Install wildcards meta-openembedded: 4321a5d libtinyxml2: update to 7.0.1 042f0a3 libcereal: Add native and nativesdk classes e23284f libcereal: Allow empty package 030e8d4 rsyslog: curl-less build with fmhttp PACKAGECONFIG 179a1b9 gtest: update to 1.8.1 Squashed OpenBMC subtree compatibility updates: meta-aspeed: Brad Bishop (1): aspeed: add yocto 2.6 compatibility meta-ibm: Brad Bishop (1): ibm: prepare for yocto 2.6 meta-ingrasys: Brad Bishop (1): ingrasys: set layer compatibility to yocto 2.6 meta-openpower: Brad Bishop (1): openpower: set layer compatibility to yocto 2.6 meta-phosphor: Brad Bishop (3): phosphor: set layer compatibility to thud phosphor: libgpg-error: drop patches phosphor: react to fitimage artifact rename Ed Tanous (4): Dropbear: upgrade options for latest upgrade yocto2.6: update openssl options busybox: remove upstream watchdog patch systemd: Rebase CONFIG_CGROUP_BPF patch Change-Id: I7b1fe71cca880d0372a82d94b5fd785323e3a9e7 Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Diffstat (limited to 'meta-openembedded/meta-multimedia/recipes-multimedia/libopenmpt')
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/libopenmpt/files/run-ptest9
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/libopenmpt/libopenmpt_0.3.10.bb104
2 files changed, 113 insertions, 0 deletions
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/libopenmpt/files/run-ptest b/meta-openembedded/meta-multimedia/recipes-multimedia/libopenmpt/files/run-ptest
new file mode 100644
index 000000000..84981b22c
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/libopenmpt/files/run-ptest
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+./libopenmpttest >/dev/null 2>&1
+
+if [ $? -eq 0 ]; then
+ echo "PASS: libopenmpttest"
+else
+ echo "FAIL: libopenmpttest"
+fi
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/libopenmpt/libopenmpt_0.3.10.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/libopenmpt/libopenmpt_0.3.10.bb
new file mode 100644
index 000000000..d14246f32
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/libopenmpt/libopenmpt_0.3.10.bb
@@ -0,0 +1,104 @@
+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 \
+"