Roland Ver. 4.5 Technické informace Strana 23

  • Stažení
  • Přidat do mých příruček
  • Tisk
  • Strana
    / 212
  • Tabulka s obsahem
  • KNIHY
  • Hodnocené. / 5. Na základě hodnocení zákazníků
Zobrazit stránku 22
Chapter 3: Writing Makefiles 13
3.3 Including Other Makefiles
The include directive tells make to suspend reading the current makefile and read one or
more other makefiles before continuing. The directive is a line in the makefile that looks
like this:
include filenames...
filenames can contain shell file name patterns. If filenames is empty, nothing is included
and no error is printed.
Extra spaces are allowed and ignored at the beginning of the line, but the first character
must not be a tab (or the value of .RECIPEPREFIX)—if the line begins with a tab, it will
be considered a recipe line. Whitespace is required between include and the file names,
and between file names; extra whitespace is ignored there and at the end of the directive.
A comment starting with # is allowed at the end of the line. If the file names contain any
variable or function references, they are expanded. See Chapter 6 [How to Use Variables],
page 59.
For example, if you have three .mk files, a.mk, b.mk, and c.mk, and $(bar) expands to
bish bash, then the following expression
include foo *.mk $(bar)
is equivalent to
include foo a.mk b.mk c.mk bish bash
When make processes an include directive, it suspends reading of the containing makefile
and reads from each listed file in turn. When that is finished, make resumes reading the
makefile in which the directive appears.
One occasion for using include directives is when several programs, handled by indi-
vidual makefiles in various directories, need to use a common set of variable definitions (see
Section 6.5 [Setting Variables], page 65) or pattern rules (see Section 10.5 [Defining and
Redefining Pattern Rules], page 118).
Another such occasion is when you want to generate prerequisites from source files
automatically; the prerequisites can be put in a file that is included by the main makefile.
This practice is generally cleaner than that of somehow appending the prerequisites to the
end of the main makefile as has been traditionally done with other versions of make. See
Section 4.13 [Automatic Prerequisites], page 38.
If the specified name does not start with a slash, and the file is not found in the
current directory, several other directories are searched. First, any directories you have
specified with the -I or --include-dir option are searched (see Section 9.7 [Summary
of Options], page 104). Then the following directories (if they exist) are searched, in
this order: prefix/include (normally /usr/local/include
1
) /usr/gnu/include,
/usr/local/include, /usr/include.
If an included makefile cannot be found in any of these directories, a warning message
is generated, but it is not an immediately fatal error; processing of the makefile containing
the include continues. Once it has finished reading makefiles, make will try to remake any
that are out of date or don’t exist. See Section 3.5 [How Makefiles Are Remade], page 14.
1
GNU Make compiled for MS-DOS and MS-Windows behaves as if prefix has been defined to be the root
of the DJGPP tree hierarchy.
Zobrazit stránku 22
1 2 ... 18 19 20 21 22 23 24 25 26 27 28 ... 211 212

Komentáře k této Příručce

Žádné komentáře