aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlejandro Colomar <alx@kernel.org>2024-11-03 15:16:26 +0100
committerAlejandro Colomar <alx@kernel.org>2024-11-03 15:38:20 +0100
commitd27468a8fc64a2f65372ba96243537c9e93a3a13 (patch)
treee54229986ac4142dbe7ec57c558357ddc88c9270
parente02ff9efc7e36e74e9bd7b6739ec3ecebd97ecab (diff)
downloadman-pages-d27468a8fc64a2f65372ba96243537c9e93a3a13.tar.gz
share/mk/: [un]install-bin: Add target to [un]install shell scripts
Signed-off-by: Alejandro Colomar <alx@kernel.org>
-rw-r--r--share/mk/configure/build-depends/coreutils/install.mk1
-rw-r--r--share/mk/configure/directory_variables/install.mk2
-rw-r--r--share/mk/install/_.mk4
-rw-r--r--share/mk/install/bin.mk39
4 files changed, 44 insertions, 2 deletions
diff --git a/share/mk/configure/build-depends/coreutils/install.mk b/share/mk/configure/build-depends/coreutils/install.mk
index ab7dbef7c5..47c9b09114 100644
--- a/share/mk/configure/build-depends/coreutils/install.mk
+++ b/share/mk/configure/build-depends/coreutils/install.mk
@@ -11,6 +11,7 @@ INSTALL := install
INSTALL_DATA := $(INSTALL) -m 644
INSTALL_DIR := $(INSTALL) -m 755 -d
+INSTALL_PROGRAM := $(INSTALL) -m 755
endif # include guard
diff --git a/share/mk/configure/directory_variables/install.mk b/share/mk/configure/directory_variables/install.mk
index cd5fda66c3..d503fb4834 100644
--- a/share/mk/configure/directory_variables/install.mk
+++ b/share/mk/configure/directory_variables/install.mk
@@ -11,11 +11,13 @@ include $(MAKEFILEDIR)/configure/directory_variables/src.mk
DESTDIR :=
prefix := /usr/local
+exec_prefix := $(prefix)
datarootdir := $(prefix)/share
mandir := $(datarootdir)/man
docdir := $(datarootdir)/doc
htmldir := $(docdir)/html/man
pdfdir := $(docdir)/pdf
+bindir := $(exec_prefix)/bin
$(foreach s, $(MANSECTIONS), \
diff --git a/share/mk/install/_.mk b/share/mk/install/_.mk
index c78ee6b0bb..08dd5c1389 100644
--- a/share/mk/install/_.mk
+++ b/share/mk/install/_.mk
@@ -20,10 +20,10 @@ include $(MAKEFILEDIR)/configure/build-depends/coreutils/rm.mk
.PHONY: install-all
-install-all: install-man;
+install-all: install-man install-bin;
.PHONY: install
-install: install-man;
+install: install-man install-bin;
.PHONY: uninstall
uninstall: uninstall-man;
diff --git a/share/mk/install/bin.mk b/share/mk/install/bin.mk
new file mode 100644
index 0000000000..27d547c068
--- /dev/null
+++ b/share/mk/install/bin.mk
@@ -0,0 +1,39 @@
+# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
+# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
+
+
+ifndef MAKEFILE_INSTALL_BIN_INCLUDED
+MAKEFILE_INSTALL_BIN_INCLUDED := 1
+
+
+include $(MAKEFILEDIR)/configure/build-depends/coreutils/install.mk
+include $(MAKEFILEDIR)/configure/directory_variables/install.mk
+include $(MAKEFILEDIR)/configure/directory_variables/src.mk
+include $(MAKEFILEDIR)/src/sh.mk
+
+
+_bindir := $(DESTDIR)$(bindir)
+
+
+_bin_sh := $(patsubst $(SRCBINDIR)/%, $(_bindir)/%, $(BIN_sh))
+_bin := $(_bin_sh)
+_bin_rm := $(addsuffix -rm, $(wildcard $(_bin)))
+
+
+$(_bin_sh): $(_bindir)/%: $(SRCBINDIR)/%
+$(_bin): $(MK) | $$(@D)/
+
+
+$(_bin):
+ $(info $(INFO_)INSTALL $@)
+ $(INSTALL_PROGRAM) -T $< $@
+
+
+.PHONY: install-bin
+install-bin: $(_bin);
+
+.PHONY: uninstall-bin
+uninstall-bin: $(_bin_rm);
+
+
+endif # include guard