-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
63 lines (46 loc) · 2.48 KB
/
Copy pathMakefile
File metadata and controls
63 lines (46 loc) · 2.48 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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
.PHONY: build man install uninstall clean test lint release
BINARY = mklaunchd
BUILD_DIR = .build/release
INSTALL_BIN = /usr/local/bin
INSTALL_MAN = /usr/local/share/man/man1
# ── Build ──────────────────────────────────────────────────────────────
build:
swift build -c release
debug:
swift build
# ── Man page ───────────────────────────────────────────────────────────
man:
pandoc docs/mklaunchd.1.md \
--standalone \
--to man \
-o docs/mklaunchd.1
@echo "Man page generated: docs/mklaunchd.1"
# ── Install ────────────────────────────────────────────────────────────
install: build man
@echo "Installing $(BINARY) to $(INSTALL_BIN)..."
cp $(BUILD_DIR)/$(BINARY) $(INSTALL_BIN)/$(BINARY)
chmod 755 $(INSTALL_BIN)/$(BINARY)
@echo "Installing man page to $(INSTALL_MAN)..."
mkdir -p $(INSTALL_MAN)
cp docs/mklaunchd.1 $(INSTALL_MAN)/$(BINARY).1
@echo "Done. Run 'mklaunchd --help' to verify."
uninstall:
@echo "Removing $(BINARY)..."
rm -f $(INSTALL_BIN)/$(BINARY)
rm -f $(INSTALL_MAN)/$(BINARY).1
@echo "Done."
# ── Test ───────────────────────────────────────────────────────────────
test:
swift test
# ── Lint ───────────────────────────────────────────────────────────────
lint:
@which swiftlint > /dev/null || \
(echo "swiftlint not found — brew install swiftlint" && exit 1)
swiftlint lint --strict Sources/
# ── Release ────────────────────────────────────────────────────────────
release: test lint build man
@echo "Release build complete: $(BUILD_DIR)/$(BINARY)"
# ── Clean ──────────────────────────────────────────────────────────────
clean:
swift package clean
rm -f docs/mklaunchd.1