#ifdef SAMD_SERIES does not work for the Due, but #ifdef __SAM3X8E__ does (??)

yes, that's what I do currently.
I'm using M0/Zero, M3/Due and Adafruit M4.

But no macro which works for all ARMs?