summaryrefslogtreecommitdiff
blob: 93796a07ec1db764053f85228e60526757f00087 (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
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/app-accessibility/speech-tools/speech-tools-2.0.95_beta.ebuild,v 1.3 2010/07/14 00:08:37 neurogeek Exp $

EAPI="2"

inherit eutils flag-o-matic toolchain-funcs

MY_P=${P/speech-/speech_}
MY_P=${MY_P/_beta/-beta}

DESCRIPTION="Speech tools for Festival Text to Speech engine"
HOMEPAGE="http://www.cstr.ed.ac.uk/projects/speech_tools/"
SRC_URI="http://www.festvox.org/packed/festival/${PV%_beta}/${MY_P}.tar.gz
	mirror://gentoo/${MY_P}-patches.tar.gz"
LICENSE="FESTIVAL BSD as-is"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd"
IUSE="esd nas X"

DEPEND="esd? ( media-sound/esound )
	nas? ( media-libs/nas )
	X? ( x11-libs/libX11
		x11-libs/libXt )
	!<app-accessibility/festival-1.96_beta
	!sys-power/powerman"

S="${WORKDIR}/speech_tools"

src_prepare() {
	EPATCH_SUFFIX="patch"
	epatch
	sed -i -e 's,{{HORRIBLELIBARCHKLUDGE}},"/usr/$(get_libdir)",' main/siod_main.cc
}

src_configure() {
	local CONFIG=config/config.in
	sed -i -e 's/@COMPILERTYPE@/gcc42/' ${CONFIG}
	if use esd; then
		sed -i -e "s/#.*\(INCLUDE_MODULES += ESD_AUDIO\)/\1/" ${CONFIG}
	fi
	if use nas; then
		sed -i -e "s/#.*\(INCLUDE_MODULES += NAS_AUDIO\)/\1/" ${CONFIG}
	fi
	if [ ! use X ]; then
		sed -i -e "s/-lX11 -lXt//" config/modules/esd_audio.mak
	fi
	econf || die
}

src_compile() {
	emake -j1 CC="$(tc-getCC)" CXX="$(tc-getCXX)" CC_OTHER_FLAGS="${CFLAGS}" \
		OPTIMISE_LINKFLAGS="${LDFLAGS}" || die "Compile failed"
}

src_install() {
	dolib.so lib/libest*.so*

	dodoc "${S}"/README
	dodoc "${S}"/lib/cstrutt.dtd

	insinto /usr/share/doc/${PF}
	doins -r lib/example_data

	insinto /usr/share/speech-tools
	doins -r config base_class

	insinto /usr/share/speech-tools/lib
	doins -r lib/siod

	cd include
	insinto /usr/include/speech-tools
	doins -r *
	dosym /usr/include/speech-tools /usr/share/speech-tools/include

	cd ../bin
	for file in *; do
		[ "${file}" = "Makefile" ] && continue
		dobin ${file}
		dstfile="${D}/usr/bin/${file}"
		sed -i -e "s:${S}/testsuite/data:/usr/share/speech-tools/testsuite:g" ${dstfile}
		sed -i -e "s:${S}/bin:/usr/$(get_libdir)/speech-tools:g" ${dstfile}
		sed -i -e "s:${S}/main:/usr/$(get_libdir)/speech-tools:g" ${dstfile}

		# This just changes LD_LIBRARY_PATH
		sed -i -e "s:${S}/lib:/usr/$(get_libdir):g" ${dstfile}
	done

	cd "${S}"
	exeinto /usr/$(get_libdir)/speech-tools
	for file in `find main -perm +100 -type f`; do
		doexe ${file}
	done

	#Rename to avoid file collisions. See bug #287983
	mv "${D}/usr/bin/dp" "${D}/usr/bin/speech-dp"
	#Remove /usr/bin/resynth as it is broken. See bug #253556
	rm "${D}/usr/bin/resynth"
}

pkg_postinst() {
	elog "The /usr/bin/dp wrapper script has been renamed to /usr/bin/speech-dp"
	elog "due to file collision with other programs."
	elog "See bug #287983 for more details"

	elog "The /usr/bin/resynth program has been removed since it is broken"
	elog "See bug #253556 for more details"
}