# when making release, make sure you do it as RELEASE document describes
NAME		:= geninitrd
VERSION		:= $(shell test -d .git && git describe --tags || echo git)
MODS		:= ide luks multipath dmraid lvm md blkid udev tuxonice suspend swsusp fbsplash condecor bootsplash uvesafb nfs sata scsi usbkbd bcache
FILES_MODS  := $(MODS:%=mod-%.sh)
FILES_ADDON := extract-ikconfig
FILES_UDEV  := 01-ignore.rules 59-persistent-storage.rules 61-persistent-storage.rules 11-dm.rules
prefix		:= /usr
mandir		:= $(prefix)/share/man
sbindir		:= /sbin
libdir		:= /lib/geninitrd
udevdir		:= $(libdir)/udev-rules
sysconfigdir := /etc/sysconfig

all: $(NAME).8

install: $(NAME).8
	install -d $(DESTDIR)$(sbindir) $(DESTDIR)$(mandir)/man8 $(DESTDIR)$(libdir) $(DESTDIR)$(sysconfigdir) $(DESTDIR)$(udevdir)
	install -p $(NAME) $(DESTDIR)$(sbindir)/$(NAME)
	install -p -m644 $(NAME).8 $(DESTDIR)$(mandir)/man8/$(NAME).8
	install -p -m644 functions $(DESTDIR)$(libdir)/functions
	install -p -m644 functions.initrd $(DESTDIR)$(libdir)/functions.initrd
	install -p -m644 $(FILES_MODS) $(DESTDIR)$(libdir)
	install -p -m755 $(FILES_ADDON) $(DESTDIR)$(libdir)
	install -p -m644 $(NAME).sysconfig $(DESTDIR)$(sysconfigdir)/$(NAME)
	for file in ${FILES_UDEV}; do \
		install -p -m644 udev-rules/$${file} $(DESTDIR)$(udevdir); \
	done

refentry2man := /usr/bin/refentry2man
$(NAME).8: $(NAME).8.xml $(refentry2man)
	$(refentry2man) < $< > $@.tmp && mv $@.tmp $@ || { rm -f $@.tmp; exit 1; }

dist: $(NAME)-$(VERSION).tar.gz
	@echo
	@echo "Do not forget to tag the release"
	@echo

tag:
	./make-tag.sh

clean:
	rm -f $(NAME).8
	rm -f $(NAME)-*.tar $(NAME)-*.tar.gz

.PHONY: ChangeLog
ChangeLog:
	./changelog.sh

$(NAME)-$(VERSION).tar.gz: $(NAME).8 ChangeLog
	rm -rf $(NAME)-$(VERSION)
	install -d $(NAME)-$(VERSION)
	git archive HEAD | tar -x -C $(NAME)-$(VERSION)/
	sed -i -e "s/VERSION='devel'/VERSION='$(VERSION)'/" $(NAME)-$(VERSION)/$(NAME)
	cp -p $? $(NAME)-$(VERSION)
	tar -czf $@ --owner=root --group=root $(NAME)-$(VERSION)
	rm -rf $(NAME)-$(VERSION)
