GNU编码标准(七)发布过程 相关内容摘录

仅对第7章The Release Process的内容进行摘录。

文章目录

  • 7 发布过程
    • 7.1 configure应该如何工作
    • 7.2Makefile公约
      • 7.2.1 Makefile的一般公约
      • 7.2.2 Makefiles中的实用程序
      • 7.2.3 指定命令的变量
      • 7.2.4 DESTDIR:支持分阶段安装
      • 7.2.5 安装目录的变量
      • 7.2.6 用户标准目标
      • 7.2.7 安装命令类别

7 发布过程

7.1 configure应该如何工作

1.关于源码位置(VPATH构建)
configure脚本应接受“–srcdir=dirname”形式的选项,以指定找到源的目录(如果不是当前目录)。这使得可以在单独的目录中构建程序,这样就不会修改实际的源目录。
如果用户没有指定“–srcdir”,那么configure应该同时检查.和…,看看它是否能找到源。如果它在其中一个地方找到来源,它应该从那里使用它们。否则,它应该报告它找不到来源,并应该以非零状态退出。
注:VPATH构建其实很有用,如果编译失败,make clean乃至make distclean都没用,就需要删除重来,这个时候就不用删除整个源码包了。还有一个好处就是可以使用同一源码编译好几个不同配置的程序。
2.选项形式
选项允许更详细地指定机器上存在的软件或硬件,包括或排除软件包的可选部分,或调整某些工具或参数的名称:
--enable-feature[=parameter]
将软件包配置为构建和安装一个名为feature可选用户级设施。这允许用户选择要包含哪些可选功能。如果默认构建,则给出“no”的可选parameter来省略feature。
任何“–enable”选项都不应导致一个功能取代另一个功能。任何“–enable”选项都不应该用一种有用的行为取代另一种有用的行为。“–enable”的唯一正确用法是用于构建程序的一部分还是排除它的问题。

--with-package
软件包将安装,因此请将此软件包配置为与package配合使用。
package的可能值包括“gnu-as”(或“gas”)、“gnu-ld”、“gnu-libc”、“gdb”、“x”和“x-toolkit”。
不要使用“–with”选项来指定用于查找某些文件的文件名。这超出了“–with”选项的范围。

variable=value
将变量variable的值设置为value。这用于覆盖构建过程中命令或参数的默认值。例如,用户可以发布“configure CFLAGS=-g CXXFLAGS=-g”来构建调试信息,而无需默认优化。

7.2Makefile公约

7.2.1 Makefile的一般公约

7.2.2 Makefiles中的实用程序

configure和make过程不应直接使用程序,除了以下的:
awk cat cmp cp diff echo egrep expr false grep install-info ln lsmkdir mv printf pwd rm rmdir sed sleep sort tar test touch tr true和gzip等压缩程序可以在dist规则中使用。

7.2.3 指定命令的变量

7.2.4 DESTDIR:支持分阶段安装

DESTDIR支持通常用于软件包创建。它也对想要了解给定软件包将在哪里安装什么的用户有帮助,并允许通常没有权限安装到保护区的用户在获得这些权限之前进行构建和安装。最后,它可用于asstow等工具,其中代码安装在一个地方,但使用符号链接或特殊挂载操作似乎安装在其他地方。因此,我们强烈建议GNU软件包支持DESTDIR,尽管这不是绝对要求。

7.2.5 安装目录的变量

7.2.6 用户标准目标

7.2.7 安装命令类别

你可能感兴趣的:(编译与构建,gnu,linux,服务器)