dot/gpg.conf.m4, dot/gpg-agent.conf, Makefile: Adopt GnuPG configuration.
[profile] / Makefile
index 992fdab..29359c0 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
 ## -*-makefile-*-
 
-all::
+all:
 .PHONY: all
 
 clean::
@@ -33,6 +33,9 @@ v_print_0              = \
        printf "  %-8s %s\n" "$1" $(call quote,$(patsubst $(HOME)/%,~/%,$2));
 v_tag                   = $(V_AT)$(call v_print_$V,$1,$@)
 
+## Making directories.
+%/:; $(call v_tag,MKDIR)mkdir -p $@
+
 ## Hack.
 relax                   =
 
@@ -103,7 +106,7 @@ SCRIPTLINKS         += aspell-hack emerge-hack wakey.sh
        $(call v_tag,EMACS)if ! $(EMACS) >$*.build-log 2>&1 \
                -L el/ -L $(EMACSLIB) \
                --batch --no-site-file \
-               --eval '(byte-compile-file "$<")'; then \
+               --eval '(kill-emacs (if (byte-compile-file "$<") 0 2))'; then \
          cat $*.build-log; exit 2; \
        fi
 
@@ -111,8 +114,8 @@ LOCAL_ELISP          = $(filter $(notdir $(wildcard el/*.el)), \
                                $(addsuffix .el, $(ELISP)))
 $(foreach e, $(LOCAL_ELISP), \
        $(eval DEP_$(basename $e) = $(EMACSLIB)/$(e:.el=.elc)))
-$(addprefix $(EMACSLIB)/, $(LOCAL_ELISP)): $(EMACSLIB)/%: el/%
-       $(call v_tag,SYMINK)mkdir -p $(EMACSLIB) && \
+$(addprefix $(EMACSLIB)/, $(LOCAL_ELISP)): $(EMACSLIB)/%: el/% | $(EMACSLIB)/
+       $(call v_tag,SYMINK) \
                rm -f $@.new && \
                ln -s $(HERE)/$< $@.new && \
                mv $@.new $@
@@ -129,14 +132,14 @@ $(foreach e, $(REMOTE_ELISP), \
                                          (error 1))))'; then \
                  echo t; \
                fi),, $(EMACSLIB)/$(e:.el=.elc))))
-$(addprefix $(EMACSLIB)/, $(REMOTE_ELISP)): $(EMACSLIB)/%:
-       $(call v_tag,FETCH)mkdir -p $(EMACSLIB) && \
+$(addprefix $(EMACSLIB)/, $(REMOTE_ELISP)): $(EMACSLIB)/%: | $(EMACSLIB)/
+       $(call v_tag,FETCH) \
                $(call get-url,$@.new,$(REPO)/$*) && \
                mv $@.new $@
 
 DOTLINKS               += .emacs .emacs-calc .vm .gnus.el .ercrc.el
 
-all:: $(foreach e, $(ELISP), $(DEP_$e))
+all: $(foreach e, $(ELISP), $(DEP_$e))
 $(foreach e, $(ELISP), $(eval _emacs.$e: $(EMACSLIB)/$e.elc))
 
 endif
@@ -170,16 +173,18 @@ DOTLINKS          += .bashrc .inputrc
 .bash_logout_SRC        = shell-logout
 .zlogout_SRC            = shell-logout
 
-all::
+all: zap-stale-zcompdump
+zap-stale-zcompdump:
        $(V_AT)if [ $(HOME)/.zcompdump -ot dot/zshrc ]; then \
          $(call v_print,ZAP,$(HOME)/.zcompdump)rm -f $(HOME)/.zcompdump; \
        fi
+.PHONY: zap-stale-zcompdump
 
 ## 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
 lib/profile_SRC                 = rcrc
-all:: $(HOME)/.rcrc
+all: $(HOME)/.rcrc
 $(HOME)/.rcrc: dot/rcrc
        $(call v_tag,SED)sed 's/; if not/else/' $< >$@.new && mv $@.new $@
 
@@ -215,11 +220,13 @@ DOTLINKS          += .eclrc .ccl-init.lisp .abclrc
 .abclrc_SRC             = lisp-init.lisp
 DOTLINKS               += .swank.lisp
 
-## IPython.
+## IPython, Jupyter, and related annoyances.
 DOTLINKS               += .ipython/profile_default/ipython_config.py
 DOTLINKS               += .ipython/profile_default/startup/50-key-bindings.py
+DOTLINKS               += .jupyter/nbconfig/notebook.json
 .ipython/profile_default/ipython_config.py_SRC = ipython-config.py
 .ipython/profile_default/startup/50-key-bindings.py_SRC = ipython-key-bindings.py
+.jupyter/nbconfig/notebook.json_SRC = jupyter-notebook.json
 
 ## Other languages.
 DOTLINKS               += .guile
@@ -227,12 +234,29 @@ DOTLINKS          += .tclshrc .wishrc
 .tclshrc_SRC            = tclshrc
 .wishrc_SRC             = tclshrc
 
-## Jukebox things.
-MISCLINKS              += lib/perl/DisOrder.pm
-lib/perl/DisOrder.pm_SRC = pl/DisOrder.pm
-SCRIPTLINKS            += disorder-switch-config
-SCRIPTLINKS            += disorder-autoplay
-SCRIPTLINKS            += disorder-notify
+## The `nocss' machinery.
+SCRIPTLINKS            += nocss
+all: $(HOME)/lib/hacks/nocss/libdvdcss.so.2
+$(HOME)/lib/hacks/nocss/libdvdcss.so.2: | $$(dir $$@)
+       $(call v_tag,TOUCH)touch $@
+
+## GnuPG.
+all: $(HOME)/.gnupg/gpg.conf
+$(HOME)/.gnupg/gpg.conf: \
+               dot/gpg.conf.m4 $(wildcard $(HOME)/.gnupg/gpg.local.conf) \
+               $(HOME)/.mdw.conf \
+               | $$(dir $$@)
+       $(call v_tag,M4)cd $(dir $@) && \
+       args= && \
+       key=$$(mdw-conf default-gpg-key nil) && \
+       case $$key in \
+         nil) ;; \
+         *) args=$${args+$$args }-DDEFAULT_KEY=$$key ;; \
+       esac && \
+       cd $(dir $@) && m4 -P $$args $(HERE)/$< >$@.new && \
+       mv $@.new $@
+DOTLINKS               += .gnupg/gpg-agent.conf
+.gnupg/gpg-agent.conf_SRC = gpg-agent.conf
 
 ## Random scripts.
 SCRIPTLINKS            += mdw-editor mdw-pager
@@ -246,7 +270,7 @@ SCRIPTLINKS         += fixsub
 SCRIPTLINKS            += check-debsyms
 SCRIPTLINKS            += check-blkdev-size
 SCRIPTLINKS            += xremote
-SCRIPTLINKS            += remote-disorder
+SCRIPTLINKS            += disorder-play-on-demand remote-disorder
 SCRIPTLINKS            += remote-slideshow
 
 ## Random odds and ends.
@@ -279,7 +303,7 @@ DOTLINKS            += .parallel/config .parallel/sshloginfile
 .parallel/config_SRC    = parallel-config
 .parallel/sshloginfile_SRC = parallel-hosts
 
-all:: $(HOME)/.less
+all: $(HOME)/.less
 $(HOME)/.less: dot/lesskey
        $(V_AT)rm -f $(HOME)/.lesskey
        $(call v_tag,LESSKEY)lesskey -o$@ $<
@@ -324,7 +348,9 @@ SCRIPTLINKS         += xinitcmd lock-screen xshutdown
 SCRIPTLINKS            += un-backslashify-selection
 SCRIPTLINKS            += xpra-start-xdummy
 SCRIPTLINKS            += play-rawk
+SCRIPTLINKS            += x2x-privsep
 SCRIPTLINKS            += xduplic-terminal
+SCRIPTLINKS            += xzoomscr
 
 DOTCPP                 += .Xdefaults
 Xdefaults_DEFS          = -DEMACSWD=$(call mdw-conf,emacs-width,77)
@@ -342,20 +368,14 @@ endif
 
 ifeq ($(FIREFOX),t)
 
-out/:
-       $(call v_tag,MKDIR)mkdir $@
-
-out/firefox/: | out/
-       $(call v_tag,MKDIR)mkdir $@
-
 clean::; rm -rf out/
 
-all:: out/firefox/smartup-gestures.config
+all: out/firefox/smartup-gestures.config
 out/firefox/smartup-gestures.config: firefox/smartup-gestures.json | out/firefox/
        $(call v_tag,BLOB)\
                jq -c . $< | bincode base64 >$@.new && mv $@.new $@
 
-all:: out/firefox/stylus.json
+all: out/firefox/stylus.json
 out/firefox/stylus.json: firefox/stylus/ firefox/stylus/*.css | out/firefox/
        $(call v_tag,IMPLODE)\
                firefox/implode-stylus firefox/stylus/ >$@.new && \
@@ -367,12 +387,12 @@ endif
 
 misclink-source                 = $(HERE)/$(or $($1_SRC), $1)
 
-all:: $(addprefix $(HOME)/, $(MISCLINKS))
+all: $(addprefix $(HOME)/, $(MISCLINKS))
 misclink-ok-p           = \
        $(call symlink-ok-p,$(HOME)/$1,$(call misclink-source,$1))
 $(addprefix $(HOME)/, $(subst %,\%,$(MISCLINKS))): $(HOME)/%: \
-               $$(if $$(call misclink-ok-p,$$*),,_force)
-       $(call v_tag,SYMLINK)mkdir -p $(dir $@) && \
+               $$(if $$(call misclink-ok-p,$$*),,_force) | $$(dir $$@)
+       $(call v_tag,SYMLINK) \
                rm -f $@.new && \
                ln -s $(call misclink-source,$*) $@.new && \
                mv $@.new $@
@@ -386,20 +406,20 @@ dotfile-source             = $(HERE)/dot/$(or $($1_SRC), $(1:.%=%)$2)
 ## Easiest: just make symlinks.
 dotlink-ok-p            = \
        $(call symlink-ok-p,$(HOME)/$1,$(call dotfile-source,$1))
-all:: $(addprefix $(HOME)/, $(DOTLINKS))
+all: $(addprefix $(HOME)/, $(DOTLINKS))
 $(addprefix $(HOME)/, $(subst %,\%,$(DOTLINKS))): $(HOME)/%: \
-               $$(if $$(call dotlink-ok-p,$$*),,_force)
-       $(call v_tag,SYMLINK)mkdir -p $(dir $@) && \
+               $$(if $$(call dotlink-ok-p,$$*),,_force) | $$(dir $$@)
+       $(call v_tag,SYMLINK) \
                rm -f $@.new && \
                ln -s $(call dotfile-source,$*) $@.new && \
                mv $@.new $@
        $(dotfile-hook/$*)
 
 ## Hack with the C preprocessor.
-all:: $(addprefix $(HOME)/, $(DOTCPP))
+all: $(addprefix $(HOME)/, $(DOTCPP))
 $(addprefix $(HOME)/, $(subst %,\%,$(DOTCPP))): $(HOME)/%: \
-               $$(call dotfile-source,$$*) Makefile
-       $(call v_tag,CPP)mkdir -p $(dir $@) && \
+               $$(call dotfile-source,$$*) Makefile | $$(dir $$@)
+       $(call v_tag,CPP) \
                rm -f $@.new && \
                cpp -P -o$@.new $($*_DEFS) $< && \
                mv $@.new $@
@@ -409,10 +429,10 @@ $(addprefix $(HOME)/, $(subst %,\%,$(DOTCPP))): $(HOME)/%: \
 substvar                = -e $(call quote,s\a@$1@\a$2\ag)
 SUBSTS                 += $(call substvar,home,$(HOME))
 SUBSTS                 += $(call substvar,profile,$(HERE))
-all:: $(addprefix $(HOME)/, $(DOTSUBST))
+all: $(addprefix $(HOME)/, $(DOTSUBST))
 $(addprefix $(HOME)/, $(subst %,\%,$(DOTSUBST))): $(HOME)/%: \
-               $$(call dotfile-source,$$*,.in) Makefile
-       $(call v_tag,SUBST)mkdir -p $(dir $@) && \
+               $$(call dotfile-source,$$*,.in) Makefile | $$(dir $$@)
+       $(call v_tag,SUBST) \
                rm -f $@.new && \
                sed -e "1i\
 $(relax)### generated by $(HERE)/Makefile; do not edit!" \
@@ -427,10 +447,10 @@ $(relax)### generated by $(HERE)/Makefile; do not edit!" \
 script-source           = $(HERE)/bin/$(or $($1_SRC), $1)
 
 ifeq ($(prefix-shebang-p),t)
-all:: $(addprefix $(HOME)/bin/, $(SCRIPTLINKS))
+all: $(addprefix $(HOME)/bin/, $(SCRIPTLINKS))
 $(addprefix $(HOME)/bin/, $(SCRIPTLINKS)): $(HOME)/bin/%: \
-               $$(call script-source,$$*) Makefile
-       $(call v_tag,SHEBANG)mkdir -p $(dir $@) && \
+               $$(call script-source,$$*) Makefile | $$(dir $$@)
+       $(call v_tag,SHEBANG) \
                rm -f $@.new && \
                sed "1s\a\(#! *\)/\a\1$(SHEBANG_PREFIX)/\a" \
                        $(call script-source,$*) >$@.new && \
@@ -440,17 +460,17 @@ $(addprefix $(HOME)/bin/, $(SCRIPTLINKS)): $(HOME)/bin/%: \
 else
 scriptlink-ok-p                 = \
        $(call symlink-ok-p,$(HOME)/bin/$1,$(call script-source,$1))
-all:: $(addprefix $(HOME)/bin/, $(SCRIPTLINKS))
+all: $(addprefix $(HOME)/bin/, $(SCRIPTLINKS))
 $(addprefix $(HOME)/bin/, $(SCRIPTLINKS)): $(HOME)/bin/%: \
-               $$(if $$(call scriptlink-ok-p,$$*),,_force)
-       $(call v_tag,SYMLINK)mkdir -p $(dir $@) && \
+               $$(if $$(call scriptlink-ok-p,$$*),,_force) | $$(dir $$@)
+       $(call v_tag,SYMLINK) \
                rm -f $@.new && \
                ln -s $(call script-source,$*) $@.new && \
                mv $@.new $@
        $(script-hook/$*)
 endif
 
-all:: $(addprefix $(HOME)/bin/, $(SCRIPTLINKS))
+all: $(addprefix $(HOME)/bin/, $(SCRIPTLINKS))
 
 ###--------------------------------------------------------------------------
 ### Building packages from source tarballs.
@@ -464,8 +484,8 @@ $(foreach p, $(PACKAGES), $(eval DEP_$p = $(if $(shell \
        if $($p_CHECK) >/dev/null 2>&1 --version; then echo t; fi),, \
        $(call pkg-stamp,$p,install))))
 
-$(PACKAGES:%=$(SRCDIR)/%.tar.gz): $(SRCDIR)/%.tar.gz:
-       $(call v_tag,FETCH)mkdir -p $(SRCDIR) && \
+$(PACKAGES:%=$(SRCDIR)/%.tar.gz): $(SRCDIR)/%.tar.gz: | $(SRCDIR)/
+       $(call v_tag,FETCH) \
                rm -f $@.new && \
                $(call get-url,$@.new,$(REPO)/$*.tar.gz) && \
                mv $@.new $@
@@ -507,7 +527,7 @@ $(foreach p, $(PACKAGES), $(call pkg-stamp,$p,install)): \
                touch install-stamp
        $(package-hook/$*)
 
-all:: $(foreach p, $(PACKAGES), $(DEP_$p))
+all: $(foreach p, $(PACKAGES), $(DEP_$p))
 $(foreach p, $(PACKAGES), $(eval _pkg.$p: $(call pkg-stamp,$p,install)))
 
 ###----- That's all, folks --------------------------------------------------