@@ -19,23 +19,28 @@ LIBVER := $(shell echo $(LIBVER_SCRIPT))
19
19
VERSION? = $(LIBVER )
20
20
21
21
CPPFLAGS+ = -I. -I./common -DXXH_NAMESPACE=ZSTD_
22
+ ifeq ($(OS ) ,Windows_NT) # MinGW assumed
23
+ CPPFLAGS += -D__USE_MINGW_ANSI_STDIO # compatibility with %zu formatting
24
+ endif
22
25
CFLAGS ?= -O3
23
- DEBUGFLAGS = -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow \
26
+ DEBUGFLAGS = -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow \
24
27
-Wstrict-aliasing=1 -Wswitch-enum -Wdeclaration-after-statement \
25
28
-Wstrict-prototypes -Wundef -Wpointer-arith -Wformat-security \
26
29
-Wvla -Wformat=2 -Winit-self -Wfloat-equal -Wwrite-strings \
27
- -Wredundant-decls
30
+ -Wredundant-decls -Wmissing-prototypes
28
31
CFLAGS += $(DEBUGFLAGS ) $(MOREFLAGS )
29
32
FLAGS = $(CPPFLAGS ) $(CFLAGS )
30
33
34
+ GREP = grep --color=never
35
+
31
36
ZSTDCOMMON_FILES := $(sort $(wildcard common/* .c) )
32
37
ZSTDCOMP_FILES := $(sort $(wildcard compress/* .c) )
33
38
ZSTDDECOMP_FILES := $(sort $(wildcard decompress/* .c) )
34
39
ZDICT_FILES := $(sort $(wildcard dictBuilder/* .c) )
35
40
ZDEPR_FILES := $(sort $(wildcard deprecated/* .c) )
36
41
ZSTD_FILES := $(ZSTDCOMMON_FILES )
37
42
38
- ZSTD_LEGACY_SUPPORT ?= 4
43
+ ZSTD_LEGACY_SUPPORT ?= 5
39
44
ZSTD_LIB_COMPRESSION ?= 1
40
45
ZSTD_LIB_DECOMPRESSION ?= 1
41
46
ZSTD_LIB_DICTBUILDER ?= 1
@@ -52,11 +57,11 @@ ifeq ($(ZSTD_LIB_DECOMPRESSION), 0)
52
57
endif
53
58
54
59
ifneq ($(ZSTD_LIB_COMPRESSION ) , 0)
55
- ZSTD_FILES += $(ZSTDCOMP_FILES)
60
+ ZSTD_FILES += $(ZSTDCOMP_FILES)
56
61
endif
57
62
58
63
ifneq ($(ZSTD_LIB_DECOMPRESSION ) , 0)
59
- ZSTD_FILES += $(ZSTDDECOMP_FILES)
64
+ ZSTD_FILES += $(ZSTDDECOMP_FILES)
60
65
endif
61
66
62
67
ifneq ($(ZSTD_LIB_DEPRECATED ) , 0)
69
74
70
75
ifneq ($(ZSTD_LEGACY_SUPPORT ) , 0)
71
76
ifeq ($(shell test $(ZSTD_LEGACY_SUPPORT ) -lt 8; echo $$? ) , 0)
72
- ZSTD_FILES += $(shell ls legacy/*.c | grep 'v0[$(ZSTD_LEGACY_SUPPORT)-7]')
77
+ ZSTD_FILES += $(shell ls legacy/*.c | $(GREP) 'v0[$(ZSTD_LEGACY_SUPPORT)-7]')
73
78
endif
74
79
CPPFLAGS += -I./legacy
75
80
endif
91
96
SHARED_EXT_VER = $(SHARED_EXT).$(LIBVER)
92
97
endif
93
98
94
- LIBZSTD = libzstd.$(SHARED_EXT_VER )
95
-
96
99
97
100
.PHONY : default all clean install uninstall
98
101
@@ -108,19 +111,28 @@ libzstd.a: $(ZSTD_OBJ)
108
111
libzstd.a-mt : CPPFLAGS += -DZSTD_MULTITHREAD
109
112
libzstd.a-mt : libzstd.a
110
113
111
- $(LIBZSTD ) : LDFLAGS += -shared -fPIC -fvisibility=hidden
114
+ ifneq (,$(filter Windows% ,$(OS ) ) )
115
+
116
+ LIBZSTD = dll\libzstd.dll
112
117
$(LIBZSTD ) : $(ZSTD_FILES )
113
118
@echo compiling dynamic library $(LIBVER )
114
- ifneq (, $( filter Windows % , $( OS ) ) )
115
- @$(CC) $(FLAGS) -DZSTD_DLL_EXPORT=1 -shared $^ -o dll\libzstd.dll
116
- dlltool -D dll\libzstd.dll -d dll\libzstd.def -l dll\libzstd.lib
119
+ @ $( CC ) $( FLAGS ) -DZSTD_DLL_EXPORT=1 -shared $^ -o $@
120
+ dlltool -D $@ -d dll\l ibzstd.def -l dll\l ibzstd.lib
121
+
117
122
else
123
+
124
+ LIBZSTD = libzstd.$(SHARED_EXT_VER )
125
+ $(LIBZSTD ) : LDFLAGS += -shared -fPIC -fvisibility=hidden
126
+ $(LIBZSTD ) : $(ZSTD_FILES )
127
+ @echo compiling dynamic library $(LIBVER )
118
128
@$(CC ) $(FLAGS ) $^ $(LDFLAGS ) $(SONAME_FLAGS ) -o $@
119
129
@echo creating versioned links
120
130
@ln -sf $@ libzstd.$(SHARED_EXT_MAJOR )
121
131
@ln -sf $@ libzstd.$(SHARED_EXT )
132
+
122
133
endif
123
134
135
+
124
136
libzstd : $(LIBZSTD )
125
137
126
138
libzstd-mt : CPPFLAGS += -DZSTD_MULTITHREAD
@@ -154,7 +166,7 @@ clean:
154
166
# -----------------------------------------------------------------------------
155
167
# make install is validated only for Linux, macOS, BSD, Hurd and Solaris targets
156
168
# -----------------------------------------------------------------------------
157
- ifneq (,$(filter $(shell uname) ,Linux Darwin GNU/kFreeBSD GNU OpenBSD FreeBSD NetBSD DragonFly SunOS) )
169
+ ifneq (,$(filter $(shell uname) ,Linux Darwin GNU/kFreeBSD GNU OpenBSD FreeBSD NetBSD DragonFly SunOS Haiku ) )
158
170
159
171
DESTDIR ?=
160
172
# directory variables : GNU conventions prefer lowercase
0 commit comments