/ Makefile
Makefile
 1  # SPDX-FileCopyrightText: Copyright (C) 2024-2025 Marek Küthe <m.k@mk16.de>
 2  #
 3  # SPDX-License-Identifier: GPL-3.0-or-later
 4  
 5  .PHONY: all setup addresssanitizer leaksanitizer undefinedsanitizer clean compile coverage install debian check cppcheck flawfinder selene luacheck mdl lua lizard clangtidy reuse-annotate reuse-download reuse-lint reuse-fix reuse test clangformat
 6  
 7  all: setup compile
 8  
 9  setup:
10  	test -d build || meson setup build
11  
12  sanitizer:
13  	meson setup --reconfigure --debug -Db_sanitize=address,undefined build
14  
15  native:
16  	meson setup --reconfigure -Dnative=true build
17  
18  setupcoverage:
19  	meson setup --reconfigure -Db_coverage=true build
20  
21  clean: setup
22  	meson compile --clean -C build
23  
24  compile: setup
25  	meson compile -C build
26  
27  coverage: setupcoverage test
28  	ninja -C build coverage
29  
30  install: setup compile
31  	meson install -C build
32  
33  debian:
34  	dpkg-buildpackage -b
35  
36  check: flawfinder cppcheck scanbuild clangtidy lizard reuse mdl selene luacheck
37  
38  cppcheck: setup
39  	meson compile -C build cppcheck
40  
41  infer: setup
42  	meson compile -C build infer
43  
44  flawfinder: setup
45  	meson compile -C build flawfinder
46  
47  selene: setup
48  	meson compile -C build selene
49  
50  luacheck: setup
51  	meson compile -C build luacheck
52  
53  stylua: setup
54  	meson compile -C build stylua
55  
56  lua: setup stylua luacheck selene
57  
58  lizard: setup
59  	meson compile -C build lizard
60  
61  # || true is a workaround for
62  # https://github.com/boostorg/boost/issues/1107
63  clangtidy: setup
64  	ninja -C build clang-tidy || true
65  
66  # || true is a workaround for
67  # https://github.com/boostorg/boost/issues/1107
68  scanbuild: setup
69  	ninja -C build scan-build || true
70  
71  mdl: setup
72  	meson compile -C build mdl
73  
74  reuse-annotate: setup
75  	meson compile -C build reuse-annotate
76  
77  reuse-download: setup
78  	meson compile -C build reuse-download
79  
80  reuse-lint: setup
81  	meson compile -C build reuse-lint
82  
83  reuse-fix: reuse-annotate reuse-download
84  
85  reuse: reuse-lint
86  
87  test: setup
88  	meson test -C build
89  
90  clangformat: setup
91  	ninja -C build clang-format