These transformations are useful with programs that can be part of a cross-compilation development environment. For example, a cross-assembler running on x86-64 configured with --target=aarch64-linux-gnu is normally installed as aarch64-linux-gnu-as, rather than as, which could be confused with a native x86-64 assembler.
You can force a program name to begin with g, if you don’t want
GNU programs installed on your system to shadow other programs with
the same name. For example, if you configure GNU
--program-prefix=g, then when you run ‘make install’ it is
installed as /usr/local/bin/gdiff.
As a more sophisticated example, you could use
--program-transform-name='s/^/g/; s/^gg/g/; s/^gless/less/'
to prepend ‘g’ to most of the program names in a source tree,
excepting those like
gdb that already have one and those like
lesskey that aren’t GNU programs. (That is
assuming that you have a source tree containing those programs that is
set up to use this feature.)
One way to install multiple versions of some programs simultaneously is to append a version number to the name of one or both. For example, if you want to keep Autoconf version 1 around for awhile, you can configure Autoconf version 2 using --program-suffix=2 to install the programs as /usr/local/bin/autoconf2, /usr/local/bin/autoheader2, etc. Nevertheless, pay attention that only the binaries are renamed, therefore you’d have problems with the library files which might overlap.