71 lines
2.3 KiB
Makefile
71 lines
2.3 KiB
Makefile
include ./Makefile.global
|
|
|
|
EXT_DIR = src/pg
|
|
PYP_DIR = src/py
|
|
|
|
.PHONY: install
|
|
.PHONY: run_tests
|
|
.PHONY: release
|
|
.PHONY: deploy
|
|
|
|
# Generate and install developmet versions of the extension
|
|
# and python package.
|
|
# The extension is named 'dev' with a 'current' alias for easily upgrading.
|
|
# The Python package is installed in a virtual environment envs/dev/
|
|
# Requires sudo.
|
|
install: ## Generate and install development version of the extension; requires sudo.
|
|
$(MAKE) -C $(PYP_DIR) install
|
|
$(MAKE) -C $(EXT_DIR) install
|
|
|
|
# Run the tests for the installed development extension and
|
|
# python package
|
|
test: ## Run the tests for the development version of the extension
|
|
$(MAKE) -C $(PYP_DIR) test
|
|
$(MAKE) -C $(EXT_DIR) test
|
|
|
|
# Generate a new release into release
|
|
release: ## Generate a new release of the extension. Only for telease manager
|
|
$(MAKE) -C $(EXT_DIR) release
|
|
$(MAKE) -C $(PYP_DIR) release
|
|
|
|
# Install the current release.
|
|
# The Python package is installed in a virtual environment envs/X.Y.Z/
|
|
# Requires sudo.
|
|
# Use the RELEASE_VERSION environment variable to deploy a specific version:
|
|
# sudo make deploy RELEASE_VERSION=1.0.0
|
|
deploy: ## Deploy a released extension. Only for release manager. Requires sudo.
|
|
$(MAKE) -C $(EXT_DIR) deploy
|
|
$(MAKE) -C $(PYP_DIR) deploy
|
|
|
|
# Cleanup development extension script files
|
|
clean-dev: ## clean up development extension script files
|
|
rm -f src/pg/$(EXTENSION)--*.sql
|
|
|
|
# Cleanup all releases
|
|
clean-releases: ## clean up all releases
|
|
rm -rf release/python/*
|
|
rm -f release/$(EXTENSION)--*.sql
|
|
rm -f release/$(EXTENSION).control
|
|
|
|
# Cleanup current/specific version
|
|
clean-release: ## clean up current release
|
|
rm -rf release/python/$(RELEASE_VERSION)
|
|
rm -f release/$(RELEASE_VERSION)--*.sql
|
|
|
|
# Cleanup all virtual environments
|
|
clean-environments: ## clean up all virtual environments
|
|
rm -rf envs/*
|
|
|
|
clean-all: clean-dev clean-release clean-environments
|
|
|
|
help:
|
|
@IFS=$$'\n' ; \
|
|
help_lines=(`fgrep -h "##" $(MAKEFILE_LIST) | fgrep -v fgrep | sed -e 's/\\$$//'`); \
|
|
for help_line in $${help_lines[@]}; do \
|
|
IFS=$$'#' ; \
|
|
help_split=($$help_line) ; \
|
|
help_command=`echo $${help_split[0]} | sed -e 's/^ *//' -e 's/ *$$//'` ; \
|
|
help_info=`echo $${help_split[2]} | sed -e 's/^ *//' -e 's/ *$$//'` ; \
|
|
printf "%-30s %s\n" $$help_command $$help_info ; \
|
|
done
|