# This is the top-level Makefile for Kaldi. # Also see kaldi.mk which supplies options and some rules # used by the Makefiles in the subdirectories. SHELL := /bin/bash # Compile subdirectories starting with the things "depended on". SUBDIRS = base matrix util feat tree gmm tied transform sgmm \ fstext hmm lm decoder lat \ bin fstbin gmmbin fgmmbin tiedbin sgmmbin featbin \ cudamatrix nnet nnetbin nnet_cpu nnetbin_cpu latbin rnn all: test_install $(SUBDIRS) echo Done # Note: if you have put the OpenFst installation somewhere else, you can just # delete or comment out the lines below. OPENFST_VER = $(shell grep 'PACKAGE_VERSION' ../tools/openfst/Makefile | sed -e 's:.*= ::') test_install: [ $(OPENFST_VER) == '1.2.10' ] || ( echo "You now need openfst-1.2.10. Do: cd ../tools; svn update; ./install.sh; cd ../src; make depend; make"; exit 1 ) clean: -for x in $(SUBDIRS); do $(MAKE) -C $$x clean; done # When testing, stop on first failure. test: for x in $(SUBDIRS); do $(MAKE) -C $$x test || (echo "test $$x failed"; exit 1); done valgrind: -for x in $(SUBDIRS); do $(MAKE) -C $$x valgrind || (echo "valgrind on $$x failed"; exit 1); done depend: -for x in $(SUBDIRS); do $(MAKE) -C $$x depend; done .PHONY: $(SUBDIRS) $(SUBDIRS) : $(MAKE) -C $@ ### Dependency list ### # this is necessary for correct parallel compilation #1)The tools depend on all the libraries bin fstbin gmmbin fgmmbin tiedbin sgmmbin featbin nnetbin nnetbin_cpu latbin: base matrix util feat tree optimization gmm tied transform sgmm fstext hmm lm decoder lat cudamatrix nnet nnet_cpu rnn #2)The libraries have inter-dependencies base: matrix : base util: base matrix feat: base matrix util gmm transform tree: base util matrix optimization: base matrix gmm: base util matrix tree tied: base util matrix gmm tree transform transform: base util matrix gmm tree sgmm: base util matrix gmm tree transform fstext: base util matrix tree hmm: base tree matrix lm: base util decoder: base util matrix gmm sgmm hmm tree transform lat: base util cudamatrix: base util matrix nnet: base util matrix cudamatrix nnet_cpu: base util matrix rnn: base util matrix lat