diff -urN -X stacks-0.2/src/documentation/dontdiff stacks-0.2.orig/src/Makefile stacks-0.2/src/Makefile
--- stacks-0.2.orig/src/Makefile	2006-03-20 01:48:12.000000000 +0000
+++ stacks-0.2/src/Makefile	2006-03-21 02:59:58.000000000 +0000
@@ -1,61 +1,66 @@
-.SUFFIXES: .aux .bbl .bib .blg .dvi .html .log .out .pdf .ps .tex .toc
-PDFS = conventions.pdf sites.pdf introduction.pdf categories.pdf hypercovering.pdf desirables.pdf injectives.pdf stacks-groupoids.pdf sets.pdf fdl.pdf stacks.pdf etale.pdf flat.pdf schemes.pdf algebraic.pdf
-DVIS = conventions.dvi sites.dvi introduction.dvi categories.dvi hypercovering.dvi desirables.dvi injectives.dvi stacks-groupoids.dvi sets.dvi fdl.dvi stacks.dvi etale.dvi flat.dvi schemes.dvi algebraic.dvi
-PSS = conventions.ps sites.ps introduction.ps categories.ps hypercovering.ps desirables.ps injectives.ps stacks-groupoids.ps sets.ps fdl.ps stacks.ps etale.ps flat.ps schemes.ps algebraic.ps
-AUXS = conventions.aux sites.aux introduction.aux categories.aux hypercovering.aux desirables.aux injectives.aux stacks-groupoids.aux sets.aux stacks.aux etale.aux flat.aux schemes.aux algebraic.aux
-TOCS = conventions.toc sites.toc introduction.toc categories.toc hypercovering.toc desirables.toc injectives.toc stacks-groupoids.toc sets.toc stacks.toc etale.toc flat.toc schemes.toc algebraic.toc
+# Known suffixes.
+.SUFFIXES: .aux .bbl .bib .blg .dvi .html .log .out .pdf .ps .tex .toc .funny
+
+# Master list of stems of tex files in the project.
+# This should be in order.
+LIJST = introduction conventions sets categories sites flat etale injectives hypercovering stacks stacks-groupoids schemes algebraic desirables
+
+# Add fdl to get license latexed as well.
+LIJST_FDL = $(LIJST) fdl
+
+# Different extensions.
+PDFS = $(patsubst %,%.pdf,$(LIJST_FDL))
+DVIS = $(patsubst %,%.dvi,$(LIJST_FDL))
+PSS = $(patsubst %,%.ps,$(LIJST_FDL))
+FUNNYS = $(patsubst %,%.funny,$(LIJST_FDL))
 HTMLS = stacks.html contents.html downloads.html
 
 # Files in INSTALLDIR will be overwritten.
 INSTALLDIR=..
 
-# Make all the .aux files first so crossreferences work.
+# Make all the funny targets first so crossreferences work.
 .PHONY: all
-all: $(AUXS) $(PDFS) $(DVIS) $(PSS) $(HTMLS) install
+all: $(FUNNYS) $(PDFS) $(DVIS) $(PSS) $(HTMLS)
 
 # We need the following to cancel the built-in rule for
 # .dvi files (which uses tex not latex).
 %.dvi : %.tex
 
-# fld.tex is different because there is no bibliography
+# fld.funny is different because there is no bibliography
 # nor is there a table of contents...
-fdl.pdf : fdl.tex fdl.aux
-	echo "2x pdflatex fdl.tex" >> logfile.log
-	pdflatex fdl.tex
-	pdflatex fdl.tex
-
-fdl.ps : fdl.dvi
-	echo "dvips -o fdl.ps fdl.dvi" >> logfile.log
-	dvips -o fdl.ps fdl.dvi
-
-fdl.dvi : fdl.tex fdl.aux
-	echo "2x latex fdl.tex" >> logfile.log
-	latex fdl.tex
+fdl.funny : fdl.tex
+	echo "latex fdl.tex" >> logfile.log
 	latex fdl.tex
+	echo "touch fdl.funny" >> logfile.log
+	touch fdl.funny
 
 # Other .pdf files do have bibliographies and
 # table of contents. But running make file.pdf
 # will not correctly insert external crossreferences
 # if the other .aux files aren't up to date.
-%.pdf : %.tex %.bbl %.aux %.toc
+%.pdf : %.tex %.funny
 	echo "2x pdflatex $<" >> logfile.log
 	pdflatex $<
 	pdflatex $<
 
-%.dvi : %.tex %.bbl %.aux %.toc
+%.dvi : %.tex %.funny
 	echo "2x latex $<" >> logfile.log
 	latex $<
 	latex $<
 
