File: Makefile

package info (click to toggle)
hwdata 0.394-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 9,948 kB
  • sloc: makefile: 196; python: 171; sh: 111
file content (160 lines) | stat: -rw-r--r-- 4,840 bytes parent folder | download
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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
NAME=hwdata
VERSION=$(shell awk '/Version:/ { print $$2 }' hwdata.spec)
RELEASE=$(shell rpm -q --define 'dist %{nil}' --specfile --qf "%{release}" hwdata.spec)
ifeq ($(shell git rev-parse --abbrev-ref HEAD 2>/dev/null | sed -n 's/^\([^0-9-]\+\).*/\L\1/p'), rhel)
    # add revision to tag name for rhel branches
    TAGNAME := v$(VERSION)-$(RELEASE)
else
    TAGNAME := v$(VERSION)
endif
SOURCEDIR := $(shell pwd)
ARCHIVE := $(TAGNAME).tar.gz

CVSROOT = $(shell cat CVS/Root 2>/dev/null || :)

CVSTAG = $(NAME)-r$(subst .,-,$(VERSION))

IDFILES = pci.ids usb.ids oui.txt iab.txt pnp.ids

.PHONY: all install tag force-tag check commit create-archive archive srpm-x \
    clean clog download

include Makefile.inc

all:

Makefile.inc: configure
	./configure
	@echo "$@ generated. Run the make again."
	@exit 1

hwdata.pc: hwdata.pc.in
	datadir="$(datadir)"; \
	if [ "$${datadir#$(prefix)}" != "$$datadir" ]; then \
		datadir="\$${prefix}$${datadir#$(prefix)}"; \
	fi; \
	sed -e 's|@prefix@|$(prefix)|g' \
		-e "s|@datadir@|$$datadir|g" \
		-e 's|@pkgdatadir@|$${datadir}/$(NAME)|g' \
		-e 's|@VERSION@|$(VERSION)|g' \
		-e 's|@NAME@|$(NAME)|g' \
		$< > $@

install: Makefile.inc hwdata.pc
	mkdir -p -m 755 $(DESTDIR)$(datadir)/$(NAME)
	for foo in $(IDFILES) ; do \
		install -m 644 $$foo $(DESTDIR)$(datadir)/$(NAME) ;\
	done
	@if [ "$(blacklist)" = true ]; then \
		mkdir -p -m 755 $(DESTDIR)$(libdir)/modprobe.d ;\
		install -m 644 -T blacklist.conf $(DESTDIR)$(libdir)/modprobe.d/dist-blacklist.conf ;\
	fi;
	mkdir -p -m 755 $(DESTDIR)$(datadir)/pkgconfig
	install -m 644 hwdata.pc $(DESTDIR)$(datadir)/pkgconfig/

commit:
	git commit -vas ||:

tag:
	@git tag -s -m "Tag as $(TAGNAME)" $(TAGNAME)
	@echo "Tagged as $(TAGNAME)"

force-tag:
	@git tag -s -f -m "Tag as $(TAGNAME)" $(TAGNAME)
	@echo "Tag forced as $(TAGNAME)"

changelog:
	@rm -f ChangeLog
	@(GIT_DIR=.git git log > .changelog.tmp && mv .changelog.tmp ChangeLog || rm -f .changelog.tmp) || (touch ChangeLog; echo 'git directory not found: installing possibly empty changelog.' >&2)

