1dnl $Id: test-package.m4 14166 2004-08-26 12:35:42Z joda $ 2dnl 3dnl rk_TEST_PACKAGE(package,headers,libraries,extra libs, 4dnl default locations, conditional, config-program) 5 6AC_DEFUN([rk_TEST_PACKAGE],[ 7AC_ARG_WITH($1, 8 AS_HELP_STRING([--with-$1=dir],[use $1 in dir])) 9AC_ARG_WITH($1-lib, 10 AS_HELP_STRING([--with-$1-lib=dir],[use $1 libraries in dir]), 11[if test "$withval" = "yes" -o "$withval" = "no"; then 12 AC_MSG_ERROR([No argument for --with-$1-lib]) 13elif test "X$with_$1" = "X"; then 14 with_$1=yes 15fi]) 16AC_ARG_WITH($1-include, 17 AS_HELP_STRING([--with-$1-include=dir],[use $1 headers in dir]), 18[if test "$withval" = "yes" -o "$withval" = "no"; then 19 AC_MSG_ERROR([No argument for --with-$1-include]) 20elif test "X$with_$1" = "X"; then 21 with_$1=yes 22fi]) 23AC_ARG_WITH($1-config, 24 AS_HELP_STRING([--with-$1-config=path],[config program for $1])) 25 26m4_ifval([$6], 27 m4_define([rk_pkgname], $6), 28 m4_define([rk_pkgname], AS_TR_CPP($1))) 29 30AC_MSG_CHECKING(for $1) 31 32case "$with_$1" in 33yes|"") d='$5' ;; 34no) d= ;; 35*) d="$with_$1" ;; 36esac 37 38header_dirs= 39lib_dirs= 40for i in $d; do 41 if test "$with_$1_include" = ""; then 42 if test -d "$i/include/$1"; then 43 header_dirs="$header_dirs $i/include/$1" 44 fi 45 if test -d "$i/include"; then 46 header_dirs="$header_dirs $i/include" 47 fi 48 fi 49 if test "$with_$1_lib" = ""; then 50 if test -d "$i/lib$abilibdirext"; then 51 lib_dirs="$lib_dirs $i/lib$abilibdirext" 52 fi 53 fi 54done 55 56if test "$with_$1_include"; then 57 header_dirs="$with_$1_include $header_dirs" 58fi 59if test "$with_$1_lib"; then 60 lib_dirs="$with_$1_lib $lib_dirs" 61fi 62 63if test "$with_$1_config" = ""; then 64 with_$1_config='$7' 65fi 66 67$1_cflags= 68$1_libs= 69 70case "$with_$1_config" in 71yes|no|""|"$7") 72 if test -f $with_$1/bin/$7 ; then 73 with_$1_config=$with_$1/bin/$7 74 fi 75 ;; 76esac 77 78case "$with_$1_config" in 79yes|no|"") 80 ;; 81*) 82 $1_cflags="`$with_$1_config --cflags 2>&1`" 83 $1_libs="`$with_$1_config --libs 2>&1`" 84 ;; 85esac 86 87found=no 88if test "$with_$1" != no; then 89 save_CFLAGS="$CFLAGS" 90 save_LIBS="$LIBS" 91 if test "$[]$1_cflags" -a "$[]$1_libs"; then 92 CFLAGS="$[]$1_cflags $save_CFLAGS" 93 LIBS="$[]$1_libs $save_LIBS" 94 AC_LINK_IFELSE([AC_LANG_PROGRAM([[$2]],[[]])],[ 95 INCLUDE_$1="$[]$1_cflags" 96 LIB_$1="$[]$1_libs" 97 AC_MSG_RESULT([from $with_$1_config]) 98 found=yes]) 99 fi 100 if test "$found" = no; then 101 ires= lres= 102 for i in $header_dirs; do 103 CFLAGS="-I$i $save_CFLAGS" 104 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[$2]],[[]])],[ires=$i;break]) 105 done 106 for i in $lib_dirs; do 107 LIBS="-L$i $3 $4 $save_LIBS" 108 AC_LINK_IFELSE([AC_LANG_PROGRAM([[$2]],[[]])],[lres=$i;break]) 109 done 110 if test "$ires" -a "$lres" -a "$with_$1" != "no"; then 111 INCLUDE_$1="-I$ires" 112 LIB_$1="-L$lres $3 $4" 113 found=yes 114 AC_MSG_RESULT([headers $ires, libraries $lres]) 115 fi 116 fi 117 CFLAGS="$save_CFLAGS" 118 LIBS="$save_LIBS" 119fi 120 121if test "$found" = yes; then 122 AC_DEFINE_UNQUOTED(rk_pkgname, 1, [Define if you have the $1 package.]) 123 with_$1=yes 124else 125 with_$1=no 126 INCLUDE_$1= 127 LIB_$1= 128 AC_MSG_RESULT(no) 129fi 130 131AC_SUBST(INCLUDE_$1) 132AC_SUBST(LIB_$1) 133]) 134