15.7.2 Transformation Examples

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 diff with --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 less and 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.