|
|
1.1 root 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.
4:
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!!
11:
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!
16:
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.
24:
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.
28:
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,
33:
34: /show {show} bind def
35: /stringwidth {stringwidth} bind def
36:
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.
41:
42: -------------
43: Major Changes
44: -------------
45:
46: See the VERSION file.
47:
48: -------------------
49: Tuning The Makefile
50: -------------------
51:
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.
55:
56: First save a copy of file postscript.mk. Then adjust the following
57: definitions in file postscript.mk:
58:
59: SYSTEM best match for your version of Unix. Current choices for
60: SYSTEM are:
61:
62: SYSV - System V
63: V9 - Ninth Edition
64: BSD4_2 - Berkeley (eg. Sun)
65:
66: Controls conditional compilation in a few places.
67:
68: GROUP group assigned to all installed files
69:
70: OWNER owner of everything that's installed
71:
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.
75:
76: HOSTDIR hostresident font directory for PostScript printers. Only
77: used in the font download program.
78:
79: FONTDIR width table directory - for troff and most postprocessors
80:
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.
87:
88: POSTBIN where most PostScript support programs go. dpost and picpack
89: the exceptions.
90:
91: POSTLIB prologues and miscellaneous PostScript files. Primarily for
92: the programs that live in POSTBIN.
93:
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.
97:
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.
101:
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.
106:
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.
111:
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.
115:
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.
120:
121: -------------------
122: Updating The Source
123: -------------------
124:
125: Whenever file postscript.mk changes you should update source files,
126: man pages, and low level makefiles by typing,
127:
128: make -f postscript.mk changes
129:
130: ------------------------
131: More System Dependencies
132: ------------------------
133:
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:
137:
138: SYSV - System V
139: Use the native compiler if you're on an internal System V UTS
140: machine.
141:
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.
147:
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.
152:
153: ----------------------
154: Installing The Package
155: ----------------------
156:
157: To build (but not install) the default package (i.e. everything named by
158: TARGETS in postscript.mk) type,
159:
160: make -f postscript.mk all
161:
162: To build and install the package type,
163:
164: make -f postscript.mk all install
165:
166: After the package is installed use,
167:
168: make -f postscript.mk clobber
169:
170: to delete binary files and compiled programs from the source directories.
171:
172: To select part of the package define TARGETS on the command line. For
173: example,
174:
175: make -f postscript.mk TARGETS="dpost devpost" all install
176:
177: builds and installs dpost and the PostScript font tables. Quotes hide
178: white space from the shell.
179:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.