2018-07-10 19:16:10 +00:00
|
|
|
PROJECT_ROOT=$(dir $(realpath $(firstword $(MAKEFILE_LIST))))
|
2018-07-11 00:17:44 +00:00
|
|
|
BUILD_DIR=$(PROJECT_ROOT)build
|
|
|
|
SCRIPT_DIR=$(PROJECT_ROOT)tools
|
2018-07-10 19:16:10 +00:00
|
|
|
SHELL=/bin/bash
|
|
|
|
PYTHON=$(SCRIPT_DIR)/python
|
|
|
|
NODE=$(SCRIPT_DIR)/node
|
|
|
|
NPM=$(SCRIPT_DIR)/npm
|
|
|
|
|
2018-07-26 23:02:41 +00:00
|
|
|
all: depends generate-tests js beautify py package jstest pytest perf
|
2018-07-10 19:16:10 +00:00
|
|
|
|
|
|
|
help:
|
|
|
|
@echo "make <action>"
|
|
|
|
@echo " all - build both implementations"
|
|
|
|
@echo " static - serve static version of site locally"
|
|
|
|
@echo " js - build javascript"
|
|
|
|
@echo " py - build python"
|
|
|
|
@echo " alltest - test both implementations, js and python"
|
|
|
|
@echo " pytest - test python implementation"
|
|
|
|
@echo " jstest - test javascript implementation"
|
|
|
|
|
|
|
|
ci: all git-status-clear
|
|
|
|
|
2018-07-12 22:21:51 +00:00
|
|
|
static: js/lib/*.js
|
|
|
|
@./node_modules/.bin/static -H '{"Cache-Control": "no-cache, must-revalidate"}'
|
2018-07-10 19:16:10 +00:00
|
|
|
|
2018-07-26 23:02:41 +00:00
|
|
|
js: generate-tests js/lib/*.js
|
2018-07-26 05:40:13 +00:00
|
|
|
@echo Testing node beautify functionality...
|
2018-07-12 22:21:51 +00:00
|
|
|
./node_modules/.bin/mocha --recursive js/test && \
|
2018-07-26 05:40:13 +00:00
|
|
|
./js/test/node-src-index-tests.js
|
2018-07-10 19:16:10 +00:00
|
|
|
|
2018-07-26 23:02:41 +00:00
|
|
|
py: generate-tests $(BUILD_DIR)/python
|
2018-07-26 05:40:13 +00:00
|
|
|
@echo Testing python beautify functionality...
|
|
|
|
$(SCRIPT_DIR)/python-dev python python/js-beautify-test.py || exit 1
|
2018-07-10 19:16:10 +00:00
|
|
|
|
2018-07-26 23:02:41 +00:00
|
|
|
jstest: depends js package
|
2018-07-10 19:16:10 +00:00
|
|
|
@echo Testing javascript implementation...
|
2018-07-26 05:40:13 +00:00
|
|
|
@$(NODE) js/test/node-beautify-tests.js || exit 1
|
|
|
|
@$(NODE) js/test/amd-beautify-tests.js || exit 1
|
2018-07-10 19:16:10 +00:00
|
|
|
@$(NODE) --version && \
|
2018-07-26 05:40:13 +00:00
|
|
|
./js/test/shell-test.sh
|
2018-07-10 19:16:10 +00:00
|
|
|
|
2018-07-26 23:02:41 +00:00
|
|
|
pytest: depends py package
|
2018-07-10 19:16:10 +00:00
|
|
|
@echo Testing python implementation...
|
|
|
|
@cd python && \
|
|
|
|
$(PYTHON) --version && \
|
2018-07-26 05:40:13 +00:00
|
|
|
./jsbeautifier/tests/shell-test.sh
|
|
|
|
|
|
|
|
package: js py build/*.tgz python/dist/*
|
|
|
|
|
|
|
|
|
|
|
|
perf:
|
|
|
|
@echo ----------------------------------------
|
2018-08-29 00:31:50 +00:00
|
|
|
@echo Testing node js beautify performance...
|
2018-07-26 05:40:13 +00:00
|
|
|
$(NODE) js/test/node-beautify-perf-tests.js || exit 1
|
2018-08-29 00:31:50 +00:00
|
|
|
@echo Testing node css beautify performance...
|
|
|
|
$(NODE) js/test/node-beautify-css-perf-tests.js || exit 1
|
2018-07-26 05:40:13 +00:00
|
|
|
@echo Testing html-beautify performance...
|
|
|
|
$(NODE) js/test/node-beautify-html-perf-tests.js || exit 1
|
2018-08-29 00:31:50 +00:00
|
|
|
@echo Testing python js beautify performance...
|
2018-07-26 07:02:12 +00:00
|
|
|
$(SCRIPT_DIR)/python-dev python python/test-perf-jsbeautifier.py || exit 1
|
2018-08-29 00:31:50 +00:00
|
|
|
@echo Testing python css beautify performance...
|
|
|
|
$(SCRIPT_DIR)/python-dev python python/test-perf-cssbeautifier.py || exit 1
|
2018-07-26 05:40:13 +00:00
|
|
|
@echo ----------------------------------------
|
2018-07-10 19:16:10 +00:00
|
|
|
|
2018-07-12 22:21:51 +00:00
|
|
|
generate-tests: $(BUILD_DIR)/generate
|
|
|
|
|
2018-07-10 19:16:10 +00:00
|
|
|
beautify:
|
|
|
|
$(SCRIPT_DIR)/build.sh beautify
|
|
|
|
|
|
|
|
# Build
|
|
|
|
#######################################################
|
|
|
|
|
|
|
|
# javascript bundle generation
|
2018-08-22 23:51:25 +00:00
|
|
|
js/lib/*.js: $(BUILD_DIR)/node $(BUILD_DIR)/generate $(wildcard js/src/**/*) $(wildcard web/*.js) js/index.js tools/template/* webpack.config.js
|
2018-07-10 19:16:10 +00:00
|
|
|
$(SCRIPT_DIR)/build.sh js
|
|
|
|
|
|
|
|
|
|
|
|
# python package generation
|
|
|
|
python/dist/*: $(BUILD_DIR)/python $(wildcard python/**/*.py) python/jsbeautifier/*
|
2018-07-26 05:40:13 +00:00
|
|
|
@echo Building python package...
|
2018-07-25 05:17:41 +00:00
|
|
|
rm -f python/dist/*
|
2018-07-10 19:16:10 +00:00
|
|
|
@cd python && \
|
|
|
|
$(PYTHON) setup.py sdist
|
2018-07-25 21:07:59 +00:00
|
|
|
$(SCRIPT_DIR)/python-rel pip install -U python/dist/*
|
2018-07-10 19:16:10 +00:00
|
|
|
|
2018-07-26 05:40:13 +00:00
|
|
|
# python package generation
|
|
|
|
build/*.tgz: js/lib/*.js
|
|
|
|
@echo Building node package...
|
|
|
|
mkdir -p build/node_modules
|
|
|
|
rm -f build/*.tgz
|
|
|
|
rm -rf node_modules/js-beautify
|
|
|
|
$(NPM) pack && mv *.tgz build/
|
|
|
|
cd build && \
|
|
|
|
$(NPM) install ./*.tgz
|
|
|
|
|
2018-07-10 19:16:10 +00:00
|
|
|
# Test generation
|
2018-07-12 22:21:51 +00:00
|
|
|
$(BUILD_DIR)/generate: $(BUILD_DIR)/node test/generate-tests.js $(wildcard test/data/**/*)
|
2018-07-26 23:02:41 +00:00
|
|
|
@echo Generating tests...
|
2018-07-10 19:16:10 +00:00
|
|
|
$(NODE) test/generate-tests.js
|
2018-07-12 22:21:51 +00:00
|
|
|
@touch $(BUILD_DIR)/generate
|
2018-07-10 19:16:10 +00:00
|
|
|
|
|
|
|
|
|
|
|
# Handling dependencies
|
|
|
|
#######################################################
|
|
|
|
depends: $(BUILD_DIR)/node $(BUILD_DIR)/python
|
2018-07-12 22:21:51 +00:00
|
|
|
@$(NODE) --version
|
|
|
|
@$(PYTHON) --version
|
2018-07-10 19:16:10 +00:00
|
|
|
|
|
|
|
# update dependencies information
|
|
|
|
update: depends
|
|
|
|
npm update
|
|
|
|
|
|
|
|
# when we pull dependencies also pull docker image
|
|
|
|
# without this images can get stale and out of sync from CI system
|
|
|
|
$(BUILD_DIR)/node: package.json package-lock.json | $(BUILD_DIR)
|
2018-07-12 22:21:51 +00:00
|
|
|
@$(NODE) --version
|
2018-07-10 19:16:10 +00:00
|
|
|
$(NPM) install
|
|
|
|
@touch $(BUILD_DIR)/node
|
|
|
|
|
2018-07-25 05:17:41 +00:00
|
|
|
$(BUILD_DIR)/python: python/setup.py | $(BUILD_DIR) $(BUILD_DIR)/virtualenv
|
2018-07-12 22:21:51 +00:00
|
|
|
@$(PYTHON) --version
|
2018-07-25 21:07:59 +00:00
|
|
|
$(SCRIPT_DIR)/python-dev pip install -e ./python
|
2018-07-10 19:16:10 +00:00
|
|
|
@touch $(BUILD_DIR)/python
|
|
|
|
|
2018-07-25 05:17:41 +00:00
|
|
|
$(BUILD_DIR)/virtualenv: | $(BUILD_DIR)
|
|
|
|
virtualenv --version || pip install virtualenv
|
|
|
|
virtualenv build/python-dev
|
|
|
|
virtualenv build/python-rel
|
|
|
|
@touch $(BUILD_DIR)/virtualenv
|
|
|
|
|
2018-07-10 19:16:10 +00:00
|
|
|
|
|
|
|
|
|
|
|
# Miscellaneous tasks
|
|
|
|
#######################################################
|
|
|
|
$(BUILD_DIR):
|
|
|
|
mkdir -p $(BUILD_DIR)
|
|
|
|
|
|
|
|
git-status-clear:
|
|
|
|
$(SCRIPT_DIR)/git-status-clear.sh
|
|
|
|
|
|
|
|
clean:
|
|
|
|
git clean -xfd
|
|
|
|
#######################################################
|
|
|
|
|
|
|
|
.PHONY: all beautify clean depends generate-tests git-status-clear help static update
|
|
|
|
|