10 PKG_CONFIG ?= pkg-config
19 COMPRESS_FILES-$(PCI) += pci.ids.gz
20 COMPRESS_FILES-$(USB) += usb.ids.gz
23 DATA_FILES-$(GZIP) += $(COMPRESS_FILES-yes)
24 DATA_FILES-$(NET) += oui.txt iab.txt
25 DATA_FILES-$(PCI) += pci.ids
26 DATA_FILES-$(USB) += usb.ids
29 ALL_TARGETS-$(GZIP) += $(COMPRESS_FILES-yes)
31 INSTALL_TARGETS-yes = install-base
32 INSTALL_TARGETS-$(UDEV) += install-hwdb
34 SYSTEMD_SOURCE = https://github.com/systemd/systemd/raw/master/hwdb
35 UDEV_FILES = 20-acpi-vendor.hwdb 20-bluetooth-vendor-product.hwdb
36 UDEV_FILES += 20-net-ifname.hwdb 60-evdev.hwdb 60-keyboard.hwdb 60-sensor.hwdb
37 UDEV_FILES += 70-joystick.hwdb 70-mouse.hwdb 70-pointingstick.hwdb 70-touchpad.hwdb
39 all: $(ALL_TARGETS-yes)
41 .PHONY: all install install-base install-hwdb fetch tag udev-hwdb compress
43 install: $(INSTALL_TARGETS-yes)
45 # OUI/IAB: https://regauth.standards.ieee.org/standards-ra-web/pub/view.html#registries
47 $(Q)curl -z pci.ids -o pci.ids -R http://pci-ids.ucw.cz/v2.2/pci.ids
48 $(Q)curl -z usb.ids -o usb.ids -R http://www.linux-usb.org/usb.ids
49 $(Q)curl -z oui.txt -o oui.txt -R http://standards-oui.ieee.org/oui/oui.txt
50 $(Q)curl -z ma-medium.txt -o ma-medium.txt -R http://standards-oui.ieee.org/oui28/mam.txt
51 $(Q)curl -z ma-small.txt -o ma-small.txt -R http://standards-oui.ieee.org/oui36/oui36.txt
52 $(Q)curl -z iab.txt -o iab.txt -R http://standards-oui.ieee.org/iab/iab.txt
53 $(Q)curl -L -z sdio.ids -o sdio.ids -R $(SYSTEMD_SOURCE)/sdio.ids
54 $(Q)curl -L -z ids_parser.py -o ids_parser.py -R $(SYSTEMD_SOURCE)/ids_parser.py
55 $(Q)for f in $(UDEV_FILES); do curl -L -z udev/$$f -o udev/$$f -R $(SYSTEMD_SOURCE)/$$f; done
58 PV ?= $(shell ( awk '$$2 == "Date:" { print $$3; nextfile }' pci.ids usb.ids; git log --format=format:%ci -1 -- oui.txt $(addprefix udev/,$(UDEV_FILES)) ids_parser.py | cut -d ' ' -f1; ) | sort | tail -n 1 | tr -d -)
65 $(PYTHON) ids_parser.py && mv *.hwdb udev/
67 compress: pci.ids.gz usb.ids.gz
72 MISCDIR=/usr/share/misc
73 HWDBDIR=$(shell $(PKG_CONFIG) --variable=udevdir udev)/hwdb.d
74 DOCDIR=/usr/share/doc/hwids
76 install-base: $(DATA_FILES-yes)
77 mkdir -p $(DESTDIR)$(DOCDIR)
78 install -p -m 644 README.md $(DESTDIR)$(DOCDIR)
79 ifneq ($(strip $(DATA_FILES-yes)),)
80 mkdir -p $(DESTDIR)$(MISCDIR)
81 install -p -m 644 $(DATA_FILES-yes) $(DESTDIR)$(MISCDIR)
85 mkdir -p $(DESTDIR)$(HWDBDIR)
86 install -p -m 644 udev/*.hwdb $(DESTDIR)$(HWDBDIR)
87 udevadm hwdb --root $(DESTDIR) --update