# 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 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 urlbst.tex.in urlbst.html.in Makefile.in prefix=@prefix@ exec_prefix=@exec_prefix@ bindir=@bindir@ DIST=urlbst-@PACKAGE_VERSION@ ### 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 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 $< ### Targets start here all: urlbst dist: $(DIST).tar.gz $(DIST).tar: $(DISTRIBS) sed '1s,.*,#! /usr/bin/env perl,' urlbst >tmp && mv tmp urlbst \ && chmod +x urlbst rm -Rf $(DIST) $(DIST).tar mkdir $(DIST) cp $(DISTRIBS) $(DIST) tar cf $@ $(DIST) rm -Rf $(DIST) urlbst: urlbst.in config.status ./config.status urlbst urlbst.tex: urlbst.tex.in config.status ./config.status urlbst.tex urlbst.html: urlbst.html.in config.status ./config.status urlbst.html Makefile: Makefile.in config.status ./config.status Makefile configure: configure.ac autoconf config.status: configure ./configure # 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: echo $(DIST) >VERSION # The README is just a plain-text version of urlbst.html README: urlbst.html lynx -dump -nolist urlbst.html >README # 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 test: $(BSTSTYLES) $(TESTSTYLES) for f in $(BSTSTYLES) $(TESTSTYLES); do \ ROOT=`echo $$f|sed s/\.bst$$//`; \ printf '\\relax\n' > test-$$ROOT.aux; \ printf '\\citation{*}\n' >> test-$$ROOT.aux; \ printf '\\bibdata{urlbst}\n' >> test-$$ROOT.aux; \ printf '\\bibstyle{'"$$ROOT"'}\n' >> test-$$ROOT.aux; \ 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 test-all: printf '\\relax\n'>test-all.mainaux sed -n 's/^.*{\(test:.*\),/\\citation{\1}/p' urlbst.bib>>test-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 test-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 test-all.mainaux # Tarball for unpacking in the webpage distribution directory webpage-tarball.tar: urlbst.pdf urlbst.html $(DIST).tar.gz mkdir webpage-tarball cp urlbst.pdf $(DIST).tar.gz 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 clean: tidy rm -f *.bst rm -Rf config.status autom4te.cache rm -f $(GENERATED) maintainer-clean: clean rm -f $(MAINTAINER_FILES)