# Path
DIR = $(notdir $(PWD))
OUTPUT = ../HTML

ifeq "$(DIR)" "lcd4linux"
	DIR = 
endif

ifeq "$(DIR)" ""
	XSLTPROC = xsltproc
else
	XSLTPROC = xsltproc --stringparam class $(DIR) --stringparam root "../"
endif

XMLVALID = xmllint --noout --valid

NAMES=$(shell find . -name "*.xml" -exec basename {} .xml \;)

html: $(patsubst %.xml,%.html,$(wildcard *.xml))
html-forced: $(patsubst %.xml,%.html-forced,$(wildcard *.xml))

%.html: %.xml %.xml-check output
	$(XSLTPROC) $< > $(OUTPUT)/$(DIR)/$@

%.html-forced: %.xml output
	$(XSLTPROC) $< > $(OUTPUT)/$(DIR)/$(patsubst %.xml,%.html,$<)

check: $(patsubst %.xml, %.xml-check, $(wildcard *.xml))

%.xml-check: %.xml
	@echo "*** Validation of $<"
	$(XMLVALID) $< 

output:
	test -d $(OUTPUT) || `mkdir $(OUTPUT); cp ../data/doc.css $(OUTPUT); cp  -R ../data/images $(OUTPUT)`
	test -d $(OUTPUT)/$(DIR) || mkdir $(OUTPUT)/$(DIR)

clean:
	rm -f $(OUTPUT)/$(DIR)/*.html

clean-bak:
	rm -f *~ *.bak

help:
	@echo -e ""
	@echo -e "Usage :"
	@echo -e "-------"
	@echo -e "make  or  make html :  builds all possible html pages from xml files"
	@echo -e "make %.html :          builds the %.html page from %.xml"
	@echo -e ""
	@echo -e "make html-forced  :    builds all possible html pages from xml files (no validity check)"
	@echo -e "make %.html-forced :   builds the %.html page from %.xml (no validity check)"
	@echo -e ""
	@echo -e "make check :           checks the validity of all possible xml files"
	@echo -e "make %.xml-check :     checks the validity of %.xml"
	@echo -e ""
	@echo -e "make clean :           deletes all generated html pages"
	@echo -e "make clean-bak :       deletes *~ and *.bak files"
	@echo -e ""