RPM/CommonMakefile

De TartareFR
Aller à la navigation Aller à la recherche

Fichier Makefile servant à fedora17 ( domicile )

RPMDEFINES := --define "_sourcedir $(SRCDIR)" \
              --define "_specdir $(SRCDIR)" \
              --define "_srcrpmdir $(SRCDIR)" \
              --define "_rpmdir $(SRCDIR)"

SRCDEFINES := --define "_source_filedigest_algorithm 1" \
              --define "_binary_filedigest_algorithm 1"

TARGET := fedora-17-x86_64
      
all: clean build

clean:
        @echo Clean $(NAME) in $(SRCDIR)
        @rm -rfv *~ *.log *.rpm

rpmlint:
        rpmlint *.rpm > $(SRCDIR)/lint.log || true

srpm:
        rpmbuild $(RPMDEFINES) $(SRCDEFINES) -bs $(NAME).spec

build: srpm
        mock -r '$(TARGET)' rebuild *.src.rpm
        mv /var/lib/mock/$(TARGET)/result/*.rpm $(SRCDIR)
        mv /var/lib/mock/$(TARGET)/result/*.log $(SRCDIR)

Repo b2p

SRPM_OPTS := --define "_binary_filedigest_algorithm md5" \
                  --define "_source_filedigest_algorithm md5" \
                  --define "_srcrpmdir $(SRCDIR)" \
                  --define "_sourcedir $(SRCDIR)" \
                  --nodeps


SPECS := *.spec
DISTROS := 5 6
SRPMS := *.src.rpm
MOCK_ROOT := /var/lib/mock
ARCHES := i386 x86_64
REPO := /home/didier/repository

targets: clean mock updaterepo

sources: $(SPECS)
	rpmbuild -bs $(SRPM_OPTS) $<

rpmlint: $(SPECS) sources
	rpmlint $(SPECS) $(SRPMS) > $(SRCDIR)/rpmlint.log

centos%: sources
	for srpm in *.src.rpm ; do name=$$(rpm -qp --queryformat %{NAME} \
	$$sources) ; plague-client build $$name $$srpm $@ ; done

clean:
	@echo Cleaning $(NAME)
	@rm -f *.src.rpm *.log *~

mock: sources
	@for srpm in $(SRPMS) ; do \
		for distro in $(DISTROS) ; do \
			for arch in $(ARCHES) ; do \
				mock -r centos-$$distro-$$arch $$srpm ; \
				for log in $(MOCK_ROOT)/centos-$$distro-$$arch/result/*.log ; do \
					newname=$$(basename $${log} .log)-centos$$distro-$$arch.log ; \
					mv $$log $(SRCDIR)/$$newname ; \
				done ; \
				mv $(MOCK_ROOT)/centos-$$distro-$$arch/result/*.src.rpm $(REPO)/$$distro/SRPMS/ ; \
				mv $(MOCK_ROOT)/centos-$$distro-$$arch/result/*.rpm $(REPO)/$$distro/RPMS/$$arch/ ; \
				mock --scrub=all -r centos-$$distro-$$arch clean ; \
			done ; \
		done ; \
	done
	@rm -f *.src.rpm

mockcleanscrub:
	@for distro in $(DISTROS) ; do \
		for arch in $(ARCHES) ; do \
			mock --scrub=all -r centos-$$distro-$$arch clean ; \
		done ; \
	done


createrepo:
	@createrepo $(REPO)/5
	@createrepo $(REPO)/6

updaterepo:
	@createrepo --update $(REPO)/5
	@createrepo --update $(REPO)/6

koji: sources
	@for srpm in $(SRPMS) ; do \
		for distro in $(DISTROS) ; do \
			koji build centos-$$distro  $$srpm ; \
		done ; \
	done
	@rm -f *.src.rpm