summaryrefslogtreecommitdiffstats
path: root/meta-multimedia/recipes-multimedia/libopenmpt/libopenmpt_0.6.2.bb
blob: a7b6b000761d200118033115f9a55a76d619f3e4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
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. 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=ae09d6164bdecb499183479fd32b66fb"

DEPENDS = "virtual/libiconv"

SRC_URI = "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${PV}+release.autotools.tar.gz \
           file://run-ptest \
          "
SRC_URI[md5sum] = "d21fb799695cbe10a1e9aeaea23ed708"
SRC_URI[sha256sum] = "50c0d62ff2d9afefa36cce9f29042cb1fb8d4f0b386b81a0fc7734f35e21e6b6"

S = "${WORKDIR}/libopenmpt-${PV}+release.autotools"

inherit autotools pkgconfig ptest

PACKAGECONFIG ??= " \
    openmpt123 \
    ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
    flac mpg123 ogg sndfile vorbis vorbisfile zlib \
    ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)} \
"

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[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"

EXTRA_OECONF += " \
    --disable-doxygen-doc \
    --disable-examples \
    --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}-openmpt123 ${PN}-openmpt123-doc"
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"

RDEPENDS:${PN}:libc-glibc = " \
    glibc-gconv-cp1252 \
    glibc-gconv-ibm437 \
    glibc-gconv-iso8859-1 \
    glibc-gconv-iso8859-15 \
"