aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile54
1 files changed, 54 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..bef37ef
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,54 @@
+PATH := vendor/bin:node_modules/.bin:$(PATH)
+GIT_VERSION := $(shell git --no-pager describe --always --tags)
+
+js_sources := $(wildcard src/*.js)
+js_bundles := $(js_sources:src/%.js=assets/js/%.bundle.js)
+zip_release := $(GIT_VERSION:%=dist/w_cms_%.zip)
+
+all: php_dependencies $(js_bundles)
+
+dist: distclean $(zip_release)
+
+dist/w_cms_%.zip: all
+ @echo "Building Zip release..."
+ mkdir -p $(dir $@)
+ git archive --format=zip HEAD -o $@
+ zip -d $@ \
+ "src*" \
+ .gitignore \
+ composer.lock \
+ Makefile \
+ "package*" \
+ webpack.config.js
+ zip -r $@ \
+ assets/js \
+ vendor \
+ -x "*test*" \
+ -x "*docs*"
+
+assets/js/%.bundle.js: src/%.js js_dependencies
+ @echo "Building JS Bundles..."
+ mkdir -p $(dir $@)
+ webpack --env prod
+
+php_dependencies:
+ @echo "Installing PHP dependencies..."
+ composer install --no-dev --prefer-dist
+
+php_clean:
+ @echo "Cleaning PHP..."
+ rm -rf vendor
+
+js_dependencies:
+ @echo "Installing JS dependencies..."
+ npm install
+
+js_clean:
+ @echo "Cleaning JS..."
+ rm -rf node_modules
+ rm -rf $(js_bundles)
+
+clean: php_clean js_clean
+
+distclean:
+ rm -rf dist