kbuild: fix 'No such file or directory' warning for headers_install
Since commitd5470d1443
("kbuild: re-implement Makefile.headersinst without recursion"), headers_install emits an ugly warning. $ make headers_install [ snip ] UPD include/generated/uapi/linux/version.h find: ‘./include/uapi/Kbuild’: No such file or directory HDRINST usr/include/video/uvesafb.h ... This happens for GNU Make <= 4.2.1 When I wrote that commit, I missed this warning because I was using the state-of-the-art Make version compiled from the git tree. $(wildcard $(src)/*/) is intended to match to only existing directories since it has a trailing slash, but actually matches to regular files too. (include/uapi/Kbuild in this case) This is a bug of GNU Make, and was fixed by: | commit b7acb10e86dc8f5fdf2a2bbd87e1059c315e31d6 | Author: spagoveanu@gmail.com <spagoveanu@gmail.com> | Date: Wed Jun 20 02:03:48 2018 +0300 | | * src/dir.c: Preserve glob d_type field We need to cater to old Make versions. Add '$(filter %/,...) to filter out the regular files. Fixes:d5470d1443
("kbuild: re-implement Makefile.headersinst without recursion") Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
This commit is contained in:
parent
a222061b85
commit
7ff4f0805e
|
@ -20,8 +20,10 @@ dst := usr/include
|
|||
|
||||
-include $(src)/Kbuild
|
||||
|
||||
src-subdirs := $(patsubst $(src)/%/,%,$(wildcard $(src)/*/))
|
||||
gen-subdirs := $(patsubst $(gen)/%/,%,$(wildcard $(gen)/*/))
|
||||
# $(filter %/, ...) is a workaround for GNU Make <= 4.2.1, where
|
||||
# $(wildcard $(src)/*/) contains not only directories but also regular files.
|
||||
src-subdirs := $(patsubst $(src)/%/,%,$(filter %/, $(wildcard $(src)/*/)))
|
||||
gen-subdirs := $(patsubst $(gen)/%/,%,$(filter %/, $(wildcard $(gen)/*/)))
|
||||
all-subdirs := $(sort $(src-subdirs) $(gen-subdirs))
|
||||
|
||||
src-headers := $(if $(src-subdirs), $(shell cd $(src) && find $(src-subdirs) -name '*.h'))
|
||||
|
|
Loading…
Reference in New Issue