1 -include dracut-version.sh
3 DRACUT_MAIN_VERSION ?
= $(shell env GIT_CEILING_DIRECTORIES
=$(CWD
)/.. git describe
--abbrev
=0 --tags --always
2>/dev
/null ||
:)
4 ifeq ($(DRACUT_MAIN_VERSION
),)
5 DRACUT_MAIN_VERSION
= $(DRACUT_VERSION
)
7 DRACUT_FULL_VERSION ?
= $(shell env GIT_CEILING_DIRECTORIES
=$(CWD
)/.. git describe
--tags --always
2>/dev
/null ||
:)
8 ifeq ($(DRACUT_FULL_VERSION
),)
9 DRACUT_FULL_VERSION
= $(DRACUT_VERSION
)
14 KVERSION ?
= $(shell uname
-r
)
17 libdir ?
= ${prefix}/lib
18 datadir ?
= ${prefix}/share
19 pkglibdir ?
= ${libdir}/dracut
20 sysconfdir ?
= ${prefix}/etc
21 bindir ?
= ${prefix}/bin
22 mandir ?
= ${prefix}/share
/man
23 CFLAGS ?
= -O2
-g
-Wall
-std
=gnu99
-D_FILE_OFFSET_BITS
=64 -Wformat
-Werror
=format-security
-Wp
,-D_FORTIFY_SOURCE
=2
24 bashcompletiondir ?
= ${datadir}/bash-completion
/completions
25 pkgconfigdatadir ?
= $(datadir)/pkgconfig
27 man1pages
= lsinitrd
.1
29 man5pages
= dracut.conf
.5
31 man7pages
= dracut.cmdline
.7 \
35 man8pages
= dracut
.8 \
39 modules.d
/98dracut-systemd
/dracut-cmdline.service
.8 \
40 modules.d
/98dracut-systemd
/dracut-initqueue.service
.8 \
41 modules.d
/98dracut-systemd
/dracut-mount.service
.8 \
42 modules.d
/98dracut-systemd
/dracut-shutdown.service
.8 \
43 modules.d
/98dracut-systemd
/dracut-pre-mount.service
.8 \
44 modules.d
/98dracut-systemd
/dracut-pre-pivot.service
.8 \
45 modules.d
/98dracut-systemd
/dracut-pre-trigger.service
.8 \
46 modules.d
/98dracut-systemd
/dracut-pre-udev.service
.8
48 manpages
= $(man1pages
) $(man5pages
) $(man7pages
) $(man8pages
)
50 .PHONY
: install clean archive rpm srpm testimage
test all check AUTHORS CONTRIBUTORS doc dracut-version.sh
52 all: dracut-version.sh dracut.
pc dracut-install skipcpio
/skipcpio
55 $(CC
) -c
$(CFLAGS
) $(CPPFLAGS
) $(KMOD_CFLAGS
) $< -o
$@
57 DRACUT_INSTALL_OBJECTS
= \
58 install/dracut-install.o \
64 # deps generated with gcc -MM
65 install/dracut-install.o
: install/dracut-install.c
install/log.h
install/macro.h \
66 install/hashmap.h
install/util.h
67 install/hashmap.o
: install/hashmap.c
install/util.h
install/macro.h
install/log.h \
69 install/log.o
: install/log.c
install/log.h
install/macro.h
install/util.h
70 install/util.o
: install/util.c
install/util.h
install/macro.h
install/log.h
71 install/strv.o
: install/strv.c
install/strv.h
install/util.h
install/macro.h
install/log.h
73 install/dracut-install
: $(DRACUT_INSTALL_OBJECTS
)
74 $(CC
) $(LDFLAGS
) -o
$@
$(DRACUT_INSTALL_OBJECTS
) $(LDLIBS
) $(FTS_LIBS
) $(KMOD_LIBS
)
77 $(CC
) $(LDFLAGS
) -o
$@
$<
79 dracut-install
: install/dracut-install
85 skipcpio
/skipcpio.o
: skipcpio
/skipcpio.c
86 skipcpio
/skipcpio
: skipcpio
/skipcpio.o
89 indent
-i8
-nut
-br
-linux
-l120
install/dracut-install.c
90 indent
-i8
-nut
-br
-linux
-l120 skipcpio
/skipcpio.c
92 doc
: $(manpages
) dracut.html
94 ifneq ($(enable_documentation
),no
)
100 xsltproc
-o
"$@" -nonet http
://docbook.sourceforge.net
/release
/xsl
/current
/manpages
/docbook.xsl
$<
104 asciidoc
-a
"version=$(DRACUT_FULL_VERSION)" -d manpage
-b docbook
-o
"$@" $<
106 dracut
.8: dracut.usage.asc dracut
.8.asc
108 dracut.html
: dracut.asc
$(manpages
) dracut.css dracut.usage.asc
110 asciidoc
-a
"mainversion=$(DRACUT_MAIN_VERSION)" \
111 -a
"version=$(DRACUT_FULL_VERSION)" \
113 -d book
-b docbook
-o dracut.xml dracut.asc
114 @
rm -f
-- dracut.html
115 xsltproc
-o dracut.html
--xinclude
-nonet \
116 --stringparam custom.css.source dracut.css \
117 --stringparam generate.css.header
1 \
118 http
://docbook.sourceforge.net
/release
/xsl
/current
/xhtml
/docbook.xsl dracut.xml
121 dracut.
pc: Makefile.inc Makefile
122 @echo
"Name: dracut" > dracut.
pc
123 @echo
"Description: dracut" >> dracut.
pc
124 @echo
"Version: $(DRACUT_FULL_VERSION)" >> dracut.
pc
125 @echo
"dracutdir=$(pkglibdir)" >> dracut.
pc
126 @echo
"dracutmodulesdir=$(pkglibdir)/modules.d" >> dracut.
pc
127 @echo
"dracutconfdir=$(pkglibdir)/dracut.conf.d" >> dracut.
pc
130 mkdir
-p
$(DESTDIR
)$(pkglibdir
)
131 mkdir
-p
$(DESTDIR
)$(bindir)
132 mkdir
-p
$(DESTDIR
)$(sysconfdir
)
133 mkdir
-p
$(DESTDIR
)$(pkglibdir
)/modules.d
134 mkdir
-p
$(DESTDIR
)$(mandir)/man1
$(DESTDIR
)$(mandir)/man5
$(DESTDIR
)$(mandir)/man7
$(DESTDIR
)$(mandir)/man8
135 install -m
0755 dracut.sh
$(DESTDIR
)$(bindir)/dracut
136 install -m
0755 dracut-catimages.sh
$(DESTDIR
)$(bindir)/dracut-catimages
137 install -m
0755 mkinitrd-dracut.sh
$(DESTDIR
)$(bindir)/mkinitrd
138 install -m
0755 lsinitrd.sh
$(DESTDIR
)$(bindir)/lsinitrd
139 install -m
0644 dracut.conf
$(DESTDIR
)$(sysconfdir
)/dracut.conf
140 mkdir
-p
$(DESTDIR
)$(sysconfdir
)/dracut.conf.d
141 mkdir
-p
$(DESTDIR
)$(pkglibdir
)/dracut.conf.d
142 install -m
0755 dracut-init.sh
$(DESTDIR
)$(pkglibdir
)/dracut-init.sh
143 install -m
0755 dracut-functions.sh
$(DESTDIR
)$(pkglibdir
)/dracut-functions.sh
144 install -m
0755 dracut-version.sh
$(DESTDIR
)$(pkglibdir
)/dracut-version.sh
145 ln
-fs dracut-functions.sh
$(DESTDIR
)$(pkglibdir
)/dracut-functions
146 install -m
0755 dracut-logger.sh
$(DESTDIR
)$(pkglibdir
)/dracut-logger.sh
147 install -m
0755 dracut-initramfs-restore.sh
$(DESTDIR
)$(pkglibdir
)/dracut-initramfs-restore
148 cp
-arx modules.d
$(DESTDIR
)$(pkglibdir
)
149 ifneq ($(enable_documentation
),no
)
150 for i in
$(man1pages
); do
install -m
0644 $$i $(DESTDIR
)$(mandir)/man1
/$${i
##*/}; done
151 for i in
$(man5pages
); do
install -m
0644 $$i $(DESTDIR
)$(mandir)/man5
/$${i
##*/}; done
152 for i in
$(man7pages
); do
install -m
0644 $$i $(DESTDIR
)$(mandir)/man7
/$${i
##*/}; done
153 for i in
$(man8pages
); do
install -m
0644 $$i $(DESTDIR
)$(mandir)/man8
/$${i
##*/}; done
154 ln
-fs dracut.cmdline
.7 $(DESTDIR
)$(mandir)/man7
/dracut.kernel
.7
156 if
[ -n
"$(systemdsystemunitdir)" ]; then \
157 mkdir
-p
$(DESTDIR
)$(systemdsystemunitdir
); \
158 ln
-srf
$(DESTDIR
)$(pkglibdir
)/modules.d
/98dracut-systemd
/dracut-shutdown.service
$(DESTDIR
)$(systemdsystemunitdir
)/dracut-shutdown.service
; \
159 mkdir
-p
$(DESTDIR
)$(systemdsystemunitdir
)/sysinit.target.wants
; \
160 ln
-s ..
/dracut-shutdown.service \
161 $(DESTDIR
)$(systemdsystemunitdir
)/sysinit.target.wants
/dracut-shutdown.service
; \
162 mkdir
-p
$(DESTDIR
)$(systemdsystemunitdir
)/initrd.target.wants
; \
164 dracut-cmdline.service \
165 dracut-initqueue.service \
166 dracut-mount.service \
167 dracut-pre-mount.service \
168 dracut-pre-pivot.service \
169 dracut-pre-trigger.service \
170 dracut-pre-udev.service \
172 ln
-srf
$(DESTDIR
)$(pkglibdir
)/modules.d
/98dracut-systemd
/$$i $(DESTDIR
)$(systemdsystemunitdir
); \
174 $(DESTDIR
)$(systemdsystemunitdir
)/initrd.target.wants
/$$i; \
177 if
[ -f
install/dracut-install
]; then \
178 install -m
0755 install/dracut-install
$(DESTDIR
)$(pkglibdir
)/dracut-install
; \
180 if
[ -f skipcpio
/skipcpio
]; then \
181 install -m
0755 skipcpio
/skipcpio
$(DESTDIR
)$(pkglibdir
)/skipcpio
; \
183 mkdir
-p
$(DESTDIR
)${prefix}/lib
/kernel
/install.d
184 install -m
0755 50-dracut.
install $(DESTDIR
)${prefix}/lib
/kernel
/install.d
/50-dracut.
install
185 install -m
0755 51-dracut-rescue.
install $(DESTDIR
)${prefix}/lib
/kernel
/install.d
/51-dracut-rescue.
install
186 mkdir
-p
$(DESTDIR
)${bashcompletiondir}
187 install -m
0644 dracut-bash-completion.sh
$(DESTDIR
)${bashcompletiondir}/dracut
188 install -m
0644 lsinitrd-bash-completion.sh
$(DESTDIR
)${bashcompletiondir}/lsinitrd
189 mkdir
-p
$(DESTDIR
)${pkgconfigdatadir}
190 install -m
0644 dracut.
pc $(DESTDIR
)${pkgconfigdatadir}/dracut.
pc
193 @
rm -f dracut-version.sh
194 @echo
"DRACUT_VERSION=$(DRACUT_FULL_VERSION)" > dracut-version.sh
200 $(RM
) $(manpages
:%=%.xml
) dracut.xml
202 $(RM
) dracut-
*.rpm dracut-
*.
tar.bz2 dracut-
*.
tar.xz
203 $(RM
) dracut-version.sh
204 $(RM
) dracut-install
install/dracut-install
$(DRACUT_INSTALL_OBJECTS
)
205 $(RM
) skipcpio
/skipcpio
$(SKIPCPIO_OBJECTS
)
206 $(RM
) $(manpages
) dracut.html
207 $(MAKE
) -C
test clean
209 dist: dracut-
$(DRACUT_MAIN_VERSION
).
tar.xz
211 dracut-
$(DRACUT_MAIN_VERSION
).
tar.xz
: doc syncheck
212 @echo
"DRACUT_VERSION=$(DRACUT_MAIN_VERSION)" > dracut-version.sh
213 git archive
--format
=tar $(DRACUT_MAIN_VERSION
) --prefix=dracut-
$(DRACUT_MAIN_VERSION
)/ > dracut-
$(DRACUT_MAIN_VERSION
).
tar
214 mkdir
-p dracut-
$(DRACUT_MAIN_VERSION
)
215 for i in
$(manpages
) dracut.html dracut-version.sh
; do
[ "$${i%/*}" != "$$i" ] && mkdir
-p
"dracut-$(DRACUT_MAIN_VERSION)/$${i%/*}"; cp
"$$i" "dracut-$(DRACUT_MAIN_VERSION)/$$i"; done
216 tar --owner
=root
--group
=root
-rf dracut-
$(DRACUT_MAIN_VERSION
).
tar $$(find dracut-
$(DRACUT_MAIN_VERSION
) -type f
)
217 rm -fr
-- dracut-
$(DRACUT_MAIN_VERSION
).
tar.xz dracut-
$(DRACUT_MAIN_VERSION
)
218 xz
-9 dracut-
$(DRACUT_MAIN_VERSION
).
tar
219 rm -f
-- dracut-
$(DRACUT_MAIN_VERSION
).
tar
221 rpm
: dracut-
$(DRACUT_MAIN_VERSION
).
tar.xz syncheck
222 rpmbuild
=$$(mktemp
-d
-p
/var
/tmp rpmbuild-dracut.XXXXXX
); src
=$$(pwd
); \
223 cp dracut-
$(DRACUT_MAIN_VERSION
).
tar.xz
"$$rpmbuild"; \
224 LC_MESSAGES
=C
$$src/git2spec.pl
$(DRACUT_MAIN_VERSION
) "$$rpmbuild" < dracut.spec
> $$rpmbuild/dracut.spec
; \
226 wget https
://www.gnu.org
/licenses
/lgpl-2.1.txt
; \
227 rpmbuild
--define "_topdir $$PWD" --define "_sourcedir $$PWD" \
228 --define "_specdir $$PWD" --define "_srcrpmdir $$PWD" \
229 --define "_rpmdir $$PWD" -ba dracut.spec
; ) && \
230 ( mv
"$$rpmbuild"/{,$$(uname
-m
)/}*.rpm
$(DESTDIR
).
; rm -fr
-- "$$rpmbuild"; ls
$(DESTDIR
)*.rpm
)
232 srpm
: dracut-
$(DRACUT_MAIN_VERSION
).
tar.xz syncheck
233 rpmbuild
=$$(mktemp
-d
-t rpmbuild-dracut.XXXXXX
); src
=$$(pwd
); \
234 cp dracut-
$(DRACUT_MAIN_VERSION
).
tar.xz
"$$rpmbuild"; \
235 LC_MESSAGES
=C
$$src/git2spec.pl
$(DRACUT_MAIN_VERSION
) "$$rpmbuild" < dracut.spec
> $$rpmbuild/dracut.spec
; \
237 [ -f
$$src/lgpl-2.1.txt
] && cp
$$src/lgpl-2.1.txt . || wget https
://www.gnu.org
/licenses
/lgpl-2.1.txt
; \
238 rpmbuild
--define "_topdir $$PWD" --define "_sourcedir $$PWD" \
239 --define "_specdir $$PWD" --define "_srcrpmdir $$PWD" \
240 --define "_rpmdir $$PWD" -bs dracut.spec
; ) && \
241 ( mv
"$$rpmbuild"/*.src.rpm
$(DESTDIR
).
; rm -fr
-- "$$rpmbuild"; ls
$(DESTDIR
)*.rpm
)
244 @ret
=0;for i in dracut-initramfs-restore.sh modules.d
/*/*.sh
; do \
245 [ "$${i##*/}" = "module-setup.sh" ] && continue
; \
246 read line
< "$$i"; [ "$${line#*bash*}" != "$$line" ] && continue
; \
247 [ $$V ] && echo
"posix syntax check: $$i"; bash
--posix
-n
"$$i" ; ret
=$$(($$ret+$$?
)); \
248 [ $$V ] && echo
"checking for [[: $$i"; if grep
-Fq
'[[ ' "$$i" ; then ret
=$$(($$ret+1)); echo
"$$i contains [["; fi
; \
249 [ $$V ] && echo
"checking for echo -n: $$i"; if grep
-Fq
'echo -n ' "$$i" ; then ret
=$$(($$ret+1)); echo
"$$i contains echo -n"; fi \
251 @ret
=0;for i in
*.sh mkinitrd-dracut.sh modules.d
/*/*.sh \
252 modules.d
/*/module-setup.sh
; do \
253 [ $$V ] && echo
"bash syntax check: $$i"; bash
-n
"$$i" ; ret
=$$(($$ret+$$?
)); \
256 check: all syncheck rpm
257 @
[ "$$EUID" == "0" ] ||
{ echo
"'check' must be run as root! Please use 'sudo'."; exit
1; }
258 @
$(MAKE
) -C
test check
261 .
/dracut.sh
-N
-l
-a debug
-f test-
$(KVERSION
).img
$(KVERSION
)
262 @echo wrote test-
$(KVERSION
).img
265 .
/dracut.sh
--debug
-l
-a debug
-f test-
$(KVERSION
).img
$(KVERSION
)
266 @echo wrote test-
$(KVERSION
).img
269 .
/dracut.sh
-l
-a debug
--kernel-only
-f test-kernel-
$(KVERSION
).img
$(KVERSION
)
270 @echo wrote test-
$(KVERSION
).img
271 .
/dracut.sh
-l
-a debug
--no-kernel
-f test-dracut.img
$(KVERSION
)
272 @echo wrote test-dracut.img
275 .
/dracut.sh
--debug
-H
-l
-f test-
$(KVERSION
).img
$(KVERSION
)
276 @echo wrote test-
$(KVERSION
).img
279 .
/dracut.sh
-H
-l
-f test-
$(KVERSION
).img
$(KVERSION
)
280 @echo wrote test-
$(KVERSION
).img
283 .
/dracut.sh
--uefi
-H
-l
-f linux-
$(KVERSION
).efi
$(KVERSION
)
284 @echo wrote linux-
$(KVERSION
).efi
287 git shortlog
--numbered
--summary
-e |while read a rest ||
[ -n
"$$rest" ]; do echo
$$rest;done
> AUTHORS
290 @git shortlog
$(DRACUT_MAIN_VERSION
)..
--numbered
--summary
-e |while read a rest ||
[ -n
"$$rest" ]; do echo
"- $$rest";done
292 dracut.html.sign
: dracut-
$(DRACUT_MAIN_VERSION
).
tar.xz dracut.html
293 gpg-sign-all dracut-
$(DRACUT_MAIN_VERSION
).
tar.xz dracut.html
295 upload
: dracut.html.sign
296 kup put dracut-
$(DRACUT_MAIN_VERSION
).
tar.xz dracut-
$(DRACUT_MAIN_VERSION
).
tar.sign
/pub
/linux
/utils
/boot
/dracut
/
297 kup put dracut.html dracut.html.sign
/pub
/linux
/utils
/boot
/dracut
/