1
# Copyright (C) 2001-2006 Artifex Software, Inc.
4
# This software is provided AS-IS with no warranty, either express or
7
# This software is distributed under license and may not be copied, modified
8
# or distributed except as expressly authorized under the terms of that
9
# license. Refer to licensing information at http://www.artifex.com/
10
# or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
11
# San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
13
# $Id: zlib.mak 8022 2007-06-05 22:23:38Z giles $
14
# makefile for zlib library code.
15
# Users of this makefile must define the following:
16
# GSSRCDIR - the GS library source directory
17
# ZSRCDIR - the source directory
18
# ZGENDIR - the generated intermediate file directory
19
# ZOBJDIR - the object directory
20
# SHARE_ZLIB - 0 to compile zlib, 1 to share
21
# ZLIB_NAME - if SHARE_ZLIB=1, the name of the shared library
23
# This partial makefile compiles the zlib library for use in Ghostscript.
24
# You can get the source code for this library from:
25
# http://www.gzip.org/zlib/
26
# http://www.libpng.org/pub/png/src/
27
# zlib-#.#.#.tar.gz or zlib###.zip
28
# Please see Ghostscript's `Make.htm' file for instructions about how to
29
# unpack these archives.
31
# When each version of Ghostscript is released, we copy the associated
32
# version of the zlib library to
33
# ftp://ftp.cs.wisc.edu/ghost/3rdparty/
34
# for more convenient access.
36
# This makefile is known to work with zlib source version 1.2.1.
37
# It will only work with earlier versions (1.1.4) when SHARE_ZLIB=1.
38
# Note that there are obscure bugs in zlib versions before 1.1.3 that
39
# may cause the FlateDecode filter to produce an occasional ioerror
40
# and there is a serious security problem with 1.1.3: we strongly
41
# recommend using version 1.1.4 or later.
48
# We need D_, _D_, and _D because the OpenVMS compiler uses different
49
# syntax from other compilers.
50
# ZI_ and ZF_ are defined in gs.mak.
51
ZCCFLAGS=$(I_)$(ZI_)$(_I) $(ZF_) $(D_)verbose$(_D_)-1$(_D)
52
ZCC=$(CC_) $(ZCCFLAGS)
54
# Define the name of this makefile.
55
ZLIB_MAK=$(GLSRC)zlib.mak
57
z.clean : z.config-clean z.clean-not-config-clean
59
### WRONG. MUST DELETE OBJ AND GEN FILES SELECTIVELY.
60
z.clean-not-config-clean :
61
$(RM_) $(ZOBJ)*.$(OBJ)
64
$(RMN_) $(ZGEN)zlib*.dev $(ZGEN)crc32*.dev
68
# Code common to compression and decompression.
70
zlibc_=$(ZOBJ)zutil.$(OBJ)
71
$(ZGEN)zlibc.dev : $(ZLIB_MAK) $(ECHOGS_XE) $(zlibc_)
72
$(SETMOD) $(ZGEN)zlibc $(zlibc_)
74
$(ZOBJ)zutil.$(OBJ) : $(ZSRC)zutil.c $(ZDEP)
75
$(ZCC) $(ZO_)zutil.$(OBJ) $(C_) $(ZSRC)zutil.c
77
# Encoding (compression) code.
79
$(ZGEN)zlibe.dev : $(TOP_MAKEFILES) $(ZGEN)zlibe_$(SHARE_ZLIB).dev
80
$(CP_) $(ZGEN)zlibe_$(SHARE_ZLIB).dev $(ZGEN)zlibe.dev
82
$(ZGEN)zlibe_1.dev : $(TOP_MAKEFILES) $(ZLIB_MAK) $(ECHOGS_XE)
83
$(SETMOD) $(ZGEN)zlibe_1 -lib $(ZLIB_NAME)
85
zlibe_=$(ZOBJ)adler32.$(OBJ) $(ZOBJ)deflate.$(OBJ) \
86
$(ZOBJ)compress.$(OBJ) $(ZOBJ)trees.$(OBJ) $(ZOBJ)crc32.$(OBJ)
87
$(ZGEN)zlibe_0.dev : $(ZLIB_MAK) $(ECHOGS_XE) $(ZGEN)zlibc.dev $(zlibe_)
88
$(SETMOD) $(ZGEN)zlibe_0 $(zlibe_)
89
$(ADDMOD) $(ZGEN)zlibe_0 -include $(ZGEN)zlibc.dev
91
$(ZOBJ)adler32.$(OBJ) : $(ZSRC)adler32.c $(ZDEP)
92
$(ZCC) $(ZO_)adler32.$(OBJ) $(C_) $(ZSRC)adler32.c
94
$(ZOBJ)deflate.$(OBJ) : $(ZSRC)deflate.c $(ZDEP)
95
$(ZCC) $(ZO_)deflate.$(OBJ) $(C_) $(ZSRC)deflate.c
97
# new file in zlib 1.2.x
98
$(ZOBJ)compress.$(OBJ) : $(ZSRC)compress.c $(ZDEP)
99
$(ZCC) $(ZO_)compress.$(OBJ) $(C_) $(ZSRC)compress.c
101
$(ZOBJ)trees.$(OBJ) : $(ZSRC)trees.c $(ZDEP)
102
$(ZCC) $(ZO_)trees.$(OBJ) $(C_) $(ZSRC)trees.c
104
# The zlib filters per se don't need crc32, but libpng versions starting
107
$(ZGEN)crc32.dev : $(TOP_MAKEFILES) $(ZGEN)crc32_$(SHARE_ZLIB).dev
108
$(CP_) $(ZGEN)crc32_$(SHARE_ZLIB).dev $(ZGEN)crc32.dev
110
$(ZGEN)crc32_1.dev : $(TOP_MAKEFILES) $(ZLIB_MAK) $(ECHOGS_XE)
111
$(SETMOD) $(ZGEN)crc32_1 -lib $(ZLIB_NAME)
113
$(ZGEN)crc32_0.dev : $(ZLIB_MAK) $(ECHOGS_XE) $(ZOBJ)crc32.$(OBJ)
114
$(SETMOD) $(ZGEN)crc32_0 $(ZOBJ)crc32.$(OBJ)
116
# We have to compile crc32 without warnings, because it defines 32-bit
117
# constants that produces gcc warnings with -Wtraditional.
118
$(ZOBJ)crc32.$(OBJ) : $(ZSRC)crc32.c $(ZDEP)
119
$(CC_NO_WARN) $(ZCCFLAGS) $(ZO_)crc32.$(OBJ) $(C_) $(ZSRC)crc32.c
121
# Decoding (decompression) code.
123
$(ZGEN)zlibd.dev : $(TOP_MAKEFILES) $(ZGEN)zlibd_$(SHARE_ZLIB).dev
124
$(CP_) $(ZGEN)zlibd_$(SHARE_ZLIB).dev $(ZGEN)zlibd.dev
126
$(ZGEN)zlibd_1.dev : $(TOP_MAKEFILES) $(ZLIB_MAK) $(ECHOGS_XE)
127
$(SETMOD) $(ZGEN)zlibd_1 -lib $(ZLIB_NAME)
129
# zlibd[12]_ list the decompression source files for zlib 1.4.x
130
zlibd1_=$(ZOBJ)infblock.$(OBJ) $(ZOBJ)infcodes.$(OBJ) $(ZOBJ)inffast.$(OBJ)
131
zlibd2_=$(ZOBJ)inflate.$(OBJ) $(ZOBJ)inftrees.$(OBJ) $(ZOBJ)infutil.$(OBJ) $(ZOBJ)crc32.$(OBJ)
133
# shorter list of files for zlib 1.2.x
134
zlibd_=$(ZOBJ)inffast.$(OBJ) $(ZOBJ)inflate.$(OBJ) $(ZOBJ)inftrees.$(OBJ) $(ZOBJ)uncompr.$(OBJ)
137
$(ZGEN)zlibd_0.dev : $(ZLIB_MAK) $(ECHOGS_XE) $(ZGEN)zlibc.dev $(zlibd_)
138
$(SETMOD) $(ZGEN)zlibd_0 $(zlibd_)
139
$(ADDMOD) $(ZGEN)zlibd_0 -include $(ZGEN)zlibc.dev
141
$(ZOBJ)infblock.$(OBJ) : $(ZSRC)infblock.c $(ZDEP)
142
$(ZCC) $(ZO_)infblock.$(OBJ) $(C_) $(ZSRC)infblock.c
144
$(ZOBJ)infcodes.$(OBJ) : $(ZSRC)infcodes.c $(ZDEP)
145
$(ZCC) $(ZO_)infcodes.$(OBJ) $(C_) $(ZSRC)infcodes.c
147
$(ZOBJ)inffast.$(OBJ) : $(ZSRC)inffast.c $(ZDEP)
148
$(ZCC) $(ZO_)inffast.$(OBJ) $(C_) $(ZSRC)inffast.c
150
$(ZOBJ)inflate.$(OBJ) : $(ZSRC)inflate.c $(ZDEP)
151
$(ZCC) $(ZO_)inflate.$(OBJ) $(C_) $(ZSRC)inflate.c
153
$(ZOBJ)inftrees.$(OBJ) : $(ZSRC)inftrees.c $(ZDEP)
154
$(ZCC) $(ZO_)inftrees.$(OBJ) $(C_) $(ZSRC)inftrees.c
156
$(ZOBJ)infutil.$(OBJ) : $(ZSRC)infutil.c $(ZDEP)
157
$(ZCC) $(ZO_)infutil.$(OBJ) $(C_) $(ZSRC)infutil.c
159
# new file in zlib 1.2.x
160
$(ZOBJ)uncompr.$(OBJ) : $(ZSRC)uncompr.c $(ZDEP)
161
$(ZCC) $(ZO_)uncompr.$(OBJ) $(C_) $(ZSRC)uncompr.c