如何告诉automake使用名称中带有空格的文件?这似乎并不奏效。使用自动工具处理文件名中的空格
bin_PROGRAMS = prog
prog_SOURCES = "a file.c" "another file.c"
如何告诉automake使用名称中带有空格的文件?这似乎并不奏效。使用自动工具处理文件名中的空格
bin_PROGRAMS = prog
prog_SOURCES = "a file.c" "another file.c"
你不能。 (奇怪的是,这是Automake的唯一极其严重的错误在我看来,但人们很少抱怨。)
我曾经围绕在其名称中的空间中安装数据文件,由重命名文件源树,以便它们没有空格,然后将它们重命名为install-data-hook
中的空格名称。 (link)
然而,这与你的问题没有关系,我的答案仍然是:你不能。据我所知,prog_SOURCES
只是一个shell变量。一个特别命名的,当然,但一旦Automake发现它,它只是分隔它的空间。空格是空格,无论它们是被转义,引用还是纯文本。他们应该设计它,以便您可以逃离空间,但我相信他们现在不会改变它,因为它会导致广泛的Automake破坏。
人们不会抱怨,因为这不是一个严重的错误。游戏中唯一严重的错误是允许文件名空白的文件系统。 –
所以automake完全坏了。
'make'不支持文件名中的空格。如果这是一个问题,不要使用任何基于'make'的东西。 BTW'prog_SOURCES'不是一个shell变量,它是一个Makefile变量(或者POSIX术语中的“Makefile宏”)。 – adl
一种方式围绕它,虽然很笨重,是存储文件的两个副本在你的源
another file.ext
another_file.ext
然后使用
EXTRA_DIST = another_file.ext
dist-hook:
cp $(distdir)/another_file.ext "$(distdir)/another file.ext"
你就可以分发文件,空间,你仍然需要保留替换空间的文件,并确保文件同步(并向其他人表明这一事实)。
在大多数情况下,只需重命名不含空格的文件就会更方便,除非您遇到需要间隔文件的非常奇怪的情况。
只是一个建议:甚至不尝试。有可能有办法做到这一点,但不是。这不值得。坚持与他们的所有编码的东西没有空格的文件。 – Mat
@Mat我没有问我是否应该。我问如何。 –
我知道。这就是为什么我没有发布答案。 – Mat