makefile 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  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 := $(KERNEL_SOURCES)/linux-libre-$(KVER)-gnu.tar.lz
  14. KERNEL_TAR_SIGNATURE := $(KERNEL_TAR).sign
  15. KERNEL_BUILT := $(PRAWNOS_KERNEL_BUILD)/vmlinux.kpart
  16. ATH9K_TAR := $(KERNEL_SOURCES)/open-ath9k-htc-firmware.tar.gz
  17. ATH9K := open-ath9k-htc-firmware
  18. ### PHONY TARGETS
  19. .PHONY: kernel
  20. kernel: $(KERNEL_BUILT)
  21. .PHONY: ath9k
  22. ath9k: extract_ath9k
  23. $(PRAWNOS_KERNEL_SCRIPTS_BUILD_ATH9K) $(PRAWNOS_ATH9K_BUILD)
  24. .PHONY: patch_kernel
  25. patch_kernel: $(KERNEL_PATCHED)
  26. .PHONY: extract_kernel
  27. extract_kernel: $(KERNEL_EXTRACTED)
  28. .PHONY: extract_ath9k
  29. extract_ath9k: $(ATH9K_EXTRACTED)
  30. .PHONY: package_kernel
  31. packages: kernel
  32. @echo TODO
  33. ### CLEAN TARGETS
  34. .PHONY: clean_kernel
  35. clean_kernel:
  36. rm -rf $(PRAWNOS_KERNEL_BUILD)
  37. .PHONY: clean_ath9k
  38. clean_ath9k:
  39. rm -rf $(PRAWNOS_ATH9K_BUILD)
  40. ### DEVELOPER TARGETS
  41. .PHONY: update_ath9k_tar
  42. update_ath9k_tar:
  43. mkdir -p tmp/$(ATH9K)
  44. git clone --depth 1 https://github.com/qca/open-ath9k-htc-firmware.git tmp/$(ATH9K)
  45. cd tmp && tar czvf $(ATH9K_SOURCE) $(ATH9K)
  46. rm -rf tmp/
  47. .PHONY: update_kernel_sig
  48. update_kernel_sig:
  49. wget https://www.linux-libre.fsfla.org/pub/linux-libre/releases/$(KVER)-gnu/linux-libre-$(KVER)-gnu.tar.lz.sign -O $(KERNEL_TAR_SIGNATURE)
  50. ### REAL TARGETS
  51. $(KERNEL_EXTRACTED): $(PRAWNOS_BUILD)
  52. wget https://www.linux-libre.fsfla.org/pub/linux-libre/releases/$(KVER)-gnu/linux-libre-$(KVER)-gnu.tar.lz -O $(KERNEL_TAR)
  53. gpg --import $(KERNEL_RESOURCES)/linux-libre-signing-key.gpg
  54. gpg --verify $(KERNEL_TAR_SIGNATURE) $(KERNEL_TAR)
  55. tar --lzip -xvf $(KERNEL_TAR) -C $(PRAWNOS_BUILD)
  56. touch $(KERNEL_EXTRACTED)
  57. $(ATH9K_EXTRACTED): $(PRAWNOS_BUILD)
  58. tar -xvf $(ATH9K_TAR) -C $(PRAWNOS_BUILD)
  59. touch $(ATH9K_EXTRACTED)
  60. $(KERNEL_PATCHED): $(KERNEL_EXTRACTED)
  61. @echo $(PRAWNOS_KERNEL_BUILD)
  62. $(PRAWNOS_KERNEL_SCRIPTS_PATCH) $(KVER) $(KERNEL_PATCHES) $(PRAWNOS_KERNEL_BUILD)
  63. touch $(KERNEL_PATCHED)
  64. $(KERNEL_BUILT): $(KERNEL_EXTRACTED) $(KERNEL_PATCHED) ath9k
  65. make -C $(PRAWNOS_INITRAMFS)
  66. $(PRAWNOS_KERNEL_SCRIPTS_BUILD) $(KVER) $(KERNEL_RESOURCES) $(PRAWNOS_KERNEL_BUILD) $(PRAWNOS_INITRAMFS_IMAGE)
  67. endif