410937e
diff --git a/client/Makefile.am b/client/Makefile.am
410937e
index b85f5d2..b1ecf82 100644
410937e
--- a/client/Makefile.am
410937e
+++ b/client/Makefile.am
410937e
@@ -15,6 +15,6 @@ dhclient_SOURCES = clparse.c dhclient.c dhc6.c \
34b6412
 		   scripts/bsdos scripts/freebsd scripts/linux scripts/macos \
34b6412
 		   scripts/netbsd scripts/nextstep scripts/openbsd \
Adam Tkac 81227ae
 		   scripts/solaris scripts/openwrt
410937e
-dhclient_LDADD = ../common/libdhcp.a ../omapip/libomapi.a $(BIND_LIBS)
410937e
+dhclient_LDADD = ../common/libdhcp.a ../omapip/libomapi.la $(BIND_LIBS)
34b6412
 man_MANS = dhclient.8 dhclient-script.8 dhclient.conf.5 dhclient.leases.5
34b6412
 EXTRA_DIST = $(man_MANS)
410937e
diff --git a/common/tests/Makefile.am b/common/tests/Makefile.am
410937e
index 196aa44..1ccaa05 100644
410937e
--- a/common/tests/Makefile.am
410937e
+++ b/common/tests/Makefile.am
410937e
@@ -15,22 +15,22 @@ ATF_TESTS += alloc_unittest dns_unittest misc_unittest ns_name_unittest
c72a792
 alloc_unittest_SOURCES = test_alloc.c $(top_srcdir)/tests/t_api_dhcp.c
c72a792
 alloc_unittest_LDADD = $(ATF_LDFLAGS)
c72a792
 alloc_unittest_LDADD += ../libdhcp.a  \
410937e
-	../../omapip/libomapi.a $(BIND_LIBS)
410937e
+	../../omapip/libomapi.la $(BIND_LIBS)
c72a792
 
e83fb19
 dns_unittest_SOURCES = dns_unittest.c $(top_srcdir)/tests/t_api_dhcp.c
e83fb19
 dns_unittest_LDADD = $(ATF_LDFLAGS)
8173a68
 dns_unittest_LDADD += ../libdhcp.a  \
410937e
-	../../omapip/libomapi.a $(BIND_LIBS)
410937e
+	../../omapip/libomapi.la $(BIND_LIBS)
7b69e54
 
5ca2db2
 misc_unittest_SOURCES = misc_unittest.c $(top_srcdir)/tests/t_api_dhcp.c
5ca2db2
 misc_unittest_LDADD = $(ATF_LDFLAGS)
5ca2db2
 misc_unittest_LDADD += ../libdhcp.a  \
410937e
-	../../omapip/libomapi.a $(BIND_LIBS)
410937e
+	../../omapip/libomapi.la $(BIND_LIBS)
5ca2db2
 
9568cf3
 ns_name_unittest_SOURCES = ns_name_test.c $(top_srcdir)/tests/t_api_dhcp.c
9568cf3
 ns_name_unittest_LDADD = $(ATF_LDFLAGS)
9568cf3
 ns_name_unittest_LDADD += ../libdhcp.a  \
410937e
-	../../omapip/libomapi.a $(BIND_LIBS)
410937e
+	../../omapip/libomapi.la $(BIND_LIBS)
5ca2db2
 
c72a792
 check: $(ATF_TESTS)
410937e
 	@if test $(top_srcdir) != ${top_builddir}; then \
410937e
diff --git a/configure.ac b/configure.ac
410937e
index f594cfa..adc98a8 100644
410937e
--- a/configure.ac
410937e
+++ b/configure.ac
410937e
@@ -47,7 +47,8 @@ AM_CONDITIONAL(CROSS_COMPILING, test "$cross_compiling" = "yes")
Adam Tkac 81227ae
 # Use this to define _GNU_SOURCE to pull in the IPv6 Advanced Socket API.
Adam Tkac 81227ae
 AC_USE_SYSTEM_EXTENSIONS
Adam Tkac 81227ae
 
Adam Tkac 81227ae
-AC_PROG_RANLIB
Adam Tkac 81227ae
+# Use libtool to simplify building of shared libraries
Adam Tkac 81227ae
+AC_PROG_LIBTOOL
Adam Tkac 81227ae
 
8173a68
 AC_PATH_PROG(AR, ar)
8173a68
 AC_SUBST(AR)
410937e
diff --git a/dhcpctl/Makefile.am b/dhcpctl/Makefile.am
410937e
index fa20a78..dd016e4 100644
410937e
--- a/dhcpctl/Makefile.am
410937e
+++ b/dhcpctl/Makefile.am
410937e
@@ -1,17 +1,17 @@
410937e
 BIND_LIBS = @BIND_LIBS@
410937e
 
Adam Tkac 81227ae
 bin_PROGRAMS = omshell
Adam Tkac 81227ae
-lib_LIBRARIES = libdhcpctl.a
Adam Tkac 81227ae
+lib_LTLIBRARIES = libdhcpctl.la
Adam Tkac 81227ae
 noinst_PROGRAMS = cltest
Adam Tkac 81227ae
 man_MANS = omshell.1 dhcpctl.3
Adam Tkac 81227ae
 EXTRA_DIST = $(man_MANS)
Adam Tkac 81227ae
 
Adam Tkac 81227ae
 omshell_SOURCES = omshell.c
Adam Tkac 81227ae
-omshell_LDADD = libdhcpctl.a ../common/libdhcp.a ../omapip/libomapi.a \
Adam Tkac 81227ae
+omshell_LDADD = libdhcpctl.la ../common/libdhcp.a ../omapip/libomapi.la \
410937e
 	        $(BIND_LIBS)
8173a68
 
