76 lines
2.1 KiB
Makefile
76 lines
2.1 KiB
Makefile
# Makefile for morbac_pg PostgreSQL Extension
|
|
# Multi-OrBAC: Organization-Based Access Control
|
|
|
|
EXTENSION = morbac_pg
|
|
|
|
# Read version from control file
|
|
EXTVERSION = $(shell grep default_version $(EXTENSION).control | sed "s/default_version = '\(.*\)'/\1/")
|
|
|
|
# For development, work on unversioned file
|
|
DEV_SQL = $(EXTENSION).sql
|
|
DATA = $(EXTENSION)--$(EXTVERSION).sql
|
|
DOCS = README.md
|
|
|
|
# PostgreSQL extension build
|
|
PG_CONFIG = pg_config
|
|
PGXS := $(shell $(PG_CONFIG) --pgxs)
|
|
include $(PGXS)
|
|
|
|
# Custom targets
|
|
|
|
# Create versioned release file from development file
|
|
.PHONY: release
|
|
release:
|
|
@echo "Preparing release $(EXTVERSION)..."
|
|
@if [ ! -f $(DEV_SQL) ]; then \
|
|
echo "Error: $(DEV_SQL) not found"; \
|
|
exit 1; \
|
|
fi
|
|
cp $(DEV_SQL) $(DATA)
|
|
@echo "Created $(DATA)"
|
|
@echo "Ready to commit and tag with: git tag v$(EXTVERSION)"
|
|
|
|
# Install extension in PostgreSQL (creates versioned file if needed)
|
|
.PHONY: install
|
|
install: release
|
|
@echo "Installing morbac_pg extension..."
|
|
$(MAKE) -f Makefile install
|
|
|
|
# Run tests with development file in temporary database
|
|
.PHONY: test
|
|
test:
|
|
@echo "Testing with development file..."
|
|
-dropdb morbac_test 2>/dev/null || true
|
|
createdb morbac_test
|
|
@./tests/run_tests.sh morbac_test
|
|
dropdb morbac_test
|
|
@echo "Test completed."
|
|
|
|
# Uninstall extension
|
|
.PHONY: uninstall
|
|
uninstall:
|
|
@echo "Uninstalling morbac_pg extension..."
|
|
$(MAKE) -f Makefile uninstall
|
|
|
|
# Show help
|
|
.PHONY: help
|
|
help:
|
|
@echo "morbac_pg Makefile targets:"
|
|
@echo ""
|
|
@echo "Development:"
|
|
@echo " Edit morbac_pg.sql (unversioned) for daily development"
|
|
@echo ""
|
|
@echo " make test - Test with development file"
|
|
@echo " make release - Create versioned file from morbac_pg.sql"
|
|
@echo " make install - Create release and install extension"
|
|
@echo " make uninstall - Uninstall extension from PostgreSQL"
|
|
@echo " make help - Show this help"
|
|
@echo ""
|
|
@echo "Workflow:"
|
|
@echo " 1. Edit morbac_pg.sql (version-free development)"
|
|
@echo " 2. make test (test your changes)"
|
|
@echo " 3. Update version in morbac_pg.control"
|
|
@echo " 4. make release (creates morbac_pg--X.Y.Z.sql)"
|
|
@echo " 5. git tag vX.Y.Z && git push --tags"
|
|
@echo ""
|