Allow users to override CC, CFLAGS, etc.

Use ?= to assign defaults, but not overwrite user-provided values.