jshome = ../../../numeric/javascript/
ECHO = /bin/echo
GS = gs

texnotes =\
	interp.tex \
	integration.tex \
	montecarlo.tex \
	odes.tex \
	lineq.tex \
	leastsq.tex \
	roots.tex \
	optim.tex \
	eigen.tex \
	krylov.tex \
	fft.tex \
#	sfun.tex \

bib = numeric.bib

all: book notes
book: book.ps book.pdf

book.ps: $(texnotes) custom.tex makefile numeric.bib \
	preface.tex frontmatter.tex legal.tex
	$(ECHO) '\documentclass[11pt,a4paper]{book}' > book.latex
	$(ECHO) '\usepackage[utf8]{inputenc}' >> book.latex
	$(ECHO) '\special{papersize=20.99cm,29.70cm}' >> book.latex   # b5
#	$(ECHO) '\usepackage[cm]{fullpage}' >> book.latex
#	$(ECHO) '\usepackage{fullpage}' >> book.latex
#	$(ECHO) '\setlength{\paperwidth}{6in}' >> book.latex
#	$(ECHO) '\setlength{\paperheight}{9in}' >> book.latex
#	$(ECHO) '\special{papersize=6in,9in}' >> book.latex # US Trade
#	$(ECHO) '\usepackage[paperwidth=6in,paperheight=9in]{geometry}'>>book.latex
#	$(ECHO) '\special{papersize=5.83,8.26}' >> book.latex # a5
#	$(ECHO) '\special{papersize=7.44in,9.68in}' >> book.latex # Crown	Quarto
#	$(ECHO) '\special{papersize=6.93in,9.84in}' >> book.latex   # b5
#	$(ECHO) '\special{papersize=6.625in,10.25in}' >> book.latex # Comic Book
	$(ECHO) '\usepackage{graphicx}' >> book.latex
#	$(ECHO) '\usepackage{pstricks}' >> book.latex
	$(ECHO) '\usepackage{makeidx,amsmath,amssymb,amsfonts}' >> book.latex
	$(ECHO) '\usepackage{listings}' >> book.latex
	$(ECHO) '\lstset{language=C,tabsize=2}'
#	$(ECHO) '\usepackage{mdwlist}' >> book.latex
#	$(ECHO) '\usepackage{algorithmic,algorithm}' >> book.latex
#	$(ECHO) '\input{lstset.tex}' >> book.latex
	$(ECHO) '\include{custom}' >> book.latex
	$(ECHO) '\include{frontmatter}' >> book.latex
	$(ECHO) '\makeindex' >> book.latex
	$(ECHO) '\begin{document}' >> book.latex
	$(ECHO) '\frontmatter' >> book.latex
	$(ECHO) '\maketitle' >> book.latex
	$(ECHO) '\include{legal}' >> book.latex
	$(ECHO) '\include{preface}' >> book.latex
	$(ECHO) '\tableofcontents' >> book.latex
	$(ECHO) '\mainmatter' >> book.latex
	cat $(texnotes) >> book.latex
	$(ECHO) '\bibliographystyle{plain}' >> book.latex
	$(ECHO) '\bibliography{numeric}' >> book.latex
	$(ECHO) '\backmatter' >> book.latex
	$(ECHO) '\printindex' >> book.latex
	$(ECHO) '\end{document}' >> book.latex
	latex book.latex
	makeindex book
	bibtex book
	latex book.latex
	dvips book.dvi
#	$(GS) -r110x110 -sOutputFile=book%d.png \
#	-sPAPERSIZE=a4 -dBATCH -dNOPAUSE book.ps

book.pdf: book.ps ; ps2pdf book.ps

interp.tex: runge.eps akima.eps \
	c/interpolation/polinterp.c \
	c/interpolation/linterp.c \
	c/interpolation/qspline.c \
	c/interpolation/cspline.c \
	javascript/interpolation/akima.js \
	; touch $@
runge.eps: runge.plot ; pyxplot $<
akima.eps: akima.plot ; pyxplot $<

integration.tex: c/integration/adapt.c ;touch $@
odes.tex: c/ode/rkstep12.c c/ode/drive.c c/ode/rkstep23.c
	touch $@
lineq.tex: c/qr/qrdec.c c/qr/qrinverse.c c/qr/backsub.c
	touch $@
montecarlo.tex: \
	c/monte.carlo/plainmc.c \
	c/monte.carlo/lattice.c \
	javascript/monte.carlo/strata.js \
	javascript/monte.carlo/strata.eps \
	c/monte.carlo/halton.ps \
	c/monte.carlo/pseudo.ps \
	c/monte.carlo/quasi.ps
	touch $@
leastsq.tex: c/least.squares/lsfit.c c/least.squares/fit.eps
	touch $@
eigen.tex: $(jshome)/jacobi/jacobi.js $(jshome)/jacobi/rotate.js
	touch $@
roots.tex: c/roots/newton.c $(jshome)/downhill.simplex/amoeba.js
	touch $@
