autoconf通用程序探测宏

 
分类: autotools   17人阅读  评论(0)  收藏  举报

完整代码下载: http://download.csdn.net/detail/zlyong0018/6709923

 

----宏: AC_CHECK_PROG(variable, prog-to-check-for, value-if-found, [value-if-not-found], [path = '$PATH'], [reject])
    检查prog-to-check-for是否存在path中。 如果找到, 则将variable设为value-if-found,否则设为value-if-not-found。 在检查的时候通常略过reject(绝对路径表示的程序路径),如果reject被略过且找到下一个符合的程序, 则将variable设置为该程序的绝对路径。 如果variable已经被赋值, 不做任何事情。 该宏还会为variable调用AC_SUBST。
    注意: 不要对同一个variable多次调用AC_CHECK_PROG, 经验证, 同一个variable的后续的调用很有可能给出一个错误的结果。

[plain]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. echo "[AC@&t@_CHECK_PROG([COMPILER], [gcc], [gcc], , [\$PATH], [/usr/bin/gcc])]"  
  2. AC_CHECK_PROG([COMPILER], [gcc], [gcc], , [$PATH], [/usr/bin/gcc])  
  3. echo "\$COMPILER = $COMPILER"  
  4. echo "\$ac_cv_prog_COMPILER = $ac_cv_prog_COMPILER"  
  5.   
  6. echo ""  
  7.   
  8. echo "[AC@&t@_CHECK_PROG([COMPILER2], [gcc], [gcc], , [\$PATH], [/usr/local/bin/gcc])]"  
  9. AC_CHECK_PROG([COMPILER2], [gcc], [gcc], , [$PATH], [/usr/local/bin/gcc])  
  10. echo "\$COMPILER2 = $COMPILER2"  
  11. echo "\$ac_cv_prog_COMPILER2 = $ac_cv_prog_COMPILER2"  
  12.   
  13. echo ""  
  14.   
  15. COMPILER=  
  16. ac_cv_prog_COMPILER=  
  17. echo "[AC@&t@_CHECK_PROG([COMPILER], [gdb], [gdb])]"  
  18. AC_CHECK_PROG([COMPILER], [gdb], [gdb])  
  19. echo "\$COMPILER = $COMPILER"  
  20. echo "\$ac_cv_prog_COMPILER = $ac_cv_prog_COMPILER"  
  21.   
  22. echo ""  
  23.   
  24. echo "[AC@&t@_CHECK_PROG([DEBUGER], [gdb], [gdb])]"  
  25. AC_CHECK_PROG([DEBUGER], [gdb], [gdb])  
  26. echo "\$DEBUGER = $DEBUGER"  
  27. echo "\$ac_cv_prog_DEBUGER = $ac_cv_prog_DEBUGER"  

运行及结果:

[plain]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. $ touch /usr/local/bin/gcc  
  2. $ chmod +x /usr/local/bin/gcc  
  3. $ ./configure  
  4. AC_CHECK_PROG([COMPILER], [gcc], [gcc], , [$PATH], [/usr/bin/gcc])  
  5. checking for gcc... gcc  
  6. $COMPILER = gcc  
  7. $ac_cv_prog_COMPILER = gcc  
  8.   
  9. AC_CHECK_PROG([COMPILER2], [gcc], [gcc], , [$PATH], [/usr/local/bin/gcc])  
  10. checking for gcc... /usr/bin/gcc  
  11. $COMPILER2 = /usr/bin/gcc  
  12. $ac_cv_prog_COMPILER2 = /usr/bin/gcc  
  13.   
  14. AC_CHECK_PROG([COMPILER], [gdb], [gdb])  
  15. checking for gdb... (cached) no  
  16. $COMPILER =   
  17. $ac_cv_prog_COMPILER =   
  18.   
  19. AC_CHECK_PROG([DEBUGER], [gdb], [gdb])  
  20. checking for gdb... gdb  
  21. $DEBUGER = gdb  
  22. $ac_cv_prog_DEBUGER = gdb  


