git.lucas.co / cce-display-manager
login greeter
git clone https://git.lucas.co/cce-display-manager.git

Makefile (1.6K)

 1 .PHONY: build install install-user install-system run clean
 2 
 3 build:
 4 	cargo build --release
 5 
 6 # The display manager lives in TWO places, and `install` does both:
 7 #
 8 #   install-user    ~/.local/bin + ~/.local/share/dbus-1: the keyring helper
 9 #                   scripts (the TPM drop-in runs cce-gnome-keyring-start from
10 #                   there) and the Secret Service D-Bus file. It also drops a
11 #                   copy of the binary in ~/.local/bin, which nothing runs.
12 #   install-system  /usr/bin/cce-display-manager, the systemd units and the
13 #                   PAM stacks — what the login actually runs. Root, one sudo
14 #                   prompt; it backs up whatever it replaces (*.bak-<date>)
15 #                   and covers every crate's root artifacts, not only ours.
16 #
17 # Until 2026-09-25 `install` was install-user alone, so it never touched the
18 # greeter the unit starts. Binaries, helper scripts and units are enumerated
19 # by ccebuild from cargo metadata and the crate's dirs — hand-listing them is
20 # what left cce-bevel and the keyring helpers uninstalled for weeks.
21 install: build install-user install-system
22 
23 install-user:
24 	@command -v ccebuild >/dev/null || { echo "ccebuild not installed — run: make -C ../cce-compositor install"; exit 1; }
25 	ccebuild install --no-build cce-display-manager
26 
27 install-system:
28 	@command -v ccebuild >/dev/null || { echo "ccebuild not installed — run: make -C ../cce-compositor install"; exit 1; }
29 	ccebuild install-system
30 
31 # The greeter alone, in the current Wayland session — the daemon (no args)
32 # must run as root and refuses otherwise.
33 run:
34 	cargo run -- --greeter
35 
36 clean:
37 	cargo clean