SHELL = /bin/bash NANO_BIN_PREFIX = $(patsubst %/bin/nano,%,$(shell which nano)) NANO_CHECK = $(HOME)/.prefix:$(HOME):/usr/local:/usr:$(NANO_BIN_PREFIX) NANO_SHARE = $(firstword $(wildcard $(addsuffix /share/nano,$(subst :, ,$(NANO_CHECK))))) ALSACTL=$(firstword $(shell . $(HOME)/.profile &>/dev/null; which alsactl) echo) targets=.nanorc .folders .crontab.cookie .current.asound all: $(targets) clean: rm -f $(targets) %.asound: FORCE $(ALSACTL) store --file '$@' .nanorc: .nanorc.in $(NANO_SHARE) cat '$<' > '$@' for file in $(NANO_SHARE)/*.nanorc; do echo "include \"$$file\""; done >> '$@' .folders: Maildir ( echo '..'; find ~/Maildir -maxdepth 2 -type f -name "maildirfolder" -printf '%h\n'|sed -r 's@.*/(.*\.)(.*)@.\1\2@' )|sort>'$@' .crontab.cookie: .crontab .crontab.local -(cat $^; echo) | crontab - 2>/dev/null date > '$@' # don't do anything, just create these if they doesn't exist .crontab.local: touch '$@' Maildir: mkdir -p '$@'/{cur,new,tmp} Maildir/%: | Maildir mkdir -p '$@'/{cur,new,tmp} touch '$@'/maildirfolder .PHONY: FORCE PHONY FORCE: ; PHONY: ;