A release with LIBOBJDIR?

2006-04-01 Thread Stepan Kasal
Hello,
  current CVS versions of Autoconf and Automake use make variable
LIBOBJDIR, to enable using AC_LIBOBJ with non-recursive makefiles.

I think this is not the best possible solution to the problem.
I hoped to submit an alternative solution, which would mean that
LIBOBJDIR could have beed removed then.  
It became clear that the solution won't be available before the
release of Autoconf 2.60 and Automake 1.10.

But if we release versions with LIBOBJDIR, we will be bounded to
support it in future releases, even in case that it will become
redundant.

That is why I'd like to ask you to consider marking the feature
as experimental, and adding a warning that it may disappear in
future releases.

(Below are some details about the alternative solution I have in mind.)

Have a nice day,
Stepan

--
The sketch of the alternative solution
--

It is often requested that AC_LIBOBJ should support more than one
libobj directory.  (Examples were presented which show how this
feature would make some projects more manageable.)

I think that the best way to implement this is let Autoconf collect
all the objects and then filter them for various output files.

Note that we already have variables which have different values
in different output files, eg. top_srcdir.  Note also that Autoconf
already does some manipulation with LIBOBJS before writing output
files, so this is not new either.

I imagine that for each declared libobj subdirectory, Autoconf would
filter out everything but the objects from that directory.  And for
the top-level makefile, LIBOBJS would contain all the objects, with
their relative path.

As you can see, this would also solve the problemof non-recursive
makefiles, rendering LIBOBJDIR redundant.




Re: A release with LIBOBJDIR?

2006-04-02 Thread Ralf Wildenhues
Hi Stepan,

* Stepan Kasal wrote on Sat, Apr 01, 2006 at 10:42:23PM CEST:
>
[ LIBOBJDIR ]
> 
> That is why I'd like to ask you to consider marking the feature
> as experimental, and adding a warning that it may disappear in
> future releases.

Could you post a patch/patches to this end?
(Since this issue does not touch released versions of either tool (yet),
the discussion may better belong on the *-patches lists.)

> (Below are some details about the alternative solution I have in mind.)

FWIW, I probably don't agree with all the details in this alternative
approach; but that can be discussed at another time.  The question is
rather whether Autoconf and Automake maintainers agree with the general
point above.

Cheers,
Ralf




Re: A release with LIBOBJDIR?

2006-04-02 Thread Paul Eggert
Stepan Kasal <[EMAIL PROTECTED]> writes:

> That is why I'd like to ask you to consider marking the feature
> as experimental, and adding a warning that it may disappear in
> future releases.

That sounds fine to me, but we need a real patch.




Re: A release with LIBOBJDIR?

2006-04-02 Thread Alexandre Duret-Lutz
>>> "SK" == Stepan Kasal <[EMAIL PROTECTED]> writes:

 SK> current CVS versions of Autoconf and Automake use make variable
 SK> LIBOBJDIR, to enable using AC_LIBOBJ with non-recursive makefiles.

Among other uses.

 SK> But if we release versions with LIBOBJDIR, we will be bounded to
 SK> support it in future releases, even in case that it will become
 SK> redundant.

Let's worry when we get there.

[...]

 SK> It is often requested that AC_LIBOBJ should support more than one
 SK> libobj directory.  (Examples were presented which show how this
 SK> feature would make some projects more manageable.)

The need is to split required sources/objects into groups, for
instance to create different libraries.  Using multiple
directories is just one way to do it.

The plan discussed when LIBOBJDIR was introduced was to have
multiple LIBOBJS-like variables (and hence multiple LIBOBJDIR
variables), allowing you to build different libraries even if
all your sources are in the same directory.  This can be
introduced without breaking the existing LIBOBJS/LIBOBJDIR
interface.

 SK> I imagine that for each declared libobj subdirectory, Autoconf would
 SK> filter out everything but the objects from that directory.  And for
 SK> the top-level makefile, LIBOBJS would contain all the objects, with
 SK> their relative path.

What about non-recursive Makefiles that are not at the
top-level?  What about recursive Makefiles that uses @LIBOBJS@
from different directories directly without creating an archive?

 SK> As you can see, this would also solve the problemof non-recursive
 SK> makefiles, rendering LIBOBJDIR redundant.

I clearly don't think so :)
-- 
Alexandre Duret-Lutz

Shared books are happy books. http://www.bookcrossing.com/friend/gadl





Re: A release with LIBOBJDIR?

2006-04-03 Thread Stepan Kasal
Hello,

On Sun, Apr 02, 2006 at 09:28:53PM +0200, Alexandre Duret-Lutz wrote:
> >>> "SK" == Stepan Kasal <[EMAIL PROTECTED]> writes:
>  SK> But if we release versions with LIBOBJDIR, we will be bounded to
>  SK> support it in future releases, even in case that it will become
>  SK> redundant.
> 
> Let's worry when we get there.

OK, I'll raise this issue when we get close to Autoconf 2.60.

> The need is to split required sources/objects into groups, for
> instance to create different libraries.  Using multiple
> directories is just one way to do it.

Another need is to split the sources to multiple directories, to make
the tree more maintainable.

> The plan discussed when LIBOBJDIR was introduced was to have
> multiple LIBOBJS-like variables (and hence multiple LIBOBJDIR
> variables),

