If you work on a project that uses Autoconf () to help find installed libraries, the suggestions in the previous section are not the entire story. There are a few methods to detect and incorporate Libidn into your Autoconf based package.
If your audience is a typical GNU/Linux desktop, you can often assume they have the pkg-config tool installed, in which you can use its Autoconf M4 macro to find and set up your package for use with Shishi. The following illustrate this scenario.
AC_ARG_ENABLE(idn, AC_HELP_STRING([--disable-idn], [Don't use Libidn]), libidn=$enableval) if test "$libidn" != "no" ; then PKG_CHECK_MODULES(LIBIDN, libidn >= 0.0.0, [libidn=yes], [libidn=no]) if test "$libidn" != "yes" ; then libidn=no AC_MSG_WARN([Libidn not found]) else libidn=yes AC_DEFINE(USE_LIBIDN, 1, [Define to 1 if you want Libidn.]) fi fi AC_MSG_CHECKING([if Libidn should be used]) AC_MSG_RESULT($libidn)
The following illustrate a standalone autconf test, that work regardless of if your project Libtool () or not. It is the most portable solution, and is recommended.
AC_CHECK_HEADER(idna.h, AC_CHECK_LIB(idn, stringprep_check_version, [libidn=yes AC_SUBST(SHISHI_LIBS, -lidn)], libidn=no), kerberos5=no) AC_ARG_ENABLE(idn, AC_HELP_STRING([--disable-idn], [Don't use Libidn]), libidn=$enableval) if test "$libidn" != "no" ; then AC_DEFINE(USE_LIBIDN, 1, [Define to 1 if you want Libidn.]) else AC_MSG_WARN([Libidn not found]) fi AC_MSG_CHECKING([if Libidn should be used]) AC_MSG_RESULT($libidn)