On Fri, Aug 7, 2009 at 15:23, Bernhard Rosenkraenzer<[email protected]> wrote:
> Hi,
> this part of a Makefile.am causes errors with automake 1.11:
>
> if IPHONE
> # What ****ing ***** came up with the idea of a platform without shared
> libraries???
> lib_LIBRARIES = libtest.a
> libtest_a_SOURCES = test.cpp
> libtest_a_LDFLAGS = -lsomelib
> else
> lib_LTLIBRARIES = libtest.la
> libtest_la_SOURCES = test.cpp
> libtest_la_LDFLAGS = -lsomelib
> endif
>
> The errors are
>
> Makefile.am: object `test.$(OBJEXT)' created both with libtool and without
> Makefile.am:5: variable `libtest_a_LDFLAGS' is defined but no program or
> Makefile.am:5: library has `libtest_a' as canonical name (possible typo)
>
> Both of the errors should not occur, given the statements in "if ..." and
> "else" are mutually exclusive and can't be run at the same time.

Essencially not about your exact question, but why not enforce libtool
to create static library only (untested, just idea, but should be not
so far from reality):

lib_LTLIBRARIES = libtest.la
libtest_la_SOURCES = test.cpp
libtest_la_LDFLAGS = -lsomelib
if IPHONE
# What ****ing ***** came up with the idea of a platform without
shared libraries???
libtest_la_CFLAGS += -static
libtest_la_LDFLAGS += -static
endif

Moreover, I always thinked that libtool smart enough to do not create
shared libs on platforms w/o shared libs support :-)

But again, I can be wrong or just don't understand something about
your environment that may confuse or fool libtool...

-- 
Andrew W. Nosenko <[email protected]>


Reply via email to