diff options
Diffstat (limited to 'info/symbols/comprehensive/source/Makefile')
-rw-r--r-- | info/symbols/comprehensive/source/Makefile | 103 |
1 files changed, 54 insertions, 49 deletions
diff --git a/info/symbols/comprehensive/source/Makefile b/info/symbols/comprehensive/source/Makefile index 1876486e96..41ce0eaeeb 100644 --- a/info/symbols/comprehensive/source/Makefile +++ b/info/symbols/comprehensive/source/Makefile @@ -22,7 +22,7 @@ EXTRADIST = symbols.tex lightbulb10.mf lightbulb.mf \ makefakeMnSymbol teubner-subset.sty fakemusixtex.sty \ fakearevmath.sty fakedozenal.sty fakelatexsym.sty \ makefakefdsymbol makefakeboisik fakearcs.sty fakeallrunes.sty \ - makefakestix makefakestarfont makerawtables \ + makefakestix makefakestarfont makerawtables makefakecmupint \ Makefile # All formats of the symbol list depend upon the following files. @@ -31,7 +31,7 @@ COMMONDEPS = symbols.tex symbols.ist fakeMnSymbol.sty teubner-subset.sty \ fakeboisik.sty fakestix.sty fakearcs.sty fakeold-arrows.sty \ fakearevmath.sty fakedozenal.sty fakelatexsym.sty \ fakestarfont.sty nonlatex versatim.tex junicode lilyglyphs \ - fakeallrunes.sty \ + fakeallrunes.sty fakecmupint.sty \ $(TARGETS_SOURCE) # The following non-LaTeX files will be copied to the current @@ -39,7 +39,8 @@ COMMONDEPS = symbols.tex symbols.ist fakeMnSymbol.sty teubner-subset.sty \ NONLATEX = hands.mf greenpoint.mf nkarta.mf astrosym.mf WebOMintsGD.pfb \ moonphase.mf dancers.mf smfpr10.mf umranda.mf umrandb.mf \ cryst.mf dice3d.mf magic.mf fselch10.mf Junicode.ttf msym10.tfm \ - knot1.mf knot2.mf knot3.mf knot4.mf knot5.mf knot6.mf knot7.mf + knot1.mf knot2.mf knot3.mf knot4.mf knot5.mf knot6.mf knot7.mf \ + endofproofwd.pdf # We need FontForge (or the older PfaEdit) to generate lightbulb10.pfb. FONTFORGE = fontforge @@ -49,7 +50,6 @@ PARXARGS = 8 # The following should be overwritten in a recursive call to Make. SIZE = letter -EXT = pdf # I've had some trouble using sh as the shell. bash seems to work, though. SHELL = /bin/bash @@ -57,67 +57,59 @@ SHELL = /bin/bash ########################################################################### # Build all specified formats in all specified paper sizes. -all: $(TARGETS_DIST) +all: check_version $(TARGETS_DIST) -.PHONY: all symbols nonlatex dist clean mostlyclean +.PHONY: all symbols check_version nonlatex dist clean mostlyclean ########################################################################### # Define generic rules for building pdf/dvi/ps in letter/a4 size. symbols: $(COMMONDEPS) # Pass 1: Produce an initial build of the document. - $(LATEX) -jobname symbols-$(SIZE)-$(EXT) '\PassOptionsToClass{$(SIZE)paper}{article}\input symbols' + $(LATEX) -jobname symbols-$(SIZE) '\PassOptionsToClass{$(SIZE)paper}{article}\input symbols' # Pass 2a: Build a second time to produce a final page layout (one hopes). - $(LATEX) -jobname symbols-$(SIZE)-$(EXT) '\PassOptionsToClass{$(SIZE)paper}{article}\input symbols' + $(LATEX) -jobname symbols-$(SIZE) '\PassOptionsToClass{$(SIZE)paper}{article}\input symbols' # Pass 2b: Create an index based on the current layout. We do some # preprocessing of the .idx file to improve the sorting order. - perl -ne 's/\{(\d+)\}=/sprintf " {%03d}=", $$1/ge; s/\(\\(\S+)\s*\)/\(\\$$1\)/; print' < symbols-$(SIZE)-$(EXT).idx > symbols-$(SIZE)-$(EXT).tmp - mv symbols-$(SIZE)-$(EXT).tmp symbols-$(SIZE)-$(EXT).idx - makeindex -s symbols.ist symbols-$(SIZE)-$(EXT) + perl -ne 's/\{(\d+)\}=/sprintf " {%03d}=", $$1/ge; s/\(\\(\S+)\s*\)/\(\\$$1\)/; print' < symbols-$(SIZE).idx > symbols-$(SIZE).tmp + mv symbols-$(SIZE).tmp symbols-$(SIZE).idx + makeindex -s symbols.ist symbols-$(SIZE) # Pass 3a: Build the document with the newly generated index. - $(LATEX) -jobname symbols-$(SIZE)-$(EXT) '\PassOptionsToClass{$(SIZE)paper}{article}\input symbols' + $(LATEX) -jobname symbols-$(SIZE) '\PassOptionsToClass{$(SIZE)paper}{article}\input symbols' # Pass 3b: Get a final symbol count, and put it in the .aux file. # Also, patch the hyperlink bookmarks since we can't do that from # within the document. - totalsymbols=`fgrep -c '\item \verb' symbols-$(SIZE)-$(EXT).ind` ; \ - ( fgrep -v prevtotalsymbols symbols-$(SIZE)-$(EXT).aux > symbols-$(SIZE)-$(EXT).pts ; \ + totalsymbols=`fgrep -c '\item \verb' symbols-$(SIZE).ind` ; \ + ( fgrep -v prevtotalsymbols symbols-$(SIZE).aux > symbols-$(SIZE).pts ; \ echo "\\gdef\\prevtotalsymbols{$$totalsymbols}" ; \ - echo "\\gdef\\approxcount{}" ) >> symbols-$(SIZE)-$(EXT).pts ; \ - mv symbols-$(SIZE)-$(EXT).pts symbols-$(SIZE)-$(EXT).aux - if [ -e symbols-$(SIZE)-$(EXT).out ] ; then \ - cat symbols-$(SIZE)-$(EXT).out | \ - perl -ne 's/\[[^\]]*\](?=\w)//g; print' > symbols-$(SIZE)-$(EXT).tmp ; \ - mv symbols-$(SIZE)-$(EXT).tmp symbols-$(SIZE)-$(EXT).out ; \ + echo "\\gdef\\approxcount{}" ) >> symbols-$(SIZE).pts ; \ + mv symbols-$(SIZE).pts symbols-$(SIZE).aux + if [ -e symbols-$(SIZE).out ] ; then \ + cat symbols-$(SIZE).out | \ + perl -ne 's/\[[^\]]*\](?=\w)//g; print' > symbols-$(SIZE).tmp ; \ + mv symbols-$(SIZE).tmp symbols-$(SIZE).out ; \ fi # Pass 4: Build the final document using the final symbol count # and with the table of contents and PDF bookmarks correctly # reflecting the index pages. We don't use our custom latex # format here because it interferes with cmap.sty. - $(LATEX) -jobname symbols-$(SIZE)-$(EXT) '\PassOptionsToClass{$(SIZE)paper}{article}\input symbols' - mv symbols-$(SIZE)-$(EXT).$(EXT) symbols-$(SIZE).$(EXT) - -@(grep --color -E "^.*multiply.defined.*" symbols-$(SIZE)-$(EXT).log ; true) - -@(grep --color -E "^.*undefined.*" symbols-$(SIZE)-$(EXT).log | grep -v U/stmry/b/n ; true) + $(LATEX) -jobname symbols-$(SIZE) '\PassOptionsToClass{$(SIZE)paper}{article}\input symbols' + -@(grep --color -E "^.*multiply.defined.*" symbols-$(SIZE).log ; true) + -@(grep --color -E "^.*undefined.*" symbols-$(SIZE).log | grep -v U/stmry/b/n ; true) -########################################################################### - -# Define specific rules for building different formats and sizes. -symbols-a4.pdf symbols-a4-pdf.log symbols-a4-pdf.ind: $(COMMONDEPS) - $(MAKE) $(MAKEFLAGS) SIZE=a4 LATEX=pdflatex EXT=pdf symbols - -symbols-letter.pdf symbols-letter-pdf.log symbols-letter-pdf.ind: $(COMMONDEPS) - $(MAKE) $(MAKEFLAGS) SIZE=letter LATEX=pdflatex EXT=pdf symbols +check_version: symbols.tex + comment_ver=$$(perl -ne '/^\%\%\%\s+version\s+=\s+\"(\S+)\"/ && print "$$1\n"' symbols.tex) \ + pdf_ver=$$(perl -ne '/pdfversionid\s*=\s*\{(\S+)\}/ && print "$$1\n"' symbols.tex) ; \ + test "$$comment_ver" = "$$pdf_ver" -symbols-a4.dvi symbols-a4-dvi.log symbols-a4-dvi.ind: $(COMMONDEPS) - $(MAKE) $(MAKEFLAGS) SIZE=a4 LATEX=latex EXT=dvi symbols - -symbols-letter.dvi symbols-letter-dvi.log symbols-letter-dvi.ind: $(COMMONDEPS) - $(MAKE) $(MAKEFLAGS) SIZE=letter LATEX=latex EXT=dvi symbols +########################################################################### -symbols-letter.ps: symbols-letter.dvi - dvips -t letter -Pamz -Pcmz -j0 -o symbols-letter.ps symbols-letter.dvi +# Define specific rules for building with different pages sizes. +symbols-a4.pdf symbols-a4.log symbols-a4.ind: $(COMMONDEPS) + $(MAKE) $(MAKEFLAGS) SIZE=a4 LATEX=pdflatex symbols -symbols-a4.ps: symbols-a4.dvi - dvips -t a4 -Pamz -Pcmz -j0 -o symbols-a4.ps symbols-a4.dvi +symbols-letter.pdf symbols-letter.log symbols-letter.ind: $(COMMONDEPS) + $(MAKE) $(MAKEFLAGS) SIZE=letter LATEX=pdflatex symbols rawtables-letter.tex rawtables.list testfont.pdf testfont.log: makerawtables $(COMMONDEPS) @@ -228,6 +220,15 @@ fakestarfont.sty: makefakestarfont ./makefakestarfont /dev/null > $@ ; \ fi +# If we have cmupint.sty, generate a faked version that does not +# declare any new math alphabets. +fakecmupint.sty: makefakecmupint + if [ "`kpsewhich cmupint.sty`" ] ; then \ + ./makefakecmupint `kpsewhich cmupint.sty` > $@ ; \ + else \ + ./makefakecmupint /dev/null > $@ ; \ + fi + # The apl package's versatim.tex messes up TeX's category codes. # Hence, we override that file with a do-nothing version. versatim.tex: @@ -268,28 +269,32 @@ nonlatex: ln -s -f $$fullfname . ; \ fi \ done + fullfname=`locate -b '\endofproofwd.pdf'` ; \ + if [ "$$fullfname" ] ; then \ + ln -s -f $$fullfname . ; \ + fi ########################################################################### # The index is needed to produce a list of symbols. We arbitrarily -# use the symbols-letter-pdf.ind version of the index. -symbols.ind: symbols-letter-pdf.ind - cp symbols-letter-pdf.ind symbols.ind +# use the symbols-letter.ind version of the index. +symbols.ind: symbols-letter.ind + cp symbols-letter.ind symbols.ind # Create a list of all symbols. SYMLIST: symbols.ind cat symbols.ind | perl -ne 's/.*\\verb\+([^+]+)\+.*/$$1/g && print' | sort -u > SYMLIST # Create a README file. -README: makeREADME symbols-letter-pdf.log symbols.ind - ./makeREADME symbols-letter-pdf.log symbols.ind > README +README: makeREADME symbols-letter.log symbols.ind + ./makeREADME symbols-letter.log symbols.ind > README # Prepare to timestamp the distributed symbols.tex file. TODAY = $(shell date +'%d %B %Y') NOW = $(shell date +'%T %Z') # Create a .tar.gz file. -comprehensive.tar.gz: $(TARGETS) $(EXTRADIST) +comprehensive.tar.gz: check_version $(TARGETS) $(EXTRADIST) $(RM) -r comprehensive mkdir comprehensive mkdir comprehensive/source @@ -299,7 +304,7 @@ comprehensive.tar.gz: $(TARGETS) $(EXTRADIST) perl -ne 's/(date\s*=\s*)\"[^\"]*\"/$$1\"$(TODAY)\"/; print' | \ perl -ne 's/(time\s*=\s*)\"[^\"]*\"/$$1\"$(NOW)\"/; print' | \ checksum > comprehensive/source/symbols.tex - for fakes in MnSymbol fdsymbol boisik stix starfont ; do \ + for fakes in MnSymbol fdsymbol boisik stix starfont cmupint ; do \ chmod 755 comprehensive/source/makefake$$fakes ; \ done chmod 755 comprehensive/source/makerawtables @@ -324,7 +329,7 @@ clean: $(RM) comprehensive.tar.gz $(RM) -r junicode lilyglyphs $(RM) fakeMnSymbol.sty fakefdsymbol.sty fakeknitting.sty - $(RM) fakeboisik.sty fakestix.sty fakestarfont.sty + $(RM) fakeboisik.sty fakestix.sty fakestarfont.sty fakecmupint.sty $(RM) versatim.tex extract-by-name.pe $(RM) mfplain.{log,mem} $(RM) lightbulb10*pk lightbulb10.{tfm,log,pe,afm} |