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.in
orconfigure.ac
file. 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
Makefile
targets 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
prefix
in theMakefile
and is settable at configure time with theâprefix
=dir
command-line ...
Get Classic Shell Scripting now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.