--- lib/Makefile.orig 2021-03-02 22:20:57 UTC +++ lib/Makefile @@ -168,6 +168,7 @@ CPPFLAGS += -DZSTD_LEGACY_SUPPORT=$(ZST ZSTD_LOCAL_SRC := $(notdir $(ZSTD_FILES)) ZSTD_LOCAL_OBJ := $(ZSTD_LOCAL_SRC:.c=.o) +ZSTD_LOCAL_SOBJ := $(ZSTD_LOCAL_SRC:.c=.So) ZSTD_SUBDIR := common compress decompress dictBuilder legacy deprecated vpath %.c $(ZSTD_SUBDIR) @@ -203,7 +204,11 @@ ifeq ($(UNAME), Darwin) SHARED_EXT_VER = $(LIBVER).$(SHARED_EXT) SONAME_FLAGS = -install_name $(LIBDIR)/libzstd.$(SHARED_EXT_MAJOR) -compatibility_version $(LIBVER_MAJOR) -current_version $(LIBVER) else + ifeq ($(UNAME), SunOS) + SONAME_FLAGS = -Wl,-h,libzstd.$(SHARED_EXT).$(LIBVER_MAJOR) + else SONAME_FLAGS = -Wl,-soname=libzstd.$(SHARED_EXT).$(LIBVER_MAJOR) + endif SHARED_EXT = so SHARED_EXT_MAJOR = $(SHARED_EXT).$(LIBVER_MAJOR) SHARED_EXT_VER = $(SHARED_EXT).$(LIBVER) @@ -246,10 +251,17 @@ libzstd.a: $(ZSTD_STATLIB) endif +%.So: %.c + $(CC) $(FLAGS) -fpic -DPIC -c $< -o $@ + +libzstd_pic.a: $(ZSTD_LOCAL_SOBJ) + @echo assembling PIC library + $(AR) rcsv $@ $^ + ifneq (,$(filter Windows%,$(TARGET_SYSTEM))) LIBZSTD = dll/libzstd.dll -$(LIBZSTD): $(ZSTD_FILES) +$(LIBZSTD): $(ZSTD_SOBJ) @echo compiling dynamic library $(LIBVER) $(CC) $(FLAGS) -DZSTD_DLL_EXPORT=1 -Wl,--out-implib,dll/libzstd.dll.a -shared $^ -o $@ @@ -291,7 +303,7 @@ endif # if windows libzstd : $(LIBZSTD) .PHONY: lib -lib : libzstd.a libzstd +lib : libzstd.a libzstd libzstd_pic.a # note : do not define lib-mt or lib-release as .PHONY @@ -421,6 +433,7 @@ install-static: [ -e $(DESTDIR)$(LIBDIR) ] || $(INSTALL) -d -m 755 $(DESTDIR)$(LIBDIR)/ @echo Installing static library $(INSTALL_DATA) libzstd.a $(DESTDIR)$(LIBDIR) + $(INSTALL_DATA) libzstd_pic.a $(DESTDIR)$(LIBDIR) install-shared: # only generate libzstd.so if it's not already present