dotfiles/GNUmakefile

155 lines
2.8 KiB
Text
Raw Normal View History

MODULES=xmodmap emacs xdg shepherd
STOW = stow
EMACS = emacs
SCHEME_IMPLEMENTATION = guile
define tangle =
@echo -e "\e[35mOBT\e[0m" $<
@$(EMACS) -quick -batch \
-eval "(package-initialize)" \
-load ob-tangle \
-eval "(setq sh-make-vars-local nil)" \
-eval "(setq geiser-default-implementation '$(SCHEME_IMPLEMENTATION))" \
-eval "(org-babel-tangle-file \"$<\" \"$(PWD)/$@\" \"$(1)\")"
endef
2017-04-03 05:22:36 +02:00
.PHONY: all clean $(MODULES) zsh
all: $(MODULES)
install:
cp --recursive --verbose build/. ~/
clean:
rm -r build
2016-11-24 21:45:18 +01:00
zsh:
$(MAKE) -C $@
2017-04-03 05:22:36 +02:00
before-%-install: # Dummy recipe
@true
%-stow: % before-%-install
$(STOW) $<
2020-04-25 05:49:40 +02:00
%-install: %-stow # Dummy recipe
@true
2020-04-25 05:49:40 +02:00
%-uninstall:
$(STOW) -D $(subst -uninstall,,$@)
2018-01-09 06:16:02 +01:00
# Picom
2017-06-22 09:07:28 +02:00
picom: picom/.config/picom.conf
2017-06-22 09:07:28 +02:00
picom/.config/picom.conf: picom/.config/picom.org
2017-06-22 09:07:28 +02:00
$(call tangle,conf)
picom-clean:
rm -f picom/.config/picom.conf
2017-06-22 09:07:28 +02:00
#########
# Emacs #
#########
emacs: build/.config/shepherd/init.d/ build/.config/shepherd/init.d/emacs.scm \
emacs/.config/emacs/init.elc
build/.config/shepherd/init.d/emacs.scm: emacs/.config/shepherd/init.d/emacs.org
$(call tangle)
2017-04-03 05:22:36 +02:00
###########
# Xmodmap #
###########
xmodmap: build/ build/.Xmodmap
2017-04-03 05:22:36 +02:00
build/.Xmodmap: xmodmap/Xmodmap.org
2017-04-03 05:22:36 +02:00
$(call tangle,fundamental)
xmodmap-clean:
rm -f build/.Xmodmap
2017-04-03 05:22:36 +02:00
2018-01-09 05:48:18 +01:00
#########
# 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
2018-01-09 06:21:01 +01:00
#############
# 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
2018-01-09 07:33:43 +01:00
#########
# 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
#######
# XDG #
#######
xdg: build/.config/ build/.config/mimeapps.list build/.config/user-dirs.dirs \
build/.config/user-dirs.locale
build/.config/mimeapps.list: xdg/.config/mimeapps.list.org
$(call tangle)
build/.config/user-dirs.dirs: xdg/.config/user-dirs.dirs.org
$(call tangle)
build/.config/user-dirs.locale: xdg/.config/user-dirs.locale.org
$(call tangle)
# Shepherd
shepherd: build/.config/shepherd/ build/.config/shepherd/init.scm
build/.config/shepherd/init.scm: shepherd/.config/shepherd/init.org
$(call tangle)
# Helper
%.el: %.org
$(call tangle,emacs-lisp)
%.elc: %.el
@echo -e "\e[36mELC\e[0m" $<
$(EMACS) -batch -f batch-byte-compile $<
%: %.org
$(call tangle)
%/:
mkdir -p $@