NAME=kboot-lca2007-talk
VERSION=$(shell cat VERSION)

DIR1=almesber@kboot.sourceforge.net:/home/groups/k/kb/kboot/htdocs/doc/
DIR2=werner@host.almesberger.net:/home/httpd/almesberger/misc/lca2007/

DIR=kboot-lca2007-talk

WORDS=my.words
FILES=$(WORDS)
LATEX=talk
FIGS=config kexec req sequence stack mult

RES=1024x768

#MULTI=psmulti -rtol -cmajor
MULTI=psnup -r

EPS=$(shell for n in $(FIGS); do echo $$n.eps; done)
PS=$(shell for n in $(LATEX); do echo $$n.ps; done)
PDF=$(shell for n in $(LATEX); do echo $$n.pdf; done)
TEX=$(shell for n in $(LATEX); do echo $$n.tex; done)
DVI=$(shell for n in $(LATEX); do echo $$n.dvi; done)

.SUFFIXES:	.fig .eps .ps .pdf .dvi .tex .sh

all:		$(PS) #$(PDF)

.dvi.ps:
#		dvips -o $@ -t landscape -t a4 $<
		dvips -o - -t landscape $< | \
		  sed '/%%BeginDocument/,/%%EndDocument/s/%%.*//' >$@ || \
		  { rm -f $@; exit 1; }

.ps.pdf:
		ps2pdf $< $@

.tex.dvi:
		latex $<

.sh.eps:
		sh $< || { rm -f $@; exit 1; }

$(DVI):		$(EPS)

.fig.eps:
		fig2dev -L eps $< $@

p p9:		talk.ps
		$(MULTI) -9 talk.ps | lpr

p16:		talk.ps
		$(MULTI) -16 talk.ps | lpr

p25:		talk.ps
		$(MULTI) -25 talk.ps | lpr

p36:		talk.ps
		$(MULTI) -36 talk.ps | lpr

p49:		talk.ps
		$(MULTI) -49 talk.ps | lpr

slides:		talk.ps
		rm -rf $(RES).d
		./dvi2slides $(RES) talk.dvi

#
# Modern aspell doesn't support personal dictionaries anymore, so we use ispell
# instead. If we have an old installation, with a correctly working aspell, but
# a broken ispell-to-aspell wrapper script, we anti-wrap in our own aspell
# script.
#

spell:		.personal
		-cat $(LATEX).tex $(addsuffix .fig,$(FIGS)) >.tmp
		PATH=.:$$PATH ispell -t -p ./.personal .tmp
		rm -f .tmp

.personal:	$(WORDS)
		cat $(WORDS) >.personal || { rm -f .personal; exit 1; }

dist:
		cd ..; tar cfz $(DIR)/$(NAME)-`cat $(DIR)/VERSION`.tar.gz \
		  $(DIR)/VERSION $(DIR)/Makefile \
		  $(DIR)/waslides.cls $(DIR)/dvi2slides \
		  `for n in $(FILES); do echo $(DIR)/$$n; done` \
		  `for n in $(LATEX); do echo $(DIR)/$$n.tex; done` \
		  `for n in $(FIGS); do echo $(DIR)/$$n.fig; done`

upload:		dist $(PS) #slides #$(PDF)
		gzip <talk.ps >$(NAME)-$(VERSION).ps.gz
		scp $(NAME)-$(VERSION).ps.gz $(DIR2)/
		scp $(NAME)-$(VERSION).tar.gz $(DIR2)/
#		tar cfz $(NAME)-$(VERSION).gif-$(RES).tar.gz $(RES).d
#		scp $(NAME)-$(VERSION).gif-$(RES).tar.gz $(DIR2)/

#		scp talk.ps.gz $(DIR1)/$(NAME).ps.gz
#		scp $(NAME)-`cat VERSION`.tar.gz $(DIR1)/$(NAME).tar.gz

clean:
		rm -f *.eps *.ps *.pdf
		rm -f *.aux
