dnl @synopsis GP_CHECK_POPT(FLAG) dnl dnl Check whether libpopt is available. dnl FLAG must be one of dnl "mandatory" dnl "default-enabled" dnl "default-disabled" dnl AC_DEFUN([GP_CHECK_POPT],[ # # [GP_CHECK_POPT] # AC_REQUIRE([GP_CONFIG_MSG])dnl m4_if([$1],[mandatory], [_GP_CHECK_POPT([mandatory])], [$1],[default-enabled], [_GP_CHECK_POPT([disable])], [$1],[default-disabled], [_GP_CHECK_POPT([enable])], [m4_errprint(__file__:__line__:[ Error: Illegal argument to $0: `$1' Valid values are: mandatory, default-enabled, default-disabled ])m4_exit(1)])dnl ])dnl dnl AC_DEFUN([_GP_CHECK_POPT],[ m4_if([$1],[mandatory],[ try_popt=yes require_popt=yes ],[ try_popt=auto require_popt=no AC_ARG_ENABLE([popt], [AS_HELP_STRING([--$1-popt],[Do not use popt])], [ if test "x$withval" = no \ || test "x$withval" = off \ || test "x$withval" = false; then try_popt=no require_popt=no elif test "x$withval" = yes \ || test "x$withval" = on \ || test "x$withval" = true then try_popt=yes require_popt=yes fi ])dnl ])dnl AC_MSG_CHECKING([whether popt is required]) AC_MSG_RESULT([${require_popt}]) if test "$require_popt" != yes; then AC_MSG_CHECKING([whether popt is requested]) AC_MSG_RESULT([${try_popt}]) fi dnl Implicit AC_SUBST AC_ARG_VAR([POPT_CFLAGS],[CPPFLAGS to compile with libpopt])dnl AC_ARG_VAR([POPT_LIBS],[LDFLAGS to link with libpopt])dnl have_popt=no if test "x$POPT_CFLAGS" = "x" && test "x$POPT_LIBS" = "x"; then # try to find options to compile popt.h CPPFLAGS_save="$CPPFLAGS" popth_found=no for popt_prefix in "" /usr /usr/local do if test -n "${popt_prefix}"; then : elif test -d "${popt_prefix}/include"; then CPPFLAGS="-I${popt_prefix}/include ${CPPFLAGS}" else continue fi ac_cv_header_popt_h="" unset ac_cv_header_popt_h AC_CHECK_HEADER([popt.h], [popth_found=yes]) if test "$popth_found" = yes; then break; fi done CPPFLAGS="$CPPFLAGS_save" if test "$popth_found" = "yes"; then if test "$popt_prefix" = ""; then POPT_CFLAGS="" else POPT_CFLAGS="-I${popt_prefix}/include" fi else AC_MSG_ERROR([ * Cannot autodetect popt.h * * Set POPT_CFLAGS and POPT_LIBS correctly. ]) fi # try to find options to link against popt LDFLAGS_save="$LDFLAGS" popt_links=no for popt_prefix in /usr "" /usr/local; do # We could have "/usr" and "lib64" at the beginning of the # lists. Then the first tested location would # incidentally be the right one on 64bit systems, and # thus work around a bug in libtool on 32bit systems: # # 32bit libtool doesn't know about 64bit systems, and so the # compilation will fail when linking a 32bit library from # /usr/lib to a 64bit binary. # # This hack has been confirmed to workwith a # 32bit Debian Sarge and 64bit Fedora Core 3 system. for ldir in lib64 "" lib; do popt_libdir="${popt_prefix}/${ldir}" if test "${popt_libdir}" = "/"; then popt_libdir="" elif test -d "${popt_libdir}"; then LDFLAGS="-L${popt_libdir} ${LDFLAGS}" else continue fi # Avoid caching of results ac_cv_lib_popt_poptStuffArgs="" unset ac_cv_lib_popt_poptStuffArgs AC_CHECK_LIB([popt], [poptStuffArgs], [popt_links=yes]) if test "$popt_links" = yes; then break; fi done if test "$popt_links" = yes; then break; fi done LDFLAGS="$LDFLAGS_save" if test "$popt_links" = "yes"; then if test "$popt_libdir" = ""; then POPT_LIBS="-lpopt" else POPT_LIBS="-L${popt_libdir} -lpopt" fi else AC_MSG_ERROR([ * Cannot autodetect library directory containing popt * * Set POPT_CFLAGS and POPT_LIBS correctly. ]) fi have_popt=yes elif test "x$POPT_CFLAGS" != "x" && test "x$POPT_LIBS" != "x"; then # just use the user specivied option popt_msg="yes (user specified)" have_popt=yes else AC_MSG_ERROR([ * Fatal: Either set both POPT_CFLAGS and POPT_LIBS or neither. ]) fi AC_MSG_CHECKING([if popt is functional]) if test "$require_popt$have_popt" = "yesno"; then AC_MSG_RESULT([no, but required]) AC_MSG_ERROR([ * popt library not found * Fatal: ${PACKAGE_NAME} (${PACKAGE_TARNAME}) requires popt * Please install it and/or set POPT_CFLAGS and POPT_LIBS. ]) fi AC_MSG_RESULT([${have_popt}]) GP_CONFIG_MSG([use popt library], [${have_popt}]) if test "$have_popt" = "yes"; then AC_DEFINE([HAVE_POPT],[1],[whether the popt library is available]) GP_CONFIG_MSG([popt libs],[${POPT_LIBS}]) GP_CONFIG_MSG([popt cppflags],[${POPT_CFLAGS}]) fi AM_CONDITIONAL([HAVE_POPT],[test "$have_popt" = "yes"]) ])dnl dnl dnl Please do not remove this: dnl filetype: 7595380e-eff3-49e5-90ab-e40f1d544639 dnl I use this to find all the different instances of this file which dnl are supposed to be synchronized. dnl dnl Local Variables: dnl mode: autoconf dnl End: