| Version 1.9 Build 874
|
|
Next: File suffixes recognized by the makefiles
Up: makefiles
Previous: Synopsis
Compilation of the AIPS++ system from its sources is accomplished via a
hierarchical system of GNU makefiles (§10.3). The top-level makefile
resides in $AIPSCODE (§1.2) and certain targets cause all
makefiles residing in the subdirectories below to be invoked recursively. In
this way all of the AIPS++ executable scripts, object libraries,
applications, and documentation may be compiled and installed with a single
invokation of gmake.
In addition to these system-oriented targets, the makefiles also have a
set of programmer-oriented targets designed for code development.
Before examining the makefile targets in detail I will briefly summarize the
general features of the AIPS++ system of makefiles:
- Every AIPS++ source directory contains a makefile called
makefile (.dir subdirectories are the only valid exceptions).
Most of these makefiles simply include one of the following
generic makefiles from $CODEINSD:
- makefile.app (application subdirectory)
- makefile.aps (apps directory)
- makefile.chk (checkout)
- makefile.doc (documentation)
- makefile.ftn (fortran directory)
- makefile.imp (implement directory)
- makefile.pkg (package)
- makefile.scr (scripts directory)
- makefile.tst (test directory)
These are referred to below by their three-letter file suffix, namely
app, aps, chk, doc, ftn, imp,
pkg, scr, and tst.
- Every makefile includes (whether directly or indirectly) an
architecture-specific makefile, $AIPSARCH/makedefs (p
), which
defines variables and rules common to all AIPS++ makefiles.
- The makefiles contain a set of system-oriented targets for rebuilding the
AIPS++ system (see §1.1.3), and a set of
programmer-oriented targets for code development in programmer workspaces
(§3.1.2). They also contain diagnostic targets for
reporting makefile variable definitions, versions of installed software,
for running system verification procedures, and printing a list of
targets and their functions.
- The makefiles recognize that the AIPS++ installation may or may not
have a copy of the RCS source code repositories (see
§1.1.4). If the repositories are present, the plain-text
copies are automatically updated if necessary. In particular, the
makefiles contain targets which cause gmake (p
) to update the makefile
itself and any included files before attempting to remake anything else.
- The makefiles usually do not contain lists of source files but instead
construct them via GNU make's wildcard function. This
means that new files checked into AIPS++ are discovered automatically by
the makefiles.
- Any subdirectory which contains a makefile is also recognized as a target.
A few directories contain special-purpose makefiles, the main ones being the
top-level makefile in $AIPSCODE (referred to as top below), and
the installation makefile in $CODEINSD (referred to below as
ins).
The generic and special-purpose makefiles are collectively referred to below
as specific makefiles, as opposed to the general makefile,
makedefs.
Next: File suffixes recognized by the makefiles
Up: makefiles
Previous: Synopsis
Contents
Index
Please send questions or comments about AIPS++ to aips2-request@nrao.edu.
Copyright © 1995-2000 Associated Universities Inc.,
Washington, D.C.
Return to AIPS++ Home Page
2004-11-13