foo=BengtssonH_20060511-IntroToAffxparser

# TODO: Fix bounding box settings for a few postscript outputs.
# TODO: Fix the src bundler.

gs=gs
gsview=gsview32

#gs="C:/gs/gs8.51/bin/gswin32c.exe"
#gsview="C:/Program Files/GSView/gsview/gsview32.exe"

BIBINCLUDES=hb-at-maths.lth.se.bib bioinformatics-journals-abbr.bib


# Slides and transparencies
slides=$(foo).364x273pt
draft=$(slides).draft
trans=$(foo).trans
slides.a4=$(foo).a4

# Handouts
handouts=$(foo).handouts

# Article
article=$(foo).article



# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# 364x273pt slides
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Generates 364x273pt (==128x96mm==5,04x3.78in) Postscript slides:
$(slides).ps: $(foo).dvi
	dvips -Ppdf $(foo).dvi -o $(slides).ps

$(foo).dvi: $(foo).tex slides/*.tex
	latex $(foo).tex; 
	latex $(foo).tex


# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Display 364x273pt slides in Ghostview
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
view: $(slides).ps;
	echo "In GSView:";
	echo "  2) Select Media -> User Defined... + 273pt + 364 pt";
	echo "  3) Press F4 (View -> Full Screen)";
	echo "  4) Press F6 (View -> Fit Windows)";
	$(gsview) -o seascape $(slides).ps;


# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# 364x273pt slide drafts
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Drafts (without figures) of the same
$(draft).ps: $(draft).dvi
	dvips -Ppdf $(draft).dvi -o $(draft).ps

$(draft).tex: $(foo).tex
	sed -e "s/^[\]documentclass.*//" $(foo).tex | sed -e "s/^%\[draft\]%//" > $(draft).tex;

$(draft).dvi: $(draft).tex slides/*.tex
	latex $(draft).tex; 
	latex $(draft).tex

$(draft).bbl: $(draft).tex $(BIBINCLUDES)
	latex $(draft).tex;
	bibtex $(draft);
	latex $(draft).tex;

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# A4 sized slides
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
$(slides.a4).pdf: $(slides.a4).ps
	ps2pdf -sPAPERSIZE=a4 $(slides.a4).ps

$(slides.a4).ps: $(foo).dvi
	dvips -Ppdf -ta4 $(foo).dvi -o tmp.ps; 
	psnup -1 -H273pt -W364pt -pa4 tmp.ps $(slides.a4).ps;
	rm tmp.ps


# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# 2903x2177 PNGs using a 576dpi=8*72dpi resolution 
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# (Useful if ps/pdf is too slow, which may happen when there 
# is a lot of datapoints in the figures)
$(foo)-png/slide001.png: $(foo).dvi
	mkdir -p $(foo)-png/;
#	dvips -O0,91pt -T273pt,364pt $(foo).dvi -o tmp.ps;
	dvips -T364pt,273pt $(foo).dvi -o tmp.ps;
	$(gs) -dNOPAUSE -dBATCH -sDEVICE=png16m -dDEVICEWIDTHPOINTS=364 -dDEVICEHEIGHTPOINTS=273 -r606 -sOutputFile=$(foo)-png/slide%03d.png tmp.ps;
	rm tmp.ps;

$(foo)-png.zip: $(foo)-png/slide001.png
	jar -cvfM $(foo)-png.zip $(foo)-png/

$(foo)-png.tar: $(foo)-png/slide001.png
	tar -cvf $(foo)-png.tar $(foo)-png/

$(foo)-png.tar.gz: $(foo)-png.tar
	gzip --force $(foo)-png.tar


# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Article
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
$(article).pdf: $(article).ps
	ps2pdf -sPAPERSIZE=a4 $(article).ps

$(article).ps: $(article).dvi
	dvips -Ppdf -ta4 $(article).dvi

$(article).dvi: $(article).tex
	latex $(article).tex; 
	latex $(article).tex

$(article).tex: $(foo).tex slides/*.tex
	sed -e "s/^[\]documentclass.*//" $(foo).tex | sed -e "s/^%\[article\]%//" > $(article).tex;


# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Transparencies
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
$(trans).pdf: $(trans).ps
	ps2pdf -sPAPERSIZE=a4 $(trans).ps

$(trans).ps: $(trans).dvi
	dvips -Ppdf -ta4 $(trans).dvi

$(trans).dvi: $(trans).tex
	latex $(trans).tex; 
	latex $(trans).tex

$(trans).tex: $(foo).tex slides/*.tex
	sed -e "s/^[\]documentclass.*//" $(foo).tex | sed -e "s/^%\[trans\]%//" > $(trans).tex;


# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# 4-up landscape handouts
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
$(handouts).pdf: $(handouts).ps
	ps2pdf -sPAPERSIZE=a4 $(handouts).ps

$(handouts).ps: $(handouts).dvi
	dvips -Ppdf -ta4 $(handouts).dvi -o tmp.ps;
	psnup -4 -b5mm -d -W364pt -H273pt -pa4 tmp.ps $(handouts).ps;
	rm -f tmp.ps

$(handouts).dvi: $(handouts).tex
	latex $(handouts).tex;
	latex $(handouts).tex;

$(handouts).tex: $(foo).tex
	sed -e "s/^[\]documentclass.*//" $(foo).tex | sed -e "s/^%\[handouts\]%//" > $(handouts).tex;



# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Source (TeX and figures) for the complete 
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
$(foo)/: $(foo).tex *.tex slides/* figures/*
	mkdir -p $(foo)/;
	cp $(foo).tex $(foo)/;
	cp -f Makefile $(foo)/;
	cp -f *.tex $(foo)/;
#	cp -f *.bbl $(foo)/;
#	cp -f *.bib $(foo)/;
#	cp -f *.sty $(foo)/;
	cp -fr slides/ $(foo)/;
	cp -fr figures/ $(foo)/;

$(foo).zip: $(foo)/
	jar -cvfM $(foo).zip $(foo)/


# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Shortcuts
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
slides: $(slides).ps

slides.a4: $(slides.a4).ps
slides.a4.pdf: $(slides.a4).pdf

png: $(foo)-png/slide001.png
png.zip: $(foo)-png.zip
png.tar: $(foo)-png.tar
png.tar.gz: $(foo)-png.tar.gz

draft: $(draft).ps

article: $(article).ps
article.pdf: $(article).pdf

trans: $(trans).ps
trans.pdf: $(trans).pdf

handouts: $(handouts).ps
handouts.pdf: $(handouts).pdf

src: $(foo)/
src.zip: $(foo).zip
src.tar: $(foo).tar
src.tar.gz: $(foo).tar.gz

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Clean up
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
clean:
	rm -f tmp.ps;
	rm -f $(foo)*.aux;
	rm -f $(foo)*.dvi;
	rm -f $(foo)*.log;
	rm -f $(foo)*.nav;
	rm -f $(foo)*.out;
	rm -f $(foo)*.snm;
	rm -f $(foo)*.toc;
	rm -f $(foo)*.vrb;
	rm -f $(article).tex $(draft).tex $(handouts).tex $(trans).tex;
	rm -f slides/*.aux;
