SHELL := /bin/bash # Local settings use Makefile syntax, e.g. SRC_ROOT := /path/to/p4authcheck -include .env TARGET_ROOT ?= . P4_PATHS := bin/... README_HTML := README.html README_STYLE := README.style.html .PHONY: readme-html sync-installer sync-installer-dryrun check-src-root p4-edit p4-revert clean-empty-dirs sync-installer: check-src-root @$(MAKE) p4-edit @echo "Syncing installer files from $(SRC_ROOT) -> $(TARGET_ROOT)" @rsync -au "$(SRC_ROOT)/bin/" "$(TARGET_ROOT)/bin/" @$(MAKE) p4-revert @echo "Sync complete." sync-installer-dryrun: check-src-root @echo "Dry run: showing rsync actions only" @rsync -aun "$(SRC_ROOT)/bin/" "$(TARGET_ROOT)/bin/" check-src-root: @test -n "$(strip $(SRC_ROOT))" || { echo "Set SRC_ROOT in .env or on the make command line." >&2; exit 1; } @test -d "$(SRC_ROOT)/bin" || { echo "Source bin directory not found: $(SRC_ROOT)/bin" >&2; exit 1; } readme-html: $(README_HTML) $(README_HTML): README.md $(README_STYLE) pandoc --standalone --metadata pagetitle="P4AuthCheck" --include-in-header=$(README_STYLE) README.md -o $@ p4-edit: @echo "Running: p4 edit $(P4_PATHS)" @cd "$(TARGET_ROOT)" && p4 edit $(P4_PATHS) || true p4-revert: @echo "Running: p4 revert -a $(P4_PATHS)" @cd "$(TARGET_ROOT)" && p4 revert -a $(P4_PATHS) || true clean-empty-dirs: @find "$(TARGET_ROOT)" -type d -empty -print