Module Name:    src
Committed By:   christos
Date:           Wed Jun  9 16:58:23 UTC 2010

Modified Files:
        src/usr.bin/make: make.1

Log Message:
Explain variable expansion better. Requested by Aleksey Cheusov


To generate a diff of this commit:
cvs rdiff -u -r1.174 -r1.175 src/usr.bin/make/make.1

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/make/make.1
diff -u src/usr.bin/make/make.1:1.174 src/usr.bin/make/make.1:1.175
--- src/usr.bin/make/make.1:1.174	Sun Jun  6 13:28:48 2010
+++ src/usr.bin/make/make.1	Wed Jun  9 12:58:22 2010
@@ -1,4 +1,4 @@
-.\"	$NetBSD: make.1,v 1.174 2010/06/06 17:28:48 wiz Exp $
+.\"	$NetBSD: make.1,v 1.175 2010/06/09 16:58:22 christos Exp $
 .\"
 .\" Copyright (c) 1990, 1993
 .\"	The Regents of the University of California.  All rights reserved.
@@ -29,7 +29,7 @@
 .\"
 .\"	from: @(#)make.1	8.4 (Berkeley) 3/19/94
 .\"
-.Dd June 6, 2010
+.Dd June 9, 2010
 .Dt MAKE 1
 .Os
 .Sh NAME
@@ -536,11 +536,48 @@
 .Pq Ql \&$
 the string is expanded again.
 .Pp
-Variable substitution occurs at two distinct times, depending on where
+Variable substitution occurs at three distinct times, depending on where
 the variable is being used.
+.Bl -enum
+.It 
 Variables in dependency lines are expanded as the line is read.
+.It
 Variables in shell commands are expanded when the shell command is
 executed.
+.It
+.Dq .for
+loop index variables are expanded on each loop iteration. 
+Note that other variables are not expanded inside loops so 
+the following example code:
+.Bd -literal -offset indent
+
+.Dv .for i in 1 2 3
+a+=     ${i}
+j=      ${i}
+b+=     ${j}
+.Dv .endfor
+
+all:
+        @echo ${a}
+	@echo ${b}
+
+.Ed
+will print:
+.Bd -literal -offset indent
+1 2 3
+3 3 3
+
+.Ed
+Because while ${a} contains
+.Dq 1 2 3
+after the loop is executed, ${b}
+contains
+.Dq ${j} ${j} ${j}
+which expands to
+.Dq 3 3 3
+since after the loop completes ${j} contains
+.Dq 3 .
+.El
 .Ss Variable classes
 The four different classes of variables (in order of increasing precedence)
 are:

Reply via email to