summaryrefslogtreecommitdiff
blob: 835c173da37904c0515b1ff3a6c355850ff6655a (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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit autotools flag-o-matic multilib-minimal toolchain-funcs

DESCRIPTION="Flite text to speech engine"
HOMEPAGE="http://www.festvox.org/flite/ https://github.com/festvox/flite"
SRC_URI="https://github.com/festvox/flite/archive/v${PV}.tar.gz -> ${P}.tar.gz
	voices? (
		http://www.festvox.org/${PN}/packed/${P}/voices/cmu_indic_ben_rm.flitevox
		http://www.festvox.org/${PN}/packed/${P}/voices/cmu_indic_guj_ad.flitevox
		http://www.festvox.org/${PN}/packed/${P}/voices/cmu_indic_guj_dp.flitevox
		http://www.festvox.org/${PN}/packed/${P}/voices/cmu_indic_guj_kt.flitevox
		http://www.festvox.org/${PN}/packed/${P}/voices/cmu_indic_hin_ab.flitevox
		http://www.festvox.org/${PN}/packed/${P}/voices/cmu_indic_kan_plv.flitevox
		http://www.festvox.org/${PN}/packed/${P}/voices/cmu_indic_mar_aup.flitevox
		http://www.festvox.org/${PN}/packed/${P}/voices/cmu_indic_mar_slp.flitevox
		http://www.festvox.org/${PN}/packed/${P}/voices/cmu_indic_pan_amp.flitevox
		http://www.festvox.org/${PN}/packed/${P}/voices/cmu_indic_tam_sdr.flitevox
		http://www.festvox.org/${PN}/packed/${P}/voices/cmu_indic_tel_kpn.flitevox
		http://www.festvox.org/${PN}/packed/${P}/voices/cmu_indic_tel_sk.flitevox
		http://www.festvox.org/${PN}/packed/${P}/voices/cmu_indic_tel_ss.flitevox
		http://www.festvox.org/${PN}/packed/${P}/voices/cmu_us_aew.flitevox
		http://www.festvox.org/${PN}/packed/${P}/voices/cmu_us_ahw.flitevox
		http://www.festvox.org/${PN}/packed/${P}/voices/cmu_us_aup.flitevox
		http://www.festvox.org/${PN}/packed/${P}/voices/cmu_us_awb.flitevox
		http://www.festvox.org/${PN}/packed/${P}/voices/cmu_us_axb.flitevox
		http://www.festvox.org/${PN}/packed/${P}/voices/cmu_us_bdl.flitevox
		http://www.festvox.org/${PN}/packed/${P}/voices/cmu_us_clb.flitevox
		http://www.festvox.org/${PN}/packed/${P}/voices/cmu_us_eey.flitevox
		http://www.festvox.org/${PN}/packed/${P}/voices/cmu_us_fem.flitevox
		http://www.festvox.org/${PN}/packed/${P}/voices/cmu_us_gka.flitevox
		http://www.festvox.org/${PN}/packed/${P}/voices/cmu_us_jmk.flitevox
		http://www.festvox.org/${PN}/packed/${P}/voices/cmu_us_ksp.flitevox
		http://www.festvox.org/${PN}/packed/${P}/voices/cmu_us_ljm.flitevox
		http://www.festvox.org/${PN}/packed/${P}/voices/cmu_us_lnh.flitevox
		http://www.festvox.org/${PN}/packed/${P}/voices/cmu_us_rms.flitevox
		http://www.festvox.org/${PN}/packed/${P}/voices/cmu_us_rxr.flitevox
		http://www.festvox.org/${PN}/packed/${P}/voices/cmu_us_slp.flitevox
		http://www.festvox.org/${PN}/packed/${P}/voices/cmu_us_slt.flitevox
	)"

LICENSE="BSD freetts public-domain regexp-UofT BSD-2"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~ia64 ~loong ~mips ppc ppc64 ~riscv sparc x86"
IUSE="alsa oss pulseaudio test voices"
REQUIRED_USE="test? ( alsa )"
RESTRICT="!test? ( test )"

DEPEND="
	pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
	!pulseaudio? ( alsa? ( >=media-libs/alsa-lib-1.0.27.2[${MULTILIB_USEDEP}] ) )
"
RDEPEND="${DEPEND}"

PATCHES=(
	"${FILESDIR}"/${PN}-1.4-audio-interface.patch
	"${FILESDIR}"/${PN}-2.2-backport-pr30.patch
	"${FILESDIR}"/${PN}-2.2-make-4.4.patch
)

get_audio() {
	if use pulseaudio; then
		echo pulseaudio
	elif use alsa; then
		echo alsa
	elif use oss; then
		echo oss
	else
		echo none
	fi
}

pkg_pretend() {
	[[ ${MERGE_TYPE} != binary ]] && use test && tc-check-openmp
}

pkg_setup() {
	[[ ${MERGE_TYPE} != binary ]] && use test && tc-check-openmp
}

src_unpack() {
	for file in ${A}; do
		case "${file}" in
			*.flitevox)
				cp -av "${DISTDIR}/${file}" "${WORKDIR}/" || die "Unable to copy ${file}"
				;;
			*)
				unpack "${file}"
				;;
		esac
	done
}

src_prepare() {
	default
	sed -i main/Makefile \
		-e '/-rpath/s|$(LIBDIR)|$(INSTALLLIBDIR)|g' \
		|| die
	mv configure.{in,ac} || die
	eautoreconf

	# custom makefiles
	multilib_copy_sources
}

src_configure() {
	# lto-type-mismatch
	filter-lto

	multilib-minimal_src_configure
}

multilib_src_configure() {
	local myconf=(
		--enable-shared
		--with-audio=$(get_audio)
	)
	econf "${myconf[@]}"
}

multilib_src_compile() {
	emake -j1 CC="$(tc-getCC)" CFLAGS="${CFLAGS}"
}

multilib_src_install_all() {
	dodoc ACKNOWLEDGEMENTS README.md

	rm -rf "${D}"/usr/lib*/*.a

	if use voices; then
		insinto /usr/share/flite
		doins "${WORKDIR}"/*.flitevox
	fi
}

pkg_postinst() {
	if [[ "$(get_audio)" = "none" ]]; then
		ewarn "flite is built without audio support. Enable the"
		ewarn "alsa, oss, or pulseaudio USE flags for audio support."
	fi
}