make

config/configure/Configure、make 、make test/make check、sudo make install 的作用



https://stackoverflow.com/questions/1735473/what-does-make-check-do



Strictly speaking, it doesn’t necessarily do anything.



If a Makefile has a target named check, then make check will “build” that target. It’s typically a phony target, meaning that it is a make-scripted command rather than a file named “check” that gets created.



The gnu project advises that all gnu software should include a make check target that runs post-build tests in the build directory, so make check can be used frequently on packages distributed from the FSF. Other projects will sometimes follow this convention as well.

https://www.cnblogs.com/zhouhbing/p/5078525.html



这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤
config/configure/Configure
这个是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本
这一步一般用来生成 Makefile,为下一步的编译做准备,你可以通过在 configure 后加上参数来对安装进行控制,比如:
./configure –prefix=/usr
上面的意思是将该软件安装在 /usr 下面
执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin)
资源文件就会安装在 /usr/share(而不是默认的/usr/local/share)
同时一些软件的配置文件你可以通过指定 –sys-config= 参数进行设定
还有诸如:–with、–enable、–without、–disable 等等参数对编译加以控制,你可以通过 ./configure –help 察看详细的说明帮助
make
这一步是用来编译的,它从Makefile中读取指令,然后编译
这一步就是编译,大多数的源代码包都经过这一步进行编译
当然有些perl或python编写的软件需要调用perl或python来进行编译
如果 在 make 过程中出现 error ,你就要记下错误代码(注意不仅仅是最后一行),然后你可以向开发者提交 bugreport(一般在 INSTALL 里有提交地址),或者你的系统少了一些依赖库等,这些需要自己仔细研究错误代码
make test / make check
顾名思义,这一步就是对上一步 make 的检查了,要确保 make 是没有错误的,也就是这一步的 test、check要全部是 OK 的,error 为0
sudo make install
这一步是用来安装的,它也从Makefile中读取指令,安装到指定的位置
这条命令来进行安装,一般需要你有 root 权限(因为要向系统写入文件),所以前面用了 sudo
AUTOMAKE和AUTOCONF是非常有用的用来发布C程序的东西。如果你也写程序想使用AUTOMAKE和AUTOCONF,可以参考CNGNU.ORG上的相关文章



Category linux