1*22ce4affSfengbojiang# ################################################################ 2*22ce4affSfengbojiang# Copyright (c) 2016-2020, Yann Collet, Facebook, Inc. 3*22ce4affSfengbojiang# All rights reserved. 4*22ce4affSfengbojiang# 5*22ce4affSfengbojiang# This source code is licensed under both the BSD-style license (found in the 6*22ce4affSfengbojiang# LICENSE file in the root directory of this source tree) and the GPLv2 (found 7*22ce4affSfengbojiang# in the COPYING file in the root directory of this source tree). 8*22ce4affSfengbojiang# You may select, at your option, one of the above-listed licenses. 9*22ce4affSfengbojiang# ################################################################ 10*22ce4affSfengbojiang 11*22ce4affSfengbojiangLIBDIR =../lib 12*22ce4affSfengbojiangCPPFLAGS += -I$(LIBDIR) 13*22ce4affSfengbojiangLIB = $(LIBDIR)/libzstd.a 14*22ce4affSfengbojiang 15*22ce4affSfengbojiang 16*22ce4affSfengbojiang.PHONY: default 17*22ce4affSfengbojiangdefault: all 18*22ce4affSfengbojiang 19*22ce4affSfengbojiang.PHONY: all 20*22ce4affSfengbojiangall: simple_compression simple_decompression \ 21*22ce4affSfengbojiang multiple_simple_compression\ 22*22ce4affSfengbojiang dictionary_compression dictionary_decompression \ 23*22ce4affSfengbojiang streaming_compression streaming_decompression \ 24*22ce4affSfengbojiang multiple_streaming_compression streaming_memory_usage 25*22ce4affSfengbojiang 26*22ce4affSfengbojiang$(LIB) : 27*22ce4affSfengbojiang $(MAKE) -C $(LIBDIR) libzstd.a 28*22ce4affSfengbojiang 29*22ce4affSfengbojiangsimple_compression.o: common.h 30*22ce4affSfengbojiangsimple_compression : $(LIB) 31*22ce4affSfengbojiang 32*22ce4affSfengbojiangsimple_decompression.o: common.h 33*22ce4affSfengbojiangsimple_decompression : $(LIB) 34*22ce4affSfengbojiang 35*22ce4affSfengbojiangmultiple_simple_compression.o: common.h 36*22ce4affSfengbojiangmultiple_simple_compression : $(LIB) 37*22ce4affSfengbojiang 38*22ce4affSfengbojiangdictionary_compression.o: common.h 39*22ce4affSfengbojiangdictionary_compression : $(LIB) 40*22ce4affSfengbojiang 41*22ce4affSfengbojiangdictionary_decompression.o: common.h 42*22ce4affSfengbojiangdictionary_decompression : $(LIB) 43*22ce4affSfengbojiang 44*22ce4affSfengbojiangstreaming_compression.o: common.h 45*22ce4affSfengbojiangstreaming_compression : $(LIB) 46*22ce4affSfengbojiang 47*22ce4affSfengbojiangmultiple_streaming_compression.o: common.h 48*22ce4affSfengbojiangmultiple_streaming_compression : $(LIB) 49*22ce4affSfengbojiang 50*22ce4affSfengbojiangstreaming_decompression.o: common.h 51*22ce4affSfengbojiangstreaming_decompression : $(LIB) 52*22ce4affSfengbojiang 53*22ce4affSfengbojiangstreaming_memory_usage.o: common.h 54*22ce4affSfengbojiangstreaming_memory_usage : $(LIB) 55*22ce4affSfengbojiang 56*22ce4affSfengbojiang 57*22ce4affSfengbojiang.PHONY:clean 58*22ce4affSfengbojiangclean: 59*22ce4affSfengbojiang @$(RM) core *.o tmp* result* *.zst \ 60*22ce4affSfengbojiang simple_compression simple_decompression \ 61*22ce4affSfengbojiang multiple_simple_compression \ 62*22ce4affSfengbojiang dictionary_compression dictionary_decompression \ 63*22ce4affSfengbojiang streaming_compression streaming_decompression \ 64*22ce4affSfengbojiang multiple_streaming_compression streaming_memory_usage 65*22ce4affSfengbojiang @echo Cleaning completed 66*22ce4affSfengbojiang 67*22ce4affSfengbojiang.PHONY:test 68*22ce4affSfengbojiangtest: all 69*22ce4affSfengbojiang cp README.md tmp 70*22ce4affSfengbojiang cp Makefile tmp2 71*22ce4affSfengbojiang @echo -- Simple compression tests 72*22ce4affSfengbojiang ./simple_compression tmp 73*22ce4affSfengbojiang ./simple_decompression tmp.zst 74*22ce4affSfengbojiang ./multiple_simple_compression *.c 75*22ce4affSfengbojiang ./streaming_decompression tmp.zst > /dev/null 76*22ce4affSfengbojiang @echo -- Streaming memory usage 77*22ce4affSfengbojiang ./streaming_memory_usage 78*22ce4affSfengbojiang @echo -- Streaming compression tests 79*22ce4affSfengbojiang ./streaming_compression tmp 80*22ce4affSfengbojiang ./streaming_decompression tmp.zst > /dev/null 81*22ce4affSfengbojiang @echo -- Edge cases detection 82*22ce4affSfengbojiang ! ./streaming_decompression tmp # invalid input, must fail 83*22ce4affSfengbojiang ! ./simple_decompression tmp # invalid input, must fail 84*22ce4affSfengbojiang touch tmpNull # create 0-size file 85*22ce4affSfengbojiang ./simple_compression tmpNull 86*22ce4affSfengbojiang ./simple_decompression tmpNull.zst # 0-size frame : must work 87*22ce4affSfengbojiang @echo -- Multiple streaming tests 88*22ce4affSfengbojiang ./multiple_streaming_compression *.c 89*22ce4affSfengbojiang @echo -- Dictionary compression tests 90*22ce4affSfengbojiang ./dictionary_compression tmp2 tmp README.md 91*22ce4affSfengbojiang ./dictionary_decompression tmp2.zst tmp.zst README.md 92*22ce4affSfengbojiang $(RM) tmp* *.zst 93*22ce4affSfengbojiang @echo tests completed 94