# Makefile for Technical Report archive
# Markus Kuhn, 2002-

SHELL=/bin/bash
TMPDIR=/tmp

.PHONY: phony all clean reply% do-not-call-me-again
.DELETE_ON_ERROR:

%.pdf %.aux %.idx: %.tex
	pdflatex $<
	while grep 'Rerun to get ' $*.log ; do pdflatex $< ; done

%.html: %-b.html
	/anfs/www/tools/bin/ucampas $*

all: UCAM-CL-TR-RSS.xml UCAM-CL-TR-index.html UCAM-CL-TR-table.html \
	UCAM-CL-TR-authors.html index.html submission.html tr-title-demo.pdf

index.html: UCAM-CL-TR-RSS.xml

UCAM-CL-TR.bib UCAM-CL-TR-RSS.xml \
UCAM-CL-TR-RFC1807.txt UCAM-CL-TR.dcxml UCAM-CL-TR-OAI-SR.xml \
UCAM-CL-TR-DBLP.xml UCAM-CL-TR-ePrint.xml \
tr-index.pdf tr-database-times.txt: \
	tr-database.txt tr-tool .
	./tr-tool keepsource abstracts+ \
	        bibindex:UCAM-CL-TR.bib \
		rfcindex:UCAM-CL-TR-RFC1807.txt \
		dcindex:UCAM-CL-TR.dcxml oaiindex:UCAM-CL-TR-OAI-SR.xml \
		rss:UCAM-CL-TR-RSS.xml dblp:UCAM-CL-TR-DBLP.xml \
	        clep:UCAM-CL-TR-ePrint.xml \
		pdfindex timestamps
	gzip -c UCAM-CL-TR.bib >UCAM-CL-TR.bib.gz

UCAM-CL-TR-table.html: tr-table.html
UCAM-CL-TR-authors.html: tr-authors.html

UCAM-CL-TR-index.html tr-table.html tr-authors.html: tr-database.txt tr-tool Makefile .
	@echo
	@echo "Generating HTML indices can take minutes, due to author homepage checks."
	./tr-tool htmlindex:UCAM-CL-TR-index.html htmltable:tr-table.html authorstable:tr-authors.html

reply%:
	sed -e 's/TR-xxx/TR-$*/' <reply.txt

tr-title-demo.pdf: tr-title.sty

tr-titles.pdf: tr-database.txt tr-title.sty tr-tool
	./tr-tool pdftitle

check.tex: tr-tool tr-database.txt
	./tr-tool checktex

tr-backup.iso:
	mkisofs -o $(TMPDIR)/$@ -r -T -f \
	  -V UCAM-CL-TR-`date -I` \
	  -publisher 'http://www.cl.cam.ac.uk/techreports/' \
	  -p "$(LOGNAME)@cl.cam.ac.uk" .
	ls -l $(TMPDIR)/$@
	echo "And now burn a CD, e.g. using 'cdrecord dev=/dev/dvdrecorder:@ -v -tao $(TMPDIR)/$@'"

clean:
	rm -f *~ *.aux *.toc *.log *.dvi *.ps *.bbl *.blg
	rm -f title-[1-9]*.{tex,pdf} $(TMPDIR)/tr-backup.iso

# General rules for building reports

# check PDF and PostScript source files for Type 3 fonts
# and other problems
orig/%.pdf orig-2/%.pdf: phony
	@[ -r $@ ] || { echo "Cannot read source file $@!" ; false ; }
	@chmod -fc a+r $@ ; true
	@pdffonts $@ | grep -q 'Type 3' && { \
	  echo "pdffonts $@" ; pdffonts $@ ; \
	  echo -e "\e[1mWARNING: $@ contains Type 3 font (pixel font?)\e[m" ; } ; true
	@pdfinfo $@ | grep 'Page size:' | grep -v A4 && \
	  echo -e "\e[1mWARNING: $@ is not in A4 format!\e[m" ; true
	@pdfinfo $@ | grep 'JavaScript:' | egrep -v ' no$$' && \
	  echo -e "\e[1mWARNING: $@ contains JavaScript!\e[m" ; true
