libbpf: Skip re-installing headers file if source is older than target
The "install_headers" target in libbpf's Makefile would unconditionally export all API headers to the target directory. When those headers are installed to compile another application, this means that make always finds newer dependencies for the source files relying on those headers, and deduces that the targets should be rebuilt. Avoid that by making "install_headers" depend on the source header files, and (re-)install them only when necessary. Signed-off-by: Quentin Monnet <quentin@isovalent.com> Signed-off-by: Andrii Nakryiko <andrii@kernel.org> Link: https://lore.kernel.org/bpf/20211007194438.34443-2-quentin@isovalent.com
This commit is contained in:
parent
7e3cbd3405
commit
b79c2ce3ba
|
@ -241,15 +241,24 @@ install_lib: all_cmd
|
|||
$(call do_install_mkdir,$(libdir_SQ)); \
|
||||
cp -fpR $(LIB_FILE) $(DESTDIR)$(libdir_SQ)
|
||||
|
||||
INSTALL_HEADERS = bpf.h libbpf.h btf.h libbpf_common.h libbpf_legacy.h xsk.h \
|
||||
bpf_helpers.h $(BPF_GENERATED) bpf_tracing.h \
|
||||
bpf_endian.h bpf_core_read.h skel_internal.h \
|
||||
libbpf_version.h
|
||||
SRC_HDRS := bpf.h libbpf.h btf.h libbpf_common.h libbpf_legacy.h xsk.h \
|
||||
bpf_helpers.h bpf_tracing.h bpf_endian.h bpf_core_read.h \
|
||||
skel_internal.h libbpf_version.h
|
||||
GEN_HDRS := $(BPF_GENERATED)
|
||||
|
||||
install_headers: $(BPF_GENERATED)
|
||||
$(call QUIET_INSTALL, headers) \
|
||||
$(foreach hdr,$(INSTALL_HEADERS), \
|
||||
$(call do_install,$(hdr),$(prefix)/include/bpf,644);)
|
||||
INSTALL_PFX := $(DESTDIR)$(prefix)/include/bpf
|
||||
INSTALL_SRC_HDRS := $(addprefix $(INSTALL_PFX)/, $(SRC_HDRS))
|
||||
INSTALL_GEN_HDRS := $(addprefix $(INSTALL_PFX)/, $(notdir $(GEN_HDRS)))
|
||||
|
||||
$(INSTALL_SRC_HDRS): $(INSTALL_PFX)/%.h: %.h
|
||||
$(call QUIET_INSTALL, $@) \
|
||||
$(call do_install,$<,$(prefix)/include/bpf,644)
|
||||
|
||||
$(INSTALL_GEN_HDRS): $(INSTALL_PFX)/%.h: $(OUTPUT)%.h
|
||||
$(call QUIET_INSTALL, $@) \
|
||||
$(call do_install,$<,$(prefix)/include/bpf,644)
|
||||
|
||||
install_headers: $(BPF_GENERATED) $(INSTALL_SRC_HDRS) $(INSTALL_GEN_HDRS)
|
||||
|
||||
install_pkgconfig: $(PC_FILE)
|
||||
$(call QUIET_INSTALL, $(PC_FILE)) \
|
||||
|
|
Loading…
Reference in New Issue