This is GNU make 3.79.1, running on Solaris 2.6. Using this Makefile (tabs may be lost in the mail) CC = gcc INCS = -Iblorch foo.o: INCS += -Ifoo foo.o: INCS += -Ibar foo.o: INCS += -Ibaz foo: foo.o $(CC) $(LIBS) $^ -o $@ foo.o: foo.c $(CC) $(INCS) -c $< -o $@ foo.c: echo "int main() { return 0; }" > foo.c when I run a 'make', the command contains -Iblorch -Ibaz, with no reference to the additional assignments of -Ifoo or -Ibar. I was expecting to see an expansion of $(INCS) as "-Iblorch -Ifoo -Ibar -Ibaz". Considering that if I specify multiple prerequisites for foo.o as follows: foo.o: bar.h foo.o: baz.h each of the listed files is added to the dependency graph, I was expecting variable assignments to happen in this fashion as well. The manual states as follows: All variables that appear within the variable-assignment are evaluated within the context of the target: thus, any previously-defined target-specific variable values will be in effect (make.info, node "Target-specific variable values) Note that I can have multiple variables assigned using the same target name foo.o: FOO += -IFOO foo.o: INCS += -IFOO will append -IFOO to each of $(FOO) and $(INCS), but the previous example doesn't process each invocation of the variable assignment. david d zuhn [EMAIL PROTECTED] _______________________________________________ Bug-make mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/bug-make