Lines Matching +full:build +full:- +full:in
4 The __lib__ directory is split into several sub-directories,
5 in order to make it easier to select or exclude features.
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 …by default the dynamic library is multithreaded and static library is single-threaded (for compati…
25 - set build macro `ZSTD_MULTITHREAD` (`-DZSTD_MULTITHREAD` for `gcc`)
26 - for POSIX systems : compile with pthread (`-pthread` compilation flag for `gcc`)
28 For convenience, we provide a build target to generate multi and single threaded libraries:
29 - Force enable multithreading on both dynamic and static libraries by appending `-mt` to the target…
30 - Force disable multithreading on both dynamic and static libraries by appending `-nomt` to the tar…
31 - By default, as mentioned before, dynamic library is multithreaded, and static library is single-t…
34 note that it's necessary to invoke the `-pthread` flag during link stage.
37 via the [advanced API defined in `lib/zstd.h`](https://github.com/facebook/zstd/blob/v1.4.3/lib/zst…
49 - `lib/zstd_errors.h` : translates `size_t` function results
52 - `ZSTD_STATIC_LINKING_ONLY` : if this macro is defined _before_ including `zstd.h`,
54 exposed in the second part of `zstd.h`.
55 All definitions in the experimental APIs are unstable,
56 they may still change in the future, or even be removed.
61 #### Modular build
64 The file structure is designed to make this selection manually achievable for any build system :
66 - Directory `lib/common` is always required, for all variants.
68 - Compression source code lies in `lib/compress`
70 - Decompression source code lies in `lib/decompress`
72 - It's possible to include only `compress` or only `decompress`, they don't depend on each other.
74 - `lib/dictBuilder` : makes it possible to generate dictionaries from a set of samples.
75 The API is exposed in `lib/dictBuilder/zdict.h`.
78 - `lib/legacy` : makes it possible to decompress legacy zstd formats, starting from `v0.1.0`.
84 By default, this build macro is set as `ZSTD_LEGACY_SUPPORT=5`.
86 It's also allowed to invoke legacy API directly, exposed in `lib/legacy/zstd_legacy.h`.
88 For example, advanced API for version `v0.4` is exposed in `lib/legacy/zstd_v04.h` .
90 - While invoking `make libzstd`, it's possible to define build macros
97 - There are a number of options that can help minimize the binary size of
100 The first step is to select the components needed (using the above-described
105 prioritize space-saving.
107 Detailed options: Zstandard's code and build environment is set up by default
108 to optimize above all else for performance. In pursuit of this goal, Zstandard
109 makes significant trade-offs in code size. For example, Zstandard often has
127 Finally, when integrating into your application, make sure you're doing link-
129 e.g., `-flto`, `-ffat-lto-objects`, `-fuse-linker-plugin`,
130 `-ffunction-sections`, `-fdata-sections`, `-fmerge-all-constants`,
131 `-Wl,--gc-sections`, `-Wl,-z,norelro`, and an archiver that understands
132 the compiler's intermediate representation, e.g., `AR=gcc-ar`). Consult your
135 - While invoking `make libzstd`, the build macro `ZSTD_LEGACY_MULTITHREADED_API=1`
136 will expose the deprecated `ZSTDMT` API exposed by `zstdmt_compress.h` in
139 - The build macro `DYNAMIC_BMI2` can be set to 1 or 0 in order to generate binaries
146 (in this case, only the BMI2 code path is generated).
150 - The build macro `ZSTD_NO_UNUSED_FUNCTIONS` can be defined to hide the definitions of functions
152 Currently, this macro will hide function definitions in FSE and HUF that use an excessive
155 - The build macro `ZSTD_NO_INTRINSICS` can be defined to disable all explicit intrinsics.
158 - The build macro `ZSTD_DECODER_INTERNAL_BUFFER` can be set to control
162 but might also result in a small decompression speed cost.
173 It means that if a project that uses ZSTD consists of a single `test-dll.c`
176 gcc $(CFLAGS) -Iinclude/ test-dll.c -o test-dll dll\libzstd.dll
181 #### Advanced Build options
183 The build system requires a hash function in order to
188 The hash function needs to generate at least 64-bit using hexadecimal format.
193 with different build flags.
195 The build directory, where object files are stored
198 In which case, the hash function doesn't matter.
203 Obsolete API on their way out are stored in directory `lib/deprecated`.
204 At this stage, it contains older streaming prototypes, in `lib/deprecated/zbuff.h`.
205 These prototypes will be removed in some future version.
206 Consider migrating code towards supported streaming API exposed in `zstd.h`.
213 - `BUCK` : support for `buck` build system (https://buckbuild.com/)
214 - `Makefile` : `make` script to build and install zstd library (static and dynamic)
215 - `README.md` : this file
216 - `dll/` : resources directory for Windows compilation
217 - `libzstd.pc.in` : script for `pkg-config` (used in `make install`)