#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. # #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 [default is source root]. #--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-projects util lm mert moses-cmd/src moses-chart-cmd/src scripts regression-testing ; alias programs : lm//query lm//build_binary moses-chart-cmd/src//moses_chart moses-cmd/src//programs OnDiskPt//CreateOnDiskPt OnDiskPt//queryOnDiskPt mert//programs contrib/server//mosesserver misc//programs symal phrase-extract phrase-extract//lexical-reordering phrase-extract//extract-ghkm phrase-extract//pcfg-extract phrase-extract//pcfg-score biconcor ; install-bin-libs programs ; install-headers headers-base : [ glob-tree *.h *.hh : jam-files dist bin lib include 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 ; } if [ path.exists $(TOP)/dist ] && $(prefix) != dist { echo "You have a $(TOP)/dist directory, but the build system now places files directly in the root i.e. $(TOP)/bin ." ; echo "To disable this message, delete $(TOP)/dist ." ; echo ; }