zstd-ruby 1.4.1.0 → 1.5.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +8 -0
  3. data/.github/workflows/ruby.yml +35 -0
  4. data/README.md +2 -2
  5. data/ext/zstdruby/libzstd/BUCK +5 -7
  6. data/ext/zstdruby/libzstd/Makefile +304 -113
  7. data/ext/zstdruby/libzstd/README.md +83 -20
  8. data/ext/zstdruby/libzstd/common/bitstream.h +59 -51
  9. data/ext/zstdruby/libzstd/common/compiler.h +150 -8
  10. data/ext/zstdruby/libzstd/common/cpu.h +1 -3
  11. data/ext/zstdruby/libzstd/common/debug.c +11 -31
  12. data/ext/zstdruby/libzstd/common/debug.h +22 -49
  13. data/ext/zstdruby/libzstd/common/entropy_common.c +201 -75
  14. data/ext/zstdruby/libzstd/common/error_private.c +3 -1
  15. data/ext/zstdruby/libzstd/common/error_private.h +8 -4
  16. data/ext/zstdruby/libzstd/common/fse.h +50 -42
  17. data/ext/zstdruby/libzstd/common/fse_decompress.c +149 -55
  18. data/ext/zstdruby/libzstd/common/huf.h +43 -39
  19. data/ext/zstdruby/libzstd/common/mem.h +69 -25
  20. data/ext/zstdruby/libzstd/common/pool.c +30 -20
  21. data/ext/zstdruby/libzstd/common/pool.h +3 -3
  22. data/ext/zstdruby/libzstd/common/threading.c +51 -4
  23. data/ext/zstdruby/libzstd/common/threading.h +36 -4
  24. data/ext/zstdruby/libzstd/common/xxhash.c +40 -92
  25. data/ext/zstdruby/libzstd/common/xxhash.h +12 -32
  26. data/ext/zstdruby/libzstd/common/zstd_common.c +10 -10
  27. data/ext/zstdruby/libzstd/common/zstd_deps.h +111 -0
  28. data/ext/zstdruby/libzstd/common/zstd_internal.h +230 -111
  29. data/ext/zstdruby/libzstd/common/zstd_trace.h +154 -0
  30. data/ext/zstdruby/libzstd/compress/fse_compress.c +47 -63
  31. data/ext/zstdruby/libzstd/compress/hist.c +41 -63
  32. data/ext/zstdruby/libzstd/compress/hist.h +13 -33
  33. data/ext/zstdruby/libzstd/compress/huf_compress.c +332 -193
  34. data/ext/zstdruby/libzstd/compress/zstd_compress.c +3614 -1696
  35. data/ext/zstdruby/libzstd/compress/zstd_compress_internal.h +546 -86
  36. data/ext/zstdruby/libzstd/compress/zstd_compress_literals.c +158 -0
  37. data/ext/zstdruby/libzstd/compress/zstd_compress_literals.h +29 -0
  38. data/ext/zstdruby/libzstd/compress/zstd_compress_sequences.c +441 -0
  39. data/ext/zstdruby/libzstd/compress/zstd_compress_sequences.h +54 -0
  40. data/ext/zstdruby/libzstd/compress/zstd_compress_superblock.c +572 -0
  41. data/ext/zstdruby/libzstd/compress/zstd_compress_superblock.h +32 -0
  42. data/ext/zstdruby/libzstd/compress/zstd_cwksp.h +662 -0
  43. data/ext/zstdruby/libzstd/compress/zstd_double_fast.c +43 -41
  44. data/ext/zstdruby/libzstd/compress/zstd_double_fast.h +2 -2
  45. data/ext/zstdruby/libzstd/compress/zstd_fast.c +85 -80
  46. data/ext/zstdruby/libzstd/compress/zstd_fast.h +2 -2
  47. data/ext/zstdruby/libzstd/compress/zstd_lazy.c +1184 -111
  48. data/ext/zstdruby/libzstd/compress/zstd_lazy.h +59 -1
  49. data/ext/zstdruby/libzstd/compress/zstd_ldm.c +333 -208
  50. data/ext/zstdruby/libzstd/compress/zstd_ldm.h +15 -3
  51. data/ext/zstdruby/libzstd/compress/zstd_ldm_geartab.h +103 -0
  52. data/ext/zstdruby/libzstd/compress/zstd_opt.c +228 -129
  53. data/ext/zstdruby/libzstd/compress/zstd_opt.h +1 -1
  54. data/ext/zstdruby/libzstd/compress/zstdmt_compress.c +151 -440
  55. data/ext/zstdruby/libzstd/compress/zstdmt_compress.h +32 -114
  56. data/ext/zstdruby/libzstd/decompress/huf_decompress.c +395 -276
  57. data/ext/zstdruby/libzstd/decompress/zstd_ddict.c +20 -16
  58. data/ext/zstdruby/libzstd/decompress/zstd_ddict.h +3 -3
  59. data/ext/zstdruby/libzstd/decompress/zstd_decompress.c +630 -231
  60. data/ext/zstdruby/libzstd/decompress/zstd_decompress_block.c +606 -380
  61. data/ext/zstdruby/libzstd/decompress/zstd_decompress_block.h +8 -5
  62. data/ext/zstdruby/libzstd/decompress/zstd_decompress_internal.h +39 -9
  63. data/ext/zstdruby/libzstd/deprecated/zbuff.h +9 -8
  64. data/ext/zstdruby/libzstd/deprecated/zbuff_common.c +2 -2
  65. data/ext/zstdruby/libzstd/deprecated/zbuff_compress.c +1 -1
  66. data/ext/zstdruby/libzstd/deprecated/zbuff_decompress.c +1 -1
  67. data/ext/zstdruby/libzstd/dictBuilder/cover.c +55 -46
  68. data/ext/zstdruby/libzstd/dictBuilder/cover.h +20 -9
  69. data/ext/zstdruby/libzstd/dictBuilder/divsufsort.c +1 -1
  70. data/ext/zstdruby/libzstd/dictBuilder/fastcover.c +43 -31
  71. data/ext/zstdruby/libzstd/dictBuilder/zdict.c +53 -30
  72. data/ext/zstdruby/libzstd/dll/example/Makefile +2 -1
  73. data/ext/zstdruby/libzstd/dll/example/README.md +16 -22
  74. data/ext/zstdruby/libzstd/legacy/zstd_legacy.h +4 -4
  75. data/ext/zstdruby/libzstd/legacy/zstd_v01.c +24 -14
  76. data/ext/zstdruby/libzstd/legacy/zstd_v01.h +1 -1
  77. data/ext/zstdruby/libzstd/legacy/zstd_v02.c +17 -8
  78. data/ext/zstdruby/libzstd/legacy/zstd_v02.h +1 -1
  79. data/ext/zstdruby/libzstd/legacy/zstd_v03.c +17 -8
  80. data/ext/zstdruby/libzstd/legacy/zstd_v03.h +1 -1
  81. data/ext/zstdruby/libzstd/legacy/zstd_v04.c +25 -11
  82. data/ext/zstdruby/libzstd/legacy/zstd_v04.h +1 -1
  83. data/ext/zstdruby/libzstd/legacy/zstd_v05.c +43 -32
  84. data/ext/zstdruby/libzstd/legacy/zstd_v05.h +2 -2
  85. data/ext/zstdruby/libzstd/legacy/zstd_v06.c +27 -19
  86. data/ext/zstdruby/libzstd/legacy/zstd_v06.h +1 -1
  87. data/ext/zstdruby/libzstd/legacy/zstd_v07.c +32 -20
  88. data/ext/zstdruby/libzstd/legacy/zstd_v07.h +1 -1
  89. data/ext/zstdruby/libzstd/libzstd.pc.in +2 -1
  90. data/ext/zstdruby/libzstd/{dictBuilder/zdict.h → zdict.h} +201 -31
  91. data/ext/zstdruby/libzstd/zstd.h +740 -153
  92. data/ext/zstdruby/libzstd/{common/zstd_errors.h → zstd_errors.h} +3 -1
  93. data/lib/zstd-ruby/version.rb +1 -1
  94. data/zstd-ruby.gemspec +1 -1
  95. metadata +21 -10
  96. data/.travis.yml +0 -14
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 615a50803fa84b7e9dfc4c52ec1cf6fe67269deeba96e6ce64703e0b7ca25876
4
- data.tar.gz: 0c681f172ce1be8634fea10dd7f54aa9fbcca8cfaf27deab8713c16aa4e8b50c
3
+ metadata.gz: 32e9b82b8d17f82c2e75104bbac8b5a63a510d1e46af93d31b103534cf947e40
4
+ data.tar.gz: 264b1409dd10bc7ba8436576a1de143116b2d4616a24d58e66bb7e1ccd024b98
5
5
  SHA512:
