groff
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Groff] groff 1.19.1 compile/installation failure


From: Keith Marshall
Subject: Re: [Groff] groff 1.19.1 compile/installation failure
Date: Tue, 18 May 2004 00:43:32 +0100

On Monday 17 May 2004 6:43 pm, address@hidden wrote:
> When I try to compile 1.19.1 on a BSD/OS platform, make dies:
>
> g++ -I. -I.  -I/usr/src/jim/groff-1.19.1/src/include
> -I/usr/src/jim/groff-1.19.1 /src/include -DHAVE_CONFIG_H -g -O2  -c
> common.cpp
> g++ -I. -I.  -I/usr/src/jim/groff-1.19.1/src/include
> -I/usr/src/jim/groff-1.19.1 /src/include -DHAVE_CONFIG_H -g -O2  -c
> index.cpp
> g++ -I. -I.  -I/usr/src/jim/groff-1.19.1/src/include
> -I/usr/src/jim/groff-1.19.1 /src/include -DHAVE_CONFIG_H -g -O2  -c
> linear.cpp
> g++ -I. -I.  -I/usr/src/jim/groff-1.19.1/src/include
> -I/usr/src/jim/groff-1.19.1 /src/include -DHAVE_CONFIG_H -g -O2  -c
> search.cpp
> gcc -I. -I.  -I/usr/src/jim/groff-1.19.1/src/include
> -I/usr/src/jim/groff-1.19.1 /src/include -DHAVE_CONFIG_H -g -O2  -c map.c
> ar r libbib.a common.o index.o linear.o search.o map.o
> ranlib libbib.a
> /usr/contrib/bin/bash  ":" ":" "/usr/local/bin" > shdeps.sed
>
> :: :: No such file or directory
>
> *** Error code 127
>
> Stop.
> *** Error code 1
>
> Stop.
> *** Error code 1
>

The makefile rule associated with this command is:

        shdeps.sed: shdeps.sh
                $(SHELL) $< "$(RT_SEP)" "$(SH_SEP)" "$(bindir)" > $@

with "$(RT_SEP)" = "$(SH_SEP)" = ":" set by configure, for *all* UNIX 
platforms.  "$(bindir)" is set to the bin directory within your nominated 
"--prefix" directory, and defaults to "/usr/local/bin". Make itself is 
expected to substitute shdeps.sed for $@ and shdeps.sh for $<, and $(SHELL) 
should be what is exported from your interactive shell environment.

It looks like your non-GNU make is not correctly substituting either $(SHELL) 
or $<, since one of these would appear to substitute as nothing, while the 
other is "/usr/contrib/bin/bash" (perhaps this *is* your $SHELL -- what does 
        echo $SHELL
say, if you type it at a command prompt?)  What does your make documentation 
say about a substitution for $< ?

>
> The compilation succeeds when gnu make -- which isn't the default make
> on this platform -- is used. BTW, something goes wrong with configure
> too. This seems to assume bash is installed in /bin/bash. It isn't. And
> why should bash be a prerequisite for compiling and installing anything?

It isn't -- a vanilla Bourne shell should suffice, in which case I would 
expect $SHELL to be set as something like /bin/sh.  Korn shell should also be 
ok, but definitely *not* csh, or any of its variants.

> It's depressing that the configuration and installation stuff for
> groff seems to be far too closely intertwined with Linux.

It works OOTB on my MS-Windows 2000 box, which is about as far from Linux as 
you can get! (Admittedly, I am using Win32 ports of GNU make and gcc).

>
> Even though the compilation succeeds with gnu make, the build doesn't. It
> now fails:
>
> touch examples/stamp
> GROFF_COMMAND_PREFIX=''; export GROFF_COMMAND_PREFIX; GROFF_BIN_PATH=`echo
> /usr/src/jim/groff-1.19.1/src/roff/groff
> /usr/src/jim/groff-1.19.1/src/roff/troff
> /usr/src/jim/groff-1.19.1/src/devices/grops | sed -e 's|  *|:|g'`; export
> GROFF_BIN_PATH; /usr/src/jim/groff-1.19.1/src/roff/groff/groff
> -F/usr/src/jim/groff-1.19.1/font -F/usr/src/jim/groff-1.19.1/font
> -M/usr/src/jim/groff-1.19.1/tmac -M/usr/src/jim/groff-1.19.1/tmac -M. -Tps
> -mom examples/letter.mom >examples/letter.ps
> troff: can't find `DESC' file
> troff: fatal error: sorry, I can't continue
> gmake[2]: *** [examples/letter.ps] Error 1
> gmake[2]: Leaving directory `/usr/src/jim/groff-1.19.1/contrib/mom'
> gmake[1]: *** [contrib/mom] Error 2
> gmake[1]: Leaving directory `/usr/src/jim/groff-1.19.1'
> gmake: *** [all] Error 2
>
>
> Any idea what's wrong and how to fix it?

Clearly, troff is unable to find the DESC file for the postscript output 
device.  This should have been built, at an earlier stage in the make, in 
/usr/src/jim/groff-1.19.1/font/devps/DESC.  Can you confirm that it is 
present?  If it is, then this command should *not* fail in this manner; if 
not, then we need to ascertain why it was not built.

>
> I think someone has seen great virtue in needlessly complicating the
> compilation and installation of groff. Or has made that too Linux
> specific. It didn't used to be like this. "make" followed by "make
> install" used to just work. Sigh.

The shdeps.sh stuff above has nothing to do with supporting Linux;
it is to resolve differences between PATH syntax for UNIX and MS-Windows 
platforms, so that the shell scripts groff provides for nroff and neqn can be 
built with appropriate semantics for these respective platforms. And,

        make && make install

works perfectly for me, *both* on GNU/Linux *and* on Win2K. Of course, YMMV.

Best regards,
Keith.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]