Files
Steve Karg 4a7b7763c2 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.
2024-05-31 14:39:25 -05:00

74 lines
2.3 KiB
Makefile

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