63dd15d958f580579e03adf1841e05bd3a6da514
[pcsx_rearmed.git] / deps / libchdr / deps / zstd-1.5.5 / contrib / linux-kernel / Makefile
1 # ################################################################
2 # Copyright (c) Meta Platforms, Inc. and affiliates.
3 # All rights reserved.
4 #
5 # This source code is licensed under both the BSD-style license (found in the
6 # LICENSE file in the root directory of this source tree) and the GPLv2 (found
7 # in the COPYING file in the root directory of this source tree).
8 # You may select, at your option, one of the above-listed licenses.
9 # ################################################################
10
11 .PHONY: libzstd
12 libzstd:
13         rm -rf linux
14         mkdir -p linux
15         mkdir -p linux/include/linux
16         mkdir -p linux/lib/zstd
17         ../freestanding_lib/freestanding.py \
18                 --source-lib ../../lib \
19                 --output-lib linux/lib/zstd \
20                 --xxhash '<linux/xxhash.h>' \
21                 --xxh64-state 'struct xxh64_state' \
22                 --xxh64-prefix 'xxh64' \
23                 --rewrite-include '<limits\.h>=<linux/limits.h>' \
24                 --rewrite-include '<stddef\.h>=<linux/types.h>' \
25                 --rewrite-include '"\.\./zstd.h"=<linux/zstd.h>' \
26                 --rewrite-include '"(\.\./)?zstd_errors.h"=<linux/zstd_errors.h>' \
27                 --sed 's,/\*\*\*,/* *,g' \
28                 --sed 's,/\*\*,/*,g' \
29                 --spdx \
30                 -DZSTD_NO_INTRINSICS \
31                 -DZSTD_NO_UNUSED_FUNCTIONS \
32                 -DZSTD_LEGACY_SUPPORT=0 \
33                 -DZSTD_STATIC_LINKING_ONLY \
34                 -DFSE_STATIC_LINKING_ONLY \
35                 -DXXH_STATIC_LINKING_ONLY \
36                 -D__GNUC__ \
37                 -D__linux__=1 \
38                 -DSTATIC_BMI2=0 \
39                 -DZSTD_ADDRESS_SANITIZER=0 \
40                 -DZSTD_MEMORY_SANITIZER=0 \
41                 -DZSTD_DATAFLOW_SANITIZER=0 \
42                 -DZSTD_COMPRESS_HEAPMODE=1 \
43                 -UNO_PREFETCH \
44                 -U__cplusplus \
45                 -UZSTD_DLL_EXPORT \
46                 -UZSTD_DLL_IMPORT \
47                 -U__ICCARM__ \
48                 -UZSTD_MULTITHREAD \
49                 -U_MSC_VER \
50                 -U_WIN32 \
51                 -RZSTDLIB_VISIBLE= \
52                 -RZSTDERRORLIB_VISIBLE= \
53                 -RZSTD_FALLTHROUGH=fallthrough \
54                 -DZSTD_HAVE_WEAK_SYMBOLS=0 \
55                 -DZSTD_TRACE=0 \
56                 -DZSTD_NO_TRACE \
57                 -DZSTD_DISABLE_ASM \
58                 -DZSTD_LINUX_KERNEL
59         rm linux/lib/zstd/decompress/huf_decompress_amd64.S
60         mv linux/lib/zstd/zstd.h linux/include/linux/zstd_lib.h
61         mv linux/lib/zstd/zstd_errors.h linux/include/linux/
62         cp linux_zstd.h linux/include/linux/zstd.h
63         cp zstd_common_module.c linux/lib/zstd
64         cp zstd_compress_module.c linux/lib/zstd
65         cp zstd_decompress_module.c linux/lib/zstd
66         cp decompress_sources.h linux/lib/zstd
67         cp linux.mk linux/lib/zstd/Makefile
68
69 LINUX ?= $(HOME)/repos/linux
70
71 .PHONY: import
72 import: libzstd
73         rm -f $(LINUX)/include/linux/zstd.h
74         rm -f $(LINUX)/include/linux/zstd_errors.h
75         rm -rf $(LINUX)/lib/zstd
76         cp linux/include/linux/zstd.h $(LINUX)/include/linux
77         cp linux/include/linux/zstd_lib.h $(LINUX)/include/linux
78         cp linux/include/linux/zstd_errors.h $(LINUX)/include/linux
79         cp -r linux/lib/zstd $(LINUX)/lib
80
81 import-upstream:
82         rm -rf $(LINUX)/lib/zstd
83         mkdir $(LINUX)/lib/zstd
84         cp ../../lib/zstd.h $(LINUX)/include/linux/zstd_lib.h
85         cp -r ../../lib/common $(LINUX)/lib/zstd
86         cp -r ../../lib/compress $(LINUX)/lib/zstd
87         cp -r ../../lib/decompress $(LINUX)/lib/zstd
88         mv $(LINUX)/lib/zstd/zstd_errors.h $(LINUX)/include/linux
89         rm $(LINUX)/lib/zstd/common/threading.*
90         rm $(LINUX)/lib/zstd/common/pool.*
91         rm $(LINUX)/lib/zstd/common/xxhash.*
92         rm $(LINUX)/lib/zstd/compress/zstdmt_*
93
94 DEBUGFLAGS= -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow \
95             -Wstrict-aliasing=1 -Wswitch-enum -Wdeclaration-after-statement \
96             -Wstrict-prototypes -Wundef -Wpointer-arith \
97             -Wvla -Wformat=2 -Winit-self -Wfloat-equal -Wwrite-strings \
98             -Wredundant-decls -Wmissing-prototypes -Wc++-compat \
99             -Wimplicit-fallthrough
100
101 .PHONY: test
102 test: libzstd
103         $(MAKE) -C test run-test CFLAGS="-O3 $(CFLAGS) $(DEBUGFLAGS) -Werror" -j
104
105 .PHONY: clean
106 clean:
107         $(RM) -rf linux
108         $(MAKE) -C test clean