1*4882a593SmuzhiyunSUMMARY = "C and C++ cross-platform library for decoding tracked music files (modules)"
2*4882a593SmuzhiyunDESCRIPTION = "libopenmpt is a cross-platform C++ and C library to decode tracked \
3*4882a593Smuzhiyunmusic files (modules) into a raw PCM audio stream. It also comes with openmpt123, a \
4*4882a593Smuzhiyuncross-platform command-line or terminal based module file player. libopenmpt is based \
5*4882a593Smuzhiyunon the player code of the OpenMPT project."
6*4882a593SmuzhiyunHOMEPAGE = "https://lib.openmpt.org/libopenmpt/"
7*4882a593SmuzhiyunSECTION = "libs"
8*4882a593Smuzhiyun
9*4882a593SmuzhiyunLICENSE = "BSD-3-Clause"
10*4882a593SmuzhiyunLIC_FILES_CHKSUM = "file://LICENSE;md5=ae09d6164bdecb499183479fd32b66fb"
11*4882a593Smuzhiyun
12*4882a593SmuzhiyunDEPENDS = "virtual/libiconv"
13*4882a593Smuzhiyun
14*4882a593SmuzhiyunSRC_URI = "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${PV}+release.autotools.tar.gz \
15*4882a593Smuzhiyun           file://run-ptest \
16*4882a593Smuzhiyun          "
17*4882a593SmuzhiyunSRC_URI[md5sum] = "d21fb799695cbe10a1e9aeaea23ed708"
18*4882a593SmuzhiyunSRC_URI[sha256sum] = "50c0d62ff2d9afefa36cce9f29042cb1fb8d4f0b386b81a0fc7734f35e21e6b6"
19*4882a593Smuzhiyun
20*4882a593SmuzhiyunS = "${WORKDIR}/libopenmpt-${PV}+release.autotools"
21*4882a593Smuzhiyun
22*4882a593Smuzhiyuninherit autotools pkgconfig ptest
23*4882a593Smuzhiyun
24*4882a593SmuzhiyunPACKAGECONFIG ??= " \
25*4882a593Smuzhiyun    openmpt123 \
26*4882a593Smuzhiyun    ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
27*4882a593Smuzhiyun    flac mpg123 ogg sndfile vorbis vorbisfile zlib \
28*4882a593Smuzhiyun    ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)} \
29*4882a593Smuzhiyun"
30*4882a593Smuzhiyun
31*4882a593SmuzhiyunPACKAGECONFIG[openmpt123]         = "--enable-openmpt123,--disable-openmpt123"
32*4882a593SmuzhiyunPACKAGECONFIG[tests]              = "--enable-tests,--disable-tests"
33*4882a593Smuzhiyun
34*4882a593Smuzhiyun# These packageconfigs affect openmpt123
35*4882a593SmuzhiyunPACKAGECONFIG[flac]               = "--with-flac,--without-flac,flac"
36*4882a593SmuzhiyunPACKAGECONFIG[mpg123]             = "--with-mpg123,--without-mpg123,mpg123"
37*4882a593SmuzhiyunPACKAGECONFIG[ogg]                = "--with-ogg,--without-ogg,libogg"
38*4882a593SmuzhiyunPACKAGECONFIG[portaudio]          = "--with-portaudio,--without-portaudio,portaudio-v19"
39*4882a593SmuzhiyunPACKAGECONFIG[pulseaudio]         = "--with-pulseaudio,--without-pulseaudio,pulseaudio"
40*4882a593SmuzhiyunPACKAGECONFIG[sdl2]               = "--with-sdl2,--without-sdl2,virtual/libsdl2"
41*4882a593SmuzhiyunPACKAGECONFIG[sndfile]            = "--with-sndfile,--without-sndfile,libsndfile1"
42*4882a593SmuzhiyunPACKAGECONFIG[vorbis]             = "--with-vorbis,--without-vorbis,libvorbis"
43*4882a593SmuzhiyunPACKAGECONFIG[vorbisfile]         = "--with-vorbisfile,--without-vorbisfile,libvorbis"
44*4882a593SmuzhiyunPACKAGECONFIG[zlib]               = "--with-zlib,--without-zlib,zlib"
45*4882a593Smuzhiyun
46*4882a593SmuzhiyunEXTRA_OECONF += " \
47*4882a593Smuzhiyun    --disable-doxygen-doc \
48*4882a593Smuzhiyun    --disable-examples \
49*4882a593Smuzhiyun    --without-portaudiocpp \
50*4882a593Smuzhiyun"
51*4882a593Smuzhiyun
52*4882a593Smuzhiyundo_compile_ptest() {
53*4882a593Smuzhiyun    oe_runmake ${PARALLEL_MAKE} libopenmpttest
54*4882a593Smuzhiyun}
55*4882a593Smuzhiyun
56*4882a593Smuzhiyundo_install_ptest() {
57*4882a593Smuzhiyun    install -d ${D}${PTEST_PATH}/test
58*4882a593Smuzhiyun    install -m 0755 ${B}/libopenmpttest ${D}${PTEST_PATH}
59*4882a593Smuzhiyun    install -m 0644 ${S}/test/test.mptm ${D}${PTEST_PATH}/test
60*4882a593Smuzhiyun    install -m 0644 ${S}/test/test.s3m ${D}${PTEST_PATH}/test
61*4882a593Smuzhiyun    install -m 0644 ${S}/test/test.xm ${D}${PTEST_PATH}/test
62*4882a593Smuzhiyun
63*4882a593Smuzhiyun    install -d ${D}${PTEST_PATH}/libopenmpt
64*4882a593Smuzhiyun    install -m 0644 ${S}/libopenmpt/libopenmpt_version.mk ${D}${PTEST_PATH}/libopenmpt
65*4882a593Smuzhiyun}
66*4882a593Smuzhiyun
67*4882a593SmuzhiyunPACKAGES =+ "${PN}-openmpt123 ${PN}-openmpt123-doc"
68*4882a593SmuzhiyunFILES:${PN}-openmpt123 = "${bindir}/openmpt123"
69*4882a593SmuzhiyunFILES:${PN}-openmpt123-doc = "${mandir}/man1/openmpt123*"
70*4882a593Smuzhiyun
71*4882a593Smuzhiyun# Since version 0.3, libopenmpt uses SemVer 2.0.0 versioning.
72*4882a593Smuzhiyun# The SemVer versioning scheme is incompatible with Debian/Ubuntu
73*4882a593Smuzhiyun# package version names.
74*4882a593SmuzhiyunDEBIAN_NOAUTONAME:${PN} = "1"
75*4882a593Smuzhiyun
76*4882a593SmuzhiyunRDEPENDS:${PN}:libc-glibc = " \
77*4882a593Smuzhiyun    glibc-gconv-cp1252 \
78*4882a593Smuzhiyun    glibc-gconv-ibm437 \
79*4882a593Smuzhiyun    glibc-gconv-iso8859-1 \
80*4882a593Smuzhiyun    glibc-gconv-iso8859-15 \
81*4882a593Smuzhiyun"
82