2010-09-01 97 views
1

我想根據分配的目標設置一個變量。 例如:Make:根據目標設置變量

if target == filename_a then 
    VAR1 = YES 
if target == filename_b then 
    VAR2 = YES 

顯然,這是僞代碼,而不是正確的化妝語法。

我真正想要做的是包括不同的生成文件和依賴目標的包含目錄。有些目標共享相同的設置,因此在一個makefile中更容易維護。

的是什麼將用於後一個例子:

ifeq ($(VAR1), YES) 
    include foo.mk 
endif 
ifeq ($(VAR2), YES) 
    include baz.mk 
endif 

Unfortunantly不能使用的語法如下:

target : VAR1 = YES 

由於這個變量賦值是唯一有效的通過實際構建過程目標,據我瞭解。

目標環境是Solaris下的ClearMake 7,所以請避免使用任何GNU Make的特定解決方案。

感謝


編輯: 據我所知,做的方式,其中在加工過程中的目標可用不起作用。因此,要求提供的功能很可能存在。

+0

告訴我們更多關於包含文件設置和命名的知識。爲什麼你需要在多個包含文件中進行選擇,它們最終定義了哪些變量? – smci 2011-10-18 20:15:51

回答

0

如果這可以工作,我會感到很驚訝,因爲據我所知,Make程序包括之前它知道它需要做什麼目標。但我對ClearMake一無所知,而且我並不是真正的專家,所以希望有人證明我錯了......

+0

是的,不幸的是,你似乎是對的。謝謝你的迴應。 – Zen 2010-10-24 16:01:07