It is useful in creating Makefiles that contain the exact definitions for compiling, linking, and installing programs and auxiliary files. Automake allows for many features tested during the process of configuring the package to be passed on to Makefile templates. One example of Automake's usefulness is to pass the set of libraries that applications need to link with to the Makefiles that need them. These libraries are detected earlier in the configuration process. This way the exact set of libraries needed is used and no more, and they do not have to be statically configured or specified by the user.
Shared libraries support is very system specific.
Different compiler, linker, and assembler options are often used to build shared libraries and those depend on the specific development tools used. Furthermore, Autoconf allows for easy customization of M4 macros and especially for the inclusion of site or package specific macros. This was very useful during the process of autoconfiscating Amd. Limitations of autoconfiguration tools Autoconf is as good as the tools that it uses. In particular, it works well when a deterministic test can be written that works on every system and with every compiler or other development tool.