summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2023-05-15 07:42:42 +0100
committerSam James <sam@gentoo.org>2023-05-15 07:47:30 +0100
commitc6e05e88a81cd19c57175f4dc91e9dec0befc227 (patch)
treef2b199b1ebbbe46b2a4df8ada8765ceea33e90d0 /media-libs/speex
parentmedia-libs/speex: add Valgrind annotation support (diff)
downloadgentoo-c6e05e88a81cd19c57175f4dc91e9dec0befc227.tar.gz
gentoo-c6e05e88a81cd19c57175f4dc91e9dec0befc227.tar.bz2
gentoo-c6e05e88a81cd19c57175f4dc91e9dec0befc227.zip
media-libs/speex: modernise ebuild; fix configure issue; simplify multilib
- Modernise ebuild (use an array etc for econf) - Backport an upstream patch to fix configure typo for C99 VLA detection - Simplify/speed up multilib build by not building thrown-away utilities (only needed for native ABI). Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'media-libs/speex')
-rw-r--r--media-libs/speex/files/speex-1.2.1-vla-detection.patch27
-rw-r--r--media-libs/speex/speex-1.2.1-r1.ebuild81
2 files changed, 108 insertions, 0 deletions
diff --git a/media-libs/speex/files/speex-1.2.1-vla-detection.patch b/media-libs/speex/files/speex-1.2.1-vla-detection.patch
new file mode 100644
index 000000000000..1b3826f8b25e
--- /dev/null
+++ b/media-libs/speex/files/speex-1.2.1-vla-detection.patch
@@ -0,0 +1,27 @@
+https://gitlab.xiph.org/xiph/speex/-/commit/5b036b2ca5e27004502e67ee20490a16f5e68aa1
+
+From 5b036b2ca5e27004502e67ee20490a16f5e68aa1 Mon Sep 17 00:00:00 2001
+From: Kai Pastor <dg0yt@darc.de>
+Date: Wed, 24 Aug 2022 20:14:31 +0200
+Subject: [PATCH] Fix vla detection
+
+Signed-off-by: Tristan Matthews <tmatth@videolan.org>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index d94c2feb..b8131482 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -37,7 +37,7 @@ AC_C_RESTRICT
+
+
+ AC_MSG_CHECKING(for C99 variable-size arrays)
+-+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[
++AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[
+ int foo;
+ foo = 10;
+ int array[foo];
+--
+GitLab
diff --git a/media-libs/speex/speex-1.2.1-r1.ebuild b/media-libs/speex/speex-1.2.1-r1.ebuild
new file mode 100644
index 000000000000..c966d61c2a6e
--- /dev/null
+++ b/media-libs/speex/speex-1.2.1-r1.ebuild
@@ -0,0 +1,81 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic multilib-minimal
+
+MY_P=${P/_}
+MY_P=${MY_P/_p/.}
+
+DESCRIPTION="Audio compression format designed for speech"
+HOMEPAGE="https://www.speex.org/"
+SRC_URI="https://downloads.xiph.org/releases/speex/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~x86-solaris"
+IUSE="cpu_flags_arm_v4 cpu_flags_arm_v5 cpu_flags_arm_v6 cpu_flags_x86_sse utils valgrind +vbr"
+
+RDEPEND="
+ utils? (
+ media-libs/libogg:=
+ media-libs/speexdsp[${MULTILIB_USEDEP}]
+ )"
+DEPEND="
+ ${RDEPEND}
+ valgrind? ( dev-util/valgrind )
+"
+BDEPEND="virtual/pkgconfig"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.2.0-configure.patch
+ "${FILESDIR}"/${P}-vla-detection.patch
+)
+
+src_prepare() {
+ default
+
+ sed -i \
+ -e 's:noinst_PROGRAMS:check_PROGRAMS:' \
+ libspeex/Makefile.am || die
+
+ eautoreconf
+}
+
+multilib_src_configure() {
+ append-lfs-flags
+
+ local myeconfargs=(
+ $(multilib_native_use_enable valgrind)
+ $(use_enable cpu_flags_x86_sse sse)
+ $(use_enable vbr)
+ $(multilib_native_use_with utils speexdsp)
+ $(multilib_native_use_enable utils binaries)
+ )
+
+ local FIXED_ARG="--disable-fixed-point"
+ local ARM4_ARG="--disable-arm4-asm"
+ local ARM5_ARG="--disable-arm5e-asm"
+
+ if use arm && ! use cpu_flags_arm_v6; then
+ FIXED_ARG="--enable-fixed-point"
+
+ if use cpu_flags_arm_v5; then
+ ARM5_ARG="--enable-arm5e-asm"
+ elif use cpu_flags_arm_v4; then
+ ARM4_ARG="--enable-arm4-asm"
+ fi
+ fi
+
+ myeconfargs+=( ${FIXED_ARG} ${ARM4_ARG} ${ARM5_ARG} )
+
+ ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
+}
+
+multilib_src_install_all() {
+ einstalldocs
+ find "${ED}" -name '*.la' -type f -delete || die
+}