[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>