#----------------------------------------------------------
#
# Slides pdf "animés" avec :
#
# - beamer
# - le splitfig-beamer de Florence
#   qui permet de specifier des animations
#   complexes.
# 
# - N.B. on passe par mk3, un script qui 
#   part d'un .fig et fait tout le boulot
#   (splitfig + fig2dev)
#
# N.B.
# make -r => supprime toutes les regles par défaut
# make -r -d -n => pour voir ce qui ce passe ...
#----------------------------------------------------------
.PHONY : all handout clean

# Supprime les règles de suffixe par défaut
.SUFFIXES :

all:$(OBJDIR) fig target

MAIN=lutin-tuto

FIGS=./figs
OBJDIR =./obj

# Le(s) source(s) latex
SRC = main.org pdf-preambule.org html-preambule.org 

# Les figures 
FIGPDF = \
   $(OBJDIR)/demarche-it-en.tex 

IMGDIR = $(OBJDIR)/smile.gif $(OBJDIR)/detective.gif $(OBJDIR)/demarche-it-en.jpg


html:$(OBJDIR)  $(MAIN)-html.html

TARGETS= $(MAIN)-pdf.pdf $(MAIN)-handout.pdf grille.pdf $(MAIN)-html.html
# La présentation animée
target: $(TARGETS)
anim: $(MAIN)-pdf.pdf
# Handout 2x3
handout: grille.pdf

# Force la recompil
re :
	make handout

x:
	xpdf -fullscreen $(MAIN)-pdf.pdf

fig:$(OBJDIR)
	make $(FIGPDF)

png:$(OBJDIR)
	cp -rf png $(OBJDIR)

%.pdf: $(OBJDIR)/%.pdf
	cp $< $@




$(MAIN)-html.org: html-preambule.org main.org
	rm -f $(MAIN)-html.org
	echo "# XXX Edite plutot le main.org ou le (pdf/html-preambule) patate ! " >  $(MAIN)-html.org
	cat html-preambule.org main.org | sed -e 's/\\pause//g' \
	| sed -e 's/^html://g'\
	| sed -e 's/^html\.//g'\
	| sed -e 's/:B_note://g'  >> $(MAIN)-html.org
	chmod u-w $(MAIN)-html.org

#   | grep -v "\[Answer\]" \

$(MAIN)-pdf.org:  pdf-preambule.org main.org 
	rm -f $(MAIN)-pdf.org
	echo "# XXX Edite plutot le main.org patate ! " >  $(MAIN)-pdf.org
	cat pdf-preambule.org main.org \
	| perl -ne 'print if not /^html:/../^html\./'  >> $(MAIN)-pdf.org
	chmod u-w $(MAIN)-pdf.org

$(MAIN)-pdf.pdf : $(OBJDIR) $(OBJDIR)/$(MAIN)-pdf.tex $(IMGDIR) $(MAIN)-pdf.org 
	(cd $(OBJDIR); pdflatex --shell-escape  $(MAIN)-pdf.tex)
	mv $(OBJDIR)/$(MAIN)-pdf.pdf .

noweb:
	make $(OBJDIR)/$(MAIN)-pdf.noweb

$(OBJDIR): 
	mkdir -p $(OBJDIR) 
	make $(OBJDIR)/main.noweb
	cp -f  *.lut $(OBJDIR)
	cp -rf crazy-rabbit $(OBJDIR)
	cd $(OBJDIR)

$(OBJDIR)/%.jpg: figs/%.fig
	fig2dev -L jpeg $< $@ 

%.gif: figs/%.fig
	fig2dev -L gif -m 2 -S 4  $< $@ 

%.svg: figs/%.fig
	fig2dev -L svg $< $@ 

%.png: figs/%.fig
	fig2dev -L png -m 2 -S 4 $< $@ 

$(OBJDIR)/$(MAIN)-handout.pdf: $(OBJDIR)/$(MAIN)-handout.tex $(SRC)
	(cd $(OBJDIR); pdflatex --shell-escape  $(MAIN)-handout.tex)
	cp $(OBJDIR)/$(MAIN)-handout.pdf .

grille.pdf : grille.tex  $(OBJDIR)/$(MAIN)-handout.pdf
	mkdir -p $(OBJDIR)
	(cd $(OBJDIR); pdflatex --shell-escape  ../grille.tex)
	mv $(OBJDIR)/grille.pdf .

# version sans les animations (et sans les toc de section pour ne pas poluer la grille)
$(OBJDIR)/$(MAIN)-handout.tex: $(OBJDIR)/$(MAIN)-pdf.tex
	sed -e 's/\\documentclass\[\(.*\)\]{beamer}/\n\
\\documentclass\[\1,handout\]{beamer}\n\
/' $(OBJDIR)/$(MAIN)-pdf.tex  | \
   sed -e 's/\\begin{frame}\\frametitle{Plan}\\setcounter{tocdepth}{2}\\tableofcontents\[currentsection\]\\end{frame}//' \
> $(OBJDIR)/$(MAIN)-handout.tex

# $(FIGS)/%.fig -> $(OBJDIR)/%.tex + toutes les couches 
$(OBJDIR)/%.tex :  $(OBJDIR)/%.fig $(IMGDIR)
	cd $(OBJDIR); mk3 -b  $*.fig