-%.aux %.toc : %.tex
+# Funny target to prepare %.aux, %.toc and %.bbl.
+# The latex command creates %.aux and %.toc,
+# the bibtex command creates %.bbl, and finally
+# the touch command creates %.funny with a newer
+# modification time then any of %.dvi, %.aux, %.toc,
+# %.bbl, %.blg, %.log and %.out.
+%.funny: %.tex
 	echo "latex $<" >> logfile.log
 	latex $<
-	echo "rm $*.dvi" >> logfile.log
-	rm $*.dvi
-
-%.bbl : %.aux
-	echo "bibtex $<" >> logfile.log
-	bibtex $<
+	echo "bibtex $*" >> logfile.log
+	bibtex $*
+	echo "touch $@" >> logfile.log
+	touch $@
 
 %.ps: %.dvi
 	echo "dvips -o $@ $<" >> logfile.log
@@ -63,22 +68,23 @@
 
 .PHONY: clean
 clean:
-	rm -f *.aux *.bbl *.blg *.dvi *.log *.pdf *.ps *.out *.toc *.html
+	rm -f *.aux *.bbl *.blg *.dvi *.log *.pdf *.ps *.out *.toc *.html *.funny
 
 .PHONY: backup
 backup: clean
 	cd .. ; tar -cjvf stacks-0.2.tar.bz2 src/
 
-contents.html: $(TOCS)
-
 # The script scripts/name_html.sh creates name.html in src directory.
-# We don't want an index.html in src! So we concatenate these into
+# We do not want an index.html in src! So we concatenate these into
 # $(INSTALLDIR)/index.html in the install target.
+#
+# FIXME: For contents.html We should really do some sanity checking to
+# see if the .toc files are up to date.
 %.html:
 	echo "./scripts/$*_html.sh" >> logfile.log
 	./scripts/$*_html.sh
 
 .PHONY: install
-install:
+install: all
 	cp *.pdf *.ps *.dvi $(INSTALLDIR)
 	cat stacks.html contents.html downloads.html > $(INSTALLDIR)/index.html
diff -urN -X stacks-0.2/src/documentation/dontdiff stacks-0.2.orig/src/documentation/dontdiff stacks-0.2/src/documentation/dontdiff
--- stacks-0.2.orig/src/documentation/dontdiff	2006-02-16 16:33:23.000000000 +0000
+++ stacks-0.2/src/documentation/dontdiff	2006-03-21 02:59:58.000000000 +0000
@@ -13,4 +13,5 @@
 *.patch
 *.gz
 *.bz2
-auto
\ No newline at end of file
+*.funny
+auto
diff -urN -X stacks-0.2/src/documentation/dontdiff stacks-0.2.orig/src/scripts/contents_html.sh stacks-0.2/src/scripts/contents_html.sh
--- stacks-0.2.orig/src/scripts/contents_html.sh	2006-03-20 01:48:12.000000000 +0000
+++ stacks-0.2/src/scripts/contents_html.sh	2006-03-21 02:59:58.000000000 +0000
@@ -33,7 +33,8 @@
 
 # LIJST is the list of STEMS of .toc files in the order in which you want it
 # to appear on the web-site. Do not include fdl.
-LIJST="introduction conventions sets categories sites etale injectives hypercovering stacks stacks-groupoids schemes algebraic flat desirables"
+LIJST=$(grep --max-count=1 LIJST Makefile)
+LIJST=$(echo $LIJST | sed 's@LIJST = @@')
 TELLER=0
 
 for STAM in $LIJST; do
diff -urN -X stacks-0.2/src/documentation/dontdiff stacks-0.2.orig/src/scripts/downloads_html.sh stacks-0.2/src/scripts/downloads_html.sh
--- stacks-0.2.orig/src/scripts/downloads_html.sh	2006-03-20 01:48:12.000000000 +0000
+++ stacks-0.2/src/scripts/downloads_html.sh	2006-03-21 02:59:58.000000000 +0000
@@ -3,7 +3,8 @@
 # Write a downloads section to downloads.html.
 
 # Same list as in contents_html.sh.
-LIJST="introduction conventions sets categories sites etale injectives hypercovering stacks stacks-groupoids schemes algebraic flat desirables"
+LIJST=$(grep --max-count=1 LIJST Makefile)
+LIJST=$(echo $LIJST | sed 's@LIJST = @@')
 
 cat > downloads.html << "EOF"
 <h3><a name="downloads"></a>Downloads</h3>
diff -urN -X stacks-0.2/src/documentation/dontdiff stacks-0.2.orig/src/stacks.tex stacks-0.2/src/stacks.tex
--- stacks-0.2.orig/src/stacks.tex	2006-03-20 01:48:12.000000000 +0000
+++ stacks-0.2/src/stacks.tex	2006-03-21 02:59:58.000000000 +0000
@@ -408,7 +408,7 @@
 \label{subsection-examples}
 
 \noindent
-FIXME: Need lots of examples.
+FIXME: Here we need lots of examples.
 
 \noindent
 FIXME: To be continued.
