From ff62ecae0c28d532d54292b19418eb30e05370dc Mon Sep 17 00:00:00 2001 From: "Glenn Y. Rolland" Date: Sun, 4 Apr 2021 14:55:38 +0200 Subject: [PATCH] Factorize makefile --- Makefile | 16 +++++++++------- tasks/crystal.mk | 16 ++++++++++++++++ 2 files changed, 25 insertions(+), 7 deletions(-) create mode 100644 tasks/crystal.mk diff --git a/Makefile b/Makefile index d259fbd..6c40fe4 100644 --- a/Makefile +++ b/Makefile @@ -1,13 +1,15 @@ +BINARIES=hodler +hodler_FILES=$(wildcard src/*.cr src/**/*.cr) + all: build -build: bin/hodler +build: ## Build binaries -bin/hodler: $(wildcard src/*.cr) - shards build hodler +clean: ## Clean binaries -completion: bin/hodler - $< --completion --development +.PHONY: clean build all + +## Add targets for crystal +include tasks/crystal.mk -clean: - rm bin/hodler diff --git a/tasks/crystal.mk b/tasks/crystal.mk new file mode 100644 index 0000000..8f0292d --- /dev/null +++ b/tasks/crystal.mk @@ -0,0 +1,16 @@ + +define BINARY_template +ALL_FILES += $($(1)_FILES) + +build: build-$(1) +build-$(1): bin/$(1) + +bin/$(1): $($(1)_FILES) + shards build $(1) + +clean: clean-$(1) +clean-$(1): + rm -f bin/$(1) +endef + +$(foreach binary,$(BINARIES),$(eval $(call BINARY_template,$(binary))))