2009/11/25 Юрий Пухальский <aikip...@gmail.com>: > 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) > -...@top_srcdir@/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) > �...@rm -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