llvm.org GIT mirror llvm / release_36 autoconf / m4 / find_std_program.m4
release_36

Tree @release_36 (Download .tar.gz)

find_std_program.m4 @release_36

a5e2607
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
72f71e1
a5e2607
 
72f71e1
a5e2607
 
72f71e1
 
a5e2607
72f71e1
 
 
a5e2607
72f71e1
 
a5e2607
 
72f71e1
 
a5e2607
 
72f71e1
 
a5e2607
675267e
 
 
cc2665d
675267e
 
 
 
 
 
 
 
 
 
 
 
9977ea6
a5e2607
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
675267e
a5e2607
675267e
a5e2607
675267e
a5e2607
675267e
a5e2607
675267e
a5e2607
675267e
a5e2607
 
 
 
 
 
 
 
 
 
dnl Check for a standard program that has a bin, include and lib directory
dnl 
dnl Parameters:
dnl   $1 - prefix directory to check
dnl   $2 - program name to check
dnl   $3 - header file to check 
dnl   $4 - library file to check 
AC_DEFUN([CHECK_STD_PROGRAM],
[m4_define([allcapsname],translit($2,a-z,A-Z))
if test -n "$1" -a -d "$1" -a -n "$2" -a -d "$1/bin" -a -x "$1/bin/$2" ; then
  AC_SUBST([USE_]allcapsname(),["USE_]allcapsname()[ = 1"])
  AC_SUBST(allcapsname(),[$1/bin/$2])
  AC_SUBST(allcapsname()[_BIN],[$1/bin])
  AC_SUBST(allcapsname()[_DIR],[$1])
  if test -n "$3" -a -d "$1/include" -a -f "$1/include/$3" ; then 
    AC_SUBST(allcapsname()[_INC],[$1/include])
  fi
  if test -n "$4" -a -d "$1/lib" -a -f "$1/lib/$4" ; then
    AC_SUBST(allcapsname()[_LIB],[$1/lib])
  fi
fi
])

dnl Find a program via --with options, in the path, or well known places
dnl
dnl Parameters:
dnl   $1 - program's executable name
dnl   $2 - header file name to check (optional)
dnl   $3 - library file name to check (optional)
dnl   $4 - alternate (long) name for the program
AC_DEFUN([FIND_STD_PROGRAM],
[m4_define([allcapsname],translit($1,a-z,A-Z))
m4_define([stdprog_long_name],ifelse($4,,translit($1,[ !@#$%^&*()-+={}[]:;"',./?],[-]),translit($4,[ !@#$%^&*()-+={}[]:;"',./?],[-])))
AC_MSG_CHECKING([for ]stdprog_long_name()[ bin/lib/include locations])
AC_ARG_WITH($1,
  AS_HELP_STRING([--with-]stdprog_long_name()[=DIR],
  [Specify that the ]stdprog_long_name()[ install prefix is DIR]),
  $1[pfxdir=$withval],$1[pfxdir=nada])
AC_ARG_WITH($1[-bin],
  AS_HELP_STRING([--with-]stdprog_long_name()[-bin=DIR],
  [Specify that the ]stdprog_long_name()[ binary is in DIR]),
    $1[bindir=$withval],$1[bindir=nada])
AC_ARG_WITH($1[-lib],
  AS_HELP_STRING([--with-]stdprog_long_name()[-lib=DIR],
  [Specify that ]stdprog_long_name()[ libraries are in DIR]),
  $1[libdir=$withval],$1[libdir=nada])
AC_ARG_WITH($1[-inc],
  AS_HELP_STRING([--with-]stdprog_long_name()[-inc=DIR],
  [Specify that the ]stdprog_long_name()[ includes are in DIR]),
  $1[incdir=$withval],$1[incdir=nada])
eval pfxval=\$\{$1pfxdir\}
eval binval=\$\{$1bindir\}
eval incval=\$\{$1incdir\}
eval libval=\$\{$1libdir\}
if test "${pfxval}" != "nada" ; then
  CHECK_STD_PROGRAM(${pfxval},$1,$2,$3)
elif test "${binval}" != "nada" ; then
  if test "${libval}" != "nada" ; then
    if test "${incval}" != "nada" ; then
      if test -d "${binval}" ; then
        if test -d "${incval}" ; then
          if test -d "${libval}" ; then
            AC_SUBST(allcapsname(),${binval}/$1)
            AC_SUBST(allcapsname()[_BIN],${binval})
            AC_SUBST(allcapsname()[_INC],${incval})
            AC_SUBST(allcapsname()[_LIB],${libval})
            AC_SUBST([USE_]allcapsname(),["USE_]allcapsname()[ = 1"])
            AC_MSG_RESULT([found via --with options])
          else
            AC_MSG_RESULT([failed])
            AC_MSG_ERROR([The --with-]$1[-libdir value must be a directory])
          fi
        else
          AC_MSG_RESULT([failed])
          AC_MSG_ERROR([The --with-]$1[-incdir value must be a directory])
        fi
      else
        AC_MSG_RESULT([failed])
        AC_MSG_ERROR([The --with-]$1[-bindir value must be a directory])
      fi
    else
      AC_MSG_RESULT([failed])
      AC_MSG_ERROR([The --with-]$1[-incdir option must be specified])
    fi
  else
    AC_MSG_RESULT([failed])
    AC_MSG_ERROR([The --with-]$1[-libdir option must be specified])
  fi
else
  tmppfxdir=`which $1 2>&1`
  if test -n "$tmppfxdir" -a -d "${tmppfxdir%*$1}" -a \
          -d "${tmppfxdir%*$1}/.." ; then
    tmppfxdir=`cd "${tmppfxdir%*$1}/.." ; pwd`
    CHECK_STD_PROGRAM($tmppfxdir,$1,$2,$3)
    AC_MSG_RESULT([found in PATH at ]$tmppfxdir)
  else
    checkresult="yes"
    eval checkval=\$\{"USE_"allcapsname()\}
    CHECK_STD_PROGRAM([/usr],$1,$2,$3)
    if test -z "${checkval}" ; then
      CHECK_STD_PROGRAM([/usr/local],$1,$2,$3)
      if test -z "${checkval}" ; then
        CHECK_STD_PROGRAM([/sw],$1,$2,$3)
        if test -z "${checkval}" ; then
          CHECK_STD_PROGRAM([/opt],$1,$2,$3)
          if test -z "${checkval}" ; then
            CHECK_STD_PROGRAM([/],$1,$2,$3)
            if test -z "${checkval}" ; then
              checkresult="no"
            fi
          fi
        fi
      fi
    fi
    AC_MSG_RESULT($checkresult)
  fi
fi
])