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