GNU Autoconf is a heavily used portability-enabling tool for UNIX-like systems, especially in free software projects. It is a compiler for a domain-specific-language for describing library, header, and function dependencies of a project. It generates a shell script that can be run before building a package to customize the build to the system.