configure.in.fns
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:6k
- dnl
- dnl autoconf rules to find things in general
- dnl
- dnl
- dnl General approach to using these macros:
- dnl
- dnl bracket a group of them that must succeed or fail together
- dnl with NS_BEGIN_PACKAGE(s)/NS_END_PACKAGE(s).
- dnl In between put NS_CHECK_{LIB,HEADER}_PATH().
- dnl Custom checks can call NS_PACKAGE_NOT_COMPLETE(s) if something's wrong.
- dnl
- dnl See configure.in.dmalloc for an example.
- dnl
- dnl These macros add their stuff to V_LIBS, V_INCLUDES, V_DEFINES.
- dnl You should add them to your Makefile.in
- dnl You also need to put NS_FNS_TAIL in your configure.in
- dnl (typically just before including configure.in.tail).
- dnl
- dnl
- dnl
- dnl NS_BEGIN_PACKAGE(NAME)
- dnl
- dnl (Internally, _UNDERWAY says that we found some part of it,
- dnl _COMPLETE says we've got all of it.)
- dnl
- AC_DEFUN(NS_BEGIN_PACKAGE,
- [
- NS_PACKAGE_[$1]_UNDERWAY=false
- NS_PACKAGE_[$1]_COMPLETE=true
- ])
- dnl
- dnl If a test fails, call NS_PACKAGE_NOT_COMPLETE(NAME) to cause NS_END_PACKAGE to
- dnl eventually die.
- dnl
- AC_DEFUN(NS_PACKAGE_NOT_COMPLETE,
- [
- NS_PACKAGE_[$1]_COMPLETE=false
- ])
- dnl
- dnl NS_END_PACKAGE(NAME,REQUIRED)
- dnl REQUIRED should be "yes" or "no"
- dnl
- AC_DEFUN(NS_END_PACKAGE,
- [
- NS_PACKAGE_[$1]_VALID=false
- if $NS_PACKAGE_[$1]_UNDERWAY; then
- if $NS_PACKAGE_[$1]_COMPLETE; then
- : [All components of $1 found.]
- NS_PACKAGE_[$1]_VALID=true
- else
- AC_MSG_ERROR([Installation of $1 seems incomplete or can't be found automatically.
- Please correct the problem by telling configure where $1 is
- using the argument --with-$1=/path/to/package
- (perhaps after installing it),
- or the package is not required, disable it with --with-$1=no.])
- fi
- fi
- if test "x$2" = xyes; then
- if $NS_PACKAGE_[$1]_VALID; then
- :
- else
- AC_MSG_ERROR([$1 is required but could not be completely found.
- Please correct the problem by telling configure where $1 is
- using the argument --with-$1=/path/to/package,
- or the package is not required, disable it with --with-$1=no.])
- fi
- fi
- ])
- dnl
- dnl NS_CHECK_LIB_PATH(LIBRARY,PATH,SUGGESTION,SUGGESTION_PATH,VARIABLE,PACKAGE)
- dnl LIBRARY should be with a dotted version number but without a .a extension
- dnl PATH is whitespace separated
- dnl SUGGESTION, no disables, "" or "yes" enables, otherwise search SUGGESTION_PATH
- dnl SUGGESTION_PATH
- dnl sets VARIABLE to be the include stuff
- dnl PACKAGE is the name specified in NS_{BEGIN,END}_PACKAGE or "no"
- dnl
- dnl Automatically adds it to V_LIBS and adds a -DHAVE_LIBLIBRARY to V_DEFINES
- dnl
- AC_DEFUN(NS_CHECK_LIB_PATH,
- [
- AC_MSG_CHECKING([for lib$1])
- if test "x$3" = "xno"; then
- : disable library
- $5=FAIL
- NS_PACKAGE_NOT_COMPLETE($6)
- AC_MSG_RESULT(no)
- else
- places="$2"
- if test "x$3" != "x" -a "x$3" != xyes; then
- if test ! -d $3; then
- AC_MSG_ERROR($3 is not a directory)
- fi
- places="$4"
- fi
- $5=""
- dnl full_lib_name is libtcl7.6
- full_lib_name="$1"
- dnl simple_lib_name is libtcl76
- simple_lib_name=`echo $full_lib_name | sed -e 's/.//'`
- dnl other_simple_lib_name is libtcl7_6
- other_simple_lib_name=`echo $full_lib_name | sed -e 's/./_/'`
- dnl simpler_lib_name is libtcl
- simpler_lib_name=`echo $simple_lib_name | sed -e 'y/0123456789/ /'`
- double_break=false
- for dir in $places; do
- for file in $full_lib_name $simple_lib_name $other_simple_lib_name $simpler_lib_name
- do
- if test -r $dir/lib$file.so -o -r $dir/lib$file.a -o -r $dir/lib$file.dylib; then
- $5="-L$dir -l$file"
- double_break=true
- break
- fi
- done
- if $double_break; then
- break
- fi
- done
- if test "FAIL$[$5]" = "FAIL" ; then
- NS_PACKAGE_NOT_COMPLETE($6)
- AC_MSG_RESULT(no)
- else
- if test "$solaris"; then
- $5="-R$dir $[$5]"
- fi
- changequote(, )dnl
- ac_tr_lib=HAVE_LIB`echo $1 | sed -e 's/[^a-zA-Z0-9_]/_/g'
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
- changequote([, ])dnl
- AC_DEFINE_UNQUOTED($ac_tr_lib)
- dnl add to list
- V_LIBS="$[$5] $V_LIBS"
- V_DEFINES="-D$ac_tr_lib $V_DEFINES"
- NS_PACKAGE_[$6]_UNDERWAY=true
- AC_MSG_RESULT($[$5])
- fi
- fi
- ])
- dnl
- dnl NS_CHECK_HEADER_PATH(HEADER,PATH,SUGGESTION,SUGGESTION_PATH,VARIABLE,PACKAGE)
- dnl HEADER should be file with an extension
- dnl PATH is whitespace separated
- dnl SUGGESTION, no disables, "" or "yes" enables, otherwise search SUGGESTION_PATH
- dnl SUGGESTION_PATH
- dnl sets VARIABLE to be the include stuff
- dnl PACKAGE is the name specified in NS_{BEGIN,END}_PACKAGE or "no"
- dnl
- dnl Automatically adds it to V_INCLUDES and adds a -DHAVE_HEADER to V_DEFINES
- dnl
- AC_DEFUN(NS_CHECK_HEADER_PATH,
- [
- AC_MSG_CHECKING([for $1])
- if test "x$3" = "xno"; then
- : disable header
- $5=FAIL
- NS_PACKAGE_NOT_COMPLETE($6)
- AC_MSG_RESULT(no)
- else
- places="$2"
- if test "x$3" != "x" -a "x$3" != xyes; then
- if test ! -d $3; then
- AC_MSG_ERROR($3 is not a directory)
- fi
- places="$4"
- fi
- $5=""
- found=""
- for dir in $places; do
- if test -r $dir/$1; then
- found="$dir"
- if test "$CC" != "icc" ||
- test "$dir" != "/usr/include"; then
- $5="-I$dir"
- fi
- break
- fi
- done
- if test "FAIL$found" = "FAIL" ; then
- NS_PACKAGE_NOT_COMPLETE($6)
- AC_MSG_RESULT(no)
- else
- changequote(, )dnl
- ac_tr_hdr=HAVE_`echo $1 | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- changequote([, ])dnl
- AC_DEFINE_UNQUOTED($ac_tr_hdr)
- V_INCLUDES="$[$5] $V_INCLUDES"
- V_DEFINES="-D$ac_tr_hdr $V_DEFINES"
- NS_PACKAGE_[$6]_UNDERWAY=true
- AC_MSG_RESULT($[$5])
- fi
- fi
- ])
- dnl
- dnl NS_CHECK_ANY_PATH(ANY,PATH,SUGGESTION,SUGGESTION_PATH,VARIABLE,PACKAGE)
- dnl ANY shoudl be the file
- dnl PATH is whitespace separated
- dnl SUGGESTION, no disables, "" or "yes" enables, otherwise search SUGGESTION_PATH
- dnl SUGGESTION_PATH
- dnl sets VARIABLE to be the include stuff
- dnl PACKAGE is the name specified in NS_{BEGIN,END}_PACKAGE or "no"
- dnl
- AC_DEFUN(NS_CHECK_ANY_PATH,
- [
- AC_MSG_CHECKING([for $1])
- if test "x$3" = "xno"; then
- : disable header
- $5=FAIL
- NS_PACKAGE_NOT_COMPLETE($6)
- AC_MSG_RESULT(no)
- else
- places="$2"
- if test "x$3" != "x" -a "x$3" != xyes; then
- if test ! -d $3; then
- AC_MSG_ERROR($3 is not a directory)
- fi
- places="$4"
- fi
- $5=""
- for dir in $places; do
- if test -r $dir/$1; then
- $5="$dir"
- break
- fi
- done
- if test "FAIL$[$5]" = "FAIL" ; then
- NS_PACKAGE_NOT_COMPLETE($6)
- AC_MSG_RESULT(no)
- else
- NS_PACKAGE_[$6]_UNDERWAY=true
- AC_MSG_RESULT($[$5])
- fi
- fi
- ])
- dnl
- dnl Final stuff for fns
- dnl
- AC_DEFUN(NS_FNS_TAIL,
- [
- AC_SUBST(V_INCLUDES)
- AC_SUBST(V_LIBS)
- AC_SUBST(V_DEFINES)
- dnl AC_SUBST(V_OBJS)
- ])