plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

README (6601B)


      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