Rev 2 | Blame | Compare with Previous | Last modification | View Log | RSS feed
# Copyright (C) 1995-2004 artofcode LLC. All rights reserved.
#
# This software is provided AS-IS with no warranty, either express or
# implied.
#
# This software is distributed under license and may not be copied,
# modified or distributed except as expressly authorized under the terms
# of the license contained in the file LICENSE in this distribution.
#
# For more information about licensing, please refer to
# http://www.ghostscript.com/licensing/. For information on
# commercial licensing, go to http://www.artifex.com/licensing/ or
# contact Artifex Software, Inc., 101 Lucas Valley Road #110,
# San Rafael, CA 94903, U.S.A., +1(415)492-9861.
# $Id: zlib.mak,v 1.10 2005/03/08 07:40:45 giles Exp $
# makefile for zlib library code.
# Users of this makefile must define the following:
# GSSRCDIR - the GS library source directory
# ZSRCDIR - the source directory
# ZGENDIR - the generated intermediate file directory
# ZOBJDIR - the object directory
# SHARE_ZLIB - 0 to compile zlib, 1 to share
# ZLIB_NAME - if SHARE_ZLIB=1, the name of the shared library
# This partial makefile compiles the zlib library for use in Ghostscript.
# You can get the source code for this library from:
# http://www.gzip.org/zlib/
# http://www.libpng.org/pub/png/src/
# zlib-#.#.#.tar.gz or zlib###.zip
# Please see Ghostscript's `Make.htm' file for instructions about how to
# unpack these archives.
#
# When each version of Ghostscript is released, we copy the associated
# version of the zlib library to
# ftp://ftp.cs.wisc.edu/ghost/3rdparty/
# for more convenient access.
#
# This makefile is known to work with zlib source version 1.2.1.
# It will only work with earlier versions (1.1.4) when SHARE_ZLIB=1.
# Note that there are obscure bugs in zlib versions before 1.1.3 that
# may cause the FlateDecode filter to produce an occasional ioerror
# and there is a serious security problem with 1.1.3: we strongly
# recommend using version 1.1.4 or later.
ZSRC=$(ZSRCDIR)$(D)
ZGEN=$(ZGENDIR)$(D)
ZOBJ=$(ZOBJDIR)$(D)
ZO_=$(O_)$(ZOBJ)
# We need D_, _D_, and _D because the OpenVMS compiler uses different
# syntax from other compilers.
# ZI_ and ZF_ are defined in gs.mak.
ZCCFLAGS=$(I_)$(ZI_)$(_I) $(ZF_) $(D_)verbose$(_D_)-1$(_D)
ZCC=$(CC_) $(ZCCFLAGS)
# Define the name of this makefile.
ZLIB_MAK=$(GLSRC)zlib.mak
z.clean : z.config-clean z.clean-not-config-clean
### WRONG. MUST DELETE OBJ AND GEN FILES SELECTIVELY.
z.clean-not-config-clean :
$(RM_) $(ZOBJ)*.$(OBJ)
z.config-clean :
$(RMN_) $(ZGEN)zlib*.dev $(ZGEN)crc32*.dev
ZDEP=$(AK)
# Code common to compression and decompression.
zlibc_=$(ZOBJ)zutil.$(OBJ)
$(ZGEN)zlibc.dev : $(ZLIB_MAK) $(ECHOGS_XE) $(zlibc_)
$(SETMOD) $(ZGEN)zlibc $(zlibc_)
$(ZOBJ)zutil.$(OBJ) : $(ZSRC)zutil.c $(ZDEP)
$(ZCC) $(ZO_)zutil.$(OBJ) $(C_) $(ZSRC)zutil.c
# Encoding (compression) code.
$(ZGEN)zlibe.dev : $(TOP_MAKEFILES) $(ZGEN)zlibe_$(SHARE_ZLIB).dev
$(CP_) $(ZGEN)zlibe_$(SHARE_ZLIB).dev $(ZGEN)zlibe.dev
$(ZGEN)zlibe_1.dev : $(TOP_MAKEFILES) $(ZLIB_MAK) $(ECHOGS_XE)
$(SETMOD) $(ZGEN)zlibe_1 -lib $(ZLIB_NAME)
zlibe_=$(ZOBJ)adler32.$(OBJ) $(ZOBJ)deflate.$(OBJ) \
$(ZOBJ)compress.$(OBJ) $(ZOBJ)trees.$(OBJ) $(ZOBJ)crc32.$(OBJ)
$(ZGEN)zlibe_0.dev : $(ZLIB_MAK) $(ECHOGS_XE) $(ZGEN)zlibc.dev $(zlibe_)
$(SETMOD) $(ZGEN)zlibe_0 $(zlibe_)
$(ADDMOD) $(ZGEN)zlibe_0 -include $(ZGEN)zlibc.dev
$(ZOBJ)adler32.$(OBJ) : $(ZSRC)adler32.c $(ZDEP)
$(ZCC) $(ZO_)adler32.$(OBJ) $(C_) $(ZSRC)adler32.c
$(ZOBJ)deflate.$(OBJ) : $(ZSRC)deflate.c $(ZDEP)
$(ZCC) $(ZO_)deflate.$(OBJ) $(C_) $(ZSRC)deflate.c
# new file in zlib 1.2.x
$(ZOBJ)compress.$(OBJ) : $(ZSRC)compress.c $(ZDEP)
$(ZCC) $(ZO_)compress.$(OBJ) $(C_) $(ZSRC)compress.c
$(ZOBJ)trees.$(OBJ) : $(ZSRC)trees.c $(ZDEP)
$(ZCC) $(ZO_)trees.$(OBJ) $(C_) $(ZSRC)trees.c
# The zlib filters per se don't need crc32, but libpng versions starting
# with 0.90 do.
$(ZGEN)crc32.dev : $(TOP_MAKEFILES) $(ZGEN)crc32_$(SHARE_ZLIB).dev
$(CP_) $(ZGEN)crc32_$(SHARE_ZLIB).dev $(ZGEN)crc32.dev
$(ZGEN)crc32_1.dev : $(TOP_MAKEFILES) $(ZLIB_MAK) $(ECHOGS_XE)
$(SETMOD) $(ZGEN)crc32_1 -lib $(ZLIB_NAME)
$(ZGEN)crc32_0.dev : $(ZLIB_MAK) $(ECHOGS_XE) $(ZOBJ)crc32.$(OBJ)
$(SETMOD) $(ZGEN)crc32_0 $(ZOBJ)crc32.$(OBJ)
# We have to compile crc32 without warnings, because it defines 32-bit
# constants that produces gcc warnings with -Wtraditional.
$(ZOBJ)crc32.$(OBJ) : $(ZSRC)crc32.c $(ZDEP)
$(CC_NO_WARN) $(ZCCFLAGS) $(ZO_)crc32.$(OBJ) $(C_) $(ZSRC)crc32.c
# Decoding (decompression) code.
$(ZGEN)zlibd.dev : $(TOP_MAKEFILES) $(ZGEN)zlibd_$(SHARE_ZLIB).dev
$(CP_) $(ZGEN)zlibd_$(SHARE_ZLIB).dev $(ZGEN)zlibd.dev
$(ZGEN)zlibd_1.dev : $(TOP_MAKEFILES) $(ZLIB_MAK) $(ECHOGS_XE)
$(SETMOD) $(ZGEN)zlibd_1 -lib $(ZLIB_NAME)
# zlibd[12]_ list the decompression source files for zlib 1.4.x
zlibd1_=$(ZOBJ)infblock.$(OBJ) $(ZOBJ)infcodes.$(OBJ) $(ZOBJ)inffast.$(OBJ)
zlibd2_=$(ZOBJ)inflate.$(OBJ) $(ZOBJ)inftrees.$(OBJ) $(ZOBJ)infutil.$(OBJ) $(ZOBJ)crc32.$(OBJ)
# shorter list of files for zlib 1.2.x
zlibd_=$(ZOBJ)inffast.$(OBJ) $(ZOBJ)inflate.$(OBJ) $(ZOBJ)inftrees.$(OBJ) $(ZOBJ)uncompr.$(OBJ)
$(ZGEN)zlibd_0.dev : $(ZLIB_MAK) $(ECHOGS_XE) $(ZGEN)zlibc.dev $(zlibd_)
$(SETMOD) $(ZGEN)zlibd_0 $(zlibd_)
$(ADDMOD) $(ZGEN)zlibd_0 -include $(ZGEN)zlibc.dev
$(ZOBJ)infblock.$(OBJ) : $(ZSRC)infblock.c $(ZDEP)
$(ZCC) $(ZO_)infblock.$(OBJ) $(C_) $(ZSRC)infblock.c
$(ZOBJ)infcodes.$(OBJ) : $(ZSRC)infcodes.c $(ZDEP)
$(ZCC) $(ZO_)infcodes.$(OBJ) $(C_) $(ZSRC)infcodes.c
$(ZOBJ)inffast.$(OBJ) : $(ZSRC)inffast.c $(ZDEP)
$(ZCC) $(ZO_)inffast.$(OBJ) $(C_) $(ZSRC)inffast.c
$(ZOBJ)inflate.$(OBJ) : $(ZSRC)inflate.c $(ZDEP)
$(ZCC) $(ZO_)inflate.$(OBJ) $(C_) $(ZSRC)inflate.c
$(ZOBJ)inftrees.$(OBJ) : $(ZSRC)inftrees.c $(ZDEP)
$(ZCC) $(ZO_)inftrees.$(OBJ) $(C_) $(ZSRC)inftrees.c
$(ZOBJ)infutil.$(OBJ) : $(ZSRC)infutil.c $(ZDEP)
$(ZCC) $(ZO_)infutil.$(OBJ) $(C_) $(ZSRC)infutil.c
# new file in zlib 1.2.x
$(ZOBJ)uncompr.$(OBJ) : $(ZSRC)uncompr.c $(ZDEP)
$(ZCC) $(ZO_)uncompr.$(OBJ) $(C_) $(ZSRC)uncompr.c