TeX and Silicon Graphics. This is an installation procedure of TeX3.14, dvips5.47 and xdvi on Silicon Graphics 4D70GT under IRIX 3.3.1. I got sources by anonymous ftp, but you can get them on tape from TeX Users Group. Inquire at: TUG@math.ams.com It is based on the Installation notes by Randolph J. Herber from Fermi Labs (HERBER@fnala.fnal.gov, herber@fnalf.fnal.gov, rjh@yclept.chi.il.us) which were posted on comp.sys.sgi and his comments on info-iris list. All the good things come from him. However, I did change some things, and faults are mine. I could not succeed in making bibtex. There is some problem with compiler or BibTeX or mine. Since I do not use bibtex, I do not care. If you know however how to make it, I would be glad to hear, since I would like to have complete TeX. [Somebody told me that using -cckr flag with the cc compiler fixes the problem and bibtex compiles...]. This file was made as notes as I was progressing, without paying attention to style, etc. I did not read it after I wrote it. But maybe you will find it usefull, anyhow. Jan Labanowski Ohio Supercomputer Center jkl@ccl.net The sources of TeX3.14 were taken from anonymous ftp on byron.u.washington.edu [128.95.48.32] as follows: 1. Login as root # mkdir /usr/distribution # cd /usr/distribution # ftp byron.u.washington.edu Login: anonymous Password: e-mail.address ftp> cd pub/unixtex ftp> ls -l total 19656 -rw-r--r-- 1 root system 5328 May 13 10:17 00README.ftp -rw-r--r-- 1 root system 500000 May 8 14:29 DVIware.tar.Zaa -rw-r--r-- 1 root system 500000 May 8 14:29 DVIware.tar.Zab -rw-r--r-- 1 root system 500000 May 8 14:29 DVIware.tar.Zac -rw-r--r-- 1 root system 500000 May 8 14:29 DVIware.tar.Zad -rw-r--r-- 1 root system 500000 May 8 14:29 DVIware.tar.Zae -rw-r--r-- 1 root system 292925 May 8 14:29 DVIware.tar.Zaf -rw-r--r-- 1 root system 500000 May 8 14:29 LaTeXfonts.tar.Zaa -rw-r--r-- 1 root system 500000 May 8 14:29 LaTeXfonts.tar.Zab -rw-r--r-- 1 root system 500000 May 8 14:29 LaTeXfonts.tar.Zac -rw-r--r-- 1 root system 500000 May 8 14:29 LaTeXfonts.tar.Zad -rw-r--r-- 1 root system 500000 May 8 14:29 LaTeXfonts.tar.Zae -rw-r--r-- 1 root system 66658 May 8 14:29 LaTeXfonts.tar.Zaf -rw-r--r-- 1 root system 1679 May 8 14:16 NO_WARRANTY -rw-r--r-- 1 root system 39582 May 8 14:16 README.TeX3.14 -rw-r--r-- 1 root system 500000 May 8 14:38 TeX3.14.tar.Zaa -rw-r--r-- 1 root system 500000 May 8 14:38 TeX3.14.tar.Zab -rw-r--r-- 1 root system 500000 May 8 14:38 TeX3.14.tar.Zac -rw-r--r-- 1 root system 500000 May 8 14:38 TeX3.14.tar.Zad -rw-r--r-- 1 root system 500000 May 8 14:38 TeX3.14.tar.Zae -rw-r--r-- 1 root system 500000 May 8 14:38 TeX3.14.tar.Zaf -rw-r--r-- 1 root system 500000 May 8 14:38 TeX3.14.tar.Zag -rw-r--r-- 1 root system 500000 May 8 14:38 TeX3.14.tar.Zah -rw-r--r-- 1 root system 500000 May 8 14:38 TeX3.14.tar.Zai -rw-r--r-- 1 root system 500000 May 8 14:38 TeX3.14.tar.Zaj -rw-r--r-- 1 root system 500000 May 8 14:38 TeX3.14.tar.Zak -rw-r--r-- 1 root system 500000 May 8 14:38 TeX3.14.tar.Zal -rw-r--r-- 1 root system 500000 May 8 14:38 TeX3.14.tar.Zam -rw-r--r-- 1 root system 500000 May 8 14:38 TeX3.14.tar.Zan -rw-r--r-- 1 root system 500000 May 8 14:38 TeX3.14.tar.Zao -rw-r--r-- 1 root system 500000 May 8 14:38 TeX3.14.tar.Zap -rw-r--r-- 1 root system 500000 May 8 14:38 TeX3.14.tar.Zaq -rw-r--r-- 1 root system 75817 May 8 14:38 TeX3.14.tar.Zar -rw-r--r-- 1 root system 153685 May 8 14:31 Unsupported.tar.Z -rw-r--r-- 1 root system 500000 May 8 14:33 ams.tar.Zaa -rw-r--r-- 1 root system 500000 May 8 14:33 ams.tar.Zab -rw-r--r-- 1 root system 500000 May 8 14:33 ams.tar.Zac -rw-r--r-- 1 root system 500000 May 8 14:33 ams.tar.Zad -rw-r--r-- 1 root system 86695 May 8 14:33 ams.tar.Zae -rw-r--r-- 1 root system 500000 May 8 14:26 babel.tar.Zaa -rw-r--r-- 1 root system 208936 May 8 14:26 babel.tar.Zab -rw-r--r-- 1 root system 20530 May 8 14:35 bsdtar.tar.Z -rw-r--r-- 1 root system 500000 May 8 14:37 cmfonts.tar.Zaa -rw-r--r-- 1 root system 500000 May 8 14:37 cmfonts.tar.Zab -rw-r--r-- 1 root system 500000 May 8 14:37 cmfonts.tar.Zac -rw-r--r-- 1 root system 500000 May 8 14:37 cmfonts.tar.Zad -rw-r--r-- 1 root system 252938 May 8 14:37 cmfonts.tar.Zae -rw-r--r-- 1 root system 92160 May 8 14:38 compress.tar -rw-r--r-- 1 root system 70593 May 8 14:38 patch.tar.Z -rw-r--r-- 1 root system 397543 May 8 14:38 utilityfonts.tar.Z ftp> binary ftp> prompt ftp> mget * you will get all these files - you need some disk space. ftp> quit Then I ftp-ed to labrea.stanford.edu [36.8.0.47] Name: anonymous Password: e-mail address ftp> cd pub ftp> binary ftp> get dvips547.tar.Z ftp> get dvipsafm.tar.Z ftp> get dvipslib.tar.Z ftp> quit Then I got file modes.mf from anonymous ftp: ftp.cs.umb.edu [192.12.26.23] which is in: pub/tex/modes.mf ========================== Then the files were uncompressed and untared as: zcat DVIware.tar.Za* | tar xvof - zcat TeX3.14.tar.Za* | tar xvof - zcat LaTeXfonts.tar.Za* | tar xvof - zcat cmfonts.tar.Za* | tar xvof - zcat utilityfonts.tar.Z | tar xvof - zcat dvips547.tar.Z | tar xvof - zcat dvipsafm.tar.Z | tar xvof - zcat dvipslib.tar.Z | tar xvof - Then I read all the README files and other instalation files in all the directories (it takes a few days). Then: (assuming we are in: /usr/distribution) 1) cd TeX3.14 2) cp Makefile-dist Makefile 3) cp site.h-dist site.h 4) cp makefile some.makefile (there was some junk makefile in the distrib) 5) Then I created small script in /usr/distribution and named it emplant ------------------------- cut here ----------- #!/bin/sh cp $4 $5 chmod $1 $5 chgrp $3 $5 chown $2 $5 ------------------------- till here ---------------- 6) chmod 755 emplant (this is a simple install program) 7) I edited Makefile to be: ----------------------------- Makefile starts -------------- # Overall Makefile for making TeX, Metafont, and friends, using WEB to C. # TeX 3.14 + Metafont 2.7 + web2c b. # version=5.84b # Directory that site.h is in relative to subdirectories, i.e., `..' # means the directory containing this Makefile. SITEDIR=.. # Default C compiler. #CC=gcc CC=cc # Default flags to give the C compiler. (Don't define CFLAGS directly.) #OPT=-g -O OPT=-g -O # Default flags to give to the loader. LDFLAGS= # Default libraries with which to link (libraries for the Metafont # support are specified separately). LOADLIBES= # Make sure we use the sh. If your sh is broken, you might try bash, # the GNU replacement. SHELL=/bin/sh # The yacc program to use on web2c/web2c.yacc. #YACC=bison -y YACC=yacc # The lex program to use on web2c/web2c.lex. LEX=lex # -ll for lex, -lfl for flex. LEXLIB=-ll # Need -D_POSIX_SOURCE here, perhaps, if on a POSIX system. LEXCFLAGS= # How to make a link. LN=ln -s # Support libraries for Metafont. x10lib=-lX x11lib=-lXt -lX11 sunlib=-lsuntool -lsunwindow -lpixrect # This line should select the libraries that match what you said in site.h. wlibs=$(x11lib) # These lines define the format and base files that `make fmts' and # `make bases' will try to make, and `make install' will try to install. # See README.W2C for a brief description of each of these formats. #formats=tex.fmt formats=tex.fmt latex.fmt slitex.fmt #amstex.fmt amslatex.fmt picplus.fmt texinfo.fmt # etex.fmt latex.fmt slitex.fmt \ # amstex.fmt amslatex.fmt picplus.fmt texinfo.fmt #bases=mf.base bases=mf.base cmmf.base # cmmf.base # The name of the file that defines your local devices, for use with # Metafont. (Only relevant during `make bases'.) I urge you to get the # file `modes.mf', which defines all known modes, plus useful # definitions for all fonts. It's available from ftp.cs.umb.edu # [192.12.26.23] as pub/tex/modes.mf, among other places. localmodes=modes # You may need INSTALL=cp on system V, if you don't have GNU install. # Or you can install the programs by hand. # $(fileinstall) is used for the format and base files, man files, and # other non-executables, and $(programinstall) is used for # the executables. #INSTALL=install -g tex -c #fileinstall=$(INSTALL) -m 664 #proginstall=$(INSTALL) -m 775 -s INSTALL=/usr/distribution/TeX3.14/emplant fileinstall=$(INSTALL) 664 bin sys proginstall=$(INSTALL) 755 bin sys # These pathnames are used to customize the manual pages with local # directory names; some of them are used in `make install'. They should # match the system directories in the paths defined in `./site.h'. bindir=/usr/local/bin manext=l mandir=/usr/man/u_man/man$(manext) texlibdir=/usr/local/lib/tex texpooldir=$(texlibdir) #texinputdir=$(texlibdir)/macros texinputdir=$(texlibdir)/inputs #texfontdir=$(texlibdir)/fonts texfontdir=$(texlibdir)/fonts/tfm formatdir=$(texlibdir)/formats mflibdir=/usr/local/lib/mf mfpooldir=$(mflibdir) #mfinputdir=$(mflibdir)/macros mfinputdir=$(mflibdir)/inputs basedir=$(mflibdir)/bases # Where the Computer Modern sources are. # (The man pages claim that you have installed the standard utility # sources, like `grayf.mf' and `expr.mf', somewhere in $(mfinputdir).) #cmsources=/usr/local/src/other/TeX+MF/typefaces/cm cmsources=/usr/local/lib/mf/inputs default: all # Stuff below here probably doesn't need to be changed. # #alldirs=web tex mf texware mfware fontutil bibtex dviutil alldirs=web tex mf texware mfware fontutil dviutil triptrapdirs=tex texware mf mfware makeargs=SITEDIR="$(SITEDIR)" CC="$(CC)" OPT="$(OPT)" \ SHELL="$(SHELL)" LDFLAGS="$(LDFLAGS)" LOADLIBES="$(LOADLIBES)" wlibs="$(wlibs)" web2c=web2c web2cprograms=$(web2c)/web2c $(web2c)/regfix $(web2c)/splitup \ $(web2c)/fixwrites commonsources=common/alloca.c common/extra.c common/main.c common/endian.c triptrap: stamp-tangle stamp-common for name in $(triptrapdirs); \ do \ (cd $${name}; make $(makeargs) LN="$(LN)" triptrap); \ done run-triptrap: run-trip run-trap clean-triptrap: cd tex; make veryclean cd mf; make veryclean all: stamp-web2c stamp-common for name in $(alldirs); \ do \ (cd $${name}; echo $${name}; make $(makeargs) all); \ done TeX: stamp-web2c stamp-tangle stamp-common cd tex; make $(makeargs) all BibTeX: stamp-web2c stamp-tangle stamp-common cd bibtex; make $(makeargs) all run-trip: cd tex; make run-trip MF: stamp-web2c stamp-tangle stamp-common cd mf; make $(makeargs) all run-trap: cd mf; make run-trap # The targets below must be up to date for anything to be made. # stamp-web2c: cd $(web2c); \ make $(makeargs) YACC="$(YACC)" LEX="$(LEX)" LEXLIB="$(LEXLIB)" all touch stamp-web2c stamp-common: $(commonsources) cd common; make $(makeargs) all touch stamp-common stamp-tangle: stamp-web2c stamp-common cd web; make $(makeargs) tangle touch stamp-tangle manpages: cd man; make SITEDIR=$(SITEDIR) \ bindir=$(bindir) texlibdir=$(texlibdir) \ texpooldir=$(texpooldir) formatdir=$(formatdir) \ texinputdir=$(texinputdir) texfontdir=$(texfontdir) \ mflibdir=$(mflibdir) mfpooldir=$(mfpooldir) \ basedir=$(basedir) mfinputdir=$(mfinputdir) \ cmsources=$(cmsources) \ all bases: stamp-bases stamp-bases: cd mf; MFPOOL=.; export MFPOOL; \ make bases="$(bases)" localmodes="$(localmodes)" bases touch stamp-bases formats: stamp-formats stamp-formats: cd tex; TEXPOOL=.; export TEXPOOL; make formats="$(formats)" fmts touch stamp-formats # Installation targets. # install-manpages: cd man; make mandir=$(mandir) INSTALL="$(fileinstall)" \ SITEDIR="$(SITEDIR)" manext=$(manext) install install: if test -d $(bindir); then exit 0; else mkdir $(bindir); fi $(proginstall) tex/initex $(bindir)/initex $(proginstall) tex/virtex $(bindir)/virtex $(proginstall) mf/inimf $(bindir)/inimf $(proginstall) mf/virmf $(bindir)/virmf $(proginstall) web/tangle $(bindir)/tangle $(proginstall) web/weave $(bindir)/weave $(proginstall) texware/dvitype $(bindir)/dvitype $(proginstall) texware/pltotf $(bindir)/pltotf $(proginstall) texware/tftopl $(bindir)/tftopl $(proginstall) mfware/gftodvi $(bindir)/gftodvi $(proginstall) mfware/gftopk $(bindir)/gftopk $(proginstall) mfware/gftype $(bindir)/gftype $(proginstall) mfware/mft $(bindir)/mft $(proginstall) fontutil/pktogf $(bindir)/pktogf $(proginstall) fontutil/pktype $(bindir)/pktype $(proginstall) fontutil/vftovp $(bindir)/vftovp $(proginstall) fontutil/vptovf $(bindir)/vptovf $(proginstall) bibtex/bibtex $(bindir)/bibtex $(proginstall) dviutil/dvicopy $(bindir)/dvicopy if test -d $(texpooldir); then exit 0; else mkdir $(texpooldir); fi -if test -s tex/tex.pool; \ then (cd tex; $(fileinstall) tex.pool $(texpooldir) ); fi if test -d $(mfpooldir); then exit 0; else mkdir $(mfpooldir); fi -if test -s mf/mf.pool; \ then (cd mf; $(fileinstall) mf.pool $(mfpooldir) ); fi install-formats: stamp-formats if test -d $(formatdir); then exit 0; else -mkdir $(formatdir); fi for f in $(formats); \ do \ rm -f $(bindir)/`basename $$f .fmt`; \ ln $(bindir)/virtex $(bindir)/`basename $$f .fmt`; \ $(fileinstall) tex/$$f $(formatdir)/$$f; \ done cd $(formatdir); rm -f plain.fmt; ln tex.fmt plain.fmt install-bases: stamp-bases if test -d $(basedir); then exit 0; else -mkdir $(basedir); fi for f in $(bases); \ do \ rm -f $(bindir)/`basename $$f .base`; \ ln $(bindir)/virmf $(bindir)/`basename $$f .base`; \ $(fileinstall) mf/$$f $(basedir); \ done cd $(basedir); rm -f plain.base; ln mf.base plain.base # Need GNU tar for this. # web2c-dist: web/tangleboot.pas @echo -n "check -linet;tangleboot" @echo "big{tex,mf.ch; trie change" mv ChangeLog ChangeLog.W2C cd ..; \ find src-$(version) \! -name '*.web' -type f -print > /tmp/files; \ tar czfT web2c-$(version).tar.Z /tmp/files; \ ls -ld web* mv ChangeLog.W2C ChangeLog web-dist: web/tangleboot.pas cd ..; \ find src-$(version) -name '*.web' -print > /tmp/webfest; \ tar czfT web-$(version).tar.Z /tmp/webfest; \ ls -ld web* web/tangleboot.pas: cd web; make tangle.p; cp tangle.p tangleboot.pas; make veryclean clean: rm -f stamp-* for name in web2c common $(alldirs); \ do \ (cd $${name}; make clean); \ done veryclean: rm -f stamp-* for name in web2c common man $(alldirs); \ do \ (cd $${name}; make veryclean); \ done rm -f \#*\# *~ *.bak *.ckp core .PHONY: default triptrap run-triptrap clean-triptrap all TeX run-trip \ MF run-trap manpages bases formats install-manpages install \ install-formats install-bases web2c-dist web-dist clean veryclean ----------------------------- Makefile ends -------------- 8) I edited site.h to be: ----------------------------- site.h starts --------- /* Master configuration file for WEB to C. Almost all the definitions are wrapped with #ifndef's, so that you can override them from the command line, if you want to. */ #ifndef __WEB2C_SITE_H #define __WEB2C_SITE_H /* Define if you're on an AIX-based system. */ #ifndef AIX #undef AIX #endif /* Define if you're on 4.2 or 4.3 BSD-based system. */ #ifndef BSD #undef BSD #endif /* Define if you're on an HP-based system (also define SYSV). */ #ifndef HP #undef HP #endif /* Define if you're on a POSIX-based system. */ #ifndef _POSIX_SOURCE #undef _POSIX_SOURCE #endif /* Define if you're on System V-based system. */ #ifndef SYSV #define SYSV #endif /* Define this if the system will be compiled with an ANSI C compiler, and never with a non-ANSI compiler. It changes web2c so that it produces ANSI C as its output. This is a perhaps good idea, but you don't necessarily gain anything in the production programs by doing it. If you do define this, you must also have a declaration for sprintf(3) in . */ #ifndef ANSI #undef ANSI #endif /* Default editor command string: `%d' expands to the line number where TeX or Metafont found an error and `%s' expands to the name of the file. The environment variables TEXEDIT and MFEDIT override this. */ #define EDITOR "/usr/local/bin/emacs +%d %s" /* Define these according to your local setup. It doesn't hurt anything to have `.' in all the paths, but since most users do not have their own fonts, formats, or string pools, it only slows things down. Do not put a leading or trailing colon in these paths, or double a colon in the middle. That might lead to infinite recursion. Also see TEXFONTS_SUBDIR et al., below. */ #define TEXFONTS ".:/usr/local/lib/tex/fonts/tfm" /* #define TEXFONTS "" */ #define TEXFORMATS ".:/usr/local/lib/tex/formats" /* #define TEXFORMATS "/usr/local/lib/tex/formats" */ #define TEXINPUTS ".:/usr/local/lib/tex/inputs" /* #define TEXINPUTS "." */ #define TEXPOOL "/usr/local/lib/tex" /* #define TEXPOOL "/usr/local/lib/tex" */ #define MFBASES ".:/usr/local/lib/mf/bases" /* #define MFBASES "/usr/local/lib/mf/bases" */ #define MFINPUTS ".:/usr/local/lib/mf/inputs" /* #define MFINPUTS ".:/usr/local/lib/mf/macros" */ #define MFPOOL "/usr/local/lib/mf" /* #define MFPOOL "/usr/local/lib/mf" */ #define VFFONTS ".:/usr/local/lib/tex/fonts/vf" /* #define VFFONTS "/usr/local/lib/tex/fonts/vf" */ /* Define this if you want subdirectories of directories in the search paths to be searched. (See discussion in ./README.WEB2C of directory hierarchies.) */ #ifndef SEARCH_SUBDIRECTORIES #undef SEARCH_SUBDIRECTORIES #endif /* If SEARCH_SUBDIRECTORIES is defined, these symbols define paths in which to look for subdirectories. The directories in TEXFONTS and the like, above, are not searched for subdirectories. The directories named here are not themselves searched for files. Not all of the symbols here need be defined. If you don't want to define a default directory, but want users to be able to define the environment variables, define the symbol to be the empty string. */ #ifdef SEARCH_SUBDIRECTORIES #define TEXFONTS_SUBDIR "/usr/local/lib/tex/fonts/tfm" #define TEXINPUTS_SUBDIR "/usr/local/lib/tex/inputs" #define MFINPUTS_SUBDIR "/usr/local/lib/mf/inputs" #endif /* BibTeX search path for .bib files. BibTeX uses TEXINPUTS to search for .bst files. */ #define BIBINPUTS ".:/usr/local/lib/tex/bib" /* Metafont window support: More than one may be defined, as long as you don't try to have both X10 and X11 support (because there are conflicting routine names in the libraries). After you've defined these, make sure to update the top-level Makefile accordingly. Also, if you want X11 support, see the `Online output from Metafont' section in ./README before compiling. */ #undef HP2627WIN /* HP 2627. */ #undef SUNWIN /* SunWindows. */ #undef TEKTRONIXWIN /* Tektronix 4014. */ #undef UNITERMWIN /* Uniterm Tektronix. */ #undef X10WIN /* X Version 10. */ #define X11WIN /* X Version 11. */ #define HAVE_GETWD #define SPRINTF_RETURN_TYPE int #if defined(X10WIN) && defined(X11WIN) sorry #endif /* Define this to be the return type of your signal handlers. POSIX says it should be `void', but some older systems want `int'. Check your include file if you're not sure. */ #ifndef SIGNAL_HANDLER_RETURN_TYPE #define SIGNAL_HANDLER_RETURN_TYPE void #endif /* The type `glueratio' should be a floating point type which won't unnecessarily increase the size of the memoryword structure. This is the basic requirement. On most machines, if you're building a normal-sized TeX, then glueratio must probably meet the following restriction: sizeof(glueratio) <= sizeof(integer). Usually, then, glueratio must be `float'. But if you build a big TeX, you can (on most machines) and should make it `double' to avoid loss of precision and conversions to and from double during calculations. (All this also goes for Metafont.) Furthermore, if you have enough memory, it won't hurt to have this defined to be `double' for running the trip/trap tests. */ typedef double glueratio; /* Define this if you want TeX to be compiled with local variables declared as `register'. On SunOS 3.2 and 3.4 (at least), compiling with cc, this will cause problems. If you're using gcc or the SunOS 4.x compiler, and compiling with -O, register declarations are ignored, so there is no point in defining this. */ #ifndef REGFIX #undef REGFIX #endif /* The type `schar' should be defined here to be the smallest signed type available. If your char type is unsigned, then define schar to be the type `short'. */ #ifdef AIX typedef int schar; #else #ifdef ANSI typedef signed char schar; #else typedef signed char schar; #endif /* not ANSI */ #endif /* not AIX */ /* If you want to be able to produce a core dump (to make a preloaded TeX) by giving the filename `HackyInputFileNameForCoreDump.tex' to TeX (or Metafont), define this. Probably works only for BSD-like systems. */ #ifndef FUNNY_CORE_DUMP #undef FUNNY_CORE_DUMP #endif /* If the type `int' is at least 32 bits (including a sign bit), this symbol should be #undef'd; otherwise, it should be #define'd. If your compiler uses 16-bit int's, arrays larger than 32K may give you problems, especially if indices are automatically cast to int's. */ #ifndef SIXTEENBIT #undef SIXTEENBIT #endif /* Our character set is 8-bit ASCII unless NONASCII is defined. For other character sets, make sure that first_text_char and last_text_char are defined correctly (they're 0 and 255, respectively, by default). In the *.defines files, change the indicated range of type `char' to be the same as first_text_char..last_text_char, `#define NONASCII', and retangle and recompile everything. */ #ifndef NONASCII #undef NONASCII #endif /* The type `integer' must be a signed integer capable of holding at least the range of numbers (-2^31)..(2^32-1). The ANSI C standard says that `long' meets this requirement, but if you don't have an ANSI C compiler, you might have to change this definition. */ typedef long integer; /* You need not worry about the definitions in `defaults.h' unless something goes wrong. */ #include "defaults.h" #endif /* not __WEB2C_SITE_H */ ----------------------------- site.h ends -------------------- 9) Then I created small script mypaths in /usr/distribution/TeX3.14: ---------------------- start my paths ------------- #!/bin/csh set bl=/usr/local/bin set ll=/usr/local/lib set tl=$ll/tex set ml=$ll/mf set wl=`pwd` set fl=$tl/fonts/tfm set dl=($bl $ll $tl $tl/formats $tl/fonts \ $tl/fonts/tfm $tl/inputs \ $tl/bib $ml $ml/bases $ml/inputs) set path=($path .) --------------------- end mypaths ------------ 10) I did: chmod 755 mypaths source mypaths chmod 755 $dl chgrp sys $dl chown bin $dl cp $wl/TeXfonts/* $fl 11) Then I edited Install_INPUTS from ./TeX3.14 to be: ---------------- Install_INPUTS ----------- #!/bin/sh # # This script is ./TeX3.14/Install_INPUTS. # # Look at the destination directories for # TEXINPUTS, BIBINPUTS, and MFINPUTS below. # Make sure that they are defined correctly, # matching up with your definitions in site.h. # # If you are certain that you will not be using BibTeX or LaTeX # or whatever else, you may comment out the lines concerned # by preceding them with a hash mark (#); but keep in mind that # you will need LaTeX if you wish to print out the manual for # the PostScript printer driver (in ./DVIware/laser-setters/dvi-to-ps/TeXPS). # # TEXINPUTS=/usr/local/lib/tex/inputs; export TEXINPUTS BIBINPUTS=/usr/local/lib/tex/bib; export BIBINPUTS MFINPUTS=/usr/local/lib/mf/inputs; export MFINPUTS chmod 666 $TEXINPUTS/*.tex chmod 666 $TEXINPUTS/*.sty # chmod 666 $TEXINPUTS/*.def #not needed in this distribution chmod 666 $TEXINPUTS/*.bst chmod 666 $TEXINPUTS/*.bbl chmod 666 $TEXINPUTS/*.aux chmod 666 $BIBINPUTS/*.bib find $MFINPUTS -name '*.mf' -exec chmod 666 {} \; # chmod 666 $MFINPUTS/*.mf cp ./TeXmacros/*.tex $TEXINPUTS/. cp ./TeXmacros/*.sty $TEXINPUTS/. cp ./MFtexfiles/*.mft $TEXINPUTS/. cp ./LaTeX/*.tex $TEXINPUTS/. cp ./LaTeX/LaTeXmacros/*.tex $TEXINPUTS/. cp ./LaTeX/LaTeXmacros/*.sty $TEXINPUTS/. cp ./LaTeX/LaTeXmakeindex/lib/*.tex $TEXINPUTS/. cp ./LaTeX/LaTeXmakeindex/lib/*.sty $TEXINPUTS/. cp ./LaTeX/LaTeXmakeindex/paper/*.tex $TEXINPUTS/. cp ./LaTeX/LaTeXmakeindex/paper/*.sty $TEXINPUTS/. cp ./LaTeX/LaTeXmakeindex/paper/*.bbl $TEXINPUTS/. cp ./LaTeX/LaTeXslitex/*.tex $TEXINPUTS/. cp ./LaTeX/LaTeXslitex/*.sty $TEXINPUTS/. cp ./BibTeX.inputs/*.tex $TEXINPUTS/. cp ./BibTeX.inputs/*.sty $TEXINPUTS/. cp ./BibTeX.inputs/*.bst $TEXINPUTS/. cp ./BibTeX.inputs/*.bbl $TEXINPUTS/. cp ./BibTeX.inputs/*.aux $TEXINPUTS/. cp ./BibTeX.inputs/*.bib $BIBINPUTS/. cp ../cmfonts/mf/*.mf $MFINPUTS/. cp ../LaTeXfonts/mf/*.mf $MFINPUTS/. cp ../utilityfonts/bases/*.mf $MFINPUTS/. cp ../utilityfonts/black/*.mf $MFINPUTS/. cp ../utilityfonts/gray/*.mf $MFINPUTS/. cp ../utilityfonts/half/*.mf $MFINPUTS/. cp ../utilityfonts/logo/*.mf $MFINPUTS/. cp ../utilityfonts/manualfonts/*.mf $MFINPUTS/. cp ../utilityfonts/mfbook/*.mf $MFINPUTS/. cp ../utilityfonts/slant/*.mf $MFINPUTS/. (cd $TEXINPUTS; chmod 444 *) ------------------------ end Install_INPUTS ------------- 12) Then I did: sh -x Install_INPUTS 13) cp /usr/distribution/modes.mf /usr/local/lib/mf/modes.mf 14) Then I edited /usr/local/lib/mf/inputs/modes.mf (which was copied above) to set localfont (few lines from the end of the file) to be localfont := RicohFourZeroEightZero; since we are using Texas Inst. Omnilaser here most of the time. 15) Then, in /usr/distribution/TeX3.14 I did make make install make formats make install-formats make bases make install-bases make manpages make install-manpages If you have Documenters Workbench (i.e., nroff) you are O.K. I do not have it, so I have processed each manpage from /usr/local/man/manl nroff -man manpage.l | compress > manpage.Z on the SUN and then put them into /usr/man/u_man/manl. This concluded instalation of TeX, LaTeX, Metafont, etc. =================== makeindex ========================= makeindex installation: There is a makeindex program which does indexes from *.idx files produced by LaTeX. I went to /usr/distribution/TeX3.14/LaTeX/LaTeXmakeindex/src. mv makefile Makefile edited a single line in Makefile by adding -g flag to CFLAGS make makeindex cp makeindex /usr/local/bin cd ../doc zcat makeindex.l.Z > /usr/local/man/man1/makeindex.l mkdir /usr/local/lib/tex/doc/makeindex cp makeindex.aux /usr/local/lib/tex/doc/makeindex cp makeindex.tex /usr/local/lib/tex/doc/makeindex cd ../paper mkdir /usr/local/lib/tex/doc/makeindex/paper cp * /usr/local/lib/tex/doc/makeindex/paper cd ../test mkdir /usr/local/lib/tex/doc/makeindex/test cp * /usr/local/lib/tex/doc/makeindex/test ======================== detex ===================== this program removes TeX constructions from the file (good for spell) and leaves text. cd /usr/distribution/TeX3.14/TeXcontrib/trinkle make detex cp detex /usr/local/bin cp detex.1l /usr/local/man/man1 ====================== tgrind ======================== tgrind prints nicely programs and shell scripts in TeX. I went to /usr/distribution/TeX3.14/TeXcontrib/van/tgrind/SYS_V and made the following corrections in Makefile DESTDIR=/usr/local/bin DEFSFILE=/usr/local/lib/tex/inputs/vgrindefs #at the top TEXINPUTS=/usr/local/lib/tex/inputs install: all cp tfontedpr ${DESTDIR} cp tgrind.sh ${DESTDIR}/tgrind cp tgrindmac.tex ${TEXINPUTS}/tgrindmac.tex #at the bottom cp vgrindefs.src ${DEFSFILE} an also corrected paths in tgrind.sh: b=/usr/local/bin/tfontedpr tex=/usr/local/bin/tex then did: make make install =========================== XDVI ======================= This is a dvi previewer for X. Works fine, but has some peculiar bug -- magnifying glass (only magnyfing glass) skips the first letter of the paragraph... Now, how I did it: 1. Go to directory: /usr/distribution/DVIware/crt-viewers/X/xdvi 2. Edit Makefile to be: ----------- Makefile for XDVI starts ---------- # # Makefile for dvi previewer. # # $Header: Makefile,v 1.2 87/05/14 14:05:34 eichin Locked $ # $Source: /u1/uus/vs2/xdvi/RCS/Makefile,v $ # DEFAULT_FONT_PATH=.:/usr/local/lib/tex/fonts/pk/RicohFourZeroEightZero:/usr/local/lib/tex/fonts DEFAULT_FONT_SIZES=300:328.6:360:432:518.4:622:746.4 DEFAULT_SUBDIR_PATH='**' DEFS=-DMSBITFIRST -DBMSHORT -DBUTTONS FONTDEFINES=-DDEFAULT_FONT_PATH=\"$(DEFAULT_FONT_PATH)\" \ -DDEFAULT_FONT_SIZES=\"$(DEFAULT_FONT_SIZES)\" \ -DDEFAULT_SUBDIR_PATH=\"$(DEFAULT_SUBDIR_PATH)\" FONTFORMATS_C=pk.c gf.c pxl.c FONTFORMATS_O=pk.o gf.o pxl.o TOP=/usr INCDIR=$(TOP)/include/X11 LIBDIR=$(TOP)/lib XMULIB=-lXmu EXTENSIONLIB=-lXext DESTDIR=/usr/local BINDIR=$(DESTDIR)/bin MANDIR=$(DESTDIR)/man/man1 INCLUDES=-I$(INCDIR) CFLAGS=-O $(INCLUDES) $(DEFS) LIBS=-L$(LIBDIR) -lXaw $(XMULIB) -lXt $(EXTENSIONLIB) -lX11 -lm #LIBS=-L$(LIBDIR) -lX11 -lm SRCS=xdvi.c dvi_init.c dvi_draw.c $(FONTFORMATS_C) pxl_open.c tpic.c OBJS=xdvi.o dvi_init.o dvi_draw.o $(FONTFORMATS_O) pxl_open.o tpic.o CC=cc RM=rm -f .c.o: $(CC) -c $(CFLAGS) $*.c xdvi: $(OBJS) $(CC) -o xdvi $(OBJS) $(LIBS) chmod go+rx xdvi xdvi.o: xdvi.h patchlevel.h xdvi.icon dvi_init.o:xdvi.h dvi.h dvi_draw.o:xdvi.h dvi.h tpic.o: xdvi.h gf.o: xdvi.h pk.o: xdvi.h pxl.o: xdvi.h pxl_open.o: pxl_open.c xdvi.h $(CC) -c $(CFLAGS) $(FONTDEFINES) pxl_open.c xdvi.man: xdvi_man.sed mksedscript chmod u+x mksedscript ./mksedscript $(DEFAULT_FONT_PATH) $(DEFAULT_FONT_SIZES) $(DEFS) \ > sedscript sed -f sedscript < xdvi_man.sed > xdvi.man install: xdvi xdvi.man cp xdvi $(BINDIR) cp xdvi.man $(MANDIR)/xdvi.1 chmod 644 $(MANDIR)/xdv clean: $(RM) *.o *.BAK *.CKP sedscript xdvi.man xdvi a.out core errs *~ lint: lint $(INCLUDES) $(DEFS) $(FONTDEFINES) $(SRCS) -lm ------------------- end of Makefile for XDVI ---------------- 3. make xdvi 4. make install And you should be running =========================== DVIPS ====================== 1. cd /usr/distribution/dvips 2. Then I modified the Makefile to be: ---------------------- Makefile starts ----------- # # Makefile for dvips # # If you are compiling dvips for suid or other privileges, you will # definitely want to define the following symbol; else don't. # SECURE = -DSECURE # If you want EMTEX specials, define the following. # EMTEX = -DEMTEX # for SYSV (and friends which use instead of ) # define the c-compiler flag # add -D_POSIX_SOURCE if you are POSIX (also define SYSV) (only relevant # for subdir searching) # SYS = -DSYSV SYS = -DSYSV # Define this to be whatever you use for installation. If you don't have # install, use a script that invokes copy and chmod's the files # appropriately. # INSTALL = install INSTALL = /usr/distribution/dvips/instaldvips # the default paper format, if other than letter. # DEFPFMT = -DDEFPFMT=\"a4\" DEFPFMT = # where the installed binary goes # BINDIR = /usr/local/bin BINDIR = /usr/local/bin # where the TFM files go # TFMDIR = /usr/local/lib/tex/fonts/tfm TFMDIR = /usr/local/lib/tex/fonts/tfm # the default path to search for TFM files # (this usually is identical to TeX's defaultfontpath, which omits `.') # (private fonts are given an explicit directory, which overrides the path) # TFMPATH = /LocalLibrary/Fonts/TeXFonts/tfm:$(TFMDIR) TFMPATH = $(TFMDIR) # where the PK files go. # PKDIR = /usr/local/lib/tex/fonts/pk PKDIR = /usr/local/lib/tex/fonts/pk # the default path to search for PK files (usually omits `.') # Don't forget to add the directory that # MakeTeXPK puts the files! (In this case, /LocalLibrary/Fonts...) # PKPATH = /LocalLibrary/Fonts/TeXFonts/pk:$(PKDIR) PKPATH = $(PKDIR) # where the VF files go # VFDIR = /usr/local/lib/tex/fonts/vf VFDIR = /usr/local/lib/tex/fonts/vf # the default path to search for VF files (usually omits `.') # VFPATH = /LocalLibrary/Fonts/TeXFonts/vf:$(VFDIR) VFPATH = $(VFDIR) # additional directories in which to search for subdirectories to find # both tfm and pk files FONTSUBDIRPATH = # where the config files go # CONFIGDIR = /usr/local/lib/tex/ps CONFIGDIR = /usr/local/lib/tex/ps # the default path to search for config files # CONFIGPATH = .:$(CONFIGDIR) CONFIGPATH = .:$(CONFIGDIR) # the name of your config file # CONFIGFILE = config.ps CONFIGFILE = config.ps # where the header PS files go # HEADERDIR = /usr/local/lib/tex/ps HEADERDIR = /usr/local/lib/tex/ps # the default path to search for header files # HEADERPATH = .:$(HEADERDIR) HEADERPATH = .:$(HEADERDIR) # where epsf.tex and rotate.tex go (usually the TeX macros directory) # TEXMACRODIR = /usr/local/lib/tex/inputs TEXMACRODIR = /usr/local/lib/tex/inputs # the default path to search for epsf and psfiles # (usually the same as TeX's defaultinputpath) # FIGPATH = .:..:/usr/local/lib/tex/inputs FIGPATH = .:..:/usr/local/lib/tex/inputs # where the manual page goes #MANDIR = /usr/local/man/man1 MANEXT = 1 #MANDIR = /usr/local/man/man$(MANEXT) # add -DDEBUG to turn on debugging capability # add -DTPIC for tpic support # if the default resolution is not 300 dpi, # add -DDEFRES=400 or whatever is required # add -DFONTLIB to search font libraries # add -DSEARCH_SUBDIRECTORIES to search the FONTSUBDIRPATH. # add -DHAVE_GETCWD if you have getcwd (relevant only for subdir searching) DEFS= -DTPIC -DDEBUG # either use # OPT = -g -Wall # or OPT = -O -s # libraries to include (-lm -lc on most systems) #FLIBS= -lNeXT_s -lsys_s FLIBS= -lm PATHS = -DTFMPATH=\"$(TFMPATH)\" \ -DPKPATH=\"$(PKPATH)\" \ -DVFPATH=\"$(VFPATH)\" \ -DHEADERPATH=\"$(HEADERPATH)\" \ -DCONFIGPATH=\"$(CONFIGPATH)\" \ -DCONFIGFILE=\"$(CONFIGFILE)\" \ -DFONTSUBDIRPATH=\"$(FONTSUBDIRPATH)\" \ -DFIGPATH=\"$(FIGPATH)\" CFLAGS = $(DEFS) $(PATHS) $(OPT) $(SYS) $(SECURE) $(EMTEX) $(DEFPFMT) SRC = dospecial.c dviinput.c fontdef.c loadfont.c dvips.c tfmload.c \ download.c prescan.c scanpage.c skippage.c output.c scalewidth.c \ dosection.c dopage.c resident.c search.c unpack.c drawPS.c \ header.c makefont.c repack.c virtualfont.c dpicheck.c finclude.c \ flib.c OBJ = dospecial.o dviinput.o fontdef.o loadfont.o dvips.o tfmload.o \ download.o prescan.o scanpage.o skippage.o output.o scalewidth.o \ dosection.o dopage.o resident.o search.o unpack.o drawPS.o \ header.o makefont.o repack.o virtualfont.o dpicheck.o finclude.o \ flib.o # files required to make a distribution CONFIGFILES = config.ps psfonts.map HEADERFILES = tex.lpro texc.script texps.lpro special.lpro finclude.lpro FILES = $(CONFIGFILES) $(HEADERFILES) $(SRC) \ Makefile INSTALLATION README rotsample.tex AGaramond-Demo.pfb \ MakeTeXPK ../afm/Makefile epsf.tex epsf.sty rotate.tex rotate.sty \ dvips.1 paths.h debug.h structures.h squeeze.c afm2tfm.c afm2tfm.1 all : afm2tfm dvips tex.pro texps.pro texc.pro special.pro finclude.pro dvips : $(OBJ) $(CC) $(CFLAGS) $(OBJ) $(LIBS) $(FLIBS) -o dvips afm2tfm: afm2tfm.c $(CC) $(CFLAGS) -o afm2tfm afm2tfm.c $(LIBS) $(FLIBS) $(OBJ) : structures.h debug.h Makefile flib.o resident.o dvips.o loadfont.o tfmload.o : paths.h squeeze : squeeze.o $(CC) $(CFLAGS) squeeze.o -o squeeze $(LIBS) $(FLIBS) tex.pro : tex.lpro squeeze ./squeeze tex.pro texc.pro: texc.lpro squeeze ./squeeze texc.pro texc.lpro: texc.script tex.lpro ./texc.script tex.lpro texc.lpro texps.pro : texps.lpro squeeze ./squeeze texps.pro special.pro : special.lpro squeeze ./squeeze special.pro finclude.pro : finclude.lpro squeeze ./squeeze finclude.pro install : afm2tfm dvips MakeTeXPK \ tex.pro texc.pro texps.pro special.pro finclude.pro \ config.ps psfonts.map epsf.tex epsf.sty rotate.tex rotate.sty \ dvips.1 afm2tfm.1 - mkdir $(BINDIR) - mkdir $(HEADERDIR) - mkdir $(CONFIGDIR) - mkdir $(MANDIR) - mkdir $(TEXMACRODIR) $(INSTALL) -c -m 755 afm2tfm $(BINDIR)/afm2tfm $(INSTALL) -c -m 755 dvips $(BINDIR)/dvips $(INSTALL) -c -m 755 MakeTeXPK $(BINDIR)/MakeTeXPK $(INSTALL) -c -m 644 tex.pro $(HEADERDIR) $(INSTALL) -c -m 644 texc.pro $(HEADERDIR) $(INSTALL) -c -m 644 texps.pro $(HEADERDIR) $(INSTALL) -c -m 644 special.pro $(HEADERDIR) $(INSTALL) -c -m 644 finclude.pro $(HEADERDIR) $(INSTALL) -c -m 644 config.ps $(CONFIGDIR)/$(CONFIGFILE) $(INSTALL) -c -m 644 psfonts.map $(CONFIGDIR) $(INSTALL) -c -m 644 epsf.tex $(TEXMACRODIR) $(INSTALL) -c -m 644 epsf.sty $(TEXMACRODIR) $(INSTALL) -c -m 644 rotate.tex $(TEXMACRODIR) $(INSTALL) -c -m 644 rotate.sty $(TEXMACRODIR) -$(INSTALL) -c -m 644 dvips.1 $(MANDIR)/dvips.$(MANEXT) -$(INSTALL) -c -m 644 afm2tfm.1 $(MANDIR)/afm2tfm.$(MANEXT) veryclean : rm -f *.o dvips squeeze afm2tfm texc.lpro *.pro *~ *.log *.dvi clean : rm -f *.o squeeze afm2tfm *~ *.log *.dvi lint : lint $(DEFS) $(PATHS) $(SRC) lint $(DEFS) squeeze.c lint $(DEFS) afm2tfm.c ---------------------- end of Makefile --------------- 3) Then I modified file config.ps to be: -------------------config.ps starts ----------------- * This is /usr/local/lib/tex/ps/config.ps file. If want to modify settings * copy it to $HOME/.dvipsrc and make changes. REMEMBER !!! once you have * .dvipsrc in your $HOME, the contents of this config.ps file is overwritten * by your * .dvipsrc !!! * * With a virtual machine, we can claim 1M of memory (i.e. m 1000000) * which is true for NeXTprinter. For our OmniLaser it is 450000 * m 450000 * * And send output by default to a PostScript file. * *o !lpr o * * * This is our default printer OmniLaser, i.e. M is RicohFourZeroEightZero * For 400dpi NeXT printer change it to "M NeXTprinter" M RicohFourZeroEightZero * * * Change this path for NeXTprinter to: * P .:/usr/local/lib/tex/fonts/pk/NeXTPrinter P .:/usr/local/lib/tex/fonts/pk/RicohFourZeroEightZero * T .:/usr/local/lib/tex/fonts/tfm * * Default resolution. Change this to D 400 for NeXTprinter D 300 * * Last resort sizes. * R 100 120 144 300 360 400 432 480 -------------------------- config.ps ends ---------------- 4) Then I modified file MakeTeXPK to be: ----------------------MakeTeXPK starts-------------------- #!/bin/sh # # This script file makes a new TeX PK font, because one wasn't # found. Parameters are: # # name dpi bdpi magnification [mode] # # `name' is the name of the font, such as `cmr10'. `dpi' is # the resolution the font is needed at. `bdpi' is the base # resolution, useful for figuring out the mode to make the font # in. `magnification' is a string to pass to MF as the # magnification. `mode', if supplied, is the mode to use. # # Note that this file must execute Metafont, and then gftopk, # and place the result in the correct location for the PostScript # driver to find it subsequently. If this doesn't work, it will # be evident because MF will be invoked over and over again. # # Of course, it needs to be set up for your site. # # TEMPDIR needs to be unique for each process because of the possibility # of simultaneous processes running this script. # DESTDIR=/LocalLibrary/Fonts/TeXFonts/pk TEMPDIR=/tmp/mtpk.$$ NAME=$1 DPI=$2 BDPI=$3 MAG=$4 MODE=$5 umask 0 if test "$MODE" = "" then if test $BDPI = 300 then MODE=RicohFourZeroEightZero elif test $BDPI = 400 then MODE=NeXTprinter elif test $BDPI = 100 then MODE=nextscreen elif test $BDPI = 635 then MODE=linolo elif test $BDPI = 1270 then MODE=linohi elif test $BDPI = 2540 then MODE=linosuper else echo "I don't know the mode for $BDPI" echo "Have your system admin update MakeTeXPK" exit 1 fi fi # Something like the following is useful at some sites. DESTDIR=/usr/local/lib/tex/fonts/pk/$MODE GFNAME=$NAME.$DPI'gf' PKNAME=$NAME.$DPI'pk' # Clean up on normal or abnormal exit trap "cd /; rm -rf $TEMPDIR $DESTDIR/pktmp.$$" 0 1 2 15 if test ! -d $DESTDIR then mkdir $DESTDIR fi mkdir $TEMPDIR cd $TEMPDIR if test -r $DESTDIR/$PKNAME then echo "$DESTDIR/$PKNAME already exists!" exit 0 fi # check also in the standard place if test -r /usr/lib/tex/fonts/pk/$PKNAME then echo /usr/lib/tex/fonts/pk/$PKNAME already exists! exit 0 fi echo cmmf "\mode:=$MODE; mag:=$MAG; scrollmode; input $NAME" \\\ makepkfiles I edited this file so each line was calling MakeTeXPK with the font name. That is, the line containing, e.g.: cmr12.tmf was changed to MakeTeXPK cmr12 300 300 magstep\(0\) chmod 755 makepkfiles and finaly: makepkfiles It takes about 2 hours to generate fonts ! 8) The virtual and PostScript Fonts. When you uncompressed and untarred dvipsamf.tar.Z you will get directory ./afm, and from dvipslib.tar.Z you get ./afm-extra, ./PStfms, and ./PSvfs. The dvipsamf.tar.Z is actually what you need -- it containes scripts to create virtual fonts (Yes, you need to print the dvips.tex to learn more !). I used the scripts to check if they work. They did. a) cd /usr/distribution/afm b) edit Makefile by changing 2 lines at the very end: mv *.tfm ../PStfms ----> mv *.tfm /usr/local/lib/tex/fonts/tfm mv *.vf ../PSvfs ----> mv *.vf /usr/local/lib/tex/fonts/vf c) create vf directory if you did not, i.e.: mkdir /usr/local/lib/tex/fonts/vf d) when you are in /usr/distribution/afm do: make make install set junk=/usr/local/lib/tex/fonts/PStoVF_scripts mkdir $junk cp *.ed $junk cp Makefile $junk I saved the scripts, simply because they are nice, and you might need them in the future 9) I saved various docs and README's in /usr/local/lib/tex/doc Namely: dvipsmac.tex & dvips.tex {macro and manual for dvips) in ./dvips MFdoc directory under ./MF, etc. 10) Then I did: cd /usr/local/lib/tex/fonts find . -type d -exec chmod a+rwx,u+t {} \; find . -type f -exec chmod go-wx {} \; This is moderately secure, the only risk is that people will store a lot of junk in font directories and you will have to clean them at times.