MASTER = root@ibanez all:: TARGETS += update-slaves update-slaves: scp $(MASTER):/usr/local/sbin/update-slaves $@.new && mv $@.new $@ CLEAN += transcript transcript: ssh $(MASTER) update-slaves -n >$@.new && mv $@.new $@ TARGETS += files files: transcript while read op opts src dest; do \ case $$op in install) echo "$$src" ;; esac; \ done <$< | sort -u >$@.new && mv $@.new $@ TARGETS += files.mk files.mk: files sed -e '1i\' \ -e 'FILES = \\' \ -e '$$ { s/^/ /p; d; }' \ -e 's/^.*$$/ & \\/' \ <$< >$@.new && mv $@.new $@ #' include files.mk FSTREE = $(addprefix fs, $(FILES)) $(FSTREE): fs/%: files.mk mkdir -p $(dir $@) rsync -a $(MASTER):/$* $@.new && mv $@.new $@ all:: $(FSTREE) clean::; rm -rf fs CLEAN += $(TARGETS) all:: $(TARGETS) clean::; rm -f $(CLEAN)