orig/%.ps.gz orig-2/%.ps.gz: phony
	@[ -r $@ ] || { echo "Cannot read source file $@!" ; false ; }
	@chmod -fc a+r $@ ; true
	@zcat $@ | grep '%DVIPSBitmapFont:' && \
	  echo -e "\e[1mWARNING: $@ contains dvips pixel fonts!\e[m" ; true

# reports generated by prefixing titlepage in front of submitted original
UCAM-CL-TR-%.pdf: orig/%.pdf      ; ./tr-tool $(TROPT) prefix$* $+
UCAM-CL-TR-%.pdf: orig/%.ps.gz    ; ./tr-tool $(TROPT) prefix$* $+
UCAM-CL-TR-%.pdf: orig/%.dvi.gz   ; ./tr-tool $(TROPT) prefix$* $+

# reports generated by replacing the first two pages of submitted original
UCAM-CL-TR-%.pdf: orig-2/%.pdf    ; ./tr-tool $(TROPT) prefix$*,3- $+
UCAM-CL-TR-%.pdf: orig-2/%.ps.gz  ; ./tr-tool $(TROPT) prefix$*,3- $+
UCAM-CL-TR-%.pdf: orig-2/%.dvi.gz ; ./tr-tool $(TROPT) prefix$*,3- $+

# TROPT values for specific reports
UCAM-CL-TR-779.pdf: TROPT=acrobat
UCAM-CL-TR-909.pdf UCAM-CL-TR-914.pdf: TROPT=gs
UCAM-CL-TR-966.pdf: TROPT=gsps

# cover/jacket PNG for https://www.nielsentitleeditor.com/titleeditor/
cover150-%.png: UCAM-CL-TR-%.pdf
	gs -dSAFER -dNOPAUSE -q -dBATCH -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -dAlignToPixels=0 -r150 -sDEVICE=png16m -sPAPERSIZE=a4 -dFirstPage=1 -dLastPage=1 -sOutputFile=$@ $<

