zstd-ruby 1.4.0.0 → 1.4.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/ruby.yml +35 -0
- data/README.md +2 -2
- data/ext/zstdruby/libzstd/Makefile +274 -107
- data/ext/zstdruby/libzstd/README.md +75 -16
- data/ext/zstdruby/libzstd/common/bitstream.h +59 -51
- data/ext/zstdruby/libzstd/common/compiler.h +154 -5
- data/ext/zstdruby/libzstd/common/cpu.h +1 -3
- data/ext/zstdruby/libzstd/common/debug.c +11 -31
- data/ext/zstdruby/libzstd/common/debug.h +22 -49
- data/ext/zstdruby/libzstd/common/entropy_common.c +201 -75
- data/ext/zstdruby/libzstd/common/error_private.c +3 -1
- data/ext/zstdruby/libzstd/common/error_private.h +7 -3
- data/ext/zstdruby/libzstd/common/fse.h +50 -42
- data/ext/zstdruby/libzstd/common/fse_decompress.c +134 -50
- data/ext/zstdruby/libzstd/common/huf.h +41 -38
- data/ext/zstdruby/libzstd/common/mem.h +68 -22
- data/ext/zstdruby/libzstd/common/pool.c +30 -20
- data/ext/zstdruby/libzstd/common/pool.h +3 -3
- data/ext/zstdruby/libzstd/common/threading.c +51 -4
- data/ext/zstdruby/libzstd/common/threading.h +36 -4
- data/ext/zstdruby/libzstd/common/xxhash.c +39 -89
- data/ext/zstdruby/libzstd/common/xxhash.h +12 -32
- data/ext/zstdruby/libzstd/common/zstd_common.c +10 -10
- data/ext/zstdruby/libzstd/common/zstd_deps.h +111 -0
- data/ext/zstdruby/libzstd/common/zstd_errors.h +3 -1
- data/ext/zstdruby/libzstd/common/zstd_internal.h +231 -72
- data/ext/zstdruby/libzstd/common/zstd_trace.c +42 -0
- data/ext/zstdruby/libzstd/common/zstd_trace.h +152 -0
- data/ext/zstdruby/libzstd/compress/fse_compress.c +47 -63
- data/ext/zstdruby/libzstd/compress/hist.c +41 -63
- data/ext/zstdruby/libzstd/compress/hist.h +13 -33
- data/ext/zstdruby/libzstd/compress/huf_compress.c +288 -172
- data/ext/zstdruby/libzstd/compress/zstd_compress.c +2504 -1626
- data/ext/zstdruby/libzstd/compress/zstd_compress_internal.h +446 -85
- data/ext/zstdruby/libzstd/compress/zstd_compress_literals.c +158 -0
- data/ext/zstdruby/libzstd/compress/zstd_compress_literals.h +29 -0
- data/ext/zstdruby/libzstd/compress/zstd_compress_sequences.c +433 -0
- data/ext/zstdruby/libzstd/compress/zstd_compress_sequences.h +54 -0
- data/ext/zstdruby/libzstd/compress/zstd_compress_superblock.c +849 -0
- data/ext/zstdruby/libzstd/compress/zstd_compress_superblock.h +32 -0
- data/ext/zstdruby/libzstd/compress/zstd_cwksp.h +561 -0
- data/ext/zstdruby/libzstd/compress/zstd_double_fast.c +82 -60
- data/ext/zstdruby/libzstd/compress/zstd_double_fast.h +2 -2
- data/ext/zstdruby/libzstd/compress/zstd_fast.c +106 -80
- data/ext/zstdruby/libzstd/compress/zstd_fast.h +2 -2
- data/ext/zstdruby/libzstd/compress/zstd_lazy.c +411 -105
- data/ext/zstdruby/libzstd/compress/zstd_lazy.h +21 -1
- data/ext/zstdruby/libzstd/compress/zstd_ldm.c +296 -207
- data/ext/zstdruby/libzstd/compress/zstd_ldm.h +14 -3
- data/ext/zstdruby/libzstd/compress/zstd_ldm_geartab.h +103 -0
- data/ext/zstdruby/libzstd/compress/zstd_opt.c +260 -148
- data/ext/zstdruby/libzstd/compress/zstd_opt.h +1 -1
- data/ext/zstdruby/libzstd/compress/zstdmt_compress.c +153 -440
- data/ext/zstdruby/libzstd/compress/zstdmt_compress.h +29 -110
- data/ext/zstdruby/libzstd/decompress/huf_decompress.c +356 -238
- data/ext/zstdruby/libzstd/decompress/zstd_ddict.c +20 -16
- data/ext/zstdruby/libzstd/decompress/zstd_ddict.h +3 -3
- data/ext/zstdruby/libzstd/decompress/zstd_decompress.c +641 -238
- data/ext/zstdruby/libzstd/decompress/zstd_decompress_block.c +600 -371
- data/ext/zstdruby/libzstd/decompress/zstd_decompress_block.h +8 -5
- data/ext/zstdruby/libzstd/decompress/zstd_decompress_internal.h +40 -9
- data/ext/zstdruby/libzstd/deprecated/zbuff.h +9 -8
- data/ext/zstdruby/libzstd/deprecated/zbuff_common.c +2 -2
- data/ext/zstdruby/libzstd/deprecated/zbuff_compress.c +1 -1
- data/ext/zstdruby/libzstd/deprecated/zbuff_decompress.c +1 -1
- data/ext/zstdruby/libzstd/dictBuilder/cover.c +197 -78
- data/ext/zstdruby/libzstd/dictBuilder/cover.h +52 -7
- data/ext/zstdruby/libzstd/dictBuilder/divsufsort.c +1 -1
- data/ext/zstdruby/libzstd/dictBuilder/fastcover.c +84 -66
- data/ext/zstdruby/libzstd/dictBuilder/zdict.c +58 -36
- data/ext/zstdruby/libzstd/dictBuilder/zdict.h +60 -31
- data/ext/zstdruby/libzstd/dll/example/Makefile +2 -1
- data/ext/zstdruby/libzstd/dll/example/README.md +16 -22
- data/ext/zstdruby/libzstd/legacy/zstd_legacy.h +8 -4
- data/ext/zstdruby/libzstd/legacy/zstd_v01.c +115 -111
- data/ext/zstdruby/libzstd/legacy/zstd_v01.h +1 -1
- data/ext/zstdruby/libzstd/legacy/zstd_v02.c +28 -14
- data/ext/zstdruby/libzstd/legacy/zstd_v02.h +1 -1
- data/ext/zstdruby/libzstd/legacy/zstd_v03.c +28 -14
- data/ext/zstdruby/libzstd/legacy/zstd_v03.h +1 -1
- data/ext/zstdruby/libzstd/legacy/zstd_v04.c +36 -19
- data/ext/zstdruby/libzstd/legacy/zstd_v04.h +1 -1
- data/ext/zstdruby/libzstd/legacy/zstd_v05.c +122 -107
- data/ext/zstdruby/libzstd/legacy/zstd_v05.h +2 -2
- data/ext/zstdruby/libzstd/legacy/zstd_v06.c +29 -23
- data/ext/zstdruby/libzstd/legacy/zstd_v06.h +1 -1
- data/ext/zstdruby/libzstd/legacy/zstd_v07.c +34 -24
- data/ext/zstdruby/libzstd/legacy/zstd_v07.h +1 -1
- data/ext/zstdruby/libzstd/libzstd.pc.in +2 -1
- data/ext/zstdruby/libzstd/zstd.h +655 -118
- data/lib/zstd-ruby/version.rb +1 -1
- data/zstd-ruby.gemspec +1 -1
- metadata +20 -10
- data/.travis.yml +0 -14
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1b9fb489baa649ba5ee4d0eab2a8eff41dca8aed169decbcbb94f2b743fff4b9
|
|
4
|
+
data.tar.gz: 466460ae250bdf1b41ad9a520cf22c3457647c64c87f6479bf59a7d5876eb08c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ba520ce0a01a96bfb292bea7d093998e21fa27a19309e8e708d09b1bd033c02101442d7572da9ef02e190932cc4caf348771e9dac5b72bd4479d96c0a14791ec
|
|
7
|
+
data.tar.gz: a1ad48b44fefedd472de63ee6069e9fe928ed436a6c6fe7739ad8666c05420ff75b0ab5a5273fe87d8cdd41be39372ffae8bd707437c16f137e3ad63ca566a17
|
|
@@ -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
|
[](https://badge.fury.io/rb/zstd-ruby)
|
|
2
|
-
|
|
2
|
+

|
|
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.
|
|
13
|
+
v1.4.9 (https://github.com/facebook/zstd/tree/v1.4.9)
|
|
14
14
|
|
|
15
15
|
## Installation
|
|
16
16
|
|
|
@@ -1,12 +1,25 @@
|
|
|
1
1
|
# ################################################################
|
|
2
|
-
# Copyright (c) 2015-
|
|
2
|
+
# Copyright (c) 2015-2021, 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
|
+
.PHONY: default
|
|
12
|
+
default: lib-release
|
|
13
|
+
|
|
14
|
+
# define silent mode as default (verbose mode with V=1 or VERBOSE=1)
|
|
15
|
+
$(V)$(VERBOSE).SILENT:
|
|
16
|
+
|
|
17
|
+
# When cross-compiling from linux to windows,
|
|
18
|
+
# one might need to specify TARGET_SYSTEM as "Windows."
|
|
19
|
+
# Building from Fedora fails without it.
|
|
20
|
+
# (but Ubuntu and Debian don't need to set anything)
|
|
21
|
+
TARGET_SYSTEM ?= $(OS)
|
|
22
|
+
|
|
10
23
|
# Version numbers
|
|
11
24
|
LIBVER_MAJOR_SCRIPT:=`sed -n '/define ZSTD_VERSION_MAJOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < ./zstd.h`
|
|
12
25
|
LIBVER_MINOR_SCRIPT:=`sed -n '/define ZSTD_VERSION_MINOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < ./zstd.h`
|
|
@@ -17,26 +30,51 @@ LIBVER_MINOR := $(shell echo $(LIBVER_MINOR_SCRIPT))
|
|
|
17
30
|
LIBVER_PATCH := $(shell echo $(LIBVER_PATCH_SCRIPT))
|
|
18
31
|
LIBVER := $(shell echo $(LIBVER_SCRIPT))
|
|
19
32
|
VERSION?= $(LIBVER)
|
|
33
|
+
CCVER := $(shell $(CC) --version)
|
|
34
|
+
|
|
35
|
+
# ZSTD_LIB_MINIFY is a helper variable that
|
|
36
|
+
# configures a bunch of other variables to space-optimized defaults.
|
|
37
|
+
ZSTD_LIB_MINIFY ?= 0
|
|
38
|
+
ifneq ($(ZSTD_LIB_MINIFY), 0)
|
|
39
|
+
HAVE_CC_OZ ?= $(shell echo "" | $(CC) -Oz -x c -c - -o /dev/null 2> /dev/null && echo 1 || echo 0)
|
|
40
|
+
ZSTD_LEGACY_SUPPORT ?= 0
|
|
41
|
+
ZSTD_LIB_DEPRECATED ?= 0
|
|
42
|
+
HUF_FORCE_DECOMPRESS_X1 ?= 1
|
|
43
|
+
ZSTD_FORCE_DECOMPRESS_SHORT ?= 1
|
|
44
|
+
ZSTD_NO_INLINE ?= 1
|
|
45
|
+
ZSTD_STRIP_ERROR_STRINGS ?= 1
|
|
46
|
+
ifneq ($(HAVE_CC_OZ), 0)
|
|
47
|
+
# Some compilers (clang) support an even more space-optimized setting.
|
|
48
|
+
CFLAGS += -Oz
|
|
49
|
+
else
|
|
50
|
+
CFLAGS += -Os
|
|
51
|
+
endif
|
|
52
|
+
CFLAGS += -fno-stack-protector -fomit-frame-pointer -fno-ident \
|
|
53
|
+
-DDYNAMIC_BMI2=0 -DNDEBUG
|
|
54
|
+
else
|
|
55
|
+
CFLAGS += -O3
|
|
56
|
+
endif
|
|
20
57
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
58
|
+
DEBUGLEVEL ?= 0
|
|
59
|
+
CPPFLAGS += -DXXH_NAMESPACE=ZSTD_ -DDEBUGLEVEL=$(DEBUGLEVEL)
|
|
60
|
+
ifeq ($(TARGET_SYSTEM),Windows_NT) # MinGW assumed
|
|
61
|
+
CPPFLAGS += -D__USE_MINGW_ANSI_STDIO # compatibility with %zu formatting
|
|
24
62
|
endif
|
|
25
|
-
CFLAGS ?= -O3
|
|
26
63
|
DEBUGFLAGS= -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow \
|
|
27
64
|
-Wstrict-aliasing=1 -Wswitch-enum -Wdeclaration-after-statement \
|
|
28
65
|
-Wstrict-prototypes -Wundef -Wpointer-arith \
|
|
29
66
|
-Wvla -Wformat=2 -Winit-self -Wfloat-equal -Wwrite-strings \
|
|
30
67
|
-Wredundant-decls -Wmissing-prototypes -Wc++-compat
|
|
31
|
-
CFLAGS
|
|
32
|
-
FLAGS
|
|
68
|
+
CFLAGS += $(DEBUGFLAGS) $(MOREFLAGS)
|
|
69
|
+
FLAGS = $(CPPFLAGS) $(CFLAGS)
|
|
33
70
|
|
|
34
71
|
HAVE_COLORNEVER = $(shell echo a | grep --color=never a > /dev/null 2> /dev/null && echo 1 || echo 0)
|
|
35
72
|
GREP_OPTIONS ?=
|
|
36
73
|
ifeq ($HAVE_COLORNEVER, 1)
|
|
37
|
-
GREP_OPTIONS += --color=never
|
|
74
|
+
GREP_OPTIONS += --color=never
|
|
38
75
|
endif
|
|
39
76
|
GREP = grep $(GREP_OPTIONS)
|
|
77
|
+
SED_ERE_OPT ?= -E
|
|
40
78
|
|
|
41
79
|
ZSTDCOMMON_FILES := $(sort $(wildcard common/*.c))
|
|
42
80
|
ZSTDCOMP_FILES := $(sort $(wildcard compress/*.c))
|
|
@@ -45,146 +83,251 @@ ZDICT_FILES := $(sort $(wildcard dictBuilder/*.c))
|
|
|
45
83
|
ZDEPR_FILES := $(sort $(wildcard deprecated/*.c))
|
|
46
84
|
ZSTD_FILES := $(ZSTDCOMMON_FILES)
|
|
47
85
|
|
|
48
|
-
|
|
86
|
+
ifeq ($(findstring GCC,$(CCVER)),GCC)
|
|
87
|
+
decompress/zstd_decompress_block.o : CFLAGS+=-fno-tree-vectorize
|
|
88
|
+
endif
|
|
89
|
+
|
|
90
|
+
# Modules
|
|
49
91
|
ZSTD_LIB_COMPRESSION ?= 1
|
|
50
92
|
ZSTD_LIB_DECOMPRESSION ?= 1
|
|
51
93
|
ZSTD_LIB_DICTBUILDER ?= 1
|
|
52
94
|
ZSTD_LIB_DEPRECATED ?= 1
|
|
95
|
+
|
|
96
|
+
# Legacy support
|
|
97
|
+
ZSTD_LEGACY_SUPPORT ?= 5
|
|
98
|
+
ZSTD_LEGACY_MULTITHREADED_API ?= 0
|
|
99
|
+
|
|
100
|
+
# Build size optimizations
|
|
53
101
|
HUF_FORCE_DECOMPRESS_X1 ?= 0
|
|
54
102
|
HUF_FORCE_DECOMPRESS_X2 ?= 0
|
|
55
103
|
ZSTD_FORCE_DECOMPRESS_SHORT ?= 0
|
|
56
104
|
ZSTD_FORCE_DECOMPRESS_LONG ?= 0
|
|
57
105
|
ZSTD_NO_INLINE ?= 0
|
|
58
106
|
ZSTD_STRIP_ERROR_STRINGS ?= 0
|
|
59
|
-
ZSTD_LEGACY_MULTITHREADED_API ?= 0
|
|
60
107
|
|
|
61
108
|
ifeq ($(ZSTD_LIB_COMPRESSION), 0)
|
|
62
|
-
|
|
63
|
-
|
|
109
|
+
ZSTD_LIB_DICTBUILDER = 0
|
|
110
|
+
ZSTD_LIB_DEPRECATED = 0
|
|
64
111
|
endif
|
|
65
112
|
|
|
66
113
|
ifeq ($(ZSTD_LIB_DECOMPRESSION), 0)
|
|
67
|
-
|
|
68
|
-
|
|
114
|
+
ZSTD_LEGACY_SUPPORT = 0
|
|
115
|
+
ZSTD_LIB_DEPRECATED = 0
|
|
69
116
|
endif
|
|
70
117
|
|
|
71
118
|
ifneq ($(ZSTD_LIB_COMPRESSION), 0)
|
|
72
|
-
|
|
119
|
+
ZSTD_FILES += $(ZSTDCOMP_FILES)
|
|
73
120
|
endif
|
|
74
121
|
|
|
75
122
|
ifneq ($(ZSTD_LIB_DECOMPRESSION), 0)
|
|
76
|
-
|
|
123
|
+
ZSTD_FILES += $(ZSTDDECOMP_FILES)
|
|
77
124
|
endif
|
|
78
125
|
|
|
79
126
|
ifneq ($(ZSTD_LIB_DEPRECATED), 0)
|
|
80
|
-
|
|
127
|
+
ZSTD_FILES += $(ZDEPR_FILES)
|
|
81
128
|
endif
|
|
82
129
|
|
|
83
130
|
ifneq ($(ZSTD_LIB_DICTBUILDER), 0)
|
|
84
|
-
|
|
131
|
+
ZSTD_FILES += $(ZDICT_FILES)
|
|
85
132
|
endif
|
|
86
133
|
|
|
87
134
|
ifneq ($(HUF_FORCE_DECOMPRESS_X1), 0)
|
|
88
|
-
|
|
135
|
+
CFLAGS += -DHUF_FORCE_DECOMPRESS_X1
|
|
89
136
|
endif
|
|
90
137
|
|
|
91
138
|
ifneq ($(HUF_FORCE_DECOMPRESS_X2), 0)
|
|
92
|
-
|
|
139
|
+
CFLAGS += -DHUF_FORCE_DECOMPRESS_X2
|
|
93
140
|
endif
|
|
94
141
|
|
|
95
142
|
ifneq ($(ZSTD_FORCE_DECOMPRESS_SHORT), 0)
|
|
96
|
-
|
|
143
|
+
CFLAGS += -DZSTD_FORCE_DECOMPRESS_SHORT
|
|
97
144
|
endif
|
|
98
145
|
|
|
99
146
|
ifneq ($(ZSTD_FORCE_DECOMPRESS_LONG), 0)
|
|
100
|
-
|
|
147
|
+
CFLAGS += -DZSTD_FORCE_DECOMPRESS_LONG
|
|
101
148
|
endif
|
|
102
149
|
|
|
103
150
|
ifneq ($(ZSTD_NO_INLINE), 0)
|
|
104
|
-
|
|
151
|
+
CFLAGS += -DZSTD_NO_INLINE
|
|
105
152
|
endif
|
|
106
153
|
|
|
107
154
|
ifneq ($(ZSTD_STRIP_ERROR_STRINGS), 0)
|
|
108
|
-
|
|
155
|
+
CFLAGS += -DZSTD_STRIP_ERROR_STRINGS
|
|
109
156
|
endif
|
|
110
157
|
|
|
111
158
|
ifneq ($(ZSTD_LEGACY_MULTITHREADED_API), 0)
|
|
112
|
-
|
|
159
|
+
CFLAGS += -DZSTD_LEGACY_MULTITHREADED_API
|
|
113
160
|
endif
|
|
114
161
|
|
|
115
162
|
ifneq ($(ZSTD_LEGACY_SUPPORT), 0)
|
|
116
163
|
ifeq ($(shell test $(ZSTD_LEGACY_SUPPORT) -lt 8; echo $$?), 0)
|
|
117
|
-
|
|
164
|
+
ZSTD_FILES += $(shell ls legacy/*.c | $(GREP) 'v0[$(ZSTD_LEGACY_SUPPORT)-7]')
|
|
118
165
|
endif
|
|
119
|
-
CPPFLAGS += -I./legacy
|
|
120
166
|
endif
|
|
121
167
|
CPPFLAGS += -DZSTD_LEGACY_SUPPORT=$(ZSTD_LEGACY_SUPPORT)
|
|
122
168
|
|
|
123
|
-
|
|
169
|
+
ZSTD_LOCAL_SRC := $(notdir $(ZSTD_FILES))
|
|
170
|
+
ZSTD_LOCAL_OBJ := $(ZSTD_LOCAL_SRC:.c=.o)
|
|
171
|
+
|
|
172
|
+
ZSTD_SUBDIR := common compress decompress dictBuilder legacy deprecated
|
|
173
|
+
vpath %.c $(ZSTD_SUBDIR)
|
|
174
|
+
|
|
175
|
+
UNAME := $(shell uname)
|
|
176
|
+
|
|
177
|
+
ifndef BUILD_DIR
|
|
178
|
+
ifeq ($(UNAME), Darwin)
|
|
179
|
+
HASH ?= md5
|
|
180
|
+
else ifeq ($(UNAME), FreeBSD)
|
|
181
|
+
HASH ?= gmd5sum
|
|
182
|
+
else ifeq ($(UNAME), NetBSD)
|
|
183
|
+
HASH ?= md5 -n
|
|
184
|
+
else ifeq ($(UNAME), OpenBSD)
|
|
185
|
+
HASH ?= md5
|
|
186
|
+
endif
|
|
187
|
+
HASH ?= md5sum
|
|
188
|
+
|
|
189
|
+
HASH_DIR = conf_$(shell echo $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(ZSTD_FILES) | $(HASH) | cut -f 1 -d " " )
|
|
190
|
+
HAVE_HASH :=$(shell echo 1 | $(HASH) > /dev/null && echo 1 || echo 0)
|
|
191
|
+
ifeq ($(HAVE_HASH),0)
|
|
192
|
+
$(info warning : could not find HASH ($(HASH)), needed to differentiate builds using different flags)
|
|
193
|
+
BUILD_DIR := obj/generic_noconf
|
|
194
|
+
endif
|
|
195
|
+
endif # BUILD_DIR
|
|
196
|
+
|
|
124
197
|
|
|
125
198
|
# macOS linker doesn't support -soname, and use different extension
|
|
126
199
|
# see : https://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/DynamicLibraryDesignGuidelines.html
|
|
127
|
-
ifeq ($(
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
200
|
+
ifeq ($(UNAME), Darwin)
|
|
201
|
+
SHARED_EXT = dylib
|
|
202
|
+
SHARED_EXT_MAJOR = $(LIBVER_MAJOR).$(SHARED_EXT)
|
|
203
|
+
SHARED_EXT_VER = $(LIBVER).$(SHARED_EXT)
|
|
204
|
+
SONAME_FLAGS = -install_name $(LIBDIR)/libzstd.$(SHARED_EXT_MAJOR) -compatibility_version $(LIBVER_MAJOR) -current_version $(LIBVER)
|
|
132
205
|
else
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
206
|
+
SONAME_FLAGS = -Wl,-soname=libzstd.$(SHARED_EXT).$(LIBVER_MAJOR)
|
|
207
|
+
SHARED_EXT = so
|
|
208
|
+
SHARED_EXT_MAJOR = $(SHARED_EXT).$(LIBVER_MAJOR)
|
|
209
|
+
SHARED_EXT_VER = $(SHARED_EXT).$(LIBVER)
|
|
137
210
|
endif
|
|
138
211
|
|
|
212
|
+
SET_CACHE_DIRECTORY = \
|
|
213
|
+
+$(MAKE) --no-print-directory $@ \
|
|
214
|
+
BUILD_DIR=obj/$(HASH_DIR) \
|
|
215
|
+
CPPFLAGS="$(CPPFLAGS)" \
|
|
216
|
+
CFLAGS="$(CFLAGS)" \
|
|
217
|
+
LDFLAGS="$(LDFLAGS)"
|
|
139
218
|
|
|
140
|
-
.PHONY: default all clean install uninstall
|
|
141
|
-
|
|
142
|
-
default: lib-release
|
|
143
219
|
|
|
220
|
+
.PHONY: all
|
|
144
221
|
all: lib
|
|
145
222
|
|
|
146
|
-
|
|
147
|
-
libzstd.a
|
|
223
|
+
|
|
224
|
+
.PHONY: libzstd.a # must be run every time
|
|
225
|
+
|
|
226
|
+
ifndef BUILD_DIR
|
|
227
|
+
# determine BUILD_DIR from compilation flags
|
|
228
|
+
|
|
229
|
+
libzstd.a:
|
|
230
|
+
$(SET_CACHE_DIRECTORY)
|
|
231
|
+
|
|
232
|
+
else
|
|
233
|
+
# BUILD_DIR is defined
|
|
234
|
+
|
|
235
|
+
ZSTD_STATLIB_DIR := $(BUILD_DIR)/static
|
|
236
|
+
ZSTD_STATLIB := $(ZSTD_STATLIB_DIR)/libzstd.a
|
|
237
|
+
ZSTD_STATLIB_OBJ := $(addprefix $(ZSTD_STATLIB_DIR)/,$(ZSTD_LOCAL_OBJ))
|
|
238
|
+
$(ZSTD_STATLIB): ARFLAGS = rcs
|
|
239
|
+
$(ZSTD_STATLIB): | $(ZSTD_STATLIB_DIR)
|
|
240
|
+
$(ZSTD_STATLIB): $(ZSTD_STATLIB_OBJ)
|
|
148
241
|
@echo compiling static library
|
|
149
|
-
|
|
242
|
+
$(AR) $(ARFLAGS) $@ $^
|
|
243
|
+
|
|
244
|
+
libzstd.a: $(ZSTD_STATLIB)
|
|
245
|
+
cp -f $< $@
|
|
150
246
|
|
|
151
|
-
|
|
152
|
-
libzstd.a-mt: libzstd.a
|
|
247
|
+
endif
|
|
153
248
|
|
|
154
|
-
ifneq (,$(filter Windows%,$(
|
|
249
|
+
ifneq (,$(filter Windows%,$(TARGET_SYSTEM)))
|
|
155
250
|
|
|
156
|
-
LIBZSTD = dll
|
|
251
|
+
LIBZSTD = dll/libzstd.dll
|
|
157
252
|
$(LIBZSTD): $(ZSTD_FILES)
|
|
158
253
|
@echo compiling dynamic library $(LIBVER)
|
|
159
|
-
$(CC) $(FLAGS) -DZSTD_DLL_EXPORT=1 -Wl,--out-implib,dll
|
|
254
|
+
$(CC) $(FLAGS) -DZSTD_DLL_EXPORT=1 -Wl,--out-implib,dll/libzstd.dll.a -shared $^ -o $@
|
|
160
255
|
|
|
161
|
-
else
|
|
256
|
+
else # not Windows
|
|
162
257
|
|
|
163
258
|
LIBZSTD = libzstd.$(SHARED_EXT_VER)
|
|
164
|
-
$(LIBZSTD)
|
|
165
|
-
$(LIBZSTD):
|
|
259
|
+
.PHONY: $(LIBZSTD) # must be run every time
|
|
260
|
+
$(LIBZSTD): CFLAGS += -fPIC -fvisibility=hidden
|
|
261
|
+
$(LIBZSTD): LDFLAGS += -shared
|
|
262
|
+
|
|
263
|
+
ifndef BUILD_DIR
|
|
264
|
+
# determine BUILD_DIR from compilation flags
|
|
265
|
+
|
|
266
|
+
$(LIBZSTD):
|
|
267
|
+
$(SET_CACHE_DIRECTORY)
|
|
268
|
+
|
|
269
|
+
else
|
|
270
|
+
# BUILD_DIR is defined
|
|
271
|
+
|
|
272
|
+
ZSTD_DYNLIB_DIR := $(BUILD_DIR)/dynamic
|
|
273
|
+
ZSTD_DYNLIB := $(ZSTD_DYNLIB_DIR)/$(LIBZSTD)
|
|
274
|
+
ZSTD_DYNLIB_OBJ := $(addprefix $(ZSTD_DYNLIB_DIR)/,$(ZSTD_LOCAL_OBJ))
|
|
275
|
+
|
|
276
|
+
$(ZSTD_DYNLIB): | $(ZSTD_DYNLIB_DIR)
|
|
277
|
+
$(ZSTD_DYNLIB): $(ZSTD_DYNLIB_OBJ)
|
|
166
278
|
@echo compiling dynamic library $(LIBVER)
|
|
167
|
-
|
|
279
|
+
$(CC) $(FLAGS) $^ $(LDFLAGS) $(SONAME_FLAGS) -o $@
|
|
168
280
|
@echo creating versioned links
|
|
169
|
-
|
|
170
|
-
|
|
281
|
+
ln -sf $@ libzstd.$(SHARED_EXT_MAJOR)
|
|
282
|
+
ln -sf $@ libzstd.$(SHARED_EXT)
|
|
171
283
|
|
|
172
|
-
|
|
284
|
+
$(LIBZSTD): $(ZSTD_DYNLIB)
|
|
285
|
+
cp -f $< $@
|
|
173
286
|
|
|
287
|
+
endif # ifndef BUILD_DIR
|
|
288
|
+
endif # if windows
|
|
174
289
|
|
|
290
|
+
.PHONY: libzstd
|
|
175
291
|
libzstd : $(LIBZSTD)
|
|
176
292
|
|
|
177
|
-
|
|
178
|
-
|
|
293
|
+
.PHONY: lib
|
|
294
|
+
lib : libzstd.a libzstd
|
|
295
|
+
|
|
296
|
+
|
|
297
|
+
# note : do not define lib-mt or lib-release as .PHONY
|
|
298
|
+
# make does not consider implicit pattern rule for .PHONY target
|
|
179
299
|
|
|
180
|
-
|
|
300
|
+
%-mt : CPPFLAGS += -DZSTD_MULTITHREAD
|
|
301
|
+
%-mt : LDFLAGS += -pthread
|
|
302
|
+
%-mt : %
|
|
303
|
+
@echo multi-threading build completed
|
|
181
304
|
|
|
182
|
-
|
|
183
|
-
|
|
305
|
+
%-release : DEBUGFLAGS :=
|
|
306
|
+
%-release : %
|
|
307
|
+
@echo release build completed
|
|
308
|
+
|
|
309
|
+
|
|
310
|
+
# Generate .h dependencies automatically
|
|
311
|
+
|
|
312
|
+
DEPFLAGS = -MT $@ -MMD -MP -MF
|
|
313
|
+
|
|
314
|
+
$(ZSTD_DYNLIB_DIR)/%.o : %.c $(ZSTD_DYNLIB_DIR)/%.d | $(ZSTD_DYNLIB_DIR)
|
|
315
|
+
@echo CC $@
|
|
316
|
+
$(COMPILE.c) $(DEPFLAGS) $(ZSTD_DYNLIB_DIR)/$*.d $(OUTPUT_OPTION) $<
|
|
317
|
+
|
|
318
|
+
$(ZSTD_STATLIB_DIR)/%.o : %.c $(ZSTD_STATLIB_DIR)/%.d | $(ZSTD_STATLIB_DIR)
|
|
319
|
+
@echo CC $@
|
|
320
|
+
$(COMPILE.c) $(DEPFLAGS) $(ZSTD_STATLIB_DIR)/$*.d $(OUTPUT_OPTION) $<
|
|
321
|
+
|
|
322
|
+
MKDIR ?= mkdir
|
|
323
|
+
$(BUILD_DIR) $(ZSTD_DYNLIB_DIR) $(ZSTD_STATLIB_DIR):
|
|
324
|
+
$(MKDIR) -p $@
|
|
325
|
+
|
|
326
|
+
DEPFILES := $(ZSTD_DYNLIB_OBJ:.o=.d) $(ZSTD_STATLIB_OBJ:.o=.d)
|
|
327
|
+
$(DEPFILES):
|
|
328
|
+
|
|
329
|
+
include $(wildcard $(DEPFILES))
|
|
184
330
|
|
|
185
|
-
lib-release lib-release-mt: DEBUGFLAGS :=
|
|
186
|
-
lib-release: lib
|
|
187
|
-
lib-release-mt: lib-mt
|
|
188
331
|
|
|
189
332
|
# Special case : building library in single-thread mode _and_ without zstdmt_compress.c
|
|
190
333
|
ZSTDMT_FILES = compress/zstdmt_compress.c
|
|
@@ -193,19 +336,24 @@ libzstd-nomt: LDFLAGS += -shared -fPIC -fvisibility=hidden
|
|
|
193
336
|
libzstd-nomt: $(ZSTD_NOMT_FILES)
|
|
194
337
|
@echo compiling single-thread dynamic library $(LIBVER)
|
|
195
338
|
@echo files : $(ZSTD_NOMT_FILES)
|
|
196
|
-
|
|
339
|
+
$(CC) $(FLAGS) $^ $(LDFLAGS) $(SONAME_FLAGS) -o $@
|
|
197
340
|
|
|
341
|
+
.PHONY: clean
|
|
198
342
|
clean:
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
343
|
+
$(RM) -r *.dSYM # macOS-specific
|
|
344
|
+
$(RM) core *.o *.a *.gcda *.$(SHARED_EXT) *.$(SHARED_EXT).* libzstd.pc
|
|
345
|
+
$(RM) dll/libzstd.dll dll/libzstd.lib libzstd-nomt*
|
|
346
|
+
$(RM) -r obj/*
|
|
203
347
|
@echo Cleaning library completed
|
|
204
348
|
|
|
205
349
|
#-----------------------------------------------------------------------------
|
|
206
|
-
# make install is validated only for
|
|
350
|
+
# make install is validated only for below listed environments
|
|
207
351
|
#-----------------------------------------------------------------------------
|
|
208
|
-
ifneq (,$(filter $(
|
|
352
|
+
ifneq (,$(filter $(UNAME),Linux Darwin GNU/kFreeBSD GNU OpenBSD FreeBSD NetBSD DragonFly SunOS Haiku))
|
|
353
|
+
|
|
354
|
+
all: libzstd.pc
|
|
355
|
+
|
|
356
|
+
HAS_EXPLICIT_EXEC_PREFIX := $(if $(or $(EXEC_PREFIX),$(exec_prefix)),1,)
|
|
209
357
|
|
|
210
358
|
DESTDIR ?=
|
|
211
359
|
# directory variables : GNU conventions prefer lowercase
|
|
@@ -214,21 +362,34 @@ DESTDIR ?=
|
|
|
214
362
|
prefix ?= /usr/local
|
|
215
363
|
PREFIX ?= $(prefix)
|
|
216
364
|
exec_prefix ?= $(PREFIX)
|
|
217
|
-
|
|
365
|
+
EXEC_PREFIX ?= $(exec_prefix)
|
|
366
|
+
libdir ?= $(EXEC_PREFIX)/lib
|
|
218
367
|
LIBDIR ?= $(libdir)
|
|
219
368
|
includedir ?= $(PREFIX)/include
|
|
220
369
|
INCLUDEDIR ?= $(includedir)
|
|
221
370
|
|
|
222
|
-
|
|
223
|
-
|
|
371
|
+
PCINCDIR := $(patsubst $(PREFIX)%,%,$(INCLUDEDIR))
|
|
372
|
+
PCLIBDIR := $(patsubst $(EXEC_PREFIX)%,%,$(LIBDIR))
|
|
373
|
+
|
|
374
|
+
# If we successfully stripped off a prefix, we'll add a reference to the
|
|
375
|
+
# relevant pc variable.
|
|
376
|
+
PCINCPREFIX := $(if $(findstring $(INCLUDEDIR),$(PCINCDIR)),,$${prefix})
|
|
377
|
+
PCLIBPREFIX := $(if $(findstring $(LIBDIR),$(PCLIBDIR)),,$${exec_prefix})
|
|
378
|
+
|
|
379
|
+
# If no explicit EXEC_PREFIX was set by the caller, write it out as a reference
|
|
380
|
+
# to PREFIX, rather than as a resolved value.
|
|
381
|
+
PCEXEC_PREFIX := $(if $(HAS_EXPLICIT_EXEC_PREFIX),$(EXEC_PREFIX),$${prefix})
|
|
382
|
+
|
|
383
|
+
ifneq (,$(filter $(UNAME),FreeBSD NetBSD DragonFly))
|
|
384
|
+
PKGCONFIGDIR ?= $(PREFIX)/libdata/pkgconfig
|
|
224
385
|
else
|
|
225
|
-
PKGCONFIGDIR ?= $(LIBDIR)/pkgconfig
|
|
386
|
+
PKGCONFIGDIR ?= $(LIBDIR)/pkgconfig
|
|
226
387
|
endif
|
|
227
388
|
|
|
228
|
-
ifneq (,$(filter $(
|
|
229
|
-
INSTALL ?= ginstall
|
|
389
|
+
ifneq (,$(filter $(UNAME),SunOS))
|
|
390
|
+
INSTALL ?= ginstall
|
|
230
391
|
else
|
|
231
|
-
INSTALL ?= install
|
|
392
|
+
INSTALL ?= install
|
|
232
393
|
endif
|
|
233
394
|
|
|
234
395
|
INSTALL_PROGRAM ?= $(INSTALL)
|
|
@@ -238,49 +399,55 @@ INSTALL_DATA ?= $(INSTALL) -m 644
|
|
|
238
399
|
libzstd.pc:
|
|
239
400
|
libzstd.pc: libzstd.pc.in
|
|
240
401
|
@echo creating pkgconfig
|
|
241
|
-
@sed
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
402
|
+
@sed $(SED_ERE_OPT) \
|
|
403
|
+
-e 's|@PREFIX@|$(PREFIX)|' \
|
|
404
|
+
-e 's|@EXEC_PREFIX@|$(PCEXEC_PREFIX)|' \
|
|
405
|
+
-e 's|@INCLUDEDIR@|$(PCINCPREFIX)$(PCINCDIR)|' \
|
|
406
|
+
-e 's|@LIBDIR@|$(PCLIBPREFIX)$(PCLIBDIR)|' \
|
|
407
|
+
-e 's|@VERSION@|$(VERSION)|' \
|
|
408
|
+
$< >$@
|
|
409
|
+
|
|
410
|
+
.PHONY: install
|
|
247
411
|
install: install-pc install-static install-shared install-includes
|
|
248
412
|
@echo zstd static and shared library installed
|
|
249
413
|
|
|
250
414
|
install-pc: libzstd.pc
|
|
251
|
-
|
|
252
|
-
|
|
415
|
+
[ -e $(DESTDIR)$(PKGCONFIGDIR) ] || $(INSTALL) -d -m 755 $(DESTDIR)$(PKGCONFIGDIR)/
|
|
416
|
+
$(INSTALL_DATA) libzstd.pc $(DESTDIR)$(PKGCONFIGDIR)/
|
|
253
417
|
|
|
254
|
-
install-static:
|
|
418
|
+
install-static:
|
|
419
|
+
# only generate libzstd.a if it's not already present
|
|
420
|
+
[ -e libzstd.a ] || $(MAKE) libzstd.a-release
|
|
421
|
+
[ -e $(DESTDIR)$(LIBDIR) ] || $(INSTALL) -d -m 755 $(DESTDIR)$(LIBDIR)/
|
|
255
422
|
@echo Installing static library
|
|
256
|
-
|
|
257
|
-
@$(INSTALL_DATA) libzstd.a $(DESTDIR)$(LIBDIR)
|
|
423
|
+
$(INSTALL_DATA) libzstd.a $(DESTDIR)$(LIBDIR)
|
|
258
424
|
|
|
259
|
-
install-shared:
|
|
425
|
+
install-shared:
|
|
426
|
+
# only generate libzstd.so if it's not already present
|
|
427
|
+
[ -e $(LIBZSTD) ] || $(MAKE) libzstd-release
|
|
428
|
+
[ -e $(DESTDIR)$(LIBDIR) ] || $(INSTALL) -d -m 755 $(DESTDIR)$(LIBDIR)/
|
|
260
429
|
@echo Installing shared library
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
@ln -sf $(LIBZSTD) $(DESTDIR)$(LIBDIR)/libzstd.$(SHARED_EXT)
|
|
430
|
+
$(INSTALL_PROGRAM) $(LIBZSTD) $(DESTDIR)$(LIBDIR)
|
|
431
|
+
ln -sf $(LIBZSTD) $(DESTDIR)$(LIBDIR)/libzstd.$(SHARED_EXT_MAJOR)
|
|
432
|
+
ln -sf $(LIBZSTD) $(DESTDIR)$(LIBDIR)/libzstd.$(SHARED_EXT)
|
|
265
433
|
|
|
266
434
|
install-includes:
|
|
435
|
+
[ -e $(DESTDIR)$(INCLUDEDIR) ] || $(INSTALL) -d -m 755 $(DESTDIR)$(INCLUDEDIR)/
|
|
267
436
|
@echo Installing includes
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
@$(INSTALL_DATA) deprecated/zbuff.h $(DESTDIR)$(INCLUDEDIR) # prototypes generate deprecation warnings
|
|
272
|
-
@$(INSTALL_DATA) dictBuilder/zdict.h $(DESTDIR)$(INCLUDEDIR)
|
|
437
|
+
$(INSTALL_DATA) zstd.h $(DESTDIR)$(INCLUDEDIR)
|
|
438
|
+
$(INSTALL_DATA) common/zstd_errors.h $(DESTDIR)$(INCLUDEDIR)
|
|
439
|
+
$(INSTALL_DATA) dictBuilder/zdict.h $(DESTDIR)$(INCLUDEDIR)
|
|
273
440
|
|
|
441
|
+
.PHONY: uninstall
|
|
274
442
|
uninstall:
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
@$(RM) $(DESTDIR)$(INCLUDEDIR)/zdict.h
|
|
443
|
+
$(RM) $(DESTDIR)$(LIBDIR)/libzstd.a
|
|
444
|
+
$(RM) $(DESTDIR)$(LIBDIR)/libzstd.$(SHARED_EXT)
|
|
445
|
+
$(RM) $(DESTDIR)$(LIBDIR)/libzstd.$(SHARED_EXT_MAJOR)
|
|
446
|
+
$(RM) $(DESTDIR)$(LIBDIR)/$(LIBZSTD)
|
|
447
|
+
$(RM) $(DESTDIR)$(PKGCONFIGDIR)/libzstd.pc
|
|
448
|
+
$(RM) $(DESTDIR)$(INCLUDEDIR)/zstd.h
|
|
449
|
+
$(RM) $(DESTDIR)$(INCLUDEDIR)/zstd_errors.h
|
|
450
|
+
$(RM) $(DESTDIR)$(INCLUDEDIR)/zdict.h
|
|
284
451
|
@echo zstd libraries successfully uninstalled
|
|
285
452
|
|
|
286
453
|
endif
|