Tôi thường chuyển các định nghĩa macro từ "dòng lệnh make" sang "makefile" bằng cách sử dụng tùy chọn: -Dname = value. Định nghĩa có thể truy cập được bên trong makefile.
Tôi cũng chuyển các định nghĩa macro từ "makefile" sang "mã nguồn" bằng cách sử dụng tùy chọn trình biên dịch tương tự: -Dname = value (được hỗ trợ trong nhiều trình biên dịch). Định nghĩa này có thể truy cập được trong mã nguồn.
Điều tôi cần bây giờ là cho phép người dùng makefile của tôi có thể chuyển các định nghĩa macro tùy ý từ "dòng lệnh make.exe" sang "mã nguồn" ngay lập tức mà không cần phải thay đổi bất kỳ điều gì trong makefile.
vì vậy người dùng có thể gõ: make -f mymakefile.mk -SOMEOPTION var = 5
sau đó trực tiếp mã main.c có thể thấy var:
int main()
{
int i = var;
}