From: Pavel Roskin When Makefile.host is included, $(obj-dirs) is subjected to the addprefix operation for the second time. Prefix only needs to be added to the newly added directories, but not to those that came from Makefile.lib. This causes the build system to create unneeded empty directories in the build tree when building in a separate directory. For instance, lib/lib/zlib_inflate is created in the build tree. Signed-off-by: Pavel Roskin Cc: Roman Zippel Cc: Sam Ravnborg Signed-off-by: Andrew Morton --- scripts/Makefile.host | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff -puN scripts/Makefile.host~kbuild-obj-dirs-is-calculated-incorrectly-if-hostprogs-y-is-defined scripts/Makefile.host --- devel/scripts/Makefile.host~kbuild-obj-dirs-is-calculated-incorrectly-if-hostprogs-y-is-defined 2006-06-01 23:11:26.000000000 -0700 +++ devel-akpm/scripts/Makefile.host 2006-06-01 23:11:26.000000000 -0700 @@ -33,8 +33,8 @@ __hostprogs := $(sort $(hostprogs-y)$(hostprogs-m)) # hostprogs-y := tools/build may have been specified. Retreive directory -obj-dirs += $(foreach f,$(__hostprogs), $(if $(dir $(f)),$(dir $(f)))) -obj-dirs := $(strip $(sort $(filter-out ./,$(obj-dirs)))) +host-objdirs := $(foreach f,$(__hostprogs), $(if $(dir $(f)),$(dir $(f)))) +host-objdirs := $(strip $(sort $(filter-out ./,$(host-objdirs)))) # C code @@ -73,7 +73,9 @@ host-cxxmulti := $(addprefix $(obj)/,$(h host-cxxobjs := $(addprefix $(obj)/,$(host-cxxobjs)) host-cshlib := $(addprefix $(obj)/,$(host-cshlib)) host-cshobjs := $(addprefix $(obj)/,$(host-cshobjs)) -obj-dirs := $(addprefix $(obj)/,$(obj-dirs)) +host-objdirs := $(addprefix $(obj)/,$(host-objdirs)) + +obj-dirs += $(host-objdirs) ##### # Handle options to gcc. Support building with separate output directory _