blob: 2b61ff7cf8a5faabb7b043c5a9b4d97bf10034db (
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
|
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit autotools multilib-minimal toolchain-funcs
DESCRIPTION="\"M\"peg \"A\"udio \"D\"ecoder library"
HOMEPAGE="https://mad.sourceforge.net"
SRC_URI="mirror://sourceforge/mad/${P}.tar.gz"
LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
IUSE="debug static-libs"
DOCS=( CHANGES CREDITS README TODO VERSION )
MULTILIB_WRAPPED_HEADERS=(
/usr/include/mad.h
)
PATCHES=(
"${FILESDIR}"/${P}-cflags.patch
"${FILESDIR}"/${P}-cflags-O2.patch
"${FILESDIR}"/${P}-gcc44-mips-h-constraint-removal.patch
"${FILESDIR}"/${P}-CVE-2017-8372_CVE-2017-8373_CVE-2017-8374.patch
)
src_prepare() {
default
# bug 467002
sed -e 's/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/' -i configure.ac || die
eautoreconf
}
multilib_src_configure() {
# --enable-speed optimize for speed over accuracy
# --enable-accuracy optimize for accuracy over speed
# --enable-experimental enable code using the EXPERIMENTAL
# preprocessor define
local myconf=(
--enable-accuracy
$(use_enable debug debugging)
$(use_enable static-libs static)
)
# Fix for b0rked sound on sparc64 (maybe also sparc32?)
# default/approx is also possible, uses less cpu but sounds worse
use sparc && myconf+=( --enable-fpm=64bit )
[[ $(tc-arch) == "amd64" ]] && myconf+=( --enable-fpm=64bit )
[[ $(tc-arch) == "x86" ]] && myconf+=( --enable-fpm=intel )
[[ $(tc-arch) == "ppc" ]] && myconf+=( --enable-fpm=default )
[[ $(tc-arch) == "ppc64" ]] && myconf+=( --enable-fpm=64bit )
ECONF_SOURCE="${S}" econf "${myconf[@]}"
}
multilib_src_install() {
emake DESTDIR="${D}" install
# This file must be updated with each version update
insinto /usr/$(get_libdir)/pkgconfig
cp "${FILESDIR}/mad.pc" "${S}"
sed -i "s/%VERSION%/${PV}/g" "${S}/mad.pc"
doins "${S}/mad.pc"
# Use correct libdir in pkgconfig file
sed -e "s:^libdir.*:libdir=${EPREFIX}/usr/$(get_libdir):" \
-i "${ED}"/usr/$(get_libdir)/pkgconfig/mad.pc
}
multilib_src_install_all() {
einstalldocs
find "${D}" -name '*.la' -delete || die
}
|