check:
	@lspci -A dump -O dump.name=lspci-dump.txt -i pci.ids > /dev/null || \
		{ echo "FAILURE: lspci -A dump -O dump.name=lspci-dump.txt -i pci.ids"; exit 1; } && echo "OK: lspci -A dump -O dump.name=lspci-dump.txt -i pci.ids"
	@./check-pci-ids.py || { echo "FAILURE: ./check-pci-ids.py"; exit 1; } && echo "OK: ./check-pci-ids.py"
	@./check-usb-ids.sh
	@for file in $(IDFILES); do \
	    iconv -f UTF-8 "$$file" >/dev/null || { echo "FAILURE: $$file is not valid UTF-8 data"; exit 1; }; \
	    echo "OK: $$file is valid UTF-8 data"; \
	done
	@echo -n "CHECK date of pci.ids: "; grep "Date:" pci.ids | cut -d ' ' -f 5
	@echo -n "CHECK date of usb.ids: "; grep "Date:" usb.ids | cut -d ' ' -f 6

create-archive:
	@rm -rf $(TAGNAME) $(TAGNAME).tar*  2>/dev/null
	@make changelog
	@git archive --format=tar --prefix=hwdata-$(VERSION)/ HEAD > $(TAGNAME).tar
	@mkdir hwdata-$(VERSION)
	@cp ChangeLog hwdata-$(VERSION)/
	@tar --append -f $(TAGNAME).tar hwdata-$(VERSION)
	@gzip -f $(TAGNAME).tar
	@rm -rf hwdata-$(VERSION)
	@echo ""
	@echo "The final archive is in $(ARCHIVE)"

archive: check clean commit tag

upload:
	@scp $(ARCHIVE) fedorahosted.org:$(NAME)

srpm-x: create-archive
	@echo Creating $(NAME) src.rpm
	@rpmbuild --nodeps -bs --define "_sourcedir $(SOURCEDIR)" --define "_srcrpmdir $(SOURCEDIR)" $(NAME).spec
	@echo SRPM is: $(NAME)-$(VERSION)-$(RELEASE).src.rpm

clean:
	@rm -f $(TAGNAME)*.gz $(NAME)-*.src.rpm pnp.ids.csv \
	    *.downloaded *.utf8 *.orig *.converted hwdata.pc ChangeLog clog

clog: hwdata.spec
	@sed -n '/^%changelog/,/^$$/{/^%/d;/^$$/d;s/%%/%/g;p}' $< | tee $@

download: $(IDFILES)

usb.ids.downloaded:
	@curl -o $@ http://www.linux-usb.org/usb.ids

pci.ids.downloaded:
	@curl -o $@ https://pci-ids.ucw.cz/v2.2/pci.ids

oui.txt.downloaded:
	@curl -o $@ -O https://standards-oui.ieee.org/oui/oui.txt

iab.txt.downloaded:
	@curl -o $@ -O https://standards-oui.ieee.org/iab/iab.txt

pnp.ids.csv:
	@curl -o $@ \
	    https://uefi.org/uefi-pnp-export

usb.ids.converted: usb.ids.utf8
	dos2unix -n $? $@

usb.ids: usb.ids.converted 01-utf-8-encoding.patch.patch 02-typos.patch.patch
	patch -p1 -o $@ usb.ids.converted 01-utf-8-encoding.patch.patch
	patch -p0 -b <02-typos.patch.patch

pci.ids: pci.ids.utf8
	dos2unix -n $? $@

oui.txt: oui.txt.utf8
	dos2unix -n $? $@

iab.txt: iab.txt.utf8
	dos2unix -n $? $@

pnp.ids.orig: pnp.ids.csv
	./process-pnp-ids.py $? $@

pnp.ids: pnp.ids.orig pnp.ids.patch
	patch -p1 -o - pnp.ids.orig pnp.ids.patch | \
	    sed 's/\tDO NOT USE - /\tInvalid Vendor Codename - /' >$@

%.utf8: %.downloaded
	@text=`LANG=C file $?`
	@encoding=`echo "$$text" | sed -n 's/.*\(iso-8859\S\*\|cp1[12]\d\+\).*/\1/Ip'`
	@if [ -n "$$encoding" ]; then \
	    iconv -f "$$encoding" -t UTF-8 $?; \
	else \
	    cat $?; \
	fi | sed 's/\s\+$$//' >$@