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