system-manager-wakasu
1makefile := $(abspath $(lastword $(MAKEFILE_LIST)))
2dotfiles := $(abspath $(dir $(makefile)))
3
4~ := $(abspath $(dotfiles))
5
6force:
7
8define rule.template
9$(1)/% : $(2)/% force
10 @echo "📋 Linking $$< → $$@"
11 @mkdir -p $$(@D)
12 @ln -snf $$< $$@
13endef
14
15rule.define = $(eval $(call rule.template,$(1),$(2)))
16
17$(call rule.define,~,$(~))
18
19all += niri
20niri : ~/.config/niri/config.kdl
21
22# Example: Override default rule to generate content instead of copying
23# Uncomment and customize this pattern for files that should be generated:
24#
25# ~/.config/example/generated.conf : force
26# @echo "⚙️ Generating $$@"
27# @mkdir -p $(@D)
28# @echo "# Generated on $$(date)" > $@
29# @echo "setting1=value1" >> $@
30# @echo "setting2=value2" >> $@
31
32all : $(all)
33 @echo "✅ All dotfiles installed!"
34
35.PHONY: all $(all)
36.DEFAULT_GOAL := all
37