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