2015-11-30 36 views
0

以下文件检测是我的代码来设置PATH_PROJET VAR正确 - >Makefile文件 - 使用通配符

PATH_PROJET = 0 

-projet-build-path: 
ifneq ($(wildcard $(PATH_CURR)/.path_root),) 
    $(eval PATH_PROJET = .) 
endif 
ifneq ($(wildcard $(PATH_CURR)/../.path_root),) 
    $(eval PATH_PROJET = ..) 
endif 

-projet-build-path-verif: 
ifeq ($(PATH_PROJET),0) 
    $(error Cant find $(PATH_PROJET)/.path_root) 
endif 

如果我做的PATH_PROJET变种我得到了正确的设置回声(或根据..),但当我尝试使用相同的变种第二个规则“-projet-集结路径VERIF”它使用VAR“0”,而不是,我只是设置值的第一个值。如果我在$(通配符)中使用var,这也是同样的问题。

有人对此有一个解决方案吗?

+0

一些测试,我认为它之后我是如何设置的PATH_PROJET变种。我曾尝试将它写在我的Makefile中这样开始时: PATH_PROJET = .. ,然后第二个,如果工作。所以,我认为,当你用$(EVAL)命令设置正常,但不是$(通配符)可以使用一个变种。 是否有任何其他的方式来设置这个VAR或使它工作? – Nestoyeur

+0

如果现在有效,那么你在问什么? – Beta

+0

它现在不工作。就好像我手动设置var。我编辑我的第一篇文章,使其更清楚。 – Nestoyeur

回答

0

我finaly找到另一种方式来做到这一点。我不是明知有可能使用如果规则之外的,所以我用这种方式设置的VAR没有(所有规则之外)

ifneq ($(wildcard $(PATH_CURR)/.path_root),) 
    PATH_PROJET = . 
else 
ifneq ($(wildcard $(PATH_CURR)/../.path_root),) 
    PATH_PROJET = .. 
else 
    PATH_PROJET = 0 
endif 
endif