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