2015-11-30 72 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