cons-discuss
[Top][All Lists]
Advanced

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

Re: Problem with dependancies


From: Rajesh Vaidheeswarran
Subject: Re: Problem with dependancies
Date: Thu, 04 Apr 2002 10:26:09 -0500 (EST)

I am not averse to getting Cons::Plus functionality into Cons (or the
cons distribution, initially).

There are a few issues that I have with Cons::Plus, nothing insurmountable.

I have cut-and-paste the highlights of Cons::Plus from the cons-plus.pdf
file (and for some reason. I had to manually insert some characters that
acrobat refused to treat as characters - happens mostly with TeX fonts).
I would like to have some of this addressed.

> Cons::Plus provides a number of features not found in plain Cons today:
> 
>     "On Win32,the location of your Visual C++installation is automatically
>     found,and the default ENV value in the Cons environment gets suitable
>     values for the variables PATH,LIB and INCLUDE.If you don't have
>     Visual C++installed,Cons::Plus falls back on the normal Cons defaults.

I like the general idea, but this should be confiburable via a flag, and
not the default. i.e., irrespective of whether there is a VC++ compiler
or not, cons scripts should behave the same way unless told explicitly
otherwise. The VC++ module (Cons::Vstudio) should handle this (and maybe
it already does - I haven't looked at the code). That way, tomorrow someone
can write a borland module or whatever and have it do what requires to
be done to use the borland compiler, etc...

This would eliminate the need for hardcoding the vc++ stuff in the win32
defaults.

>     "a new method clone_merge_env works like clone but  merges the
>     content of  ENV  in the argument on o he previous one (instead of
>     replacing it).

I like the idea, but I would rather have it merge a given set of variables,
and not just ENV (that would lead to more new methods being created for
other variables someone else might want to merge).

something more like...

$e = cons->new(...);
$x = $e->clone_merge(MERGE => { all merge variables }, # to be merged
                     var1 => "foo", # to be replaced
                     var2 => "bar", # to be replaced
                    );

Maybe something like that (hopefully, not exactly that) would solve it
more generally. This should definitely be basic cons functionality.

>     "Object files,libraries and executables can be placed in a separate
>     directory tree by specifying the variable BUILD_TOP .This works
>     almost like the  Link  command in plain Cons (but without creating
>     copies of the source files (not even hardlinked copies)).
>     
>     "Object files can be placed in a specified directory by using the
>     method ObjectsInDir (instead of Objects ).
>     
>     "Object files,libraries and executables can be placed in separate
>     directories by specifying the variables OBJDIR ,LIBDIR and BINDIR
>    in the Cons environment.

Maybe I'm mistaken, but I see three (maybe 2) ways of doing the same thing.


Other than these, I'm fine with merging them.

rv

In a previous message, Johan Holmberg writes:

> 
> On Tue, 2 Apr 2002 address@hidden wrote:
> >
> > Out of curiousity, why is Cons::Plus not merged into the main cons source?
> >
> 
> A similar question was asked in Nov last year. See my answer then:
> 
>     http://mail.gnu.org/pipermail/cons-discuss/2001-November/001639.html
> 
> 
> At least part of the Cons::Plus functionality could very well be
> added to main Cons.
> 
> For example: something like "ObjectsInDir" is obviously needed in
> Cons, since both you and I (and others) seem to have a need for
> something like that. With the current version of Cons it is
> *impossible* (via the "official" interfaces) to get the following
> two things at the same time:
> 
>    - compile a C/C++ file and place the output in a certain directory
>    - get the automatic header-file dependency checking
> 
> I think this is strange for a tool that is much more "programmable"
> than old make. A "loophole" in the Cons API's.
> 
> Other things in Cons::Plus may be more "controversial", and maybe
> only reflect the way *I* like to use Cons. I don't know ....
> 
> >
> >  Are there reliability issues I should be concerned about?
> >
> 
> Yes ;-)
> 
> I don't have a suite of test-cases for Cons::Plus. If some of the
> Cons::Plus functionality was added to main Cons, one would have to
> write some testcases to go along with the new functionality.
> I haven't felt the need to do that for Cons::Plus itself yet.
> 
> 
> I have no idea what the maintainers of Cons think about the
> functionality in Cons::Plus. If they were interested in adding some
> of the functionality to main Cons, I would of course do my best to
> help.
> 
> /Johan Holmberg
> 
> 
> 
> _______________________________________________
> address@hidden
> http://mail.gnu.org/mailman/listinfo/cons-discuss
> Cons URL: http://www.dsmit.com/cons/
> 



reply via email to

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