mosesdecoder/Jamroot

137 lines
4.8 KiB
Plaintext
Raw Normal View History

2011-11-25 21:30:36 +04:00
#BUILDING MOSES
#
2011-11-25 21:30:36 +04:00
#PACKAGES
#Language models (optional):
2011-11-25 15:55:36 +04:00
#--with-irstlm=/path/to/irstlm
2012-11-12 23:56:18 +04:00
#--with-srilm=/path/to/srilm See moses/LM/Jamfile for more options.
#--with-randlm=/path/to/randlm
#KenLM is always compiled.
#
2011-11-25 15:55:36 +04:00
#--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.
#
2011-11-21 21:19:24 +04:00
#--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.
#
2012-08-05 00:49:42 +04:00
#Compact phrase table and compact lexical reordering table
#--with-cmph=/path/to/cmph
#
#Thread-caching malloc (if present, used for multi-threaded builds by default)
#--without-tcmalloc
2011-11-21 21:19:24 +04:00
#
#REGRESSION TESTING
#--with-regtest=/path/to/moses-reg-test-data
#
2011-11-25 20:53:02 +04:00
#INSTALLATION
2012-05-31 15:55:05 +04:00
#--prefix=/path/to/prefix sets the install prefix [default is source root].
2011-11-28 16:01:33 +04:00
#--bindir=/path/to/prefix/bin sets the bin directory [PREFIX/bin]
#--libdir=/path/to/prefix/lib sets the lib directory [PREFIX/lib]
2012-02-13 23:31:37 +04:00
#--includedir=/path/to/prefix/include installs headers.
# Does not install if missing. No argument defaults to PREFIX/include .
2011-11-25 20:53:02 +04:00
#--install-scripts=/path/to/scripts copies scripts into a directory.
# Does not install if missing. No argument defaults to PREFIX/scripts .
2011-11-28 16:01:33 +04:00
#--git appends the git revision to the prefix directory.
2011-11-21 21:19:24 +04:00
#
2011-11-25 21:30:36 +04:00
#
#BUILD OPTIONS
2011-11-23 15:29:42 +04:00
# By default, the build is multi-threaded, optimized, and statically linked.
# Pass these to change the build:
#
2011-11-23 15:29:42 +04:00
# threading=single|multi controls threading (default multi)
#
2011-11-23 15:29:42 +04:00
# variant=release|debug|profile builds optimized (default), for debug, or for
# profiling
#
# link=static|shared controls preferred linking (default static)
# --static forces static linking (the default will fall
# back to shared)
2011-11-23 15:29:42 +04:00
#
# debug-symbols=on|off include (default) or exclude debugging
# information also known as -g
2011-11-25 22:09:07 +04:00
# --notrace compiles without TRACE macros
2011-11-25 21:30:36 +04:00
#
2011-11-27 20:53:40 +04:00
# --enable-boost-pool uses Boost pools for the memory SCFG table
#
2011-12-16 01:54:56 +04:00
# --enable-mpi switch on mpi
# --without-libsegfault does not link with libSegFault
#
# --max-kenlm-order maximum ngram order that kenlm can process (default 6)
2011-11-23 15:29:42 +04:00
#
# --max-factors maximum number of factors (default 4)
#
2011-11-25 21:30:36 +04:00
#CONTROLLING THE BUILD
2011-11-21 21:19:24 +04:00
#-a to build from scratch
#-j$NCPUS to compile in parallel
2011-11-23 15:29:42 +04:00
#--clean to clean
2011-12-05 15:09:48 +04:00
import option ;
import modules ;
2012-03-31 03:57:05 +04:00
import path ;
path-constant TOP : . ;
include $(TOP)/jam-files/sanity.jam ;
boost 103600 ;
external-lib z ;
if ! [ option.get "without-tcmalloc" : : "yes" ] && [ test_library "tcmalloc_minimal" ] {
external-lib tcmalloc_minimal ;
requirements += <threading>multi:<library>tcmalloc_minimal ;
}
2011-12-16 01:54:56 +04:00
if [ option.get "enable-mpi" : : "yes" ] {
import mpi ;
using mpi ;
2012-06-07 03:26:22 +04:00
external-lib boost_mpi ;
external-lib boost_serialization ;
2011-12-16 01:54:56 +04:00
requirements += <define>MPI_ENABLE ;
requirements += <library>mpi ;
requirements += <library>boost_mpi ;
requirements += <library>boost_serialization ;
}
requirements += [ option.get "notrace" : <define>TRACE_ENABLE=1 ] ;
requirements += [ option.get "enable-boost-pool" : : <define>USE_BOOST_POOL ] ;
2011-11-28 13:35:46 +04:00
2012-08-04 17:39:30 +04:00
if [ option.get "with-cmph" ] {
requirements += <define>HAVE_CMPH ;
}
project : default-build
<threading>multi
<warnings>on
<debug-symbols>on
<variant>release
<link>static
;
project : requirements
<threading>multi:<define>WITH_THREADS
<threading>multi:<library>boost_thread
<define>_FILE_OFFSET_BITS=64 <define>_LARGE_FILES
$(requirements)
2012-11-14 17:43:04 +04:00
<include>.
;
#Add directories here if you want their incidental targets too (i.e. tests).
2012-11-13 01:12:01 +04:00
build-projects lm util phrase-extract search moses mert moses-cmd moses-chart-cmd mira scripts regression-testing ;
2012-11-13 01:12:01 +04:00
alias programs : lm//programs moses-chart-cmd//moses_chart moses-cmd//programs OnDiskPt//CreateOnDiskPt OnDiskPt//queryOnDiskPt mert//programs misc//programs symal phrase-extract phrase-extract//lexical-reordering phrase-extract//extract-ghkm phrase-extract//pcfg-extract phrase-extract//pcfg-score biconcor mira//mira contrib/server//mosesserver ;
2011-11-28 16:01:33 +04:00
install-bin-libs programs ;
install-headers headers-base : [ path.glob-tree biconcor contrib lm mert misc moses-chart-cmd moses-cmd OnDiskPt phrase-extract symal util : *.hh *.h ] : . ;
2012-11-12 23:56:18 +04:00
install-headers headers-moses : moses//headers-to-install : moses ;
2012-02-13 23:31:37 +04:00
alias install : prefix-bin prefix-lib headers-base headers-moses ;
2012-03-31 03:57:05 +04:00
if ! [ option.get "includedir" : : $(prefix)/include ] {
explicit install headers-base headers-moses ;
}
2012-06-01 03:13:01 +04:00
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 ;
}