autoconf
[Top][All Lists]
Advanced

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

Re: specifying multiple with arguments


From: Braden McDaniel
Subject: Re: specifying multiple with arguments
Date: Tue, 15 Mar 2005 20:05:07 -0500

On Tue, 2005-03-15 at 17:59 -0500, Dan Manthey wrote:

[snip]

> > >   --with-* is
> > > intended to specify use of an optional external package and as such often
> > > needs to have the external package's location specified (e.g.
> > > --with-X=/usr/local/X11R6).
> >
> > CPPFLAGS, LDFLAGS are generally better for that.
> 
> Quoth the AC manual (node: External Software):
> 
> Some packages require, or can optionally use, other software packages
> that are already installed.
> [...]
>    The user can give an argument by following the package name with `='
> and the argument.  Giving an argument of `no' is for packages that are
> used by default; it says to _not_ use the package.  An argument that is
> neither `yes' nor `no' could include a name or number of a version of
> the other package, to specify more precisely which other package this
> program is supposed to work with.

To "specify more precisely which other package" is not the same as
specifying "the external package's location". The latter, which you
mentioned, is what I was suggesting the user variables CPPFLAGS and
LDFLAGS are better for.

With regard to the former case, do note that I did not say "never use
anything other than 'yes' or 'no'." I simply gave my opinion that
exclusively using "yes" or "no" is generally preferable. That mode of
operation has additional support from autoconf ("--with-*"/
"--without-*"), follows a well-established syntactic convention, and is
thus usually easy to document concisely. For an argument that is a list
there is no syntactic convention on what the delimiter should be
(AFAIK). How to use such a thing is just not as obvious. That is not to
say it would *never* be a palatable alternative.

> > >   If you consider a "package" to instead be an
> > > interface, say to a set of functions, it becomes sensible to specify
> > > multiple implementing packages that each provide the interface (e.g.
> > > --with-line-ui=readline,some-other-thing).  I don't know if such an
> > > interpretation is sanctioned by Autoconf, but it's well within the scope
> > > of --with-*, in which case, it may be reasonable for --with-foo=bar,quux
> > > to also be expressed as --with-foo=bar --with-foo=quux.
> >
> > Better, IMO, to provide mutually exclusive options and emit an error
> > message if they are used together.
> >
> 
> My point was specifially about situations in which the specfied packages
> are _not_ mutually exclusive, so that doesn't pertain.

Then what, dependent? That is, if you use implementation X of A, you
must use implementation Y of B? I'm afraid I still don't totally
understand the scenario you're describing. (I tried to guess before, and
apparently guessed wrong.)

-- 
Braden McDaniel                           e-mail: <address@hidden>
<http://endoframe.com>                    Jabber: <address@hidden>





reply via email to

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