[mercury-users] Problem with mmake

Fergus Henderson fjh at cs.mu.OZ.AU
Thu May 31 11:22:32 AEST 2001

On 31-May-2001, Richard A. O'Keefe <ok at atlas.otago.ac.nz> wrote:
> [Fergus wrote:]
> >	My guess is that you probably have a corrupt *.d *.dv or *.dep file
> >	in the directory.  Such files can sometimes be created if you are using
> >	NFS and you get an NFS timeout.
> >	
> >	It might be simplest to just try `rm -f *.d *.dv *.dep' first.
> I have been deleting such files all along.
> Let's try again.
> Do the suggested rm.  No, wait!  *.d is my convention for naming directories!
> mmake **can't** be dumb enough to copy the binary contents of a directory
> into a generated makefile.  Can it?
> Ah, so that was it.  mmake *is* dumb enough not to check whether a *.d
> file is a directory before slurping it in.  Definitely a bug.

If you don't use --use-subdirs, then Mmake does assume that anything named
*.d in the current directory is a dependency file.  I don't think it is
worth changing that assumption, since it would complicate the software,
and it is easy to avoid, either by using --use-subdirs, or by naming your
directories something different.

Mmake should certainly issue a proper error message rather than just
dumping the directory in binary.  However, Mmake just uses the system
utility `cat'.  If `cat' is dumping the binary contents of directories,
rather than reporting an error message to stderr, I'd consider that a bug
in `cat'.  I suggest you contact your OS vendor, and in the mean time
install GNU cat (it's part of the GNU textutils package).

On Solaris 2.7 (SunOS 5.7), /bin/cat seems to do the right thing for
directories (i.e. it reports an error "cat: input error on foo.d:
Invalid argument").  Which version of Solaris are you using?

Fergus Henderson <fjh at cs.mu.oz.au>  |  "I have always known that the pursuit
                                    |  of excellence is a lethal habit"
WWW: <http://www.cs.mu.oz.au/~fjh>  |     -- the last words of T. S. Garp.
mercury-users mailing list
post:  mercury-users at cs.mu.oz.au
administrative address: owner-mercury-users at cs.mu.oz.au
unsubscribe: Address: mercury-users-request at cs.mu.oz.au Message: unsubscribe
subscribe:   Address: mercury-users-request at cs.mu.oz.au Message: subscribe

More information about the users mailing list