/ 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 freebsd check cppcheck flawfinder 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  setugid:
19  	meson setup --reconfigure -Denable_setugid=true build
20  
21  setupcoverage:
22  	meson setup --reconfigure -Db_coverage=true build
23  
24  clean: setup
25  	meson compile --clean -C build
26  
27  compile: setup
28  	meson compile -C build
29  
30  coverage: setupcoverage test
31  	ninja -C build coverage
32  
33  install: setup compile
34  	meson install -C build
35  
36  debian:
37  	dpkg-buildpackage -b
38  
39  freebsd:
40  	meson setup --prefix=/usr/local -Dinstall_documentation=true -Dinstall_rc_script=true -Denable_setugid=true build
41  	meson install -C build --destdir freebsd-staging
42  	cp --force --link freebsd/configuration.yaml build/freebsd-staging/usr/local/etc/crazytrace.yaml
43  	pkg create --metadata freebsd/metadata --root-dir build/freebsd-staging --out-dir .
44  	rm -fR build/freebsd-staging
45  
46  check: flawfinder cppcheck scanbuild clangtidy lizard reuse mdl
47  
48  cppcheck: setup
49  	meson compile -C build cppcheck
50  
51  infer: setup
52  	meson compile -C build infer
53  
54  flawfinder: setup
55  	meson compile -C build flawfinder
56  
57  lizard: setup
58  	meson compile -C build lizard
59  
60  clangtidy: setup
61  	ninja -C build clang-tidy
62  
63  scanbuild: setup
64  	ninja -C build scan-build
65  
66  mdl: setup
67  	meson compile -C build mdl
68  
69  reuse-annotate: setup
70  	meson compile -C build reuse-annotate
71  
72  reuse-download: setup
73  	meson compile -C build reuse-download
74  
75  reuse-lint: setup
76  	meson compile -C build reuse-lint
77  
78  reuse-fix: reuse-annotate reuse-download
79  
80  reuse: reuse-lint
81  
82  test: setup
83  	meson test -C build
84  
85  clangformat: setup
86  	ninja -C build clang-format