#! /usr/bin/make

# French, Italian, Hungarian, Dutch, German, Polish, Chinese.
# Espaņol now kept at www.insflug.org.
#LANG_DIRS:=it fr hu nl de pt cn cz
LANG_DIRS:=cn cz de es fr hu it nl pl pt
# no chinese latex...
LANG_DIRS_ps:=cz de es fr hu it nl pl pt

HOWTOS:=$(wildcard *.sgml)
HOWTOS_ps:=$(HOWTOS)

HOWTOS+=$(foreach dir, $(LANG_DIRS), $(wildcard $(dir)/*.sgml))
HOWTOS_ps+=$(foreach dir, $(LANG_DIRS_ps), $(wildcard $(dir)/*.sgml))

TXT_HOWTOS:=$(HOWTOS:.sgml=.txt)
HTML_HOWTOS:=$(HOWTOS:.sgml=.html)
PSA4_HOWTOS:=$(HOWTOS_ps:.sgml=.a4.ps)
PSUS_HOWTOS:=$(HOWTOS_ps:.sgml=.letter.ps)

HOWTO_FLAGS_es/=-c latin -l de
HOWTO_FLAGS_es/=-c latin -l es
HOWTO_FLAGS_fr/=-c latin -l fr
HOWTO_FLAGS_hu/=-c latin
HOWTO_FLAGS_it/=-c latin -l it
HOWTO_FLAGS_nl/=-c latin -l nl
HOWTO_FLAGS_pl/=-c latin -l pl
HOWTO_FLAGS_pt/=-c latin -l pt

DISTRIB_DIR=../../homepage/output/documentation/HOWTO

HOWTOs: $(TXT_HOWTOS) $(HTML_HOWTOS) $(PSA4_HOWTOS) $(PSUS_HOWTOS)

# Remake all if Makefile changes.
$(TXT_HOWTOS) $(HTML_HOWTOS) $(PSA4_HOWTOS) $(PSUS_HOWTOS): Makefile

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

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

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

distrib: HOWTOs
	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
