@@ -9,10 +9,12 @@ default: help all/default
99
1010SELF? =${CURDIR}/helper.mk
1111
12- project? =unifysdk
12+ project? =z-wave-protocol-controller
1313# Temporary workaround for:
1414# https://gitlab.kitware.com/cmake/cmake/-/issues/22813#note_1620373
1515project_test_dir? =applications
16+ project_docs_api_target? =zpc_doxygen
17+ version? =$(shell git describe --tags || echo "0")
1618
1719# Allow overloading from env if needed
1820# VERBOSE?=1
@@ -35,6 +37,19 @@ packages+=nlohmann-json3-dev
3537packages+ =curl wget python3-pip
3638packages+ =time
3739
40+ # For docs
41+ packages+ =graphviz
42+ export cmake_options+=-DDOXYGEN_HAVE_DOT =YES
43+
44+ packages+ =python3-breathe python3-myst-parser \
45+ python3-sphinx-markdown-tables python3-sphinx-rtd-theme \
46+ python3-linkify-it
47+
48+ # TODO: https://bugs.debian.org/1004136#python-sphinxcontrib.plantuml
49+ # packages+=python3-sphinxcontrib.plantuml
50+
51+ docs_dist_dir? =${build_dir}/dist
52+
3853# Extra for components, make it optional
3954packages+ =python3-jinja2
4055packages+ =yarnpkg
@@ -75,7 +90,9 @@ help: README.md
7590 @cat $<
7691 @echo " "
7792 @echo " # Available rules at your own risk:"
78- @grep -o ' ^[^ ]*:' ${SELF} | grep -v ' \$$' | grep -v ' ^#' | grep -v ' ^\.'
93+ @grep -o ' ^[^ ]*:' ${SELF} \
94+ | grep -v ' \$$' | grep -v ' ^#' | grep -v ' ^\.' \
95+ | grep -v ' =' | grep -v ' %'
7996 @echo " "
8097 @echo " # Environment:"
8198 @echo " # PATH=${PATH} "
@@ -101,12 +118,15 @@ setup/rust:
101118 cargo install --version 1.44.0 --locked cargo-deb
102119 @echo " $@ : TODO: Support stable version from https://releases.rs/ or older"
103120
104- setup/python :
105- python3 --version
106- @echo " $@ : TODO: https://bugs.debian.org/1094297"
121+ setup/python/pip/% :
107122 pip3 --version || echo " warning: Please install pip"
108- pip3 install " pybars3" \
109- || pip3 install --break-system-packages " pybars3"
123+ pip3 install " ${@ F} " \
124+ || pip3 install --break-system-packages " ${@ F} "
125+
126+ setup/python : setup/python/pip/pybars3 setup/python/pip/sphinxcontrib.plantuml
127+ python3 --version
128+ @echo " $@ : TODO: https://bugs.debian.org/1094297#pybars3"
129+ @echo " $@ : TODO: https://bugs.debian.org/1004136#python-sphinxcontrib.plantuml"
110130
111131# Relate-to: https://gitlab.kitware.com/cmake/cmake/-/issues/22813#note_1620373
112132cmake_version? =3.29.3
@@ -127,7 +147,29 @@ setup/cmake:
127147
128148setup-cmake : setup/cmake
129149
130- setup/debian/bookworm : setup/debian setup/rust setup/python
150+
151+ plantuml_url? =https://github.com/plantuml/plantuml/releases/download/v1.2022.0/plantuml-1.2022.0.jar
152+ plantuml_filename? =$(shell basename -- "${plantuml_url}")
153+ plantuml_sha256? =f1070c42b20e6a38015e52c10821a9db13bedca6b5d5bc6a6192fcab6e612691
154+ plantuml_dir? =/usr/local/share/plantuml
155+ PLANTUML_JAR_PATH? =${plantuml_dir}/${plantuml_filename}
156+ export PLANTUML_JAR_PATH
157+
158+ ${PLANTUML_JAR_PATH} :
159+ @echo " # $@ : TODO: Please help on:"
160+ @echo " # $@ : https://bugs.debian.org/1004135#2025"
161+ curl -L ${plantuml_url} -O
162+ sha256sum ${plantuml_filename} | grep " ${plantuml_sha256} "
163+ ${sudo} install -d ${plantuml_dir}
164+ ${sudo} install ${plantuml_filename} ${plantuml_dir} /
165+ rm -v ${plantuml_filename}
166+ @echo " # %@: Please adapt env to:"
167+ @echo " # export PLANTUML_JAR_PATH=${plantuml_dir} /${plantuml_filename} "
168+
169+ setup/plantuml : ${PLANTUML_JAR_PATH}
170+ file -E $<
171+
172+ setup/debian/bookworm : setup/debian setup/rust setup/python setup/plantuml
131173 date -u
132174
133175setup : setup/debian/${debian_codename}
@@ -153,16 +195,22 @@ git/prepare: git/modules/prepare
153195configure : ${build_dir}/CMakeCache.txt
154196 file -E $<
155197
198+ configure/clean :
199+ rm -rf ${build_dir} /CMake*
200+
201+ reconfigure : configure/clean configure
202+ @date -u
203+
156204${build_dir}/CMakeCache.txt : CMakeLists.txt
157205 cmake ${cmake_options}
158206
159- build : ${build_dir}/CMakeCache.txt
207+ all : ${build_dir}/CMakeCache.txt
160208 cmake --build ${<D} \
161209 || cat ${build_dir} /CMakeFiles/CMakeOutput.log
162210 cmake --build ${<D}
163- .PHONY : build
211+ .PHONY : all
164212
165- ${build_dir}/% : build
213+ ${build_dir}/% : all
166214 file -E " $@ "
167215
168216test : ${build_dir}
@@ -188,7 +236,7 @@ prepare: git/prepare
188236 git --version
189237 cmake --version
190238
191- all/default : configure prepare build test dist
239+ all/default : configure prepare all test dist
192240 @date -u
193241
194242
@@ -243,3 +291,27 @@ docker/%: Dockerfile
243291
244292test/docker : distclean prepare/docker docker/help docker/test
245293 @echo " # ${project} : log: $@ : done: $^"
294+
295+ docs : ./scripts/build/build_documentation.py doc ${PLANTUML_JAR_PATH} configure
296+ @echo " # export PLANTUML_JAR_PATH=${plantuml_dir} /${plantuml_filename} "
297+ @echo " $@ : PLANTUML_JAR_PATH=${PLANTUML_JAR_PATH} "
298+ $< --output-dir $@
299+ touch $@ /.nojekyll
300+
301+ zpc/docs/api : docs
302+ cmake --build build --target zpc_doxygen
303+ install -d docs/doxygen_zpc
304+ cp -rfa build/zpc_doxygen_zpc/html/* docs/doxygen_zpc/
305+
306+ docs/api : zpc/docs/api
307+
308+ docs/dist : ${docs_dist_dir}/${project}-docs-${version}.zip
309+ file -E " $<"
310+ @du -hsc " $<"
311+
312+ ${docs_dist_dir}/${project}-docs-${version}.zip : docs docs/api
313+ ln -fs docs " ${project} -docs-${version} "
314+ install -d ${@ D}
315+ zip -r9 " $@ " " ${project} -docs-${version} /" \
316+ --exclude " */_sources/*"
317+ rm " ${project} -docs-${version} "
0 commit comments