如何排除dist-gzip / dist-zip的特定目录?

时间:2016-08-04 08:38:47

标签: automake

背景: Automake提供了不同的types of distributions。阅读文档" What Goes in a Distribution"我知道如何包含额外的目录一般。但我不确定排除此列表中目录的目录的最佳方法。

这是添加到dist目录的当前configure.ac中的部分

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.gzpackage.zip都具有相同的内容。因此,包括以下目录:

  • build_aux
  • build_windows
  • 文档
  • M4
  • PO
  • 来源
  • 测试

问题: 如何build_windows中的{strong>排除 package.tar.gzm4中的package.zip

2 个答案:

答案 0 :(得分:1)

短版本是你没有。不同类型的发行版仅表示不同的格式,但这些发行版的内容设计完全相同。

答案 1 :(得分:0)

答案很长:

  

不同类型的发行版仅表示不同的格式,但这些发行版的内容设计完全相同。

因此,目标的解决方案是:

  • build_windows删除EXTRA_DIST,因为只有tar.gz发布中需要的内容
  • dist-zip删除AUTOMAKE_OPTIONS以阻止自动生成package.zip
  • 手动添加(或在本例中编辑)dist-hook规则:
    • 检查build_windows是否存在(如果从package.tar.gz构建
    • 则不存在)
    • 将dist-content复制到临时目录
    • 根据需要删除/添加文件/文件夹
    • 从此文件夹创建package_win.zip(使用其他名称阻止可能的package.zip覆盖该文件)

修改:从手动创建的dist文件夹中删除任何内容都会导致make dist (或至少make distcheck),因此如果您要删除,这只是一个好主意一切与autoconf / automake / Makfiles有关的一切