GCC: mtune vs march vs mcpu

I'm trying to make some optimized builds on several ARM SBCs, where each build will have compatibility only on the target platform I'm building on. I've heard that -march is preferable here over -m...