--- mandoc-1.14.2/Makefile.orig
+++ mandoc-1.14.2/Makefile
@@ -347,9 +347,13 @@
 		   mdoc.h.html \
 		   roff.h.html
 
+LIBMANDOC        = libmandoc.so
+MANDOCLIB        = -L. -lmandoc
+
 # === USER CONFIGURATION ===============================================
 
 include Makefile.local
+CFLAGS           += -fPIC
 
 # === DEPENDENCY HANDLING ==============================================
 
@@ -372,7 +376,7 @@
 	rm -f Makefile.local config.h config.h.old config.log config.log.old
 
 clean:
-	rm -f libmandoc.a $(LIBMANDOC_OBJS) $(COMPAT_OBJS)
+	rm -f $(LIBMANDOC) $(LIBMANDOC_OBJS) $(COMPAT_OBJS)
 	rm -f mandoc $(MAIN_OBJS)
 	rm -f man.cgi $(CGI_OBJS)
 	rm -f mandocd catman catman.o $(MANDOCD_OBJS)
@@ -411,11 +415,11 @@
 	$(INSTALL_MAN) makewhatis.8 \
 		$(DESTDIR)$(MANDIR)/man8/$(BINM_MAKEWHATIS).8
 
-lib-install: libmandoc.a
+lib-install: $(LIBMANDOC)
 	mkdir -p $(DESTDIR)$(LIBDIR)
 	mkdir -p $(DESTDIR)$(INCLUDEDIR)
 	mkdir -p $(DESTDIR)$(MANDIR)/man3
-	$(INSTALL_LIB) libmandoc.a $(DESTDIR)$(LIBDIR)
+	$(INSTALL_LIB) $(LIBMANDOC) $(DESTDIR)$(LIBDIR)
 	$(INSTALL_LIB) man.h mandoc.h mandoc_aux.h mdoc.h roff.h \
 		$(DESTDIR)$(INCLUDEDIR)
 	$(INSTALL_MAN) mandoc.3 mandoc_escape.3 mandoc_malloc.3 \
@@ -488,23 +492,23 @@
 	@echo "$@ is out of date; please run ./configure"
 	@exit 1
 
-libmandoc.a: $(COMPAT_OBJS) $(LIBMANDOC_OBJS)
-	ar rs $@ $(COMPAT_OBJS) $(LIBMANDOC_OBJS)
+libmandoc.so: $(COMPAT_OBJS) $(LIBMANDOC_OBJS)
+	$(CC) $(LDFLAGS) -shared -o $@ $(COMPAT_OBJS) $(LIBMANDOC_OBJS) $(LDADD)
 
-mandoc: $(MAIN_OBJS) libmandoc.a
-	$(CC) -o $@ $(LDFLAGS) $(MAIN_OBJS) libmandoc.a $(LDADD)
+mandoc: $(MAIN_OBJS) $(LIBMANDOC)
+	$(CC) -o $@ $(LDFLAGS) $(MAIN_OBJS) $(MANDOCLIB) $(LDADD)
 
 man.cgi: $(CGI_OBJS) libmandoc.a
 	$(CC) $(STATIC) -o $@ $(LDFLAGS) $(CGI_OBJS) libmandoc.a $(LDADD)
 
-mandocd: $(MANDOCD_OBJS) libmandoc.a
-	$(CC) -o $@ $(LDFLAGS) $(MANDOCD_OBJS) libmandoc.a $(LDADD)
+mandocd: $(MANDOCD_OBJS) $(LIBMANDOC)
+	$(CC) -o $@ $(LDFLAGS) $(MANDOCD_OBJS) $(LIBMANDOC) $(LDADD)
 
-catman: catman.o libmandoc.a
-	$(CC) -o $@ $(LDFLAGS) catman.o libmandoc.a $(LDADD)
+catman: catman.o $(LIBMANDOC)
+	$(CC) -o $@ $(LDFLAGS) catman.o $(LIBMANDOC) $(LDADD)
 
-demandoc: $(DEMANDOC_OBJS) libmandoc.a
-	$(CC) -o $@ $(LDFLAGS) $(DEMANDOC_OBJS) libmandoc.a $(LDADD)
+demandoc: $(DEMANDOC_OBJS) $(LIBMANDOC)
+	$(CC) -o $@ $(LDFLAGS) $(DEMANDOC_OBJS) $(LIBMANDOC) $(LDADD)
 
 soelim: $(SOELIM_OBJS)
 	$(CC) -o $@ $(LDFLAGS) $(SOELIM_OBJS)
