-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
49 lines (37 loc) · 1.32 KB
/
Copy pathMakefile
File metadata and controls
49 lines (37 loc) · 1.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
.PHONY: all build debug test run compact once clean install docs help
BUILD_DIR ?= build
all: build
build:
@cmake -S . -B $(BUILD_DIR) -DCMAKE_BUILD_TYPE=Release
@cmake --build $(BUILD_DIR) --parallel
debug:
@cmake -S . -B $(BUILD_DIR) -DCMAKE_BUILD_TYPE=Debug
@cmake --build $(BUILD_DIR) --parallel
test: build
@cd $(BUILD_DIR) && ctest --output-on-failure
run: build
@./$(BUILD_DIR)/sysmon
compact: build
@./$(BUILD_DIR)/sysmon --compact
once: build
@./$(BUILD_DIR)/sysmon --once
install: build
@cmake --install $(BUILD_DIR)
docs: build
@cmake --build $(BUILD_DIR) --target doxygen 2>/dev/null || true
@if command -v sphinx-build >/dev/null 2>&1; then \
sphinx-build -W --keep-going docs/source docs/_build/html; \
echo "Sphinx documentation generated at: docs/_build/html/index.html"; \
fi
clean:
@rm -rf $(BUILD_DIR)
help:
@echo "sysmon build targets:"
@echo " make - Build Release binary in ./build/sysmon"
@echo " make run - Build and run live TUI dashboard"
@echo " make compact - Run in compact summary mode"
@echo " make once - Print snapshot once to terminal"
@echo " make test - Run GoogleTest test suite"
@echo " make docs - Build Doxygen and Sphinx documentation"
@echo " make install - Install to the CMake install prefix"
@echo " make clean - Remove build artifacts"