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:
authorBarry Haddow <barry.haddow@gmail.com>2012-09-27 01:50:48 +0400
committerBarry Haddow <barry.haddow@gmail.com>2012-09-27 01:50:48 +0400
commit9931a1e0fd84fa0cd2a149fde0b67ccd54b4b65c (patch)
tree07590a018a7ea586b0ba0f4414cb834863a4c54b
parent0a950ee9f4227c8afbbe58d03a854745479ffbc0 (diff)
parentbc866f37ff13251e9c8cf8548669f788449d9238 (diff)
Merge remote branch 'github/master' into miramerge
-rw-r--r--jam-files/sanity.jam47
-rw-r--r--moses/src/CompactPT/Jamfile12
-rw-r--r--moses/src/LM/Jamfile40
m---------regression-testing/tests0
4 files changed, 38 insertions, 61 deletions
diff --git a/jam-files/sanity.jam b/jam-files/sanity.jam
index a2616f6bf..6beec3f94 100644
--- a/jam-files/sanity.jam
+++ b/jam-files/sanity.jam
@@ -235,42 +235,21 @@ rule add-post-hook ( names * ) {
post-hooks += $(names) ;
}
-
-#Backend for writing content to files after build completes.
-post-files = ;
-post-contents = ;
-rule save-post-build ( ok ? ) {
- if $(ok) {
- while $(post-files) {
- local ignored = @($(post-files[1]):E=$(post-contents[1])) ;
- post-files = $(post-files[2-]) ;
- post-contents = $(post-contents[2-]) ;
- }
- }
-}
-add-post-hook save-post-build ;
-
-#Queue content to be written to file when build completes successfully.
-rule add-post-write ( name content ) {
- post-files += $(name) ;
- post-contents += $(content) ;
+import feature : feature ;
+feature options-to-write : : free ;
+import toolset : flags ;
+flags write-options OPTIONS-TO-WRITE <options-to-write> ;
+actions write-options {
+ echo "$(OPTIONS-TO-WRITE)" > $(<) ;
}
-#Compare contents of file with current. If they're different, force the targets to rebuild then overwrite the file.
-rule always-if-changed ( file current : targets * ) {
- local previous = inconsistent ;
- if [ path.exists $(file) ] {
- previous = [ _shell "cat $(file)" ] ;
- }
- if $(current) != $(previous) {
- #Write inconsistent while the build is running
- if [ path.exists $(file) ] {
- local ignored = @($(file):E=inconsistent) ;
- }
- add-post-write $(file) $(current) ;
- for local i in $(targets) {
- always $(i) ;
- }
+#Compare contents of file with current. If they're different, write to the
+#file. This file can then be used with <dependency>$(file) to force
+#recompilation.
+rule update-if-changed ( file current ) {
+ if ( ! [ path.exists $(file) ] ) || ( [ _shell "cat $(file)" ] != $(current) ) {
+ make $(file) : : $(__name__).write-options : <options-to-write>$(current) ;
+ always $(file) ;
}
}
diff --git a/moses/src/CompactPT/Jamfile b/moses/src/CompactPT/Jamfile
index cf7fe2552..c4c5db96f 100644
--- a/moses/src/CompactPT/Jamfile
+++ b/moses/src/CompactPT/Jamfile
@@ -1,10 +1,10 @@
-local current = ;
+local current = "" ;
local includes = ;
local with-cmph = [ option.get "with-cmph" ] ;
if $(with-cmph) {
lib cmph : : <search>$(with-cmph)/lib ;
includes += <include>$(with-cmph)/include ;
- current += "--with-cmph=$(with-cmph)" ;
+ current = "--with-cmph=$(with-cmph)" ;
}
else {
alias cmph ;
@@ -12,9 +12,7 @@ else {
alias sources : [ glob *.cpp ] ;
-lib CompactPT : sources ..//moses_internal cmph : $(includes) ;
-
path-constant PT-LOG : bin/pt.log ;
-current = $(current:J=" ") ;
-current ?= "" ;
-always-if-changed $(PT-LOG) $(current) : sources ;
+update-if-changed $(PT-LOG) $(current) ;
+
+lib CompactPT : sources ..//moses_internal cmph : $(includes) <dependency>$(PT-LOG) ;
diff --git a/moses/src/LM/Jamfile b/moses/src/LM/Jamfile
index c9d3ac76a..60f73303d 100644
--- a/moses/src/LM/Jamfile
+++ b/moses/src/LM/Jamfile
@@ -7,6 +7,25 @@
import option path ;
+#This is a kludge to force rebuilding if different --with options are passed.
+#Could have used features like <srilm>on but getting these to apply only to
+#linking was ugly and it still didn't trigger an install (since the install
+#path doesn't encode features). It stores a file lm.log with the previous
+#options and forces a rebuild if the current options differ.
+local current = ;
+for local i in srilm irstlm randlm {
+ local optval = [ option.get "with-$(i)" ] ;
+ if $(optval) {
+ current += "--with-$(i)=$(optval)" ;
+ }
+}
+current = $(current:J=" ") ;
+current ?= "" ;
+
+path-constant LM-LOG : bin/lm.log ;
+update-if-changed $(LM-LOG) $(current) ;
+
+
local dependencies = ;
#IRSTLM
@@ -69,28 +88,9 @@ if $(with-ldhtlm) {
obj ORLM.o : ORLM.cpp ..//headers ../DynSAInclude//dynsa : : : <include>../DynSAInclude ;
#The factory needs the macros LM_IRST etc to know which ones to use.
-obj Factory.o : Factory.cpp ..//headers $(dependencies) : <include>../DynSAInclude ;
+obj Factory.o : Factory.cpp ..//headers $(dependencies) : <include>../DynSAInclude <dependency>$(LM-LOG) ;
#Top-level LM library. If you've added a file that doesn't depend on external
#libraries, put it here.
lib LM : Base.cpp Factory.o Implementation.cpp Joint.cpp Ken.cpp MultiFactor.cpp Remote.cpp SingleFactor.cpp ORLM.o
../../../lm//kenlm ..//headers $(dependencies) ;
-
-#Everything below is a kludge to force rebuilding if different --with options
-#are passed. Could have used features like <srilm>on but getting these to
-#apply only to linking was ugly and it still didn't trigger an install (since
-#the install path doesn't encode features). It stores a file lm.log with the
-#previous options and forces a rebuild if the current options differ.
-path-constant LM-LOG : bin/lm.log ;
-
-local current = ;
-for local i in srilm irstlm randlm {
- local optval = [ option.get "with-$(i)" ] ;
- if $(optval) {
- current += "--with-$(i)=$(optval)" ;
- }
-}
-current = $(current:J=" ") ;
-current ?= "" ;
-
-always-if-changed $(LM-LOG) $(current) : Factory.o LM ;
diff --git a/regression-testing/tests b/regression-testing/tests
-Subproject b579ddc30ea33bbb4a7eec24ec7a7d93c9e2a99
+Subproject f0bb48dad05db4a12b41f5c8def9c2d097b2e3b