全部博文(19)
分类: LINUX
2008-12-04 17:24:35
unix-like 系统中
configure mak make install分别起什么作用
大家都知道configure mak make install这3个命令是用来安装软件的,它们跟windows下的msi程序或者setup.exe程序功能差不多。下面结合windows的安装程式说说这3个命令分别承担着什么角色。
一般我们从网上down下的Source Distribution是tar.gz包,解压之后的目录叫做构造树(build tree),它是通过GNU的AUTOCONF和AUTOMAKE对源码树(source tree)进行操作,而产生的程序的安装步骤。就像windows有个安装程序生成器一样。我们来到构造树目录,首先执行的是./configure,再mak ,再mak install
首先说configure
./configure是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。为什么要先configure一下呢?因为unix-like家族中的兄弟(linux solaris aix hp-linux)虽是继承同一血统,但也有很多互不相容的地方,比如命令和类文件放的地方。configure的目的就是区分目前系统属于哪种等一些基础信息。它产出的成果便是makefile文件,此文件记录了执行make命令时,让make能在正确的系统配置的情况下得以进行。而windows上却不需要如此,因为windows很统一,当然如果你在windows上装source distribution时也可能要configure。
再说make
make命令是用来编译的,它从Makefile中读取指令,然后编译。它可以轻松的理顺各个程序和类之间的引用依赖关系,并且生成相应的可执行文件。即生成了像windows里的msi,setup.exe文件一样。注意Solaris 9里最好使用GNU 的make版本,不然会报一些莫名的错误。
再make install
make install便是双击setup.exe了。它与make的区别在于,make时是对makefile里所有的编译结点进行编译,而make install则是将install这个节点生成的程式运行之。比如make clean就是对clean这个结点的程式运行,用来清除./configure生成的旧的信息。
最后注意程式的安装目录叫安装树(install tree),最好放在和前两棵树不一样的地方,以方便管理。