On Fri, 05/23 15:22, Paolo Bonzini wrote:
> Just one question:
> 
> >+# fix-paths
> >+# Usage: $(call fix-paths, obj_path, src_path, vars)
> >+# Add prefix @obj_path to all objects in @vars, and add prefix @src_path to 
> >all
> >+# directories in @vars.
> >+define fix-paths
> >+    $(foreach v,$3,
> >+        $(foreach o,$($v),
> >+            $(if $($o-libs),
> >+                $(eval $1$o-libs := $(value $o-libs)))
> >+            $(if $($o-cflags),
> >+                $(eval $1$o-cflags := $(value $o-cflags)))
> >+            $(if $($o-objs),
> >+                $(eval $1$o-objs := $(addprefix $1,$(value $o-objs)))))
> >+        $(eval $v := $(addprefix $1,$(filter-out %/,$(value $v))) \
> >+                     $(addprefix $2,$(filter %/,$(value $v)))))
> 
> Why $(value $v) here in?  I think you need to expand the variable,
> especially in the last assignment but possibly also in the others.  For
> example if you have
> 
>     OBJECTS = foo1.o foo2.o
>     foo.mo-objs = $(OBJECTS)
> 
> the addprefix would set
> 
>     foo.mo-objs = dir/$(OBJECTS)
> 
> which is wrong.

Good catch! I'll fix this.

Thanks for reviewing!

Fam

Reply via email to