# ################################################################ # 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 '' \ --xxh64-state 'struct xxh64_state' \ --xxh64-prefix 'xxh64' \ --rewrite-include '=' \ --rewrite-include '=' \ --rewrite-include '"\.\./zstd.h"=' \ --rewrite-include '"(\.\./)?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