]> git.ipfire.org Git - thirdparty/dracut.git/blob - Makefile
add documentation for systemd services in the initramfs
[thirdparty/dracut.git] / Makefile
1 VERSION=022
2 GITVERSION=$(shell [ -d .git ] && git rev-list --abbrev-commit -n 1 HEAD |cut -b 1-8)
3
4 prefix ?= /usr
5 libdir ?= ${prefix}/lib
6 datadir ?= ${prefix}/share
7 pkglibdir ?= ${libdir}/dracut
8 sysconfdir ?= ${prefix}/etc
9 bindir ?= ${prefix}/bin
10 mandir ?= ${prefix}/share/man
11
12 man1pages = lsinitrd.1
13
14 man5pages = dracut.conf.5
15
16 man7pages = dracut.cmdline.7
17
18 man8pages = dracut.8 \
19 dracut-catimages.8 \
20 mkinitrd.8 \
21 modules.d/98systemd/dracut-cmdline.service.8 \
22 modules.d/98systemd/dracut-initqueue.service.8 \
23 modules.d/98systemd/dracut-pre-pivot.service.8 \
24 modules.d/98systemd/dracut-pre-trigger.service.8 \
25 modules.d/98systemd/dracut-pre-udev.service.8 \
26 modules.d/98systemd/initrd-switch-root.service.8 \
27 modules.d/98systemd/udevadm-cleanup-db.service.8
28
29 manpages = $(man1pages) $(man5pages) $(man7pages) $(man8pages)
30
31
32 .PHONY: install clean archive rpm testimage test all check AUTHORS doc
33
34 all: syncheck dracut-version.sh dracut-install
35
36 DRACUT_INSTALL_SOURCE = \
37 install/dracut-install.c \
38 install/hashmap.c\
39 install/log.c \
40 install/util.c
41
42 DRACUT_INSTALL_HEADER = \
43 install/hashmap.h \
44 install/log.h \
45 install/macro.h \
46 install/util.h
47
48 dracut-install: $(DRACUT_INSTALL_SOURCE) $(DRACUT_INSTALL_HEADER)
49 gcc -std=gnu99 -O2 -g -Wall -o dracut-install $(DRACUT_INSTALL_SOURCE)
50
51 indent:
52 indent -i8 -nut -br -linux -l120 install/dracut-install.c
53
54 doc: $(manpages) dracut.html
55
56 %: %.xml
57 xsltproc -o $@ -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
58
59 %.xml: %.asc
60 asciidoc -d manpage -b docbook -o $@ $<
61
62 dracut.html: dracut.asc $(manpages)
63 asciidoc -a numbered -d book -b docbook -o dracut.xml dracut.asc
64 xsltproc -o dracut.html --xinclude -nonet \
65 --stringparam draft.mode yes \
66 --stringparam html.stylesheet \
67 http://docs.redhat.com/docs/en-US/Common_Content/css/default.css \
68 http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl dracut.xml
69 rm dracut.xml
70
71 install: doc dracut-version.sh
72 mkdir -p $(DESTDIR)$(pkglibdir)
73 mkdir -p $(DESTDIR)$(bindir)
74 mkdir -p $(DESTDIR)$(sysconfdir)
75 mkdir -p $(DESTDIR)$(pkglibdir)/modules.d
76 mkdir -p $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(mandir)/man5 $(DESTDIR)$(mandir)/man7 $(DESTDIR)$(mandir)/man8
77 install -m 0755 dracut.sh $(DESTDIR)$(bindir)/dracut
78 install -m 0755 dracut-catimages.sh $(DESTDIR)$(bindir)/dracut-catimages
79 install -m 0755 mkinitrd-dracut.sh $(DESTDIR)$(bindir)/mkinitrd
80 install -m 0755 lsinitrd.sh $(DESTDIR)$(bindir)/lsinitrd
81 install -m 0644 dracut.conf $(DESTDIR)$(sysconfdir)/dracut.conf
82 mkdir -p $(DESTDIR)$(sysconfdir)/dracut.conf.d
83 install -m 0755 dracut-functions.sh $(DESTDIR)$(pkglibdir)/dracut-functions.sh
84 install -m 0755 dracut-version.sh $(DESTDIR)$(pkglibdir)/dracut-version.sh
85 ln -s dracut-functions.sh $(DESTDIR)$(pkglibdir)/dracut-functions
86 install -m 0755 dracut-logger.sh $(DESTDIR)$(pkglibdir)/dracut-logger.sh
87 install -m 0755 dracut-initramfs-restore.sh $(DESTDIR)$(pkglibdir)/dracut-initramfs-restore
88 cp -arx modules.d $(DESTDIR)$(pkglibdir)
89 for i in $(man1pages); do install -m 0644 $$i $(DESTDIR)$(mandir)/man1/$${i##*/}; done
90 for i in $(man5pages); do install -m 0644 $$i $(DESTDIR)$(mandir)/man5/$${i##*/}; done
91 for i in $(man7pages); do install -m 0644 $$i $(DESTDIR)$(mandir)/man7/$${i##*/}; done
92 for i in $(man8pages); do install -m 0644 $$i $(DESTDIR)$(mandir)/man8/$${i##*/}; done
93 ln -s dracut.cmdline.7 $(DESTDIR)$(mandir)/man7/dracut.kernel.7
94 if [ -n "$(systemdsystemunitdir)" ]; then \
95 mkdir -p $(DESTDIR)$(systemdsystemunitdir); \
96 install -m 0644 dracut-shutdown.service $(DESTDIR)$(systemdsystemunitdir); \
97 mkdir -p $(DESTDIR)$(systemdsystemunitdir)/shutdown.target.wants; \
98 ln -s ../dracut-shutdown.service \
99 $(DESTDIR)$(systemdsystemunitdir)/shutdown.target.wants/dracut-shutdown.service; \
100 fi
101 install $(strip) -m 0755 dracut-install $(DESTDIR)$(pkglibdir)/dracut-install
102
103 dracut-version.sh:
104 @echo "DRACUT_VERSION=$(VERSION)-$(GITVERSION)" > dracut-version.sh
105
106 clean:
107 $(RM) *~
108 $(RM) */*~
109 $(RM) */*/*~
110 $(RM) test-*.img
111 $(RM) dracut-*.rpm dracut-*.tar.bz2
112 $(RM) dracut-install
113 $(RM) $(manpages) dracut.html
114 $(MAKE) -C test clean
115
116 archive: dracut-$(VERSION)-$(GITVERSION).tar.bz2
117
118 dist: dracut-$(VERSION).tar.bz2
119
120 dracut-$(VERSION).tar.bz2: doc
121 git archive --format=tar $(VERSION) --prefix=dracut-$(VERSION)/ > dracut-$(VERSION).tar
122 mkdir -p dracut-$(VERSION)
123 cp $(manpages) dracut.html dracut-$(VERSION)
124 tar -rf dracut-$(VERSION).tar dracut-$(VERSION)/*.[0-9] dracut-$(VERSION)/dracut.html
125 rm -fr dracut-$(VERSION).tar.bz2 dracut-$(VERSION)
126 bzip2 -9 dracut-$(VERSION).tar
127 rm -f dracut-$(VERSION).tar
128
129 rpm: dracut-$(VERSION).tar.bz2
130 rpmbuild=$$(mktemp -d -t rpmbuild-dracut.XXXXXX); src=$$(pwd); \
131 cp dracut-$(VERSION).tar.bz2 "$$rpmbuild"; \
132 LC_MESSAGES=C $$src/git2spec.pl $(VERSION) "$$rpmbuild" < dracut.spec > $$rpmbuild/dracut.spec; \
133 (cd "$$rpmbuild"; rpmbuild --define "_topdir $$PWD" --define "_sourcedir $$PWD" \
134 --define "_specdir $$PWD" --define "_srcrpmdir $$PWD" \
135 --define "_rpmdir $$PWD" -ba dracut.spec; ) && \
136 ( mv "$$rpmbuild"/$$(arch)/*.rpm .; mv "$$rpmbuild"/*.src.rpm .;rm -fr "$$rpmbuild"; ls *.rpm )
137
138 syncheck:
139 @ret=0;for i in dracut-initramfs-restore.sh dracut-logger.sh \
140 modules.d/99base/init.sh modules.d/*/*.sh; do \
141 [ "$${i##*/}" = "module-setup.sh" ] && continue; \
142 read line < "$$i"; [ "$${line#*bash*}" != "$$line" ] && continue; \
143 dash -n "$$i" ; ret=$$(($$ret+$$?)); \
144 done;exit $$ret
145 @ret=0;for i in *.sh mkinitrd-dracut.sh modules.d/*/*.sh \
146 modules.d/*/module-setup.sh; do \
147 bash -n "$$i" ; ret=$$(($$ret+$$?)); \
148 done;exit $$ret
149
150 check: all syncheck
151 $(MAKE) -C test check
152
153 testimage: all
154 ./dracut.sh -l -a debug -f test-$(shell uname -r).img $(shell uname -r)
155 @echo wrote test-$(shell uname -r).img
156
157 testimages: all
158 ./dracut.sh -l -a debug --kernel-only -f test-kernel-$(shell uname -r).img $(shell uname -r)
159 @echo wrote test-$(shell uname -r).img
160 ./dracut.sh -l -a debug --no-kernel -f test-dracut.img $(shell uname -r)
161 @echo wrote test-dracut.img
162
163 hostimage: all
164 ./dracut.sh -H -l -a debug -f test-$(shell uname -r).img $(shell uname -r)
165 @echo wrote test-$(shell uname -r).img
166
167 AUTHORS:
168 git shortlog --numbered --summary -e |while read a rest; do echo $$rest;done > AUTHORS
169
170 dracut.html.sign: dracut-$(VERSION).tar.bz2
171 gpg-sign-all dracut-$(VERSION).tar.bz2 dracut.html
172
173 upload: dracut.html.sign
174 kup put dracut-$(VERSION).tar.bz2 dracut-$(VERSION).tar.sign /pub/linux/utils/boot/dracut/
175 kup put dracut.html dracut.html.sign /pub/linux/utils/boot/dracut/