----宏: AC_CHECK_PROGS(variable, progs-to-check-for, [value-if-not-found], [path = '$PATH'])
    检查progs-to-check-for中所列举的每个程序(空白分隔)。 如果找到了其中一个, 就将variable赋值为这个程序的名字, 否则继续检查列表中的下一个程序。 如果列表中的程序一个都没找着, 则将variable赋值为value-if-not-found, 如果value-if-not-found没指定, 则不改变variable的值。 为variable调用AC_SUBST。
    注意: 如果variable在传入前就被赋值, 这个宏可能不能达到预期的效果。

[plain]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. echo "[AC@&t@_CHECK_PROGS([PROG_LIST], [ggg gcc gdb vi gccc])]"  
  2. AC_CHECK_PROGS([PROG_LIST], [ggg gcc gdb vi gccc])  
  3. echo "\$PROG_LIST = $PROG_LIST"  

运行结果:

[plain]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. $ ./configure  
  2. AC_CHECK_PROGS([PROG_LIST], [ggg gcc gdb vi gccc])  
  3. checking for ggg... no  
  4. checking for gcc... gcc  
  5. $PROG_LIST = gcc  

 

----宏: AC_CHECK_TARGET_TOOL
    在学习该宏前先提一个前提知识点:
        --build=编译程序所在的主机系统
        --host=编译出来程序运行的主机系统
        --target=用你当前编译出来的工具所编译出来的程序运行的主机系统
    首先查找以target类型作为前缀的prog-to-check-for, 如果没找到且target和build相同, 则查找没有前缀的程序。

[plain]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. echo "\$build = $build"  
  2. echo "\$host = $host"  
  3. echo "\$target = $target"  
  4. echo "\$build_alias = $build_alias"  
  5. echo "\$host_alias = $host_alias"  
  6. echo "\$target_alias = $target_alias"  
  7. echo "[AC@&t@_CHECK_TARGET_TOOL([COMPILER_TAR], [gcc])]"  
  8. AC_CHECK_TARGET_TOOL([COMPILER_TAR], [gcc])  
  9. echo "\$COMPILER_TAR = $COMPILER_TAR"  


运行结果:

[plain]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. $ ./configure --target=arm-linux --build=arm-linux  
  2. $build = arm-unknown-linux-gnu  
  3. $host = arm-unknown-linux-gnu  
  4. $target = arm-unknown-linux-gnu  
  5. $build_alias = arm-linux  
  6. $host_alias =   
  7. $target_alias = arm-linux  
  8. AC_CHECK_TARGET_TOOL([COMPILER_TAR], [gcc])  
  9. checking for arm-linux-gcc... no  
  10. checking for gcc... gcc  
  11. $COMPILER_TAR = gcc  

----宏: AC_CHECK_TOOL(variable, prog-to-check-for, [value-if-not-found], [path = '$PATH'])
    首先查找以host为前缀的prog-to-check-for, 如果没找到则查找没有前缀的程序(无条件)。

[plain]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. echo "[AC@&t@_CHECK_TOOL([COMPILER_HOST], [gcc])]"  
  2. AC_CHECK_TOOL([COMPILER_HOST], [gcc])  
  3. echo "\$COMPILER_HOST = $COMPILER_HOST"  


运行结果:

[plain]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. $ ./configure --host=arm-linux  
  2. AC_CHECK_TOOL([COMPILER_HOST], [gcc])  
  3. checking for arm-linux-gcc... no  
  4. checking for gcc... gcc  
  5. $COMPILER_HOST = gcc  


----宏: AC_PATH_PROG(variable, prog-to-check-for, [value-if-not-found], [path = '$PATH'])
    类似宏AC_CHECK_PROG, 但该宏在查找到prog-to-check-for的时候将variable赋值为程序的绝对路径。

[plain]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. COMPILER=  
  2. AC_PATH_PROG([COMPILER], [gcc])  
  3. echo "\$COMPILER = $COMPILER"  


运行结果:

