git subrepo pull (merge) --force deps/libchdr
[pcsx_rearmed.git] / deps / libchdr / deps / zstd-1.5.5 / contrib / linux-kernel / Makefile
diff --git a/deps/libchdr/deps/zstd-1.5.5/contrib/linux-kernel/Makefile b/deps/libchdr/deps/zstd-1.5.5/contrib/linux-kernel/Makefile
new file mode 100644 (file)
index 0000000..63dd15d
--- /dev/null
@@ -0,0 +1,108 @@
+# ################################################################
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+#
+# This source code is licensed under both the BSD-style license (found in the
+# LICENSE file in the root directory of this source tree) and the GPLv2 (found
+# in the COPYING file in the root directory of this source tree).
+# You may select, at your option, one of the above-listed licenses.
+# ################################################################
+
+.PHONY: libzstd
+libzstd:
+       rm -rf linux
+       mkdir -p linux
+       mkdir -p linux/include/linux
+       mkdir -p linux/lib/zstd
+       ../freestanding_lib/freestanding.py \
+               --source-lib ../../lib \
+               --output-lib linux/lib/zstd \
+               --xxhash '<linux/xxhash.h>' \
+               --xxh64-state 'struct xxh64_state' \
+               --xxh64-prefix 'xxh64' \
+               --rewrite-include '<limits\.h>=<linux/limits.h>' \
+               --rewrite-include '<stddef\.h>=<linux/types.h>' \
+               --rewrite-include '"\.\./zstd.h"=<linux/zstd.h>' \
+               --rewrite-include '"(\.\./)?zstd_errors.h"=<linux/zstd_errors.h>' \
+               --sed 's,/\*\*\*,/* *,g' \
+               --sed 's,/\*\*,/*,g' \
+               --spdx \
+               -DZSTD_NO_INTRINSICS \
+               -DZSTD_NO_UNUSED_FUNCTIONS \
+               -DZSTD_LEGACY_SUPPORT=0 \
+               -DZSTD_STATIC_LINKING_ONLY \
+               -DFSE_STATIC_LINKING_ONLY \
+               -DXXH_STATIC_LINKING_ONLY \
+               -D__GNUC__ \
+               -D__linux__=1 \
+               -DSTATIC_BMI2=0 \
+               -DZSTD_ADDRESS_SANITIZER=0 \
+               -DZSTD_MEMORY_SANITIZER=0 \
+               -DZSTD_DATAFLOW_SANITIZER=0 \
+               -DZSTD_COMPRESS_HEAPMODE=1 \
+               -UNO_PREFETCH \
+               -U__cplusplus \
+               -UZSTD_DLL_EXPORT \
+               -UZSTD_DLL_IMPORT \
+               -U__ICCARM__ \
+               -UZSTD_MULTITHREAD \
+               -U_MSC_VER \
+               -U_WIN32 \
+               -RZSTDLIB_VISIBLE= \
+               -RZSTDERRORLIB_VISIBLE= \
+               -RZSTD_FALLTHROUGH=fallthrough \
+               -DZSTD_HAVE_WEAK_SYMBOLS=0 \
+               -DZSTD_TRACE=0 \
+               -DZSTD_NO_TRACE \
+               -DZSTD_DISABLE_ASM \
+               -DZSTD_LINUX_KERNEL
+       rm linux/lib/zstd/decompress/huf_decompress_amd64.S
+       mv linux/lib/zstd/zstd.h linux/include/linux/zstd_lib.h
+       mv linux/lib/zstd/zstd_errors.h linux/include/linux/
+       cp linux_zstd.h linux/include/linux/zstd.h
+       cp zstd_common_module.c linux/lib/zstd
+       cp zstd_compress_module.c linux/lib/zstd
+       cp zstd_decompress_module.c linux/lib/zstd
+       cp decompress_sources.h linux/lib/zstd
+       cp linux.mk linux/lib/zstd/Makefile
+
+LINUX ?= $(HOME)/repos/linux
+
+.PHONY: import
+import: libzstd
+       rm -f $(LINUX)/include/linux/zstd.h
+       rm -f $(LINUX)/include/linux/zstd_errors.h
+       rm -rf $(LINUX)/lib/zstd
+       cp linux/include/linux/zstd.h $(LINUX)/include/linux
+       cp linux/include/linux/zstd_lib.h $(LINUX)/include/linux
+       cp linux/include/linux/zstd_errors.h $(LINUX)/include/linux
+       cp -r linux/lib/zstd $(LINUX)/lib
+
+import-upstream:
+       rm -rf $(LINUX)/lib/zstd
+       mkdir $(LINUX)/lib/zstd
+       cp ../../lib/zstd.h $(LINUX)/include/linux/zstd_lib.h
+       cp -r ../../lib/common $(LINUX)/lib/zstd
+       cp -r ../../lib/compress $(LINUX)/lib/zstd
+       cp -r ../../lib/decompress $(LINUX)/lib/zstd
+       mv $(LINUX)/lib/zstd/zstd_errors.h $(LINUX)/include/linux
+       rm $(LINUX)/lib/zstd/common/threading.*
+       rm $(LINUX)/lib/zstd/common/pool.*
+       rm $(LINUX)/lib/zstd/common/xxhash.*
+       rm $(LINUX)/lib/zstd/compress/zstdmt_*
+
+DEBUGFLAGS= -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow \
+            -Wstrict-aliasing=1 -Wswitch-enum -Wdeclaration-after-statement \
+            -Wstrict-prototypes -Wundef -Wpointer-arith \
+            -Wvla -Wformat=2 -Winit-self -Wfloat-equal -Wwrite-strings \
+            -Wredundant-decls -Wmissing-prototypes -Wc++-compat \
+           -Wimplicit-fallthrough
+
+.PHONY: test
+test: libzstd
+       $(MAKE) -C test run-test CFLAGS="-O3 $(CFLAGS) $(DEBUGFLAGS) -Werror" -j
+
+.PHONY: clean
+clean:
+       $(RM) -rf linux
+       $(MAKE) -C test clean