xref: /f-stack/freebsd/contrib/zstd/examples/Makefile (revision 22ce4aff)
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