# Makefile for urlbst # BSTSTYLES are the standard styles that we distribute BSTSTYLES=plainurl.bst unsrturl.bst alphaurl.bst abbrvurl.bst # TESTSTYLES are a couple of extra ones that we explicitly test TESTSTYLES=mlaurl.bst amsalphaurl.bst MAINTAINER_FILES= Makefile configure GENERATED=urlbst urlbst.tex urlbst.pdf urlbst.html README VERSION $(BSTSTYLES) # distribute generated files # ...plus the configure files # ...plus the configured files DISTRIBS=$(GENERATED) \ configure configure.ac \ urlbst.in urlbst.bib Makefile.in \ LICENCE-gpl-2.0.txt LICENCE-lppl.txt prefix=@prefix@ exec_prefix=@exec_prefix@ bindir=@bindir@ DIST=urlbst-@PACKAGE_VERSION@ # On OS X, the following avoids extended attributes being included TAR=COPYFILE_DISABLE=1 tar #TAR=tar ### Implicit rules # Don't include --inlinelinks when generating %url.bst here, as we # do want the links visible when generating the documentation, and it's # probably abetter default in any case. %url.bst: urlbst export BSTINPUTS=test: ; \ if test -z "`kpsewhich ${@:url.bst=.bst}`"; then \ echo "Can't locate ${@:url.bst=.bst}"; \ else \ ./urlbst --eprint --doi --pubmed --hyperref `kpsewhich ${@:url.bst=.bst}` $@; \ fi # Incomplete TeX support %.ps: %.dvi dvips -o $@ $< %.bbl: %.tex plainurl.bst pdflatex $< if ! test -f $@ || grep -q 'Citation.*undefined' ${<:.tex=.log}; then \ bibtex ${<:.tex=}; \ pdflatex $<; \ rm ${<:.tex=.pdf}; \ fi %.pdf: %.tex %.bbl pdflatex $< %.dvi: %.tex %.bbl latex $< %.gz: % gzip --best -f $< .PRECIOUS: .bbl ### Targets start here all: urlbst dist: $(DIST).tar.gz $(DIST).zip $(DIST).tar: $(DIST)/urlbst.in $(TAR) cf $@ $(DIST) $(DIST).zip: $(DIST)/urlbst.in zip -r $@ $(DIST) $(DIST)/urlbst.in: $(DISTRIBS) if test -d $(DIST); then rm -Rf $(DIST); fi && mkdir $(DIST) cp $(DISTRIBS) $(DIST) urlbst: urlbst.in config.status ./config.status urlbst urlbst.tex: urlbst.tex.in hg.sed release-notes.tex sed -f hg.sed -e '/include:release-notes/r release-notes.tex' urlbst.tex.in >$@ urlbst.html: urlbst.html.in release-notes.html hg.sed sed -f hg.sed -e '/include:release-notes/r release-notes.html' urlbst.html.in >$@ Makefile: Makefile.in config.status ./config.status Makefile README: README.md hg.sed rm -f $@ sed -f hg.sed README.md >$@ configure: configure.ac autoconf config.status: configure ./configure hg.sed: Makefile .hg rm -f $@ { echo 's,@PACKAGE_VERSION\@,@PACKAGE_VERSION@,g'; \ echo 's,@RELEASEDATE\@,@RELEASEDATE@,g'; \ echo 's/@COPYRIGHTYEARS\@/@COPYRIGHTYEARS@/'; \ echo 's,@REPOURL\@,@REPOURL@,g'; \ echo 's,@CTANURL\@,@CTANURL@,g'; \ hg parent --template 's/@HGIDENT\@/{node|short} ({latesttag}+{latesttagdistance}), {date|isodate}/\n'; \ } >hg.sed release-notes.tex: release-notes.html rm -f $@ xsltproc tools/release-notes-to-latex.xslt release-notes.html >$@.tmp && mv $@.tmp $@ # Version stamp file, included in the distribution for convenience, # so it's easy to see which version it is has been unpacked at CTAN. VERSION: Makefile.in echo $(DIST) >VERSION # Very simple install target -- hardly worth bothering, really.... install: urlbst cp urlbst $(bindir) # Very simple test target -- just check that we don't bomb converting # the standard styles check: $(BSTSTYLES) $(TESTSTYLES) for f in $(BSTSTYLES) $(TESTSTYLES); do \ ROOT=`echo $$f|sed s/\.bst$$//`; \ { printf '\\relax\n'; \ sed -n 's/^.*\(test:[a-z0-9-]*\).*/\\citation{\1}/p' urlbst.bib; \ printf '\\bibdata{urlbst}\n'; \ printf '\\bibstyle{'"$$ROOT"'}\n'; } >test-$$ROOT.aux; \ echo "*** testing $$f"; \ bibtex test-$$ROOT; \ done # Brute-force test target, which finds all the system .bst files, # converts them, and runs BibTeX on them. It doesn't test the results # in any way -- you have to do that by eye. # # No, this is a hopelessly blunderbus approach. And in any case the # 'locate *.bst' doesn't work. At least the following would find only things # on the .bst search path. # BSTPATH=`kpsepath bst` # for d in `IFS=:; echo $BSTPATH`; do # dd=`expr "$d" : '!*\(.*[^/]\)/*$'` # echo dd=$dd # test -d "$dd" && find $dd -name \*.bst # done check-all: printf '\\relax\n'>check-all.mainaux sed -n 's/^.*{\(test:.*\),/\\citation{\1}/p' urlbst.bib>>check-all.mainaux for f in `locate '*.bst' | grep -v norman`; do T=`echo $$f|sed 's+.*/\(.*\)\.bst+\1url+'`;perl urlbst $$f $$T.bst; if test $$? = 0; then TF=test-$$T.aux; cp check-all.mainaux $$TF;printf '\\bibdata{urlbst}\n'>>$$TF; printf '\\bibstyle{$$T}\n'>>$$TF; else rm $$T.bst; fi done for f in `ls test-*.aux|sed s+.aux++`;do bibtex $$f;done rm check-all.mainaux # Tarball for unpacking in the webpage distribution directory webpage-tarball.tar: urlbst.pdf urlbst.html $(DIST).tar.gz $(DIST).zip mkdir webpage-tarball cp urlbst.pdf $(DIST).tar.gz $(DIST).zip webpage-tarball cp urlbst.html webpage-tarball/index.html cd webpage-tarball; $(TAR) cf ../webpage-tarball.tar * rm -Rf webpage-tarball tidy: rm -f webpage-tarball.tar rm -f *~ test-* rm -f *.aux *.bbl *.log *.blg *.dvi *.pdf rm -Rf urlbst.app clean: tidy rm -f *.bst rm -Rf config.status autom4te.cache prepare-roff.sed rm -Rf $(DIST).tar $(DIST).tar.gz $(DIST).zip $(DIST) rm -f $(GENERATED) maintainer-clean: clean rm -f $(MAINTAINER_FILES)