如何排除 dist-gzip / dist-zip 的特定目录?
How to exclude specific directories for dist-gzip / dist-zip?
背景:
Automake 提供不同的 types of distributions. After reading the docs "What Goes in a Distribution" 我知道如何 包含 额外的目录 一般 。但我不确定最好的方法排除 此列表中的目录单个规则。
这是当前 configure.ac
中添加到 dist 目录的部分
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_AUX_DIR([build_aux])
这是当前 Makefile.am
中添加到 dist 目录的部分
SUBDIRS = sources po doc tests
EXTRA_DIST = build_windows
此外Makefile.am
有
AUTOMAKE_OPTIONS = dist-zip
用于启用 zip 分发。
结果:package.tar.gz
和package.zip
内容相同。因此包括以下目录:
- build_aux
- build_windows
- 文档
- m4
- po
- 来源
- 测试
问题:
如何在 package.tar.gz
中 排除 build_windows
并在 package.zip
中排除 m4
?
简而言之,你不会。不同类型的发行版只是格式不同,但这些发行版的内容设计得完全一样。
长答案:
Different types of distributions only mean different format, but the content of these is designed to be exactly the same.
因此目标的解决方案是:
- 从
EXTRA_DIST
中删除 build_windows
因为在 tar.gz 分发 中只有需要的内容
- 从
AUTOMAKE_OPTIONS
中删除 dist-zip
以防止自动生成 package.zip
- 手动添加(或在本例中为编辑)
dist-hook
规则:
- 检查
build_windows
是否存在(如果从 package.tar.gz
构建则不存在)
- 将 dist 内容复制到临时目录
- remove/add files/folders 有需要的
- 从此文件夹创建一个
package_win.zip
(使用不同的名称以防止可能的 package.zip
覆盖文件)
编辑:从手动创建的 dist 文件夹中删除任何内容都会破坏 make dist
(或至少 make distcheck
),因此这只是一个好主意如果你想删除与 autoconf/automake/Makfiles 相关的所有内容
背景: Automake 提供不同的 types of distributions. After reading the docs "What Goes in a Distribution" 我知道如何 包含 额外的目录 一般 。但我不确定最好的方法排除 此列表中的目录单个规则。
这是当前 configure.ac
中添加到 dist 目录的部分
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_AUX_DIR([build_aux])
这是当前 Makefile.am
中添加到 dist 目录的部分
SUBDIRS = sources po doc tests
EXTRA_DIST = build_windows
此外Makefile.am
有
AUTOMAKE_OPTIONS = dist-zip
用于启用 zip 分发。
结果:package.tar.gz
和package.zip
内容相同。因此包括以下目录:
- build_aux
- build_windows
- 文档
- m4
- po
- 来源
- 测试
问题:
如何在 package.tar.gz
中 排除 build_windows
并在 package.zip
中排除 m4
?
简而言之,你不会。不同类型的发行版只是格式不同,但这些发行版的内容设计得完全一样。
长答案:
Different types of distributions only mean different format, but the content of these is designed to be exactly the same.
因此目标的解决方案是:
- 从
EXTRA_DIST
中删除build_windows
因为在 tar.gz 分发 中只有需要的内容
- 从
AUTOMAKE_OPTIONS
中删除dist-zip
以防止自动生成 package.zip - 手动添加(或在本例中为编辑)
dist-hook
规则:- 检查
build_windows
是否存在(如果从package.tar.gz
构建则不存在) - 将 dist 内容复制到临时目录
- remove/add files/folders 有需要的
- 从此文件夹创建一个
package_win.zip
(使用不同的名称以防止可能的package.zip
覆盖文件)
- 检查
编辑:从手动创建的 dist 文件夹中删除任何内容都会破坏 make dist
(或至少 make distcheck
),因此这只是一个好主意如果你想删除与 autoconf/automake/Makfiles 相关的所有内容