autoconf
[Top][All Lists]
Advanced

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

Re: lib_LIBRARIES must be set with `=' before using `+='


From: Andre Caldas
Subject: Re: lib_LIBRARIES must be set with `=' before using `+='
Date: Thu, 24 Feb 2005 18:58:32 +0900
User-agent: Debian Thunderbird 1.0 (X11/20050116)

Hello!

> Following your suggestion I would introduce
>
>     libmylib_alibdir = $(libdir)
>     libmylib_a_LIBRARIES = libmylib.a
>
> But for the primaries the '_' is a token delimiter.
> A short test showed no problem. Do you expect any
> problems here for a more complex Makefile.am?

You don't need "libmylib_alibdir" for each library. You just need it for each directory. If them all go to the same dir "DIR", then you could do:

all_libs_on_this_filedir = $(libdir)
all_libs_on_this_file_LIBRARIES = libmylib.a libmylib2.a
libmylib_a_SOURCES = 1.h 1.cpp
libmylib2_a_SOURCES = 2.h 2.cpp

I would say that the scope for the variable "all_libs_on_this_file" is the included make file. Just like if you had a "local" lib variable. Use the same "all_libs_on_this_file", just as you would do for "lib".

By the way, I think you did some confusion on the code you wrote above. (maybe you should use less "lib" on the var names)

>
>
>> What bothers me is "CLEANFILES".
>>
>
> This is my suggestion:
>
> --- ../old/automake-1.9.5/lib/Automake/VarDef.pm        2004-09-21
> 20:20:34.000000000 +0200
> +++ lib/Automake/VarDef.pm      2005-02-24 09:07:21.106214815 +0100
> @@ -152,7 +152,7 @@
>
>    # A user variable must be set by either `=' or `:=', and later
>    # promoted to `+='.
> -  if ($owner != VAR_AUTOMAKE && $type eq '+')
> +  if (0 && $owner != VAR_AUTOMAKE && $type eq '+')
>      {
>        error $location, "$var must be set with `=' before using `+='";
>      }
>
> I know it is rude. Probably the user variables with a
> default value != "" will not work as expected, if I got
> the code correctly. Are there any other problems to be
> expected by this patch? ("make check" reported just
> the pluseq7.test.)

The problem here is whether not beeing required to initialize variables is a "good" thing or a "bad" thing. I belive that in the case of "CLEANFILES" (or "BUILTSOURCES") it is good, because it is a "global" variable anyway.

For other cases, maybe it would be better to just keep the variables inside their own scope.

Andre Caldas.




reply via email to

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