I remember the discussion, but I always thought the tone was: ``well, this
would require multiple LIBOBJDIR-like variables, so think twice''.

I was scared by the idea of multitude of magic variables; thank you for
explaining me your view.

Alexandre, you showed me that my proposal needs more thought, thanks.
Let's put it off for now,
Stepan,




Re: A release with LIBOBJDIR?

2006-04-06 Thread Ralf Wildenhues
* Stepan Kasal wrote on Mon, Apr 03, 2006 at 10:03:16PM CEST:
> On Sun, Apr 02, 2006 at 09:28:53PM +0200, Alexandre Duret-Lutz wrote:
> > >>> "SK" == Stepan Kasal <[EMAIL PROTECTED]> writes:
> >  SK> But if we release versions with LIBOBJDIR, we will be bounded to
> >  SK> support it in future releases, even in case that it will become
> >  SK> redundant.
> > 
> > Let's worry when we get there.

> Alexandre, you showed me that my proposal needs more thought, thanks.
> Let's put it off for now,

Without any desire to discuss possible solutions or issues with
LIBOBJDIR now, I'd still think it good style to let the user know
that this may not be the end of the story, so that at least I
don't feel quite as guilty in case something incompatible will
happen here.  Any objections against the patch below (to Autoconf)?

Cheers,
Ralf

* NEWS, doc/autoconf.texi (AC_LIBOBJ vs LIBOBJS): Mark
`LIBOBJDIR' as experimental.

Index: NEWS
===
RCS file: /cvsroot/autoconf/autoconf/NEWS,v
retrieving revision 1.357
diff -u -r1.357 NEWS
--- NEWS5 Apr 2006 22:41:36 -   1.357
+++ NEWS6 Apr 2006 22:06:35 -
@@ -86,6 +86,7 @@
   Object names added to these variables are now prefixed with `${LIBOBJDIR}',
   as in `${LIBOBJDIR}alloca.o'.  LIBOBJDIR is meant to be defined from
   `Makefile.in' in case the object files lie in a different directory.
+  The LIBOBJDIR feature is experimental.
 
 ** autoreconf
   Supports --no-recursive now.
Index: doc/autoconf.texi
===
RCS file: /cvsroot/autoconf/autoconf/doc/autoconf.texi,v
retrieving revision 1.986
diff -u -r1.986 autoconf.texi
--- doc/autoconf.texi   6 Apr 2006 17:51:22 -   1.986
+++ doc/autoconf.texi   6 Apr 2006 22:06:44 -
@@ -16405,6 +16405,7 @@
 can be referenced from any @file{Makefile.am}.  Even without Automake,
 arranging for @code{LIBOBJDIR} to be set correctly will enable
 referencing @code{LIBOBJS} and @code{LTLIBOBJS} in another directory.
+The @code{LIBOJBDIR} feature is experimental.
 
 
 @node AC_FOO_IFELSE vs AC_TRY_FOO




Re: A release with LIBOBJDIR?

2006-04-09 Thread Paul Eggert
Ralf Wildenhues <[EMAIL PROTECTED]> writes:

>   * NEWS, doc/autoconf.texi (AC_LIBOBJ vs LIBOBJS): Mark
>   `LIBOBJDIR' as experimental.

That change looks good to me; thanks.




Re: A release with LIBOBJDIR?

2006-04-10 Thread Ralf Wildenhues
* Paul Eggert wrote on Sun, Apr 09, 2006 at 09:13:38AM CEST:
> Ralf Wildenhues <[EMAIL PROTECTED]> writes:
> 
> > * NEWS, doc/autoconf.texi (AC_LIBOBJ vs LIBOBJS): Mark
> > `LIBOBJDIR' as experimental.
> 
> That change looks good to me; thanks.

Applied.  For autoconf-patches reference, here's a copy.

Thanks,
Ralf

* NEWS, doc/autoconf.texi (AC_LIBOBJ vs LIBOBJS): Mark
`LIBOBJDIR' as experimental.

Index: NEWS
===
RCS file: /cvsroot/autoconf/autoconf/NEWS,v
retrieving revision 1.357
diff -u -r1.357 NEWS
--- NEWS5 Apr 2006 22:41:36 -   1.357
+++ NEWS6 Apr 2006 22:06:35 -
@@ -86,6 +86,7 @@
   Object names added to these variables are now prefixed with `${LIBOBJDIR}',
   as in `${LIBOBJDIR}alloca.o'.  LIBOBJDIR is meant to be defined from
   `Makefile.in' in case the object files lie in a different directory.
+  The LIBOBJDIR feature is experimental.
 
 ** autoreconf
   Supports --no-recursive now.
Index: doc/autoconf.texi
===
RCS file: /cvsroot/autoconf/autoconf/doc/autoconf.texi,v
retrieving revision 1.986
diff -u -r1.986 autoconf.texi
--- doc/autoconf.texi   6 Apr 2006 17:51:22 -   1.986
+++ doc/autoconf.texi   6 Apr 2006 22:06:44 -
@@ -16405,6 +16405,7 @@
 can be referenced from any @file{Makefile.am}.  Even without Automake,
 arranging for @code{LIBOBJDIR} to be set correctly will enable
 referencing @code{LIBOBJS} and @code{LTLIBOBJS} in another directory.
+The @code{LIBOJBDIR} feature is experimental.
 
 
 @node AC_FOO_IFELSE vs AC_TRY_FOO