# when making release, make sure you do it as RELEASE document describes
-VERSION := 12346
-MODS := ide luks multipath dmraid lvm md blkid udev tuxonice suspend fbsplash condecor bootsplash uvesafb nfs sata scsi usbkbd
+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 := Makefile geninitrd.sysconfig geninitrd functions $(FILES_MODS) $(FILES_ADDON) geninitrd.8 geninitrd.8.xml ChangeLog
+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: geninitrd.8
+all: $(NAME).8
-install: geninitrd.8
- install -d $(DESTDIR)$(sbindir) $(DESTDIR)$(mandir)/man8 $(DESTDIR)$(libdir) $(DESTDIR)$(sysconfigdir)
- install -p geninitrd $(DESTDIR)$(sbindir)/geninitrd
- install -p -m644 geninitrd.8 $(DESTDIR)$(mandir)/man8/geninitrd.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 geninitrd.sysconfig $(DESTDIR)$(sysconfigdir)/geninitrd
+ install -p -m644 $(NAME).sysconfig $(DESTDIR)$(sysconfigdir)/$(NAME)
+ for file in ${FILES_UDEV}; do \
+ install -p -m644 udev-rules/$${file} $(DESTDIR)$(udevdir); \
+ done
-rerentry2man := /usr/bin/refentry2man
-geninitrd.8: geninitrd.8.xml $(refentry2man)
+refentry2man := /usr/bin/refentry2man
+$(NAME).8: $(NAME).8.xml $(refentry2man)
$(refentry2man) < $< > $@.tmp && mv $@.tmp $@ || { rm -f $@.tmp; exit 1; }
-dist: clean geninitrd-$(VERSION).tar.gz
+dist: $(NAME)-$(VERSION).tar.gz
@echo
@echo "Do not forget to tag the release"
@echo
./make-tag.sh
clean:
- rm -f geninitrd.8
+ rm -f $(NAME).8
+ rm -f $(NAME)-*.tar $(NAME)-*.tar.gz
.PHONY: ChangeLog
ChangeLog:
- svn up
./changelog.sh
-geninitrd-$(VERSION).tar.gz: geninitrd.8 ChangeLog
- rm -f *.tar.gz
- rm -rf geninitrd-$(VERSION)
- LC_ALL=C TZ=GMT svn export . geninitrd-$(VERSION)
- cp -p $? geninitrd-$(VERSION)
- tar -czvf geninitrd-$(VERSION).tar.gz geninitrd-$(VERSION)
- -rm -rf geninitrd-$(VERSION)
+$(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)