Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/moses-smt/mosesdecoder.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Germann <Ulrich.Germann@gmail.com>2015-03-26 19:38:05 +0300
committerUlrich Germann <Ulrich.Germann@gmail.com>2015-03-26 19:38:05 +0300
commit4410e9225a5bd495fc6d097b206290beb59f4839 (patch)
tree6c366d8d643b4234b8960fcc2e308bf543a1acf1
parentb3ff4ff13ac35293dcdb272f99b52388b560cb65 (diff)
More fiddling with bjam.
-rw-r--r--jam-files/curlpp.jam116
-rw-r--r--jam-files/xmlrpc-c.jam94
2 files changed, 210 insertions, 0 deletions
diff --git a/jam-files/curlpp.jam b/jam-files/curlpp.jam
new file mode 100644
index 000000000..7f4e23441
--- /dev/null
+++ b/jam-files/curlpp.jam
@@ -0,0 +1,116 @@
+# -*- jam -*-
+# configuration for curlpp
+# I haven't been able to wrap my mind around bjam yet, so chances are
+# there's a much better way to do things.
+
+module curlppvars { } # this stores the variables we want to keep
+
+if [ option.get "no-curlpp" : : yes ]
+{
+ rule curlpp ( what ? ) { } # never return anything
+}
+else
+{
+ local version ;
+ local prefix ;
+ # check if a non-standard location for curl is given
+ local curlpp = [ option.get "with-curlpp" ] ;
+ if ! $(curlpp) # maybe via environment variable CURLPP_ROOT ?
+ {
+ local where = [ os.environ "CURLPP_ROOT" ] ;
+ if $(where)
+ {
+ option.set "with-curlpp" : $(where) ;
+ local msg = "setting --with-curlpp=$(where) via environment " ;
+ echo "$(msg) variable CURLPP_ROOT" ;
+ }
+ curlpp = [ option.get "with-curlpp" ] ;
+ }
+
+ local config ;
+ if $(curlpp)
+ {
+ config = $(curlpp)/bin/curlpp-config ;
+ }
+ else # is curlpp-config in the path ?
+ {
+ local curlpp-check = [ _shell "curlpp-config >/dev/null" : exit-status ] ;
+ if $(curlpp-check[2]) = 0 { config = curlpp-config ; }
+ }
+
+ if $(config)
+ {
+ prefix = [ shell_or_die "$(config) --prefix" ] ;
+ version = [ shell_or_die "$(config) --version" ] ;
+ version = [ SPLIT_BY_CHARACTERS $(version) : " " ] ;
+ version = [ trim-nl $(version[2]) ] ;
+ modules.poke curlppvars : prefix : $(prefix) ;
+ modules.poke curlppvars : version : $(version) ;
+
+ requirements += <define>HAVE_CURLPP ;
+ local cpp-cflags = [ shell_or_die "$(config) --cflags" ] ;
+ for local i in [ SPLIT_BY_CHARACTERS $(cpp-cflags) : " " ]
+ {
+ local incpath = [ MATCH "-I(.*)" : $(i) ] ;
+ if $(incpath)
+ {
+ # echo "CURLPP: $(i)" ;
+ requirements += <include>$(incpath) ;
+ }
+ }
+ local cpp-libs = [ shell_or_die "$(config) --libs" ] ;
+ local cpp-prefix = [ shell_or_die "$(config) --prefix" ] ;
+ for local i in [ SPLIT_BY_CHARACTERS $(cpp-libs) : " " ]
+ {
+ local libpath = [ MATCH "^-L(.*)" : $(i) ] ;
+ if $(libpath) { requirements += <library-path>$(libpath) ; }
+ local libname = [ MATCH "^-l(.*)" : $(i) ] ;
+ if $(libname)
+ {
+ # local curl = [ MATCH "^-l(.*pp)" : $(i) ] ;
+ # if [ path.exists $(cpp-prefix)/lib/lib$(libname).a ]
+ # {
+ # echo "CURLPP: STATIC LINKING FOR LIBRARY: $(libname)" ;
+ # lib $(libname) : : <link>static ;
+ # }
+ # else
+ # {
+ external-lib $(libname) ;
+ # }
+ requirements += <library>$(libname)/<link>shared ;
+ }
+ else
+ {
+ requirements += <linkflags>$(i) ;
+ }
+
+ # requirements += <library-path>/usr/lib/x86_64-linux-gnu ;
+ # for local xtra in idn rtmp ssl crypto ssl crypto ldap rt
+ # {
+ # external-lib $(xtra) : /usr/lib/x86_64-linux-gnu ;
+ # requirements += <library>$(xtra) ;
+ # }
+ }
+
+ # the rule curlpp provides access to all the variables defined in this file
+ # if none argument is given, it returns $(version), which should only be
+ # defined if curl is available
+ rule curlpp ( what ? )
+ {
+ if $(what)
+ {
+ retval = [ modules.peek curlppvars : $(what) ] ;
+ if $(retval) { return $(retval) ; }
+ }
+ else { return "yes" ; }
+ }
+ }
+ else { rule curlpp { } }
+}
+
+if [ curlpp ]
+{
+ local prefix = [ curlpp prefix ] ;
+ local version = [ curlpp version ] ;
+ echo "CULRPP: USING VERSION $(version) FROM $(prefix)" ;
+}
diff --git a/jam-files/xmlrpc-c.jam b/jam-files/xmlrpc-c.jam
new file mode 100644
index 000000000..a04ed1e1c
--- /dev/null
+++ b/jam-files/xmlrpc-c.jam
@@ -0,0 +1,94 @@
+# This module handles the use (or non-use) of the externall
+# xmlrpc-c library (including the abyss server) that is needed for
+# moses server functionality
+
+if [ option.get "no-xmlrpc-c" ]
+{
+ rule xmlrpc-c ( what ? ) { } # never return anything
+}
+else
+{
+ local xmlrpc = [ option.get "with-xmlrpc-c" ] ;
+ if ! $(xmlrpc) # check for environment variable
+ {
+ local where = [ os.environ "XMLRPC_C_ROOT" ] ;
+ if $(where)
+ {
+ option.set "with-xmlrpc-c" : $(where) ;
+ local msg = "setting --with-xmlrpc-c=$(where) via environment " ;
+ echo "$(msg) variable XMLRPC_C_ROOT" ;
+ }
+ xmlrpc = [ option.get "with-xmlrpc-c" ] ;
+ }
+ local config ;
+ if ! $(xmlrpc) { config = "xmlrpc-c-config" ; }
+ else { config = "$(xmlrpc)/bin/xmlrpc-c-config" ; }
+ # check if xmlrpc-config can be executed
+ xmlrpc-check = [ _shell "$(config) --features 2>/dev/null" : exit-status ] ;
+ if $(xmlrpc-check[2]) = 0 # yes it can
+ {
+ # is the abyss server is available ?
+ if [ MATCH "(abyss-server)" : $(xmlrpc-check[1]) ]
+ {
+ # Yes, abyss server is available. Is it the right xmlrpc-c version ?
+ # Note: Version 1.25.29 does not work.
+ xmlrpc-check = [ _shell "$(config) --version 2>/dev/null" : exit-status ] ;
+ xmlrpc-c-version = $(xmlrpc-check[1]) ;
+ if [ MATCH "(1.25.29)" : $(xmlrpc-c-version) ]
+ {
+ echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" ;
+ echo "XMLRPC-C: Moses is not compatible with xmlrpc-c version $(xmlrpc-c-version). " ;
+ echo "XMLRPC-C: Use another one or compile without server functionality (--no-xmlrpc-c)." ;
+ echo "XMLRPC-C: Build aborted." ;
+ exit : 1 ;
+ }
+ }
+ else
+ {
+ echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" ;
+ echo "XMLRPC-C: Found xmlrpc-c but it does not provide the abyss server." ;
+ echo "XMLRPC-C: Use another xmlrpc-c installation that provides one " ;
+ echo "XMLRPC-C: or compile without server functionality (--no-xmlrpc-c)." ;
+ exit : 1 ;
+ }
+ }
+ else if [ option.get "with-xmlrpc-c" ]
+ {
+ echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" ;
+ echo "XMLRPC-C: Could not find $(config). " ;
+ echo "Build aborted. " ;
+ echo "Use --no-xmlrpc-c to compile moses without server functionality. " ;
+ exit : 1 ;
+ }
+
+ local prefix = [ shell_or_die "$(config) --prefix" ] ;
+ local version = [ shell_or_die "$(config) --version" ] ;
+ echo "XMLRPC-C: USING VERSION $(version) FROM $(prefix)" ;
+
+ # now add stuff to the requirements
+ local cflags = [ shell_or_die "$(config) c++2 abyss-server --cflags" ] ;
+ requirements += <define>HAVE_XMLRPC_C ;
+ requirements += <cxxflags>$(xmlrpc-cxxflags) ;
+
+ local libs = [ shell_or_die "$(config) c++2 abyss-server --libs" ] ;
+ for local i in [ SPLIT_BY_CHARACTERS $(libs) : " " ]
+ {
+ local libname = [ MATCH "-l(xmlrpc.*)" : $(i) ] ;
+ if $(libname)
+ {
+ external-lib $(libname)
+ : : <runtime-link>static:<link>static <runtime-link>shared:<link>shared ;
+ requirements += <library>$(libname) ;
+ }
+ local pathname = [ MATCH "-L(.*)" : $(i) ] ;
+ if $(pathname)
+ {
+ requirements += <library-path>$(pathname) ;
+ }
+ }
+
+ rule xmlrpc { return yes ; }
+}
+
+
+