#!/usr/bin/make -f
include /usr/share/cdbs/1/rules/debhelper.mk

# skip wget's .orig files (kept for timestamping) and useless metadata
DEB_DH_INSTALL_ARGS += -X.orig
DEB_DH_INSTALL_ARGS += -Xrobots.txt

TR_RDF = http://www.w3.org/2002/01/tr-automation/tr.rdf
TR_FILE := $(notdir $(TR_RDF))
WEB_MIRROR = www.w3.org
ORIG_STUFF = $(TR_FILE) $(WEB_MIRROR)

XSLT = xsltproc
XSL_INST = debian/xsl/deb-gen-install.xsl
XSL_URLS = debian/xsl/grep-urls.xsl
XSL_IDS = debian/xsl/grep-ids.xsl
XSL_INDEX = debian/xsl/deb-control-index.xsl
XSL_HTML = debian/xsl/gen-html-index.xsl
XSL_DEVHELP = debian/xsl/gen-devhelp.xsl
XSL_DOCBASE = debian/xsl/deb-gen-doc-base.xsl
TXT_INDEX = debian/control-index.txt
DEST_BASEDIR = /usr/share/doc/w3-recs/html/

PKGNAME = w3-recs
DOCBASE_SECTION = Help/Standards
DOCBASE_FORMAT = HTML
DOC_BASEPATH = /usr/share/doc/$(PKGNAME)

ORIG_DIR = ../tarballs/$(DEB_SOURCE_PACKAGE)-$(DEB_UPSTREAM_VERSION)

common-post-build-indep:: doc-base-stamp index.html w3-recs.devhelp
clean::
	rm -f debian/w3-recs.doc-base.tr-*
	rm -f doc-base-stamp index.html url-list.txt w3-recs.devhelp wget.log

.PHONY: get-orig-source clean-orig-source build-orig
get-orig-source: download
clean-orig-source:
	rm -rf $(ORIG_STUFF)
	rm -f tr.rdf

build-orig: $(ORIG_STUFF)
	if [ -d $(ORIG_DIR) ] ; then rm -rf $(ORIG_DIR) ; fi
	mkdir -p $(ORIG_DIR)
	cp -a $(ORIG_STUFF) $(ORIG_DIR)
	cd ../tarballs \
		&& tar --exclude="*.orig" -czf \
			$(DEB_SOURCE_PACKAGE)_$(DEB_UPSTREAM_VERSION).orig.tar.gz \
			$(notdir $(ORIG_DIR))
	rm -rf $(ORIG_DIR)

.PHONY: maint-build
maint-build: debian/control

.PHONY: maint-clean
maint-clean:
	rm -f debian/control
	rm -f $(TXT_INDEX)

doc-base-stamp: $(XSL_DOCBASE) $(TR_FILE)
	chmod +x debian/scripts/multiplex
	$(XSLT) \
		--stringparam basepath $(DOC_BASEPATH) \
		--stringparam section $(DOCBASE_SECTION) \
		--stringparam format $(DOCBASE_FORMAT) \
		$(XSL_DOCBASE) $(TR_FILE) | debian/scripts/multiplex "debian/w3-recs.doc-base.tr-"

index.html: $(XSL_HTML) $(TR_FILE)
	$(XSLT) \
		--stringparam basepath $(DOC_BASEPATH) \
		$^ | xmllint --format - > $@

w3-recs.devhelp: $(XSL_DEVHELP) $(TR_FILE)
	$(XSLT) \
		--stringparam version $(DEB_UPSTREAM_VERSION) \
		$^ | xmllint --format - > $@

.PHONY: download download-index download-trs fix-paths
download: download-index download-trs fix-paths
download-index:
	wget -nv -N $(TR_RDF)
url-list.txt: $(XSL_URLS) $(TR_FILE) debian/url-extra.txt
	$(XSLT) $(XSL_URLS) $(TR_FILE) > $@
	cat debian/url-extra.txt >> $@

	# fix for wrong URL generated by xsl of REC html 3.2 19970114 : 404 error with the final /
	sed -i"" -e 's/REC-html32-19970114\//REC-html32-19970114/' $@

	# ... same thing here
	sed -i"" -e 's/REC-xslt-19991116\//REC-xslt-19991116/' $@

	# ... here too
	sed -i"" -e 's/REC-xml-c14n-20010315\//REC-xml-c14n-20010315/' $@

	# ... here too
	sed -i"" -e 's/REC-xmlenc-decrypt-20021210\//REC-xmlenc-decrypt-20021210/' $@

	# ... here too
	sed -i"" -e 's/CR-xml-fragment-20010212\//CR-xml-fragment-20010212/' $@

	# ... here too
	sed -i"" -e 's/CR-css-tv-20030514\//CR-css-tv-20030514/' $@

