all: corpus.f-e.lex-grammar.gz wordpairs.f-e.features.gz corpus.class.e corpus.class.f corpus.stemmed.f fstem.map corpus.stemmed.e estem.map

clean:
	$(RM) orthonorm-dict.* voc2class* corpus.class.* corpus.e-f corpus.f-e corpus.f-e.lex-grammar* *.model1 *voc corpus.e-f.lex-grammar* *stem* freq* wordpairs*

SUPPORT_DIR = $(SCRIPT_DIR)/support
GZIP = /usr/bin/gzip
ZCAT = zcat
EXTRACT_GRAMMAR = $(SUPPORT_DIR)/extract_grammar.pl
EXTRACT_VOCAB = $(SUPPORT_DIR)/extract_vocab.pl
GENERATE_WORDPAIR_FEATURES = $(SUPPORT_DIR)/generate_word_pair_features.pl
ORTHONORM_E = $(SCRIPT_DIR)/ortho-norm/$(E_LANG).pl
ORTHONORM_F = $(SCRIPT_DIR)/ortho-norm/$(F_LANG).pl
STEM_F = $(SCRIPT_DIR)/stemmers/$(F_LANG).pl
STEM_E = $(SCRIPT_DIR)/stemmers/$(E_LANG).pl

CLASSIFY = $(SUPPORT_DIR)/classify.pl
MAKE_LEX_GRAMMAR = $(SUPPORT_DIR)/make_lex_grammar.pl
MODEL1 = $(TRAINING_DIR)/model1
MERGE_CORPUS = $(SUPPORT_DIR)/merge_corpus.pl

e.voc: corpus.e
	$(EXTRACT_VOCAB) < corpus.e > $@

f.voc: corpus.f
	$(EXTRACT_VOCAB) < corpus.f > $@

orthonorm-dict.e: corpus.e e.voc
	$(ORTHONORM_E) < e.voc > e.ortho-voc
	$(MERGE_CORPUS) e.voc e.ortho-voc > $@

orthonorm-dict.f: corpus.f f.voc
	$(ORTHONORM_F) < f.voc > f.ortho-voc
	$(MERGE_CORPUS) f.voc f.ortho-voc > $@

# this is just a "stem" map
estem.map: e.voc
	$(STEM_E) --vocab < e.voc > $@

fstem.map: f.voc
	$(STEM_F) --vocab < f.voc > $@

# corpus.stemmed.f can use context to do "stemming"
corpus.stemmed.f: corpus.f
	$(STEM_F) < corpus.f > $@

corpus.stemmed.e: corpus.e
	$(STEM_E) < corpus.e > $@

voc2class.e: corpus.e $(MKCLS)
	$(MKCLS) -c$(NCLASSES) -n10 -pcorpus.e -Vvoc2class.e opt

voc2class.f: corpus.f $(MKCLS)
	$(MKCLS) -c$(NCLASSES) -n10 -pcorpus.f -Vvoc2class.f opt

corpus.class.e: corpus.e voc2class.e
	$(CLASSIFY) voc2class.e corpus.e > $@

corpus.class.f: corpus.f voc2class.f
	$(CLASSIFY) voc2class.f corpus.f > $@

corpus.f-e: corpus.f corpus.e
	$(MERGE_CORPUS) corpus.f corpus.e > $@

corpus.e-f: corpus.f corpus.e
	$(MERGE_CORPUS) corpus.e corpus.f > $@

corpus.f-e.model1: corpus.f-e
	$(MODEL1) -v corpus.f-e > $@

corpus.e-f.model1: corpus.e-f
	$(MODEL1) -v -V corpus.e-f > $@

corpus.f-e.full-model1: corpus.f-e
	$(MODEL1) -t -999999 -v -V corpus.f-e > $@

corpus.e-f.full-model1: corpus.e-f
	$(MODEL1) -t -999999 -v -V corpus.e-f > $@

corpus.f-e.lex-grammar.gz: corpus.f-e corpus.f-e.model1 corpus.e-f.model1
	$(MAKE_LEX_GRAMMAR) corpus.f-e corpus.f-e.model1 corpus.e-f.model1 | $(GZIP) -9 > $@

wordpairs.f-e.features.gz: corpus.f-e corpus.f-e.full-model1 corpus.e-f.full-model1 orthonorm-dict.f orthonorm-dict.e voc2class.e voc2class.f corpus.f-e.model1
	$(GENERATE_WORDPAIR_FEATURES) corpus.f-e corpus.f-e.full-model1 corpus.e-f.full-model1 orthonorm-dict.f orthonorm-dict.e voc2class.e voc2class.f corpus.f-e.model1 | $(GZIP) -9 > $@