include ../../makefile.defs

SOURCES := $(wildcard *.xml)
DYCE_OUTDIR := $(OUT_DIR)/dyce
ONIONS_OUTDIR := $(OUT_DIR)/onions
SCHMIDT_OUTDIR := $(OUT_DIR)/schmidt
PACK_OUTDIR := $(OUT_DIR)/pack
ABBOTT_INDEX := $(PACK_OUTDIR)/abbott-index.html
DYCE_DIC0 := $(DYCE_OUTDIR)/dyce-body0.html
ONIONS_DIC0 := $(ONIONS_OUTDIR)/onions-body0.html
SCHMIDT_DIC0 := $(SCHMIDT_OUTDIR)/schmidt-body0.html
DYCE_DIC := $(DYCE_OUTDIR)/dyce-body.html
ONIONS_DIC := $(ONIONS_OUTDIR)/onions-body.html
SCHMIDT_DIC := $(SCHMIDT_OUTDIR)/schmidt-body.html
DIC_BODIES := $(DYCE_DIC) $(ONIONS_DIC) $(SCHMIDT_DIC)
DYCE_OUTPUTS := $(patsubst %.xml,$(DYCE_OUTDIR)/%.html,$(SOURCES))
ONIONS_OUTPUTS := $(patsubst %.xml,$(ONIONS_OUTDIR)/%.html,$(SOURCES))
SCHMIDT_OUTPUTS := $(patsubst %.xml,$(SCHMIDT_OUTDIR)/%.html,$(SOURCES))
PACK_OUTPUTS := $(patsubst %.xml,$(PACK_OUTDIR)/%.html,$(SOURCES))
JUMP_OUT := $(PACK_OUTDIR)/jump.html
JUMP_HEADS := $(PACK_OUTDIR)/dyce-head.html $(PACK_OUTDIR)/onions-head.html $(PACK_OUTDIR)/schmidt-head.html 
JUMP_BODIES := $(PACK_OUTDIR)/dyce-body.html $(PACK_OUTDIR)/onions-body.html $(PACK_OUTDIR)/schmidt-body.html
CONCOR_OUT :=  $(PACK_OUTDIR)/concor.html
XSLFILE = shakes2html.xsl

all: $(DYCE_OUTPUTS) $(ONIONS_OUTPUTS) $(SCHMIDT_OUTPUTS) $(DIC_BODIES) $(PACK_OUTDIR) $(JUMP_OUT) $(JUMP_HEADS) $(JUMP_BODIES) $(PACK_OUTPUTS) $(CONCOR_OUT) 

$(DYCE_OUTDIR)/%.html : %.xml
	$(JAVA) -Xmx512M -cp $(XALAN_DIR) -jar $(XALAN_DIR)/xalan.jar -in $< -xsl $(XSLFILE) \
		| $(JAVA) clsepw.util.LatinExtConverter - check \
		| sed -f conv.sed \
		| sed -f joint.sed \
		| $(JAVA) clsepw.shakespeare.AppendActSceneId - $< $(ABBOTT_INDEX) \
		| $(JAVA) clsepw.shakespeare.AppendShakesDicRef - $(DYCE_DIC0) $(DYCE_DIC) \
		| nkf -s \
		> $@

$(ONIONS_OUTDIR)/%.html : %.xml
	$(JAVA) -Xmx512M -cp $(XALAN_DIR) -jar $(XALAN_DIR)/xalan.jar -in $< -xsl $(XSLFILE) \
		| $(JAVA) clsepw.util.LatinExtConverter - check \
		| sed -f conv.sed \
		| sed -f joint.sed \
		| $(JAVA) clsepw.shakespeare.AppendActSceneId - $< $(ABBOTT_INDEX) \
		| $(JAVA) clsepw.shakespeare.AppendShakesDicRef - $(ONIONS_DIC0) $(ONIONS_DIC) \
		| nkf -s \
		> $@

$(SCHMIDT_OUTDIR)/%.html : %.xml
	$(JAVA) -Xmx512M -cp $(XALAN_DIR) -jar $(XALAN_DIR)/xalan.jar -in $< -xsl $(XSLFILE) \
		| $(JAVA) clsepw.util.LatinExtConverter - check \
		| sed -f conv.sed \
		| sed -f joint.sed \
		| $(JAVA) clsepw.shakespeare.AppendActSceneId - $< $(ABBOTT_INDEX) \
		| $(JAVA) clsepw.shakespeare.AppendShakesDicRef - $(SCHMIDT_DIC0) $(SCHMIDT_DIC) \
		| nkf -s \
		> $@

