* [Buildroot] [PATCH 1/1] package/libopenmpt: new package
@ 2024-07-13 13:31 Julien Olivain
2024-07-13 14:39 ` Thomas Petazzoni via buildroot
0 siblings, 1 reply; 2+ messages in thread
From: Julien Olivain @ 2024-07-13 13:31 UTC (permalink / raw)
To: buildroot; +Cc: Julien Olivain, Thomas Petazzoni
libopenmpt is a cross-platform C++ and C library to decode
tracked music files (modules) into a raw PCM audio stream.
openmpt123 is a cross-platform command-line or terminal
based module file player.
https://lib.openmpt.org/libopenmpt
Signed-off-by: Julien Olivain <ju.o@free.fr>
---
Patch tested on branch master at commit 42eae73 with commands:
utils/docker-run make check-package
...
0 warnings generated
utils/test-pkg -p libopenmpt
...
6 builds, 0 skipped, 0 build failed, 0 legal-info failed, 0 show-info failed
Note: I will post a runtime test later for that package...
---
DEVELOPERS | 1 +
package/Config.in | 1 +
package/libopenmpt/Config.in | 28 +++++++++
package/libopenmpt/libopenmpt.hash | 3 +
package/libopenmpt/libopenmpt.mk | 92 ++++++++++++++++++++++++++++++
5 files changed, 125 insertions(+)
create mode 100644 package/libopenmpt/Config.in
create mode 100644 package/libopenmpt/libopenmpt.hash
create mode 100644 package/libopenmpt/libopenmpt.mk
diff --git a/DEVELOPERS b/DEVELOPERS
index b66fda5fcb..46ef79c79b 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1770,6 +1770,7 @@ F: package/gnupg2/
F: package/highway/
F: package/kexec/
F: package/libjxl/
+F: package/libopenmpt/
F: package/mokutil/
F: package/octave/
F: package/ola/
diff --git a/package/Config.in b/package/Config.in
index 65d7981773..980ffaaa72 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1496,6 +1496,7 @@ menu "Audio/Sound"
source "package/libmad/Config.in"
source "package/libmodplug/Config.in"
source "package/libmpdclient/Config.in"
+ source "package/libopenmpt/Config.in"
source "package/libreplaygain/Config.in"
source "package/libsamplerate/Config.in"
source "package/libsidplay2/Config.in"
diff --git a/package/libopenmpt/Config.in b/package/libopenmpt/Config.in
new file mode 100644
index 0000000000..43a5802954
--- /dev/null
+++ b/package/libopenmpt/Config.in
@@ -0,0 +1,28 @@
+config BR2_PACKAGE_LIBOPENMPT
+ bool "libopenmpt"
+ # See: https://lib.openmpt.org/doc/dependencies.html
+ depends on BR2_INSTALL_LIBSTDCPP
+ depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7
+ depends on BR2_TOOLCHAIN_HAS_THREADS
+ help
+ libopenmpt is a cross-platform C++ and C library to decode
+ tracked music files (modules) into a raw PCM audio stream.
+
+ openmpt123 is a cross-platform command-line or terminal
+ based module file player.
+
+ https://lib.openmpt.org/libopenmpt
+
+if BR2_PACKAGE_LIBOPENMPT
+
+config BR2_PACKAGE_LIBOPENMPT_OPENMPT123
+ bool "openmpt123"
+ help
+ Install the openmpt123 command line tool.
+
+endif
+
+comment "libopenmpt needs a toolchain w/ threads, C++, gcc >= 7"
+ depends on !BR2_INSTALL_LIBSTDCPP || \
+ !BR2_TOOLCHAIN_GCC_AT_LEAST_7 || \
+ !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/libopenmpt/libopenmpt.hash b/package/libopenmpt/libopenmpt.hash
new file mode 100644
index 0000000000..df0b43096a
--- /dev/null
+++ b/package/libopenmpt/libopenmpt.hash
@@ -0,0 +1,3 @@
+# computed locally
+sha256 87778c8046a226c6cbfb114f4c8e3e27c121b7b3dccce5cb7de45899250274cc libopenmpt-0.7.8+release.autotools.tar.gz
+sha256 e3d7e76c6b441ddd9fff0a397e7b5e055a11678bd7c3b246a0ce13e352eb15e8 LICENSE
diff --git a/package/libopenmpt/libopenmpt.mk b/package/libopenmpt/libopenmpt.mk
new file mode 100644
index 0000000000..d07dc1c2fc
--- /dev/null
+++ b/package/libopenmpt/libopenmpt.mk
@@ -0,0 +1,92 @@
+################################################################################
+#
+# libopenmpt
+#
+################################################################################
+
+LIBOPENMPT_VERSION = 0.7.8
+LIBOPENMPT_SITE = https://lib.openmpt.org/files/libopenmpt/src
+LIBOPENMPT_SOURCE = libopenmpt-$(LIBOPENMPT_VERSION)+release.autotools.tar.gz
+LIBOPENMPT_LICENSE = BSD-3-Clause
+LIBOPENMPT_LICENSE_FILES = LICENSE
+LIBOPENMPT_DEPENDENCIES = host-pkgconf
+
+ifeq ($(BR2_PACKAGE_LIBOPENMPT_OPENMPT123),y)
+LIBOPENMPT_CONF_OPTS += --enable-openmpt123
+else
+LIBOPENMPT_CONF_OPTS += --disable-openmpt123
+endif
+
+ifeq ($(BR2_PACKAGE_FLAC),y)
+LIBOPENMPT_CONF_OPTS += --with-flac
+LIBOPENMPT_DEPENDENCIES += flac
+else
+LIBOPENMPT_CONF_OPTS += --without-flac
+endif
+
+ifeq ($(BR2_PACKAGE_LIBOGG),y)
+LIBOPENMPT_CONF_OPTS += --with-ogg
+LIBOPENMPT_DEPENDENCIES += libogg
+else
+LIBOPENMPT_CONF_OPTS += --without-ogg
+endif
+
+ifeq ($(BR2_PACKAGE_LIBSNDFILE),y)
+LIBOPENMPT_CONF_OPTS += --with-sndfile
+LIBOPENMPT_DEPENDENCIES += libsndfile
+else
+LIBOPENMPT_CONF_OPTS += --without-sndfile
+endif
+
+ifeq ($(BR2_PACKAGE_LIBVORBIS),y)
+LIBOPENMPT_CONF_OPTS += --with-vorbis --with-vorbisfile
+LIBOPENMPT_DEPENDENCIES += libvorbis
+else
+LIBOPENMPT_CONF_OPTS += --without-vorbis --without-vorbisfile
+endif
+
+ifeq ($(BR2_PACKAGE_MPG123),y)
+LIBOPENMPT_CONF_OPTS += --with-mpg123
+LIBOPENMPT_DEPENDENCIES += mpg123
+else
+LIBOPENMPT_CONF_OPTS += --without-mpg123
+endif
+
+ifeq ($(BR2_PACKAGE_PORTAUDIO),y)
+LIBOPENMPT_CONF_OPTS += --with-portaudio
+LIBOPENMPT_DEPENDENCIES += portaudio
+else
+LIBOPENMPT_CONF_OPTS += --without-portaudio
+endif
+
+ifeq ($(BR2_PACKAGE_PORTAUDIO_CXX),y)
+LIBOPENMPT_CONF_OPTS += --with-portaudiocpp
+# No need to add portaudio dependency, because this config already
+# depends on BR2_PACKAGE_PORTAUDIO. So the dependency has already been
+# added in the previous block.
+else
+LIBOPENMPT_CONF_OPTS += --without-portaudiocpp
+endif
+
+ifeq ($(BR2_PACKAGE_PULSEAUDIO),y)
+LIBOPENMPT_CONF_OPTS += --with-pulseaudio
+LIBOPENMPT_DEPENDENCIES += pulseaudio
+else
+LIBOPENMPT_CONF_OPTS += --without-pulseaudio
+endif
+
+ifeq ($(BR2_PACKAGE_SDL2),y)
+LIBOPENMPT_CONF_OPTS += --with-sdl2
+LIBOPENMPT_DEPENDENCIES += sdl2
+else
+LIBOPENMPT_CONF_OPTS += --without-sdl2
+endif
+
+ifeq ($(BR2_PACKAGE_ZLIB),y)
+LIBOPENMPT_CONF_OPTS += --with-zlib
+LIBOPENMPT_DEPENDENCIES += zlib
+else
+LIBOPENMPT_CONF_OPTS += --without-zlib
+endif
+
+$(eval $(autotools-package))
--
2.45.2
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-07-13 14:39 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-13 13:31 [Buildroot] [PATCH 1/1] package/libopenmpt: new package Julien Olivain
2024-07-13 14:39 ` Thomas Petazzoni via buildroot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.