xref: /aosp_15_r20/external/coreboot/payloads/coreinfo/Makefile (revision b9411a12aaaa7e1e6a6fb7c5e057f44ee179a49c)
1## SPDX-License-Identifier: GPL-2.0-only
2
3unexport $(COREBOOT_EXPORTS)
4
5src := $(CURDIR)
6obj := build
7
8srctree := $(src)
9srck := $(src)/../../util/kconfig
10objk := $(src)/build/util/kconfig
11
12LIBPAYLOAD_DEFCONFIG ?= $(src)/../libpayload/configs/defconfig-tinycurses
13
14PAYLOAD_DEPS := $(obj)/config.h
15
16OBJECTS = cpuinfo_module.o cpuid.S.o pci_module.o coreboot_module.o \
17	  nvram_module.o bootlog_module.o ramdump_module.o \
18	  multiboot_module.o cbfs_module.o timestamps_module.o coreinfo.o
19OBJS    = $(patsubst %,$(obj)/%,$(OBJECTS))
20TARGET  = $(obj)/coreinfo.elf
21
22ARCH := x86_32
23
24all: real-all
25
26include ../libpayload/Makefile.payload
27
28ifeq ($(filter %clean,$(MAKECMDGOALS)),)
29export KERNELVERSION		:= 0.1.0
30export KCONFIG_AUTOHEADER	:= $(obj)/config.h
31export KCONFIG_AUTOCONFIG	:= $(obj)/auto.conf
32export KCONFIG_DEPENDENCIES	:= $(obj)/auto.conf.cmd
33export KCONFIG_SPLITCONFIG	:= $(obj)/config
34export KCONFIG_TRISTATE		:= $(obj)/tristate.conf
35export KCONFIG_CONFIG		:= $(CURDIR)/.config
36export KCONFIG_NEGATIVES	:= 1
37export KBUILD_KCONFIG		:= Kconfig
38
39CONFIG_SHELL := sh
40KBUILD_DEFCONFIG := configs/defconfig
41UNAME_RELEASE := $(shell uname -r)
42HAVE_DOTCONFIG := $(wildcard .config)
43MAKEFLAGS += -rR --no-print-directory
44
45HOSTCC ?= gcc
46HOSTCXX ?= g++
47HOSTCFLAGS := -I$(srck) -I$(objk)
48HOSTCXXFLAGS := -I$(srck) -I$(objk)
49
50CFLAGS += -I$(obj) -I../../src/commonlib/include
51
52ifneq ($(strip $(HAVE_DOTCONFIG)),)
53include $(src)/.config
54real-all: $(TARGET)
55
56ifeq ($(CONFIG_LTO),y)
57CFLAGS += -flto
58endif
59
60else
61real-all: config
62endif
63
64defaultbuild:
65	$(MAKE) olddefconfig
66	$(MAKE) all
67
68$(obj)/config.h:
69	$(MAKE) oldconfig
70
71$(shell mkdir -p $(objk)/lxdialog $(KCONFIG_SPLITCONFIG))
72
73include $(srck)/Makefile.mk
74
75.PHONY: $(PHONY) prepare all real-all defaultbuild
76
77else
78
79distclean: clean
80	rm -f .config*
81
82.PHONY: distclean
83endif
84