mirror of https://github.com/Chizi123/Dotfiles.git

Joel Grunbaum
2020-06-20 a71b8532ba1e25656f8f776935b63d9df95ae641
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# Targets for install, can be useful to differentiate between user and headless systems
TARGETS = home
 
ifeq ($(VERBOSE),1)
    Q =
else
    Q = @
endif
 
# Commands for operation
MKDIR = $(Q)mkdir -p
STOW  = $(Q)stow
SSTOW = $(Q)sudo stow
ECHO  = @echo
 
INSTALL_TARGETS   = $(TARGETS)
UNINSTALL_TARGETS = $(TARGETS:=-uninstall)
 
# List of all applications with stored dotfiles
SHELLS = bash zsh all-shells
UTILS = emacs git aspell
FUN = mpd ncmpcpp mailcap rtv
DESKTOP = libinput-gestures wallpaper-reddit
 
CONFIGS = $(SHELLS) $(UTILS) $(FUN) $(DESKTOP)
 
all: help
 
.PHONY: $(CONFIGS)
$(CONFIGS):
    $(STOW) -t $(HOME) $@
 
.PHONY: $(CONFIGS:=-del)
$(CONFIGS:=-del):
    $(STOW) --delete -t $(HOME) $(@:-del=)
 
.PHONY: emacs
emacs:
    git submodule update --init
    $(STOW) -t $(HOME) $@
 
.PHONY: termux
termux: shells
    $(STOW) -t $(HOME) $@
 
.PHONY: termux-uninstall
termux-uninstall: shells-uninstall
    $(STOW) --delete -t $(HOME) $(@:-uninstall=)
 
.PHONY: shells
shells: $(SHELLS)
 
.PHONY: shells-uninstall
shells-uninstall: $(SHELLS:=-del)
 
.PHONY: utils
utils: $(UTILS)
 
.PHONY: utils-uninstall
utils-uninstall: $(UTILS:=-del)
 
.PHONY: fun
fun: $(FUN)
 
.PHONY: fun-uninstall
fun-uninstall: $(FUN:=-del)
 
.PHONY: desktop
desktop: $(DESKTOP)
 
.PHONY: desktop-uninstall
desktop-uninstall: $(DESKTOP:=-del)
 
.PHONY: $(INSTALL_TARGETS)
$(INSTALL_TARGETS): $(CONFIGS)
 
.PHONY: $(UNINSTALL_TARGETS)
$(UNINSTALL_TARGETS): $(CONFIGS:=-del)
 
.PHONY: help
help:
    $(ECHO) 'use make "target"'
    $(ECHO) 'targets:'
    $(ECHO)    '    home(-uninstall)'
    $(ECHO) '    shells(-uninstall)'
    $(ECHO) '    utils(-uninstall)'
    $(ECHO) '    fun(-uninstall)'
    $(ECHO) '    desktop(-uninstall)'
    $(ECHO) '    termux(-uninstall)'