Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-06-14 18:20:45 -0700 (Tue, 14 Jun 2005)
Revision: 1142
Log message:
Sorry, I did a bunch of stuff on Saturday. This should be the final
commit before release, apart from fixes.
WIN32 note: I need to check this on Win32.
- Added --strict option, and policy command.
In --strict mode, variables *must* be defined before being
used, and the default mode is protected. It is a good idea
to use it, because it means you won't accidentally shadow
variables in the build files.
You can also do this on a per-section basis. For example,
if you want strict mode, with default definitions being
private, use the following.
policy=strict,private
This command is scoped. It must be literal, no expansions
are allowed.
- Added a declare, that does a declaration without a definition.
public. =
declare CFLAGS
- Added open
open build/C
This is like an include, but it includes at most once, and the names
from the opened module appear in the current module. The filename
must be literal.
This partially undoes the --strict mode. If you want to be
explicit, either don't use open, or declare your private
variables after the opens.
open build/C
protected. =
declare CFLAGS # This variable is now local to this file
...
- Lazy variables must be expanded in arrays:(
A[] = a aa
B[] =
$`(A)
- Added $(shell-code ...) function, which returns the
exit code of the shell command.
- Added history expansion to readline mode on Unix.