.POSIX: .PHONY: all \ clean \ distclean \ install \ install-abook \ install-bash \ install-bash-completion \ install-bin \ install-bin-man \ install-cabal \ install-cargo \ install-cpanm \ install-curl \ install-dillo \ install-dunst \ install-emacs \ install-ex \ install-finger \ install-games \ install-games-man \ install-git \ install-gnupg \ install-gtk \ install-i3 \ install-ksh \ install-less \ install-login-shell \ install-mail \ install-man \ install-mpv \ install-mutt \ install-mysql \ install-newsboat \ install-perlcritic \ install-perltidy \ install-plenv \ install-psql \ install-pyenv \ install-rbenv \ install-readline \ install-sh \ install-subversion \ install-systemd \ install-terminfo \ install-tidy \ install-tmux \ install-urxvt \ install-vim \ install-vim-gui \ install-vint \ install-wget \ install-x \ install-youtube-dl \ install-zsh \ check \ check-bash \ check-bin \ check-games \ check-git-template-hooks \ check-ksh \ check-login-shell \ check-man \ check-sh \ check-urxvt \ check-xinit \ check-zsh \ lint \ lint-bash \ lint-bin \ lint-games \ lint-git-template-hooks \ lint-ksh \ lint-sh \ lint-urxvt \ lint-vim \ lint-xinit .SUFFIXES: .SUFFIXES: .awk .bash .m4 .mi5 .pl .sed .sh XDG_CACHE_HOME = $(HOME)/.cache XDG_CONFIG_HOME = $(HOME)/.config XDG_DATA_HOME = $(HOME)/.local/share NAME = 'Tom Ryder' EMAIL = tom@sanctum.geek.nz GPG_KEYID = FA09C06E1B670CD0B2F5DE60C14286EA77BB8872 BINS = bin/ap \ bin/apf \ bin/ax \ bin/bcq \ bin/bel \ bin/bl \ bin/bp \ bin/br \ bin/brnl \ bin/ca \ bin/cf \ bin/cfr \ bin/chc \ bin/chn \ bin/clog \ bin/clrd \ bin/clwr \ bin/csmw \ bin/dam \ bin/d2u \ bin/ddup \ bin/defang \ bin/dfv \ bin/dmp \ bin/dub \ bin/edda \ bin/eds \ bin/exm \ bin/fgscr \ bin/finc \ bin/fnl \ bin/fnp \ bin/gms \ bin/grc \ bin/grec \ bin/gred \ bin/gscr \ bin/gwp \ bin/hms \ bin/htdec \ bin/htenc \ bin/htref \ bin/hurl \ bin/igex \ bin/isgr \ bin/ix \ bin/jfc \ bin/jfcd \ bin/jfp \ bin/loc \ bin/mi5 \ bin/max \ bin/maybe \ bin/mean \ bin/med \ bin/mex \ bin/mftl \ bin/mim \ bin/min \ bin/mkcp \ bin/mked \ bin/mkmv \ bin/mktd \ bin/mkvi \ bin/mode \ bin/motd \ bin/msc \ bin/murl \ bin/mw \ bin/nlbr \ bin/oii \ bin/onl \ bin/osc \ bin/pa \ bin/paz \ bin/ped \ bin/phpcsff \ bin/pit \ bin/p \ bin/pp \ bin/pph \ bin/pst \ bin/pvi \ bin/pwg \ bin/qat \ bin/quo \ bin/rep \ bin/rfcf \ bin/rfcr \ bin/rfct \ bin/rgl \ bin/rnda \ bin/rndf \ bin/rndi \ bin/rndl \ bin/rnds \ bin/sd2u \ bin/sec \ bin/shb \ bin/slow \ bin/sls \ bin/slsf \ bin/sqs \ bin/sra \ bin/sshi \ bin/sta \ bin/stbl \ bin/stex \ bin/stws \ bin/su2d \ bin/sue \ bin/supp \ bin/swr \ bin/td \ bin/tl \ bin/tlcs \ bin/tm \ bin/tot \ bin/trs \ bin/try \ bin/u2d \ bin/umake \ bin/unf \ bin/urlc \ bin/urlh \ bin/urlmt \ bin/uts \ bin/vest \ bin/vex \ bin/vic \ bin/wro \ bin/xgo \ bin/xgoc \ bin/xrbg \ bin/xrq BINS_M4 = bin/chn.m4 \ bin/dfv.m4 \ bin/edda.m4 \ bin/mim.m4 \ bin/oii.m4 \ bin/phpcsff.m4 \ bin/pst.m4 \ bin/swr.m4 \ bin/tlcs.m4 \ bin/try.m4 \ bin/urlc.m4 BINS_SH = bin/chn.sh \ bin/dfv.sh \ bin/edda.sh \ bin/mim.sh \ bin/oii.sh \ bin/phpcsff.sh \ bin/pst.sh \ bin/swr.sh \ bin/tlcs.sh \ bin/try.sh \ bin/urlc.sh GAMES = games/aaf \ games/acq \ games/aesth \ games/chkl \ games/dr \ games/drakon \ games/kvlt \ games/philsay \ games/pks \ games/rndn \ games/rot13 \ games/uuu \ games/squ \ games/strik \ games/xyzzy \ games/zs GIT_TEMPLATE_HOOKS = git/template/hooks/post-update \ git/template/hooks/pre-commit \ git/template/hooks/prepare-commit-msg all: $(BINS) \ $(GIT_TEMPLATE_HOOKS) \ git/config \ gnupg/profile.d/gnupg.sh \ less/less clean distclean: rm -f -- \ $(BINS) \ $(BINS_M4) \ $(BINS_SH) \ $(GAMES) \ $(GIT_TEMPLATE_HOOKS) \ bin/han \ dillo/dillorc \ dillo/dillorc.m4 \ git/config \ git/config.m4 \ gnupg/profile.d/gnupg.sh \ include/mktd.m4 \ less/less \ mutt/filters/markdown-to-html \ urxvt/ext/select \ vim/dist/* .awk: sh bin/shb.sh awk -f < $< > $@ chmod +x ./$@ .bash: sh bin/shb.sh bash < $< > $@ chmod +x ./$@ .pl: sh bin/shb.sh perl < $< > $@ chmod +x ./$@ .sed: sh bin/shb.sh sed -f < $< > $@ chmod +x ./$@ .sh: sh bin/shb.sh sh < $< > $@ chmod +x ./$@ .mi5.m4: awk -f bin/mi5.awk < $< > $@ .m4.sh: m4 < $< > $@ bin/chn.sh: bin/chn.m4 include/mktd.m4 bin/dfv.sh: bin/dfv.m4 include/mktd.m4 bin/edda.sh: bin/edda.m4 include/mktd.m4 bin/mim.sh: bin/mim.m4 include/mktd.m4 bin/oii.sh: bin/oii.m4 include/mktd.m4 bin/phpcsff.sh: bin/phpcsff.m4 include/mktd.m4 bin/pst.sh: bin/pst.m4 include/mktd.m4 bin/swr.sh: bin/swr.m4 include/mktd.m4 bin/tlcs.sh: bin/tlcs.m4 include/mktd.m4 bin/try.sh: bin/try.m4 include/mktd.m4 bin/urlc.sh: bin/urlc.m4 include/mktd.m4 dillo/dillorc: dillo/dillorc.m4 m4 \ -D HOME=$(HOME) \ dillo/dillorc.m4 > $@ git/config: git/config.m4 m4 \ -D NAME=$(NAME) \ -D EMAIL=$(EMAIL) \ -D GPG_KEYID=$(GPG_KEYID) \ -D XDG_CONFIG_HOME=$(XDG_CONFIG_HOME) \ git/config.m4 > $@ less/less: less/lesskey lesskey --output $@ less/lesskey gnupg/profile.d/gnupg.sh: gnupg/profile.d/gnupg.sh.m4 m4 \ -D GPG_KEYID=$(GPG_KEYID) \ gnupg/profile.d/gnupg.sh.m4 > $@ MAILDIR = $(HOME)/Mail install: install-bin \ install-curl \ install-ex \ install-git \ install-gnupg \ install-less \ install-login-shell \ install-man \ install-readline \ install-vim install-conf: sh install/conf.sh install-abook: mkdir -p -- $(HOME)/.abook cp -p -- abook/abookrc $(HOME)/.abook install-bash: check-bash install-sh bin/han mkdir -p -- $(HOME)/.bashrc.d $(HOME)/.local/bin cp -p -- bash/bashrc $(HOME)/.bashrc cp -p -- bash/bashrc.d/*.bash $(HOME)/.bashrc.d cp -p -- bash/bash_profile $(HOME)/.bash_profile cp -p -- bash/bash_logout $(HOME)/.bash_logout cp -p -- bin/han $(HOME)/.local/bin install-bash-completion: install-bash mkdir -p -- $(HOME)/.bash_completion.d $(XDG_CONFIG_HOME) cp -p -- bash/bash_completion $(XDG_CONFIG_HOME) cp -p -- bash/bash_completion.d/*.bash $(HOME)/.bash_completion.d install-bin: $(BINS) install-bin-man mkdir -p -- $(HOME)/.local/bin cp -p -- $(BINS) $(HOME)/.local/bin install-bin-man: mkdir -p -- $(XDG_DATA_HOME)/man/man1 $(XDG_DATA_HOME)/man/man8 cp -p -- man/man1/*.1df $(XDG_DATA_HOME)/man/man1 cp -p -- man/man8/*.8df $(XDG_DATA_HOME)/man/man8 install-cabal: cp -p -- cabal/profile.d/*.sh $(HOME)/.profile.d install-cargo: cp -p -- cargo/profile.d/*.sh $(HOME)/.profile.d install-cpanm: cp -p -- cpanm/profile.d/*.sh $(HOME)/.profile.d install-curl: cp -p -- curl/curlrc $(HOME)/.curlrc install-dillo: dillo/dillorc install-x mkdir -p -- $(HOME)/.dillo cp -p -- dillo/dillorc $(HOME)/.dillo/dillorc install-dunst: install-x mkdir -p -- $(XDG_CONFIG_HOME)/dunst cp -p -- dunst/dunstrc $(XDG_CONFIG_HOME)/dunst install-emacs: emacs/bin/emacsm install-sh mkdir -p -- $(HOME)/.local/bin cp -p -- emacs/emacs $(HOME)/.emacs cp -p -- emacs/bin/emacsm $(HOME)/.local/bin cp -p -- emacs/profile.d/emacs.sh $(HOME)/.profile.d install-ex: cp -p -- ex/exrc $(HOME)/.exrc install-finger: cp -p -- finger/plan $(HOME)/.plan cp -p -- finger/project $(HOME)/.project cp -p -- finger/pgpkey $(HOME)/.pgpkey install-games: $(GAMES) install-games-man mkdir -p -- $(HOME)/.local/games cp -p -- $(GAMES) $(HOME)/.local/games install-games-man: mkdir -p -- $(XDG_DATA_HOME)/man/man6 cp -p -- man/man6/*.6df $(XDG_DATA_HOME)/man/man6 install-git: git/config $(GIT_TEMPLATE_HOOKS) mkdir -p -- $(XDG_CONFIG_HOME)/git cp -p -- git/config $(XDG_CONFIG_HOME)/git/config mkdir -p -- $(XDG_CONFIG_HOME)/git/template cp -pR -- git/template/description \ $(XDG_CONFIG_HOME)/git/template/description mkdir -p -- $(XDG_CONFIG_HOME)/git/template/hooks cp -pR -- $(GIT_TEMPLATE_HOOKS) \ $(XDG_CONFIG_HOME)/git/template/hooks install-gnupg: gnupg/profile.d/gnupg.sh install-sh cp -p -- gnupg/profile.d/*.sh $(HOME)/.profile.d install-gtk: mkdir -p -- $(XDG_CONFIG_HOME)/gtk-3.0 cp -p -- gtk/gtkrc-2.0 $(HOME)/.gtkrc-2.0 cp -p -- gtk/gtk-3.0/settings.ini $(XDG_CONFIG_HOME)/gtk-3.0 install-i3: install-x mkdir -p -- $(XDG_CONFIG_HOME)/i3 cp -p -- i3/* $(XDG_CONFIG_HOME)/i3 install-keychain: install-sh cp -p -- keychain/profile.d/*.sh $(HOME)/.profile.d cp -p -- keychain/shrc.d/*.sh $(HOME)/.shrc.d install-less: less/less mkdir -p -- $(HOME)/.profile.d cp -- less/profile.d/*.sh $(HOME)/.profile.d mkdir -p -- $(XDG_CONFIG_HOME)/less cp -p -- less/less $(XDG_CONFIG_HOME)/less/key install-mail: cp -p -- mail/signature $(HOME)/.signature install-man: mkdir -p -- $(XDG_DATA_HOME)/man/man7 cp -p -- man/man7/dotfiles.7df $(XDG_DATA_HOME)/man/man7 install-mpv: mkdir -p -- $(XDG_CONFIG_HOME)/mpv cp -p -- mpv/* $(XDG_CONFIG_HOME)/mpv install-mutt: install-gnupg install-mail mutt/filters/markdown-to-html mkdir -p -- \ $(XDG_CONFIG_HOME)/mutt \ $(XDG_CONFIG_HOME)/mutt/muttrc.d \ $(XDG_CACHE_HOME)/mutt/headers \ $(XDG_DATA_HOME)/mutt/autocrypt \ $(HOME)/.local/libexec/mutt/filters cp -p -- mutt/muttrc \ mutt/mailcap \ $(XDG_CONFIG_HOME)/mutt cp -p -- mutt/muttrc.d/src \ $(XDG_CONFIG_HOME)/mutt/muttrc.d touch -- $(XDG_CONFIG_HOME)/mutt/aliases cp -p -- mutt/filters/markdown-to-html \ $(HOME)/.local/libexec/mutt/filters install-newsboat: install-systemd mkdir -p -- $(XDG_CONFIG_HOME)/newsboat $(XDG_DATA_HOME)/newsboat cp -p -- newsboat/config $(XDG_CONFIG_HOME)/newsboat -command -v systemctl >/dev/null 2>&1 \ && mkdir -p -- $(XDG_CONFIG_HOME)/systemd/user \ && cp -p -- newsboat/systemd/user/* $(XDG_CONFIG_HOME)/systemd/user \ && systemctl --user daemon-reload \ && systemctl --user start reload-newsboat.timer \ && systemctl --user enable reload-newsboat.timer install-mysql: cp -p -- mysql/my.cnf $(HOME)/.my.cnf install-ksh: check-ksh install-sh mkdir -p -- $(HOME)/.kshrc.d cp -p -- ksh/shrc.d/*.sh $(HOME)/.shrc.d cp -p -- ksh/kshrc $(HOME)/.kshrc cp -p -- ksh/kshrc.d/*.ksh $(HOME)/.kshrc.d install-login-shell: check-login-shell sh install/login-shell.sh install-perlcritic: install-sh cp -p -- perlcritic/profile.d/*.sh $(HOME)/.profile.d mkdir -p -- $(XDG_CONFIG_HOME)/perlcritic cp -p -- perlcritic/perlcriticrc $(XDG_CONFIG_HOME)/perlcritic/perlcriticrc install-perltidy: install-sh cp -p -- perltidy/profile.d/*.sh $(HOME)/.profile.d mkdir -p -- $(XDG_CONFIG_HOME)/perltidy cp -p -- perltidy/perltidyrc $(XDG_CONFIG_HOME)/perltidy/perltidyrc install-plenv: install-sh install-cpanm cp -p -- plenv/profile.d/*.sh $(HOME)/.profile.d cp -p -- plenv/shrc.d/*.sh $(HOME)/.shrc.d install-psql: cp -p -- psql/psqlrc $(HOME)/.psqlrc install-pyenv: install-sh cp -p -- pyenv/profile.d/*.sh $(HOME)/.profile.d cp -p -- pyenv/shrc.d/*.sh $(HOME)/.shrc.d install-rbenv: install-sh cp -p -- rbenv/profile.d/*.sh $(HOME)/.profile.d cp -p -- rbenv/shrc.d/*.sh $(HOME)/.shrc.d install-readline: cp -p -- readline/inputrc $(HOME)/.inputrc install-sh: check-sh mkdir -p -- $(HOME)/.profile.d $(HOME)/.shrc.d cp -p -- sh/profile $(HOME)/.profile cp -p -- sh/profile.d/*.sh $(HOME)/.profile.d cp -p -- sh/shinit $(HOME)/.shinit cp -p -- sh/shrc $(HOME)/.shrc cp -p -- sh/shrc.d/*.sh $(HOME)/.shrc.d install-subversion: mkdir -p -- $(HOME)/.subversion cp -p -- subversion/config $(HOME)/.subversion install-systemd: -command -v systemctl >/dev/null 2>&1 \ && mkdir -p -- $(XDG_CONFIG_HOME)/systemd/user \ && cp -p -- systemd/user/* $(XDG_CONFIG_HOME)/systemd/user \ && systemctl --user daemon-reload \ # Need to install these in appropriate order to meet dependencies; could trust # the system glob, but a fixed list is just more straightforward install-terminfo: tic terminfo/putty.ti tic terminfo/putty-256color.ti tic terminfo/rxvt.ti tic terminfo/rxvt-256color.ti tic terminfo/rxvt-unicode.ti tic terminfo/rxvt-unicode-256color.ti tic terminfo/screen.ti tic terminfo/screen-256color.ti install-tidy: install-sh cp -p -- tidy/profile.d/*.sh $(HOME)/.profile.d mkdir -p -- $(XDG_CONFIG_HOME)/tidy cp -p -- tidy/tidyrc $(XDG_CONFIG_HOME)/tidy/tidyrc install-tmux: tmux/tmux.conf install-terminfo cp -p -- tmux/tmux.conf $(HOME)/.tmux.conf install-urxvt: urxvt/ext/select mkdir -p -- $(HOME)/.urxvt/ext cp -- urxvt/ext/select $(HOME)/.urxvt/ext VIM = vim VIMDIR = $(HOME)/.vim VIMRC = $(VIMDIR)/vimrc install-vim: mkdir -p -- $(VIMDIR) cp -p -- vim/vimrc.stub $(HOME)/.vimrc cp -p -- vim/vimrc $(VIMRC) cp -p -- vim/filetype.vim \ vim/scripts.vim \ $(VIMDIR) cp -pR -- vim/after \ vim/autoload \ vim/compiler \ vim/ftplugin \ vim/indent \ vim/plugin \ vim/syntax \ $(VIMDIR) for ent in vim/bundle/*/* ; do \ [ -d "$$ent" ] || continue ; \ cp -pR -- "$$ent" $(VIMDIR) ; \ done GVIMRC = $(HOME)/.gvimrc install-vim-gui: install-vim cp -- vim/gvimrc $(GVIMRC) install-vint: cp -p -- vint/vintrc.yaml $(HOME)/.vintrc.yaml install-wget: install-sh cp -p -- wget/profile.d/*.sh $(HOME)/.profile.d mkdir -p -- $(XDG_CACHE_HOME)/wget $(XDG_CONFIG_HOME)/wget cp -p -- wget/wgetrc $(XDG_CONFIG_HOME)/wget/wgetrc install-x: check-xinit mkdir -p -- \ $(XDG_CONFIG_HOME)/sxhkd \ $(HOME)/.xinitrc.d \ $(HOME)/.Xresources.d cp -p -- X/redshift.conf $(XDG_CONFIG_HOME) cp -p -- X/sxhkdrc $(XDG_CONFIG_HOME)/sxhkd cp -p -- X/xinitrc $(HOME)/.xinitrc cp -p -- X/xinitrc.d/*.sh $(HOME)/.xinitrc.d cp -p -- X/Xresources $(HOME)/.Xresources cp -p -- X/Xresources.d/* $(HOME)/.Xresources.d install-youtube-dl: mkdir -p -- $(XDG_CONFIG_HOME)/youtube-dl cp -p -- youtube-dl/config $(XDG_CONFIG_HOME)/youtube-dl install-zsh: check-zsh install-sh mkdir -p -- $(HOME)/.zshrc.d cp -p -- zsh/profile.d/*.sh $(HOME)/.profile.d cp -p -- zsh/zprofile $(HOME)/.zprofile cp -p -- zsh/zshrc $(HOME)/.zshrc cp -p -- zsh/zshrc.d/*.zsh $(HOME)/.zshrc.d check: check-bin \ check-git-template-hooks \ check-login-shell \ check-man \ check-sh check-bash: sh check/bash.sh check-bin: $(BINS) sh check/bin.sh check-games: $(GAMES) sh check/games.sh check-git-template-hooks: $(GIT_TEMPLATE_HOOKS) sh check/git-template-hooks.sh check-man: sh check/man.sh check-ksh: sh check/ksh.sh check-login-shell: sh check/login-shell.sh check-sh: sh check/sh.sh check-urxvt: urxvt/ext/select sh check/urxvt.sh check-xinit: sh check/xinit.sh check-zsh: sh check/zsh.sh lint: lint-bash \ lint-bin \ lint-games \ lint-git-template-hooks \ lint-ksh \ lint-sh \ lint-urxvt \ lint-vim \ lint-xinit lint-bash: check-bash sh lint/bash.sh lint-bin: check-bin sh lint/bin.sh lint-games: check-games sh lint/games.sh lint-git-template-hooks: check-git-template-hooks sh lint/git-template-hooks.sh lint-ksh: check-ksh sh lint/ksh.sh lint-sh: check-sh sh lint/sh.sh lint-urxvt: check-urxvt sh lint/urxvt.sh lint-vim: sh lint/vim.sh lint-xinit: check-xinit sh lint/xinit.sh