MAKEFLAGS += --no-builtin-rules MAKEFLAGS += --no-builtin-variables MAKEFLAGS += --no-print-directory MAKEFLAGS += --warn-undefined-variables package := grepc DISTVERSION := $(shell git describe --always 2>/dev/null) DISTNAME := $(package)-$(DISTVERSION) srcdir := . builddir := tmp DESTDIR := prefix := /usr/local exec_prefix := $(prefix) BINDIR := $(srcdir)/bin DATAROOTDIR := $(srcdir)/share DOCDIR := $(DATAROOTDIR)/doc/$(package) MANDIR := $(DATAROOTDIR)/man bindir := $(exec_prefix)/bin datarootdir := $(prefix)/share docdir := $(datarootdir)/doc/$(package) mandir := $(datarootdir)/man _prefix := $(DESTDIR)$(prefix) _exec_prefix := $(DESTDIR)$(exec_prefix) _bindir := $(DESTDIR)$(bindir) _docdir := $(DESTDIR)$(docdir) _mandir := $(DESTDIR)$(mandir) BINDIRS := $(sort $(shell find $(BINDIR) -type d)) DOCDIRS := $(sort $(shell find $(DOCDIR) -type d)) MANDIRS := $(sort $(shell find $(MANDIR) -type d)) _DIRS := $(sort $(builddir)) _bindirs := $(patsubst $(srcdir)/%,$(_exec_prefix)/%,$(BINDIRS)) _docdirs := $(patsubst $(srcdir)/%,$(_prefix)/%,$(DOCDIRS)) _mandirs := $(patsubst $(srcdir)/%,$(_prefix)/%,$(MANDIRS)) _dirs := $(sort $(_bindir) $(_docdir) $(_mandir)) _alldirs := $(sort $(_bindirs) $(_docdirs) $(_mandirs)) _subdirs := $(filter-out $(_dirs),$(_alldirs)) BIN := $(sort $(shell find $(BINDIR) -type f)) DOC := $(sort $(shell find $(DOCDIR) -type f)) MAN := $(sort $(shell find $(MANDIR) -type f)) _bin := $(patsubst $(srcdir)/%,$(_exec_prefix)/%,$(BIN)) _doc := $(patsubst $(srcdir)/%,$(_prefix)/%,$(DOC)) _man := $(patsubst $(srcdir)/%,$(_prefix)/%,$(MAN)) _prog := $(_bin) _data := $(_doc) $(_man) _bin_rm := $(addsuffix -rm,$(wildcard $(_bin))) _doc_rm := $(addsuffix -rm,$(wildcard $(_doc))) _man_rm := $(addsuffix -rm,$(wildcard $(_man))) INSTALL := install INSTALL_DIR := $(INSTALL) -d INSTALL_PROGRAM := $(INSTALL) INSTALL_DATA := $(INSTALL) -m 644 MKDIR := mkdir -p RM := rm modules := bin doc man install := $(foreach x,$(modules),install-$(x)) installdirs := $(foreach x,$(modules),installdirs-$(x)) uninstall := $(addprefix un,$(install)) DISTFILE := $(builddir)/$(DISTNAME).tar compression := gz xz dist := $(foreach x,$(compression),dist-$(x)) .PHONY: all all: .PHONY: install $(install) .PHONY: installdirs $(installdirs) .PHONY: uninstall $(uninstall) .PHONY: dist $(dist) .PHONY: dist-tar .PHONY: clean .SECONDEXPANSION: install: $(install) $(install): install-%: $$(_%) installdirs: $(installdirs) $(installdirs): installdirs-%: $$(_%dirs) uninstall: $(uninstall) $(uninstall): uninstall-%: $$(_%_rm) dist: $(dist) $(dist): dist-%: $(DISTFILE).% dist-tar: $(DISTFILE) $(_prog): $(_exec_prefix)/%: $(srcdir)/% Makefile | $$(@D) $(info INSTALL $@) $(INSTALL_PROGRAM) -T $< $@ $(_data): $(_prefix)/%: $(srcdir)/% Makefile | $$(@D) $(info INSTALL $@) $(INSTALL_DATA) -T $< $@ $(DISTFILE): $(shell git ls-files 2>/dev/null) Makefile | $$(@D) $(info TAR $@) tar cf $@ -T /dev/null git ls-files \ | xargs tar rf $@ $(DISTFILE).gz: %.gz: % Makefile $(info GZIP $@) gzip -knf $< $(DISTFILE).xz: %.xz: % Makefile $(info XZ $@) xz -kf $< $(_subdirs): | $$(@D) $(info INSTALL $@/) $(INSTALL_DIR) $@ $(_dirs): $(info INSTALL $@/) $(INSTALL_DIR) $@ $(_DIRS): $(info MKDIR $@/) $(MKDIR) $@ %-rm: $(info RM $*) $(RM) $* clean: $(info RM -rf $(builddir)) $(RM) -rf $(builddir) V := $(V).SILENT: