After these changes, all of the following now work correctly and produce a different target triple (in particular, compiling 32 bit on 64 bit host will put outputs into i386-pc-linux-gnu):
$ make # compiles normally
$ make -i ARCH=i386 # compiles for 32 bit x86, uses -m32 if host is x86_64
$ make -i CC=aarch64-linux-gnu-gcc # compiles for aarch64
$ make -i MACHINE=aarch64-linux-gnu # same as above
After these changes, all of the following now work correctly and produce a different target triple (in particular, compiling 32 bit on 64 bit host will put outputs into
i386-pc-linux-gnu
):