Makefile: Enhance and improve help

Enhance help for undocumented targets and
improve developer usability by leveraging
inline comments, like in the other repos.
This commit is contained in:
Florian Schüller 2025-01-16 17:21:18 +01:00 committed by Florian Schüller
parent c136684426
commit 878cc5cacf

View file

@ -74,18 +74,13 @@ PACKAGE_NAME_COMMIT = image-builder-cli-$(COMMIT)
# #
.PHONY: help .PHONY: help
help: help: ## Print this usage information
@echo "make [TARGETS...]" @echo "make [TARGETS...]"
@echo @echo
@echo "This is the maintenance makefile of image-builder. The following" @echo "This is the maintenance makefile of image-builder. The following"
@echo "targets are available:" @echo "targets are available:"
@echo @echo
@echo " help: Print this usage information." @awk 'match($$0, /^([a-zA-Z_\/-]+):.*? ## (.*)$$/, m) {printf " \033[36m%-30s\033[0m %s\n", m[1], m[2]}' $(MAKEFILE_LIST) | sort
@echo " rpm: Build the RPM"
@echo " srpm: Build the source RPM"
@echo " scratch: Quick scratch build of RPM"
@echo " clean: Remove all built binaries"
@echo " lint: Run all known linters"
$(BUILDDIR)/: $(BUILDDIR)/:
mkdir -p "$@" mkdir -p "$@"
@ -102,11 +97,11 @@ $(BUILDDIR)/%/:
# #
.PHONY: build .PHONY: build
build: $(BUILDDIR)/bin/ build: $(BUILDDIR)/bin/ ## build the binary from source
go build -o $<image-builder ./cmd/image-builder/ go build -o $<image-builder ./cmd/image-builder/
.PHONY: clean .PHONY: clean
clean: clean: ## Remove all built binaries
rm -rf $(BUILDDIR)/bin/ rm -rf $(BUILDDIR)/bin/
rm -rf $(CURDIR)/rpmbuild rm -rf $(CURDIR)/rpmbuild
rm -rf $(CURDIR)/release_artifacts rm -rf $(CURDIR)/release_artifacts
@ -154,7 +149,7 @@ $(RPM_TARBALL) $(RPM_TARBALL_VERSIONED): $(RPM_SPECFILE)
gzip $(call get_uncompressed_name,$@) gzip $(call get_uncompressed_name,$@)
.PHONY: srpm .PHONY: srpm
srpm: $(RPM_SPECFILE) $(RPM_TARBALL) srpm: $(RPM_SPECFILE) $(RPM_TARBALL) ## Build the source RPM
rpmbuild -bs \ rpmbuild -bs \
--define "_topdir $(CURDIR)/rpmbuild" \ --define "_topdir $(CURDIR)/rpmbuild" \
--define "commit $(COMMIT)" \ --define "commit $(COMMIT)" \
@ -162,7 +157,7 @@ srpm: $(RPM_SPECFILE) $(RPM_TARBALL)
$(RPM_SPECFILE) $(RPM_SPECFILE)
.PHONY: rpm .PHONY: rpm
rpm: $(RPM_SPECFILE) $(RPM_TARBALL) rpm: $(RPM_SPECFILE) $(RPM_TARBALL) ## Build the RPM
rpmbuild -bb \ rpmbuild -bb \
--define "_topdir $(CURDIR)/rpmbuild" \ --define "_topdir $(CURDIR)/rpmbuild" \
--define "commit $(COMMIT)" \ --define "commit $(COMMIT)" \
@ -170,7 +165,7 @@ rpm: $(RPM_SPECFILE) $(RPM_TARBALL)
$(RPM_SPECFILE) $(RPM_SPECFILE)
.PHONY: scratch .PHONY: scratch
scratch: $(RPM_SPECFILE) $(RPM_TARBALL) scratch: $(RPM_SPECFILE) $(RPM_TARBALL) ## Quick scratch build of RPM
rpmbuild -bb \ rpmbuild -bb \
--define "_topdir $(CURDIR)/rpmbuild" \ --define "_topdir $(CURDIR)/rpmbuild" \
--define "commit $(COMMIT)" \ --define "commit $(COMMIT)" \
@ -181,13 +176,13 @@ scratch: $(RPM_SPECFILE) $(RPM_TARBALL)
RPM_TARBALL_FILENAME=$(notdir $(RPM_TARBALL)) RPM_TARBALL_FILENAME=$(notdir $(RPM_TARBALL))
.PHONY: release_artifacts .PHONY: release_artifacts
release_artifacts: $(RPM_TARBALL_VERSIONED) release_artifacts: $(RPM_TARBALL_VERSIONED) ## build a release tar but with vendor directory and matching spec file
mkdir -p release_artifacts mkdir -p release_artifacts
cp $< release_artifacts/ cp $< release_artifacts/
# Print the artifact path for Packit # Print the artifact path for Packit
echo "release_artifacts/$(shell basename $<)" echo "release_artifacts/$(shell basename $<)"
lint: lint: ## Run all known linters
pre-commit run --all pre-commit run --all
show-version: ## Show the generated version to be reused in tools like `.packit.yaml` show-version: ## Show the generated version to be reused in tools like `.packit.yaml`