fft.tex: $(jshome)../c/fft/fft.c
	touch $@
optim.tex: c/downhill.simplex/downhill_simplex.c\
	c/downhill.simplex/simplex_operations.c\
	c/downhill.simplex/simplex_update.c
	touch $@

%.png : %.ps
	rm -f $**.png
	$(GS) -sDEVICE=pngalpha -r120x120 -sOutputFile=$*%d.png \
	-sPAPERSIZE=a4 -dBATCH -dNOPAUSE $*.ps
##	$(GS) -sDEVICE=jpeggray -r110x110 -sOutputFile=$*.jpeg \
##	-sPAPERSIZE=a4 -dBATCH -dNOPAUSE $*.ps
	cp $*1.png $*.png


clean:
	rm -f *.log *.aux *.dvi *.ps *.eps *.pdf *.png tmp.* *.bak *.latex
	find . -name '*.o' -delete
	find . -name '*.dat' -delete
	find . -name '*.png' -delete
#	find . -type f -perm /u+x

#email= fedorov@phys.au.dk
email= d.v.fedorov@gmail.com
bak: book.tgz
	echo 'From: fedorov' > tmp
	echo 'To: $(email)' >> tmp
	echo 'Subject: book backup' >> tmp
	echo 'Mime-Version: 1.0' >> tmp
	echo 'Content-type: application/x-gzip' >> tmp
	echo 'Content-Disposition: attachment; filename="$<"' >> tmp
	echo 'Content-Transfer-Encoding: base64' >> tmp
	base64 $< >> tmp
	/usr/lib/sendmail -t -oi < tmp
	rm -f tmp
book.tgz: FORCE
	rm -f $@
	find . -type f -perm /+x -exec basename {} ';' > execlist.txt
	tar -zvf $@ --create \
		--exclude-from='execlist.txt' \
		--exclude='*.o' --exclude='*.exe' --exclude='*.dll' \
		--exclude='*.ps' --exclude='*.eps' --exclude='tmp*' \
		--exclude='*.dvi' --exclude='book.pdf' \
		--exclude='*.log' --exclude='*.aux' --exclude='*.png' \
	 	*
FORCE:
test:
	/bin/echo '\begin{document}'
	/bin/echo -E '\begin{document}' > test.txt
	cat test.txt

pdfnotes  = $(texnotes:.tex=.pdf)
pngnotes  = $(texnotes:.tex=.png)
notes: $(pdfnotes) $(pngnotes)

%.png: %.ps
	rm -f $**.png
	$(GS) -sDEVICE=pngalpha -r115x115 -sOutputFile=$*%d.png \
	-sPAPERSIZE=a4 -dBATCH -dNOPAUSE $*.ps
	cp $*1.png $*.png
	cp $**.png ../now

%.dvi: %.tex
%.dvi: %.latex ; latex $*.latex ; latex $*.latex
%.ps: %.dvi ; dvips $*.dvi
%.pdf: %.ps ; ps2pdf $*.ps; chmod 644 $*.pdf; cp --update $*.pdf ../now

%.latex : %.tex custom.tex lstset.tex
	$(ECHO) '\documentclass[a4paper]{article}' > $*.latex
#	$(ECHO) '\documentclass[a4paper,twocolumn]{article}' > $*.latex
#	$(ECHO) '\documentclass[b5paper,twoside]{report}' > $*.latex
	$(ECHO) '\usepackage{fullpage}' >> $*.latex
	$(ECHO) '\usepackage{graphicx}' >> $*.latex
	$(ECHO) '\usepackage{mdwlist}' >> $*.latex
	$(ECHO) '\usepackage{amsmath}' >> $*.latex
	$(ECHO) '\usepackage{amssymb}' >> $*.latex
	$(ECHO) '\usepackage{algorithmic}' >> $*.latex
	$(ECHO) '\usepackage{algorithm}' >> $*.latex
	$(ECHO) '\usepackage{listings}' >> $*.latex
	$(ECHO) '\usepackage{alltt}' >> $*.latex
#	$(ECHO) '\usepackage{pstricks}' >> $*.latex
#	$(ECHO) '\pagestyle{myheadings}' >> $*.latex
#	$(ECHO) '\pagestyle{empty}' >> $*.latex
	$(ECHO) '\begin{document}' >> $*.latex
#	$(ECHO) '\input{lstset.tex}' >> $*.latex
	$(ECHO) '\input{custom.tex}' >> $*.latex
#	$(ECHO) '\markright{$*}' >> $*.latex
	cat $*.tex | sed \
		-e 's/\\subsubsection/\\paragraph*/' \
		-e 's/\\subsection/\\subsubsection*/' \
		-e 's/\\section/\\subsection*/' \
		-e 's/\\chapter/\\section*/' >> $*.latex
	$(ECHO) '\end{document}' >> $*.latex

clean-notes:
	rm -f $(pdfnotes) *.png
