Home | History | Annotate | Line # | Download | only in cf
      1 dnl Id
      2 dnl
      3 dnl rk_TEST_PACKAGE(package,program,libraries,extra libs,
      4 dnl			default locations, conditional, config-program, headers)
      5 
      6 AC_DEFUN([rk_TEST_PACKAGE],[
      7 AC_ARG_WITH($1,
      8 	AS_HELP_STRING([--with-$1=dir],[use $1 in dir]))
      9 AC_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])
     13 elif test "X$with_$1" = "X"; then
     14   with_$1=yes
     15 fi])
     16 AC_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])
     20 elif test "X$with_$1" = "X"; then
     21   with_$1=yes
     22 fi])
     23 AC_ARG_WITH($1-config,
     24 	AS_HELP_STRING([--with-$1-config=path],[config program for $1]))
     25 
     26 m4_ifval([$6],
     27 	m4_define([rk_pkgname], $6),
     28 	m4_define([rk_pkgname], AS_TR_CPP($1)))
     29 
     30 AC_MSG_CHECKING(for $1)
     31 
     32 case "$with_$1" in
     33 yes|"") d='$5' ;;
     34 no)	d= ;;
     35 *)	d="$with_$1" ;;
     36 esac
     37 
     38 header_dirs=
     39 lib_dirs=
     40 for 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
     54 done
     55 
     56 if test "$with_$1_include"; then
     57 	header_dirs="$with_$1_include $header_dirs"
     58 fi
     59 if test "$with_$1_lib"; then
     60 	lib_dirs="$with_$1_lib $lib_dirs"
     61 fi
     62 
     63 if test "$with_$1_config" = ""; then
     64 	with_$1_config='$7'
     65 fi
     66 
     67 $1_cflags=
     68 $1_libs=
     69 
     70 case "$with_$1_config" in
     71 yes|no|""|"$7")
     72 	if test -f $with_$1/bin/$7 ; then
     73 		with_$1_config=$with_$1/bin/$7
     74 	fi
     75 	;;
     76 esac
     77 
     78 case "$with_$1_config" in
     79 yes|no|"")
     80 	;;
     81 *)
     82 	$1_cflags="`$with_$1_config --cflags 2>&1`"
     83 	$1_libs="`$with_$1_config --libs 2>&1`"
     84 	;;
     85 esac
     86 
     87 found=no
     88 if 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 		m4_ifval([$8],[AC_CHECK_HEADERS([[$8]])])
     95 		AC_LINK_IFELSE([AC_LANG_PROGRAM([[$2]],[[]])],[
     96 			INCLUDE_$1="$[]$1_cflags"
     97 			LIB_$1="$[]$1_libs"
     98 			AC_MSG_RESULT([from $with_$1_config])
     99 			found=yes])
    100 	fi
    101 	if test "$found" = no; then
    102 		ires= lres=
    103 		for i in $header_dirs; do
    104 			CFLAGS="-I$i $save_CFLAGS"
    105 			m4_ifval([$8],[AC_CHECK_HEADERS([[$8]])])
    106 			AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[$2]],[[]])],[ires=$i;break])
    107 		done
    108 		for i in $lib_dirs; do
    109 			LIBS="-L$i $3 $4 $save_LIBS"
    110 			AC_LINK_IFELSE([AC_LANG_PROGRAM([[$2]],[[]])],[lres=$i;break])
    111 		done
    112 		if test "$ires" -a "$lres" -a "$with_$1" != "no"; then
    113 			INCLUDE_$1="-I$ires"
    114 			LIB_$1="-L$lres $3 $4"
    115 			found=yes
    116 			AC_MSG_RESULT([headers $ires, libraries $lres])
    117 		fi
    118 	fi
    119 	CFLAGS="$save_CFLAGS"
    120 	LIBS="$save_LIBS"
    121 fi
    122 
    123 if test "$found" = yes; then
    124 	AC_DEFINE_UNQUOTED(rk_pkgname, 1, [Define if you have the $1 package.])
    125 	with_$1=yes
    126 else
    127 	with_$1=no
    128 	INCLUDE_$1=
    129 	LIB_$1=
    130 	AC_MSG_RESULT(no)
    131 fi
    132 
    133 AC_SUBST(INCLUDE_$1)
    134 AC_SUBST(LIB_$1)
    135 ])
    136