[GRASS5] man error kills 5.3 compile using alt build sys on OS X
Glynn Clements
glynn.clements at virgin.net
Wed May 12 02:57:15 EDT 2004
Scott W Mitchell wrote:
> It's starting to look like a bug or at least a peculiarity of Mac OS X,
> since it seems to have got past the manual page part of the build fine on
> my Linux system (still working through the rest of the build).
>
> When I first run the build script, it configures find, then it does all of
> the copying and converting steps of html->man pages, but then I get:
>
> Converting: /Volumes/stipaUnix/cvsgrass/freshgrass/html/html/xganim.html
> to
> /Users/smitch/macgrass-build/dist.powerpc-apple-darwin7.3.0/man/man1/xganim.1
> mkdir -p
> /Users/smitch/macgrass-build/dist.powerpc-apple-darwin7.3.0/man/cat1
> man
> /Users/smitch/macgrass-build/dist.powerpc-apple-darwin7.3.0/man/man1/ascii_formats.1
> >
> /Users/smitch/macgrass-build/dist.powerpc-apple-darwin7.3.0/man/cat1/ascii_formats.1
> No manual entry for
> /Users/smitch/macgrass-build/dist.powerpc-apple-darwin7.3.0/man/man1/ascii_formats.1
> make[1]: ***
> [/Users/smitch/macgrass-build/dist.powerpc-apple-darwin7.3.0/man/cat1/ascii_formats.1]
> Error 1
> make: *** [docs] Error 2
> ERROR: compilation error.
>
> Does this rely on behaviour of GNU man ?
It looks like it. It assumes that man will accept a full pathname to a
troff file in place of a simple name.
> Apple uses BSD man.
>
> Unfortunately, this creates a zero byte file in the cat section, which
> means subsequent makes just go on to the next file, creating more and more
> zero byte preformatted output files.
>
> Now I'm stuck - I thought I could compare to the traditional build system
> to figure out the difference, but my ignorance of how the build system and
> make work has brought me to a dead end.
The original build system uses:
man -M $(GISBASE)/man $tmpm
where $tmpm is the base name (without the directory or suffix) of the
troff file.
The alternate build system uses:
MANDIR = ${GISBASE}/man/man${MANSECT}
CATDIR = ${GISBASE}/man/cat${MANSECT}
MAN2CAT = man
...
${catpages}: ${CATDIR}/%.${MANSECT}: ${MANDIR}/%.${MANSECT}
${MAN2CAT} $< > $@
If you can figure out a command which will accept the full pathname to
a troff file as an argument and output plain text, you can set MAN2CAT
to that command when running "make", e.g.
make MAN2CAT='...'
On Linux, 'groff -Wall -t -Tlatin1 -mandoc' should provide an accurate
substitute for "man". Although g.html2man doesn't appear to use
tables, so the use of tbl shouldn't be necessary.
--
Glynn Clements <glynn.clements at virgin.net>
More information about the grass-dev
mailing list