Skip to content

Instantly share code, notes, and snippets.

@klyr
Created May 6, 2019 10:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save klyr/a016823af051f78a4941ba5be206042d to your computer and use it in GitHub Desktop.
Save klyr/a016823af051f78a4941ba5be206042d to your computer and use it in GitHub Desktop.
Makefile for blockdiag
SOURCEDIR = diags
BUILDDIR = png
BLOCKDIAG_SOURCES = $(wildcard $(SOURCEDIR)/*.blockdiag)
SEQDIAG_SOURCES = $(wildcard $(SOURCEDIR)/*.seqdiag)
ACTDIAG_SOURCES = $(wildcard $(SOURCEDIR)/*.actdiag)
NWDIAG_SOURCES = $(wildcard $(SOURCEDIR)/*.nwdiag)
BLOCKDIAG_GENERATED = $(patsubst $(SOURCEDIR)/%.blockdiag, $(BUILDDIR)/%.png, $(BLOCKDIAG_SOURCES))
SEQDIAG_GENERATED = $(patsubst $(SOURCEDIR)/%.seqdiag, $(BUILDDIR)/%.png, $(SEQDIAG_SOURCES))
ACTDIAG_GENERATED = $(patsubst $(SOURCEDIR)/%.actdiag, $(BUILDDIR)/%.png, $(ACTDIAG_SOURCES))
NWDDIAG_GENERATED = $(patsubst $(SOURCEDIR)/%.nwdiag, $(BUILDDIR)/%.png, $(NWDIAG_SOURCES))
.DEFAULT_GOAL=help
##@ Building
build: $(BLOCKDIAG_GENERATED) $(SEQDIAG_GENERATED) $(ACTDIAG_GENERATED) $(NWDIAG_GENERATED) ## Build block diagrams
$(BUILDDIR):
mkdir -p $(BUILDDIR)
$(BUILDDIR)/%.png : $(SOURCEDIR)/%.blockdiag $(BUILDDIR)
blockdiag $< -o $@
$(BUILDDIR)/%.png : $(SOURCEDIR)/%.seqdiag $(BUILDDIR)
seqdiag $< -o $@
$(BUILDDIR)/%.png : $(SOURCEDIR)/%.actdiag $(BUILDDIR)
actdiag $< -o $@
$(BUILDDIR)/%.png : $(SOURCEDIR)/%.nwdiag $(BUILDDIR)
nwdiag $< -o $@
##@ Helpers
.PHONY: help
clean:
rm -f $(BUILDDIR)/*
help: ## Display this help
@awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m<target>\033[0m\n"} /^[a-zA-Z_-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment