ฉันมักจะส่งผ่านคำจำกัดความของมาโครจาก "make command line" ไปยัง "makefile" โดยใช้ตัวเลือก: -Dname = value คำจำกัดความสามารถเข้าถึงได้ภายใน makefile
ฉันยังส่งผ่านนิยามมาโครจาก "makefile" ไปยัง "ซอร์สโค้ด" โดยใช้ตัวเลือกคอมไพเลอร์ที่คล้ายกัน: -Dname = value (รองรับในคอมไพเลอร์จำนวนมาก) คำจำกัดความนี้สามารถเข้าถึงได้ในซอร์สโค้ด
สิ่งที่ฉันต้องการในตอนนี้คืออนุญาตให้ผู้ใช้ makefile ของฉันสามารถส่งผ่านนิยามมาโครโดยพลการจาก "make.exe commandline" ไปยัง "source code" ได้ทันทีโดยไม่ต้องเปลี่ยนแปลงอะไรใน makefile
เพื่อให้ผู้ใช้สามารถพิมพ์: make -f mymakefile.mk -SOMEOPTION var = 5
จากนั้นรหัส main.c โดยตรงสามารถดู var:
int main()
{
int i = var;
}