diff options
author | Mattias Andrée <maandree@member.fsf.org> | 2015-12-08 20:25:54 +0100 |
---|---|---|
committer | Mattias Andrée <maandree@member.fsf.org> | 2015-12-08 20:25:54 +0100 |
commit | b9c23e3a7123452dcfefb2fee97ba1cdc18ee2ad (patch) | |
tree | 2761c44427abe1896b32bde30dd77c5bdd971516 /mk/man.mk | |
parent | Packaging moved to my collective repo for them (not needed now that it is documented in INSTALL.) (diff) | |
download | scrotty-b9c23e3a7123452dcfefb2fee97ba1cdc18ee2ad.tar.gz scrotty-b9c23e3a7123452dcfefb2fee97ba1cdc18ee2ad.tar.bz2 scrotty-b9c23e3a7123452dcfefb2fee97ba1cdc18ee2ad.tar.xz |
a magical makefile, using a collection of submakefiles that are completely reusable without modifications
Signed-off-by: Mattias Andrée <maandree@member.fsf.org>
Diffstat (limited to '')
-rw-r--r-- | mk/man.mk | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/mk/man.mk b/mk/man.mk new file mode 100644 index 0000000..fa85de6 --- /dev/null +++ b/mk/man.mk @@ -0,0 +1,109 @@ +# Copyright (C) 2015 Mattias Andrée <maandree@member.fsf.org> +# +# Copying and distribution of this file, with or without modification, +# are permitted in any medium without royalty provided the copyright +# notice and this notice are preserved. This file is offered as-is, +# without any warranty. + + +#=== These rules are used for man pages. ===# + + +# Enables the rules: +# install-man Install all man page +# install-man-untranslated Install untranslated man page +# install-man-locale Install translated man page +# +# This file is ignored unless _MAN_PAGE_SECTIONS +# is defined. _MAN_PAGE_SECTIONS should list all +# used man page sections. For all used sections +# there should also be a variable named +# _MAN_$(SECTION) that lists the suffixless +# basename of all man pages in that section. +# +# The pathname of a man page should look +# like this: doc/man/$(DOCUMENT).$(SECTION) +# Translations looks like this: +# doc/man/$(DOCUMENT).$(LANGUAGE).$(SECTION) +# +# For each language and section, there should +# be a variable _MAN_$(LANGUAGE)_$(SECTION) +# that lists all translated documents in that +# section and for that lanuage. These should +# be suffixless basenames. The lanuage counts +# as a suffix. +# +# The translations of the man pages to +# install should be specified, by language, +# in the variable MAN_LOCALES. + + +ifdef _MAN_PAGE_SECTIONS + + +# WHEN TO BUILD, INSTALL, AND UNINSTALL: + +install: install-man +install-everything: install-man +install-doc: install-man +uninstall: uninstall-man + + +# HELP VARIABLES + +# Customisable man page filename. +ifdef COMMAND +ifeq ($(shell $(PRINTF) '%s\n' $(COMMAND) | $(WC) -l),1) +ifeq ($(shell $(PRINTF) '%s\n' $(_MAN_PAGE_SECTIONS) | $(WC) -l),1) +ifeq ($(shell $(PRINTF) '%s\n' $(_MAN_$(_MAN_PAGE_SECTIONS)) | $(WC) -l),1) +__MAN_COMMAND = $(COMMAND).$(MAN$(_MAN_PAGE_SECTIONS)EXT) +endif +endif +endif +endif + + +# INSTALL RULES: + +.PHONY: install-man +install-man: install-man-untranslated install-man-locale + +.PHONY: install-man-untranslated +install-man-untranslated: + @$(PRINTF_INFO) '\e[00;01;31mINSTALL\e[34m %s\e[00m\n' "$@" + $(Q)$(INSTALL_DIR) -- $(foreach S,$(_MAN_PAGE_SECTIONS),"$(DESTDIR)$(MANDIR)$(MAN$(S))") +ifndef __MAN_COMMAND + $(Q)$(foreach S,$(_MAN_PAGE_SECTIONS),$(foreach P,$(_MAN_$(S)),$(INSTALL_DATA) doc/man/$(P).$(S) -- "$(DESTDIR)$(MANDIR)$(MAN$(S))/$(P).$(MAN$(S)EXT)" &&)) $(TRUE) +else + $(Q)$(foreach S,$(_MAN_PAGE_SECTIONS),$(foreach P,$(_MAN_$(S)),$(INSTALL_DATA) doc/man/$(P).$(S) -- "$(DESTDIR)$(MANDIR)$(MAN$(S))/$(__MAN_COMMAND)" &&)) $(TRUE) +endif + @$(ECHO_EMPTY) + +.PHONY: install-man-locale +install-man-locale: + @$(PRINTF_INFO) '\e[00;01;31mINSTALL\e[34m %s\e[00m\n' "$@" + $(Q)$(foreach L,$(MAN_LOCALES),$(INSTALL_DIR) -- $(foreach S,$(_MAN_PAGE_SECTIONS),"$(DESTDIR)$(MANDIR)/$(L)$(MAN$(S))") &&) $(TRUE) +ifndef __MAN_COMMAND + $(Q)$(foreach L,$(MAN_LOCALES),$(foreach S,$(_MAN_PAGE_SECTIONS),$(foreach P,$(_MAN_$(L)_$(S)),$(INSTALL_DATA) doc/man/$(P).$(L).$(S) -- "$(DESTDIR)$(MANDIR)/$(L)$(MAN$(S))/$(P).$(MAN$(S)EXT)" &&))) $(TRUE) +else + $(Q)$(foreach L,$(MAN_LOCALES),$(foreach S,$(_MAN_PAGE_SECTIONS),$(foreach P,$(_MAN_$(L)_$(S)),$(INSTALL_DATA) doc/man/$(P).$(L).$(S) -- "$(DESTDIR)$(MANDIR)/$(L)$(MAN$(S))/$(__MAN_COMMAND)" &&))) $(TRUE) +endif + @$(ECHO_EMPTY) + + + +# UNINSTALL RULES: + +.PHONY: uninstall-man +uninstall-man: +ifndef __MAN_COMMAND + -$(Q)$(RM) -- $(foreach S,$(_MAN_PAGE_SECTIONS),$(foreach P,$(_MAN_$(S)),"$(DESTDIR)$(MANDIR)$(MAN$(S))/$(P).$(MAN$(S)EXT)")) + -$(Q)$(RM) -- $(foreach L,$(MAN_LOCALES),$(foreach S,$(_MAN_PAGE_SECTIONS),$(foreach P,$(_MAN_$(L)_$(S)),"$(DESTDIR)$(MANDIR)/$(L)$(MAN$(S))/$(P).$(MAN$(S)EXT)"))) +else + -$(Q)$(RM) -- "$(DESTDIR)$(MANDIR)$(MAN$(_MAN_PAGE_SECTIONS))/$(__MAN_COMMAND)" + -$(Q)$(RM) -- $(foreach L,$(MAN_LOCALES),$(foreach S,$(_MAN_PAGE_SECTIONS),$(foreach P,$(_MAN_$(L)_$(S)),"$(DESTDIR)$(MANDIR)/$(L)$(MAN$(S))/$(__MAN_COMMAND)"))) +endif + + +endif + |