|  | Stuff appears to work, but it's obviously not well tested. I fully | 
|  | expect several iterations before things are correct!! Make sure you | 
|  | can back this out quickly. | 
|  |  | 
|  | This code supports UTF encoding. Directory dpost.utf is a version that | 
|  | reads UTF encoded files. Directory dpost is DWB 3.3 source and should be | 
|  | close to what you're currently using. Main source code changes were in | 
|  | dpost.utf (files font.h, font.c, and dpost.c). Select either dpost or | 
|  | dpost.utf in TARGETS in postscript.mk. Both build and install a program | 
|  | called dpost!! | 
|  |  | 
|  | dpost.utf is more general and includes code that lets it read either | 
|  | format. Only catch is troff must tell it (with x E UTF) that the file | 
|  | is UTF and troff currently doesn't output encoding info, so you're | 
|  | stuck with two post-processors! | 
|  |  | 
|  | Added common/rune.h and common/rune.c so code can be compiled elsewere. | 
|  | Both files are only used by dpost. Remove RUNELIB in commmon/rune.h if | 
|  | fullrune(), chartorune(), and runetochar() are available on your system. | 
|  | You will also need to set READING in common/gen.h. It controls how dpost | 
|  | (from dpost.utf) reads troff output. It should be UTFENCODING on Plan 9 | 
|  | and ONEBYTE elsewhere. If troff includes encoding hint (x E UTF) then | 
|  | READING selects the default which sould be ONEBYTE. | 
|  |  | 
|  | Leave WRITING (in common/gen.h) set to ONEBYTE. It only controls dpost | 
|  | output and dpost (right now) does not work 100% with UTF.enc. Fix should | 
|  | be easy, but I don't have time now. | 
|  |  | 
|  | Other translators passed bytes through so only needed slightly modified | 
|  | proglogues and a new encoding scheme (psencoding/UTF.enc). It works for | 
|  | Latin1, but still needs a bit more attention. Prologue changes were easy | 
|  | and only involved adding lines like, | 
|  |  | 
|  | /show {show} bind def | 
|  | /stringwidth {stringwidth} bind def | 
|  |  | 
|  | Guarantees text procedures used in prologues aren't operators and can be | 
|  | successfully redefined in UTF.enc. Unbinding means a small but probably | 
|  | not noticeable speed penalty. You may not want to include those changes | 
|  | on other system. | 
|  |  | 
|  | ------------- | 
|  | Major Changes | 
|  | ------------- | 
|  |  | 
|  | See the VERSION file. | 
|  |  | 
|  | ------------------- | 
|  | Tuning The Makefile | 
|  | ------------------- | 
|  |  | 
|  | Source files, man pages, and low level makefiles can all be updated | 
|  | to reflect settings in postscript.mk in one simple step (described | 
|  | later). In most cases you only need to edit file postscript.mk. | 
|  |  | 
|  | First save a copy of file postscript.mk. Then adjust the following | 
|  | definitions in file postscript.mk: | 
|  |  | 
|  | SYSTEM    best match for your version of Unix. Current choices for | 
|  | SYSTEM are: | 
|  |  | 
|  | SYSV	- System V | 
|  | V9	- Ninth Edition | 
|  | BSD4_2	- Berkeley (eg. Sun) | 
|  |  | 
|  | Controls conditional compilation in a few places. | 
|  |  | 
|  | GROUP	    group assigned to all installed files | 
|  |  | 
|  | OWNER	    owner of everything that's installed | 
|  |  | 
|  | BINDIR    dpost and picpack go here. All other programs go in POSTBIN. | 
|  | BINDIR must already exist - it will not be created during an | 
|  | install. | 
|  |  | 
|  | HOSTDIR   hostresident font directory for PostScript printers. Only | 
|  | used in the font download program. | 
|  |  | 
|  | FONTDIR   width table directory - for troff and most postprocessors | 
|  |  | 
|  | MAN1DIR   command manpages. A command and its manpage are installed | 
|  | together - there's no easy way to avoid it. Setting MAN1DIR | 
|  | to an existing temporary directory (e.g. /tmp) means an | 
|  | install will work but manpages won't go anywhere permanent. | 
|  | MAN1DIR must already exist - it will not be created during | 
|  | an install. | 
|  |  | 
|  | POSTBIN   where most PostScript support programs go. dpost and picpack | 
|  | the exceptions. | 
|  |  | 
|  | POSTLIB   prologues and miscellaneous PostScript files. Primarily for | 
|  | the programs that live in POSTBIN. | 
|  |  | 
|  | CFLGS	    common compiler options - used to build CFLAGS in the low | 
|  | level makefiles. CLFGS and LDFLGS are best set on the make | 
|  | command line. | 
|  |  | 
|  | LDFLGS    common link editor options - used to build LDFLAGS in the | 
|  | low level makefiles. LDFLGS and CFLGS are best set on the | 
|  | make command line. | 
|  |  | 
|  | DKHOST    set it to TRUE to compile the DKHOST Datakit support code | 
|  | in postio. Temporarily resets SYSTEM to SYSV if DKHOST is | 
|  | TRUE and SYSTEM is BSD4_2. Ignored if SYSTEM is not SYSV | 
|  | or BSD4_2. | 
|  |  | 
|  | DKSTREAMS enables streams based DKHOST support in postio when DKHOST | 
|  | is TRUE and SYSTEM is SYSV or BSD4_2. Choices are TRUE, | 
|  | FALSE, or a stream module name (e.g. dknetty or dkty). TRUE | 
|  | selects dknetty. Newer systems may expect dkty. | 
|  |  | 
|  | ROUNDPAGE must only be set to TRUE or FALSE. TRUE means PostScript | 
|  | translators include code that maps clipping path dimensions | 
|  | into known paper sizes. | 
|  |  | 
|  | TARGETS   the default list of what's built by make. Each target must | 
|  | be the name of a source directory. A target that names a | 
|  | non-existent source directory is ignored. Setting TARGETS | 
|  | on the make command line overrides the default list. | 
|  |  | 
|  | ------------------- | 
|  | Updating The Source | 
|  | ------------------- | 
|  |  | 
|  | Whenever file postscript.mk changes you should update source files, | 
|  | man pages, and low level makefiles by typing, | 
|  |  | 
|  | make -f postscript.mk changes | 
|  |  | 
|  | ------------------------ | 
|  | More System Dependencies | 
|  | ------------------------ | 
|  |  | 
|  | The package has been compiled and tested on System V and Ninth Edition | 
|  | Unix Systems and on Sun workstations. Most differences are handled via | 
|  | the SYSTEM definition in postscript.mk. Problems that remain are: | 
|  |  | 
|  | SYSV - System V | 
|  | Use the native compiler if you're on an internal System V UTS | 
|  | machine. | 
|  |  | 
|  | V9 - Ninth or Tenth Edition | 
|  | chown is in /etc and chgrp no longer exists - it's been folded into | 
|  | the chown command. You may be forced to build a simple chgrp shell | 
|  | script (put it in your bin) that calls chown. If you're not superuser | 
|  | set OWNER to your login name and GROUP to your group id. | 
|  |  | 
|  | BSD4_2 - Sun Workstations | 
|  | Use the Bourne shell. chown is should be in /usr/etc. Add /usr/etc | 
|  | to your PATH and export PATH. If you're not superuser set OWNER to | 
|  | your login name and GROUP to your group id. | 
|  |  | 
|  | ---------------------- | 
|  | Installing The Package | 
|  | ---------------------- | 
|  |  | 
|  | To build (but not install) the default package (i.e. everything named by | 
|  | TARGETS in postscript.mk) type, | 
|  |  | 
|  | make -f postscript.mk all | 
|  |  | 
|  | To build and install the package type, | 
|  |  | 
|  | make -f postscript.mk all install | 
|  |  | 
|  | After the package is installed use, | 
|  |  | 
|  | make -f postscript.mk clobber | 
|  |  | 
|  | to delete binary files and compiled programs from the source directories. | 
|  |  | 
|  | To select part of the package define TARGETS on the command line. For | 
|  | example, | 
|  |  | 
|  | make -f postscript.mk TARGETS="dpost devpost" all install | 
|  |  | 
|  | builds and installs dpost and the PostScript font tables. Quotes hide | 
|  | white space from the shell. | 
|  |  |