【发布时间】:2014-12-28 20:36:47
【问题描述】:
我有一个项目,目录结构如下(简化):
configure.ac
Makefile.am
samples
src/Makefile.am
tests/openssh_keys
tests/Makefile.am
顶层 Makefile.am 有以下内容:
EXTRA_DIST = $(srcdir)/tests/openssh_keys \
$(srcdir)/samples
SUBDIRS = src . tests
“tests”中的“openssh_keys”目录包含单元测试所需的数据。当我使用“make dist”创建包时,EXTRA_DIST 中提到的所有文件都正确包含在包中。我在使用“make distcheck”时遇到了麻烦,因为这会创建一个 VPATH 构建。不幸的是,EXTRA_DIST 中提到的文件没有被复制,导致运行测试用例时出错。
即使在 VPATH 构建中,任何人都有适当的解决方案来包含 EXTRA_DIST 中提到的文件?
【问题讨论】:
-
我不确定这是否是问题所在,但您无需在
EXTRA_DIST中指定$(srcdir)。 -
尝试不使用 $(srcdir) 但仍然是同样的问题
-
将测试/openssh_keys 添加到 DIST_SUBDIRS?我对“没有肮脏的黑客或解决方法”嗤之以鼻——对于一个;不知道你是否会认为这是一个肮脏的黑客,第二,我有点认为 autotools 是一个肮脏的黑客;)
-
制作 distcheck ... test -d "pam_openssh_x509-0.1" || mkdir "pam_openssh_x509-0.1" (cd 测试/openssh_keys && make top_distdir=../../pam_openssh_x509-0.1 distdir=../../pam_openssh_x509-0.1/tests/openssh_keys \ am__remove_distdir=: am__skip_length_check=: am__skip_distt_fix=: ) make[2]: 进入目录 '/home/sebastian/development/pam_openssh_x509/tests/openssh_keys'... make[2]: *** 没有规则可以创建目标 'distdir'。停止。 Makefile:587: 目标“dist”的配方失败 make: *** [dist] 错误 2
标签: c build autotools autoconf automake