2
1

udev.mk 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. #############################################################
  2. #
  3. # udev
  4. #
  5. #############################################################
  6. UDEV_VERSION:=114
  7. UDEV_VOLUME_ID_CURRENT:=0
  8. UDEV_VOLUME_ID_AGE:=79
  9. UDEV_VOLUME_ID_REVISION:=0
  10. UDEV_VOLUME_ID_VERSION:=$(UDEV_VOLUME_ID_CURRENT).$(UDEV_VOLUME_ID_AGE).$(UDEV_VOLUME_ID_REVISION)
  11. UDEV_SOURCE:=udev-$(UDEV_VERSION).tar.bz2
  12. UDEV_SITE:=ftp://ftp.kernel.org/pub/linux/utils/kernel/hotplug/
  13. UDEV_CAT:=$(BZCAT)
  14. UDEV_DIR:=$(BUILD_DIR)/udev-$(UDEV_VERSION)
  15. UDEV_TARGET_BINARY:=sbin/udevd
  16. UDEV_BINARY:=udevd
  17. # 094 had _GNU_SOURCE set
  18. BR2_UDEV_CFLAGS:= -D_GNU_SOURCE $(TARGET_CFLAGS)
  19. ifeq ($(BR2_LARGEFILE),)
  20. BR2_UDEV_CFLAGS+=-U_FILE_OFFSET_BITS
  21. endif
  22. # UDEV_ROOT is /dev so we can replace devfs, not /udev for experiments
  23. UDEV_ROOT:=/dev
  24. $(DL_DIR)/$(UDEV_SOURCE):
  25. $(WGET) -P $(DL_DIR) $(UDEV_SITE)/$(UDEV_SOURCE)
  26. $(UDEV_DIR)/.unpacked: $(DL_DIR)/$(UDEV_SOURCE)
  27. $(UDEV_CAT) $(DL_DIR)/$(UDEV_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
  28. toolchain/patch-kernel.sh $(UDEV_DIR) package/udev \*.patch
  29. touch $@
  30. $(UDEV_DIR)/$(UDEV_BINARY): $(UDEV_DIR)/.unpacked
  31. $(MAKE) CROSS_COMPILE=$(TARGET_CROSS) CC=$(TARGET_CC) LD=$(TARGET_CC)\
  32. CFLAGS="$(BR2_UDEV_CFLAGS)" \
  33. USE_LOG=false USE_SELINUX=false \
  34. udevdir=$(UDEV_ROOT) -C $(UDEV_DIR)
  35. touch -c $@
  36. $(TARGET_DIR)/$(UDEV_TARGET_BINARY): $(UDEV_DIR)/$(UDEV_BINARY)
  37. mkdir -p $(TARGET_DIR)/sys
  38. $(MAKE) $(TARGET_CONFIGURE_OPTS) \
  39. DESTDIR=$(TARGET_DIR) \
  40. CFLAGS="$(BR2_UDEV_CFLAGS)" \
  41. LDFLAGS="-warn-common" \
  42. USE_LOG=false USE_SELINUX=false \
  43. udevdir=$(UDEV_ROOT) -C $(UDEV_DIR) install
  44. $(UDEV_DIR)/.target_install: $(UDEV_DIR)/$(UDEV_BINARY)
  45. $(INSTALL) -m 0755 package/udev/S10udev $(TARGET_DIR)/etc/init.d
  46. $(INSTALL) -m 0644 $(UDEV_DIR)/etc/udev/frugalware/* $(TARGET_DIR)/etc/udev/rules.d
  47. ( grep udev_root $(TARGET_DIR)/etc/udev/udev.conf > /dev/null 2>&1 || echo 'udev_root=/dev' >> $(TARGET_DIR)/etc/udev/udev.conf )
  48. install -m 0755 -D $(UDEV_DIR)/udevstart $(TARGET_DIR)/sbin/udevstart
  49. rm -rf $(TARGET_DIR)/usr/share/man
  50. ifneq ($(strip $(BR2_PACKAGE_UDEV_UTILS)),y)
  51. rm -f $(TARGET_DIR)/usr/sbin/udevmonitor
  52. rm -f $(TARGET_DIR)/usr/bin/udevinfo
  53. rm -f $(TARGET_DIR)/usr/bin/udevtest
  54. endif
  55. touch $@
  56. #####################################################################
  57. .PHONY: udev-source udev udev-clean udev-dirclean
  58. udev: uclibc $(TARGET_DIR)/$(UDEV_TARGET_BINARY) $(UDEV_DIR)/.target_install
  59. udev-source: $(DL_DIR)/$(UDEV_SOURCE)
  60. udev-clean: $(UDEV_CLEAN_DEPS)
  61. rm -f $(TARGET_DIR)/etc/init.d/S10udev $(TARGET_DIR)/sbin/udev*
  62. rm -f $(TARGET_DIR)/usr/sbin/udevmonitor $(TARGET_DIR)/usr/bin/udev*
  63. rm -fr $(TARGET_DIR)/sys
  64. -$(MAKE) -C $(UDEV_DIR) clean
  65. udev-dirclean: $(UDEV_DIRCLEAN_DEPS)
  66. rm -rf $(UDEV_DIR)
  67. #####################################################################
  68. ifeq ($(strip $(BR2_PACKAGE_UDEV_VOLUME_ID)),y)
  69. .PHONY: udev-volume_id udev-volume_id-clean udev-volume_id-dirclean
  70. $(STAGING_DIR)/usr/lib/libvolume_id.so.$(UDEV_VOLUME_ID_VERSION):
  71. $(MAKE) CROSS_COMPILE=$(TARGET_CROSS) \
  72. USE_LOG=false USE_SELINUX=false \
  73. udevdir=$(UDEV_ROOT) EXTRAS="extras/volume_id" -C $(UDEV_DIR)
  74. $(INSTALL) -m 0644 -D $(UDEV_DIR)/extras/volume_id/lib/libvolume_id.h $(STAGING_DIR)/usr/include/libvolume_id.h
  75. $(INSTALL) -m 0755 -D $(UDEV_DIR)/extras/volume_id/lib/libvolume_id.so.$(UDEV_VOLUME_ID_VERSION) $(STAGING_DIR)/usr/lib/libvolume_id.so.$(UDEV_VOLUME_ID_VERSION)
  76. -ln -sf libvolume_id.so.$(UDEV_VOLUME_ID_VERSION) $(STAGING_DIR)/usr/lib/libvolume_id.so.0
  77. -ln -sf libvolume_id.so.$(UDEV_VOLUME_ID_VERSION) $(STAGING_DIR)/usr/lib/libvolume_id.so
  78. $(STAGING_DIR)/usr/lib/libvolume_id.la: $(STAGING_DIR)/usr/lib/libvolume_id.so.$(UDEV_VOLUME_ID_VERSION)
  79. $(INSTALL) -m 0755 -D package/udev/libvolume_id.la.tmpl $(STAGING_DIR)/usr/lib/libvolume_id.la
  80. $(SED) 's/REPLACE_CURRENT/$(UDEV_VOLUME_ID_CURRENT)/g' $(STAGING_DIR)/usr/lib/libvolume_id.la
  81. $(SED) 's/REPLACE_AGE/$(UDEV_VOLUME_ID_AGE)/g' $(STAGING_DIR)/usr/lib/libvolume_id.la
  82. $(SED) 's/REPLACE_REVISION/$(UDEV_VOLUME_ID_REVISION)/g' $(STAGING_DIR)/usr/lib/libvolume_id.la
  83. $(SED) 's,REPLACE_LIB_DIR,$(STAGING_DIR)/usr/lib,g' $(STAGING_DIR)/usr/lib/libvolume_id.la
  84. $(TARGET_DIR)/lib/udev/vol_id: $(STAGING_DIR)/usr/lib/libvolume_id.la
  85. $(INSTALL) -m 0755 -D $(UDEV_DIR)/extras/volume_id/lib/libvolume_id.so.$(UDEV_VOLUME_ID_VERSION) $(TARGET_DIR)/usr/lib/libvolume_id.so.$(UDEV_VOLUME_ID_VERSION)
  86. -ln -sf libvolume_id.so.$(UDEV_VOLUME_ID_VERSION) $(TARGET_DIR)/usr/lib/libvolume_id.so.0
  87. -ln -sf libvolume_id.so.$(UDEV_VOLUME_ID_VERSION) $(TARGET_DIR)/usr/lib/libvolume_id.so
  88. $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libvolume_id.so.$(UDEV_VOLUME_ID_VERSION)
  89. $(INSTALL) -m 0755 -D $(UDEV_DIR)/extras/volume_id/vol_id $(TARGET_DIR)/lib/udev/vol_id
  90. udev-volume_id: udev $(TARGET_DIR)/lib/udev/vol_id
  91. udev-volume_id-clean:
  92. rm -f $(STAGING_DIR)/usr/include/libvolume_id.h
  93. rm -f $(STAGING_DIR)/usr/lib/libvolume_id.so*
  94. rm -f $(STAGING_DIR)/usr/lib/libvolume_id.la
  95. rm -f $(TARGET_DIR)/usr/lib/libvolume_id.so.0*
  96. rm -f $(TARGET_DIR)/lib/udev/vol_id
  97. rmdir --ignore-fail-on-non-empty $(TARGET_DIR)/lib/udev
  98. udev-volume_id-dirclean:
  99. -$(MAKE) EXTRAS="extras/volume_id" -C $(UDEV_DIR) clean
  100. UDEV_CLEAN_DEPS+=udev-volume_id-clean
  101. UDEV_DIRCLEAN_DEPS+=udev-volume_id-dirclean
  102. endif
  103. #####################################################################
  104. ifeq ($(strip $(BR2_PACKAGE_UDEV_SCSI_ID)),y)
  105. .PHONY: udev-scsi_id udev-scsi_id-clean udev-scsi_id-dirclean
  106. $(TARGET_DIR)/lib/udev/scsi_id: $(STAGING_DIR)/usr/lib/libvolume_id.so.$(UDEV_VOLUME_ID_VERSION)
  107. $(MAKE) CROSS_COMPILE=$(TARGET_CROSS) \
  108. USE_LOG=false USE_SELINUX=false \
  109. udevdir=$(UDEV_ROOT) EXTRAS="extras/scsi_id" -C $(UDEV_DIR)
  110. $(INSTALL) -m 0755 -D $(UDEV_DIR)/extras/scsi_id/scsi_id $(TARGET_DIR)/lib/udev/scsi_id
  111. $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/lib/udev/scsi_id
  112. $(TARGET_DIR)/lib/udev/usb_id: $(STAGING_DIR)/usr/lib/libvolume_id.so.$(UDEV_VOLUME_ID_VERSION)
  113. $(MAKE) CROSS_COMPILE=$(TARGET_CROSS) \
  114. USE_LOG=false USE_SELINUX=false \
  115. udevdir=$(UDEV_ROOT) EXTRAS="extras/usb_id" -C $(UDEV_DIR)
  116. $(INSTALL) -m 0755 -D $(UDEV_DIR)/extras/usb_id/usb_id $(TARGET_DIR)/lib/udev/usb_id
  117. $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/lib/udev/usb_id
  118. udev-scsi_id: udev $(TARGET_DIR)/lib/udev/scsi_id $(TARGET_DIR)/lib/udev/usb_id
  119. udev-scsi_id-clean:
  120. rm -f $(TARGET_DIR)/lib/udev/scsi_id
  121. rm -f $(TARGET_DIR)/lib/udev/usb_id
  122. rmdir --ignore-fail-on-non-empty $(TARGET_DIR)/lib/udev
  123. udev-scsi_id-dirclean:
  124. -$(MAKE) EXTRAS="extras/scsi_id" -C $(UDEV_DIR) clean
  125. UDEV_CLEAN_DEPS+=udev-scsi_id-clean
  126. UDEV_DIRCLEAN_DEPS+=udev-scsi_id-dirclean
  127. endif
  128. #############################################################
  129. #
  130. # Toplevel Makefile options
  131. #
  132. #############################################################
  133. ifeq ($(strip $(BR2_PACKAGE_UDEV)),y)
  134. TARGETS+=udev
  135. endif
  136. ifeq ($(strip $(BR2_PACKAGE_UDEV_VOLUME_ID)),y)
  137. TARGETS+=udev-volume_id
  138. endif
  139. ifeq ($(strip $(BR2_PACKAGE_UDEV_SCSI_ID)),y)
  140. TARGETS+=udev-scsi_id
  141. endif