注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Code@Pig Home

喜欢背着一袋Code傻笑的Pig .. 忧美.欢笑.记忆.忘却 .之. 角落

 
 
 

日志

 
 

[Autoconf] 使用 configure  

2009-02-07 12:45:21|  分类: unix |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

configure 的常用参数
--help
    详细的参数介绍
--quiet / --silent
    不打印中间的log
--prefix=xxx
    从定向 architecture-independent 部分的安装路径,比如:$ configure -prefix=/opt/gnu 则软件的 [share] 之类的东西,会放到 /opt/gnu 下面
--exec-prefix=xxx
    同上,不过是从定向 architecture-dependent 内容的路径。
--bindir=xxx / --sbindir=xxx / --libexecdir=xxx
    我的理解,--exec-prefix 包含此三者,但也可以独立定义此三者。相对于 --prefix 也有类似情况,这里就不列举了。
--build=xxx
    选定特定的作为系统类别,不同类别一些配置不一样,比如 cpu 是 x86 还是 arm 之类。不设置 --build则使用 configuration name 作为默认。
--disable-feature=xxx, --enable-feature=xxx
    打开/关闭某种特性,最常见的就是:$configure --disable-feature=gui

 

configure 的正确用法
$ gtar zxf mmalloc-1.0.tar.gz
$ mkdir build && cd build
$ ../mmalloc-1.0/configure
不要直接 cd mmalloc-1.0; ./configure,否则生成的中间文件和 source code 混杂在一起。

 

configure 生成的文件
config.cache
    configure 并不是每次都把所有的 check 都跑一遍。为了节约时间,它会将第一次 check 的内容保存在此,下次直接使用。
config.status
    因为有 config.cache,所以我希望重新跑一次所有的 check 则需要用到 config.status 这个脚本。注意,这是个shell脚本,不是 log file。一般我们会用:$configure --recheck,其实就是调用 config.status
config.log
    configure check 整个流程的 log
config.h / Makefile
    最重要的两个文件,干啥用的,you should know it :-)

 

Makefile targets
make all, make test, make install, make clean
编译所有代码,依赖的package是否存在,安装软件,清除所有编译生成的中间文件(objs)

 

Configuration Names
规范格式 cpu-manufacturer-operating_system,例如:i386-pc-cygwin
或者 cpu-manufacturer-kernel-operating_system,例如:i586-pc-linux-gnu
不过一般我们都使用简写,比如:i386-linux、sparc-sunos
与 configure 一同发布的还有两个脚本 config.guess、config.sub ,前者用来获取机器的 configuration name,而后者将'简写'变成'规范格式'。

Compiling a simple package for a GNU/Linux system.
    host = build = target = `i586-pc-linux-gnu`
Cross-compiling a package on a GNU/Linux system that is intended to run on an IBM= AIX machine: 
    build = `i586-pc-linux-gnu`, host  target = `rs6000-ibm-aix3.2`
Building a Solaris-hosted MIPS-ECOFF cross-compiler on a GNU/Linux system.
    build = `i586-pc-linux-gnu', host = `sparc-sun-solaris2.4', target = `mips-idt-ecoff'









 

  评论这张
 
阅读(976)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017