を配布しないAutotool群 - 私は、ディレクトリ構造を持ってコンパイルするが、
src
\__lib_foo
| \__ foo.c foo.h
\__ main
\__ main.c main.h
としてメインはメインアプリケーションとmain.cのがfoo.c.で定義されたいくつかの関数を使用しています 私の必要条件は「lib_fooはコンパイルされていなければならないが、分散されていなければならない」ということです。事前に
おかげで
を配布しないAutotool群 - 私は、ディレクトリ構造を持ってコンパイルするが、
src
\__lib_foo
| \__ foo.c foo.h
\__ main
\__ main.c main.h
としてメインはメインアプリケーションとmain.cのがfoo.c.で定義されたいくつかの関数を使用しています 私の必要条件は「lib_fooはコンパイルされていなければならないが、分散されていなければならない」ということです。事前に
おかげで
コンパイルされたプログラムが配布されることはありませんが、コンパイルされたプログラムのソースはもちろん、一般的に配布されます。 (源がないソース配布にはあまり意味がありません。)nodist_*_SOURCES
(automakeマニュアルの章14.2細粒度配布制御を参照)もあります。上書きされない限り、デフォルトではBUILT_SOURCES
がnodistであることにも注意してください。
bin_PROGRAMS = foo
nodist_foo_SOURCES = foo.c
BUILT_SOURCES = foo.c
しかし:
bin_PROGRAMS = foo
foo_SOURCES = foo.c
BUILT_SOURCES = foo.h
autotoolsのは、ソースコード、コンパイルされていない製品を配布するためのフレームワークを提供します。それがあなたの質問であれば、バイナリパッケージ(rpm、deb、pkgなど)を構築し、それを配布するために、autotooledプロジェクトを簡単に使うことができます。一方、foo.cを使用してビルド中にメインが静的にリンクされているコンビニエンスライブラリを構築する方法を探しているだけなら、(automakeを使用していると仮定して)これをMakefileに入れたいとします。 am:
foo.cの名前をlibfoo.cに変更すると、3行目は必要ありません。
--edit質問はあなたが同じディレクトリにfoo.cのとmain.cのを持っていない場合は、関与もう少し仕事があり、平坦でないディレクトリにstructure--
を表示するように編集された後。トップレベル/ Makefile.amで :
# You must list lib_foo first SUBDIRS = lib_foo mainlib_foo/Makefile.amに
noinst_LIBRARIES = libfoo.a libfoo_a_SOURCES = foo.c
及びメイン/ Makefile.amに
bin_PROGRAMS = main main_LDADD = ../lib_foo/libfoo.a