Automake はオブジェクトを生成するようには設計されていません。プログラムまたはライブラリのいずれかをビルドします。単一のオブジェクト ファイルをコンパイルし、他のファイルをコンパイルしたくない理由を知らずに、質問に答えるのは困難です。あなたの「本当の」問題に対するより明確な答えがあるかもしれません。
Makefile.am
あなたが書くことができるのは
noinst_LIBRARIES = libThread.a
libThread_a_SOURCES = Thread.cc Thread.h # No need to put headers in EXTRA_DIST
ライブラリはオブジェクトファイルの単なるコレクションであり、リンクは含まれていないため、結果は, ansのみを含むMakefile
ライブラリを構築します。上記により、発行された に compile するルールが含まれるようになるため、必要に応じてルールを追加できます。libThread.a
libThread.o
*.a
Makefile.am
Makefile
libThread.o
build:
Automake にこのコンパイル ルールを発行させたいが、ライブラリをビルドさせたくない場合は、
EXTRA_LIBRARIES = libThread.a # EXTRA here means "output build rules but don't
# build unless something depends on it".
libThread_a_SOURCES = Thread.cc Thread.h
build: Thread.$(OBJEXT)
これThread.$(OBJEXT)
でmake build
、元のMakefile
.
(Automake は、DOS バリアントのような拡張機能をサポートするのでは.$(OBJEXT)
なく、使用します。).o
.obj