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