gbranden pushed a commit to branch master
in repository groff.
commit bace292cafa6018d14f79c53baf3213e5a24a078
Author: G. Branden Robinson <[email protected]>
AuthorDate: Sun Jun 29 03:07:52 2025 -0500
[devpdf]: Fix Savannah #67207 (3/4).
* font/devpdf/devpdf.am: Refactor. Make this script more
Automake-idiomatic (I think) and resemble other groff Automake scripts
more closely.
(devpdf_builddir): Define macro.
(GROFF_FONT_FILES, ENC_FILES, MAP_FILES): Drop macros populated by
shell command substitution in favor of static file lists...
(DEVPDFFONTFILES_FROM_DEVPS): ...like this...
(DEVPDFFONTFILES_FOR_URW) [HAVE_URW_FONTS]: ...and this.
(DEVPDFFONTFILES): New macro contains only
`DEVPDFFONTFILES_FROM_DEVPS` plus the "download", "DESC", "SS", and
"StandardSymSL.pfb" files (all generated by the build, the last two
trivially).
(devpdffontdata, devpdffontencdata): Rationalize contents, aligning
files and macro contents with installation requirements so Automake
takes care of installing and uninstalling them.
(MOSTLYCLEANFILES): Add `devpdffontdata`, `devpdffontencdir`,
`devpdffontmapdir`, so that Automake takes care of cleaning them.
($(DEVPDFFONTFILES_FROM_DEVPS)): New target copies "ps" device's font
descriptions to build's "pdf" device data directory.
($(devpdffontencdata)): Now that the "text.enc" encoding file name is
stored in a macro, use it and compute its basename instead of using
literals.
($(DEVPDFFONTFILES_FOR_URW)): Make the "pdf" device's "download" file
depend on this macro's contents, which may be empty if
`HAVE_URW_FONTS` is not defined by the "configure" script.
(font/devpdf/stamp): Respell dependencies using above macros.
(mostlyclean-local, mostlyclean_devpdf_extra) (install-data-local,
install_devpdf) (uninstall_groffdirs, uninstall_devpdf): Drop targets
made redundant by better population of `devpdf*data` macros above.
Continues fixing <https://savannah.gnu.org/bugs/?67207>.
---
ChangeLog | 36 ++++
font/devpdf/{SS => SS.in} | 0
.../{StandardSymSL.pfb => StandardSymSL.pfb.in} | Bin
font/devpdf/devpdf.am | 201 ++++++++++++---------
4 files changed, 155 insertions(+), 82 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 2c54e4437..ab4795176 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,39 @@
+2025-06-26 G. Branden Robinson <[email protected]>
+
+ * font/devpdf/devpdf.am: Refactor. Make this script
+ more Automake-idiomatic (I think) and resemble other groff
+ Automake scripts more closely.
+ (devpdf_builddir): Define macro.
+ (GROFF_FONT_FILES, ENC_FILES, MAP_FILES): Drop macros populated
+ by shell command substitution in favor of static file lists...
+ (DEVPDFFONTFILES_FROM_DEVPS): ...like this...
+ (DEVPDFFONTFILES_FOR_URW) [HAVE_URW_FONTS]: ...and this.
+ (DEVPDFFONTFILES): New macro contains only
+ `DEVPDFFONTFILES_FROM_DEVPS` plus the "download", "DESC", "SS",
+ and "StandardSymSL.pfb" files (all generated by the build, the
+ last two trivially).
+ (devpdffontdata, devpdffontencdata): Rationalize contents,
+ aligning files and macro contents with installation requirements
+ so Automake takes care of installing and uninstalling them.
+ (MOSTLYCLEANFILES): Add `devpdffontdata`, `devpdffontencdir`,
+ `devpdffontmapdir`, so that Automake takes care of cleaning
+ them.
+ ($(DEVPDFFONTFILES_FROM_DEVPS)): New target copies "ps" device's
+ font descriptions to build's "pdf" device data directory.
+ ($(devpdffontencdata)): Now that the "text.enc" encoding file
+ name is stored in a macro, use it and compute its basename
+ instead of using literals.
+ ($(DEVPDFFONTFILES_FOR_URW)): Make the "pdf" device's "download"
+ file depend on this macro's contents, which may be empty if
+ `HAVE_URW_FONTS` is not defined by the "configure" script.
+ (font/devpdf/stamp): Respell dependencies using above macros.
+ (mostlyclean-local, mostlyclean_devpdf_extra)
+ (install-data-local, install_devpdf)
+ (uninstall_groffdirs, uninstall_devpdf): Drop targets made
+ redundant by better population of `devpdf*data` macros above.
+
+ Continues fixing <https://savannah.gnu.org/bugs/?67207>.
+
2025-06-26 G. Branden Robinson <[email protected]>
* font/devpdf/DESC.in: Mount `SS`, `S`, and `ZD` fonts in same
diff --git a/font/devpdf/SS b/font/devpdf/SS.in
similarity index 100%
rename from font/devpdf/SS
rename to font/devpdf/SS.in
diff --git a/font/devpdf/StandardSymSL.pfb b/font/devpdf/StandardSymSL.pfb.in
similarity index 100%
rename from font/devpdf/StandardSymSL.pfb
rename to font/devpdf/StandardSymSL.pfb.in
diff --git a/font/devpdf/devpdf.am b/font/devpdf/devpdf.am
index e4fac7699..c98d277da 100644
--- a/font/devpdf/devpdf.am
+++ b/font/devpdf/devpdf.am
@@ -19,25 +19,103 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
devpdf_srcdir = $(top_srcdir)/font/devpdf
-ENC_FILES=`cd $(top_builddir)/font/devpdf; ls enc/*`
-MAP_FILES=`cd $(top_builddir)/font/devpdf; ls map/*`
+devpdf_builddir = $(top_builddir)/font/devpdf
+DEVPDFFONTFILES_FROM_DEVPS = \
+ font/devpdf/S \
+ font/devpdf/ZD \
+ font/devpdf/ZCMI \
+ font/devpdf/AB \
+ font/devpdf/ABI \
+ font/devpdf/AI \
+ font/devpdf/AR \
+ font/devpdf/BMB \
+ font/devpdf/BMBI \
+ font/devpdf/BMI \
+ font/devpdf/BMR \
+ font/devpdf/CB \
+ font/devpdf/CBI \
+ font/devpdf/CI \
+ font/devpdf/CR \
+ font/devpdf/HB \
+ font/devpdf/HBI \
+ font/devpdf/HI \
+ font/devpdf/HR \
+ font/devpdf/HNB \
+ font/devpdf/HNBI \
+ font/devpdf/HNI \
+ font/devpdf/HNR \
+ font/devpdf/NB \
+ font/devpdf/NBI \
+ font/devpdf/NI \
+ font/devpdf/NR \
+ font/devpdf/PB \
+ font/devpdf/PBI \
+ font/devpdf/PI \
+ font/devpdf/PR \
+ font/devpdf/TB \
+ font/devpdf/TBI \
+ font/devpdf/TI \
+ font/devpdf/TR \
+ font/devpdf/EURO
-MOSTLYCLEANFILES += \
- font/devpdf/download \
- font/devpdf/DESC \
- font/devpdf/Foundry \
- font/devpdf/util/BuildFoundries
+if HAVE_URW_FONTS
+DEVPDFFONTFILES_FOR_URW = \
+ font/devpdf/U-S \
+ font/devpdf/U-ZD \
+ font/devpdf/U-ZCMI \
+ font/devpdf/U-AB \
+ font/devpdf/U-ABI \
+ font/devpdf/U-AI \
+ font/devpdf/U-AR \
+ font/devpdf/U-BMB \
+ font/devpdf/U-BMBI \
+ font/devpdf/U-BMI \
+ font/devpdf/U-BMR \
+ font/devpdf/U-CB \
+ font/devpdf/U-CBI \
+ font/devpdf/U-CI \
+ font/devpdf/U-CR \
+ font/devpdf/U-HB \
+ font/devpdf/U-HBI \
+ font/devpdf/U-HI \
+ font/devpdf/U-HR \
+ font/devpdf/U-HNB \
+ font/devpdf/U-HNBI \
+ font/devpdf/U-HNI \
+ font/devpdf/U-HNR \
+ font/devpdf/U-NB \
+ font/devpdf/U-NBI \
+ font/devpdf/U-NI \
+ font/devpdf/U-NR \
+ font/devpdf/U-PB \
+ font/devpdf/U-PBI \
+ font/devpdf/U-PI \
+ font/devpdf/U-PR \
+ font/devpdf/U-TB \
+ font/devpdf/U-TBI \
+ font/devpdf/U-TI \
+ font/devpdf/U-TR
+endif
-devpdffontdir = $(fontdir)/devpdf
-devpdffont_DATA = \
+DEVPDFFONTFILES = $(DEVPDFFONTFILES_FROM_DEVPS) \
font/devpdf/DESC \
font/devpdf/SS \
- font/devpdf/download \
font/devpdf/StandardSymSL.pfb \
+ font/devpdf/download
+
+devpdffontdir = $(fontdir)/devpdf
+devpdffontdata = \
+ $(DEVPDFFONTFILES) \
+ $(DEVPDFFONTFILES_FOR_URW) \
font/devpdf/Foundry
+devpdffont_DATA = $(devpdffontdata)
+MOSTLYCLEANFILES += $(devpdffontdata)
devpdffontencdir = $(devpdffontdir)/enc
-devpdffontenc_DATA = font/devpdf/enc/text.enc
+devpdffontencdata = \
+ font/devpdf/enc/text.enc
+devpdffontenc_DATA = $(devpdffontencdata)
+MOSTLYCLEANFILES += $(devpdffontencdata)
devpdffontmapdir = $(devpdffontdir)/map
devpdffontmapdata = \
@@ -46,11 +124,12 @@ devpdffontmapdata = \
font/devpdf/map/symbolchars \
font/devpdf/map/text.map
devpdffontmap_DATA = $(devpdffontmapdata)
+MOSTLYCLEANFILES += $(devpdffontmapdata)
EXTRA_DIST += \
font/devpdf/DESC.in \
- font/devpdf/SS \
- font/devpdf/StandardSymSL.pfb \
+ font/devpdf/SS.in \
+ font/devpdf/StandardSymSL.pfb.in \
font/devpdf/Foundry.in \
font/devpdf/download.in \
font/devpdf/generate/StandardSymSL.sfd \
@@ -58,18 +137,30 @@ EXTRA_DIST += \
all: font/devpdf/stamp
-font/devpdf/enc/text.enc:
+$(DEVPDFFONTFILES_FROM_DEVPS):
+ $(AM_V_at)$(MKDIR_P) $(top_builddir)/font/devpdf
+ $(AM_V_at)for f in $@; do \
+ cp -f $(top_srcdir)/font/devps/`basename $$f` \
+ $(top_builddir)/font/devpdf; \
+ done
+
+$(devpdffontencdata):
$(AM_V_at)$(MKDIR_P) $(top_builddir)/font/devpdf/enc
- $(AM_V_at)cp -f $(top_srcdir)/font/devps/text.enc \
+ $(AM_V_at)cp -f $(top_srcdir)/font/devps/`basename $@` \
$(top_builddir)/font/devpdf/enc
-font/devpdf/SS: font/devpdf/download
- $(AM_V_at)$(MKDIR_P) $(top_builddir)/font/devpdf
- if [ "$(top_srcdir)" != "$(top_builddir)" ]; then \
- cp -u $(top_srcdir)/font/devpdf/SS \
- $(top_srcdir)/font/devpdf/StandardSymSL.pfb \
- $(top_builddir)/font/devpdf; \
- fi
+# The following 2 rules are lame hacks to get around the fact that, but
+# for the rename, we'd have no work to do if the source tree is the
+# build tree, but we have to copy each file if the build tree differs.
+#
+# XXX: Maybe a Make or Automake guru can advise how to improve this.
+
+font/devpdf/SS: $(devpdf_srcdir)/SS.in
+ $(AM_V_GEN)cp -f $(devpdf_srcdir)/SS.in $@
+
+$(devpdf_builddir)/StandardSymSL.pfb: \
+ $(devpdf_srcdir)/StandardSymSL.pfb.in
+ $(AM_V_GEN)cp -f $(devpdf_srcdir)/StandardSymSL.pfb.in $@
$(devpdffontmapdata):
$(AM_V_at)$(MKDIR_P) $(top_builddir)/font/devpdf/map
@@ -101,9 +192,6 @@ font/devpdf/util/BuildFoundries: \
&& cp -f $(top_srcdir)/font/devpdf/download.in \
$(top_builddir)/font/devpdf/download
-GROFF_FONT_FILES=`cd $(top_builddir)/font/devpdf \
- && grep -ls internalname [A-CEG-RT-Z]*`
-
MOSTLYCLEANFILES += font/devpdf/DESC
font/devpdf/DESC: $(devpdf_srcdir)/DESC.in
$(AM_V_GEN)$(MKDIR_P) `dirname $@` \
@@ -123,12 +211,11 @@ endif
# This is kind of a cheat, but works because BuildFoundries produces so
# many artifacts.
-$(DEFAULT_BASE35_FONTS) $(URW_BASE35_FONTS): font/devpdf/download
+$(DEVPDFFONTFILES_FOR_URW) $(DEFAULT_BASE35_FONTS) \
+ $(URW_BASE35_FONTS): font/devpdf/download
-MOSTLYCLEANFILES += font/devpdf/download
-font/devpdf/download: $(devpdffontmapdata) font/devpdf/DESC \
- font/devpdf/Foundry font/devpdf/enc/text.enc \
- font/devpdf/util/BuildFoundries
+font/devpdf/download: $(devpdffontencdata) $(devpdffontmapdata) \
+ font/devpdf/DESC font/devpdf/Foundry font/devpdf/util/BuildFoundries
$(AM_V_GEN)$(MKDIR_P) $(top_builddir)/font/devpdf \
&& echo "# foundry ps-font-name ps-font-file" >[email protected] \
&& echo "# A blank foundry is the default." >>[email protected] \
@@ -143,60 +230,10 @@ font/devpdf/download: $(devpdffontmapdata)
font/devpdf/DESC \
# PDFs to be produced by troff should depend on this stamp file to
# ensure that gropdf's device and font description files are available.
MOSTLYCLEANFILES += font/devpdf/stamp
-font/devpdf/stamp: font/devpdf/DESC font/devpdf/download \
- $(devpdffontenc_DATA) $(devpdffontmap_DATA) $(devpdffont_DATA)
+font/devpdf/stamp: font/devpdf/DESC $(DEVPDFFONTFILES) \
+ font/devpdf/download
$(AM_V_at)>$@
-mostlyclean-local: mostlyclean_devpdf_extra
-mostlyclean_devpdf_extra:
- @echo Cleaning font/devpdf
- rm -rf $(top_builddir)/font/devpdf/enc \
- $(top_builddir)/font/devpdf/map;
- if test -d $(top_builddir)/font/devpdf; then \
- for f in $(GROFF_FONT_FILES) S; do \
- $(RM) $(top_builddir)/font/devpdf/$$f; \
- done; \
- fi
- if [ "$(top_srcdir)" != "$(top_builddir)" ]; then \
- for f in SS StandardSymSL.pfb; do \
- $(RM) $(top_builddir)/font/devpdf/$$f; \
- done; \
- fi
-
-install-data-local: install_devpdf
-install_devpdf:
- @echo Installing devpdf files
- -@test -d $(DESTDIR)$(devpdffontdir) \
- || $(mkinstalldirs) $(DESTDIR)$(devpdffontdir)
- @for f in $(GROFF_FONT_FILES) S; do \
- $(RM) $(DESTDIR)$(devpdffontdir)/$$f; \
- if test -f $$f; then \
- $(INSTALL_DATA) $$f $(DESTDIR)$(devpdffontdir)/$$f; \
- else \
- $(INSTALL_DATA) $(top_builddir)/font/devpdf/$$f \
- $(DESTDIR)$(devpdffontdir)/$$f; \
- fi; \
- done
- $(INSTALL_DATA) $(top_builddir)/font/devpdf/download \
- $(DESTDIR)$(devpdffontdir)/
-
-uninstall_groffdirs: uninstall_devpdf
-uninstall_devpdf:
- @echo Uninstalling devpdf files
- if test -d $(DESTDIR)$(devpdffontdir); then \
- for f in $(GROFF_FONT_FILES) S; do \
- $(RM) $(DESTDIR)$(devpdffontdir)/$$f; \
- done; \
- if test -d $(DESTDIR)$(devpdffontencdir); then \
- rmdir $(DESTDIR)$(devpdffontencdir); \
- fi; \
- if test -d $(DESTDIR)$(devpdffontmapdir); then \
- rmdir $(DESTDIR)$(devpdffontmapdir); \
- fi; \
- $(RM) $(DESTDIR)$(devpdffontdir)/download; \
- rmdir $(DESTDIR)$(devpdffontdir); \
- fi
-
font_devpdf_default_test=\
$(devpdf_srcdir)/tests/check-default-foundry.sh.in
font_devpdf_urw_test=$(devpdf_srcdir)/tests/check-urw-foundry.sh.in
_______________________________________________
groff-commit mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/groff-commit