# show where the old files came from
move-old-reports: do-not-call-me-again
	cp /public/papers/reports/TR035-lcp-rewriting.dvi.gz UCAM-CL-TR-35.dvi.gz
	cp /public/papers/reports/TR050-lcp-unify.dvi.gz UCAM-CL-TR-50.dvi.gz
	cp /public/papers/reports/TR050-lcp-unify.pdf UCAM-CL-TR-50.pdf
	cp /public/papers/reports/TR057-lcp-recursion.dvi.gz UCAM-CL-TR-57.dvi.gz
	cp /public/papers/reports/TR057-lcp-recursion.pdf UCAM-CL-TR-57.pdf
	cp /public/papers/reports/TR069-lcp-termination.dvi.gz UCAM-CL-TR-69.dvi.gz
	cp /public/papers/reports/TR069-lcp-termination.pdf UCAM-CL-TR-69.pdf
	cp /public/papers/reports/TR082-lcp-higher-order-resolution.dvi.gz UCAM-CL-TR-82.dvi.gz
	cp /public/papers/reports/TR082-lcp-higher-order-resolution.pdf UCAM-CL-TR-82.pdf
	cp /public/papers/reports/TR130-lcp-generic-theorem-prover.dvi.gz UCAM-CL-TR-130.dvi.gz
	cp /public/papers/reports/TR130-lcp-generic-theorem-prover.pdf UCAM-CL-TR-130.pdf
	cp /public/papers/reports/TR133-lcp-first-isabelle-manual.dvi.gz UCAM-CL-TR-133.dvi.gz
	cp /public/papers/reports/TR133-lcp-first-isabelle-manual.pdf UCAM-CL-TR-133.pdf
	cp /public/papers/reports/TR143-lcp-experience.dvi.gz UCAM-CL-TR-143.dvi.gz
	cp /public/papers/reports/TR143-lcp-experience.pdf UCAM-CL-TR-143.pdf
	cp /public/papers/reports/TR175-lcp-simple.dvi.gz UCAM-CL-TR-175.dvi.gz
	cp /public/papers/reports/TR175-lcp-simple.pdf UCAM-CL-TR-175.pdf
	cp /public/papers/reports/TR186-dm-thesis.ps.gz UCAM-CL-TR-186.ps.gz
	cp /public/papers/reports/TR189-lcp-second-isabelle-manual.dvi.gz UCAM-CL-TR-189.dvi.gz
	cp /public/papers/reports/TR189-lcp-second-isabelle-manual.pdf UCAM-CL-TR-189.pdf
	cp /public/papers/reports/TR192-lcp-designing.dvi.gz UCAM-CL-TR-192.dvi.gz
	cp /public/papers/reports/TR192-lcp-designing.pdf UCAM-CL-TR-192.pdf
	cp /public/papers/reports/TR199-rjb-mjcg-jmjh-jvt-HOL-verification-ELLA.ps.gz UCAM-CL-TR-199.ps.gz
	cp /public/papers/reports/TR205-lcp-logic-ind.dvi.gz UCAM-CL-TR-205.dvi.gz
	cp /public/papers/reports/TR205-lcp-logic-ind.pdf UCAM-CL-TR-205.pdf
	cp /public/papers/reports/TR228-mdh-dm-dan.ps.gz UCAM-CL-TR-228.ps.gz
	cp /public/papers/reports/TR248-rjb-efficiency-primitive-inferences.dvi.gz UCAM-CL-TR-248.dvi.gz
	cp /public/papers/reports/TR250-iaf-touringmachines.ps.gz UCAM-CL-TR-250.ps.gz
	cp /public/papers/reports/TR254-rjb-HOL-semantics-subset-ELLA.dvi.gz UCAM-CL-TR-254.dvi.gz
	cp /public/papers/reports/TR261-nad-Image-Resampling.pdf UCAM-CL-TR-261.pdf
	cp /public/papers/reports/TR268-pwj-cmfileserver.ps.gz UCAM-CL-TR-268.ps.gz
	cp /public/papers/reports/TR271-lcp-set-theory.dvi.gz UCAM-CL-TR-271.dvi.gz
	cp /public/papers/reports/TR271-lcp-set-theory.pdf UCAM-CL-TR-271.pdf
	cp /public/papers/reports/TR272-mc-interactive-program-derivation.dvi.gz UCAM-CL-TR-272.dvi.gz
	cp /public/papers/reports/TR272-mc-interactive-program-derivation.pdf UCAM-CL-TR-272.pdf
	cp /public/papers/reports/TR273-iaf-thesis.ps.gz UCAM-CL-TR-273.ps.gz
	cp /public/papers/reports/TR275-bdp-go.ps.gz UCAM-CL-TR-275.ps.gz
	cp /public/papers/reports/TR276-bdp-metagame.ps.gz UCAM-CL-TR-276.ps.gz
	cp /public/papers/reports/TR277-bdp-chess-like.ps.gz UCAM-CL-TR-277.ps.gz
	cp /public/papers/reports/TR280-lcp-isabelle-intro.dvi.gz UCAM-CL-TR-280.dvi.gz
	cp /public/papers/reports/TR283-lcp-isabelle-ref.dvi.gz UCAM-CL-TR-283.dvi.gz
	cp /public/papers/reports/TR286-lcp-isabelle-logics.dvi.gz UCAM-CL-TR-286.dvi.gz
	cp /public/papers/reports/TR287-adg-silage.dvi.gz UCAM-CL-TR-287.dvi.gz
	cp /public/papers/reports/TR291-ksj-jrg-evaluating-nl-systems.ps.gz UCAM-CL-TR-291.ps.gz
	cp /public/papers/reports/TR292-cjs-synchronisation.ps.gz UCAM-CL-TR-292.ps.gz
	cp /public/papers/reports/TR298-jmsd-thesis.ps.gz UCAM-CL-TR-298.ps.gz
	cp /public/papers/reports/TR299-bdp-bridge.ps.gz UCAM-CL-TR-299.ps.gz
	cp /public/papers/reports/TR302-bdp-lpar.ps.gz UCAM-CL-TR-302.ps.gz
	echo 'Skipping TR304-lcp-coinduction-fig.ps.gz (not a report file)'
	cp /public/papers/reports/TR304-lcp-coinduction.dvi.gz UCAM-CL-TR-304.dvi.gz
	cp /public/papers/reports/TR304-lcp-coinduction.pdf UCAM-CL-TR-304.pdf
	cp /public/papers/reports/TR304-lcp-coinduction.ps.gz UCAM-CL-TR-304.ps.gz
	cp /public/papers/reports/TR307-ksj-nl-processing-for-ir.ps.gz UCAM-CL-TR-307.ps.gz
	cp /public/papers/reports/TR308-jf10008-co-induction.dvi.gz UCAM-CL-TR-308.dvi.gz
	cp /public/papers/reports/TR308-jf10008-co-induction.pdf UCAM-CL-TR-308.pdf
	cp /public/papers/reports/TR308-jf10008-co-induction.ps.gz UCAM-CL-TR-308.ps.gz
	cp /public/papers/reports/TR310-naa13-async-replication-protocol.ps.gz UCAM-CL-TR-310.ps.gz
	cp /public/papers/reports/TR312-lcp-set-II.pdf UCAM-CL-TR-312.pdf
	cp /public/papers/reports/TR312-lcp-set-II.ps.gz UCAM-CL-TR-312.ps.gz
	cp /public/papers/reports/TR314-jac-practical-unif-parsing.ps.gz UCAM-CL-TR-314.ps.gz
	cp /public/papers/reports/TR315-bdp-thesis.ps.gz UCAM-CL-TR-315.ps.gz
	cp /public/papers/reports/TR318-jg-program-refinement.ps.gz UCAM-CL-TR-318.ps.gz
	echo 'Skipping TR319-mdh-DAN-architecture.grayscale.ps.gz (unnecessary variant)'
	cp /public/papers/reports/TR319-mdh-DAN-architecture.ps.gz UCAM-CL-TR-319.ps.gz
	cp /public/papers/reports/TR320-lcp-isabelle-ind-defs.dvi.gz UCAM-CL-TR-320.dvi.gz
	cp /public/papers/reports/TR320-lcp-isabelle-ind-defs.pdf UCAM-CL-TR-320.pdf
	cp /public/papers/reports/TR321-ap-relational-properties-of-domains.ps.gz UCAM-CL-TR-321.ps.gz
	cp /public/papers/reports/TR326-sll-network.storage.architecture.ps.gz UCAM-CL-TR-326.ps.gz
	cp /public/papers/reports/TR334-lcp-final.coalgebra.dvi.gz UCAM-CL-TR-334.dvi.gz
	cp /public/papers/reports/TR334-lcp-final.coalgebra.pdf UCAM-CL-TR-334.pdf
	cp /public/papers/reports/TR334-lcp-final.coalgebra.ps.gz UCAM-CL-TR-334.ps.gz
	cp /public/papers/reports/TR337-rjb-efficiency-fully-expansive-provers.dvi.gz UCAM-CL-TR-337.dvi.gz
	cp /public/papers/reports/TR341-job-support-multimedia-applications.ps.gz UCAM-CL-TR-341.ps.gz
	cp /public/papers/reports/TR347-ksj-reflections-on-trec.dvi.gz UCAM-CL-TR-347.dvi.gz
	cp /public/papers/reports/TR347-ksj-reflections-on-trec.ps.gz UCAM-CL-TR-347.ps.gz
	cp /public/papers/reports/TR351-skb-Realtime-Mobile-Traffic.ps.gz UCAM-CL-TR-351.ps.gz
	cp /public/papers/reports/TR356-ksj-approaches-to-text-retrieval.dvi.gz UCAM-CL-TR-356.dvi.gz
	cp /public/papers/reports/TR356-ksj-approaches-to-text-retrieval.ps.gz UCAM-CL-TR-356.ps.gz
	cp /public/papers/reports/TR359-jf10008-co-induction-in-isabelle.dvi.gz UCAM-CL-TR-359.dvi.gz
	cp /public/papers/reports/TR359-jf10008-co-induction-in-isabelle.pdf UCAM-CL-TR-359.pdf
	cp /public/papers/reports/TR359-jf10008-co-induction-in-isabelle.ps.gz UCAM-CL-TR-359.ps.gz
	cp /public/papers/reports/TR361-rjb17-explicit-network-scheduling.ps.gz UCAM-CL-TR-361.ps.gz
	cp /public/papers/reports/TR362-mh10006-w-learning.ps.gz UCAM-CL-TR-362.ps.gz
	cp /public/papers/reports/TR363-idbs1-names-higher-order-functions.dvi.gz UCAM-CL-TR-363.dvi.gz
	cp /public/papers/reports/TR363-idbs1-names-higher-order-functions.ps.gz UCAM-CL-TR-363.ps.gz
	cp /public/papers/reports/TR364-or200-church-rosser-isabelle.ps.gz UCAM-CL-TR-364.ps.gz
	cp /public/papers/reports/TR367-ap-categorical-logic.dvi.gz UCAM-CL-TR-367.dvi.gz
	cp /public/papers/reports/TR367-ap-categorical-logic.ps.gz UCAM-CL-TR-367.ps.gz
	cp /public/papers/reports/TR368-bs201-cogpit.ps.gz UCAM-CL-TR-368.ps.gz
	cp /public/papers/reports/TR374-bs201-qos_updates.ps.gz UCAM-CL-TR-374.ps.gz
	cp /public/papers/reports/TR376-tr-multi-service-os.ps.gz UCAM-CL-TR-376.ps.gz
	cp /public/papers/reports/TR377-lcp-mechanising-set-theory.pdf UCAM-CL-TR-377.pdf
	cp /public/papers/reports/TR377-lcp-mechanising-set-theory.ps.gz UCAM-CL-TR-377.ps.gz
	cp /public/papers/reports/TR378-naa13.ps.gz UCAM-CL-TR-378.ps.gz
	cp /public/papers/reports/TR380-bs201-qos_issues.ps.gz UCAM-CL-TR-380.ps.gz
	cp /public/papers/reports/TR384-scc1000-Securing-ATM-Networks.ps.gz UCAM-CL-TR-384.ps.gz
	cp /public/papers/reports/TR390-rjb-Syn-single-language.dvi.gz UCAM-CL-TR-390.dvi.gz
	cp /public/papers/reports/TR390-rjb-Syn-single-language.ps.gz UCAM-CL-TR-390.ps.gz
	cp /public/papers/reports/TR393-sac-performance-management-in-ATM-networks.ps.gz UCAM-CL-TR-393.ps.gz
	cp /public/papers/reports/TR394-lcp-mutilated-chess-board.dvi.gz UCAM-CL-TR-394.dvi.gz
	cp /public/papers/reports/TR394-lcp-mutilated-chess-board.pdf UCAM-CL-TR-394.pdf
	cp /public/papers/reports/TR394-lcp-mutilated-chess-board.ps.gz UCAM-CL-TR-394.ps.gz
	cp /public/papers/reports/TR396-lcp-generic-automatic-proof-tools.pdf UCAM-CL-TR-396.pdf
	cp /public/papers/reports/TR396-lcp-generic-automatic-proof-tools.ps.gz UCAM-CL-TR-396.ps.gz
	cp /public/papers/reports/TR397-br212-optimal-routing-in-2-jump-circulant-networks.ps.gz UCAM-CL-TR-397.ps.gz
	cp /public/papers/reports/TR403-prb12-devices-in-a-multi-service-os.dvi.gz UCAM-CL-TR-403.dvi.gz
	cp /public/papers/reports/TR403-prb12-devices-in-a-multi-service-os.ps.gz UCAM-CL-TR-403.ps.gz
	cp /public/papers/reports/TR405-rjb-tool-formal-comp-lang.dvi.gz UCAM-CL-TR-405.dvi.gz
	cp /public/papers/reports/TR405-rjb-tool-formal-comp-lang.ps.gz UCAM-CL-TR-405.ps.gz
	cp /public/papers/reports/TR406-lcp-Tool-Support-for-Logics-of-Programs.pdf UCAM-CL-TR-406.pdf
	cp /public/papers/reports/TR406-lcp-Tool-Support-for-Logics-of-Programs.ps.gz UCAM-CL-TR-406.ps.gz
	cp /public/papers/reports/TR407-ss249-L4-Microkernel.ps.gz UCAM-CL-TR-407.ps.gz
	cp /public/papers/reports/TR408-jrh-Theorem-Proving-with-the-Real-Numbers.dvi.gz UCAM-CL-TR-408.dvi.gz
	cp /public/papers/reports/TR408-jrh-Theorem-Proving-with-the-Real-Numbers.ps.gz UCAM-CL-TR-408.ps.gz
	cp /public/papers/reports/TR409-lcp-Proving-Properties-of-Security-Protocols-by-Induction.dvi.gz UCAM-CL-TR-409.dvi.gz
	cp /public/papers/reports/TR409-lcp-Proving-Properties-of-Security-Protocols-by-Induction.pdf UCAM-CL-TR-409.pdf
	cp /public/papers/reports/TR409-lcp-Proving-Properties-of-Security-Protocols-by-Induction.ps.gz UCAM-CL-TR-409.ps.gz
	cp /public/papers/reports/TR410-jrh-proof-style.dvi.gz UCAM-CL-TR-410.dvi.gz
	cp /public/papers/reports/TR410-jrh-proof-style.ps.gz UCAM-CL-TR-410.ps.gz
	cp /public/papers/reports/TR413-lcp-Mechanized-Proofs-of-Security-Protocols-Needham-Schroeder-with-Public-Keys.dvi.gz UCAM-CL-TR-413.dvi.gz
	cp /public/papers/reports/TR413-lcp-Mechanized-Proofs-of-Security-Protocols-Needham-Schroeder-with-Public-Keys.pdf UCAM-CL-TR-413.pdf
	cp /public/papers/reports/TR413-lcp-Mechanized-Proofs-of-Security-Protocols-Needham-Schroeder-with-Public-Keys.ps.gz UCAM-CL-TR-413.ps.gz
	cp /public/papers/reports/TR414-adg-spi-calculus.ps.gz UCAM-CL-TR-414.ps.gz
	cp /public/papers/reports/TR418-lcp-recur.pdf UCAM-CL-TR-418.pdf
	cp /public/papers/reports/TR418-lcp-recur.ps.gz UCAM-CL-TR-418.ps.gz
	cp /public/papers/reports/TR421-mn200-c-semantics.dvi.gz UCAM-CL-TR-421.dvi.gz
	cp /public/papers/reports/TR421-mn200-c-semantics.ps.gz UCAM-CL-TR-421.ps.gz
	cp /public/papers/reports/TR424-fm205-simplification-with-renaming.dvi.gz UCAM-CL-TR-424.dvi.gz
	cp /public/papers/reports/TR426-mh10006-phd.ps.gz UCAM-CL-TR-426.ps.gz
	cp /public/papers/reports/TR428-jrh-tang.dvi.gz UCAM-CL-TR-428.dvi.gz
	cp /public/papers/reports/TR428-jrh-tang.ps.gz UCAM-CL-TR-428.ps.gz
	echo 'Skipping TR429-adg-pdh-sbl-objects.ps.gz (first revision)'
	cp /public/papers/reports/TR429-adg-pdh13-sbl21-imperative-objects.dvi.gz UCAM-CL-TR-429.dvi.gz
	cp /public/papers/reports/TR429-adg-pdh13-sbl21-imperative-objects.ps.gz UCAM-CL-TR-429.ps.gz
	cp /public/papers/reports/TR432-lcp-Yahalom.dvi.gz UCAM-CL-TR-432.dvi.gz
	cp /public/papers/reports/TR432-lcp-Yahalom.pdf UCAM-CL-TR-432.pdf
	cp /public/papers/reports/TR432-lcp-Yahalom.ps.gz UCAM-CL-TR-432.ps.gz
	cp /public/papers/reports/TR440-lcp-inductive-analysis-of-TLS.pdf UCAM-CL-TR-440.pdf
	cp /public/papers/reports/TR440-lcp-inductive-analysis-of-TLS.ps.gz UCAM-CL-TR-440.ps.gz
	cp /public/papers/reports/TR441-lcp-Generic-Tableau-Prover.dvi.gz UCAM-CL-TR-441.dvi.gz
	cp /public/papers/reports/TR441-lcp-Generic-Tableau-Prover.pdf UCAM-CL-TR-441.pdf
	cp /public/papers/reports/TR441-lcp-Generic-Tableau-Prover.ps.gz UCAM-CL-TR-441.ps.gz
	cp /public/papers/reports/TR442-jdf21-lcp-Nonstandard-Analysis-and-Geometry-Theorem-Proving.dvi.gz UCAM-CL-TR-442.dvi.gz
	cp /public/papers/reports/TR442-jdf21-lcp-Nonstandard-Analysis-and-Geometry-Theorem-Proving.ps.gz UCAM-CL-TR-442.ps.gz
	cp /public/papers/reports/TR443-lcp-Inductive-Approach-to-Verifying-Cryptographic-Protocols.pdf UCAM-CL-TR-443.pdf
	cp /public/papers/reports/TR443-lcp-Inductive-Approach-to-Verifying-Cryptographic-Protocols.ps.gz UCAM-CL-TR-443.ps.gz
	cp /public/papers/reports/TR446-ksj-probabilistic-information-retrieval.dvi.gz UCAM-CL-TR-446.dvi.gz
	cp /public/papers/reports/TR446-ksj-probabilistic-information-retrieval.ps.gz UCAM-CL-TR-446.ps.gz
	cp /public/papers/reports/TR459-ma10005-open-parallel-arch-for-data-intensive-apps.dvi.gz UCAM-CL-TR-459.dvi.gz
	cp /public/papers/reports/TR459-ma10005-open-parallel-arch-for-data-intensive-apps.ps.gz UCAM-CL-TR-459.ps.gz
	cp /public/papers/reports/TR484-rit10-automatic-summarising-and-the-CLASP-system.pdf UCAM-CL-TR-484.pdf
	cp /public/papers/reports/TR496-jjl21-Contexts-and-embeddings-for-closed-shallow-action-graphs.ps.gz UCAM-CL-TR-496.ps.gz
	cp /public/papers/reports/TR504-oyk20-Integrated-Word-Sense-Selection-in-Texts.ps.gz UCAM-CL-TR-504.ps.gz
	cp /public/papers/reports/TR508-jjl21-Shallow-linear-action-graphs-and-their-embeddings.ps.gz UCAM-CL-TR-508.ps.gz
	cp /public/papers/reports/TR510-rmm1002-ri202-kaf24-mpls.pdf UCAM-CL-TR-510.pdf
	cp /public/papers/reports/TR510-rmm1002-ri202-kaf24-mpls.ps.gz UCAM-CL-TR-510.ps.gz
	cp /public/papers/reports/TR511-camg100-software-visualization-in-prolog.pdf UCAM-CL-TR-511.pdf
	cp /public/papers/reports/TR513-ts274-generic-summaries-for-indexing.ps.gz UCAM-CL-TR-513.ps.gz
	cp /public/papers/reports/TR514-au10001-Nomadic-Pi-Calculi-Expressing-and-Verifying-Infrastructure-for-Mobile-Computation.ps.gz UCAM-CL-TR-514.ps.gz
	cp /public/papers/reports/TR516-ri202-Dynamic-Provisioning-of-Resource-Assured-and-Programmable-VPNs.ps.gz UCAM-CL-TR-516.ps.gz
	cp /public/papers/reports/TR517-ksj-summary-of-experiments.dvi.gz UCAM-CL-TR-517.dvi.gz
	cp /public/papers/reports/TR517-ksj-summary-of-experiments.ps.gz UCAM-CL-TR-517.ps.gz
	cp /public/papers/reports/TR518-jy212-An-Attack-on-A-Traitor-Tracing-Scheme.pdf UCAM-CL-TR-518.pdf
	cp /public/papers/reports/TR520-mfh20-Ternary-and-Three-point-Univariate-Subdivision-Schemes.pdf UCAM-CL-TR-520.pdf
	cp /public/papers/reports/TR521-rm135-Operational-congruences-for-reactive-systems.ps.gz UCAM-CL-TR-521.ps.gz
	cp /public/papers/reports/TR522-mfpg2-Practical-Behavioural-Animation-based-on-Vision-and-Attention.pdf UCAM-CL-TR-522.pdf
	cp /public/papers/reports/TR522-mfpg2-Practical-Behavioural-Animation-based-on-Vision-and-Attention.ps.gz UCAM-CL-TR-522.ps.gz
	cp /public/papers/reports/TR524-lcp-purchase.pdf UCAM-CL-TR-524.pdf
	cp /public/papers/reports/TR526-ajp_thesis.pdf UCAM-CL-TR-526.pdf

