[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [XEN PATCH v2 02/12] xen/build: Use obj-y += subdir/ instead of subdir-y
On 17.01.2020 11:53, Anthony PERARD wrote: > This is part of upgrading our build system and import more of Linux's > one. > > In Linux, subdir-y in Makefiles is only used to descend into > subdirectory when there are no object to build, Xen doesn't have that > and all subdir have object to be included in the final binary. > > To allow the new syntax, the "obj-y" and "subdir-*" calculation in > Rules.mk is changed and partially imported from Linux's Kbuild. > > The command used to modify the Makefile was: > sed -i -r 's#^subdir-(.*)#obj-\1/#;' **/Makefile > > Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> with two remarks: > --- a/xen/Rules.mk > +++ b/xen/Rules.mk > @@ -105,17 +105,16 @@ define gendep > endef > $(foreach o,$(filter-out %/,$(obj-y) $(obj-bin-y) $(extra-y)),$(eval $(call > gendep,$(o)))) > > -# Ensure each subdirectory has exactly one trailing slash. > -subdir-n := $(patsubst %,%/,$(patsubst %/,%,$(subdir-n) $(subdir-))) > -subdir-y := $(patsubst %,%/,$(patsubst %/,%,$(subdir-y))) > - > -# Add explicitly declared subdirectories to the object lists. > -obj-y += $(patsubst %/,%/built_in.o,$(subdir-y)) > - > -# Add implicitly declared subdirectories (in the object lists) to the > -# subdirectory list, and rewrite the object-list entry. > -subdir-y += $(filter %/,$(obj-y)) > -obj-y := $(patsubst %/,%/built-in.o,$(obj-y)) > +# Handle objects in subdirs > +# --------------------------------------------------------------------------- > +# o if we encounter foo/ in $(obj-y), replace it by foo/built_in.o > +# and add the directory to the list of dirs to descend into: $(subdir-y) > +__subdir-y := $(filter %/, $(obj-y)) > +subdir-y += $(__subdir-y) I realize I'll be called guilty of bike-shedding again, and I also realize this is the way Linux does it, but what use is the intermediate __subdir-y? Linux has no 2nd use, and hence I also don't see why we would gain one. I further think according to our style there should be no use of tabs here. > +obj-y := $(patsubst %/, %/built_in.o, $(obj-y)) > + > +subdir-n := $(subdir-n) $(subdir-) \ > + $(filter %/, $(obj-n) $(obj-)) This will easily fit on one line (and isn't anything cloned from Linux). Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |