--- a/Makefile 2020-11-22 16:06:50.382848861 +0000 +++ b/Makefile 2020-11-22 16:11:49.044201863 +0000 @@ -24,7 +24,7 @@ # Do not specify CFLAGS or LIBS on the make invocation line - specify # XCFLAGS or XLIBS instead. Make ignores any lines in the makefile that # set a variable that was set on the command line. -CFLAGS += $(XCFLAGS) -Iinclude +CFLAGS += $(XCFLAGS) -Iinclude -fPIC LIBS += $(XLIBS) -lm ifneq ($(threading),no) @@ -62,6 +62,7 @@ RANLIB_CMD = $(QUIET_RANLIB) $(RANLIB) $@ endif LINK_CMD = $(QUIET_LINK) $(MKTGTDIR) ; $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) +LINK_SHARED_CMD = $(QUIET_LINK) $(CC) $(LDFLAGS) -shared -Wl,-soname,$(notdir $@) -o $@ $^ $(LIBS) TAGS_CMD = $(QUIET_TAGS) ctags -R --c-kinds=+p WINDRES_CMD = $(QUIET_WINDRES) $(MKTGTDIR) ; $(WINDRES) $< $@ OBJCOPY_CMD = $(QUIET_OBJCOPY) $(MKTGTDIR) ; $(LD) -r -b binary -z noexecstack -o $@ $< @@ -72,6 +73,9 @@ $(AR_CMD) $(RANLIB_CMD) +$(OUT)/%.so.0: $(OUT)/%.a + $(LINK_SHARED_CMD) + $(OUT)/%.exe: %.c $(LINK_CMD) @@ -214,8 +218,8 @@ $(MUPDF_LIB) : $(MUPDF_OBJ) $(THIRD_OBJ) $(THREAD_OBJ) $(PKCS7_OBJ) else -MUPDF_LIB = $(OUT)/libmupdf.a -THIRD_LIB = $(OUT)/libmupdf-third.a +MUPDF_LIB = $(OUT)/libmupdf.so.0 +THIRD_LIB = $(OUT)/libmupdf-third.so.0 THREAD_LIB = $(OUT)/libmupdf-threads.a PKCS7_LIB = $(OUT)/libmupdf-pkcs7.a