バイナリに直接コンパイルし、共有ライブラリにもコンパイルしたい cpp ファイルのセットがあります。
私は持っている
bin_PROGRAMS=mybin
lib_LTLIBRARIES=libmylib.la
COMMON_SOURCES=f1.cpp f2.cpp f3.cpp
mybin_SOURCES=main.cpp $(COMMON_SOURCES)
libmylib_la_SOURCES=$(COMMON_SOURCES)
これを実行すると、cpp ファイルが 2 回コンパイルされます。1 回は libtool を使用し、もう 1 回は使用せずに、libtool/automake が不平を言うことがあります。
Makefile.am: object `f1.$(OBJEXT)' created both with libtool and without`
COMMON_SOURCES を .a ファイルに入れようとしましたが、.a を .la にリンクすると libtool が文句を言います (移植性がないと言っています)。
私が必要とするのは次のようなものです
bin_LTPROGRAMS=mybin
しかし、それは存在しません
編集: 明確化 - 私は automake/autoconf を使用しています。上に示したのは、私の automake Makefile.am の要点です。