106 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Makefile
		
	
	
	
			
		
		
	
	
			106 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Makefile
		
	
	
	
| # ################################################################
 | |
| # 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
 |