使用 dist_pkgdata_DATA 时保留数据文件前缀



我们的测试数据由两个文件夹组织。我们有 TestData/TestVectors/ ,具体取决于数据的形式:

- TestData
  |
  + a.dat
  + b.dat
  + ...
- TestVector
  |
  + x.vec
  + y.vec
  + ...

我们的Makefile.am有:

dist_pkgdata_DATA = 
   $(testdata_FILES) 
   $(testvector_FILES)
testdata_FILES = 
   TestData/a.dat TestData/b.dat 
   ...
testvector_FILES = 
   TestVectors/x.vec TestVectors/y.vec 
   ...

Automake 将它们安装在 @datadir@/@PACKAGE@/ 中,但我们在安装时丢失了TestDataTestVectors前缀。也就是说,一旦安装,所有文件都会集中在一起:

- @datadir@/@PACKAGE@/
  |
  + a.dat
  + b.dat
  + ...
  + x.vec
  + y.vec
  + ...

在使用Automake在任意位置安装任意数据文件?中有一个非常相似的问题,但我不太了解需要做什么来确保make install按预期工作。

我的问题是,我们如何在安装过程中保留TestDataTestVectors的前缀?

这就是

nobase前缀的发明目的。 该名称代表"不要调用basename",其用法如下:

nobase_dist_pkgdata_DATA = 
    $(testdata_FILES) 
    $(testvector_FILES)

这应该会导致列出的文件将其目录名称保留在安装树中。

我的问题是,我们如何在安装过程中保留 TestData 或 TestVector 的前缀?

通常,Automake 会计算每个目标的基名称,并在安装时使用该基名称将文件直接记录在指定目录中。 如果目标名称包含要传播到已安装映像中的目录前缀,则可以通过在相关目标变量上使用nobase_前缀来告知 Automake。 这可以与其他前缀结合使用,例如 dist_ . 例如

nobase_dist_pkgdata_DATA = 
   $(testdata_FILES) 
   $(testvector_FILES)
前缀一般在自动

制作手册的第 3.3 节中描述,特别是nobase_在自动制作手册的第 12.1 节中详细介绍。

相关内容

  • 没有找到相关文章

最新更新