Lines Matching +full:- +full:- +full:with +full:- +full:zstd
4 The __lib__ directory is split into several sub-directories,
10 …ventions](https://www.gnu.org/prep/standards/html_node/Makefile-Conventions.html#Makefile-Conventi…
12 - `make` : generates both static and dynamic libraries
13 - `make install` : install libraries and headers in target system directories
22 When building with `make`, by default the dynamic library is multithreaded and static library is si…
25 - set build macro `ZSTD_MULTITHREAD` (`-DZSTD_MULTITHREAD` for `gcc`)
26 - for POSIX systems : compile with pthread (`-pthread` compilation flag for `gcc`)
29 - Force enable multithreading on both dynamic and static libraries by appending `-mt` to the target…
30 …Note that the `.pc` generated on calling `make lib-mt` will already include the require Libs and C…
31 - Force disable multithreading on both dynamic and static libraries by appending `-nomt` to the tar…
32 - By default, as mentioned before, dynamic library is multithreaded, and static library is single-t…
34 When linking a POSIX program with a multithreaded version of `libzstd`,
35 note that it's necessary to invoke the `-pthread` flag during link stage.
37 The `.pc` generated from `make install` or `make install-pc` always assume a single-threaded static…
38 is compiled. To correctly generate a `.pc` for the multi-threaded static library, set `MT=1` as ENV…
41 via the [advanced API defined in `lib/zstd.h`](https://github.com/facebook/zstd/blob/v1.4.3/lib/zst…
46 Zstandard's stable API is exposed within [lib/zstd.h](zstd.h).
53 - `lib/zstd_errors.h` : translates `size_t` function results
56 - `ZSTD_STATIC_LINKING_ONLY` : if this macro is defined _before_ including `zstd.h`,
58 exposed in the second part of `zstd.h`.
61 … As a consequence, experimental definitions shall ___never be used with dynamic library___ !
70 - Directory `lib/common` is always required, for all variants.
72 - Compression source code lies in `lib/compress`
74 - Decompression source code lies in `lib/decompress`
76 - It's possible to include only `compress` or only `decompress`, they don't depend on each other.
78 - `lib/dictBuilder` : makes it possible to generate dictionaries from a set of samples.
82 - `lib/legacy` : makes it possible to decompress legacy zstd formats, starting from `v0.1.0`.
94 - While invoking `make libzstd`, it's possible to define build macros
101 - There are a number of options that can help minimize the binary size of
104 The first step is to select the components needed (using the above-described
109 prioritize space-saving.
113 makes significant trade-offs in code size. For example, Zstandard often has
114 more than one implementation of a particular component, with each
117 a time or two symbols at a time. Zstd normally includes both (and dispatches
126 On the compressor side, Zstd's compression levels map to several internal
128 it is possible to exclude all but the fastest strategy with
140 Finally, when integrating into your application, make sure you're doing link-
142 e.g., `-flto`, `-ffat-lto-objects`, `-fuse-linker-plugin`,
143 `-ffunction-sections`, `-fdata-sections`, `-fmerge-all-constants`,
144 `-Wl,--gc-sections`, `-Wl,-z,norelro`, and an archiver that understands
145 the compiler's intermediate representation, e.g., `AR=gcc-ar`). Consult your
148 - While invoking `make libzstd`, the build macro `ZSTD_LEGACY_MULTITHREADED_API=1`
152 - The build macro `STATIC_BMI2` can be set to 1 to force usage of `bmi2` instructions.
159 - The build macro `DYNAMIC_BMI2` can be set to 1 or 0 in order to generate binaries
170 - The build macro `ZSTD_NO_UNUSED_FUNCTIONS` can be defined to hide the definitions of functions
171 that zstd does not use. Not all unused functions are hidden, but they can be if needed.
175 - The build macro `ZSTD_NO_INTRINSICS` can be defined to disable all explicit intrinsics.
178 - The build macro `ZSTD_DECODER_INTERNAL_BUFFER` can be set to control
184 - The C compiler macros `ZSTDLIB_VISIBLE`, `ZSTDERRORLIB_VISIBLE` and `ZDICTLIB_VISIBLE`
185 can be overridden to control the visibility of zstd's API. Additionally,
187 of zstd's static API. Specifically, it can be set to `ZSTDLIB_HIDDEN` to hide the symbols
190 with the old macro names.
192 - The C compiler macro `HUF_DISABLE_FAST_DECODE` disables the newer Huffman fast C
198 DLL can be created using MinGW+MSYS with the `make libzstd` command.
200 The import library is only required with Visual C++.
201 The header file `zstd.h` and the dynamic library `dll\libzstd.dll` are required to
204 It means that if a project that uses ZSTD consists of a single `test-dll.c`
205 file it should be linked with `dll\libzstd.dll`. For example:
207 gcc $(CFLAGS) -Iinclude/ test-dll.c -o test-dll dll\libzstd.dll
209 The compiled executable will require ZSTD DLL which is available at `dll\libzstd.dll`.
215 separate object files created with different compilation flags.
219 The hash function needs to generate at least 64-bit using hexadecimal format.
224 with different build flags.
237 Consider migrating code towards supported streaming API exposed in `zstd.h`.
244 - `BUCK` : support for `buck` build system (https://buckbuild.com/)
245 - `Makefile` : `make` script to build and install zstd library (static and dynamic)
246 - `README.md` : this file
247 - `dll/` : resources directory for Windows compilation
248 - `libzstd.pc.in` : script for `pkg-config` (used in `make install`)