HOMEDIR = www-home
CTANDIR = www-ctan
VERSION = 1.0.2
#
#
#
DTD = entries/catalogue.dtd
#
# Publish on Sarovar
#
RSYNC   = rsync --archive --verbose --compress --delete
SVUSER  = graham
SVHOST  = texcatalogue.sarovar.org
SVLOGIN = $(SVUSER)@$(SVHOST)
SVPATH  = /var/lib/gforge/chroot/home/groups/texcatalogue/htdocs/

all: support index bytopic

install: installsv installrs

update:
	cvs update
	make all
	make install

DISTNAME = texcatalogue-$(VERSION)

dist:
	mkdir $(DISTNAME)
	cp -r $(HOMEDIR)/* $(DISTNAME)/
	tar zcvf $(DISTNAME).tar.gz $(DISTNAME)
	rm -rf $(DISTNAME)/
	gzip -c catalogue.xml > catalogue-$(VERSION).xml.gz
#
#------------------------------------------------------------------------
#
# Generate PDFs
#
texcat.tex: src/gentex.py entries/*
	python src/gentex.py
texcat.pdf: texcat.tex
	rubber --pdf texcat
allpdfs: texcat.tex
	python src/allpdfs.py
access:
	python ../survivor/support/listaccess.py

#
#------------------------------------------------------------------------
#
# Do a 'newdocs' occasionally to look for doc files on CTAN and add them into
# the XML automatically. Do a 'filelist' first to update FILES.byname from
# Dante, which list all available files.
#
# Run 'doctypes' to add DOCTYPE back in which the python XML
# processing loses - I haven't found a way to stop it getting lost.
#
# The fixdates script will convert yyyy/mm/dd to yyyy-mm-dd 00:00:00.
# 
# The 'fix' script is forever changing, to perform numerous fixes
# as required.
#
gencat:
	src/gencat.py
newdocs:
	rm -f FILES.byname
	wget -nv ftp://ftp.dante.de/tex-archive/FILES.byname
	src/newdocs.py
	src/doctypes.py
#	src/miktex.py	
#	src/doctypes.py
doctypes:
	src/doctypes.py
checklinks:
	src/checklinks.py
fixdates:
	src/fixdates.py
fix:
	src/fix.py
validate: clean catalogue.xml
	src/validate.py
validateauth:
	python src/validateauth.py
nsgmls: clean catalogue.xml
	@perl -pi -e 's|http://texcatalogue.sarovar.org/|entries/|' catalogue.xml
	SP_CHARSET_FIXED=YES SP_ENCODING=XML nsgmls -wxml -mdeclaration/xml.soc -gues /usr/share/sgml/declaration/xml.decl catalogue.xml

$(HOMEDIR):
	if [ ! -d $@ ]; then mkdir $@ $@/entries; fi
	chmod go+rx $@ $@/entries

$(CTANDIR):
	if [ ! -d $@ ]; then mkdir $@ $@/entries; fi
	chmod go+rx $@ $@/entries

support: $(HOMEDIR) $(CTANDIR)
	cp -p src/texcatalogue.css $(HOMEDIR)
	cp -p src/texcatalogue.css $(CTANDIR)
	if [ -w /usr/local/share/sgml/ ]; \
        then cp $(DTD) /usr/local/share/sgml/; fi
	cp -p $(DTD) $(HOMEDIR)
	cp -p $(DTD) $(CTANDIR)
	cp -p src/licenses*.html $(HOMEDIR)
	cp -p src/licenses*.html $(CTANDIR)
	cp -p img/*.png $(HOMEDIR)
	cp -p img/*.png $(CTANDIR)
	cp -p entries/template $(HOMEDIR)/template.xml
	cp -p entries/template $(CTANDIR)/template.xml
	cp -p entries/authors $(HOMEDIR)/authors.xml
	cp -p entries/authors $(CTANDIR)/authors.xml

index: $(HOMEDIR) $(CTANDIR)
	cp -p src/texcatalogue.css $(HOMEDIR)
	cp -p src/texcatalogue.css $(CTANDIR)
	src/gencat.py
	(cd $(HOMEDIR); cp index.html catalogue.html) # Legacy root page
	(cd $(CTANDIR); cp index.html catalogue.html) # Legacy root page

bytopic: $(HOMEDIR) $(CTANDIR)
	#wget -q http://www.uni-frankfurt.de/~fenn/bytopic.html -O bytopic.html
	wget -q http://www.juergenfenn.de/bytopic.html -O bytopic.html
	chmod go+r bytopic.html
	cp -p bytopic.html $(HOMEDIR)
	mv bytopic.html $(CTANDIR)

catalogue.xml:
	src/fullcat.py

#fullcat.xml: 
#	src/fullcat.py

# catalogue.xml
# 	echo '<?xml version="1.0"?>' > $@
# 	echo '<!DOCTYPE fullcat SYSTEM "http://texcatalogue.sarovar.org/catalogue.dtd">' >> $@
# 	echo '<fullcat>' >> $@
# 	tail +3 entries/authors >> $@
# 	tail +3 catalogue.xml >> $@
# 	echo '</fullcat>' >> $@

#
# Install to texcatalogue.srovar.org - the new HOME for the TeX Catalogue
#
installsv:
	chmod go=rw $(HOMEDIR)/*.{html,png,css,dtd} $(HOMEDIR)/entries/*.html
	chmod go=rwx $(HOMEDIR)/entries
	$(RSYNC) $(HOMEDIR)/*.{html,png,css,dtd} $(HOMEDIR)/entries \
	         $(SVLOGIN):$(SVPATH)
#
# Where to install the ctan files?  CSIRO for now.
#
installct:
#
# Upload to the rsync server to be mirrored by CTAN
#
installcr:
	chmod go+r $(CTANDIR)/*.{html,png,css,dtd} $(CTANDIR)/entries/*.html
	chmod go+rx $(CTANDIR)/entries
	$(RSYNC) $(CTANDIR)/*.{html,png,css,dtd} $(CTANDIR)/entries \
               caravelle.act.cmis.csiro.au:public_html/ctan/
	ssh caravelle.act.cmis.csiro.au '(cd public_html/ctan/;/bin/ls -lRat | gzip >| ls-lR.gz)'
installrs:
	chmod go=rw $(CTANDIR)/*.{html,png,css,dtd} $(CTANDIR)/entries/*.html
	chmod go=rwx $(CTANDIR)/entries
	$(RSYNC) $(CTANDIR)/*.{html,png,css,dtd} $(CTANDIR)/entries \
               $(SVLOGIN):$(SVPATH)/ctan

clean:
	rm -f FILES.byname catalogue.xml fullcat.xml

realclean: clean
	rm -f entries/[a-d]/*.bak
	rm -f entries/[e-f]/*.bak
	rm -f entries/[g-m]/*.bak
	rm -f entries/[n-q]/*.bak
	rm -f entries/[r-u]/*.bak
	rm -f entries/[v-z]/*.bak
	rm -rf texcatalogue-?.?.? texcatalogue-?.?.?.tar.{gz,bz2}

cvsclean: realclean
	rm -rf $(HOMEDIR) $(CTANDIR)
