A fix for v1.6 under Borland C++

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.