coreboot-kgpe-d16/payloads/coreinfo/Makefile

140 lines
4.0 KiB
Makefile
Raw Normal View History

##
## This file is part of the coreinfo project.
##
## Copyright (C) 2008 Advanced Micro Devices, Inc.
Add a recent kconfig version to coreinfo, in order to make the supported features configurable later (currently unused). Store all build files and results (coreinfo.elf) in build/ now. I'm self-acking this as (though non-"trivial") it doesn't affect coreinfo in its functionality, this is more or less a "cosmetic" change to the build interface ("make" -> "make menuconfig && make"). This is a kconfig checkout from the Linux kernel (where kconfig is being actively maintained) from 03/2008. The hash identifying the last commit to kconfig is 587c90616a5b44e6ccfac38e64d4fecee51d588c. The amount of changes to kconfig itself has been kept as small as possible to keep the diff small and to ease updating/porting to newer kconfig versions. The following changes were performed on the upstream Linux kconfig: - s/kernel/coreinfo/, and s/Linux/coreinfo/ in various strings. - Consistently use the env. variable KERNELVERSION in all kconfig interfaces -- e.g. config/menuconfig/gconfig/xconfig -- as version number. - Hardcode our paths/filenames in some places (could be improved upstream). - Always write .config and build/config.h, no matter which kconfig interface is used (config/menuconfig/gconfig/xconfig). We want to include build/config.h in our code. - Adapt the kconfig Makefile for our purposes (build/ directory, rules, etc). In addition, a few items in the coreinfo Makefile are needed for this to work. This kconfig setup is successfully tested with all targets from 'make help': config - Update current config utilising a line-oriented program menuconfig - Update current config utilising a menu based program xconfig - Update current config utilising a QT based front-end gconfig - Update current config utilising a GTK based front-end oldconfig - Update current config utilising a provided .config as base silentoldconfig - Same as oldconfig, but quietly randconfig - New config with random answer to all options defconfig - New config with default answer to all options allmodconfig - New config selecting modules when possible allyesconfig - New config where all options are accepted with yes allnoconfig - New config where all options are answered with no For 'make defconfig' to work you have to do (which we don't need in coreinfo): $ mkdir configs; touch configs/defconfig You can also use 'make foo_defconfig' in which case kconfig will use a file called 'configs/foo_defconfig' as basis. Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de> Acked-by: Uwe Hermann <uwe@hermann-uwe.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3188 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2008-03-24 16:47:49 +01:00
## Copyright (C) 2008 Uwe Hermann <uwe@hermann-uwe.de>
##
payloads: Replace GPL boilerplate with SPDX headers Used commands: perl -i -p0e 's|\/\*[\s*]*.*is free software[:;][\s*]*you[\s*]*can[\s*]*redistribute[\s*]*it[\s*]*and\/or[\s*]*modify[\s*]*it[\s*]*under[\s*]*the[\s*]*terms[\s*]*of[\s*]*the[\s*]*GNU[\s*]*General[\s*]*Public[\s*]*License[\s*]*as[\s*]*published[\s*]*by[\s*]*the[\s*]*Free[\s*]*Software[\s*]*Foundation[;,][\s*]*version[\s*]*2[\s*]*of[\s*]*the[\s*]*License.[\s*]*This[\s*]*program[\s*]*is[\s*]*distributed[\s*]*in[\s*]*the[\s*]*hope[\s*]*that[\s*]*it[\s*]*will[\s*]*be[\s*]*useful,[\s*]*but[\s*]*WITHOUT[\s*]*ANY[\s*]*WARRANTY;[\s*]*without[\s*]*even[\s*]*the[\s*]*implied[\s*]*warranty[\s*]*of[\s*]*MERCHANTABILITY[\s*]*or[\s*]*FITNESS[\s*]*FOR[\s*]*A[\s*]*PARTICULAR[\s*]*PURPOSE.[\s*]*See[\s*]*the[\s*]*GNU[\s*]*General[\s*]*Public[\s*]*License[\s*]*for[\s*]*more[\s*]*details.[\s*]*\*\/|/* SPDX-License-Identifier: GPL-2.0-only */|' $(cat filelist) perl -i -p0e 's|\/\*[\s*]*.*is[\s*]*free[\s*]*software[:;][\s*]*you[\s*]*can[\s*]*redistribute[\s*]*it[\s*]*and/or[\s*]*modify[\s*]*it[\s*]*under[\s*]*the[\s*]*terms[\s*]*of[\s*]*the[\s*]*GNU[\s*]*General[\s*]*Public[\s*]*License[\s*]*as[\s*]*published[\s*]*by[\s*]*the[\s*]*Free[\s*]*Software[\s*]*Foundation[;,][\s*]*either[\s*]*version[\s*]*2[\s*]*of[\s*]*the[\s*]*License,[\s*]*or[\s*]*.at[\s*]*your[\s*]*option.*[\s*]*any[\s*]*later[\s*]*version.[\s*]*This[\s*]*program[\s*]*is[\s*]*distributed[\s*]*in[\s*]*the[\s*]*hope[\s*]*that[\s*]*it[\s*]*will[\s*]*be[\s*]*useful,[\s*]*but[\s*]*WITHOUT[\s*]*ANY[\s*]*WARRANTY;[\s*]*without[\s*]*even[\s*]*the[\s*]*implied[\s*]*warranty[\s*]*of[\s*]*MERCHANTABILITY[\s*]*or[\s*]*FITNESS[\s*]*FOR[\s*]*A[\s*]*PARTICULAR[\s*]*PURPOSE.[\s*]*See[\s*]*the[\s*]*GNU[\s*]*General[\s*]*Public[\s*]*License[\s*]*for[\s*]*more[\s*]*details.[\s*]*\*\/|/* SPDX-License-Identifier: GPL-2.0-or-later */|' $(cat filelist) perl -i -p0e 's|\/\*[\s*]*.*is[\s*#]*free[\s*#]*software[;:,][\s*#]*you[\s*#]*can[\s*#]*redistribute[\s*#]*it[\s*#]*and/or[\s*#]*modify[\s*#]*it[\s*#]*under[\s*#]*the[\s*#]*terms[\s*#]*of[\s*#]*the[\s*#]*GNU[\s*#]*General[\s*#]*Public[\s*#]*License[\s*#]*as[\s*#]*published[\s*#]*by[\s*#]*the[\s*#]*Free[\s*#]*Software[\s*#]*Foundation[;:,][\s*#]*either[\s*#]*version[\s*#]*3[\s*#]*of[\s*#]*the[\s*#]*License[;:,][\s*#]*or[\s*#]*.at[\s*#]*your[\s*#]*option.*[\s*#]*any[\s*#]*later[\s*#]*version.[\s*#]*This[\s*#]*program[\s*#]*is[\s*#]*distributed[\s*#]*in[\s*#]*the[\s*#]*hope[\s*#]*that[\s*#]*it[\s*#]*will[\s*#]*be[\s*#]*useful[;:,][\s*#]*but[\s*#]*WITHOUT[\s*#]*ANY[\s*#]*WARRANTY[;:,][\s*#]*without[\s*#]*even[\s*#]*the[\s*#]*implied[\s*#]*warranty[\s*#]*of[\s*#]*MERCHANTABILITY[\s*#]*or[\s*#]*FITNESS[\s*#]*FOR[\s*#]*A[\s*#]*PARTICULAR[\s*#]*PURPOSE.[\s*#]*See[\s*#]*the[\s*#]*GNU[\s*#]*General[\s*#]*Public[\s*#]*License[\s*#]*for[\s*#]*more[\s*#]*details.[\s*]*\*\/|/* SPDX-License-Identifier: GPL-3.0-or-later */|' $(cat filelist) perl -i -p0e 's|(\#\#*)[\w]*.*is free software[:;][\#\s]*you[\#\s]*can[\#\s]*redistribute[\#\s]*it[\#\s]*and\/or[\#\s]*modify[\#\s]*it[\s\#]*under[\s \#]*the[\s\#]*terms[\s\#]*of[\s\#]*the[\s\#]*GNU[\s\#]*General[\s\#]*Public[\s\#]*License[\s\#]*as[\s\#]*published[\s\#]*by[\s\#]*the[\s\#]*Free[\s\#]*Software[\s\#]*Foundation[;,][\s\#]*version[\s\#]*2[\s\#]*of[\s\#]*the[\s\#]*License.*[\s\#]*This[\s\#]*program[\s\#]*is[\s\#]*distributed[\s\#]*in[\s\#]*the[\s\#]*hope[\s\#]*that[\s\#]*it[\s\#]*will[\#\s]*be[\#\s]*useful,[\#\s]*but[\#\s]*WITHOUT[\#\s]*ANY[\#\s]*WARRANTY;[\#\s]*without[\#\s]*even[\#\s]*the[\#\s]*implied[\#\s]*warranty[\#\s]*of[\#\s]*MERCHANTABILITY[\#\s]*or[\#\s]*FITNESS[\#\s]*FOR[\#\s]*A[\#\s]*PARTICULAR[\#\s]*PURPOSE.[\#\s]*See[\#\s]*the[\#\s]*GNU[\#\s]*General[\#\s]*Public[\#\s]*License[\#\s]*for[\#\s]*more[\#\s]*details.\s(#* *\n)*|\1 SPDX-License-Identifier: GPL-2.0-only\n\n|' $(cat filelist) perl -i -p0e 's|(\#\#*)[\w*]*.*is free software[:;][\s*]*you[\s*]*can[\s*]*redistribute[\s*]*it[\s*]*and\/or[\s*]*modify[\s*]*it[\s*]*under[\s*]*the[\s*]*terms[\s*]*of[\s*]*the[\s*]*GNU[\s*]*General[\s*]*Public[\s*]*License[\s*]*as[\s*]*published[\s*]*by[\s*]*the[\s*]*Free[\s*]*Software[\s*]*Foundation[;,][\s*]*version[\s*]*2[\s*]*of[\s*]*the[\s*]*License.[\s*]*This[\s*]*program[\s*]*is[\s*]*distributed[\s*]*in[\s*]*the[\s*]*hope[\s*]*that[\s*]*it[\s*]*will[\s*]*be[\s*]*useful,[\s*]*but[\s*]*WITHOUT[\s*]*ANY[\s*]*WARRANTY;[\s*]*without[\s*]*even[\s*]*the[\s*]*implied[\s*]*warranty[\s*]*of[\s*]*MERCHANTABILITY[\s*]*or[\s*]*FITNESS[\s*]*FOR[\s*]*A[\s*]*PARTICULAR[\s*]*PURPOSE.[\s*]*See[\s*]*the[\s*]*GNU[\s*]*General[\s*]*Public[\s*]*License[\s*]*for[\s*]*more[\s*]*details.\s(#* *\n)*|\1 SPDX-License-Identifier: GPL-2.0-only\n\n|' $(cat filelist) Change-Id: I9f74ed19257bc4234465b8f912deff1b485173f9 Signed-off-by: Patrick Georgi <pgeorgi@google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/41179 Reviewed-by: HAOUAS Elyes <ehaouas@noos.fr> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2020-05-08 22:50:46 +02:00
## SPDX-License-Identifier: GPL-2.0-only
src := $(CURDIR)
srctree := $(src)
srck := $(src)/../../util/kconfig
coreinfo_obj := $(src)/build
objk := $(src)/build/util/kconfig
Add a recent kconfig version to coreinfo, in order to make the supported features configurable later (currently unused). Store all build files and results (coreinfo.elf) in build/ now. I'm self-acking this as (though non-"trivial") it doesn't affect coreinfo in its functionality, this is more or less a "cosmetic" change to the build interface ("make" -> "make menuconfig && make"). This is a kconfig checkout from the Linux kernel (where kconfig is being actively maintained) from 03/2008. The hash identifying the last commit to kconfig is 587c90616a5b44e6ccfac38e64d4fecee51d588c. The amount of changes to kconfig itself has been kept as small as possible to keep the diff small and to ease updating/porting to newer kconfig versions. The following changes were performed on the upstream Linux kconfig: - s/kernel/coreinfo/, and s/Linux/coreinfo/ in various strings. - Consistently use the env. variable KERNELVERSION in all kconfig interfaces -- e.g. config/menuconfig/gconfig/xconfig -- as version number. - Hardcode our paths/filenames in some places (could be improved upstream). - Always write .config and build/config.h, no matter which kconfig interface is used (config/menuconfig/gconfig/xconfig). We want to include build/config.h in our code. - Adapt the kconfig Makefile for our purposes (build/ directory, rules, etc). In addition, a few items in the coreinfo Makefile are needed for this to work. This kconfig setup is successfully tested with all targets from 'make help': config - Update current config utilising a line-oriented program menuconfig - Update current config utilising a menu based program xconfig - Update current config utilising a QT based front-end gconfig - Update current config utilising a GTK based front-end oldconfig - Update current config utilising a provided .config as base silentoldconfig - Same as oldconfig, but quietly randconfig - New config with random answer to all options defconfig - New config with default answer to all options allmodconfig - New config selecting modules when possible allyesconfig - New config where all options are accepted with yes allnoconfig - New config where all options are answered with no For 'make defconfig' to work you have to do (which we don't need in coreinfo): $ mkdir configs; touch configs/defconfig You can also use 'make foo_defconfig' in which case kconfig will use a file called 'configs/foo_defconfig' as basis. Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de> Acked-by: Uwe Hermann <uwe@hermann-uwe.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3188 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2008-03-24 16:47:49 +01:00
ifeq ($(filter %clean,$(MAKECMDGOALS)),)
Add a recent kconfig version to coreinfo, in order to make the supported features configurable later (currently unused). Store all build files and results (coreinfo.elf) in build/ now. I'm self-acking this as (though non-"trivial") it doesn't affect coreinfo in its functionality, this is more or less a "cosmetic" change to the build interface ("make" -> "make menuconfig && make"). This is a kconfig checkout from the Linux kernel (where kconfig is being actively maintained) from 03/2008. The hash identifying the last commit to kconfig is 587c90616a5b44e6ccfac38e64d4fecee51d588c. The amount of changes to kconfig itself has been kept as small as possible to keep the diff small and to ease updating/porting to newer kconfig versions. The following changes were performed on the upstream Linux kconfig: - s/kernel/coreinfo/, and s/Linux/coreinfo/ in various strings. - Consistently use the env. variable KERNELVERSION in all kconfig interfaces -- e.g. config/menuconfig/gconfig/xconfig -- as version number. - Hardcode our paths/filenames in some places (could be improved upstream). - Always write .config and build/config.h, no matter which kconfig interface is used (config/menuconfig/gconfig/xconfig). We want to include build/config.h in our code. - Adapt the kconfig Makefile for our purposes (build/ directory, rules, etc). In addition, a few items in the coreinfo Makefile are needed for this to work. This kconfig setup is successfully tested with all targets from 'make help': config - Update current config utilising a line-oriented program menuconfig - Update current config utilising a menu based program xconfig - Update current config utilising a QT based front-end gconfig - Update current config utilising a GTK based front-end oldconfig - Update current config utilising a provided .config as base silentoldconfig - Same as oldconfig, but quietly randconfig - New config with random answer to all options defconfig - New config with default answer to all options allmodconfig - New config selecting modules when possible allyesconfig - New config where all options are accepted with yes allnoconfig - New config where all options are answered with no For 'make defconfig' to work you have to do (which we don't need in coreinfo): $ mkdir configs; touch configs/defconfig You can also use 'make foo_defconfig' in which case kconfig will use a file called 'configs/foo_defconfig' as basis. Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de> Acked-by: Uwe Hermann <uwe@hermann-uwe.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3188 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2008-03-24 16:47:49 +01:00
export KERNELVERSION := 0.1.0
export KCONFIG_AUTOHEADER := $(coreinfo_obj)/config.h
export KCONFIG_AUTOCONFIG := $(coreinfo_obj)/auto.conf
export KCONFIG_DEPENDENCIES := $(coreinfo_obj)/auto.conf.cmd
export KCONFIG_SPLITCONFIG := $(coreinfo_obj)/config
export KCONFIG_TRISTATE := $(coreinfo_obj)/tristate.conf
export KCONFIG_CONFIG := $(CURDIR)/.config
export KCONFIG_NEGATIVES := 1
export Kconfig := Kconfig
export V := $(V)
Add a recent kconfig version to coreinfo, in order to make the supported features configurable later (currently unused). Store all build files and results (coreinfo.elf) in build/ now. I'm self-acking this as (though non-"trivial") it doesn't affect coreinfo in its functionality, this is more or less a "cosmetic" change to the build interface ("make" -> "make menuconfig && make"). This is a kconfig checkout from the Linux kernel (where kconfig is being actively maintained) from 03/2008. The hash identifying the last commit to kconfig is 587c90616a5b44e6ccfac38e64d4fecee51d588c. The amount of changes to kconfig itself has been kept as small as possible to keep the diff small and to ease updating/porting to newer kconfig versions. The following changes were performed on the upstream Linux kconfig: - s/kernel/coreinfo/, and s/Linux/coreinfo/ in various strings. - Consistently use the env. variable KERNELVERSION in all kconfig interfaces -- e.g. config/menuconfig/gconfig/xconfig -- as version number. - Hardcode our paths/filenames in some places (could be improved upstream). - Always write .config and build/config.h, no matter which kconfig interface is used (config/menuconfig/gconfig/xconfig). We want to include build/config.h in our code. - Adapt the kconfig Makefile for our purposes (build/ directory, rules, etc). In addition, a few items in the coreinfo Makefile are needed for this to work. This kconfig setup is successfully tested with all targets from 'make help': config - Update current config utilising a line-oriented program menuconfig - Update current config utilising a menu based program xconfig - Update current config utilising a QT based front-end gconfig - Update current config utilising a GTK based front-end oldconfig - Update current config utilising a provided .config as base silentoldconfig - Same as oldconfig, but quietly randconfig - New config with random answer to all options defconfig - New config with default answer to all options allmodconfig - New config selecting modules when possible allyesconfig - New config where all options are accepted with yes allnoconfig - New config where all options are answered with no For 'make defconfig' to work you have to do (which we don't need in coreinfo): $ mkdir configs; touch configs/defconfig You can also use 'make foo_defconfig' in which case kconfig will use a file called 'configs/foo_defconfig' as basis. Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de> Acked-by: Uwe Hermann <uwe@hermann-uwe.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3188 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2008-03-24 16:47:49 +01:00
CONFIG_SHELL := sh
KBUILD_DEFCONFIG := configs/defconfig
UNAME_RELEASE := $(shell uname -r)
HAVE_DOTCONFIG := $(wildcard .config)
MAKEFLAGS += -rR --no-print-directory
# Make is silent per default, but 'make V=1' will show all compiler calls.
ifneq ($(V),1)
.SILENT:
Add a recent kconfig version to coreinfo, in order to make the supported features configurable later (currently unused). Store all build files and results (coreinfo.elf) in build/ now. I'm self-acking this as (though non-"trivial") it doesn't affect coreinfo in its functionality, this is more or less a "cosmetic" change to the build interface ("make" -> "make menuconfig && make"). This is a kconfig checkout from the Linux kernel (where kconfig is being actively maintained) from 03/2008. The hash identifying the last commit to kconfig is 587c90616a5b44e6ccfac38e64d4fecee51d588c. The amount of changes to kconfig itself has been kept as small as possible to keep the diff small and to ease updating/porting to newer kconfig versions. The following changes were performed on the upstream Linux kconfig: - s/kernel/coreinfo/, and s/Linux/coreinfo/ in various strings. - Consistently use the env. variable KERNELVERSION in all kconfig interfaces -- e.g. config/menuconfig/gconfig/xconfig -- as version number. - Hardcode our paths/filenames in some places (could be improved upstream). - Always write .config and build/config.h, no matter which kconfig interface is used (config/menuconfig/gconfig/xconfig). We want to include build/config.h in our code. - Adapt the kconfig Makefile for our purposes (build/ directory, rules, etc). In addition, a few items in the coreinfo Makefile are needed for this to work. This kconfig setup is successfully tested with all targets from 'make help': config - Update current config utilising a line-oriented program menuconfig - Update current config utilising a menu based program xconfig - Update current config utilising a QT based front-end gconfig - Update current config utilising a GTK based front-end oldconfig - Update current config utilising a provided .config as base silentoldconfig - Same as oldconfig, but quietly randconfig - New config with random answer to all options defconfig - New config with default answer to all options allmodconfig - New config selecting modules when possible allyesconfig - New config where all options are accepted with yes allnoconfig - New config where all options are answered with no For 'make defconfig' to work you have to do (which we don't need in coreinfo): $ mkdir configs; touch configs/defconfig You can also use 'make foo_defconfig' in which case kconfig will use a file called 'configs/foo_defconfig' as basis. Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de> Acked-by: Uwe Hermann <uwe@hermann-uwe.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3188 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2008-03-24 16:47:49 +01:00
endif
HOSTCC ?= gcc
HOSTCXX ?= g++
Add a recent kconfig version to coreinfo, in order to make the supported features configurable later (currently unused). Store all build files and results (coreinfo.elf) in build/ now. I'm self-acking this as (though non-"trivial") it doesn't affect coreinfo in its functionality, this is more or less a "cosmetic" change to the build interface ("make" -> "make menuconfig && make"). This is a kconfig checkout from the Linux kernel (where kconfig is being actively maintained) from 03/2008. The hash identifying the last commit to kconfig is 587c90616a5b44e6ccfac38e64d4fecee51d588c. The amount of changes to kconfig itself has been kept as small as possible to keep the diff small and to ease updating/porting to newer kconfig versions. The following changes were performed on the upstream Linux kconfig: - s/kernel/coreinfo/, and s/Linux/coreinfo/ in various strings. - Consistently use the env. variable KERNELVERSION in all kconfig interfaces -- e.g. config/menuconfig/gconfig/xconfig -- as version number. - Hardcode our paths/filenames in some places (could be improved upstream). - Always write .config and build/config.h, no matter which kconfig interface is used (config/menuconfig/gconfig/xconfig). We want to include build/config.h in our code. - Adapt the kconfig Makefile for our purposes (build/ directory, rules, etc). In addition, a few items in the coreinfo Makefile are needed for this to work. This kconfig setup is successfully tested with all targets from 'make help': config - Update current config utilising a line-oriented program menuconfig - Update current config utilising a menu based program xconfig - Update current config utilising a QT based front-end gconfig - Update current config utilising a GTK based front-end oldconfig - Update current config utilising a provided .config as base silentoldconfig - Same as oldconfig, but quietly randconfig - New config with random answer to all options defconfig - New config with default answer to all options allmodconfig - New config selecting modules when possible allyesconfig - New config where all options are accepted with yes allnoconfig - New config where all options are answered with no For 'make defconfig' to work you have to do (which we don't need in coreinfo): $ mkdir configs; touch configs/defconfig You can also use 'make foo_defconfig' in which case kconfig will use a file called 'configs/foo_defconfig' as basis. Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de> Acked-by: Uwe Hermann <uwe@hermann-uwe.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3188 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2008-03-24 16:47:49 +01:00
HOSTCFLAGS := -I$(srck) -I$(objk)
HOSTCXXFLAGS := -I$(srck) -I$(objk)
LIBPAYLOAD_PATH := $(realpath ../libpayload)
LIBPAYLOAD_OBJ := $(coreinfo_obj)/libpayload
HAVE_LIBPAYLOAD := $(wildcard $(LIBPAYLOAD_OBJ)/lib/libpayload.a)
LIBPAYLOAD_CONFIG ?= configs/defconfig-tinycurses
OBJCOPY ?= objcopy
INCLUDES = -I$(coreinfo_obj) -include $(LIBPAYLOAD_OBJ)/include/kconfig.h -I$(src)/../../src/commonlib/include
OBJECTS = cpuinfo_module.o cpuid.S.o pci_module.o coreboot_module.o \
nvram_module.o bootlog_module.o ramdump_module.o \
multiboot_module.o cbfs_module.o timestamps_module.o coreinfo.o
OBJS = $(patsubst %,$(coreinfo_obj)/%,$(OBJECTS))
TARGET = $(coreinfo_obj)/coreinfo.elf
Add a recent kconfig version to coreinfo, in order to make the supported features configurable later (currently unused). Store all build files and results (coreinfo.elf) in build/ now. I'm self-acking this as (though non-"trivial") it doesn't affect coreinfo in its functionality, this is more or less a "cosmetic" change to the build interface ("make" -> "make menuconfig && make"). This is a kconfig checkout from the Linux kernel (where kconfig is being actively maintained) from 03/2008. The hash identifying the last commit to kconfig is 587c90616a5b44e6ccfac38e64d4fecee51d588c. The amount of changes to kconfig itself has been kept as small as possible to keep the diff small and to ease updating/porting to newer kconfig versions. The following changes were performed on the upstream Linux kconfig: - s/kernel/coreinfo/, and s/Linux/coreinfo/ in various strings. - Consistently use the env. variable KERNELVERSION in all kconfig interfaces -- e.g. config/menuconfig/gconfig/xconfig -- as version number. - Hardcode our paths/filenames in some places (could be improved upstream). - Always write .config and build/config.h, no matter which kconfig interface is used (config/menuconfig/gconfig/xconfig). We want to include build/config.h in our code. - Adapt the kconfig Makefile for our purposes (build/ directory, rules, etc). In addition, a few items in the coreinfo Makefile are needed for this to work. This kconfig setup is successfully tested with all targets from 'make help': config - Update current config utilising a line-oriented program menuconfig - Update current config utilising a menu based program xconfig - Update current config utilising a QT based front-end gconfig - Update current config utilising a GTK based front-end oldconfig - Update current config utilising a provided .config as base silentoldconfig - Same as oldconfig, but quietly randconfig - New config with random answer to all options defconfig - New config with default answer to all options allmodconfig - New config selecting modules when possible allyesconfig - New config where all options are accepted with yes allnoconfig - New config where all options are answered with no For 'make defconfig' to work you have to do (which we don't need in coreinfo): $ mkdir configs; touch configs/defconfig You can also use 'make foo_defconfig' in which case kconfig will use a file called 'configs/foo_defconfig' as basis. Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de> Acked-by: Uwe Hermann <uwe@hermann-uwe.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3188 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2008-03-24 16:47:49 +01:00
all: real-all
# in addition to the dependency below, create the file if it doesn't exist
# to silence warnings about a file that would be generated anyway.
$(if $(wildcard .xcompile),,$(eval $(shell ../../util/xcompile/xcompile $(XGCCPATH) > .xcompile || rm -f .xcompile)))
.xcompile: ../../util/xcompile/xcompile
$< $(XGCCPATH) > $@.tmp
\mv -f $@.tmp $@ 2> /dev/null || rm -f $@.tmp $@
CONFIG_COMPILER_GCC := y
ARCH-y := x86_32
include .xcompile
CC := $(CC_$(ARCH-y))
AS := $(AS_$(ARCH-y))
OBJCOPY := $(OBJCOPY_$(ARCH-y))
LPCC := CC="$(CC)" $(LIBPAYLOAD_OBJ)/bin/lpgcc
LPAS := AS="$(AS)" $(LIBPAYLOAD_OBJ)/bin/lpas
CFLAGS += -Wall -Wextra -Wmissing-prototypes -Wvla -Werror
CFLAGS += -Os -fno-builtin $(CFLAGS_$(ARCH-y)) $(INCLUDES)
ifneq ($(strip $(HAVE_DOTCONFIG)),)
Add a recent kconfig version to coreinfo, in order to make the supported features configurable later (currently unused). Store all build files and results (coreinfo.elf) in build/ now. I'm self-acking this as (though non-"trivial") it doesn't affect coreinfo in its functionality, this is more or less a "cosmetic" change to the build interface ("make" -> "make menuconfig && make"). This is a kconfig checkout from the Linux kernel (where kconfig is being actively maintained) from 03/2008. The hash identifying the last commit to kconfig is 587c90616a5b44e6ccfac38e64d4fecee51d588c. The amount of changes to kconfig itself has been kept as small as possible to keep the diff small and to ease updating/porting to newer kconfig versions. The following changes were performed on the upstream Linux kconfig: - s/kernel/coreinfo/, and s/Linux/coreinfo/ in various strings. - Consistently use the env. variable KERNELVERSION in all kconfig interfaces -- e.g. config/menuconfig/gconfig/xconfig -- as version number. - Hardcode our paths/filenames in some places (could be improved upstream). - Always write .config and build/config.h, no matter which kconfig interface is used (config/menuconfig/gconfig/xconfig). We want to include build/config.h in our code. - Adapt the kconfig Makefile for our purposes (build/ directory, rules, etc). In addition, a few items in the coreinfo Makefile are needed for this to work. This kconfig setup is successfully tested with all targets from 'make help': config - Update current config utilising a line-oriented program menuconfig - Update current config utilising a menu based program xconfig - Update current config utilising a QT based front-end gconfig - Update current config utilising a GTK based front-end oldconfig - Update current config utilising a provided .config as base silentoldconfig - Same as oldconfig, but quietly randconfig - New config with random answer to all options defconfig - New config with default answer to all options allmodconfig - New config selecting modules when possible allyesconfig - New config where all options are accepted with yes allnoconfig - New config where all options are answered with no For 'make defconfig' to work you have to do (which we don't need in coreinfo): $ mkdir configs; touch configs/defconfig You can also use 'make foo_defconfig' in which case kconfig will use a file called 'configs/foo_defconfig' as basis. Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de> Acked-by: Uwe Hermann <uwe@hermann-uwe.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3188 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2008-03-24 16:47:49 +01:00
include $(src)/.config
real-all: $(TARGET)
$(TARGET): $(src)/.config $(coreinfo_obj)/config.h $(OBJS) libpayload
printf " LPCC $(subst $(CURDIR)/,,$(@)) (LINK)\n"
$(LPCC) -o $@ $(OBJS)
$(OBJCOPY) --only-keep-debug $@ $(TARGET).debug
$(OBJCOPY) --strip-debug $@
$(OBJCOPY) --add-gnu-debuglink=$(TARGET).debug $@
Add a recent kconfig version to coreinfo, in order to make the supported features configurable later (currently unused). Store all build files and results (coreinfo.elf) in build/ now. I'm self-acking this as (though non-"trivial") it doesn't affect coreinfo in its functionality, this is more or less a "cosmetic" change to the build interface ("make" -> "make menuconfig && make"). This is a kconfig checkout from the Linux kernel (where kconfig is being actively maintained) from 03/2008. The hash identifying the last commit to kconfig is 587c90616a5b44e6ccfac38e64d4fecee51d588c. The amount of changes to kconfig itself has been kept as small as possible to keep the diff small and to ease updating/porting to newer kconfig versions. The following changes were performed on the upstream Linux kconfig: - s/kernel/coreinfo/, and s/Linux/coreinfo/ in various strings. - Consistently use the env. variable KERNELVERSION in all kconfig interfaces -- e.g. config/menuconfig/gconfig/xconfig -- as version number. - Hardcode our paths/filenames in some places (could be improved upstream). - Always write .config and build/config.h, no matter which kconfig interface is used (config/menuconfig/gconfig/xconfig). We want to include build/config.h in our code. - Adapt the kconfig Makefile for our purposes (build/ directory, rules, etc). In addition, a few items in the coreinfo Makefile are needed for this to work. This kconfig setup is successfully tested with all targets from 'make help': config - Update current config utilising a line-oriented program menuconfig - Update current config utilising a menu based program xconfig - Update current config utilising a QT based front-end gconfig - Update current config utilising a GTK based front-end oldconfig - Update current config utilising a provided .config as base silentoldconfig - Same as oldconfig, but quietly randconfig - New config with random answer to all options defconfig - New config with default answer to all options allmodconfig - New config selecting modules when possible allyesconfig - New config where all options are accepted with yes allnoconfig - New config where all options are answered with no For 'make defconfig' to work you have to do (which we don't need in coreinfo): $ mkdir configs; touch configs/defconfig You can also use 'make foo_defconfig' in which case kconfig will use a file called 'configs/foo_defconfig' as basis. Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de> Acked-by: Uwe Hermann <uwe@hermann-uwe.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3188 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2008-03-24 16:47:49 +01:00
$(coreinfo_obj)/%.S.o: $(src)/%.S libpayload
printf " LPAS $(subst $(CURDIR)/,,$(@))\n"
$(LPAS) -o $@ $<
Add a recent kconfig version to coreinfo, in order to make the supported features configurable later (currently unused). Store all build files and results (coreinfo.elf) in build/ now. I'm self-acking this as (though non-"trivial") it doesn't affect coreinfo in its functionality, this is more or less a "cosmetic" change to the build interface ("make" -> "make menuconfig && make"). This is a kconfig checkout from the Linux kernel (where kconfig is being actively maintained) from 03/2008. The hash identifying the last commit to kconfig is 587c90616a5b44e6ccfac38e64d4fecee51d588c. The amount of changes to kconfig itself has been kept as small as possible to keep the diff small and to ease updating/porting to newer kconfig versions. The following changes were performed on the upstream Linux kconfig: - s/kernel/coreinfo/, and s/Linux/coreinfo/ in various strings. - Consistently use the env. variable KERNELVERSION in all kconfig interfaces -- e.g. config/menuconfig/gconfig/xconfig -- as version number. - Hardcode our paths/filenames in some places (could be improved upstream). - Always write .config and build/config.h, no matter which kconfig interface is used (config/menuconfig/gconfig/xconfig). We want to include build/config.h in our code. - Adapt the kconfig Makefile for our purposes (build/ directory, rules, etc). In addition, a few items in the coreinfo Makefile are needed for this to work. This kconfig setup is successfully tested with all targets from 'make help': config - Update current config utilising a line-oriented program menuconfig - Update current config utilising a menu based program xconfig - Update current config utilising a QT based front-end gconfig - Update current config utilising a GTK based front-end oldconfig - Update current config utilising a provided .config as base silentoldconfig - Same as oldconfig, but quietly randconfig - New config with random answer to all options defconfig - New config with default answer to all options allmodconfig - New config selecting modules when possible allyesconfig - New config where all options are accepted with yes allnoconfig - New config where all options are answered with no For 'make defconfig' to work you have to do (which we don't need in coreinfo): $ mkdir configs; touch configs/defconfig You can also use 'make foo_defconfig' in which case kconfig will use a file called 'configs/foo_defconfig' as basis. Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de> Acked-by: Uwe Hermann <uwe@hermann-uwe.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3188 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2008-03-24 16:47:49 +01:00
$(coreinfo_obj)/%.o: $(src)/%.c libpayload
printf " LPCC $(subst $(CURDIR)/,,$(@))\n"
$(LPCC) $(CFLAGS) -c -o $@ $<
Add a recent kconfig version to coreinfo, in order to make the supported features configurable later (currently unused). Store all build files and results (coreinfo.elf) in build/ now. I'm self-acking this as (though non-"trivial") it doesn't affect coreinfo in its functionality, this is more or less a "cosmetic" change to the build interface ("make" -> "make menuconfig && make"). This is a kconfig checkout from the Linux kernel (where kconfig is being actively maintained) from 03/2008. The hash identifying the last commit to kconfig is 587c90616a5b44e6ccfac38e64d4fecee51d588c. The amount of changes to kconfig itself has been kept as small as possible to keep the diff small and to ease updating/porting to newer kconfig versions. The following changes were performed on the upstream Linux kconfig: - s/kernel/coreinfo/, and s/Linux/coreinfo/ in various strings. - Consistently use the env. variable KERNELVERSION in all kconfig interfaces -- e.g. config/menuconfig/gconfig/xconfig -- as version number. - Hardcode our paths/filenames in some places (could be improved upstream). - Always write .config and build/config.h, no matter which kconfig interface is used (config/menuconfig/gconfig/xconfig). We want to include build/config.h in our code. - Adapt the kconfig Makefile for our purposes (build/ directory, rules, etc). In addition, a few items in the coreinfo Makefile are needed for this to work. This kconfig setup is successfully tested with all targets from 'make help': config - Update current config utilising a line-oriented program menuconfig - Update current config utilising a menu based program xconfig - Update current config utilising a QT based front-end gconfig - Update current config utilising a GTK based front-end oldconfig - Update current config utilising a provided .config as base silentoldconfig - Same as oldconfig, but quietly randconfig - New config with random answer to all options defconfig - New config with default answer to all options allmodconfig - New config selecting modules when possible allyesconfig - New config where all options are accepted with yes allnoconfig - New config where all options are answered with no For 'make defconfig' to work you have to do (which we don't need in coreinfo): $ mkdir configs; touch configs/defconfig You can also use 'make foo_defconfig' in which case kconfig will use a file called 'configs/foo_defconfig' as basis. Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de> Acked-by: Uwe Hermann <uwe@hermann-uwe.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3188 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2008-03-24 16:47:49 +01:00
else
real-all: config
Add a recent kconfig version to coreinfo, in order to make the supported features configurable later (currently unused). Store all build files and results (coreinfo.elf) in build/ now. I'm self-acking this as (though non-"trivial") it doesn't affect coreinfo in its functionality, this is more or less a "cosmetic" change to the build interface ("make" -> "make menuconfig && make"). This is a kconfig checkout from the Linux kernel (where kconfig is being actively maintained) from 03/2008. The hash identifying the last commit to kconfig is 587c90616a5b44e6ccfac38e64d4fecee51d588c. The amount of changes to kconfig itself has been kept as small as possible to keep the diff small and to ease updating/porting to newer kconfig versions. The following changes were performed on the upstream Linux kconfig: - s/kernel/coreinfo/, and s/Linux/coreinfo/ in various strings. - Consistently use the env. variable KERNELVERSION in all kconfig interfaces -- e.g. config/menuconfig/gconfig/xconfig -- as version number. - Hardcode our paths/filenames in some places (could be improved upstream). - Always write .config and build/config.h, no matter which kconfig interface is used (config/menuconfig/gconfig/xconfig). We want to include build/config.h in our code. - Adapt the kconfig Makefile for our purposes (build/ directory, rules, etc). In addition, a few items in the coreinfo Makefile are needed for this to work. This kconfig setup is successfully tested with all targets from 'make help': config - Update current config utilising a line-oriented program menuconfig - Update current config utilising a menu based program xconfig - Update current config utilising a QT based front-end gconfig - Update current config utilising a GTK based front-end oldconfig - Update current config utilising a provided .config as base silentoldconfig - Same as oldconfig, but quietly randconfig - New config with random answer to all options defconfig - New config with default answer to all options allmodconfig - New config selecting modules when possible allyesconfig - New config where all options are accepted with yes allnoconfig - New config where all options are answered with no For 'make defconfig' to work you have to do (which we don't need in coreinfo): $ mkdir configs; touch configs/defconfig You can also use 'make foo_defconfig' in which case kconfig will use a file called 'configs/foo_defconfig' as basis. Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de> Acked-by: Uwe Hermann <uwe@hermann-uwe.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3188 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2008-03-24 16:47:49 +01:00
endif
defaultbuild:
$(MAKE) olddefconfig
$(MAKE) all
ifneq ($(strip $(HAVE_LIBPAYLOAD)),)
libpayload:
printf "Found Libpayload $(LIBPAYLOAD_OBJ).\n"
else
LPOPTS=obj="$(CURDIR)/lpbuild" DOTCONFIG="$(CURDIR)/lp.config"
libpayload:
printf "Building libpayload @ $(LIBPAYLOAD_PATH).\n"
$(MAKE) -C $(LIBPAYLOAD_PATH) $(LPOPTS) distclean coreinfo_obj=$(coreinfo_obj)/libptmp
$(MAKE) -C $(LIBPAYLOAD_PATH) $(LPOPTS) defconfig KBUILD_DEFCONFIG=$(LIBPAYLOAD_CONFIG)
$(MAKE) -C $(LIBPAYLOAD_PATH) $(LPOPTS) install DESTDIR=$(coreinfo_obj)
endif
$(coreinfo_obj)/config.h:
$(MAKE) oldconfig
$(shell mkdir -p $(coreinfo_obj) $(objk)/lxdialog $(KCONFIG_SPLITCONFIG))
Add a recent kconfig version to coreinfo, in order to make the supported features configurable later (currently unused). Store all build files and results (coreinfo.elf) in build/ now. I'm self-acking this as (though non-"trivial") it doesn't affect coreinfo in its functionality, this is more or less a "cosmetic" change to the build interface ("make" -> "make menuconfig && make"). This is a kconfig checkout from the Linux kernel (where kconfig is being actively maintained) from 03/2008. The hash identifying the last commit to kconfig is 587c90616a5b44e6ccfac38e64d4fecee51d588c. The amount of changes to kconfig itself has been kept as small as possible to keep the diff small and to ease updating/porting to newer kconfig versions. The following changes were performed on the upstream Linux kconfig: - s/kernel/coreinfo/, and s/Linux/coreinfo/ in various strings. - Consistently use the env. variable KERNELVERSION in all kconfig interfaces -- e.g. config/menuconfig/gconfig/xconfig -- as version number. - Hardcode our paths/filenames in some places (could be improved upstream). - Always write .config and build/config.h, no matter which kconfig interface is used (config/menuconfig/gconfig/xconfig). We want to include build/config.h in our code. - Adapt the kconfig Makefile for our purposes (build/ directory, rules, etc). In addition, a few items in the coreinfo Makefile are needed for this to work. This kconfig setup is successfully tested with all targets from 'make help': config - Update current config utilising a line-oriented program menuconfig - Update current config utilising a menu based program xconfig - Update current config utilising a QT based front-end gconfig - Update current config utilising a GTK based front-end oldconfig - Update current config utilising a provided .config as base silentoldconfig - Same as oldconfig, but quietly randconfig - New config with random answer to all options defconfig - New config with default answer to all options allmodconfig - New config selecting modules when possible allyesconfig - New config where all options are accepted with yes allnoconfig - New config where all options are answered with no For 'make defconfig' to work you have to do (which we don't need in coreinfo): $ mkdir configs; touch configs/defconfig You can also use 'make foo_defconfig' in which case kconfig will use a file called 'configs/foo_defconfig' as basis. Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de> Acked-by: Uwe Hermann <uwe@hermann-uwe.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3188 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2008-03-24 16:47:49 +01:00
include $(srck)/Makefile
.PHONY: $(PHONY) prepare
else
clean:
rm -rf build/*.elf build/*.o .xcompile
Add a recent kconfig version to coreinfo, in order to make the supported features configurable later (currently unused). Store all build files and results (coreinfo.elf) in build/ now. I'm self-acking this as (though non-"trivial") it doesn't affect coreinfo in its functionality, this is more or less a "cosmetic" change to the build interface ("make" -> "make menuconfig && make"). This is a kconfig checkout from the Linux kernel (where kconfig is being actively maintained) from 03/2008. The hash identifying the last commit to kconfig is 587c90616a5b44e6ccfac38e64d4fecee51d588c. The amount of changes to kconfig itself has been kept as small as possible to keep the diff small and to ease updating/porting to newer kconfig versions. The following changes were performed on the upstream Linux kconfig: - s/kernel/coreinfo/, and s/Linux/coreinfo/ in various strings. - Consistently use the env. variable KERNELVERSION in all kconfig interfaces -- e.g. config/menuconfig/gconfig/xconfig -- as version number. - Hardcode our paths/filenames in some places (could be improved upstream). - Always write .config and build/config.h, no matter which kconfig interface is used (config/menuconfig/gconfig/xconfig). We want to include build/config.h in our code. - Adapt the kconfig Makefile for our purposes (build/ directory, rules, etc). In addition, a few items in the coreinfo Makefile are needed for this to work. This kconfig setup is successfully tested with all targets from 'make help': config - Update current config utilising a line-oriented program menuconfig - Update current config utilising a menu based program xconfig - Update current config utilising a QT based front-end gconfig - Update current config utilising a GTK based front-end oldconfig - Update current config utilising a provided .config as base silentoldconfig - Same as oldconfig, but quietly randconfig - New config with random answer to all options defconfig - New config with default answer to all options allmodconfig - New config selecting modules when possible allyesconfig - New config where all options are accepted with yes allnoconfig - New config where all options are answered with no For 'make defconfig' to work you have to do (which we don't need in coreinfo): $ mkdir configs; touch configs/defconfig You can also use 'make foo_defconfig' in which case kconfig will use a file called 'configs/foo_defconfig' as basis. Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de> Acked-by: Uwe Hermann <uwe@hermann-uwe.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3188 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2008-03-24 16:47:49 +01:00
distclean: clean
rm -rf build lpbuild
rm -f .config* lp.config*
.PHONY: clean distclean
endif