Heartsync/toss-hwp
0
1define ALL2 update-requirements3 install-jython4endef5ALL:=$(shell echo $(ALL)) # to remove line-feeds6 7define REQUIREMENTS_FILES8 requirements/dev.txt9 requirements/docs.txt10 requirements/lint.txt11 requirements/test.txt12 requirements.txt13endef14REQUIREMENTS_FILES:=$(shell echo $(REQUIREMENTS_FILES))15 16define REQUIREMENTS_IN17 requirements.in18endef19REQUIREMENTS_IN:=$(shell echo $(REQUIREMENTS_IN))20 21define REQUIREMENTS_IN_TEST22 requirements/test.in23 requirements.in24endef25REQUIREMENTS_IN_TEST:=$(shell echo $(REQUIREMENTS_IN_TEST))26 27define REQUIREMENTS_IN_LINT28 requirements/lint.in29endef30REQUIREMENTS_IN_LINT:=$(shell echo $(REQUIREMENTS_IN_LINT))31 32define REQUIREMENTS_IN_DOCS33 requirements/docs.in34endef35REQUIREMENTS_IN_DOCS:=$(shell echo $(REQUIREMENTS_IN_DOCS))36 37define REQUIREMENTS_IN_DEV38 requirements/dev.in39 requirements/docs.in40 requirements/lint.in41 requirements/test.in42 requirements.in43endef44REQUIREMENTS_IN_DEV:=$(shell echo $(REQUIREMENTS_IN_DEV))45 46offline?=047 48ifeq (1,$(offline))49PIP_NO_INDEX:=--no-index50endif51 52FIND_LINKS?=53VENV := . .venv/bin/activate &&54 55 56.PHONY: all57all: $(ALL)58 59.PHONY: bootstrap60bootstrap:61 [ -e bin/activate ] || virtualenv -p python2.7 .62 $(VENV) pip install -U setuptools pip wheel pip-tools63 make update-requirements64 $(VENV) buildout65 66.PHONY: update-requirements67update-requirements: $(REQUIREMENTS_FILES)68 $(VENV) pip-sync $(FIND_LINKS) $(PIP_NO_INDEX) requirements/dev.txt69 70requirements.txt: $(REQUIREMENTS_IN)71 $(VENV) pip-compile $(FIND_LINKS) $(PIP_NO_INDEX) $(pip-compile-options) -o $@ $^72 73requirements/test.txt: $(REQUIREMENTS_IN_TEST)74 $(VENV) pip-compile $(FIND_LINKS) $(PIP_NO_INDEX) $(pip-compile-options) -o $@ $^75 76requirements/lint.txt: $(REQUIREMENTS_IN_LINT)77 $(VENV) pip-compile $(FIND_LINKS) $(PIP_NO_INDEX) $(pip-compile-options) -o $@ $^78 79requirements/docs.txt: $(REQUIREMENTS_IN_DOCS)80 $(VENV) pip-compile $(FIND_LINKS) $(PIP_NO_INDEX) $(pip-compile-options) -o $@ $^81 82requirements/dev.txt: $(REQUIREMENTS_IN_DEV)83 $(VENV) pip-compile $(FIND_LINKS) $(PIP_NO_INDEX) $(pip-compile-options) -o $@ $^84 85 86.PHONY: extract-messages87extract-messages:88 $(VENV) python setup.py extract_messages --input-paths=pyhwp/hwp5/proc --output-file=pyhwp/hwp5/locale/hwp5proc.pot89 $(VENV) python setup.py extract_messages --input-paths=pyhwp/hwp5/hwp5html.py --output-file=pyhwp/hwp5/locale/hwp5html.pot90 $(VENV) python setup.py extract_messages --input-paths=pyhwp/hwp5/hwp5odt.py --output-file=pyhwp/hwp5/locale/hwp5odt.pot91 $(VENV) python setup.py extract_messages --input-paths=pyhwp/hwp5/hwp5txt.py --output-file=pyhwp/hwp5/locale/hwp5txt.pot92 $(VENV) python setup.py extract_messages --input-paths=pyhwp/hwp5/hwp5view.py --output-file=pyhwp/hwp5/locale/hwp5view.pot93 94.PHONY: init-catalog95init-catalog:96 $(VENV) python setup.py init_catalog --domain=hwp5proc --input-file=pyhwp/hwp5/locale/hwp5proc.pot --locale=ko97 $(VENV) python setup.py init_catalog --domain=hwp5html --input-file=pyhwp/hwp5/locale/hwp5html.pot --locale=ko98 $(VENV) python setup.py init_catalog --domain=hwp5odt --input-file=pyhwp/hwp5/locale/hwp5odt.pot --locale=ko99 $(VENV) python setup.py init_catalog --domain=hwp5txt --input-file=pyhwp/hwp5/locale/hwp5txt.pot --locale=ko100 $(VENV) python setup.py init_catalog --domain=hwp5view --input-file=pyhwp/hwp5/locale/hwp5view.pot --locale=ko101 102.PHONY: update-catalog103update-catalog:104 $(VENV) python setup.py update_catalog --domain=hwp5proc --input-file=pyhwp/hwp5/locale/hwp5proc.pot105 $(VENV) python setup.py update_catalog --domain=hwp5html --input-file=pyhwp/hwp5/locale/hwp5html.pot106 $(VENV) python setup.py update_catalog --domain=hwp5odt --input-file=pyhwp/hwp5/locale/hwp5odt.pot107 $(VENV) python setup.py update_catalog --domain=hwp5txt --input-file=pyhwp/hwp5/locale/hwp5txt.pot108 $(VENV) python setup.py update_catalog --domain=hwp5view --input-file=pyhwp/hwp5/locale/hwp5view.pot109 110.PHONY: compile-catalog111compile-catalog:112 $(VENV) python setup.py compile_catalog --domain=hwp5proc113 $(VENV) python setup.py compile_catalog --domain=hwp5html114 $(VENV) python setup.py compile_catalog --domain=hwp5odt115 $(VENV) python setup.py compile_catalog --domain=hwp5txt116 $(VENV) python setup.py compile_catalog --domain=hwp5view117 118.PHONY: notebook119notebook:120 $(VENV) jupyter notebook --notebook-dir=notebooks121 122 123.PHONY: test124test:125 $(VENV) tox --parallel 2 -e py27,py38126 127.PHONY: test-report128test-report:129 $(VENV) coverage combine .tox/*/tmp130 $(VENV) coverage report131 $(VENV) coverage html132 $(VENV) coverage xml133 134.PHONY: clitest135clitest:136 $(VENV) env LANG=C clitest -1 --prefix 3 tests/cli_tests/hwp5proc.txt tests/cli_tests/hwp5odt.txt tests/cli_tests/hwp5html.txt tests/cli_tests/hwp5txt.txt137 138 139.PHONY: install-jython140install-jython: parts/jython2.7/bin/jython141parts/jython2.7/bin/jython:142 rm -rf parts/jython2.7143 mkdir -p parts144 $(VIRTUAL_ENV)/bin/jip install org.python:jython-installer:2.7.1145 java -jar $(VIRTUAL_ENV)/javalib/jython-installer-2.7.1.jar -s -d $(PWD)/parts/jython2.7146 