Work around the non-standard behavior of Borland make.

The macros passed in the command line to Borland make are ignored if
similarly-named macros are already defined in makefiles. This behavior
is different from POSIX make and other make programs.

Surround the macro definitions with ifndef guards.