Lines Matching +full:- +full:- +full:libdir
5 # This source code is licensed under both the BSD-style license (found in the
8 # You may select, at your option, one of the above-listed licenses.
54 # Note: by default, the static library is built single-threaded and dynamic library is built
55 # multi-threaded. It is possible to force multi or single threaded builds by appending
56 # -mt or -nomt to the build target (like lib-mt for multi-threaded, lib-nomt for single-threaded).
58 default: lib-release
60 CPPFLAGS_DYNLIB += -DZSTD_MULTITHREAD # dynamic library build defaults to multi-threaded
61 LDFLAGS_DYNLIB += -pthread
62 CPPFLAGS_STATLIB += # static library build defaults to single-threaded
66 decompress/zstd_decompress_block.o : CFLAGS+=-fno-tree-vectorize
70 # macOS linker doesn't support -soname, and use different extension
71 …com/library/mac/documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/DynamicLibra…
76 …SONAME_FLAGS = -install_name $(LIBDIR)/libzstd.$(SHARED_EXT_MAJOR) -compatibility_version $(LIBVER…
81 SONAME_FLAGS = -Wl,-soname=libzstd.$(SHARED_EXT).$(LIBVER_MAJOR)
97 +$(MAKE) --no-print-directory $@ \
119 $(if $(filter -DZSTD_MULTITHREAD,$(CPPFLAGS)),\
120 @echo compiling multi-threaded static library $(LIBVER),\
121 @echo compiling single-threaded static library $(LIBVER))
125 cp -f $< $@
134 $(CC) $(FLAGS) -DZSTD_DLL_EXPORT=1 -Wl,--out-implib,dll/libzstd.dll.a -shared $^ -o $@
141 $(LIBZSTD): CFLAGS += -fPIC -fvisibility=hidden
142 $(LIBZSTD): LDFLAGS += -shared $(LDFLAGS_DYNLIB)
160 $(if $(filter -DZSTD_MULTITHREAD,$(CPPFLAGS)),\
161 @echo compiling multi-threaded dynamic library $(LIBVER),\
162 @echo compiling single-threaded dynamic library $(LIBVER))
163 $(CC) $(FLAGS) $^ $(LDFLAGS) $(SONAME_FLAGS) -o $@
165 ln -sf $@ libzstd.$(SHARED_EXT_MAJOR)
166 ln -sf $@ libzstd.$(SHARED_EXT)
169 cp -f $< $@
181 # note : do not define lib-mt or lib-release as .PHONY
184 %-mt : CPPFLAGS_DYNLIB := -DZSTD_MULTITHREAD
185 %-mt : CPPFLAGS_STATLIB := -DZSTD_MULTITHREAD
186 %-mt : LDFLAGS_DYNLIB := -pthread
187 %-mt : %
188 @echo multi-threaded build completed
190 %-nomt : CPPFLAGS_DYNLIB :=
191 %-nomt : LDFLAGS_DYNLIB :=
192 %-nomt : CPPFLAGS_STATLIB :=
193 %-nomt : %
194 @echo single-threaded build completed
196 %-release : DEBUGFLAGS :=
197 %-release : %
203 DEPFLAGS = -MT $@ -MMD -MP -MF
223 $(MKDIR) -p $@
231 # Special case : building library in single-thread mode _and_ without zstdmt_compress.c
233 ZSTD_NOMT_FILES = $(filter-out $(ZSTDMT_FILES),$(ZSTD_FILES))
234 libzstd-nomt: CFLAGS += -fPIC -fvisibility=hidden
235 libzstd-nomt: LDFLAGS += -shared
236 libzstd-nomt: $(ZSTD_NOMT_FILES)
237 @echo compiling single-thread dynamic library $(LIBVER)
239 $(CC) $(FLAGS) $^ $(LDFLAGS) $(SONAME_FLAGS) -o $@
243 $(RM) -r *.dSYM # macOS-specific
245 $(RM) dll/libzstd.dll dll/libzstd.lib libzstd-nomt*
246 $(RM) -r obj/*
249 #-----------------------------------------------------------------------------
251 #-----------------------------------------------------------------------------
260 # see https://www.gnu.org/prep/standards/html_node/Makefile-Conventions.html
266 libdir ?= $(EXEC_PREFIX)/lib macro
267 LIBDIR ?= $(libdir) macro
272 PCLIBDIR := $(patsubst $(EXEC_PREFIX)%,%,$(LIBDIR))
277 PCLIBPREFIX := $(if $(findstring $(LIBDIR),$(PCLIBDIR)),,$${exec_prefix})
286 PKGCONFIGDIR ?= $(LIBDIR)/pkgconfig
296 INSTALL_DATA ?= $(INSTALL) -m 644
302 -e 's|@PREFIX@|$(PREFIX)|' \
303 -e 's|@EXEC_PREFIX@|$(PCEXEC_PREFIX)|' \
304 -e 's|@INCLUDEDIR@|$(PCINCPREFIX)$(PCINCDIR)|' \
305 -e 's|@LIBDIR@|$(PCLIBPREFIX)$(PCLIBDIR)|' \
306 -e 's|@VERSION@|$(VERSION)|' \
307 -e 's|@LIBS_PRIVATE@|$(LDFLAGS_DYNLIB)|' \
311 install: install-pc install-static install-shared install-includes
314 .PHONY: install-pc
315 install-pc: libzstd.pc
316 [ -e $(DESTDIR)$(PKGCONFIGDIR) ] || $(INSTALL) -d -m 755 $(DESTDIR)$(PKGCONFIGDIR)/
319 .PHONY: install-static
320 install-static:
322 [ -e libzstd.a ] || $(MAKE) libzstd.a-release
323 [ -e $(DESTDIR)$(LIBDIR) ] || $(INSTALL) -d -m 755 $(DESTDIR)$(LIBDIR)/
325 $(INSTALL_DATA) libzstd.a $(DESTDIR)$(LIBDIR)
327 .PHONY: install-shared
328 install-shared:
330 [ -e $(LIBZSTD) ] || $(MAKE) libzstd-release
331 [ -e $(DESTDIR)$(LIBDIR) ] || $(INSTALL) -d -m 755 $(DESTDIR)$(LIBDIR)/
333 $(INSTALL_PROGRAM) $(LIBZSTD) $(DESTDIR)$(LIBDIR)
334 ln -sf $(LIBZSTD) $(DESTDIR)$(LIBDIR)/libzstd.$(SHARED_EXT_MAJOR)
335 ln -sf $(LIBZSTD) $(DESTDIR)$(LIBDIR)/libzstd.$(SHARED_EXT)
337 .PHONY: install-includes
338 install-includes:
339 [ -e $(DESTDIR)$(INCLUDEDIR) ] || $(INSTALL) -d -m 755 $(DESTDIR)$(INCLUDEDIR)/
347 $(RM) $(DESTDIR)$(LIBDIR)/libzstd.a
348 $(RM) $(DESTDIR)$(LIBDIR)/libzstd.$(SHARED_EXT)
349 $(RM) $(DESTDIR)$(LIBDIR)/libzstd.$(SHARED_EXT_MAJOR)
350 $(RM) $(DESTDIR)$(LIBDIR)/$(LIBZSTD)