```BigEndian/LittleEndian``` are defined by ```BYTES_BIG_ENDIAN```, which is defined on all targets (along with ```WORDS_BIG_ENDIAN``` which I can't think of any reason would have any different value).

```TARGET_64BIT``` does not mean ```D_LP64```, you have to check that ```INT_SIZE == 32 && LONG_INT_SIZE == 64 && POINTER_SIZE == 64```