Blob


1 Stuff appears to work, but it's obviously not well tested. I fully
2 expect several iterations before things are correct!! Make sure you
3 can back this out quickly.
5 This code supports UTF encoding. Directory dpost.utf is a version that
6 reads UTF encoded files. Directory dpost is DWB 3.3 source and should be
7 close to what you're currently using. Main source code changes were in
8 dpost.utf (files font.h, font.c, and dpost.c). Select either dpost or
9 dpost.utf in TARGETS in postscript.mk. Both build and install a program
10 called dpost!!
12 dpost.utf is more general and includes code that lets it read either
13 format. Only catch is troff must tell it (with x E UTF) that the file
14 is UTF and troff currently doesn't output encoding info, so you're
15 stuck with two post-processors!
17 Added common/rune.h and common/rune.c so code can be compiled elsewere.
18 Both files are only used by dpost. Remove RUNELIB in commmon/rune.h if
19 fullrune(), chartorune(), and runetochar() are available on your system.
20 You will also need to set READING in common/gen.h. It controls how dpost
21 (from dpost.utf) reads troff output. It should be UTFENCODING on Plan 9
22 and ONEBYTE elsewhere. If troff includes encoding hint (x E UTF) then
23 READING selects the default which sould be ONEBYTE.
25 Leave WRITING (in common/gen.h) set to ONEBYTE. It only controls dpost
26 output and dpost (right now) does not work 100% with UTF.enc. Fix should
27 be easy, but I don't have time now.
29 Other translators passed bytes through so only needed slightly modified
30 proglogues and a new encoding scheme (psencoding/UTF.enc). It works for
31 Latin1, but still needs a bit more attention. Prologue changes were easy
32 and only involved adding lines like,
34 /show {show} bind def
35 /stringwidth {stringwidth} bind def
37 Guarantees text procedures used in prologues aren't operators and can be
38 successfully redefined in UTF.enc. Unbinding means a small but probably
39 not noticeable speed penalty. You may not want to include those changes
40 on other system.
42 -------------
43 Major Changes
44 -------------
46 See the VERSION file.
48 -------------------
49 Tuning The Makefile
50 -------------------
52 Source files, man pages, and low level makefiles can all be updated
53 to reflect settings in postscript.mk in one simple step (described
54 later). In most cases you only need to edit file postscript.mk.
56 First save a copy of file postscript.mk. Then adjust the following
57 definitions in file postscript.mk:
59 SYSTEM best match for your version of Unix. Current choices for
60 SYSTEM are:
62 SYSV - System V
63 V9 - Ninth Edition
64 BSD4_2 - Berkeley (eg. Sun)
66 Controls conditional compilation in a few places.
68 GROUP group assigned to all installed files
70 OWNER owner of everything that's installed
72 BINDIR dpost and picpack go here. All other programs go in POSTBIN.
73 BINDIR must already exist - it will not be created during an
74 install.
76 HOSTDIR hostresident font directory for PostScript printers. Only
77 used in the font download program.
79 FONTDIR width table directory - for troff and most postprocessors
81 MAN1DIR command manpages. A command and its manpage are installed
82 together - there's no easy way to avoid it. Setting MAN1DIR
83 to an existing temporary directory (e.g. /tmp) means an
84 install will work but manpages won't go anywhere permanent.
85 MAN1DIR must already exist - it will not be created during
86 an install.
88 POSTBIN where most PostScript support programs go. dpost and picpack
89 the exceptions.
91 POSTLIB prologues and miscellaneous PostScript files. Primarily for
92 the programs that live in POSTBIN.
94 CFLGS common compiler options - used to build CFLAGS in the low
95 level makefiles. CLFGS and LDFLGS are best set on the make
96 command line.
98 LDFLGS common link editor options - used to build LDFLAGS in the
99 low level makefiles. LDFLGS and CFLGS are best set on the
100 make command line.
102 DKHOST set it to TRUE to compile the DKHOST Datakit support code
103 in postio. Temporarily resets SYSTEM to SYSV if DKHOST is
104 TRUE and SYSTEM is BSD4_2. Ignored if SYSTEM is not SYSV
105 or BSD4_2.
107 DKSTREAMS enables streams based DKHOST support in postio when DKHOST
108 is TRUE and SYSTEM is SYSV or BSD4_2. Choices are TRUE,
109 FALSE, or a stream module name (e.g. dknetty or dkty). TRUE
110 selects dknetty. Newer systems may expect dkty.
112 ROUNDPAGE must only be set to TRUE or FALSE. TRUE means PostScript
113 translators include code that maps clipping path dimensions
114 into known paper sizes.
116 TARGETS the default list of what's built by make. Each target must
117 be the name of a source directory. A target that names a
118 non-existent source directory is ignored. Setting TARGETS
119 on the make command line overrides the default list.
121 -------------------
122 Updating The Source
123 -------------------
125 Whenever file postscript.mk changes you should update source files,
126 man pages, and low level makefiles by typing,
128 make -f postscript.mk changes
130 ------------------------
131 More System Dependencies
132 ------------------------
134 The package has been compiled and tested on System V and Ninth Edition
135 Unix Systems and on Sun workstations. Most differences are handled via
136 the SYSTEM definition in postscript.mk. Problems that remain are:
138 SYSV - System V
139 Use the native compiler if you're on an internal System V UTS
140 machine.
142 V9 - Ninth or Tenth Edition
143 chown is in /etc and chgrp no longer exists - it's been folded into
144 the chown command. You may be forced to build a simple chgrp shell
145 script (put it in your bin) that calls chown. If you're not superuser
146 set OWNER to your login name and GROUP to your group id.
148 BSD4_2 - Sun Workstations
149 Use the Bourne shell. chown is should be in /usr/etc. Add /usr/etc
150 to your PATH and export PATH. If you're not superuser set OWNER to
151 your login name and GROUP to your group id.
153 ----------------------
154 Installing The Package
155 ----------------------
157 To build (but not install) the default package (i.e. everything named by
158 TARGETS in postscript.mk) type,
160 make -f postscript.mk all
162 To build and install the package type,
164 make -f postscript.mk all install
166 After the package is installed use,
168 make -f postscript.mk clobber
170 to delete binary files and compiled programs from the source directories.
172 To select part of the package define TARGETS on the command line. For
173 example,
175 make -f postscript.mk TARGETS="dpost devpost" all install
177 builds and installs dpost and the PostScript font tables. Quotes hide
178 white space from the shell.