summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 35a15601a0751a60f5d5dcd9106ab45b8ec5584b (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
# Maintainer: Jingbei Li <i@jingbei.lli>
pkgname='kaldi'
pkgdesc='Speech recognition research toolkit'
pkgver=5.2.r7501.97922a856
pkgrel=1
makedepends=('gcc5' 'git' 'wget' 'subversion')
depends=('python2' 'openblas-lapack')
optdepends=('cuda: For GPU support')
arch=('x86_64' 'i686')
url='https://github.com/kaldi-asr/kaldi'
license=('APACHE')
source=("${pkgname}::git+${url}"
"srilm.tgz::https://www.dropbox.com/s/41y27or8lco4fju/srilm-1.7.2.tar.gz?dl=1"
)
noextract=('srilm.tgz')
sha256sums=('SKIP'
'a528a778f881c679233f94d7b26d6f795129fa6009b32305c8ce769f66e223b4'
)

pkgver () {
	cd "${pkgname}"
	(
	set -o pipefail
	echo -n `cat src/.version`.
	git describe --long 2>/dev/null | sed 's/\([^-]*-g\)/r\1/;s/-/./g' ||
		printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
	)
}

prepare(){
	cd $srcdir/$pkgname
	find . -name '*.py' -exec sed '1s/python/python2/' -i {} \;

	if (pacman -Q cuda &> /dev/null); then
		msg2 "Compiling with CUDA support"
		_cuda_config_opts="--cudatk-dir=/opt/cuda"
	else
		msg2 "Compiling _without_ CUDA support"
	fi
}

build () {
	cd $srcdir/$pkgname/tools
	sed \
		-e '/^sclite_compiled/s/ sctk_configured//' \
		-i Makefile
	sed 's/^exit/# exit/' -i extras/check_dependencies.sh
	make CXX=g++-5 sph2pipe openfst sctk_configured

	sed '/^DEFS/s/ -Dsize_t=unsigned//' -i sctk/src/sclite/makefile
	make sclite

	CXX=g++-5 extras/install_irstlm.sh
	extras/install_kaldi_lm.sh
	chmod +rx kaldi_lm

	ln -sf $srcdir/srilm.tgz .
	extras/install_srilm.sh

	cd $srcdir/$pkgname/src
	CXX=g++-5 ./configure $_cuda_config_opts \
		--shared \
		--openblas-root=/usr \
		--threaded-math=yes
	make depend
	make
}

package () {
	cd $srcdir/$pkgname
	for i in "*.tar*" "*.c" "*.cc" "*.cu" "*.cpp" "*.o" "*.a" "*.lo" "*.la" "*.mk" "Makefile*" "makefile*" "*.bak" "*.log" "*.status" "*.~*"
	do
		find . -type f -name "$i" -exec rm -f {} \;
	done

	find . -name 'path.sh' -exec sed 's?^\(export KALDI_ROOT\)=.*$?\1=/opt/'$pkgname'?' -i {} \;

	rm tools/srilm.tgz
	rm tools/srilm/lm/src/Dependencies.i686-m64

	for i in `grep $srcdir . -rIl`
	do
		sed -i "s|$srcdir|/opt|g" $i
	done

	echo "export OPENFST=/opt/kaldi/$(find tools -type d -name 'openfst*')" >> tools/env.sh
	echo 'export LD_LIBRARY_PATH=${LD_LIBRARY_PATH:-}:${OPENFST}/lib' >> tools/env.sh

	mkdir -p $pkgdir/opt/$pkgname
	cp -rL src $pkgdir/opt/$pkgname
	cp -r misc egs tools $pkgdir/opt/$pkgname

	install -dm755 "$pkgdir"/etc/ld.so.conf.d/
	echo "/opt/$pkgname/src/lib" > "$pkgdir"/etc/ld.so.conf.d/$pkgname.conf
}