]> git.saurik.com Git - wxWidgets.git/blame - src/zlib/zconf.h
include "ToolUtils.h" for LoWord and friends
[wxWidgets.git] / src / zlib / zconf.h
CommitLineData
c801d85f 1/* zconf.h -- configuration of the zlib compression library
a4019ec2 2 * Copyright (C) 1995-2002 Jean-loup Gailly.
e6ebb514 3 * For conditions of distribution and use, see copyright notice in zlib.h
c801d85f
KB
4 */
5
6/* @(#) $Id$ */
7
8#ifndef _ZCONF_H
9#define _ZCONF_H
10
11/*
12 * If you *really* need a unique prefix for all types and library functions,
13 * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
14 */
15#ifdef Z_PREFIX
16# define deflateInit_ z_deflateInit_
17# define deflate z_deflate
18# define deflateEnd z_deflateEnd
19# define inflateInit_ z_inflateInit_
20# define inflate z_inflate
21# define inflateEnd z_inflateEnd
22# define deflateInit2_ z_deflateInit2_
23# define deflateSetDictionary z_deflateSetDictionary
24# define deflateCopy z_deflateCopy
25# define deflateReset z_deflateReset
26# define deflateParams z_deflateParams
27# define inflateInit2_ z_inflateInit2_
28# define inflateSetDictionary z_inflateSetDictionary
29# define inflateSync z_inflateSync
30# define inflateSyncPoint z_inflateSyncPoint
31# define inflateReset z_inflateReset
32# define compress z_compress
33# define compress2 z_compress2
34# define uncompress z_uncompress
35# define adler32 z_adler32
36# define crc32 z_crc32
37# define get_crc_table z_get_crc_table
38
39# define Byte z_Byte
40# define uInt z_uInt
41# define uLong z_uLong
42# define Bytef z_Bytef
43# define charf z_charf
44# define intf z_intf
45# define uIntf z_uIntf
46# define uLongf z_uLongf
47# define voidpf z_voidpf
48# define voidp z_voidp
49#endif
50
51#if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32)
52# define WIN32
53#endif
e6ebb514 54#if defined(__GNUC__) || defined(WIN32) || defined(OS232) || defined(__386__) || defined(i386)
c801d85f
KB
55# ifndef __32BIT__
56# define __32BIT__
57# endif
58#endif
59#if defined(__MSDOS__) && !defined(MSDOS)
60# define MSDOS
61#endif
62
63/*
64 * Compile with -DMAXSEG_64K if the alloc function cannot allocate more
65 * than 64k bytes at a time (needed on systems with 16-bit int).
66 */
67#if defined(MSDOS) && !defined(__32BIT__)
68# define MAXSEG_64K
69#endif
70#ifdef MSDOS
71# define UNALIGNED_OK
72#endif
73
e6ebb514 74#if (defined(MSDOS) || defined(_WINDOWS) || defined(WIN32) || defined(OS232)) && !defined(STDC)
c801d85f
KB
75# define STDC
76#endif
77#if defined(__STDC__) || defined(__cplusplus) || defined(__OS2__)
78# ifndef STDC
79# define STDC
80# endif
81#endif
82
83#ifndef STDC
84# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */
85# define const
86# endif
87#endif
88
89/* Some Mac compilers merge all .h files incorrectly: */
90#if defined(__MWERKS__) || defined(applec) ||defined(THINK_C) ||defined(__SC__)
91# define NO_DUMMY_DECL
92#endif
93
a4019ec2
SC
94/* Old Borland C incorrectly complains about missing returns: */
95#if defined(__BORLANDC__) && (__BORLANDC__ < 0x500)
c801d85f
KB
96# define NEED_DUMMY_RETURN
97#endif
98
99
100/* Maximum value for memLevel in deflateInit2 */
101#ifndef MAX_MEM_LEVEL
102# ifdef MAXSEG_64K
103# define MAX_MEM_LEVEL 8
104# else
105# define MAX_MEM_LEVEL 9
106# endif
107#endif
108
109/* Maximum value for windowBits in deflateInit2 and inflateInit2.
110 * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files
111 * created by gzip. (Files created by minigzip can still be extracted by
112 * gzip.)
113 */
114#ifndef MAX_WBITS
115# define MAX_WBITS 15 /* 32K LZ77 window */
116#endif
117
118/* The memory requirements for deflate are (in bytes):
119 (1 << (windowBits+2)) + (1 << (memLevel+9))
120 that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values)
121 plus a few kilobytes for small objects. For example, if you want to reduce
122 the default memory requirements from 256K to 128K, compile with
123 make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
124 Of course this will generally degrade compression (there's no free lunch).
125
126 The memory requirements for inflate are (in bytes) 1 << windowBits
127 that is, 32K for windowBits=15 (default value) plus a few kilobytes
128 for small objects.
129*/
130
131 /* Type declarations */
132
133#ifndef OF /* function prototypes */
134# ifdef STDC
135# define OF(args) args
136# else
137# define OF(args) ()
138# endif
139#endif
140
141/* The following definitions for FAR are needed only for MSDOS mixed
142 * model programming (small or medium model with some far allocations).
143 * This was tested only with MSC; for other MSDOS compilers you may have
144 * to define NO_MEMCPY in zutil.h. If you don't need the mixed model,
145 * just define FAR to be empty.
146 */
147#if (defined(M_I86SM) || defined(M_I86MM)) && !defined(__32BIT__)
148 /* MSC small or medium model */
149# define SMALL_MEDIUM
150# ifdef _MSC_VER
a4019ec2 151# define FAR _far
c801d85f
KB
152# else
153# define FAR far
154# endif
155#endif
156#if defined(__BORLANDC__) && (defined(__SMALL__) || defined(__MEDIUM__))
157# ifndef __32BIT__
158# define SMALL_MEDIUM
a4019ec2 159# define FAR _far
c801d85f
KB
160# endif
161#endif
162
163/* Compile with -DZLIB_DLL for Windows DLL support */
a4019ec2
SC
164#if defined(ZLIB_DLL)
165# if defined(_WINDOWS) || defined(WINDOWS)
c801d85f
KB
166# ifdef FAR
167# undef FAR
168# endif
169# include <windows.h>
170# define ZEXPORT WINAPI
171# ifdef WIN32
172# define ZEXPORTVA WINAPIV
173# else
174# define ZEXPORTVA FAR _cdecl _export
175# endif
a4019ec2
SC
176# endif
177# if defined (__BORLANDC__)
178# if (__BORLANDC__ >= 0x0500) && defined (WIN32)
179# include <windows.h>
180# define ZEXPORT __declspec(dllexport) WINAPI
181# define ZEXPORTRVA __declspec(dllexport) WINAPIV
c801d85f 182#else
a4019ec2 183# if defined (_Windows) && defined (__DLL__)
c801d85f
KB
184# define ZEXPORT _export
185# define ZEXPORTVA _export
a4019ec2
SC
186# endif
187# endif
188# endif
189#endif
190
191#if defined (__BEOS__)
192# if defined (ZLIB_DLL)
193# define ZEXTERN extern __declspec(dllexport)
c801d85f 194# else
a4019ec2
SC
195# define ZEXTERN extern __declspec(dllimport)
196# endif
197#endif
198
199#ifndef ZEXPORT
c801d85f 200# define ZEXPORT
a4019ec2
SC
201#endif
202#ifndef ZEXPORTVA
c801d85f
KB
203# define ZEXPORTVA
204# endif
a4019ec2
SC
205#ifndef ZEXTERN
206# define ZEXTERN extern
c801d85f
KB
207#endif
208
209#ifndef FAR
210# define FAR
211#endif
212
a4019ec2 213#if !defined(MACOS) && !defined(TARGET_OS_MAC)
c801d85f 214typedef unsigned char Byte; /* 8 bits */
a4019ec2 215#endif
c801d85f
KB
216typedef unsigned int uInt; /* 16 bits or more */
217typedef unsigned long uLong; /* 32 bits or more */
218
a4019ec2
SC
219#ifdef SMALL_MEDIUM
220 /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */
c801d85f
KB
221# define Bytef Byte FAR
222#else
223 typedef Byte FAR Bytef;
224#endif
e6ebb514
DW
225#if defined(__VISAGECPP__)
226# define Bytef Byte FAR
227#endif
c801d85f
KB
228typedef char FAR charf;
229typedef int FAR intf;
230typedef uInt FAR uIntf;
231typedef uLong FAR uLongf;
232
233#ifdef STDC
234 typedef void FAR *voidpf;
235 typedef void *voidp;
236#else
237 typedef Byte FAR *voidpf;
238 typedef Byte *voidp;
239#endif
240
241#ifdef HAVE_UNISTD_H
242# include <sys/types.h> /* for off_t */
243# include <unistd.h> /* for SEEK_* and off_t */
244# define z_off_t off_t
245#endif
246#ifndef SEEK_SET
247# define SEEK_SET 0 /* Seek from beginning of file. */
248# define SEEK_CUR 1 /* Seek from current position. */
a4019ec2 249# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */
c801d85f
KB
250#endif
251#ifndef z_off_t
252# define z_off_t long
253#endif
254
255/* MVS linker does not support external names larger than 8 bytes */
256#if defined(__MVS__)
257# pragma map(deflateInit_,"DEIN")
258# pragma map(deflateInit2_,"DEIN2")
259# pragma map(deflateEnd,"DEEND")
260# pragma map(inflateInit_,"ININ")
261# pragma map(inflateInit2_,"ININ2")
262# pragma map(inflateEnd,"INEND")
263# pragma map(inflateSync,"INSY")
264# pragma map(inflateSetDictionary,"INSEDI")
265# pragma map(inflate_blocks,"INBL")
266# pragma map(inflate_blocks_new,"INBLNE")
267# pragma map(inflate_blocks_free,"INBLFR")
268# pragma map(inflate_blocks_reset,"INBLRE")
269# pragma map(inflate_codes_free,"INCOFR")
270# pragma map(inflate_codes,"INCO")
271# pragma map(inflate_fast,"INFA")
272# pragma map(inflate_flush,"INFLU")
273# pragma map(inflate_mask,"INMA")
274# pragma map(inflate_set_dictionary,"INSEDI2")
275# pragma map(inflate_copyright,"INCOPY")
276# pragma map(inflate_trees_bits,"INTRBI")
277# pragma map(inflate_trees_dynamic,"INTRDY")
278# pragma map(inflate_trees_fixed,"INTRFI")
279# pragma map(inflate_trees_free,"INTRFR")
280#endif
281
282#endif /* _ZCONF_H */