1c176b8b3SJohann Duscher# Delete Page Guard Plugin - Developer Tools 2c176b8b3SJohann Duscher# 3*9a383d51SJohann Duscher# Professional Makefile for development, testing, and release management 4c176b8b3SJohann Duscher 5*9a383d51SJohann Duscher.PHONY: test check clean dist release version help 6c176b8b3SJohann Duscher 7c176b8b3SJohann Duscher# Default target 8c176b8b3SJohann Duscherhelp: 9c176b8b3SJohann Duscher @echo "Delete Page Guard Plugin - Developer Tools" 10c176b8b3SJohann Duscher @echo "==========================================" 11c176b8b3SJohann Duscher @echo "" 12*9a383d51SJohann Duscher @echo "Development targets:" 13c176b8b3SJohann Duscher @echo " test - Run the test suite" 14c176b8b3SJohann Duscher @echo " check - Check PHP syntax of all files" 15c176b8b3SJohann Duscher @echo " clean - Clean temporary files" 16*9a383d51SJohann Duscher @echo "" 17*9a383d51SJohann Duscher @echo "Release targets:" 18*9a383d51SJohann Duscher @echo " version [VERSION=x.y.z] - Update version in all files" 19*9a383d51SJohann Duscher @echo " dist - Create distribution ZIP file" 20*9a383d51SJohann Duscher @echo " release [VERSION=x.y.z] - Complete release workflow" 21*9a383d51SJohann Duscher @echo "" 22*9a383d51SJohann Duscher @echo "Utility targets:" 23*9a383d51SJohann Duscher @echo " status - Show current version and git status" 24c176b8b3SJohann Duscher @echo " help - Show this help message" 25c176b8b3SJohann Duscher 26c176b8b3SJohann Duscher# Run the test suite 27c176b8b3SJohann Duschertest: 28c176b8b3SJohann Duscher @echo "Running test suite..." 29c176b8b3SJohann Duscher php tests/test_runner.php 30c176b8b3SJohann Duscher 31c176b8b3SJohann Duscher# Check syntax of all PHP files 32c176b8b3SJohann Duschercheck: 33c176b8b3SJohann Duscher @echo "Checking PHP syntax..." 34c176b8b3SJohann Duscher @find . -name "*.php" -not -path "./tests/*" -exec php -l {} \; 35c176b8b3SJohann Duscher @echo "Syntax check complete." 36c176b8b3SJohann Duscher 37*9a383d51SJohann Duscher# Clean temporary files and build artifacts 38c176b8b3SJohann Duscherclean: 39*9a383d51SJohann Duscher @echo "Cleaning temporary files and build artifacts..." 40c176b8b3SJohann Duscher @find . -name "*~" -delete 41c176b8b3SJohann Duscher @find . -name "*.tmp" -delete 42*9a383d51SJohann Duscher @rm -rf dist/ 43c176b8b3SJohann Duscher @echo "Clean complete." 44*9a383d51SJohann Duscher 45*9a383d51SJohann Duscher# Update version in all files 46*9a383d51SJohann Duscherversion: 47*9a383d51SJohann Duscherifndef VERSION 48*9a383d51SJohann Duscher @echo "Error: VERSION parameter required" 49*9a383d51SJohann Duscher @echo "Usage: make version VERSION=1.2.3" 50*9a383d51SJohann Duscher @exit 1 51*9a383d51SJohann Duscherendif 52*9a383d51SJohann Duscher @echo "Updating version to $(VERSION)..." 53*9a383d51SJohann Duscher php build/update-version.php $(VERSION) 54*9a383d51SJohann Duscher @echo "Version update complete." 55*9a383d51SJohann Duscher 56*9a383d51SJohann Duscher# Create distribution ZIP file 57*9a383d51SJohann Duscherdist: check test 58*9a383d51SJohann Duscher @echo "Creating distribution package..." 59*9a383d51SJohann Duscher php build/create-dist.php 60*9a383d51SJohann Duscher 61*9a383d51SJohann Duscher# Complete release workflow 62*9a383d51SJohann Duscherrelease: check test 63*9a383d51SJohann Duscherifndef VERSION 64*9a383d51SJohann Duscher @echo "Error: VERSION parameter required" 65*9a383d51SJohann Duscher @echo "Usage: make release VERSION=1.2.3" 66*9a383d51SJohann Duscher @exit 1 67*9a383d51SJohann Duscherendif 68*9a383d51SJohann Duscher @echo "Starting release workflow for version $(VERSION)..." 69*9a383d51SJohann Duscher @make version VERSION=$(VERSION) 70*9a383d51SJohann Duscher @echo "Please update CHANGELOG.md with release notes, then run:" 71*9a383d51SJohann Duscher @echo " git add -A" 72*9a383d51SJohann Duscher @echo " git commit -m 'Release version $(VERSION)'" 73*9a383d51SJohann Duscher @echo " git tag v$(VERSION)" 74*9a383d51SJohann Duscher @echo " make dist" 75*9a383d51SJohann Duscher @echo " git push origin main --tags" 76*9a383d51SJohann Duscher 77*9a383d51SJohann Duscher# Show current status 78*9a383d51SJohann Duscherstatus: 79*9a383d51SJohann Duscher @php build/show-status.php 80*9a383d51SJohann Duscher @echo "Git status:" 81*9a383d51SJohann Duscher @git status --short || echo "Not a git repository"