github.com/mforkel/docker-ce-i386@v17.12.1-ce-rc2+incompatible/components/packaging/rpm/Makefile (about) 1 ARCH=$(shell uname -m) 2 ENGINE_DIR:=$(CURDIR)/../../engine 3 CLI_DIR:=$(CURDIR)/../../cli 4 GITCOMMIT=$(shell cd $(ENGINE_DIR) && git rev-parse --short HEAD) 5 VERSION?=0.0.0-dev 6 DOCKER_EXPERIMENTAL=0 7 GEN_RPM_VER=$(shell ./gen-rpm-ver $(ENGINE_DIR) $(VERSION)) 8 CHOWN=docker run --rm -i -v $(CURDIR):/v -w /v alpine chown 9 RPMBUILD=docker run --privileged --rm -i\ 10 -v $(CURDIR)/rpmbuild/SOURCES:/root/rpmbuild/SOURCES \ 11 -v $(CURDIR)/rpmbuild/BUILD:/root/rpmbuild/BUILD \ 12 -v $(CURDIR)/rpmbuild/BUILDROOT:/root/rpmbuild/BUILDROOT \ 13 -v $(CURDIR)/rpmbuild/RPMS:/root/rpmbuild/RPMS \ 14 -v $(CURDIR)/rpmbuild/SRPMS:/root/rpmbuild/SRPMS \ 15 -v $(CURDIR)/systemd:/systemd 16 RPMBUILD_FLAGS=-ba\ 17 --define '_gitcommit $(word 3,$(GEN_RPM_VER))' \ 18 --define '_release $(word 2,$(GEN_RPM_VER))' \ 19 --define '_version $(word 1,$(GEN_RPM_VER))' \ 20 --define '_origversion $(VERSION)' \ 21 --define '_experimental $(DOCKER_EXPERIMENTAL)' \ 22 SPECS/docker-ce.spec 23 24 .PHONY: help clean rpm fedora centos fedora-27 fedora-26 fedora-25 centos-7 25 26 help: ## show make targets 27 @awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {sub("\\\\n",sprintf("\n%22c"," "), $$2);printf " \033[36m%-20s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST) 28 29 clean: ## remove build artifacts 30 [ ! -d rpmbuild ] || $(CHOWN) -R $(shell id -u):$(shell id -g) rpmbuild 31 rm -rf rpmbuild 32 33 rpm: fedora centos ## build all rpm packages 34 35 fedora: fedora-27 fedora-26 fedora-25 ## build all fedora rpm packages 36 37 centos: centos-7 ## build all centos rpm packages 38 39 fedora-27: rpmbuild/SOURCES/engine.tgz rpmbuild/SOURCES/cli.tgz ## build fedora-27 rpm packages 40 docker build -t rpmbuild-$@/$(ARCH) -f $@/Dockerfile.$(ARCH) $@ 41 $(RPMBUILD) rpmbuild-$@/$(ARCH) $(RPMBUILD_FLAGS) 42 $(CHOWN) -R $(shell id -u):$(shell id -g) rpmbuild 43 44 fedora-26: rpmbuild/SOURCES/engine.tgz rpmbuild/SOURCES/cli.tgz ## build fedora-26 rpm packages 45 docker build -t rpmbuild-$@/$(ARCH) -f $@/Dockerfile.$(ARCH) $@ 46 $(RPMBUILD) rpmbuild-$@/$(ARCH) $(RPMBUILD_FLAGS) 47 $(CHOWN) -R $(shell id -u):$(shell id -g) rpmbuild 48 49 fedora-25: rpmbuild/SOURCES/engine.tgz rpmbuild/SOURCES/cli.tgz ## build fedora-25 rpm packages 50 docker build -t rpmbuild-$@/$(ARCH) -f $@/Dockerfile.$(ARCH) $@ 51 $(RPMBUILD) rpmbuild-$@/$(ARCH) $(RPMBUILD_FLAGS) 52 $(CHOWN) -R $(shell id -u):$(shell id -g) rpmbuild 53 54 centos-7: rpmbuild/SOURCES/engine.tgz rpmbuild/SOURCES/cli.tgz ## build centos-7 rpm packages 55 docker build -t rpmbuild-$@/$(ARCH) -f $@/Dockerfile.$(ARCH) $@ 56 $(RPMBUILD) rpmbuild-$@/$(ARCH) $(RPMBUILD_FLAGS) 57 $(CHOWN) -R $(shell id -u):$(shell id -g) rpmbuild 58 59 rpmbuild/SOURCES/cli.tgz: 60 mkdir -p rpmbuild/SOURCES 61 docker run --rm -i -w /v \ 62 -v $(CLI_DIR):/cli \ 63 -v $(CURDIR)/rpmbuild/SOURCES:/v \ 64 alpine \ 65 tar -C / -c -z -f /v/cli.tgz --exclude .git cli 66 67 rpmbuild/SOURCES/engine.tgz: 68 mkdir -p rpmbuild/SOURCES 69 docker run --rm -i -w /v \ 70 -v $(ENGINE_DIR):/engine \ 71 -v $(CURDIR)/rpmbuild/SOURCES:/v \ 72 alpine \ 73 tar -C / -c -z -f /v/engine.tgz --exclude .git engine