mirror of
https://gitlab.com/d3tn/ud3tn.git
synced 2026-08-13 12:33:27 +02:00
Uses pandoc to convert the manpage into a markdown document and add it to the mkdocs documentation. Signed-off-by: Maximilian Nitsch <maximilian.nitsch@d3tn.com>
245 lines
6.8 KiB
Makefile
245 lines
6.8 KiB
Makefile
###############################################################################
|
|
# Default Commands
|
|
###############################################################################
|
|
|
|
.PHONY: all
|
|
all: posix
|
|
|
|
.PHONY: ud3tn
|
|
ud3tn: posix
|
|
|
|
.PHONY: clean
|
|
clean::
|
|
$(RM) -rf build/
|
|
|
|
###############################################################################
|
|
# Execution and Deployment
|
|
###############################################################################
|
|
|
|
.PHONY: run-posix
|
|
run-posix: posix
|
|
build/posix/ud3tn
|
|
|
|
.PHONY: run-unittest-posix
|
|
run-unittest-posix: unittest-posix
|
|
build/posix/testud3tn
|
|
|
|
|
|
.PHONY: run-unittest-posix-with-coverage
|
|
run-unittest-posix-with-coverage:
|
|
$(MAKE) run-unittest-posix coverage=yes && geninfo build/posix -b . -o ./coverage1.info && genhtml coverage1.info -o build/coverage && echo "Coverage report has been generated in 'file://$$(pwd)/build/coverage/index.html'"
|
|
|
|
|
|
###############################################################################
|
|
# Tools
|
|
###############################################################################
|
|
|
|
.PHONY: gdb-posix
|
|
gdb-posix: posix
|
|
$(TOOLCHAIN_POSIX)gdb build/posix/ud3tn
|
|
|
|
.PHONY: aap2-proto-headers
|
|
aap2-proto-headers:
|
|
python3 external/nanopb/generator/nanopb_generator.py -Icomponents --output-dir=generated --error-on-unmatched aap2/aap2.proto
|
|
protoc -Icomponents/aap2 --python_out=python-ud3tn-utils/ud3tn_utils/aap2/generated/ aap2.proto
|
|
|
|
.PHONY: storage-agent-proto-headers
|
|
storage-agent-proto-headers:
|
|
python3 external/nanopb/generator/nanopb_generator.py -Icomponents --output-dir=generated --error-on-unmatched agents/storage/storage_agent.proto
|
|
protoc -Icomponents/agents/storage --python_out=python-ud3tn-utils/ud3tn_utils/storage_agent/generated/ storage_agent.proto
|
|
|
|
###############################################################################
|
|
# Docs
|
|
###############################################################################
|
|
|
|
.PHONY: pandoc-gen-doc
|
|
pandoc-gen-doc:
|
|
pandoc --from man --to gfm+definition_lists --shift-heading-level-by 1 --output doc/references/manpage.md doc/ud3tn.1
|
|
|
|
.PHONY: protoc-gen-doc
|
|
protoc-gen-doc:
|
|
protoc --doc_out=doc/references/protobuf --doc_opt=doc/references/protobuf/protoc-gen-doc-markdown.tmpl,index.md components/aap2/aap2.proto components/agents/storage/storage_agent.proto
|
|
|
|
.PHONY: doc
|
|
doc: pandoc-gen-doc protoc-gen-doc
|
|
mkdocs build --site-dir result/
|
|
|
|
###############################################################################
|
|
# Tests
|
|
###############################################################################
|
|
|
|
.PHONY: integration-test
|
|
integration-test:
|
|
pytest test/integration
|
|
|
|
.PHONY: integration-test-tcpspp
|
|
integration-test-tcpspp:
|
|
CLA=tcpspp pytest test/integration
|
|
|
|
.PHONY: integration-test-tcpcl
|
|
integration-test-tcpcl:
|
|
CLA=tcpcl pytest test/integration
|
|
|
|
.PHONY: integration-test-mtcp
|
|
integration-test-mtcp:
|
|
CLA=mtcp pytest test/integration
|
|
|
|
|
|
# Directory for the virtual Python envionment
|
|
VENV := .venv
|
|
|
|
ifeq "$(verbose)" "yes"
|
|
PIP = pip
|
|
else
|
|
PIP = pip -q
|
|
GET_PIP += > /dev/null
|
|
endif
|
|
|
|
.PHONY: virtualenv
|
|
virtualenv:
|
|
@echo "Create virtualenv in $(VENV)/ ..."
|
|
@python3 -m venv $(VENV)
|
|
@echo "Install/update dependencies..."
|
|
. $(VENV)/bin/activate && $(MAKE) update-virtualenv
|
|
@echo
|
|
@echo "=> To activate the virtualenv, source $(VENV)/bin/activate"
|
|
@echo " or use environment-setup tools like"
|
|
@echo " - virtualenv"
|
|
@echo " - virtualenvwrapper"
|
|
@echo " - direnv"
|
|
|
|
.PHONY: update-virtualenv
|
|
update-virtualenv:
|
|
@echo "Update pip..."
|
|
$(PIP) install -U pip
|
|
@echo "Install local dependencies to site-packages..."
|
|
$(PIP) install -e ./pyd3tn
|
|
$(PIP) install -e ./python-ud3tn-utils
|
|
@echo "Install additional dependencies ..."
|
|
$(PIP) install -U -r ./test/integration/requirements.txt
|
|
$(PIP) install -U -r ./tools/analysis/requirements.txt
|
|
|
|
###############################################################################
|
|
# Code Quality Tests (and Release Tool)
|
|
###############################################################################
|
|
|
|
.PHONY: check-style
|
|
check-style:
|
|
bash ./tools/analysis/stylecheck.sh
|
|
|
|
.PHONY: clang-check-posix
|
|
clang-check-posix: ccmds-posix
|
|
bash ./tools/analysis/clang-check.sh clang-check "posix"
|
|
|
|
.PHONY: clang-tidy-posix
|
|
clang-tidy-posix: ccmds-posix
|
|
bash ./tools/analysis/clang-check.sh "clang-tidy --use-color" "posix"
|
|
|
|
###############################################################################
|
|
# Flags
|
|
###############################################################################
|
|
|
|
-include config.mk
|
|
|
|
CPPFLAGS += -Wall
|
|
|
|
ifeq "$(type)" "release"
|
|
CPPFLAGS += -O2
|
|
else
|
|
CPPFLAGS += -g -O0 -DDEBUG
|
|
endif
|
|
|
|
ifneq "$(wextra)" "no"
|
|
ifeq "$(wextra)" "all"
|
|
CPPFLAGS += -Wextra -Wconversion -Wundef -Wshadow -Wsign-conversion -Wformat-security
|
|
else
|
|
CPPFLAGS += -Wextra -Wno-error=extra -Wno-unused-parameter
|
|
ifneq ($(TOOLCHAIN),clang)
|
|
CPPFLAGS += -Wno-override-init -Wno-unused-but-set-parameter
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
ifeq "$(werror)" "yes"
|
|
CPPFLAGS += -Werror
|
|
endif
|
|
|
|
ifneq "$(verbose)" "yes"
|
|
Q := @
|
|
quiet := quiet_
|
|
MAKEFLAGS += --no-print-directory
|
|
endif
|
|
|
|
ifeq "$(sanitize-strict)" "yes"
|
|
sanitize ?= yes
|
|
ARCH_FLAGS += -fno-sanitize-recover=address,undefined
|
|
ifeq "$(TOOLCHAIN)" "clang"
|
|
ARCH_FLAGS += -fno-sanitize-recover=unsigned-integer-overflow,implicit-conversion,local-bounds
|
|
endif
|
|
endif
|
|
|
|
ifeq "$(sanitize)" "yes"
|
|
ARCH_FLAGS += -fsanitize=address -fno-omit-frame-pointer -fsanitize=undefined
|
|
ifeq "$(TOOLCHAIN)" "clang"
|
|
ARCH_FLAGS += -fsanitize=unsigned-integer-overflow,implicit-conversion,local-bounds
|
|
endif
|
|
else
|
|
ifeq "$(TOOLCHAIN)" "clang"
|
|
ifeq "$(sanitize)" "memory"
|
|
ARCH_FLAGS += -fsanitize=memory -fsanitize-memory-track-origins
|
|
ifeq "$(sanitize-strict)" "yes"
|
|
ARCH_FLAGS += -fno-sanitize-recover=memory
|
|
endif
|
|
endif
|
|
ifeq "$(sanitize)" "thread"
|
|
ARCH_FLAGS += -fsanitize=thread
|
|
ifeq "$(sanitize-strict)" "yes"
|
|
ARCH_FLAGS += -fno-sanitize-recover=thread
|
|
endif
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
ifeq "$(coverage)" "yes"
|
|
ARCH_FLAGS += --coverage
|
|
endif
|
|
|
|
###############################################################################
|
|
# uD3TN-Builds
|
|
###############################################################################
|
|
|
|
.PHONY: posix posix-lib posix-all unittest-posix ccmds-posix
|
|
|
|
ifndef PLATFORM
|
|
|
|
posix:
|
|
@$(MAKE) PLATFORM=posix posix
|
|
|
|
posix-lib:
|
|
@$(MAKE) PLATFORM=posix posix-lib
|
|
|
|
posix-all:
|
|
@$(MAKE) PLATFORM=posix posix posix-lib
|
|
|
|
unittest-posix:
|
|
@$(MAKE) PLATFORM=posix unittest-posix
|
|
|
|
data-decoder:
|
|
@$(MAKE) PLATFORM=posix data-decoder
|
|
|
|
ccmds-posix:
|
|
@$(MAKE) PLATFORM=posix build/posix/compile_commands.json
|
|
|
|
else # ifndef PLATFORM
|
|
|
|
include mk/$(PLATFORM).mk
|
|
include mk/build.mk
|
|
|
|
posix: build/posix/ud3tn
|
|
posix-lib: build/posix/libud3tn.so build/posix/libud3tn.a
|
|
posix-all: posix posix-lib
|
|
data-decoder: build/posix/ud3tndecode
|
|
unittest-posix: build/posix/testud3tn
|
|
ccmds-posix: build/posix/compile_commands.json
|
|
|
|
endif # ifndef PLATFORM
|