modutils.mk 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. #############################################################
  2. #
  3. # modutils
  4. #
  5. #############################################################
  6. MODUTILS_VERSION:=2.4.27
  7. MODUTILS_SOURCE=modutils-$(MODUTILS_VERSION).tar.bz2
  8. MODUTILS_CAT:=$(BZCAT)
  9. MODUTILS_SITE=$(BR2_KERNEL_MIRROR)/linux/utils/kernel/modutils/v2.4/
  10. MODUTILS_DIR1=$(BUILD_DIR)/modutils-$(MODUTILS_VERSION)
  11. MODUTILS_DIR2=$(TOOL_BUILD_DIR)/modutils-$(MODUTILS_VERSION)
  12. MODUTILS_BINARY=depmod
  13. MODUTILS_TARGET_BINARY=sbin/$(MODUTILS_BINARY)
  14. STRIPPROG=$(STRIPCMD)
  15. $(DL_DIR)/$(MODUTILS_SOURCE):
  16. $(call DOWNLOAD,$(MODUTILS_SITE),$(MODUTILS_SOURCE))
  17. #############################################################
  18. #
  19. # build modutils for use on the target system
  20. #
  21. #############################################################
  22. $(MODUTILS_DIR1)/.source: $(DL_DIR)/$(MODUTILS_SOURCE)
  23. $(MODUTILS_CAT) $(DL_DIR)/$(MODUTILS_SOURCE) | tar -C $(BUILD_DIR) -xvf -
  24. toolchain/patch-kernel.sh $(MODUTILS_DIR1) \
  25. package/modutils \*.patch
  26. touch $(MODUTILS_DIR1)/.source
  27. $(MODUTILS_DIR1)/.configured: $(MODUTILS_DIR1)/.source
  28. (cd $(MODUTILS_DIR1); rm -f config.cache; \
  29. $(TARGET_CONFIGURE_OPTS) \
  30. $(TARGET_CONFIGURE_ARGS) \
  31. INSTALL=$(MODUTILS_DIR1)/install-sh \
  32. ./configure \
  33. --target=$(GNU_TARGET_NAME) \
  34. --host=$(GNU_TARGET_NAME) \
  35. --build=$(GNU_HOST_NAME) \
  36. --prefix=/ \
  37. --sysconfdir=/etc \
  38. )
  39. touch $@
  40. $(MODUTILS_DIR1)/.build: $(MODUTILS_DIR1)/.configured
  41. $(MAKE1) CC=$(TARGET_CC) -C $(MODUTILS_DIR1)
  42. touch $@
  43. $(STAGING_DIR)/$(MODUTILS_TARGET_BINARY): $(MODUTILS_DIR1)/.build
  44. STRIPPROG='$(STRIPPROG)' \
  45. $(MAKE) prefix=$(STAGING_DIR) -C $(MODUTILS_DIR1) install-bin
  46. touch -c $@
  47. $(TARGET_DIR)/sbin/rmmod: $(STAGING_DIR)/$(MODUTILS_TARGET_BINARY)
  48. cp -dpf $(STAGING_DIR)/sbin/depmod $(TARGET_DIR)/sbin/depmod
  49. cp -dpf $(STAGING_DIR)/sbin/insmod $(TARGET_DIR)/sbin/insmod
  50. cp -dpf $(STAGING_DIR)/sbin/modinfo $(TARGET_DIR)/sbin/modinfo
  51. ln -s insmod $(TARGET_DIR)/sbin/kallsyms
  52. ln -s insmod $(TARGET_DIR)/sbin/ksyms
  53. ln -s insmod $(TARGET_DIR)/sbin/lsmod
  54. ln -s insmod $(TARGET_DIR)/sbin/modprobe
  55. ln -s insmod $(TARGET_DIR)/sbin/rmmod
  56. modutils: uclibc $(TARGET_DIR)/sbin/rmmod
  57. modutils-source: $(DL_DIR)/$(MODUTILS_SOURCE)
  58. modutils-clean:
  59. $(MAKE) prefix=$(TARGET_DIR)/usr -C $(MODUTILS_DIR1) uninstall
  60. -$(MAKE) -C $(MODUTILS_DIR1) clean
  61. modutils-dirclean:
  62. rm -rf $(MODUTILS_DIR1)
  63. modutils-target-clean:
  64. rm -f $(TARGET_DIR)/sbin/depmod
  65. rm -f $(TARGET_DIR)/sbin/insmod
  66. rm -f $(TARGET_DIR)/sbin/modinfo
  67. rm -f $(TARGET_DIR)/sbin/kallsyms
  68. rm -f $(TARGET_DIR)/sbin/ksyms
  69. rm -f $(TARGET_DIR)/sbin/lsmod
  70. rm -f $(TARGET_DIR)/sbin/modprobe
  71. rm -f $(TARGET_DIR)/sbin/rmmod
  72. #############################################################
  73. #
  74. # build modutils for use on the host system
  75. #
  76. #############################################################
  77. ifeq ($(BR2_mips),y)
  78. DEPMOD_EXTRA_STUFF=CFLAGS=-D__MIPSEB__
  79. endif
  80. ifeq ($(BR2_mipsel),y)
  81. DEPMOD_EXTRA_STUFF=CFLAGS=-D__MIPSEL__
  82. endif
  83. $(MODUTILS_DIR2)/.source: $(DL_DIR)/$(MODUTILS_SOURCE)
  84. $(MODUTILS_CAT) $(DL_DIR)/$(MODUTILS_SOURCE) | tar -C $(TOOL_BUILD_DIR) -xvf -
  85. toolchain/patch-kernel.sh $(MODUTILS_DIR2) \
  86. package/modutils \*.patch
  87. touch $@
  88. $(MODUTILS_DIR2)/.configured: $(MODUTILS_DIR2)/.source
  89. (cd $(MODUTILS_DIR2); \
  90. ./configure $(DEPMOD_EXTRA_STUFF) \
  91. --target=$(GNU_TARGET_NAME) \
  92. --host=$(GNU_HOST_NAME) \
  93. --build=$(GNU_HOST_NAME) \
  94. --prefix=/ \
  95. --sysconfdir=/etc \
  96. )
  97. touch $@
  98. $(MODUTILS_DIR2)/$(MODUTILS_BINARY): $(MODUTILS_DIR2)/.configured
  99. $(MAKE1) -C $(MODUTILS_DIR2)
  100. touch -c $@
  101. $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-depmod: $(MODUTILS_DIR2)/$(MODUTILS_BINARY)
  102. mkdir -p $(STAGING_DIR)/bin
  103. cp $(MODUTILS_DIR2)/$(MODUTILS_BINARY) $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-depmod
  104. touch -c $@
  105. cross-depmod: uclibc $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-depmod
  106. cross-depmod-source: $(DL_DIR)/$(MODUTILS_SOURCE)
  107. cross-depmod-clean:
  108. $(MAKE) prefix=$(TARGET_DIR)/usr -C $(MODUTILS_DIR2) uninstall
  109. -$(MAKE) -C $(MODUTILS_DIR2) clean
  110. cross-depmod-dirclean:
  111. rm -rf $(MODUTILS_DIR2)
  112. #############################################################
  113. #
  114. ## Toplevel Makefile options
  115. #
  116. ##############################################################
  117. ifeq ($(BR2_PACKAGE_MODUTILS),y)
  118. TARGETS+=modutils
  119. endif