dotfiles/GNUmakefile
Tom Willemse c2f8fdb0c0 Add pre- and post-install recipes for configurations
Use the post-install recipe for Emacs to configure it to open org-protocol
requests.
2020-05-09 23:52:46 -07:00

98 lines
1.7 KiB
Makefile

include dotfiles.mk
MODULES=xmodmap emacs picom cower mowedline
STOW=stow
.PHONY: all clean $(MODULES) zsh
all: $(MODULES)
clean: $(addsuffix -clean,$(MODULES))
zsh:
$(MAKE) -C $@
before-%-install: # Dummy recipe
@true
%-stow: % before-%-install
$(STOW) $<
%-install: %-stow # Dummy recipe
@true
%-uninstall:
$(STOW) -D $(subst -uninstall,,$@)
# Picom
picom: picom/.config/picom.conf
picom/.config/picom.conf: picom/.config/picom.org
$(call tangle,conf)
picom-clean:
rm -f picom/.config/picom.conf
#########
# Emacs #
#########
emacs-install: emacs-stow
xdg-settings set default-url-scheme-handler org-protocol EmacsClient.desktop
###########
# Xmodmap #
###########
xmodmap: Xmodmap/.Xmodmap
Xmodmap/.Xmodmap: Xmodmap/Xmodmap.org
$(call tangle,fundamental)
xmodmap-clean:
rm -f Xmodmap/.Xmodmap
#########
# Cower #
#########
cower: cower/.config/cower/config
cower/.config/cower/config: cower/.config/cower/config.org
$(call tangle,conf-unix)
cower-clean:
rm -f cower/.config/cower/config
#############
# Mowedline #
#############
mowedline: mowedline/.config/mowedline/init.scm
mowedline/.config/mowedline/init.scm: SCHEME_IMPLEMENTATION = chicken
mowedline/.config/mowedline/init.scm: mowedline/.config/mowedline/init.org
$(call tangle,scheme)
mowedline-clean:
rm -f mowedline/.config/mowedline/init.scm
#########
# Dunst #
#########
dunst: dunst/.config/dunst/dunstrc
dunst/.config/dunst/dunstrc: dunst/.config/dunst/dunstrc.org
$(call tangle,conf-unix)
dunst-clean:
rm -f dunst/.config/dunst/dunstrc
# X11
x11-install: lib-install x11/dot-x11-0-1-any.pkg.tar.xz
x11/dot-x11-0-1-any.pkg.tar.xz: x11/PKGBUILD
cd x11 && makepkg -sicf