[plain]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. $ ./configure  
  2. AC_PATH_PROG([COMPILER], [gcc])  
  3. checking for gcc... /usr/bin/gcc  
  4. $COMPILER = /usr/bin/gcc  

 

----宏: AC_PATH_PROGS_FEATURE_CHECK(variable, progs-to-check-for, feature-test, [action-if-not-found], [path = '$PATH'])
    该宏从Autoconf 2.62版本开始引进。 如果variable不为空, 则将其值赋值给ac_cv_path_variable。 否则检查progs-to-check-for中所列举的且能在path找到的没一个程序。 每找到一个程序, 则将其绝对路径赋值给ac_path_variable然后执行feature-test。 如果没有一次feature-test调用为ac_cv_path_variable赋值, 则执行action-if-not-found。 即使ac_cv_path_variable被赋值, feature-test也可以继续执行, 以便在后续程序中找到一个更合适的。 如果你准备接受当前找到的程序且忽略后续所有的检查, 你可以在feature-test中设置ac_path_variable_found=:。

[plain]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. echo "using AC@&t@_PATH_PROGS_FEATURE_CHECK to find a prog which supports -v option from list ..."  
  2. AC_PATH_PROGS_FEATURE_CHECK([FEATURE_CHECK], [ddd yes readelf gcc gdb],  
  3.                             [echo "checking for $ac_path_FEATURE_CHECK ..."  
  4.                              $ac_path_FEATURE_CHECK -v > /dev/null 2>&1  
  5.                              test "x$?" = x0 \  
  6.                                  && ac_cv_path_FEATURE_CHECK=$ac_path_FEATURE_CHECK \  
  7.                                  FEATURE_CHECK=$ac_path_FEATURE_CHECK \  
  8.                                  ac_path_FEATURE_CHECK_found=:])  
  9. echo "\$FEATURE_CHECK = $FEATURE_CHECK"  
  10. echo "\$ac_cv_path_FEATURE_CHECK = $ac_cv_path_FEATURE_CHECK"  
  11.   
  12. echo ""  

 

运行结果:

[plain]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. $ ./configure  
  2. using AC_PATH_PROGS_FEATURE_CHECK to find a prog which supports -v option from list ...  
  3. checking for /usr/bin/yes ...  
  4. checking for /usr/bin/readelf ...  
  5. $FEATURE_CHECK = /usr/bin/readelf  
  6. $ac_cv_path_FEATURE_CHECK = /usr/bin/readelf  

 

----宏: AC_CHECK_TARGET_TOOLS(variable, progs-to-check-for, [value-if-not-found], [path = '$PATH'])
----宏: AC_CHECK_TOOLS(variable, progs-to-check-for, [value-if-not-found], [path = '$PATH'])
----宏: AC_PATH_PROGS(variable, progs-to-check-for, [value-if-not-found], [path = '$PATH'])
----宏: AC_PATH_TARGET_TOOL(variable, progs-to-check-for, [value-if-not-found], [path = '$PATH'])
----宏: AC_PATH_TOOL(variable, progs-to-check-for, [value-if-not-found], [path = '$PATH'])
    上述五个宏参考前面几个宏的讲解, 应该不能理解, 这里不具体描述,直接上用例。

