Feature/add memap cstack usage ports (#661)
* Added memap, avstack, and checkstackusage tools to STM32F4xx Makefile and CMake builds to calculate CSTACK depth and RAM usage * Added memap, cstack, and ram-usage recipes to stm32f10x port Makefile. Added Cmake build. * Removed local dlmstp.c module from stm32f10x port, and used the common datalink dlmstp.c module with MS/TP extended frames and zero-config support. * Added .nm and .su to .gitignore to skip the analysis file residue.
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
TARGET:= checkStackUsage.py
|
||||
PYTHON:=python3
|
||||
VENV:=.venv
|
||||
|
||||
all: .setup .analysed test ## Check everything
|
||||
|
||||
.analysed: ${TARGET}
|
||||
$(MAKE) flake8
|
||||
$(MAKE) pylint
|
||||
$(MAKE) mypy
|
||||
@touch $@
|
||||
|
||||
flake8: dev-install ## PEP8 compliance checks with Flake8
|
||||
@echo "============================================"
|
||||
@echo " Running flake8..."
|
||||
@echo "============================================"
|
||||
${VENV}/bin/flake8 ${TARGET}
|
||||
|
||||
pylint: dev-install ## Static analysis with Pylint
|
||||
@echo "============================================"
|
||||
@echo " Running pylint..."
|
||||
@echo "============================================"
|
||||
${VENV}/bin/pylint --disable=I --rcfile=pylint.cfg ${TARGET}
|
||||
|
||||
mypy: dev-install ## Type checking with mypy
|
||||
@echo "============================================"
|
||||
@echo " Running mypy..."
|
||||
@echo "============================================"
|
||||
${VENV}/bin/mypy --ignore-missing-imports ${TARGET}
|
||||
|
||||
dev-install: .setup | prereq
|
||||
|
||||
prereq:
|
||||
@${PYTHON} -c 'import sys; sys.exit(1 if (sys.version_info.major<3 or sys.version_info.minor<5) else 0)' || { \
|
||||
echo "=============================================" ; \
|
||||
echo "[x] You need at least Python 3.5 to run this." ; \
|
||||
echo "=============================================" ; \
|
||||
exit 1 ; \
|
||||
}
|
||||
|
||||
.setup: requirements.txt
|
||||
@if [ ! -d ${VENV} ] ; then \
|
||||
echo "[-] Installing VirtualEnv environment..." ; \
|
||||
${PYTHON} -m venv ${VENV} || exit 1 ; \
|
||||
fi
|
||||
echo "[-] Installing packages inside environment..." ; \
|
||||
. ${VENV}/bin/activate || exit 1 ; \
|
||||
${PYTHON} -m pip install -r requirements.txt || exit 1
|
||||
touch $@
|
||||
|
||||
test: ## Test proper functioning
|
||||
$(MAKE) -C tests/
|
||||
|
||||
clean: ## Cleanup artifacts
|
||||
rm -rf .cache/ .mypy_cache/ .analysed .setup __pycache__ \
|
||||
tests/__pycache__ .pytest_cache/ .processed .coverage
|
||||
$(MAKE) -C tests/ clean
|
||||
|
||||
help: ## Display this help section
|
||||
@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z0-9_-]+:.*?## / {printf "\033[36m%-18s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST)
|
||||
.DEFAULT_GOAL := help
|
||||
|
||||
define newline # a literal \n
|
||||
|
||||
|
||||
endef
|
||||
|
||||
# Makefile debugging trick:
|
||||
# call print-VARIABLE to see the runtime value of any variable
|
||||
# (hardened a bit against some special characters appearing in the output)
|
||||
print-%:
|
||||
@echo '$*=$(subst ','\'',$(subst $(newline),\n,$($*)))'
|
||||
.PHONY: flake8 pylint mypy clean dev-install prereq
|
||||
Reference in New Issue
Block a user