Adam Tkac 81227ae
-libdhcpctl_a_SOURCES = dhcpctl.c callback.c remote.c
Adam Tkac 81227ae
+libdhcpctl_la_SOURCES = dhcpctl.c callback.c remote.c
Adam Tkac 81227ae
 
Adam Tkac 81227ae
 cltest_SOURCES = cltest.c
Adam Tkac 81227ae
-cltest_LDADD = libdhcpctl.a ../common/libdhcp.a ../omapip/libomapi.a \
Adam Tkac 81227ae
+cltest_LDADD = libdhcpctl.la ../common/libdhcp.a ../omapip/libomapi.la \
410937e
 	       $(BIND_LIBS)
410937e
diff --git a/omapip/Makefile.am b/omapip/Makefile.am
410937e
index b0d2680..265bcef 100644
410937e
--- a/omapip/Makefile.am
410937e
+++ b/omapip/Makefile.am
410937e
@@ -1,9 +1,9 @@
410937e
 BIND_LIBS = @BIND_LIBS@
410937e
 
Adam Tkac 81227ae
-lib_LIBRARIES = libomapi.a
Adam Tkac 81227ae
+lib_LTLIBRARIES = libomapi.la
Adam Tkac 81227ae
 noinst_PROGRAMS = svtest
Adam Tkac 81227ae
 
Adam Tkac 81227ae
-libomapi_a_SOURCES = protocol.c buffer.c alloc.c result.c connection.c \
Adam Tkac 81227ae
+libomapi_la_SOURCES = protocol.c buffer.c alloc.c result.c connection.c \
Adam Tkac 81227ae
 		     errwarn.c listener.c dispatch.c generic.c support.c \
Adam Tkac 81227ae
 		     handle.c message.c convert.c hash.c auth.c inet_addr.c \
Adam Tkac 81227ae
 		     array.c trace.c toisc.c iscprint.c isclib.c
410937e
@@ -12,5 +12,5 @@ man_MANS = omapi.3
34b6412
 EXTRA_DIST = $(man_MANS)
Adam Tkac 81227ae
 
Adam Tkac 81227ae
 svtest_SOURCES = test.c
410937e
-svtest_LDADD = libomapi.a $(BIND_LIBS)
410937e
+svtest_LDADD = libomapi.la $(BIND_LIBS)
8173a68
 
410937e
diff --git a/relay/Makefile.am b/relay/Makefile.am
410937e
index c9a1cba..316a524 100644
410937e
--- a/relay/Makefile.am
410937e
+++ b/relay/Makefile.am
410937e
@@ -4,7 +4,7 @@ AM_CPPFLAGS = -DLOCALSTATEDIR='"@localstatedir@"'
34b6412
 
Adam Tkac 81227ae
 sbin_PROGRAMS = dhcrelay
Adam Tkac 81227ae
 dhcrelay_SOURCES = dhcrelay.c
Adam Tkac 81227ae
-dhcrelay_LDADD = ../common/libdhcp.a ../omapip/libomapi.a \
Adam Tkac 81227ae
+dhcrelay_LDADD = ../common/libdhcp.a ../omapip/libomapi.la \
410937e
 		 $(BIND_LIBS)
34b6412
 man_MANS = dhcrelay.8
34b6412
 EXTRA_DIST = $(man_MANS)
410937e
diff --git a/server/Makefile.am b/server/Makefile.am
410937e
index 30cf2b1..f56f310 100644
410937e
--- a/server/Makefile.am
410937e
+++ b/server/Makefile.am
410937e
@@ -15,8 +15,8 @@ dhcpd_SOURCES = dhcpd.c dhcp.c bootp.c confpars.c db.c class.c failover.c \
7406750
 		dhcpv6.c mdb6.c ldap.c ldap_casa.c leasechain.c ldap_krb_helper.c
Adam Tkac 81227ae
 
34b6412
 dhcpd_CFLAGS = $(LDAP_CFLAGS)
410937e
-dhcpd_LDADD = ../common/libdhcp.a ../omapip/libomapi.a \
410937e
-	      ../dhcpctl/libdhcpctl.a $(BIND_LIBS) $(LDAP_LIBS)
410937e
+dhcpd_LDADD = ../common/libdhcp.a ../omapip/libomapi.la \
410937e
+	      ../dhcpctl/libdhcpctl.la $(BIND_LIBS) $(LDAP_LIBS)
410937e
 
410937e
 man_MANS = dhcpd.8 dhcpd.conf.5 dhcpd.leases.5
410937e
 EXTRA_DIST = $(man_MANS)
410937e
diff --git a/server/tests/Makefile.am b/server/tests/Makefile.am
410937e
index 771de06..8d8a2c1 100644
410937e
--- a/server/tests/Makefile.am
410937e
+++ b/server/tests/Makefile.am
410937e
@@ -20,8 +20,8 @@ DHCPSRC = ../dhcp.c ../bootp.c ../confpars.c ../db.c ../class.c      \
c72a792
           ../ddns.c ../dhcpleasequery.c ../dhcpv6.c ../mdb6.c        \
7406750
           ../ldap.c ../ldap_casa.c ../dhcpd.c ../leasechain.c
c72a792
 
8173a68
-DHCPLIBS = $(top_builddir)/common/libdhcp.a $(top_builddir)/omapip/libomapi.a \
410937e
-          $(top_builddir)/dhcpctl/libdhcpctl.a $(BIND_LIBS)
8173a68
+DHCPLIBS = $(top_builddir)/common/libdhcp.a $(top_builddir)/omapip/libomapi.la \
410937e
+          $(top_builddir)/dhcpctl/libdhcpctl.la $(BIND_LIBS)
c72a792
 
c72a792
 ATF_TESTS =
410937e
 if HAVE_ATF