build: Add help to main Makefile
This commit is contained in:
47
Makefile
47
Makefile
@@ -52,7 +52,7 @@ default: build
|
|||||||
#
|
#
|
||||||
# art
|
# art
|
||||||
#
|
#
|
||||||
art: art/mgmt_logo_default_symbol.png art/mgmt_logo_default_tall.png art/mgmt_logo_default_wide.png art/mgmt_logo_reversed_symbol.png art/mgmt_logo_reversed_tall.png art/mgmt_logo_reversed_wide.png art/mgmt_logo_white_symbol.png art/mgmt_logo_white_tall.png art/mgmt_logo_white_wide.png
|
art: art/mgmt_logo_default_symbol.png art/mgmt_logo_default_tall.png art/mgmt_logo_default_wide.png art/mgmt_logo_reversed_symbol.png art/mgmt_logo_reversed_tall.png art/mgmt_logo_reversed_wide.png art/mgmt_logo_white_symbol.png art/mgmt_logo_white_tall.png art/mgmt_logo_white_wide.png ## generate artwork
|
||||||
|
|
||||||
cleanart:
|
cleanart:
|
||||||
rm -f art/mgmt_logo_default_symbol.png art/mgmt_logo_default_tall.png art/mgmt_logo_default_wide.png art/mgmt_logo_reversed_symbol.png art/mgmt_logo_reversed_tall.png art/mgmt_logo_reversed_wide.png art/mgmt_logo_white_symbol.png art/mgmt_logo_white_tall.png art/mgmt_logo_white_wide.png
|
rm -f art/mgmt_logo_default_symbol.png art/mgmt_logo_default_tall.png art/mgmt_logo_default_wide.png art/mgmt_logo_reversed_symbol.png art/mgmt_logo_reversed_tall.png art/mgmt_logo_reversed_wide.png art/mgmt_logo_white_symbol.png art/mgmt_logo_white_tall.png art/mgmt_logo_white_wide.png
|
||||||
@@ -88,19 +88,19 @@ art/mgmt_logo_white_wide.png: art/mgmt_logo_white_wide.svg
|
|||||||
all: docs $(PROGRAM).static
|
all: docs $(PROGRAM).static
|
||||||
|
|
||||||
# show the current version
|
# show the current version
|
||||||
version:
|
version: ## show the current version
|
||||||
@echo $(VERSION)
|
@echo $(VERSION)
|
||||||
|
|
||||||
program:
|
program: ## show the program name
|
||||||
@echo $(PROGRAM)
|
@echo $(PROGRAM)
|
||||||
|
|
||||||
path:
|
path: ## create working paths
|
||||||
./misc/make-path.sh
|
./misc/make-path.sh
|
||||||
|
|
||||||
deps:
|
deps: ## install system and golang dependencies
|
||||||
./misc/make-deps.sh
|
./misc/make-deps.sh
|
||||||
|
|
||||||
run:
|
run: ## run mgmt
|
||||||
find . -maxdepth 1 -type f -name '*.go' -not -name '*_test.go' | xargs go run -ldflags "-X main.program=$(PROGRAM) -X main.version=$(SVERSION)"
|
find . -maxdepth 1 -type f -name '*.go' -not -name '*_test.go' | xargs go run -ldflags "-X main.program=$(PROGRAM) -X main.version=$(SVERSION)"
|
||||||
|
|
||||||
# include race flag
|
# include race flag
|
||||||
@@ -108,20 +108,20 @@ race:
|
|||||||
find . -maxdepth 1 -type f -name '*.go' -not -name '*_test.go' | xargs go run -race -ldflags "-X main.program=$(PROGRAM) -X main.version=$(SVERSION)"
|
find . -maxdepth 1 -type f -name '*.go' -not -name '*_test.go' | xargs go run -race -ldflags "-X main.program=$(PROGRAM) -X main.version=$(SVERSION)"
|
||||||
|
|
||||||
# generate go files from non-go source
|
# generate go files from non-go source
|
||||||
bindata:
|
bindata: ## generate go files from non-go sources
|
||||||
@echo "Generating: bindata..."
|
@echo "Generating: bindata..."
|
||||||
$(MAKE) --quiet -C bindata
|
$(MAKE) --quiet -C bindata
|
||||||
|
|
||||||
generate:
|
generate:
|
||||||
go generate
|
go generate
|
||||||
|
|
||||||
lang:
|
lang: ## generates the lexer/parser for the language frontend
|
||||||
@# recursively run make in child dir named lang
|
@# recursively run make in child dir named lang
|
||||||
@echo "Generating: lang..."
|
@echo "Generating: lang..."
|
||||||
$(MAKE) --quiet -C lang
|
$(MAKE) --quiet -C lang
|
||||||
|
|
||||||
# build a `mgmt` binary for current host os/arch
|
# build a `mgmt` binary for current host os/arch
|
||||||
$(PROGRAM): build/mgmt-${GOHOSTOS}-${GOHOSTARCH}
|
$(PROGRAM): build/mgmt-${GOHOSTOS}-${GOHOSTARCH} ## build an mgmt binary for current host os/arch
|
||||||
cp $< $@
|
cp $< $@
|
||||||
|
|
||||||
$(PROGRAM).static: $(GO_FILES)
|
$(PROGRAM).static: $(GO_FILES)
|
||||||
@@ -129,7 +129,7 @@ $(PROGRAM).static: $(GO_FILES)
|
|||||||
go generate
|
go generate
|
||||||
go build -a -installsuffix cgo -tags netgo -ldflags '-extldflags "-static" -X main.program=$(PROGRAM) -X main.version=$(SVERSION) -s -w' -o $(PROGRAM).static $(BUILD_FLAGS);
|
go build -a -installsuffix cgo -tags netgo -ldflags '-extldflags "-static" -X main.program=$(PROGRAM) -X main.version=$(SVERSION) -s -w' -o $(PROGRAM).static $(BUILD_FLAGS);
|
||||||
|
|
||||||
build: LDFLAGS=-s -w
|
build: LDFLAGS=-s -w ## build a fresh mgmt binary
|
||||||
build: $(PROGRAM)
|
build: $(PROGRAM)
|
||||||
|
|
||||||
build-debug: LDFLAGS=
|
build-debug: LDFLAGS=
|
||||||
@@ -148,7 +148,7 @@ build/mgmt-%: $(GO_FILES) | bindata lang
|
|||||||
crossbuild_targets = $(addprefix build/mgmt-,$(subst /,-,${GOOSARCHES}))
|
crossbuild_targets = $(addprefix build/mgmt-,$(subst /,-,${GOOSARCHES}))
|
||||||
crossbuild: ${crossbuild_targets}
|
crossbuild: ${crossbuild_targets}
|
||||||
|
|
||||||
clean:
|
clean: ## clean things up
|
||||||
$(MAKE) --quiet -C bindata clean
|
$(MAKE) --quiet -C bindata clean
|
||||||
$(MAKE) --quiet -C lang clean
|
$(MAKE) --quiet -C lang clean
|
||||||
[ ! -e $(PROGRAM) ] || rm $(PROGRAM)
|
[ ! -e $(PROGRAM) ] || rm $(PROGRAM)
|
||||||
@@ -157,7 +157,7 @@ clean:
|
|||||||
# crossbuild artifacts
|
# crossbuild artifacts
|
||||||
rm -f build/mgmt-*
|
rm -f build/mgmt-*
|
||||||
|
|
||||||
test: build
|
test: build ## run tests
|
||||||
./test.sh
|
./test.sh
|
||||||
|
|
||||||
# create all test targets for make tab completion (eg: make test-gofmt)
|
# create all test targets for make tab completion (eg: make test-gofmt)
|
||||||
@@ -179,9 +179,9 @@ gofmt:
|
|||||||
yamlfmt:
|
yamlfmt:
|
||||||
find . -maxdepth 3 -type f -name '*.yaml' -not -path './old/*' -not -path './tmp/*' -not -path './omv.yaml' -exec ruby -e "require 'yaml'; x=YAML.load_file('{}').to_yaml.each_line.map(&:rstrip).join(10.chr)+10.chr; File.open('{}', 'w').write x" \;
|
find . -maxdepth 3 -type f -name '*.yaml' -not -path './old/*' -not -path './tmp/*' -not -path './omv.yaml' -exec ruby -e "require 'yaml'; x=YAML.load_file('{}').to_yaml.each_line.map(&:rstrip).join(10.chr)+10.chr; File.open('{}', 'w').write x" \;
|
||||||
|
|
||||||
format: gofmt yamlfmt
|
format: gofmt yamlfmt ## format yaml and golang code
|
||||||
|
|
||||||
docs: $(PROGRAM)-documentation.pdf
|
docs: $(PROGRAM)-documentation.pdf ## generate docs
|
||||||
|
|
||||||
$(PROGRAM)-documentation.pdf: docs/documentation.md
|
$(PROGRAM)-documentation.pdf: docs/documentation.md
|
||||||
pandoc docs/documentation.md -o docs/'$(PROGRAM)-documentation.pdf'
|
pandoc docs/documentation.md -o docs/'$(PROGRAM)-documentation.pdf'
|
||||||
@@ -206,7 +206,7 @@ rpmbuild/SOURCES/: tar
|
|||||||
rpmbuild/SRPMS/: srpm
|
rpmbuild/SRPMS/: srpm
|
||||||
rpmbuild/RPMS/: rpm
|
rpmbuild/RPMS/: rpm
|
||||||
|
|
||||||
upload: upload-sources upload-srpms upload-rpms
|
upload: upload-sources upload-srpms upload-rpms ## upload sources
|
||||||
# do nothing
|
# do nothing
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -314,14 +314,14 @@ upload-rpms: rpmbuild/RPMS/ rpmbuild/RPMS/SHA256SUMS rpmbuild/RPMS/SHA256SUMS.as
|
|||||||
#
|
#
|
||||||
# copr build
|
# copr build
|
||||||
#
|
#
|
||||||
copr: upload-srpms
|
copr: upload-srpms ## build in copr
|
||||||
./misc/copr-build.py https://$(SERVER)/$(REMOTE_PATH)/SRPMS/$(SRPM_BASE)
|
./misc/copr-build.py https://$(SERVER)/$(REMOTE_PATH)/SRPMS/$(SRPM_BASE)
|
||||||
|
|
||||||
#
|
#
|
||||||
# deb build
|
# deb build
|
||||||
#
|
#
|
||||||
|
|
||||||
deb:
|
deb: ## build debian package
|
||||||
./misc/gen-deb-changelog-from-git.sh
|
./misc/gen-deb-changelog-from-git.sh
|
||||||
dpkg-buildpackage
|
dpkg-buildpackage
|
||||||
# especially when building in Docker container, pull build artifact in project directory.
|
# especially when building in Docker container, pull build artifact in project directory.
|
||||||
@@ -329,15 +329,24 @@ deb:
|
|||||||
# cleanup
|
# cleanup
|
||||||
rm -rf debian/mgmt/
|
rm -rf debian/mgmt/
|
||||||
|
|
||||||
build_container:
|
build_container: ## builds the container
|
||||||
docker build -t purpleidea/mgmt-build -f docker/Dockerfile.build .
|
docker build -t purpleidea/mgmt-build -f docker/Dockerfile.build .
|
||||||
docker run -td --name mgmt-build purpleidea/mgmt-build
|
docker run -td --name mgmt-build purpleidea/mgmt-build
|
||||||
docker cp mgmt-build:/root/gopath/src/github.com/purpleidea/mgmt/mgmt .
|
docker cp mgmt-build:/root/gopath/src/github.com/purpleidea/mgmt/mgmt .
|
||||||
docker build -t purpleidea/mgmt -f docker/Dockerfile.static .
|
docker build -t purpleidea/mgmt -f docker/Dockerfile.static .
|
||||||
docker rm mgmt-build || true
|
docker rm mgmt-build || true
|
||||||
|
|
||||||
clean_container:
|
clean_container: ## removes the container
|
||||||
docker rmi purpleidea/mgmt-build
|
docker rmi purpleidea/mgmt-build
|
||||||
docker rmi purpleidea/mgmt
|
docker rmi purpleidea/mgmt
|
||||||
|
|
||||||
|
help: ## show this help screen
|
||||||
|
@echo 'Usage: make <OPTIONS> ... <TARGETS>'
|
||||||
|
@echo ''
|
||||||
|
@echo 'Available targets are:'
|
||||||
|
@echo ''
|
||||||
|
@grep -E '^[ a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | \
|
||||||
|
awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
|
||||||
|
@echo ''
|
||||||
|
|
||||||
# vim: ts=8
|
# vim: ts=8
|
||||||
|
|||||||
Reference in New Issue
Block a user