Makefile
150 lines
| 4.4 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 \ | |||
Matt Harbison
|
r46582 | focal | ||
Gregory Szorc
|
r38478 | |||
Mads Kiilerich
|
r43678 | FEDORA_RELEASE := 31 | ||
Gregory Szorc
|
r38478 | |||
Mathias De Mare
|
r49613 | RHEL_RELEASES := \ | ||
Mathias De Mare
|
r43723 | 7 \ | ||
Mathias De Mare
|
r50314 | 8 \ | ||
9 | ||||
Gregory Szorc
|
r38478 | |||
Mathias De Mare
|
r49613 | # Build a Python for these RHEL (and derivatives) releases. | ||
RHEL_WITH_PYTHON_RELEASES := | ||||
RHEL_WITH_NONVERSIONED_PYTHON := | ||||
RHEL_WITH_36_DOCUTILS := 7 | ||||
Gregory Szorc
|
r38478 | |||
Gregory Szorc
|
r38034 | help: | ||
@echo 'Packaging Make Targets' | ||||
@echo '' | ||||
Mathias De Mare
|
r49613 | @echo 'docker-rhel{$(strip $(RHEL_RELEASES))}' | ||
@echo ' Build an RPM for a specific RHEL/derivative version using Docker.' | ||||
Gregory Szorc
|
r38034 | @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 '' | ||||
r53157 | @echo 'linux-wheels-{x86_64, i686}{,-musl}' | |||
Gregory Szorc
|
r38034 | @echo ' Build Linux manylinux wheels for a specific architecture using Docker' | ||
r53157 | @echo ' The -musl variants is suitable for system using "musl" instead of "glibc", | |||
@echo ' for example: Alpine linux.' | ||||
Gregory Szorc
|
r38034 | @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 '' | ||||
Mathias De Mare
|
r49613 | @echo 'rhel{$(strip $(RHEL_RELEASES))}' | ||
@echo ' Build an RPM for a specific RHEL/derivative version locally' | ||||
Gregory Szorc
|
r38034 | @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 | |||
Mathias De Mare
|
r49613 | # RHEL targets. | ||
define rhel_targets | ||||
.PHONY: rhel$(1) | ||||
rhel$(1): | ||||
mkdir -p $$(HGROOT)/packages/rhel$(1) | ||||
./buildrpm $$(if $$(filter $(1),$$(RHEL_WITH_PYTHON_RELEASES)),--withpython,$$(if $$(filter $(1),$$(RHEL_WITH_NONVERSIONED_PYTHON)),--python python,))$$(if $$(filter $(1),$$(RHEL_WITH_36_DOCUTILS)), --docutilspackage python36-docutils,) | ||||
cp $$(HGROOT)/contrib/packaging/rpmbuild/RPMS/*/* $$(HGROOT)/packages/rhel$(1) | ||||
cp $$(HGROOT)/contrib/packaging/rpmbuild/SRPMS/* $$(HGROOT)/packages/rhel$(1) | ||||
Gregory Szorc
|
r38034 | |||
Mathias De Mare
|
r49613 | .PHONY: docker-rhel$(1) | ||
docker-rhel$(1): | ||||
./dockerrpm rhel$(1) $$(if $$(filter $(1),$$(RHEL_WITH_PYTHON_RELEASES)),--withpython,$$(if $$(filter $(1),$$(RHEL_WITH_NONVERSIONED_PYTHON)),--python python,))$$(if $$(filter $(1),$$(RHEL_WITH_36_DOCUTILS)), --docutilspackage python36-docutils,) | ||||
Gregory Szorc
|
r38034 | |||
Gregory Szorc
|
r38478 | endef | ||
Gregory Szorc
|
r38034 | |||
Mathias De Mare
|
r49613 | $(foreach release,$(RHEL_RELEASES),$(eval $(call rhel_targets,$(release)))) | ||
Gregory Szorc
|
r38034 | |||
.PHONY: linux-wheels | ||||
r53159 | linux-wheels: linux-wheels-x86_64 linux-wheels-x86_64-musl linux-wheels-i686 linux-wheels-i686-musl | |||
r53156 | ||||
img_reg="registry.heptapod.net/mercurial/ci-images" | ||||
img_tag="v3.0" | ||||
whl_sh="/src/contrib/packaging/build-linux-wheels.sh" | ||||
Gregory Szorc
|
r38034 | .PHONY: linux-wheels-x86_64 | ||
linux-wheels-x86_64: | ||||
r53156 | docker run --rm -ti -v `pwd`/../..:/src $(img_reg)/core-wheel-x86_64-c:$(img_tag) $(whl_sh) | |||
Gregory Szorc
|
r38034 | |||
r53157 | .PHONY: linux-wheels-x86_64-musl | |||
linux-wheels-x86_64-musl: | ||||
docker run --rm -ti -v `pwd`/../..:/src $(img_reg)/core-wheel-x86_64-musl-c:$(img_tag) $(whl_sh) | ||||
Gregory Szorc
|
r38034 | .PHONY: linux-wheels-i686 | ||
linux-wheels-i686: | ||||
r53159 | docker run --rm -ti -v `pwd`/../..:/src $(img_reg)/core-wheel-i686-c:$(img_tag) $(whl_sh) | |||
.PHONY: linux-wheels-i686-musl | ||||
linux-wheels-i686-musl: | ||||
docker run --rm -ti -v `pwd`/../..:/src $(img_reg)/core-wheel-i686-musl-c:$(img_tag) $(whl_sh) | ||||