Does the toolchain provide a Make utility? If so, just create Makefiles and define the options as compiler command line options (assuming it supports command line options). You might also be able to use ANY Make program, there's nothing special about the GNU or Microsoft versions. They're just Make...
See -Dname=def
http://www.keil.com/support/man/docs/armcc/armcc_chr1359124194749.htmBasically, internal #defines are the default values unless overridden by -Dname. In your source, you test to see if your name is already defined. If not, you use the #define. If it is, you use the current definition
in your source code:
#ifndef myvariable
myvariable = 15
#endif
from the command line:
<compiler command> -Dmyvariable=32 ...
If the -D option is given, myvariable will have a value of 32 else 15
Value isn't the right word. #defines are macro substitutions, not values. Sometimes it is easier to think of them as values.