2017-01-25 89 views
0

我可以將變量傳遞給子使用make -C VAR=$(VAR) target(因爲變量只對單個目標有意義,所以寧願選擇export)。但是,看起來如果VAR變量未在父項中定義,則子項將獲得一個空字符串(它具有VAR ?= ...,且值VAR爲空)。我怎樣才能避免這種情況?將變量傳遞給兒童只有定義

它看起來像Define make variable at rule execution time上的變體應該適用於我的特定用例,但它需要父母的Makefile來知道孩子的默認值,這是我想避免的。

回答

3

您應該始終使用$(MAKE)在調用子製造時,從不明確地使用make。你的例子中的-C後面也有一個目錄。

約像什麼:

$(MAKE) $(if $(VAR),VAR=$(VAR))