On 11/4/07, Ralf Wildenhues <[EMAIL PROTECTED]> wrote:
>
> Please learn about `subdir-objects', that helps. It's indexed in the
> manual.
Ok, that has actually helped in multiple ways. I am now using that
option, and it's good. That gets me past one hurdle. Now I am left
with the following:
First, if I do this:
crt64_SCRIPTS = libcrtdll.a
lib%.a: %.def
$(DLLTOOL) $(DLLOPTS) --dllname $*.dll --def=$(top_srcdir)/$*.def
Then libcrtdll.a and crtdll.dll are not put into their respective
subdirectories. I'm guessing I have to manually change the output
file location in the build command.
The more important issue is that though I can now easily have multiple
sources with the same name, I cannot so easily have multiple libraries
with the same name. Consider this:
lib32dir=$(prefix)/lib32
lib64dir=$(prefix)/lib64
lib32_LIBRARIES = libuuid.a
libuuid_a_SOURCES = lib32/uuid.c
lib64_LIBRARIES = libuuid.a
libuuid_a_SOURCES = lib64/uuid.c
The result is that a 'make all' builds libuuid.a once using the lib32
source. The second _SOURCES variable isn't even set at all -- it's
actually ignored, and the lib64/uuid.c file is nowhere in the
resulting makefile. When I do a 'make install', however, the 32-bit
version of the file libuuid.a is installed into both /lib32 and
/lib64.
So....................... any more ideas? Is there a way to build
the 32-bit libuuid.a file in one directory and the 64-bit version in
another? I am now using the subdir-objects option, but AFAICS, that
only applies to the intermediate objects -- in this case, uuid.o. Is
there a way to make that apply to the library itself?