[plain]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. echo "[AC@&t@_CHECK_TARGET_TOOLS([COMPILERS_TAR], [gccc gcc])]"  
  2. AC_CHECK_TARGET_TOOLS([COMPILERS_TAR], [gccc gcc])  
  3. echo "\$COMPILERS_TAR = $COMPILERS_TAR"  
  4.   
  5. echo ""  
  6.   
  7. echo "[AC@&t@_CHECK_TOOLS([COMPILERS_HOST], [gccc gcc])]"  
  8. AC_CHECK_TOOLS([COMPILERS_HOST], [gccc gcc])  
  9. echo "\$COMPILERS_HOST = $COMPILERS_HOST"  
  10.   
  11. echo ""  
  12.   
  13. echo "[AC@&t@_PATH_PROGS([PATH_PROGS], [ff dd gcc gdb])]"  
  14. AC_PATH_PROGS([PATH_PROGS], [ff dd gcc gdb])  
  15. echo "\$PATH_PROGS = $PATH_PROGS"  
  16. echo "\$ac_cv_path_PATH_PROGS = $ac_cv_path_PATH_PROGS"  
  17.   
  18. echo ""  
  19.   
  20. echo "[AC@&t@_PATH_TARGET_TOOL([PATH_TAR], [gcc])]"  
  21. AC_PATH_TARGET_TOOL([PATH_TAR], [gcc])  
  22. echo "\$PATH_TAR = $PATH_TAR"  
  23.   
  24. echo ""  
  25.   
  26. echo "[AC@&t@_CHECK_PROG([DEBUGER], [gdb], [gdb])]"  
  27. AC_PATH_TOOL([PATH_HOST], [gcc])  
  28. echo "\$PATH_HOST = $PATH_HOST"  

 

运行结果:

[plain]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. $ ./configure --build=arm-linux --host=arm-linux --target=arm-linux  
  2. AC_CHECK_TARGET_TOOLS([COMPILERS_TAR], [gccc gcc])  
  3. checking for arm-linux-gccc... no  
  4. checking for arm-linux-gcc... no  
  5. checking for gccc... no  
  6. checking for gcc... gcc  
  7. $COMPILERS_TAR = gcc  
  8.   
  9. AC_CHECK_TOOLS([COMPILERS_HOST], [gccc gcc])  
  10. checking for arm-linux-gccc... no  
  11. checking for arm-linux-gcc... no  
  12. checking for gccc... no  
  13. checking for gcc... gcc  
  14. $COMPILERS_HOST = gcc  
  15.   
  16. AC_PATH_PROGS([PATH_PROGS], [ff dd gcc gdb])  
  17. checking for ff... no  
  18. checking for dd... /bin/dd  
  19. $PATH_PROGS = /bin/dd  
  20. $ac_cv_path_PATH_PROGS = /bin/dd  
  21.   
  22. AC_PATH_TARGET_TOOL([PATH_TAR], [gcc])  
  23. checking for arm-linux-gcc... no  
  24. checking for gcc... /usr/bin/gcc  
  25. $PATH_TAR = /usr/bin/gcc  
  26.   
  27. AC_PATH_TOOL([PATH_HOST], [gcc])  
  28. checking for arm-linux-gcc... no  
  29. checking for gcc... /usr/bin/gcc  
  30. $PATH_HOST = /usr/bin/gcc  



 下列宏用于在configure的时候检查特定程序————是否存在, 或则特定情况下是否具有某些特征。

 

完整代码下载链接: http://download.csdn.net/detail/zlyong0018/6703171

 

----宏: AC_PROG_AWK
 按循序探测gawk, mawk, nawk以及awk, 并将变量AWK设置为第一个被探测到上述程序。

[plain]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. echo "begin checking awk ..."  
  2. AC_PROG_AWK  
  3. echo "\$AWK = $AWK"  
  4. echo "\$ac_cv_prog_AWK = $ac_cv_prog_AWK"  
  5. AC_PATH_PROG([AWK], [$AWK])  
  6. echo "\$AWK = $AWK"  
  7. if test "x$AWK" = x  
  8. then  
  9.     AC_MSG_ERROR(["I cannot find gawk/mawk/nawk/awk, make sure it is installed and in your PATH"])  
  10. fi  

 

运行结果:

[plain]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. # ./configure  
  2. begin checking awk ...  
  3. checking for gawk... gawk  
  4. $AWK = gawk  
  5. $ac_cv_prog_AWK = gawk  
  6. checking for gawk... /usr/bin/gawk  
  7. $AWK = /usr/bin/gawk  
  8. configure: creating ./config.status  


----宏:AC_PROG_GREP
 寻找能够接受最长输入行且能接受-e操作符的grep或ggrep。 并将结果赋值给GREP变量。

