X-Git-Url: http://git.ipfire.org/?p=thirdparty%2Fdracut.git;a=blobdiff_plain;f=Makefile;h=503d069fb51ab9016b35063ad5ad6e157b73b6f3;hp=909d523c4ba14503fd6b2bbe1e80a1537009d0ac;hb=HEAD;hpb=3420a70dee112bc92ea6a805455846eeb139228e diff --git a/Makefile b/Makefile index 909d523c4..333cd68d6 100644 --- a/Makefile +++ b/Makefile @@ -1,17 +1,16 @@ -include dracut-version.sh -DRACUT_MAIN_VERSION ?= $(shell env GIT_CEILING_DIRECTORIES=$(CWD)/.. git describe --abbrev=0 --tags --always 2>/dev/null || :) +DRACUT_MAIN_VERSION ?= $(shell env GIT_CEILING_DIRECTORIES=$(CURDIR)/.. git describe --abbrev=0 --tags --always 2>/dev/null || :) ifeq ($(DRACUT_MAIN_VERSION),) DRACUT_MAIN_VERSION = $(DRACUT_VERSION) endif -DRACUT_FULL_VERSION ?= $(shell env GIT_CEILING_DIRECTORIES=$(CWD)/.. git describe --tags --always 2>/dev/null || :) +DRACUT_FULL_VERSION ?= $(shell env GIT_CEILING_DIRECTORIES=$(CURDIR)/.. git describe --tags --always 2>/dev/null || :) ifeq ($(DRACUT_FULL_VERSION),) DRACUT_FULL_VERSION = $(DRACUT_VERSION) endif -HAVE_SHELLCHECK ?= $(shell which shellcheck >/dev/null 2>&1 && echo yes) -HAVE_SHFMT ?= $(shell which shfmt >/dev/null 2>&1 && echo yes) -HAVE_RPMBUILD ?= $(shell which rpmbuild >/dev/null 2>&1 && echo yes) +HAVE_SHELLCHECK ?= $(shell command -v shellcheck >/dev/null 2>&1 && echo yes) +HAVE_SHFMT ?= $(shell command -v shfmt >/dev/null 2>&1 && echo yes) -include Makefile.inc @@ -49,9 +48,9 @@ man8pages = man/dracut.8 \ manpages = $(man1pages) $(man5pages) $(man7pages) $(man8pages) -.PHONY: install clean archive rpm srpm testimage test all check AUTHORS CONTRIBUTORS doc dracut-version.sh +.PHONY: install clean archive testimage test all check AUTHORS CONTRIBUTORS doc -all: dracut-version.sh dracut.pc dracut-install src/skipcpio/skipcpio dracut-util +all: dracut.pc dracut-install src/skipcpio/skipcpio dracut-util %.o : %.c $(CC) -c $(CFLAGS) $(CPPFLAGS) $(KMOD_CFLAGS) $< -o $@ @@ -102,6 +101,16 @@ ifeq ($(HAVE_SHFMT),yes) shfmt -w -s . endif +src/dracut-cpio/target/release/dracut-cpio: src/dracut-cpio/src/main.rs + cargo --offline build --release --manifest-path src/dracut-cpio/Cargo.toml + +dracut-cpio: src/dracut-cpio/target/release/dracut-cpio + ln -fs $< $@ + +ifeq ($(enable_dracut_cpio),yes) +all: dracut-cpio +endif + doc: $(manpages) dracut.html ifneq ($(enable_documentation),no) @@ -119,7 +128,7 @@ endif dracut.8: man/dracut.8.asc \ man/dracut.usage.asc -dracut.html: man/dracut.asc $(manpages) dracut.css man/dracut.usage.asc +dracut.html: man/dracut.asc $(manpages) docs/dracut.css man/dracut.usage.asc @rm -f -- dracut.xml asciidoc -a "mainversion=$(DRACUT_MAIN_VERSION)" \ -a "version=$(DRACUT_FULL_VERSION)" \ @@ -127,7 +136,7 @@ dracut.html: man/dracut.asc $(manpages) dracut.css man/dracut.usage.asc -d book -b docbook -o dracut.xml man/dracut.asc @rm -f -- dracut.html xsltproc -o dracut.html --xinclude -nonet \ - --stringparam custom.css.source dracut.css \ + --stringparam custom.css.source docs/dracut.css \ --stringparam generate.css.header 1 \ http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl dracut.xml @rm -f -- dracut.xml @@ -168,6 +177,7 @@ ifneq ($(enable_documentation),no) endif if [ -n "$(systemdsystemunitdir)" ]; then \ mkdir -p $(DESTDIR)$(systemdsystemunitdir); \ + ln -srf $(DESTDIR)$(pkglibdir)/modules.d/98dracut-systemd/dracut-shutdown-onfailure.service $(DESTDIR)$(systemdsystemunitdir)/dracut-shutdown-onfailure.service; \ ln -srf $(DESTDIR)$(pkglibdir)/modules.d/98dracut-systemd/dracut-shutdown.service $(DESTDIR)$(systemdsystemunitdir)/dracut-shutdown.service; \ mkdir -p $(DESTDIR)$(systemdsystemunitdir)/sysinit.target.wants; \ ln -s ../dracut-shutdown.service \ @@ -196,6 +206,9 @@ endif if [ -f dracut-util ]; then \ install -m 0755 dracut-util $(DESTDIR)$(pkglibdir)/dracut-util; \ fi +ifeq ($(enable_dracut_cpio),yes) + install -m 0755 dracut-cpio $(DESTDIR)$(pkglibdir)/dracut-cpio +endif mkdir -p $(DESTDIR)${prefix}/lib/kernel/install.d install -m 0755 install.d/50-dracut.install $(DESTDIR)${prefix}/lib/kernel/install.d/50-dracut.install install -m 0755 install.d/51-dracut-rescue.install $(DESTDIR)${prefix}/lib/kernel/install.d/51-dracut-rescue.install @@ -205,65 +218,32 @@ endif mkdir -p $(DESTDIR)${pkgconfigdatadir} install -m 0644 dracut.pc $(DESTDIR)${pkgconfigdatadir}/dracut.pc -dracut-version.sh: - @rm -f dracut-version.sh - @printf "#!/bin/sh\n# shellcheck disable=SC2034\nDRACUT_VERSION=%s\n" "$(DRACUT_FULL_VERSION)" > dracut-version.sh - clean: $(RM) *~ $(RM) */*~ $(RM) */*/*~ $(RM) $(manpages:%=%.xml) dracut.xml $(RM) test-*.img - $(RM) dracut-*.rpm dracut-*.tar.bz2 dracut-*.tar.xz - $(RM) dracut-version.sh + $(RM) dracut-*.tar.bz2 dracut-*.tar.xz $(RM) dracut-install src/install/dracut-install $(DRACUT_INSTALL_OBJECTS) $(RM) skipcpio/skipcpio $(SKIPCPIO_OBJECTS) $(RM) dracut-util util/util $(UTIL_OBJECTS) $(RM) $(manpages) dracut.html $(RM) dracut.pc + $(RM) dracut-cpio src/dracut-cpio/target/release/dracut-cpio* $(MAKE) -C test clean dist: dracut-$(DRACUT_MAIN_VERSION).tar.xz dracut-$(DRACUT_MAIN_VERSION).tar.xz: doc syncheck - @echo "DRACUT_VERSION=$(DRACUT_MAIN_VERSION)" > dracut-version.sh git archive --format=tar $(DRACUT_MAIN_VERSION) --prefix=dracut-$(DRACUT_MAIN_VERSION)/ > dracut-$(DRACUT_MAIN_VERSION).tar mkdir -p dracut-$(DRACUT_MAIN_VERSION) - 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 + for i in $(manpages) dracut.html; do [ "$${i%/*}" != "$$i" ] && mkdir -p "dracut-$(DRACUT_MAIN_VERSION)/$${i%/*}"; cp "$$i" "dracut-$(DRACUT_MAIN_VERSION)/$$i"; done tar --owner=root --group=root -rf dracut-$(DRACUT_MAIN_VERSION).tar $$(find dracut-$(DRACUT_MAIN_VERSION) -type f) rm -fr -- dracut-$(DRACUT_MAIN_VERSION).tar.xz dracut-$(DRACUT_MAIN_VERSION) xz -9 dracut-$(DRACUT_MAIN_VERSION).tar rm -f -- dracut-$(DRACUT_MAIN_VERSION).tar -ifeq ($(HAVE_RPMBUILD),yes) -rpm: dracut-$(DRACUT_MAIN_VERSION).tar.xz syncheck - rpmbuild=$$(mktemp -d -p /var/tmp rpmbuild-dracut.XXXXXX); src=$$(pwd); \ - cp dracut-$(DRACUT_MAIN_VERSION).tar.xz "$$rpmbuild"; \ - LC_MESSAGES=C $$src/tools/git2spec.pl $(DRACUT_MAIN_VERSION) "$$rpmbuild" < pkgbuild/dracut.spec > $$rpmbuild/dracut.spec; \ - (cd "$$rpmbuild"; \ - wget https://www.gnu.org/licenses/lgpl-2.1.txt; \ - rpmbuild --define "_topdir $$PWD" --define "_sourcedir $$PWD" \ - --define "_specdir $$PWD" --define "_srcrpmdir $$PWD" \ - --define "_rpmdir $$PWD" -ba dracut.spec; ) && \ - ( mv "$$rpmbuild"/{,$$(uname -m)/}*.rpm $(DESTDIR).; rm -fr -- "$$rpmbuild"; ls $(DESTDIR)*.rpm ) - -srpm: dracut-$(DRACUT_MAIN_VERSION).tar.xz syncheck - rpmbuild=$$(mktemp -d -t rpmbuild-dracut.XXXXXX); src=$$(pwd); \ - cp dracut-$(DRACUT_MAIN_VERSION).tar.xz "$$rpmbuild"; \ - LC_MESSAGES=C $$src/tools/git2spec.pl $(DRACUT_MAIN_VERSION) "$$rpmbuild" < pkgbuild/dracut.spec > $$rpmbuild/dracut.spec; \ - (cd "$$rpmbuild"; \ - [ -f $$src/lgpl-2.1.txt ] && cp $$src/lgpl-2.1.txt . || wget https://www.gnu.org/licenses/lgpl-2.1.txt; \ - rpmbuild --define "_topdir $$PWD" --define "_sourcedir $$PWD" \ - --define "_specdir $$PWD" --define "_srcrpmdir $$PWD" \ - --define "_rpmdir $$PWD" -bs dracut.spec; ) && \ - ( mv "$$rpmbuild"/*.src.rpm $(DESTDIR).; rm -fr -- "$$rpmbuild"; ls $(DESTDIR)*.rpm ) -else -.PHONY: rpm srpm -rpm: syncheck -srpm: syncheck -endif - syncheck: @ret=0;for i in dracut-initramfs-restore.sh modules.d/*/*.sh; do \ [ "$${i##*/}" = "module-setup.sh" ] && continue; \ @@ -283,7 +263,7 @@ else endif endif -check: all syncheck rpm +check: all syncheck @[ "$$EUID" == "0" ] || { echo "'check' must be run as root! Please use 'sudo'."; exit 1; } @$(MAKE) -C test check @@ -314,14 +294,7 @@ efi: all @echo wrote linux-$(KVERSION).efi AUTHORS: - git shortlog --numbered --summary -e |while read a rest || [ -n "$$rest" ]; do echo $$rest;done > AUTHORS + @git log | git shortlog --numbered --summary -e | while read -r a rest || [ -n "$$rest" ]; do echo "$$rest"; done > AUTHORS CONTRIBUTORS: - @git shortlog $(DRACUT_MAIN_VERSION).. --numbered --summary -e |while read a rest || [ -n "$$rest" ]; do echo "- $$rest";done - -dracut.html.sign: dracut-$(DRACUT_MAIN_VERSION).tar.xz dracut.html - gpg-sign-all dracut-$(DRACUT_MAIN_VERSION).tar.xz dracut.html - -upload: dracut.html.sign - kup put dracut-$(DRACUT_MAIN_VERSION).tar.xz dracut-$(DRACUT_MAIN_VERSION).tar.sign /pub/linux/utils/boot/dracut/ - kup put dracut.html dracut.html.sign /pub/linux/utils/boot/dracut/ + @git log | git shortlog $(DRACUT_MAIN_VERSION).. --numbered --summary -e | while read -r a rest || [ -n "$$rest" ]; do echo "- $$rest"; done