o Build shared library, link tools against it
o Make it possible to prevent stripping
o Add DESTDIR support

--- Makefile.in~	2005-10-04 15:59:49.000000000 +0300
+++ Makefile.in	2006-08-02 22:23:07.000000000 +0300
@@ -15,6 +15,7 @@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_DATA    = @INSTALL_DATA@
 SHELL           = /bin/sh
+STRIP           = strip
 
 NAME		= compface
 UNNAME		= uncompface
@@ -25,6 +26,7 @@
 UNEXECUTABLE	= $(BINDIR)/$(UNNAMEEXE)
 LIBNAME		= lib$(NAME).a
 LIBRARY		= $(LIBDIR)/$(LIBNAME)
+SHLIBNAME	= lib$(NAME).so
 MAN1DIR		= $(MANDIR)/man1
 MAN3DIR		= $(MANDIR)/man3
 OBJECTS		= arith.o file.o compress.o gen.o uncompface.o
@@ -45,11 +47,11 @@
 
 all:		$(NAMEEXE) $(UNNAMEEXE)
 
-$(NAMEEXE) :	cmain.o compface.o $(LIBNAME)
-		$(CC) $(LDFLAGS) -o $@ cmain.o compface.o $(LIBNAME)
+$(NAMEEXE) :	cmain.o compface.o $(SHLIBNAME)
+		$(CC) $(LDFLAGS) -o $@ cmain.o compface.o -L. -l$(NAME)
 
-$(UNNAMEEXE) :	uncmain.o $(LIBNAME)
-		$(CC) $(LDFLAGS) -o $@ uncmain.o $(LIBNAME)
+$(UNNAMEEXE) :	uncmain.o $(SHLIBNAME)
+		$(CC) $(LDFLAGS) -o $@ uncmain.o -L. -l$(NAME)
 
 $(LIBNAME) :	$(OBJECTS)
 		ar rc $(LIBNAME) $(OBJECTS)
@@ -73,25 +75,28 @@
 		tar chzf `cat .fname`.tar.gz `cat .fname`
 		$(RM) -rf `cat .fname` .fname
 
-install: 	$(NAMEEXE) $(UNNAMEEXE) $(LIBNAME)
-		$(INSTALL_PROGRAM) -d $(BINDIR) $(LIBDIR) $(MAN1DIR) $(MAN3DIR) $(INCLUDEDIR)
-		$(INSTALL_PROGRAM) $(srcdir)/$(NAMEEXE) $(EXECUTABLE) 
-		-chmod 0755 $(EXECUTABLE)
-		-strip $(EXECUTABLE)
-		$(INSTALL_PROGRAM) $(srcdir)/$(UNNAMEEXE) $(UNEXECUTABLE)
-		-chmod 0755 $(UNEXECUTABLE)
-		-strip $(UNEXECUTABLE)
-		$(INSTALL_DATA) $(srcdir)/$(NAME).1 $(MAN1DIR)/$(NAME).1
-		cd $(MAN1DIR) && $(RM) ./$(UNNAME).1 && $(LN_S) $(NAME).1 $(UNNAME).1
-		$(INSTALL_DATA) $(srcdir)/$(NAME).3 $(MAN3DIR)/$(NAME).3
-		cd $(MAN3DIR) && $(RM) ./$(UNNAME).3 && $(LN_S) $(NAME).3 $(UNNAME).3
-		for hdr in $(INSTALLHEADERS); do $(INSTALL_DATA) $(srcdir)/$${hdr} $(INCLUDEDIR)/$${hdr}; done
-		$(INSTALL_DATA) $(srcdir)/$(LIBNAME) $(LIBRARY)
+install: 	$(NAMEEXE) $(UNNAMEEXE) $(SHLIBNAME)
+		$(INSTALL_PROGRAM) -d $(DESTDIR)$(BINDIR) $(DESTDIR)$(LIBDIR) $(DESTDIR)$(MAN1DIR) $(DESTDIR)$(MAN3DIR) $(DESTDIR)$(INCLUDEDIR)
+		$(INSTALL_PROGRAM) $(srcdir)/$(NAMEEXE) $(DESTDIR)$(EXECUTABLE) 
+		-$(STRIP) $(DESTDIR)$(EXECUTABLE)
+		$(INSTALL_PROGRAM) $(srcdir)/$(UNNAMEEXE) $(DESTDIR)$(UNEXECUTABLE)
+		-$(STRIP) $(DESTDIR)$(UNEXECUTABLE)
+		$(INSTALL_DATA) $(srcdir)/$(NAME).1 $(DESTDIR)$(MAN1DIR)/$(NAME).1
+		cd $(DESTDIR)$(MAN1DIR) && $(RM) ./$(UNNAME).1 && $(LN_S) $(NAME).1 $(UNNAME).1
+		$(INSTALL_DATA) $(srcdir)/$(NAME).3 $(DESTDIR)$(MAN3DIR)/$(NAME).3
+		cd $(DESTDIR)$(MAN3DIR) && $(RM) ./$(UNNAME).3 && $(LN_S) $(NAME).3 $(UNNAME).3
+		for hdr in $(INSTALLHEADERS); do $(INSTALL_DATA) $(srcdir)/$${hdr} $(DESTDIR)$(INCLUDEDIR)/$${hdr}; done
+		$(INSTALL_PROGRAM) $(srcdir)/$(SHLIBNAME) $(DESTDIR)$(LIBDIR)/$(SHLIBNAME).1.0.0
+		$(LN_S) $(SHLIBNAME).1.0.0 $(DESTDIR)$(LIBDIR)/$(SHLIBNAME).1
+		$(LN_S) $(SHLIBNAME).1 $(DESTDIR)$(LIBDIR)/$(SHLIBNAME)
 
 shar :
 		shar.script $(OTHERS) $(HDRS) $(SOURCES) > $(NAME).sh
 		compress $(NAME).sh
 
+$(SHLIBNAME): $(OBJECTS)
+	$(CC) -shared -Wl,-soname,$(SHLIBNAME).1 $(LDFLAGS) -o $(SHLIBNAME) $(OBJECTS)
+
 .c.o:
 	$(CC) -c $(CPPFLAGS) $(DEFS) $(CFLAGS) $<
 

