2013-03-08 10:06:08 +04:00
VERSION = 026
2009-03-05 13:05:35 +03:00
GITVERSION = $( shell [ -d .git ] && git rev-list --abbrev-commit -n 1 HEAD | cut -b 1-8)
2009-03-05 12:17:29 +03:00
2012-09-27 05:59:55 +04:00
- i n c l u d e M a k e f i l e . i n c
2009-09-27 08:26:43 +04:00
prefix ?= /usr
2011-11-23 12:42:10 +04:00
libdir ?= ${ prefix } /lib
2009-09-27 08:26:43 +04:00
datadir ?= ${ prefix } /share
2011-11-23 12:42:10 +04:00
pkglibdir ?= ${ libdir } /dracut
2009-09-27 08:26:43 +04:00
sysconfdir ?= ${ prefix } /etc
2012-01-05 17:36:45 +04:00
bindir ?= ${ prefix } /bin
2009-09-27 08:26:43 +04:00
mandir ?= ${ prefix } /share/man
2012-07-26 00:08:23 +04:00
CFLAGS ?= -O2 -g -Wall
2013-03-18 13:58:25 +04:00
CFLAGS += -std= gnu99 -D_FILE_OFFSET_BITS= 64
2013-03-13 15:46:16 +04:00
bashcompletiondir ?= ${ datadir } /bash-completion/completions
2009-06-04 19:19:42 +04:00
2012-07-23 13:10:13 +04:00
man1pages = lsinitrd.1
man5pages = dracut.conf.5
man7pages = dracut.cmdline.7
man8pages = dracut.8 \
dracut-catimages.8 \
mkinitrd.8 \
modules.d/98systemd/dracut-cmdline.service.8 \
modules.d/98systemd/dracut-initqueue.service.8 \
2013-03-07 12:42:00 +04:00
modules.d/98systemd/dracut-mount.service.8 \
modules.d/98systemd/dracut-pre-mount.service.8 \
2012-07-23 13:10:13 +04:00
modules.d/98systemd/dracut-pre-pivot.service.8 \
modules.d/98systemd/dracut-pre-trigger.service.8 \
modules.d/98systemd/dracut-pre-udev.service.8 \
modules.d/98systemd/udevadm-cleanup-db.service.8
manpages = $( man1pages) $( man5pages) $( man7pages) $( man8pages)
2009-09-30 12:18:25 +04:00
2011-05-31 18:34:37 +04:00
.PHONY : install clean archive rpm testimage test all check AUTHORS doc
2009-03-04 15:54:55 +03:00
2012-07-26 14:27:29 +04:00
all : syncheck dracut -version .sh dracut -install
2012-06-30 11:12:35 +04:00
2012-07-26 14:27:29 +04:00
DRACUT_INSTALL_OBJECTS = \
install/dracut-install.o \
install/hashmap.o\
install/log.o \
install/util.o
2012-06-30 11:12:35 +04:00
2012-07-27 11:34:32 +04:00
# deps generated with gcc -MM
install/dracut-install.o : install /dracut -install .c install /log .h install /macro .h \
install/hashmap.h install/util.h
install/hashmap.o : install /hashmap .c install /util .h install /macro .h install /log .h \
install/hashmap.h
install/log.o : install /log .c install /log .h install /macro .h install /util .h
install/util.o : install /util .c install /util .h install /macro .h install /log .h
2012-07-26 14:27:29 +04:00
install/dracut-install : $( DRACUT_INSTALL_OBJECTS )
2012-07-26 13:50:50 +04:00
2012-07-26 14:27:29 +04:00
dracut-install : install /dracut -install
ln -fs $< $@
2012-06-30 11:12:35 +04:00
indent :
indent -i8 -nut -br -linux -l120 install/dracut-install.c
2010-08-05 18:38:49 +04:00
2012-03-14 18:19:39 +04:00
doc : $( manpages ) dracut .html
2012-09-27 19:04:37 +04:00
i f n e q ( $( enable_documentation ) , n o )
2012-02-07 22:53:58 +04:00
all : doc
e n d i f
2010-08-05 18:38:49 +04:00
% : %.xml
xsltproc -o $@ -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
2008-12-18 23:58:15 +03:00
2012-03-14 16:58:26 +04:00
%.xml : %.asc
asciidoc -d manpage -b docbook -o $@ $<
dracut.html : dracut .asc $( manpages )
asciidoc -a numbered -d book -b docbook -o dracut.xml dracut.asc
2010-10-15 15:14:08 +04:00
xsltproc -o dracut.html --xinclude -nonet \
2012-03-14 18:19:39 +04:00
--stringparam html.stylesheet \
2012-10-10 16:32:18 +04:00
http://docs.fedoraproject.org/en-US/Common_Content/css/default.css \
2010-11-10 17:05:04 +03:00
http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl dracut.xml
2012-03-14 16:58:26 +04:00
rm dracut.xml
2010-08-23 14:25:03 +04:00
2012-02-07 22:53:58 +04:00
install : dracut -version .sh
2009-06-04 19:19:42 +04:00
mkdir -p $( DESTDIR) $( pkglibdir)
2011-11-23 12:29:50 +04:00
mkdir -p $( DESTDIR) $( bindir)
2009-06-04 19:19:42 +04:00
mkdir -p $( DESTDIR) $( sysconfdir)
mkdir -p $( DESTDIR) $( pkglibdir) /modules.d
2012-07-03 16:18:55 +04:00
mkdir -p $( DESTDIR) $( mandir) /man1 $( DESTDIR) $( mandir) /man5 $( DESTDIR) $( mandir) /man7 $( DESTDIR) $( mandir) /man8
2012-02-22 13:14:17 +04:00
install -m 0755 dracut.sh $( DESTDIR) $( bindir) /dracut
install -m 0755 dracut-catimages.sh $( DESTDIR) $( bindir) /dracut-catimages
2011-11-23 12:29:50 +04:00
install -m 0755 mkinitrd-dracut.sh $( DESTDIR) $( bindir) /mkinitrd
2012-02-22 13:14:17 +04:00
install -m 0755 lsinitrd.sh $( DESTDIR) $( bindir) /lsinitrd
2009-06-04 19:19:42 +04:00
install -m 0644 dracut.conf $( DESTDIR) $( sysconfdir) /dracut.conf
2010-02-12 13:12:37 +03:00
mkdir -p $( DESTDIR) $( sysconfdir) /dracut.conf.d
2013-02-19 20:36:15 +04:00
mkdir -p $( DESTDIR) $( pkglibdir) /dracut.conf.d
2012-02-22 13:14:17 +04:00
install -m 0755 dracut-functions.sh $( DESTDIR) $( pkglibdir) /dracut-functions.sh
2012-05-22 16:28:34 +04:00
install -m 0755 dracut-version.sh $( DESTDIR) $( pkglibdir) /dracut-version.sh
2012-07-26 14:27:29 +04:00
ln -fs dracut-functions.sh $( DESTDIR) $( pkglibdir) /dracut-functions
2012-02-22 13:14:17 +04:00
install -m 0755 dracut-logger.sh $( DESTDIR) $( pkglibdir) /dracut-logger.sh
2012-02-10 14:14:42 +04:00
install -m 0755 dracut-initramfs-restore.sh $( DESTDIR) $( pkglibdir) /dracut-initramfs-restore
2009-06-04 19:19:42 +04:00
cp -arx modules.d $( DESTDIR) $( pkglibdir)
2012-09-27 19:04:37 +04:00
i f n e q ( $( enable_documentation ) , n o )
2012-07-23 13:10:13 +04:00
for i in $( man1pages) ; do install -m 0644 $$ i $( DESTDIR) $( mandir) /man1/$$ { i##*/} ; done
for i in $( man5pages) ; do install -m 0644 $$ i $( DESTDIR) $( mandir) /man5/$$ { i##*/} ; done
for i in $( man7pages) ; do install -m 0644 $$ i $( DESTDIR) $( mandir) /man7/$$ { i##*/} ; done
for i in $( man8pages) ; do install -m 0644 $$ i $( DESTDIR) $( mandir) /man8/$$ { i##*/} ; done
2012-07-26 14:27:29 +04:00
ln -fs dracut.cmdline.7 $( DESTDIR) $( mandir) /man7/dracut.kernel.7
2012-02-07 22:53:58 +04:00
e n d i f
2012-02-10 12:37:18 +04:00
if [ -n " $( systemdsystemunitdir) " ] ; then \
mkdir -p $( DESTDIR) $( systemdsystemunitdir) ; \
2012-07-09 14:41:56 +04:00
install -m 0644 dracut-shutdown.service $( DESTDIR) $( systemdsystemunitdir) ; \
2012-02-16 12:36:13 +04:00
mkdir -p $( DESTDIR) $( systemdsystemunitdir) /shutdown.target.wants; \
2012-03-14 18:19:39 +04:00
ln -s ../dracut-shutdown.service \
$( DESTDIR) $( systemdsystemunitdir) /shutdown.target.wants/dracut-shutdown.service; \
2012-02-10 12:37:18 +04:00
fi
2012-07-26 14:27:29 +04:00
if [ -f install/dracut-install ] ; then \
install -m 0755 install/dracut-install $( DESTDIR) $( pkglibdir) /dracut-install; \
2012-07-26 00:08:23 +04:00
fi
2013-03-07 12:49:29 +04:00
mkdir -p $( DESTDIR) ${ prefix } /lib/kernel/install.d
install -m 0755 50-dracut.install $( DESTDIR) ${ prefix } /lib/kernel/install.d/50-dracut.install
2013-03-09 18:09:55 +04:00
install -m 0755 51-dracut-rescue.install $( DESTDIR) ${ prefix } /lib/kernel/install.d/51-dracut-rescue.install
2013-03-13 15:46:16 +04:00
mkdir -p $( DESTDIR) ${ bashcompletiondir }
install -m 0644 dracut-bash-completion.sh $( DESTDIR) ${ bashcompletiondir } /dracut
2009-03-04 16:23:02 +03:00
2012-05-22 16:28:34 +04:00
dracut-version.sh :
@echo " DRACUT_VERSION= $( VERSION) - $( GITVERSION) " > dracut-version.sh
2008-12-18 23:58:15 +03:00
clean :
2010-08-06 13:49:50 +04:00
$( RM) *~
$( RM) */*~
$( RM) */*/*~
2012-10-16 16:51:42 +04:00
$( RM) $( manpages:%= %.xml) dracut.xml
2010-08-06 13:49:50 +04:00
$( RM) test-*.img
$( RM) dracut-*.rpm dracut-*.tar.bz2
2012-07-27 11:34:32 +04:00
$( RM) dracut-install install/dracut-install $( DRACUT_INSTALL_OBJECTS)
2010-08-23 14:25:03 +04:00
$( RM) $( manpages) dracut.html
2010-08-06 13:49:50 +04:00
$( MAKE) -C test clean
2008-12-18 23:58:15 +03:00
2009-03-05 12:48:18 +03:00
archive : dracut -$( VERSION ) -$( GITVERSION ) .tar .bz 2
2012-03-14 18:19:39 +04:00
dist : dracut -$( VERSION ) .tar .bz 2
2009-06-19 15:53:46 +04:00
2012-03-14 18:19:39 +04:00
dracut-$(VERSION).tar.bz2 : doc
git archive --format= tar $( VERSION) --prefix= dracut-$( VERSION) / > dracut-$( VERSION) .tar
mkdir -p dracut-$( VERSION)
cp $( manpages) dracut.html dracut-$( VERSION)
tar -rf dracut-$( VERSION) .tar dracut-$( VERSION) /*.[ 0-9] dracut-$( VERSION) /dracut.html
rm -fr dracut-$( VERSION) .tar.bz2 dracut-$( VERSION)
bzip2 -9 dracut-$( VERSION) .tar
rm -f dracut-$( VERSION) .tar
2011-03-31 20:45:01 +04:00
2011-05-31 18:34:37 +04:00
rpm : dracut -$( VERSION ) .tar .bz 2
2011-11-09 12:51:15 +04:00
rpmbuild = $$ ( mktemp -d -t rpmbuild-dracut.XXXXXX) ; src = $$ ( pwd ) ; \
cp dracut-$( VERSION) .tar.bz2 " $$ rpmbuild " ; \
2012-07-19 15:34:51 +04:00
LC_MESSAGES = C $$ src/git2spec.pl $( VERSION) " $$ rpmbuild " < dracut.spec > $$ rpmbuild/dracut.spec; \
2011-11-09 12:51:15 +04:00
( cd " $$ rpmbuild " ; rpmbuild --define " _topdir $$ PWD " --define " _sourcedir $$ PWD " \
2011-05-31 18:34:37 +04:00
--define " _specdir $$ PWD " --define " _srcrpmdir $$ PWD " \
2011-11-09 12:51:15 +04:00
--define " _rpmdir $$ PWD " -ba dracut.spec; ) && \
2012-06-29 13:59:09 +04:00
( mv " $$ rpmbuild " /$$ ( arch) /*.rpm .; mv " $$ rpmbuild " /*.src.rpm .; rm -fr " $$ rpmbuild " ; ls *.rpm )
2009-03-05 12:33:18 +03:00
2011-03-17 14:12:48 +03:00
syncheck :
2012-02-22 13:14:17 +04:00
@ret= 0; for i in dracut-initramfs-restore.sh dracut-logger.sh \
modules.d/99base/init.sh modules.d/*/*.sh; do \
2011-02-18 15:11:53 +03:00
[ " $$ {i##*/} " = "module-setup.sh" ] && continue ; \
2012-04-04 17:51:10 +04:00
read line < " $$ i " ; [ " $$ {line#*bash*} " != " $$ line " ] && continue ; \
2009-05-15 14:44:36 +04:00
dash -n " $$ i " ; ret = $$ ( ( $$ ret+$$ ?) ) ; \
done ; exit $$ ret
2012-04-04 17:51:10 +04:00
@ret= 0; for i in *.sh mkinitrd-dracut.sh modules.d/*/*.sh \
2012-02-10 12:37:18 +04:00
modules.d/*/module-setup.sh; do \
2011-03-17 14:12:48 +03:00
bash -n " $$ i " ; ret = $$ ( ( $$ ret+$$ ?) ) ; \
done ; exit $$ ret
check : all syncheck
2012-07-31 15:46:51 +04:00
@[ " $$ EUID " = = "0" ] || { echo "'check' must be run as root! Please use 'sudo'." ; exit 1; }
@$( MAKE) -C test check
2009-05-15 14:44:36 +04:00
2009-03-05 13:07:52 +03:00
testimage : all
2012-02-22 13:14:17 +04:00
./dracut.sh -l -a debug -f test-$( shell uname -r) .img $( shell uname -r)
2012-06-29 13:59:09 +04:00
@echo wrote test-$( shell uname -r) .img
2009-07-22 14:43:26 +04:00
testimages : all
2012-02-22 13:14:17 +04:00
./dracut.sh -l -a debug --kernel-only -f test-kernel-$( shell uname -r) .img $( shell uname -r)
2012-06-29 13:59:09 +04:00
@echo wrote test-$( shell uname -r) .img
2012-02-22 13:14:17 +04:00
./dracut.sh -l -a debug --no-kernel -f test-dracut.img $( shell uname -r)
2012-06-29 13:59:09 +04:00
@echo wrote test-dracut.img
2009-11-27 12:53:28 +03:00
2009-08-19 19:10:38 +04:00
hostimage : all
2012-02-22 13:14:17 +04:00
./dracut.sh -H -l -a debug -f test-$( shell uname -r) .img $( shell uname -r)
2012-06-29 13:59:09 +04:00
@echo wrote test-$( shell uname -r) .img
2009-07-22 14:43:26 +04:00
2009-10-07 12:11:55 +04:00
AUTHORS :
git shortlog --numbered --summary -e | while read a rest; do echo $$ rest; done > AUTHORS
2012-07-20 15:11:21 +04:00
dracut.html.sign : dracut -$( VERSION ) .tar .bz 2
gpg-sign-all dracut-$( VERSION) .tar.bz2 dracut.html
upload : dracut .html .sign
kup put dracut-$( VERSION) .tar.bz2 dracut-$( VERSION) .tar.sign /pub/linux/utils/boot/dracut/
kup put dracut.html dracut.html.sign /pub/linux/utils/boot/dracut/