bug-automake
[Top][All Lists]
Advanced

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

Re: 1.11 doesn't add sources with nonstandard suffixes when making a bin


From: Jack Kelly
Subject: Re: 1.11 doesn't add sources with nonstandard suffixes when making a binary
Date: Fri, 27 Nov 2009 08:45:48 +1100

2009/11/25 Юрий Пухальский <address@hidden>:
> Good day!
>
> As of automake 1.11 the following problem exists:
> I have a nonstandard suffix .pc (ProC source), which i compile into .lo with
> SUFFIXES = .pc
> .pc.lo:
>        $(PCC) $(PCCFLAGS) iname=$(srcdir)/$*.pc oname=$(builddir)/$*.c
>        $(LIBTOOL) --tag=CC --mode=compile $(CC) $(AM_CPPFLAGS) $(CFLAGS)
> address@hidden@/include -c $(builddir)/$*.c
>        rm -f $(builddir)/$*.c
>
> When i try to make a binary with
> bin_PROGRAMS = blabla
> blabla_SOURCES = 1.c 2.c 3.pc
>
> the part of Makefile.in is:
> am_blabla_OBJECTS = 1.$(OBJEXT) 2.$(OBJEXT)
> blabla_OBJECTS = $(am_blabla_OBJECTS)
> blabla$(EXEEXT): $(blabla_OBJECTS) $(blabla_DEPENDENCIES)
>       address@hidden -f blabla$(EXEEXT)
>        $(LINK) $(blabla_OBJECTS) $(blabla_LDADD) $(LIBS)
>
> There is one thing of interest: when making libtool library (.la),
> everything works fine, .pc sources get compiled in!

I think this is why (uneducated guess follows):

When compiling a PROGRAM which doesn't need libtool (i.e., not linking
against a libtool library), it will compile foo.c (or whatever) to
foo.$(OBJEXT) (usually foo.o). You only have a suffix rule to build a
.lo from a .pc, so when it tries to make a libtool library (which
links libtool object (.lo) together), it will compile 3.pc into 3.lo
and link.

Going from .pc to .lo seems silly. Can you try going from .pc to .c,
and let make go from .c to .whatever-it-needs (.o, .lo, .banana,
whatever)?

.pc.c:
        $(PCC) $(PCCFLAGS) iname=$< oname=$@

-- Jack




reply via email to

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