2015-03-31 531 views
1

目前在我Makefile我:在Makefile中,我们使用'prefix'还是'PREFIX'?

prefix ?= /usr/local 

所以,我可以呼吁make时覆盖prefix值,如下所示:

make prefix="/new_path" 

我的问题是:没有一个约定来命名这个存在一个Makefile中的变量,特别是我不得不称之为prefixPREFIX

这件事情以来,在这种情况下,大写或小写很重要!

注意,我使用autotools,只是一个 “简单” 的Makefile

+2

我不知道是否有明确的答案。我个人喜欢使用全部大写字母,当变量是我被文档记录为可被用户覆盖的东西时,并使用小写字母,当它是内部的东西时不会被混淆。 – 2015-03-31 10:56:15

+0

@noufal感谢您的解释。所以我会在我的PREFIX中使用(因为可以被覆盖)。这是一个可怜的,我还没有找到关于这些约定的文档(即使他们不完全固定)... – 2015-03-31 12:06:44

+0

这就是*我会*做的,但它真的是我自己的约定。 – 2015-03-31 12:21:00

回答

2

variables for installation directories的GNU的部分进行手动讨论prefix

我相信自动工具使用类似的prefix变量/ configure标志。

然而,与DESTDIR相比。

+0

@ethan谢谢你的文档,但我已经阅读它没有任何线索关于我的具体关注... – 2015-03-31 12:01:33

+0

流行的共识(GNU make和autotools之间)是使用'prefix'。我添加了关于'DESTDIR'的一点,以表明它们也使用了'ALL_CAP'变量,我不知道为什么。如果在其他地方没有对PREFIX的共识(bsd等),这似乎表明你应该使用'prefix'。这就是我发布信息的原因。我无法给出比这更具体/明确的答案。 – 2015-03-31 15:02:05

相关问题