当前位置: 首页 > news >正文

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 安装命令类别

http://www.lryc.cn/news/65134.html

相关文章:

  • DX算法还原
  • 多媒体API
  • 免费矢量图标网站有哪些?
  • 基于Redis的分布式限流详解
  • 权限提升:漏洞探针.(Linux系统)
  • python-11-多线程模块threading
  • 动态gif图片如何在线做?轻松实现图片在线生成gif
  • 浅谈联网汽车安全漏洞
  • 深入理解SeaTunnel:易用、高性能、支持实时流式和离线批处理的海量数据集成平台
  • 项目上线 | 兰精携手盖雅工场,数智驱动绿色转型
  • 102-Linux_I/O复用方法之poll
  • 【VAR模型 | 时间序列】帮助文档:VAR模型的引入和Python实践(含源代码)
  • Spark任务提交流程
  • python相对路径与绝对路径
  • SPSS如何进行基本统计分析之案例实训?
  • Python项目实战篇——常用验证码标注和识别(需求分析和实现思路)
  • MySQL基础(六)多表查询
  • 零死角玩转stm32中级篇3-SPI总线
  • 顺序表功能实现(入手版详解)
  • Java 中的线程是什么,如何创建和管理线程-下(十三)
  • 为什么我的Windows 10 便签不支持更改字体?
  • 野火STM32电机系列(六)Cubemx配置ADC规则和注入通道
  • 预制菜,巨头们的新赛场
  • 英语语法第一章之英语语法综述
  • ChatGPT被淘汰了?Auto-GPT到底有多强
  • unity NGUI使用方法
  • 软件测试技术(五)软件测试流程
  • Redis缓存穿透和雪崩
  • 【C++】set和map的使用
  • 大学生学java编程的就业前景怎么样?我来聊聊自己的见解