----宏: AC_PROG_EGREP
 检查$GREP -E是否正常, 否则寻找能够接受最长输入行的egrep或gegrep, 并将结果赋值给EGREP

----宏: AC_PROG_FGREP
 检查$GREP -F是否正常, 否者寻找能够接受最长输入行的fgrep或gfgrep, 并将结果赋值给FGREP

[plain]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. # checking grep  
  2. echo "begin checking grep"  
  3. AC_PROG_GREP  
  4. echo "\$GREP = $GREP"  
  5. echo "\$ac_cv_path_GREP = $ac_cv_path_GREP"  
  6. AC_PATH_PROG([GREP], [$GREP])  
  7. echo "\$GREP = $GREP"  
  8. if test "x$GREP" = $GREP  
  9. then  
  10.     AC_MSG_ERROR(["I cannot find grep/ggrep, make sure it is installed and in your PATH"])  
  11. fi  
  12.   
  13. echo ""  
  14.   
  15. # checking EGREP  
  16. echo "begin checking EGREP"  
  17. AC_PROG_EGREP  
  18. echo "\$EGREP = $EGREP"  
  19. echo "\$ac_cv_path_EGREP = $ac_cv_path_EGREP"  
  20.   
  21. echo ""  
  22. # checking FGREP  
  23. echo "begin checking FGREP"  
  24. AC_PROG_FGREP  
  25. echo "\$FGREP = $FGREP"  
  26. echo "\$ac_cv_path_FGREP = $ac_cv_path_FGREP"<p>echo ""</p>  


运行结果:

[plain]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. # ./configure  
  2. begin checking grep  
  3. checking for grep that handles long lines and -e... /bin/grep  
  4. $GREP = /bin/grep  
  5. $ac_cv_path_GREP = /bin/grep  
  6. checking for /bin/grep... (cached) /bin/grep  
  7. $GREP = /bin/grep  
  8.   
  9. begin checking EGREP  
  10. checking for egrep... /bin/grep -E  
  11. $EGREP = /bin/grep -E  
  12. $ac_cv_path_EGREP = /bin/grep -E  
  13.   
  14. begin checking FGREP  
  15. checking for fgrep... /bin/grep -F  
  16. $FGREP = /bin/grep -F  
  17. $ac_cv_path_FGREP = /bin/grep -F  
  18.   
  19. configure: creating ./config.status  


 

----宏: AC_PROG_INSTALL
 如果在PATH中找到了BSD兼容的install程序, 则将该程序赋值给INSTALL(实际观察中INSTALL带了-c选项)。 否则将INSTALL赋值为“dir/install-sh -c”, 其中dir由AC_CONFIG_AUX_DIR指定或为默认目录。 同时将INSTALL_PROGRAM和INSTALL_SCRIPT设定为“${INSTALL}”, 将INSTALL_DATA设定为 “${INSTALL} -m 644”
 “@INSTALL@”比较特殊, 随着不同的配置文件的不同, 他的值可能不同。
 这个宏打印出install程序不能工作的情况。为了更高的效率, 它更倾向于寻找一个C程序, 而非shell脚本。 可以使用install.sh来替代install-sh, 但install.sh已经被淘汰了, 因为有些make程序在没有Makefile的情况下可以通过一套规则从install.sh中创建出一个install。 随后这个宏通过一个队install的简单调用将多个文件安装到目标目录。
 Autoconf自带了一个你可以使用的install-sh的拷贝。 如果你使用了AC_PROG_INSTALL, 则你的发布版中必须包含install-sh或者install.sh。 否则configure会产生一条错误信息提示你找不到这些脚本(程序), 即使你使用的系统中包含了一个可用的install程序。 这是一个安全措施, 以避免你不小心遗失了install-sh/install.sh(这将导致你的程序包在没有BSD兼容的系统无法安装)。

[html]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. echo "begin checking INSTALL ..."  
  2. AC_PROG_INSTALL  
  3. echo "\$INSTALL = $INSTALL"  
  4. echo "\$INSTALL_PROGRAM = $INSTALL_PROGRAM"  
  5. echo "\$INSTALL_SCRIPT = $INSTALL_SCRIPT"  
  6. echo "\$INSTALL_DATA = $INSTALL_DATA"  
  7.   
  8. echo ""  

 

