[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