| Back to the Main Page. | ac_pkg_mico |
Download the M4 Source. |
AC_PKG_MICO([X.X.X optional required])
2005-10-14 0.5.65 : InstalledPackages
Tal Shalif <tal@shalif.com>
license: GPLWithACException
INCLUDES += @MICO_INCLUDE@ LDFLAGS += @MICO_LIB@
AC_DEFUN([AC_PKG_MICO],
[
#
# first parse the argument given in configure.in to AC_PKG_MICO
#
MICO_REQUEST_VERSION=
MICO_URGENCY="optional"
changequote(<<, >>)
for a in $1 $2 $3 $4 $5 $6 $7 $8 $9 x; do
case "$a" in
x) break;;
[0-9]*.[0-9]*.[0-9]*) MICO_REQUEST_VERSION="$a";;
optional|required) MICO_URGENCY="$a";;
*) argerror="argument to the PKG_MICO macro must be one of 'X.X.X' 'required' or 'optional'";;
esac
done
changequote([, ])
if test -n "$argerror"; then
AC_MSG_ERROR($argerror)
fi;
AC_MSG_CHECKING(if mico is wanted)
AC_ARG_WITH(mico,
[ --with-mico=PATH absolute path name of mico's configuration file 'mico-setup.sh' (default is to search in \$prefix/lib:/usr/local/lib:/usr/lib),
--without-mico to disable mico detection],
[
#
# Run this if -with or -without was specified
#
case "$withval" in
yes) MICO_URGENCY=required;;
no) if test x$MICO_URGENCY = xrequired; then
AC_MSG_ERROR("PKG_MICO was configured with the 'required' option. You can not override it from the command line")
fi;
;;
*) MICO_URGENCY=required; MICOSETUP="$withval" ;;
esac
],[])
AC_MSG_RESULT($MICO_URGENCY)
#
# Now we know if we want mico or not, only go further if
# it's wanted.
#
if test x$MICO_URGENCY = xrequired -o x$MICO_URGENCY = xoptional; then
#
# If not specified by caller, search in standard places
#
if test -z "$MICOSETUP" ; then
AC_PATH_PROG(MICOSETUP, mico-setup.sh, , $prefix/lib:/usr/local/lib:/usr/lib)
fi
if test -z "$MICOSETUP" ; then
if test x$MICO_URGENCY = xrequired ; then
AC_MSG_ERROR("mico setup file mico-setup.sh not found")
else
AC_MSG_RESULT("mico setup file mico-setup.sh not found")
fi
else
# source mico-setup.sh
# Collect mico version number.
# But be carefull - mico-setup.sh
# unsets prefix and exec_prefix so save them first
sh -c ". $MICOSETUP; echo MICOVERSION=\${MICOVERSION}; echo MICOSHAREDDIR=\${MICOSHAREDDIR}; echo MICODIR=\${MICODIR}" > conftest.mico-setup
eval `cat conftest.mico-setup`
if test -z "$MICOVERSION" ; then
AC_MSG_ERROR("panic: could not read the MICOVERSION variable");
fi
#
# Check that mico version matches requested version or above
#
if test -n "$MICO_REQUEST_VERSION" ; then
changequote(<<, >>)dnl
MICO_MAJOR=`expr $MICOVERSION : '\([0-9]*\)\.[0-9]*\.[0-9]*'`
MICO_MINOR=`expr $MICOVERSION : '[0-9]*\.\([0-9]*\)\.[0-9]*'`
MICO_RELEASE=`expr $MICOVERSION : '[0-9]*\.[0-9]*\.\([0-9]*\)'`
MICO_REQUEST_MAJOR=`expr $MICO_REQUEST_VERSION : '\([0-9]*\)\.[0-9]*\.[0-9]*'`
MICO_REQUEST_MINOR=`expr $MICO_REQUEST_VERSION : '[0-9]*\.\([0-9]*\)\.[0-9]*'`
MICO_REQUEST_RELEASE=`expr $MICO_REQUEST_VERSION : '[0-9]*\.[0-9]*\.\([0-9]*\)'`
changequote([, ])dnl
AC_MSG_CHECKING(mico version >= $MICO_REQUEST_VERSION)
version_ok=yes
for verpair in "$MICO_MAJOR:$MICO_REQUEST_MAJOR" "$MICO_MINOR:$MICO_REQUEST_MINOR" "$MICO_RELEASE:$MICO_REQUEST_RELEASE"; do
if eval "test `echo $verpair | sed 's,:, -gt ,'`"; then
break
fi
if eval "test `echo $verpair | sed 's,:, -lt ,'`"; then
version_ok=no
break
fi
done
if test x$version_ok = xno; then
AC_MSG_RESULT(no)
AC_MSG_ERROR(mico version is $MICOVERSION)
else
AC_MSG_RESULT(yes)
fi
fi
#
# look for mico-c++ and scan it for a string match
# to "-I*ministl"
#
AC_PATH_PROG(MICO_CXX, mico-c++, , ${MICODIR}/bin:${MICOSHAREDDIR}/bin)
if test -z "$MICO_CXX"; then
AC_MSG_ERROR("panic: can not locate and scan the mico script mico-c++")
fi
AC_MSG_CHECKING(if mico was compiled using ministl)
if test -z "`grep '\-I.*ministl' $MICO_CXX`"; then
MICO_USE_MINISTL=0
AC_MSG_RESULT(no)
else
MICO_USE_MINISTL=1
AC_MSG_RESULT(yes)
fi
#
# look for mico-ld and scan it for -l* libraries
# needed to link with mico
#
AC_PATH_PROG(MICO_LD, mico-ld, , ${MICODIR}/bin:${MICOSHAREDDIR}/bin)
if test -z "$MICO_LD"; then
AC_MSG_ERROR("panic: can not locate and scan the mico script mico-ld")
fi
AC_MSG_CHECKING(mico dependencies)
micodeps=
for item in `grep -- -l $MICO_LD | tr '"' ' '` ; do
case $item in
-l*) micodeps="$micodeps $item" ;;
esac
done
if test -z "$micodeps" ;then
AC_MSG_RESULT(none)
else
AC_MSG_RESULT($micodeps)
fi
AC_MSG_CHECKING(how to link with the mico library)
MICO_LIB="-L${MICODIR}/lib -lmico${MICOVERSION} $micodeps"
AC_MSG_RESULT($MICO_LIB)
MICO_INCLUDE="-I${MICOSHAREDDIR}/include"
AC_SUBST(MICODIR)
AC_SUBST(MICOVERSION)
AC_SUBST(MICOSHAREDDIR)
AC_SUBST(MICO_INCLUDE)
AC_SUBST(MICO_LIB)
AC_SUBST(MICO_USE_MINISTL)
fi
fi
])