V10/cmd/postscript/README


Version 3.3 PostScript printer support programs. The package is now
included as part of the DWB package. The instructions in this file
ONLY apply if the PostScript support package has been separated from
the DWB package.

-------------
Major Changes
-------------

In what follows TARGETS, BINDIR, and POSTBIN refer to definitions made
in the top level makefile (file postscript.mk). All are described in the
next section. The important changes are:

 1: dpost now reads ASCII font tables. makedev and the old binary font
    tables are completely gone.

 2: The default PostScript font tables (directory postscript/devpost)
    now only include the standard 35 fonts available on most PostScript
    printers. All width tables were built on a version 47.0 QMS PS-810
    using files in postscript/buildtables.

 3: Additional tables (the ones that were in the devpost collection
    in DWB 3.0) have been moved to directory postscript/devpost.add.
    By default they are not installed. If you need these tables include
    devpost.add in the TARGETS list in file postscript.mk.

    If you're not already using the extra font tables don't start now.
    Font names are poorly chosen, particularly since the .fp request
    can now handle long font names (as synonyms). The devpost.add
    tables are completely unsupported. There is no guarantee these
    tables will be included in future releases.

 4: The original collection of PostScript font tables are supplied
    (directory devopost), but by default are not installed. If you need
    the tables add devopost to the TARGETS list in file postscript.mk.

    If you're not already using the old PostScript font tables don't
    start now. The devopost tables are unsupported and will likely not
    be included in future releases.

 5: dpost recognizes two new fields in the ASCII font tables. An entry
    that begins with fontname, as in

		fontname Times-Roman

    is expected to be the full PostScript font name. All PostScript font
    tables should include a fontname entry. The second entry is,

		named in prologue

    and is used to disable runtime abbreviation of font names - dpost
    assumes the abbreviation is already in the prologue (file dpost.ps).

 6: All traces of the Varitimes font tables (VR, VI, VB, and VX) have
    been removed.

 7: Bracket building problems on have been fixed by adding a Metrics
    entry for braceleftbt to dpost.ps. Compensates for an apparent
    mistake in Adobe's Symbol font.

 8: Translators (e.g. dpost, postprint) no longer leave save objects on
    the operand stack. New and old versions of the translators and
    prologues should not be mixed.

 9: Passing output from new translators through an old version of
    postreverse may fail if the more than one page image is being
    printed on each sheet of paper. The new version of postreverse
    is safe and probably should be installed on all your systems,
    even if you don't install any other part of the package.

10: dpost and picpack are now only installed in directory BINDIR. The
    makefiles,

		postscript/dpost/dpost.mk
		postscript/picpack/picpack.mk

    delete dpost and picpack from POSTBIN before installing the new
    versions. Change the two makefiles if you expect to find dpost
    and picpack in directory POSTBIN.

11: The mechanism for compiling DKHOST code in postio on internal
    System V machines has been changed. The only way to get it is to
    set DKHOST to TRUE in postscript.mk. Makefiles now assume dk.h and
    libdk.a are in standard places (i.e. /usr/include and /usr/lib).
    If that's not the case on your system you may have to edit file
    postio/postio.mk.

12: Man pages and programs are installed together - there's no easy
    way to avoid it. Setting MAN1DIR and MAN5DIR to some existing
    temporary directory (e.g. /tmp) means programs will be properly
    installed but man pages won't go anywhere permanent.

Check the VERSION file for additional changes.

-------------------
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    must only be set to TRUE or FALSE. TRUE means compile DKHOST
	    Datakit support code in postio. Only used if SYSTEM is SYSV.

  DOROUND   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.