| # ################################################################ | |
| # 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. | |
| # ################################################################ | |
| LIBDIR =../lib | |
| CPPFLAGS += -I$(LIBDIR) | |
| LIB = $(LIBDIR)/libzstd.a | |
| .PHONY: default | |
| default: all | |
| .PHONY: all | |
| all: simple_compression simple_decompression \ | |
| multiple_simple_compression\ | |
| dictionary_compression dictionary_decompression \ | |
| streaming_compression streaming_decompression \ | |
| multiple_streaming_compression streaming_memory_usage | |
| $(LIB) : | |
| $(MAKE) -C $(LIBDIR) libzstd.a | |
| simple_compression.o: common.h | |
| simple_compression : $(LIB) | |
| simple_decompression.o: common.h | |
| simple_decompression : $(LIB) | |
| multiple_simple_compression.o: common.h | |
| multiple_simple_compression : $(LIB) | |
| dictionary_compression.o: common.h | |
| dictionary_compression : $(LIB) | |
| dictionary_decompression.o: common.h | |
| dictionary_decompression : $(LIB) | |
| streaming_compression.o: common.h | |
| streaming_compression : $(LIB) | |
| multiple_streaming_compression.o: common.h | |
| multiple_streaming_compression : $(LIB) | |
| streaming_decompression.o: common.h | |
| streaming_decompression : $(LIB) | |
| streaming_memory_usage.o: common.h | |
| streaming_memory_usage : $(LIB) | |
| .PHONY:clean | |
| clean: | |
| @$(RM) core *.o tmp* result* *.zst \ | |
| simple_compression simple_decompression \ | |
| multiple_simple_compression \ | |
| dictionary_compression dictionary_decompression \ | |
| streaming_compression streaming_decompression \ | |
| multiple_streaming_compression streaming_memory_usage | |
| @echo Cleaning completed | |
| .PHONY:test | |
| test: all | |
| cp README.md tmp | |
| cp Makefile tmp2 | |
| @echo -- Simple compression tests | |
| ./simple_compression tmp | |
| ./simple_decompression tmp.zst | |
| ./multiple_simple_compression *.c | |
| ./streaming_decompression tmp.zst > /dev/null | |
| @echo -- Streaming memory usage | |
| ./streaming_memory_usage | |
| @echo -- Streaming compression tests | |
| ./streaming_compression tmp | |
| ./streaming_decompression tmp.zst > /dev/null | |
| @echo -- Edge cases detection | |
| ! ./streaming_decompression tmp # invalid input, must fail | |
| ! ./simple_decompression tmp # invalid input, must fail | |
| touch tmpNull # create 0-size file | |
| ./simple_compression tmpNull | |
| ./simple_decompression tmpNull.zst # 0-size frame : must work | |
| @echo -- Multiple streaming tests | |
| ./multiple_streaming_compression *.c | |
| @echo -- Dictionary compression tests | |
| ./dictionary_compression tmp2 tmp README.md | |
| ./dictionary_decompression tmp2.zst tmp.zst README.md | |
| $(RM) tmp* *.zst | |
| @echo tests completed |