mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-09-12 17:43:43 -04:00
The previous patch builds tools/bootconfig during 'make prepare' to render the embedded bootconfig cmdline, but nothing removes it on 'make clean', leaving the compiled tool and its objects behind. Wire a bootconfig_clean hook into the top-level clean target so the compiled tool and its objects are removed by make clean, matching the prepare-wired tools/objtool and tools/bpf/resolve_btfids. The hook runs tools/bootconfig's Makefile via $(MAKE), which the kernel build invokes with -rR (MAKEFLAGS += -rR). -rR drops the built-in $(RM) variable, so the existing "$(RM) -f ..." clean recipe would expand to a bare "-f ..." and fail. Spell the recipe with a literal "rm -f" so it keeps working both standalone and when invoked from Kbuild. Link: https://lore.kernel.org/all/20260626-bootconfig_using_tools-v7-4-24ab72139c29@debian.org/ Reviewed-by: Nicolas Schier <n.schier@fritz.com> Signed-off-by: Breno Leitao <leitao@debian.org> Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
31 lines
781 B
Makefile
31 lines
781 B
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
# Makefile for bootconfig command
|
|
include ../scripts/Makefile.include
|
|
|
|
bindir ?= /usr/bin
|
|
|
|
ifeq ($(srctree),)
|
|
srctree := $(patsubst %/,%,$(dir $(CURDIR)))
|
|
srctree := $(patsubst %/,%,$(dir $(srctree)))
|
|
endif
|
|
|
|
LIBSRC = $(srctree)/lib/bootconfig.c $(srctree)/include/linux/bootconfig.h
|
|
override CFLAGS += -Wall -g -I$(CURDIR)/include
|
|
|
|
ALL_TARGETS := bootconfig
|
|
ALL_PROGRAMS := $(patsubst %,$(OUTPUT)%,$(ALL_TARGETS))
|
|
|
|
all: $(ALL_PROGRAMS)
|
|
|
|
$(OUTPUT)bootconfig: main.c include/linux/bootconfig.h $(LIBSRC)
|
|
$(CC) $(filter %.c,$^) $(CFLAGS) $(LDFLAGS) -o $@
|
|
|
|
test: $(ALL_PROGRAMS) test-bootconfig.sh
|
|
./test-bootconfig.sh $(OUTPUT)
|
|
|
|
install: $(ALL_PROGRAMS)
|
|
install $(OUTPUT)bootconfig $(DESTDIR)$(bindir)
|
|
|
|
clean:
|
|
rm -f $(OUTPUT)*.o $(ALL_PROGRAMS)
|