Date: 2017-04-12 16:24
Note that variable is the name of a variable, not a reference to that variable. Therefore you would not normally use a ‘ $ ’ or parentheses when writing it. (You can, however,use a variable reference in the name if you want the name not to be a constant.)
The GNU Make Manual
Some properties can be specified as an array. If these are set to an array value, the first value applies to the first bar, the second value to the second bar, and so on.
Yudkowsky - Bayes' Theorem
The targets list specifies thetargets that the rule applies to. The targets can contain wildcard characters, just like the targets of ordinary rules (see Using Wildcard Characters in File Names ).
If .SECONDEXPANSION is mentioned as a target anywhere in the makefile, then all prerequisite lists defined after it appears will be expanded a second time after all makefiles have been read in. See Secondary Expansion.
Our examples show C programs, since they are most common, but you can use make with any programming language whose compiler can be run with a shell command. Indeed,make is not limited to programs. You can use it to describe any task where some files must be updated automatically from others whenever the others change.
The criterion for being out of date is specified in terms of the prerequisites , which consist of file names separated by spaces. (Wildcards andarchive members (see Archives ) are allowed here too.) A target is out of date if it does not exist or if it is older than any of the prerequisites (by comparison of last-modification times). The idea is that the contents of the target file are computed based on information in the prerequisites, so if any of the prerequisites changes, the contents of the existing target file are no longer necessarily valid.
Because the rm command does not create a file named clean , probably no such file will ever exist. Therefore, the rm command will be executed every time you say ‘ make clean ’ .
If you type ‘ make realclean ’ , then make removes the same files as does ‘ make distclean ’ and also removes the Info files generated from .
Do not expect the user to include the subdirectory name in the value of any of the variables listed above. The idea of having a uniform set of variable names for installation directories is to enable the user to specify the exact same values for several different GNU packages. In order for this to be useful, all the packages must be designed so that they will work sensibly when the user does so.
There are four levels of granularity when synchronizing output, specified by giving an argument tothe option (., ‘ -Oline ’ or ‘ --output-sync=recurse ’ ).