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