123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- # ################################################################
- # Copyright (c) Facebook, Inc.
- # 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' \
- -DZSTD_NO_INTRINSICS \
- -DZSTD_NO_UNUSED_FUNCTIONS \
- -DZSTD_LEGACY_SUPPORT=0 \
- -DZSTD_STATIC_LINKING_ONLY \
- -DFSE_STATIC_LINKING_ONLY \
- -DHUF_STATIC_LINKING_ONLY \
- -DXXH_STATIC_LINKING_ONLY \
- -DMEM_FORCE_MEMORY_ACCESS=0 \
- -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_VISIBILITY= \
- -RZSTDERRORLIB_VISIBILITY= \
- -RZSTD_FALLTHROUGH=fallthrough \
- -DZSTD_HAVE_WEAK_SYMBOLS=0 \
- -DZSTD_TRACE=0 \
- -DZSTD_NO_TRACE \
- -DZSTD_LINUX_KERNEL
- 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_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 test/test test/static_test
|