=================================================================shell 相关==============================================
1.
pushd popd 切换目录
2. 每个脚本都应该在文件开头加上set -e,这句语句告诉bash如果任何语句的执行结果不是true则应该退出。
这样的好处是防止错误像滚雪球般变大导致一个致命的错误,而这些错误本应该在之前就被处理掉。如果要增加可读性,可以使用set -o errexit,它的作用与set -e相同。
3.
$# 是传给脚本的参数个数
$0 是脚本本身的名字
$1 是传递给该shell脚本的第一个参数
$2 是传递给该shell脚本的第二个参数
$@ 是传给脚本的所有参数的列表
$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
$$ 是脚本运行的当前进程ID号
$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误
=================================================================SPEC 相关==============================================
3. Source0 : 源代码包的名字。 如果还有其它源文件或者配置文件, 使用 Source1, Source2
4. 预处理 %prep, 常用来执行一些解开开源包的命令
5. %setup 解压源代码,将当前目录改为解压后产生的目录。
%setup -c -n newdir
创建新目录newdir并解压。
6. %clean 要防止由于 Buildroot 中的旧文件而导致错误的打包,必须在安装新文件之前将 BuildRoot 中任何现有的文件删除。为此,可以使用一个 clean 脚本。这个脚本通常以 %clean 标记表示,通常仅仅包含这样一句:
rm -rf $RPM_BUILD_ROOT
如果有的话,在制作了在 Install 段落中安装的文件的打包之后,将运行 %clean,保证下次构建之前 Buildroot 被清空。
7. BuildRoot 编译的路径。是安装或编译时使用的“虚拟目录”,考虑到多用户的环境,一般定义为:~/rpmbuild/BUILDROOT
该参数非常重要,因为在生成rpm的过程中,执行make install时就会把软件安装到上述的路径中,在打包的时候(即%files段),同样依赖“虚拟目录”为“根目录”进行操作。
后面可使用$RPM_BUILD_ROOT
方式引用。
8. 查看变量地址:
rpm --eval "%{_topdir}"
=================================================================CMakeList相关==============================================
1. add_subdirectory CMakeLists 用来 cd 到子目录,先执行子目录中的CMakeLists