commit:     884605a42b33aeec4a6f05f8f0ac3dc8a60f325d
Author:     Pavel Denisov <pavel.a.denisov <AT> gmail <DOT> com>
AuthorDate: Sun Apr 23 11:35:22 2017 +0000
Commit:     Christoph Junghans <junghans <AT> gentoo <DOT> org>
CommitDate: Sun Apr 23 11:35:22 2017 +0000
URL:        https://gitweb.gentoo.org/proj/sci.git/commit/?id=884605a4

sci-misc/kaldi: Version bump (#747)

Adopt the version scheme introduced by upstream
Add double-precision USE flag

Package-Manager: Portage-2.3.4, Repoman-2.3.2

 sci-misc/kaldi/files/Makefile.0d5e4b1.patch        |  45 +++++++
 .../kaldi/files/default_rules.mk.96eec2b.patch     |  30 +++++
 sci-misc/kaldi/kaldi-0_p20151106.ebuild            | 124 -----------------
 sci-misc/kaldi/kaldi-5.1.65.ebuild                 | 146 +++++++++++++++++++++
 sci-misc/kaldi/metadata.xml                        |   3 +
 5 files changed, 224 insertions(+), 124 deletions(-)

diff --git a/sci-misc/kaldi/files/Makefile.0d5e4b1.patch 
b/sci-misc/kaldi/files/Makefile.0d5e4b1.patch
new file mode 100644
index 000000000..80b9862c6
--- /dev/null
+++ b/sci-misc/kaldi/files/Makefile.0d5e4b1.patch
@@ -0,0 +1,45 @@
+--- src/Makefile.orig  2017-03-03 01:33:22.000000000 +0100
++++ src/Makefile       2017-03-03 18:06:59.912864196 +0100
+@@ -32,7 +32,6 @@
+ # Reset the default goal, so that the all target will become default
+ .DEFAULT_GOAL :=
+ all: 
+-      $(MAKE) checkversion 
+       $(MAKE) kaldi.mk 
+       $(MAKE) mklibdir
+       $(MAKE) subdirs
+@@ -52,18 +51,6 @@
+       @true
+ endif
+ 
+-.PHONY: checkversion
+-checkversion:
+-ifeq ($(shell ./configure --version),$(CONFIGURE_VERSION))
+-      @echo "The version of configure script matches kaldi.mk version. Good."
+-else
+-      @echo ""
+-      @echo "The kaldi.mk file was generated using a different version of 
configure script. Please rerun the configure again"
+-      @test -f ./kaldi.mk && echo  "Hint: Previous configure command line: " 
&& head -n 2 ./kaldi.mk | grep configure | sed 's/^# *//g'
+-      @echo ""
+-      @false
+-endif
+-
+ biglib: $(SUBDIRS_LIB)
+ ifeq ($(KALDI_FLAVOR), dynamic)
+ ifeq ($(shell uname), Darwin)
+@@ -136,6 +123,15 @@
+ ext_depend: check_portaudio
+       -for x in $(EXT_SUBDIRS); do $(MAKE) -C $$x depend; done
+ 
++print-binfiles: $(addsuffix /print-binfiles, $(SUBDIRS))
++
++%/print-binfiles:
++      @$(MAKE) --no-print-directory -C $(dir $@) print-binfiles
++
++print-libfiles: $(addsuffix /print-libfiles, $(SUBDIRS))
++
++%/print-libfiles:
++      @$(MAKE) --no-print-directory -C $(dir $@) print-libfiles
+ 
+ .PHONY: $(SUBDIRS)
+ $(SUBDIRS) : mklibdir

diff --git a/sci-misc/kaldi/files/default_rules.mk.96eec2b.patch 
b/sci-misc/kaldi/files/default_rules.mk.96eec2b.patch
new file mode 100644
index 000000000..89a3103ba
--- /dev/null
+++ b/sci-misc/kaldi/files/default_rules.mk.96eec2b.patch
@@ -0,0 +1,30 @@
+--- src/makefiles/default_rules.mk.orig        2017-03-03 01:33:22.000000000 
+0100
++++ src/makefiles/default_rules.mk     2017-03-03 18:24:54.159740235 +0100
+@@ -12,7 +12,7 @@
+     ifdef LIBNAME
+       LIBFILE = lib$(LIBNAME).so
+     endif
+-    LDFLAGS += -Wl,-rpath=$(shell readlink -f $(KALDILIBDIR))
++    LDFLAGS += -L. $(foreach dep,$(ADDLIBS), -L$(dir $(dep)))
+     EXTRA_LDLIBS += $(foreach dep,$(ADDLIBS), $(dir $(dep))lib$(notdir 
$(basename $(dep))).so)
+   else  # Platform not supported
+     $(error Dynamic libraries not supported on this platform. Run configure 
with --static flag.)
+@@ -82,7 +82,7 @@
+       for x in $(TESTFILES); do       \
+         printf "Running $$x ...";     \
+       timestamp1=$$(date +"%s"); \
+-        ./$$x >$$x.testlog 2>&1;      \
++        LD_LIBRARY_PATH=$(KALDILIBDIR):${LD_LIBRARY_PATH} ./$$x >$$x.testlog 
2>&1;    \
+       ret=$$? \
+       timestamp2=$$(date +"%s"); \
+       time_taken=$$[timestamp2-timestamp1]; \
+@@ -121,3 +121,9 @@
+ # removing automatic making of "depend" as it's quite slow.
+ #.depend.mk: depend
+ -include .depend.mk
++
++print-binfiles:
++      @echo $(addprefix $(shell pwd)/, $(BINFILES))
++
++print-libfiles:
++      @echo $(addsuffix .so, $(addprefix $(shell pwd)/lib, $(LIBNAME)))

diff --git a/sci-misc/kaldi/kaldi-0_p20151106.ebuild 
b/sci-misc/kaldi/kaldi-0_p20151106.ebuild
deleted file mode 100644
index 7dbc93ee8..000000000
--- a/sci-misc/kaldi/kaldi-0_p20151106.ebuild
+++ /dev/null
@@ -1,124 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-inherit eutils toolchain-funcs cuda flag-o-matic
-
-DESCRIPTION="A toolkit for speech recognition"
-HOMEPAGE="http://kaldi-asr.org/";
-SRC_URI="http://gentoo.akreal.net/distfiles/${P}.tar.xz";
-
-LICENSE="Apache-2.0"
-SLOT="0"
-IUSE="doc test cuda"
-KEYWORDS="~amd64"
-
-RDEPEND="
-       media-libs/speex
-       virtual/cblas
-       virtual/lapack
-       virtual/lapacke
-       >=sci-misc/openfst-1.4.1
-       cuda? ( dev-util/nvidia-cuda-toolkit )"
-DEPEND="${RDEPEND}
-       doc? ( app-doc/doxygen )"
-
-# We need write acccess /dev/nvidiactl, /dev/nvidia0 and /dev/nvidia-uvm and 
the portage
-# user is (usually) not in the video group
-RESTRICT="test? ( cuda? ( userpriv ) )"
-
-pkg_pretend() {
-       local cblas_provider=$(eselect cblas show)
-
-       if [[ ! ${cblas_provider} =~ (atlas|mkl|openblas) ]]; then
-               die "Build with '${cblas_provider}' CBLAS is not supported"
-       fi
-}
-
-src_prepare() {
-       epatch \
-               "${FILESDIR}"/Makefile.patch \
-               "${FILESDIR}"/default_rules.mk.a7d9824.patch
-}
-
-src_configure() {
-       append-cxxflags \
-               -DKALDI_DOUBLEPRECISION=0 \
-               -DHAVE_POSIX_MEMALIGN \
-               -DHAVE_EXECINFO_H=1 \
-               -DHAVE_CXXABI_H \
-               -DHAVE_SPEEX \
-               -DHAVE_OPENFST_GE_10400 \
-               -std=c++0x \
-               -Wall \
-               -I.. \
-               -pthread \
-               -Wno-sign-compare \
-               -Wno-unused-local-typedefs \
-               -Winit-self \
-               -rdynamic \
-               -fPIC \
-               $($(tc-getPKG_CONFIG) --cflags cblas) \
-               $($(tc-getPKG_CONFIG) --cflags lapack)
-
-       append-libs \
-               -lspeex \
-               -lfst \
-               -lm \
-               -lpthread \
-               -ldl \
-               $($(tc-getPKG_CONFIG) --libs cblas) \
-               $($(tc-getPKG_CONFIG) --libs lapack)
-
-       local cblas_provider=$(eselect cblas show)
-
-       if [[ ${cblas_provider} =~ atlas ]]; then
-               append-cxxflags -DHAVE_ATLAS
-       elif [[ ${cblas_provider} =~ mkl ]]; then
-               append-cxxflags -DHAVE_MKL
-       elif [[ ${cblas_provider} =~ openblas ]]; then
-               append-cxxflags -DHAVE_OPENBLAS $($(tc-getPKG_CONFIG) --cflags 
lapacke)
-       fi
-
-       use test || append-cxxflags -DNDEBUG
-
-       cat <<-EOF > kaldi.mk
-               KALDI_FLAVOR := dynamic
-               KALDILIBDIR := "${S}"/lib
-               CC = $(tc-getCXX)
-               RANLIB = $(tc-getRANLIB)
-               LDLIBS = ${LIBS}
-       EOF
-
-       if use cuda; then
-               cat <<-EOF >> kaldi.mk
-                       CUDA = true
-                       CUDATKDIR = "${EPREFIX}"/opt/cuda
-               EOF
-               cat makefiles/linux_x86_64_cuda.mk >> kaldi.mk
-               sed -i \
-                       -e "s:CUDA_FLAGS = -g:CUDA_FLAGS = ${NVCCFLAGS}:" \
-                       kaldi.mk || die "sed unix/kaldi.mk failed"
-       fi
-}
-
-src_compile() {
-       default
-       use doc && doxygen
-}
-
-src_test() {
-       if use cuda; then
-               addwrite /dev/nvidiactl
-               addwrite /dev/nvidia0
-               addwrite /dev/nvidia-uvm
-       fi
-       default
-}
-
-src_install() {
-       dolib.so $(make print-libfiles)
-       dobin $(make print-binfiles)
-       use doc && dodoc -r html
-}

diff --git a/sci-misc/kaldi/kaldi-5.1.65.ebuild 
b/sci-misc/kaldi/kaldi-5.1.65.ebuild
new file mode 100644
index 000000000..4304f695c
--- /dev/null
+++ b/sci-misc/kaldi/kaldi-5.1.65.ebuild
@@ -0,0 +1,146 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit toolchain-funcs cuda flag-o-matic
+
+COMMIT_ID="9e06caa1fb0306898632c6fa3ad67571c4d06cf5"
+DESCRIPTION="A toolkit for speech recognition"
+HOMEPAGE="http://kaldi-asr.org/";
+SRC_URI="https://github.com/kaldi-asr/kaldi/archive/${COMMIT_ID}.tar.gz -> 
${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="cuda doc double-precision speex test"
+REQUIRED_USE="double-precision? ( !speex )"
+
+RDEPEND="
+       >=sci-misc/openfst-1.6.0
+       virtual/cblas
+       virtual/lapack
+       virtual/lapacke
+       cuda? ( dev-util/nvidia-cuda-toolkit )
+       speex? ( media-libs/speex )"
+DEPEND="${RDEPEND}
+       virtual/pkgconfig
+       doc? ( app-doc/doxygen )"
+
+S=${WORKDIR}/${PN}-${COMMIT_ID}/src
+
+PATCHES=(
+       "${FILESDIR}"/Makefile.0d5e4b1.patch
+       "${FILESDIR}"/default_rules.mk.96eec2b.patch
+)
+
+# We need write acccess /dev/nvidiactl, /dev/nvidia0 and /dev/nvidia-uvm and 
the portage
+# user is (usually) not in the video group
+RESTRICT="cuda? ( userpriv )"
+
+pkg_pretend() {
+       local cblas_provider=$(eselect cblas show)
+
+       if [[ ! ${cblas_provider} =~ (atlas|openblas) ]]; then
+               die "Build with '${cblas_provider}' CBLAS is not supported"
+       fi
+}
+
+src_prepare() {
+       default
+       use cuda && cuda_src_prepare
+}
+
+src_configure() {
+       cat <<-EOF > base/version.h
+               #define KALDI_VERSION "${PV}-${COMMIT_ID:0:5}"
+               #define KALDI_GIT_HEAD "${COMMIT_ID}"
+       EOF
+
+       echo "true" > base/get_version.sh
+
+       append-cxxflags \
+               $($(tc-getPKG_CONFIG) --cflags cblas) \
+               $($(tc-getPKG_CONFIG) --cflags lapack)
+
+       append-libs \
+               $($(tc-getPKG_CONFIG) --libs cblas) \
+               $($(tc-getPKG_CONFIG) --libs lapack)
+
+       use test || append-cppflags -DNDEBUG
+
+       if use speex; then
+               append-cppflags -DHAVE_SPEEX
+               append-libs -lspeex
+       fi
+
+       cat <<-EOF > kaldi.mk
+               KALDI_FLAVOR := dynamic
+               KALDILIBDIR := "${S}"/lib
+               CXX = $(tc-getCXX)
+               AR = $(tc-getAR)
+               AS = $(tc-getAS)
+               RANLIB = $(tc-getRANLIB)
+               DOUBLE_PRECISION = $(usex double-precision 1 0)
+               OPENFSTINC = "."
+               OPENFSTLIBS = -lfst
+       EOF
+
+       local cblas_provider=$(eselect cblas show)
+
+       if [[ ${cblas_provider} =~ atlas ]]; then
+               cat <<-EOF >> kaldi.mk
+                       ATLASINC = "."
+                       ATLASLIBS = -L.
+               EOF
+
+               cat makefiles/linux_atlas.mk >> kaldi.mk
+       elif [[ ${cblas_provider} =~ openblas ]]; then
+               append-cxxflags $($(tc-getPKG_CONFIG) --cflags lapacke)
+
+               cat <<-EOF >> kaldi.mk
+                       OPENBLASINC = "."
+                       OPENBLASLIBS = -L.
+               EOF
+
+               cat makefiles/linux_openblas.mk >> kaldi.mk
+       fi
+
+       cat <<-EOF >> kaldi.mk
+               CXXFLAGS += ${CXXFLAGS}
+               LDLIBS += ${LIBS}
+       EOF
+
+       if use cuda; then
+               cat <<-EOF >> kaldi.mk
+                       CUDA = true
+                       CUDATKDIR = "${EPREFIX}"/opt/cuda
+                       CUDA_ARCH :=
+                       CUDA_ARCH +=
+               EOF
+               cat makefiles/cuda_64bit.mk >> kaldi.mk
+               sed -i \
+                       -e "s:CUDA_FLAGS = -g:CUDA_FLAGS = ${NVCCFLAGS}:" \
+                       kaldi.mk || die "sed unix/kaldi.mk failed"
+       fi
+}
+
+src_compile() {
+       default
+       use doc && doxygen
+}
+
+src_test() {
+       if use cuda; then
+               addwrite /dev/nvidiactl
+               addwrite /dev/nvidia0
+               addwrite /dev/nvidia-uvm
+       fi
+       default
+}
+
+src_install() {
+       dolib.so $(make print-libfiles)
+       dobin $(make print-binfiles)
+       use doc && dodoc -r html
+}

diff --git a/sci-misc/kaldi/metadata.xml b/sci-misc/kaldi/metadata.xml
index fbed38966..e441381a1 100644
--- a/sci-misc/kaldi/metadata.xml
+++ b/sci-misc/kaldi/metadata.xml
@@ -17,5 +17,8 @@
     <flag name="cuda">
       Build with CUDA support.
     </flag>
+    <flag name="double-precision">
+      Build in double precision mode.
+    </flag>
   </use>
 </pkgmetadata>

Reply via email to