# Makefile
#
# Copyright (c) 2001,2002 Florent Villard (warly@laposte.net)
# Published under the GPL license.
#

NAME = patriarche
VERSION:=$(shell rpm -q --qf '%{VERSION}\n' --specfile $(NAME).spec | head -n 1)
RELEASE:=$(shell rpm -q --qf '%{RELEASE}\n' --specfile $(NAME).spec | head -n 1)
TAG := $(shell echo "V$(VERSION)_$(RELEASE)" | tr -- '-.' '__')

subdirs = historique
gimp_version = 2.3

STYLE = vie

XSL=xsltproc 

.PHONY: all clean
.SUFFIXES: .html .fo .pdf .xml .xsl .txt
HTML_STYLE = html.xsl
TXT_STYLE = text.xsl
TEX_STYLE = latex.xsl

CURRENT = 1.1 1.2 1.3 2.1
LANG = en
POST = 

all: image lang spellclean \
     patriarche-1.1$(POST).html patriarche-1.1$(POST).pdf patriarche-1.1$(POST).ps patriarche-1.1$(POST).txt \
     patriarche-1.2$(POST).html patriarche-1.2$(POST).pdf patriarche-1.2$(POST).ps patriarche-1.2$(POST).txt \
     patriarche-1.3$(POST).html patriarche-1.3$(POST).pdf patriarche-1.3$(POST).ps patriarche-1.3$(POST).txt \
     patriarche-2.1$(POST).html patriarche-2.1$(POST).pdf patriarche-2.1$(POST).ps patriarche-2.1$(POST).txt \
#     patriarche-2.2$(POST).html patriarche-2.2$(POST).pdf patriarche-2.2$(POST).ps patriarche-2.2$(POST).txt \
#     patriarche-2.3$(POST).html patriarche-2.3$(POST).pdf patriarche-2.3$(POST).ps patriarche-2.3$(POST).txt \
#     patriarche-3.1$(POST).html patriarche-3.1$(POST).pdf patriarche-3.1$(POST).ps patriarche-3.1$(POST).txt \
#     patriarche-3.2$(POST).html patriarche-3.1$(POST).pdf patriarche-3.3$(POST).ps patriarche-3.2$(POST).txt \
#     patriarche-3.3$(POST).html patriarche-3.3$(POST).pdf patriarche-3.3$(POST).ps patriarche-3.3$(POST).txt \
     distclean
	for i in $(subdirs); do make -C $$i $@; done
	for i in $(CURRENT); do \
	  if [ ! -d html-$$i$(POST) ]; then mkdir html-$$i$(POST); fi; \
	  ./viehtml patriarche-$$i$(POST).html html-$$i$(POST); \
	done

image: 
	perl update_img img

lang:
	for i in $(LANG); do \
	  ln viehtml *.xsl vie.dtd patriarche.spec i18n/$$i/; \
	  cp -al img i18n/$$i/; \
	  ln -s index-$$i.html i18n/$$i/index.html; \
	  cp -f Makefile i18n/$$i/; \
	  cp -f historique/Makefile historique/html.xsl i18n/$$i/historique/; \
	  perl -pi -e "s/all: image lang spellclean/all: spellclean/; s/^POST =.*/^POST = en/;" i18n/$$i/Makefile; \
	  cp -f historique/Makefile i18n/$$i/historique; \
	  perl -pi -e 's/^POST =.*/^POST = en/; s/subdirs =.*/subdirs =/; s/^all: .*/all: patriarche-historique\$$\(POST\).html/' i18n/$$i/historique/Makefile; \
	  pushd i18n/$$i && make POST=-$$i all && popd; \
	done

vtest:
	echo $(NAME)-$(VERSION)-$(RELEASE)

% : patriarche-%$(POST).xml patriarche-%$(POST).ps patriarche-%$(POST).pdf patriarche-%$(POST).txt patriarche-%$(POST).html
	if [ ! -d html-$@ ]; then mkdir html-$@; fi; \
	./viehtml patriarche-$@.html html-$@;

