Makefile
136 lines
| 3.8 KiB
| text/x-makefile
|
MakefileLexer
Gregory Szorc
|
r38034 | $(eval HGROOT := $(shell cd ../..; pwd)) | ||
Gregory Szorc
|
r38478 | DEBIAN_CODENAMES := \ | ||
stretch \ | ||||
r43077 | buster \ | |||
bullseye | ||||
Gregory Szorc
|
r38478 | |||
UBUNTU_CODENAMES := \ | ||||
xenial \ | ||||
bionic \ | ||||
r43076 | cosmic \ | |||
disco | ||||
Gregory Szorc
|
r38478 | |||
Mads Kiilerich
|
r43678 | FEDORA_RELEASE := 31 | ||
Gregory Szorc
|
r38478 | |||
CENTOS_RELEASES := \ | ||||
5 \ | ||||
6 \ | ||||
Mathias De Mare
|
r43723 | 7 \ | ||
8 | ||||
Gregory Szorc
|
r38478 | |||
# Build a Python for these CentOS releases. | ||||
CENTOS_WITH_PYTHON_RELEASES := 5 6 | ||||
Mathias De Mare
|
r43722 | CENTOS_WITH_NONVERSIONED_PYTHON := 5 6 7 | ||
Gregory Szorc
|
r38478 | |||
Gregory Szorc
|
r38034 | help: | ||
@echo 'Packaging Make Targets' | ||||
@echo '' | ||||
Augie Fackler
|
r38577 | @echo 'docker-centos{$(strip $(CENTOS_RELEASES))}' | ||
Gregory Szorc
|
r38034 | @echo ' Build an RPM for a specific CentOS version using Docker.' | ||
@echo '' | ||||
Gregory Szorc
|
r38478 | @echo 'docker-debian-{$(strip $(DEBIAN_CODENAMES))}' | ||
Gregory Szorc
|
r38034 | @echo ' Build Debian packages specific to a Debian distro using Docker.' | ||
@echo '' | ||||
Mads Kiilerich
|
r43677 | @echo 'docker-fedora' | ||
@echo ' Build an RPM for a Fedora $(FEDORA_RELEASE) using Docker.' | ||||
Gregory Szorc
|
r38034 | @echo '' | ||
Gregory Szorc
|
r38478 | @echo 'docker-ubuntu-{$(strip $(UBUNTU_CODENAMES))}' | ||
Gregory Szorc
|
r38034 | @echo ' Build Debian package specific to an Ubuntu distro using Docker.' | ||
@echo '' | ||||
Gregory Szorc
|
r38478 | @echo 'docker-ubuntu-{$(strip $(UBUNTU_CODENAMES))}-ppa' | ||
Gregory Szorc
|
r38034 | @echo ' Build a source-only Debian package specific to an Ubuntu distro' | ||
@echo ' using Docker.' | ||||
@echo '' | ||||
@echo 'linux-wheels' | ||||
@echo ' Build Linux manylinux wheels using Docker.' | ||||
@echo '' | ||||
@echo 'linux-wheels-{x86_64, i686}' | ||||
@echo ' Build Linux manylinux wheels for a specific architecture using Docker' | ||||
@echo '' | ||||
@echo 'deb' | ||||
@echo ' Build a Debian package locally targeting the current system' | ||||
@echo '' | ||||
@echo 'ppa' | ||||
@echo ' Build a Debian source package locally targeting the current system' | ||||
@echo '' | ||||
Augie Fackler
|
r38577 | @echo 'centos{$(strip $(CENTOS_RELEASES))}' | ||
Gregory Szorc
|
r38034 | @echo ' Build an RPM for a specific CentOS version locally' | ||
@echo '' | ||||
Mads Kiilerich
|
r43677 | @echo 'fedora' | ||
@echo ' Build an RPM for Fedora $(FEDORA_RELEASE) locally' | ||||
Gregory Szorc
|
r38034 | |||
.PHONY: help | ||||
.PHONY: deb | ||||
deb: | ||||
./builddeb | ||||
.PHONY: ppa | ||||
ppa: | ||||
./builddeb --source-only | ||||
Gregory Szorc
|
r38478 | # Debian targets. | ||
define debian_targets = | ||||
.PHONY: docker-debian-$(1) | ||||
docker-debian-$(1): | ||||
./dockerdeb debian $(1) | ||||
Gregory Szorc
|
r38034 | |||
Gregory Szorc
|
r38478 | endef | ||
Gregory Szorc
|
r38034 | |||
Gregory Szorc
|
r38478 | $(foreach codename,$(DEBIAN_CODENAMES),$(eval $(call debian_targets,$(codename)))) | ||
Gregory Szorc
|
r38034 | |||
Gregory Szorc
|
r38478 | # Ubuntu targets. | ||
define ubuntu_targets = | ||||
.PHONY: docker-ubuntu-$(1) | ||||
docker-ubuntu-$(1): | ||||
./dockerdeb ubuntu $(1) | ||||
Gregory Szorc
|
r38034 | |||
Gregory Szorc
|
r38478 | .PHONY: docker-ubuntu-$(1)-ppa | ||
docker-ubuntu-$(1)-ppa: | ||||
./dockerdeb ubuntu $(1) --source-only | ||||
Gregory Szorc
|
r38034 | |||
Gregory Szorc
|
r38478 | endef | ||
Gregory Szorc
|
r38034 | |||
Gregory Szorc
|
r38478 | $(foreach codename,$(UBUNTU_CODENAMES),$(eval $(call ubuntu_targets,$(codename)))) | ||
Gregory Szorc
|
r38034 | |||
Gregory Szorc
|
r38478 | # Fedora targets. | ||
Mads Kiilerich
|
r43677 | .PHONY: fedora | ||
fedora: | ||||
mkdir -p $(HGROOT)/packages/fedora$(FEDORA_RELEASE) | ||||
Gregory Szorc
|
r38034 | ./buildrpm | ||
Mads Kiilerich
|
r43677 | cp $(HGROOT)/contrib/packaging/rpmbuild/RPMS/*/* $(HGROOT)/packages/fedora$(FEDORA_RELEASE) | ||
cp $(HGROOT)/contrib/packaging/rpmbuild/SRPMS/* $(HGROOT)/packages/fedora$(FEDORA_RELEASE) | ||||
Gregory Szorc
|
r38034 | rm -rf $(HGROOT)/rpmbuild | ||
Mads Kiilerich
|
r43677 | .PHONY: docker-fedora | ||
docker-fedora: | ||||
./dockerrpm fedora$(FEDORA_RELEASE) | ||||
Gregory Szorc
|
r38034 | |||
Gregory Szorc
|
r38478 | # CentOS targets. | ||
define centos_targets | ||||
.PHONY: centos$(1) | ||||
centos$(1): | ||||
mkdir -p $$(HGROOT)/packages/centos$(1) | ||||
Mathias De Mare
|
r43722 | ./buildrpm $$(if $$(filter $(1),$$(CENTOS_WITH_PYTHON_RELEASES)),--withpython,$$(if $$(filter $(1),$$(CENTOS_WITH_NONVERSIONED_PYTHON)),--python python,)) | ||
muxator
|
r40185 | cp $$(HGROOT)/contrib/packaging/rpmbuild/RPMS/*/* $$(HGROOT)/packages/centos$(1) | ||
cp $$(HGROOT)/contrib/packaging/rpmbuild/SRPMS/* $$(HGROOT)/packages/centos$(1) | ||||
Gregory Szorc
|
r38034 | |||
Gregory Szorc
|
r38478 | .PHONY: docker-centos$(1) | ||
docker-centos$(1): | ||||
Mathias De Mare
|
r43722 | ./dockerrpm centos$(1) $$(if $$(filter $(1),$$(CENTOS_WITH_PYTHON_RELEASES)),--withpython,$$(if $$(filter $(1),$$(CENTOS_WITH_NONVERSIONED_PYTHON)),--python python,)) | ||
Gregory Szorc
|
r38034 | |||
Gregory Szorc
|
r38478 | endef | ||
Gregory Szorc
|
r38034 | |||
Gregory Szorc
|
r38478 | $(foreach release,$(CENTOS_RELEASES),$(eval $(call centos_targets,$(release)))) | ||
Gregory Szorc
|
r38034 | |||
.PHONY: linux-wheels | ||||
linux-wheels: linux-wheels-x86_64 linux-wheels-i686 | ||||
.PHONY: linux-wheels-x86_64 | ||||
linux-wheels-x86_64: | ||||
docker run -e "HGTEST_JOBS=$(shell nproc)" --rm -ti -v `pwd`/../..:/src quay.io/pypa/manylinux1_x86_64 /src/contrib/packaging/build-linux-wheels.sh | ||||
.PHONY: linux-wheels-i686 | ||||
linux-wheels-i686: | ||||
docker run -e "HGTEST_JOBS=$(shell nproc)" --rm -ti -v `pwd`/../..:/src quay.io/pypa/manylinux1_i686 linux32 /src/contrib/packaging/build-linux-wheels.sh | ||||