.PRECIOUS: $(OBJDIR)/*.jpg $(OBJDIR)/*.gif png/*.png
# $(FIGS)/%.jpg -> $(OBJDIR)/%.jpg
$(OBJDIR)/%.jpg : $(OBJDIR) $(FIGS)/%.jpg
	cp $(FIGS)/$*.jpg $(OBJDIR)/$*.jpg

$(OBJDIR)/%.gif : $(OBJDIR) $(FIGS)/%.gif
	cp $(FIGS)/$*.gif $(OBJDIR)/$*.gif

pdf :  $(OBJDIR)/$(MAIN)-pdf.tex
	make $(MAIN)-pdf.pdf
pdfall : pdf
	make $(MAIN)-handout.pdf
	make grille.pdf


html : $(MAIN)-html.html

rmhtml:
	rm -f $(MAIN)-html.html

clean:
	rm -rf  $(TARGETS) $(MAIN)-html.org $(MAIN)-pdf.org obj/
	rm -f *.aux *.o *.c *.h *.dro  *.lus sh *~ Makefile.* *.log *.ec *.data *.rif *.gp *.html

$(OBJDIR)/%.png:ditaa/%.ditaa
	cd ditaa; java -jar /home/jahier/dd/org-mode/contrib/scripts/ditaa.jar -s 3.5 -r $*.ditaa $*.png
	cp ditaa/$*.png $(OBJDIR)/

#	  --directory=~/el_files/ \
#	  --directory=~/el_files/org-mode/ \
#	  --directory=~/el_files/org-mode/lisp/ \
 #    --load=~/.emacs-org  \


# EMACS=emacs  --load=emacs-org.el  --batch
# XXXXX ne marche pas en batch !!!! depuis emacs, c'est bon par contre...
# mais ca oblige à editer lutin-tuto-html.org à chaque fois
# bon, ok, j'ai trouvé un moyen (bourrin): --eval "(kill-emacs)" -Q
EMACSBH=emacs --load=./emacs-org.el --batch 
EMACSB=emacs --load=../emacs-org.el --batch

# XXX with --batch, I loose the htmlize coloring. why ?
EMACS=emacs  --load=../zenburn-theme.el --load=../emacs-org.el # --batch

#emacs --batch  --eval "(setq org-export-headline-levels 2)" \
	  --visit=README.org --funcall org-html-export-to-html

#	$(EMACS) --batch \

$(OBJDIR)/%.lut: %.lut
	cp $< $@

LUTIN=$(shell ls *.lut | sed -e 's/^/obj\//')


$(OBJDIR)/%.fig: figs/%.fig
	cp $< $@

$(OBJDIR)/%.org: %.org
	cp $< $@

$(OBJDIR)/%.tex: $(OBJDIR)/%.org $(LUTIN)
	cd $(OBJDIR); \
	$(EMACSB) --visit=$*.org --funcall org-export-as-latex 
	cp $(OBJDIR)/$*.tex $(OBJDIR)/$*_.tex; \
		sed -e "s/\\\usepackage{wasysym}//" $(OBJDIR)/$*_.tex > $(OBJDIR)/$*.tex
	cp $(OBJDIR)/$*.tex $(OBJDIR)/$*_.tex; \
		sed -e "s/\\\usepackage{marvosym}//" $(OBJDIR)/$*_.tex > $(OBJDIR)/$*.tex


$(OBJDIR)/%.noweb: %.org
	$(EMACSBH)   --visit=$*.org --funcall  org-babel-tangle


%.html: $(OBJDIR)/%.html
	cp $< $@

%.lut.html:%.lut
	cd $(OBJDIR); \
	$(EMACS) --eval "(htmlize-file \"$<\")" --eval "(kill-emacs)" -Q 


$(OBJDIR)/%.html: $(OBJDIR)/%.org demarche-it-en.png
	cd $(OBJDIR); \
	$(EMACS) --visit=$*.org --eval "(load-theme 'zenburn)" --funcall org-export-as-html   --eval "(kill-emacs)" -Q
	cp $@ /tmp/xxx
	cat /tmp/xxx | sed -e  's/<div id=\"postamble\">/<HR><div id=\"postamble\">/g'> $@


#          --eval "(setq org-export-headline-levels 2)" \
# --directory=~/el_files/ \
# --directory=~/el_files/org-mode/lisp/ \
#     --load=/local/jahier/.emacs.d/elpa/htmlize-1.39/htmlize.el  \

SYNCHRONE_DIR=/import/www/DIST-TOOLS/SYNCHRONE
www:
	cp $(TARGETS)  $(SYNCHRONE_DIR)/lurette/doc/lutin-tuto/
	cp demarche-it-en.png  $(SYNCHRONE_DIR)/lurette/doc/lutin-tuto/
	cp -rf jpg  $(SYNCHRONE_DIR)/lurette/doc/lutin-tuto/
	cp -rf png $(SYNCHRONE_DIR)/lurette/doc/lutin-tuto/
	cp -rf sh $(SYNCHRONE_DIR)/lurette/doc/lutin-tuto/
	cp -rf *.lut $(SYNCHRONE_DIR)/lurette/doc/lutin-tuto/
	cp slides.css $(SYNCHRONE_DIR)/lurette/doc/lutin-tuto/
	cp $(MAIN)-html.html  $(SYNCHRONE_DIR)/lurette/doc/lutin-tuto/
