summaryrefslogtreecommitdiff
path: root/mcon/U/Setvar.U
blob: 924c93051ec0c40b9e5ba1ef6b0e82850f5b496c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
?RCS: $Id: Setvar.U 167 2013-05-08 17:58:00Z rmanfredi $
?RCS:
?RCS: Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
?RCS: 
?RCS: You may redistribute only under the terms of the Artistic License,
?RCS: as specified in the README file that comes with the distribution.
?RCS: You may reuse parts of this distribution only within the terms of
?RCS: that same Artistic License; a copy of which may be found at the root
?RCS: of the source tree for dist 4.0.
?RCS:
?RCS: $Log: Setvar.U,v $
?RCS: Revision 3.0.1.1  1994/10/29  15:58:28  ram
?RCS: patch36: call ./whoa explicitly instead of relying on PATH
?RCS:
?RCS: Revision 3.0  1993/08/18  12:05:16  ram
?RCS: Baseline for dist 3.0 netwide release.
?RCS:
?X:
?X: This unit produces a variable that is intended to be eval'ed in
?X: order to define/undefine a symbol. A consistency check is made
?X: regarding any previous value and a warning is issued if there
?X: is any discrepancy.
?X:
?X: To use it, say:
?X: val=<value>
?X: set d_variable
?X: eval $setvar
?X:
?MAKE:Setvar: Whoa
?MAKE:	-pick add $@ %<
?LINT:define setvar
?S:setvar:
?S:	This shell variable is used internally by Configure to set a value
?S:	to a given symbol that is defined or not. A typical use is:
?S:     val=<value computed>
?S:		set d_variable
?S:		eval $setvar
?S:	That will print a message in case the $val value is not the same
?S:	as the previous value of $d_variable.
?S:.
?V:setvar:val
?T:var was td tu
: function used to set '$1' to '$val'
setvar='var=$1; eval "was=\$$1"; td=$define; tu=$undef;
case "$val$was" in
$define$undef) . ./whoa; eval "$var=\$td";;
$undef$define) . ./whoa; eval "$var=\$tu";;
*) eval "$var=$val";;
esac'