##// END OF EJS Templates
setup: configure py2exe config via environment variables...
setup: configure py2exe config via environment variables The Inno Setup and WiX installers ship a different set of packages with py2exe builds. And there are multiple WiX installer variants (e.g. TortoiseHG). Since there are multiple variants of py2exe configs and they can be defined by entities not in our repository, let's provide a mechanism for setup.py to supplement behavior via environment variables. This is slighly less hacky than a setup.cfg file IMO since the caller doesn't need to worry about mutating global state of the source directory. Differential Revision: https://phab.mercurial-scm.org/D6092

File last commit:

r40621:d0a6b2c8 default
r42082:260305e8 default
Show More
Makefile
145 lines | 3.8 KiB | text/x-makefile | MakefileLexer
Gregory Szorc
packaging: move most packaging targets to own Makefile...
r38034 $(eval HGROOT := $(shell cd ../..; pwd))
Gregory Szorc
packaging: dynamically define make targets...
r38478 DEBIAN_CODENAMES := \
jessie \
stretch \
buster
UBUNTU_CODENAMES := \
trusty \
xenial \
artful \
bionic \
FEDORA_RELEASES := \
20 \
Augie Fackler
packaging: add fedora 28...
r38580 21 \
Augie Fackler
packaging: add Fedora 29 target...
r40621 28 \
29
Gregory Szorc
packaging: dynamically define make targets...
r38478
CENTOS_RELEASES := \
5 \
6 \
7
# Build a Python for these CentOS releases.
CENTOS_WITH_PYTHON_RELEASES := 5 6
Gregory Szorc
packaging: move most packaging targets to own Makefile...
r38034 help:
@echo 'Packaging Make Targets'
@echo ''
Augie Fackler
packaging: make help output correct for fedora and centos targets...
r38577 @echo 'docker-centos{$(strip $(CENTOS_RELEASES))}'
Gregory Szorc
packaging: move most packaging targets to own Makefile...
r38034 @echo ' Build an RPM for a specific CentOS version using Docker.'
@echo ''
Gregory Szorc
packaging: dynamically define make targets...
r38478 @echo 'docker-debian-{$(strip $(DEBIAN_CODENAMES))}'
Gregory Szorc
packaging: move most packaging targets to own Makefile...
r38034 @echo ' Build Debian packages specific to a Debian distro using Docker.'
@echo ''
Augie Fackler
packaging: make help output correct for fedora and centos targets...
r38577 @echo 'docker-fedora{$(strip $(FEDORA_RELEASES))}'
Gregory Szorc
packaging: move most packaging targets to own Makefile...
r38034 @echo ' Build an RPM for a specific Fedora version using Docker.'
@echo ''
Gregory Szorc
packaging: dynamically define make targets...
r38478 @echo 'docker-ubuntu-{$(strip $(UBUNTU_CODENAMES))}'
Gregory Szorc
packaging: move most packaging targets to own Makefile...
r38034 @echo ' Build Debian package specific to an Ubuntu distro using Docker.'
@echo ''
Gregory Szorc
packaging: dynamically define make targets...
r38478 @echo 'docker-ubuntu-{$(strip $(UBUNTU_CODENAMES))}-ppa'
Gregory Szorc
packaging: move most packaging targets to own Makefile...
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
packaging: make help output correct for fedora and centos targets...
r38577 @echo 'centos{$(strip $(CENTOS_RELEASES))}'
Gregory Szorc
packaging: move most packaging targets to own Makefile...
r38034 @echo ' Build an RPM for a specific CentOS version locally'
@echo ''
Augie Fackler
packaging: make help output correct for fedora and centos targets...
r38577 @echo 'fedora{$(strip $(FEDORA_RELEASES))}'
Gregory Szorc
packaging: move most packaging targets to own Makefile...
r38034 @echo ' Build an RPM for a specific Fedora version locally'
.PHONY: help
.PHONY: deb
deb:
./builddeb
.PHONY: ppa
ppa:
./builddeb --source-only
Gregory Szorc
packaging: dynamically define make targets...
r38478 # Debian targets.
define debian_targets =
.PHONY: docker-debian-$(1)
docker-debian-$(1):
./dockerdeb debian $(1)
Gregory Szorc
packaging: move most packaging targets to own Makefile...
r38034
Gregory Szorc
packaging: dynamically define make targets...
r38478 endef
Gregory Szorc
packaging: move most packaging targets to own Makefile...
r38034
Gregory Szorc
packaging: dynamically define make targets...
r38478 $(foreach codename,$(DEBIAN_CODENAMES),$(eval $(call debian_targets,$(codename))))
Gregory Szorc
packaging: move most packaging targets to own Makefile...
r38034
Gregory Szorc
packaging: dynamically define make targets...
r38478 # Ubuntu targets.
define ubuntu_targets =
.PHONY: docker-ubuntu-$(1)
docker-ubuntu-$(1):
./dockerdeb ubuntu $(1)
Gregory Szorc
packaging: move most packaging targets to own Makefile...
r38034
Gregory Szorc
packaging: dynamically define make targets...
r38478 .PHONY: docker-ubuntu-$(1)-ppa
docker-ubuntu-$(1)-ppa:
./dockerdeb ubuntu $(1) --source-only
Gregory Szorc
packaging: move most packaging targets to own Makefile...
r38034
Gregory Szorc
packaging: dynamically define make targets...
r38478 endef
Gregory Szorc
packaging: move most packaging targets to own Makefile...
r38034
Gregory Szorc
packaging: dynamically define make targets...
r38478 $(foreach codename,$(UBUNTU_CODENAMES),$(eval $(call ubuntu_targets,$(codename))))
Gregory Szorc
packaging: move most packaging targets to own Makefile...
r38034
Gregory Szorc
packaging: dynamically define make targets...
r38478 # Fedora targets.
Augie Fackler
packaging: remove stray = that confuses make(1) on my Mac...
r38576 define fedora_targets
Gregory Szorc
packaging: dynamically define make targets...
r38478 .PHONY: fedora$(1)
fedora$(1):
mkdir -p $$(HGROOT)/packages/fedora$(1)
Gregory Szorc
packaging: move most packaging targets to own Makefile...
r38034 ./buildrpm
Augie Fackler
packaging: add missing path segments in cp statements in fedora build...
r38579 cp $$(HGROOT)/contrib/packaging/rpmbuild/RPMS/*/* $$(HGROOT)/packages/fedora$(1)
cp $$(HGROOT)/contrib/packaging/rpmbuild/SRPMS/* $$(HGROOT)/packages/fedora$(1)
Gregory Szorc
packaging: move most packaging targets to own Makefile...
r38034 rm -rf $(HGROOT)/rpmbuild
Gregory Szorc
packaging: dynamically define make targets...
r38478 .PHONY: docker-fedora$(1)
docker-fedora$(1):
Augie Fackler
packaging: fix misplaced ( in docker-fedora rule definition...
r38578 mkdir -p $$(HGROOT)/packages/fedora$(1)
Gregory Szorc
packaging: dynamically define make targets...
r38478 ./dockerrpm fedora$(1)
Gregory Szorc
packaging: move most packaging targets to own Makefile...
r38034
Gregory Szorc
packaging: dynamically define make targets...
r38478 endef
Gregory Szorc
packaging: move most packaging targets to own Makefile...
r38034
Gregory Szorc
packaging: dynamically define make targets...
r38478 $(foreach release,$(FEDORA_RELEASES),$(eval $(call fedora_targets,$(release))))
Gregory Szorc
packaging: move most packaging targets to own Makefile...
r38034
Gregory Szorc
packaging: dynamically define make targets...
r38478 # CentOS targets.
define centos_targets
.PHONY: centos$(1)
centos$(1):
mkdir -p $$(HGROOT)/packages/centos$(1)
./buildrpm $$(if $$(filter $(1),$$(CENTOS_WITH_PYTHON_RELEASES)),--withpython)
muxator
packaging: fix "make centos{5,6,7}"...
r40185 cp $$(HGROOT)/contrib/packaging/rpmbuild/RPMS/*/* $$(HGROOT)/packages/centos$(1)
cp $$(HGROOT)/contrib/packaging/rpmbuild/SRPMS/* $$(HGROOT)/packages/centos$(1)
Gregory Szorc
packaging: move most packaging targets to own Makefile...
r38034
Gregory Szorc
packaging: dynamically define make targets...
r38478 .PHONY: docker-centos$(1)
docker-centos$(1):
mkdir -p $$(HGROOT)/packages/centos$(1)
./dockerrpm centos$(1) $$(if $$(filter $(1),$$(CENTOS_WITH_PYTHON_RELEASES)),--withpython)
Gregory Szorc
packaging: move most packaging targets to own Makefile...
r38034
Gregory Szorc
packaging: dynamically define make targets...
r38478 endef
Gregory Szorc
packaging: move most packaging targets to own Makefile...
r38034
Gregory Szorc
packaging: dynamically define make targets...
r38478 $(foreach release,$(CENTOS_RELEASES),$(eval $(call centos_targets,$(release))))
Gregory Szorc
packaging: move most packaging targets to own Makefile...
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