./configure、make、make install指令含义
简述
./configure 是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。
make 是用来编译的,它从Makefile中读取指令,然后编译。
make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。
1 ./configure
./configure
#这一步一般用来生成 Makefile,为下一步的编译做准备,你可以通过在 configure 后加上参数来对安装进行控制。
./configure –prefix=/usr
#该软件会安装在 /usr 下面。
#执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin)
#资源文件就会安装在 /usr/share(而不是默认的/usr/local/share)
#一些软件的配置文件你可以通过指定 –sys-config= 参数进行设定。
#一些软件还可以加上 –with、–enable、–without、–disable 等等参数对编译加以控制
./configure –help
#察看详细的说明帮助。
2 make
该命令代表编译,大多数的源代码包都经过这一步进行编译。
有些perl或python编写的软件需要调用perl或python来进行编译。
3 make insatll
该命令表示要进行安装了。
有些软件需要先运行 make check 或 make test 来进行一些测试。
该命令需要 root 权限(因为要向系统写入文件)
扩展
make all
#与make一致,该命令会开始编译原始码,并产生可执行文件。
make clean
#清除编译产生的可执行文件及目标文件(object file,*.o)。
make distclean
#除了清除可执行文件和目标文件外,把configure所产生的Makefile也清除掉。
make install
#将程序安装至系统中。
#如果原始码编译无误,且执行结果正确,便可以把程序安装至系统预设的可执行文件存放路径。
make dist
#将程序和相关的档案包装成一个压缩文件以供发布。
#执行完会在目录下产生一个以PACKAGE-VERSION.tar.gz为名称的文件。
#PACKAGE和VERSION这两个变数是根据configure.in文件中AM_INIT_AUTOMAKE(PACKAGE,VERSION)的定义。
make distcheck
#和make dist类似,但是加入检查包装后的压缩文件是否正常。
#这个目标除了把程序和相关文件包装成tar.gz文件外,还会自动把这个压缩文件解开,执行 configure,并且进行make all 的动作,确认编译无误后,会显示这个tar.gz文件可供发布了。