blob: c40f5791a224c2991e31058f0735f022dbbe497f [file] [log] [blame]
# Copyright (C) 1989, 1990 Aladdin Enterprises. All rights reserved.
# Distributed by Free Software Foundation, Inc.
#
# This file is part of Ghostscript.
#
# Ghostscript is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY. No author or distributor accepts responsibility
# to anyone for the consequences of using it or for whether it serves any
# particular purpose or works at all, unless he says so in writing. Refer
# to the Ghostscript General Public License for full details.
#
# Everyone is granted permission to copy, modify and redistribute
# Ghostscript, but only under the conditions described in the Ghostscript
# General Public License. A copy of this license is supposed to have been
# given to you along with Ghostscript so you can know your rights and
# responsibilities. It should be in a file named COPYING. Among other
# things, the copyright notice and this notice must be preserved on all
# copies.
# makefile for Ghostscript, Unix/gcc/X11 configuration.
# ------------------------------- Options ------------------------------- #
####### The following are the only parts of the file you should need to edit.
# ------ Generic options ------ #
# Define the default directory/ies for the runtime
# initialization and font files. Separate multiple directories with a :.
# `pwd` means use the directory in which the 'make' is being done.
GS_LIB_DEFAULT=`pwd`:`pwd`/fonts
# Choose generic configuration options.
# -DDEBUG
# includes debugging features (-Z switch) in the code.
# Code runs substantially slower even if no debugging switches
# are set.
# -DNOPRIVATE
# makes private (static) procedures and variables public,
# so they are visible to the debugger and profiler.
# No execution time or space penalty.
GENOPT=
# ------ Platform-specific options ------ #
all: realall
# Define the name of the C compiler.
#CC=gcc
# Define the other compilation flags.
# Add -DBSD4_2 for 4.2bsd systems.
# Add -DUSG (GNU convention) or -DSYSV for System V.
# We don't include -ansi, because this gets in the way of the platform-
# specific stuff that <math.h> typically needs.
CFLAGS= $(OTHERCFLAGS) -I/usr/local/X.V11R5/include
# Define platform flags for ld.
# Most Unix systems accept -X, but some don't.
# Sun OS4.n needs -Bstatic.
LDPLAT=-X
# Define any extra libraries to link into the executable.
# The default is for X Windows.
#EXTRALIBS= -lX11
EXTRALIBS= -L/usr/local/X.V11R5/lib -lX11
# Define the installation commands and target directories for
# executables and files. Only relevant to `make install'. If you don't
# have GNU install (part of the fileutils distribution), use cp.
proginstall = install -m 775
fileinstall = install -m 664
bindir = /usr/local/gnu/bin
libdir = /usr/local/gnu/lib/ghostscript
# --------------------------- Choice of devices --------------------------- #
# Choose the device(s) to include. See gdevs.mak for details.
DEVICES=x11
#DEVICES=deskjet
DEVICE_OBJS=$(x11_)
#DEVICE_OBJS=$(deskjet_)
# ---------------------------- End of options --------------------------- #
# Define the name of the makefile -- used in dependencies.
MAKEFILE=unix-gcc.mak
# Define the extensions for the object and executable files.
OBJ=o
XE=
# Define the ANSI-to-K&R dependency. (gcc accepts ANSI syntax.)
AK=
# Define the directory separator and shell quote string.
DS=/
Q=\"
# Define the compilation rules.
CCFLAGS=$(GENOPT) $(CFLAGS)
#.c.o:
# $(CC) $(CCFLAGS<) -c $*.c
CCA=$(CC) $(CCFLAGS) -c
CCNA=$(CCA)
CCINT=$(CCA)
# --------------------------- Generic makefile ---------------------------- #
# The remainder of the makefile (ghost.mak, gdevs.mak, and unixtail.mak)
# is generic. tar_gs concatenates all these together.
# Copyright (C) 1989, 1990, 1991 Aladdin Enterprises. All rights reserved.
# Distributed by Free Software Foundation, Inc.
#
# This file is part of Ghostscript.
#
# Ghostscript is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY. No author or distributor accepts responsibility
# to anyone for the consequences of using it or for whether it serves any
# particular purpose or works at all, unless he says so in writing. Refer
# to the Ghostscript General Public License for full details.
#
# Everyone is granted permission to copy, modify and redistribute
# Ghostscript, but only under the conditions described in the Ghostscript
# General Public License. A copy of this license is supposed to have been
# given to you along with Ghostscript so you can know your rights and
# responsibilities. It should be in a file named COPYING. Among other
# things, the copyright notice and this notice must be preserved on all
# copies.
# Generic makefile for Ghostscript.
# The platform-specific makefiles 'include' this file.
# They define the following symbols:
# GS_LIB_DEFAULT - the default directory/ies for searching for the
# initialization and font files at run time.
# Q - the string that causes the shell to pass a " to a program
# (" on MS-DOS, \" on Unix).
# XE - the extension for executable files (e.g., null or .exe).
# OBJ - the extension for relocatable object files (e.g., o or obj).
# CCA - the ANSI C invocation for normal compilation.
# CCNA - the non-ANSI C invocation for files that on some platforms
# include in-line assembly code or other non-standard
# constructs. Currently this is needed on every file that
# includes sstorei.h, and a few files that use Turbo C
# "short pointer" constructs.
# CCINT - the C invocation for compiling the main interpreter module,
# normally the same as CCNA: this is needed because the
# Borland compiler generates *worse* code for this module
# (but only this module) when optimization (-O) is turned on.
# AK - if source files must be converted from ANSI to K&R syntax,
# this is ansi2knr$(XE); if not, it is null.
# DS - the directory separator (/ or \).
# The platform-specific makefiles must also include rules for creating
# ansi2knr$(XE) and genarch$(XE) from the corresponding .c files,
# and for making arch.h by executing genarch$(XE). (This
# shouldn't really be necessary, but Turbo C and Unix C treat the -o
# switch slightly differently (Turbo C requires no following space,
# Unix C requires a following space), and I haven't found a way to capture
# the difference in a macro; also, Unix requires ./ because . may not be
# in the search path, whereas MS-DOS always looks in the current
# directory first.)
default: gs$(XE)
test: gt$(XE)
clean:
rm -f *.$(OBJ) *.a core gmon.out
rm -f *.dev gdevs.h gdevs.tl
rm -f t _temp_* _temp_*.* libc*.tl *.map *.sym
rm -f ansi2knr$(XE) genarch$(XE) arch.h gs$(XE)
# Note: Unix uses malloc.h and memory.h;
# Turbo C uses alloc.h, stdlib.h, and mem.h.
# 4.2bsd uses strings.h; other systems use string.h.
# gcc on VMS doesn't have a math.h.
# We handle this by using local include files called
# malloc_.h, math_.h, memory_.h, and string_.h
# that perform appropriate indirection.
# Auxiliary programs
arch.h: genarch$(XE)
.$(DS)genarch
# -------------------------------- Library -------------------------------- #
GX=$(AK) std.h gx.h
GXERR=$(GX) gserrors.h
###### High-level facilities
gschar.$(OBJ): gschar.c $(GXERR) \
gxfixed.h gxarith.h gxmatrix.h gzdevice.h gxdevmem.h gxfont.h gxchar.h gstype1.h gzpath.h gzcolor.h gzstate.h
gscolor.$(OBJ): gscolor.c $(GXERR) \
gxfixed.h gxmatrix.h gxdevice.h gzstate.h gzcolor.h gzht.h
gscoord.$(OBJ): gscoord.c $(GXERR) \
gxfixed.h gxmatrix.h gzdevice.h gzstate.h gscoord.h
gsdevice.$(OBJ): gsdevice.c $(GXERR) \
gxfixed.h gxmatrix.h gxbitmap.h gxdevmem.h gzstate.h gzdevice.h
gsfile.$(OBJ): gsfile.c $(GXERR) \
gsmatrix.h gxdevice.h gxdevmem.h
gsfont.$(OBJ): gsfont.c $(GXERR) \
gxdevice.h gxfixed.h gxmatrix.h gxfont.h gxfdir.h gzstate.h
gsimage.$(OBJ): gsimage.c $(GXERR) \
arch.h gxfixed.h gxarith.h gxmatrix.h gspaint.h gzcolor.h gzdevice.h gzpath.h gzstate.h gximage.h
gsim2out.$(OBJ): gsim2out.c $(GXERR) \
gsstate.h gsmatrix.h gscoord.h gxfixed.h gxtype1.h
gsline.$(OBJ): gsline.c $(GXERR) \
gxfixed.h gxmatrix.h gzstate.h gzline.h
gsmatrix.$(OBJ): gsmatrix.c $(GXERR) \
gxfixed.h gxarith.h gxmatrix.h
gsmisc.$(OBJ): gsmisc.c $(GX)
gspaint.$(OBJ): gspaint.c $(GX) \
gxfixed.h gxmatrix.h gspaint.h gzpath.h gzstate.h gzdevice.h gximage.h
gspath.$(OBJ): gspath.c $(GXERR) \
gxfixed.h gxmatrix.h gxpath.h gzstate.h
gspath2.$(OBJ): gspath2.c $(GXERR) \
gspath.h gxfixed.h gxmatrix.h gzstate.h gzpath.h gzdevice.h
gsstate.$(OBJ): gsstate.c $(GXERR) \
gxfixed.h gxmatrix.h gzstate.h gzcolor.h gzdevice.h gzht.h gzline.h gzpath.h
gstype1.$(OBJ): gstype1.c $(GXERR) \
gxarith.h gxfixed.h gxmatrix.h gxchar.h gxdevmem.h gxtype1.h gxfont1.h gzstate.h gzdevice.h gzpath.h
###### Low-level facilities
gxcache.$(OBJ): gxcache.c $(GX) \
gserrors.h gxfixed.h gxmatrix.h gspaint.h gzdevice.h gzcolor.h gxdevmem.h gxfont.h gxfdir.h gxchar.h gzstate.h gzpath.h
gxcolor.$(OBJ): gxcolor.c $(GX) \
gxfixed.h gxmatrix.h gxdevice.h gzcolor.h gzht.h
gxdither.$(OBJ): gxdither.c $(GX) \
gxfixed.h gxmatrix.h gzstate.h gzdevice.h gzcolor.h gzht.h
gxdraw.$(OBJ): gxdraw.c $(GX) \
gxfixed.h gxmatrix.h gxbitmap.h gzcolor.h gzdevice.h gzstate.h
gxfill.$(OBJ): gxfill.c $(GXERR) \
gxfixed.h gxmatrix.h gxdevice.h gzcolor.h gzpath.h gzstate.h
gxht.$(OBJ): gxht.c $(GXERR) \
gxfixed.h gxmatrix.h gxbitmap.h gzstate.h gzcolor.h gzdevice.h gzht.h
gxpath.$(OBJ): gxpath.c $(GXERR) \
gxfixed.h gzpath.h
gxpath2.$(OBJ): gxpath2.c $(GXERR) \
gxfixed.h gxarith.h gzpath.h
gxstroke.$(OBJ): gxstroke.c $(GXERR) \
gxfixed.h gxarith.h gxmatrix.h gzstate.h gzcolor.h gzdevice.h gzline.h gzpath.h
###### The "memory" device
gdevmem.$(OBJ): gdevmem.c $(AK) \
gs.h arch.h gxbitmap.h gsmatrix.h gxdevice.h gxdevmem.h
$(CCNA) gdevmem.c
###### Files dependent on the set of installed devices.
###### Generating gdevs.h also generates gdevs.tl.
gdevs.h: gdevs.mak $(MAKEFILE) makefile
.$(DS)gsconfig $(DEVICES)
gdevs.$(OBJ): gdevs.c $(AK) gdevs.h
###### On Unix, we pre-link all of the library except the back end.
###### On MS-DOS, we have to do the whole thing at once.
LIB=gschar.$(OBJ) gscolor.$(OBJ) gscoord.$(OBJ) gsdevice.$(OBJ) \
gsfile.$(OBJ) gsfont.$(OBJ) gsimage.$(OBJ) gsim2out.$(OBJ) \
gsline.$(OBJ) gsmatrix.$(OBJ) gsmisc.$(OBJ) \
gspaint.$(OBJ) gspath.$(OBJ) gspath2.$(OBJ) gsstate.$(OBJ) gstype1.$(OBJ) \
gxcache.$(OBJ) gxcolor.$(OBJ) gxdither.$(OBJ) gxdraw.$(OBJ) gxfill.$(OBJ) \
gxht.$(OBJ) gxpath.$(OBJ) gxpath2.$(OBJ) gxstroke.$(OBJ) \
gdevmem.$(OBJ) gdevs.$(OBJ)
# ------------------------------ Interpreter ------------------------------ #
###### Utilities
GH=$(AK) ghost.h
ialloc.$(OBJ): ialloc.c $(AK) std.h alloc.h
$(CCNA) ialloc.c
idebug.$(OBJ): idebug.c $(GH) name.h
idict.$(OBJ): idict.c $(GH) alloc.h errors.h name.h store.h dict.h
iinit.$(OBJ): iinit.c $(GH) dict.h oper.h store.h
iname.$(OBJ): iname.c $(GH) alloc.h errors.h name.h store.h
iscan.$(OBJ): iscan.c $(GH) arch.h alloc.h dict.h errors.h name.h store.h stream.h scanchar.h
iutil.$(OBJ): iutil.c $(GH) errors.h alloc.h oper.h store.h gsmatrix.h gxdevice.h gzcolor.h
stream.$(OBJ): stream.c $(AK) std.h stream.h scanchar.h gxfixed.h gstype1.h
###### Non-graphics operators
OP=$(GH) errors.h oper.h
zarith.$(OBJ): zarith.c $(OP) store.h
zarray.$(OBJ): zarray.c $(OP) alloc.h store.h sstorei.h
$(CCNA) zarray.c
zcontrol.$(OBJ): zcontrol.c $(OP) estack.h store.h sstorei.h
$(CCNA) zcontrol.c
zdict.$(OBJ): zdict.c $(OP) dict.h store.h
zfile.$(OBJ): zfile.c $(OP) alloc.h stream.h store.h gsmatrix.h gxdevice.h gxdevmem.h
zgeneric.$(OBJ): zgeneric.c $(OP) dict.h estack.h store.h
zmath.$(OBJ): zmath.c $(OP) store.h
zmisc.$(OBJ): zmisc.c $(OP) alloc.h dict.h store.h gstype1.h gxfixed.h
zpacked.$(OBJ): zpacked.c $(OP) store.h
zrelbit.$(OBJ): zrelbit.c $(OP) store.h sstorei.h dict.h
$(CCNA) zrelbit.c
zstack.$(OBJ): zstack.c $(OP) store.h sstorei.h
$(CCNA) zstack.c
zstring.$(OBJ): zstring.c $(OP) alloc.h store.h stream.h
ztype.$(OBJ): ztype.c $(OP) dict.h name.h stream.h store.h
zvmem.$(OBJ): zvmem.c $(OP) alloc.h state.h store.h gsmatrix.h gsstate.h
###### Graphics operators
zchar.$(OBJ): zchar.c $(OP) gxmatrix.h gschar.h gstype1.h gxdevice.h gxfixed.h gxfont.h gxfont1.h gzpath.h gzstate.h alloc.h dict.h font.h estack.h state.h store.h
zcolor.$(OBJ): zcolor.c $(OP) alloc.h gsmatrix.h gsstate.h state.h store.h
zdevice.$(OBJ): zdevice.c $(OP) alloc.h state.h gsmatrix.h gsstate.h gxdevice.h store.h
zfont.$(OBJ): zfont.c $(OP) gsmatrix.h gxdevice.h gxfont.h gxfont1.h alloc.h font.h dict.h name.h state.h store.h
zgstate.$(OBJ): zgstate.c $(OP) alloc.h gsmatrix.h gsstate.h state.h store.h
zht.$(OBJ): zht.c $(OP) alloc.h estack.h gsmatrix.h gsstate.h state.h store.h
zmatrix.$(OBJ): zmatrix.c $(OP) gsmatrix.h state.h gscoord.h store.h
zpaint.$(OBJ): zpaint.c $(OP) alloc.h estack.h gsmatrix.h gspaint.h state.h store.h
zpath.$(OBJ): zpath.c $(OP) gsmatrix.h gspath.h state.h store.h
zpath2.$(OBJ): zpath2.c $(OP) alloc.h estack.h gspath.h state.h store.h
###### Linking
INT=ialloc.$(OBJ) idebug.$(OBJ) idict.$(OBJ) iinit.$(OBJ) iname.$(OBJ) \
interp.$(OBJ) iscan.$(OBJ) iutil.$(OBJ) stream.$(OBJ) \
zarith.$(OBJ) zarray.$(OBJ) zcontrol.$(OBJ) zdict.$(OBJ) zfile.$(OBJ) \
zgeneric.$(OBJ) zmath.$(OBJ) zmisc.$(OBJ) zpacked.$(OBJ) zrelbit.$(OBJ) \
zstack.$(OBJ) zstring.$(OBJ) ztype.$(OBJ) zvmem.$(OBJ) \
zchar.$(OBJ) zcolor.$(OBJ) zfont.$(OBJ) zdevice.$(OBJ) zgstate.$(OBJ) \
zht.$(OBJ) zmatrix.$(OBJ) zpaint.$(OBJ) zpath.$(OBJ) zpath2.$(OBJ)
# ----------------------------- Main program ------------------------------ #
# Utilities shared between platforms
gsmain.$(OBJ): gsmain.c $(GX) \
gsmatrix.h gxdevice.h
# Library test program driver
gt.$(OBJ): gt.c $(GX) \
gsmatrix.h gsstate.h gscoord.h gspaint.h gspath.h gxdevice.h
# Interpreter main program
interp.$(OBJ): interp.c $(GH) \
errors.h name.h dict.h oper.h store.h sstorei.h stream.h
$(CCINT) interp.c
gs.$(OBJ): gs.c $(GH) alloc.h store.h stream.h $(MAKEFILE)
$(CCA) -DGS_LIB_DEFAULT=$(Q)$(GS_LIB_DEFAULT)$(Q) gs.c
# Copyright (C) 1989, 1990, 1991 Aladdin Enterprises. All rights reserved.
# Distributed by Free Software Foundation, Inc.
#
# This file is part of Ghostscript.
#
# Ghostscript is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY. No author or distributor accepts responsibility
# to anyone for the consequences of using it or for whether it serves any
# particular purpose or works at all, unless he says so in writing. Refer
# to the Ghostscript General Public License for full details.
#
# Everyone is granted permission to copy, modify and redistribute
# Ghostscript, but only under the conditions described in the Ghostscript
# General Public License. A copy of this license is supposed to have been
# given to you along with Ghostscript so you can know your rights and
# responsibilities. It should be in a file named COPYING. Among other
# things, the copyright notice and this notice must be preserved on all
# copies.
# makefile for Ghostscript device drivers.
# -------------------------------- Catalog ------------------------------- #
# It is possible to build Ghostscript with an arbitrary collection of
# device drivers, although many drivers are supported only on a subset
# of the target platforms. The currently available drivers are:
# Displays:
# bgi Borland Graphics Interface [MS-DOS only]
# ega EGA display [MS-DOS only]
# ega_bios EGA display using BIOS calls (very slow) [MS-DOS only]
# mdb10 EIZO MDB-10 display (1024 x 768) [MS-DOS only]
# sonyfb Sony Microsystems monochrome display [Sony only]
# sunview SunView window system [SunOS only]
# vga VGA display [MS-DOS only]
# x11 X Windows version 11, release >=3 [Unix only]
# (NOTE: no more than one MS-DOS display driver may be included in
# any build.)
# Printers:
# bj10e Canon BubbleJet BJ10e [MS-DOS only]
# deskjet H-P DeskJet [MS-DOS & Unix]
# epson Epson dot matrix printers [MS-DOS only]
# laserjet H-P LaserJet [MS-DOS & Unix]
# nwp533 Sony Microsystems NWP533 laser printer [Sony only]
# ### paintjet H-P PaintJet color printer [Unix, tested on SunOS only]
# ### (NOT INCLUDED IN THIS RELEASE)
# If you add drivers, it would be nice if you kept each list
# in alphabetical order.
# Each platform-specific makefile should contain a pair of lines of the form
# DEVICES=<dev1> ... <devn>
# DEVICE_OBJS=$(<dev1>_) ... $(<devn>_)
# where dev1 ... devn are the devices to be included in the build.
# dev1 will be used as the default device. Don't forget the _s!
# On MS-DOS platforms, the first of these lines must appear *before*,
# and the second *after*, the lines
# (!)include gdevs.mak
# (!)include ghost.mak
# in the makefile. On Unix systems, the two device definition lines
# may appear anywhere in the makefile.
#
# The executable must be linked with all the files named in DEVICE_OBJS.
# On MS-DOS platforms, this is done by constructing a file called gdevs.tl,
# to get around the limit on the length of a DOS command line.
# ---------------------------- End of catalog ---------------------------- #
# If you want to add a new device driver, the examples below should be
# enough of a guide to the correct form for the makefile rules.
# All device drivers depend on the following
# (note that we include some indirect dependencies explicitly):
GDEV=$(AK) gs.h gx.h gsmatrix.h gxbitmap.h gxdevice.h
###### ------------------- MS-DOS display devices ------------------- ######
GDEVPCFB=gdevpcfb.h $(GDEV)
gdevegaa.$(OBJ): gdevegaa.asm
### -------------------------- The EGA device -------------------------- ###
ETEST=ega.$(OBJ) trace.$(OBJ) $(ega_)
ega.exe: $(ETEST) libc$(MM).tl
tlink /m /l $(LIBDIR)\c0$(MM) @ega.tl @libc$(MM).tl
ega.$(OBJ): ega.c $(GDEV)
ega_=gdevega.$(OBJ) gdevegaa.$(OBJ)
ega.dev: $(ega_)
.$(DS)gssetdev ega.dev $(ega_)
gdevega.$(OBJ): gdevpcfb.c gdevega.h $(GDEVPCFB)
cp gdevega.h gdevxxfb.h
$(CCNA) gdevpcfb.c
rm gdevxxfb.h
cp gdevpcfb.obj gdevega.obj
ega_bios_=gdevegab.$(OBJ) gdevegaa.$(OBJ)
ega_bios.dev: $(ega_bios_)
.$(DS)gssetdev ega_bios.dev $(ega_bios_)
gdevegab.$(OBJ): gdevegab.c $(GDEVPCFB)
$(CCNA) $(D_EGA) gdevegab.c
### -------------------------- The VGA device -------------------------- ###
vga_=gdevvga.$(OBJ) gdevegaa.$(OBJ)
vga.dev: $(vga_)
.$(DS)gssetdev vga.dev $(vga_)
gdevvga.$(OBJ): gdevpcfb.c gdevvga.h $(GDEVPCFB)
cp gdevvga.h gdevxxfb.h
$(CCNA) gdevpcfb.c
rm gdevxxfb.h
cp gdevpcfb.obj gdevvga.obj
### ---------------------- The EIZO MDB-10 device ---------------------- ###
mdb10_=gdevmd10.$(OBJ) gdevegaa.$(OBJ)
mdb10.dev: $(mdb10_)
.$(DS)gssetdev mdb10.dev $(mdb10_)
gdevmd10.$(OBJ): gdevpcfb.c gdevmd10.h $(GDEVPCFB)
cp gdevmd10.h gdevxxfb.h
$(CCNA) gdevpcfb.c
rm gdevxxfb.h
cp gdevpcfb.obj gdevmd10.obj
###### --------- The BGI (Borland Graphics Interface) device -------- ######
bgi_=gdevbgi.$(OBJ) egavga.$(OBJ)
bgi.dev: $(bgi_)
.$(DS)gssetdev bgi.dev $(bgi_)
gdevbgi.$(OBJ): gdevbgi.c $(GDEV)
$(CCNA) gdevbgi.c
egavga.$(OBJ): $(COMPDIR)\egavga.bgi
bgiobj egavga
###### --------------- Memory-buffered printer devices --------------- ######
gvirtmem.$(OBJ): gvirtmem.c gvirtmem.h
# Virtual memory test program -- requires VMDEBUG
gvm.exe: gvirtmem.$(OBJ) trace.$(OBJ)
tlink /m /l $(LIBDIR)\c0$(MM) gvirtmem trace,gvm,gvm,$(LIBDIR)\c$(MM)
PDEVH=$(GDEV) gxdevmem.h gvirtmem.h gdevprn.h
# We use CCNA only because the MS-DOS version of the driver
# refers to stdprn, which is non-ANSI.
gdevprn.$(OBJ): gdevprn.c $(PDEVH)
$(CCNA) gdevprn.c
### ----------------- The Canon BubbleJet BJ10e device ----------------- ###
bj10e_=gdevbj10.$(OBJ) gvirtmem.$(OBJ) gdevprn.$(OBJ)
bj10e.dev: $(bj10e_)
.$(DS)gssetdev bj10e.dev $(bj10e_)
gdevbj10.$(OBJ): gdevbj10.c $(PDEVH)
### ------------------ The H-P DeskJet printer device ------------------ ###
# Note that this shares code with the LaserJet device (below).
deskjet_=gdevdjet.$(OBJ) gvirtmem.$(OBJ) gdevprn.$(OBJ)
deskjet.dev: $(deskjet_)
.$(DS)gssetdev deskjet.dev $(deskjet_)
gdevdjet.$(OBJ): gdevdjet.c $(PDEVH)
$(CCA) -DLASER=0 gdevdjet.c
### ----------------- The generic Epson printer device ----------------- ###
epson_=gdevepsn.$(OBJ) gvirtmem.$(OBJ) gdevprn.$(OBJ)
epson.dev: $(epson_)
.$(DS)gssetdev epson.dev $(epson_)
gdevepsn.$(OBJ): gdevepsn.c $(PDEVH)
### ------------------ The H-P LaserJet printer device ----------------- ###
# Note that this shares code with the DeskJet device (above).
laserjet_=gdevljet.$(OBJ) gvirtmem.$(OBJ) gdevprn.$(OBJ)
laserjet.dev: $(laserjet_)
.$(DS)gssetdev laserjet.dev $(laserjet_)
gdevljet.$(OBJ): gdevdjet.c $(PDEVH)
cp gdevdjet.c gdevljet.c
$(CCA) -DLASER=1 gdevljet.c
rm gdevljet.c
### ------------ The H-P PaintJet color printer device ----------------- ###
### Note: this driver was contributed by users: ###
### please contact marc@vlsi.polymtl.ca if you have questions. ###
### This driver was not ready to be included in release 2.0.
### Do not attempt to use it: the files are not included in the fileset.
PJETH=$(GDEV) gdevprn.h gdevpjet.h
paintjet_=gdevpjet.$(OBJ)
paintjet.dev: $(paintjet_)
.$(DS)gssetdev paintjet.dev $(paintjet_)
gdevpjet.$(OBJ): gdevpjet.c $(PJETH)
###### ------------------ Sony frame buffer device ----------------- ######
sonyfb_=gdevsnfb.$(OBJ) gvirtmem.$(OBJ) gdevprn.$(OBJ)
sonyfb.dev: $(sonyfb_)
.$(DS)gssetdev sonyfb.dev $(sonyfb_)
gdevsnfb.$(OBJ): gdevsnfb.c $(PDEVH)
$(CCA) gdevsnfb.c
###### ----------------- Sony NWP533 printer device ----------------- ######
nwp533_=gdevn533.$(OBJ) gvirtmem.$(OBJ) gdevprn.$(OBJ)
nwp533.dev: $(nwp533_)
.$(DS)gssetdev nwp533.dev $(nwp533_)
gdevn533.$(OBJ): gdevn533.c $(PDEVH)
$(CCA) gdevn533.c
###### --------------------- The SunView device --------------------- ######
sunview_=gdevsun.$(OBJ)
sunview.dev: $(sunview_)
.$(DS)gssetdev sunview.dev $(sunview_)
gdevsun.$(OBJ): gdevsun.c $(GDEV)
###### ----------------------- The X11 device ----------------------- ######
x11_=gdevx.$(OBJ)
x11.dev: $(x11_)
.$(DS)gssetdev x11.dev $(x11_)
### Note: if the X11 client header libraries are not on /usr/include/X11,
### you may have to change the compilation line below to add a -I switch.
### For example, if the header files are in /usr/local/X/include/X11,
### you must add the switch -I/usr/local/X/include.
gdevx.$(OBJ): gdevx.c $(GDEV) gdevx.h
$(CCA) -I/usr/local/X.V11R5/include gdevx.c
# Copyright (C) 1990, 1991 Aladdin Enterprises. All rights reserved.
# Distributed by Free Software Foundation, Inc.
#
# This file is part of Ghostscript.
#
# Ghostscript is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY. No author or distributor accepts responsibility
# to anyone for the consequences of using it or for whether it serves any
# particular purpose or works at all, unless he says so in writing. Refer
# to the Ghostscript General Public License for full details.
#
# Everyone is granted permission to copy, modify and redistribute
# Ghostscript, but only under the conditions described in the Ghostscript
# General Public License. A copy of this license is supposed to have been
# given to you along with Ghostscript so you can know your rights and
# responsibilities. It should be in a file named COPYING. Among other
# things, the copyright notice and this notice must be preserved on all
# copies.
# Partial makefile for Ghostscript, common to all Unix configurations.
# This is the last part of the makefile for Unix configurations.
# Since Unix make doesn't have an 'include' facility, we concatenate
# the various parts of the makefile together by brute force (in tar_gs).
# -------------------------------- Library -------------------------------- #
## The Unix platform
PLATUNIX=gp_unix.$(OBJ)
gp_unix.$(OBJ): gp_unix.c
# -------------------------- Auxiliary programs --------------------------- #
ansi2knr$(XE):
$(CC) -o ansi2knr$(XE) $(CFLAGS) ansi2knr.c
genarch$(XE): genarch.c
$(CC) -o genarch$(XE) $(CFLAGS) genarch.c
# ----------------------------- Main program ------------------------------ #
# (Dummy) tracing package
utrace.$(OBJ): utrace.c cframe_.h
# Main program
ALLUNIX=gsmain.$(OBJ) utrace.$(OBJ) $(LIB) $(PLATUNIX) $(DEVICE_OBJS)
# Library test programs
GTUNIX=gt.$(OBJ) $(ALLUNIX)
gt: $(GTUNIX)
$(CC) $(CFLAGS) $(LDPLAT) -o gt $(GTUNIX) $(EXTRALIBS) -lm
# Interpreter main program
GSUNIX=gs.$(OBJ) $(INT) $(ALLUNIX)
BASETARGET = gs
APPCFLAGS = -DGS_LIB_DEFAULT=$(Q)$(GS_LIB_DEFAULT)$(Q)
OBJS = $(GSUNIX)
#
# This is the prototype makefile for building the memory-intensive
# applications and linking them with different malloc implementations.
#
SHELL=csh
C++=/srl/Gcc2/bin/g++
CC = gcc
OFILES = $(OBJS)
# possible values of CTYPE: simple (default)
ifeq ($(CTYPE),)
CTYPE=simple
CEXT=
endif
# possible values of ALLOC: decos (default), knuth, bsd, gnu,
# mmalloc, mmalloc4, mmalloc16, mmalloc8, mmalloc32
# gpp, cm, cminline, qf, cache, scache
# bwgc, bwgc2.0, bwgc2.1
## ff,rv
ifeq ($(ALLOC),)
ALLOC = decos
endif
# possible values of USEROPT: TRUE, FALSE
ifeq ($(USEROPT),)
USEROPT = FALSE
endif
# possible values of MEAS: NONE (default)
ifeq ($(MEAS),)
MEAS = NONE
endif
# need to add an object file if using the customalloc code
ifeq ($(ALLOC),cm)
OBJS := $(OBJS) customalloc.o
endif
ifeq ($(ALLOC),cm16)
OBJS := $(OBJS) customalloc16.o
endif
ifeq ($(ALLOC),cm32)
OBJS := $(OBJS) customalloc32.o
endif
ifeq ($(ALLOC),cm8)
OBJS := $(OBJS) customalloc8.o
endif
# need to add an object file if using the customalloc code
ifeq ($(ALLOC),cminline)
CFLAGS := -I. $(CFLAGS) -D__INCLUDE_CUSTOMALLOC_H__=\"customalloc.h\"
OBJS := $(OBJS) customalloc.o
else
#CFLAGS := $(CFLAGS) -D__INCLUDE_CUSTOMALLOC_H__=\<ctype.h\>
endif
#BASE = /homes/zorn/work/m
#ALLOCBASE = /homes/zorn/work/m/dmm/lib
BASE = /cs/research/gc/dec
ALLOCBASE = /cs/research/gc/dec/dmm/lib
MISCLIB = $(ALLOCBASE)/misc.a
CONSUMER_DIR = $(BASE)/apps/consumers
vpath %.c .:$(CONSUMER_DIR)
#BASEFLAGS = -g -O -Winline
BASEFLAGS = -g
ALLOCEXT = -decos
#REDEFINES = -Dcalloc=bZc -Dmalloc=bZa -Drealloc=bZr -Dfree=bZf
CMINLINEOBJS = $(OBJS:.o=-cmi.o)
%-cmi.o : %.c customalloc.h
$(CC) -DNOMEMOPT $(CFLAGS) -o $@ -c $<
NOOPTOBJS = $(OBJS:.o=-noopt.o)
%-noopt.o : %.c
$(CC) -DNOMEMOPT $(CFLAGS) -o $@ -c $<
%-noopt.o : %.cc
$(C++) -DNOMEMOPT $(CFLAGS) -o $@ -c $<
BWGCOBJS = $(OBJS:.o=-bwgc.o)
%-bwgc.o : %.c
$(CC) -DNOMEMOPT -DIGNOREFREE -DBWGC $(CFLAGS) -o $@ -c $<
# configuration for nomemopt compilation (now obsolete, instead use NOPT)
ifeq ($(USEROPT),FALSE)
OFILES = $(NOOPTOBJS)
USEROPTEXT =
endif
ifeq ($(USEROPT),TRUE)
OFILES = $(NOOPTOBJS)
USEROPTEXT = -uopt
endif
# configuration for GC assisted compilation
ifeq ($(USEROPT),BWGC)
OFILES = $(BWGCOBJS)
ARCHEXT = -bwgc.a
ALLOCEXT = -bwgc
ALLOCLIB =
endif
ifeq ($(MEAS),NONE)
MEASEXT =
endif
# possible allocators
ifeq ($(ALLOC),mmalloc)
ALLOCCFLAGS = $(REDEFINES)
ALLOCEXT = -$(ALLOC)
ALLOCLIB = $(ALLOCBASE)/$(ALLOC)$(MEASEXT).a
endif
ifeq ($(ALLOC),mmalloc4)
ALLOCCFLAGS = $(REDEFINES)
ALLOCEXT = -$(ALLOC)
ALLOCLIB = $(ALLOCBASE)/$(ALLOC)$(MEASEXT).a
endif
ifeq ($(ALLOC),mmalloc16)
ALLOCCFLAGS = $(REDEFINES)
ALLOCEXT = -$(ALLOC)
ALLOCLIB = $(ALLOCBASE)/$(ALLOC)$(MEASEXT).a
endif
ifeq ($(ALLOC),mmalloc32)
ALLOCCFLAGS = $(REDEFINES)
ALLOCEXT = -$(ALLOC)
ALLOCLIB = $(ALLOCBASE)/$(ALLOC)$(MEASEXT).a
endif
ifeq ($(ALLOC),mmalloc8)
ALLOCCFLAGS = $(REDEFINES)
ALLOCEXT = -$(ALLOC)
ALLOCLIB = $(ALLOCBASE)/$(ALLOC)$(MEASEXT).a
endif
ifeq ($(ALLOC),knuth)
ALLOCCFLAGS = $(REDEFINES)
ALLOCEXT = -$(ALLOC)
ALLOCLIB = $(ALLOCBASE)/$(ALLOC)$(MEASEXT).a
endif
ifeq ($(ALLOC),krv)
ALLOCCFLAGS = $(REDEFINES)
ALLOCEXT = -$(ALLOC)
ALLOCLIB = $(ALLOCBASE)/$(ALLOC)$(MEASEXT).a
endif
ifeq ($(ALLOC),bsd)
ALLOCCFLAGS = $(REDEFINES)
ALLOCEXT = -$(ALLOC)
ALLOCLIB = $(ALLOCBASE)/$(ALLOC)$(MEASEXT).a
endif
ifeq ($(ALLOC),gnu)
ALLOCCFLAGS = $(REDEFINES)
ALLOCEXT = -$(ALLOC)
ALLOCLIB = $(ALLOCBASE)/$(ALLOC)$(MEASEXT).a
endif
ifeq ($(ALLOC),bwgc2.0)
ALLOCCFLAGS = $(REDEFINES)
ALLOCEXT = -$(ALLOC)
ALLOCLIB = $(ALLOCBASE)/$(ALLOC)$(MEASEXT).a
endif
ifeq ($(ALLOC),bwgc)
ALLOCCFLAGS = $(REDEFINES)
ALLOCEXT = -$(ALLOC)
ALLOCLIB = $(ALLOCBASE)/$(ALLOC)$(MEASEXT).a
endif
ifeq ($(ALLOC),bwgc2.1)
ALLOCCFLAGS = $(REDEFINES)
ALLOCEXT = -$(ALLOC)
ALLOCLIB = $(ALLOCBASE)/$(ALLOC)$(MEASEXT).a
endif
ifeq ($(ALLOC),gpp)
ALLOCCFLAGS = $(REDEFINES)
ALLOCEXT = -$(ALLOC)
ALLOCLIB = $(ALLOCBASE)/$(ALLOC)$(MEASEXT).a
endif
ifeq ($(ALLOC),ff)
ALLOCCFLAGS = $(REDEFINES)
ALLOCEXT = -$(ALLOC)
ALLOCLIB = $(ALLOCBASE)/$(ALLOC)$(MEASEXT).a
endif
ifeq ($(ALLOC),rv)
ALLOCCFLAGS = $(REDEFINES)
ALLOCEXT = -$(ALLOC)
ALLOCLIB = $(ALLOCBASE)/$(ALLOC)$(MEASEXT).a
endif
ifeq ($(ALLOC),qf)
ALLOCCFLAGS = $(REDEFINES)
ALLOCEXT = -$(ALLOC)
ALLOCLIB = $(ALLOCBASE)/$(ALLOC)$(MEASEXT).a
endif
ifeq ($(ALLOC),qf32)
ALLOCCFLAGS = $(REDEFINES)
ALLOCEXT = -$(ALLOC)
ALLOCLIB = $(ALLOCBASE)/$(ALLOC)$(MEASEXT).a
endif
ifeq ($(ALLOC),qf32c)
ALLOCCFLAGS = $(REDEFINES)
ALLOCEXT = -$(ALLOC)
ALLOCLIB = $(ALLOCBASE)/$(ALLOC)$(MEASEXT).a
endif
ifeq ($(ALLOC),qfc)
ALLOCCFLAGS = $(REDEFINES)
ALLOCEXT = -$(ALLOC)
ALLOCLIB = $(ALLOCBASE)/$(ALLOC)$(MEASEXT).a
endif
ifeq ($(ALLOC),cache)
ALLOCCFLAGS = $(REDEFINES)
ALLOCEXT = -$(ALLOC)
ALLOCLIB = $(ALLOCBASE)/$(ALLOC)$(MEASEXT).a
endif
ifeq ($(ALLOC),scache)
ALLOCCFLAGS = $(REDEFINES)
ALLOCEXT = -$(ALLOC)
ALLOCLIB = $(ALLOCBASE)/$(ALLOC)$(MEASEXT).a
endif
ifeq ($(ALLOC),cm)
ALLOCCFLAGS = $(REDEFINES)
ALLOCEXT = -$(ALLOC)
ALLOCLIB =
endif
ifeq ($(ALLOC),cm16)
ALLOCCFLAGS = $(REDEFINES)
ALLOCEXT = -$(ALLOC)
ALLOCLIB =
endif
ifeq ($(ALLOC),cm32)
ALLOCCFLAGS = $(REDEFINES)
ALLOCEXT = -$(ALLOC)
ALLOCLIB =
endif
ifeq ($(ALLOC),cm8)
ALLOCCFLAGS = $(REDEFINES)
ALLOCEXT = -$(ALLOC)
ALLOCLIB =
endif
ifeq ($(ALLOC),cminline)
OFILES = $(CMINLINEOBJS)
ALLOCCFLAGS = $(REDEFINES)
ALLOCEXT = -$(ALLOC)
ALLOCLIB =
endif
TARGET := $(BASETARGET)$(ALLOCEXT)$(USEROPTEXT)$(MEASEXT).exe
realall: $(TARGET)
OTHERFLAGS = $(BASEFLAGS) $(MEASFLAGS) $(ALLOCFLAGS)
CFLAGS := $(CFLAGS) $(OTHERFLAGS) $(APPCFLAGS)
$(TARGET): $(OFILES) $(ALLOCLIB)
$(CC) $(CFLAGS) -o $(TARGET) $(OFILES) $(ALLOCLIB) $(MISCLIB) $(EXTRALIBS) -lm
oclean:
rm -f $(OBJS) $(NOOPTOBJS) $(BWGCOBJS)
xclean:
rm -f *.exe
customalloc16.c: CUSTOMDATA-16
customalloc -f CUSTOMDATA-16 -g -o customalloc16 >& CUSTOMALLOC-16-OUTPUT
customalloc8.c: CUSTOMDATA-8
customalloc -f CUSTOMDATA-8 -g -o customalloc8 >& CUSTOMALLOC-8-OUTPUT
customalloc32.c: CUSTOMDATA-32
customalloc -f CUSTOMDATA-32 -g -o customalloc32 >& CUSTOMALLOC-32-OUTPUT
QPT = $(HOME)/.dec-mips/bin/qpt
$(TARGET).qp: $(TARGET)
$(QPT) -t $^
ifeq ($(CTYPE),simple)
CONSUMER_OBJS = $(CONSUMER_DIR)/adtr.o
endif
CREATED_HDRS = qpt_forward_decls.h
CREATED_SRCS = $(wildcard $(TARGET)_sma*.c)
CREATED_OBJS = $(subst .c,.o, $(CREATED_SRCS))
CREATED_OTHERS = $(TARGET).Trace
$(TARGET).$(CEXT)cns: $(TARGET) $(CONSUMER_OBJS) $(CREATED_OBJS)
$(CC) -o $@ $(CONSUMER_OBJS) $(CREATED_OBJS)
# Installation
sysps = ghost.ps gfonts.ps statusd.ps
artps = chess.ps cheq.ps golfer.ps escher.ps
utilps = decrypt.ps bdftops.ps pstoppm.ps fcutils.ps prfont.ps
install:
$(proginstall) gs gsnd bdftops $(bindir)
$(fileinstall) $(sysps) $(artps) $(utilps) $(libdir)