Automating Software Builds
Because Unix runs on so many different platforms, it is common practice to build software packages from source code, rather than installing binary distributions. Large Unix sites often have multiple platforms, so their managers have the tedious job of installing packages on several systems. This is clearly a case for automation.
Many software developers now adopt software-packaging conventions developed within the GNU Project. Among them are:
Packages that are distributed in compressed archive files named
package-x.y.z.tar.gz(orpackage-x.y.z.tar.bz2) that unbundle into a directory namedpackage-x.y.z.A top-level configure script, usually generated automatically by the GNU autoconf command from a list of rules in the
configure.inorconfigure.acfile. Executing that script, sometimes with command-line options, produces a customized C/C++ header file, usually calledconfig.h, a customizedMakefile, derived from the template fileMakefile.in, and sometimes, a few other files.A standard set of
Makefiletargets that is documented in The GNU Coding Standards, among themall(build everything),check(run validation tests),clean(remove unneeded intermediate files),distclean(restore the directory to its original distribution), andinstall(install all needed files on the local system).Installed files that reside in directories under a default tree defined by the variable
prefixin theMakefileand is settable at configure time with the—prefix=dircommand-line ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access