commento/Makefile
2018-05-27 23:40:46 +05:30

72 lines
1.8 KiB
Makefile

SHELL = bash
BUILD_DIR = build
DEVEL_BUILD_DIR = $(BUILD_DIR)/devel
PROD_BUILD_DIR = $(BUILD_DIR)/prod
FRONTEND_BUILD_DIR = frontend
FRONTEND_DEVEL_BUILD_DIR = $(FRONTEND_BUILD_DIR)/$(DEVEL_BUILD_DIR)
FRONTEND_PROD_BUILD_DIR = $(FRONTEND_BUILD_DIR)/$(PROD_BUILD_DIR)
API_BUILD_DIR = api
API_DEVEL_BUILD_DIR = $(API_BUILD_DIR)/$(DEVEL_BUILD_DIR)
API_PROD_BUILD_DIR = $(API_BUILD_DIR)/$(PROD_BUILD_DIR)
TMPL_BUILD_DIR = templates
TMPL_DEVEL_BUILD_DIR = $(TMPL_BUILD_DIR)/$(DEVEL_BUILD_DIR)
TMPL_PROD_BUILD_DIR = $(TMPL_BUILD_DIR)/$(PROD_BUILD_DIR)
devel: frontend api templates devel-copy
prod: frontend api templates prod-copy
# TODO: This can probably be written better: instead of explicitly defining
# each target subdirectory, define them at the top and automatically do stuff.
.PHONY: frontend
frontend:
cd frontend && $(MAKE) $(MAKECMDGOALS)
.PHONY: api
api:
cd api && $(MAKE) $(MAKECMDGOALS)
.PHONY: templates
templates:
cd templates && $(MAKE) $(MAKECDMGOALS)
devel-copy: devel-copy-frontend devel-copy-api devel-copy-templates
prod-copy: prod-copy-frontend prod-copy-api prod-copy-templates
devel-copy-frontend:
cp -r $(FRONTEND_DEVEL_BUILD_DIR)/* $(DEVEL_BUILD_DIR)
devel-copy-api:
cp -r $(API_DEVEL_BUILD_DIR)/* $(DEVEL_BUILD_DIR)
devel-copy-templates:
cp -r $(TMPL_DEVEL_BUILD_DIR)/* $(DEVEL_BUILD_DIR)
prod-copy-frontend:
cp -r $(FRONTEND_PROD_BUILD_DIR)/* $(PROD_BUILD_DIR)
prod-copy-api:
cp -r $(API_PROD_BUILD_DIR)/* $(PROD_BUILD_DIR)
prod-copy-templates:
cp -r $(TMPL_PROD_BUILD_DIR)/* $(PROD_BUILD_DIR)
clean: clean-root clean-frontend clean-api
clean-root:
rm -rf build
clean-frontend:
cd frontend && $(MAKE) $(MAKECMDGOALS)
clean-api:
cd api && $(MAKE) $(MAKECMDGOALS)
$(shell mkdir -p $(DEVEL_BUILD_DIR) $(PROD_BUILD_DIR))