ile sınırlı bir kapsamdaki değişkenler Mevcut projemde özyinelemeli bir make build sistemi uygulamaya çalışıyorum. Mücadele ettiğim değişkenler kapsamları. Hedefe özel değişkenler gereksinimlerime uymuyor, değişkenler genellikle hedefleri tanımlar ve önkoşulları değil. Benim ihtiyacım olan:GNU Make. Tek bir Makefile
Makefile1:
SOMEVAR := original_value
include Makefile2
$(warning $(SOMEVAR))
Makefile2:
#some magic here to do what I want and make me happy
SOMEVAR := included_value
#and maybe here
Ve istediğim çıktısında 'original_value'.
Bunu yapmak için herhangi bir strateji var mı?
DÜZENLEME: =
Bu çözüm oldukça iyi geliyor. Bunun nesi var? Ve SOMEVAR nedir, ne için kullanılır? – Beta
Bu çözümde sevmediğim şey çok titrek olmasıdır. Eğer yerimi alacak olan zavallı bir adam fikrini ve yerini alamıyorsa, başka bir yerde bir sürü sürprizle karşılaşacaksınız. –
Eğer Makefile2 bir kereden fazla içeriyorsa ve "$ (SOMEVAR)" anlamına gelen bir tarifi tanımlar. o zaman korkunç bir şekilde kırılacak --- tariflerin içindeki değişkenler, tarifler uygulandığında değerlendirilir, yani hepsinin '$ (SOMEVAR) 'son değerini, tarifi tanımlandığında sahip olduğu değeri göremeyeceği anlamına gelir. –