使用autotools处理文件名中的空格

时间:2012-10-14 15:25:07

标签: autotools automake

如何告诉automake使用名称中带有空格的文件?这似乎不起作用。

bin_PROGRAMS = prog
prog_SOURCES = "a file.c" "another file.c"

2 个答案:

答案 0 :(得分:5)

你做不到。 (令人惊讶的是,在我看来,这是Automake中唯一非常严重的错误,但人们几乎没有抱怨过。)

我曾经使用名称中的空格安装数据文件,通过重命名源树中的文件以使它们没有空格,然后将它们重命名为{{{{{{{ 1}}。 (link

然而,这与你的问题无关,我的答案仍然是:你做不到。据我所知,install-data-hook只是一个shell变量。一个特别命名的,当然,但一旦Automake找到它,它只是在空格上分开它。空间是空间,无论它们是逃逸,引用还是平原。他们应该设计它以便你可以逃脱空间,但我相信它们现在不会改变它,因为它会导致广泛的Automake破损。

答案 1 :(得分:0)

围绕它的一种方法,尽管非常笨重,是在源中存储两份文件

another file.ext
another_file.ext

然后使用

EXTRA_DIST = another_file.ext

dist-hook:
    cp $(distdir)/another_file.ext "$(distdir)/another file.ext"

您将能够分发包含空格的文件,您仍然需要将文件保留为替换空格,并确保文件同步(并向其他人表明这一事实)。

在大多数情况下,只是重命名没有空格的文件会更方便,除非你有一个非常奇怪的情况需要间隔开的文件。