summaryrefslogtreecommitdiffstats
path: root/src/zstd/examples/Makefile
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 18:45:59 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 18:45:59 +0000
commit19fcec84d8d7d21e796c7624e521b60d28ee21ed (patch)
tree42d26aa27d1e3f7c0b8bd3fd14e7d7082f5008dc /src/zstd/examples/Makefile
parentInitial commit. (diff)
downloadceph-6d07fdb6bb33b1af39833b850bb6cf8af79fe293.tar.xz
ceph-6d07fdb6bb33b1af39833b850bb6cf8af79fe293.zip
Adding upstream version 16.2.11+ds.upstream/16.2.11+dsupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/zstd/examples/Makefile')
-rw-r--r--src/zstd/examples/Makefile90
1 files changed, 90 insertions, 0 deletions
diff --git a/src/zstd/examples/Makefile b/src/zstd/examples/Makefile
new file mode 100644
index 000000000..1ae6bce83
--- /dev/null
+++ b/src/zstd/examples/Makefile
@@ -0,0 +1,90 @@
+# ################################################################
+# Copyright (c) 2016-2020, Yann Collet, 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.
+# ################################################################
+
+# This Makefile presumes libzstd is installed, using `sudo make install`
+
+CPPFLAGS += -I../lib
+LIB = ../lib/libzstd.a
+
+.PHONY: default all clean test
+
+default: 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 ../lib libzstd.a
+
+simple_compression : simple_compression.c common.h $(LIB)
+ $(CC) $(CPPFLAGS) $(CFLAGS) $< $(LIB) $(LDFLAGS) -o $@
+
+simple_decompression : simple_decompression.c common.h $(LIB)
+ $(CC) $(CPPFLAGS) $(CFLAGS) $< $(LIB) $(LDFLAGS) -o $@
+
+multiple_simple_compression : multiple_simple_compression.c common.h $(LIB)
+ $(CC) $(CPPFLAGS) $(CFLAGS) $< $(LIB) $(LDFLAGS) -o $@
+
+dictionary_compression : dictionary_compression.c common.h $(LIB)
+ $(CC) $(CPPFLAGS) $(CFLAGS) $< $(LIB) $(LDFLAGS) -o $@
+
+dictionary_decompression : dictionary_decompression.c common.h $(LIB)
+ $(CC) $(CPPFLAGS) $(CFLAGS) $< $(LIB) $(LDFLAGS) -o $@
+
+streaming_compression : streaming_compression.c common.h $(LIB)
+ $(CC) $(CPPFLAGS) $(CFLAGS) $< $(LIB) $(LDFLAGS) -o $@
+
+multiple_streaming_compression : multiple_streaming_compression.c common.h $(LIB)
+ $(CC) $(CPPFLAGS) $(CFLAGS) $< $(LIB) $(LDFLAGS) -o $@
+
+streaming_decompression : streaming_decompression.c common.h $(LIB)
+ $(CC) $(CPPFLAGS) $(CFLAGS) $< $(LIB) $(LDFLAGS) -o $@
+
+streaming_memory_usage : streaming_memory_usage.c $(LIB)
+ $(CC) $(CPPFLAGS) $(CFLAGS) $< $(LIB) $(LDFLAGS) -o $@
+
+clean:
+ @rm -f 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
+
+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