# If you need higher order, change this option # Having this limit means that State can be # (KENLM_MAX_ORDER - 1) * sizeof(float) bytes instead of # sizeof(float*) + (KENLM_MAX_ORDER - 1) * sizeof(float) + malloc overhead max-order = [ option.get "max-kenlm-order" : 6 : 6 ] ; if ( $(max-order) != 6 ) { echo "Setting KenLM maximum n-gram order to $(max-order)" ; } max-order = KENLM_MAX_ORDER=$(max-order) ; path-constant ORDER-LOG : bin/order.log ; update-if-changed $(ORDER-LOG) $(max-order) ; max-order += $(ORDER-LOG) ; wrappers = ; local with-nplm = [ option.get "with-nplm" ] ; if $(with-nplm) { lib nplm : : $(with-nplm)/src ; obj nplm.o : wrappers/nplm.cc : .. $(with-nplm)/src -fopenmp ; alias nplm-all : nplm.o nplm ..//boost_thread : : : -fopenmp -fopenmp WITH_NPLM ..//boost_thread ; wrappers += nplm-all ; } fakelib kenlm : $(wrappers) [ glob *.cc : *main.cc *test.cc ] ../util//kenutil : .. $(max-order) : : .. $(max-order) ; import testing ; run left_test.cc kenlm /top//boost_unit_test_framework : : test.arpa ; run model_test.cc kenlm /top//boost_unit_test_framework : : test.arpa test_nounk.arpa ; run partial_test.cc kenlm /top//boost_unit_test_framework : : test.arpa ; exes = ; for local p in [ glob *_main.cc ] { local name = [ MATCH "(.*)\_main.cc" : $(p) ] ; exe $(name) : $(p) kenlm ; exes += $(name) ; } alias programs : $(exes) filter//filter builder//dump_counts : multi:builder//lmplz ;