1dnl @synopsis GP_CHECK_POPT(FLAG) 2dnl 3dnl Check whether libpopt is available. 4dnl FLAG must be one of 5dnl "mandatory" 6dnl "default-enabled" 7dnl "default-disabled" 8dnl 9AC_DEFUN([GP_CHECK_POPT],[ 10# 11# [GP_CHECK_POPT] 12# 13AC_REQUIRE([GP_CONFIG_MSG])dnl 14m4_if([$1],[mandatory], [_GP_CHECK_POPT([mandatory])], 15 [$1],[default-enabled], [_GP_CHECK_POPT([disable])], 16 [$1],[default-disabled], [_GP_CHECK_POPT([enable])], 17 [m4_errprint(__file__:__line__:[ Error: 18Illegal argument to $0: `$1' 19Valid values are: mandatory, default-enabled, default-disabled 20])m4_exit(1)])dnl 21])dnl 22dnl 23AC_DEFUN([_GP_CHECK_POPT],[ 24m4_if([$1],[mandatory],[ 25try_popt=yes 26require_popt=yes 27],[ 28try_popt=auto 29require_popt=no 30AC_ARG_ENABLE([popt], 31[AS_HELP_STRING([--$1-popt],[Do not use popt])], 32[ if test "x$withval" = no \ 33 || test "x$withval" = off \ 34 || test "x$withval" = false; 35 then 36 try_popt=no 37 require_popt=no 38 elif test "x$withval" = yes \ 39 || test "x$withval" = on \ 40 || test "x$withval" = true 41 then 42 try_popt=yes 43 require_popt=yes 44 fi 45])dnl 46])dnl 47 48AC_MSG_CHECKING([whether popt is required]) 49AC_MSG_RESULT([${require_popt}]) 50 51if test "$require_popt" != yes; then 52 AC_MSG_CHECKING([whether popt is requested]) 53 AC_MSG_RESULT([${try_popt}]) 54fi 55 56dnl Implicit AC_SUBST 57AC_ARG_VAR([POPT_CFLAGS],[CPPFLAGS to compile with libpopt])dnl 58AC_ARG_VAR([POPT_LIBS],[LDFLAGS to link with libpopt])dnl 59 60have_popt=no 61 62if test "x$POPT_CFLAGS" = "x" && test "x$POPT_LIBS" = "x"; then 63 64 # try to find options to compile popt.h 65 CPPFLAGS_save="$CPPFLAGS" 66 popth_found=no 67 for popt_prefix in "" /usr /usr/local 68 do 69 if test -n "${popt_prefix}"; then 70 : 71 elif test -d "${popt_prefix}/include"; then 72 CPPFLAGS="-I${popt_prefix}/include ${CPPFLAGS}" 73 else 74 continue 75 fi 76 ac_cv_header_popt_h="" 77 unset ac_cv_header_popt_h 78 AC_CHECK_HEADER([popt.h], [popth_found=yes]) 79 if test "$popth_found" = yes; then break; fi 80 done 81 CPPFLAGS="$CPPFLAGS_save" 82 if test "$popth_found" = "yes"; then 83 if test "$popt_prefix" = ""; then 84 POPT_CFLAGS="" 85 else 86 POPT_CFLAGS="-I${popt_prefix}/include" 87 fi 88 else 89 AC_MSG_ERROR([ 90* Cannot autodetect popt.h 91* 92* Set POPT_CFLAGS and POPT_LIBS correctly. 93]) 94 fi 95 96 # try to find options to link against popt 97 LDFLAGS_save="$LDFLAGS" 98 popt_links=no 99 for popt_prefix in /usr "" /usr/local; do 100 # We could have "/usr" and "lib64" at the beginning of the 101 # lists. Then the first tested location would 102 # incidentally be the right one on 64bit systems, and 103 # thus work around a bug in libtool on 32bit systems: 104 # 105 # 32bit libtool doesn't know about 64bit systems, and so the 106 # compilation will fail when linking a 32bit library from 107 # /usr/lib to a 64bit binary. 108 # 109 # This hack has been confirmed to workwith a 110 # 32bit Debian Sarge and 64bit Fedora Core 3 system. 111 for ldir in lib64 "" lib; do 112 popt_libdir="${popt_prefix}/${ldir}" 113 if test "${popt_libdir}" = "/"; then 114 popt_libdir="" 115 elif test -d "${popt_libdir}"; then 116 LDFLAGS="-L${popt_libdir} ${LDFLAGS}" 117 else 118 continue 119 fi 120 # Avoid caching of results 121 ac_cv_lib_popt_poptStuffArgs="" 122 unset ac_cv_lib_popt_poptStuffArgs 123 AC_CHECK_LIB([popt], [poptStuffArgs], [popt_links=yes]) 124 if test "$popt_links" = yes; then break; fi 125 done 126 if test "$popt_links" = yes; then break; fi 127 done 128 LDFLAGS="$LDFLAGS_save" 129 if test "$popt_links" = "yes"; then 130 if test "$popt_libdir" = ""; then 131 POPT_LIBS="-lpopt" 132 else 133 POPT_LIBS="-L${popt_libdir} -lpopt" 134 fi 135 else 136 AC_MSG_ERROR([ 137* Cannot autodetect library directory containing popt 138* 139* Set POPT_CFLAGS and POPT_LIBS correctly. 140]) 141 fi 142 have_popt=yes 143elif test "x$POPT_CFLAGS" != "x" && test "x$POPT_LIBS" != "x"; then 144 # just use the user specivied option 145 popt_msg="yes (user specified)" 146 have_popt=yes 147else 148 AC_MSG_ERROR([ 149* Fatal: Either set both POPT_CFLAGS and POPT_LIBS or neither. 150]) 151fi 152 153AC_MSG_CHECKING([if popt is functional]) 154if test "$require_popt$have_popt" = "yesno"; then 155 AC_MSG_RESULT([no, but required]) 156 AC_MSG_ERROR([ 157* popt library not found 158* Fatal: ${PACKAGE_NAME} (${PACKAGE_TARNAME}) requires popt 159* Please install it and/or set POPT_CFLAGS and POPT_LIBS. 160]) 161fi 162AC_MSG_RESULT([${have_popt}]) 163 164GP_CONFIG_MSG([use popt library], [${have_popt}]) 165if test "$have_popt" = "yes"; then 166 AC_DEFINE([HAVE_POPT],[1],[whether the popt library is available]) 167 GP_CONFIG_MSG([popt libs],[${POPT_LIBS}]) 168 GP_CONFIG_MSG([popt cppflags],[${POPT_CFLAGS}]) 169fi 170AM_CONDITIONAL([HAVE_POPT],[test "$have_popt" = "yes"]) 171])dnl 172dnl 173dnl Please do not remove this: 174dnl filetype: 7595380e-eff3-49e5-90ab-e40f1d544639 175dnl I use this to find all the different instances of this file which 176dnl are supposed to be synchronized. 177dnl 178dnl Local Variables: 179dnl mode: autoconf 180dnl End: 181