download-trs: url-list.txt
	# tip : for a faster download ONLY for tests purpose, add theses extensions to the -R list : gif,png,jpg,svg,cgm,idl
	-wget -nv -r -np -X "TR/*/*/javadoc" -N -E -k -K -L -p -R ps,pdf,gz,zip,tgz,jar --ignore-tags=loc -i $< >wget.log 2>&1
fix-paths:
	# fix for wrong URL of DOM Level 2 HTML REC which causes HTTP redirection;
	if [ -d $(WEB_MIRROR)/TR/DOM-Level-2-HTML ] ; then \
		mv $(WEB_MIRROR)/TR/DOM-Level-2-HTML/ \
			$(WEB_MIRROR)/TR/2003/REC-DOM-Level-2-HTML-20030109 ; \
	fi

  # convert downloaded paths with wrong urls for compatible doc-base process
	# Use a wildcard before html because when we download twice the files before
	# this target, the files are named *.1.html
	if [ -f $(WEB_MIRROR)/TR/REC-html32-19970114.*html ] ; then \
		mkdir -p $(WEB_MIRROR)/TR/REC-html32-19970114; \
		mv $(WEB_MIRROR)/TR/REC-html32-19970114.*html \
			$(WEB_MIRROR)/TR/REC-html32-19970114/index.html ; \
	fi

	if [ -f $(WEB_MIRROR)/TR/1999/REC-xslt-19991116.*html ] ; then \
		mkdir -p $(WEB_MIRROR)/TR/1999/REC-xslt-19991116; \
		mv $(WEB_MIRROR)/TR/1999/REC-xslt-19991116.*html \
			$(WEB_MIRROR)/TR/1999/REC-xslt-19991116/index.html ; \
	fi

	if [ -f $(WEB_MIRROR)/TR/2001/REC-xml-c14n-20010315.*html ] ; then \
		mkdir -p $(WEB_MIRROR)/TR/2001/REC-xml-c14n-20010315; \
		mv $(WEB_MIRROR)/TR/2001/REC-xml-c14n-20010315.*html \
			$(WEB_MIRROR)/TR/2001/REC-xml-c14n-20010315/index.html ; \
	fi

	if [ -f $(WEB_MIRROR)/TR/2002/REC-xmlenc-decrypt-20021210.*html ] ; then \
		mkdir -p $(WEB_MIRROR)/TR/2002/REC-xmlenc-decrypt-20021210; \
		mv $(WEB_MIRROR)/TR/2002/REC-xmlenc-decrypt-20021210.*html \
			$(WEB_MIRROR)/TR/2002/REC-xmlenc-decrypt-20021210/index.html ; \
	fi

	if [ -f $(WEB_MIRROR)/TR/2001/CR-xml-fragment-20010212.*html ] ; then \
		mkdir -p $(WEB_MIRROR)/TR/2001/CR-xml-fragment-20010212 ; \
		mv $(WEB_MIRROR)/TR/2001/CR-xml-fragment-20010212.*html \
			$(WEB_MIRROR)/TR/2001/CR-xml-fragment-20010212/index.html ; \
	fi

	if [ -f $(WEB_MIRROR)/TR/2003/CR-css-tv-20030514.*html ] ; then \
		mkdir -p $(WEB_MIRROR)/TR/2003/CR-css-tv-20030514 ; \
		mv $(WEB_MIRROR)/TR/2003/CR-css-tv-20030514.*html \
			$(WEB_MIRROR)/TR/2003/CR-css-tv-20030514/index.html ; \
	fi

$(TXT_INDEX): $(XSL_INDEX) $(TR_FILE)
	$(XSLT) $^ | fmt -s -w 80 > $@
debian/control:: debian/control.in $(TXT_INDEX)
	sed -e'/@INDEX@/r$(TXT_INDEX)' -e '/@INDEX@/d' $< > $@

