2016-09-07 18 views
5

Komut satırından çağrılan bir argümanı make'a ileterek bir C makrosu tanımlamak istiyorum.Makro tanımı yapmak için bir argüman olarak nasıl iletilebilir?

Arka plan: Belirli bir yapı seçeneği seçildiğinde C kaynak koduma #define ENABLE_OPT 1 yönergesinin dahil edilmesini istiyorum. Bu nedenle, veya makefile kaynak kodunu değiştirmek yerine make komut satırı üzerinden yapılmasını istiyorum.

Bu nasıl elde edilebilir? Ben make -DENABLE_OPT=1 -f Makefile 'E', 'N' vb yapmak için geçersiz argümanlar olan hataları atar buluyorum.

+2

make CFLAGS = "- DENABLE_OPT = 1" – Serge

+1

İlgili soru http://stackoverflow.com/questions/9052792/how-to-pass-macro-definition-from-make-command-line-arguments-d-to -c-source –

+0

Teşekkür ederim. Makefile'de sadece LOCAL_CFLAGS tanımladım, bu yüzden hiçbir şey geçersiz olmaz. Kulağa iyi geliyor! –

cevap

4

Bir makefile ifadesi olarak dize değerlendirecek olan --eval kullanabilirsiniz:

make --eval="FLAGS+= -D ENABLE_OPT=1" 

sonra kodu derlemek için bir derleyici argüman olarak kullanılan değişken BAYRAK olun.

İlgili konular