udev.mk 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  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:=$(BR2_KERNEL_MIRROR)/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. $(call DOWNLOAD,$(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. $(INSTALL) -m 0755 package/udev/S10udev $(TARGET_DIR)/etc/init.d
  45. $(INSTALL) -m 0644 $(UDEV_DIR)/etc/udev/frugalware/* $(TARGET_DIR)/etc/udev/rules.d
  46. ( grep udev_root $(TARGET_DIR)/etc/udev/udev.conf > /dev/null 2>&1 || echo 'udev_root=/dev' >> $(TARGET_DIR)/etc/udev/udev.conf )
  47. install -m 0755 -D $(UDEV_DIR)/udevstart $(TARGET_DIR)/sbin/udevstart
  48. rm -rf $(TARGET_DIR)/usr/share/man
  49. ifneq ($(BR2_PACKAGE_UDEV_UTILS),y)
  50. rm -f $(TARGET_DIR)/usr/sbin/udevmonitor
  51. rm -f $(TARGET_DIR)/usr/bin/udevinfo
  52. rm -f $(TARGET_DIR)/usr/bin/udevtest
  53. endif
  54. #####################################################################
  55. .PHONY: udev-source udev udev-clean udev-dirclean
  56. udev: uclibc $(TARGET_DIR)/$(UDEV_TARGET_BINARY)
  57. udev-source: $(DL_DIR)/$(UDEV_SOURCE)
  58. udev-clean: $(UDEV_CLEAN_DEPS)
  59. rm -f $(TARGET_DIR)/etc/init.d/S10udev $(TARGET_DIR)/sbin/udev*
  60. rm -f $(TARGET_DIR)/usr/sbin/udevmonitor $(TARGET_DIR)/usr/bin/udev*
  61. rm -fr $(TARGET_DIR)/sys
  62. -$(MAKE) -C $(UDEV_DIR) clean
  63. udev-dirclean: $(UDEV_DIRCLEAN_DEPS)
  64. rm -rf $(UDEV_DIR)
  65. #####################################################################
  66. ifeq ($(BR2_PACKAGE_UDEV_VOLUME_ID),y)
  67. .PHONY: udev-volume_id udev-volume_id-clean udev-volume_id-dirclean
  68. $(STAGING_DIR)/usr/lib/libvolume_id.so.$(UDEV_VOLUME_ID_VERSION):
  69. $(MAKE) CROSS_COMPILE=$(TARGET_CROSS) \
  70. CFLAGS="$(BR2_UDEV_CFLAGS)" \
  71. USE_LOG=false USE_SELINUX=false \
  72. udevdir=$(UDEV_ROOT) EXTRAS="extras/volume_id" -C $(UDEV_DIR)
  73. $(INSTALL) -m 0644 -D $(UDEV_DIR)/extras/volume_id/lib/libvolume_id.h $(STAGING_DIR)/usr/include/libvolume_id.h
  74. $(INSTALL) -m 0755 -D $(UDEV_DIR)/extras/volume_id/lib/libvolume_id.so.$(UDEV_VOLUME_ID_VERSION) $@
  75. -ln -sf libvolume_id.so.$(UDEV_VOLUME_ID_VERSION) $(STAGING_DIR)/usr/lib/libvolume_id.so.0
  76. -ln -sf libvolume_id.so.$(UDEV_VOLUME_ID_VERSION) $(STAGING_DIR)/usr/lib/libvolume_id.so
  77. $(STAGING_DIR)/usr/lib/libvolume_id.la: $(STAGING_DIR)/usr/lib/libvolume_id.so.$(UDEV_VOLUME_ID_VERSION)
  78. $(INSTALL) -m 0755 -D package/udev/libvolume_id.la.tmpl $@
  79. $(SED) 's/REPLACE_CURRENT/$(UDEV_VOLUME_ID_CURRENT)/g' $@
  80. $(SED) 's/REPLACE_AGE/$(UDEV_VOLUME_ID_AGE)/g' $@
  81. $(SED) 's/REPLACE_REVISION/$(UDEV_VOLUME_ID_REVISION)/g' $@
  82. $(SED) 's,REPLACE_LIB_DIR,$(STAGING_DIR)/usr/lib,g' $@
  83. $(TARGET_DIR)/lib/udev/vol_id: $(STAGING_DIR)/usr/lib/libvolume_id.la
  84. $(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)
  85. -ln -sf libvolume_id.so.$(UDEV_VOLUME_ID_VERSION) $(TARGET_DIR)/usr/lib/libvolume_id.so.0
  86. -ln -sf libvolume_id.so.$(UDEV_VOLUME_ID_VERSION) $(TARGET_DIR)/usr/lib/libvolume_id.so
  87. $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libvolume_id.so.$(UDEV_VOLUME_ID_VERSION)
  88. $(INSTALL) -m 0755 -D $(UDEV_DIR)/extras/volume_id/vol_id $@
  89. udev-volume_id: udev $(TARGET_DIR)/lib/udev/vol_id
  90. udev-volume_id-clean:
  91. rm -f $(STAGING_DIR)/usr/include/libvolume_id.h
  92. rm -f $(STAGING_DIR)/usr/lib/libvolume_id.so*
  93. rm -f $(STAGING_DIR)/usr/lib/libvolume_id.la
  94. rm -f $(TARGET_DIR)/usr/lib/libvolume_id.so.0*
  95. rm -f $(TARGET_DIR)/lib/udev/vol_id
  96. rmdir --ignore-fail-on-non-empty $(TARGET_DIR)/lib/udev
  97. udev-volume_id-dirclean:
  98. -$(MAKE) EXTRAS="extras/volume_id" -C $(UDEV_DIR) clean
  99. UDEV_CLEAN_DEPS+=udev-volume_id-clean
  100. UDEV_DIRCLEAN_DEPS+=udev-volume_id-dirclean
  101. endif
  102. #####################################################################
  103. ifeq ($(BR2_PACKAGE_UDEV_SCSI_ID),y)
  104. .PHONY: udev-scsi_id udev-scsi_id-clean udev-scsi_id-dirclean
  105. $(TARGET_DIR)/lib/udev/scsi_id: $(STAGING_DIR)/usr/lib/libvolume_id.so.$(UDEV_VOLUME_ID_VERSION)
  106. $(MAKE) CROSS_COMPILE=$(TARGET_CROSS) \
  107. CFLAGS="$(BR2_UDEV_CFLAGS)" \
  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 $@
  111. $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $@
  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. CFLAGS="$(BR2_UDEV_CFLAGS)" \
  115. USE_LOG=false USE_SELINUX=false \
  116. udevdir=$(UDEV_ROOT) EXTRAS="extras/usb_id" -C $(UDEV_DIR)
  117. $(INSTALL) -m 0755 -D $(UDEV_DIR)/extras/usb_id/usb_id $@
  118. $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $@
  119. udev-scsi_id: udev $(TARGET_DIR)/lib/udev/scsi_id $(TARGET_DIR)/lib/udev/usb_id
  120. udev-scsi_id-clean:
  121. rm -f $(TARGET_DIR)/lib/udev/scsi_id
  122. rm -f $(TARGET_DIR)/lib/udev/usb_id
  123. rmdir --ignore-fail-on-non-empty $(TARGET_DIR)/lib/udev
  124. udev-scsi_id-dirclean:
  125. -$(MAKE) EXTRAS="extras/scsi_id" -C $(UDEV_DIR) clean
  126. UDEV_CLEAN_DEPS+=udev-scsi_id-clean
  127. UDEV_DIRCLEAN_DEPS+=udev-scsi_id-dirclean
  128. endif
  129. #####################################################################
  130. ifeq ($(BR2_PACKAGE_UDEV_PATH_ID),y)
  131. .PHONY: udev-path_id udev-path_id-clean udev-path_id-dirclean
  132. $(TARGET_DIR)/lib/udev/path_id: $(STAGING_DIR)/usr/lib/libvolume_id.so.$(UDEV_VOLUME_ID_VERSION)
  133. $(MAKE) CROSS_COMPILE=$(TARGET_CROSS) \
  134. CFLAGS="$(BR2_UDEV_CFLAGS)" \
  135. USE_LOG=false USE_SELINUX=false \
  136. udevdir=$(UDEV_ROOT) EXTRAS="extras/path_id" -C $(UDEV_DIR)
  137. $(INSTALL) -m 0755 -D $(UDEV_DIR)/extras/path_id/path_id $@
  138. udev-path_id: udev $(TARGET_DIR)/lib/udev/path_id
  139. udev-path_id-clean:
  140. rm -f $(TARGET_DIR)/lib/udev/path_id
  141. rmdir --ignore-fail-on-non-empty $(TARGET_DIR)/lib/udev
  142. udev-path_id-dirclean:
  143. -$(MAKE) EXTRAS="extras/path_id" -C $(UDEV_DIR) clean
  144. UDEV_CLEAN_DEPS+=udev-path_id-clean
  145. UDEV_DIRCLEAN_DEPS+=udev-path_id-dirclean
  146. endif
  147. #####################################################################
  148. ifeq ($(BR2_PACKAGE_UDEV_FIRMWARE_SH),y)
  149. .PHONY: udev-firmware_sh udev-firmware_sh-clean udev-firmware_sh-dirclean
  150. $(TARGET_DIR)/lib/udev/firmware.sh: $(STAGING_DIR)/usr/lib/libvolume_id.so.$(UDEV_VOLUME_ID_VERSION)
  151. $(MAKE) CROSS_COMPILE=$(TARGET_CROSS) \
  152. CFLAGS="$(BR2_UDEV_CFLAGS)" \
  153. USE_LOG=false USE_SELINUX=false \
  154. udevdir=$(UDEV_ROOT) EXTRAS="extras/firmware" -C $(UDEV_DIR)
  155. $(INSTALL) -m 0755 -D $(UDEV_DIR)/extras/firmware/firmware.sh $@
  156. udev-firmware_sh: udev $(TARGET_DIR)/lib/udev/firmware.sh
  157. udev-firmware_sh-clean:
  158. rm -f $(TARGET_DIR)/lib/udev/firmware.sh
  159. rmdir --ignore-fail-on-non-empty $(TARGET_DIR)/lib/udev
  160. udev-firmware_sh-dirclean:
  161. -$(MAKE) EXTRAS="extras/firmware" -C $(UDEV_DIR) clean
  162. UDEV_CLEAN_DEPS+=udev-firmware_sh-clean
  163. UDEV_DIRCLEAN_DEPS+=udev-firmware_sh-dirclean
  164. endif
  165. #############################################################
  166. #
  167. # Toplevel Makefile options
  168. #
  169. #############################################################
  170. ifeq ($(BR2_PACKAGE_UDEV),y)
  171. TARGETS+=udev
  172. endif
  173. ifeq ($(BR2_PACKAGE_UDEV_VOLUME_ID),y)
  174. TARGETS+=udev-volume_id
  175. endif
  176. ifeq ($(BR2_PACKAGE_UDEV_SCSI_ID),y)
  177. TARGETS+=udev-scsi_id
  178. endif
  179. ifeq ($(BR2_PACKAGE_UDEV_PATH_ID),y)
  180. TARGETS+=udev-path_id
  181. endif
  182. ifeq ($(BR2_PACKAGE_UDEV_FIRMWARE_SH),y)
  183. TARGETS+=udev-firmware_sh
  184. endif