#! /usr/bin/make

LANG_DIRS:=fr pl jp hu ko

# no japanese latex
LANG_DIRS_ps:=fr pl hu

FAQS:=$(wildcard *.sgml)
FAQS_ps:=$(FAQS)
FAQS+=$(foreach dir, $(LANG_DIRS), $(wildcard $(dir)/*.sgml))
FAQS_ps+=$(foreach dir, $(LANG_DIRS_ps), $(wildcard $(dir)/*.sgml))

TXT_FAQS:=$(FAQS:.sgml=.txt)
HTML_FAQS:=$(FAQS:.sgml=.html)
PSA4_FAQS:=$(FAQS_ps:.sgml=.a4.ps)
PSUS_FAQS:=$(FAQS_ps:.sgml=.letter.ps)

FAQ_FLAGS_it/=-c latin -l it
FAQ_FLAGS_fr/=-c latin -l fr
FAQ_FLAGS_hu/=-c latin
FAQ_FLAGS_jp/=-c latin -l ja
FAQ_FLAGS_kr/=-c latin -l kr
FAQ_FLAGS_pl/=-c latin -l pl
FAQ_HTML_FLAGS_pl/=-c latin -l pl -H header.inc

DISTRIB_DIR=../../output/documentation/FAQ

FAQs: $(HTML_FAQS) $(TXT_FAQS) $(PSA4_FAQS) $(PSUS_FAQS)

# Remake all if Makefile changes.
$(TXT_FAQS) $(HTML_FAQS) $(PSA4_FAQS) $(PSUS_FAQS): Makefile

# Stupid sgml2* tools strip dirnames for output files. 8(
%.txt: %.sgml
	@echo Making $@: && cd `dirname $<` && sgml2txt --filter $(FAQ_FLAGS_$(dir $<)) `basename $<` 2>&1 | sed "s?^<standard input>:\([0-9]*\):[^ ]* ?$<:\1:?"

%.a4.dvi: %.sgml
	@echo Making $@: && cd `dirname $<` && sgml2latex --papersize=a4 --output=dvi $(FAQ_FLAGS_$(dir $<)) `basename $<` 2>&1 | sed "s?^<standard input>:\([0-9]*\):[^ ]* ?$<:\1:?" && mv `basename $*.dvi` `basename $*.a4.dvi`

%.a4.ps: %.a4.dvi
	@dvips -t a4 -o $@ $< 

%.letter.dvi: %.sgml
	@echo Making $@: && cd `dirname $<` && sgml2latex --papersize=letter --output=dvi $(FAQ_FLAGS_$(dir $<)) `basename $<` 2>&1 | sed "s?^<standard input>:\([0-9]*\):[^ ]* ?$<:\1:?" && mv `basename $*.dvi` `basename $*.letter.dvi`

%.letter.ps: %.letter.dvi
	@dvips -t letter -o $@ $< 

%.html: %.sgml
	if [ "$(dir $<)" == "pl/" ]; then \
		echo Making $@: && cd `dirname $<` && sgml2html $(FAQ_HTML_FLAGS_$(dir $<)) `basename $<` 2>&1 | sed "s?^<standard input>:\([0-9]*\):[^ ]* ?$<:\1:?"; \
		./wwwfix *.html; \
		echo "Fixing sgml2html conversion bugs..."; \
	else \
		echo Making $@: && cd `dirname $<` && sgml2html $(FAQ_FLAGS_$(dir $<)) `basename $<` 2>&1 | sed "s?^<standard input>:\([0-9]*\):[^ ]* ?$<:\1:?"; \
	fi

clean:
	for d in . $(LANG_DIRS); do rm -f $$d/*.html $$d/*.ps $$d/*.aux $$d/*.log $$d/*.txt $$d/*~; done

distrib: FAQs
	for d in . $(LANG_DIRS); do [ -d $(DISTRIB_DIR)/$$d ] || mkdir -p $(DISTRIB_DIR)/$$d; cp $$d/*.html $$d/*.ps $$d/*.sgml $$d/*.txt $(DISTRIB_DIR)/$$d/; done
