# checklibtool.m4 -*- Autoconf -*-
#==============================================================================
# Copyright (C)2004 by Eric Sunshine
#
# This library is free software; you can redistribute it and/or modify it
# under the terms of the GNU Library General Public License as published by
# the Free Software Foundation; either version 2 of the License, or (at your
# option) any later version.
#
# This library is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
# License for more details.
#
# You should have received a copy of the GNU Library General Public License
# along with this library; if not, write to the Free Software Foundation,
# Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
#==============================================================================
AC_PREREQ([2.56])
#------------------------------------------------------------------------------
# CS_CHECK_LIBTOOL
# Find and identify the various implementations of libtool. In
# particular, this macro is aware of GNU libtool and Apple's libtool
# (which serves a completely different purpose). On MacOS/X, GNU libtool
# is typically named glibtool, however a user might also use Fink to
# install the unadorned libtool; and the Fink-installed version might
# shadow Apple's own libtool if it appears in the PATH before the Apple
# tool. This macro jumps through the necessary hoops to distinguish and
# locate the various implementations. Sets the shell variable LIBTOOL to
# the located GNU libtool (if any), and APPLE_LIBTOOL to the located
# Apple libtool. Invokes AC_SUBST() for LIBTOOL and APPLE_LIBTOOL.
#------------------------------------------------------------------------------
AC_DEFUN([CS_CHECK_LIBTOOL],
[# GNU: Search for libtool before glibtool since Fink version is likely newer.
m4_define([cs_lt_path_gnu],
[/sw/bin$PATH_SEPARATOR/usr/local/bin$PATH_SEPARATOR$PATH])
AS_IF([test -z "$LIBTOOL"],
[CS_CHECK_TOOLS([LIBTOOL_TEST], [libtool glibtool gnulibtool], [],
[cs_lt_path_gnu])
AS_IF([test -n "$LIBTOOL_TEST"],
[CS_PATH_PROG([LIBTOOL_PATH], [$LIBTOOL_TEST], [], [cs_lt_path_gnu])
CS_LIBTOOL_CLASSIFY([$LIBTOOL_PATH],
[LIBTOOL="$LIBTOOL_PATH"],
[AS_IF([test -z "$APPLE_LIBTOOL"], [APPLE_LIBTOOL="$LIBTOOL_PATH"])
CS_CHECK_TOOLS([LIBTOOL], [glibtool gnulibtool])])])])
AC_SUBST([LIBTOOL])
# Apple: Ensure that Apple libtool will be found before GNU libtool from Fink.
m4_define([cs_lt_path_apple],[/bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH])
AS_IF([test -z "$APPLE_LIBTOOL"],
[CS_PATH_PROG([CS_LT_APPLE], [libtool], [], [cs_lt_path_apple])
CS_LIBTOOL_CLASSIFY([$CS_LT_APPLE], [],
[APPLE_LIBTOOL="$CS_LT_APPLE"])])
AC_SUBST([APPLE_LIBTOOL])])
AC_DEFUN([CS_LIBTOOL_CLASSIFY],
[AS_IF([test -n "$1"],
[AC_MSG_CHECKING([classification of $1])
CS_LIBTOOL_GNU_IFELSE([$1],
[AC_MSG_RESULT([gnu])
$2],
[AC_MSG_RESULT([apple])
$3])])])
AC_DEFUN([CS_LIBTOOL_GNU_IFELSE],
[AS_IF([AC_RUN_LOG([$1 --version 1>&2])], [$2], [$3])])