bug-zile
[Top][All Lists]
Advanced

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

Re: [Bug-zile] Missing dependency for zile.1.in Makefile target


From: Ulrich Mueller
Subject: Re: [Bug-zile] Missing dependency for zile.1.in Makefile target
Date: Wed, 8 Sep 2010 11:30:50 +0200

>>>>> On Tue, 7 Sep 2010, Reuben Thomas wrote:

> Unfortunately, I've just worked out why zile.1.in did not depend on
> zile$(EXEEXT). You are correct that it should, normally, but I have
> made zile.1.in an EXTRA_DIST file so that help2man is not needed to
> build Zile from a release tarball. If zile.1.in is made to depend on
> zile$(EXEEXT), then it is always remade, since zile$(EXEEXT) is
> always built. But when running make distcheck, zile.1.in is built
> under the _build directory. However, it is not removed by make
> distclean, since it is an EXTRA_DIST file, so make distcheck fails,
> because _build is not left empty by make distclean, as it should be.
> This is a catch-22: I cannot, in general, remove zile.1.in, in case
> I am doing a normal build!

I see the problem. One could solve it with "order-only" prerequisites,
like this:

zile.1.in: main.c man-extras zile-help2man-wrapper | zile$(exeEXT)

This might be a GNUism, though.

> So the two solutions seem to be:

> 1. Require all users to install help2man. This would be a pity.

> 2. Require you to use touch to reset the timestamp on main.c, so
> that zile.1.in is not rebuilt.

... or update the timestamp on zile.1.in.

> I would prefer 2, as it affects far fewer users.

I agree that you cannot go for 1. But 2 is a hack and not really a
solution. (I can live with it though.)

> This also leads to another question: what patch to main.c do you
> need in the first place? I'm always keen to try to make Zile more
> portable, and I believe that Debian, at least, does not need to
> patch the source at all, so if I can help Gentoo avoid a patch, I'd
> be happy to.

So far we also don't patch the source. The only tweak that we do is
that we remove /usr/lib/charset.alias from the installed image
unconditionally, since it caused problems on some non-glibc systems.


The reason why I patched main.c (so far, for testing purposes only) is
related to Gentoo bug 335898 <http://bugs.gentoo.org/335898>.

In a nutshell: Configure scripts of some programs are testing for the
location of Emacs's lisp dir, typically using an expression like this:

   $EMACS -batch -q -eval '(while load-path (princ (concat
   (car load-path) "\n")) (setq load-path (cdr load-path)))'

(So far, we have identified bash, gettext, gpm, and qingy, but
probably this list will become longer.)

Now if on a user's system /usr/bin/emacs is symlinked to zile, above
test will hang: Zile will happily ignore all command line options and
interpret the last argument as a file name.

Therefore, I had experimented with making Zile error out if an unknown
command line option is encountered, instead of displaying an error
message in the minibuffer.

Ulrich



reply via email to

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