运行结果:

[html]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. # ./configure  
  2.   
  3. begin checking INSTALL ...  
  4. $INSTALL = /usr/bin/install -c  
  5. $INSTALL_PROGRAM = ${INSTALL}  
  6. $INSTALL_SCRIPT = ${INSTALL}  
  7. $INSTALL_DATA = ${INSTALL} -m 644  
  8.   
  9. configure: creating ./config.status  


 

----宏: AC_PROG_MKDIR_P
 寻找一个能够创建参数指定的目录及在指定目录的上层目录不存在的情况能同时创建上层目录的程序, 同时该程序在两个进程同时创建相同目录的时候不能发生竞态, 并把改程序赋值给MKDIR_P。
 如果可能, 该宏将使用“mkdir -p”命令, 否则将退而使用install-sh并指定-d选项, 所以你的软件包里需要像AC_PROG_INSTALL里描述的一样包含install-sh。Autoconf 2.60或Automake 1.10前的install-sh在竞态条件下很脆弱。所以如果你需要在同一个目录里并行安装两个不同的程序包时, 你需要确保一个最新的install-sh。 特别的, 如果你的Automake在于1.10版本, 小心使用“autoreconf -if”。
 不同的配置文件, “@MKDIR_P@”的值也可能不同。

[plain]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. echo "begin checking MKDIR_P"  
  2. AC_PROG_MKDIR_P  
  3. echo "\$MKDIR_P = $MKDIR_P"  
  4. echo "\$ac_cv_path_mkdir = $ac_cv_path_mkdir"  

 

运行结果:

[html]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. $ ./configure  
  2. begin checking MKDIR_P  
  3. $MKDIR_P = /bin/mkdir -p  
  4. $ac_cv_path_mkdir = /bin/mkdir  
  5.   
  6. configure: creating ./config.status  

 

----宏: AC_PROG_LEX
    如果发现了flex, 则将变量LEX设置为发flex, 并且其库在标准位置则将LEXLIB设置为-lfl。否则如果lex和他的库被发现的话则将LEX和LEXLIB分别设为lex和-ll。如果flex和lex都没faxian, 则将LEX设置为“:”。 LEX_OUTPUT_ROOT也被设置为lexer产生的文件的名字,通常为lex.yy。
    在configure运行的同时会删除配置目录下命名为lex.yy.c或lexyy.c的文件。

[plain]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. echo "begin checking LEX ..."  
  2. AC_PROG_LEX  
  3. echo "\$LEX = $LEX"  
  4. echo "\$ac_cv_prog_LEX = $ac_cv_prog_LEX"  
  5. echo "\$LEXLIB = $LEXLIB"  
  6. echo "\$LEX_OUTPUT_ROOT = $LEX_OUTPUT_ROOT"  
  7. AC_PATH_PROG([LEX], [$LEX])  
  8. echo "\$LEX = $LEX"  
  9. if test "x$LEX" = x  
  10. then  
  11. AC_MSG_ERROR(["I cannot find flex/lex, make sure it is installed and in your PATH"])  
  12. fi  

 

运行结果:

[html]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. $ ./configure  
  2. begin checking LEX ...  
  3. checking for style of include used by make... GNU  
  4. checking for gcc... gcc  
  5. checking whether the C compiler works... yes  
  6. checking for C compiler default output file name... a.out  
  7. checking for suffix of executables...   
  8. checking whether we are cross compiling... no  
  9. checking for suffix of object files... o  
  10. checking whether we are using the GNU C compiler... yes  
  11. checking whether gcc accepts -g... yes  
  12. checking for gcc option to accept ISO C89... none needed  
  13. checking dependency style of gcc... none  
  14. checking for flex... flex  
  15. checking lex output file root... lex.yy  
  16. checking lex library... -lfl  
  17. checking whether yytext is a pointer... yes  
  18. $LEX = flex  
  19. $ac_cv_prog_LEX = flex  
  20. $LEXLIB = -lfl  
  21. $LEX_OUTPUT_ROOT = lex.yy  
  22. checking for flex... /usr/bin/flex  
  23. $LEX = /usr/bin/flex  
  24.   
  25. configure: creating ./config.status  
  26. config.status: executing depfiles commands  

 

