Using automake-1.13.4, when using the following Makefile.am fragment, ---8<--- bin_PROGRAMS = foo foo_SOURCES = foo.c bar.k .k.${OBJEXT}: gcc -x c -c $< -o $@ --->8---
I observe that bar.o is not built and not linked into foo. ---8<--- > make V=0 CC foo.o CCLD foo /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../lib64/crt1.o: In function `_start': /home/abuild/rpmbuild/BUILD/glibc-2.19/csu/../sysdeps/x86_64/start.S:118: /undefined reference to `main' collect2: error: ld returned 1 exit status Makefile:338: recipe for target 'foo' failed make: *** [foo] Error 1 --->8--- Interestingly, using $(OBJEXT) instead of ${OBJEXT} gives a successful build, so I suspect that automake's parser is lacking in some spot.