 If they are not specified in the Makefile, then they will be read from the environment, if present.Tools like autoconf's ./configure script will usually pick them up from the environment and write them into the generated Makefiles.Some package install scripts, like SDL, allow CFLAGS settings to override their normal settings (instead of append to them), so setting CFLAGS can cause harm in this case.