summaryrefslogtreecommitdiff
path: root/Makefile
blob: ad2fc3997215b0cecd0198f12c6da38a57b199d6 (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
119
120
121
122
123
124
125
126
127
.POSIX:

DWM         = dwm-farajli-6.5
ST          = st-farajli-0.9.2
DMENU       = dmenu-farajli-5.3
SLSTATUS    = slstatus-farajli-1.0
FONT1       = LiberationMono
FONT2       = JetBrainsMono

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

CONFDIR     = $(HOME)/.config
MUSICDIR    = $(HOME)/music
PROJDIR     = $(HOME)/proj
BOOKDIR     = $(HOME)/tproj
TESTPROJDIR = $(HOME)/tproj
BINDIR      = $(HOME)/.local/bin
FONTDIR     = $(HOME)/.local/share/fonts/

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

COPY        = cp -r
LINK        = ln -sf

all: config scripts directory

full: config scripts directory desktop

desktop: dmenu-install dwm-install slstatus-install st-install font1-install font2-install check

config:
	mkdir -p $(CONFDIR)/sites
	$(COPY) config/bash/bashrc              $(BASHRC)
	$(COPY) config/zsh/zshrc                $(ZSHRC)
	$(COPY) config/lf                       $(CONFDIR)
	$(COPY) config/mpv                      $(CONFDIR)
	$(COPY) config/sxiv                     $(CONFDIR)
	$(COPY) config/nsxiv                    $(CONFDIR)
	$(COPY) config/picom                    $(CONFDIR)
	$(COPY) config/qutebrowser              $(CONFDIR)
	$(COPY) config/shell                    $(CONFDIR)
	$(COPY) config/vim                      $(CONFDIR)
	$(COPY) config/nvim                     $(CONFDIR)
	$(COPY) config/x11                      $(CONFDIR)
	$(COPY) config/zathura                  $(CONFDIR)
	$(COPY) config/mimeapps.list            $(CONFDIR)
	$(COPY) config/sites/bookmarks.txt      $(CONFDIR)/sites
	$(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:
	mkdir -p          $(BINDIR)
	$(COPY) scripts/* $(BINDIR)

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

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

directory:
	mkdir -p \
		$(BINDIR)      \
		$(BOOKDIR)     \
		$(CONFDIR)     \
		$(MUSICDIR)    \
		$(PROJDIR)     \
		$(TESTPROJDIR)

sync: $(ARCHIVE)

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

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

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)

check:
	@./dep.sh

fullcheck:
	@./dep.sh --optional

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 check clean config desktop directory dist    \
	dmenu-install dwm-install font1-install font2-install fonts \
	full fullcheck git scripts server slstatus-install st-install sync