/ 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