1 | /* zconf.h -- configuration of the zlib compression library |
2 | * Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler |
3 | * For conditions of distribution and use, see copyright notice in zlib.h |
4 | */ |
5 | |
6 | #ifndef ZCONF_H |
7 | #define ZCONF_H |
8 | |
9 | #if !defined(_WIN32) && defined(__WIN32__) |
10 | # define _WIN32 |
11 | #endif |
12 | |
13 | #ifdef __STDC_VERSION__ |
14 | # if __STDC_VERSION__ >= 199901L |
15 | # ifndef STDC99 |
16 | # define STDC99 |
17 | # endif |
18 | # endif |
19 | #endif |
20 | |
21 | /* Clang macro for detecting declspec support |
22 | * https://clang.llvm.org/docs/LanguageExtensions.html#has-declspec-attribute |
23 | */ |
24 | #ifndef __has_declspec_attribute |
25 | # define __has_declspec_attribute(x) 0 |
26 | #endif |
27 | |
28 | #if defined(ZLIB_CONST) && !defined(z_const) |
29 | # define z_const const |
30 | #else |
31 | # define z_const |
32 | #endif |
33 | |
34 | /* Maximum value for memLevel in deflateInit2 */ |
35 | #ifndef MAX_MEM_LEVEL |
36 | # define MAX_MEM_LEVEL 9 |
37 | #endif |
38 | |
39 | /* Maximum value for windowBits in deflateInit2 and inflateInit2. |
40 | * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files |
41 | * created by gzip. (Files created by minigzip can still be extracted by |
42 | * gzip.) |
43 | */ |
44 | #ifndef MAX_WBITS |
45 | # define MAX_WBITS 15 /* 32K LZ77 window */ |
46 | #endif |
47 | |
48 | /* The memory requirements for deflate are (in bytes): |
49 | (1 << (windowBits+2)) + (1 << (memLevel+9)) |
50 | that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) |
51 | plus a few kilobytes for small objects. For example, if you want to reduce |
52 | the default memory requirements from 256K to 128K, compile with |
53 | make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" |
54 | Of course this will generally degrade compression (there's no free lunch). |
55 | |
56 | The memory requirements for inflate are (in bytes) 1 << windowBits |
57 | that is, 32K for windowBits=15 (default value) plus about 7 kilobytes |
58 | for small objects. |
59 | */ |
60 | |
61 | /* Type declarations */ |
62 | |
63 | |
64 | #ifndef OF /* function prototypes */ |
65 | # define OF(args) args |
66 | #endif |
67 | |
68 | #ifdef ZLIB_INTERNAL |
69 | # define Z_INTERNAL ZLIB_INTERNAL |
70 | #endif |
71 | |
72 | /* If building or using zlib as a DLL, define ZLIB_DLL. |
73 | * This is not mandatory, but it offers a little performance increase. |
74 | */ |
75 | #if defined(ZLIB_DLL) && (defined(_WIN32) || (__has_declspec_attribute(dllexport) && __has_declspec_attribute(dllimport))) |
76 | # ifdef Z_INTERNAL |
77 | # define Z_EXTERN extern __declspec(dllexport) |
78 | # else |
79 | # define Z_EXTERN extern __declspec(dllimport) |
80 | # endif |
81 | #endif |
82 | |
83 | /* If building or using zlib with the WINAPI/WINAPIV calling convention, |
84 | * define ZLIB_WINAPI. |
85 | * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI. |
86 | */ |
87 | #if defined(ZLIB_WINAPI) && defined(_WIN32) |
88 | # include <windows.h> |
89 | /* No need for _export, use ZLIB.DEF instead. */ |
90 | /* For complete Windows compatibility, use WINAPI, not __stdcall. */ |
91 | # define Z_EXPORT WINAPI |
92 | # define Z_EXPORTVA WINAPIV |
93 | #endif |
94 | |
95 | #ifndef Z_EXTERN |
96 | # define Z_EXTERN extern |
97 | #endif |
98 | #ifndef Z_EXPORT |
99 | # define Z_EXPORT |
100 | #endif |
101 | #ifndef Z_EXPORTVA |
102 | # define Z_EXPORTVA |
103 | #endif |
104 | |
105 | /* For backwards compatibility */ |
106 | |
107 | #ifndef ZEXTERN |
108 | # define ZEXTERN Z_EXTERN |
109 | #endif |
110 | #ifndef ZEXPORT |
111 | # define ZEXPORT Z_EXPORT |
112 | #endif |
113 | #ifndef ZEXPORTVA |
114 | # define ZEXPORTVA Z_EXPORTVA |
115 | #endif |
116 | |
117 | /* Fallback for something that includes us. */ |
118 | typedef unsigned char Byte; |
119 | typedef Byte Bytef; |
120 | |
121 | typedef unsigned int uInt; /* 16 bits or more */ |
122 | typedef unsigned long uLong; /* 32 bits or more */ |
123 | |
124 | typedef char charf; |
125 | typedef int intf; |
126 | typedef uInt uIntf; |
127 | typedef uLong uLongf; |
128 | |
129 | typedef void const *voidpc; |
130 | typedef void *voidpf; |
131 | typedef void *voidp; |
132 | |
133 | #if 1 /* was set to #if 1 by configure/cmake/etc */ |
134 | # define Z_HAVE_UNISTD_H |
135 | #endif |
136 | |
137 | #ifdef NEED_PTRDIFF_T /* may be set to #if 1 by configure/cmake/etc */ |
138 | typedef PTRDIFF_TYPE ptrdiff_t; |
139 | #endif |
140 | |
141 | #include <sys/types.h> /* for off_t */ |
142 | #include <stdarg.h> /* for va_list */ |
143 | |
144 | #include <stddef.h> /* for wchar_t and NULL */ |
145 | |
146 | /* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and |
147 | * "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even |
148 | * though the former does not conform to the LFS document), but considering |
149 | * both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as |
150 | * equivalently requesting no 64-bit operations |
151 | */ |
152 | #if defined(_LARGEFILE64_SOURCE) && -_LARGEFILE64_SOURCE - -1 == 1 |
153 | # undef _LARGEFILE64_SOURCE |
154 | #endif |
155 | |
156 | #if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE) |
157 | # include <unistd.h> /* for SEEK_*, off_t, and _LFS64_LARGEFILE */ |
158 | # ifndef z_off_t |
159 | # define z_off_t off_t |
160 | # endif |
161 | #endif |
162 | |
163 | #if defined(_LFS64_LARGEFILE) && _LFS64_LARGEFILE-0 |
164 | # define Z_LFS64 |
165 | #endif |
166 | |
167 | #if defined(_LARGEFILE64_SOURCE) && defined(Z_LFS64) |
168 | # define Z_LARGE64 |
169 | #endif |
170 | |
171 | #if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS-0 == 64 && defined(Z_LFS64) |
172 | # define Z_WANT64 |
173 | #endif |
174 | |
175 | #if !defined(SEEK_SET) |
176 | # define SEEK_SET 0 /* Seek from beginning of file. */ |
177 | # define SEEK_CUR 1 /* Seek from current position. */ |
178 | # define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ |
179 | #endif |
180 | |
181 | #ifndef z_off_t |
182 | # define z_off_t long |
183 | #endif |
184 | |
185 | #if !defined(_WIN32) && defined(Z_LARGE64) |
186 | # define z_off64_t off64_t |
187 | #else |
188 | # if defined(__MSYS__) |
189 | # define z_off64_t _off64_t |
190 | # elif defined(_WIN32) && !defined(__GNUC__) |
191 | # define z_off64_t __int64 |
192 | # else |
193 | # define z_off64_t z_off_t |
194 | # endif |
195 | #endif |
196 | |
197 | #endif /* ZCONF_H */ |
198 | |