summaryrefslogtreecommitdiffstats
path: root/package/udev/udev.mk
blob: e74adb1ff5f8017831428f93f5b15b64baf1274e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#############################################################
#
# udev
#
#############################################################
UDEV_VERSION:=114
UDEV_VOLUME_ID_CURRENT:=0
UDEV_VOLUME_ID_AGE:=79
UDEV_VOLUME_ID_REVISION:=0
UDEV_VOLUME_ID_VERSION:=$(UDEV_VOLUME_ID_CURRENT).$(UDEV_VOLUME_ID_AGE).$(UDEV_VOLUME_ID_REVISION)
UDEV_SOURCE:=udev-$(UDEV_VERSION).tar.bz2
UDEV_SITE:=$(BR2_KERNEL_MIRROR)/linux/utils/kernel/hotplug/
UDEV_INSTALL_STAGING=YES

# 094 had _GNU_SOURCE set
BR2_UDEV_CFLAGS:= -D_GNU_SOURCE $(TARGET_CFLAGS)
ifeq ($(BR2_LARGEFILE),)
BR2_UDEV_CFLAGS+=-U_FILE_OFFSET_BITS
endif

# UDEV_ROOT is /dev so we can replace devfs, not /udev for experiments
UDEV_ROOT:=/dev

UDEV_EXTRAS=
ifeq ($(BR2_PACKAGE_UDEV_VOLUME_ID),y)
UDEV_EXTRAS+=volume_id
endif
ifeq ($(BR2_PACKAGE_UDEV_SCSI_ID),y)
UDEV_EXTRAS+=scsi_id
UDEV_EXTRAS+=usb_id
endif
ifeq ($(BR2_PACKAGE_UDEV_PATH_ID),y)
UDEV_EXTRAS+=path_id
endif
ifeq ($(BR2_PACKAGE_UDEV_FIRMWARE_SH),y)
UDEV_EXTRAS+=firmware
endif

UDEV_BUILD_EXTRAS=$(addprefix extras/,$(UDEV_EXTRAS))

#
# Build
#
define UDEV_BUILD_CMDS
	$(MAKE) CROSS_COMPILE=$(TARGET_CROSS) CC=$(TARGET_CC) LD=$(TARGET_CC)\
		CFLAGS="$(BR2_UDEV_CFLAGS)" \
		USE_LOG=false USE_SELINUX=false \
		udevdir=$(UDEV_ROOT) EXTRAS="$(UDEV_BUILD_EXTRAS)" -C $(@D)
endef

#
# Staging installation
#
ifeq ($(BR2_PACKAGE_UDEV_VOLUME_ID),y)
define UDEV_VOLUME_ID_STAGING_INSTALL_CMDS
	$(INSTALL) -m 0644 -D $(UDEV_DIR)/extras/volume_id/lib/libvolume_id.h $(STAGING_DIR)/usr/include/libvolume_id.h
	$(INSTALL) -m 0755 -D $(UDEV_DIR)/extras/volume_id/lib/libvolume_id.so.$(UDEV_VOLUME_ID_VERSION) $@
	-ln -sf libvolume_id.so.$(UDEV_VOLUME_ID_VERSION) $(STAGING_DIR)/lib/libvolume_id.so.0
	-ln -sf libvolume_id.so.$(UDEV_VOLUME_ID_VERSION) $(STAGING_DIR)/lib/libvolume_id.so
	$(INSTALL) -m 0755 -D package/udev/libvolume_id.la.tmpl $(STAGING_DIR)/lib/libvolume_id.la
	$(SED) 's/REPLACE_CURRENT/$(UDEV_VOLUME_ID_CURRENT)/g' $(STAGING_DIR)/lib/libvolume_id.la
	$(SED) 's/REPLACE_AGE/$(UDEV_VOLUME_ID_AGE)/g' $(STAGING_DIR)/lib/libvolume_id.la
	$(SED) 's/REPLACE_REVISION/$(UDEV_VOLUME_ID_REVISION)/g' $(STAGING_DIR)/lib/libvolume_id.la
	$(SED) 's,REPLACE_LIB_DIR,$(STAGING_DIR)/usr/lib,g' $(STAGING_DIR)/lib/libvolume_id.la
endef
endif

define UDEV_INSTALL_STAGING_CMDS
$(UDEV_VOLUME_ID_STAGING_INSTALL_CMDS)
endef

#
# Target installation
#
ifneq ($(BR2_PACKAGE_UDEV_UTILS),y)
define UDEV_UTILS_REMOVAL
	rm -f $(TARGET_DIR)/usr/sbin/udevmonitor
	rm -f $(TARGET_DIR)/usr/bin/udevinfo
	rm -f $(TARGET_DIR)/usr/bin/udevtest
endef
endif

define UDEV_INSTALL_TARGET_CMDS
	mkdir -p $(TARGET_DIR)/sys
	$(MAKE) $(TARGET_CONFIGURE_OPTS) \
		DESTDIR=$(TARGET_DIR) \
		CFLAGS="$(BR2_UDEV_CFLAGS)" \
		LDFLAGS="-warn-common" \
		USE_LOG=false USE_SELINUX=false \
		udevdir=$(UDEV_ROOT) EXTRAS="$(UDEV_BUILD_EXTRAS)" -C $(@D) install
	$(INSTALL) -m 0755 package/udev/S10udev $(TARGET_DIR)/etc/init.d
	$(INSTALL) -m 0644 $(@D)/etc/udev/frugalware/* $(TARGET_DIR)/etc/udev/rules.d
	( grep udev_root $(TARGET_DIR)/etc/udev/udev.conf > /dev/null 2>&1 || echo 'udev_root=/dev' >> $(TARGET_DIR)/etc/udev/udev.conf )
	install -m 0755 -D $(@D)/udevstart $(TARGET_DIR)/sbin/udevstart
	for i in $(TARGET_DIR)/sbin/udev* $(TARGET_DIR)/usr/bin/udev* ; do \
		$(STRIPCMD) $(STRIP_STRIP_ALL) $$i ; \
	done
	for i in scsi_id usb_id vol_id ; do \
		if test -e $(TARGET_DIR)/lib/udev/$$i ; then \
			$(STRIPCMD) $(STRIP_STRIP_ALL) $(TARGET_DIR)/lib/udev/$$i ; \
		fi \
	done
	$(UDEV_UTILS_REMOVAL)
endef

#
# Clean
#
define UDEV_CLEAN_CMDS
	-$(MAKE) EXTRAS="$(UDEV_BUILD_EXTRAS)" -C $(@D) clean
endef

#
# Staging uninstall
#
define UDEV_UNINSTALL_STAGING_CMDS
	rm -f $(STAGING_DIR)/usr/include/libvolume_id.h
	rm -f $(STAGING_DIR)/lib/libvolume_id.so*
	rm -f $(STAGING_DIR)/lib/libvolume_id.la
endef

#
# Target uninstall
#
define UDEV_UNINSTALL_TARGET_CMDS
	rm -f $(TARGET_DIR)/etc/init.d/S10udev $(TARGET_DIR)/sbin/udev*
	rm -f $(TARGET_DIR)/usr/sbin/udevmonitor $(TARGET_DIR)/usr/bin/udev*
	rm -fr $(TARGET_DIR)/sys
	rm -f $(TARGET_DIR)/lib/libvolume_id.so.0*
	rm -rf $(TARGET_DIR)/lib/udev
endef

$(eval $(call GENTARGETS,package,udev))