1 /* zconf.h -- configuration of the zlib compression library 2 * Copyright (C) 1995-1998 Jean-loup Gailly. 3 * For conditions of distribution and use, see copyright notice in zlib.h 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 54 #if defined(__GNUC__) || defined(WIN32) || defined(__386__) || defined(i386) 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 74 #if (defined(MSDOS) || defined(_WINDOWS) || defined(WIN32) || defined(__CYGWIN__)) && !defined(STDC) 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 94 /* Old Borland C incorrectly complains about missing returns: */ 95 #if defined(__BORLANDC__) && (__BORLANDC__ < 0x500) 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 151 # define FAR _far 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 159 # define FAR _far 160 # endif 161 #endif 162 163 /* Compile with -DZLIB_DLL for Windows DLL support */ 164 #if defined(ZLIB_DLL) && !defined(__CYGWIN__) 165 # if defined(_WINDOWS) || defined(WINDOWS) 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 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 182 # else 183 # if defined (_Windows) && defined (__DLL__) 184 # define ZEXPORT _export 185 # define ZEXPORTVA _export 186 # endif 187 # endif 188 # endif 189 #endif 190 191 /* There are three ways a function can be defined: 192 (1) extern int foo() --- used for building and linking to the static library 193 (2) extern __declspec(dllexport) int foo() -- used for building the dll 194 (3) extern __declspec(dllimport) int foo() -- used for linking to the dll 195 196 With no command line defines, the default is #3. If ZLIB_DLL is defined, 197 then #2 is used. If ZLIB_STATIC is defined, then #1 is used. 198 If both ZLIB_DLL and ZLIB_STATIC are defined, ZLIB_DLL takes precedence. 199 200 ALL_STATIC is used as a synonym for ZLIB_STATIC (this helps when building 201 packages with many dependencies). However, ALL_STATIC overrides 202 everything (since we cannot #undef something outside our namespace) 203 Thus, precedence is: ALL_STATIC -> ZLIB_DLL (build) -> ZLIB_STATIC -> 204 (nothing) (link to dll). 205 206 ZEXPORT is used for functions 207 ZEXPORTVA is used for functions that have variable args 208 ZEXPORTVAR is used for variables (zlib doesn't have any, but this 209 is included for completeness) 210 */ 211 #if defined (__CYGWIN__) 212 # if defined (ALL_STATIC) 213 # ifdef ZLIB_DLL 214 # undef ZLIB_DLL 215 # endif 216 # ifndef ZLIB_STATIC 217 # define ZLIB_STATIC 218 # endif 219 # endif 220 # if defined (ZLIB_DLL) 221 # ifdef ZLIB_STATIC /* if ALL_STATIC, then ZLIB_DLL is undef'ed; won't get here */ 222 # undef ZLIB_STATIC 223 # endif 224 # endif 225 # if defined (ZLIB_DLL) 226 /* building a DLL */ 227 # define ZEXPORT __declspec(dllexport) /* not necessary */ 228 # define ZEXPORTVA __declspec(dllexport) /* not necessary */ 229 # define ZEXPORTVAR __declspec(dllexport) /* necessary but unused */ 230 # elif defined (ZLIB_STATIC) 231 /* building or linking to a static library */ 232 # define ZEXPORT 233 # define ZEXPORTVA 234 # define ZEXPORTVAR 235 # else 236 /* linking to the DLL */ 237 # define ZEXPORT /* __declspec(dllimport) not necessary */ 238 # define ZEXPORTVA /* __declspec(dllimport) not necessary */ 239 # define ZEXPORTVAR __declspec(dllimport) /* necessary but unused */ 240 # endif 241 #endif 242 243 #if defined (__BEOS__) 244 # if defined (ZLIB_DLL) 245 # define ZEXTERN extern __declspec(dllexport) 246 # else 247 # define ZEXTERN extern __declspec(dllimport) 248 # endif 249 #endif 250 251 #ifndef ZEXPORT 252 # define ZEXPORT 253 #endif 254 #ifndef ZEXPORTVA 255 # define ZEXPORTVA 256 #endif 257 #ifndef ZEXTERN 258 # define ZEXTERN extern 259 #endif 260 261 #ifndef FAR 262 # define FAR 263 #endif 264 265 #if !defined(MACOS) && !defined(TARGET_OS_MAC) 266 typedef unsigned char Byte; /* 8 bits */ 267 #endif 268 typedef unsigned int uInt; /* 16 bits or more */ 269 typedef unsigned long uLong; /* 32 bits or more */ 270 271 #ifdef SMALL_MEDIUM 272 /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */ 273 # define Bytef Byte FAR 274 #else 275 typedef Byte FAR Bytef; 276 #endif 277 typedef char FAR charf; 278 typedef int FAR intf; 279 typedef uInt FAR uIntf; 280 typedef uLong FAR uLongf; 281 282 #ifdef STDC 283 typedef void FAR *voidpf; 284 typedef void *voidp; 285 #else 286 typedef Byte FAR *voidpf; 287 typedef Byte *voidp; 288 #endif 289 290 #ifdef HAVE_UNISTD_H 291 # include <sys/types.h> /* for off_t */ 292 # include <unistd.h> /* for SEEK_* and off_t */ 293 # define z_off_t off_t 294 #endif 295 #ifndef SEEK_SET 296 # define SEEK_SET 0 /* Seek from beginning of file. */ 297 # define SEEK_CUR 1 /* Seek from current position. */ 298 # define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ 299 #endif 300 #ifndef z_off_t 301 # define z_off_t long 302 #endif 303 304 /* MVS linker does not support external names larger than 8 bytes */ 305 #if defined(__MVS__) 306 # pragma map(deflateInit_,"DEIN") 307 # pragma map(deflateInit2_,"DEIN2") 308 # pragma map(deflateEnd,"DEEND") 309 # pragma map(inflateInit_,"ININ") 310 # pragma map(inflateInit2_,"ININ2") 311 # pragma map(inflateEnd,"INEND") 312 # pragma map(inflateSync,"INSY") 313 # pragma map(inflateSetDictionary,"INSEDI") 314 # pragma map(inflate_blocks,"INBL") 315 # pragma map(inflate_blocks_new,"INBLNE") 316 # pragma map(inflate_blocks_free,"INBLFR") 317 # pragma map(inflate_blocks_reset,"INBLRE") 318 # pragma map(inflate_codes_free,"INCOFR") 319 # pragma map(inflate_codes,"INCO") 320 # pragma map(inflate_fast,"INFA") 321 # pragma map(inflate_flush,"INFLU") 322 # pragma map(inflate_mask,"INMA") 323 # pragma map(inflate_set_dictionary,"INSEDI2") 324 # pragma map(inflate_copyright,"INCOPY") 325 # pragma map(inflate_trees_bits,"INTRBI") 326 # pragma map(inflate_trees_dynamic,"INTRDY") 327 # pragma map(inflate_trees_fixed,"INTRFI") 328 # pragma map(inflate_trees_free,"INTRFR") 329 #endif 330 331 #endif /* _ZCONF_H */ |