coreboot-kgpe-d16/util/kconfig/Makefile.inc
Patrick Georgi 4b8b2a0f0b util/kconfig: Provide default for DEFCONFIG
Our documentation claims that the DEFCONFIG make variable, used for
targets such as savedefconfig, defaults to 'defconfig'.
With the update to kconfig 5.13 we lost this default, so bring it back.

Fixes: 53ea1d44f0 ("util/kconfig: Uprev to Linux 5.13's kconfig")
Resolves: https://ticket.coreboot.org/issues/317
Change-Id: Idb88b69ffa855fa97df8c821601308e717575550
Signed-off-by: Patrick Georgi <pgeorgi@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/56718
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Martin Roth <martinroth@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2021-08-05 02:48:56 +00:00

87 lines
2.4 KiB
Makefile

# SPDX-License-Identifier: GPL-2.0-or-later
# Early coreboot specific configuration
KBUILD_KCONFIG ?= src/Kconfig
export LC_ALL=C
export LANG=C
DEFCONFIG ?= defconfig
# Include original Makefile, with just enough edits to work for us
$(objk)/Makefile.real: $(dir $(lastword $(MAKEFILE_LIST)))Makefile
mkdir -p $(objk)
sed \
-e "s,\$$(obj),\$$(objk),g" \
-e "s,\$$(src),\$$(srck),g" \
-e "s,^help:,help_kconfig help::," \
-e "s,^%.config:,__disable__&," \
-e "s,^savedefconfig:,__disable__&," \
-e "s,\$$(srctree)/arch/\$$(SRCARCH)/configs/\$$(KBUILD_DEFCONFIG),\$$(KBUILD_DEFCONFIG)," \
-e "s,--defconfig=arch/\$$(SRCARCH)/configs/\$$(KBUILD_DEFCONFIG),--defconfig=\$$(KBUILD_DEFCONFIG)," \
-e "/^unexport CONFIG_$$/d" \
$< > $@.tmp
mv $@.tmp $@
kecho := echo
-include $(objk)/Makefile.real
unexport KCONFIG_DEFCONFIG_LIST
# Fill in Linux kconfig build rules to work
oldconfig: KCONFIG_STRICT=
savedefconfig: $(objk)/conf
cp $(DOTCONFIG) $(DEFCONFIG)
$< --savedefconfig=$(DEFCONFIG) $(KBUILD_KCONFIG)
FORCE:
filechk=$< > $@
$(objk)/%.o: $(srck)/%.c
$(HOSTCC) -I $(srck) -I $(objk) -c $(HOSTCFLAGS_$(notdir $@)) -o $@ $<
$(objk)/%.o: $(srck)/%.cc
$(HOSTCXX) -I $(srck) -I $(objk) -c $(HOSTCXXFLAGS_$(notdir $@)) -o $@ $<
$(objk)/%.o: $(objk)/%.c
$(HOSTCC) -I $(srck) -I $(objk) -c -o $@ $<
$(objk)/%.moc: $(srck)/%.h | $(objk)/qconf-cfg
$(call cmd_moc)
define hostprogs_template
# $1 entry in hostprogs
$(objk)/$(1): $$(foreach _o,$$($(1)-objs) $$($(1)-cxxobjs),$(objk)/$$(_o)) | $(wildcard $(objk)/$(1)-cfg)
$$(HOSTCXX) -o $$@ $$^ $$(HOSTLDLIBS_$(1))
endef
$(foreach prog,$(hostprogs),$(eval $(call hostprogs_template,$(prog))))
$(objk)/parser.tab.h: | $(objk)/parser.tab.c
$(objk)/%.tab.h: | $(objk)/%.tab.c
$(objk)/%.tab.c: $(srck)/%.y
bison -t -l --defines=$(objk)/$*.tab.h -b $(objk)/$* $<
$(objk)/%.lex.c: $(srck)/%.l
flex -L -o$@ $<
# Support mingw by shipping our own regex implementation
_OS=$(shell uname -s |cut -c-7)
regex-objs=
ifeq ($(_OS),MINGW32)
regex-objs=regex.o
endif
$(objk)/regex.o: $(srck)/regex.c
$(HOSTCC) $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) -DHAVE_STRING_H -c -o $@ $<
conf-objs += $(regex-objs)
mconf-objs += $(regex-objs)
# Provide tool to convert kconfig output into Ada format
$(objk)/toada: $(objk)/toada.o
$(HOSTCC) $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) -o $@ $^
$(objk)/toada.o: $(srck)/toada.c
$(HOSTCC) $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) -c -o $@ $<