kernel_linux.mk 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. # SPDX-License-Identifier: GPL-2.0
  2. $(linux_wrkdir)/.config: $(linux_defconfig) $(linux_srcdir)
  3. mkdir -p $(dir $@)
  4. cp -p $< $@
  5. $(MAKE) -C $(linux_srcdir) O=$(linux_wrkdir) ARCH=riscv CROSS_COMPILE=$(CROSS_COMPILE) olddefconfig
  6. ifeq (,$(filter rv%c,$(ISA)))
  7. sed 's/^.*CONFIG_RISCV_ISA_C.*$$/CONFIG_RISCV_ISA_C=n/' -i $@
  8. $(MAKE) -C $(linux_srcdir) O=$(linux_wrkdir) ARCH=riscv CROSS_COMPILE=$(CROSS_COMPILE) olddefconfig
  9. endif
  10. ifeq ($(ISA),$(filter rv32%,$(ISA)))
  11. sed 's/^.*CONFIG_ARCH_RV32I.*$$/CONFIG_ARCH_RV32I=y/' -i $@
  12. sed 's/^.*CONFIG_ARCH_RV64I.*$$/CONFIG_ARCH_RV64I=n/' -i $@
  13. $(MAKE) -C $(linux_srcdir) O=$(linux_wrkdir) ARCH=riscv CROSS_COMPILE=$(CROSS_COMPILE) olddefconfig
  14. endif
  15. $(vmlinux): $(linux_srcdir) $(linux_wrkdir)/.config $(target_gcc) $(buildroot_initramfs_sysroot)
  16. $(MAKE) -C $< O=$(linux_wrkdir) \
  17. ARCH=riscv \
  18. CROSS_COMPILE=$(CROSS_COMPILE) \
  19. PATH=$(RVPATH) \
  20. vmlinux \
  21. all \
  22. modules
  23. $(MAKE) -C $< O=$(linux_wrkdir) \
  24. ARCH=riscv \
  25. CROSS_COMPILE=$(CROSS_COMPILE) \
  26. PATH=$(RVPATH) \
  27. INSTALL_MOD_PATH=$(buildroot_initramfs_sysroot) \
  28. modules_install
  29. $(vmlinux_stripped): $(vmlinux)
  30. PATH=$(RVPATH) $(target)-strip -o $@ $<
  31. $(vmlinux_bin): $(vmlinux)
  32. PATH=$(RVPATH) $(target)-objcopy -O binary $< $@
  33. .PHONY: linux-menuconfig
  34. linux-menuconfig: $(linux_wrkdir)/.config
  35. $(MAKE) -C $(linux_srcdir) O=$(dir $<) ARCH=riscv CROSS_COMPILE=$(CROSS_COMPILE) menuconfig
  36. $(MAKE) -C $(linux_srcdir) O=$(dir $<) ARCH=riscv CROSS_COMPILE=$(CROSS_COMPILE) savedefconfig
  37. cp $(dir $<)defconfig $(linux_defconfig)