3 * Single-file Zstandard library.
7 * python combine.py -r ../../lib -x legacy/zstd_legacy.h -o zstd.c zstd-in.c
11 * Copyright (c) Meta Platforms, Inc. and affiliates.
12 * All rights reserved.
14 * This source code is licensed under both the BSD-style license (found in the
15 * LICENSE file in the root directory of this source tree) and the GPLv2 (found
16 * in the COPYING file in the root directory of this source tree).
17 * You may select, at your option, one of the above-listed licenses.
20 * Settings to bake for the single library file.
22 * Note: It's important that none of these affects 'zstd.h' (only the
23 * implementation files we're amalgamating).
25 * Note: MEM_MODULE stops xxhash redefining BYTE, U16, etc., which are also
26 * defined in mem.h (breaking C99 compatibility).
28 * Note: the undefs for xxHash allow Zstd's implementation to coincide with
29 * standalone xxHash usage (with global defines).
31 * Note: if you enable ZSTD_LEGACY_SUPPORT the combine.py script will need
32 * re-running without the "-x legacy/zstd_legacy.h" option (it excludes the
33 * legacy support at the source level).
35 * Note: multithreading is enabled for all platforms apart from Emscripten.
40 #define XXH_NAMESPACE ZSTD_
41 #undef XXH_PRIVATE_API
42 #define XXH_PRIVATE_API
44 #define XXH_INLINE_ALL
45 #define ZSTD_LEGACY_SUPPORT 0
46 #ifndef __EMSCRIPTEN__
47 #define ZSTD_MULTITHREAD
50 /* TODO: Can't amalgamate ASM function */
51 #define ZSTD_DISABLE_ASM 1
53 /* Include zstd_deps.h first with all the options we need enabled. */
54 #define ZSTD_DEPS_NEED_MALLOC
55 #define ZSTD_DEPS_NEED_MATH64
56 #include "common/zstd_deps.h"
58 #include "common/debug.c"
59 #include "common/entropy_common.c"
60 #include "common/error_private.c"
61 #include "common/fse_decompress.c"
62 #include "common/threading.c"
63 #include "common/pool.c"
64 #include "common/zstd_common.c"
66 #include "compress/fse_compress.c"
67 #include "compress/hist.c"
68 #include "compress/huf_compress.c"
69 #include "compress/zstd_compress_literals.c"
70 #include "compress/zstd_compress_sequences.c"
71 #include "compress/zstd_compress_superblock.c"
72 #include "compress/zstd_compress.c"
73 #include "compress/zstd_double_fast.c"
74 #include "compress/zstd_fast.c"
75 #include "compress/zstd_lazy.c"
76 #include "compress/zstd_ldm.c"
77 #include "compress/zstd_opt.c"
78 #ifdef ZSTD_MULTITHREAD
79 #include "compress/zstdmt_compress.c"
82 #include "decompress/huf_decompress.c"
83 #include "decompress/zstd_ddict.c"
84 #include "decompress/zstd_decompress.c"
85 #include "decompress/zstd_decompress_block.c"
87 #include "dictBuilder/cover.c"
88 #include "dictBuilder/divsufsort.c"
89 #include "dictBuilder/fastcover.c"
90 #include "dictBuilder/zdict.c"