You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@joshua.apache.org by mj...@apache.org on 2016/04/19 21:34:22 UTC

[34/51] [partial] incubator-joshua git commit: Converted KenLM into a submodule

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/6da3961b/ext/kenlm/jam-files/boost-build/tools/stage.jam
----------------------------------------------------------------------
diff --git a/ext/kenlm b/ext/kenlm
new file mode 160000
index 0000000..56fdb5c
--- /dev/null
+++ b/ext/kenlm
@@ -0,0 +1 @@
+Subproject commit 56fdb5c44fca34d5a2e07d96139c28fb163983c5
diff --git a/ext/kenlm/jam-files/boost-build/tools/stage.jam b/ext/kenlm/jam-files/boost-build/tools/stage.jam
deleted file mode 100644
index 8d005ae..0000000
--- a/ext/kenlm/jam-files/boost-build/tools/stage.jam
+++ /dev/null
@@ -1,519 +0,0 @@
-# Copyright 2003 Dave Abrahams
-# Copyright 2005, 2006 Rene Rivera
-# Copyright 2002, 2003, 2004, 2005, 2006 Vladimir Prus
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or copy at
-# http://www.boost.org/LICENSE_1_0.txt)
-
-# This module defines the 'install' rule, used to copy a set of targets to a
-# single location.
-
-import "class" : new ;
-import feature ;
-import generators ;
-import path ;
-import project ;
-import targets ;
-import type ;
-import types/register ;
-import virtual-target ;
-
-
-feature.feature <install-dependencies> : off on : incidental      ;
-feature.feature <install-type>         :        : free incidental ;
-feature.feature <install-source-root>  :        : free path       ;
-feature.feature <so-version>           :        : free incidental ;
-
-# If 'on', version symlinks for shared libraries will not be created. Affects
-# Unix builds only.
-feature.feature <install-no-version-symlinks> : on : optional incidental ;
-
-
-class install-target-class : basic-target
-{
-    import "class" : new ;
-    import feature ;
-    import generators ;
-    import path ;
-    import project ;
-    import property ;
-    import property-set ;
-    import stage ;
-    import type ;
-
-    rule __init__ ( name-and-dir : project : sources * : requirements * :
-        default-build * : usage-requirements * )
-    {
-        # The usage-requirements specified here are ignored but are taken as a
-        # parameter to have this metatarget class have the same standard
-        # instantiation interface as all the other Boost Build metatarget
-        # classes.
-        basic-target.__init__ $(name-and-dir) : $(project) : $(sources) :
-            $(requirements) : $(default-build) ;
-    }
-
-    # If <location> is not set, sets it based on the project data.
-    #
-    rule update-location ( property-set )
-    {
-        local loc = [ $(property-set).get <location> ] ;
-        if ! $(loc)
-        {
-            loc = [ path.root $(self.name) [ $(self.project).get location ] ] ;
-            property-set = [ $(property-set).add-raw $(loc:G=<location>) ] ;
-        }
-
-        return $(property-set) ;
-    }
-
-    # Takes a target that is installed and a property set which is used when
-    # installing.
-    #
-    rule adjust-properties ( target : build-property-set )
-    {
-        local ps-raw ;
-        local a = [ $(target).action ] ;
-        if $(a)
-        {
-            local ps = [ $(a).properties ] ;
-            ps-raw = [ $(ps).raw ] ;
-
-            # Unless <hardcode-dll-paths>true is in properties, which can happen
-            # only if the user has explicitly requested it, nuke all <dll-path>
-            # properties.
-            if [ $(build-property-set).get <hardcode-dll-paths> ] != true
-            {
-                ps-raw = [ property.change $(ps-raw) : <dll-path> ] ;
-            }
-
-            # If any <dll-path> properties were specified for installing, add
-            # them.
-            local l = [ $(build-property-set).get <dll-path> ] ;
-            ps-raw += $(l:G=<dll-path>) ;
-
-            # Also copy <linkflags> feature from current build set, to be used
-            # for relinking.
-            local l = [ $(build-property-set).get <linkflags> ] ;
-            ps-raw += $(l:G=<linkflags>) ;
-
-            # Remove the <tag> feature on original targets.
-            ps-raw = [ property.change $(ps-raw) : <tag> ] ;
-
-            # And <location>. If stage target has another stage target in
-            # sources, then we shall get virtual targets with the <location>
-            # property set.
-            ps-raw = [ property.change $(ps-raw) : <location> ] ;
-        }
-
-        local d = [ $(build-property-set).get <dependency> ] ;
-        ps-raw += $(d:G=<dependency>) ;
-
-        local d = [ $(build-property-set).get <location> ] ;
-        ps-raw += $(d:G=<location>) ;
-
-        local ns = [ $(build-property-set).get <install-no-version-symlinks> ] ;
-        ps-raw += $(ns:G=<install-no-version-symlinks>) ;
-
-        local d = [ $(build-property-set).get <install-source-root> ] ;
-        # Make the path absolute: we shall use it to compute relative paths and
-        # making the path absolute will help.
-        if $(d)
-        {
-            d = [ path.root $(d) [ path.pwd ] ] ;
-            ps-raw += $(d:G=<install-source-root>) ;
-        }
-
-        if $(ps-raw)
-        {
-            return [ property-set.create $(ps-raw) ]  ;
-        }
-        else
-        {
-            return [ property-set.empty ] ;
-        }
-    }
-
-    rule construct ( name : source-targets * : property-set )
-    {
-        source-targets = [ targets-to-stage $(source-targets) :
-            $(property-set) ] ;
-
-        property-set = [ update-location $(property-set) ] ;
-
-        local ename = [ $(property-set).get <name> ] ;
-
-        if $(ename) && $(source-targets[2])
-        {
-            import errors : error : $(__name__) : errors.error ;
-            errors.error When <name> property is used "in" 'install', only one
-                source is allowed. ;
-        }
-
-        local result ;
-        for local i in $(source-targets)
-        {
-            local staged-targets ;
-
-            local new-properties = [ adjust-properties $(i) :
-                $(property-set) ] ;
-
-            # See if something special should be done when staging this type. It
-            # is indicated by the presence of a special "INSTALLED_" type.
-            local t = [ $(i).type ] ;
-            if $(t) && [ type.registered INSTALLED_$(t) ]
-            {
-                if $(ename)
-                {
-                    import errors : error : $(__name__) : errors.error ;
-                    errors.error In 'install': <name> property specified with
-                        target that requires relinking. ;
-                }
-                else
-                {
-                    local targets = [ generators.construct $(self.project)
-                        $(name) : INSTALLED_$(t) : $(new-properties) : $(i) ] ;
-                    staged-targets += $(targets[2-]) ;
-                }
-            }
-            else
-            {
-                staged-targets = [ stage.copy-file $(self.project) $(ename) :
-                    $(i) : $(new-properties) ] ;
-            }
-
-            if ! $(staged-targets)
-            {
-                import errors : error : $(__name__) : errors.error ;
-                errors.error Unable to generate staged version of
-                    [ $(source).str ] ;
-            }
-
-            for t in $(staged-targets)
-            {
-                result += [ virtual-target.register $(t) ] ;
-            }
-        }
-
-        return [ property-set.empty ] $(result) ;
-    }
-
-    # Given the list of source targets explicitly passed to 'stage', returns the
-    # list of targets which must be staged.
-    #
-    rule targets-to-stage ( source-targets * : property-set )
-    {
-        local result ;
-
-        # Traverse the dependencies, if needed.
-        if [ $(property-set).get <install-dependencies> ] = "on"
-        {
-            source-targets = [ collect-targets $(source-targets) ] ;
-        }
-
-        # Filter the target types, if needed.
-        local included-types = [ $(property-set).get <install-type> ] ;
-        for local r in $(source-targets)
-        {
-            local ty = [ $(r).type ] ;
-            if $(ty)
-            {
-                # Do not stage searched libs.
-                if $(ty) != SEARCHED_LIB
-                {
-                    if $(included-types)
-                    {
-                        if [ include-type $(ty) : $(included-types) ]
-                        {
-                            result += $(r) ;
-                        }
-                    }
-                    else
-                    {
-                        result += $(r) ;
-                    }
-                }
-            }
-            else if ! $(included-types)
-            {
-                # Do not install typeless targets if there is an explicit list
-                # of allowed types.
-                result += $(r) ;
-            }
-        }
-
-        return $(result) ;
-    }
-
-    # CONSIDER: figure out why we can not use virtual-target.traverse here.
-    #
-    rule collect-targets ( targets * )
-    {
-        # Find subvariants
-        local s ;
-        for local t in $(targets)
-        {
-            s += [ $(t).creating-subvariant ] ;
-        }
-        s = [ sequence.unique $(s) ] ;
-
-        local result = [ new set ] ;
-        $(result).add $(targets) ;
-
-        for local i in $(s)
-        {
-            $(i).all-referenced-targets $(result) ;
-        }
-        local result2 ;
-        for local r in [ $(result).list ]
-        {
-            if $(r:G) != <use>
-            {
-                result2 += $(r:G=) ;
-            }
-        }
-        DELETE_MODULE $(result) ;
-        return [ sequence.unique $(result2) ] ;
-    }
-
-    # Returns true iff 'type' is subtype of some element of 'types-to-include'.
-    #
-    local rule include-type ( type : types-to-include * )
-    {
-        local found ;
-        while $(types-to-include) && ! $(found)
-        {
-            if [ type.is-subtype $(type) $(types-to-include[1]) ]
-            {
-                found = true ;
-            }
-            types-to-include = $(types-to-include[2-]) ;
-        }
-
-        return $(found) ;
-    }
-}
-
-
-# Creates a copy of target 'source'. The 'properties' object should have a
-# <location> property which specifies where the target must be placed.
-#
-rule copy-file ( project name ? : source : properties )
-{
-    name ?= [ $(source).name ] ;
-    local relative ;
-
-    local new-a = [ new non-scanning-action $(source) : common.copy :
-        $(properties) ] ;
-    local source-root = [ $(properties).get <install-source-root> ] ;
-    if $(source-root)
-    {
-        # Get the real path of the target. We probably need to strip relative
-        # path from the target name at construction.
-        local path = [ $(source).path ] ;
-        path = [ path.root $(name:D) $(path) ] ;
-        # Make the path absolute. Otherwise, it would be hard to compute the
-        # relative path. The 'source-root' is already absolute, see the
-        # 'adjust-properties' method above.
-        path = [ path.root $(path) [ path.pwd ] ] ;
-
-        relative = [ path.relative-to $(source-root) $(path) ] ;
-    }
-
-    # Note: Using $(name:D=$(relative)) might be faster here, but then we would
-    # need to explicitly check that relative is not ".", otherwise we might get
-    # paths like '<prefix>/boost/.', try to create it and mkdir would obviously
-    # fail.
-    name = [ path.join $(relative) $(name:D=) ] ;
-
-    return [ new file-target $(name) exact : [ $(source).type ] : $(project) :
-        $(new-a) ] ;
-}
-
-
-rule symlink ( name : project : source : properties )
-{
-    local a = [ new action $(source) : symlink.ln : $(properties) ] ;
-    local t = [ new file-target $(name) exact : [ $(source).type ] : $(project)
-        : $(a) ] ;
-    return [ virtual-target.register $(t) ] ;
-}
-
-
-rule relink-file ( project : source : property-set  )
-{
-    local action = [ $(source).action ] ;
-    local cloned-action = [ virtual-target.clone-action $(action) : $(project) :
-        "" : $(property-set) ] ;
-    return [ $(cloned-action).targets ] ;
-}
-
-
-# Declare installed version of the EXE type. Generator for this type will cause
-# relinking to the new location.
-type.register INSTALLED_EXE : : EXE ;
-
-
-class installed-exe-generator : generator
-{
-    import type ;
-    import property-set ;
-    import modules ;
-    import stage ;
-
-    rule __init__ ( )
-    {
-        generator.__init__ install-exe : EXE : INSTALLED_EXE ;
-    }
-
-    rule run ( project name ? : property-set : source : multiple ? )
-    {
-        local stage-rule = stage.copy-file ;
-
-        if ! [ $(property-set).get <os> ] in NT CYGWIN &&
-            ! [ $(property-set).get <target-os> ] in windows cygwin
-        {
-            # If dll-path properties have been changed for the stage target,
-            # relink instead of copying.
-            local a = [ $(source).action ] ;
-            local p = [ $(a).properties ] ;
-            local original = [ $(p).get <dll-path> ] ;
-            local current = [ $(property-set).get <dll-path> ] ;
-
-            if $(current) != $(original)
-            {
-                stage-rule = stage.relink-file ;
-            }
-        }
-
-        return [ $(stage-rule) $(project) : $(source) : $(property-set) ] ;
-    }
-}
-
-
-generators.register [ new installed-exe-generator ] ;
-
-
-# Installing a shared link on Unix might cause a creation of versioned symbolic
-# links.
-type.register INSTALLED_SHARED_LIB : : SHARED_LIB ;
-
-
-class installed-shared-lib-generator : generator
-{
-    import type ;
-    import property-set ;
-    import modules ;
-    import stage ;
-
-    rule __init__ ( )
-    {
-        generator.__init__ install-shared-lib : SHARED_LIB :
-            INSTALLED_SHARED_LIB ;
-    }
-
-    rule run ( project name ? : property-set : source : multiple ? )
-    {
-        if [ $(property-set).get <os> ] in NT CYGWIN ||
-            [ $(property-set).get <target-os> ] in windows cygwin
-        {
-            local copied = [ stage.copy-file $(project) : $(source) :
-                $(property-set) ] ;
-            return [ virtual-target.register $(copied) ] ;
-        }
-        else
-        {
-            local a = [ $(source).action ] ;
-            local copied ;
-            if ! $(a)
-            {
-                # Non-derived file, just copy.
-                copied = [ stage.copy-file $(project) : $(source) :
-                    $(property-set) ] ;
-            }
-            else
-            {
-                local cp = [ $(a).properties ] ;
-                local current-dll-path = [ $(cp).get <dll-path> ] ;
-                local new-dll-path = [ $(property-set).get <dll-path> ] ;
-
-                if $(current-dll-path) != $(new-dll-path)
-                {
-                    # Rpath changed, need to relink.
-                    copied = [ stage.relink-file $(project) : $(source) :
-                        $(property-set) ] ;
-                }
-                else
-                {
-                    copied = [ stage.copy-file $(project) : $(source) :
-                        $(property-set) ] ;
-                }
-            }
-
-            copied = [ virtual-target.register $(copied) ] ;
-
-            local result = $(copied) ;
-            # If the name is in the form NNN.XXX.YYY.ZZZ, where all 'X', 'Y' and
-            # 'Z' are numbers, we need to create NNN.XXX and NNN.XXX.YYY
-            # symbolic links.
-            local m = [ MATCH
-                (.*)\\.([0123456789]+)\\.([0123456789]+)\\.([0123456789]+)$ :
-                [ $(copied).name ] ] ;
-            if $(m)
-            {
-                # Symlink without version at all is used to make
-                # -lsome_library work.
-                result += [ stage.symlink $(m[1]) : $(project) : $(copied) :
-                    $(property-set) ] ;
-
-                # Symlinks of some libfoo.N and libfoo.N.M are used so that
-                # library can found at runtime, if libfoo.N.M.X has soname of
-                # libfoo.N. That happens when the library makes some binary
-                # compatibility guarantees. If not, it is possible to skip those
-                # symlinks.
-                local suppress = [ $(property-set).get
-                    <install-no-version-symlinks> ] ;
-
-                if $(suppress) != "on"
-                {
-                    result += [ stage.symlink $(m[1]).$(m[2]) : $(project) :
-                        $(copied) : $(property-set) ] ;
-                    result += [ stage.symlink $(m[1]).$(m[2]).$(m[3]) :
-                        $(project) : $(copied) : $(property-set) ] ;
-                }
-            }
-
-            return $(result) ;
-        }
-    }
-}
-
-generators.register [ new installed-shared-lib-generator ] ;
-
-
-# Main target rule for 'install'.
-#
-rule install ( name : sources * : requirements * : default-build * )
-{
-    local project = [ project.current ] ;
-
-    # Unless the user has explicitly asked us to hardcode dll paths, add
-    # <hardcode-dll-paths>false in requirements, to override default value.
-    if ! <hardcode-dll-paths>true in $(requirements)
-    {
-        requirements += <hardcode-dll-paths>false ;
-    }
-
-    if <tag> in $(requirements:G)
-    {
-        import errors ;
-        errors.user-error The <tag> property is not allowed for the 'install'
-            rule. ;
-    }
-
-    targets.create-metatarget install-target-class : $(project) : $(name) :
-        $(sources) : $(requirements) : $(default-build) ;
-}
-
-
-IMPORT $(__name__) : install : : install ;
-IMPORT $(__name__) : install : : stage ;

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/6da3961b/ext/kenlm/jam-files/boost-build/tools/stlport.jam
----------------------------------------------------------------------
diff --git a/ext/kenlm b/ext/kenlm
new file mode 160000
index 0000000..56fdb5c
--- /dev/null
+++ b/ext/kenlm
@@ -0,0 +1 @@
+Subproject commit 56fdb5c44fca34d5a2e07d96139c28fb163983c5
diff --git a/ext/kenlm/jam-files/boost-build/tools/stlport.jam b/ext/kenlm/jam-files/boost-build/tools/stlport.jam
deleted file mode 100644
index ed0947c..0000000
--- a/ext/kenlm/jam-files/boost-build/tools/stlport.jam
+++ /dev/null
@@ -1,309 +0,0 @@
-# Copyright Gennadiy Rozental
-# Copyright 2006 Rene Rivera
-# Copyright 2003, 2004, 2006 Vladimir Prus
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
-
-# The STLPort is usable by means of 'stdlib' feature. When
-# stdlib=stlport is specified, default version of STLPort will be used,
-# while stdlib=stlport-4.5 will use specific version.
-# The subfeature value 'hostios' means to use host compiler's iostreams.
-#
-# The specific version of stlport is selected by features:
-# The <runtime-link> feature selects between static and shared library
-# The <runtime-debugging>on selects STLPort with debug symbols
-# and stl debugging.
-# There's no way to use STLPort with debug symbols but without
-# stl debugging.
-
-# TODO: must implement selection of different STLPort installations based
-# on used toolset.
-# Also, finish various flags:
-#
-# This is copied from V1 toolset, "+" means "implemented"
-#+flags $(CURR_TOOLSET) DEFINES <stlport-iostream>off : _STLP_NO_OWN_IOSTREAMS=1 _STLP_HAS_NO_NEW_IOSTREAMS=1 ;
-#+flags $(CURR_TOOLSET) DEFINES <stlport-extensions>off : _STLP_NO_EXTENSIONS=1 ;
-# flags $(CURR_TOOLSET) DEFINES <stlport-anachronisms>off : _STLP_NO_ANACHRONISMS=1 ;
-# flags $(CURR_TOOLSET) DEFINES <stlport-cstd-namespace>global : _STLP_VENDOR_GLOBAL_CSTD=1 ;
-# flags $(CURR_TOOLSET) DEFINES <exception-handling>off : _STLP_NO_EXCEPTIONS=1 ;
-# flags $(CURR_TOOLSET) DEFINES <stlport-debug-alloc>on : _STLP_DEBUG_ALLOC=1 ;
-#+flags $(CURR_TOOLSET) DEFINES <runtime-build>debug : _STLP_DEBUG=1 _STLP_DEBUG_UNINITIALIZED=1 ;
-#+flags $(CURR_TOOLSET) DEFINES <runtime-link>dynamic : _STLP_USE_DYNAMIC_LIB=1 ;
-
-
-import feature : feature subfeature ;
-import project ;
-import "class" : new ;
-import targets ;
-import property-set ;
-import common ;
-import type ;
-
-# Make this module into a project.
-project.initialize $(__name__) ;
-project stlport ;
-
-# The problem: how to request to use host compiler's iostreams?
-#
-# Solution 1: Global 'stlport-iostream' feature.
-#    That's ugly. Subfeature make more sense for stlport-specific thing.
-# Solution 2: Use subfeature with two values, one of which ("use STLPort iostream")
-#     is default.
-#    The problem is that such subfeature will appear in target paths, and that's ugly
-# Solution 3: Use optional subfeature with only one value.
-
-feature.extend stdlib : stlport ;
-feature.compose <stdlib>stlport : <library>/stlport//stlport ;
-
-# STLport iostreams or native iostreams
-subfeature stdlib stlport : iostream : hostios : optional propagated  ;
-
-# STLport extensions
-subfeature stdlib stlport : extensions : noext : optional propagated ;
-
-# STLport anachronisms -- NOT YET SUPPORTED
-# subfeature stdlib stlport : anachronisms : on off ;
-
-# STLport debug allocation -- NOT YET SUPPORTED
-#subfeature stdlib stlport : debug-alloc : off on ;
-
-# Declare a special target class to handle the creation of search-lib-target
-# instances for STLport. We need a special class, because otherwise we'll have
-# - declare prebuilt targets for all possible toolsets. And by the time 'init'
-#   is called we don't even know the list of toolsets that are registered
-# - when host iostreams are used, we really should produce nothing. It would
-#   be hard/impossible to achieve this using prebuilt targets.
-
-class stlport-target-class : basic-target
-{
-    import feature project type errors generators ;
-    import set : difference ;
-
-    rule __init__ ( project : headers ? : libraries * :  version ? )
-    {
-        basic-target.__init__ stlport : $(project) ;
-        self.headers = $(headers) ;
-        self.libraries = $(libraries) ;
-        self.version = $(version) ;
-        self.version.5 = [ MATCH "^(5[.][0123456789]+).*" : $(version) ] ;
-
-        local requirements ;
-        requirements += <stdlib-stlport:version>$(self.version) ;
-        self.requirements = [ property-set.create $(requirements) ] ;
-    }
-
-    rule generate ( property-set )
-    {
-        # Since this target is built with <stdlib>stlport, it will also
-        # have <library>/stlport//stlport in requirements, which will
-        # cause a loop in main target references. Remove that property
-        # manually.
-
-        property-set = [ property-set.create
-            [ difference
-                [ $(property-set).raw ] :
-                <library>/stlport//stlport
-                <stdlib>stlport
-                ]
-            ] ;
-        return [ basic-target.generate $(property-set) ] ;
-    }
-
-    rule construct ( name : source-targets * : property-set )
-    {
-        # Deduce the name of stlport library, based on toolset and
-        # debug setting.
-        local raw = [ $(property-set).raw ] ;
-        local hostios = [ feature.get-values <stdlib-stlport:iostream> : $(raw) ] ;
-        local toolset = [ feature.get-values <toolset> : $(raw) ] ;
-
-        if $(self.version.5)
-        {
-            # Version 5.x
-
-            # STLport host IO streams no longer supported. So we always
-            # need libraries.
-
-            # name: stlport(stl)?[dg]?(_static)?.M.R
-            local name = stlport ;
-            if [ feature.get-values <runtime-debugging> : $(raw) ] = "on"
-            {
-                name += stl ;
-                switch $(toolset)
-                {
-                    case gcc* : name += g ;
-                    case darwin* : name += g ;
-                    case * : name += d ;
-                }
-            }
-
-            if [ feature.get-values <runtime-link> : $(raw) ] = "static"
-            {
-                name += _static ;
-            }
-
-            # Starting with version 5.2.0, the STLport static libraries no
-            # longer include a version number in their name
-            local version.pre.5.2 = [ MATCH "^(5[.][01]+).*" : $(version) ] ;
-            if $(version.pre.5.2) || [ feature.get-values <runtime-link> :
-                $(raw) ] != "static"
-            {
-                name += .$(self.version.5) ;
-            }
-
-            name = $(name:J=) ;
-
-            if [ feature.get-values <install-dependencies> : $(raw) ] = "on"
-            {
-                #~ Allow explicitly asking to install the STLport lib by
-                #~ referring to it directly:
-                #~   /stlport//stlport/<install-dependencies>on
-                #~ This allows for install packaging of all libs one might need
-                #~ for a standalone distribution.
-                import path : make : path-make ;
-                local runtime-link
-                    = [ feature.get-values <runtime-link> : $(raw) ] ;
-                local lib-file.props
-                    = [ property-set.create $(raw) <link>$(runtime-link) ] ;
-                local lib-file.prefix
-                    = [ type.generated-target-prefix $(runtime-link:U)_LIB :
-                        $(lib-file.props) ] ;
-                local lib-file.suffix
-                    = [ type.generated-target-suffix $(runtime-link:U)_LIB :
-                        $(lib-file.props) ] ;
-                lib-file.prefix
-                    ?= "" "lib" ;
-                lib-file.suffix
-                    ?= "" ;
-                local lib-file
-                    = [ GLOB $(self.libraries) [ modules.peek : PATH ] :
-                        $(lib-file.prefix)$(name).$(lib-file.suffix) ] ;
-                lib-file
-                    = [ new file-reference [ path-make $(lib-file[1]) ] :
-                        $(self.project) ] ;
-                lib-file
-                    = [ $(lib-file).generate "" ] ;
-                local lib-file.requirements
-                    = [ targets.main-target-requirements
-                        [ $(lib-file.props).raw ] <file>$(lib-file[-1])
-                        : $(self.project) ] ;
-                return [ generators.construct $(self.project) $(name) : LIB :
-                    $(lib-file.requirements) ] ;
-            }
-            else
-            {
-                #~ Otherwise, it is just regular library usage.
-                return [ generators.construct
-                    $(self.project) $(name) : SEARCHED_LIB : $(property-set) ] ;
-            }
-        }
-        else if ! $(hostios) && $(toolset) != msvc
-        {
-            # We don't need libraries if host istreams are used. For
-            # msvc, automatic library selection will be used.
-
-            # name: stlport_<toolset>(_stldebug)?
-            local name = stlport ;
-            name = $(name)_$(toolset) ;
-            if [ feature.get-values <runtime-debugging> : $(raw) ] = "on"
-            {
-                name = $(name)_stldebug ;
-            }
-
-            return [ generators.construct
-                $(self.project) $(name) : SEARCHED_LIB : $(property-set) ] ;
-        }
-        else
-        {
-            return [ property-set.empty ] ;
-        }
-    }
-
-    rule compute-usage-requirements ( subvariant )
-    {
-        local usage-requirements =
-            <include>$(self.headers)
-            <dll-path>$(self.libraries)
-            <library-path>$(self.libraries)
-            ;
-
-        local rproperties = [ $(subvariant).build-properties ] ;
-        # CONSIDER: should this "if" sequence be replaced with
-        # some use of 'property-map' class?
-        if [ $(rproperties).get <runtime-debugging> ] = "on"
-        {
-            usage-requirements +=
-                <define>_STLP_DEBUG=1
-                <define>_STLP_DEBUG_UNINITIALIZED=1 ;
-        }
-        if [ $(rproperties).get <runtime-link> ] = "shared"
-        {
-            usage-requirements +=
-                <define>_STLP_USE_DYNAMIC_LIB=1 ;
-        }
-        if [ $(rproperties).get <stdlib-stlport:extensions> ] = noext
-        {
-            usage-requirements +=
-                <define>_STLP_NO_EXTENSIONS=1 ;
-        }
-        if [ $(rproperties).get <stdlib-stlport:iostream> ] = hostios
-        {
-            usage-requirements +=
-                <define>_STLP_NO_OWN_IOSTREAMS=1
-                <define>_STLP_HAS_NO_NEW_IOSTREAMS=1 ;
-        }
-        if $(self.version.5)
-        {
-            # Version 5.x
-            if [ $(rproperties).get <threading> ] = "single"
-            {
-                # Since STLport5 doesn't normally support single-thread
-                # we force STLport5 into the multi-thread mode. Hence
-                # getting what other libs provide of single-thread code
-                # linking against a multi-thread lib.
-                usage-requirements +=
-                    <define>_STLP_THREADS=1 ;
-            }
-        }
-
-        return [ property-set.create $(usage-requirements) ] ;
-    }
-}
-
-rule stlport-target ( headers ? : libraries * : version ? )
-{
-    local project = [ project.current ] ;
-
-    targets.main-target-alternative
-      [ new stlport-target-class  $(project) : $(headers) : $(libraries)
-        : $(version)
-      ] ;
-}
-
-local .version-subfeature-defined ;
-
-# Initialize stlport support.
-rule init (
-    version ? :
-    headers   :     # Location of header files
-    libraries *     # Location of libraries, lib and bin subdirs of STLport.
-    )
-{
-    # FIXME: need to use common.check-init-parameters here.
-    # At the moment, that rule always tries to define subfeature
-    # of the 'toolset' feature, while we need to define subfeature
-    # of <stdlib>stlport, so tweaks to check-init-parameters are needed.
-    if $(version)
-    {
-        if ! $(.version-subfeature-defined)
-        {
-            feature.subfeature stdlib stlport : version : : propagated ;
-            .version-subfeature-defined = true ;
-        }
-        feature.extend-subfeature stdlib stlport : version : $(version) ;
-    }
-
-    # Declare the main target for this STLPort version.
-    stlport-target $(headers) : $(libraries) : $(version) ;
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/6da3961b/ext/kenlm/jam-files/boost-build/tools/sun.jam
----------------------------------------------------------------------
diff --git a/ext/kenlm b/ext/kenlm
new file mode 160000
index 0000000..56fdb5c
--- /dev/null
+++ b/ext/kenlm
@@ -0,0 +1 @@
+Subproject commit 56fdb5c44fca34d5a2e07d96139c28fb163983c5
diff --git a/ext/kenlm/jam-files/boost-build/tools/sun.jam b/ext/kenlm/jam-files/boost-build/tools/sun.jam
deleted file mode 100644
index 0ca927d..0000000
--- a/ext/kenlm/jam-files/boost-build/tools/sun.jam
+++ /dev/null
@@ -1,142 +0,0 @@
-#  Copyright (C) Christopher Currie 2003. Permission to copy, use,
-#  modify, sell and distribute this software is granted provided this
-#  copyright notice appears in all copies. This software is provided
-#  "as is" without express or implied warranty, and with no claim as
-#  to its suitability for any purpose.
-
-import property ;
-import generators ;
-import os ;
-import toolset : flags ;
-import feature ;
-import type ;
-import common ;
-
-feature.extend toolset : sun ;
-toolset.inherit  sun : unix ;
-generators.override sun.prebuilt : builtin.lib-generator ;
-generators.override sun.prebuilt : builtin.prebuilt ;
-generators.override sun.searched-lib-generator : searched-lib-generator ;
-
-feature.extend stdlib : sun-stlport ;
-feature.compose <stdlib>sun-stlport
-    : <cxxflags>-library=stlport4 <linkflags>-library=stlport4
-    ;
-
-rule init ( version ? : command * : options * ) 
-{
-    local condition = [ 
-      common.check-init-parameters sun : version $(version) ] ;
-    
-    command = [ common.get-invocation-command sun : CC 
-        : $(command) : "/opt/SUNWspro/bin" ] ;
-
-    # Even if the real compiler is not found, put CC to
-    # command line so that user see command line that would have being executed.
-    command ?= CC ;
-
-    common.handle-options sun : $(condition) : $(command) : $(options) ;
-    
-    command_c = $(command[1--2]) $(command[-1]:B=cc) ;
-
-    toolset.flags sun CONFIG_C_COMMAND $(condition) : $(command_c) ;
-}
-
-# Declare generators
-generators.register-c-compiler sun.compile.c : C : OBJ : <toolset>sun ;
-generators.register-c-compiler sun.compile.c++ : CPP : OBJ : <toolset>sun ;
-
-# Declare flags and actions for compilation
-flags sun.compile OPTIONS <debug-symbols>on : -g ;
-flags sun.compile OPTIONS <profiling>on : -xprofile=tcov ;
-flags sun.compile OPTIONS <optimization>speed : -xO4  ;
-flags sun.compile OPTIONS <optimization>space : -xO2 -xspace ;
-flags sun.compile OPTIONS <threading>multi : -mt ;
-flags sun.compile OPTIONS <warnings>off : -erroff ;
-flags sun.compile OPTIONS <warnings>on : -erroff=%none ;
-flags sun.compile OPTIONS <warnings>all  : -erroff=%none ;
-flags sun.compile OPTIONS <warnings-as-errors>on : -errwarn ;
-
-flags sun.compile.c++ OPTIONS <inlining>off : +d ;
-
-# The -m32 and -m64 options are supported starting
-# with Sun Studio 12.  On earlier compilers, the
-# 'address-model' feature is not supported and should not
-# be used. Instead, use -xarch=generic64 command line
-# option.
-# See http://svn.boost.org/trac/boost/ticket/1186
-# for details.
-flags sun OPTIONS <address-model>32 : -m32 ;
-flags sun OPTIONS <address-model>64 : -m64 ;
-# On sparc, there's a difference between -Kpic
-# and -KPIC. The first is slightly more efficient,
-# but has the limits on the size of GOT table.
-# For minimal fuss on user side, we use -KPIC here.
-# See http://svn.boost.org/trac/boost/ticket/1186#comment:6
-# for detailed explanation.
-flags sun OPTIONS <link>shared : -KPIC ;
-
-flags sun.compile OPTIONS <cflags> ;
-flags sun.compile.c++ OPTIONS <cxxflags> ;
-flags sun.compile DEFINES <define> ;
-flags sun.compile INCLUDES <include> ;
-
-actions compile.c
-{
-    "$(CONFIG_C_COMMAND)" $(OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -c -o "$(<)" "$(>)"
-}
-
-actions compile.c++
-{
-    "$(CONFIG_COMMAND)" $(OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -c -o "$(<)" "$(>)"
-}
-
-# Declare flags and actions for linking
-flags sun.link OPTIONS <debug-symbols>on : -g ;
-# Strip the binary when no debugging is needed
-flags sun.link OPTIONS <debug-symbols>off : -s ;
-flags sun.link OPTIONS <profiling>on : -xprofile=tcov ;
-flags sun.link OPTIONS <threading>multi : -mt ;
-flags sun.link OPTIONS <linkflags> ;
-flags sun.link LINKPATH <library-path> ;
-flags sun.link FINDLIBS-ST <find-static-library> ;
-flags sun.link FINDLIBS-SA <find-shared-library> ;
-flags sun.link LIBRARIES <library-file> ;
-flags sun.link LINK-RUNTIME <runtime-link>static : static ;
-flags sun.link LINK-RUNTIME <runtime-link>shared : dynamic ;
-flags sun.link RPATH <dll-path> ;
-# On gcc, there are separate options for dll path at runtime and
-# link time. On Solaris, there's only one: -R, so we have to use
-# it, even though it's bad idea.
-flags sun.link RPATH <xdll-path> ;
-
-# The POSIX real-time library is always needed (nanosleep, clock_gettime etc.)
-flags sun.link FINDLIBS-SA : rt ;
-
-rule link ( targets * : sources * : properties * )
-{
-    SPACE on $(targets) = " " ;
-}
-
-actions link bind LIBRARIES
-{
-    "$(CONFIG_COMMAND)" $(OPTIONS) -L"$(LINKPATH)" -R"$(RPATH)" -o "$(<)" "$(>)" "$(LIBRARIES)" -Bdynamic -l$(FINDLIBS-SA) -Bstatic -l$(FINDLIBS-ST) -B$(LINK-RUNTIME)
-}
-
-# Slight mods for dlls
-rule link.dll ( targets * : sources * : properties * )
-{
-    SPACE on $(targets) = " " ;
-}
-
-actions link.dll bind LIBRARIES
-{
-    "$(CONFIG_COMMAND)" $(OPTIONS) -L"$(LINKPATH)" -R"$(RPATH)" -o "$(<)" -h$(<[1]:D=) -G "$(>)" "$(LIBRARIES)" -Bdynamic -l$(FINDLIBS-SA) -Bstatic -l$(FINDLIBS-ST) -B$(LINK-RUNTIME)
-}
-
-# Declare action for creating static libraries
-actions piecemeal archive
-{
-    "$(CONFIG_COMMAND)" -xar -o "$(<)" "$(>)"
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/6da3961b/ext/kenlm/jam-files/boost-build/tools/symlink.jam
----------------------------------------------------------------------
diff --git a/ext/kenlm b/ext/kenlm
new file mode 160000
index 0000000..56fdb5c
--- /dev/null
+++ b/ext/kenlm
@@ -0,0 +1 @@
+Subproject commit 56fdb5c44fca34d5a2e07d96139c28fb163983c5
diff --git a/ext/kenlm/jam-files/boost-build/tools/symlink.jam b/ext/kenlm/jam-files/boost-build/tools/symlink.jam
deleted file mode 100644
index b33e826..0000000
--- a/ext/kenlm/jam-files/boost-build/tools/symlink.jam
+++ /dev/null
@@ -1,140 +0,0 @@
-# Copyright 2003 Dave Abrahams 
-# Copyright 2002, 2003 Rene Rivera 
-# Copyright 2002, 2003, 2004, 2005 Vladimir Prus 
-# Distributed under the Boost Software License, Version 1.0. 
-# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) 
-
-# Defines the "symlink" special target. 'symlink' targets make symbolic links
-# to the sources.
-
-import targets modules path class os feature project property-set ;
-
-.count = 0 ;
-
-feature.feature symlink-location : project-relative build-relative : incidental ;
-
-# The class representing "symlink" targets.
-#
-class symlink-targets : basic-target
-{
-    import numbers modules class property project path ;
-    
-    rule __init__ (
-      project
-        : targets *
-        : sources *
-    )
-    {    
-        # Generate a fake name for now. Need unnamed targets eventually.
-        local c = [ modules.peek symlink : .count ] ;
-        modules.poke symlink : .count : [ numbers.increment $(c) ] ;
-        local fake-name = symlink#$(c) ;
-    
-          basic-target.__init__ $(fake-name) : $(project) : $(sources) ;
-    
-        # Remember the targets to map the sources onto. Pad or truncate
-        # to fit the sources given.
-        self.targets = ;
-        for local source in $(sources)
-        {
-            if $(targets)
-            {
-                self.targets += $(targets[1]) ;
-                targets = $(targets[2-]) ;
-            }
-            else
-            {
-                self.targets += $(source) ;
-            }
-        }
-    
-        # The virtual targets corresponding to the given targets.
-        self.virtual-targets = ;
-    }    
-    
-    rule construct ( name : source-targets * : property-set )
-    {
-        local i = 1 ;
-        for local t in $(source-targets)
-        {
-            local s = $(self.targets[$(i)]) ;
-            local a = [ class.new action  $(t) : symlink.ln : $(property-set) ] ;
-            local vt = [ class.new file-target $(s:D=) 
-              : [ $(t).type ] : $(self.project) : $(a) ] ;
-            
-            # Place the symlink in the directory relative to the project
-            # location, instead of placing it in the build directory.
-            if [ property.select <symlink-location> : [ $(property-set).raw ] ] = <symlink-location>project-relative
-            {
-                $(vt).set-path [ path.root $(s:D) [ $(self.project).get location ] ] ;
-            }
-            
-            self.virtual-targets += $(vt) ;
-            i = [ numbers.increment $(i) ] ;
-        }
-        return [ property-set.empty ] $(self.virtual-targets) ;
-    }
-}
-
-# Creates a symbolic link from a set of targets to a set of sources.
-# The targets and sources map one to one. The symlinks generated are
-# limited to be the ones given as the sources. That is, the targets
-# are either padded or trimmed to equate to the sources. The padding
-# is done with the name of the corresponding source. For example::
-#
-#     symlink : one two ;
-#
-# Is equal to::
-#
-#     symlink one two : one two ;
-#
-# Names for symlink are relative to the project location. They cannot
-# include ".." path components.
-rule symlink (
-    targets *
-    : sources *
-    )
-{
-    local project = [ project.current ] ;
-    
-    return [ targets.main-target-alternative
-        [ class.new symlink-targets $(project) : $(targets) : 
-          # Note: inline targets are not supported for symlink, intentionally,
-          # since it's used to linking existing non-local targets.
-          $(sources) ] ] ;
-}
-
-rule ln
-{
-    local os ;
-    if [ modules.peek : UNIX ] { os = UNIX ; }
-    else { os ?= [ os.name ] ; }
-    # Remember the path to make the link relative to where the symlink is located.
-    local path-to-source = [ path.relative-to
-        [ path.make [ on $(<) return $(LOCATE) ] ]
-        [ path.make [ on $(>) return $(LOCATE) ] ] ] ;
-    if $(path-to-source) = .
-    {
-        PATH_TO_SOURCE on $(<) = "" ;
-    }
-    else
-    {
-        PATH_TO_SOURCE on $(<) = [ path.native $(path-to-source) ] ;
-    }
-    ln-$(os) $(<) : $(>) ;
-}
-
-actions ln-UNIX
-{
-    ln -f -s '$(>:D=:R=$(PATH_TO_SOURCE))' '$(<)'
-}
-
-# there is a way to do this; we fall back to a copy for now
-actions ln-NT
-{
-    echo "NT symlinks not supported yet, making copy"
-    del /f /q "$(<)" 2>nul >nul
-    copy "$(>)" "$(<)" $(NULL_OUT)
-}
-
-IMPORT $(__name__) : symlink : : symlink ;

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/6da3961b/ext/kenlm/jam-files/boost-build/tools/testing-aux.jam
----------------------------------------------------------------------
diff --git a/ext/kenlm b/ext/kenlm
new file mode 160000
index 0000000..56fdb5c
--- /dev/null
+++ b/ext/kenlm
@@ -0,0 +1 @@
+Subproject commit 56fdb5c44fca34d5a2e07d96139c28fb163983c5
diff --git a/ext/kenlm/jam-files/boost-build/tools/testing-aux.jam b/ext/kenlm/jam-files/boost-build/tools/testing-aux.jam
deleted file mode 100644
index 64ba003..0000000
--- a/ext/kenlm/jam-files/boost-build/tools/testing-aux.jam
+++ /dev/null
@@ -1,220 +0,0 @@
-# This module is imported by testing.py. The definitions here are
-# too tricky to do in Python
-
-# Causes the 'target' to exist after bjam invocation if and only if all the
-# dependencies were successfully built.
-#
-rule expect-success ( target : dependency + : requirements * )
-{
-    **passed** $(target) : $(sources) ;
-}
-IMPORT testing : expect-success : : testing.expect-success ;
-
-# Causes the 'target' to exist after bjam invocation if and only if all some of
-# the dependencies were not successfully built.
-#
-rule expect-failure ( target : dependency + : properties * )
-{
-    local grist = [ MATCH ^<(.*)> : $(dependency:G) ] ;
-    local marker = $(dependency:G=$(grist)*fail) ;
-    (failed-as-expected) $(marker) ;
-    FAIL_EXPECTED $(dependency) ;
-    LOCATE on $(marker) = [ on $(dependency) return $(LOCATE) ] ;
-    RMOLD $(marker) ;
-    DEPENDS $(marker) : $(dependency) ;
-    DEPENDS $(target) : $(marker) ;
-    **passed** $(target) : $(marker) ;
-}
-IMPORT testing : expect-failure : : testing.expect-failure ;
-
-# The rule/action combination used to report successful passing of a test.
-#
-rule **passed**
-{
-    # Force deletion of the target, in case any dependencies failed to build.
-    RMOLD $(<) ;
-}
-
-
-# Used to create test files signifying passed tests.
-#
-actions **passed**
-{
-    echo passed > "$(<)"
-}
-
-
-# Used to create replacement object files that do not get created during tests
-# that are expected to fail.
-#
-actions (failed-as-expected)
-{
-    echo failed as expected > "$(<)"
-}
-
-# Runs executable 'sources' and stores stdout in file 'target'. Unless
-# --preserve-test-targets command line option has been specified, removes the
-# executable. The 'target-to-remove' parameter controls what should be removed:
-#   - if 'none', does not remove anything, ever
-#   - if empty, removes 'source'
-#   - if non-empty and not 'none', contains a list of sources to remove.
-#
-rule capture-output ( target : source : properties * : targets-to-remove * )
-{
-    output-file on $(target) = $(target:S=.output) ;
-    LOCATE on $(target:S=.output) = [ on $(target) return $(LOCATE) ] ;
-
-    # The INCLUDES kill a warning about independent target...
-    INCLUDES $(target) : $(target:S=.output) ;
-    # but it also puts .output into dependency graph, so we must tell jam it is
-    # OK if it cannot find the target or updating rule.
-    NOCARE $(target:S=.output) ;
-
-    # This has two-fold effect. First it adds input files to the dependendency
-    # graph, preventing a warning. Second, it causes input files to be bound
-    # before target is created. Therefore, they are bound using SEARCH setting
-    # on them and not LOCATE setting of $(target), as in other case (due to jam
-    # bug).
-    DEPENDS $(target) : [ on $(target) return $(INPUT_FILES) ] ;
-
-    if $(targets-to-remove) = none
-    {
-        targets-to-remove = ;
-    }
-    else if ! $(targets-to-remove)
-    {
-        targets-to-remove = $(source) ;
-    }
-
-    if [ on $(target) return $(REMOVE_TEST_TARGETS) ]
-    {
-        TEMPORARY $(targets-to-remove) ;
-        # Set a second action on target that will be executed after capture
-        # output action. The 'RmTemps' rule has the 'ignore' modifier so it is
-        # always considered succeeded. This is needed for 'run-fail' test. For
-        # that test the target will be marked with FAIL_EXPECTED, and without
-        # 'ignore' successful execution will be negated and be reported as
-        # failure. With 'ignore' we do not detect a case where removing files
-        # fails, but it is not likely to happen.
-        RmTemps $(target) : $(targets-to-remove) ;
-    }
-}
-
-
-if [ os.name ] = NT
-{
-    .STATUS        = %status% ;
-    .SET_STATUS    = "set status=%ERRORLEVEL%" ;
-    .RUN_OUTPUT_NL = "echo." ;
-    .STATUS_0      = "%status% EQU 0 (" ;
-    .STATUS_NOT_0  = "%status% NEQ 0 (" ;
-    .VERBOSE       = "%verbose% EQU 1 (" ;
-    .ENDIF         = ")" ;
-    .SHELL_SET     = "set " ;
-    .CATENATE      = type ;
-    .CP            = copy ;
-}
-else
-{
-    .STATUS        = "$status" ;
-    .SET_STATUS    = "status=$?" ;
-    .RUN_OUTPUT_NL = "echo" ;
-    .STATUS_0      = "test $status -eq 0 ; then" ;
-    .STATUS_NOT_0  = "test $status -ne 0 ; then" ;
-    .VERBOSE       = "test $verbose -eq 1 ; then" ;
-    .ENDIF         = "fi" ;
-    .SHELL_SET     = "" ;
-    .CATENATE      = cat ;
-    .CP            = cp ;
-}
-
-
-.VERBOSE_TEST = 0 ;
-if --verbose-test in [ modules.peek : ARGV ]
-{
-    .VERBOSE_TEST = 1 ;
-}
-
-
-.RM = [ common.rm-command ] ;
-
-
-actions capture-output bind INPUT_FILES output-file
-{
-    $(PATH_SETUP)
-    $(LAUNCHER) "$(>)" $(ARGS) "$(INPUT_FILES)" > "$(output-file)" 2>&1
-    $(.SET_STATUS)
-    $(.RUN_OUTPUT_NL) >> "$(output-file)"
-    echo EXIT STATUS: $(.STATUS) >> "$(output-file)"
-    if $(.STATUS_0)
-        $(.CP) "$(output-file)" "$(<)"
-    $(.ENDIF)
-    $(.SHELL_SET)verbose=$(.VERBOSE_TEST)
-    if $(.STATUS_NOT_0)
-        $(.SHELL_SET)verbose=1
-    $(.ENDIF)
-    if $(.VERBOSE)
-        echo ====== BEGIN OUTPUT ======
-        $(.CATENATE) "$(output-file)"
-        echo ====== END OUTPUT ======
-    $(.ENDIF)
-    exit $(.STATUS)
-}
-
-IMPORT testing : capture-output : : testing.capture-output ;
-
-
-actions quietly updated ignore piecemeal together RmTemps
-{
-    $(.RM) "$(>)"
-}
-
-
-.MAKE_FILE = [ common.file-creation-command ] ;
-
-actions unit-test
-{
-    $(PATH_SETUP)
-    $(LAUNCHER) "$(>)" $(ARGS) && $(.MAKE_FILE) "$(<)"
-}
-
-# Note that this rule may be called multiple times for a single target in case
-# there are multiple actions operating on the same target in sequence. One such
-# example are msvc exe targets first created by a linker action and then updated
-# with an embedded manifest file by a separate action.
-rule record-time ( target : source : start end user system )
-{
-    local src-string = [$(source:G=:J=",")"] " ;
-    USER_TIME on $(target) += $(src-string)$(user) ;
-    SYSTEM_TIME on $(target) += $(src-string)$(system) ;
-
-    # We need the following variables because attempting to perform such
-    # variable expansion in actions would not work due to quotes getting treated
-    # as regular characters.
-    USER_TIME_SECONDS on $(target) += $(src-string)$(user)" seconds" ;
-    SYSTEM_TIME_SECONDS on $(target) += $(src-string)$(system)" seconds" ;
-}
-
-# Calling this rule requests that Boost Build time how long it takes to build
-# the 'source' target and display the results both on the standard output and in
-# the 'target' file.
-#
-rule time ( target : sources + : properties *  )
-{
-    # Set up rule for recording timing information.
-    __TIMING_RULE__ on $(sources) = testing.record-time $(target) ;
-
-    # Make sure the sources get rebuilt any time we need to retrieve that
-    # information.
-    REBUILDS $(target) : $(sources) ;
-}
-
-
-actions time
-{
-    echo user: $(USER_TIME)
-    echo system: $(SYSTEM_TIME)
-
-    echo user: $(USER_TIME_SECONDS) > "$(<)"
-    echo system: $(SYSTEM_TIME_SECONDS) >> "$(<)"
-}

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/6da3961b/ext/kenlm/jam-files/boost-build/tools/testing.jam
----------------------------------------------------------------------
diff --git a/ext/kenlm b/ext/kenlm
new file mode 160000
index 0000000..56fdb5c
--- /dev/null
+++ b/ext/kenlm
@@ -0,0 +1 @@
+Subproject commit 56fdb5c44fca34d5a2e07d96139c28fb163983c5
diff --git a/ext/kenlm/jam-files/boost-build/tools/testing.jam b/ext/kenlm/jam-files/boost-build/tools/testing.jam
deleted file mode 100644
index 21e1bd1..0000000
--- a/ext/kenlm/jam-files/boost-build/tools/testing.jam
+++ /dev/null
@@ -1,594 +0,0 @@
-# Copyright 2005 Dave Abrahams
-# Copyright 2002, 2003, 2004, 2005, 2006 Vladimir Prus
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
-
-# This module implements regression testing framework. It declares a number of
-# main target rules which perform some action and, if the results are OK,
-# creates an output file.
-#
-# The exact list of rules is:
-# 'compile'       -- creates .test file if compilation of sources was
-#                    successful.
-# 'compile-fail'  -- creates .test file if compilation of sources failed.
-# 'run'           -- creates .test file is running of executable produced from
-#                    sources was successful. Also leaves behind .output file
-#                    with the output from program run.
-# 'run-fail'      -- same as above, but .test file is created if running fails.
-#
-# In all cases, presence of .test file is an indication that the test passed.
-# For more convenient reporting, you might want to use C++ Boost regression
-# testing utilities (see http://www.boost.org/more/regression.html).
-#
-# For historical reason, a 'unit-test' rule is available which has the same
-# syntax as 'exe' and behaves just like 'run'.
-
-# Things to do:
-#  - Teach compiler_status handle Jamfile.v2.
-# Notes:
-#  - <no-warn> is not implemented, since it is Como-specific, and it is not
-#    clear how to implement it
-#  - std::locale-support is not implemented (it is used in one test).
-
-
-import alias ;
-import "class" ;
-import common ;
-import errors ;
-import feature ;
-import generators ;
-import os ;
-import path ;
-import project ;
-import property ;
-import property-set ;
-import regex ;
-import sequence ;
-import targets ;
-import toolset ;
-import type ;
-import virtual-target ;
-
-
-rule init ( )
-{
-}
-
-
-# Feature controling the command used to lanch test programs.
-feature.feature testing.launcher   : : free optional ;
-
-feature.feature test-info          : : free incidental ;
-feature.feature testing.arg        : : free incidental ;
-feature.feature testing.input-file : : free dependency ;
-
-feature.feature preserve-test-targets : on off : incidental propagated ;
-
-# Register target types.
-type.register TEST         : test          ;
-type.register COMPILE      :        : TEST ;
-type.register COMPILE_FAIL :        : TEST ;
-type.register RUN_OUTPUT   : run           ;
-type.register RUN          :        : TEST ;
-type.register RUN_FAIL     :        : TEST ;
-type.register LINK_FAIL    :        : TEST ;
-type.register LINK         :        : TEST ;
-type.register UNIT_TEST    : passed : TEST ;
-
-
-# Declare the rules which create main targets. While the 'type' module already
-# creates rules with the same names for us, we need extra convenience: default
-# name of main target, so write our own versions.
-
-# Helper rule. Create a test target, using basename of first source if no target
-# name is explicitly passed. Remembers the created target in a global variable.
-#
-rule make-test ( target-type : sources + : requirements * : target-name ? )
-{
-    target-name ?= $(sources[1]:D=:S=) ;
-
-    # Having periods (".") in the target name is problematic because the typed
-    # generator will strip the suffix and use the bare name for the file
-    # targets. Even though the location-prefix averts problems most times it
-    # does not prevent ambiguity issues when referring to the test targets. For
-    # example when using the XML log output. So we rename the target to remove
-    # the periods, and provide an alias for users.
-    local real-name = [ regex.replace $(target-name) "[.]" "~" ] ;
-
-    local project = [ project.current ] ;
-    # The <location-prefix> forces the build system for generate paths in the
-    # form '$build_dir/array1.test/gcc/debug'. This is necessary to allow
-    # post-processing tools to work.
-    local t = [ targets.create-typed-target [ type.type-from-rule-name
-        $(target-type) ] : $(project) : $(real-name) : $(sources) :
-        $(requirements) <location-prefix>$(real-name).test ] ;
-
-    # The alias to the real target, per period replacement above.
-    if $(real-name) != $(target-name)
-    {
-        alias $(target-name) : $(t) ;
-    }
-
-    # Remember the test (for --dump-tests). A good way would be to collect all
-    # given a project. This has some technical problems: e.g. we can not call
-    # this dump from a Jamfile since projects referred by 'build-project' are
-    # not available until the whole Jamfile has been loaded.
-    .all-tests += $(t) ;
-    return $(t) ;
-}
-
-
-# Note: passing more that one cpp file here is known to fail. Passing a cpp file
-# and a library target works.
-#
-rule compile ( sources + : requirements * : target-name ? )
-{
-    return [ make-test compile : $(sources) : $(requirements) : $(target-name) ]
-        ;
-}
-
-
-rule compile-fail ( sources + : requirements * : target-name ? )
-{
-    return [ make-test compile-fail : $(sources) : $(requirements) :
-        $(target-name) ] ;
-}
-
-
-rule link ( sources + : requirements * : target-name ? )
-{
-    return [ make-test link : $(sources) : $(requirements) : $(target-name) ] ;
-}
-
-
-rule link-fail ( sources + : requirements * : target-name ? )
-{
-    return [ make-test link-fail : $(sources) : $(requirements) : $(target-name)
-        ] ;
-}
-
-
-rule handle-input-files ( input-files * )
-{
-    if $(input-files[2])
-    {
-        # Check that sorting made when creating property-set instance will not
-        # change the ordering.
-        if [ sequence.insertion-sort $(input-files) ] != $(input-files)
-        {
-            errors.user-error "Names of input files must be sorted alphabetically"
-                : "due to internal limitations" ;
-        }
-    }
-    return <testing.input-file>$(input-files) ;
-}
-
-
-rule run ( sources + : args * : input-files * : requirements * : target-name ? :
-    default-build * )
-{
-    requirements += <testing.arg>$(args:J=" ") ;
-    requirements += [ handle-input-files $(input-files) ] ;
-    return [ make-test run : $(sources) : $(requirements) : $(target-name) ] ;
-}
-
-
-rule run-fail ( sources + : args * : input-files * : requirements * :
-    target-name ? : default-build * )
-{
-    requirements += <testing.arg>$(args:J=" ") ;
-    requirements += [ handle-input-files $(input-files) ] ;
-    return [ make-test run-fail : $(sources) : $(requirements) : $(target-name)
-        ] ;
-}
-
-
-# Use 'test-suite' as a synonym for 'alias', for backward compatibility.
-IMPORT : alias : : test-suite ;
-
-
-# For all main targets in 'project-module', which are typed targets with type
-# derived from 'TEST', produce some interesting information.
-#
-rule dump-tests
-{
-    for local t in $(.all-tests)
-    {
-        dump-test $(t) ;
-    }
-}
-
-
-# Given a project location in normalized form (slashes are forward), compute the
-# name of the Boost library.
-#
-local rule get-library-name ( path )
-{
-    # Path is in normalized form, so all slashes are forward.
-    local match1 = [ MATCH /(tools|libs)/(.*)/(test|example) : $(path) ] ;
-    local match2 = [ MATCH /(tools|libs)/(.*)$ : $(path) ] ;
-    local match3 = [ MATCH (/status$) : $(path) ] ;
-
-    if $(match1) { return $(match1[2]) ; }
-    else if $(match2) { return $(match2[2]) ; }
-    else if $(match3) { return "" ; }
-    else if --dump-tests in [ modules.peek : ARGV ]
-    {
-        # The 'run' rule and others might be used outside boost. In that case,
-        # just return the path, since the 'library name' makes no sense.
-        return $(path) ;
-    }
-}
-
-
-# Was an XML dump requested?
-.out-xml = [ MATCH --out-xml=(.*) : [ modules.peek : ARGV ] ] ;
-
-
-# Takes a target (instance of 'basic-target') and prints
-#   - its type
-#   - its name
-#   - comments specified via the <test-info> property
-#   - relative location of all source from the project root.
-#
-rule dump-test ( target )
-{
-    local type = [ $(target).type ] ;
-    local name = [ $(target).name ] ;
-    local project = [ $(target).project ] ;
-
-    local project-root = [ $(project).get project-root ] ;
-    local library = [ get-library-name [ path.root [ $(project).get location ]
-        [ path.pwd ] ] ] ;
-    if $(library)
-    {
-        name = $(library)/$(name) ;
-    }
-
-    local sources = [ $(target).sources ] ;
-    local source-files ;
-    for local s in $(sources)
-    {
-        if [ class.is-a $(s) : file-reference ]
-        {
-            local location = [ path.root [ path.root [ $(s).name ]
-                [ $(s).location ] ] [ path.pwd ] ] ;
-
-            source-files += [ path.relative-to [ path.root $(project-root)
-                [ path.pwd ] ] $(location) ] ;
-        }
-    }
-
-    local target-name = [ $(project).get location ] // [ $(target).name ] .test
-        ;
-    target-name = $(target-name:J=) ;
-
-    local r = [ $(target).requirements ] ;
-    # Extract values of the <test-info> feature.
-    local test-info = [ $(r).get <test-info> ] ;
-
-    # If the user requested XML output on the command-line, add the test info to
-    # that XML file rather than dumping them to stdout.
-    if $(.out-xml)
-    {
-        local nl = "
-" ;
-        .contents on $(.out-xml) +=
-            "$(nl)  <test type=\"$(type)\" name=\"$(name)\">"
-            "$(nl)    <target><![CDATA[$(target-name)]]></target>"
-            "$(nl)    <info><![CDATA[$(test-info)]]></info>"
-            "$(nl)    <source><![CDATA[$(source-files)]]></source>"
-            "$(nl)  </test>"
-            ;
-    }
-    else
-    {
-        # Format them into a single string of quoted strings.
-        test-info = \"$(test-info:J=\"\ \")\" ;
-
-        ECHO boost-test($(type)) \"$(name)\" [$(test-info)] ":"
-            \"$(source-files)\" ;
-    }
-}
-
-
-# Register generators. Depending on target type, either 'expect-success' or
-# 'expect-failure' rule will be used.
-generators.register-standard testing.expect-success : OBJ        : COMPILE      ;
-generators.register-standard testing.expect-failure : OBJ        : COMPILE_FAIL ;
-generators.register-standard testing.expect-success : RUN_OUTPUT : RUN          ;
-generators.register-standard testing.expect-failure : RUN_OUTPUT : RUN_FAIL     ;
-generators.register-standard testing.expect-failure : EXE        : LINK_FAIL    ;
-generators.register-standard testing.expect-success : EXE        : LINK         ;
-
-# Generator which runs an EXE and captures output.
-generators.register-standard testing.capture-output : EXE : RUN_OUTPUT ;
-
-# Generator which creates a target if sources run successfully. Differs from RUN
-# in that run output is not captured. The reason why it exists is that the 'run'
-# rule is much better for automated testing, but is not user-friendly (see
-# http://article.gmane.org/gmane.comp.lib.boost.build/6353).
-generators.register-standard testing.unit-test : EXE : UNIT_TEST ;
-
-
-# The action rules called by generators.
-
-# Causes the 'target' to exist after bjam invocation if and only if all the
-# dependencies were successfully built.
-#
-rule expect-success ( target : dependency + : requirements * )
-{
-    **passed** $(target) : $(sources) ;
-}
-
-
-# Causes the 'target' to exist after bjam invocation if and only if all some of
-# the dependencies were not successfully built.
-#
-rule expect-failure ( target : dependency + : properties * )
-{
-    local grist = [ MATCH ^<(.*)> : $(dependency:G) ] ;
-    local marker = $(dependency:G=$(grist)*fail) ;
-    (failed-as-expected) $(marker) ;
-    FAIL_EXPECTED $(dependency) ;
-    LOCATE on $(marker) = [ on $(dependency) return $(LOCATE) ] ;
-    RMOLD $(marker) ;
-    DEPENDS $(marker) : $(dependency) ;
-    DEPENDS $(target) : $(marker) ;
-    **passed** $(target) : $(marker) ;
-}
-
-
-# The rule/action combination used to report successful passing of a test.
-#
-rule **passed**
-{
-    # Dump all the tests, if needed. We do it here, since dump should happen
-    # only after all Jamfiles have been read, and there is no such place
-    # currently defined (but there should be).
-    if ! $(.dumped-tests) && ( --dump-tests in [ modules.peek : ARGV ] )
-    {
-        .dumped-tests = true ;
-        dump-tests ;
-    }
-
-    # Force deletion of the target, in case any dependencies failed to build.
-    RMOLD $(<) ;
-}
-
-
-# Used to create test files signifying passed tests.
-#
-actions **passed**
-{
-    echo passed > "$(<)"
-}
-
-
-# Used to create replacement object files that do not get created during tests
-# that are expected to fail.
-#
-actions (failed-as-expected)
-{
-    echo failed as expected > "$(<)"
-}
-
-
-rule run-path-setup ( target : source : properties * )
-{
-    # For testing, we need to make sure that all dynamic libraries needed by the
-    # test are found. So, we collect all paths from dependency libraries (via
-    # xdll-path property) and add whatever explicit dll-path user has specified.
-    # The resulting paths are added to the environment on each test invocation.
-    local dll-paths = [ feature.get-values <dll-path> : $(properties) ] ;
-    dll-paths += [ feature.get-values <xdll-path> : $(properties) ] ;
-    dll-paths += [ on $(source) return $(RUN_PATH) ] ;
-    dll-paths = [ sequence.unique $(dll-paths) ] ;
-    if $(dll-paths)
-    {
-        dll-paths = [ sequence.transform path.native : $(dll-paths) ] ;
-        PATH_SETUP on $(target) = [ common.prepend-path-variable-command
-            [ os.shared-library-path-variable ] : $(dll-paths) ] ;
-    }
-}
-
-
-local argv = [ modules.peek : ARGV ] ;
-
-toolset.flags testing.capture-output ARGS <testing.arg> ;
-toolset.flags testing.capture-output INPUT_FILES <testing.input-file> ;
-toolset.flags testing.capture-output LAUNCHER <testing.launcher> ;
-
-
-# Runs executable 'sources' and stores stdout in file 'target'. Unless
-# --preserve-test-targets command line option has been specified, removes the
-# executable. The 'target-to-remove' parameter controls what should be removed:
-#   - if 'none', does not remove anything, ever
-#   - if empty, removes 'source'
-#   - if non-empty and not 'none', contains a list of sources to remove.
-#
-rule capture-output ( target : source : properties * : targets-to-remove * )
-{
-    output-file on $(target) = $(target:S=.output) ;
-    LOCATE on $(target:S=.output) = [ on $(target) return $(LOCATE) ] ;
-
-    # The INCLUDES kill a warning about independent target...
-    INCLUDES $(target) : $(target:S=.output) ;
-    # but it also puts .output into dependency graph, so we must tell jam it is
-    # OK if it cannot find the target or updating rule.
-    NOCARE $(target:S=.output) ;
-
-    # This has two-fold effect. First it adds input files to the dependendency
-    # graph, preventing a warning. Second, it causes input files to be bound
-    # before target is created. Therefore, they are bound using SEARCH setting
-    # on them and not LOCATE setting of $(target), as in other case (due to jam
-    # bug).
-    DEPENDS $(target) : [ on $(target) return $(INPUT_FILES) ] ;
-
-    if $(targets-to-remove) = none
-    {
-        targets-to-remove = ;
-    }
-    else if ! $(targets-to-remove)
-    {
-        targets-to-remove = $(source) ;
-    }
-
-    run-path-setup $(target) : $(source) : $(properties) ;
-
-    if [ feature.get-values preserve-test-targets : $(properties) ] = off
-    {
-        TEMPORARY $(targets-to-remove) ;
-        # Set a second action on target that will be executed after capture
-        # output action. The 'RmTemps' rule has the 'ignore' modifier so it is
-        # always considered succeeded. This is needed for 'run-fail' test. For
-        # that test the target will be marked with FAIL_EXPECTED, and without
-        # 'ignore' successful execution will be negated and be reported as
-        # failure. With 'ignore' we do not detect a case where removing files
-        # fails, but it is not likely to happen.
-        RmTemps $(target) : $(targets-to-remove) ;
-    }
-}
-
-
-if [ os.name ] = NT
-{
-    .STATUS        = %status% ;
-    .SET_STATUS    = "set status=%ERRORLEVEL%" ;
-    .RUN_OUTPUT_NL = "echo." ;
-    .STATUS_0      = "%status% EQU 0 (" ;
-    .STATUS_NOT_0  = "%status% NEQ 0 (" ;
-    .VERBOSE       = "%verbose% EQU 1 (" ;
-    .ENDIF         = ")" ;
-    .SHELL_SET     = "set " ;
-    .CATENATE      = type ;
-    .CP            = copy ;
-}
-else
-{
-    .STATUS        = "$status" ;
-    .SET_STATUS    = "status=$?" ;
-    .RUN_OUTPUT_NL = "echo" ;
-    .STATUS_0      = "test $status -eq 0 ; then" ;
-    .STATUS_NOT_0  = "test $status -ne 0 ; then" ;
-    .VERBOSE       = "test $verbose -eq 1 ; then" ;
-    .ENDIF         = "fi" ;
-    .SHELL_SET     = "" ;
-    .CATENATE      = cat ;
-    .CP            = cp ;
-}
-
-
-.VERBOSE_TEST = 0 ;
-if --verbose-test in [ modules.peek : ARGV ]
-{
-    .VERBOSE_TEST = 1 ;
-}
-
-
-.RM = [ common.rm-command ] ;
-
-
-actions capture-output bind INPUT_FILES output-file
-{
-    $(PATH_SETUP)
-    $(LAUNCHER) "$(>)" $(ARGS) "$(INPUT_FILES)" > "$(output-file)" 2>&1
-    $(.SET_STATUS)
-    $(.RUN_OUTPUT_NL) >> "$(output-file)"
-    echo EXIT STATUS: $(.STATUS) >> "$(output-file)"
-    if $(.STATUS_0)
-        $(.CP) "$(output-file)" "$(<)"
-    $(.ENDIF)
-    $(.SHELL_SET)verbose=$(.VERBOSE_TEST)
-    if $(.STATUS_NOT_0)
-        $(.SHELL_SET)verbose=1
-    $(.ENDIF)
-    if $(.VERBOSE)
-        echo ====== BEGIN OUTPUT ======
-        $(.CATENATE) "$(output-file)"
-        echo ====== END OUTPUT ======
-    $(.ENDIF)
-    exit $(.STATUS)
-}
-
-
-actions quietly updated ignore piecemeal together RmTemps
-{
-    $(.RM) "$(>)"
-}
-
-
-.MAKE_FILE = [ common.file-creation-command ] ;
-
-toolset.flags testing.unit-test LAUNCHER <testing.launcher> ;
-toolset.flags testing.unit-test ARGS <testing.arg> ;
-
-
-rule unit-test ( target : source : properties * )
-{
-    run-path-setup $(target) : $(source) : $(properties) ;
-}
-
-
-actions unit-test
-{
-    $(PATH_SETUP)
-    $(LAUNCHER) "$(>)" $(ARGS) && $(.MAKE_FILE) "$(<)"
-}
-
-
-IMPORT $(__name__) : compile compile-fail run run-fail link link-fail
-    : : compile compile-fail run run-fail link link-fail ;
-
-
-# This is a composing generator to support cases where a generator for the
-# specified target constructs other targets as well. One such example is msvc's
-# exe generator that constructs both EXE and PDB targets.
-type.register TIME : time ;
-generators.register-composing testing.time : : TIME ;
-
-
-# Note that this rule may be called multiple times for a single target in case
-# there are multiple actions operating on the same target in sequence. One such
-# example are msvc exe targets first created by a linker action and then updated
-# with an embedded manifest file by a separate action.
-rule record-time ( target : source : start end user system )
-{
-    local src-string = [$(source:G=:J=",")"] " ;
-    USER_TIME on $(target) += $(src-string)$(user) ;
-    SYSTEM_TIME on $(target) += $(src-string)$(system) ;
-
-    # We need the following variables because attempting to perform such
-    # variable expansion in actions would not work due to quotes getting treated
-    # as regular characters.
-    USER_TIME_SECONDS on $(target) += $(src-string)$(user)" seconds" ;
-    SYSTEM_TIME_SECONDS on $(target) += $(src-string)$(system)" seconds" ;
-}
-
-
-IMPORT testing : record-time : : testing.record-time ;
-
-
-# Calling this rule requests that Boost Build time how long it takes to build
-# the 'source' target and display the results both on the standard output and in
-# the 'target' file.
-#
-rule time ( target : sources + : properties *  )
-{
-    # Set up rule for recording timing information.
-    __TIMING_RULE__ on $(sources) = testing.record-time $(target) ;
-
-    # Make sure the sources get rebuilt any time we need to retrieve that
-    # information.
-    REBUILDS $(target) : $(sources) ;
-}
-
-
-actions time
-{
-    echo user: $(USER_TIME)
-    echo system: $(SYSTEM_TIME)
-
-    echo user: $(USER_TIME_SECONDS) > "$(<)"
-    echo system: $(SYSTEM_TIME_SECONDS) >> "$(<)"
-}

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/6da3961b/ext/kenlm/jam-files/boost-build/tools/tiff.jam
----------------------------------------------------------------------
diff --git a/ext/kenlm b/ext/kenlm
new file mode 160000
index 0000000..56fdb5c
--- /dev/null
+++ b/ext/kenlm
@@ -0,0 +1 @@
+Subproject commit 56fdb5c44fca34d5a2e07d96139c28fb163983c5
diff --git a/ext/kenlm/jam-files/boost-build/tools/tiff.jam b/ext/kenlm/jam-files/boost-build/tools/tiff.jam
deleted file mode 100644
index 14f235e..0000000
--- a/ext/kenlm/jam-files/boost-build/tools/tiff.jam
+++ /dev/null
@@ -1,230 +0,0 @@
-# Copyright (c) 2010 Vladimir Prus.
-# Copyright (c) 2013 Steven Watanabe
-#
-# Use, modification and distribution is subject to the Boost Software
-# License Version 1.0. (See accompanying file LICENSE_1_0.txt or
-# http://www.boost.org/LICENSE_1_0.txt)
-
-# Supports the libtiff library
-#
-# After 'using libtiff', the following targets are available:
-#
-# /libtiff//libtiff -- The libtiff library
-
-import project ;
-import ac ;
-import errors ;
-import "class" : new ;
-import targets ; 
-import path ;
-import modules ;
-import errors ;
-import indirect ;
-import property ;
-import property-set ;
-
-header = tiff.h tiffio.hxx ;
-
-names = libtiff ;
-
-sources =   tif_aux.c tif_close.c tif_codec.c tif_color.c tif_compress.c tif_dir.c tif_dirinfo.c
-	tif_dirread.c tif_dirwrite.c tif_dumpmode.c tif_error.c tif_extension.c tif_fax3.c tif_fax3sm.c
-	tif_getimage.c tif_jbig.c tif_jpeg.c tif_jpeg_12.c tif_ojpeg.c tif_flush.c tif_luv.c tif_lzw.c
-	tif_next.c tif_open.c tif_packbits.c tif_pixarlog.c tif_predict.c tif_print.c tif_read.c tif_stream.cxx
-	tif_swab.c tif_strip.c tif_thunder.c tif_tile.c tif_version.c tif_warning.c tif_write.c tif_zip.c ;
-
-library-id = 0 ;
-
-if --debug-configuration in [ modules.peek : ARGV ]
-{
-    .debug =  true ;
-}
-
-# Initializes the libtiff library.
-#
-# libtiff can be configured either to use pre-existing binaries
-# or to build the library from source.
-#
-# Options for configuring a prebuilt libtiff::
-#
-#   <search>
-#       The directory containing the libtiff binaries.
-#   <name>
-#       Overrides the default library name.
-#   <include>
-#       The directory containing the libtiff headers.
-#
-# If none of these options is specified, then the environmental
-# variables LIBTIFF_LIBRARY_PATH, LIBTIFF_NAME, and LIBTIFF_INCLUDE will
-# be used instead.
-#
-# Options for building libtiff from source::
-#
-#   <source>
-#       The libtiff source directory.  Defaults to the environmental variable
-#       LIBTIFF_SOURCE.
-#   <tag>
-#       A rule which computes the actual name of the compiled
-#       libraries based on the build properties.  Ignored
-#       when using precompiled binaries.
-#   <build-name>
-#       The base name to use for the compiled library.  Ignored
-#       when using precompiled binaries.
-#
-# Examples::
-#
-#   # Find libtiff in the default system location
-#   using libtiff ;
-#   # Build libtiff from source
-#   using libtiff : 4.0.1 : <source>/home/steven/libtiff-4.0.1 ;
-#   # Find libtiff in /usr/local
-#   using libtiff : 4.0.1
-#     : <include>/usr/local/include <search>/usr/local/lib ;
-#   # Build libtiff from source for msvc and find
-#   # prebuilt binaries for gcc.
-#   using libtiff : 4.0.1 : <source>C:/Devel/src/libtiff-4.0.1 : <toolset>msvc ;
-#   using libtiff : 4.0.1 : : <toolset>gcc ;
-#
-rule init (
-    version ?
-    # The libtiff version (currently ignored)
-
-    : options *
-    # A list of the options to use
-
-    : requirements *
-    # The requirements for the libtiff target
-
-    : is-default ?
-    # Default configurations are only used when libtiff
-    # has not yet been configured.
-    )
-{
-    local caller = [ project.current ] ;
-
-    if ! $(.initialized)
-    {
-        .initialized = true ;
-
-        project.initialize $(__name__) ;
-        .project = [ project.current ] ;
-        project libtiff ;
-    }
-
-    local library-path = [ property.select <search> : $(options) ] ;
-    library-path = $(library-path:G=) ;
-    local include-path = [ property.select <include> : $(options) ] ;
-    include-path = $(include-path:G=) ;
-    local source-path = [ property.select <source> : $(options) ] ;
-    source-path = $(source-path:G=) ;
-    local library-name = [ property.select <name> : $(options) ] ;
-    library-name = $(library-name:G=) ;
-    local tag = [ property.select <tag> : $(options) ] ;
-    tag = $(tag:G=) ;
-    local build-name = [ property.select <build-name> : $(options) ] ;
-    build-name = $(build-name:G=) ;
-
-    condition = [ property-set.create $(requirements) ] ;
-    condition = [ property-set.create [ $(condition).base ] ] ;
-
-    local no-build-from-source ;
-    # Ignore environmental ZLIB_SOURCE if this initialization
-    # requested to search for a specific pre-built library.
-    if $(library-path) || $(include-path) || $(library-name)
-    {
-        if $(source-path) || $(tag) || $(build-name)
-        {
-            errors.user-error "incompatible options for libtiff:"
-                [ property.select <search> <include> <name> : $(options) ] "and"
-                [ property.select <source> <tag> <build-name> : $(options) ] ;
-        }
-        else
-        {
-            no-build-from-source = true ;
-        }
-    }
-
-    source-path ?= [ modules.peek : ZLIB_SOURCE ] ;
-
-    if $(.configured.$(condition))
-    {
-        if $(is-default)
-        {
-            if $(.debug)
-            {
-                ECHO "notice: [libtiff] libtiff is already configured" ;
-            }
-        }
-        else
-        {
-            errors.user-error "libtiff is already configured" ;
-        }
-        return ;
-    }
-    else if $(source-path) && ! $(no-build-from-source)
-    {
-        build-name ?= z ;
-        library-id = [ CALC $(library-id) + 1 ] ;
-        tag = [ MATCH ^@?(.*)$ : $(tag) ] ;
-        if $(tag) && ! [ MATCH ^([^%]*)%([^%]+)$ : $(tag) ]
-        {
-            tag = [ indirect.make $(tag) : [ $(caller).project-module ] ] ;
-        }
-        sources = [ path.glob $(source-path) : $(sources) ] ;
-        if $(.debug)
-        {
-            ECHO "notice: [libtiff] Building libtiff from source as $(build-name)" ;
-            if $(condition)
-            {
-                ECHO "notice: [libtiff] Condition" [ $(condition).raw ] ;
-            }
-            if $(sources)
-            {
-                ECHO "notice: [libtiff] found libtiff source in $(source-path)" ;
-            }
-            else
-            {
-                ECHO "warning: [libtiff] could not find libtiff source in $(source-path)" ;
-            }
-        }
-        local target ;
-        if $(sources) {
-            target = [ targets.create-typed-target LIB : $(.project)
-              : $(build-name).$(library-id)
-              : $(sources)
-              : $(requirements)
-                <tag>@$(tag)
-                <include>$(source-path)
-                <toolset>msvc:<define>_CRT_SECURE_NO_DEPRECATE
-                <toolset>msvc:<define>_SCL_SECURE_NO_DEPRECATE
-                <link>shared:<define>ZLIB_DLL
-              :
-              : <include>$(source-path) ] ;
-        }
-
-        local mt = [ new ac-library libtiff : $(.project) : $(condition) ] ;
-        $(mt).set-header $(header) ;
-        $(mt).set-default-names $(names) ;
-        if $(target)
-        {
-            $(mt).set-target $(target) ;
-        }
-        targets.main-target-alternative $(mt) ;
-    } else {
-        if $(.debug)
-        {
-            ECHO "notice: [libtiff] Using pre-installed library" ;
-            if $(condition)
-            {
-                ECHO "notice: [libtiff] Condition" [ $(condition).raw ] ;
-            }
-        }
-
-        local mt = [ new ac-library libtiff : $(.project) : $(condition) :
-            $(include-path) : $(library-path) : $(library-name) : $(root) ] ;
-        $(mt).set-header $(header) ;
-        $(mt).set-default-names $(names) ;
-        targets.main-target-alternative $(mt) ;
-    }
-    .configured.$(condition) = true ;
-}

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/6da3961b/ext/kenlm/jam-files/boost-build/tools/types/asm.jam
----------------------------------------------------------------------
diff --git a/ext/kenlm b/ext/kenlm
new file mode 160000
index 0000000..56fdb5c
--- /dev/null
+++ b/ext/kenlm
@@ -0,0 +1 @@
+Subproject commit 56fdb5c44fca34d5a2e07d96139c28fb163983c5
diff --git a/ext/kenlm/jam-files/boost-build/tools/types/asm.jam b/ext/kenlm/jam-files/boost-build/tools/types/asm.jam
deleted file mode 100644
index a340db3..0000000
--- a/ext/kenlm/jam-files/boost-build/tools/types/asm.jam
+++ /dev/null
@@ -1,4 +0,0 @@
-# Copyright Craig Rodrigues 2005. Distributed under the Boost
-# Software License, Version 1.0. (See accompanying
-# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-type ASM : s S asm ;

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/6da3961b/ext/kenlm/jam-files/boost-build/tools/types/cpp.jam
----------------------------------------------------------------------
diff --git a/ext/kenlm b/ext/kenlm
new file mode 160000
index 0000000..56fdb5c
--- /dev/null
+++ b/ext/kenlm
@@ -0,0 +1 @@
+Subproject commit 56fdb5c44fca34d5a2e07d96139c28fb163983c5
diff --git a/ext/kenlm/jam-files/boost-build/tools/types/cpp.jam b/ext/kenlm/jam-files/boost-build/tools/types/cpp.jam
deleted file mode 100644
index 29d8faa..0000000
--- a/ext/kenlm/jam-files/boost-build/tools/types/cpp.jam
+++ /dev/null
@@ -1,90 +0,0 @@
-# Copyright 2004 David Abrahams
-# Copyright 2002, 2003, 2004, 2005, 2006 Vladimir Prus
-# Copyright 2010 Rene Rivera
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or copy at
-# http://www.boost.org/LICENSE_1_0.txt)
-
-import scanner ;
-import type ;
-
-
-class c-scanner : scanner
-{
-    import path ;
-    import regex ;
-    import scanner ;
-    import sequence ;
-    import virtual-target ;
-
-    rule __init__ ( includes * )
-    {
-        scanner.__init__ ;
-
-        for local i in $(includes)
-        {
-            self.includes += [ sequence.transform path.native : [ regex.split
-                $(i:G=) "&&" ] ] ;
-        }
-    }
-
-    rule pattern ( )
-    {
-        return "#[ \t]*include[ ]*(<(.*)>|\"(.*)\")" ;
-    }
-
-    rule process ( target : matches * : binding )
-    {
-        local angle = [ regex.transform $(matches) : "<(.*)>" ] ;
-        angle = [ sequence.transform path.native : $(angle) ] ;
-        local quoted = [ regex.transform $(matches) : "\"(.*)\"" ] ;
-        quoted = [ sequence.transform path.native : $(quoted) ] ;
-
-        # CONSIDER: the new scoping rules seem to defeat "on target" variables.
-        local g = [ on $(target) return $(HDRGRIST) ] ;
-        local b = [ NORMALIZE_PATH $(binding:D) ] ;
-
-        # Attach binding of including file to included targets. When a target is
-        # directly created from a virtual target this extra information is
-        # unnecessary. But in other cases, it allows us to distinguish between
-        # two headers of the same name included from different places. We do not
-        # need this extra information for angle includes, since they should not
-        # depend on the including file (we can not get literal "." in the
-        # include path).
-        local g2 = $(g)"#"$(b) ;
-
-        angle = $(angle:G=$(g)) ;
-        quoted = $(quoted:G=$(g2)) ;
-
-        local all = $(angle) $(quoted) ;
-
-        INCLUDES $(target) : $(all) ;
-        NOCARE $(all) ;
-        SEARCH on $(angle) = $(self.includes:G=) ;
-        SEARCH on $(quoted) = $(b) $(self.includes:G=) ;
-
-        # Just propagate the current scanner to includes, in hope that includes
-        # do not change scanners.
-        scanner.propagate $(__name__) : $(all) : $(target) ;
-
-        ISFILE $(all) ;
-    }
-}
-
-scanner.register c-scanner : include ;
-
-type.register CPP : cpp cxx cc ;
-type.register H   : h ;
-type.register HPP : hpp : H ;
-type.register C   : c ;
-
-# It most cases where a CPP file or a H file is a source of some action, we
-# should rebuild the result if any of files included by CPP/H are changed. One
-# case when this is not needed is installation, which is handled specifically.
-type.set-scanner CPP : c-scanner ;
-type.set-scanner C   : c-scanner ;
-# One case where scanning of H/HPP files is necessary is PCH generation -- if
-# any header included by HPP being precompiled changes, we need to recompile the
-# header.
-type.set-scanner H   : c-scanner ;
-type.set-scanner HPP : c-scanner ;

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/6da3961b/ext/kenlm/jam-files/boost-build/tools/types/exe.jam
----------------------------------------------------------------------
diff --git a/ext/kenlm b/ext/kenlm
new file mode 160000
index 0000000..56fdb5c
--- /dev/null
+++ b/ext/kenlm
@@ -0,0 +1 @@
+Subproject commit 56fdb5c44fca34d5a2e07d96139c28fb163983c5
diff --git a/ext/kenlm/jam-files/boost-build/tools/types/exe.jam b/ext/kenlm/jam-files/boost-build/tools/types/exe.jam
deleted file mode 100644
index 4710951..0000000
--- a/ext/kenlm/jam-files/boost-build/tools/types/exe.jam
+++ /dev/null
@@ -1,9 +0,0 @@
-# Copyright David Abrahams 2004. Distributed under the Boost
-# Software License, Version 1.0. (See accompanying
-# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-import type ;
-
-type.register EXE ;
-type.set-generated-target-suffix EXE : <target-os>windows : "exe" ;
-type.set-generated-target-suffix EXE : <target-os>cygwin : "exe" ;

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/6da3961b/ext/kenlm/jam-files/boost-build/tools/types/html.jam
----------------------------------------------------------------------
diff --git a/ext/kenlm b/ext/kenlm
new file mode 160000
index 0000000..56fdb5c
--- /dev/null
+++ b/ext/kenlm
@@ -0,0 +1 @@
+Subproject commit 56fdb5c44fca34d5a2e07d96139c28fb163983c5
diff --git a/ext/kenlm/jam-files/boost-build/tools/types/html.jam b/ext/kenlm/jam-files/boost-build/tools/types/html.jam
deleted file mode 100644
index 5cd337d..0000000
--- a/ext/kenlm/jam-files/boost-build/tools/types/html.jam
+++ /dev/null
@@ -1,4 +0,0 @@
-# Copyright David Abrahams 2004. Distributed under the Boost
-# Software License, Version 1.0. (See accompanying
-# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-type HTML : html ;

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/6da3961b/ext/kenlm/jam-files/boost-build/tools/types/lib.jam
----------------------------------------------------------------------
diff --git a/ext/kenlm b/ext/kenlm
new file mode 160000
index 0000000..56fdb5c
--- /dev/null
+++ b/ext/kenlm
@@ -0,0 +1 @@
+Subproject commit 56fdb5c44fca34d5a2e07d96139c28fb163983c5
diff --git a/ext/kenlm/jam-files/boost-build/tools/types/lib.jam b/ext/kenlm/jam-files/boost-build/tools/types/lib.jam
deleted file mode 100644
index 854ab8f..0000000
--- a/ext/kenlm/jam-files/boost-build/tools/types/lib.jam
+++ /dev/null
@@ -1,74 +0,0 @@
-# Copyright David Abrahams 2004. Distributed under the Boost
-# Software License, Version 1.0. (See accompanying
-# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-import type ; # for set-generated-target-suffix
-import os ;
-
-# The following naming scheme is used for libraries.
-#
-# On *nix:
-#     libxxx.a       static library
-#     libxxx.so      shared library
-#
-# On windows (msvc)
-#     libxxx.lib     static library
-#     xxx.dll        DLL
-#     xxx.lib        import library
-#
-# On windows (mingw):
-#     libxxx.a       static library
-#     libxxx.dll     DLL
-#     libxxx.dll.a   import library
-#
-# On cygwin i.e. <target-os>cygwin
-#     libxxx.a       static library
-#     cygxxx.dll     DLL
-#     libxxx.dll.a   import library
-#
-
-type.register LIB ;
-
-# FIXME: should not register both extensions on both platforms.
-type.register STATIC_LIB : a lib : LIB ;
-
-# The 'lib' prefix is used everywhere
-type.set-generated-target-prefix STATIC_LIB : : lib ;
-
-# Use '.lib' suffix for windows
-type.set-generated-target-suffix STATIC_LIB : <target-os>windows : lib ;
-
-# Except with gcc.
-type.set-generated-target-suffix STATIC_LIB : <toolset>gcc <target-os>windows : a ;
-
-# Use xxx.lib for import libs
-type IMPORT_LIB : : STATIC_LIB ;
-type.set-generated-target-prefix IMPORT_LIB : : "" ;
-type.set-generated-target-suffix IMPORT_LIB : : lib ;
-
-# Except with gcc (mingw or cygwin), where use libxxx.dll.a
-type.set-generated-target-prefix IMPORT_LIB : <toolset>gcc : lib ;
-type.set-generated-target-suffix IMPORT_LIB : <toolset>gcc : dll.a ;
-
-type.register SHARED_LIB : so dll dylib : LIB ;
-
-# Both mingw and cygwin use libxxx.dll naming scheme.
-# On Linux, use "lib" prefix
-type.set-generated-target-prefix SHARED_LIB : : lib ;
-# But don't use it on windows
-type.set-generated-target-prefix SHARED_LIB : <target-os>windows : "" ;
-# But use it again on mingw
-type.set-generated-target-prefix SHARED_LIB : <toolset>gcc <target-os>windows : lib ;
-# And use 'cyg' on cygwin
-type.set-generated-target-prefix SHARED_LIB : <target-os>cygwin : cyg ;
-
-
-type.set-generated-target-suffix SHARED_LIB : <target-os>windows : dll ;
-type.set-generated-target-suffix SHARED_LIB : <target-os>cygwin : dll ;
-type.set-generated-target-suffix SHARED_LIB : <target-os>darwin : dylib ;
-
-type SEARCHED_LIB : : LIB ;
-# This is needed so that when we create a target of SEARCHED_LIB
-# type, there's no prefix or suffix automatically added.
-type.set-generated-target-prefix SEARCHED_LIB : : "" ;
-type.set-generated-target-suffix SEARCHED_LIB : : "" ;

http://git-wip-us.apache.org/repos/asf/incubator-joshua/blob/6da3961b/ext/kenlm/jam-files/boost-build/tools/types/obj.jam
----------------------------------------------------------------------
diff --git a/ext/kenlm b/ext/kenlm
new file mode 160000
index 0000000..56fdb5c
--- /dev/null
+++ b/ext/kenlm
@@ -0,0 +1 @@
+Subproject commit 56fdb5c44fca34d5a2e07d96139c28fb163983c5
diff --git a/ext/kenlm/jam-files/boost-build/tools/types/obj.jam b/ext/kenlm/jam-files/boost-build/tools/types/obj.jam
deleted file mode 100644
index 6afbcaa..0000000
--- a/ext/kenlm/jam-files/boost-build/tools/types/obj.jam
+++ /dev/null
@@ -1,9 +0,0 @@
-# Copyright David Abrahams 2004. Distributed under the Boost
-# Software License, Version 1.0. (See accompanying
-# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-import type ;
-
-type.register OBJ : o obj ;
-type.set-generated-target-suffix OBJ : <target-os>windows : obj ;
-type.set-generated-target-suffix OBJ : <target-os>cygwin : obj ;