${VAR} = "foo bar baz" a b c foo baR baz, bar baz, foo bar baz, fooadd baradd bazadd mkdir -p 'dir' touch 'dir/obj_1.h' mkdir -p 'dir' printf '#include "obj_1.h"\nconst char* obj_1 = "dir/obj_1.c";\n' \ >'dir/obj_1.c' Local variables ${@}="dir/obj_1.o" ${<}="dir/obj_1.c" ${*}="dir/obj_1" ${?}="dir/obj_1.h dir/obj_1.c" ${%}="" Directory and filename parts of local variables ${@D}="dir" ${@F}="obj_1.o" ${'obj_2.c' mkdir -p '.' touch 'obj_2.h' Local variables ${@}="obj2.o" ${<}="obj_2.c" ${*}="obj2" ${?}="obj_2.c obj_2.h dir/obj_1.h" ${%}="" Directory and filename parts of local variables ${@D}="." ${@F}="obj2.o" ${'obj3.c' Local variables ${@}="lib.a" ${<}="obj3.c" ${*}="obj3" ${?}="obj3.h dir/dummy obj3.c" ${%}="obj3.o" Directory and filename parts of local variables ${@D}="." ${@F}="lib.a" ${