I'd rather avoid vpath and specify it in the pattern rule,  e.g. `$(ROOT_OBJ) : %.o : root/%.c`.