move-sewell-reports: do-not-call-me-again
	cp -i /homes/pes20/public_html/Netsem/udp-long.ps UCAM-CL-TR-515.ps
	cp -i /homes/pes20/public_html/versions-tr.ps UCAM-CL-TR-506.ps
	cp -i /homes/pes20/public_html/versions-tr.pdf UCAM-CL-TR-506.pdf
	cp -i /homes/pes20/public_html/versions-tr.dvi UCAM-CL-TR-506.dvi
	cp -i /homes/pes20/public_html/indexing-tr.ps UCAM-CL-TR-505.ps
	cp -i /homes/pes20/public_html/indexing-tr.dvi UCAM-CL-TR-505.dvi
	cp -i /homes/pes20/public_html/indexing-tr.pdf UCAM-CL-TR-505.pdf
	cp -i /homes/pes20/public_html/apppi.ps.gz UCAM-CL-TR-498.ps.gz
	cp -i /homes/pes20/public_html/apppi.pdf UCAM-CL-TR-498.pdf
	cp -i /homes/pes20/public_html/wraptypes-tr.ps UCAM-CL-TR-478.ps
	cp -i /homes/pes20/public_html/wrap-tr.ps UCAM-CL-TR-463.ps
	cp -i /homes/pes20/public_html/wipl-tr.ps UCAM-CL-TR-462.ps
	cp -i /homes/pes20/public_html/labels-long-cmr.ps UCAM-CL-TR-444.ps
	cp -i /homes/pes20/public_html/globallocal.cmr.ps.gz UCAM-CL-TR-435.ps.gz
	cp -i /homes/pes20/public_html/au.cl-tr-514.ps UCAM-CL-TR-514.ps
	cp -i /homes/pes20/public_html/au.cl-tr-514.pdf UCAM-CL-TR-514.pdf
	cp -i /homes/pes20/public_html/ptw.cl-tr-492.pdf UCAM-CL-TR-492.pdf
	cp -i /homes/pes20/public_html/ptw.cl-tr-492.ps.gz UCAM-CL-TR-492.ps.gz

move-copestake-reports: do-not-call-me-again
	cp -i /homes/aac10/public_html/papers/compleat.ps.gz UCAM-CL-TR-316.ps.gz
	cp -i /homes/aac10/public_html/papers/masspl.ps.gz UCAM-CL-TR-190.ps.gz
	cp -i /homes/aac10/public_html/papers/ker.ps.gz UCAM-CL-TR-187.ps.gz
	cp -i /homes/aac10/public_html/papers/dbrep.pdf UCAM-CL-TR-163.pdf

# These Paulson reports might have copyright issues
# as they also appeared in journals.
move-paulson-reports: do-not-call-me-again
	cp -i /homes/lcp/public_html/papers/UNITY/composition.pdf     UCAM-CL-TR-507.pdf
	cp -i /homes/lcp/public_html/papers/UNITY/UNITY.pdf           UCAM-CL-TR-467.pdf
	cp -i /homes/lcp/public_html/papers/Sets/final.pdf            UCAM-CL-TR-458.pdf
	cp -i /homes/lcp/public_html/papers/Kammueller/sylow.pdf      UCAM-CL-TR-452.pdf
	cp -i /homes/lcp/public_html/papers/lamport-paulson-types.pdf UCAM-CL-TR-425.pdf