$(DYCE_DIC): $(DYCE_OUTPUTS) $(DYCE_DIC0)
	$(JAVA) -Xmx1024M clsepw.shakespeare.FixShakesRefs $(DYCE_OUTDIR) $(DYCE_DIC0) | nkf -s > $(DYCE_DIC)

$(ONIONS_DIC): $(ONIONS_OUTPUTS) $(ONIONS_DIC0)
	$(JAVA) -Xmx1024M clsepw.shakespeare.FixShakesRefs $(ONIONS_OUTDIR) $(ONIONS_DIC0) | nkf -s > $(ONIONS_DIC)

$(SCHMIDT_DIC): $(SCHMIDT_OUTPUTS) $(SCHMIDT_DIC0)
	$(JAVA) -Xmx1024M clsepw.shakespeare.FixShakesRefs $(SCHMIDT_OUTDIR) $(SCHMIDT_DIC0) | nkf -s > $(SCHMIDT_DIC)

$(PACK_OUTDIR) :
	mkdir -p $(PACK_OUTDIR)

$(JUMP_OUT) : $(DYCE_DIC) $(ONIONS_DIC) $(SCHMIDT_DIC)
	$(JAVA) clsepw.shakespeare.MakeShakesJumpFile $(DYCE_DIC)=Dyce $(ONIONS_DIC)=Onions $(SCHMIDT_DIC)=Schmidt \
		> $@

$(PACK_OUTDIR)/dyce-head.html : $(DYCE_OUTDIR)/dyce-head.html
	sed -f dicbodyconv.sed $< \
		| sed -e "s/<body>/&<H1>Dyce. A General Glossary to Shakespeare's Works [D]<\/H1>/g" \
		> $@ 

$(PACK_OUTDIR)/dyce-body.html : $(DYCE_DIC)
	sed -f dicbodyconv.sed $(DYCE_DIC) \
		| sed -e 's/<\/dt>/ [D]&/g' \
		> $@

$(PACK_OUTDIR)/onions-head.html : $(ONIONS_OUTDIR)/onions-head.html
	sed -f dicbodyconv.sed $< \
		| sed -e "s/<body>/&<H1>Onions. A Shakespeare Glossary [O]<\/H1>/g" \
		> $@ 

$(PACK_OUTDIR)/onions-body.html : $(ONIONS_DIC)
	sed -f dicbodyconv.sed $(ONIONS_DIC) \
		| sed -e 's/<\/dt>/ [O]&/g' \
		> $@

$(PACK_OUTDIR)/schmidt-head.html : $(SCHMIDT_OUTDIR)/schmidt-head.html
	sed -f dicbodyconv.sed $< \
		| sed -e "s/<body>/&<H1>Schmidt. Shakespeare Lexicon and Quotation Dictionary [S]<\/H1>/g" \
		> $@ 

$(PACK_OUTDIR)/schmidt-body.html : $(SCHMIDT_DIC)
	sed -f dicbodyconv.sed $(SCHMIDT_DIC) \
		| sed -e 's/<\/dt>/ [S]&/g' \
		> $@

$(PACK_OUTDIR)/%.html : %.xml
	$(JAVA) -Xmx512M -cp $(XALAN_DIR) -jar $(XALAN_DIR)/xalan.jar -in $< -xsl $(XSLFILE) \
		| $(JAVA) clsepw.util.LatinExtConverter - check \
		| sed -f conv.sed \
		| sed -f joint.sed \
		| $(JAVA) clsepw.shakespeare.AppendActSceneId - $< $(ABBOTT_INDEX) \
		| $(JAVA) clsepw.shakespeare.AppendShakesDicRef - $(JUMP_OUT) $(JUMP_OUT) \
		| nkf -s \
		> $@

$(CONCOR_OUT): $(PACK_OUTPUTS)
	$(JAVA) -Xmx512M  clsepw.shakespeare.MakeConcordance $(PACK_OUTDIR) \
		| sed -f concorconv.sed \
		> $@

clean:
	rm -rf $(DYCE_OUTPUTS) $(ONIONS_OUTPUTS) $(SCHMIDT_OUTPUTS) $(DIC_BODIES)
	rm -rf $(JUMP_OUT) $(JUMP_HEADS) $(JUMP_BODIES) $(PACK_OUTPUTS) $(CONCOR_OUT)
