--- ./Makefile.orig +++ ./Makefile @@ -13,6 +13,7 @@ # 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 -I$(GEN) +CFLAGS += -fPIC LIBS += $(XLIBS) -lm include Makerules @@ -55,6 +56,7 @@ CXX_CMD = $(QUIET_CXX) $(CXX) $(CFLAGS) -o $@ -c $< AR_CMD = $(QUIET_AR) $(AR) cr $@ $^ LINK_CMD = $(QUIET_LINK) $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) +LINK_SHARED_CMD = $(QUIET_LINK) $(CC) $(LDFLAGS) -shared -Wl,-soname,$(notdir $@) -o $@ $^ $(LIBS) MKDIR_CMD = $(QUIET_MKDIR) mkdir -p $@ RM_CMD = $(QUIET_RM) rm -f $@ @@ -128,7 +130,7 @@ # --- Library --- -MUPDF_LIB := $(OUT)/libmupdf.a +MUPDF_LIB := $(OUT)/libmupdf.so.0 $(MUPDF_LIB) : $(FITZ_OBJ) $(PDF_OBJ) $(XPS_OBJ) $(CBZ_OBJ) $(IMG_OBJ) $(TIFF_OBJ) @@ -143,6 +145,9 @@ $(RM_CMD) $(AR_CMD) $(RANLIB_CMD) + +$(OUT)/%.so.0 : $(OUT)/%.a + $(LINK_SHARED_CMD) $(OUT)/%: $(OUT)/%.o $(LINK_CMD)