summaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
authorAlejandro Colomar <alx.manpages@gmail.com>2022-05-09 22:55:22 +0200
committerAlejandro Colomar <alx.manpages@gmail.com>2022-05-09 22:57:57 +0200
commit976e06cc59d644ac2e16755ad548e1ecd2f95f74 (patch)
treeb7cb6603d9feac7b76307f1987e8108a82fa824f /Makefile
parent849dcf7f636cd48711aeec6c1c011d169eea4460 (diff)
Makefile: Add targets for doc and man, and generalize
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile48
1 files changed, 38 insertions, 10 deletions
diff --git a/Makefile b/Makefile
index 64d2a43..33d52c0 100644
--- a/Makefile
+++ b/Makefile
@@ -14,32 +14,57 @@ 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 := $(_bindir)
+BINDIRS := $(sort $(shell find $(BINDIR) -type d))
+DOCDIRS := $(sort $(shell find $(DOCDIR) -type d))
+MANDIRS := $(sort $(shell find $(MANDIR) -type d))
-_dirs := $(_bindirs)
+_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))
-_bin := $(patsubst $(BINDIR)/%,$(_bindir)/%,$(BIN))
+BIN := $(sort $(shell find $(BINDIR) -type f))
+DOC := $(sort $(shell find $(DOCDIR) -type f))
+MAN := $(sort $(shell find $(MANDIR) -type f))
-_bin_rm := $(addsuffix -rm,$(wildcard $(_bin)))
+_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
RM := rm
-modules := bin
+modules := bin doc man
install := $(foreach x,$(modules),install-$(x))
installdirs := $(foreach x,$(modules),installdirs-$(x))
uninstall := $(addprefix un,$(install))
@@ -47,7 +72,6 @@ uninstall := $(addprefix un,$(install))
.PHONY: all
all:
- @:
.PHONY: install $(install)
@@ -65,15 +89,19 @@ uninstall: $(uninstall)
$(uninstall): uninstall-%: $$(_%_rm)
-$(_bin): $(_bindir)/%: $(BINDIR)/% Makefile | $$(@D)
+$(_prog): $(_exec_prefix)/%: $(srcdir)/% Makefile | $$(@D)
$(info INSTALL $@)
$(INSTALL_PROGRAM) -T $< $@
-$(_dirs): | $$(@D)
+$(_data): $(_prefix)/%: $(srcdir)/% Makefile | $$(@D)
+ $(info INSTALL $@)
+ $(INSTALL_DATA) -T $< $@
+
+$(_subdirs): | $$(@D)
$(info INSTALL $@/)
$(INSTALL_DIR) $@
-$(sort $(_prefix) $(_exec_prefix)):
+$(_dirs):
$(info INSTALL $@/)
$(INSTALL_DIR) $@