update:
	for i in $(CURRENT); do \
	  cp -f /home/warly/files/now/patriarche/patriarche2-$$i.xml patriarche-$$i.xml; \
	done
	cp -f /home/warly/files/now/patriarche/patriarche.spec ./
	cp -f /home/warly/files/now/patriarche/index.html ./
	cp -f /home/warly/files/now/patriarche/Makefile ./	
	cp -f /home/warly/files/now/patriarche/CREDITS.html ./
	cp -f /home/warly/files/now/patriarche/historique/diff/index.html historique/diff/
	cp -f /home/warly/files/now/patriarche/historique/patriarche-historique.xml historique
	cp -f /home/warly/files/now/patriarche/historique/patriarche-faq.xml historique
	cp -f /home/warly/files/now/patriarche/historique/patriarche-tools.xml historique
	cp -f /home/warly/files/now/patriarche/historique/patriarche-critics.xml historique
	for i in $(LANG); do \
	  cp -f /home/warly/files/now/patriarche/i18n/$$i/index-$$i.html i18n/$$i/index-$$i.html; \
	  cp -f /home/warly/files/now/patriarche/po/$$i/patriarche-historique-$$i.xml i18n/$$i/historique/; \
	  ln -s ../../patriarche.spec i18n/$$i/patriarche.spec; \
	  for j in $(CURRENT); do \
	    if [ -f /home/warly/files/now/patriarche/po/$$i/patriarche2-$$j-$$i.xml ]; then \
	      cp -f /home/warly/files/now/patriarche/po/$$i/patriarche2-$$j-$$i.xml i18n/$$i/patriarche-$$j-$$i.xml ; \
	    fi \
	  done \
	done
	  #cp -f Makefile i18n/$$i/ ;\
	  #cp -f historique/Makefile i18n/$$i/historique ; \
	  #perl -pi -e "s/POST = .*/POST = -$$i/" i18n/$$i/Makefile ; \
	  # done
	rsync --exclude CVS --exclude "*.png" --exclude "*.ps" --delete -avrlHP /home/warly/files/now/patriarche/img/ img/
	perl update_img img

clean-% :
	for b in `echo $@ | sed 's/clean-//'`; do \
	rm -f  A4-patriarche-$$b* \
	         book-patriarche-$$b* \
		 patriarche-$$b.tex \
	         patriarche-$$b.html \
	         patriarche-$$b.pdf \
	         patriarche-$$b-A4.pdf \
	         patriarche-$$b.fo \
	         patriarche-$$b.txt \
	         patriarche-$$b.ps \
	         patriarche-$$b-A4.ps \
	         patriarche-$$b.log \
	         patriarche-$$b.aux \
	         patriarche-$$b.dvi *~ \
		 latex-A4.xsl \
	         html-$$b/*; \
	done 

clean:
	for i in $(CURRENT); do \
	  rm -f  A4-* \
	         book-* \
		 patriarche-$$i$(POST).tex \
	         patriarche-$$i$(POST).html \
	         patriarche-$$i$(POST).pdf \
	         patriarche-$$i-A4$(POST).pdf \
	         patriarche-$$i$(POST).fo \
	         patriarche-$$i$(POST).txt \
	         patriarche-$$i$(POST).ps \
	         patriarche-$$i-A4$(POST).ps \
	         patriarche-$$i$(POST).log \
	         patriarche-$$i$(POST).aux \
	         patriarche-$$i$(POST).dvi *~ \
		 latex-A4.xsl \
	         html-$$i/*; \
        done
	for i in $(subdirs); do make -C $$i clean; done

distclean:
	for i in $(CURRENT) seth; do \
	  rm -f *~ book-patriarche* *patriarche-$$i$(POST).aux *patriarche-$$i$(POST).fo *patriarche-$$i$(POST).tex *patriarche-$$i$(POST).log *patriarche-$$i$(POST).dvi *patriarche*.front$(POST).ps *patriarche*.reverse$(POST).ps patriarche-$$i$(POST).ps patriarche-$$i$(POST).pdf; \
	done
	for i in $(LANG); do make POST=-$$i -C i18n/$$i $@; done

spellclean:
	perl -pi -e "s/^SPELL//" *.xml

.xml.html: html.xsl
	$(XSL) -o $@ html.xsl $<

.xml.txt: text.xsl
	$(XSL) -o $@ text.xsl $<

.xml.tex: latex.xsl
	$(XSL) -o $@ latex.xsl $<
	perl -n -e 's/documentclass\[12pt,a4paper,/documentclass[11pt,a4paper,twocolumn,oneside,/;s/setpapersize{A4}/setpapersize[landscape]{A4}/;s/setmarginsrb.*/setmarginsrb{80pt}{30pt}{50pt}{30pt}{20pt}{10pt}{20pt}{20pt}/;print' latex.xsl > latex-A4.xsl
	$(XSL) -o A4-$@ latex-A4.xsl $<
	perl -n -e 's/documentclass\[12pt,a4paper,/documentclass[12pt,a4paper,twoside,/;s/setpapersize{A4}/setpapersize{A4}/;s/setmarginsrb.*/setmarginsrb{90pt}{25pt}{30pt}{25pt}{20pt}{20pt}{20pt}{20pt}/;s/\\maketitle/\\begin{large}\n\\maketitle/;s/\\end{document}/\\end{large}\n\\end{document}/;s/\.ps/_2.ps/;print' latex.xsl > latex-book.xsl
	$(XSL) -o book-$@ latex-book.xsl $<

