#BUILDING MOSES # #PACKAGES #Language models (optional): #--with-irstlm=/path/to/irstlm #--with-srilm=/path/to/srilm See moses/src/LM/Jamfile for more options. #--with-randlm=/path/to/randlm #KenLM is always compiled. # #--with-boost=/path/to/boost #If Boost is in a non-standard location, specify it here. This directory is #expected to contain include and lib or lib64. # #--with-xmlrpc-c=/path/to/xmlrpc-c for libxmlrpc-c (used by server) #Note that, like language models, this is the --prefix where the library was #installed, not some executable within the library. # #--with-giza=/path/to/giza #Indicates where binaries GIZA++, snt2cooc.out, and mkcls live. #Builds scripts/training/train-model.perl using these paths. # #Thread-caching malloc (optional): #--with-tcmalloc # #REGRESSION TESTING #--with-regtest=/path/to/moses-reg-test-data # # #INSTALLATION #--prefix=/path/to/prefix sets the install prefix [dist]. #--bindir=/path/to/prefix/bin sets the bin directory [PREFIX/bin] #--libdir=/path/to/prefix/lib sets the lib directory [PREFIX/lib] #--includedir=/path/to/prefix/include installs headers. # Does not install if missing. No argument defaults to PREFIX/include . #--install-scripts=/path/to/scripts copies scripts into a directory. #--git appends the git revision to the prefix directory. # # #BUILD OPTIONS # By default, the build is multi-threaded, optimized, and statically linked. # Pass these to change the build: # # threading=single|multi controls threading (default multi) # # variant=release|debug|profile builds optimized (default), for debug, or for # profiling # # link=static|shared controls linking (default static) # # debug-symbols=on|off include (default) or exclude debugging # information also known as -g # # --notrace compiles without TRACE macros # # --enable-boost-pool uses Boost pools for the memory SCFG table # # #CONTROLLING THE BUILD #-a to build from scratch #-j$NCPUS to compile in parallel #--clean to clean import option ; import modules ; import path ; path-constant TOP : . ; include $(TOP)/jam-files/sanity.jam ; boost 103600 ; external-lib z ; if [ option.get "with-tcmalloc" : : "yes" ] { external-lib tcmalloc ; requirements += tcmalloc ; } requirements += [ option.get "notrace" : TRACE_ENABLE=1 ] ; requirements += [ option.get "enable-boost-pool" : : USE_BOOST_POOL ] ; project : default-build multi on on release static ; project : requirements multi:WITH_THREADS multi:boost_thread _FILE_OFFSET_BITS=64 _LARGE_FILES $(requirements) ; #Add directories here if you want their incidental targets too (i.e. tests). build-project lm ; build-project util ; #Trigger instllation into legacy paths. build-project mert ; build-project moses-cmd/src ; build-project moses-chart-cmd/src ; #Scripts have their own binaries. build-project scripts ; #Regression tests (only does anything if --with-regtest is passed) build-project regression-testing ; alias programs : lm//query lm//build_binary moses-chart-cmd/src//moses_chart moses-cmd/src//programs OnDiskPt//CreateOnDisk OnDiskPt//queryOnDiskPt mert//programs contrib/server//mosesserver misc//programs ; install-bin-libs programs ; install-headers headers-base : [ glob-tree *.h *.hh : jam-files dist kenlm moses ] : . ; install-headers headers-moses : moses/src//headers-to-install : moses/src ; alias install : prefix-bin prefix-lib headers-base headers-moses ; if ! [ option.get "includedir" : : $(prefix)/include ] { explicit install headers-base headers-moses ; }