38 lines
850 B
Makefile
38 lines
850 B
Makefile
.DEFAULT_GOAL := build
|
|
APPLICATION_NAME ?= dndmusicbot
|
|
CURRENT_UID := $(shell id -u)
|
|
BIN := src/node_modules/.bin
|
|
YARN = docker run --rm --user $(CURRENT_UID) -v $(CURDIR)/src:/app -v $(CURDIR)/public:/public dndmusicbot-js-build
|
|
|
|
PHONY: js image build clean
|
|
|
|
js: image public/script.js
|
|
|
|
image: .jsimage
|
|
|
|
.jsimage: export DOCKER_BUILDKIT=1
|
|
.jsimage: Dockerfile.js
|
|
@docker build -t dndmusicbot-js-build . -f Dockerfile.js
|
|
@touch .jsimage
|
|
|
|
src/node_modules:
|
|
mkdir -p $@
|
|
|
|
public:
|
|
mkdir -p $@
|
|
|
|
src/yarn.lock: public src/node_modules src/package.json
|
|
$(YARN)
|
|
@touch -mr $(shell ls -Atd $? | head -1) $@
|
|
|
|
public/script.js: src/script.js src/yarn.lock
|
|
$(YARN) build
|
|
|
|
$(APPLICATION_NAME): *.go ffmpeg/*.go speaker/*.go go.mod go.sum
|
|
@go build
|
|
|
|
build: image js $(APPLICATION_NAME)
|
|
|
|
clean:
|
|
rm -r public/* src/node_modules .jsimage $(APPLICATION_NAME)
|