The majority of font ports don't use the font module. One reason why
is that in a lot of cases, doing so doesn't make the makefile any
simpler.

One area where this can be easily improved is with font documentation.
It's very common for fonts to come with doc files like readmes, font
showcases, and licenses. Several dozen of our font ports install these
to /usr/local/share/doc. Since the module doesn't help with this, the
ports all define custom do-install or post-install targets.

This diff adds the variables MODFONT_DOCDIR (which defaults to
${PREFIX}/share/doc/${MODFONT_FAMILY}) and MODFONT_DOCFILES (a user-
specified list of files relative to WRKSRC).

This allows ports that use the font module and install docs to replace
their custom install targets with a single variable assignment. In this
diff I've gone ahead and eliminated most of the post-install targets in
ports using the font module. (I didn't start converting non-module fonts
yet; that will come after I've made further changes to the module.)

ok?

Index: infrastructure/mk/font.port.mk
===================================================================
RCS file: /cvs/ports/infrastructure/mk/font.port.mk,v
diff -u -p -r1.7 font.port.mk
--- infrastructure/mk/font.port.mk      15 Apr 2024 16:08:14 -0000      1.7
+++ infrastructure/mk/font.port.mk      15 Apr 2024 20:22:23 -0000
@@ -12,8 +12,10 @@ PKGNAME ?=   ${MODFONT_FAMILY}-${MODFONT_V
 .  endif
 
 MODFONT_DIR ?= ${PREFIX}/share/fonts/${MODFONT_FAMILY}
+MODFONT_DOCDIR ?=      ${PREFIX}/share/doc/${MODFONT_FAMILY}
 
 MODFONT_TYPES ?=
+MODFONT_DOCFILES ?=
 
 MODFONT_do-install = ${INSTALL_DATA_DIR} ${MODFONT_DIR};
 
@@ -23,6 +25,11 @@ MODFONT_do-install = ${INSTALL_DATA_DIR}
 MODFONT_do-install += for t in otf ttf; do ${INSTALL_DATA} ${WRKSRC}/*.$$t 
${MODFONT_DIR} && break; done
 .else
 MODFONT_do-install += for t in ${MODFONT_TYPES}; do ${INSTALL_DATA} 
${WRKSRC}/*.$$t ${MODFONT_DIR}; done
+.endif
+
+.if !empty(MODFONT_DOCFILES)
+MODFONT_do-install += ; ${INSTALL_DATA_DIR} ${MODFONT_DOCDIR}
+MODFONT_do-install += ; for t in ${MODFONT_DOCFILES}; do ${INSTALL_DATA} 
${WRKSRC}/$$t ${MODFONT_DOCDIR}; done
 .endif
 
 .  if !target(do-install)
Index: fonts/abyssinica/Makefile
===================================================================
RCS file: /cvs/ports/fonts/abyssinica/Makefile,v
diff -u -p -r1.14 Makefile
--- fonts/abyssinica/Makefile   15 Apr 2024 16:08:15 -0000      1.14
+++ fonts/abyssinica/Makefile   15 Apr 2024 20:22:23 -0000
@@ -19,10 +19,6 @@ SITES =                      https://software.sil.org/downl
 NO_BUILD =             Yes
 NO_TEST =              Yes
 
-DOCDIR =               ${PREFIX}/share/doc/abyssinica
-
-post-install:
-       ${INSTALL_DATA_DIR} ${DOCDIR}
-       ${INSTALL_DATA} ${WRKDIST}/{README.txt,OFL.txt} ${DOCDIR}
+MODFONT_DOCFILES =     README.txt OFL.txt
 
 .include <bsd.port.mk>
Index: fonts/alkalami/Makefile
===================================================================
RCS file: /cvs/ports/fonts/alkalami/Makefile,v
diff -u -p -r1.10 Makefile
--- fonts/alkalami/Makefile     21 Sep 2023 15:28:01 -0000      1.10
+++ fonts/alkalami/Makefile     15 Apr 2024 20:22:23 -0000
@@ -1,5 +1,6 @@
 COMMENT =              Unicode font for African Arabic script
 V =                    2.000
+MODFONT_FAMILY =       alkalami
 DISTNAME =             Alkalami-${V}
 PKGNAME =              alkalami-${V}
 CATEGORIES =           fonts
@@ -18,12 +19,7 @@ MODULES =            font
 NO_BUILD =             Yes
 NO_TEST =              Yes
 
-FONTDIR =              ${PREFIX}/share/fonts/alkalami
-DOCDIR =               ${PREFIX}/share/doc/alkalami
-
-do-install:
-       ${INSTALL_DATA_DIR} ${FONTDIR} ${DOCDIR}
-       ${INSTALL_DATA} ${WRKDIST}/*.ttf ${FONTDIR}
-       ${INSTALL_DATA} ${WRKDIST}/{FONTLOG.txt,README.txt} ${DOCDIR}
+MODFONT_TYPES =                ttf
+MODFONT_DOCFILES =     FONTLOG.txt README.txt
 
 .include <bsd.port.mk>
Index: fonts/andika/Makefile
===================================================================
RCS file: /cvs/ports/fonts/andika/Makefile,v
diff -u -p -r1.12 Makefile
--- fonts/andika/Makefile       15 Apr 2024 16:08:15 -0000      1.12
+++ fonts/andika/Makefile       15 Apr 2024 20:22:23 -0000
@@ -18,10 +18,6 @@ MODULES +=           font
 NO_BUILD =             Yes
 NO_TEST =              Yes
 
-DOCDIR =               ${PREFIX}/share/doc/andika
-
-post-install:
-       ${INSTALL_DATA_DIR} ${DOCDIR}
-       ${INSTALL_DATA} ${WRKDIST}/*.txt ${DOCDIR}
+MODFONT_DOCFILES =     *.txt
 
 .include <bsd.port.mk>
Index: fonts/atkinson-hyperlegible/Makefile
===================================================================
RCS file: /cvs/ports/fonts/atkinson-hyperlegible/Makefile,v
diff -u -p -r1.5 Makefile
--- fonts/atkinson-hyperlegible/Makefile        15 Apr 2024 16:08:15 -0000      
1.5
+++ fonts/atkinson-hyperlegible/Makefile        15 Apr 2024 20:22:24 -0000
@@ -25,11 +25,10 @@ NO_BUILD =  Yes
 NO_TEST =      Yes
 
 WRKSRC =       ${WRKDIST}/Print\ Fonts
-DOCDIR =       ${PREFIX}/share/doc/${MODFONT_FAMILY}
 
 post-install:
-       ${INSTALL_DATA_DIR} ${DOCDIR}
+       ${INSTALL_DATA_DIR} ${MODFONT_DOCDIR}
        ${INSTALL_DATA} ${FULLDISTDIR}/${DISTFILES.doc} \
-               ${DOCDIR}/Atkinson-Hyperlegible-Font-License.pdf
+               ${MODFONT_DOCDIR}/Atkinson-Hyperlegible-Font-License.pdf
 
 .include <bsd.port.mk>
Index: fonts/charis/Makefile
===================================================================
RCS file: /cvs/ports/fonts/charis/Makefile,v
diff -u -p -r1.11 Makefile
--- fonts/charis/Makefile       15 Apr 2024 16:08:15 -0000      1.11
+++ fonts/charis/Makefile       15 Apr 2024 20:22:24 -0000
@@ -19,10 +19,6 @@ MODULES =            font
 NO_BUILD =             Yes
 NO_TEST =              Yes
 
-DOCDIR =               ${PREFIX}/share/doc/charis
-
-post-install:
-       ${INSTALL_DATA_DIR} ${DOCDIR}
-       ${INSTALL_DATA} ${WRKDIST}/*.txt ${DOCDIR}
+MODFONT_DOCFILES =     *.txt
 
 .include <bsd.port.mk>
Index: fonts/clearsans/Makefile
===================================================================
RCS file: /cvs/ports/fonts/clearsans/Makefile,v
diff -u -p -r1.7 Makefile
--- fonts/clearsans/Makefile    15 Apr 2024 16:08:16 -0000      1.7
+++ fonts/clearsans/Makefile    15 Apr 2024 20:22:24 -0000
@@ -20,10 +20,7 @@ NO_TEST =            Yes
 
 WRKDIST =              ${WRKDIR}
 WRKSRC =               ${WRKDIST}/TTF
-DOCDIR =               ${PREFIX}/share/doc/clearsans
 
-post-install:
-       ${INSTALL_DATA_DIR} ${DOCDIR}
-       ${INSTALL_DATA} ${WRKDIST}/*.txt ${DOCDIR}
+MODFONT_DOCFILES =     ../*.txt
 
 .include <bsd.port.mk>
Index: fonts/doulos/Makefile
===================================================================
RCS file: /cvs/ports/fonts/doulos/Makefile,v
diff -u -p -r1.12 Makefile
--- fonts/doulos/Makefile       15 Apr 2024 16:08:16 -0000      1.12
+++ fonts/doulos/Makefile       15 Apr 2024 20:22:24 -0000
@@ -20,10 +20,7 @@ NO_BUILD =           Yes
 NO_TEST =              Yes
 
 WRKDIST =              ${WRKDIR}/${DISTNAME}
-DOCDIR =               ${PREFIX}/share/doc/doulos
 
-post-install:
-       ${INSTALL_DATA_DIR} ${DOCDIR}
-       ${INSTALL_DATA} ${WRKDIST}/*.txt ${DOCDIR}
+MODFONT_DOCFILES =     *.txt
 
 .include <bsd.port.mk>
Index: fonts/gentium/Makefile
===================================================================
RCS file: /cvs/ports/fonts/gentium/Makefile,v
diff -u -p -r1.12 Makefile
--- fonts/gentium/Makefile      15 Apr 2024 16:08:16 -0000      1.12
+++ fonts/gentium/Makefile      15 Apr 2024 20:22:24 -0000
@@ -19,10 +19,7 @@ NO_BUILD =           Yes
 NO_TEST =              Yes
 
 WRKDIST =              ${WRKDIR}/${DISTNAME}
-DOCDIR =               ${PREFIX}/share/doc/gentium
 
-post-install:
-       ${INSTALL_DATA_DIR} ${DOCDIR}
-       ${INSTALL_DATA} ${WRKDIST}/*.txt ${DOCDIR}
+MODFONT_DOCFILES =     *.txt
 
 .include <bsd.port.mk>
Index: fonts/ibm-plex/Makefile
===================================================================
RCS file: /cvs/ports/fonts/ibm-plex/Makefile,v
diff -u -p -r1.20 Makefile
--- fonts/ibm-plex/Makefile     13 Apr 2024 14:15:44 -0000      1.20
+++ fonts/ibm-plex/Makefile     15 Apr 2024 20:22:24 -0000
@@ -1,5 +1,7 @@
 COMMENT =              IBM's corporate type family
 
+MODFONT_FAMILY =       ibm-plex
+
 CATEGORIES =           fonts
 V =                    6.4.0
 PKGNAME =              ibm-plex-$V
@@ -22,7 +24,6 @@ NO_BUILD =            Yes
 NO_TEST =              Yes
 
 FONTDIR =              ${PREFIX}/share/fonts/ibm-plex
-DOCDIR =               ${PREFIX}/share/doc/ibm-plex
 
 do-install:
        ${INSTALL_DATA_DIR} ${FONTDIR}
@@ -32,9 +33,7 @@ do-install:
        # this package use hinted font following Noto fonts.
        ${INSTALL_DATA} ${WRKDIST}/OpenType/IBM-Plex-Sans-JP/hinted/*.otf 
${FONTDIR}
        ${INSTALL_DATA} ${WRKDIST}/TrueType/IBM-Plex-Sans-JP/hinted/*.ttf 
${FONTDIR}
-
-post-install:
-       ${INSTALL_DATA_DIR} ${DOCDIR}
-       ${INSTALL_DATA} ${WRKDIST}/OpenType/IBM-Plex-Sans/license.txt ${DOCDIR}
+       ${INSTALL_DATA_DIR} ${MODFONT_DOCDIR}
+       ${INSTALL_DATA} ${WRKDIST}/OpenType/IBM-Plex-Sans/license.txt 
${MODFONT_DOCDIR}
 
 .include <bsd.port.mk>
Index: fonts/sunscreen/Makefile
===================================================================
RCS file: /cvs/ports/fonts/sunscreen/Makefile,v
diff -u -p -r1.6 Makefile
--- fonts/sunscreen/Makefile    15 Apr 2024 16:08:18 -0000      1.6
+++ fonts/sunscreen/Makefile    15 Apr 2024 20:22:24 -0000
@@ -20,10 +20,7 @@ NO_BUILD =           Yes
 NO_TEST =              Yes
 
 WRKDIST =              ${WRKDIR}/${DISTNAME}
-DOCDIR =               ${PREFIX}/share/doc/sunscreen
 
-post-install:
-       ${INSTALL_DATA_DIR} ${DOCDIR}
-       ${INSTALL_DATA} ${WRKDIST}/*.txt ${DOCDIR}
+MODFONT_DOCFILES =     *.txt
 
 .include <bsd.port.mk>

Reply via email to