Instead of just looking for a libtool binary, actually configure libtool.

As the build doesn't use automake we need to manually set top_builddir in the Makefile.

Upstream-Status: Inactive-Upstream [2014]
Signed-off-by: Ross Burton <ross.burton@arm.com>

diff --git a/Makefile.in b/Makefile.in
index a2b5494..aa0b8ca 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -36,6 +36,7 @@
 #
 srcdir = @srcdir@
 VPATH = @srcdir@
+top_builddir = @srcdir@

 #
 # the name of the install program to use
diff --git a/etc/configure.ac b/etc/configure.ac
index e444543..b137443 100644
--- a/etc/configure.ac
+++ b/etc/configure.ac
@@ -161,42 +161,7 @@ AS_IF([test "x$with_gcrypt" != xno], AC_GCRYPT_SETUP())
 dnl!
 dnl!  Now look for libtool.
 dnl!
-AC_CHECK_PROGS(LIBTOOL, libtool)
-if test -z "$LIBTOOL"
-then
-  AC_MSG_RESULT([
-        You must have GNU Libtool installed to build srecord.
-        Homepage: http://www.gnu.org/software/libtool/])
-  OK=no
-  if apt-get --version > /dev/null 2> /dev/null; then
-    AC_MSG_RESULT([
-        The following command may be used to install it:
-        sudo apt-get install libtool
-    ])
-    OK=yes
-  fi
-  if yum --version > /dev/null 2> /dev/null; then
-    AC_MSG_RESULT([
-        The following command may be used to install it:
-        sudo yum install libtool
-    ])
-    OK=yes
-  fi
-  if pkg_info -a > /dev/null 2> /dev/null; then
-    AC_MSG_RESULT([
-        The following command may be used to install it:
-        sudo pkg_add -r libtool
-    ])
-    OK=yes
-  fi
-  if test "$OK" != "yes"; then
-    AC_MSG_RESULT([
-        If you are using a package based install, you will need the
-        libtool package.
-    ])
-  fi
-  exit 1
-fi
+LT_INIT

 dnl
 dnl     If the soelim program exists, and understands the -I option,
