xref: /plan9/sys/src/cmd/postscript/postscript.mk (revision 219b2ee8daee37f4aad58d63f21287faa8e4ffdc)
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
104MAKE=/bin/make
105MAKEFILE=postscript.mk
106
107SYSTEM=V9
108VERSION=3.3.2
109
110GROUP=bin
111OWNER=bin
112
113ROOT=
114FONTDIR=$(ROOT)/usr/lib/font
115HOSTDIR=$(ROOT)/usr/lib/font/postscript
116MAN1DIR=$(ROOT)/tmp
117POSTBIN=$(ROOT)/usr/bin/postscript
118POSTLIB=$(ROOT)/usr/lib/postscript
119TMACDIR=$(ROOT)/usr/lib/tmac
120
121COMMONDIR=common
122CURRENTDIR=.
123
124CFLGS=-O
125LDFLGS=-s
126
127DKHOST=FALSE
128DKSTREAMS=FALSE
129ROUNDPAGE=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
136TARGETS=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
161ACTION=all
162
163all : $(TARGETS)
164
165clean clobber :
166	@$(MAKE) -e -f $(MAKEFILE) MAKE=$(MAKE) ACTION=$@ $(TARGETS)
167
168install 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
203