%.dvi: %.tex
	# twice for table of contents
	latex $<
	latex $<
	latex A4-$<
	latex A4-$<
	latex book-$<
	latex book-$<

%.ps: %.dvi
	dvips -o $@ $<
	dvips -t landscape -o A4-$@ A4-$<
	dvips -o book-$@ book-$<

%.pdf: %.dvi
	dvipdfm -o $@ $<
	dvipdfm -l -p a4 -o A4-$@ A4-$<
#ps2pdf -sPAPERSIZE=a4 $< $@
#ps2pdf -sPAPERSIZE=a4 A4-$< A4-$@


test: 
	psbook patriarche-1.1.ps | psnup -b0cm -pa4 -2 > patriarche.livre.ps
	# man
	pstops "4:-3L@.7(21cm,0)+0L@.7(21cm,14.85cm)" 
	pstops "4:1L@.7(21cm,0)+-2L@.7(21cm,14.85cm)"
	# even
	pstops "2:-1L@.7(21cm,0)+0L@.7(21cm,14.85cm)"
	#odd
	pstops "4:-3L@.7(21cm,0)+0L@.7(21cm,14.85cm)" 
	pstops "4:-1L@.7(21cm,0)+2L@.7(21cm,14.85cm)"

install:
	install -d $(PREFIX)/usr/share/patriarche/
	install -d $(PREFIX)/usr/bin
	install viediff viehtml viewdiff $(PREFIX)/usr/bin/
	install index.html Makefile vie.dtd patriarche-*.xml A4-patriarche-*.pdf A4-patriarche-*.ps patriarche-*.html patriarche-*.txt latex.xsl text.xsl html.xsl $(PREFIX)/usr/share/patriarche/
	cp -r html-* $(PREFIX)/usr/share/patriarche/
	install -d $(PREFIX)/usr/share/patriarche/i18n
	for i in $(LANG); do \
	  install -d $(PREFIX)/usr/share/patriarche/i18n/$$i; \
	  install i18n/$$i/index.html i18n/$$i/patriarche-*.xml i18n/$$i/A4-patriarche-*.pdf i18n/$$i/A4-patriarche-*.ps i18n/$$i/patriarche-*.html i18n/$$i/patriarche-*.txt $(PREFIX)/usr/share/patriarche/i18n/$$i/; \
	  cp -r i18n/$$i/html-* $(PREFIX)/usr/share/patriarche/i18n/$$i/; \
	done

archive:
	rm -rf patriarche-$(VERSION)
	mkdir patriarche-$(VERSION)
	for i in $(CURRENT); do cp patriarche2-$$i.xml patriarche-$(VERSION)/patriarche-$$i.xml; done
	cp gimprc index.html update_img Makefile viediff vie.dtd viehtml viewdiff patriarche.spec html.xsl text.xsl latex.xsl patriarche-$(VERSION)/
	cp -r gimp-$(gimp_version) patriarche-$(VERSION)/
	mkdir patriarche-$(VERSION)/img/
	cp img/*.xcf* patriarche-$(VERSION)/img/
	mkdir patriarche-$(VERSION)/i18n
	for i in $(LANG); do \
	  mkdir patriarche-$(VERSION)/i18n/$$i; \
	  mkdir patriarche-$(VERSION)/i18n/$$i/historique; \
	  cp i18n/$$i/index-$$i.html patriarche-$(VERSION)/i18n/$$i/index-$$i.html; \
	  cp po/$$i/patriarche-historique-$$i.xml patriarche-$(VERSION)/i18n/$$i/historique/; \
	  for j in $(CURRENT); do \
	    if [ -f po/$$i/patriarche2-$$j-$$i.xml ]; then \
	      cp -f po/$$i/patriarche2-$$j-$$i.xml patriarche-$(VERSION)/i18n/$$i/patriarche-$$j-$$i.xml ; \
	    fi \
	  done \
	done
	cp -r historique patriarche-$(VERSION)/
	tar cjvf patriarche-$(VERSION).tar.bz2 patriarche-$(VERSION)

rpm: archive
	rpm -ta patriarche-$(VERSION).tar.bz2

srpm: archive
	rpm -ts patriarche-$(VERSION).tar.bz2

