X-Git-Url: https://git.distorted.org.uk/~mdw/profile/blobdiff_plain/a3857ab280c3cbd4c97e0e3524fe2be069f7572a..bd78f39f35fffb3e9b08d8f07c01961b279ec550:/Makefile diff --git a/Makefile b/Makefile index ea368f2..eda523c 100644 --- a/Makefile +++ b/Makefile @@ -21,10 +21,12 @@ symlink-ok-p = $(shell \ ## Silent rules machinery. V = 0 -v_tag = $(call v_tag_$V,$1,$2) -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 = @@ -33,7 +35,7 @@ relax = ### Configuration. ## Figure out where I am. -HERE = $(shell pwd) +HERE := $(shell pwd) ## Decide on how to fetch things from URLs. ifeq ($(shell (curl >/dev/null 2>&1 --version || [ $$? -eq 2 ]) && echo t),t) @@ -46,8 +48,9 @@ endif EMACS := $(shell \ emacs=nil; \ for i in emacs24 emacs23 emacs22 emacs21 emacs; do \ - if type >/dev/null 2>&1 $$i; then echo $$i; break; fi; \ - done) + if type >/dev/null 2>&1 $$i; then emacs=$$i; break; fi; \ + done; \ + echo $$emacs) ## Whence to obtain externally hosted stuff. REPO = https://ftp.distorted.org.uk/u/mdw/profile @@ -69,7 +72,8 @@ ifneq ($(EMACS),nil) EMACSLIB = $(HOME)/lib/emacs EMACS_VERSION := $(shell $(EMACS) 2>&1 -Q --batch --eval \ - '(message "%s %s" emacs-major-version emacs-minor-version)') + '(message "%s %s" emacs-major-version emacs-minor-version)' | \ + tail -n1) emacs-version-p = $(shell set -- $(EMACS_VERSION); \ if [ $$1 -gt $1 ] || ([ $$1 -eq $1 ] && [ $$2 -ge $2 ]); then \ echo t; \ @@ -88,7 +92,7 @@ ELISP += dot-emacs 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 \ @@ -147,6 +151,8 @@ checkpath_DEPS = mlib ## 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 @@ -159,6 +165,11 @@ DOTLINKS += .bashrc .inputrc .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 @@ -172,7 +183,8 @@ DOTSUBST += .gitconfig 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. @@ -213,9 +225,14 @@ 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 @@ -238,8 +255,14 @@ DOTLINKS += .mc/ini .mc/panels.ini .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. @@ -251,7 +274,8 @@ xtoys_CHECK = xatom 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 @@ -275,10 +299,17 @@ DOTLINKS += .config/gtk-3.0/settings.ini .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) @@ -338,6 +369,19 @@ $(relax)### generated by $(HERE)/Makefile; do not edit!" \ ### Processing script links. script-source = $(HERE)/bin/$(or $($1_SRC), $1) + +ifeq ($(prefix-shebang-p),t) +all:: $(addprefix $(HOME)/bin/, $(SCRIPTLINKS)) +$(addprefix $(HOME)/bin/, $(SCRIPTLINKS)): $(HOME)/bin/%: \ + $$(call script-source,$$*) Makefile + $(call v_tag,SHEBANG)mkdir -p $(dir $@) && \ + rm -f $@.new && \ + sed "1s\(#! *\)/\1$(SHEBANG_PREFIX)/" \ + $(call script-source,$*) >$@.new && \ + chmod --reference=$(call script-source,$*) $@.new && \ + mv $@.new $@ + $(script-hook/$*) +else scriptlink-ok-p = \ $(call symlink-ok-p,$(HOME)/bin/$1,$(call script-source,$1)) all:: $(addprefix $(HOME)/bin/, $(SCRIPTLINKS)) @@ -348,6 +392,7 @@ $(addprefix $(HOME)/bin/, $(SCRIPTLINKS)): $(HOME)/bin/%: \ ln -s $(call script-source,$*) $@.new && \ mv $@.new $@ $(script-hook/$*) +endif all:: $(addprefix $(HOME)/bin/, $(SCRIPTLINKS))