@@ -28,10 +28,44 @@ DEBUGFLAGS = -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow \
2828CFLAGS += $(DEBUGFLAGS ) $(MOREFLAGS )
2929FLAGS = $(CPPFLAGS ) $(CFLAGS )
3030
31-
32- ZSTD_FILES := $(sort $(wildcard common/* .c compress/* .c decompress/* .c dictBuilder/* .c deprecated/* .c) )
31+ ZSTDCOMMON_FILES := $(sort $(wildcard common/* .c) )
32+ ZSTDCOMP_FILES := $(sort $(wildcard compress/* .c) )
33+ ZSTDDECOMP_FILES := $(sort $(wildcard decompress/* .c) )
34+ ZDICT_FILES := $(sort $(wildcard dictBuilder/* .c) )
35+ ZDEPR_FILES := $(sort $(wildcard deprecated/* .c) )
36+ ZSTD_FILES := $(ZSTDCOMMON_FILES )
3337
3438ZSTD_LEGACY_SUPPORT ?= 4
39+ ZSTD_LIB_COMPRESSION ?= 1
40+ ZSTD_LIB_DECOMPRESSION ?= 1
41+ ZSTD_LIB_DICTBUILDER ?= 1
42+ ZSTD_LIB_DEPRECATED ?= 1
43+
44+ ifeq ($(ZSTD_LIB_COMPRESSION ) , 0)
45+ ZSTD_LIB_DICTBUILDER = 0
46+ ZSTD_LIB_DEPRECATED = 0
47+ endif
48+
49+ ifeq ($(ZSTD_LIB_DECOMPRESSION ) , 0)
50+ ZSTD_LEGACY_SUPPORT = 0
51+ ZSTD_LIB_DEPRECATED = 0
52+ endif
53+
54+ ifneq ($(ZSTD_LIB_COMPRESSION ) , 0)
55+ ZSTD_FILES += $(ZSTDCOMP_FILES)
56+ endif
57+
58+ ifneq ($(ZSTD_LIB_DECOMPRESSION ) , 0)
59+ ZSTD_FILES += $(ZSTDDECOMP_FILES)
60+ endif
61+
62+ ifneq ($(ZSTD_LIB_DEPRECATED ) , 0)
63+ ZSTD_FILES += $(ZDEPR_FILES)
64+ endif
65+
66+ ifneq ($(ZSTD_LIB_DICTBUILDER ) , 0)
67+ ZSTD_FILES += $(ZDICT_FILES)
68+ endif
3569
3670ifneq ($(ZSTD_LEGACY_SUPPORT ) , 0)
3771ifeq ($(shell test $(ZSTD_LEGACY_SUPPORT ) -lt 8; echo $$? ) , 0)
@@ -43,7 +77,7 @@ CPPFLAGS += -DZSTD_LEGACY_SUPPORT=$(ZSTD_LEGACY_SUPPORT)
4377
4478ZSTD_OBJ := $(patsubst % .c,% .o,$(ZSTD_FILES ) )
4579
46- # OS X linker doesn't support -soname, and use different extension
80+ # macOS linker doesn't support -soname, and use different extension
4781# see : https://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/DynamicLibraryDesignGuidelines.html
4882ifeq ($(shell uname) , Darwin)
4983 SHARED_EXT = dylib
@@ -111,14 +145,14 @@ libzstd-nomt: $(ZSTD_NOMT_FILES)
111145 @$(CC ) $(FLAGS ) $^ $(LDFLAGS ) $(SONAME_FLAGS ) -o $@
112146
113147clean :
114- @$(RM ) -r * .dSYM # Mac OS-X specific
148+ @$(RM ) -r * .dSYM # macOS- specific
115149 @$(RM ) core * .o * .a * .gcda * .$(SHARED_EXT ) * .$(SHARED_EXT ) .* libzstd.pc
116150 @$(RM ) dll/libzstd.dll dll/libzstd.lib libzstd-nomt*
117151 @$(RM ) common/* .o compress/* .o decompress/* .o dictBuilder/* .o legacy/* .o deprecated/* .o
118152 @echo Cleaning library completed
119153
120154# -----------------------------------------------------------------------------
121- # make install is validated only for Linux, OSX , BSD, Hurd and Solaris targets
155+ # make install is validated only for Linux, macOS , BSD, Hurd and Solaris targets
122156# -----------------------------------------------------------------------------
123157ifneq (,$(filter $(shell uname) ,Linux Darwin GNU/kFreeBSD GNU OpenBSD FreeBSD NetBSD DragonFly SunOS) )
124158
@@ -134,7 +168,7 @@ LIBDIR ?= $(libdir)
134168includedir ?= $(PREFIX ) /include
135169INCLUDEDIR ?= $(includedir )
136170
137- ifneq (,$(filter $(shell uname) ,OpenBSD FreeBSD NetBSD DragonFly) )
171+ ifneq (,$(filter $(shell uname) ,FreeBSD NetBSD DragonFly) )
138172PKGCONFIGDIR ?= $(PREFIX ) /libdata/pkgconfig
139173else
140174PKGCONFIGDIR ?= $(LIBDIR ) /pkgconfig
@@ -159,20 +193,32 @@ libzstd.pc: libzstd.pc.in
159193 -e 's|@VERSION@|$(VERSION)|' \
160194 $< >$@
161195
162- install : libzstd.a libzstd libzstd.pc
163- @$(INSTALL ) -d -m 755 $(DESTDIR )$(PKGCONFIGDIR ) / $(DESTDIR )$(INCLUDEDIR ) /
196+ install : install-pc install-static install-shared install-includes
197+ @echo zstd static and shared library installed
198+
199+ install-pc : libzstd.pc
200+ @$(INSTALL ) -d -m 755 $(DESTDIR )$(PKGCONFIGDIR ) /
164201 @$(INSTALL_DATA ) libzstd.pc $(DESTDIR )$(PKGCONFIGDIR ) /
165- @echo Installing libraries
202+
203+ install-static : libzstd.a
204+ @echo Installing static library
205+ @$(INSTALL ) -d -m 755 $(DESTDIR )$(LIBDIR ) /
166206 @$(INSTALL_DATA ) libzstd.a $(DESTDIR )$(LIBDIR )
207+
208+ install-shared : libzstd
209+ @echo Installing shared library
210+ @$(INSTALL ) -d -m 755 $(DESTDIR )$(LIBDIR ) /
167211 @$(INSTALL_PROGRAM ) $(LIBZSTD ) $(DESTDIR )$(LIBDIR )
168212 @ln -sf $(LIBZSTD ) $(DESTDIR )$(LIBDIR ) /libzstd.$(SHARED_EXT_MAJOR )
169213 @ln -sf $(LIBZSTD ) $(DESTDIR )$(LIBDIR ) /libzstd.$(SHARED_EXT )
214+
215+ install-includes :
170216 @echo Installing includes
217+ @$(INSTALL ) -d -m 755 $(DESTDIR )$(INCLUDEDIR ) /
171218 @$(INSTALL_DATA ) zstd.h $(DESTDIR )$(INCLUDEDIR )
172219 @$(INSTALL_DATA ) common/zstd_errors.h $(DESTDIR )$(INCLUDEDIR )
173220 @$(INSTALL_DATA ) deprecated/zbuff.h $(DESTDIR )$(INCLUDEDIR ) # prototypes generate deprecation warnings
174221 @$(INSTALL_DATA ) dictBuilder/zdict.h $(DESTDIR )$(INCLUDEDIR )
175- @echo zstd static and shared library installed
176222
177223uninstall :
178224 @$(RM ) $(DESTDIR )$(LIBDIR ) /libzstd.a
0 commit comments