diff options
author | Dmitry Sivachenko <demon@FreeBSD.org> | 2014-09-02 13:42:23 +0000 |
---|---|---|
committer | Dmitry Sivachenko <demon@FreeBSD.org> | 2014-09-02 13:42:23 +0000 |
commit | fbaaa3b5eecb309fef8eb1e81fc53cfb3be5aabe (patch) | |
tree | 7c3e05d70228eae78e3258a3c86ddac56e4316fb /math | |
parent | 9cf4c167329a70d6f7374a87328c273809d8a4a2 (diff) | |
download | ports-fbaaa3b5eecb309fef8eb1e81fc53cfb3be5aabe.tar.gz ports-fbaaa3b5eecb309fef8eb1e81fc53cfb3be5aabe.zip |
Notes
Diffstat (limited to 'math')
-rw-r--r-- | math/Makefile | 1 | ||||
-rw-r--r-- | math/mosesdecoder/Makefile | 34 | ||||
-rw-r--r-- | math/mosesdecoder/distinfo | 2 | ||||
-rw-r--r-- | math/mosesdecoder/files/patch-Jamroot | 10 | ||||
-rw-r--r-- | math/mosesdecoder/files/patch-jam-files-sanity.jam | 11 | ||||
-rw-r--r-- | math/mosesdecoder/files/patch-lm-Jamfile | 11 | ||||
-rw-r--r-- | math/mosesdecoder/files/patch-util-Jamfile | 10 | ||||
-rw-r--r-- | math/mosesdecoder/pkg-descr | 7 | ||||
-rw-r--r-- | math/mosesdecoder/pkg-plist | 259 |
9 files changed, 345 insertions, 0 deletions
diff --git a/math/Makefile b/math/Makefile index 39ca2f119393..c4762e903943 100644 --- a/math/Makefile +++ b/math/Makefile @@ -243,6 +243,7 @@ SUBDIR += minisat SUBDIR += miracl SUBDIR += moo + SUBDIR += mosesdecoder SUBDIR += mpc SUBDIR += mpexpr SUBDIR += mpfr diff --git a/math/mosesdecoder/Makefile b/math/mosesdecoder/Makefile new file mode 100644 index 000000000000..c52420bd6058 --- /dev/null +++ b/math/mosesdecoder/Makefile @@ -0,0 +1,34 @@ +# Created by: Dmitry Sivachenko <demon@FreeBSD.org> +# $FreeBSD$ + +PORTNAME= mosesdecoder +PORTVERSION= 2.1.1 +CATEGORIES= math + +MAINTAINER= demon@FreeBSD.org +COMMENT= A statistical machine translation system + +BUILD_DEPENDS= bash:${PORTSDIR}/shells/bash +LIB_DEPENDS= libboost_thread.so:${PORTSDIR}/devel/boost-libs \ + libRandLM.so:${PORTSDIR}/textproc/randlm \ + libirstlm.so:${PORTSDIR}/textproc/irstlm +RUN_DEPENDS= lmplz:${PORTSDIR}/textproc/kenlm + +USE_GITHUB= yes +GH_ACCOUNT= moses-smt +GH_TAGNAME= RELEASE-2.1.1 +GH_COMMIT= 4ea250e + +USES= compiler:c++11-lang + +MAKE_ENV+= BOOST_BUILD_PATH=${WRKSRC}/jam-files/boost-build + +do-build: + cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} bjam --with-boost=${LOCALBASE} --with-irstlm=${LOCALBASE} --with-randlm=${LOCALBASE} --without-tcmalloc --notrace --toolset=${CHOSEN_COMPILER_TYPE} debug-symbols=off ${_MAKE_JOBS} + +do-install: + ${MKDIR} ${STAGEDIR}${DATADIR} + cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} bjam --with-boost=${LOCALBASE} --with-irstlm=${LOCALBASE} --with-randlm=${LOCALBASE} --without-tcmalloc --notrace --prefix=${STAGEDIR}${PREFIX} --install-scripts=${STAGEDIR}${DATADIR} --toolset=${CHOSEN_COMPILER_TYPE} debug-symbols=off ${_MAKE_JOBS} release + cd ${STAGEDIR}${PREFIX}/bin && ${RM} build_binary filter fragment lmplz query + +.include <bsd.port.mk> diff --git a/math/mosesdecoder/distinfo b/math/mosesdecoder/distinfo new file mode 100644 index 000000000000..0c6c07a54f75 --- /dev/null +++ b/math/mosesdecoder/distinfo @@ -0,0 +1,2 @@ +SHA256 (mosesdecoder-2.1.1.tar.gz) = 41344081ff944e03d1b5e934f31994758256592e201c222f1f86c7996caae5c3 +SIZE (mosesdecoder-2.1.1.tar.gz) = 14935829 diff --git a/math/mosesdecoder/files/patch-Jamroot b/math/mosesdecoder/files/patch-Jamroot new file mode 100644 index 000000000000..51e52e16286c --- /dev/null +++ b/math/mosesdecoder/files/patch-Jamroot @@ -0,0 +1,10 @@ +--- Jamroot.orig 2014-09-02 16:03:01.000000000 +0400 ++++ Jamroot 2014-09-02 16:04:17.000000000 +0400 +@@ -77,7 +77,6 @@ + external-lib z ; + + lib dl : : <runtime-link>static:<link>static <runtime-link>shared:<link>shared ; +-requirements += <library>dl ; + + + if ! [ option.get "without-tcmalloc" : : "yes" ] && [ test_library "tcmalloc_minimal" ] { diff --git a/math/mosesdecoder/files/patch-jam-files-sanity.jam b/math/mosesdecoder/files/patch-jam-files-sanity.jam new file mode 100644 index 000000000000..8e131d38baab --- /dev/null +++ b/math/mosesdecoder/files/patch-jam-files-sanity.jam @@ -0,0 +1,11 @@ +--- jam-files/sanity.jam.orig 2014-08-30 10:44:53.000000000 +0400 ++++ jam-files/sanity.jam 2014-08-30 20:33:46.000000000 +0400 +@@ -162,7 +162,7 @@ rule boost-lib ( name macro : deps * ) { + + #Argument is e.g. 103600 + rule boost ( min-version ) { +- local cmd = "bash -c \"g++ "$(I-boost-include)" -dM -x c++ -E /dev/null -include boost/version.hpp 2>/dev/null |grep '#define BOOST_'\"" ; ++ local cmd = "bash -c \"CC "$(I-boost-include)" -dM -x c++ -E /dev/null -include boost/version.hpp 2>/dev/null |grep '#define BOOST_'\"" ; + local boost-shell = [ SHELL "$(cmd)" : exit-status ] ; + if $(boost-shell[2]) != 0 && $(CLEANING) = no { + echo Failed to run "$(cmd)" ; diff --git a/math/mosesdecoder/files/patch-lm-Jamfile b/math/mosesdecoder/files/patch-lm-Jamfile new file mode 100644 index 000000000000..70c7ddf2888c --- /dev/null +++ b/math/mosesdecoder/files/patch-lm-Jamfile @@ -0,0 +1,11 @@ +--- lm/Jamfile.orig 2014-03-03 19:07:02.000000000 +0400 ++++ lm/Jamfile 2014-09-02 16:09:24.000000000 +0400 +@@ -17,8 +17,6 @@ + + import testing ; + +-run left_test.cc kenlm /top//boost_unit_test_framework : : test.arpa ; +-run model_test.cc kenlm /top//boost_unit_test_framework : : test.arpa test_nounk.arpa ; + run partial_test.cc kenlm /top//boost_unit_test_framework : : test.arpa ; + + exes = ; diff --git a/math/mosesdecoder/files/patch-util-Jamfile b/math/mosesdecoder/files/patch-util-Jamfile new file mode 100644 index 000000000000..82852cfd1402 --- /dev/null +++ b/math/mosesdecoder/files/patch-util-Jamfile @@ -0,0 +1,10 @@ +--- util/Jamfile.orig 2014-09-02 16:01:51.000000000 +0400 ++++ util/Jamfile 2014-09-02 16:01:53.000000000 +0400 +@@ -26,7 +26,6 @@ + unit-test bit_packing_test : bit_packing_test.cc kenutil /top//boost_unit_test_framework ; + run file_piece_test.o kenutil /top//boost_unit_test_framework : : file_piece.cc ; + unit-test read_compressed_test : read_compressed_test.o kenutil /top//boost_unit_test_framework ; +-unit-test joint_sort_test : joint_sort_test.cc kenutil /top//boost_unit_test_framework ; + unit-test probing_hash_table_test : probing_hash_table_test.cc kenutil /top//boost_unit_test_framework ; + unit-test sorted_uniform_test : sorted_uniform_test.cc kenutil /top//boost_unit_test_framework ; + unit-test tokenize_piece_test : tokenize_piece_test.cc kenutil /top//boost_unit_test_framework ; diff --git a/math/mosesdecoder/pkg-descr b/math/mosesdecoder/pkg-descr new file mode 100644 index 000000000000..92ad7bfda3f5 --- /dev/null +++ b/math/mosesdecoder/pkg-descr @@ -0,0 +1,7 @@ +Moses is a statistical machine translation system that allows you to +automatically train translation models for any language pair. All you +need is a collection of translated texts (parallel corpus). Once you have a +trained model, an efficient search algorithm quickly finds the highest +probability translation among the exponential number of choices. + +WWW: http://www.statmt.org/moses/ diff --git a/math/mosesdecoder/pkg-plist b/math/mosesdecoder/pkg-plist new file mode 100644 index 000000000000..af0ea3d0493f --- /dev/null +++ b/math/mosesdecoder/pkg-plist @@ -0,0 +1,259 @@ +bin/CreateOnDiskPt +bin/biconcor +bin/consolidate +bin/consolidate-direct +bin/consolidate-reverse +bin/evaluator +bin/extract +bin/extract-ghkm +bin/extract-lex +bin/extract-rules +bin/extractor +bin/generateSequences +bin/kbmira +bin/lexical-reordering-score +bin/lmbrgrid +bin/mert +bin/mira +bin/moses +bin/moses_chart +bin/pcfg-extract +bin/pcfg-score +bin/pro +bin/processLexicalTable +bin/processPhraseTable +bin/queryLexicalTable +bin/queryOnDiskPt +bin/queryPhraseTable +bin/relax-parse +bin/score +bin/sentence-bleu +bin/statistics +bin/symal +lib/libmert_lib.a +lib/libmira_lib.a +lib/libmoses.a +lib/libpcfg_common.a +%%DATADIR%%/OSM/OSM-Train.perl +%%DATADIR%%/OSM/extract-singletons.perl +%%DATADIR%%/OSM/flipAlignment.perl +%%DATADIR%%/README +%%DATADIR%%/Transliteration/clean.pl +%%DATADIR%%/Transliteration/corpusCreator.pl +%%DATADIR%%/Transliteration/prepare-transliteration-phrase-table.pl +%%DATADIR%%/Transliteration/threshold.pl +%%DATADIR%%/Transliteration/train-transliteration-module.pl +%%DATADIR%%/analysis/README +%%DATADIR%%/analysis/bootstrap-hypothesis-difference-significance.pl +%%DATADIR%%/analysis/extract-target-trees.py +%%DATADIR%%/analysis/nontranslated_words.pl +%%DATADIR%%/analysis/oov.pl +%%DATADIR%%/analysis/perllib/Error.pm +%%DATADIR%%/analysis/sentence-by-sentence.pl +%%DATADIR%%/analysis/sg2dot.perl +%%DATADIR%%/analysis/show-phrases-used.pl +%%DATADIR%%/analysis/smtgui/Corpus.pm +%%DATADIR%%/analysis/smtgui/README +%%DATADIR%%/analysis/smtgui/file-descriptions +%%DATADIR%%/analysis/smtgui/file-factors +%%DATADIR%%/analysis/smtgui/filter-phrase-table.pl +%%DATADIR%%/analysis/smtgui/newsmtgui.cgi +%%DATADIR%%/analysis/suspicious_tokenization.pl +%%DATADIR%%/analysis/weight-scan-summarize.sh +%%DATADIR%%/analysis/weight-scan.pl +%%DATADIR%%/ems/example/config.basic +%%DATADIR%%/ems/example/config.factored +%%DATADIR%%/ems/example/config.hierarchical +%%DATADIR%%/ems/example/config.syntax +%%DATADIR%%/ems/example/config.toy +%%DATADIR%%/ems/example/data/config.hierarchical +%%DATADIR%%/ems/example/data/nc-5k.en +%%DATADIR%%/ems/example/data/nc-5k.fr +%%DATADIR%%/ems/example/data/run.hierarchical.sh +%%DATADIR%%/ems/example/data/test-ref.en.sgm +%%DATADIR%%/ems/example/data/test-src.fr.sgm +%%DATADIR%%/ems/example/data/weight.ini +%%DATADIR%%/ems/experiment.machines +%%DATADIR%%/ems/experiment.meta +%%DATADIR%%/ems/experiment.perl +%%DATADIR%%/ems/fix-info.perl +%%DATADIR%%/ems/support/analysis.perl +%%DATADIR%%/ems/support/berkeley-process.sh +%%DATADIR%%/ems/support/berkeley-train.sh +%%DATADIR%%/ems/support/build-domain-file-from-subcorpora.perl +%%DATADIR%%/ems/support/build-sparse-features.perl +%%DATADIR%%/ems/support/consolidate-training-data.perl +%%DATADIR%%/ems/support/defaultconfig.py +%%DATADIR%%/ems/support/generic-multicore-parallelizer.perl +%%DATADIR%%/ems/support/generic-parallelizer.perl +%%DATADIR%%/ems/support/input-from-sgm.perl +%%DATADIR%%/ems/support/interpolate-lm.perl +%%DATADIR%%/ems/support/mml-filter.perl +%%DATADIR%%/ems/support/mml-filter.py +%%DATADIR%%/ems/support/mml-score.perl +%%DATADIR%%/ems/support/mml-train.perl +%%DATADIR%%/ems/support/prepare-fast-align.perl +%%DATADIR%%/ems/support/reference-from-sgm.perl +%%DATADIR%%/ems/support/remove-segmentation-markup.perl +%%DATADIR%%/ems/support/report-experiment-scores.perl +%%DATADIR%%/ems/support/run-command-on-multiple-refsets.perl +%%DATADIR%%/ems/support/run-wade.perl +%%DATADIR%%/ems/support/split-sentences.perl +%%DATADIR%%/ems/support/substitute-filtered-tables-and-weights.perl +%%DATADIR%%/ems/support/substitute-filtered-tables.perl +%%DATADIR%%/ems/support/substitute-weights.perl +%%DATADIR%%/ems/support/symmetrize-fast-align.perl +%%DATADIR%%/ems/support/wrap-xml.perl +%%DATADIR%%/ems/web/analysis.php +%%DATADIR%%/ems/web/analysis_diff.php +%%DATADIR%%/ems/web/base64.js +%%DATADIR%%/ems/web/bilingual-concordance.css +%%DATADIR%%/ems/web/close.gif +%%DATADIR%%/ems/web/comment.php +%%DATADIR%%/ems/web/diff.php +%%DATADIR%%/ems/web/favicon.ico +%%DATADIR%%/ems/web/general.css +%%DATADIR%%/ems/web/hierarchical-segmentation.css +%%DATADIR%%/ems/web/hierarchical-segmentation.js +%%DATADIR%%/ems/web/index.php +%%DATADIR%%/ems/web/javascripts/builder.js +%%DATADIR%%/ems/web/javascripts/controls.js +%%DATADIR%%/ems/web/javascripts/dragdrop.js +%%DATADIR%%/ems/web/javascripts/effects.js +%%DATADIR%%/ems/web/javascripts/prototype.js +%%DATADIR%%/ems/web/javascripts/scriptaculous-js-1.8.3/lib/prototype.js +%%DATADIR%%/ems/web/javascripts/scriptaculous-js-1.8.3/src/builder.js +%%DATADIR%%/ems/web/javascripts/scriptaculous-js-1.8.3/src/controls.js +%%DATADIR%%/ems/web/javascripts/scriptaculous-js-1.8.3/src/dragdrop.js +%%DATADIR%%/ems/web/javascripts/scriptaculous-js-1.8.3/src/effects.js +%%DATADIR%%/ems/web/javascripts/scriptaculous-js-1.8.3/src/scriptaculous.js +%%DATADIR%%/ems/web/javascripts/scriptaculous-js-1.8.3/src/slider.js +%%DATADIR%%/ems/web/javascripts/scriptaculous-js-1.8.3/src/sound.js +%%DATADIR%%/ems/web/javascripts/scriptaculous-js-1.8.3/src/unittest.js +%%DATADIR%%/ems/web/javascripts/scriptaculous.js +%%DATADIR%%/ems/web/javascripts/slider.js +%%DATADIR%%/ems/web/javascripts/sound.js +%%DATADIR%%/ems/web/javascripts/unittest.js +%%DATADIR%%/ems/web/lib.php +%%DATADIR%%/ems/web/overview.php +%%DATADIR%%/ems/web/progress.perl +%%DATADIR%%/ems/web/setup +%%DATADIR%%/ems/web/sgviz.js +%%DATADIR%%/ems/web/sgviz.php +%%DATADIR%%/ems/web/spinner.gif +%%DATADIR%%/fuzzy-match/compile.sh +%%DATADIR%%/fuzzy-match/create_xml.perl +%%DATADIR%%/generic/compound-splitter.perl +%%DATADIR%%/generic/extract-factors.pl +%%DATADIR%%/generic/extract-parallel.perl +%%DATADIR%%/generic/fsa-sample.fsa +%%DATADIR%%/generic/fsa2plf.pl +%%DATADIR%%/generic/giza-parallel.perl +%%DATADIR%%/generic/lopar2pos.pl +%%DATADIR%%/generic/moses-parallel.pl +%%DATADIR%%/generic/mteval-v12.pl +%%DATADIR%%/generic/mteval-v13a.pl +%%DATADIR%%/generic/multi-bleu.perl +%%DATADIR%%/generic/ph_numbers.perl +%%DATADIR%%/generic/qsub-wrapper.pl +%%DATADIR%%/generic/reverse-alignment.perl +%%DATADIR%%/generic/score-parallel.perl +%%DATADIR%%/generic/strip-xml.perl +%%DATADIR%%/generic/trainlm-irst2.perl +%%DATADIR%%/generic/trainlm-lmplz.perl +%%DATADIR%%/recaser/detruecase.perl +%%DATADIR%%/recaser/recase.perl +%%DATADIR%%/recaser/train-recaser.perl +%%DATADIR%%/recaser/train-truecaser.perl +%%DATADIR%%/recaser/truecase.perl +%%DATADIR%%/share/nonbreaking_prefixes/README.txt +%%DATADIR%%/share/nonbreaking_prefixes/nonbreaking_prefix.ca +%%DATADIR%%/share/nonbreaking_prefixes/nonbreaking_prefix.cs +%%DATADIR%%/share/nonbreaking_prefixes/nonbreaking_prefix.de +%%DATADIR%%/share/nonbreaking_prefixes/nonbreaking_prefix.el +%%DATADIR%%/share/nonbreaking_prefixes/nonbreaking_prefix.en +%%DATADIR%%/share/nonbreaking_prefixes/nonbreaking_prefix.es +%%DATADIR%%/share/nonbreaking_prefixes/nonbreaking_prefix.fr +%%DATADIR%%/share/nonbreaking_prefixes/nonbreaking_prefix.hu +%%DATADIR%%/share/nonbreaking_prefixes/nonbreaking_prefix.is +%%DATADIR%%/share/nonbreaking_prefixes/nonbreaking_prefix.it +%%DATADIR%%/share/nonbreaking_prefixes/nonbreaking_prefix.lv +%%DATADIR%%/share/nonbreaking_prefixes/nonbreaking_prefix.nl +%%DATADIR%%/share/nonbreaking_prefixes/nonbreaking_prefix.pl +%%DATADIR%%/share/nonbreaking_prefixes/nonbreaking_prefix.pt +%%DATADIR%%/share/nonbreaking_prefixes/nonbreaking_prefix.ro +%%DATADIR%%/share/nonbreaking_prefixes/nonbreaking_prefix.ru +%%DATADIR%%/share/nonbreaking_prefixes/nonbreaking_prefix.sk +%%DATADIR%%/share/nonbreaking_prefixes/nonbreaking_prefix.sl +%%DATADIR%%/share/nonbreaking_prefixes/nonbreaking_prefix.sv +%%DATADIR%%/tokenizer/deescape-special-chars.perl +%%DATADIR%%/tokenizer/detokenizer.perl +%%DATADIR%%/tokenizer/escape-special-chars.perl +%%DATADIR%%/tokenizer/lowercase.perl +%%DATADIR%%/tokenizer/normalize-punctuation.perl +%%DATADIR%%/tokenizer/replace-unicode-punctuation.perl +%%DATADIR%%/tokenizer/tokenizer.perl +%%DATADIR%%/training/LexicalTranslationModel.pm +%%DATADIR%%/training/absolutize_moses_model.pl +%%DATADIR%%/training/analyse_moses_model.pl +%%DATADIR%%/training/binarize-model.perl +%%DATADIR%%/training/build-generation-table.perl +%%DATADIR%%/training/clean-corpus-n.perl +%%DATADIR%%/training/clone_moses_model.pl +%%DATADIR%%/training/combine_factors.pl +%%DATADIR%%/training/convert-moses-ini-to-v2.perl +%%DATADIR%%/training/corpus-sizes.perl +%%DATADIR%%/training/create_count_tables.py +%%DATADIR%%/training/exodus.perl +%%DATADIR%%/training/filter-model-given-input.pl +%%DATADIR%%/training/filter-rule-table.py +%%DATADIR%%/training/flexibility_score.py +%%DATADIR%%/training/get-lexical.perl +%%DATADIR%%/training/giza2bal.pl +%%DATADIR%%/training/mert-moses.pl +%%DATADIR%%/training/postprocess-lopar.perl +%%DATADIR%%/training/reduce-topt-count.pl +%%DATADIR%%/training/reduce_combine.pl +%%DATADIR%%/training/remove-orphan-phrase-pairs-from-reordering-table.perl +%%DATADIR%%/training/threshold-filter.perl +%%DATADIR%%/training/train-global-lexicon-model.perl +%%DATADIR%%/training/train-model.perl +%%DATADIR%%/training/wrappers/adam-suffix-array/suffix-array-create.sh +%%DATADIR%%/training/wrappers/adam-suffix-array/suffix-array-extract.sh +%%DATADIR%%/training/wrappers/berkeleyparsed2mosesxml.perl +%%DATADIR%%/training/wrappers/filter-excluded-lines.perl +%%DATADIR%%/training/wrappers/find-unparseable.perl +%%DATADIR%%/training/wrappers/mada-wrapper.perl +%%DATADIR%%/training/wrappers/make-factor-en-pos.mxpost.perl +%%DATADIR%%/training/wrappers/make-factor-pos.tree-tagger.perl +%%DATADIR%%/training/wrappers/make-factor-stem.perl +%%DATADIR%%/training/wrappers/make-factor-suffix.perl +%%DATADIR%%/training/wrappers/mosesxml2berkeleyparsed.perl +%%DATADIR%%/training/wrappers/parse-de-berkeley.perl +%%DATADIR%%/training/wrappers/parse-de-bitpar.perl +%%DATADIR%%/training/wrappers/parse-en-collins.perl +%%DATADIR%%/training/wrappers/syntax-hyphen-splitting.perl +@dirrmtry %%DATADIR%%/OSM +@dirrmtry %%DATADIR%%/Transliteration +@dirrmtry %%DATADIR%%/analysis/perllib +@dirrmtry %%DATADIR%%/analysis/smtgui +@dirrmtry %%DATADIR%%/analysis +@dirrmtry %%DATADIR%%/ems/example/data +@dirrmtry %%DATADIR%%/ems/example +@dirrmtry %%DATADIR%%/ems/support +@dirrmtry %%DATADIR%%/ems/web/javascripts/scriptaculous-js-1.8.3/lib +@dirrmtry %%DATADIR%%/ems/web/javascripts/scriptaculous-js-1.8.3/src +@dirrmtry %%DATADIR%%/ems/web/javascripts/scriptaculous-js-1.8.3 +@dirrmtry %%DATADIR%%/ems/web/javascripts +@dirrmtry %%DATADIR%%/ems/web +@dirrmtry %%DATADIR%%/ems +@dirrmtry %%DATADIR%%/fuzzy-match +@dirrmtry %%DATADIR%%/generic +@dirrmtry %%DATADIR%%/recaser +@dirrmtry %%DATADIR%%/share/nonbreaking_prefixes +@dirrmtry %%DATADIR%%/share +@dirrmtry %%DATADIR%%/tokenizer +@dirrmtry %%DATADIR%%/training/wrappers/adam-suffix-array +@dirrmtry %%DATADIR%%/training/wrappers +@dirrmtry %%DATADIR%%/training +@dirrmtry %%DATADIR%% |