49 lines
1.2 KiB
Makefile
49 lines
1.2 KiB
Makefile
|
DIR_ASSETS = .
|
|||
|
DIR_NODE = $(DIR_ASSETS)/node_modules
|
|||
|
DIR_NODE_BIN = $(DIR_NODE)/.bin
|
|||
|
|
|||
|
BIN_NODE_PKG = npm --prefix "$(DIR_ASSETS)"
|
|||
|
BIN_VUE_CLI = $(DIR_NODE_BIN)/vue-cli-service
|
|||
|
|
|||
|
OUTPUT_DIR_STATIC = $(DIR_BUILD)/webapp
|
|||
|
OUTPUT_ASSET_TEMPLATE = $(OUTPUT_DIR_STATIC)/index.html
|
|||
|
|
|||
|
DEPS_ASSETS = $(shell find "$(DIR_ASSETS)" -type f -not -path "$(DIR_ASSETS)/node_modules/*" -not -path "$(DIR_ASSETS)/venv/*")
|
|||
|
|
|||
|
# dpkg-buildpackage and related tools may interface with
|
|||
|
# proxy settings to prevent internet access during package builds.
|
|||
|
# We don’t care about that.
|
|||
|
undefine no_proxy
|
|||
|
undefine http_proxy
|
|||
|
undefine https_proxy
|
|||
|
|
|||
|
$(DIR_NODE): $(DIR_ASSETS)/package.json $(DIR_ASSETS)/package-lock.json
|
|||
|
ADBLOCK=true $(BIN_NODE_PKG) ci --no-progress
|
|||
|
@touch -c $(DIR_NODE)
|
|||
|
|
|||
|
$(BIN_VUE_CLI): $(DIR_NODE)
|
|||
|
|
|||
|
$(OUTPUT_ASSET_TEMPLATE): $(BIN_VUE_CLI) $(DEPS_ASSETS)
|
|||
|
$(BIN_NODE_PKG) run build
|
|||
|
|
|||
|
.PHONY: lint-js
|
|||
|
lint-js: $(BIN_VUE_CLI)
|
|||
|
$(BIN_NODE_PKG) run lint
|
|||
|
|
|||
|
lint: lint-js
|
|||
|
|
|||
|
.PHONY: clean-assets
|
|||
|
clean-assets:
|
|||
|
rm -rf \
|
|||
|
$(DIR_NODE) \
|
|||
|
$(OUTPUT_DIR_STATIC)
|
|||
|
|
|||
|
clean: clean-assets
|
|||
|
|
|||
|
.PHONY: assets
|
|||
|
assets: $(OUTPUT_ASSET_TEMPLATE)
|
|||
|
|
|||
|
.PHONY: assets-install
|
|||
|
assets-install: assets
|
|||
|
(cd "$(OUTPUT_DIR_STATIC)"; find * -type f -print0 | xargs -0 -I '{}' install -D '{}' "$(DESTDIR)/public/{}")
|