Blob Blame History Raw
default : all

TOPDIR = $(shell echo $$PWD)

include $(TOPDIR)/Makefile.version

DESTDIR ?=
RPM = $(shell command -v rpm)
ifeq (${RPM},)
$(error rpm could not be found)
endif
MACRODIR = $(shell ${RPM} --eval '%{_rpmmacrodir}')
ifeq (${MACRODIR},)
$(error rpm macro directory could not be found)
endif

EFI_ESP_ROOT	?= /boot/efi
EFI_ARCHES	?= x86_64 aarch64 %{arm} %{ix86}
EFI_VENDOR	?=

# TARGETS = macros.efi macros.efi-srpm efi-rpm-macros.spec
TARGETS = macros.efi-srpm efi-rpm-macros.spec

check_efi_vendor :
ifeq ($(EFI_VENDOR),)
	$(error EFI_VENDOR must be set)
endif

all : | check_efi_vendor
all : $(TARGETS)

clean :
	@rm -vf $(TARGETS)

install : | check_efi_vendor
install : $(TARGETS)
	install -d -m 0755 $(DESTDIR)/$(MACRODIR)
	# install -m 0644 macros.efi $(DESTDIR)/$(MACRODIR)/
	install -m 0644 macros.efi-srpm $(DESTDIR)/$(MACRODIR)/
	if [[ "$(EFI_ESP_ROOT)" != /boot ]] ; then \
		install -d -m 0755 $(DESTDIR)/boot ; \
	fi
	install -d -m 0700 $(DESTDIR)/$(EFI_ESP_ROOT)
	install -d -m 0700 $(DESTDIR)/$(EFI_ESP_ROOT)/EFI/BOOT
	install -d -m 0700 $(DESTDIR)/$(EFI_ESP_ROOT)/EFI/$(EFI_VENDOR)

$(TARGETS) :
% : %.in
	@echo creating $@
	@sed	\
		-e 's,@@EFI_ESP_ROOT@@,$(EFI_ESP_ROOT),g' \
		-e 's,@@EFI_ARCHES@@,$(EFI_ARCHES),g' \
		-e 's,@@EFI_VENDOR@@,$(EFI_VENDOR),g' \
		-e 's,@@EFI_RPM_MACROS_VERSION@@,$(VERSION),g' \
		<$^ >$@

test-archive: efi-rpm-macros.spec
	@rm -rf /tmp/efi-rpm-macros-$(VERSION) /tmp/efi-rpm-macros-$(VERSION)-tmp
	@mkdir -p /tmp/efi-rpm-macros-$(VERSION)-tmp
	@git archive --format=tar $(shell git branch | awk '/^*/ { print $$2 }') | ( cd /tmp/efi-rpm-macros-$(VERSION)-tmp/ ; tar x )
	@git diff | ( cd /tmp/efi-rpm-macros-$(VERSION)-tmp/ ; patch -s -p1 -b -z .gitdiff )
	@mv /tmp/efi-rpm-macros-$(VERSION)-tmp/ /tmp/efi-rpm-macros-$(VERSION)/
	@cp efi-rpm-macros.spec /tmp/efi-rpm-macros-$(VERSION)/
	@dir=$$PWD; cd /tmp; tar -c --bzip2 -f $$dir/efi-rpm-macros-$(VERSION).tar.bz2 efi-rpm-macros-$(VERSION)
	@rm -rf /tmp/efi-rpm-macros-$(VERSION)
	@echo "The archive is in efi-rpm-macros-$(VERSION).tar.bz2"

GITTAG ?= $(shell bash -c "echo $$(($(VERSION) + 1))")

bumpver :
	@echo VERSION ?= $(GITTAG) > Makefile.version
	@git add Makefile.version
	git commit -m "Bump version to $(GITTAG)" -s

tag:
	git tag -s $(GITTAG) refs/heads/master

archive: bumpver tag
	@rm -vf efi-rpm-macros.spec
	@$(MAKE) VERSION=$(GITTAG) efi-rpm-macros.spec
	@rm -rf /tmp/efi-rpm-macros-$(GITTAG) /tmp/efi-rpm-macros-$(GITTAG)-tmp
	@mkdir -p /tmp/efi-rpm-macros-$(GITTAG)-tmp
	@git archive --format=tar $(GITTAG) | ( cd /tmp/efi-rpm-macros-$(GITTAG)-tmp/ ; tar x )
	@mv /tmp/efi-rpm-macros-$(GITTAG)-tmp/ /tmp/efi-rpm-macros-$(GITTAG)/
	@cp efi-rpm-macros.spec /tmp/efi-rpm-macros-$(GITTAG)/
	@dir=$$PWD; cd /tmp; tar -c --bzip2 -f $$dir/efi-rpm-macros-$(GITTAG).tar.bz2 efi-rpm-macros-$(GITTAG)
	@rm -rf /tmp/efi-rpm-macros-$(GITTAG)
	@echo "The archive is in efi-rpm-macros-$(GITTAG).tar.bz2"

.PHONY : default all clean install test-archive bumpver tag archive