如何告诉 automake 使用名称中带有空格的文件?这似乎不起作用。
bin_PROGRAMS = prog
prog_SOURCES = "a file.c" "another file.c"
你不能。(令人惊讶的是,在我看来,这是 Automake 中唯一一个极其严重的错误,但人们几乎没有抱怨过。)
我曾经通过重命名源树中的文件使它们没有空格,然后将它们重命名为它们在install-data-hook
. (链接)
但是,这与您的问题无关,对此我的回答仍然是:您不能。据我所知,prog_SOURCES
只是一个shell变量。一个特别命名的,当然,但是一旦 Automake 找到它,它就会简单地用空格分隔它。空格是空格,无论它们是转义的、引用的还是普通的。他们应该设计它以便您可以逃脱空间,但我相信他们现在不会更改它,因为它会导致广泛的 Automake 损坏。
解决它的一种方法,虽然很笨重,是在您的源中存储文件的两个副本
another file.ext
another_file.ext
然后使用
EXTRA_DIST = another_file.ext
dist-hook:
cp $(distdir)/another_file.ext "$(distdir)/another file.ext"
您将能够分发包含空格的文件,您仍然需要保留带有替换空格的文件,并确保文件同步(并向其他人表明这一事实)。
在大多数情况下,重命名不带空格的文件会更方便,除非您遇到需要间隔文件的非常奇怪的情况。