# gc++filt.m4 serial 1					-*- Autoconf -*-
# Find an instance of GNU c++filt on PATH.

dnl Copyright (C) 2010 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU
dnl General Public License.  As a special exception to the GNU General
dnl Public License, this file may be distributed as part of a program
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.

dnl From Rainer Orth.

# GCC_PROG_GNU_CXXFILT
# --------------------
# Check for GNU c++filt.
# FIXME: Maybe need TARGET variant, though c++filt should be target
# independent.
AC_DEFUN([GCC_PROG_GNU_CXXFILT],
  [AC_ARG_VAR([CXXFILT], [Location of GNU c++filt.  Defaults to the first
    GNU version of `c++filt', `gc++filt' on PATH.])
  AC_CACHE_CHECK([for GNU c++filt], [ac_cv_path_CXXFILT],
    [AC_PATH_PROGS_FEATURE_CHECK([CXXFILT], [c++filt gc++filt],
      [_AC_PATH_PROG_FLAVOR_GNU([$ac_path_CXXFILT],
	[ac_cv_path_CXXFILT=$ac_path_CXXFILT && ac_path_CXXFILT_found=:])])])
  CXXFILT=$ac_cv_path_CXXFILT
])