6
- metadata.gz: 38ac3457dd0054800082a5592784253fd1ef098d7e69343ee2011ba537be687dde37ba5c40e90bb64cc3d1189a5727a92c45cb2db50c32daca7baa742cbd028f
7
- data.tar.gz: ced818685583e17de12cfb98d152f24b6a058526192a33be30fb57e577b21b2529690ab9a3e6be1f462861bd3903ee0ea6781a9d1178e5efb6b11ca1c7d4fb96
6
+ metadata.gz: 736aaee9390871b6dfb7a03254c2c3cf86ccb2e2f46936cc147e4b3772438591f11a589e6f38fbd52c24214007a9d2293ddb9fe987dba84912608af802f179f9
7
+ data.tar.gz: a9c3846d7ae00794301da5dce514b2f6ef90cea9a3cc293659a4d7f1bc54de82973ad90c86a388967eddb6466449cccacc5094f170b21870ffeb0208329c393d
@@ -0,0 +1,8 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: bundler
4
+ directory: "/"
5
+ schedule:
6
+ interval: weekly
7
+ time: "20:00"
8
+ open-pull-requests-limit: 10
@@ -0,0 +1,35 @@
1
+ # This workflow uses actions that are not certified by GitHub.
2
+ # They are provided by a third-party and are governed by
3
+ # separate terms of service, privacy policy, and support
4
+ # documentation.
5
+ # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
6
+ # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
7
+
8
+ name: Ruby
9
+
10
+ on: [push, pull_request]
11
+
12
+ jobs:
13
+ test:
14
+
15
+ runs-on: ubuntu-latest
16
+ strategy:
17
+ matrix:
18
+ ruby-version: ['2.5', '2.6', '2.7', '3.0']
19
+
20
+ steps:
21
+ - uses: actions/checkout@v2
22
+ - name: Set up Ruby
23
+ # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
24
+ # change this to (see https://github.com/ruby/setup-ruby#versioning):
25
+ # uses: ruby/setup-ruby@v1
26
+ uses: ruby/setup-ruby@473e4d8fe5dd94ee328fdfca9f8c9c7afc9dae5e
27
+ with:
28
+ ruby-version: ${{ matrix.ruby-version }}
29
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
30
+ - name: Install dependencies
31
+ run: bundle install
32
+ - name: Compile
33
+ run: bundle exec rake compile
34
+ - name: Run tests
35
+ run: bundle exec rspec
data/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  [![Gem Version](https://badge.fury.io/rb/zstd-ruby.svg)](https://badge.fury.io/rb/zstd-ruby)
2
- [![Build Status](https://travis-ci.org/SpringMT/zstd-ruby.svg?branch=master)](https://travis-ci.org/SpringMT/zstd-ruby)
2
+ ![Build Status](https://github.com/SpringMT/zstd-ruby/actions/workflows/ruby.yml/badge.svg?branch=master)
3
3
 
4
4
  # zstd-ruby
5
5
 
@@ -10,7 +10,7 @@ See https://github.com/facebook/zstd
10
10
  Fork from https://github.com/jarredholman/ruby-zstd.
11
11
 
12
12
  ## Zstd version
13
- v1.4.1 (https://github.com/facebook/zstd/tree/v1.4.1)
13
+ v1.5.0 (https://github.com/facebook/zstd/tree/v1.5.0)
14
14
 
15
15
  ## Installation
16
16
 
@@ -65,9 +65,7 @@ cxx_library(
65
65
  name='zdict',
66
66
  header_namespace='',
67
67
  visibility=['PUBLIC'],
68
- exported_headers=subdir_glob([
69
- ('dictBuilder', 'zdict.h'),
70
- ]),
68
+ exported_headers=['zdict.h'],
71
69
  headers=subdir_glob([
72
70
  ('dictBuilder', 'divsufsort.h'),
73
71
  ('dictBuilder', 'cover.h'),
@@ -131,10 +129,10 @@ cxx_library(
131
129
  name='errors',
132
130
  header_namespace='',
133
131
  visibility=['PUBLIC'],
134
- exported_headers=subdir_glob([
135
- ('common', 'error_private.h'),
136
- ('common', 'zstd_errors.h'),
137
- ]),
132
+ exported_headers=[
133
+ 'zstd_errors.h',
134
+ 'common/error_private.h',
135
+ ]
138
136
  srcs=['common/error_private.c'],
139
137
  )
140
138
 
@@ -1,12 +1,28 @@
1
1
  # ################################################################
2
- # Copyright (c) 2015-present, Yann Collet, Facebook, Inc.
2
+ # Copyright (c) Yann Collet, Facebook, Inc.
3
3
  # All rights reserved.
4
4
  #
5
5
  # This source code is licensed under both the BSD-style license (found in the
6
6
  # LICENSE file in the root directory of this source tree) and the GPLv2 (found
7
7
  # in the COPYING file in the root directory of this source tree).
8
+ # You may select, at your option, one of the above-listed licenses.
8
9
  # ################################################################
9
10
 
11
+ # Note: by default, the static library is built single-threaded and dynamic library is built
12
+ # multi-threaded. It is possible to force multi or single threaded builds by appending
13
+ # -mt or -nomt to the build target (like lib-mt for multi-threaded, lib-nomt for single-threaded).
14
+ .PHONY: default
15
+ default: lib-release
16
+
17
+ # define silent mode as default (verbose mode with V=1 or VERBOSE=1)
18
+ $(V)$(VERBOSE).SILENT:
19
+
20
+ # When cross-compiling from linux to windows,
21
+ # one might need to specify TARGET_SYSTEM as "Windows."
22
+ # Building from Fedora fails without it.
23
+ # (but Ubuntu and Debian don't need to set anything)
24
+ TARGET_SYSTEM ?= $(OS)
25
+
10
26
  # Version numbers
11
27
  LIBVER_MAJOR_SCRIPT:=`sed -n '/define ZSTD_VERSION_MAJOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < ./zstd.h`
12
28
  LIBVER_MINOR_SCRIPT:=`sed -n '/define ZSTD_VERSION_MINOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < ./zstd.h`
@@ -19,25 +35,53 @@ LIBVER := $(shell echo $(LIBVER_SCRIPT))
19
35
  VERSION?= $(LIBVER)
20
36
  CCVER := $(shell $(CC) --version)
21
37
 
22
- CPPFLAGS+= -I. -I./common -DXXH_NAMESPACE=ZSTD_
23
- ifeq ($(OS),Windows_NT) # MinGW assumed
24
- CPPFLAGS += -D__USE_MINGW_ANSI_STDIO # compatibility with %zu formatting
38
+ # ZSTD_LIB_MINIFY is a helper variable that
39
+ # configures a bunch of other variables to space-optimized defaults.
40
+ ZSTD_LIB_MINIFY ?= 0
41
+ ifneq ($(ZSTD_LIB_MINIFY), 0)
42
+ HAVE_CC_OZ ?= $(shell echo "" | $(CC) -Oz -x c -c - -o /dev/null 2> /dev/null && echo 1 || echo 0)
43
+ ZSTD_LEGACY_SUPPORT ?= 0
44
+ ZSTD_LIB_DEPRECATED ?= 0
45
+ HUF_FORCE_DECOMPRESS_X1 ?= 1
46
+ ZSTD_FORCE_DECOMPRESS_SHORT ?= 1
47
+ ZSTD_NO_INLINE ?= 1
48
+ ZSTD_STRIP_ERROR_STRINGS ?= 1
49
+ ifneq ($(HAVE_CC_OZ), 0)
50
+ # Some compilers (clang) support an even more space-optimized setting.
51
+ CFLAGS += -Oz
52
+ else
53
+ CFLAGS += -Os
54
+ endif
55
+ CFLAGS += -fno-stack-protector -fomit-frame-pointer -fno-ident \
56
+ -DDYNAMIC_BMI2=0 -DNDEBUG
57
+ else
58
+ CFLAGS += -O3
59
+ endif
60
+
61
+ DEBUGLEVEL ?= 0
62
+ CPPFLAGS += -DXXH_NAMESPACE=ZSTD_ -DDEBUGLEVEL=$(DEBUGLEVEL)
63
+ ifeq ($(TARGET_SYSTEM),Windows_NT) # MinGW assumed
64
+ CPPFLAGS += -D__USE_MINGW_ANSI_STDIO # compatibility with %zu formatting
25
65
  endif
26
- CFLAGS ?= -O3
27
66
  DEBUGFLAGS= -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow \
28
67
  -Wstrict-aliasing=1 -Wswitch-enum -Wdeclaration-after-statement \
29
68
  -Wstrict-prototypes -Wundef -Wpointer-arith \
30
69
  -Wvla -Wformat=2 -Winit-self -Wfloat-equal -Wwrite-strings \
31
70
  -Wredundant-decls -Wmissing-prototypes -Wc++-compat
32
- CFLAGS += $(DEBUGFLAGS) $(MOREFLAGS)
33
- FLAGS = $(CPPFLAGS) $(CFLAGS)
71
+ CFLAGS += $(DEBUGFLAGS) $(MOREFLAGS)
72
+ FLAGS = $(CPPFLAGS) $(CFLAGS)
73
+
74
+ CPPFLAGS_DYNLIB = -DZSTD_MULTITHREAD # dynamic library build defaults to multi-threaded
75
+ LDFLAGS_DYNLIB = -pthread
76
+ CPPFLAGS_STATLIB = # static library build defaults to single-threaded
34
77
 
35
78
  HAVE_COLORNEVER = $(shell echo a | grep --color=never a > /dev/null 2> /dev/null && echo 1 || echo 0)
36
79
  GREP_OPTIONS ?=
37
80
  ifeq ($HAVE_COLORNEVER, 1)
38
- GREP_OPTIONS += --color=never
81
+ GREP_OPTIONS += --color=never
39
82
  endif
40
83
  GREP = grep $(GREP_OPTIONS)
84
+ SED_ERE_OPT ?= -E
41
85
 
42
86
  ZSTDCOMMON_FILES := $(sort $(wildcard common/*.c))
43
87
  ZSTDCOMP_FILES := $(sort $(wildcard compress/*.c))
@@ -47,170 +91,294 @@ ZDEPR_FILES := $(sort $(wildcard deprecated/*.c))
47
91
  ZSTD_FILES := $(ZSTDCOMMON_FILES)
48
92
 
49
93
  ifeq ($(findstring GCC,$(CCVER)),GCC)
50
- decompress/zstd_decompress_block.o : CFLAGS+=-fno-tree-vectorize
94
+ decompress/zstd_decompress_block.o : CFLAGS+=-fno-tree-vectorize
51
95
  endif
52
96
 
53
- ZSTD_LEGACY_SUPPORT ?= 5
97
+ # Modules
54
98
  ZSTD_LIB_COMPRESSION ?= 1
55
99
  ZSTD_LIB_DECOMPRESSION ?= 1
56
100
  ZSTD_LIB_DICTBUILDER ?= 1
57
- ZSTD_LIB_DEPRECATED ?= 1
101
+ ZSTD_LIB_DEPRECATED ?= 0
102
+
103
+ # Legacy support
104
+ ZSTD_LEGACY_SUPPORT ?= 5
105
+ ZSTD_LEGACY_MULTITHREADED_API ?= 0
106
+
107
+ # Build size optimizations
58
108
  HUF_FORCE_DECOMPRESS_X1 ?= 0
59
109
  HUF_FORCE_DECOMPRESS_X2 ?= 0
60
110
  ZSTD_FORCE_DECOMPRESS_SHORT ?= 0
61
111
  ZSTD_FORCE_DECOMPRESS_LONG ?= 0
62
112
  ZSTD_NO_INLINE ?= 0
63
113
  ZSTD_STRIP_ERROR_STRINGS ?= 0
64
- ZSTD_LEGACY_MULTITHREADED_API ?= 0
65
114
 
66
115
  ifeq ($(ZSTD_LIB_COMPRESSION), 0)
67
- ZSTD_LIB_DICTBUILDER = 0
68
- ZSTD_LIB_DEPRECATED = 0
116
+ ZSTD_LIB_DICTBUILDER = 0
117
+ ZSTD_LIB_DEPRECATED = 0
69
118
  endif
70
119
 
71
120
  ifeq ($(ZSTD_LIB_DECOMPRESSION), 0)
72
- ZSTD_LEGACY_SUPPORT = 0
73
- ZSTD_LIB_DEPRECATED = 0
121
+ ZSTD_LEGACY_SUPPORT = 0
122
+ ZSTD_LIB_DEPRECATED = 0
74
123
  endif
75
124
 
76
125
  ifneq ($(ZSTD_LIB_COMPRESSION), 0)
77
- ZSTD_FILES += $(ZSTDCOMP_FILES)
126
+ ZSTD_FILES += $(ZSTDCOMP_FILES)
78
127
  endif
79
128
 
80
129
  ifneq ($(ZSTD_LIB_DECOMPRESSION), 0)
81
- ZSTD_FILES += $(ZSTDDECOMP_FILES)
130
+ ZSTD_FILES += $(ZSTDDECOMP_FILES)
82
131
  endif
83
132
 
84
133
  ifneq ($(ZSTD_LIB_DEPRECATED), 0)
85
- ZSTD_FILES += $(ZDEPR_FILES)
134
+ ZSTD_FILES += $(ZDEPR_FILES)
86
135
  endif
87
136
 
88
137
  ifneq ($(ZSTD_LIB_DICTBUILDER), 0)
89
- ZSTD_FILES += $(ZDICT_FILES)
138
+ ZSTD_FILES += $(ZDICT_FILES)
90
139
  endif
91
140
 
92
141
  ifneq ($(HUF_FORCE_DECOMPRESS_X1), 0)
93
- CFLAGS += -DHUF_FORCE_DECOMPRESS_X1
142
+ CFLAGS += -DHUF_FORCE_DECOMPRESS_X1
94
143
  endif
95
144
 
96
145
  ifneq ($(HUF_FORCE_DECOMPRESS_X2), 0)
97
- CFLAGS += -DHUF_FORCE_DECOMPRESS_X2
146
+ CFLAGS += -DHUF_FORCE_DECOMPRESS_X2
98
147
  endif
99
148
 
100
149
  ifneq ($(ZSTD_FORCE_DECOMPRESS_SHORT), 0)
101
- CFLAGS += -DZSTD_FORCE_DECOMPRESS_SHORT
150
+ CFLAGS += -DZSTD_FORCE_DECOMPRESS_SHORT
102
151
  endif
103
152
 
104
153
  ifneq ($(ZSTD_FORCE_DECOMPRESS_LONG), 0)
105
- CFLAGS += -DZSTD_FORCE_DECOMPRESS_LONG
154
+ CFLAGS += -DZSTD_FORCE_DECOMPRESS_LONG
106
155
  endif
107
156
 
108
157
  ifneq ($(ZSTD_NO_INLINE), 0)
109
- CFLAGS += -DZSTD_NO_INLINE
158
+ CFLAGS += -DZSTD_NO_INLINE
110
159
  endif
111
160
 
112
161
  ifneq ($(ZSTD_STRIP_ERROR_STRINGS), 0)
113
- CFLAGS += -DZSTD_STRIP_ERROR_STRINGS
162
+ CFLAGS += -DZSTD_STRIP_ERROR_STRINGS
114
163
  endif
115
164
 
116
165
  ifneq ($(ZSTD_LEGACY_MULTITHREADED_API), 0)
117
- CFLAGS += -DZSTD_LEGACY_MULTITHREADED_API
166
+ CFLAGS += -DZSTD_LEGACY_MULTITHREADED_API
118
167
  endif
119
168
 
120
169
  ifneq ($(ZSTD_LEGACY_SUPPORT), 0)
121
170
  ifeq ($(shell test $(ZSTD_LEGACY_SUPPORT) -lt 8; echo $$?), 0)
122
- ZSTD_FILES += $(shell ls legacy/*.c | $(GREP) 'v0[$(ZSTD_LEGACY_SUPPORT)-7]')
171
+ ZSTD_FILES += $(shell ls legacy/*.c | $(GREP) 'v0[$(ZSTD_LEGACY_SUPPORT)-7]')
123
172
  endif
124
- CPPFLAGS += -I./legacy
125
173
  endif
126
174
  CPPFLAGS += -DZSTD_LEGACY_SUPPORT=$(ZSTD_LEGACY_SUPPORT)
127
175
 
128
- ZSTD_OBJ := $(patsubst %.c,%.o,$(ZSTD_FILES))
176
+ ZSTD_LOCAL_SRC := $(notdir $(ZSTD_FILES))
177
+ ZSTD_LOCAL_OBJ := $(ZSTD_LOCAL_SRC:.c=.o)
178
+
179
+ ZSTD_SUBDIR := common compress decompress dictBuilder legacy deprecated
180
+ vpath %.c $(ZSTD_SUBDIR)
181
+
182
+ UNAME := $(shell uname)
183
+
184
+ ifndef BUILD_DIR
185
+ ifeq ($(UNAME), Darwin)
186
+ ifeq ($(shell md5 < /dev/null > /dev/null; echo $$?), 0)
187
+ HASH ?= md5
188
+ endif
189
+ else ifeq ($(UNAME), FreeBSD)
190
+ HASH ?= gmd5sum
191
+ else ifeq ($(UNAME), NetBSD)
192
+ HASH ?= md5 -n
193
+ else ifeq ($(UNAME), OpenBSD)
194
+ HASH ?= md5
195
+ endif
196
+ HASH ?= md5sum
197
+
198
+ HASH_DIR = conf_$(shell echo $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(ZSTD_FILES) | $(HASH) | cut -f 1 -d " " )
199
+ HAVE_HASH :=$(shell echo 1 | $(HASH) > /dev/null && echo 1 || echo 0)
200
+ ifeq ($(HAVE_HASH),0)
201
+ $(info warning : could not find HASH ($(HASH)), needed to differentiate builds using different flags)
202
+ BUILD_DIR := obj/generic_noconf
203
+ endif
204
+ endif # BUILD_DIR
205
+
129
206
 
130
207
  # macOS linker doesn't support -soname, and use different extension
131
208
  # see : https://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/DynamicLibraryDesignGuidelines.html
132
- ifeq ($(shell uname), Darwin)
133
- SHARED_EXT = dylib
134
- SHARED_EXT_MAJOR = $(LIBVER_MAJOR).$(SHARED_EXT)
135
- SHARED_EXT_VER = $(LIBVER).$(SHARED_EXT)
136
- SONAME_FLAGS = -install_name $(LIBDIR)/libzstd.$(SHARED_EXT_MAJOR) -compatibility_version $(LIBVER_MAJOR) -current_version $(LIBVER)
209
+ ifeq ($(UNAME), Darwin)
210
+ SHARED_EXT = dylib
211
+ SHARED_EXT_MAJOR = $(LIBVER_MAJOR).$(SHARED_EXT)
212
+ SHARED_EXT_VER = $(LIBVER).$(SHARED_EXT)
213
+ SONAME_FLAGS = -install_name $(LIBDIR)/libzstd.$(SHARED_EXT_MAJOR) -compatibility_version $(LIBVER_MAJOR) -current_version $(LIBVER)
137
214
  else
138
- SONAME_FLAGS = -Wl,-soname=libzstd.$(SHARED_EXT).$(LIBVER_MAJOR)
139
- SHARED_EXT = so
140
- SHARED_EXT_MAJOR = $(SHARED_EXT).$(LIBVER_MAJOR)
141
- SHARED_EXT_VER = $(SHARED_EXT).$(LIBVER)
215
+ SONAME_FLAGS = -Wl,-soname=libzstd.$(SHARED_EXT).$(LIBVER_MAJOR)
216
+ SHARED_EXT = so
217
+ SHARED_EXT_MAJOR = $(SHARED_EXT).$(LIBVER_MAJOR)
218
+ SHARED_EXT_VER = $(SHARED_EXT).$(LIBVER)
142
219
  endif
143
220
 
221
+ SET_CACHE_DIRECTORY = \
222
+ +$(MAKE) --no-print-directory $@ \
223
+ BUILD_DIR=obj/$(HASH_DIR) \
224
+ CPPFLAGS="$(CPPFLAGS)" \
225
+ CFLAGS="$(CFLAGS)" \
226
+ LDFLAGS="$(LDFLAGS)"
144
227
 
145
- .PHONY: default all clean install uninstall
146
-
147
- default: lib-release
148
228
 
229
+ .PHONY: all
149
230
  all: lib
150
231
 
151
- libzstd.a: ARFLAGS = rcs
152
- libzstd.a: $(ZSTD_OBJ)
153
- @echo compiling static library
154
- @$(AR) $(ARFLAGS) $@ $^
155
232
 
156
- libzstd.a-mt: CPPFLAGS += -DZSTD_MULTITHREAD
157
- libzstd.a-mt: libzstd.a
233
+ .PHONY: libzstd.a # must be run every time
234
+ libzstd.a: CPPFLAGS += $(CPPFLAGS_STATLIB)
158
235
 
159
- ifneq (,$(filter Windows%,$(OS)))
236
+ ifndef BUILD_DIR
237
+ # determine BUILD_DIR from compilation flags
160
238
 
161
- LIBZSTD = dll\libzstd.dll
162
- $(LIBZSTD): $(ZSTD_FILES)
163
- @echo compiling dynamic library $(LIBVER)
164
- $(CC) $(FLAGS) -DZSTD_DLL_EXPORT=1 -Wl,--out-implib,dll\libzstd.lib -shared $^ -o $@
239
+ libzstd.a:
240
+ $(SET_CACHE_DIRECTORY)
165
241
 
166
242
  else
243
+ # BUILD_DIR is defined
244
+
245
+ ZSTD_STATLIB_DIR := $(BUILD_DIR)/static
246
+ ZSTD_STATLIB := $(ZSTD_STATLIB_DIR)/libzstd.a
247
+ ZSTD_STATLIB_OBJ := $(addprefix $(ZSTD_STATLIB_DIR)/,$(ZSTD_LOCAL_OBJ))
248
+ $(ZSTD_STATLIB): ARFLAGS = rcs
249
+ $(ZSTD_STATLIB): | $(ZSTD_STATLIB_DIR)
250
+ $(ZSTD_STATLIB): $(ZSTD_STATLIB_OBJ)
251
+ # Check for multithread flag at target execution time
252
+ $(if $(filter -DZSTD_MULTITHREAD,$(CPPFLAGS)),\
253
+ @echo compiling multi-threaded static library $(LIBVER),\
254
+ @echo compiling single-threaded static library $(LIBVER))
255
+ $(AR) $(ARFLAGS) $@ $^
256
+
257
+ libzstd.a: $(ZSTD_STATLIB)
258
+ cp -f $< $@
167
259
 
168
- LIBZSTD = libzstd.$(SHARED_EXT_VER)
169
- $(LIBZSTD): LDFLAGS += -shared -fPIC -fvisibility=hidden
260
+ endif
261
+
262
+ ifneq (,$(filter Windows%,$(TARGET_SYSTEM)))
263
+
264
+ LIBZSTD = dll/libzstd.dll
170
265
  $(LIBZSTD): $(ZSTD_FILES)
171
266
  @echo compiling dynamic library $(LIBVER)
172
- @$(CC) $(FLAGS) $^ $(LDFLAGS) $(SONAME_FLAGS) -o $@
267
+ $(CC) $(FLAGS) -DZSTD_DLL_EXPORT=1 -Wl,--out-implib,dll/libzstd.dll.a -shared $^ -o $@
268
+
269
+ else # not Windows
270
+
271
+ LIBZSTD = libzstd.$(SHARED_EXT_VER)
272
+ .PHONY: $(LIBZSTD) # must be run every time
273
+ $(LIBZSTD): CPPFLAGS += $(CPPFLAGS_DYNLIB)
274
+ $(LIBZSTD): CFLAGS += -fPIC -fvisibility=hidden
275
+ $(LIBZSTD): LDFLAGS += -shared $(LDFLAGS_DYNLIB)
276
+
277
+ ifndef BUILD_DIR
278
+ # determine BUILD_DIR from compilation flags
279
+
280
+ $(LIBZSTD):
281
+ $(SET_CACHE_DIRECTORY)
282
+
283
+ else
284
+ # BUILD_DIR is defined
285
+
286
+ ZSTD_DYNLIB_DIR := $(BUILD_DIR)/dynamic
287
+ ZSTD_DYNLIB := $(ZSTD_DYNLIB_DIR)/$(LIBZSTD)
288
+ ZSTD_DYNLIB_OBJ := $(addprefix $(ZSTD_DYNLIB_DIR)/,$(ZSTD_LOCAL_OBJ))
289
+
290
+ $(ZSTD_DYNLIB): | $(ZSTD_DYNLIB_DIR)
291
+ $(ZSTD_DYNLIB): $(ZSTD_DYNLIB_OBJ)
292
+ # Check for multithread flag at target execution time
293
+ $(if $(filter -DZSTD_MULTITHREAD,$(CPPFLAGS)),\
294
+ @echo compiling multi-threaded dynamic library $(LIBVER),\
295
+ @echo compiling single-threaded dynamic library $(LIBVER))
296
+ $(CC) $(FLAGS) $^ $(LDFLAGS) $(SONAME_FLAGS) -o $@
173
297
  @echo creating versioned links
174
- @ln -sf $@ libzstd.$(SHARED_EXT_MAJOR)
175
- @ln -sf $@ libzstd.$(SHARED_EXT)
298
+ ln -sf $@ libzstd.$(SHARED_EXT_MAJOR)
299
+ ln -sf $@ libzstd.$(SHARED_EXT)
176
300
 
177
- endif
301
+ $(LIBZSTD): $(ZSTD_DYNLIB)
302
+ cp -f $< $@
178
303
 
304
+ endif # ifndef BUILD_DIR
305
+ endif # if windows
179
306
 
307
+ .PHONY: libzstd
180
308
  libzstd : $(LIBZSTD)
181
309
 
182
- libzstd-mt : CPPFLAGS += -DZSTD_MULTITHREAD
183
- libzstd-mt : libzstd
310
+ .PHONY: lib
311
+ lib : libzstd.a libzstd
312
+
313
+
314
+ # note : do not define lib-mt or lib-release as .PHONY
315
+ # make does not consider implicit pattern rule for .PHONY target
316
+
317
+ %-mt : CPPFLAGS_DYNLIB := -DZSTD_MULTITHREAD
318
+ %-mt : CPPFLAGS_STATLIB := -DZSTD_MULTITHREAD
319
+ %-mt : LDFLAGS_DYNLIB := -pthread
320
+ %-mt : %
321
+ @echo multi-threaded build completed
322
+
323
+ %-nomt : CPPFLAGS_DYNLIB :=
324
+ %-nomt : LDFLAGS_DYNLIB :=
325
+ %-nomt : CPPFLAGS_STATLIB :=
326
+ %-nomt : %
327
+ @echo single-threaded build completed
328
+
329
+ %-release : DEBUGFLAGS :=
330
+ %-release : %
331
+ @echo release build completed
184
332
 
185
- lib: libzstd.a libzstd
186
333
 
187
- lib-mt: CPPFLAGS += -DZSTD_MULTITHREAD
188
- lib-mt: lib
334
+ # Generate .h dependencies automatically
335
+
336
+ DEPFLAGS = -MT $@ -MMD -MP -MF
337
+
338
+ $(ZSTD_DYNLIB_DIR)/%.o : %.c $(ZSTD_DYNLIB_DIR)/%.d | $(ZSTD_DYNLIB_DIR)
339
+ @echo CC $@
340
+ $(COMPILE.c) $(DEPFLAGS) $(ZSTD_DYNLIB_DIR)/$*.d $(OUTPUT_OPTION) $<
341
+
342
+ $(ZSTD_STATLIB_DIR)/%.o : %.c $(ZSTD_STATLIB_DIR)/%.d | $(ZSTD_STATLIB_DIR)
343
+ @echo CC $@
344
+ $(COMPILE.c) $(DEPFLAGS) $(ZSTD_STATLIB_DIR)/$*.d $(OUTPUT_OPTION) $<
345
+
346
+ MKDIR ?= mkdir
347
+ $(BUILD_DIR) $(ZSTD_DYNLIB_DIR) $(ZSTD_STATLIB_DIR):
348
+ $(MKDIR) -p $@
349
+
350
+ DEPFILES := $(ZSTD_DYNLIB_OBJ:.o=.d) $(ZSTD_STATLIB_OBJ:.o=.d)
351
+ $(DEPFILES):
352
+
353
+ include $(wildcard $(DEPFILES))
189
354
 
190
- lib-release lib-release-mt: DEBUGFLAGS :=
191
- lib-release: lib
192
- lib-release-mt: lib-mt
193
355
 
194
356
  # Special case : building library in single-thread mode _and_ without zstdmt_compress.c
195
357
  ZSTDMT_FILES = compress/zstdmt_compress.c
196
358
  ZSTD_NOMT_FILES = $(filter-out $(ZSTDMT_FILES),$(ZSTD_FILES))
197
- libzstd-nomt: LDFLAGS += -shared -fPIC -fvisibility=hidden
359
+ libzstd-nomt: CFLAGS += -fPIC -fvisibility=hidden
360
+ libzstd-nomt: LDFLAGS += -shared
198
361
  libzstd-nomt: $(ZSTD_NOMT_FILES)
199
362
  @echo compiling single-thread dynamic library $(LIBVER)
200
363
  @echo files : $(ZSTD_NOMT_FILES)
201
- @$(CC) $(FLAGS) $^ $(LDFLAGS) $(SONAME_FLAGS) -o $@
364
+ $(CC) $(FLAGS) $^ $(LDFLAGS) $(SONAME_FLAGS) -o $@
202
365
 
366
+ .PHONY: clean
203
367
  clean:
204
- @$(RM) -r *.dSYM # macOS-specific
205
- @$(RM) core *.o *.a *.gcda *.$(SHARED_EXT) *.$(SHARED_EXT).* libzstd.pc
206
- @$(RM) dll/libzstd.dll dll/libzstd.lib libzstd-nomt*
207
- @$(RM) common/*.o compress/*.o decompress/*.o dictBuilder/*.o legacy/*.o deprecated/*.o
368
+ $(RM) -r *.dSYM # macOS-specific
369
+ $(RM) core *.o *.a *.gcda *.$(SHARED_EXT) *.$(SHARED_EXT).* libzstd.pc
370
+ $(RM) dll/libzstd.dll dll/libzstd.lib libzstd-nomt*
371
+ $(RM) -r obj/*
208
372
  @echo Cleaning library completed
209
373
 
210
374
  #-----------------------------------------------------------------------------
211
- # make install is validated only for Linux, macOS, BSD, Hurd and Solaris targets
375
+ # make install is validated only for below listed environments
212
376
  #-----------------------------------------------------------------------------
213
- ifneq (,$(filter $(shell uname),Linux Darwin GNU/kFreeBSD GNU OpenBSD FreeBSD NetBSD DragonFly SunOS Haiku))
377
+ ifneq (,$(filter $(UNAME),Linux Darwin GNU/kFreeBSD GNU OpenBSD FreeBSD NetBSD DragonFly SunOS Haiku))
378
+
379
+ all: libzstd.pc
380
+
381
+ HAS_EXPLICIT_EXEC_PREFIX := $(if $(or $(EXEC_PREFIX),$(exec_prefix)),1,)
214
382
 
215
383
  DESTDIR ?=
216
384
  # directory variables : GNU conventions prefer lowercase
@@ -219,21 +387,34 @@ DESTDIR ?=
219
387
  prefix ?= /usr/local
220
388
  PREFIX ?= $(prefix)
221
389
  exec_prefix ?= $(PREFIX)
222
- libdir ?= $(exec_prefix)/lib
390
+ EXEC_PREFIX ?= $(exec_prefix)
391
+ libdir ?= $(EXEC_PREFIX)/lib
223
392
  LIBDIR ?= $(libdir)
224
393
  includedir ?= $(PREFIX)/include
225
394
  INCLUDEDIR ?= $(includedir)
226
395
 
227
- ifneq (,$(filter $(shell uname),FreeBSD NetBSD DragonFly))
228
- PKGCONFIGDIR ?= $(PREFIX)/libdata/pkgconfig
396
+ PCINCDIR := $(patsubst $(PREFIX)%,%,$(INCLUDEDIR))
397
+ PCLIBDIR := $(patsubst $(EXEC_PREFIX)%,%,$(LIBDIR))
398
+
399
+ # If we successfully stripped off a prefix, we'll add a reference to the
400
+ # relevant pc variable.
401
+ PCINCPREFIX := $(if $(findstring $(INCLUDEDIR),$(PCINCDIR)),,$${prefix})
402
+ PCLIBPREFIX := $(if $(findstring $(LIBDIR),$(PCLIBDIR)),,$${exec_prefix})
403
+
404
+ # If no explicit EXEC_PREFIX was set by the caller, write it out as a reference
405
+ # to PREFIX, rather than as a resolved value.
406
+ PCEXEC_PREFIX := $(if $(HAS_EXPLICIT_EXEC_PREFIX),$(EXEC_PREFIX),$${prefix})
407
+
408
+ ifneq (,$(filter $(UNAME),FreeBSD NetBSD DragonFly))
409
+ PKGCONFIGDIR ?= $(PREFIX)/libdata/pkgconfig
229
410
  else
230
- PKGCONFIGDIR ?= $(LIBDIR)/pkgconfig
411
+ PKGCONFIGDIR ?= $(LIBDIR)/pkgconfig
231
412
  endif
232
413
 
233
- ifneq (,$(filter $(shell uname),SunOS))
234
- INSTALL ?= ginstall
414
+ ifneq (,$(filter $(UNAME),SunOS))
415
+ INSTALL ?= ginstall
235
416
  else
236
- INSTALL ?= install
417
+ INSTALL ?= install
237
418
  endif
238
419
 
239
420
  INSTALL_PROGRAM ?= $(INSTALL)
@@ -243,49 +424,59 @@ INSTALL_DATA ?= $(INSTALL) -m 644
243
424
  libzstd.pc:
244
425
  libzstd.pc: libzstd.pc.in
245
426
  @echo creating pkgconfig
246
- @sed -e 's|@PREFIX@|$(PREFIX)|' \
247
- -e 's|@LIBDIR@|$(LIBDIR)|' \
248
- -e 's|@INCLUDEDIR@|$(INCLUDEDIR)|' \
249
- -e 's|@VERSION@|$(VERSION)|' \
250
- $< >$@
251
-
427
+ @sed $(SED_ERE_OPT) \
428
+ -e 's|@PREFIX@|$(PREFIX)|' \
429
+ -e 's|@EXEC_PREFIX@|$(PCEXEC_PREFIX)|' \
430
+ -e 's|@INCLUDEDIR@|$(PCINCPREFIX)$(PCINCDIR)|' \
431
+ -e 's|@LIBDIR@|$(PCLIBPREFIX)$(PCLIBDIR)|' \
432
+ -e 's|@VERSION@|$(VERSION)|' \
433
+ $< >$@
434
+
435
+ .PHONY: install
252
436
  install: install-pc install-static install-shared install-includes
253
437
  @echo zstd static and shared library installed
254
438
 
439
+ .PHONY: install-pc
255
440
  install-pc: libzstd.pc
256
- @$(INSTALL) -d -m 755 $(DESTDIR)$(PKGCONFIGDIR)/
257
- @$(INSTALL_DATA) libzstd.pc $(DESTDIR)$(PKGCONFIGDIR)/
258
-
259
- install-static: libzstd.a
441
+ [ -e $(DESTDIR)$(PKGCONFIGDIR) ] || $(INSTALL) -d -m 755 $(DESTDIR)$(PKGCONFIGDIR)/
442
+ $(INSTALL_DATA) libzstd.pc $(DESTDIR)$(PKGCONFIGDIR)/
443
+
444
+ .PHONY: install-static
445
+ install-static:
446
+ # only generate libzstd.a if it's not already present
447
+ [ -e libzstd.a ] || $(MAKE) libzstd.a-release
448
+ [ -e $(DESTDIR)$(LIBDIR) ] || $(INSTALL) -d -m 755 $(DESTDIR)$(LIBDIR)/
260
449
  @echo Installing static library
261
- @$(INSTALL) -d -m 755 $(DESTDIR)$(LIBDIR)/
262
- @$(INSTALL_DATA) libzstd.a $(DESTDIR)$(LIBDIR)
450
+ $(INSTALL_DATA) libzstd.a $(DESTDIR)$(LIBDIR)
263
451
 
264
- install-shared: libzstd
452
+ .PHONY: install-shared
453
+ install-shared:
454
+ # only generate libzstd.so if it's not already present
455
+ [ -e $(LIBZSTD) ] || $(MAKE) libzstd-release
456
+ [ -e $(DESTDIR)$(LIBDIR) ] || $(INSTALL) -d -m 755 $(DESTDIR)$(LIBDIR)/
265
457
  @echo Installing shared library
266
- @$(INSTALL) -d -m 755 $(DESTDIR)$(LIBDIR)/
267
- @$(INSTALL_PROGRAM) $(LIBZSTD) $(DESTDIR)$(LIBDIR)
268
- @ln -sf $(LIBZSTD) $(DESTDIR)$(LIBDIR)/libzstd.$(SHARED_EXT_MAJOR)
269
- @ln -sf $(LIBZSTD) $(DESTDIR)$(LIBDIR)/libzstd.$(SHARED_EXT)
458
+ $(INSTALL_PROGRAM) $(LIBZSTD) $(DESTDIR)$(LIBDIR)
459
+ ln -sf $(LIBZSTD) $(DESTDIR)$(LIBDIR)/libzstd.$(SHARED_EXT_MAJOR)
460
+ ln -sf $(LIBZSTD) $(DESTDIR)$(LIBDIR)/libzstd.$(SHARED_EXT)
270
461
 
462
+ .PHONY: install-includes
271
463
  install-includes:
464
+ [ -e $(DESTDIR)$(INCLUDEDIR) ] || $(INSTALL) -d -m 755 $(DESTDIR)$(INCLUDEDIR)/
272
465
  @echo Installing includes
273
- @$(INSTALL) -d -m 755 $(DESTDIR)$(INCLUDEDIR)/
274
- @$(INSTALL_DATA) zstd.h $(DESTDIR)$(INCLUDEDIR)
275
- @$(INSTALL_DATA) common/zstd_errors.h $(DESTDIR)$(INCLUDEDIR)
276
- @$(INSTALL_DATA) deprecated/zbuff.h $(DESTDIR)$(INCLUDEDIR) # prototypes generate deprecation warnings
277
- @$(INSTALL_DATA) dictBuilder/zdict.h $(DESTDIR)$(INCLUDEDIR)
466
+ $(INSTALL_DATA) zstd.h $(DESTDIR)$(INCLUDEDIR)
467
+ $(INSTALL_DATA) zstd_errors.h $(DESTDIR)$(INCLUDEDIR)
468
+ $(INSTALL_DATA) zdict.h $(DESTDIR)$(INCLUDEDIR)
278
469
 
470
+ .PHONY: uninstall
279
471
  uninstall:
280
- @$(RM) $(DESTDIR)$(LIBDIR)/libzstd.a
281
- @$(RM) $(DESTDIR)$(LIBDIR)/libzstd.$(SHARED_EXT)
282
- @$(RM) $(DESTDIR)$(LIBDIR)/libzstd.$(SHARED_EXT_MAJOR)
283
- @$(RM) $(DESTDIR)$(LIBDIR)/$(LIBZSTD)
284
- @$(RM) $(DESTDIR)$(PKGCONFIGDIR)/libzstd.pc
285
- @$(RM) $(DESTDIR)$(INCLUDEDIR)/zstd.h
286
- @$(RM) $(DESTDIR)$(INCLUDEDIR)/zstd_errors.h
287
- @$(RM) $(DESTDIR)$(INCLUDEDIR)/zbuff.h # Deprecated streaming functions
288
- @$(RM) $(DESTDIR)$(INCLUDEDIR)/zdict.h
472
+ $(RM) $(DESTDIR)$(LIBDIR)/libzstd.a
473
+ $(RM) $(DESTDIR)$(LIBDIR)/libzstd.$(SHARED_EXT)
474
+ $(RM) $(DESTDIR)$(LIBDIR)/libzstd.$(SHARED_EXT_MAJOR)
475
+ $(RM) $(DESTDIR)$(LIBDIR)/$(LIBZSTD)
476
+ $(RM) $(DESTDIR)$(PKGCONFIGDIR)/libzstd.pc
477
+ $(RM) $(DESTDIR)$(INCLUDEDIR)/zstd.h
478
+ $(RM) $(DESTDIR)$(INCLUDEDIR)/zstd_errors.h
479
+ $(RM) $(DESTDIR)$(INCLUDEDIR)/zdict.h
289
480
  @echo zstd libraries successfully uninstalled
290
481
 
291
482
  endif