I use the application called "rubber", but before I found that
application, I used the following Makefile.  Use rubber, though.  It's
much nicer.

#!/usr/bin/make -f
#
# Makefile for LaTeX documents
#
################################################################################
texfiles = $(wildcard *.tex)
pdffiles = $(patsubst %.tex,%.pdf,$(texfiles))
psfiles = $(patsubst %.dvi,%.ps,$(dvifiles))
dvifiles = $(patsubst %.tex,%.dvi,$(texfiles))

all: $(dvifiles) $(pdffiles) $(psfiles)

dvi: $(dvifiles)
ps: $(psfiles)
pdf: $(pdffiles)

%.dvi: %.tex
	latex $<
	latex $<
	latex $<

%.pdf: %.tex %.dvi
	pdflatex $<

%.ps: %.dvi
	dvips $<

clean:
	-rm *.log *.dvi *.aux *.toc *.lol *.out

distclean: clean
	-rm *.pdf *.ps

.PHONY: all clean dvi ps pdf distclean

# Do dependencies here...