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: