📄 libs.m4
字号:
# This file is part of Autoconf. -*- Autoconf -*-# Checking for libraries.# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.# This program is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; either version 2, or (at your option)# any later version.## This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the# GNU General Public License for more details.## You should have received a copy of the GNU General Public License# along with this program; if not, write to the Free Software# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA# 02110-1301, USA.# As a special exception, the Free Software Foundation gives unlimited# permission to copy, distribute and modify the configure scripts that# are the output of Autoconf. You need not follow the terms of the GNU# General Public License when using or distributing such scripts, even# though portions of the text of Autoconf appear in them. The GNU# General Public License (GPL) does govern all other use of the material# that constitutes the Autoconf program.## Certain portions of the Autoconf source text are designed to be copied# (in certain cases, depending on the input) into the output of# Autoconf. We call these the "data" portions. The rest of the Autoconf# source text consists of comments plus executable code that decides which# of the data portions to output in any given case. We call these# comments and executable code the "non-data" portions. Autoconf never# copies any of the non-data portions into its output.## This special exception to the GPL applies to versions of Autoconf# released by the Free Software Foundation. When you make and# distribute a modified version of Autoconf, you may extend this special# exception to the GPL to apply to your modified version as well, *unless*# your modified version has the potential to copy into its output some# of the text that was the non-data portion of the version that you started# with. (In other words, unless your change moves or copies text from# the non-data portions to the data portions.) If your modification has# such potential, you must delete any notice of this special exception# to the GPL from your modified version.## Written by David MacKenzie, with help from# Franc,ois Pinard, Karl Berry, Richard Pixley, Ian Lance Taylor,# Roland McGrath, Noah Friedman, david d zuhn, and many others.# Table of contents## 1. Generic tests for libraries# 2. Tests for specific libraries## --------------------------------- #### 1. Generic tests for libraries.## #### --------------------------------- ### AC_SEARCH_LIBS(FUNCTION, SEARCH-LIBS,# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND],# [OTHER-LIBRARIES])# --------------------------------------------------------# Search for a library defining FUNC, if it's not already available.AC_DEFUN([AC_SEARCH_LIBS],[AS_VAR_PUSHDEF([ac_Search], [ac_cv_search_$1])dnlAC_CACHE_CHECK([for library containing $1], ac_Search,[ac_func_search_save_LIBS=$LIBSAC_LANG_CONFTEST([AC_LANG_CALL([], [$1])])for ac_lib in '' $2; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $5 $ac_func_search_save_LIBS" fi AC_LINK_IFELSE([], [AS_VAR_SET(ac_Search, [$ac_res])]) AS_VAR_SET_IF(ac_Search, [break])dnldoneAS_VAR_SET_IF(ac_Search, , [AS_VAR_SET(ac_Search, [no])])dnlrm conftest.$ac_extLIBS=$ac_func_search_save_LIBS])ac_res=AS_VAR_GET(ac_Search)AS_IF([test "$ac_res" != no], [test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" $3], [$4])dnlAS_VAR_POPDEF([ac_Search])dnl])# AC_CHECK_LIB(LIBRARY, FUNCTION,# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND],# [OTHER-LIBRARIES])# ------------------------------------------------------## Use a cache variable name containing both the library and function name,# because the test really is for library $1 defining function $2, not# just for library $1. Separate tests with the same $1 and different $2s# may have different results.## Note that using directly AS_VAR_PUSHDEF([ac_Lib], [ac_cv_lib_$1_$2])# is asking for troubles, since AC_CHECK_LIB($lib, fun) would give# ac_cv_lib_$lib_fun, which is definitely not what was meant. Hence# the AS_LITERAL_IF indirection.## FIXME: This macro is extremely suspicious. It DEFINEs unconditionally,# whatever the FUNCTION, in addition to not being a *S macro. Note# that the cache does depend upon the function we are looking for.## It is on purpose we used `ac_check_lib_save_LIBS' and not just# `ac_save_LIBS': there are many macros which don't want to see `LIBS'# changed but still want to use AC_CHECK_LIB, so they save `LIBS'.# And ``ac_save_LIBS' is too tempting a name, so let's leave them some# freedom.AC_DEFUN([AC_CHECK_LIB],[m4_ifval([$3], , [AH_CHECK_LIB([$1])])dnlAS_LITERAL_IF([$1], [AS_VAR_PUSHDEF([ac_Lib], [ac_cv_lib_$1_$2])], [AS_VAR_PUSHDEF([ac_Lib], [ac_cv_lib_$1''_$2])])dnlAC_CACHE_CHECK([for $2 in -l$1], ac_Lib,[ac_check_lib_save_LIBS=$LIBSLIBS="-l$1 $5 $LIBS"AC_LINK_IFELSE([AC_LANG_CALL([], [$2])], [AS_VAR_SET(ac_Lib, yes)], [AS_VAR_SET(ac_Lib, no)])LIBS=$ac_check_lib_save_LIBS])AS_IF([test AS_VAR_GET(ac_Lib) = yes], [m4_default([$3], [AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_LIB$1)) LIBS="-l$1 $LIBS"])], [$4])dnlAS_VAR_POPDEF([ac_Lib])dnl])# AC_CHECK_LIB# AH_CHECK_LIB(LIBNAME)# ---------------------m4_define([AH_CHECK_LIB],[AH_TEMPLATE(AS_TR_CPP(HAVE_LIB$1), [Define to 1 if you have the `]$1[' library (-l]$1[).])])# AC_HAVE_LIBRARY(LIBRARY,# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND],# [OTHER-LIBRARIES])# ---------------------------------------------------------## This macro is equivalent to calling `AC_CHECK_LIB' with a FUNCTION# argument of `main'. In addition, LIBRARY can be written as any of# `foo', `-lfoo', or `libfoo.a'. In all of those cases, the compiler# is passed `-lfoo'. However, LIBRARY cannot be a shell variable;# it must be a literal name.AU_DEFUN([AC_HAVE_LIBRARY],[m4_pushdef([AC_Lib_Name], m4_bpatsubst(m4_bpatsubst([[$1]], [lib\([^\.]*\)\.a], [\1]), [-l], []))dnlAC_CHECK_LIB(AC_Lib_Name, main, [$2], [$3], [$4])dnlac_cv_lib_[]AC_Lib_Name()=ac_cv_lib_[]AC_Lib_Name()_mainm4_popdef([AC_Lib_Name])dnl])## --------------------------------- #### 2. Tests for specific libraries. #### --------------------------------- ### --------------------- ## Checks for X window. ## --------------------- ## _AC_PATH_X_XMKMF# ----------------# Internal subroutine of _AC_PATH_X.# Set ac_x_includes and/or ac_x_libraries.m4_define([_AC_PATH_X_XMKMF],[AC_ARG_VAR(XMKMF, [Path to xmkmf, Makefile generator for X Window System])dnlrm -f -r conftest.dirif mkdir conftest.dir; then cd conftest.dir cat >Imakefile <<'_ACEOF'incroot: @echo incroot='${INCROOT}'usrlibdir: @echo usrlibdir='${USRLIBDIR}'libdir: @echo libdir='${LIBDIR}'_ACEOF if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then # GNU make sometimes prints "make[1]: Entering...", which would confuse us. for ac_var in incroot usrlibdir libdir; do eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`" done # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. for ac_extension in a so sl; do if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" && test -f "$ac_im_libdir/libX11.$ac_extension"; then ac_im_usrlibdir=$ac_im_libdir; break fi done # Screen out bogus values from the imake configuration. They are # bogus both because they are the default anyway, and because # using them would break gcc on systems where it needs fixed includes. case $ac_im_incroot in /usr/include) ac_x_includes= ;; *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;; esac case $ac_im_usrlibdir in /usr/lib | /lib) ;; *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;; esac fi cd .. rm -f -r conftest.dirfi])# _AC_PATH_X_XMKMF# _AC_PATH_X_DIRECT# -----------------# Internal subroutine of _AC_PATH_X.# Set ac_x_includes and/or ac_x_libraries.m4_define([_AC_PATH_X_DIRECT],[# Standard set of common directories for X headers.# Check X11 before X11Rn because it is often a symlink to the current release.ac_x_header_dirs='/usr/X11/include/usr/X11R6/include/usr/X11R5/include/usr/X11R4/include/usr/include/X11/usr/include/X11R6/usr/include/X11R5/usr/include/X11R4/usr/local/X11/include/usr/local/X11R6/include/usr/local/X11R5/include/usr/local/X11R4/include
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -