summaryrefslogtreecommitdiff
path: root/Makefile
blob: 09c3b53163338004623166ded9e47310ff591dc9 (plain)
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
.POSIX:

DMENU           = dmenu_farajli-5.3.0
DWM             = dwm_farajli-6.5.2
FONT1           = LiberationMono
FONT2           = JetBrainsMono
SLSTATUS        = slstatus_farajli-1.0.1
ST              = st_farajli-0.9.2.1

FONTS           = $(FONT1) $(FONT2)
SOFTWARE        = $(DWM) $(DMENU) $(SLSTATUS) $(ST)
ARCHIVE         = $(SOFTWARE:=.tar.gz) $(FONTS:=.tar.gz)

BINDIR          = $(HOME)/.local/bin
CONFDIR         = $(HOME)/.config
FONTDIR         = $(HOME)/.local/share/fonts/

BASHPROFILE     = $(HOME)/.bash_profile
BASHRC          = $(HOME)/.bashrc
GITCONFIG       = $(HOME)/.gitconfig
ZCACHE          = $(HOME)/.cache/zsh/history
ZPROFILE        = $(HOME)/.zprofile
ZSHRC           = $(HOME)/.zshrc

INSTALL_TARGETS = dmenu-install dwm-install font1-install font2-install slstatus-install st-install
DIRECTORIES     = $(BINDIR) $(CONFDIR) $(FONTDIR)

COPY            = cp -r
LINK            = ln -sf

all: config $(DIRECTORIES) scripts desktop

desktop: $(INSTALL_TARGETS)

$(BINDIR) $(CONFDIR) $(FONTDIR):
	mkdir -p $@

config: $(CONFDIR)
	mkdir -p                                $$(dirname $(ZCACHE))
	mkdir -p                                $(CONFDIR)/sites
	touch                                   $(ZCACHE)
	$(COPY) config/bash/bashrc              $(BASHRC)
	$(COPY) config/dunst                    $(CONFDIR)
	$(COPY) config/lf                       $(CONFDIR)
	$(COPY) config/mimeapps.list            $(CONFDIR)
	$(COPY) config/mpv                      $(CONFDIR)
	$(COPY) config/nsxiv                    $(CONFDIR)
	$(COPY) config/nvim                     $(CONFDIR)
	$(COPY) config/picom                    $(CONFDIR)
	$(COPY) config/qutebrowser              $(CONFDIR)
	$(COPY) config/shell                    $(CONFDIR)
	$(COPY) config/sites/bookmarks.txt      $(CONFDIR)/sites
	$(COPY) config/sxiv                     $(CONFDIR)
	$(COPY) config/vim                      $(CONFDIR)
	$(COPY) config/wallpapers               $(CONFDIR)
	$(COPY) config/x11                      $(CONFDIR)
	$(COPY) config/zathura                  $(CONFDIR)
	$(COPY) config/zsh/zshrc                $(ZSHRC)
	$(LINK) $(CONFDIR)/shell/profile        $(BASHPROFILE)
	$(LINK) $(CONFDIR)/shell/profile        $(ZPROFILE)

git:
	sed '/# signingkey = <to be set manually>/d' config/git/gitconfig > $(GITCONFIG)
	@echo "#####################################################################"
	@echo "Warning: Git commit/tag signing is enabled but signingKey is not set." >&2
	@echo "#####################################################################"
	@echo "Configure it manually using:" >&2
	@echo "    gpg --list-secret-keys --keyid-format=long" >&2
	@echo "    git config --global user.signingkey <YOUR_KEY_ID>" >&2

scripts: $(BINDIR)
	mkdir -p          $(BINDIR)
	$(COPY) scripts/* $(BINDIR)

server:
	$(COPY) config/bash/bashrc $(BASHRC)
	$(COPY) config/lf          $(CONFDIR)
	$(COPY) config/shell       $(CONFDIR)
	$(COPY) config/vim         $(CONFDIR)
	$(COPY) config/zsh/zshrc   $(ZSHRC)
	$(COPY) scripts/noc

arch-linux:
	sudo $(COPY) distros/arch-linux/pacman.conf /etc

sync: $(ARCHIVE)

$(ARCHIVE):
	curl -LO https://farajli.net/archive/$@

dmenu-install:    $(DMENU).tar.gz    $(BINDIR)
dwm-install:      $(DWM).tar.gz      $(BINDIR)
slstatus-install: $(SLSTATUS).tar.gz $(BINDIR)
st-install:       $(ST).tar.gz       $(BINDIR)
font1-install:    $(FONT1).tar.gz    $(FONTDIR)
font2-install:    $(FONT2).tar.gz    $(FONTDIR)

dmenu-install dwm-install slstatus-install st-install:
	tar xf $<
	PREFIX=~/.local make -C $$(basename $< .tar.gz) install

font1-install font2-install:
	tar xf $<
	$(COPY) $$(basename $< .tar.gz) $(FONTDIR)
	fc-cache

dist: clean
	mkdir -p slcf/
	cp -R config distros scripts dep.sh Makefile README slcf/
	tar -czf slcf.tar.gz slcf/
	rm -rf slcf/

clean:
	rm -rf slcf/ slcf.tar.gz $(ARCHIVE) $(FONTS) $(SOFTWARE)

.PHONY: all arch-linux clean config desktop directory dist \
	fonts git scripts server sync \
	$(INSTALL_TARGETS)