-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
63 lines (51 loc) · 1.85 KB
/
Makefile
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
# This file contains a list of programs that are configured with this dotfile setup
# We use gnu make + gnu stow + git to get our dotfiles running
# Most of the concern and complexity comes from fish shell + emacs
.DEFAULT_GOAL:=install
CONFIGS=$(sort $(dir $(wildcard */)))
# Packages are software that we have configurations for in this dotfiles
# repository
PACKAGES=opam stow fish patch urxvt urxvt-perls
# For some reason patch is not being picked up as a dependency when opam is installed,
# notified arch package maintainer but it can take time for that pickup.
# For now explicitly marking patch as required
# Packages to be installed via opam instead of distro installer
# are opam packages
OPAMPACKAGES=merlin ocp-indent utop
## Misc software, mostly GUI applications
# What IRC client to use? Been using hexchat mainly for stupid simple xdcc,
# maybe learn weechat?
APPS=mpv mcomix desmume virt-manager emacs
# Software that is not in main repos in arch linux, instead in
# AUR only. TODO: Find way to make these lists all cross-compat with
# fedora...
AUR=brave-bin bitwarden joplin citra-qt-git zoom-system-qt obmenu-generator
.PHONY: install
install: packages opampackages
stow -t ~ $(CONFIGS)
$(MAKE) emacs_install
.PHONY: uninstall
uninstall:
$(MAKE) emacs_uninstall
stow -Dt ~ $(CONFIGS)
.PHONY: emacs_install
emacs_install:
systemctl --user enable emacs
systemctl --user start emacs
.PHONY: emacs_uninstall
emacs_uninstall:
systemctl --user condstop emacs
systemctl --user disable emacs
.PHONY: reinstall
reinstall:
$(MAKE) uninstall
$(MAKE) install
.PHONY: packages
packages:
sudo pacman -Sy $(PACKAGES) --needed
.PHONY: opampackages
opampackages: packages
# Disable shell hook because we explicitly set the config
# for fish-utop integration in this git repository under config.fish
opam init --disable-shell-hook
opam install $(OPAMPACKAGES)