xref: /aosp_15_r20/external/zstd/examples/Makefile (revision 01826a4963a0d8a59bc3812d29bdf0fb76416722)
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 CuiLIBDIR =../lib
12*01826a49SYabin CuiCPPFLAGS += -I$(LIBDIR)
13*01826a49SYabin CuiLIB = $(LIBDIR)/libzstd.a
14*01826a49SYabin Cui
15*01826a49SYabin Cui
16*01826a49SYabin Cui.PHONY: default
17*01826a49SYabin Cuidefault: all
18*01826a49SYabin Cui
19*01826a49SYabin Cui.PHONY: all
20*01826a49SYabin Cuiall: simple_compression simple_decompression \
21*01826a49SYabin Cui	multiple_simple_compression\
22*01826a49SYabin Cui	dictionary_compression dictionary_decompression \
23*01826a49SYabin Cui	streaming_compression streaming_decompression \
24*01826a49SYabin Cui	multiple_streaming_compression streaming_memory_usage
25*01826a49SYabin Cui
26*01826a49SYabin Cui$(LIB) :
27*01826a49SYabin Cui	$(MAKE) -C $(LIBDIR) libzstd.a
28*01826a49SYabin Cui
29*01826a49SYabin Cuisimple_compression.o: common.h
30*01826a49SYabin Cuisimple_compression : $(LIB)
31*01826a49SYabin Cui
32*01826a49SYabin Cuisimple_decompression.o: common.h
33*01826a49SYabin Cuisimple_decompression : $(LIB)
34*01826a49SYabin Cui
35*01826a49SYabin Cuimultiple_simple_compression.o: common.h
36*01826a49SYabin Cuimultiple_simple_compression : $(LIB)
37*01826a49SYabin Cui
38*01826a49SYabin Cuidictionary_compression.o: common.h
39*01826a49SYabin Cuidictionary_compression : $(LIB)
40*01826a49SYabin Cui
41*01826a49SYabin Cuidictionary_decompression.o: common.h
42*01826a49SYabin Cuidictionary_decompression : $(LIB)
43*01826a49SYabin Cui
44*01826a49SYabin Cuistreaming_compression.o: common.h
45*01826a49SYabin Cuistreaming_compression : $(LIB)
46*01826a49SYabin Cui
47*01826a49SYabin Cuimultiple_streaming_compression.o: common.h
48*01826a49SYabin Cuimultiple_streaming_compression : $(LIB)
49*01826a49SYabin Cui
50*01826a49SYabin Cuistreaming_decompression.o: common.h
51*01826a49SYabin Cuistreaming_decompression : $(LIB)
52*01826a49SYabin Cui
53*01826a49SYabin Cuistreaming_memory_usage.o: common.h
54*01826a49SYabin Cuistreaming_memory_usage : $(LIB)
55*01826a49SYabin Cui
56*01826a49SYabin Cui
57*01826a49SYabin Cui.PHONY:clean
58*01826a49SYabin Cuiclean:
59*01826a49SYabin Cui	@$(RM) core *.o tmp* result* *.zst \
60*01826a49SYabin Cui        simple_compression simple_decompression \
61*01826a49SYabin Cui        multiple_simple_compression \
62*01826a49SYabin Cui        dictionary_compression dictionary_decompression \
63*01826a49SYabin Cui        streaming_compression streaming_decompression \
64*01826a49SYabin Cui        multiple_streaming_compression streaming_memory_usage
65*01826a49SYabin Cui	@echo Cleaning completed
66*01826a49SYabin Cui
67*01826a49SYabin Cui.PHONY:test
68*01826a49SYabin Cuitest: all
69*01826a49SYabin Cui	cp README.md tmp
70*01826a49SYabin Cui	cp Makefile tmp2
71*01826a49SYabin Cui	@echo -- Simple compression tests
72*01826a49SYabin Cui	./simple_compression tmp
73*01826a49SYabin Cui	./simple_decompression tmp.zst
74*01826a49SYabin Cui	./multiple_simple_compression *.c
75*01826a49SYabin Cui	./streaming_decompression tmp.zst > /dev/null
76*01826a49SYabin Cui	@echo -- Streaming memory usage
77*01826a49SYabin Cui	./streaming_memory_usage
78*01826a49SYabin Cui	@echo -- Streaming compression tests
79*01826a49SYabin Cui	./streaming_compression tmp
80*01826a49SYabin Cui	./streaming_decompression tmp.zst > /dev/null
81*01826a49SYabin Cui	@echo -- Edge cases detection
82*01826a49SYabin Cui	! ./streaming_decompression tmp    # invalid input, must fail
83*01826a49SYabin Cui	! ./simple_decompression tmp       # invalid input, must fail
84*01826a49SYabin Cui	touch tmpNull                      # create 0-size file
85*01826a49SYabin Cui	./simple_compression tmpNull
86*01826a49SYabin Cui	./simple_decompression tmpNull.zst # 0-size frame : must work
87*01826a49SYabin Cui	@echo -- Multiple streaming tests
88*01826a49SYabin Cui	./multiple_streaming_compression *.c
89*01826a49SYabin Cui	@echo -- Dictionary compression tests
90*01826a49SYabin Cui	./dictionary_compression tmp2 tmp README.md
91*01826a49SYabin Cui	./dictionary_decompression tmp2.zst tmp.zst README.md
92*01826a49SYabin Cui	$(RM) tmp* *.zst
93*01826a49SYabin Cui	@echo tests completed
94