1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- .PHONY: all all_javascript all_python clean clean_javascript clean_python test test_javascript test_python help
- SCCDC = python ../python_sccd_compiler/sccdc.py
- PYTHON = python
- BROWSER = firefox 2>/dev/null -new-window
- JS_FLAGS = -l javascript -p eventloop
- PY_FLAGS = -l python -p threads
- JS_EXT = js
- PY_EXT = py
- SRC_DIR = src
- TARGET_DIR_PREFIX = target_
- JS_TARGET_DIR = $(TARGET_DIR_PREFIX)js
- PY_TARGET_DIR = $(TARGET_DIR_PREFIX)py
- #SOURCES = after.xml associate_event.xml correct_duplicate_state_id.xml enter_exit_hierarchy.xml guard.xml history_deep.xml history_parallel_deep.xml history.xml inner_first.xml instate.xml multiple_target.xml object_manager.xml outer_first.xml parallel_history_2.xml parallel_history.xml parallel.xml
- SRC_SUBDIRS = $(shell ls $(SRC_DIR))
- JS_TARGET_SUBDIRS = $(SRC_SUBDIRS:%=$(JS_TARGET_DIR)/%)
- PY_TARGET_SUBDIRS = $(SRC_SUBDIRS:%=$(PY_TARGET_DIR)/%)
- PY_MODULES = $(PY_TARGET_DIR)/__init__.py $(PY_TARGET_SUBDIRS:%=%/__init__.py)
- SOURCES = $(shell find src -type f -name *\.xml)
- #SOURCES_JS = inheritance_js.xml # javascript-only tests
- #SOURCES_PY = #inheritance_py.xml # python-only tests
- JS_TARGETS = $(SOURCES:$(SRC_DIR)/%.xml=$(JS_TARGET_DIR)/%.js) $(SOURCES_JS:$(SRC_DIR)/%.xml=$(JS_TARGET_DIR)/%.js)
- PY_TARGETS = $(SOURCES:$(SRC_DIR)/%.xml=$(PY_TARGET_DIR)/%.py) $(SOURCES_PY:$(SRC_DIR)/%.xml=$(PY_TARGET_DIR)/%.py)
- PY_BYPRODUCTS = $(PY_TARGETS:%.py=%.pyc) $(PY_MODULES:%.py=%.pyc)
- ##
- ##Target Description
- ##
- all: ## Build all tests.
- all: all_javascript all_python
- all_javascript: ## Build Javascript tests.
- all_javascript: $(JS_TARGET_SUBDIRS) $(JS_TARGETS) $(JS_ONLY_TARGETS)
- all_python: ## Build Python tests.
- all_python: $(PY_TARGET_SUBDIRS) $(PY_TARGETS) $(PY_ONLY_TARGETS) $(PY_MODULES)
- clean: ## Remove all build artifacts.
- clean: clean_javascript clean_python
- clean_javascript: ## Remove Javascript build artifacts.
- -rm -f $(JS_TARGETS) $(JS_ONLY_TARGETS)
- -rmdir $(JS_TARGET_SUBDIRS) $(JS_TARGET_DIR)
- clean_python: ## Remove Python build artifacts.
- -rm -f $(PY_TARGETS) $(PY_ONLY_TARGETS) $(PY_BYPRODUCTS) $(PY_MODULES)
- -rmdir $(PY_TARGET_SUBDIRS) $(PY_TARGET_DIR)
- test: ## Run all tests.
- test: test_javascript test_python
- test_javascript: ## Run Javascript tests. This will cause a browser window to open.
- test_javascript: all_javascript run_tests.html
- $(BROWSER) run_tests.html &
- test_python: ## Run Python tests.
- test_python: all_python run_tests.py
- $(PYTHON) run_tests.py
- $(JS_TARGET_DIR)/%.js :: $(SRC_DIR)/%.xml
- $(SCCDC) $(JS_FLAGS) -o $@ $<
- $(PY_TARGET_DIR)/%.py :: $(SRC_DIR)/%.xml
- $(SCCDC) $(PY_FLAGS) -o $@ $<
- $(JS_TARGET_DIR) $(PY_TARGET_DIR):
- -mkdir $@
- $(PY_TARGET_SUBDIRS): $(PY_TARGET_DIR)
- -mkdir $@
- $(JS_TARGET_SUBDIRS): $(JS_TARGET_DIR)
- -mkdir $@
- $(PY_MODULES):
- touch $@
- help: ## Show this help.
- @fgrep -h "##" $(MAKEFILE_LIST) | fgrep -v fgrep | sed -e 's/\\$$//' | sed -e 's/##//'
- ##
|