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

Reply via email to