----宏:AC_PROG_LN_S
    如果“ln -s”在当前系统中可以正常工作(当前系统支持符号链接), 则将LN_S赋值为“ln -s”。否则如果“ln”能正常工作的话, 则将LN_S赋值为“ln”。 在不然就赋值为“cp -pR”。
    如果你创建链接的目录不是当前目录, 建议先进入到目标目录再进行ln(原因暂时我也不知道, 貌似ln或ln -s其中一个可能存在问题)。

----宏: AC_PROG_RANLIB
    如果能找到ranlib, 则将RANLIB设置为“ranlib”, 否则设置为“:”

----宏: AC_PROG_SED
    将SED赋值为一个符合POSIX且没有任意长度限制的sed实现。 如果没有合适的sed实现, 则报错。

----宏: AC_PROG_YACC
    如果能找到bison, 则将YACC设置为“bison -y”。 否则如果能找到byacc, 则将YACC设置为“byacc”。 再不然就将YACC设置为“yacc”。

 

[plain]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. echo "begin checking LN_S ..."  
  2.  AC_PROG_LN_S  
  3.  echo "\$LN_S = $LN_S"  
  4.    
  5.  echo ""  
  6.    
  7.  echo "begin checking RANLIB ..."  
  8.  AC_PROG_RANLIB  
  9.  echo "\$RANLIB = $RANLIB"  
  10.  AC_PATH_PROG([RANLIB], [$RANLIB])  
  11.  echo "\$RANLIB = $RANLIB"  
  12.  if test "x$RANLIB" = x  
  13.  then  
  14.      AC_MSG_ERROR(["I cannot find ranlib, make sure it is installed and in your PATH"])  
  15.  fi  
  16.    
  17.  echo ""  
  18.    
  19.  echo "begin checking SED ..."  
  20.  AC_PROG_SED  
  21.  echo "\$SED = $SED"  
  22.  echo "\$ac_cv_path_SED = $ac_cv_path_SED"  
  23.    
  24.  echo ""  
  25.    
  26.  echo "begin checking YACC ..."  
  27.  AC_PROG_YACC  
  28.  echo "\$YACC = $YACC"  
  29.  echo "\$ac_cv_prog_YACC = $ac_cv_prog_YACC"  
  30.  AC_PATH_PROG([YACC_PATH], [$YACC])  
  31.  echo "\$YACC_PATH = $YACC"  
  32.  if test "x$YACC_PATH" = x  
  33.  then  
  34.      AC_MSG_ERROR(["I cannot find bison/byacc/yacc, make sure it is installed and in your PATH"])  
  35.  fi  


运行结果:

[plain]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. $ ./configure  
  2.   
  3. begin checking LN_S ...  
  4. checking whether ln -s works... yes  
  5. $LN_S = ln -s  
  6.   
  7. begin checking RANLIB ...  
  8. checking for ranlib... ranlib  
  9. $RANLIB = ranlib  
  10. checking for ranlib... /usr/bin/ranlib  
  11. $RANLIB = /usr/bin/ranlib  
  12.   
  13. begin checking SED ...  
  14. checking for a sed that does not truncate output... /bin/sed  
  15. $SED = /bin/sed  
  16. $ac_cv_path_SED = /bin/sed  
  17.   
  18. begin checking YACC ...  
  19. checking for bison... bison -y  
  20. $YACC = bison -y  
  21. $ac_cv_prog_YACC = bison -y  
  22. checking for bison... /usr/bin/bison  
  23. $YACC_PATH = bison -y  
  24.   
  25. configure: creating ./config.status  
  26. config.status: executing depfiles commands  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值