124 Commits

Author SHA1 Message Date
G. Branden Robinson
e7bc2afe46 Declare groff's provenance consistently. 2025-12-17 16:56:49 -06:00
G. Branden Robinson
20a41b7640 [install-font]: Add new component.
* Makefile.am: Include "contrib/install-font/install-font.am".

* contrib/install-font/install-font.bash: Import Peter Schaffter's
  "install-font.sh" script from his website.  Rename as shown; its
  "shebang" line declares it a Bash script (albeit one that operates in
  Bash's POSIX mode).  Cosmetic changes to Peter's version comprise
  removal of trailing whitespace, a replacement of the GPL license
  notice with model language from the current version of the GPL, and
  addition of a Vim modeline reflecting the code style in evidence.  I
  also recoded the file to plain ASCII (Unicode Basic Latin), the only
  consequence of which was dropping of the U+00A9 copyright sign.

* contrib/install-font/COPYRIGHT: Add file promised by groff's
  "LICENSES" file.

* contrib/install-font/install-font.am: Automake script, when driven by
  a groff build, installs "install-font.bash" to the target's "examples"
  directory.

Fixes <https://savannah.gnu.org/bugs/?60930>.
2025-11-14 13:33:43 -06:00
G. Branden Robinson
f95c908348 Makefile.am,configure.ac: Tweak copyright notice.
Drop ersatz copyright symbol '(C)'.

Software developers have long labored under the no-longer-correct
misconception that omitting a copyright symbol from one's notice was a
fatal defect that effectively placed the work in the public domain.
That stopped being true as of 1 March 1989.[1]  Further, prior to
guidance issued by the U.S. Copyright Office in the decades since, the
use of "(C)" as a substitute for a copyright sign _may not have
sufficed_ to prevent the copyright notice from being regarded as
defective.  The Copyright Office, then and now, prefers the abbreviation
"copr." when © is typographically unavailable.[ibid.]  Nowadays, its
advice is that "c" (note lowercase) is an "acceptable variant", that
_may_ retain the efficacy of the copyright notice.  The word
"copyright", spelled out in full, also suffices per that resource, and
is already present in this notice.

[1] https://www.copyright.gov/circs/circ03.pdf
2025-11-14 11:32:11 -06:00
G. Branden Robinson
524f1e4b93 Retire our fmod(3) replacement.
...in favor of gnulib's.  James Clark wrote groff's in 1989; it's
changed very little since.

* Makefile.am: Drop fmod-referencing annotations.
* bootstrap.conf (gnulib_modules): Add "fmod".
* configure.ac: Drop `fmod` from `AC_REPLACE_FUNCS()` call.
* src/libs/libgroff/fmod.c: Delete.
* src/libs/libgroff/libgroff.am (EXTRA_DIST): Drop "fmod.c".
* src/preproc/pic/pic.ypp: Drop conditional declaration of `fmod()`
  symbol.

Continues fixing Savannah #66518.
2025-11-10 08:04:24 -06:00
G. Branden Robinson
81e4c39591 Retire our putenv(3) replacement.
...in favor of gnulib's.  groff's was copied from glibc in 1991 and
changed very little since.

* Makefile.am: Drop putenv-referencing annotations.

* bootstrap.conf (gnulib_modules): Add "putenv".

* configure.ac: Drop `GROFF_NEED_DECLARATION([putenv])` call.  Drop
  `putenv` from `AC_REPLACE_FUNCS()` call.

* src/devices/grops/ps.cpp:
* src/devices/grops/psrm.cpp:
* src/roff/groff/groff.cpp:
* src/roff/troff/input.cpp: Drop conditional declaration of `putenv()`
  symbol.

* src/libs/libgroff/putenv.c: Delete.

* src/libs/libgroff/libgroff.am (EXTRA_DIST): Drop "putenv.c".

Continues fixing Savannah #66518.
2025-11-10 08:03:40 -06:00
G. Branden Robinson
9c9271dbff Makefile.am: Drop misleading comments.
* Makefile.am: Drop comments documenting `PAGE` and `GHOSTSCRIPT` as
  appearing in "config.h".  Neither appears there because they are
  `AC_SUBST()`ed (into generated Make files), not `AC_DEFINE()`d (in
  "config.h").  Further, the Ghostscript- related macro that we expand
  is named `ALT_GHOSTSCRIPT_PROGS`, not `GHOSTSCRIPT`.  Prompted by a
  report and proposed patch by Lennart Jablonka.
2025-04-11 06:15:44 -05:00
Collin Funk
3b241554d8 Use the strcase Gnulib module.
* Makefile.am: Update comment.
* bootstrap.conf (gnulib_modules): Add strcase.
* configure.ac: Remove checks for strcasecmp and strncasecmp.
* src/libs/libgroff/strcasecmp.c: Delete file.
* src/libs/libgroff/strncasecmp.c: Likewise.
* src/libs/libgroff/libgroff.am (EXTRA_DIST): Remove deleted files.
* src/include/lib.h (strcasecmp, strncasecmp): Remove declarations.
* src/roff/groff/pipeline.c (strcasecmp): Likewise.

See <https://savannah.gnu.org/bugs/?66518>.
2025-01-02 07:37:18 -06:00
G. Branden Robinson
94fd78ef12 Rename Makefile macro DEVICE to DEFAULT_DEVICE.
* Makefile.am: Do it.

* src/include/include.am (defs.h):
* src/libs/libgroff/device.cpp:
* src/devices/grodvi/grodvi.1.man:
* src/devices/grohtml/grohtml.1.man:
* src/devices/grolbp/grolbp.1.man:
* src/devices/grolj4/grolj4.1.man:
* src/devices/gropdf/gropdf.1.man:
* src/devices/grops/grops.1.man:
* src/devices/grotty/grotty.1.man:
* src/preproc/eqn/eqn.1.man:
* src/preproc/grn/grn.1.man:
* src/roff/groff/groff.1.man:
* src/roff/troff/troff.1.man: Reflect rename.

* NEWS: Add item.
2024-11-30 02:49:51 -06:00
G. Branden Robinson
949b091c22 Rely on gnulib for strerror() if necessary.
* bootstrap.conf: Add "strerror" to `gnulib_modules`.

* configure.ac: Drop "sterror" from `AC_REPLACE_FUNCS`; we don't need
  Autoconf's replacement if we've got gnulib's.

* Makefile.am: Drop mention of function/macro in comment.

* src/include/lib.h: Drop C preprocessor conditional logic.

* src/roff/groff/pipeline.c: Drop fallback definition.  Let existing
  "<config.h"> inclusion do the work, and include "<string.h>"
  unconditionally.
2024-11-30 02:49:51 -06:00
G. Branden Robinson
33288aefa1 Makefile.am: Ship "ChangeLog.123" in dist archive.
* Makefile.am (EXTRA_DIST): Ship "ChangeLog.123".
2024-11-19 12:14:03 -06:00
G. Branden Robinson
b64ba6b6f2 Makefile.am: Re-sort EXTRA_DIST.
* Makefile.am (EXTRA_DIST): Re-sort with `LC_COLLATE=C`.
2024-11-19 11:58:05 -06:00
G. Branden Robinson
f107252c3c Drop now-unused Autoconf macros.
* configure.ac: Stop expanding `GROFF_AWK_NOTICE`,
  `GROFF_PDFROFF_DEPENDENCIES_CHECK`, and `GROFF_PDFROFF_PROGRAM_NOTICE`
  macros.  Drop `AM_CONDITIONAL` with `USE_PDFROFF` argument.

* m4/groff.m4 (GROFF_AWK_NOTICE, GROFF_AWK_PATH, GROFF_AWK_PREFS)
  (GROFF_PDFROFF_DEPENDENCIES_CHECK, GROFF_PDFROFF_PROGRAM_NOTICE): Drop
  unused macro definitions.
2024-11-15 15:58:43 -06:00
G. Branden Robinson
b58576c18b Fix Savannah #63827 (stop distributing pdfmark).
Stop distributing pdfmark.  It is now separately maintained.  Please
visit <https://osdn.net/users/keith/pf/groff-pdfmark/> for the latest
version.

* contrib/pdfmark: Recursively delete.
* Makefile.am: Stop including its Automake file.
* doc/doc.am (GROFF_MAN_PAGES1): Drop pdfroff man page.
* src/utils/grog/tests/smoke-test.sh: Stop using
  "contrib/pdfmark/{cover,pdfmark}.ms" as test artifacts.

* MANIFEST:
* src/roff/groff/groff.1.man: De-document.

* NEWS: Add item.

Fixes <https://savannah.gnu.org/bugs/?63827>.

Also drop somewhat misleading comments from Makefile.am.  (hdtbl,
grohtml, and gropdf all use Ghostscript.  Only m4/ax_compare_version.m4
uses the Autoconf-detected version of AWK.  A few maintainer-mode
scripts and test scripts use AWK, but they assume it's installed as
"awk" and, looking over the scripts they feed it, none seems to exercise
anything but basic AWK features, possibly compatible all the way back to
Seventh Edition "Original AWK".)
2024-11-15 15:56:03 -06:00
G. Branden Robinson
09ea0a488c Makefile.am: Add set-man-page-time-stamps target.
* Makefile.am (set-man-page-time-stamps): New maintainer-mode rule sets
  time stamps of man page source documents to match the Git "author
  date" of their most recent commits.  This is to make the date reported
  in the center footer of the rendered page tell the truth.
2024-09-21 22:58:45 -05:00
G. Branden Robinson
b802634484 Makefile.am: Revise and update comments.
* Use contemporary quotation style.  Eschew `this'.  Use single quotes
  for Automake variable/macro names and command literals, and double
  quotes for variable/macro contents and for file names.
* De-document some variable names.  We need not be exhaustive; the
  GNU Autoconf manual exists for a reason.
* Stop naming several variables twice, once with the quotation marks and
  once without.
* Annotate variables that can go away as part of Savannah #63827.
* Be more frugal with vertical whitespace, except where helpful to
  separate paragraphs of exposition.
* Recast language.

Fixes <https://savannah.gnu.org/bugs/?64913>.  Thanks to Bjarni Ingi
Gislason for the report.
2024-09-04 16:47:52 -05:00
G. Branden Robinson
594cc756cb Makefile.am: Fix editorial goof in comment. 2024-08-20 10:02:47 -05:00
G. Branden Robinson
6aee6fad83 Drop cp1047 device directory.
* font/devcp1047/*: Recursively delete.

* Makefile.am: Stop including the Automake file therein.

* MANIFEST: De-document.

* NEWS: Note withdrawal of "cp1047" device support.

Fixes <https://savannah.gnu.org/bugs/?65724>.
2024-08-19 18:59:01 -05:00
G. Branden Robinson
2291582732 Drop Autoconf checks for EBCDIC and OS/390.
* m4/groff.m4 (GROFF_EBCDIC, GROFF_OS390): Drop macros.
* configure.ac: Stop using them.

Continues fixing <https://savannah.gnu.org/bugs/?65724>.
2024-08-19 18:59:01 -05:00
G. Branden Robinson
cb33450218 Makefile.am: De-document obsolete variables. 2024-08-19 18:59:01 -05:00
Colin Watson
822fef56e9 Distribute bootstrap and bootstrap.conf
With the recent xz-utils backdoor, there's been more focus on cases
where build systems rely on files produced by "make dist" and included
in release tarballs.  It's already fairly standard practice for
distributions to rebuild configure scripts using autoreconf, but less so
to rebuild the files that are produced by gnulib.

I looked into what it would take for Debian's groff package to do a full
rebootstrap from its packaged version of gnulib.  It seems relatively
straightforward, but it requires including bootstrap and bootstrap.conf
in tarballs so that we know what modules to use.

I've omitted README.git to ensure that we still warn people who don't
know what they're doing that running "./bootstrap" may not be the right
place to start.

* Makefile.am (EXTRA_DIST): Add "bootstrap" and "bootstrap.conf".
2024-03-31 11:29:14 +01:00
G. Branden Robinson
35f5a8fd9b Makefile.am: Ship old groff ChangeLog files.
* Makefile.am (EXTRA_DIST): Ship ancient groff ChangeLog files split off
  from ChangeLog.115 (.old, .111, .112, .113, .114).
2023-08-28 09:53:30 -05:00
G. Branden Robinson
043d95c5c5 [build]: Resume shipping pic.html.
* m4/groff.m4 (GROFF_CHECK_GROHTML_PROGRAMS)
  (GROFF_GROHTML_PROGRAM_NOTICE, GROFF_PNMTOOLS_CAN_BE_QUIET): Rename
  "make_htmldoc" to "use_grohtml" as expected by "configure.ac".  Also
  stop `AC_SUBST`ing it; we don't need "@use_grohtml@" in our Makefiles
  since an `AM_CONDITIONAL` in configure.ac already does an equivalent
  thing.  Continues commit aa5787c1eb by me from 20 May.

  (PROCESSEDDOCFILES): Drop "$(PROCESSEDDOCFILES_HTML)" from macro
  definition; annotate why.

Also drop stale comments from Makefile.am.
2023-07-10 03:19:29 -05:00
G. Branden Robinson
48d3a79341 Stop shipping "FOR-RELEASE" in dist archives.
* Makefile.am (EXTRA_DIST): Do it.
* MANIFEST: De-document file.
2023-07-10 03:19:29 -05:00
G. Branden Robinson
f2a4739d17 Makefile.am: Initialize more Automake variables.
* Makefile.am: Initialize (as empty) Automake variables that we don't
  use but which gnulib modules expect to be defined.

  (AUTOMAKE_OPTIONS, SUBDIRS, noinst_HEADERS, noinst_LTLIBRARIES)
  (pkgdata_DATA, MOSTLYCLEANDIRS, AM_CFLAGS): Do it.

Thanks to Bruno Haible for the advice.

This is a prerequisite for including gnulib's "sys_wait" module.
2023-07-09 23:20:16 -05:00
Bruno Haible
62141b4202 Makefile.am (AR): Remove hardcoded value.
* Makefile.am (AR): Remove hardcoded value. Let Automake use the value
  from config.status.

[Fixes build problem on 64-bit AIX.  Problem appears to date back to
commit 5fec19d453, 2014-08-15. --GBR]
2023-03-06 14:01:02 -06:00
G. Branden Robinson
803ad5f7b3 [doc]: Uninstall groff Texinfo in HTML better.
* Makefile.am (uninstall_groffdirs): Remove "html.mono" and "html.node"
  directories corresponding to HTML version of our Texinfo manual.
* doc/doc.am (uninstall-html): Uninstall HTML version of our Texinfo
  manual more reliably.
2023-02-22 20:28:13 -06:00
G. Branden Robinson
45b628322b Fix Savannah #63589.
Correct numerous typos and solecisms throughout the source tree.

* ChangeLog:
* ChangeLog.115:
* ChangeLog.116:
* ChangeLog.117:
* ChangeLog.118:
* ChangeLog.119:
* ChangeLog.121:
* ChangeLog.122:
* Makefile.am:
* NEWS:
* PROBLEMS:
* README:
* contrib/chem/chem.am:
* contrib/chem/chem.pl:
* contrib/glilypond/README.txt:
* contrib/glilypond/glilypond.pl:
* contrib/hdtbl/groff_hdtbl.7.man:
* contrib/mm/ChangeLog:
* contrib/mm/m.tmac:
* contrib/pdfmark/pdfmark.ms:
* doc/automake.mom:
* doc/groff.texi:
* doc/me-revisions:
* doc/webpage.ms:
* m4/lib-link.m4:
* man/groff.7.man:
* man/groff_diff.7.man:
* man/roff.7.man:
* src/devices/grohtml/post-html.cpp:
* src/devices/grolbp/lbp.h:
* src/devices/gropdf/TODO:
* src/devices/gropdf/gropdf.1.man:
* src/devices/gropdf/gropdf.pl:
* src/devices/xditview/ChangeLog:
* src/devices/xditview/xditview.c:
* src/libs/libdriver/input.cpp:
* src/libs/libgroff/glyphuni.cpp:
* src/preproc/eqn/eqn.1.man:
* src/preproc/grn/gprint.h:
* src/preproc/grn/main.cpp:
* src/preproc/html/pre-html.cpp:
* src/preproc/preconv/preconv.cpp:
* src/preproc/tbl/table.cpp:
* src/roff/groff/pipeline.c:
* src/roff/groff/tests/substring_works.sh:
* src/roff/groff/tests/use_point_size_escape_with_single_digit_arg.sh:
* src/roff/troff/div.cpp:
* src/roff/troff/input.cpp:
* src/roff/troff/troff.1.man:
* src/utils/grog/grog.pl:
* src/utils/indxbib/indxbib.cpp:
* src/utils/tfmtodit/tfmtodit.1.man:
* tmac/doc-old.tmac:
* tmac/doc.tmac:
* tmac/groff_man.7.man.in:
* tmac/hyphen.fr: Do it.

Fixes <https://savannah.gnu.org/bugs/?63589>.  Thanks to Bjarni Ingi
Gislason for the report.

* ANNOUNCE: Update bug counts.

I also killed some pointless white space, refilled affected lines at 72
columns where convenient and non-disruptive to existing text flow, and
corrected a misspelling of Ralph Corderoy's surname.
2023-02-05 03:06:19 -06:00
G. Branden Robinson
52350eb1de [man pages]: Don't doc compat wrappers if unused.
[man pages]: Don't document macro package compatibility wrapper
directory if it's not used.

* Makefile.am (.man): Use sed to replace '@COMPATIBILITY_WRAPPERS@' in
  man page text with value of `compatibility_wrappers` shell variable.
  Document its purpose.
* src/preproc/eqn/eqn.1.man (Description):
* src/preproc/grn/grn.1.man (Options):
* src/roff/groff/groff.1.man (Installation directories):
* src/roff/troff/troff.1.man (Environment): Mention `@SYSTEMMACRODIR`
  only if `@COMPATIBILITY_WRAPPERS` expands to something other than "no"
  (it could be "yes" or "manual").

Thanks to Alexander Kanavin and Jeremy Puhlman for the report.
2022-10-29 12:52:02 -05:00
G. Branden Robinson
969da6bb15 Makefile.am: Clarify comment.
Not all non-GNU troffs are AT&T troff as they were in 1990.  Heirloom
troff uses its own subdirectory ("doctools") of /usr/lib nowadays.  And
neatroff is something else entirely.
2022-10-23 20:48:26 -05:00
G. Branden Robinson
ff2e281ed4 Drop groff_filenames(5) document.
It says nothing accurate that is not covered elsewhere.

* contrib/groff_filenames: Delete.
* doc/doc.am (GROFF_MAN_PAGES): Drop.
* src/roff/groff/groff.1.man: Drop cross reference to it.
* NEWS: Add item.

Fixes <https://savannah.gnu.org/bugs/index.php?61818>.
2022-09-02 18:22:51 -05:00
G. Branden Robinson
21b21cfc9e [build]: Parameterize X11-related man pages.
[build]: Parameterize X11-related man pages, so they don't get
spuriously generated (and not cleaned) when building with X11 support
disabled.

* Makefile.am (.man): Fix logic nit: drop unnecessary removal of target
  before clobbering it with sed.

* src/devices/xditview/xditview.am (GXDITVIEW_MAN1): Add new macro,
  expanding to nothing if `WITHOUT_X11` and to the target name
  otherwise.

  (man1_MANS): Append `GXDITVIEW_MAN1` expansion, not a literal.

* src/devices/xditview/xditview.am (XTOTROFF_MAN1): Add new macro,
  expanding to nothing if `WITHOUT_X11` and to the target name
  otherwise.

  (man1_MANS): Append `XTOTROFF_MAN1` expansion, not a literal.

* doc/doc.am (GROFF_MAN_PAGES1): Append foregoing expansions instead of
  literals.
2022-06-03 14:36:47 -05:00
G. Branden Robinson
a47f786c83 [build]: Rename variables and macros for clarity.
[build]: Rename shell variables and Autoconf/Automake macros of Boolean
sense to have names more like logical predicates and avoid doofy "DONT"
nomenclature.

* m4/groff.m4 (GROFF_MAKE_RM): Rename shell variable
  `groff_is_rm_defined` to `groff_make_defines_rm` (purely for clarity;
  it already had a good name).

  (GROFF_MAKE_RM): Rename this...
  (GROFF_MAKE_DEFINES_RM): to this, to make parallelism obvious, and
  enabling...

* configure.ac: ...rename of `MAKE_DONT_HAVE_RM` to `MAKE_DEFINES_RM`
  with sense of test reversed.  Also interpolate `GROFF_MAKE_DEFINES_RM`
  instead of `GROFF_MAKE_RM`.  This in turn enables...

* Makefile.am: ...revision of conditional from `MAKE_DONT_HAVE_RM` to
  "!`MAKE_DEFINES_RM`".
2022-06-03 04:01:12 -05:00
G. Branden Robinson
e1e305962c [build]: Rename APPRES* stuff to APPDEF*.
* configure.ac:
* m4/groff.m4 (GROFF_APPDEFDIR_OPTION, GROFF_APPDEFDIR_DEFAULT,
  GROFF_APPDEFDIR_CHECK): Rename m4 macros and shell variable from
  "*appres*" to "*appdef*.  Update interpolation sites.

* configure.ac:
* m4/groff.m4 (GROFF_APPDEFDIR_CHECK): Further rename this...
  (GROFF_APPDEFDIR_NOTICE): ...to this, for consistency with other
  post-report output macros.

* Makefile.am:
* PROBLEMS:
* doc/automake.mom:
* src/devices/xditview/xditview.am: Update interpolation sites
  of `appresdir`.

* Makefile.am:
* src/devices/xditview/gxditview.1.man:
* src/roff/groff/groff.1.man: Update interpolation site of `APPRESDIR`.

* NEWS: Add item.
2022-06-03 04:00:45 -05:00
G. Branden Robinson
9426ad4888 Makefile.am: Escape @PSPRINT@ for man pages.
* Makefile.am (.man): Process '@PSPRINT@' substitutions with
  "makevarescape.sed".
2022-05-28 16:40:16 -05:00
G. Branden Robinson
fc21c6121d Makefile.am (EXTRA_DIST): Ship "HACKING" file. 2022-05-26 09:12:16 -05:00
G. Branden Robinson
0dfe2305d5 groff(1): Cross ref configured print spooler.
Fix insensitivity of groff(1) man page to configured spooler.

* Makefile.am (.man): Replace `@PSPRINT@` in man page sources with name
  of configured print spooler command.

* src/roff/groff/groff.1.man (Options) <-l>: Use configured print
  spooler command instead of literal 'lpr'.
2022-05-25 18:46:38 -05:00
G. Branden Robinson
05f3c08562 Makefile.am: Ship "ChangeLog.122" in dist archive.
* Makefile.am (EXTRA_DIST): Ship "ChangeLog.122" in distribution
  archive.  Overlooked in commit c11995df16, 19 Feburary 2021.
2022-05-21 11:13:08 -05:00
G. Branden Robinson
52efd3457b Makefile.am: Stop manually handling "test-groff".
Per the GNU Automake manual, "If configure built it, then distclean
should delete it."  This is taken care of automatically if we don't
interfere.

* Makefile.am (BUILT_SOURCES, MOSTLYCLEANFILES): Drop "test-groff".
2022-05-03 10:43:12 -05:00
Ingo Schwarze
3805d2a0e4 [configure] Delete the --with-doc option.
This option was harmful, ill-designed, buggy, and essentially
unmaintained and untested.  For more details on the rationale,
see the NEWS file.

OK gbranden@ and no objection when shown on groff at gnu dot org.
2022-04-15 13:11:30 +02:00
G. Branden Robinson
a5af2f4d0f Rename and drop some Make macros.
* Makefile.am: Rename `TFLAG` macro, which means "tmac flag", to
  `MFLAG`, because it expands to `-M` options to groff, not the `-T`
  option, which can be bewildering.

* doc/doc.am (DOC_GROFF): Update expansion site.

* contrib/hdtbl/hdtbl.am: Eliminate `HDTBL_TFLAG` and `HDTBL_PFLAG` Make
  macros; they were expanded in only one place.

  (HDTBLGROFF): Track rename of Make macro `TFLAG` to `MFLAG`.

* contrib/mom/mom.am: Eliminate `MOM_TFLAG` and `MOM_PFLAG` Make macros;
  they were expanded in only one place.

  (MOMPDFMOM): Track rename of Make macro `TFLAG` to `MFLAG`.

* contrib/pdfmark/pdfmark.am: Eliminate `PDFMARK_TFLAG` and
  `PDFMARK_PFLAG` Make macros; they were expanded in only one place.

  (PDFROFF): Track rename of Make macro `TFLAG` to `MFLAG`.
2022-04-07 10:35:32 +10:00
Ingo Schwarze
ae9ee283cd Makefile.am: fix an obvious typo in a comment 2022-03-22 16:24:57 +01:00
G. Branden Robinson
450179efd6 Revert "Update .version file more aggressively."
This reverts commit c1bb33e5beec25b4059bca3cc4529b738ec486c7.

This wasn't the right way to attack the problem; see
<https://lists.gnu.org/archive/html/groff/2022-03/msg00051.html>.
2022-03-22 22:28:11 +11:00
G. Branden Robinson
d84d9e1d85 Makefile.am: Use hyphenation control escapes more.
* Makefile.am (.man): Prefix hyphenation control escape sequences to
  more configuration-time interpolations to prevent their hyphenation:
  @DEVICE@, @g@, @INDEX_SUFFIX@, @PAGE@, @TMAC_{AN,M,S}_PREFIX@,
  @TMAC_MDIR@.
2022-02-21 22:03:21 +11:00
G. Branden Robinson
90bf377ee8 [build]: Expand @PAGE@ when generating man pages.
* Makefile.am (.man): Substitute the './configure'd paper format for
  @PAGE@.

* src/roff/groff/groff.1.man: Use it.
2022-02-01 03:13:40 +11:00
G. Branden Robinson
d79c3f3a4a Revamp Texinfo manual handling, part one.
Drop `BUILD_INFODOC` symbol.  Ship manual in GNU Info, text, and HTML
forms in distribution archive.

* Makefile.am (MAINTAINERCLEANFILES): Initialize.
  (MOSTLYCLEANADD): Drop unused variable.

* configure.ac: Drop `AM_CONDITIONAL([BUILD_INFODOC]...`.

* doc/doc.am (EXTRA_DIST): Rearrange shipment of our Texinfo manual
  source files to precede all of the generated forms, for clarity.  Drop
  all `BUILD_INFODOC` conditionals.  Make `build_infodoc` phony target
  depend on plain text, GNU Info, and HTML forms of Texinfo manual
  unconditionally.  Also drop unused variables `groffinfodir`,
  `groffpdfdir`, and `texi2dvi_missing`.

  (EXTRA_DIST, MAINTAINERCLEANFILES): Add Info form of manual.  Drop
  glob pattern attempting to match the segments that `makeinfo` breaks
  it into.  It isn't necessary for MAINTAINERCLEANFILES.

  (EXTRA_DIST, MAINTAINERCLEANFILES): Add text form of manual.
  (EXTRA_DIST, MAINTAINERCLEANFILES): Add HTML form of manual.

  (dist-hook): Depend on new (phony) target `dist-info-bits`.

  (dist-info-bits): Look for the info document in the build directory,
  then the source directory.  (It could be in either place depending on
  whether the build from a Git working tree is being done in or out of a
  separate build directory.) When found, copy the segments to the
  assembly area for the distribution archive.

  (install_infodoc): Refactor.  Remove any groff info files from the
  destination info directory using a shell glob directly instead of a
  partly redundant ls(1) command substitution.  Similarly, use a shell
  glob to cp(1) the info files (including any matched segments) to the
  destination info directory before running `install-info`.  (In this
  process I learned that `install-info` doesn't "install" anything;
  instead, it (de-)registers info files with their top-level catalog.)

Tested by building:
1. from Git working tree with separate build directory;
2. from distribution archive w/ separate build directory (`distcheck`);
3. from distribution archive directly;
4. from Git working tree directly.
2021-11-12 11:20:19 +11:00
Deri James
fedbf6ff9d Add new background boxes to gropdf.
* src/devices/gropdf/gropdf.pl: New \X'pdf background' command.
* tmac/pdf.tmac: Covenience command .pdfbackground added.
* contrib/sboxes/: Files which demonstrate use of background
boxes using -ms macros.
2021-10-10 14:39:24 +01:00
G. Branden Robinson
2d07e05a54 Makefile.am: Don't delete test log on failures.
* Makefile.am: Mark `$(TEST_SUITE_LOG)` as `.PRECIOUS`.  This prevents
  the test suite log from being deleted if there are any failures.

Fixes <https://savannah.gnu.org/bugs/?61213>.  Thanks to Bjarni Ingi
Gislason for the report, thus saving me from a certain TIA if I had come
across it myself unexpectedly.
2021-09-24 17:07:43 +10:00
G. Branden Robinson
71e31708e6 Makefile.am: Add .DELETE_ON_ERROR target.
* Makefile.am: Add `.DELETE_ON_ERROR` special target; both GNU and
  FreeBSD make(1)s support it so maybe it will be portable enough.  This
  avoids, among other problems, a target appearing falsely up-to-date
  (often as an empty file) when the troff process generating it
  experiences an assertion failure.
2021-09-16 03:31:36 +10:00
G. Branden Robinson
cc2bea41ac [libgroff]: Drop support for TRADITIONAL_CPP.
This means a C preprocessor that does not support the ANSI C89/ISO C90
token concatenation operator "##".

* src/include/itable.h:
* src/include/ptable.h: Do it.

* Makefile.am: Undocument preprocessor symbol.
2021-08-28 18:10:03 +10:00
G. Branden Robinson
bda851ae93 Drop support for ARRAY_DELETE_NEEDS_SIZE.
* src/include/lib.h [ARRAY_DELETE_NEEDS_SIZE]: Drop preprocessor
  conditional branch.  This abandons support for certain pre-ISO C++98
  compilers.  (According to a now-removed comment, unsized array
  deletion was documented in "ARM", meaning _The C++ Annotated Reference
  Manual_, published in 1989.)

* Makefile.am: Undocument preprocessor symbol.
2021-08-28 09:45:16 +10:00