X-Git-Url: https://git.distorted.org.uk/~mdw/profile/blobdiff_plain/5e776d3c53307def3685336ea816db3c95394eb1..HEAD:/Makefile diff --git a/Makefile b/Makefile index 0536c5d..29359c0 100644 --- 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 $@ @@ -205,18 +210,23 @@ DOTLINKS += .vimrc .mg .zile DOTLINKS += .mailrc .signature .muttrc ## Lisp. -DOTLINKS += .cmucl-init.lisp .sbclrc .clisprc.lisp .eclrc +DOTLINKS += .cmucl-init.lisp .sbclrc .clisprc.lisp +DOTLINKS += .eclrc .ccl-init.lisp .abclrc .cmucl-init.lisp_SRC = lisp-init.lisp .sbclrc_SRC = lisp-init.lisp .clisprc.lisp_SRC = lisp-init.lisp .eclrc_SRC = lisp-init.lisp +.ccl-init.lisp_SRC = lisp-init.lisp +.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 @@ -224,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 @@ -242,6 +269,9 @@ SCRIPTLINKS += datasyms SCRIPTLINKS += fixsub SCRIPTLINKS += check-debsyms SCRIPTLINKS += check-blkdev-size +SCRIPTLINKS += xremote +SCRIPTLINKS += disorder-play-on-demand remote-disorder +SCRIPTLINKS += remote-slideshow ## Random odds and ends. DOTLINKS += .infokey .sqliterc @@ -250,6 +280,8 @@ DOTLINKS += .dircolors .colordiffrc .screenrc .tmux.conf DOTLINKS += .cvsrc .indent.pro .ditz-config DOTLINKS += .lftp/rc .lftp/rc_SRC = lftp-rc +DOTLINKS += .a2ps/a2psrc +.a2ps/a2psrc_SRC = a2psrc DOTSUBST += .mykermrc SCRIPTLINKS += lesspipe.sh @@ -271,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$@ $< @@ -316,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) @@ -324,9 +358,28 @@ $(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 = \ - $(call v_tag,XRDB)xrdb -override $< + $(call v_tag,XRDB)xrdb -load $< +endif + endif +###-------------------------------------------------------------------------- +### Firefox things. + +ifeq ($(FIREFOX),t) + +clean::; rm -rf out/ + +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 +out/firefox/stylus.json: firefox/stylus/ firefox/stylus/*.css | out/firefox/ + $(call v_tag,IMPLODE)\ + firefox/implode-stylus firefox/stylus/ >$@.new && \ + mv $@.new $@ endif ###-------------------------------------------------------------------------- @@ -334,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 $@ @@ -353,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 $@ @@ -376,10 +429,10 @@ $(addprefix $(HOME)/, $(subst %,\%,$(DOTCPP))): $(HOME)/%: \ substvar = -e $(call quote,s@$1@$2g) 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!" \ @@ -394,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\(#! *\)/\1$(SHEBANG_PREFIX)/" \ $(call script-source,$*) >$@.new && \ @@ -407,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. @@ -431,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 $@ @@ -474,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 --------------------------------------------------