5 foo baR baz
, bar baz
, foo bar baz
, fooadd baradd bazadd
9 printf
'#include "obj_1.h"\nconst char* obj_1 = "dir/obj_1.c";\n' \
12 $
{@
}="dir/obj_1.o" ${<}="dir/obj_1.c"
13 $
{*}="dir/obj_1" ${?}="dir/obj_1.h dir/obj_1.c"
16 Directory and filename parts of local variables
17 $
{@D
}="dir" ${@F}="obj_1.o"
18 $
{<D
}="dir" ${<F}="obj_1.c"
19 $
{*D
}="dir" ${*F}="obj_1"
20 $
{?D
}="dir dir" ${?F}="obj_1.h obj_1.c"
23 Local
variable substitutions
24 $
{@
:.o
=}="dir/obj_1" ${<:.c=.C}="dir/obj_1.C"
25 $
{*:=.h
}="dir/obj_1.h" ${?:.h=.H}="dir/obj_1.H dir/obj_1.c"
28 Target with suffix transformations
29 $
{@D
:=append
}="dirappend"
32 Implied source with suffix transformations
36 Suffixless target with suffix transformations
40 Out
-of
-date dependencies with suffix transformations
42 $
{?F
:.h
=.H
}="obj_1.H obj_1.c"
44 Member with suffix transformations
46 $
{%F
:$
{VAR2
}=$
{VAR
}}=""
48 cc
-c
-o
'dir/obj_1.o' 'dir/obj_1.c'
52 $
{@
}="lib.a" ${<}="dir/obj_1.o"
53 $
{*}="obj1" ${?}="dir/obj_1.o dummy"
56 Directory and filename parts of local variables
57 $
{@D
}="." ${@F}="lib.a"
58 $
{<D
}="dir" ${<F}="obj_1.o"
59 $
{*D
}="." ${*F}="obj1"
60 $
{?D
}="dir ." ${?F}="obj_1.o dummy"
61 $
{%D
}="." ${%F}="obj1.o"
63 Local
variable substitutions
64 $
{@
:.o
=}="lib.a" ${<:.c=.C}="dir/obj_1.o"
65 $
{*:=.h
}="obj1.h" ${?:.h=.H}="dir/obj_1.o dummy"
68 Target with suffix transformations
69 $
{@D
:=append
}=".append"
72 Implied source with suffix transformations
76 Suffixless target with suffix transformations
80 Out
-of
-date dependencies with suffix transformations
82 $
{?F
:.h
=.H
}="obj_1.o dummy"
84 Member with suffix transformations
86 $
{%F
:$
{VAR2
}=$
{VAR
}}="obj1foo bar baz"
88 cp
'dir/obj_1.o' 'obj1.o'
89 ar
-rcv
'lib.a' 'obj1.o'
93 printf
'#include "obj_2.h"\nconst char* obj_2 = "obj_2.c";\n' \
98 $
{@
}="obj2.o" ${<}="obj_2.c"
99 $
{*}="obj2" ${?}="obj_2.c obj_2.h dir/obj_1.h"
102 Directory and filename parts of local variables
103 $
{@D
}="." ${@F}="obj2.o"
104 $
{<D
}="." ${<F}="obj_2.c"
105 $
{*D
}="." ${*F}="obj2"
106 $
{?D
}=". . dir" ${?F}="obj_2.c obj_2.h obj_1.h"
109 Local
variable substitutions
110 $
{@
:.o
=}="obj2" ${<:.c=.C}="obj_2.C"
111 $
{*:=.h
}="obj2.h" ${?:.h=.H}="obj_2.c obj_2.H dir/obj_1.H"
114 Target with suffix transformations
115 $
{@D
:=append
}=".append"
118 Implied source with suffix transformations
120 $
{<F
:.c
=.C
}="obj_2.C"
122 Suffixless target with suffix transformations
126 Out
-of
-date dependencies with suffix transformations
128 $
{?F
:.h
=.H
}="obj_2.c obj_2.H obj_1.H"
130 Member with suffix transformations
132 $
{%F
:$
{VAR2
}=$
{VAR
}}=""
134 cc
-c
-o
'obj2.o' 'obj_2.c'
135 ar
-rcv
'lib.a' 'obj2.o'
142 printf
'#include "obj3.h"\nconst char* obj3 = "obj3.c";\n' \
145 $
{@
}="lib.a" ${<}="obj3.c"
146 $
{*}="obj3" ${?}="obj3.h dir/dummy obj3.c"
149 Directory and filename parts of local variables
150 $
{@D
}="." ${@F}="lib.a"
151 $
{<D
}="." ${<F}="obj3.c"
152 $
{*D
}="." ${*F}="obj3"
153 $
{?D
}=". dir ." ${?F}="obj3.h dummy obj3.c"
154 $
{%D
}="." ${%F}="obj3.o"
156 Local
variable substitutions
157 $
{@
:.o
=}="lib.a" ${<:.c=.C}="obj3.C"
158 $
{*:=.h
}="obj3.h" ${?:.h=.H}="obj3.H dir/dummy obj3.c"
161 Target with suffix transformations
162 $
{@D
:=append
}=".append"
165 Implied source with suffix transformations
169 Suffixless target with suffix transformations
173 Out
-of
-date dependencies with suffix transformations
175 $
{?F
:.h
=.H
}="obj3.H dummy obj3.c"
177 Member with suffix transformations
179 $
{%F
:$
{VAR2
}=$
{VAR
}}="obj3foo bar baz"
181 cc
-c
-o
'obj3.o' 'obj3.c'
182 ar
-rcv
'lib.a' 'obj3.o'