Add make recipe for dirs expected in .mpdconf
[khome.git] / Makefile
1 MAKEFLAGS := --no-builtin-rules
2
3 DEPS := $(wildcard deps/*)
4
5 .PHONY: home pkgs_deb_install pkgs_deb_purge pkgs deps $(DEPS) pkgs_snap_classic pkgs_snap_strict mpdconf
6
7 home: mpdconf
8 @cp -Rp home/bin $(HOME)/
9 @cp -Rp home/lib $(HOME)/
10 @cp home/.compton.conf $(HOME)/
11 @cp -Rp home/.config/ $(HOME)/
12 @cp home/.profile $(HOME)/
13 @cp home/.fonts.conf $(HOME)/
14 @fc-cache $(HOME)/.fonts
15 @cp home/.Rprofile $(HOME)/
16 @cp home/.tmux.conf $(HOME)/
17 @cp home/.xbindkeysrc $(HOME)/
18
19 mpdconf:
20 @mkdir -p ~/Archives/Audio
21 @mkdir -p ~/var/lib/mpd/playlists
22 @mkdir -p ~/var/log/mpd
23 @mkdir -p ~/var/run/mpd
24 @cp home/.mpdconf $(HOME)/
25
26 pkgs:
27 $(MAKE) pkgs_deb_install
28 $(MAKE) pkgs_deb_purge
29 $(MAKE) pkgs_snap_classic
30 $(MAKE) pkgs_snap_strict
31
32 pkgs_deb_install: list pkgs-deb-install.list
33 sudo apt install $(shell ./list pkgs-deb-install.list)
34
35 pkgs_deb_purge: list pkgs-deb-purge.list
36 sudo apt purge $(shell ./list pkgs-deb-purge.list)
37
38 pkgs_snap_classic: list pkgs-snap-classic.list
39 @$(MAKE) $(foreach p,$(shell ./list pkgs-snap-classic.list),pkg_snap_classic_$(p))
40
41 pkgs_snap_strict: list pkgs-snap-strict.list
42 @$(MAKE) $(foreach p,$(shell ./list pkgs-snap-strict.list),pkg_snap_strict_$(p))
43
44 # 'snap' command comes from 'snapd' deb pkg
45 pkg_snap_classic_%:
46 sudo snap install --classic $*
47 pkg_snap_strict_%:
48 sudo snap install $*
49
50 deps: $(DEPS)
51
52 define GEN_DEP_RULE
53 $(1):
54 cd $1 && make
55 endef
56
57 $(foreach d,$(DEPS),$(eval $(call GEN_DEP_RULE,$(d))))
This page took 0.065574 seconds and 5 git commands to generate.