## Silent rules machinery.
V = 0
-v_tag = $(call v_tag_$V,$1)
-v_tag_0 = @printf " %-8s %s\n" "$1" $(call quote,$@);
V_AT = $(V_AT_$V)
V_AT_0 = @
+v_print = $(call v_print_$V,$1,$2)
+v_print_0 = \
+ printf " %-8s %s\n" "$1" $(call quote,$(patsubst $(HOME)/%,~/%,$2));
+v_tag = $(V_AT)$(call v_print_$V,$1,$@)
## Hack.
relax =
dot-emacs_DEPS = make-regexp
SCRIPTLINKS += emacsclient-hack movemail-hack sendmail-hack
-SCRIPTLINKS += aspell-hack emerge-hack
+SCRIPTLINKS += aspell-hack emerge-hack wakey.sh
%.elc: %.el $$(foreach e, $$($$*_DEPS), $$(DEP_$$e))
$(call v_tag,EMACS)if ! $(EMACS) >$*.build-log 2>&1 \
## Packaging machinery.
SCRIPTLINKS += mdw-build mdw-sbuild mdw-sbuild-server
SCRIPTLINKS += update-buildable-branch
+DOTLINKS += .config/mdw-build.conf
+.config/mdw-build.conf_SRC = mdw-build.conf
## Shells.
DOTLINKS += .profile .shell-rc .shell-logout
.bash_logout_SRC = shell-logout
.zlogout_SRC = shell-logout
+all::
+ $(V_AT)if [ $(HOME)/.zcompdump -ot dot/zshrc ]; then \
+ $(call v_print,ZAP,$(HOME)/.zcompdump)rm -f $(HOME)/.zcompdump; \
+ fi
+
## The Plan 9 `rc' shell. This needs special hacking, because the Linux port
## and Plan 9 From User Space have incompatible syntax.
DOTLINKS += lib/profile
SCRIPTLINKS += git-copyright-dates
DOTLINKS += .cgrc .tigrc
.gitconfig_SUBSTS = \
- $(call substvar,releasekey,$(call mdw-conf,release-key,481334C2))
+ $(call substvar,releasekey,$(call mdw-conf,releasekey,481334C2)) \
+ $(call substvar,email,$(call mdw-conf,email,mdw@distorted.org.uk))
$(HOME)/.gitconfig: $(HOME)/.mdw.conf
## PulseAudio.
.tclshrc_SRC = tclshrc
.wishrc_SRC = tclshrc
+## Jukebox things.
+SCRIPTLINKS += disorder-switch-config
+SCRIPTLINKS += disorder-propagate-autoplay
+
## Random scripts.
SCRIPTLINKS += mdw-editor mdw-pager
SCRIPTLINKS += mdw-conf
SCRIPTLINKS += svnwrap
SCRIPTLINKS += guest-console
SCRIPTLINKS += hyperspec
+SCRIPTLINKS += bdl
+SCRIPTLINKS += datasyms
+SCRIPTLINKS += fixsub
+SCRIPTLINKS += check-debsyms
+SCRIPTLINKS += check-blkdev-size
## Random odds and ends.
-DOTLINKS += .lesskey .infokey .sqliterc
+DOTLINKS += .infokey .sqliterc
DOTLINKS += .gdbinit .toprc .aspell.conf
DOTLINKS += .dircolors .colordiffrc .screenrc .tmux.conf
DOTLINKS += .cvsrc .indent.pro .ditz-config
.mc/ini_SRC = mc-ini
.mc/panels.ini_SRC = mc-panels.ini
-DOTLINKS += .parallel/config
+DOTLINKS += .parallel/config .parallel/sshloginfile
.parallel/config_SRC = parallel-config
+.parallel/sshloginfile_SRC = parallel-hosts
+
+all:: $(HOME)/.less
+$(HOME)/.less: dot/lesskey
+ $(V_AT)rm -f $(HOME)/.lesskey
+ $(call v_tag,LESSKEY)lesskey -o$@ $<
###--------------------------------------------------------------------------
### X11 configuration.
xtoys_DEPS = mlib
DOTLINKS += .xinitrc .xsession .xmodmap .vncrc .vncsession
-DOTLINKS += .fonts.conf
+DOTLINKS += .config/fontconfig/fonts.conf
+.config/fontconfig/fonts.conf_SRC = fonts.conf
DOTLINKS += .stalonetrayrc
-DOTLINKS += .putty/sessions/Default%20Settings
-.putty/sessions/Default%20Settings_SRC = putty-defaults
-
DOTLINKS += .config/gnome-session/sessions/mdw.session
.config/gnome-session/sessions/mdw.session_SRC = mdw.session
.config/gtk-3.0/gtk.css_SRC = gtk3.css
.config/gtk-3.0/settings.ini_SRC = gtk3-settings.ini
+DOTLINKS += .config/user-dirs.dirs .config/user-dirs.locale
+.config/user-dirs.dirs_SRC = user-dirs.dirs
+.config/user-dirs.locale_SRC = user-dirs.locale
+
SCRIPTLINKS += xinitcmd lock-screen xshutdown
SCRIPTLINKS += un-backslashify-selection
SCRIPTLINKS += xpra-start-xdummy
SCRIPTLINKS += play-rawk
SCRIPTLINKS += media-keys
SCRIPTLINKS += disorder-notify
+SCRIPTLINKS += xduplic-terminal
DOTCPP += .Xdefaults
Xdefaults_DEFS = -DEMACSWD=$(call mdw-conf,emacs-width,77)
-$(HOME)/.Xdefaults: $(HOME)/.mdw.conf
+$(HOME)/.Xdefaults: $(HOME)/.mdw.conf dot/Xdefaults.pterm
ifeq ($(shell case $${DISPLAY-nil} in (:[0-9]*) echo t ;; (*) echo nil ;; esac),t)
dotfile-hook/.Xdefaults = \