Moved kernel build out of world and into kernel subdir

Target for kernel build is once again buildkernel
This commit is contained in:
Nathan Fisher 2021-03-21 01:01:32 -04:00
parent f188741759
commit 3bc654a914
15 changed files with 22 additions and 7944 deletions

77
kernel/Makefile Normal file
View file

@ -0,0 +1,77 @@
# Makefile - hhl - /usr/src/world/linux-mainline
# Copyright 2020 Nathan Fisher <nfisher.sr@gmail.com>
#
distname = linux
default_goal = installkernel
include world.mk
srcdir = $(basedir)/build/src-world-$(arch)/linux-$(linux_version)
objdir = $(basedir)/build/obj-world-$(arch)/linux-$(linux_version)
config ?= $(wkgdir)/config-$(arch)-$(linux_version).config
ifeq ($(filter x86_64 i486 i586 i686 i786, $(arch)), $(arch))
_arch = x86
image = bzImage
else ifeq ($(arch), armv7l)
_arch = arm
image = zImage
else
image = Image.gz
endif
ifeq ($(arch), aarch64)
_arch = arm64
else ifeq ($(arch), riscv64)
_arch = riscv
endif
installkernel: $(objdir)/.installed
buildkernel: $(objdir)/.built
$(objdir)/.mrproper: $(srcdir)/.dirstamp | $(objdir)
$(MAKE) -C ${srcdir} mrproper
touch $@
$(objdir)/.config: $(objdir)/.mrproper
$(info $(grn)=== Applying default kernel config ===$(reset))
cat ${config} > $(objdir)/.config
KBUILD_OUTPUT=$(objdir) $(MAKE) -C $(srcdir) ARCH=$(_arch) CROSS_COMPILE=$(tgt)- olddefconfig
menuconfig: $(objdir)/.mrproper
$(info $(grn)=== Applying default kernel config ===$(reset))
cat ${config} > $(objdir)/.config
KBUILD_OUTPUT=$(objdir) $(MAKE) -C $(srcdir) ARCH=$(_arch) CROSS_COMPILE=$(tgt)- olddefconfig
KBUILD_OUTPUT=$(objdir) $(MAKE) -C $(srcdir) ARCH=$(_arch) CROSS_COMPILE=$(tgt)- menuconfig
$(objdir)/.built: $(objdir)/.config
$(info $(grn)=== Building Linux kernel ===$(reset))
KBUILD_OUTPUT=$(objdir) $(MAKE) $(makeflags) ARCH=$(_arch) CROSS_COMPILE=$(tgt)- -C $(srcdir)
touch $@
$(objdir)/.modules_installed: $(objdir)/.built
$(info $(grn)=== Installing kernel modules ===$(reset))
KBUILD_OUTPUT=$(objdir) INSTALL_MOD_PATH=$(DESTDIR) $(MAKE) -C $(srcdir) modules_install
touch $@
$(objdir)/.docs_installed: $(objdir)/.built
$(info $(grn)=== Installing kernel documentation ===$(reset))
install -d $(docdir)/linux-$(linux_version)
cp -r $(srcdir)/Documentation/* $(docdir)/linux-$(linux_version)
touch $@
$(objdir)/.installed: $(objdir)/.modules_installed $(objdir)/.docs_installed
$(info $(grn)=== Installing kernel ===$(reset))
install -m644 $(objdir)/arch/$(_arch)/boot/$(image) $(DESTDIR)/boot/vmlinuz-$(linux_version)-$(os_abbrev)-$(os_version)
install -m644 $(objdir)/System.map $(DESTDIR)/boot/System.map-$(linux_version)
install -m644 $(objdir)/.config $(DESTDIR)/boot/config-$(linux_version)
touch $@
$(objdir):
install -d ${objdir}
$(srcdir)/.dirstamp:
$(info $(grn)=== Extracting $(distlocal) ===$(reset))
tar -xf $(distlocal) -C $(basedir)/build/src-world
touch $@
.PHONY: buildkernel installkernel

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff