makefile 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. ifndef KERNEL_MK
  2. KERNEL_MK := 1
  3. ifndef PRAWNOS_ROOT
  4. PRAWNOS_ROOT := $(shell git rev-parse --show-toplevel)
  5. endif
  6. include $(PRAWNOS_ROOT)/scripts/BuildScripts/BuildCommon.mk
  7. KERNEL_PATCHED := $(PRAWNOS_KERNEL_BUILD)/.kernel_patched
  8. KERNEL_EXTRACTED := $(PRAWNOS_KERNEL_BUILD)/.kernel_extracted
  9. ATH9K_EXTRACTED := $(PRAWNOS_ATH9K_BUILD)/.ath9k_extracted
  10. KERNEL_RESOURCES := $(PRAWNOS_KERNEL)/resources
  11. KERNEL_SOURCES := $(PRAWNOS_KERNEL)/sources
  12. KERNEL_PATCHES := $(PRAWNOS_KERNEL)/patches
  13. KERNEL_TAR_XZ := $(KERNEL_SOURCES)/linux-$(KVER).tar.xz
  14. KERNEL_TAR := $(KERNEL_SOURCES)/linux-$(KVER).tar
  15. KERNEL_TAR_SIGNATURE := $(KERNEL_SOURCES)/linux-$(KVER).tar.sign
  16. KERNEL_BUILT := $(PRAWNOS_KERNEL_BUILD)/vmlinux.kpart
  17. KERNEL_BUILD_LOG := $(PRAWNOS_BUILD_LOGS)/kernel-log.txt
  18. ATH9K_TAR := $(KERNEL_SOURCES)/open-ath9k-htc-firmware.tar.gz
  19. ATH9K := open-ath9k-htc-firmware
  20. ATH9K_BUILT := $(PRAWNOS_ATH9K_BUILD)/target_firmware/htc_9271.fw
  21. ### PHONY TARGETS
  22. .PHONY: kernel
  23. kernel: $(KERNEL_BUILT)
  24. .PHONY: ath9k
  25. ath9k: $(ATH9K_BUILT)
  26. .PHONY: patch_kernel
  27. patch_kernel: $(KERNEL_PATCHED)
  28. .PHONY: extract_kernel
  29. extract_kernel: $(KERNEL_EXTRACTED)
  30. .PHONY: extract_ath9k
  31. extract_ath9k: $(ATH9K_EXTRACTED)
  32. .PHONY: package_kernel
  33. packages: kernel
  34. @echo TODO
  35. ### CLEAN TARGETS
  36. .PHONY: clean_kernel
  37. clean_kernel:
  38. rm -rf $(PRAWNOS_KERNEL_BUILD)
  39. .PHONY: clean_ath9k
  40. clean_ath9k:
  41. rm -rf $(PRAWNOS_ATH9K_BUILD)
  42. ### DEVELOPER TARGETS
  43. .PHONY: update_ath9k_tar
  44. update_ath9k_tar:
  45. mkdir -p tmp/$(ATH9K)
  46. git clone --depth 1 https://github.com/qca/open-ath9k-htc-firmware.git tmp/$(ATH9K)
  47. cd tmp && tar czvf $(ATH9K_SOURCE) $(ATH9K)
  48. rm -rf tmp/
  49. .PHONY: update_kernel_sig
  50. update_kernel_sig:
  51. wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-$(KVER).tar.sign -O $(KERNEL_TAR_SIGNATURE)
  52. #wget https://www.linux-libre.fsfla.org/pub/linux-libre/releases/$(KVER)-gnu/linux-libre-$(KVER)-gnu.tar.lz.sign -O $(KERNEL_TAR_SIGNATURE)
  53. ### REAL TARGETS
  54. $(KERNEL_EXTRACTED): $(PRAWNOS_BUILD)
  55. wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-$(KVER).tar.xz -O $(KERNEL_TAR_XZ)
  56. wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-$(KVER).tar.sign -O $(KERNEL_TAR_SIGNATURE)
  57. unxz --force $(KERNEL_TAR_XZ)
  58. #wget https://www.linux-libre.fsfla.org/pub/linux-libre/releases/$(KVER)-gnu/linux-libre-$(KVER)-gnu.tar.lz -O $(KERNEL_TAR)
  59. gpg2 --recv-keys 0x647F28654894E3BD457199BE38DBBDC86092693E 0xABAF11C65A2970B130ABE3C479BE3E4300411886
  60. #gpg2 --import $(KERNEL_RESOURCES)/linux-libre-signing-key.gpg
  61. gpg2 --verify $(KERNEL_TAR_SIGNATURE) $(KERNEL_TAR)
  62. tar -xvf $(KERNEL_TAR) -C $(PRAWNOS_BUILD)
  63. touch $(KERNEL_EXTRACTED)
  64. $(ATH9K_EXTRACTED): $(PRAWNOS_BUILD)
  65. tar -xvf $(ATH9K_TAR) -C $(PRAWNOS_BUILD)
  66. touch $(ATH9K_EXTRACTED)
  67. $(KERNEL_PATCHED): $(KERNEL_EXTRACTED)
  68. @echo $(PRAWNOS_KERNEL_BUILD)
  69. $(PRAWNOS_KERNEL_SCRIPTS_PATCH) $(KVER) $(KERNEL_PATCHES) $(PRAWNOS_KERNEL_BUILD)
  70. touch $(KERNEL_PATCHED)
  71. $(ATH9K_BUILT): $(ATH9K_EXTRACTED)
  72. $(PRAWNOS_KERNEL_SCRIPTS_BUILD_ATH9K) $(PRAWNOS_ATH9K_BUILD)
  73. $(KERNEL_BUILT): $(KERNEL_EXTRACTED) $(KERNEL_PATCHED) $(ATH9K_BUILT)
  74. make -C $(PRAWNOS_INITRAMFS)
  75. rm -rf $(KERNEL_BUILD_LOG)
  76. $(PRAWNOS_KERNEL_SCRIPTS_BUILD) $(KVER) $(KERNEL_RESOURCES) $(PRAWNOS_KERNEL_BUILD) $(PRAWNOS_INITRAMFS_IMAGE) 2>&1 | tee $(KERNEL_BUILD_LOG)
  77. endif