@@ -9,10 +9,12 @@ default: help all/default
9
9
10
10
SELF? =${CURDIR}/helper.mk
11
11
12
- project? =unifysdk
12
+ project? =z-wave-protocol-controller
13
13
# Temporary workaround for:
14
14
# https://gitlab.kitware.com/cmake/cmake/-/issues/22813#note_1620373
15
15
project_test_dir? =applications
16
+ project_docs_api_target? =zpc_doxygen
17
+ version? =$(shell git describe --tags || echo "0")
16
18
17
19
# Allow overloading from env if needed
18
20
# VERBOSE?=1
@@ -35,6 +37,19 @@ packages+=nlohmann-json3-dev
35
37
packages+ =curl wget python3-pip
36
38
packages+ =time
37
39
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
+
38
53
# Extra for components, make it optional
39
54
packages+ =python3-jinja2
40
55
packages+ =yarnpkg
@@ -75,7 +90,9 @@ help: README.md
75
90
@cat $<
76
91
@echo " "
77
92
@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 ' %'
79
96
@echo " "
80
97
@echo " # Environment:"
81
98
@echo " # PATH=${PATH} "
@@ -101,12 +118,15 @@ setup/rust:
101
118
cargo install --version 1.44.0 --locked cargo-deb
102
119
@echo " $@ : TODO: Support stable version from https://releases.rs/ or older"
103
120
104
- setup/python :
105
- python3 --version
106
- @echo " $@ : TODO: https://bugs.debian.org/1094297"
121
+ setup/python/pip/% :
107
122
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"
110
130
111
131
# Relate-to: https://gitlab.kitware.com/cmake/cmake/-/issues/22813#note_1620373
112
132
cmake_version? =3.29.3
@@ -127,7 +147,29 @@ setup/cmake:
127
147
128
148
setup-cmake : setup/cmake
129
149
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
131
173
date -u
132
174
133
175
setup : setup/debian/${debian_codename}
@@ -153,16 +195,22 @@ git/prepare: git/modules/prepare
153
195
configure : ${build_dir}/CMakeCache.txt
154
196
file -E $<
155
197
198
+ configure/clean :
199
+ rm -rf ${build_dir} /CMake*
200
+
201
+ reconfigure : configure/clean configure
202
+ @date -u
203
+
156
204
${build_dir}/CMakeCache.txt : CMakeLists.txt
157
205
cmake ${cmake_options}
158
206
159
- build : ${build_dir}/CMakeCache.txt
207
+ all : ${build_dir}/CMakeCache.txt
160
208
cmake --build ${<D} \
161
209
|| cat ${build_dir} /CMakeFiles/CMakeOutput.log
162
210
cmake --build ${<D}
163
- .PHONY : build
211
+ .PHONY : all
164
212
165
- ${build_dir}/% : build
213
+ ${build_dir}/% : all
166
214
file -E " $@ "
167
215
168
216
test : ${build_dir}
@@ -188,7 +236,7 @@ prepare: git/prepare
188
236
git --version
189
237
cmake --version
190
238
191
- all/default : configure prepare build test dist
239
+ all/default : configure prepare all test dist
192
240
@date -u
193
241
194
242
@@ -243,3 +291,27 @@ docker/%: Dockerfile
243
291
244
292
test/docker : distclean prepare/docker docker/help docker/test
245
293
@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