system-linux.mk 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #############################################################
  2. #
  3. # System Linux kernel target
  4. #
  5. # This uses an existing linux kernel source tree on
  6. # your build system, and makes no effort at compiling
  7. # anything....
  8. #
  9. # You will probably want to change LINUX_SOURCE to
  10. # point to wherever you installed you kernel.
  11. #
  12. # -Erik
  13. #
  14. #############################################################
  15. ifneq ($(filter $(TARGETS),system-linux),)
  16. LINUX_SOURCE=/usr/src/linux
  17. LINUX_DIR=$(BUILD_DIR)/linux
  18. LINUX_KERNEL=$(BUILD_DIR)/buildroot-kernel
  19. # Used by pcmcia-cs and others
  20. LINUX_SOURCE_DIR=$(LINUX_SOURCE)
  21. $(LINUX_DIR)/.configured:
  22. mkdir -p $(LINUX_DIR)/include
  23. (cd $(LINUX_DIR)/include; \
  24. for i in $(LINUX_SOURCE)/include/*; do ln -sf $$i ; done; \
  25. rm -f asm; \
  26. if [ "$(ARCH)" = "powerpc" ];then \
  27. ln -fs asm-ppc asm; \
  28. elif [ "$(ARCH)" = "mips" ];then \
  29. ln -fs asm-mips asm; \
  30. elif [ "$(ARCH)" = "mipsel" ];then \
  31. ln -fs asm-mips asm; \
  32. elif [ "$(ARCH)" = "cris" ];then \
  33. ln -fs asm-cris asm; \
  34. else ln -fs asm-$(ARCH) asm; \
  35. fi)
  36. cp $(LINUX_SOURCE)/Makefile $(LINUX_DIR)/
  37. cp $(LINUX_SOURCE)/Rules.make $(LINUX_DIR)/
  38. touch $(LINUX_DIR)/.configured
  39. $(LINUX_KERNEL): $(LINUX_DIR)/.configured
  40. $(STAGING_DIR)/include/linux/version.h: $(LINUX_DIR)/.configured
  41. mkdir -p $(STAGING_DIR)/include
  42. rm -rf $(STAGING_DIR)/include/linux
  43. cp -dpa $(LINUX_DIR)/include/linux $(STAGING_DIR)/include/
  44. rm -rf $(STAGING_DIR)/include/asm
  45. mkdir -p $(STAGING_DIR)/include/asm
  46. cp -dpa $(LINUX_DIR)/include/asm/* $(STAGING_DIR)/include/asm/
  47. rm -rf $(STAGING_DIR)/include/scsi
  48. mkdir -p $(STAGING_DIR)/include/scsi
  49. cp -dpa $(LINUX_DIR)/include/scsi/* $(STAGING_DIR)/include/scsi
  50. touch -c $(STAGING_DIR)/include/linux/version.h
  51. system-linux: $(STAGING_DIR)/include/linux/version.h
  52. system-linux-clean: clean
  53. rm -f $(LINUX_KERNEL)
  54. rm -rf $(LINUX_DIR)
  55. system-linux-dirclean:
  56. rm -rf $(LINUX_DIR)
  57. endif