# $Progeny: Makefile 4783 2005-02-06 02:49:54Z licquia $

prefix = /usr/local
datadir = $(prefix)/share
execdir = $(datadir)/tools
hwlistsdir = $(datadir)/discover

DESTDIR =

MAJOR=2
DATE=$(shell date +%Y.%m.%d)
VERSION=$(MAJOR).$(DATE)
DISTNAME=discover-data-$(VERSION)

KVERSION_24 = 2.4.18
KVERSION_26 = 2.6.8

discover_data_EXEC = lst2xml
old_hwlists_DATA = pci.lst pci-26.lst \
                   pcmcia.lst pcmcia-26.lst \
                   usb.lst usb-26.lst
hwlists_DATA = ata-busclass.xml \
               ata-device.xml \
               ata-vendor.xml \
               list.xml \
               pci-busclass.xml \
               pci-device.xml \
               pci-vendor.xml \
               pcmcia-busclass.xml \
               pcmcia-device.xml \
               pcmcia-vendor.xml \
               scsi-busclass.xml \
               scsi-device.xml \
               scsi-vendor.xml \
               usb-busclass.xml \
               usb-device.xml \
               usb-vendor.xml

all: $(discover_data_EXEC) $(old_hwlists_DATA) $(hwlists_DATA)

list.xml: list.xml.in
	sed s,@HWLISTSDIR@,$(hwlistsdir),g < list.xml.in > list.xml

shorthwlists: $(old_hwlists_DATA)
#	Copy in limited autodetect databases to save space.
	for discoverdb in $(old_hwlists_DATA); do \
		discoverfn=`basename $$discoverdb`; \
		./mkshorthwlist < $$discoverdb > $$discoverfn-short ; \
	done

shortxmllists: $(hwlists_DATA)
	./reduce-xml --class-spec=linux:2.4 --class-spec=linux:2.6 \
		--module-list=./di-kernel-list \
		-i pci-vendor.xml -i pci-busclass.xml -i pci-device.xml \
		-o pci-device-short.xml
	./reduce-xml --class-spec=linux:2.4 --class-spec=linux:2.6 \
		--module-list=./di-kernel-list \
		-i usb-vendor.xml -i usb-busclass.xml -i usb-device.xml \
		-o usb-device-short.xml
	./reduce-xml --class-spec=linux:2.4 --class-spec=linux:2.6 \
		--module-list=./di-kernel-list \
		-i pci-vendor.xml -i pci-busclass.xml -i pci-device.xml \
		-o pci-vendor-short.xml --output-type=vendor
	./reduce-xml --class-spec=linux:2.4 --class-spec=linux:2.6 \
		--module-list=./di-kernel-list \
		-i usb-vendor.xml -i usb-busclass.xml -i usb-device.xml \
		-o usb-vendor-short.xml --output-type=vendor
	./reduce-xml --class-spec=linux:2.4 --class-spec=linux:2.6 \
		--module-list=./di-kernel-list \
		-i scsi-vendor.xml -i scsi-busclass.xml -i scsi-device.xml \
		-o scsi-vendor-short.xml --output-type=vendor

install: $(old_hwlists_DATA) $(hwlists_DATA)
	install -m 755 -d $(DESTDIR)$(hwlistsdir)
	install -m 644 $(old_hwlists_DATA) $(hwlists_DATA) $(DESTDIR)$(hwlistsdir)
	install -m 755 -d $(DESTDIR)$(execdir)
	install -m 755 $(discover_data_EXEC) $(DESTDIR)$(execdir)

install-udeb: shorthwlists shortxmllists
	install -m 755 -d $(DESTDIR)$(hwlistsdir)

#	Install the full Discover 2.x data set into the udeb.
	install -m 644 $(hwlists_DATA) $(DESTDIR)$(hwlistsdir)

#	Next, replace the data sets we've shortened with the short versions.
	install -m 644 pci-device-short.xml \
		$(DESTDIR)$(hwlistsdir)/pci-device.xml
	install -m 644 usb-device-short.xml \
		$(DESTDIR)$(hwlistsdir)/usb-device.xml
	install -m 644 pci-vendor-short.xml \
		$(DESTDIR)$(hwlistsdir)/pci-vendor.xml
	install -m 644 usb-vendor-short.xml \
		$(DESTDIR)$(hwlistsdir)/usb-vendor.xml
	install -m 644 scsi-vendor-short.xml \
		$(DESTDIR)$(hwlistsdir)/scsi-vendor.xml

#	Compress the hardware lists.
	gzip -9 $(DESTDIR)$(hwlistsdir)/*.xml

uninstall:
	for i in $(old_hwlists_DATA) $(hwlists_DATA); do rm $(DESTDIR)$(hwlistsdir)/$$i; done
	for i in $(discover_data_EXEC); do rm $(DESTDIR)$(execdir)/$$i; done
	-rmdir $(DESTDIR)$(hwlistsdir)
	-rmdir $(DESTDIR)$(execdir)

dist:
	mkdir $(DISTNAME)
	cp Makefile $(old_hwlists_DATA) $(hwlists_DATA) $(discover_data_EXEC) $(DISTNAME)
	tar cf - $(DISTNAME) | gzip -9 > $(DISTNAME).tar.gz
	md5sum $(DISTNAME).tar.gz > $(DISTNAME).tar.gz.md5sum
	rm -rf $(DISTNAME)

clean:
	rm -f *.lst-short
	rm -f *-short.xml
	rm -f list.xml

.PHONY: all install uninstall dist
