2009-10-21 13 views
5

Bir değişkenin ortamdan komut satırında mı ayarlanıp ayarlanmadığını tespit etmenin bir yolu var mı?Komut satırından ortama doğru Makefile değişkenleri

make LIB=mylib ve make ve make $ LIB ile make yapan birini ayırt etmek istiyorum.

+0

Lütfen, make ile ilgili sorularınızı [make] etiketiyle etiketleyin. Gerekçe için bkz. Http://meta.stackexchange.com/questions/24030/why-do-they-specify-makefile-tag-instead-of-make/26567#26567 –

cevap

5

Evet. Bir değişkenin nerede tanımlandığını belirlemek için origin işlevini kullanabilirsiniz. olmayan Gnu ile

 
ifneq (,$(findstring environment,$(origin LIB))) 
    # LIB was defined by the environment 
else 
    # LIB was defined some other way 
endif 
0

söz konusu değişken için export komuta ve grep çalıştırabilir, olun. Bu, yalnızca kurallarda çalışır ve yalnızca değişken tek adım olarak ayarlanmadığı sürece (LIB=foo make'da olduğu gibi).

İlgili konular