include dotfiles.mk

MODULES=xmodmap emacs compton cower mowedline
STOW=stow/usr/bin/stow-home

.PHONY: all clean $(MODULES) zsh

all: $(MODULES)

clean: $(addsuffix -clean,$(MODULES))
stow: $(addsuffix -stow,$(MODULES))

zsh:
	$(MAKE) -C $@

%-stow:
	$(STOW) $(subst -stow,,$@)

###########
# Compton #
###########

compton: compton/.config/compton.conf

compton/.config/compton.conf: compton/.config/compton.org
	$(call tangle,conf)

compton-clean:
	rm -f compton/.config/compton.conf

#########
# Emacs #
#########

emacs:
	$(MAKE) -C emacs/.emacs.d

emacs-clean:
	$(MAKE) -C emacs/.emacs.d clean

###########
# 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