63 lines
2.3 KiB
Makefile
63 lines
2.3 KiB
Makefile
## SPDX-License-Identifier: GPL-2.0-only
|
|
|
|
SHELL := /bin/sh
|
|
|
|
OBJCOPY:=$(CONFIG_LINUXBOOT_CROSS_COMPILE)objcopy
|
|
KERNEL_MAKE_FLAGS = \
|
|
CROSS_COMPILE=$(CONFIG_LINUXBOOT_CROSS_COMPILE) \
|
|
ARCH=$(LINUX_ARCH-y) \
|
|
KBUILD_BUILD_USER="coreboot" \
|
|
KBUILD_BUILD_HOST="reproducible" \
|
|
KBUILD_BUILD_TIMESTAMP="$(shell perl -e 'print scalar gmtime($(SOURCE_DATE_EPOCH))')" \
|
|
KBUILD_BUILD_VERSION="0"
|
|
|
|
kernel_version = $(CONFIG_LINUXBOOT_KERNEL_VERSION)
|
|
kernel_dir = build/kernel-$(subst .,_,$(kernel_version))
|
|
kernel_tarball = linux-$(kernel_version).tar
|
|
kernel_mirror = https://mirrors.edge.kernel.org/pub/linux/kernel
|
|
|
|
ifeq ($(findstring x2.6.,x$(kernel_version)),x2.6.)
|
|
kernel_mirror_path := $(kernel_mirror)/v2.6
|
|
else ifeq ($(findstring x3.,x$(kernel_version)),x3.)
|
|
kernel_mirror_path := $(kernel_mirror)/v3.x
|
|
else ifeq ($(findstring x4.,x$(kernel_version)),x4.)
|
|
kernel_mirror_path := $(kernel_mirror)/v4.x
|
|
else ifeq ($(findstring x5.,x$(kernel_version)),x5.)
|
|
kernel_mirror_path := $(kernel_mirror)/v5.x
|
|
else ifeq ($(findstring x6.,x$(kernel_version)),x6.)
|
|
kernel_mirror_path := $(kernel_mirror)/v6.x
|
|
endif
|
|
|
|
build/$(kernel_tarball).xz:
|
|
echo " Test $(kernel_version)"
|
|
echo " WWW $(kernel_mirror_path)/$(kernel_tarball).xz";
|
|
curl -OLSs --output-dir build "$(kernel_mirror_path)/$(kernel_tarball).xz";
|
|
|
|
$(kernel_dir): build/$(kernel_tarball).xz
|
|
echo " XZ $(kernel_tarball).xz";
|
|
mkdir $(kernel_dir);
|
|
tar xJf build/$(kernel_tarball).xz --strip 1 -C $(kernel_dir);
|
|
|
|
$(kernel_dir)/.config: $(CONFIG_LINUXBOOT_KERNEL_CONFIGFILE) | $(kernel_dir)
|
|
@echo " CONFIG Linux $(kernel_version)"
|
|
cp $(CONFIG_LINUXBOOT_KERNEL_CONFIGFILE) $(kernel_dir)/.config
|
|
$(MAKE) -C $(kernel_dir) $(KERNEL_MAKE_FLAGS) olddefconfig
|
|
|
|
$(kernel_dir)/vmlinux : $(kernel_dir)/.config | $(kernel_dir)
|
|
@echo " MAKE Linux $(kernel_version)"
|
|
echo "$(MAKE) -j 4 -C $(kernel_dir) $(KERNEL_MAKE_FLAGS) vmlinux"
|
|
$(MAKE) -j 4 -C $(kernel_dir) $(KERNEL_MAKE_FLAGS) vmlinux
|
|
|
|
build/vmlinux.bin: $(kernel_dir)/vmlinux | build
|
|
$(OBJCOPY) -O binary $< $@
|
|
|
|
build/vmlinux.bin.lzma: build/vmlinux.bin
|
|
xz -c -k -f --format=lzma --lzma1=dict=1MiB,lc=3,lp=0,pb=3 $< > $@
|
|
|
|
$(kernel_dir)/arch/x86/boot/bzImage: $(kernel_dir)/.config
|
|
@echo " MAKE Linux $(kernel_version)"
|
|
echo "$(MAKE) -C $(kernel_dir) $(KERNEL_MAKE_FLAGS) bzImage"
|
|
$(MAKE) -C $(kernel_dir) $(KERNEL_MAKE_FLAGS) bzImage
|
|
|
|
.PHONY: kernel
|