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