]> git.lizzy.rs Git - plan9front.git/blob - sys/src/cmd/postscript/postscript.mk
merge
[plan9front.git] / sys / src / cmd / postscript / postscript.mk
1 #
2 # Top level makefile. Instructions are included here and in the README file.
3 #
4 # First save a copy of this file. Then adjust the following definitions (all
5 # come immediatedly after the initial block of comments):
6 #
7 #     MAKE      where make lives
8 #
9 #     MAKEFILE  name of this file - for recursive make calls. Must change
10 #               if you rename this file.
11 #
12 #     SYSTEM    best match for your version of Unix. Current choices for
13 #               SYSTEM are:
14 #
15 #                       SYSV    - System V
16 #                       V9      - Ninth Edition
17 #                       BSD4_2  - Berkeley (eg. Sun)
18 #
19 #               Controls conditional compilation in a few places.
20 #
21 #     VERSION   refers to the Version of the DWB package
22 #
23 #     GROUP     group assigned to all installed files
24 #
25 #     OWNER     owner of everything that's installed
26 #
27 #     HOSTDIR   hostresident font directory for PostScript printers. Only
28 #               used in the font download program.
29 #
30 #     FONTDIR   width table directory - for troff and dpost
31 #
32 #     MAN1DIR   command manpages. A command and its manpage are installed
33 #               together - there's no easy way to avoid it. Setting MAN1DIR
34 #               to an existing temporary directory (e.g. /tmp) means an
35 #               install will work but manpages won't go anywhere permanent.
36 #               MAN1DIR must already exist - it will not be created during
37 #               an install.
38 #
39 #     POSTBIN   where most PostScript support programs go. dpost and picpack
40 #               are the exceptions.
41 #
42 #     POSTLIB   prologues and miscellaneous PostScript files. Primarily for
43 #               the programs that live in POSTBIN.
44 #
45 #     CFLGS     common compiler options - used to build CFLAGS in the low
46 #               level makefiles. CFLGS and LDFLGS are best set on the make
47 #               command line.
48 #
49 #     LDFLGS    common link editor options - used to build LDFLAGS in the
50 #               low level makefiles. LDFLGS and CFLGS are best set on the
51 #               make command line.
52 #
53 #     DKHOST    set it to TRUE to compile the DKHOST Datakit support code
54 #               in postio. Temporarily resets SYSTEM to SYSV if DKHOST is
55 #               TRUE and SYSTEM is BSD4_2. Ignored if SYSTEM is not SYSV
56 #               or BSD4_2.
57 #
58 #     DKSTREAMS enables streams based DKHOST support in postio when DKHOST
59 #               is TRUE and SYSTEM is SYSV or BSD4_2. Choices are TRUE,
60 #               FALSE, or a stream module name (e.g. dknetty or dkty). TRUE
61 #               selects dknetty. Newer systems may expect dkty.
62 #
63 #     ROUNDPAGE must only be set to TRUE or FALSE. TRUE means translators
64 #               include code that maps clipping path dimensions into known
65 #               paper sizes.
66 #
67 #     TARGETS   the default list of what's built by make. Each target must
68 #               be the name of a source directory. A target that names a
69 #               non-existent source directory is ignored. Setting TARGETS
70 #               on the make command line overrides the default list.
71 #
72 # Source files must be updated whenever this file changes. If you change any
73 # definitions type,
74 #
75 #       make -f postscript.mk changes
76 #
77 # to update the source files, man pages, and low level makefiles.
78 #
79 # To build (but not install) the default package (i.e. everything named by
80 # TARGETS) type,
81 #
82 #       make -f postscript.mk all
83 #
84 # The recommended way to build and install the package is,
85 #
86 #       make -f postscript.mk all install
87 #
88 # Although you'll likely have to be root for the install to work.
89 #
90 # After the package is installed use,
91 #
92 #       make -f postscript.mk clobber
93 #
94 # to delete binary files and compiled programs from the source directories.
95 #
96 # Set TARGETS on the command line to select part of the package. For example,
97 #
98 #       make -f postscript.mk TARGETS="dpost devpost" all install
99 #
100 # builds and installs dpsot and the PostScript font tables. Quotes hide white
101 # space from the shell.
102 #
103
104 MAKE=/bin/make
105 MAKEFILE=postscript.mk
106
107 SYSTEM=V9
108 VERSION=3.3.2
109
110 GROUP=bin
111 OWNER=bin
112
113 ROOT=
114 FONTDIR=$(ROOT)/usr/lib/font
115 HOSTDIR=$(ROOT)/usr/lib/font/postscript
116 MAN1DIR=$(ROOT)/tmp
117 POSTBIN=$(ROOT)/usr/bin/postscript
118 POSTLIB=$(ROOT)/usr/lib/postscript
119 TMACDIR=$(ROOT)/usr/lib/tmac
120
121 COMMONDIR=common
122 CURRENTDIR=.
123
124 CFLGS=-O
125 LDFLGS=-s
126
127 DKHOST=FALSE
128 DKSTREAMS=FALSE
129 ROUNDPAGE=TRUE
130
131 #
132 # $(TARGETS) is the default list of things built by make. Pick dpost or
133 # dpost.utf but not both!
134 #
135
136 TARGETS=buildtables\
137         common\
138         cropmarks\
139         devLatin1\
140         devpost\
141         download\
142         dpost.utf\
143         grabit\
144         hardcopy\
145         mpictures\
146         picpack\
147         postbgi\
148         postdaisy\
149         postdmd\
150         postgif\
151         postio\
152         postmd\
153         postprint\
154         postreverse\
155         posttek\
156         printfont\
157         psencoding\
158         psfiles\
159         trofftable
160
161 ACTION=all
162
163 all : $(TARGETS)
164
165 clean clobber :
166         @$(MAKE) -e -f $(MAKEFILE) MAKE=$(MAKE) ACTION=$@ $(TARGETS)
167
168 install changes :
169         @SYSTEM='$(SYSTEM)'; export SYSTEM; \
170         VERSION='$(VERSION)'; export VERSION; \
171         GROUP='$(GROUP)'; export GROUP; \
172         OWNER='$(OWNER)'; export OWNER; \
173         FONTDIR='$(FONTDIR)'; export FONTDIR; \
174         HOSTDIR='$(HOSTDIR)'; export HOSTDIR; \
175         MAN1DIR='$(MAN1DIR)'; export MAN1DIR; \
176         POSTBIN='$(POSTBIN)'; export POSTBIN; \
177         POSTLIB='$(POSTLIB)'; export POSTLIB; \
178         TMACDIR='$(TMACDIR)'; export TMACDIR; \
179         ROUNDPAGE='$(ROUNDPAGE)'; export ROUNDPAGE; \
180         $(MAKE) -e -f $(MAKEFILE) MAKE=$(MAKE) ACTION=$@ $(TARGETS)
181
182 $(TARGETS) ::
183         @TARGETS=; unset TARGETS; \
184         HFILES=; unset HFILES; \
185         OFILES=; unset OFILES; \
186         CFLAGS=; unset CFLAGS; \
187         LDFLAGS=; unset LDFLAGS; \
188         YFLAGS=; unset YFLAGS; \
189         SYSTEM='$(SYSTEM)'; export SYSTEM; \
190         VERSION='$(VERSION)'; export VERSION; \
191         CFLGS='$(CFLGS)'; export CFLGS; \
192         LDFLGS='$(LDFLGS)'; export LDFLGS; \
193         COMMONDIR='../$(COMMONDIR)'; export COMMONDIR; \
194         DKHOST='$(DKHOST)'; export DKHOST; \
195         DKSTREAMS='$(DKSTREAMS)'; export DKSTREAMS; \
196         if [ -d $@ -a -f $@/$@.mk ]; then  \
197             cd $@; \
198             echo "---- Making $(ACTION) in directory $(CURRENTDIR)/$@ ----"; \
199             $(MAKE) -e -f $@.mk MAKE=$(MAKE) $(ACTION); \
200             echo; \
201         fi
202